[quake3-commits] r2026 - in trunk/code: asm qcommon sys

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Wed Jun 15 10:10:20 EDT 2011


Author: thilo
Date: 2011-06-15 10:10:20 -0400 (Wed, 15 Jun 2011)
New Revision: 2026

Modified:
   trunk/code/asm/qasm-inline.h
   trunk/code/qcommon/common.c
   trunk/code/qcommon/q_platform.h
   trunk/code/qcommon/q_shared.h
   trunk/code/qcommon/vm_x86.c
   trunk/code/sys/sys_win32.c
Log:
Fix #if macros for idx64 and id386


Modified: trunk/code/asm/qasm-inline.h
===================================================================
--- trunk/code/asm/qasm-inline.h	2011-06-15 03:36:11 UTC (rev 2025)
+++ trunk/code/asm/qasm-inline.h	2011-06-15 14:10:20 UTC (rev 2026)
@@ -24,7 +24,7 @@
 
 #include "../qcommon/q_platform.h"
 
-#ifdef idx64
+#if idx64
   #define EAX "%%rax"
   #define EBX "%%rbx"
   #define ESP "%%rsp"

Modified: trunk/code/qcommon/common.c
===================================================================
--- trunk/code/qcommon/common.c	2011-06-15 03:36:11 UTC (rev 2025)
+++ trunk/code/qcommon/common.c	2011-06-15 14:10:20 UTC (rev 2026)
@@ -90,9 +90,9 @@
 cvar_t  *com_homepath;
 cvar_t	*com_busyWait;
 
-#if defined(idx64) 
+#if idx64
   void (*Q_VMftol)(void);
-#elif defined(id386)
+#elif id386
 	long (QDECL *Q_ftol)(float f);
 	void (QDECL *Q_VMftol)(void);
 	void (QDECL *Q_SnapVector)(vec3_t vec);
@@ -2580,11 +2580,11 @@
 =================
 */
 
