[Vm-dev] [commit] r2508 - CogVM source as per VMMaker.oscog-eem.137.

commits at squeakvm.org commits at squeakvm.org
Wed Nov 9 19:41:07 UTC 2011


Author: eliot
Date: 2011-11-09 11:41:06 -0800 (Wed, 09 Nov 2011)
New Revision: 2508

Modified:
   branches/Cog/nscogsrc/vm/cointerp.c
   branches/Cog/nscogsrc/vm/cointerp.h
   branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
   branches/Cog/nscogsrc/vm/interp.h
   branches/Cog/nscogsrc/vm/vmCallback.h
   branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
   branches/Cog/src/vm/cointerp.c
   branches/Cog/src/vm/cointerp.h
   branches/Cog/src/vm/cointerpmt.c
   branches/Cog/src/vm/cointerpmt.h
   branches/Cog/src/vm/gcc3x-cointerp.c
   branches/Cog/src/vm/gcc3x-cointerpmt.c
   branches/Cog/src/vm/interp.h
   branches/Cog/src/vm/vmCallback.h
Log:
CogVM source as per VMMaker.oscog-eem.137.

Fix primitiveContextAt[Put] for non-contexts (ContextPart subclasses
other than MethodContext including BlockContext).  stObjectAt[Put]
could fail so args should be popped only on success.  Fixes failures
in ClosureCompilerTest>testSourceRangeAccessForBlueBookInjectInto
as of VMMaker.oscog-eem.118.

Add convenient shortPrintFrame:AndNCallers: for debugging.


Modified: branches/Cog/nscogsrc/vm/cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.c	2011-11-09 00:20:29 UTC (rev 2507)
+++ branches/Cog/nscogsrc/vm/cointerp.c	2011-11-09 19:41:06 UTC (rev 2508)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
    from
-	CoInterpreter VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CoInterpreter VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1059,6 +1059,7 @@
 static void shortPrintContext(sqInt aContext);
 static void shortPrintFrameAndCallers(char *theFP);
 static void shortPrintFrame(char *theFP);
+void shortPrintFrameAndNCallers(char *theFP, sqInt n);
 static void shortPrintOop(sqInt oop);
 static sqInt shortReversePrintFrameAndCallers(char *aFramePointer);
 void showDisplayBitsLeftTopRightBottom(sqInt aForm, sqInt l, sqInt t, sqInt r, sqInt b);
@@ -1897,7 +1898,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.136";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.137";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -26385,10 +26386,11 @@
 		/* might be an instance of a subclass */
 
 		value = stObjectat(aContext, index);
-		/* begin pop:thenPush: */
-		longAtput((sp = GIV(stackPointer) + ((GIV(argumentCount) - 1) * BytesPerWord)), value);
-		GIV(stackPointer) = sp;
-		return;
+		(!GIV(primFailCode)
+			? (/* begin pop:thenPush: */
+				longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), value),
+				(GIV(stackPointer) = sp))
+			: 0); return;
 	}
 	/* begin externalWriteBackHeadFramePointers */
 	assert((GIV(framePointer) - GIV(stackPointer)) < LargeContextSize);
@@ -26539,10 +26541,11 @@
 	index = (index >> 1);
 	if (!(((((usqInt) hdr) >> 12) & 31) == ClassMethodContextCompactIndex)) {
 		stObjectatput(aContext, index, value);
-		/* begin pop:thenPush: */
-		longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), value);
-		GIV(stackPointer) = sp;
-		return null;
+		return (!GIV(primFailCode)
+			? (/* begin pop:thenPush: */
+				longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), value),
+				(GIV(stackPointer) = sp))
+			: 0);
 	}
 	/* begin externalWriteBackHeadFramePointers */
 	assert((GIV(framePointer) - GIV(stackPointer)) < LargeContextSize);
@@ -41992,6 +41995,17 @@
 	shortPrintOop(rcvr);
 }
 
