[quake3-commits] r1613 - trunk/code/qcommon

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Mon Sep 14 23:42:30 EDT 2009


Author: icculus
Date: 2009-09-14 23:42:29 -0400 (Mon, 14 Sep 2009)
New Revision: 1613

Modified:
   trunk/code/qcommon/vm_x86.c
Log:
Added Intel CC compatibility to vm_x86.c's inline asm.

  Fixes Bugzilla #3338.


Modified: trunk/code/qcommon/vm_x86.c
===================================================================
--- trunk/code/qcommon/vm_x86.c	2009-09-15 03:19:43 UTC (rev 1612)
+++ trunk/code/qcommon/vm_x86.c	2009-09-15 03:42:29 UTC (rev 1613)
@@ -176,9 +176,15 @@
 #else //!_MSC_VER
 
 #if defined(__MINGW32__) || defined(MACOS_X) // _ is prepended to compiled symbols
-#	define CMANG(sym) "_"#sym
+#define CMANGVAR(sym) "_"#sym
+#define CMANGFUNC(sym) "_"#sym
 #else
-#	define CMANG(sym) #sym
+#if defined(__ICC) && (__ICC >= 1000)
+#define CMANGVAR(sym) #sym".0"
+#define CMANGFUNC(sym) #sym
+#else
+#define CMANGVAR(sym) #sym
+#define CMANGFUNC(sym) #sym
 #endif
 
 static void __attribute__((cdecl, used)) CallAsmCall(int const syscallNum,
@@ -199,18 +205,18 @@
 	".text\n\t"
 	".p2align 4,,15\n\t"
 #if defined __ELF__
-	".type " CMANG(AsmCall) ", @function\n"
+	".type " CMANGFUNC(AsmCall) ", @function\n"
 #endif
-	CMANG(AsmCall) ":\n\t"
+	CMANGFUNC(AsmCall) ":\n\t"
 	"movl  (%edi), %eax\n\t"
 	"subl  $4, %edi\n\t"
 	"testl %eax, %eax\n\t"
 	"jl    0f\n\t"
 	"shll  $2, %eax\n\t"
-	"addl  " CMANG(instructionPointers) ", %eax\n\t"
+	"addl  " CMANGVAR(instructionPointers) ", %eax\n\t"
 	"call  *(%eax)\n\t"
 	"movl  (%edi), %eax\n\t"
-	"andl  " CMANG(callMask) ", %eax\n\t"
+	"andl  " CMANGVAR(callMask) ", %eax\n\t"
 	"ret\n"
 	"0:\n\t" // system call
 	"notl  %eax\n\t"
@@ -221,7 +227,7 @@
 	"pushl %edi\n\t" // opStack
 	"pushl %esi\n\t" // programStack
 	"pushl %eax\n\t" // syscallNum
-	"call  " CMANG(CallAsmCall) "\n\t"
+	"call  " CMANGFUNC(CallAsmCall) "\n\t"
 	"addl  $12, %esp\n\t"
 	"popl  %ecx\n\t"
 	"movl  %ebp, %esp\n\t"
@@ -229,7 +235,7 @@
 	"addl  $4, %edi\n\t"
 	"ret\n\t"
 #if defined __ELF__
-	".size " CMANG(AsmCall)", .-" CMANG(AsmCall)
+	".size " CMANGFUNC(AsmCall)", .-" CMANGFUNC(AsmCall)
 #endif
 );
 



More information about the quake3-commits mailing list