Revision: 2834 Author: eliot Date: 2013-12-20 11:21:10 -0800 (Fri, 20 Dec 2013) Log Message: ----------- CogVM source as per VMMaker.oscog-eem.565.
Rescue the Stack VM by refactoring the snapshot bereavement code to be CoInterpreter-agnostic. Give CoInterpreter its own method cache print routine for the same reason.
Make the Spur instantiation primtives fail for format 7 (forwarded format) and name this for use as the format of immediate classes.
Modified Paths: -------------- branches/Cog/nscogsrc/vm/cogit.c branches/Cog/nscogsrc/vm/cogit.h branches/Cog/nscogsrc/vm/cogmethod.h 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/spursrc/vm/cogit.c branches/Cog/spursrc/vm/cogit.h branches/Cog/spursrc/vm/cogmethod.h branches/Cog/spursrc/vm/cointerp.c branches/Cog/spursrc/vm/cointerp.h branches/Cog/spursrc/vm/gcc3x-cointerp.c branches/Cog/spursrc/vm/interp.h branches/Cog/spursrc/vm/vmCallback.h branches/Cog/spurstacksrc/vm/gcc3x-interp.c branches/Cog/spurstacksrc/vm/interp.c branches/Cog/spurstacksrc/vm/interp.h branches/Cog/spurstacksrc/vm/vmCallback.h branches/Cog/src/vm/cogit.c branches/Cog/src/vm/cogit.h branches/Cog/src/vm/cogmethod.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 branches/Cog/stacksrc/vm/gcc3x-interp.c branches/Cog/stacksrc/vm/interp.c branches/Cog/stacksrc/vm/interp.h branches/Cog/stacksrc/vm/vmCallback.h
Property Changed: ---------------- branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nscogsrc/vm/cogit.c =================================================================== --- branches/Cog/nscogsrc/vm/cogit.c 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/nscogsrc/vm/cogit.c 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGenerator VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 from - StackToRegisterMappingCogit VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + StackToRegisterMappingCogit VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 " __DATE__ ; char *__cogitBuildInfo = __buildInfo;
Modified: branches/Cog/nscogsrc/vm/cogit.h =================================================================== --- branches/Cog/nscogsrc/vm/cogit.h 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/nscogsrc/vm/cogit.h 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGenerator VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */
Modified: branches/Cog/nscogsrc/vm/cogmethod.h =================================================================== --- branches/Cog/nscogsrc/vm/cogmethod.h 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/nscogsrc/vm/cogmethod.h 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGenerator VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */
typedef struct {
Modified: branches/Cog/nscogsrc/vm/cointerp.c =================================================================== --- branches/Cog/nscogsrc/vm/cointerp.c 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/nscogsrc/vm/cointerp.c 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 from - CoInterpreter VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CoInterpreter VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -2030,7 +2030,7 @@ /* 575 */ (void (*)(void))0, 0 }; static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void); -const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.563"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.565"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */; volatile int sendTrace;
@@ -54405,7 +54405,6 @@ sqInt activeContext; sqInt activeContext1; sqInt chunk; - sqInt decodedIP; sqInt fmt; sqInt fwdBlock; sqInt header; @@ -54414,6 +54413,7 @@ sqInt iLimiT; sqInt obj; sqInt oop; + sqInt pc; sqInt realHeader; sqInt sz; sqInt sz1; @@ -54443,11 +54443,13 @@ longAtput((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord), GIV(nilObj)); } else { - decodedIP = longAt((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord)); - if (((decodedIP & 1)) - && ((((sqInt) decodedIP)) < 0)) { - decodedIP = mustMapMachineCodePCcontext((decodedIP >> 1), oop); - longAtput((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord), decodedIP); + /* begin ensureContextHasBytecodePC: */ + assert(!(isMarriedOrWidowedContext(oop))); + pc = longAt((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord)); + if (((pc & 1)) + && (((pc = (pc >> 1))) < 0)) { + pc = mustMapMachineCodePCcontext(pc, oop); + longAtput((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord), pc); } } for (i = ((fetchStackPointerOf(oop)) + CtxtTempFrameStart), iLimiT = ((numSlotsOf(oop)) - 1); i <= iLimiT; i += 1) {
Modified: branches/Cog/nscogsrc/vm/cointerp.h =================================================================== --- branches/Cog/nscogsrc/vm/cointerp.h 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/nscogsrc/vm/cointerp.h 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */
Modified: branches/Cog/nscogsrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2013-12-20 19:21:10 UTC (rev 2834) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 from - CoInterpreter VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CoInterpreter VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -2033,7 +2033,7 @@ /* 575 */ (void (*)(void))0, 0 }; static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void); -const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.563"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.565"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */; volatile int sendTrace;
@@ -54414,7 +54414,6 @@ sqInt activeContext; sqInt activeContext1; sqInt chunk; - sqInt decodedIP; sqInt fmt; sqInt fwdBlock; sqInt header; @@ -54423,6 +54422,7 @@ sqInt iLimiT; sqInt obj; sqInt oop; + sqInt pc; sqInt realHeader; sqInt sz; sqInt sz1; @@ -54452,11 +54452,13 @@ longAtput((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord), GIV(nilObj)); } else { - decodedIP = longAt((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord)); - if (((decodedIP & 1)) - && ((((sqInt) decodedIP)) < 0)) { - decodedIP = mustMapMachineCodePCcontext((decodedIP >> 1), oop); - longAtput((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord), decodedIP); + /* begin ensureContextHasBytecodePC: */ + assert(!(isMarriedOrWidowedContext(oop))); + pc = longAt((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord)); + if (((pc & 1)) + && (((pc = (pc >> 1))) < 0)) { + pc = mustMapMachineCodePCcontext(pc, oop); + longAtput((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord), pc); } } for (i = ((fetchStackPointerOf(oop)) + CtxtTempFrameStart), iLimiT = ((numSlotsOf(oop)) - 1); i <= iLimiT; i += 1) {
Modified: branches/Cog/nscogsrc/vm/interp.h =================================================================== --- branches/Cog/nscogsrc/vm/interp.h 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/nscogsrc/vm/interp.h 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/nscogsrc/vm/vmCallback.h =================================================================== --- branches/Cog/nscogsrc/vm/vmCallback.h 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/nscogsrc/vm/vmCallback.h 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */
#define VM_CALLBACK_INC 1
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h ___________________________________________________________________ Modified: checkindate - Mon Dec 16 15:49:50 PST 2013 + Fri Dec 20 11:19:05 PST 2013
Modified: branches/Cog/spursrc/vm/cogit.c =================================================================== --- branches/Cog/spursrc/vm/cogit.c 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/spursrc/vm/cogit.c 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGenerator VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 from - StackToRegisterMappingCogit VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + StackToRegisterMappingCogit VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 " __DATE__ ; char *__cogitBuildInfo = __buildInfo;
@@ -15661,9 +15661,12 @@ getInlineCacheClassTagFrominto(sqInt sourceReg, sqInt destReg) { AbstractInstruction *entryLabel; + AbstractInstruction *immLabel; AbstractInstruction *jumpCompare; AbstractInstruction *jumpNotImm; sqInt quickConstant; + sqInt quickConstant1; + sqInt quickConstant2;
/* begin AlignmentNops: */ genoperand(AlignmentNops, ((BytesPerWord < 8) ? 8 : BytesPerWord)); @@ -15683,6 +15686,7 @@ flag("endianness"); jmpTarget(jumpNotImm, gMoveMwrR(0, sourceReg, destReg)); jmpTarget(jumpCompare, gAndCqR(classIndexMask(), destReg)); + return entryLabel; }
Modified: branches/Cog/spursrc/vm/cogit.h =================================================================== --- branches/Cog/spursrc/vm/cogit.h 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/spursrc/vm/cogit.h 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGenerator VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */
Modified: branches/Cog/spursrc/vm/cogmethod.h =================================================================== --- branches/Cog/spursrc/vm/cogmethod.h 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/spursrc/vm/cogmethod.h 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGenerator VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */
typedef struct {
Modified: branches/Cog/spursrc/vm/cointerp.c =================================================================== --- branches/Cog/spursrc/vm/cointerp.c 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/spursrc/vm/cointerp.c 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 from - CoInterpreter VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CoInterpreter VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -2162,7 +2162,7 @@ 0 }; static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void); usqInt heapBase; -const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.563]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.565]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */; volatile int sendTrace;
@@ -6363,7 +6363,6 @@ /* begin internalPush: */ longAtPointerput((localSP -= BytesPerOop), longAt((rcvr1 + (BaseHeaderSize)) + (byte3 << 2))); } - null; goto l4; } if (opType == 3) { @@ -6373,7 +6372,6 @@ assert(GIV(method) == (iframeMethod(localFP))); object = longAt((GIV(method) + (BaseHeaderSize)) + ((byte3 + LiteralStart) << 2)); longAtPointerput((localSP -= BytesPerOop), object); - null; goto l4; } if (opType == 4) { @@ -6401,7 +6399,6 @@ /* begin internalPush: */ longAtPointerput((localSP -= BytesPerOop), longAt((litVar1 + (BaseHeaderSize)) + (ValueIndex << 2)));
- null; goto l4; } top = longAtPointer(localSP); @@ -25703,7 +25700,7 @@ Allow fixed classes to be instantiated here iff nElements = 0. */
if ((nElements != 0) - || (instSpec >= 9)) { + || (instSpec > 5)) { return null; } numSlots = classFormat & ((1 << 16) - 1); @@ -57830,7 +57827,6 @@ sqInt activeContext1; sqInt address; sqInt address1; - sqInt decodedIP; sqInt fmt; sqInt i; sqInt iLimiT; @@ -57842,6 +57838,7 @@ sqInt objOop1; sqInt objOop11; sqInt objOop2; + sqInt pc; sqInt prevObj; sqInt prevObj1; sqInt prevPrevObj; @@ -57891,13 +57888,15 @@ longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), GIV(nilObj)); } else { - decodedIP = longAt((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2)); - if (((decodedIP & 1)) - && ((((sqInt) decodedIP)) < 0)) { - decodedIP = mustMapMachineCodePCcontext((decodedIP >> 1), objOop1); + /* begin ensureContextHasBytecodePC: */ + assert(!(isMarriedOrWidowedContext(objOop1))); + pc = longAt((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2)); + if (((pc & 1)) + && (((pc = (pc >> 1))) < 0)) { + pc = mustMapMachineCodePCcontext(pc, objOop1); /* begin storePointerUnchecked:ofObject:withValue: */ assert(!(isForwarded(objOop1))); - longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), decodedIP); + longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), pc); } } for (i = ((fetchStackPointerOf(objOop1)) + CtxtTempFrameStart), iLimiT = ((numSlotsOf(objOop1)) - 1); i <= iLimiT; i += 1) { @@ -57948,13 +57947,15 @@ longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), GIV(nilObj)); } else { - decodedIP = longAt((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2)); - if (((decodedIP & 1)) - && ((((sqInt) decodedIP)) < 0)) { - decodedIP = mustMapMachineCodePCcontext((decodedIP >> 1), objOop1); + /* begin ensureContextHasBytecodePC: */ + assert(!(isMarriedOrWidowedContext(objOop1))); + pc = longAt((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2)); + if (((pc & 1)) + && (((pc = (pc >> 1))) < 0)) { + pc = mustMapMachineCodePCcontext(pc, objOop1); /* begin storePointerUnchecked:ofObject:withValue: */ assert(!(isForwarded(objOop1))); - longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), decodedIP); + longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), pc); } } for (i = ((fetchStackPointerOf(objOop1)) + CtxtTempFrameStart), iLimiT = ((numSlotsOf(objOop1)) - 1); i <= iLimiT; i += 1) { @@ -58007,13 +58008,15 @@ longAtput((objOop11 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), GIV(nilObj)); } else { - decodedIP = longAt((objOop11 + (BaseHeaderSize)) + (InstructionPointerIndex << 2)); - if (((decodedIP & 1)) - && ((((sqInt) decodedIP)) < 0)) { - decodedIP = mustMapMachineCodePCcontext((decodedIP >> 1), objOop11); + /* begin ensureContextHasBytecodePC: */ + assert(!(isMarriedOrWidowedContext(objOop11))); + pc = longAt((objOop11 + (BaseHeaderSize)) + (InstructionPointerIndex << 2)); + if (((pc & 1)) + && (((pc = (pc >> 1))) < 0)) { + pc = mustMapMachineCodePCcontext(pc, objOop11); /* begin storePointerUnchecked:ofObject:withValue: */ assert(!(isForwarded(objOop11))); - longAtput((objOop11 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), decodedIP); + longAtput((objOop11 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), pc); } } for (i = ((fetchStackPointerOf(objOop11)) + CtxtTempFrameStart), iLimiT = ((numSlotsOf(objOop11)) - 1); i <= iLimiT; i += 1) {
Modified: branches/Cog/spursrc/vm/cointerp.h =================================================================== --- branches/Cog/spursrc/vm/cointerp.h 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/spursrc/vm/cointerp.h 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */
Modified: branches/Cog/spursrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/spursrc/vm/gcc3x-cointerp.c 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/spursrc/vm/gcc3x-cointerp.c 2013-12-20 19:21:10 UTC (rev 2834) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 from - CoInterpreter VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CoInterpreter VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -2165,7 +2165,7 @@ 0 }; static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void); usqInt heapBase; -const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.563]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.565]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */; volatile int sendTrace;
@@ -6372,7 +6372,6 @@ /* begin internalPush: */ longAtPointerput((localSP -= BytesPerOop), longAt((rcvr1 + (BaseHeaderSize)) + (byte3 << 2))); } - null; goto l4; } if (opType == 3) { @@ -6382,7 +6381,6 @@ assert(GIV(method) == (iframeMethod(localFP))); object = longAt((GIV(method) + (BaseHeaderSize)) + ((byte3 + LiteralStart) << 2)); longAtPointerput((localSP -= BytesPerOop), object); - null; goto l4; } if (opType == 4) { @@ -6410,7 +6408,6 @@ /* begin internalPush: */ longAtPointerput((localSP -= BytesPerOop), longAt((litVar1 + (BaseHeaderSize)) + (ValueIndex << 2)));
- null; goto l4; } top = longAtPointer(localSP); @@ -25712,7 +25709,7 @@ Allow fixed classes to be instantiated here iff nElements = 0. */
if ((nElements != 0) - || (instSpec >= 9)) { + || (instSpec > 5)) { return null; } numSlots = classFormat & ((1 << 16) - 1); @@ -57839,7 +57836,6 @@ sqInt activeContext1; sqInt address; sqInt address1; - sqInt decodedIP; sqInt fmt; sqInt i; sqInt iLimiT; @@ -57851,6 +57847,7 @@ sqInt objOop1; sqInt objOop11; sqInt objOop2; + sqInt pc; sqInt prevObj; sqInt prevObj1; sqInt prevPrevObj; @@ -57900,13 +57897,15 @@ longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), GIV(nilObj)); } else { - decodedIP = longAt((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2)); - if (((decodedIP & 1)) - && ((((sqInt) decodedIP)) < 0)) { - decodedIP = mustMapMachineCodePCcontext((decodedIP >> 1), objOop1); + /* begin ensureContextHasBytecodePC: */ + assert(!(isMarriedOrWidowedContext(objOop1))); + pc = longAt((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2)); + if (((pc & 1)) + && (((pc = (pc >> 1))) < 0)) { + pc = mustMapMachineCodePCcontext(pc, objOop1); /* begin storePointerUnchecked:ofObject:withValue: */ assert(!(isForwarded(objOop1))); - longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), decodedIP); + longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), pc); } } for (i = ((fetchStackPointerOf(objOop1)) + CtxtTempFrameStart), iLimiT = ((numSlotsOf(objOop1)) - 1); i <= iLimiT; i += 1) { @@ -57957,13 +57956,15 @@ longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), GIV(nilObj)); } else { - decodedIP = longAt((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2)); - if (((decodedIP & 1)) - && ((((sqInt) decodedIP)) < 0)) { - decodedIP = mustMapMachineCodePCcontext((decodedIP >> 1), objOop1); + /* begin ensureContextHasBytecodePC: */ + assert(!(isMarriedOrWidowedContext(objOop1))); + pc = longAt((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2)); + if (((pc & 1)) + && (((pc = (pc >> 1))) < 0)) { + pc = mustMapMachineCodePCcontext(pc, objOop1); /* begin storePointerUnchecked:ofObject:withValue: */ assert(!(isForwarded(objOop1))); - longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), decodedIP); + longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), pc); } } for (i = ((fetchStackPointerOf(objOop1)) + CtxtTempFrameStart), iLimiT = ((numSlotsOf(objOop1)) - 1); i <= iLimiT; i += 1) { @@ -58016,13 +58017,15 @@ longAtput((objOop11 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), GIV(nilObj)); } else { - decodedIP = longAt((objOop11 + (BaseHeaderSize)) + (InstructionPointerIndex << 2)); - if (((decodedIP & 1)) - && ((((sqInt) decodedIP)) < 0)) { - decodedIP = mustMapMachineCodePCcontext((decodedIP >> 1), objOop11); + /* begin ensureContextHasBytecodePC: */ + assert(!(isMarriedOrWidowedContext(objOop11))); + pc = longAt((objOop11 + (BaseHeaderSize)) + (InstructionPointerIndex << 2)); + if (((pc & 1)) + && (((pc = (pc >> 1))) < 0)) { + pc = mustMapMachineCodePCcontext(pc, objOop11); /* begin storePointerUnchecked:ofObject:withValue: */ assert(!(isForwarded(objOop11))); - longAtput((objOop11 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), decodedIP); + longAtput((objOop11 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), pc); } } for (i = ((fetchStackPointerOf(objOop11)) + CtxtTempFrameStart), iLimiT = ((numSlotsOf(objOop11)) - 1); i <= iLimiT; i += 1) {
Modified: branches/Cog/spursrc/vm/interp.h =================================================================== --- branches/Cog/spursrc/vm/interp.h 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/spursrc/vm/interp.h 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/spursrc/vm/vmCallback.h =================================================================== --- branches/Cog/spursrc/vm/vmCallback.h 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/spursrc/vm/vmCallback.h 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */
#define VM_CALLBACK_INC 1
Modified: branches/Cog/spurstacksrc/vm/gcc3x-interp.c =================================================================== --- branches/Cog/spurstacksrc/vm/gcc3x-interp.c 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/spurstacksrc/vm/gcc3x-interp.c 2013-12-20 19:21:10 UTC (rev 2834) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 from - StackInterpreter VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + StackInterpreter VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -1955,7 +1955,7 @@ 0 }; char * breakSelector; sqInt breakSelectorLength = -1; -const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.563]"; +const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.565]"; volatile int sendTrace; sqInt suppressHeartbeatFlag;
@@ -23150,7 +23150,7 @@ Allow fixed classes to be instantiated here iff nElements = 0. */
if ((nElements != 0) - || (instSpec >= 9)) { + || (instSpec > 5)) { return null; } numSlots = classFormat & ((1 << 16) - 1); @@ -46021,10 +46021,7 @@ || ((s == thing) || ((c == thing) || ((p == thing) - || ((m == thing) - || ((addressCouldBeObj(m)) - && ((maybeMethodHasCogMethod(m)) - && ((((sqInt)(cogMethodOf(m)))) == thing)))))))) + || (m == thing))))) && ((((s & 3) != 0) || (addressCouldBeObj(s))) && ((c != 0) @@ -53185,7 +53182,6 @@ sqInt activeContext; sqInt address; sqInt address1; - sqInt decodedIP; sqInt firstBytecode; sqInt fmt; sqInt i; @@ -53244,14 +53240,7 @@ longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), GIV(nilObj)); } else { - decodedIP = longAt((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2)); - if (((decodedIP & 1)) - && ((((sqInt) decodedIP)) < 0)) { - decodedIP = mustMapMachineCodePCcontext((decodedIP >> 1), objOop1); - /* begin storePointerUnchecked:ofObject:withValue: */ - assert(!(isForwarded(objOop1))); - longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), decodedIP); - } + /* begin ensureContextHasBytecodePC: */ } for (i = ((fetchStackPointerOf(objOop1)) + CtxtTempFrameStart), iLimiT = ((numSlotsOf(objOop1)) - 1); i <= iLimiT; i += 1) { /* begin storePointerUnchecked:ofObject:withValue: */ @@ -53314,14 +53303,7 @@ longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), GIV(nilObj)); } else { - decodedIP = longAt((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2)); - if (((decodedIP & 1)) - && ((((sqInt) decodedIP)) < 0)) { - decodedIP = mustMapMachineCodePCcontext((decodedIP >> 1), objOop1); - /* begin storePointerUnchecked:ofObject:withValue: */ - assert(!(isForwarded(objOop1))); - longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), decodedIP); - } + /* begin ensureContextHasBytecodePC: */ } for (i = ((fetchStackPointerOf(objOop1)) + CtxtTempFrameStart), iLimiT = ((numSlotsOf(objOop1)) - 1); i <= iLimiT; i += 1) { /* begin storePointerUnchecked:ofObject:withValue: */ @@ -53386,14 +53368,7 @@ longAtput((objOop11 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), GIV(nilObj)); } else { - decodedIP = longAt((objOop11 + (BaseHeaderSize)) + (InstructionPointerIndex << 2)); - if (((decodedIP & 1)) - && ((((sqInt) decodedIP)) < 0)) { - decodedIP = mustMapMachineCodePCcontext((decodedIP >> 1), objOop11); - /* begin storePointerUnchecked:ofObject:withValue: */ - assert(!(isForwarded(objOop11))); - longAtput((objOop11 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), decodedIP); - } + /* begin ensureContextHasBytecodePC: */ } for (i = ((fetchStackPointerOf(objOop11)) + CtxtTempFrameStart), iLimiT = ((numSlotsOf(objOop11)) - 1); i <= iLimiT; i += 1) { /* begin storePointerUnchecked:ofObject:withValue: */
Modified: branches/Cog/spurstacksrc/vm/interp.c =================================================================== --- branches/Cog/spurstacksrc/vm/interp.c 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/spurstacksrc/vm/interp.c 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 from - StackInterpreter VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + StackInterpreter VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -1952,7 +1952,7 @@ 0 }; char * breakSelector; sqInt breakSelectorLength = -1; -const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.563]"; +const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.565]"; volatile int sendTrace; sqInt suppressHeartbeatFlag;
@@ -23141,7 +23141,7 @@ Allow fixed classes to be instantiated here iff nElements = 0. */
if ((nElements != 0) - || (instSpec >= 9)) { + || (instSpec > 5)) { return null; } numSlots = classFormat & ((1 << 16) - 1); @@ -46012,10 +46012,7 @@ || ((s == thing) || ((c == thing) || ((p == thing) - || ((m == thing) - || ((addressCouldBeObj(m)) - && ((maybeMethodHasCogMethod(m)) - && ((((sqInt)(cogMethodOf(m)))) == thing)))))))) + || (m == thing))))) && ((((s & 3) != 0) || (addressCouldBeObj(s))) && ((c != 0) @@ -53176,7 +53173,6 @@ sqInt activeContext; sqInt address; sqInt address1; - sqInt decodedIP; sqInt firstBytecode; sqInt fmt; sqInt i; @@ -53235,14 +53231,7 @@ longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), GIV(nilObj)); } else { - decodedIP = longAt((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2)); - if (((decodedIP & 1)) - && ((((sqInt) decodedIP)) < 0)) { - decodedIP = mustMapMachineCodePCcontext((decodedIP >> 1), objOop1); - /* begin storePointerUnchecked:ofObject:withValue: */ - assert(!(isForwarded(objOop1))); - longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), decodedIP); - } + /* begin ensureContextHasBytecodePC: */ } for (i = ((fetchStackPointerOf(objOop1)) + CtxtTempFrameStart), iLimiT = ((numSlotsOf(objOop1)) - 1); i <= iLimiT; i += 1) { /* begin storePointerUnchecked:ofObject:withValue: */ @@ -53305,14 +53294,7 @@ longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), GIV(nilObj)); } else { - decodedIP = longAt((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2)); - if (((decodedIP & 1)) - && ((((sqInt) decodedIP)) < 0)) { - decodedIP = mustMapMachineCodePCcontext((decodedIP >> 1), objOop1); - /* begin storePointerUnchecked:ofObject:withValue: */ - assert(!(isForwarded(objOop1))); - longAtput((objOop1 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), decodedIP); - } + /* begin ensureContextHasBytecodePC: */ } for (i = ((fetchStackPointerOf(objOop1)) + CtxtTempFrameStart), iLimiT = ((numSlotsOf(objOop1)) - 1); i <= iLimiT; i += 1) { /* begin storePointerUnchecked:ofObject:withValue: */ @@ -53377,14 +53359,7 @@ longAtput((objOop11 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), GIV(nilObj)); } else { - decodedIP = longAt((objOop11 + (BaseHeaderSize)) + (InstructionPointerIndex << 2)); - if (((decodedIP & 1)) - && ((((sqInt) decodedIP)) < 0)) { - decodedIP = mustMapMachineCodePCcontext((decodedIP >> 1), objOop11); - /* begin storePointerUnchecked:ofObject:withValue: */ - assert(!(isForwarded(objOop11))); - longAtput((objOop11 + (BaseHeaderSize)) + (InstructionPointerIndex << 2), decodedIP); - } + /* begin ensureContextHasBytecodePC: */ } for (i = ((fetchStackPointerOf(objOop11)) + CtxtTempFrameStart), iLimiT = ((numSlotsOf(objOop11)) - 1); i <= iLimiT; i += 1) { /* begin storePointerUnchecked:ofObject:withValue: */
Modified: branches/Cog/spurstacksrc/vm/interp.h =================================================================== --- branches/Cog/spurstacksrc/vm/interp.h 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/spurstacksrc/vm/interp.h 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/spurstacksrc/vm/vmCallback.h =================================================================== --- branches/Cog/spurstacksrc/vm/vmCallback.h 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/spurstacksrc/vm/vmCallback.h 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */
#define VM_CALLBACK_INC 1
Modified: branches/Cog/src/vm/cogit.c =================================================================== --- branches/Cog/src/vm/cogit.c 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/src/vm/cogit.c 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGenerator VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 from - StackToRegisterMappingCogit VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + StackToRegisterMappingCogit VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 " __DATE__ ; char *__cogitBuildInfo = __buildInfo;
Modified: branches/Cog/src/vm/cogit.h =================================================================== --- branches/Cog/src/vm/cogit.h 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/src/vm/cogit.h 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGenerator VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */
Modified: branches/Cog/src/vm/cogmethod.h =================================================================== --- branches/Cog/src/vm/cogmethod.h 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/src/vm/cogmethod.h 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGenerator VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */
typedef struct {
Modified: branches/Cog/src/vm/cointerp.c =================================================================== --- branches/Cog/src/vm/cointerp.c 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/src/vm/cointerp.c 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 from - CoInterpreter VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CoInterpreter VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -2020,7 +2020,7 @@ /* 575 */ (void (*)(void))0, 0 }; static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void); -const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.563]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.565]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */; volatile int sendTrace;
@@ -5532,6 +5532,7 @@ /* begin internalPush: */ longAtPointerput((localSP -= BytesPerOop), longAt((rcvr + BaseHeaderSize) + (byte3 << ShiftForWord))); } + null; goto l4; } if (opType == 3) { @@ -5541,6 +5542,7 @@ assert(GIV(method) == (iframeMethod(localFP))); object = longAt((GIV(method) + BaseHeaderSize) + ((byte3 + LiteralStart) << ShiftForWord)); longAtPointerput((localSP -= BytesPerOop), object); + null; goto l4; } if (opType == 4) { @@ -5554,6 +5556,7 @@ object2 = longAt((oop + BaseHeaderSize) + (ValueIndex << ShiftForWord)); longAtPointerput((localSP -= BytesPerOop), object2);
+ null; goto l4; } top = longAtPointer(localSP); @@ -49649,7 +49652,6 @@ sqInt activeContext; sqInt activeContext1; sqInt chunk; - sqInt decodedIP; sqInt fmt; sqInt fwdBlock; sqInt header; @@ -49658,6 +49660,7 @@ sqInt iLimiT; sqInt obj; sqInt oop; + sqInt pc; sqInt realHeader; sqInt sz; sqInt sz1; @@ -49687,11 +49690,13 @@ longAtput((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord), GIV(nilObj)); } else { - decodedIP = longAt((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord)); - if (((decodedIP & 1)) - && ((((sqInt) decodedIP)) < 0)) { - decodedIP = mustMapMachineCodePCcontext((decodedIP >> 1), oop); - longAtput((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord), decodedIP); + /* begin ensureContextHasBytecodePC: */ + assert(!(isMarriedOrWidowedContext(oop))); + pc = longAt((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord)); + if (((pc & 1)) + && (((pc = (pc >> 1))) < 0)) { + pc = mustMapMachineCodePCcontext(pc, oop); + longAtput((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord), pc); } } for (i = ((fetchStackPointerOf(oop)) + CtxtTempFrameStart), iLimiT = ((numSlotsOf(oop)) - 1); i <= iLimiT; i += 1) {
Modified: branches/Cog/src/vm/cointerp.h =================================================================== --- branches/Cog/src/vm/cointerp.h 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/src/vm/cointerp.h 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */
Modified: branches/Cog/src/vm/cointerpmt.c =================================================================== --- branches/Cog/src/vm/cointerpmt.c 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/src/vm/cointerpmt.c 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 from - CoInterpreterMT VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CoInterpreterMT VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */ -static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 " __DATE__ ; +static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -1201,7 +1201,7 @@ static void rewriteMethodCacheEntryForExternalPrimitiveToFunction(void (*localPrimAddress)(void)); static sqInt roomToPushNArgs(sqInt n); static void runLeakCheckerForFullGC(sqInt fullGCFlag); -static usqInt safeObjectAfter(sqInt oop); +static sqInt safeObjectAfter(sqInt oop); static sqInt safePrintStringOf(sqInt oop); usqInt scavengeThresholdAddress(void); EXPORT(sqInt) sendInvokeCallbackContext(VMCallbackContext *vmCallbackContext); @@ -2118,7 +2118,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.563]"; +const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.565]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */; volatile int sendTrace; sqInt willNotThreadWarnCount; @@ -19888,15 +19888,17 @@ sqInt header1; sqInt header2; sqInt header3; + sqInt header4; usqInt lastWord; sqInt newFreeChunk; sqInt newOop; - usqInt next; + sqInt next; sqInt oop; sqInt realHeader; sqInt sz; sqInt sz1; sqInt sz2; + sqInt sz3; sqInt target; usqInt w;
@@ -19907,7 +19909,21 @@ /* begin objectAfterWhileForwarding: */ header2 = longAt(oop); if ((header2 & MarkBit) == 0) { - next = ((sqInt) (objectAfter(oop))); + /* begin objectAfter: */ + if (!(asserta(oopisLessThan(oop, GIV(freeStart))))) { + error("no objects after the end of memory"); + } + if (((longAt(oop)) & TypeMask) == HeaderTypeFree) { + sz2 = (longAt(oop)) & AllButTypeMask; + } + else { + /* begin sizeBitsOf: */ + header3 = longAt(oop); + sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass + ? (longAt(oop - (BytesPerWord * 2))) & LongSizeMask + : header3 & SizeMask); + } + next = (oop + sz2) + (headerTypeBytes[(longAt(oop + sz2)) & TypeMask]); goto l1; } fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1; @@ -19922,7 +19938,7 @@ else { sz1 = realHeader & SizeMask; } - next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]))); + next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]); l1: /* end objectAfterWhileForwarding: */; if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) {
@@ -19976,18 +19992,18 @@ } /* begin safeObjectAfter: */ if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) { - sz2 = (longAt(newFreeChunk)) & AllButTypeMask; + sz3 = (longAt(newFreeChunk)) & AllButTypeMask; } else { /* begin sizeBitsOf: */ - header3 = longAt(newFreeChunk); - sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass + header4 = longAt(newFreeChunk); + sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass ? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask - : header3 & SizeMask); + : header4 & SizeMask); } - next = ((newFreeChunk + sz2) >= GIV(freeStart) + next = ((newFreeChunk + sz3) >= GIV(freeStart) ? GIV(freeStart) - : (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask])); + : (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask])); assert((next == GIV(freeStart)) || (next == (oopFromChunk(GIV(compEnd))))); if (next == GIV(freeStart)) { @@ -46779,7 +46795,7 @@ given object or free chunk in memory. Return freeStart when enumeration is complete. This is for assertion checking only. */
-static usqInt +static sqInt safeObjectAfter(sqInt oop) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt header; @@ -51389,7 +51405,6 @@ sqInt activeContext; sqInt activeContext1; sqInt chunk; - sqInt decodedIP; sqInt fmt; sqInt fwdBlock; sqInt header; @@ -51398,6 +51413,7 @@ sqInt iLimiT; sqInt obj; sqInt oop; + sqInt pc; sqInt realHeader; sqInt sz; sqInt sz1; @@ -51427,11 +51443,13 @@ longAtput((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord), GIV(nilObj)); } else { - decodedIP = longAt((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord)); - if (((decodedIP & 1)) - && ((((sqInt) decodedIP)) < 0)) { - decodedIP = mustMapMachineCodePCcontext((decodedIP >> 1), oop); - longAtput((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord), decodedIP); + /* begin ensureContextHasBytecodePC: */ + assert(!(isMarriedOrWidowedContext(oop))); + pc = longAt((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord)); + if (((pc & 1)) + && (((pc = (pc >> 1))) < 0)) { + pc = mustMapMachineCodePCcontext(pc, oop); + longAtput((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord), pc); } } for (i = ((fetchStackPointerOf(oop)) + CtxtTempFrameStart), iLimiT = ((numSlotsOf(oop)) - 1); i <= iLimiT; i += 1) {
Modified: branches/Cog/src/vm/cointerpmt.h =================================================================== --- branches/Cog/src/vm/cointerpmt.h 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/src/vm/cointerpmt.h 2013-12-20 19:21:10 UTC (rev 2834) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */
Modified: branches/Cog/src/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/src/vm/gcc3x-cointerp.c 2013-12-16 23:52:11 UTC (rev 2833) +++ branches/Cog/src/vm/gcc3x-cointerp.c 2013-12-20 19:21:10 UTC (rev 2834) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 from - CoInterpreter VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 + CoInterpreter VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.563 uuid: 3116fc1b-f9a5-45f5-bc7e-4b5c68ec8247 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.565 uuid: aa89a317-26e5-404d-aaff-e2433a344379 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -2023,7 +2023,7 @@ /* 575 */ (void (*)(void))0, 0 }; static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void); -const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.563]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.565]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */; volatile int sendTrace;
@@ -5541,6 +5541,7 @@ /* begin internalPush: */ longAtPointerput((localSP -= BytesPerOop), longAt((rcvr + BaseHeaderSize) + (byte3 << ShiftForWord))); } + null; goto l4; } if (opType == 3) { @@ -5550,6 +5551,7 @@ assert(GIV(method) == (iframeMethod(localFP))); object = longAt((GIV(method) + BaseHeaderSize) + ((byte3 + LiteralStart) << ShiftForWord)); longAtPointerput((localSP -= BytesPerOop), object); + null; goto l4; } if (opType == 4) { @@ -5563,6 +5565,7 @@ object2 = longAt((oop + BaseHeaderSize) + (ValueIndex << ShiftForWord)); longAtPointerput((localSP -= BytesPerOop), object2);
+ null; goto l4; } top = longAtPointer(localSP); @@ -49658,7 +49661,6 @@ sqInt activeContext; sqInt activeContext1; sqInt chunk; - sqInt decodedIP; sqInt fmt; sqInt fwdBlock; sqInt header; @@ -49667,6 +49669,7 @@ sqInt iLimiT; sqInt obj; sqInt oop; + sqInt pc; sqInt realHeader; sqInt sz; sqInt sz1; @@ -49696,11 +49699,13 @@ longAtput((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord), GIV(nilObj)); } else { - decodedIP = longAt((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord)); - if (((decodedIP & 1)) - && ((((sqInt) decodedIP)) < 0)) { - decodedIP = mustMapMachineCodePCcontext((decodedIP >> 1), oop); - longAtput((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord), decodedIP); + /* begin ensureContextHasBytecodePC: */ + assert(!(isMarriedOrWidowedContext(oop))); + pc = longAt((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord)); + if (((pc & 1)) + && (((pc = (pc >> 1))) < 0)) { + pc = mustMapMachineCodePCcontext(pc, oop); + longAtput((oop + BaseHeaderSize) + (InstructionPointerIndex << ShiftForWord), pc); } }
@@ Diff output truncated at 50000 characters. @@
vm-dev@lists.squeakfoundation.org