+void
+shortPrintFrameAndNCallers(char *theFP, sqInt n)
+{   DECL_MAYBE_SQ_GLOBAL_STRUCT
+	if ((n > 0)
+	 && ((((((usqInt)theFP)) & (BytesPerWord - 1)) == 0)
+	 && ((((((usqInt)theFP)) >= (((usqInt)(GIV(stackBasePlus1) - 1)))) && ((((usqInt)theFP)) <= (((usqInt)GIV(pages)))))))) {
+		shortPrintFrame(theFP);
+		shortPrintFrameAndNCallers(frameCallerFP(theFP), n - 1);
+	}
+}
+
 static void
 shortPrintOop(sqInt oop)
 {

Modified: branches/Cog/nscogsrc/vm/cointerp.h
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.h	2011-11-09 00:20:29 UTC (rev 2507)
+++ branches/Cog/nscogsrc/vm/cointerp.h	2011-11-09 19:41:06 UTC (rev 2508)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
  */
 
 
@@ -166,6 +166,7 @@
 void scheduleIncrementalGC(void);
 void setBreakSelector(char *aString);
 void setNextWakeupUsecs(usqLong value);
+void shortPrintFrameAndNCallers(char *theFP, sqInt n);
 sqInt signalNoResume(sqInt aSemaphore);
 usqInt sizeOfAlienData(sqInt oop);
 sqInt specialSelectorNumArgs(sqInt index);

Modified: branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/gcc3x-cointerp.c	2011-11-09 00:20:29 UTC (rev 2507)
+++ branches/Cog/nscogsrc/vm/gcc3x-cointerp.c	2011-11-09 19:41:06 UTC (rev 2508)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
    from
-	CoInterpreter VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CoInterpreter VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1062,6 +1062,7 @@
 static void shortPrintContext(sqInt aContext);
 static void shortPrintFrameAndCallers(char *theFP);
 static void shortPrintFrame(char *theFP);
+void shortPrintFrameAndNCallers(char *theFP, sqInt n);
 static void shortPrintOop(sqInt oop);
 static sqInt shortReversePrintFrameAndCallers(char *aFramePointer);
 void showDisplayBitsLeftTopRightBottom(sqInt aForm, sqInt l, sqInt t, sqInt r, sqInt b);
@@ -1900,7 +1901,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.136";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.137";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -26389,10 +26390,11 @@
 		/* might be an instance of a subclass */
 
 		value = stObjectat(aContext, index);
-		/* begin pop:thenPush: */
-		longAtput((sp = GIV(stackPointer) + ((GIV(argumentCount) - 1) * BytesPerWord)), value);
-		GIV(stackPointer) = sp;
-		return;
+		(!GIV(primFailCode)
+			? (/* begin pop:thenPush: */
+				longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), value),
+				(GIV(stackPointer) = sp))
+			: 0); return;
 	}
 	/* begin externalWriteBackHeadFramePointers */
 	assert((GIV(framePointer) - GIV(stackPointer)) < LargeContextSize);
@@ -26543,10 +26545,11 @@
 	index = (index >> 1);
 	if (!(((((usqInt) hdr) >> 12) & 31) == ClassMethodContextCompactIndex)) {
 		stObjectatput(aContext, index, value);
-		/* begin pop:thenPush: */
-		longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), value);
-		GIV(stackPointer) = sp;
-		return null;
+		return (!GIV(primFailCode)
+			? (/* begin pop:thenPush: */
+				longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), value),
+				(GIV(stackPointer) = sp))
+			: 0);
 	}
 	/* begin externalWriteBackHeadFramePointers */
 	assert((GIV(framePointer) - GIV(stackPointer)) < LargeContextSize);
@@ -41996,6 +41999,17 @@
 	shortPrintOop(rcvr);
 }
 
