aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--code/qcommon/vm_x86.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/code/qcommon/vm_x86.c b/code/qcommon/vm_x86.c
index a1e3317..a86e667 100644
--- a/code/qcommon/vm_x86.c
+++ b/code/qcommon/vm_x86.c
@@ -79,8 +79,8 @@ int qftol0F7F( void );
static int ftolPtr = (int)qftol0F7F;
#endif // FTOL_PTR
-void AsmCall( void );
-static int asmCallPtr = (int)AsmCall;
+void doAsmCall( void );
+static int asmCallPtr = (int)doAsmCall;
#endif // !_WIN32
@@ -197,8 +197,11 @@ void callAsmCall(void)
currentVM = savedVM;
}
+// Note the C space function AsmCall is never actually called, and is in fact
+// arbitarily 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(AsmCall) ": \n\t" \
+ asm( CMANG(doAsmCall) ": \n\t" \
" movl (%%edi),%%eax \n\t" \
" subl $4,%%edi \n\t" \
" orl %%eax,%%eax \n\t" \