-#if defined(id386) || defined(idx64)
+#if id386 || idx64
 
 static void Com_DetectSSE(void)
 {
-#ifndef idx64
+#if !idx64
 	cpuFeatures_t feat;
 	
 	feat = Sys_GetProcessorFeatures();
@@ -2601,7 +2601,7 @@
 		Q_VMftol = qvmftolsse;
 
 		Com_Printf("Have SSE support\n");
-#ifndef idx64
+#if !idx64
 	}
 	else
 	{

Modified: trunk/code/qcommon/q_platform.h
===================================================================
--- trunk/code/qcommon/q_platform.h	2011-06-15 03:36:11 UTC (rev 2025)
+++ trunk/code/qcommon/q_platform.h	2011-06-15 14:10:20 UTC (rev 2026)
@@ -24,6 +24,8 @@
 #define __Q_PLATFORM_H
 
 // this is for determining if we have an asm version of a C function
+#define idx64 0
+
 #ifdef Q3_VM
 
 #define id386 0
@@ -76,7 +78,8 @@
 
 #if defined(_WIN64) || defined(__WIN64__)
 
-#define idx64
+#undef idx64
+#define idx64 1
 
 #undef QDECL
 #define QDECL __cdecl
@@ -146,7 +149,8 @@
 #define ARCH_STRING "i386"
 #define Q3_LITTLE_ENDIAN
 #elif defined __x86_64__
-#define idx64
+#undef idx64
+#define idx64 1
 #define ARCH_STRING "x86_64"
 #define Q3_LITTLE_ENDIAN
 #endif
@@ -173,7 +177,8 @@
 #if defined __i386__
 #define ARCH_STRING "i386"
 #elif defined __x86_64__
-#define idx64
+#undef idx64
+#define idx64 1
 #define ARCH_STRING "x86_64"
 #elif defined __powerpc64__
 #define ARCH_STRING "ppc64"
@@ -236,7 +241,8 @@
 #ifdef __i386__
 #define ARCH_STRING "i386"
 #elif defined __amd64__
-#define idx64
+#undef idx64
+#define idx64 1
 #define ARCH_STRING "amd64"
 #elif defined __axp__
 #define ARCH_STRING "alpha"

Modified: trunk/code/qcommon/q_shared.h
===================================================================
--- trunk/code/qcommon/q_shared.h	2011-06-15 03:36:11 UTC (rev 2025)
+++ trunk/code/qcommon/q_shared.h	2011-06-15 14:10:20 UTC (rev 2026)
@@ -421,7 +421,7 @@
 
 int Q_isnan(float x);
 
-#ifdef idx64
+#if idx64
   extern long qftolsse(float f);
   extern void qvmftolsse(void);
   extern void qsnapvectorsse(vec3_t vec);
@@ -430,7 +430,7 @@
   #define Q_SnapVector qsnapvectorsse
 
   extern void (*Q_VMftol)(void);
-#elif defined(id386)
+#elif id386
   extern long QDECL qftolx87(float f);
   extern long QDECL qftolsse(float f);
   extern void QDECL qvmftolx87(void);

Modified: trunk/code/qcommon/vm_x86.c
===================================================================
--- trunk/code/qcommon/vm_x86.c	2011-06-15 03:36:11 UTC (rev 2025)
+++ trunk/code/qcommon/vm_x86.c	2011-06-15 14:10:20 UTC (rev 2026)
@@ -149,7 +149,7 @@
 	intptr_t v = (intptr_t) ptr;
 	
 	Emit4(v);
-#ifdef idx64
+#if idx64
 	Emit1((v >> 32) & 0xFF);
 	Emit1((v >> 40) & 0xFF);
 	Emit1((v >> 48) & 0xFF);
@@ -192,7 +192,7 @@
 }
 static void EmitRexString(byte rex, const char *string)
 {
-#ifdef idx64
+#if idx64
 	if(rex)
 		Emit1(rex);
 #endif
@@ -415,7 +415,7 @@
 =================
 */
 
-#if defined(_MSC_VER) && defined(idx64)
+#if defined(_MSC_VER) && idx64
 
 extern void qsyscall64(void);
 extern uint8_t qvmcall64(int *programStack, int *opStack, intptr_t *instructionPointers, byte *dataBase);
@@ -457,7 +457,7 @@
 	if(syscallNum < 0)
 	{
 		int *data;
-#ifdef idx64
+#if idx64
 		int index;
 		intptr_t args[11];
 #endif
@@ -469,7 +469,7 @@
 		// modify VM stack pointer for recursive VM entry
 		savedVM->programStack = programStack - 4;
 
-#ifdef idx64
+#if idx64
 		args[0] = ~syscallNum;
 		for(index = 1; index < ARRAY_LEN(args); index++)
 			args[index] = data[index];
@@ -525,7 +525,7 @@
 int EmitCallDoSyscall(vm_t *vm)
 {
 	// use edx register to store DoSyscall address
-#if defined(_MSC_VER) && defined(idx64)
+#if defined(_MSC_VER) && idx64
 	EmitRexString(0x48, "BA");		// mov edx, qsyscall64
 	EmitPtr(qsyscall64);
 #else
@@ -538,7 +538,7 @@
 	EmitString("51");			// push ebx
 	EmitString("56");			// push esi
 	EmitString("57");			// push edi
-#ifdef idx64
+#if idx64
 	EmitRexString(0x41, "50");		// push r8
 	EmitRexString(0x41, "51");		// push r9
 #endif
@@ -556,7 +556,7 @@
 	EmitRexString(0x48, "89 EC");		// mov esp, ebp
 	EmitString("5D");			// pop ebp
 
-#ifdef idx64
+#if idx64
 	EmitRexString(0x41, "59");		// pop r9
 	EmitRexString(0x41, "58");		// pop r8
 #endif
@@ -613,7 +613,7 @@
 	EmitString("73");		// jae badAddr
 	jmpBadAddr = compiledOfs++;
 
-#ifdef idx64
+#if idx64
 	EmitRexString(0x49, "FF 14 C0");	// call qword ptr [r8 + eax * 8]
 #else
 	EmitString("FF 14 85");			// call dword ptr [vm->instructionPointers + eax * 4]
@@ -769,7 +769,7 @@
 
 	case OP_LOAD4:
 		EmitPushStack(vm);
-#ifdef idx64
+#if idx64
 		EmitRexString(0x41, "8B 81");			// mov eax, dword ptr [r9 + 0x12345678]
 		Emit4(Constant4() & vm->dataMask);
 #else
@@ -785,7 +785,7 @@
 
 	case OP_LOAD2:
 		EmitPushStack(vm);
-#ifdef idx64
+#if idx64
 		EmitRexString(0x41, "0F B7 81");		// movzx eax, word ptr [r9 + 0x12345678]
 		Emit4(Constant4() & vm->dataMask);
 #else
@@ -801,7 +801,7 @@
 
 	case OP_LOAD1:
 		EmitPushStack(vm);
-#ifdef idx64
+#if idx64
 		EmitRexString(0x41, "0F B6 81");		// movzx eax, byte ptr [r9 + 0x12345678]
 		Emit4(Constant4() & vm->dataMask);
 #else
@@ -817,7 +817,7 @@
 
 	case OP_STORE4:
 		EmitMovEAXStack(vm, (vm->dataMask & ~3));
-#ifdef idx64
+#if idx64
 		EmitRexString(0x41, "C7 04 01");		// mov dword ptr [r9 + eax], 0x12345678
 		Emit4(Constant4());
 #else
@@ -832,7 +832,7 @@
 
 	case OP_STORE2:
 		EmitMovEAXStack(vm, (vm->dataMask & ~1));
-#ifdef idx64
+#if idx64
 		Emit1(0x66);					// mov word ptr [r9 + eax], 0x1234
 		EmitRexString(0x41, "C7 04 01");
 		Emit2(Constant4());
@@ -849,7 +849,7 @@
 
 	case OP_STORE1:
 		EmitMovEAXStack(vm, vm->dataMask);
-#ifdef idx64
+#if idx64
 		EmitRexString(0x41, "C6 04 01");		// mov byte [r9 + eax], 0x12
 		Emit1(Constant4());
 #else
@@ -1208,7 +1208,7 @@
 			EmitString("81 C2");				// add edx, 0x12345678
 			Emit4((Constant1() & 0xFF));
 			MASK_REG("E2", vm->dataMask);			// and edx, 0x12345678
-#ifdef idx64
+#if idx64
 			EmitRexString(0x41, "89 04 11");		// mov dword ptr [r9 + edx], eax
 #else
 			EmitString("89 82");				// mov dword ptr [edx + 0x12345678], eax
@@ -1246,7 +1246,7 @@
 				EmitMovEDXStack(vm, vm->dataMask);
 				if(v == 1 && oc0 == oc1 && pop0 == OP_LOCAL && pop1 == OP_LOCAL)
 				{
-#ifdef idx64
+#if idx64
 					EmitRexString(0x41, "FF 04 11");	// inc dword ptr [r9 + edx]
 #else
 					EmitString("FF 82");			// inc dword ptr [edx + 0x12345678]
@@ -1255,7 +1255,7 @@
 				}
 				else
 				{
-#ifdef idx64
+#if idx64
 					EmitRexString(0x41, "8B 04 11");	// mov eax, dword ptr [r9 + edx]
 #else
 					EmitString("8B 82");			// mov eax, dword ptr [edx + 0x12345678]
@@ -1266,7 +1266,7 @@
 					
 					if (oc0 == oc1 && pop0 == OP_LOCAL && pop1 == OP_LOCAL)
 					{
-#ifdef idx64
+#if idx64
 						EmitRexString(0x41, "89 04 11");	// mov dword ptr [r9 + edx], eax
 #else
 						EmitString("89 82");			// mov dword ptr [edx + 0x12345678], eax
@@ -1278,7 +1278,7 @@
 						EmitCommand(LAST_COMMAND_SUB_BL_1);	// sub bl, 1
 						EmitString("8B 14 9F");			// mov edx, dword ptr [edi + ebx * 4]
 						MASK_REG("E2", vm->dataMask);		// and edx, 0x12345678
-#ifdef idx64
+#if idx64
 						EmitRexString(0x41, "89 04 11");	// mov dword ptr [r9 + edx], eax
 #else
 						EmitString("89 82");			// mov dword ptr [edx + 0x12345678], eax
@@ -1308,7 +1308,7 @@
 				EmitMovEDXStack(vm, vm->dataMask);
 				if(v == 1 && oc0 == oc1 && pop0 == OP_LOCAL && pop1 == OP_LOCAL)
 				{
-#ifdef idx64
+#if idx64
 					EmitRexString(0x41, "FF 0C 11");	// dec dword ptr [r9 + edx]
 #else
 					EmitString("FF 8A");			// dec dword ptr [edx + 0x12345678]
@@ -1317,7 +1317,7 @@
 				}
 				else
 				{
-#ifdef idx64
+#if idx64
 					EmitRexString(0x41, "8B 04 11");	// mov eax, dword ptr [r9 + edx]
 #else
 					EmitString("8B 82");			// mov eax, dword ptr [edx + 0x12345678]
@@ -1328,7 +1328,7 @@
 					
 					if(oc0 == oc1 && pop0 == OP_LOCAL && pop1 == OP_LOCAL)
 					{
-#ifdef idx64
+#if idx64
 						EmitRexString(0x41, "89 04 11");	// mov dword ptr [r9 + edx], eax
 #else
 						EmitString("89 82");			// mov dword ptr [edx + 0x12345678], eax
@@ -1340,7 +1340,7 @@
 						EmitCommand(LAST_COMMAND_SUB_BL_1);	// sub bl, 1
 						EmitString("8B 14 9F");			// mov edx, dword ptr [edi + ebx * 4]
 						MASK_REG("E2", vm->dataMask);		// and edx, 0x12345678
-#ifdef idx64
+#if idx64
 						EmitRexString(0x41, "89 04 11");	// mov dword ptr [r9 + edx], eax
 #else
 						EmitString("89 82");			// mov dword ptr [edx + 0x12345678], eax
@@ -1360,7 +1360,7 @@
 				compiledOfs -= 3;
 				vm->instructionPointers[instruction - 1] = compiledOfs;
 				MASK_REG("E0", vm->dataMask);			// and eax, 0x12345678
-#ifdef idx64
+#if idx64
 				EmitRexString(0x41, "8B 04 01");		// mov eax, dword ptr [r9 + eax]
 #else
 				EmitString("8B 80");				// mov eax, dword ptr [eax + 0x1234567]
@@ -1371,7 +1371,7 @@
 			}
 			
 			EmitMovEAXStack(vm, vm->dataMask);
-#ifdef idx64
+#if idx64
 			EmitRexString(0x41, "8B 04 01");		// mov eax, dword ptr [r9 + eax]
 #else
 			EmitString("8B 80");				// mov eax, dword ptr [eax + 0x12345678]
@@ -1381,7 +1381,7 @@
 			break;
 		case OP_LOAD2:
 			EmitMovEAXStack(vm, vm->dataMask);
-#ifdef idx64
+#if idx64
 			EmitRexString(0x41, "0F B7 04 01");		// movzx eax, word ptr [r9 + eax]
 #else
 			EmitString("0F B7 80");				// movzx eax, word ptr [eax + 0x12345678]
@@ -1391,7 +1391,7 @@
 			break;
 		case OP_LOAD1:
 			EmitMovEAXStack(vm, vm->dataMask);
-#ifdef idx64
+#if idx64
 			EmitRexString(0x41, "0F B6 04 01");		// movzx eax, byte ptr [r9 + eax]
 #else
 			EmitString("0F B6 80");				// movzx eax, byte ptr [eax + 0x12345678]
@@ -1403,7 +1403,7 @@
 			EmitMovEAXStack(vm, 0);	
 			EmitString("8B 54 9F FC");			// mov edx, dword ptr -4[edi + ebx * 4]
 			MASK_REG("E2", vm->dataMask & ~3);		// and edx, 0x12345678
-#ifdef idx64
+#if idx64
 			EmitRexString(0x41, "89 04 11");		// mov dword ptr [r9 + edx], eax
 #else
 			EmitString("89 82");				// mov dword ptr [edx + 0x12345678], eax
@@ -1415,7 +1415,7 @@
 			EmitMovEAXStack(vm, 0);	
 			EmitString("8B 54 9F FC");			// mov edx, dword ptr -4[edi + ebx * 4]
 			MASK_REG("E2", vm->dataMask & ~1);		// and edx, 0x12345678
-#ifdef idx64
+#if idx64
 			Emit1(0x66);					// mov word ptr [r9 + edx], eax
 			EmitRexString(0x41, "89 04 11");
 #else
@@ -1428,7 +1428,7 @@
 			EmitMovEAXStack(vm, 0);	
 			EmitString("8B 54 9F FC");			// mov edx, dword ptr -4[edi + ebx * 4]
 			MASK_REG("E2", vm->dataMask);			// and edx, 0x12345678
-#ifdef idx64
+#if idx64
 			EmitRexString(0x41, "88 04 11");		// mov byte ptr [r9 + edx], eax
 #else
 			EmitString("88 82");				// mov byte ptr [edx + 0x12345678], eax
@@ -1651,7 +1651,7 @@
 			EmitString("8B 44 9F 04");		// mov eax, dword ptr 4[edi + ebx * 4]
 			EmitString("81 F8");			// cmp eax, vm->instructionCount
 			Emit4(vm->instructionCount);
-#ifdef idx64
+#if idx64
 			EmitString("73 04");			// jae +4
 			EmitRexString(0x49, "FF 24 C0");        // jmp qword ptr [r8 + eax * 8]
 #else
@@ -1779,7 +1779,7 @@
 	opStackOfs = 0;
 
 #ifdef _MSC_VER
-  #ifdef idx64
+  #if idx64
 	opStackOfs = qvmcall64(&programStack, opStack, vm->instructionPointers, vm->dataBase);
   #else
 	__asm
@@ -1799,7 +1799,7 @@
 		popad
 	}
   #endif		
-#elif defined(idx64)
+#elif idx64
 	__asm__ volatile(
 		"movq %5, %%rax\r\n"
 		"movq %3, %%r8\r\n"

Modified: trunk/code/sys/sys_win32.c
===================================================================
--- trunk/code/sys/sys_win32.c	2011-06-15 03:36:11 UTC (rev 2025)
+++ trunk/code/sys/sys_win32.c	2011-06-15 14:10:20 UTC (rev 2026)
@@ -68,7 +68,7 @@
 #define FPUCWMASK1 (_MCW_RC | _MCW_EM)
 #define FPUCW (_RC_CHOP | _MCW_EM | _PC_53)
 
-#ifdef idx64
+#if idx64
 #define FPUCWMASK	(FPUCWMASK1)
 #else
 #define FPUCWMASK	(FPUCWMASK1 | _MCW_PC)



More information about the quake3-commits mailing list