+void
+shortPrintFrameAndNCallers(char *theFP, sqInt n)
+{   DECL_MAYBE_SQ_GLOBAL_STRUCT
+	if ((n > 0)
+	 && ((((((usqInt)theFP)) & (BytesPerWord - 1)) == 0)
+	 && ((((((usqInt)theFP)) >= (((usqInt)(GIV(stackBasePlus1) - 1)))) && ((((usqInt)theFP)) <= (((usqInt)GIV(pages)))))))) {
+		shortPrintFrame(theFP);
+		shortPrintFrameAndNCallers(frameCallerFP(theFP), n - 1);
+	}
+}
+
 static void
 shortPrintOop(sqInt oop)
 {

Modified: branches/Cog/nscogsrc/vm/interp.h
===================================================================
--- branches/Cog/nscogsrc/vm/interp.h	2011-11-09 00:20:29 UTC (rev 2507)
+++ branches/Cog/nscogsrc/vm/interp.h	2011-11-09 19:41:06 UTC (rev 2508)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/nscogsrc/vm/vmCallback.h
===================================================================
--- branches/Cog/nscogsrc/vm/vmCallback.h	2011-11-09 00:20:29 UTC (rev 2507)
+++ branches/Cog/nscogsrc/vm/vmCallback.h	2011-11-09 19:41:06 UTC (rev 2508)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
  */
 
 #define VM_CALLBACK_INC 1


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Tue Nov  8 16:18:41 PST 2011
   + Wed Nov  9 11:39:06 PST 2011

Modified: branches/Cog/src/vm/cointerp.c
===================================================================
--- branches/Cog/src/vm/cointerp.c	2011-11-09 00:20:29 UTC (rev 2507)
+++ branches/Cog/src/vm/cointerp.c	2011-11-09 19:41:06 UTC (rev 2508)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
    from
-	CoInterpreter VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CoInterpreter VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1050,6 +1050,7 @@
 static void shortPrintContext(sqInt aContext);
 static void shortPrintFrameAndCallers(char *theFP);
 static void shortPrintFrame(char *theFP);
+void shortPrintFrameAndNCallers(char *theFP, sqInt n);
 static void shortPrintOop(sqInt oop);
 static sqInt shortReversePrintFrameAndCallers(char *aFramePointer);
 void showDisplayBitsLeftTopRightBottom(sqInt aForm, sqInt l, sqInt t, sqInt r, sqInt b);
@@ -1888,7 +1889,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.136]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.137]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -25703,10 +25704,11 @@
 		/* might be an instance of a subclass */
 
 		value = stObjectat(aContext, index);
-		/* begin pop:thenPush: */
-		longAtput((sp = GIV(stackPointer) + ((GIV(argumentCount) - 1) * BytesPerWord)), value);
-		GIV(stackPointer) = sp;
-		return;
+		(!GIV(primFailCode)
+			? (/* begin pop:thenPush: */
+				longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), value),
+				(GIV(stackPointer) = sp))
+			: 0); return;
 	}
 	/* begin externalWriteBackHeadFramePointers */
 	assert((GIV(framePointer) - GIV(stackPointer)) < LargeContextSize);
@@ -25857,10 +25859,11 @@
 	index = (index >> 1);
 	if (!(((((usqInt) hdr) >> 12) & 31) == ClassMethodContextCompactIndex)) {
 		stObjectatput(aContext, index, value);
-		/* begin pop:thenPush: */
-		longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), value);
-		GIV(stackPointer) = sp;
-		return null;
+		return (!GIV(primFailCode)
+			? (/* begin pop:thenPush: */
+				longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), value),
+				(GIV(stackPointer) = sp))
+			: 0);
 	}
 	/* begin externalWriteBackHeadFramePointers */
 	assert((GIV(framePointer) - GIV(stackPointer)) < LargeContextSize);
@@ -41310,6 +41313,17 @@
 	shortPrintOop(rcvr);
 }
 
