[Vm-dev] [commit][2824] CogVM source as per VMMaker.oscog-eem.555
commits at squeakvm.org
commits at squeakvm.org
Wed Dec 11 01:31:21 UTC 2013
Revision: 2824
Author: eliot
Date: 2013-12-10 17:31:20 -0800 (Tue, 10 Dec 2013)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.555
Rescue compilation of the "classic" VMs by making sure the relevant
forwarding code is considered dead code.
Modified Paths:
--------------
branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c
branches/Cog/nscogsrc/vm/cogit.c
branches/Cog/nscogsrc/vm/cogit.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/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/plugins/BitBltPlugin/BitBltPlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,9 +1,9 @@
/* Automatically generated by
- SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.536 uuid: c021f329-3f3a-469b-a838-24e74c1be39c
+ SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
from
- BitBltSimulation VMMaker.oscog-eem.536 uuid: c021f329-3f3a-469b-a838-24e74c1be39c
+ BitBltSimulation VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
-static char __buildInfo[] = "BitBltSimulation VMMaker.oscog-eem.536 uuid: c021f329-3f3a-469b-a838-24e74c1be39c " __DATE__ ;
+static char __buildInfo[] = "BitBltSimulation VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0 " __DATE__ ;
@@ -344,9 +344,9 @@
};
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "BitBltPlugin VMMaker.oscog-eem.536 (i)"
+ "BitBltPlugin VMMaker.oscog-eem.555 (i)"
#else
- "BitBltPlugin VMMaker.oscog-eem.536 (e)"
+ "BitBltPlugin VMMaker.oscog-eem.555 (e)"
#endif
;
static sqInt noHalftone;
@@ -3923,7 +3923,7 @@
l = ((sx < dx) ? sx : dx);
r = (((sx < dx) ? dx : sx)) + bbW;
t = ((sy < dy) ? sy : dy);
- b = (((sy < sy) ? sy : sy)) + bbH;
+ b = (((sy < dy) ? dy : sy)) + bbH;
sourceBits = fn(sourceHandle, &sourcePitch, l, t, r-l, b-t);
}
else {
Modified: branches/Cog/nscogsrc/vm/cogit.c
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.c 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/nscogsrc/vm/cogit.c 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGenerator * VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ StackToRegisterMappingCogit * VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit * VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -14480,11 +14480,11 @@
genPushRegisterArgsForNumArgs(sqInt numArgs)
{
if (numArgs <= (numRegArgs())) {
+ assert((numRegArgs()) <= 2);
/* begin MoveMw:r:R: */
genoperandoperandoperand(MoveMwrR, 0, SPReg, TempReg);
/* begin MoveR:Mw:r: */
genoperandoperandoperand(MoveRMwr, ReceiverResultReg, 0, SPReg);
- assert((numRegArgs()) <= 2);
if (numArgs > 0) {
/* begin PushR: */
genoperand(PushR, Arg0Reg);
@@ -14495,6 +14495,7 @@
}
/* begin PushR: */
genoperand(PushR, TempReg);
+
}
}
Modified: branches/Cog/nscogsrc/vm/cogit.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.h 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/nscogsrc/vm/cogit.h 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGenerator * VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
*/
Modified: branches/Cog/nscogsrc/vm/cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.c 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/nscogsrc/vm/cointerp.c 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
from
- CoInterpreter VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CoInterpreter VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -571,7 +571,6 @@
sqInt floatObjectOf(double aFloat);
double floatValueOf(sqInt oop);
sqInt flushExternalPrimitiveOf(sqInt methodObj);
-static void followForwardedObjectFieldstoDepth(sqInt objOop, sqInt depth);
static sqInt followForwarded(sqInt objOop);
static void followForwardingPointersInStackZone(sqInt theBecomeEffectsFlags);
static void followNecessaryForwardingInMethod(sqInt methodObj);
@@ -587,7 +586,6 @@
static sqInt frameHasContext(char *theFP);
static sqInt frameIsBlockActivation(char *theFP);
static sqInt frameIsMarked(sqInt theFPInt);
-static sqInt frameMethod(char *theFP);
static sqInt frameNumArgs(char *theFP);
static char * frameOfMarriedContext(sqInt aContext);
usqInt framePointerAddress(void);
@@ -618,7 +616,6 @@
sqInt getThisSessionID(void);
static sqInt goodContextSize(sqInt oop);
static sqInt handleMNUInMachineCodeToclassForMessage(sqInt selectorIndex, sqInt rcvr, sqInt classForMessage);
-static sqInt handleSpecialSelectorSendFaultForfpsp(sqInt obj, char *theFP, char *theSP);
static void handleStackOverflow(void);
static sqInt handleStackOverflowOrEventAllowContextSwitch(sqInt mayContextSwitch);
sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
@@ -1146,7 +1143,7 @@
static void rewriteMethodCacheEntryForExternalPrimitiveToFunction(void (*localPrimAddress)(void));
static sqInt roomToPushNArgs(sqInt n);
static void runLeakCheckerForFullGC(sqInt fullGCFlag);
-static sqInt safeObjectAfter(sqInt oop);
+static usqInt safeObjectAfter(sqInt oop);
static sqInt safePrintStringOf(sqInt oop);
usqInt scavengeThresholdAddress(void);
EXPORT(sqInt) sendInvokeCallbackContext(VMCallbackContext *vmCallbackContext);
@@ -2033,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.554";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.555";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -5669,6 +5666,7 @@
/* begin internalPush: */
longAtPointerput((localSP -= BytesPerOop), longAt((rcvr + BaseHeaderSize) + (byte3 << ShiftForWord)));
}
+ null;
goto l4;
}
if (opType == 3) {
@@ -5678,6 +5676,7 @@
assert(GIV(method) == (iframeMethod(localFP)));
object = longAt((GIV(method) + BaseHeaderSize) + ((byte3 + LiteralStart) << ShiftForWord));
longAtPointerput((localSP -= BytesPerOop), object);
+ null;
goto l4;
}
if (opType == 4) {
@@ -5691,6 +5690,7 @@
object2 = longAt((oop + BaseHeaderSize) + (ValueIndex << ShiftForWord));
longAtPointerput((localSP -= BytesPerOop), object2);
+ null;
goto l4;
}
top = longAtPointer(localSP);
@@ -22067,12 +22067,6 @@
}
}
-static void
-followForwardedObjectFieldstoDepth(sqInt objOop, sqInt depth)
-{
- error("shouldNotImplement");
-}
-
static sqInt
followForwarded(sqInt objOop)
{
@@ -22172,9 +22166,6 @@
/* To avoid any chance of a forwarded object during super sends we follow the
methodClassAssociation. The forwarded object send fault only copes with
normal sends to instances. */
-/* To avoid any chance of a forwarded object during super sends we follow the
- methodClassAssociation. The forwarded object send fault only copes with
- normal sends to instances. */
static void
followNecessaryForwardingInMethod(sqInt methodObj)
@@ -22186,19 +22177,7 @@
sqInt header;
sqInt offset;
- /* begin literal:ofMethod: */
- offset = (literalCountOfHeader(headerOf(methodObj))) - 1;
- assoc = longAt((methodObj + BaseHeaderSize) + ((offset + LiteralStart) << ShiftForWord));
- classObj = longAt((assoc + BaseHeaderSize) + (ValueIndex << ShiftForWord));
-
- header = longAt((methodObj + BaseHeaderSize) + (HeaderIndex << ShiftForWord));
- if (isCogMethodReference(header)) {
- cogMethod = ((CogMethod *) header);
- if ((cogMethod->cmUsesMethodClass)) {
- followForwardedLiteralsIn(cogMethod);
- }
- }
}
@@ -22391,13 +22370,7 @@
: ((longAt(theFPInt + FoxIFrameFlags)) & 2) != 0);
}
-static sqInt
-frameMethod(char *theFP)
-{
- return longAt(theFP + FoxMethod);
-}
-
/* See encodeFrameFieldHasContext:numArgs: */
static sqInt
@@ -23027,51 +23000,6 @@
}
-/* Handle a special send fault that may be due to a special selector
- send accessing a forwarded object.
- Unforward the object on the stack and in inst vars and answer its target. */
-
-static sqInt
-handleSpecialSelectorSendFaultForfpsp(sqInt obj, char *theFP, char *theSP)
-{
- sqInt oop;
- char *ptr;
-
- assert(isOopForwarded(obj));
- /* begin followForwardedFrameContents:stackPointer: */
- for (ptr = (theFP + (frameStackedReceiverOffsetNumArgs(((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
- ? ((mframeCogMethod(theFP))->cmNumArgs)
- : byteAt((theFP + FoxIFrameFlags) + 1))))); ptr <= ((theFP + FoxCallerSavedIP) + BytesPerWord); ptr += BytesPerWord) {
- oop = longAt(ptr);
- if (((oop & 1) == 0)
- && (isForwarded(oop))) {
- longAtput(ptr, followForwarded(oop));
- }
- }
- for (ptr = theSP; ptr <= (frameReceiverOffset(theFP)); ptr += BytesPerWord) {
- oop = longAt(ptr);
- if (((oop & 1) == 0)
- && (isForwarded(oop))) {
- longAtput(ptr, followForwarded(oop));
- }
- }
- assert(!(isForwarded(frameMethod(theFP))));
- if (((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
- ? ((longAt(theFP + FoxMethod)) & MFMethodFlagHasContextFlag) != 0
- : (byteAt((theFP + FoxIFrameFlags) + 2)) != 0)) {
- assert(!(isForwarded(frameContext(theFP))));
- }
- if (isPointers(((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
- ? longAt(theFP + FoxMFReceiver)
- : longAt(theFP + FoxIFReceiver)))) {
- followForwardedObjectFieldstoDepth(((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
- ? longAt(theFP + FoxMFReceiver)
- : longAt(theFP + FoxIFReceiver)), 0);
- }
- return followForwarded(obj);
-}
-
-
/* Check for stack overflow, moving frames to another stack if so. */
static void
@@ -23801,17 +23729,15 @@
sqInt header1;
sqInt header2;
sqInt header3;
- sqInt header4;
usqInt lastWord;
sqInt newFreeChunk;
sqInt newOop;
- sqInt next;
+ usqInt next;
sqInt oop;
sqInt realHeader;
sqInt sz;
sqInt sz1;
sqInt sz2;
- sqInt sz3;
sqInt target;
usqInt w;
@@ -23822,21 +23748,7 @@
/* begin objectAfterWhileForwarding: */
header2 = longAt(oop);
if ((header2 & MarkBit) == 0) {
- /* 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]);
+ next = ((sqInt) (objectAfter(oop)));
goto l1;
}
fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1;
@@ -23851,7 +23763,7 @@
else {
sz1 = realHeader & SizeMask;
}
- next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]);
+ next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask])));
l1: /* end objectAfterWhileForwarding: */;
if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) {
@@ -23905,18 +23817,18 @@
}
/* begin safeObjectAfter: */
if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) {
- sz3 = (longAt(newFreeChunk)) & AllButTypeMask;
+ sz2 = (longAt(newFreeChunk)) & AllButTypeMask;
}
else {
/* begin sizeBitsOf: */
- header4 = longAt(newFreeChunk);
- sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass
+ header3 = longAt(newFreeChunk);
+ sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass
? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask
- : header4 & SizeMask);
+ : header3 & SizeMask);
}
- next = ((newFreeChunk + sz3) >= GIV(freeStart)
+ next = ((newFreeChunk + sz2) >= GIV(freeStart)
? GIV(freeStart)
- : (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask]));
+ : (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask]));
assert((next == GIV(freeStart))
|| (next == (oopFromChunk(GIV(compEnd)))));
if (next == GIV(freeStart)) {
@@ -50126,7 +50038,7 @@
given object or free chunk in memory. Return freeStart when
enumeration is complete. This is for assertion checking only. */
-static sqInt
+static usqInt
safeObjectAfter(sqInt oop)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt header;
Modified: branches/Cog/nscogsrc/vm/cointerp.h
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.h 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/nscogsrc/vm/cointerp.h 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
Modified: branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2013-12-11 01:31:20 UTC (rev 2824)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
from
- CoInterpreter VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CoInterpreter VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -574,7 +574,6 @@
sqInt floatObjectOf(double aFloat);
double floatValueOf(sqInt oop);
sqInt flushExternalPrimitiveOf(sqInt methodObj);
-static void followForwardedObjectFieldstoDepth(sqInt objOop, sqInt depth);
static sqInt followForwarded(sqInt objOop);
static void followForwardingPointersInStackZone(sqInt theBecomeEffectsFlags);
static void followNecessaryForwardingInMethod(sqInt methodObj);
@@ -590,7 +589,6 @@
static sqInt frameHasContext(char *theFP);
static sqInt frameIsBlockActivation(char *theFP);
static sqInt frameIsMarked(sqInt theFPInt);
-static sqInt frameMethod(char *theFP);
static sqInt frameNumArgs(char *theFP);
static char * frameOfMarriedContext(sqInt aContext);
usqInt framePointerAddress(void);
@@ -621,7 +619,6 @@
sqInt getThisSessionID(void);
static sqInt goodContextSize(sqInt oop);
static sqInt handleMNUInMachineCodeToclassForMessage(sqInt selectorIndex, sqInt rcvr, sqInt classForMessage);
-static sqInt handleSpecialSelectorSendFaultForfpsp(sqInt obj, char *theFP, char *theSP);
static void handleStackOverflow(void);
static sqInt handleStackOverflowOrEventAllowContextSwitch(sqInt mayContextSwitch);
sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
@@ -1149,7 +1146,7 @@
static void rewriteMethodCacheEntryForExternalPrimitiveToFunction(void (*localPrimAddress)(void));
static sqInt roomToPushNArgs(sqInt n);
static void runLeakCheckerForFullGC(sqInt fullGCFlag);
-static sqInt safeObjectAfter(sqInt oop);
+static usqInt safeObjectAfter(sqInt oop);
static sqInt safePrintStringOf(sqInt oop);
usqInt scavengeThresholdAddress(void);
EXPORT(sqInt) sendInvokeCallbackContext(VMCallbackContext *vmCallbackContext);
@@ -2036,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.554";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.555";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -5678,6 +5675,7 @@
/* begin internalPush: */
longAtPointerput((localSP -= BytesPerOop), longAt((rcvr + BaseHeaderSize) + (byte3 << ShiftForWord)));
}
+ null;
goto l4;
}
if (opType == 3) {
@@ -5687,6 +5685,7 @@
assert(GIV(method) == (iframeMethod(localFP)));
object = longAt((GIV(method) + BaseHeaderSize) + ((byte3 + LiteralStart) << ShiftForWord));
longAtPointerput((localSP -= BytesPerOop), object);
+ null;
goto l4;
}
if (opType == 4) {
@@ -5700,6 +5699,7 @@
object2 = longAt((oop + BaseHeaderSize) + (ValueIndex << ShiftForWord));
longAtPointerput((localSP -= BytesPerOop), object2);
+ null;
goto l4;
}
top = longAtPointer(localSP);
@@ -22076,12 +22076,6 @@
}
}
-static void
-followForwardedObjectFieldstoDepth(sqInt objOop, sqInt depth)
-{
- error("shouldNotImplement");
-}
-
static sqInt
followForwarded(sqInt objOop)
{
@@ -22181,9 +22175,6 @@
/* To avoid any chance of a forwarded object during super sends we follow the
methodClassAssociation. The forwarded object send fault only copes with
normal sends to instances. */
-/* To avoid any chance of a forwarded object during super sends we follow the
- methodClassAssociation. The forwarded object send fault only copes with
- normal sends to instances. */
static void
followNecessaryForwardingInMethod(sqInt methodObj)
@@ -22195,19 +22186,7 @@
sqInt header;
sqInt offset;
- /* begin literal:ofMethod: */
- offset = (literalCountOfHeader(headerOf(methodObj))) - 1;
- assoc = longAt((methodObj + BaseHeaderSize) + ((offset + LiteralStart) << ShiftForWord));
- classObj = longAt((assoc + BaseHeaderSize) + (ValueIndex << ShiftForWord));
-
- header = longAt((methodObj + BaseHeaderSize) + (HeaderIndex << ShiftForWord));
- if (isCogMethodReference(header)) {
- cogMethod = ((CogMethod *) header);
- if ((cogMethod->cmUsesMethodClass)) {
- followForwardedLiteralsIn(cogMethod);
- }
- }
}
@@ -22400,13 +22379,7 @@
: ((longAt(theFPInt + FoxIFrameFlags)) & 2) != 0);
}
-static sqInt
-frameMethod(char *theFP)
-{
- return longAt(theFP + FoxMethod);
-}
-
/* See encodeFrameFieldHasContext:numArgs: */
static sqInt
@@ -23036,51 +23009,6 @@
}
-/* Handle a special send fault that may be due to a special selector
- send accessing a forwarded object.
- Unforward the object on the stack and in inst vars and answer its target. */
-
-static sqInt
-handleSpecialSelectorSendFaultForfpsp(sqInt obj, char *theFP, char *theSP)
-{
- sqInt oop;
- char *ptr;
-
- assert(isOopForwarded(obj));
- /* begin followForwardedFrameContents:stackPointer: */
- for (ptr = (theFP + (frameStackedReceiverOffsetNumArgs(((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
- ? ((mframeCogMethod(theFP))->cmNumArgs)
- : byteAt((theFP + FoxIFrameFlags) + 1))))); ptr <= ((theFP + FoxCallerSavedIP) + BytesPerWord); ptr += BytesPerWord) {
- oop = longAt(ptr);
- if (((oop & 1) == 0)
- && (isForwarded(oop))) {
- longAtput(ptr, followForwarded(oop));
- }
- }
- for (ptr = theSP; ptr <= (frameReceiverOffset(theFP)); ptr += BytesPerWord) {
- oop = longAt(ptr);
- if (((oop & 1) == 0)
- && (isForwarded(oop))) {
- longAtput(ptr, followForwarded(oop));
- }
- }
- assert(!(isForwarded(frameMethod(theFP))));
- if (((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
- ? ((longAt(theFP + FoxMethod)) & MFMethodFlagHasContextFlag) != 0
- : (byteAt((theFP + FoxIFrameFlags) + 2)) != 0)) {
- assert(!(isForwarded(frameContext(theFP))));
- }
- if (isPointers(((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
- ? longAt(theFP + FoxMFReceiver)
- : longAt(theFP + FoxIFReceiver)))) {
- followForwardedObjectFieldstoDepth(((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
- ? longAt(theFP + FoxMFReceiver)
- : longAt(theFP + FoxIFReceiver)), 0);
- }
- return followForwarded(obj);
-}
-
-
/* Check for stack overflow, moving frames to another stack if so. */
static void
@@ -23810,17 +23738,15 @@
sqInt header1;
sqInt header2;
sqInt header3;
- sqInt header4;
usqInt lastWord;
sqInt newFreeChunk;
sqInt newOop;
- sqInt next;
+ usqInt next;
sqInt oop;
sqInt realHeader;
sqInt sz;
sqInt sz1;
sqInt sz2;
- sqInt sz3;
sqInt target;
usqInt w;
@@ -23831,21 +23757,7 @@
/* begin objectAfterWhileForwarding: */
header2 = longAt(oop);
if ((header2 & MarkBit) == 0) {
- /* 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]);
+ next = ((sqInt) (objectAfter(oop)));
goto l1;
}
fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1;
@@ -23860,7 +23772,7 @@
else {
sz1 = realHeader & SizeMask;
}
- next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]);
+ next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask])));
l1: /* end objectAfterWhileForwarding: */;
if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) {
@@ -23914,18 +23826,18 @@
}
/* begin safeObjectAfter: */
if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) {
- sz3 = (longAt(newFreeChunk)) & AllButTypeMask;
+ sz2 = (longAt(newFreeChunk)) & AllButTypeMask;
}
else {
/* begin sizeBitsOf: */
- header4 = longAt(newFreeChunk);
- sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass
+ header3 = longAt(newFreeChunk);
+ sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass
? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask
- : header4 & SizeMask);
+ : header3 & SizeMask);
}
- next = ((newFreeChunk + sz3) >= GIV(freeStart)
+ next = ((newFreeChunk + sz2) >= GIV(freeStart)
? GIV(freeStart)
- : (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask]));
+ : (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask]));
assert((next == GIV(freeStart))
|| (next == (oopFromChunk(GIV(compEnd)))));
if (next == GIV(freeStart)) {
@@ -50135,7 +50047,7 @@
given object or free chunk in memory. Return freeStart when
enumeration is complete. This is for assertion checking only. */
-static sqInt
+static usqInt
safeObjectAfter(sqInt oop)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt header;
Modified: branches/Cog/nscogsrc/vm/interp.h
===================================================================
--- branches/Cog/nscogsrc/vm/interp.h 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/nscogsrc/vm/interp.h 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/nscogsrc/vm/vmCallback.h
===================================================================
--- branches/Cog/nscogsrc/vm/vmCallback.h 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/nscogsrc/vm/vmCallback.h 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
#define VM_CALLBACK_INC 1
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
- Tue Dec 10 16:43:00 PST 2013
+ Tue Dec 10 17:30:58 PST 2013
Modified: branches/Cog/spursrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/cointerp.c 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/spursrc/vm/cointerp.c 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
from
- CoInterpreter VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CoInterpreter VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2159,7 +2159,7 @@
0 };
static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
usqInt heapBase;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.554]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.555]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -23049,9 +23049,6 @@
/* To avoid any chance of a forwarded object during super sends we follow the
methodClassAssociation. The forwarded object send fault only copes with
normal sends to instances. */
-/* To avoid any chance of a forwarded object during super sends we follow the
- methodClassAssociation. The forwarded object send fault only copes with
- normal sends to instances. */
static void
followNecessaryForwardingInMethod(sqInt methodObj)
@@ -23065,6 +23062,7 @@
sqInt referent;
sqInt referent1;
+ /* begin actuallyFollowNecessaryForwardingInMethod: */
/* begin literal:ofMethod: */
offset = (literalCountOfHeader(headerOf(methodObj))) - 1;
assoc = longAt((methodObj + (BaseHeaderSize)) + ((offset + LiteralStart) << 2));
@@ -23134,6 +23132,7 @@
followForwardedLiteralsIn(cogMethod);
}
}
+
}
Modified: branches/Cog/spursrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursrc/vm/cointerp.h 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/spursrc/vm/cointerp.h 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
Modified: branches/Cog/spursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/gcc3x-cointerp.c 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/spursrc/vm/gcc3x-cointerp.c 2013-12-11 01:31:20 UTC (rev 2824)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
from
- CoInterpreter VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CoInterpreter VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0 " __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.554]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.555]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -23058,9 +23058,6 @@
/* To avoid any chance of a forwarded object during super sends we follow the
methodClassAssociation. The forwarded object send fault only copes with
normal sends to instances. */
-/* To avoid any chance of a forwarded object during super sends we follow the
- methodClassAssociation. The forwarded object send fault only copes with
- normal sends to instances. */
static void
followNecessaryForwardingInMethod(sqInt methodObj)
@@ -23074,6 +23071,7 @@
sqInt referent;
sqInt referent1;
+ /* begin actuallyFollowNecessaryForwardingInMethod: */
/* begin literal:ofMethod: */
offset = (literalCountOfHeader(headerOf(methodObj))) - 1;
assoc = longAt((methodObj + (BaseHeaderSize)) + ((offset + LiteralStart) << 2));
@@ -23143,6 +23141,7 @@
followForwardedLiteralsIn(cogMethod);
}
}
+
}
Modified: branches/Cog/spursrc/vm/interp.h
===================================================================
--- branches/Cog/spursrc/vm/interp.h 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/spursrc/vm/interp.h 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/spursrc/vm/vmCallback.h
===================================================================
--- branches/Cog/spursrc/vm/vmCallback.h 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/spursrc/vm/vmCallback.h 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
#define VM_CALLBACK_INC 1
Modified: branches/Cog/spurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/gcc3x-interp.c 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/spurstacksrc/vm/gcc3x-interp.c 2013-12-11 01:31:20 UTC (rev 2824)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
from
- StackInterpreter VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ StackInterpreter VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0 " __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.554]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.555]";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -20876,6 +20876,7 @@
sqInt referent;
sqInt referent1;
+ /* begin actuallyFollowNecessaryForwardingInMethod: */
/* begin literal:ofMethod: */
offset = (
#if MULTIPLEBYTECODESETS
@@ -20954,6 +20955,7 @@
}
longAtput((assoc + (BaseHeaderSize)) + (ValueIndex << 2), classObj);
}
+
}
Modified: branches/Cog/spurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/interp.c 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/spurstacksrc/vm/interp.c 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
from
- StackInterpreter VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ StackInterpreter VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1949,7 +1949,7 @@
0 };
char * breakSelector;
sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.554]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.555]";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -20867,6 +20867,7 @@
sqInt referent;
sqInt referent1;
+ /* begin actuallyFollowNecessaryForwardingInMethod: */
/* begin literal:ofMethod: */
offset = (
#if MULTIPLEBYTECODESETS
@@ -20945,6 +20946,7 @@
}
longAtput((assoc + (BaseHeaderSize)) + (ValueIndex << 2), classObj);
}
+
}
Modified: branches/Cog/spurstacksrc/vm/interp.h
===================================================================
--- branches/Cog/spurstacksrc/vm/interp.h 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/spurstacksrc/vm/interp.h 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/spurstacksrc/vm/vmCallback.h
===================================================================
--- branches/Cog/spurstacksrc/vm/vmCallback.h 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/spurstacksrc/vm/vmCallback.h 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
#define VM_CALLBACK_INC 1
Modified: branches/Cog/src/vm/cogit.c
===================================================================
--- branches/Cog/src/vm/cogit.c 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/src/vm/cogit.c 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGenerator VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ StackToRegisterMappingCogit VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -13363,11 +13363,11 @@
genPushRegisterArgsForNumArgs(sqInt numArgs)
{
if (numArgs <= (numRegArgs())) {
+ assert((numRegArgs()) <= 2);
/* begin MoveMw:r:R: */
genoperandoperandoperand(MoveMwrR, 0, SPReg, TempReg);
/* begin MoveR:Mw:r: */
genoperandoperandoperand(MoveRMwr, ReceiverResultReg, 0, SPReg);
- assert((numRegArgs()) <= 2);
if (numArgs > 0) {
/* begin PushR: */
genoperand(PushR, Arg0Reg);
@@ -13378,6 +13378,7 @@
}
/* begin PushR: */
genoperand(PushR, TempReg);
+
}
}
Modified: branches/Cog/src/vm/cogit.h
===================================================================
--- branches/Cog/src/vm/cogit.h 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/src/vm/cogit.h 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGenerator VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
Modified: branches/Cog/src/vm/cogmethod.h
===================================================================
--- branches/Cog/src/vm/cogmethod.h 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/src/vm/cogmethod.h 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGenerator VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
typedef struct {
Modified: branches/Cog/src/vm/cointerp.c
===================================================================
--- branches/Cog/src/vm/cointerp.c 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/src/vm/cointerp.c 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
from
- CoInterpreter VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CoInterpreter VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -564,7 +564,6 @@
sqInt floatObjectOf(double aFloat);
double floatValueOf(sqInt oop);
sqInt flushExternalPrimitiveOf(sqInt methodObj);
-static void followForwardedObjectFieldstoDepth(sqInt objOop, sqInt depth);
static sqInt followForwarded(sqInt objOop);
static void followForwardingPointersInStackZone(sqInt theBecomeEffectsFlags);
static void followNecessaryForwardingInMethod(sqInt methodObj);
@@ -580,7 +579,6 @@
static sqInt frameHasContext(char *theFP);
static sqInt frameIsBlockActivation(char *theFP);
static sqInt frameIsMarked(sqInt theFPInt);
-static sqInt frameMethod(char *theFP);
static sqInt frameNumArgs(char *theFP);
static char * frameOfMarriedContext(sqInt aContext);
usqInt framePointerAddress(void);
@@ -611,7 +609,6 @@
sqInt getThisSessionID(void);
static sqInt goodContextSize(sqInt oop);
static sqInt handleMNUInMachineCodeToclassForMessage(sqInt selectorIndex, sqInt rcvr, sqInt classForMessage);
-static sqInt handleSpecialSelectorSendFaultForfpsp(sqInt obj, char *theFP, char *theSP);
static void handleStackOverflow(void);
static sqInt handleStackOverflowOrEventAllowContextSwitch(sqInt mayContextSwitch);
sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
@@ -1137,7 +1134,7 @@
static void rewriteMethodCacheEntryForExternalPrimitiveToFunction(void (*localPrimAddress)(void));
static sqInt roomToPushNArgs(sqInt n);
static void runLeakCheckerForFullGC(sqInt fullGCFlag);
-static sqInt safeObjectAfter(sqInt oop);
+static usqInt safeObjectAfter(sqInt oop);
static sqInt safePrintStringOf(sqInt oop);
usqInt scavengeThresholdAddress(void);
EXPORT(sqInt) sendInvokeCallbackContext(VMCallbackContext *vmCallbackContext);
@@ -2023,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.554]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.555]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -17774,12 +17771,6 @@
}
}
-static void
-followForwardedObjectFieldstoDepth(sqInt objOop, sqInt depth)
-{
- error("shouldNotImplement");
-}
-
static sqInt
followForwarded(sqInt objOop)
{
@@ -17879,9 +17870,6 @@
/* To avoid any chance of a forwarded object during super sends we follow the
methodClassAssociation. The forwarded object send fault only copes with
normal sends to instances. */
-/* To avoid any chance of a forwarded object during super sends we follow the
- methodClassAssociation. The forwarded object send fault only copes with
- normal sends to instances. */
static void
followNecessaryForwardingInMethod(sqInt methodObj)
@@ -17893,19 +17881,7 @@
sqInt header;
sqInt offset;
- /* begin literal:ofMethod: */
- offset = (literalCountOfHeader(headerOf(methodObj))) - 1;
- assoc = longAt((methodObj + BaseHeaderSize) + ((offset + LiteralStart) << ShiftForWord));
- classObj = longAt((assoc + BaseHeaderSize) + (ValueIndex << ShiftForWord));
-
- header = longAt((methodObj + BaseHeaderSize) + (HeaderIndex << ShiftForWord));
- if (isCogMethodReference(header)) {
- cogMethod = ((CogMethod *) header);
- if ((cogMethod->cmUsesMethodClass)) {
- followForwardedLiteralsIn(cogMethod);
- }
- }
}
@@ -18098,13 +18074,7 @@
: ((longAt(theFPInt + FoxIFrameFlags)) & 2) != 0);
}
-static sqInt
-frameMethod(char *theFP)
-{
- return longAt(theFP + FoxMethod);
-}
-
/* See encodeFrameFieldHasContext:numArgs: */
static sqInt
@@ -18732,51 +18702,6 @@
}
-/* Handle a special send fault that may be due to a special selector
- send accessing a forwarded object.
- Unforward the object on the stack and in inst vars and answer its target. */
-
-static sqInt
-handleSpecialSelectorSendFaultForfpsp(sqInt obj, char *theFP, char *theSP)
-{
- sqInt oop;
- char *ptr;
-
- assert(isOopForwarded(obj));
- /* begin followForwardedFrameContents:stackPointer: */
- for (ptr = (theFP + (frameStackedReceiverOffsetNumArgs(((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
- ? ((mframeCogMethod(theFP))->cmNumArgs)
- : byteAt((theFP + FoxIFrameFlags) + 1))))); ptr <= ((theFP + FoxCallerSavedIP) + BytesPerWord); ptr += BytesPerWord) {
- oop = longAt(ptr);
- if (((oop & 1) == 0)
- && (isForwarded(oop))) {
- longAtput(ptr, followForwarded(oop));
- }
- }
- for (ptr = theSP; ptr <= (frameReceiverOffset(theFP)); ptr += BytesPerWord) {
- oop = longAt(ptr);
- if (((oop & 1) == 0)
- && (isForwarded(oop))) {
- longAtput(ptr, followForwarded(oop));
- }
- }
- assert(!(isForwarded(frameMethod(theFP))));
- if (((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
- ? ((longAt(theFP + FoxMethod)) & MFMethodFlagHasContextFlag) != 0
- : (byteAt((theFP + FoxIFrameFlags) + 2)) != 0)) {
- assert(!(isForwarded(frameContext(theFP))));
- }
- if (isPointers(((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
- ? longAt(theFP + FoxMFReceiver)
- : longAt(theFP + FoxIFReceiver)))) {
- followForwardedObjectFieldstoDepth(((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
- ? longAt(theFP + FoxMFReceiver)
- : longAt(theFP + FoxIFReceiver)), 0);
- }
- return followForwarded(obj);
-}
-
-
/* Check for stack overflow, moving frames to another stack if so. */
static void
@@ -19257,17 +19182,15 @@
sqInt header1;
sqInt header2;
sqInt header3;
- sqInt header4;
usqInt lastWord;
sqInt newFreeChunk;
sqInt newOop;
- sqInt next;
+ usqInt next;
sqInt oop;
sqInt realHeader;
sqInt sz;
sqInt sz1;
sqInt sz2;
- sqInt sz3;
sqInt target;
usqInt w;
@@ -19278,21 +19201,7 @@
/* begin objectAfterWhileForwarding: */
header2 = longAt(oop);
if ((header2 & MarkBit) == 0) {
- /* 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]);
+ next = ((sqInt) (objectAfter(oop)));
goto l1;
}
fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1;
@@ -19307,7 +19216,7 @@
else {
sz1 = realHeader & SizeMask;
}
- next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]);
+ next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask])));
l1: /* end objectAfterWhileForwarding: */;
if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) {
@@ -19361,18 +19270,18 @@
}
/* begin safeObjectAfter: */
if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) {
- sz3 = (longAt(newFreeChunk)) & AllButTypeMask;
+ sz2 = (longAt(newFreeChunk)) & AllButTypeMask;
}
else {
/* begin sizeBitsOf: */
- header4 = longAt(newFreeChunk);
- sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass
+ header3 = longAt(newFreeChunk);
+ sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass
? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask
- : header4 & SizeMask);
+ : header3 & SizeMask);
}
- next = ((newFreeChunk + sz3) >= GIV(freeStart)
+ next = ((newFreeChunk + sz2) >= GIV(freeStart)
? GIV(freeStart)
- : (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask]));
+ : (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask]));
assert((next == GIV(freeStart))
|| (next == (oopFromChunk(GIV(compEnd)))));
if (next == GIV(freeStart)) {
@@ -45421,7 +45330,7 @@
given object or free chunk in memory. Return freeStart when
enumeration is complete. This is for assertion checking only. */
-static sqInt
+static usqInt
safeObjectAfter(sqInt oop)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt header;
Modified: branches/Cog/src/vm/cointerp.h
===================================================================
--- branches/Cog/src/vm/cointerp.h 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/src/vm/cointerp.h 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
Modified: branches/Cog/src/vm/cointerpmt.c
===================================================================
--- branches/Cog/src/vm/cointerpmt.c 2013-12-11 00:45:24 UTC (rev 2823)
+++ branches/Cog/src/vm/cointerpmt.c 2013-12-11 01:31:20 UTC (rev 2824)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
from
- CoInterpreterMT VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47
+ CoInterpreterMT VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0
*/
-static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.554 uuid: a666e7e4-245e-4e8a-9536-3aefd4509f47 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.555 uuid: 9b99d897-eecb-4b11-97c9-7f7a75c7d8b0 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -613,7 +613,6 @@
sqInt floatObjectOf(double aFloat);
double floatValueOf(sqInt oop);
sqInt flushExternalPrimitiveOf(sqInt methodObj);
-static void followForwardedObjectFieldstoDepth(sqInt objOop, sqInt depth);
static sqInt followForwarded(sqInt objOop);
static void followForwardingPointersInStackZone(sqInt theBecomeEffectsFlags);
static void followNecessaryForwardingInMethod(sqInt methodObj);
@@ -629,7 +628,6 @@
static sqInt frameHasContext(char *theFP);
static sqInt frameIsBlockActivation(char *theFP);
static sqInt frameIsMarked(sqInt theFPInt);
-static sqInt frameMethod(char *theFP);
static sqInt frameNumArgs(char *theFP);
static char * frameOfMarriedContext(sqInt aContext);
usqInt framePointerAddress(void);
@@ -663,7 +661,6 @@
static sqInt goodContextSize(sqInt oop);
static sqInt growThreadInfosToAtLeast(sqInt index);
static sqInt handleMNUInMachineCodeToclassForMessage(sqInt selectorIndex, sqInt rcvr, sqInt classForMessage);
-static sqInt handleSpecialSelectorSendFaultForfpsp(sqInt obj, char *theFP, char *theSP);
static void handleStackOverflow(void);
static sqInt handleStackOverflowOrEventAllowContextSwitch(sqInt mayContextSwitch);
sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
@@ -2121,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.554]";
+const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.555]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
sqInt willNotThreadWarnCount;
@@ -5635,7 +5632,6 @@
/* begin internalPush: */
longAtPointerput((localSP -= BytesPerOop), longAt((rcvr + BaseHeaderSize) + (byte3 << ShiftForWord)));
}
- null;
goto l4;
}
if (opType == 3) {
@@ -5645,7 +5641,6 @@
assert(GIV(method) == (iframeMethod(localFP)));
object = longAt((GIV(method) + BaseHeaderSize) + ((byte3 + LiteralStart) << ShiftForWord));
longAtPointerput((localSP -= BytesPerOop), object);
- null;
goto l4;
}
if (opType == 4) {
@@ -5659,7 +5654,6 @@
object2 = longAt((oop + BaseHeaderSize) + (ValueIndex << ShiftForWord));
longAtPointerput((localSP -= BytesPerOop), object2);
- null;
goto l4;
}
top = longAtPointer(localSP);
@@ -18439,12 +18433,6 @@
}
}
-static void
-followForwardedObjectFieldstoDepth(sqInt objOop, sqInt depth)
-{
- error("shouldNotImplement");
-}
-
static sqInt
@@ Diff output truncated at 50000 characters. @@
More information about the Vm-dev
mailing list