Revision: 2911 Author: eliot Date: 2014-05-01 11:40:52 -0700 (Thu, 01 May 2014) Log Message: ----------- CogVM source as per VMMaker.oscog-eem.696
Slang: Fix generation of expressions in while forever with break and do while loops. Hence rescue compilability of Spur VMs.
Spur: Remove redundant test from moveARunOfObjectsStartingAt:upTo:
Rename the 64-bit accessors in sqMemoryAccess.h from longLongAt... to long64At... to reflect the change in the Spur hierarchy.
Modified Paths: -------------- branches/Cog/nsspursrc/vm/cointerp.c branches/Cog/nsspursrc/vm/cointerp.h branches/Cog/nsspursrc/vm/gcc3x-cointerp.c branches/Cog/nsspursrc/vm/interp.h branches/Cog/nsspursrc/vm/vmCallback.h branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c branches/Cog/nsspurstacksrc/vm/interp.c branches/Cog/nsspurstacksrc/vm/interp.h branches/Cog/nsspurstacksrc/vm/vmCallback.h branches/Cog/platforms/Cross/vm/sqMemoryAccess.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
Property Changed: ---------------- branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nsspursrc/vm/cointerp.c =================================================================== --- branches/Cog/nsspursrc/vm/cointerp.c 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/nsspursrc/vm/cointerp.c 2014-05-01 18:40:52 UTC (rev 2911) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac from - CoInterpreter VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CoInterpreter VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -773,7 +773,6 @@ static sqInt isMachineCodeFrame(char *theFP); sqInt isMarked(sqInt objOop); static sqInt isMarriedOrWidowedContext(sqInt aContext); -static sqInt isMobileObject(sqInt objOop); static sqInt isNegativeIntegerValueOf(sqInt oop); sqInt isNonImmediate(sqInt oop); static sqInt isNullExternalPrimitiveCall(sqInt aMethodObj); @@ -1476,9 +1475,9 @@ _iss sqInt weaklingStack; _iss sqInt jmpDepth; _iss sqLong nextProfileTick; -_iss sqInt numClassTablePages; _iss sqInt numRememberedEphemerons; _iss sqInt classNameIndex; +_iss sqInt numClassTablePages; _iss sqInt longRunningPrimitiveCheckSemaphore; _iss sqInt tempOop; _iss char * objStackInvalidBecause; @@ -2212,7 +2211,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.695"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.696"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */; volatile int sendTrace;
@@ -5504,7 +5503,6 @@ GIV(framePointer) = localFP; ceEnterCogCodePopReceiverReg(); - null; goto l290; } localIP = pointerForOop(longAt(localFP + FoxIFSavedIP)); @@ -5522,7 +5520,7 @@ /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- null; + /* return self */ l290: /* end baseFrameReturn */; goto l287; } @@ -22586,12 +22584,9 @@ ? here + (BaseHeaderSize) : here); hereObjHeader = longAt(hereObj); - if (if (((((usqInt) hereObjHeader) >> 30) & 1) != 0) { - 0; -} -else { - (hereObjHeader & 0x3FFFFF) > 8; -}) break; + if ((((((usqInt) hereObjHeader) >> 30) & 1) != 0 + ? 0 + : (hereObjHeader & 0x3FFFFF) > 8)) break; /* begin addressAfter: */ /* begin numSlotsOfAny: */ numSlots12 = byteAt(hereObj + 7); @@ -22767,8 +22762,10 @@ : there); goto l5; } - if (((there - here) >= ((8 * 4) * 8)) - && (isMobileObject(hereObj))) { + if ((there - here) >= ((8 * 4) * 8)) { + + /* 256b in 32 bit, 512b in 64 bit */ + /* begin tryToMovePig:at:end: */ prevPrevFree = (prevFree1 = 0); freeChunk = GIV(firstFreeChunk); @@ -33288,22 +33285,6 @@ }
-/* Answer if objOop should be moved during compaction. Non-objects - (free chunks & bridges), forwarders and pinned objects are excluded. */ - -static sqInt -isMobileObject(sqInt objOop) -{ DECL_MAYBE_SQ_GLOBAL_STRUCT - sqInt classIndex; - - classIndex = (longAt(objOop)) & 0x3FFFFF; - assert(((long64At(objOop)) != 0) - && (classIndex < (GIV(numClassTablePages) * (classTablePageSize())))); - return (classIndex > 8) - && (!(((((usqInt) (longAt(objOop))) >> 30) & 1) != 0)); -} - - /* Answer true if integer object is negative. Fail if object pointed by oop i not an integer. */
Modified: branches/Cog/nsspursrc/vm/cointerp.h =================================================================== --- branches/Cog/nsspursrc/vm/cointerp.h 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/nsspursrc/vm/cointerp.h 2014-05-01 18:40:52 UTC (rev 2911) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac */
Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-05-01 18:40:52 UTC (rev 2911) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac from - CoInterpreter VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CoInterpreter VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -776,7 +776,6 @@ static sqInt isMachineCodeFrame(char *theFP); sqInt isMarked(sqInt objOop); static sqInt isMarriedOrWidowedContext(sqInt aContext); -static sqInt isMobileObject(sqInt objOop); static sqInt isNegativeIntegerValueOf(sqInt oop); sqInt isNonImmediate(sqInt oop); static sqInt isNullExternalPrimitiveCall(sqInt aMethodObj); @@ -1479,9 +1478,9 @@ _iss sqInt weaklingStack; _iss sqInt jmpDepth; _iss sqLong nextProfileTick; -_iss sqInt numClassTablePages; _iss sqInt numRememberedEphemerons; _iss sqInt classNameIndex; +_iss sqInt numClassTablePages; _iss sqInt longRunningPrimitiveCheckSemaphore; _iss sqInt tempOop; _iss char * objStackInvalidBecause; @@ -2215,7 +2214,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.695"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.696"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */; volatile int sendTrace;
@@ -5513,7 +5512,6 @@ GIV(framePointer) = localFP; ceEnterCogCodePopReceiverReg(); - null; goto l290; } localIP = pointerForOop(longAt(localFP + FoxIFSavedIP)); @@ -5531,7 +5529,7 @@ /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- null; + /* return self */ l290: /* end baseFrameReturn */; goto l287; } @@ -22595,12 +22593,9 @@ ? here + (BaseHeaderSize) : here); hereObjHeader = longAt(hereObj); - if (if (((((usqInt) hereObjHeader) >> 30) & 1) != 0) { - 0; -} -else { - (hereObjHeader & 0x3FFFFF) > 8; -}) break; + if ((((((usqInt) hereObjHeader) >> 30) & 1) != 0 + ? 0 + : (hereObjHeader & 0x3FFFFF) > 8)) break; /* begin addressAfter: */ /* begin numSlotsOfAny: */ numSlots12 = byteAt(hereObj + 7); @@ -22776,8 +22771,10 @@ : there); goto l5; } - if (((there - here) >= ((8 * 4) * 8)) - && (isMobileObject(hereObj))) { + if ((there - here) >= ((8 * 4) * 8)) { + + /* 256b in 32 bit, 512b in 64 bit */ + /* begin tryToMovePig:at:end: */ prevPrevFree = (prevFree1 = 0); freeChunk = GIV(firstFreeChunk); @@ -33297,22 +33294,6 @@ }
-/* Answer if objOop should be moved during compaction. Non-objects - (free chunks & bridges), forwarders and pinned objects are excluded. */ - -static sqInt -isMobileObject(sqInt objOop) -{ DECL_MAYBE_SQ_GLOBAL_STRUCT - sqInt classIndex; - - classIndex = (longAt(objOop)) & 0x3FFFFF; - assert(((long64At(objOop)) != 0) - && (classIndex < (GIV(numClassTablePages) * (classTablePageSize())))); - return (classIndex > 8) - && (!(((((usqInt) (longAt(objOop))) >> 30) & 1) != 0)); -} - - /* Answer true if integer object is negative. Fail if object pointed by oop i not an integer. */
Modified: branches/Cog/nsspursrc/vm/interp.h =================================================================== --- branches/Cog/nsspursrc/vm/interp.h 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/nsspursrc/vm/interp.h 2014-05-01 18:40:52 UTC (rev 2911) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac */
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/nsspursrc/vm/vmCallback.h =================================================================== --- branches/Cog/nsspursrc/vm/vmCallback.h 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/nsspursrc/vm/vmCallback.h 2014-05-01 18:40:52 UTC (rev 2911) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac */
#define VM_CALLBACK_INC 1
Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c =================================================================== --- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2014-05-01 18:40:52 UTC (rev 2911) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac from - StackInterpreter VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + StackInterpreter VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -651,7 +651,6 @@ static sqInt isMachineCodeFrame(char *theFP); sqInt isMarked(sqInt objOop); static sqInt isMarriedOrWidowedContext(sqInt aContext); -static sqInt isMobileObject(sqInt objOop); static sqInt isNegativeIntegerValueOf(sqInt oop); sqInt isNonImmediate(sqInt oop); sqInt isOldObject(sqInt objOop); @@ -1284,9 +1283,9 @@ _iss usqInt oldSpaceStart; _iss sqInt classTableFirstPage; _iss sqInt jmpDepth; -_iss sqInt numClassTablePages; _iss sqInt numRememberedEphemerons; _iss sqInt classNameIndex; +_iss sqInt numClassTablePages; _iss sqInt numStackPages; _iss sqInt tempOop; _iss sqLong nextProfileTick; @@ -2002,7 +2001,7 @@ 0 }; char * breakSelector; sqInt breakSelectorLength = -1; -const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.695"; +const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.696"; volatile int sendTrace; sqInt suppressHeartbeatFlag;
@@ -19496,12 +19495,9 @@ ? here + (BaseHeaderSize) : here); hereObjHeader = longAt(hereObj); - if (if (((((usqInt) hereObjHeader) >> 30) & 1) != 0) { - 0; -} -else { - (hereObjHeader & 0x3FFFFF) > 8; -}) break; + if ((((((usqInt) hereObjHeader) >> 30) & 1) != 0 + ? 0 + : (hereObjHeader & 0x3FFFFF) > 8)) break; /* begin addressAfter: */ /* begin numSlotsOfAny: */ numSlots12 = byteAt(hereObj + 7); @@ -19677,8 +19673,10 @@ : there); goto l5; } - if (((there - here) >= ((8 * 4) * 8)) - && (isMobileObject(hereObj))) { + if ((there - here) >= ((8 * 4) * 8)) { + + /* 256b in 32 bit, 512b in 64 bit */ + /* begin tryToMovePig:at:end: */ prevPrevFree = (prevFree1 = 0); freeChunk = GIV(firstFreeChunk); @@ -28716,22 +28714,6 @@ }
-/* Answer if objOop should be moved during compaction. Non-objects - (free chunks & bridges), forwarders and pinned objects are excluded. */ - -static sqInt -isMobileObject(sqInt objOop) -{ DECL_MAYBE_SQ_GLOBAL_STRUCT - sqInt classIndex; - - classIndex = (longAt(objOop)) & 0x3FFFFF; - assert(((long64At(objOop)) != 0) - && (classIndex < (GIV(numClassTablePages) * (classTablePageSize())))); - return (classIndex > 8) - && (!(((((usqInt) (longAt(objOop))) >> 30) & 1) != 0)); -} - - /* Answer true if integer object is negative. Fail if object pointed by oop i not an integer. */
Modified: branches/Cog/nsspurstacksrc/vm/interp.c =================================================================== --- branches/Cog/nsspurstacksrc/vm/interp.c 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/nsspurstacksrc/vm/interp.c 2014-05-01 18:40:52 UTC (rev 2911) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac from - StackInterpreter VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + StackInterpreter VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -648,7 +648,6 @@ static sqInt isMachineCodeFrame(char *theFP); sqInt isMarked(sqInt objOop); static sqInt isMarriedOrWidowedContext(sqInt aContext); -static sqInt isMobileObject(sqInt objOop); static sqInt isNegativeIntegerValueOf(sqInt oop); sqInt isNonImmediate(sqInt oop); sqInt isOldObject(sqInt objOop); @@ -1281,9 +1280,9 @@ _iss usqInt oldSpaceStart; _iss sqInt classTableFirstPage; _iss sqInt jmpDepth; -_iss sqInt numClassTablePages; _iss sqInt numRememberedEphemerons; _iss sqInt classNameIndex; +_iss sqInt numClassTablePages; _iss sqInt numStackPages; _iss sqInt tempOop; _iss sqLong nextProfileTick; @@ -1999,7 +1998,7 @@ 0 }; char * breakSelector; sqInt breakSelectorLength = -1; -const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.695"; +const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.696"; volatile int sendTrace; sqInt suppressHeartbeatFlag;
@@ -19487,12 +19486,9 @@ ? here + (BaseHeaderSize) : here); hereObjHeader = longAt(hereObj); - if (if (((((usqInt) hereObjHeader) >> 30) & 1) != 0) { - 0; -} -else { - (hereObjHeader & 0x3FFFFF) > 8; -}) break; + if ((((((usqInt) hereObjHeader) >> 30) & 1) != 0 + ? 0 + : (hereObjHeader & 0x3FFFFF) > 8)) break; /* begin addressAfter: */ /* begin numSlotsOfAny: */ numSlots12 = byteAt(hereObj + 7); @@ -19668,8 +19664,10 @@ : there); goto l5; } - if (((there - here) >= ((8 * 4) * 8)) - && (isMobileObject(hereObj))) { + if ((there - here) >= ((8 * 4) * 8)) { + + /* 256b in 32 bit, 512b in 64 bit */ + /* begin tryToMovePig:at:end: */ prevPrevFree = (prevFree1 = 0); freeChunk = GIV(firstFreeChunk); @@ -28707,22 +28705,6 @@ }
-/* Answer if objOop should be moved during compaction. Non-objects - (free chunks & bridges), forwarders and pinned objects are excluded. */ - -static sqInt -isMobileObject(sqInt objOop) -{ DECL_MAYBE_SQ_GLOBAL_STRUCT - sqInt classIndex; - - classIndex = (longAt(objOop)) & 0x3FFFFF; - assert(((long64At(objOop)) != 0) - && (classIndex < (GIV(numClassTablePages) * (classTablePageSize())))); - return (classIndex > 8) - && (!(((((usqInt) (longAt(objOop))) >> 30) & 1) != 0)); -} - - /* Answer true if integer object is negative. Fail if object pointed by oop i not an integer. */
Modified: branches/Cog/nsspurstacksrc/vm/interp.h =================================================================== --- branches/Cog/nsspurstacksrc/vm/interp.h 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/nsspurstacksrc/vm/interp.h 2014-05-01 18:40:52 UTC (rev 2911) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac */
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/nsspurstacksrc/vm/vmCallback.h =================================================================== --- branches/Cog/nsspurstacksrc/vm/vmCallback.h 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/nsspurstacksrc/vm/vmCallback.h 2014-05-01 18:40:52 UTC (rev 2911) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac */
#define VM_CALLBACK_INC 1
Modified: branches/Cog/platforms/Cross/vm/sqMemoryAccess.h =================================================================== --- branches/Cog/platforms/Cross/vm/sqMemoryAccess.h 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/platforms/Cross/vm/sqMemoryAccess.h 2014-05-01 18:40:52 UTC (rev 2911) @@ -79,8 +79,8 @@ static inline sqInt intAtPointerput(char *ptr, int val) { return (sqInt)(*((unsigned int *)ptr)= val); } static inline sqInt longAtPointer(char *ptr) { return *(sqInt *)ptr; } static inline sqInt longAtPointerput(char *ptr, sqInt val) { return *(sqInt *)ptr= val; } - static inline sqLong longLongAtPointer(char *ptr) { return *(sqLong *)ptr; } - static inline sqLong longLongAtPointerput(char *ptr, sqLong val) { return *(sqLong *)ptr= val; } + static inline sqLong long64AtPointer(char *ptr) { return *(sqLong *)ptr; } + static inline sqLong long64AtPointerput(char *ptr, sqLong val) { return *(sqLong *)ptr= val; } static inline sqInt oopAtPointer(char *ptr) { return *(sqInt *)ptr; } static inline sqInt oopAtPointerput(char *ptr, sqInt val) { return (sqInt)(*(sqInt *)ptr= val); } # if defined(sqMemoryBase) && !sqMemoryBase @@ -98,8 +98,8 @@ static inline sqInt intAtput(sqInt oop, int val) { return intAtPointerput(pointerForOop(oop), val); } static inline sqInt longAt(sqInt oop) { return longAtPointer(pointerForOop(oop)); } static inline sqInt longAtput(sqInt oop, sqInt val) { return longAtPointerput(pointerForOop(oop), val); } - static inline sqLong longLongAt(sqInt oop) { return longLongAtPointer(pointerForOop(oop)); } - static inline sqLong longLongAtput(sqInt oop, sqLong val) { return longLongAtPointerput(pointerForOop(oop), val); } + static inline sqLong long64At(sqInt oop) { return long64AtPointer(pointerForOop(oop)); } + static inline sqLong long64Atput(sqInt oop, sqLong val) { return long64AtPointerput(pointerForOop(oop), val); } static inline sqInt oopAt(sqInt oop) { return oopAtPointer(pointerForOop(oop)); } static inline sqInt oopAtput(sqInt oop, sqInt val) { return oopAtPointerput(pointerForOop(oop), val); } #else @@ -112,8 +112,8 @@ # define intAtPointerput(ptr,val) ((sqInt)(*((int *)(ptr))= (int)(val))) # define longAtPointer(ptr) (*(sqInt *)(ptr)) # define longAtPointerput(ptr,val) (*(sqInt *)(ptr)= (sqInt)(val)) -# define longLongAtPointer(ptr) (*(sqLong *)(ptr)) -# define longLongAtPointerput(ptr,val) (*(sqLong *)(ptr)= (sqLong)(val)) +# define long64AtPointer(ptr) (*(sqLong *)(ptr)) +# define long64AtPointerput(ptr,val) (*(sqLong *)(ptr)= (sqLong)(val)) # define oopAtPointer(ptr) (*(sqInt *)(ptr)) # define oopAtPointerput(ptr,val) (*(sqInt *)(ptr)= (sqInt)(val)) # if defined(sqMemoryBase) && !sqMemoryBase @@ -129,8 +129,8 @@ # define shortAtput(oop,val) shortAtPointerput(pointerForOop(oop), (val)) # define longAt(oop) longAtPointer(pointerForOop(oop)) # define longAtput(oop,val) longAtPointerput(pointerForOop(oop), (val)) -# define longLongAt(oop) longLongAtPointer(pointerForOop(oop)) -# define longLongAtput(oop,val) longLongAtPointerput(pointerForOop(oop), (val)) +# define long64At(oop) long64AtPointer(pointerForOop(oop)) +# define long64Atput(oop,val) long64AtPointerput(pointerForOop(oop), (val)) # define intAt(oop) intAtPointer(pointerForOop(oop)) # define intAtput(oop,val) intAtPointerput(pointerForOop(oop), (val)) # define oopAt(oop) oopAtPointer(pointerForOop(oop))
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h ___________________________________________________________________ Modified: checkindate - Thu May 1 10:08:34 PDT 2014 + Thu May 1 11:38:57 PDT 2014
Modified: branches/Cog/spursrc/vm/cointerp.c =================================================================== --- branches/Cog/spursrc/vm/cointerp.c 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/spursrc/vm/cointerp.c 2014-05-01 18:40:52 UTC (rev 2911) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac from - CoInterpreter VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CoInterpreter VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -765,7 +765,6 @@ static sqInt isMachineCodeFrame(char *theFP); sqInt isMarked(sqInt objOop); static sqInt isMarriedOrWidowedContext(sqInt aContext); -static sqInt isMobileObject(sqInt objOop); static sqInt isNegativeIntegerValueOf(sqInt oop); sqInt isNonImmediate(sqInt oop); static sqInt isNullExternalPrimitiveCall(sqInt aMethodObj); @@ -1466,9 +1465,9 @@ _iss sqInt classTableFirstPage; _iss sqInt jmpDepth; _iss sqLong nextProfileTick; -_iss sqInt numClassTablePages; _iss sqInt numRememberedEphemerons; _iss sqInt classNameIndex; +_iss sqInt numClassTablePages; _iss sqInt longRunningPrimitiveCheckSemaphore; _iss sqInt tempOop; _iss char * objStackInvalidBecause; @@ -2202,7 +2201,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.695]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.696]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */; volatile int sendTrace;
@@ -17784,12 +17783,9 @@ ? here + (BaseHeaderSize) : here); hereObjHeader = longAt(hereObj); - if (if (((((usqInt) hereObjHeader) >> 30) & 1) != 0) { - 0; -} -else { - (hereObjHeader & 0x3FFFFF) > 8; -}) break; + if ((((((usqInt) hereObjHeader) >> 30) & 1) != 0 + ? 0 + : (hereObjHeader & 0x3FFFFF) > 8)) break; /* begin addressAfter: */ /* begin numSlotsOfAny: */ numSlots12 = byteAt(hereObj + 7); @@ -17965,8 +17961,10 @@ : there); goto l5; } - if (((there - here) >= ((8 * 4) * 8)) - && (isMobileObject(hereObj))) { + if ((there - here) >= ((8 * 4) * 8)) { + + /* 256b in 32 bit, 512b in 64 bit */ + /* begin tryToMovePig:at:end: */ prevPrevFree = (prevFree1 = 0); freeChunk = GIV(firstFreeChunk); @@ -28041,22 +28039,6 @@ }
-/* Answer if objOop should be moved during compaction. Non-objects - (free chunks & bridges), forwarders and pinned objects are excluded. */ - -static sqInt -isMobileObject(sqInt objOop) -{ DECL_MAYBE_SQ_GLOBAL_STRUCT - sqInt classIndex; - - classIndex = (longAt(objOop)) & 0x3FFFFF; - assert(((long64At(objOop)) != 0) - && (classIndex < (GIV(numClassTablePages) * (classTablePageSize())))); - return (classIndex > 8) - && (!(((((usqInt) (longAt(objOop))) >> 30) & 1) != 0)); -} - - /* Answer true if integer object is negative. Fail if object pointed by oop i not an integer. */
Modified: branches/Cog/spursrc/vm/cointerp.h =================================================================== --- branches/Cog/spursrc/vm/cointerp.h 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/spursrc/vm/cointerp.h 2014-05-01 18:40:52 UTC (rev 2911) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac */
Modified: branches/Cog/spursrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/spursrc/vm/gcc3x-cointerp.c 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/spursrc/vm/gcc3x-cointerp.c 2014-05-01 18:40:52 UTC (rev 2911) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac from - CoInterpreter VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CoInterpreter VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -768,7 +768,6 @@ static sqInt isMachineCodeFrame(char *theFP); sqInt isMarked(sqInt objOop); static sqInt isMarriedOrWidowedContext(sqInt aContext); -static sqInt isMobileObject(sqInt objOop); static sqInt isNegativeIntegerValueOf(sqInt oop); sqInt isNonImmediate(sqInt oop); static sqInt isNullExternalPrimitiveCall(sqInt aMethodObj); @@ -1469,9 +1468,9 @@ _iss sqInt classTableFirstPage; _iss sqInt jmpDepth; _iss sqLong nextProfileTick; -_iss sqInt numClassTablePages; _iss sqInt numRememberedEphemerons; _iss sqInt classNameIndex; +_iss sqInt numClassTablePages; _iss sqInt longRunningPrimitiveCheckSemaphore; _iss sqInt tempOop; _iss char * objStackInvalidBecause; @@ -2205,7 +2204,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.695]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.696]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */; volatile int sendTrace;
@@ -17793,12 +17792,9 @@ ? here + (BaseHeaderSize) : here); hereObjHeader = longAt(hereObj); - if (if (((((usqInt) hereObjHeader) >> 30) & 1) != 0) { - 0; -} -else { - (hereObjHeader & 0x3FFFFF) > 8; -}) break; + if ((((((usqInt) hereObjHeader) >> 30) & 1) != 0 + ? 0 + : (hereObjHeader & 0x3FFFFF) > 8)) break; /* begin addressAfter: */ /* begin numSlotsOfAny: */ numSlots12 = byteAt(hereObj + 7); @@ -17974,8 +17970,10 @@ : there); goto l5; } - if (((there - here) >= ((8 * 4) * 8)) - && (isMobileObject(hereObj))) { + if ((there - here) >= ((8 * 4) * 8)) { + + /* 256b in 32 bit, 512b in 64 bit */ + /* begin tryToMovePig:at:end: */ prevPrevFree = (prevFree1 = 0); freeChunk = GIV(firstFreeChunk); @@ -28050,22 +28048,6 @@ }
-/* Answer if objOop should be moved during compaction. Non-objects - (free chunks & bridges), forwarders and pinned objects are excluded. */ - -static sqInt -isMobileObject(sqInt objOop) -{ DECL_MAYBE_SQ_GLOBAL_STRUCT - sqInt classIndex; - - classIndex = (longAt(objOop)) & 0x3FFFFF; - assert(((long64At(objOop)) != 0) - && (classIndex < (GIV(numClassTablePages) * (classTablePageSize())))); - return (classIndex > 8) - && (!(((((usqInt) (longAt(objOop))) >> 30) & 1) != 0)); -} - - /* Answer true if integer object is negative. Fail if object pointed by oop i not an integer. */
Modified: branches/Cog/spursrc/vm/interp.h =================================================================== --- branches/Cog/spursrc/vm/interp.h 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/spursrc/vm/interp.h 2014-05-01 18:40:52 UTC (rev 2911) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac */
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/spursrc/vm/vmCallback.h =================================================================== --- branches/Cog/spursrc/vm/vmCallback.h 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/spursrc/vm/vmCallback.h 2014-05-01 18:40:52 UTC (rev 2911) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac */
#define VM_CALLBACK_INC 1
Modified: branches/Cog/spurstacksrc/vm/gcc3x-interp.c =================================================================== --- branches/Cog/spurstacksrc/vm/gcc3x-interp.c 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/spurstacksrc/vm/gcc3x-interp.c 2014-05-01 18:40:52 UTC (rev 2911) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac from - StackInterpreter VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + StackInterpreter VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -645,7 +645,6 @@ static sqInt isMachineCodeFrame(char *theFP); sqInt isMarked(sqInt objOop); static sqInt isMarriedOrWidowedContext(sqInt aContext); -static sqInt isMobileObject(sqInt objOop); static sqInt isNegativeIntegerValueOf(sqInt oop); sqInt isNonImmediate(sqInt oop); sqInt isOldObject(sqInt objOop); @@ -1277,9 +1276,9 @@ _iss usqInt oldSpaceStart; _iss sqInt classTableFirstPage; _iss sqInt jmpDepth; -_iss sqInt numClassTablePages; _iss sqInt numRememberedEphemerons; _iss sqInt classNameIndex; +_iss sqInt numClassTablePages; _iss sqInt numStackPages; _iss sqInt tempOop; _iss sqLong nextProfileTick; @@ -1995,7 +1994,7 @@ 0 }; char * breakSelector; sqInt breakSelectorLength = -1; -const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.695]"; +const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.696]"; volatile int sendTrace; sqInt suppressHeartbeatFlag;
@@ -15036,12 +15035,9 @@ ? here + (BaseHeaderSize) : here); hereObjHeader = longAt(hereObj); - if (if (((((usqInt) hereObjHeader) >> 30) & 1) != 0) { - 0; -} -else { - (hereObjHeader & 0x3FFFFF) > 8; -}) break; + if ((((((usqInt) hereObjHeader) >> 30) & 1) != 0 + ? 0 + : (hereObjHeader & 0x3FFFFF) > 8)) break; /* begin addressAfter: */ /* begin numSlotsOfAny: */ numSlots12 = byteAt(hereObj + 7); @@ -15217,8 +15213,10 @@ : there); goto l5; } - if (((there - here) >= ((8 * 4) * 8)) - && (isMobileObject(hereObj))) { + if ((there - here) >= ((8 * 4) * 8)) { + + /* 256b in 32 bit, 512b in 64 bit */ + /* begin tryToMovePig:at:end: */ prevPrevFree = (prevFree1 = 0); freeChunk = GIV(firstFreeChunk); @@ -23824,22 +23822,6 @@ }
-/* Answer if objOop should be moved during compaction. Non-objects - (free chunks & bridges), forwarders and pinned objects are excluded. */ - -static sqInt -isMobileObject(sqInt objOop) -{ DECL_MAYBE_SQ_GLOBAL_STRUCT - sqInt classIndex; - - classIndex = (longAt(objOop)) & 0x3FFFFF; - assert(((long64At(objOop)) != 0) - && (classIndex < (GIV(numClassTablePages) * (classTablePageSize())))); - return (classIndex > 8) - && (!(((((usqInt) (longAt(objOop))) >> 30) & 1) != 0)); -} - - /* Answer true if integer object is negative. Fail if object pointed by oop i not an integer. */
Modified: branches/Cog/spurstacksrc/vm/interp.c =================================================================== --- branches/Cog/spurstacksrc/vm/interp.c 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/spurstacksrc/vm/interp.c 2014-05-01 18:40:52 UTC (rev 2911) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac from - StackInterpreter VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + StackInterpreter VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -642,7 +642,6 @@ static sqInt isMachineCodeFrame(char *theFP); sqInt isMarked(sqInt objOop); static sqInt isMarriedOrWidowedContext(sqInt aContext); -static sqInt isMobileObject(sqInt objOop); static sqInt isNegativeIntegerValueOf(sqInt oop); sqInt isNonImmediate(sqInt oop); sqInt isOldObject(sqInt objOop); @@ -1274,9 +1273,9 @@ _iss usqInt oldSpaceStart; _iss sqInt classTableFirstPage; _iss sqInt jmpDepth; -_iss sqInt numClassTablePages; _iss sqInt numRememberedEphemerons; _iss sqInt classNameIndex; +_iss sqInt numClassTablePages; _iss sqInt numStackPages; _iss sqInt tempOop; _iss sqLong nextProfileTick; @@ -1992,7 +1991,7 @@ 0 }; char * breakSelector; sqInt breakSelectorLength = -1; -const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.695]"; +const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.696]"; volatile int sendTrace; sqInt suppressHeartbeatFlag;
@@ -15027,12 +15026,9 @@ ? here + (BaseHeaderSize) : here); hereObjHeader = longAt(hereObj); - if (if (((((usqInt) hereObjHeader) >> 30) & 1) != 0) { - 0; -} -else { - (hereObjHeader & 0x3FFFFF) > 8; -}) break; + if ((((((usqInt) hereObjHeader) >> 30) & 1) != 0 + ? 0 + : (hereObjHeader & 0x3FFFFF) > 8)) break; /* begin addressAfter: */ /* begin numSlotsOfAny: */ numSlots12 = byteAt(hereObj + 7); @@ -15208,8 +15204,10 @@ : there); goto l5; } - if (((there - here) >= ((8 * 4) * 8)) - && (isMobileObject(hereObj))) { + if ((there - here) >= ((8 * 4) * 8)) { + + /* 256b in 32 bit, 512b in 64 bit */ + /* begin tryToMovePig:at:end: */ prevPrevFree = (prevFree1 = 0); freeChunk = GIV(firstFreeChunk); @@ -23815,22 +23813,6 @@ }
-/* Answer if objOop should be moved during compaction. Non-objects - (free chunks & bridges), forwarders and pinned objects are excluded. */ - -static sqInt -isMobileObject(sqInt objOop) -{ DECL_MAYBE_SQ_GLOBAL_STRUCT - sqInt classIndex; - - classIndex = (longAt(objOop)) & 0x3FFFFF; - assert(((long64At(objOop)) != 0) - && (classIndex < (GIV(numClassTablePages) * (classTablePageSize())))); - return (classIndex > 8) - && (!(((((usqInt) (longAt(objOop))) >> 30) & 1) != 0)); -} - - /* Answer true if integer object is negative. Fail if object pointed by oop i not an integer. */
Modified: branches/Cog/spurstacksrc/vm/interp.h =================================================================== --- branches/Cog/spurstacksrc/vm/interp.h 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/spurstacksrc/vm/interp.h 2014-05-01 18:40:52 UTC (rev 2911) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac */
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/spurstacksrc/vm/vmCallback.h =================================================================== --- branches/Cog/spurstacksrc/vm/vmCallback.h 2014-05-01 17:16:01 UTC (rev 2910) +++ branches/Cog/spurstacksrc/vm/vmCallback.h 2014-05-01 18:40:52 UTC (rev 2911) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.696 uuid: 5f0bc2e6-b921-48c2-8a95-86858a10bcac */
#define VM_CALLBACK_INC 1
vm-dev@lists.squeakfoundation.org