+void
+shortPrintFrameAndNCallers(char *theFP, sqInt n)
+{   DECL_MAYBE_SQ_GLOBAL_STRUCT
+	if ((n > 0)
+	 && ((((((usqInt)theFP)) & (BytesPerWord - 1)) == 0)
+	 && ((((((usqInt)theFP)) >= (((usqInt)(GIV(stackBasePlus1) - 1)))) && ((((usqInt)theFP)) <= (((usqInt)GIV(pages)))))))) {
+		shortPrintFrame(theFP);
+		shortPrintFrameAndNCallers(frameCallerFP(theFP), n - 1);
+	}
+}
+
 static void
 shortPrintOop(sqInt oop)
 {

Modified: branches/Cog/src/vm/cointerp.h
===================================================================
--- branches/Cog/src/vm/cointerp.h	2011-11-09 00:20:29 UTC (rev 2507)
+++ branches/Cog/src/vm/cointerp.h	2011-11-09 19:41:06 UTC (rev 2508)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
  */
 
 
@@ -166,6 +166,7 @@
 void scheduleIncrementalGC(void);
 void setBreakSelector(char *aString);
 void setNextWakeupUsecs(usqLong value);
+void shortPrintFrameAndNCallers(char *theFP, sqInt n);
 sqInt signalNoResume(sqInt aSemaphore);
 usqInt sizeOfAlienData(sqInt oop);
 sqInt specialSelectorNumArgs(sqInt index);

Modified: branches/Cog/src/vm/cointerpmt.c
===================================================================
--- branches/Cog/src/vm/cointerpmt.c	2011-11-09 00:20:29 UTC (rev 2507)
+++ branches/Cog/src/vm/cointerpmt.c	2011-11-09 19:41:06 UTC (rev 2508)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
    from
-	CoInterpreterMT VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CoInterpreterMT VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
  */
-static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1119,6 +1119,7 @@
 static void shortPrintContext(sqInt aContext);
 static void shortPrintFrameAndCallers(char *theFP);
 static void shortPrintFrame(char *theFP);
+void shortPrintFrameAndNCallers(char *theFP, sqInt n);
 static void shortPrintOop(sqInt oop);
 static sqInt shortReversePrintFrameAndCallers(char *aFramePointer);
 void showDisplayBitsLeftTopRightBottom(sqInt aForm, sqInt l, sqInt t, sqInt r, sqInt b);
@@ -1988,7 +1989,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
-const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.136]";
+const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.137]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 sqInt willNotThreadWarnCount;
@@ -26912,10 +26913,11 @@
 		/* might be an instance of a subclass */
 
 		value = stObjectat(aContext, index);
-		/* begin pop:thenPush: */
-		longAtput((sp = GIV(stackPointer) + ((GIV(argumentCount) - 1) * BytesPerWord)), value);
-		GIV(stackPointer) = sp;
-		return;
+		(!GIV(primFailCode)
+			? (/* begin pop:thenPush: */
+				longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), value),
+				(GIV(stackPointer) = sp))
+			: 0); return;
 	}
 	/* begin externalWriteBackHeadFramePointers */
 	assert((GIV(framePointer) - GIV(stackPointer)) < LargeContextSize);
@@ -27066,10 +27068,11 @@
 	index = (index >> 1);
 	if (!(((((usqInt) hdr) >> 12) & 31) == ClassMethodContextCompactIndex)) {
 		stObjectatput(aContext, index, value);
-		/* begin pop:thenPush: */
-		longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), value);
-		GIV(stackPointer) = sp;
-		return null;
+		return (!GIV(primFailCode)
+			? (/* begin pop:thenPush: */
+				longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), value),
+				(GIV(stackPointer) = sp))
+			: 0);
 	}
 	/* begin externalWriteBackHeadFramePointers */
 	assert((GIV(framePointer) - GIV(stackPointer)) < LargeContextSize);
@@ -42738,6 +42741,17 @@
 	shortPrintOop(rcvr);
 }
 
