[Vm-dev] [commit][2834] CogVM source as per VMMaker.oscog-eem.565.
commits at squeakvm.org
commits at squeakvm.org
Fri Dec 20 19:21:12 UTC 2013
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. @@
More information about the Vm-dev
mailing list