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 |
Free forum by Nabble | Edit this page |