+void
+shortPrintFrameAndNCallers(char *theFP, sqInt n)
+{   DECL_MAYBE_SQ_GLOBAL_STRUCT
+	if ((n > 0)
+	 && ((((((usqInt)theFP)) & (BytesPerWord - 1)) == 0)
+	 && ((((((usqInt)theFP)) >= (((usqInt)(GIV(stackBasePlus1) - 1)))) && ((((usqInt)theFP)) <= (((usqInt)GIV(pages)))))))) {
+		shortPrintFrame(theFP);
+		shortPrintFrameAndNCallers(frameCallerFP(theFP), n - 1);
+	}
+}
+
 static void
 shortPrintOop(sqInt oop)
 {

Modified: branches/Cog/src/vm/cointerpmt.h
===================================================================
--- branches/Cog/src/vm/cointerpmt.h	2011-11-09 00:20:29 UTC (rev 2507)
+++ branches/Cog/src/vm/cointerpmt.h	2011-11-09 19:41:06 UTC (rev 2508)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
  */
 
 
@@ -169,6 +169,7 @@
 void scheduleIncrementalGC(void);
 void setBreakSelector(char *aString);
 void setNextWakeupUsecs(usqLong value);
+void shortPrintFrameAndNCallers(char *theFP, sqInt n);
 sqInt signalNoResume(sqInt aSemaphore);
 usqInt sizeOfAlienData(sqInt oop);
 sqInt specialSelectorNumArgs(sqInt index);

Modified: branches/Cog/src/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/src/vm/gcc3x-cointerp.c	2011-11-09 00:20:29 UTC (rev 2507)
+++ branches/Cog/src/vm/gcc3x-cointerp.c	2011-11-09 19:41:06 UTC (rev 2508)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
    from
-	CoInterpreter VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CoInterpreter VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1053,6 +1053,7 @@
 static void shortPrintContext(sqInt aContext);
 static void shortPrintFrameAndCallers(char *theFP);
 static void shortPrintFrame(char *theFP);
+void shortPrintFrameAndNCallers(char *theFP, sqInt n);
 static void shortPrintOop(sqInt oop);
 static sqInt shortReversePrintFrameAndCallers(char *aFramePointer);
 void showDisplayBitsLeftTopRightBottom(sqInt aForm, sqInt l, sqInt t, sqInt r, sqInt b);
@@ -1891,7 +1892,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.136]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.137]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -25707,10 +25708,11 @@
 		/* might be an instance of a subclass */
 
 		value = stObjectat(aContext, index);
-		/* begin pop:thenPush: */
-		longAtput((sp = GIV(stackPointer) + ((GIV(argumentCount) - 1) * BytesPerWord)), value);
-		GIV(stackPointer) = sp;
-		return;
+		(!GIV(primFailCode)
+			? (/* begin pop:thenPush: */
+				longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), value),
+				(GIV(stackPointer) = sp))
+			: 0); return;
 	}
 	/* begin externalWriteBackHeadFramePointers */
 	assert((GIV(framePointer) - GIV(stackPointer)) < LargeContextSize);
@@ -25861,10 +25863,11 @@
 	index = (index >> 1);
 	if (!(((((usqInt) hdr) >> 12) & 31) == ClassMethodContextCompactIndex)) {
 		stObjectatput(aContext, index, value);
-		/* begin pop:thenPush: */
-		longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), value);
-		GIV(stackPointer) = sp;
-		return null;
+		return (!GIV(primFailCode)
+			? (/* begin pop:thenPush: */
+				longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), value),
+				(GIV(stackPointer) = sp))
+			: 0);
 	}
 	/* begin externalWriteBackHeadFramePointers */
 	assert((GIV(framePointer) - GIV(stackPointer)) < LargeContextSize);
@@ -41314,6 +41317,17 @@
 	shortPrintOop(rcvr);
 }
 
