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

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

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

commits-3
 
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