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

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Wed Jun 22 20:00:28 EDT 2011


Author: thilo
Date: 2011-06-22 20:00:27 -0400 (Wed, 22 Jun 2011)
New Revision: 2054

Modified:
   trunk/code/qcommon/vm_x86.c
Log:
Allow recursive VM entry for VM operations as well


Modified: trunk/code/qcommon/vm_x86.c
===================================================================
--- trunk/code/qcommon/vm_x86.c	2011-06-22 23:00:36 UTC (rev 2053)
+++ trunk/code/qcommon/vm_x86.c	2011-06-23 00:00:27 UTC (rev 2054)
@@ -432,6 +432,11 @@
 		);
 #endif
 
+	// save currentVM so as to allow for recursive VM entry
+	savedVM = currentVM;
+	// modify VM stack pointer for recursive VM entry
+	currentVM->programStack = programStack - 4;
+
 	if(syscallNum < 0)
 	{
 		int *data;
@@ -440,13 +445,8 @@
 		intptr_t args[11];
 #endif
 		
-		// save currentVM so as to allow for recursive VM entry
-		savedVM = currentVM;
 		data = (int *) (savedVM->dataBase + programStack + 4);
 
-		// modify VM stack pointer for recursive VM entry
-		savedVM->programStack = programStack - 4;
-
 #if idx64
 		args[0] = ~syscallNum;
 		for(index = 1; index < ARRAY_LEN(args); index++)
@@ -457,8 +457,6 @@
 		data[0] = ~syscallNum;
 		opStackBase[opStackOfs + 1] = savedVM->systemCall(data);
 #endif
-
-		currentVM = savedVM;
 	}
 	else
 	{
@@ -478,6 +476,8 @@
 		break;
 		}
 	}
+
+	currentVM = savedVM;
 }
 
 /*



More information about the quake3-commits mailing list