+void
+shortPrintFrameAndNCallers(char *theFP, sqInt n)
+{   DECL_MAYBE_SQ_GLOBAL_STRUCT
+	if ((n > 0)
+	 && ((((((usqInt)theFP)) & (BytesPerWord - 1)) == 0)
+	 && ((((((usqInt)theFP)) >= (((usqInt)(GIV(stackBasePlus1) - 1)))) && ((((usqInt)theFP)) <= (((usqInt)GIV(pages)))))))) {
+		shortPrintFrame(theFP);
+		shortPrintFrameAndNCallers(frameCallerFP(theFP), n - 1);
+	}
+}
+
 static void
 shortPrintOop(sqInt oop)
 {

Modified: branches/Cog/src/vm/gcc3x-cointerpmt.c
===================================================================
--- branches/Cog/src/vm/gcc3x-cointerpmt.c	2011-11-09 00:20:29 UTC (rev 2507)
+++ branches/Cog/src/vm/gcc3x-cointerpmt.c	2011-11-09 19:41:06 UTC (rev 2508)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
    from
-	CoInterpreterMT VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CoInterpreterMT VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
  */
-static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1122,6 +1122,7 @@
 static void shortPrintContext(sqInt aContext);
 static void shortPrintFrameAndCallers(char *theFP);
 static void shortPrintFrame(char *theFP);
+void shortPrintFrameAndNCallers(char *theFP, sqInt n);
 static void shortPrintOop(sqInt oop);
 static sqInt shortReversePrintFrameAndCallers(char *aFramePointer);
 void showDisplayBitsLeftTopRightBottom(sqInt aForm, sqInt l, sqInt t, sqInt r, sqInt b);
@@ -1991,7 +1992,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
-const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.136]";
+const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.137]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 sqInt willNotThreadWarnCount;
@@ -26916,10 +26917,11 @@
 		/* might be an instance of a subclass */
 
 		value = stObjectat(aContext, index);
-		/* begin pop:thenPush: */
-		longAtput((sp = GIV(stackPointer) + ((GIV(argumentCount) - 1) * BytesPerWord)), value);
-		GIV(stackPointer) = sp;
-		return;
+		(!GIV(primFailCode)
+			? (/* begin pop:thenPush: */
+				longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), value),
+				(GIV(stackPointer) = sp))
+			: 0); return;
 	}
 	/* begin externalWriteBackHeadFramePointers */
 	assert((GIV(framePointer) - GIV(stackPointer)) < LargeContextSize);
@@ -27070,10 +27072,11 @@
 	index = (index >> 1);
 	if (!(((((usqInt) hdr) >> 12) & 31) == ClassMethodContextCompactIndex)) {
 		stObjectatput(aContext, index, value);
-		/* begin pop:thenPush: */
-		longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), value);
-		GIV(stackPointer) = sp;
-		return null;
+		return (!GIV(primFailCode)
+			? (/* begin pop:thenPush: */
+				longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), value),
+				(GIV(stackPointer) = sp))
+			: 0);
 	}
 	/* begin externalWriteBackHeadFramePointers */
 	assert((GIV(framePointer) - GIV(stackPointer)) < LargeContextSize);
@@ -42742,6 +42745,17 @@
 	shortPrintOop(rcvr);
 }
 
+void
+shortPrintFrameAndNCallers(char *theFP, sqInt n)
+{   DECL_MAYBE_SQ_GLOBAL_STRUCT
+	if ((n > 0)
+	 && ((((((usqInt)theFP)) & (BytesPerWord - 1)) == 0)
+	 && ((((((usqInt)theFP)) >= (((usqInt)(GIV(stackBasePlus1) - 1)))) && ((((usqInt)theFP)) <= (((usqInt)GIV(pages)))))))) {
+		shortPrintFrame(theFP);
+		shortPrintFrameAndNCallers(frameCallerFP(theFP), n - 1);
+	}
+}
+
 static void
 shortPrintOop(sqInt oop)
 {

Modified: branches/Cog/src/vm/interp.h
===================================================================
--- branches/Cog/src/vm/interp.h	2011-11-09 00:20:29 UTC (rev 2507)
+++ branches/Cog/src/vm/interp.h	2011-11-09 19:41:06 UTC (rev 2508)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/src/vm/vmCallback.h
===================================================================
--- branches/Cog/src/vm/vmCallback.h	2011-11-09 00:20:29 UTC (rev 2507)
+++ branches/Cog/src/vm/vmCallback.h	2011-11-09 19:41:06 UTC (rev 2508)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.136 uuid: c62e0f35-616c-4547-b4e7-46765111b6a9
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.137 uuid: fbe64d98-6b1a-4c5b-b3f3-d2b1091406dc
  */
 
 #define VM_CALLBACK_INC 1



More information about the Vm-dev mailing list