[quake3-commits] r1772 - trunk/code/qcommon
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sat Jan 16 05:55:51 EST 2010
Author: ludwig
Date: 2010-01-16 05:55:51 -0500 (Sat, 16 Jan 2010)
New Revision: 1772
Modified:
trunk/code/qcommon/vm_interpreted.c
Log:
__WORDSIZE is not available on non-GNU systems (Dominic Fandrey)
Modified: trunk/code/qcommon/vm_interpreted.c
===================================================================
--- trunk/code/qcommon/vm_interpreted.c 2010-01-10 18:28:32 UTC (rev 1771)
+++ trunk/code/qcommon/vm_interpreted.c 2010-01-16 10:55:51 UTC (rev 1772)
@@ -516,18 +516,20 @@
//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
More information about the quake3-commits
mailing list