mirror of
https://github.com/UberGames/ioef.git
synced 2024-11-27 22:42:09 +00:00
__WORDSIZE is not available on non-GNU systems (Dominic Fandrey)
This commit is contained in:
parent
9018fedd16
commit
4876413217
1 changed files with 13 additions and 11 deletions
|
@ -516,18 +516,20 @@ nextInstruction2:
|
|||
|
||||
//VM_LogSyscalls( (int *)&image[ programStack + 4 ] );
|
||||
{
|
||||
intptr_t* argptr = (intptr_t *)&image[ programStack + 4 ];
|
||||
#if __WORDSIZE == 64
|
||||
// the vm has ints on the stack, we expect
|
||||
// longs so we have to convert it
|
||||
intptr_t argarr[16];
|
||||
int i;
|
||||
for (i = 0; i < 16; ++i) {
|
||||
argarr[i] = *(int*)&image[ programStack + 4 + 4*i ];
|
||||
// the vm has ints on the stack, we expect
|
||||
// pointers so we might have to convert it
|
||||
if (sizeof(intptr_t) != sizeof(int)) {
|
||||
intptr_t argarr[16];
|
||||
int *imagePtr = (int *)&image[programStack];
|
||||
int i;
|
||||
for (i = 0; i < 16; ++i) {
|
||||
argarr[i] = *(++imagePtr);
|
||||
}
|
||||
r = vm->systemCall( argarr );
|
||||
} else {
|
||||
intptr_t* argptr = (intptr_t *)&image[ programStack + 4 ];
|
||||
r = vm->systemCall( argptr );
|
||||
}
|
||||
argptr = argarr;
|
||||
#endif
|
||||
r = vm->systemCall( argptr );
|
||||
}
|
||||
|
||||
#ifdef DEBUG_VM
|
||||
|
|
Loading…
Reference in a new issue