[Vm-dev] [commit] r2503 - Filter-out attempts to create MNU pics with new selectors. Fixes

commits at squeakvm.org commits at squeakvm.org
Tue Oct 25 18:52:30 UTC 2011


Author: eliot
Date: 2011-10-25 11:52:29 -0700 (Tue, 25 Oct 2011)
New Revision: 2503

Modified:
   branches/Cog/nscogsrc/vm/cogit.c
   branches/Cog/nscogsrc/vm/cogit.h
   branches/Cog/nscogsrc/vm/cogmethod.h
   branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
   branches/Cog/src/vm/cogit.c
   branches/Cog/src/vm/cogit.h
   branches/Cog/src/vm/cogmethod.h
Log:
Filter-out attempts to create MNU pics with new selectors.  Fixes
Stephane Rollandin's crash of 21/10/2011:
	[((Compiler new evaluate: ('Beuh' ifNuk: [yo]))
		on: Error       
		do: [:ex | ex description]) printString] fork


Modified: branches/Cog/nscogsrc/vm/cogit.c
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.c	2011-10-19 18:52:10 UTC (rev 2502)
+++ branches/Cog/nscogsrc/vm/cogit.c	2011-10-25 18:52:29 UTC (rev 2503)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9
+	CCodeGenerator VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9
+	StackToRegisterMappingCogit VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -184,7 +184,7 @@
 #define ECX 1
 #define EDI 7
 #define EDX 2
-#define EncounteredUnknownBytecode -3
+#define EncounteredUnknownBytecode -4
 #define ESI 6
 #define ESP 4
 #define Fill16 5
@@ -261,10 +261,10 @@
 #define LongSizeMask 0xFFFFFFFCUL
 #define MapEnd 0
 #define MaxCompiledPrimitiveIndex 222
-#define MaxNegativeErrorCode -3
+#define MaxNegativeErrorCode -4
 #define MaxNumArgs 15
 #define MaxUnitDisplacement 31
-#define MaxUnreportableError -2
+#define MaxUnreportableError -3
 #define MaxX2NDisplacement 992
 #define MethodCacheClass 2
 #define MethodCacheMask 0xFFC
@@ -352,6 +352,7 @@
 #define XMM7L 14
 #define XorCwR 94
 #define XorRR 80
+#define YoungSelectorInPIC -3
 
 
 /*** Function Prototypes ***/
@@ -3130,6 +3131,9 @@
     sqInt size;
     sqInt startAddress;
 
+	if (isYoung(selector)) {
+		return 0;
+	}
 	compilationBreakpoint(selector, lengthOf(selector));
 	assert(endCPICCase0 != null);
 	startAddress = allocate(closedPICSize);
@@ -3205,6 +3209,9 @@
     sqInt size;
     sqInt startAddress;
 
+	if (isYoung(selector)) {
+		return ((CogMethod *) YoungSelectorInPIC);
+	}
 	compilationBreakpoint(selector, lengthOf(selector));
 	startAddress = allocate(closedPICSize);
 	if (startAddress == 0) {

Modified: branches/Cog/nscogsrc/vm/cogit.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.h	2011-10-19 18:52:10 UTC (rev 2502)
+++ branches/Cog/nscogsrc/vm/cogit.h	2011-10-25 18:52:29 UTC (rev 2503)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9
+	CCodeGenerator VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba
  */
 
 

Modified: branches/Cog/nscogsrc/vm/cogmethod.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogmethod.h	2011-10-19 18:52:10 UTC (rev 2502)
+++ branches/Cog/nscogsrc/vm/cogmethod.h	2011-10-25 18:52:29 UTC (rev 2503)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9
+	CCodeGenerator VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba
  */
 
 typedef struct {


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Wed Oct 19 11:51:32 PDT 2011
   + Tue Oct 25 11:25:05 PDT 2011

Modified: branches/Cog/src/vm/cogit.c
===================================================================
--- branches/Cog/src/vm/cogit.c	2011-10-19 18:52:10 UTC (rev 2502)
+++ branches/Cog/src/vm/cogit.c	2011-10-25 18:52:29 UTC (rev 2503)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9
+	CCodeGenerator VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9
+	StackToRegisterMappingCogit VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -184,7 +184,7 @@
 #define ECX 1
 #define EDI 7
 #define EDX 2
-#define EncounteredUnknownBytecode -3
+#define EncounteredUnknownBytecode -4
 #define ESI 6
 #define ESP 4
 #define Fill16 5
@@ -261,10 +261,10 @@
 #define LongSizeMask 0xFFFFFFFCUL
 #define MapEnd 0
 #define MaxCompiledPrimitiveIndex 222
-#define MaxNegativeErrorCode -3
+#define MaxNegativeErrorCode -4
 #define MaxNumArgs 15
 #define MaxUnitDisplacement 31
-#define MaxUnreportableError -2
+#define MaxUnreportableError -3
 #define MaxX2NDisplacement 992
 #define MethodCacheClass 2
 #define MethodCacheMask 0xFFC
@@ -352,6 +352,7 @@
 #define XMM7L 14
 #define XorCwR 94
 #define XorRR 80
+#define YoungSelectorInPIC -3
 
 
 /*** Function Prototypes ***/
@@ -3053,6 +3054,9 @@
     sqInt size;
     sqInt startAddress;
 
+	if (isYoung(selector)) {
+		return 0;
+	}
 	compilationBreakpoint(selector, lengthOf(selector));
 	assert(endCPICCase0 != null);
 	startAddress = allocate(closedPICSize);
@@ -3128,6 +3132,9 @@
     sqInt size;
     sqInt startAddress;
 
+	if (isYoung(selector)) {
+		return ((CogMethod *) YoungSelectorInPIC);
+	}
 	compilationBreakpoint(selector, lengthOf(selector));
 	startAddress = allocate(closedPICSize);
 	if (startAddress == 0) {

Modified: branches/Cog/src/vm/cogit.h
===================================================================
--- branches/Cog/src/vm/cogit.h	2011-10-19 18:52:10 UTC (rev 2502)
+++ branches/Cog/src/vm/cogit.h	2011-10-25 18:52:29 UTC (rev 2503)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9
+	CCodeGenerator VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba
  */
 
 

Modified: branches/Cog/src/vm/cogmethod.h
===================================================================
--- branches/Cog/src/vm/cogmethod.h	2011-10-19 18:52:10 UTC (rev 2502)
+++ branches/Cog/src/vm/cogmethod.h	2011-10-25 18:52:29 UTC (rev 2503)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9
+	CCodeGenerator VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba
  */
 
 typedef struct {



More information about the Vm-dev mailing list