Index: code/qcommon/vm_x86.c =================================================================== --- code/qcommon/vm_x86.c (revision 803) +++ code/qcommon/vm_x86.c (working copy) @@ -211,8 +211,8 @@ // Note the C space function AsmCall is never actually called, and is in fact // arbitrarily named (though this is not true for the MSC version). When a vm // makes a system call, control jumps straight to the doAsmCall label. -void AsmCall( void ) { - asm( CMANG(doAsmCall) ": \n\t" \ +void doAsmCall( void ) { + asm( " pushal \n\t" \ " movl (%%edi),%%eax \n\t" \ " subl $4,%%edi \n\t" \ " orl %%eax,%%eax \n\t" \ @@ -238,7 +238,7 @@ " popl %%ecx \n\t" \ " addl $4,%%edi \n\t" \ "doret: \n\t" \ - " ret \n\t" \ + " popal \n\t" \ : "=rm" (callSyscallNum), "=rm" (callProgramStack), "=rm" (callOpStack) \ : "m" (instructionPointers) \ : "ax", "di", "si", "cx" \ @@ -1213,13 +1213,12 @@ " movl %%esi,%0 \n" \ " movl %%edi,%1 \n" \ " popal \n" \ - : "=m" (memProgramStack), "=m" (memOpStack) \ + : "=m" (memProgramStack), "=m" (opStack) \ : "m" (memEntryPoint), "m" (memProgramStack), "m" (memOpStack) \ : "si", "di" \ ); programStack = memProgramStack; - opStack = memOpStack; } #endif