[Vm-dev] [commit][3424] CogVM source as per VMMaker.oscog-eem.1436

commits at squeakvm.org commits at squeakvm.org
Tue Aug 18 03:53:09 UTC 2015


Revision: 3424
Author:   eliot
Date:     2015-08-17 20:53:06 -0700 (Mon, 17 Aug 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1436

Fix the bug introduced by the fix to primitive function invocation in
VMMaker.oscog-eem.1351  The fix correctly changd primitjve code to set the
primitiveFunctionPointer appropriately when a jitted external primitive was
rebound, but it didn't remember to void the jit's record of the offset of the
assignment that sets the primitiveFunctionPointer when switching between
profiling andf non-profiling regimes, so that the address from the wrong regime
would remain and be used to smash prmitive code.  The fix is simply to void the
externalSetPrimOffsets in voidCogCompiledCode.

This fixes the bug whose symptom is a hard VM crash when using
AndreasSystemProfilier.

Modified Paths:
--------------
    branches/Cog/nsspursrc/vm/cogit.h
    branches/Cog/nsspursrc/vm/cogitARMv5.c
    branches/Cog/nsspursrc/vm/cogitIA32.c
    branches/Cog/spursistasrc/vm/cogit.h
    branches/Cog/spursistasrc/vm/cogitARMv5.c
    branches/Cog/spursistasrc/vm/cogitIA32.c
    branches/Cog/spursrc/vm/cogit.h
    branches/Cog/spursrc/vm/cogitARMv5.c
    branches/Cog/spursrc/vm/cogitIA32.c
    branches/Cog/src/vm/cogit.h
    branches/Cog/src/vm/cogitARMv5.c
    branches/Cog/src/vm/cogitIA32.c

Property Changed:
----------------
    branches/Cog/platforms/Cross/vm/sqSCCSVersion.h

Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h	2015-08-18 00:29:33 UTC (rev 3423)
+++ branches/Cog/nsspursrc/vm/cogit.h	2015-08-18 03:53:06 UTC (rev 3424)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1435 uuid: 114c4214-dede-4f25-9bbb-c912623d0ef4
+	CCodeGenerator VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
  */
 
 

Modified: branches/Cog/nsspursrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitARMv5.c	2015-08-18 00:29:33 UTC (rev 3423)
+++ branches/Cog/nsspursrc/vm/cogitARMv5.c	2015-08-18 03:53:06 UTC (rev 3424)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7
+	CCodeGenerator VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -22936,6 +22936,7 @@
 	for (i = 0; i <= MaxNumArgs; i += 1) {
 		externalPrimJumpOffsets[i] = null;
 		externalPrimCallOffsets[i] = null;
+		externalSetPrimOffsets[i] = null;
 	}
 }
 

Modified: branches/Cog/nsspursrc/vm/cogitIA32.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitIA32.c	2015-08-18 00:29:33 UTC (rev 3423)
+++ branches/Cog/nsspursrc/vm/cogitIA32.c	2015-08-18 03:53:06 UTC (rev 3424)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7
+	CCodeGenerator VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -9991,12 +9991,12 @@
 generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
 {
     unsigned char annotation;
-    sqInt delta;
+    usqInt delta;
     sqInt i;
     AbstractInstruction *instruction;
     sqInt length;
-    sqInt location;
-    sqInt mapEntry;
+    usqInt location;
+    usqInt mapEntry;
     sqInt maxDelta;
     usqInt mcpc;
 
@@ -22440,6 +22440,7 @@
 	for (i = 0; i <= MaxNumArgs; i += 1) {
 		externalPrimJumpOffsets[i] = null;
 		externalPrimCallOffsets[i] = null;
+		externalSetPrimOffsets[i] = null;
 	}
 }
 


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Mon Aug 17 17:26:28 PDT 2015
   + Mon Aug 17 20:52:15 PDT 2015

Modified: branches/Cog/spursistasrc/vm/cogit.h
===================================================================
--- branches/Cog/spursistasrc/vm/cogit.h	2015-08-18 00:29:33 UTC (rev 3423)
+++ branches/Cog/spursistasrc/vm/cogit.h	2015-08-18 03:53:06 UTC (rev 3424)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1435 uuid: 114c4214-dede-4f25-9bbb-c912623d0ef4
+	CCodeGenerator VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
  */
 
 

Modified: branches/Cog/spursistasrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/spursistasrc/vm/cogitARMv5.c	2015-08-18 00:29:33 UTC (rev 3423)
+++ branches/Cog/spursistasrc/vm/cogitARMv5.c	2015-08-18 03:53:06 UTC (rev 3424)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7
+	CCodeGenerator VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
    from
-	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7
+	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
  */
-static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7 " __DATE__ ;
+static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -9814,7 +9814,7 @@
 {
     sqInt classIndex;
     sqInt i;
-    usqInt pc;
+    sqInt pc;
 
 	pc = (((((usqInt)cPIC)) + firstCPICCaseOffset) + cPICCaseSize) - (jumpLongConditionalByteSize(backEnd));
 	for (i = 2; i <= ((cPIC->cPICNumCases)); i += 1) {
@@ -10736,12 +10736,12 @@
 generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
 {
     unsigned char annotation;
-    usqInt delta;
+    sqInt delta;
     sqInt i;
     AbstractInstruction *instruction;
     sqInt length;
-    usqInt location;
-    usqInt mapEntry;
+    sqInt location;
+    sqInt mapEntry;
     sqInt maxDelta;
     usqInt mcpc;
 
@@ -21943,6 +21943,7 @@
 	for (i = 0; i <= MaxNumArgs; i += 1) {
 		externalPrimJumpOffsets[i] = null;
 		externalPrimCallOffsets[i] = null;
+		externalSetPrimOffsets[i] = null;
 	}
 }
 

Modified: branches/Cog/spursistasrc/vm/cogitIA32.c
===================================================================
--- branches/Cog/spursistasrc/vm/cogitIA32.c	2015-08-18 00:29:33 UTC (rev 3423)
+++ branches/Cog/spursistasrc/vm/cogitIA32.c	2015-08-18 03:53:06 UTC (rev 3424)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7
+	CCodeGenerator VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
    from
-	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7
+	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
  */
-static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7 " __DATE__ ;
+static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -21301,6 +21301,7 @@
 	for (i = 0; i <= MaxNumArgs; i += 1) {
 		externalPrimJumpOffsets[i] = null;
 		externalPrimCallOffsets[i] = null;
+		externalSetPrimOffsets[i] = null;
 	}
 }
 

Modified: branches/Cog/spursrc/vm/cogit.h
===================================================================
--- branches/Cog/spursrc/vm/cogit.h	2015-08-18 00:29:33 UTC (rev 3423)
+++ branches/Cog/spursrc/vm/cogit.h	2015-08-18 03:53:06 UTC (rev 3424)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1435 uuid: 114c4214-dede-4f25-9bbb-c912623d0ef4
+	CCodeGenerator VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
  */
 
 

Modified: branches/Cog/spursrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/spursrc/vm/cogitARMv5.c	2015-08-18 00:29:33 UTC (rev 3423)
+++ branches/Cog/spursrc/vm/cogitARMv5.c	2015-08-18 03:53:06 UTC (rev 3424)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7
+	CCodeGenerator VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -9438,7 +9438,7 @@
 {
     sqInt classIndex;
     sqInt i;
-    sqInt pc;
+    usqInt pc;
 
 	pc = (((((usqInt)cPIC)) + firstCPICCaseOffset) + cPICCaseSize) - (jumpLongConditionalByteSize(backEnd));
 	for (i = 2; i <= ((cPIC->cPICNumCases)); i += 1) {
@@ -10385,12 +10385,12 @@
 generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
 {
     unsigned char annotation;
-    sqInt delta;
+    usqInt delta;
     sqInt i;
     AbstractInstruction *instruction;
     sqInt length;
-    sqInt location;
-    sqInt mapEntry;
+    usqInt location;
+    usqInt mapEntry;
     sqInt maxDelta;
     usqInt mcpc;
 
@@ -20677,6 +20677,7 @@
 	for (i = 0; i <= MaxNumArgs; i += 1) {
 		externalPrimJumpOffsets[i] = null;
 		externalPrimCallOffsets[i] = null;
+		externalSetPrimOffsets[i] = null;
 	}
 }
 

Modified: branches/Cog/spursrc/vm/cogitIA32.c
===================================================================
--- branches/Cog/spursrc/vm/cogitIA32.c	2015-08-18 00:29:33 UTC (rev 3423)
+++ branches/Cog/spursrc/vm/cogitIA32.c	2015-08-18 03:53:06 UTC (rev 3424)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7
+	CCodeGenerator VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -9495,12 +9495,12 @@
 generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
 {
     unsigned char annotation;
-    sqInt delta;
+    usqInt delta;
     sqInt i;
     AbstractInstruction *instruction;
     sqInt length;
-    sqInt location;
-    sqInt mapEntry;
+    usqInt location;
+    usqInt mapEntry;
     sqInt maxDelta;
     usqInt mcpc;
 
@@ -20002,6 +20002,7 @@
 	for (i = 0; i <= MaxNumArgs; i += 1) {
 		externalPrimJumpOffsets[i] = null;
 		externalPrimCallOffsets[i] = null;
+		externalSetPrimOffsets[i] = null;
 	}
 }
 

Modified: branches/Cog/src/vm/cogit.h
===================================================================
--- branches/Cog/src/vm/cogit.h	2015-08-18 00:29:33 UTC (rev 3423)
+++ branches/Cog/src/vm/cogit.h	2015-08-18 03:53:06 UTC (rev 3424)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1435 uuid: 114c4214-dede-4f25-9bbb-c912623d0ef4
+	CCodeGenerator VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
  */
 
 

Modified: branches/Cog/src/vm/cogitARMv5.c
===================================================================
--- branches/Cog/src/vm/cogitARMv5.c	2015-08-18 00:29:33 UTC (rev 3423)
+++ branches/Cog/src/vm/cogitARMv5.c	2015-08-18 03:53:06 UTC (rev 3424)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7
+	CCodeGenerator VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -10181,12 +10181,12 @@
 generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
 {
     unsigned char annotation;
-    sqInt delta;
+    usqInt delta;
     sqInt i;
     AbstractInstruction *instruction;
     sqInt length;
-    sqInt location;
-    sqInt mapEntry;
+    usqInt location;
+    usqInt mapEntry;
     sqInt maxDelta;
     usqInt mcpc;
 
@@ -18686,6 +18686,7 @@
 	for (i = 0; i <= MaxNumArgs; i += 1) {
 		externalPrimJumpOffsets[i] = null;
 		externalPrimCallOffsets[i] = null;
+		externalSetPrimOffsets[i] = null;
 	}
 }
 

Modified: branches/Cog/src/vm/cogitIA32.c
===================================================================
--- branches/Cog/src/vm/cogitIA32.c	2015-08-18 00:29:33 UTC (rev 3423)
+++ branches/Cog/src/vm/cogitIA32.c	2015-08-18 03:53:06 UTC (rev 3424)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7
+	CCodeGenerator VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1432 uuid: 926b6e9a-689f-411b-8b70-baa322cf73e7 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -17686,6 +17686,7 @@
 	for (i = 0; i <= MaxNumArgs; i += 1) {
 		externalPrimJumpOffsets[i] = null;
 		externalPrimCallOffsets[i] = null;
+		externalSetPrimOffsets[i] = null;
 	}
 }
 



More information about the Vm-dev mailing list