[Vm-dev] [commit][3387] CogVM source as per VMMaker.oscog-eem.1371
commits at squeakvm.org
commits at squeakvm.org
Sun Jun 21 21:26:02 UTC 2015
Revision: 3387
Author: eliot
Date: 2015-06-21 14:26:01 -0700 (Sun, 21 Jun 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1371
Fix bogus assert in extSendBytecode. Simplify
SpurMemoryManager>>classForClassTag:; its assert is superfluous.
Modified Paths:
--------------
branches/Cog/nsspursrc/vm/cogit.h
branches/Cog/nsspursrc/vm/cointerp.c
branches/Cog/nsspursrc/vm/cointerp.h
branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
branches/Cog/nsspurstack64src/vm/gcc3x-interp.c
branches/Cog/nsspurstack64src/vm/interp.c
branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
branches/Cog/nsspurstacksrc/vm/interp.c
branches/Cog/scripts/mkARMstackvmarchives
branches/Cog/scripts/mkspurvmarchives
branches/Cog/scripts/mkvmarchives
branches/Cog/scripts/uploadARMvms
branches/Cog/scripts/uploadvms
branches/Cog/spursistasrc/vm/cogit.h
branches/Cog/spursistasrc/vm/cointerp.c
branches/Cog/spursistasrc/vm/cointerp.h
branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
branches/Cog/spursrc/vm/cogit.h
branches/Cog/spursrc/vm/cointerp.c
branches/Cog/spursrc/vm/cointerp.h
branches/Cog/spursrc/vm/gcc3x-cointerp.c
branches/Cog/spurstack64src/vm/gcc3x-interp.c
branches/Cog/spurstack64src/vm/interp.c
branches/Cog/spurstacksrc/vm/gcc3x-interp.c
branches/Cog/spurstacksrc/vm/interp.c
branches/Cog/src/vm/cogit.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/stacksrc/vm/gcc3x-interp.c
branches/Cog/stacksrc/vm/interp.c
Added Paths:
-----------
branches/Cog/scripts/printRevAndTag
Property Changed:
----------------
branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h 2015-06-20 22:42:13 UTC (rev 3386)
+++ branches/Cog/nsspursrc/vm/cogit.h 2015-06-21 21:26:01 UTC (rev 3387)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+ CCodeGenerator VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
*/
Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c 2015-06-20 22:42:13 UTC (rev 3386)
+++ branches/Cog/nsspursrc/vm/cointerp.c 2015-06-21 21:26:01 UTC (rev 3387)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
from
- CoInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+ CoInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1187,7 +1187,7 @@
static sqInt storeImageSegmentIntooutPointersroots(sqInt segmentWordArray, sqInt outPointerArray, sqInt arrayOfRoots) NoDbgRegParms;
extern sqInt storePointerUncheckedofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
extern sqInt storePointerofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
-extern sqInt stringForCString(const char *aCString);
+extern usqInt stringForCString(const char *aCString);
static sqInt sufficientSpaceAfterGC(sqInt numBytes) NoDbgRegParms;
static sqInt swizzleObjStackAt(sqInt objStackRootIndex) NoDbgRegParms;
extern void tenuringIncrementalGC(void);
@@ -2376,7 +2376,7 @@
/*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
};
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1370";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1371";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -6050,8 +6050,6 @@
sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
if (recordSendTrace()) {
/* begin recordTrace:thing:source: */
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -6067,7 +6065,7 @@
GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
if (printOnTrace()) {
- printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+ printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
/* begin cr */
printf("\n");
}
@@ -6170,8 +6168,6 @@
goto l255;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -13365,7 +13361,6 @@
? 1
: tagBits)
: (longAt(rcvr)) & 0x3FFFFF);
- assert((classForClassTag(lkupClassTag)) != (nilObject()));
goto commonSend;
}
break;
@@ -13461,8 +13456,6 @@
sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
if (recordSendTrace()) {
/* begin recordTrace:thing:source: */
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -13478,7 +13471,7 @@
GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
if (printOnTrace()) {
- printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+ printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
/* begin cr */
printf("\n");
}
@@ -13581,8 +13574,6 @@
goto l266;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -13910,8 +13901,6 @@
sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
if (recordSendTrace()) {
/* begin recordTrace:thing:source: */
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -13927,7 +13916,7 @@
GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
if (printOnTrace()) {
- printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+ printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
/* begin cr */
printf("\n");
}
@@ -14030,8 +14019,6 @@
goto l217;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -14469,8 +14456,6 @@
sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
if (recordSendTrace()) {
/* begin recordTrace:thing:source: */
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -14486,7 +14471,7 @@
GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
if (printOnTrace()) {
- printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+ printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
/* begin cr */
printf("\n");
}
@@ -14589,8 +14574,6 @@
goto l227;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -15034,8 +15017,6 @@
sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
if (recordSendTrace()) {
/* begin recordTrace:thing:source: */
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -15051,7 +15032,7 @@
GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
if (printOnTrace()) {
- printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+ printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
/* begin cr */
printf("\n");
}
@@ -15154,8 +15135,6 @@
goto l238;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -16666,8 +16645,8 @@
return ceDynamicSuperSendtonumArgs(selector, handleForwardedSendFaultForReceiverstackDelta(rcvr, 1), numArgs);
}
GIV(messageSelector) = selector;
- if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
- handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+ if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
+ handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
assert(0);
}
}
@@ -16802,8 +16781,8 @@
error("Implicit receiver lookup should have followed fowarded objects");
}
GIV(messageSelector) = selector;
- if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(irClassTag)))) != 0) {
- handleMNUInMachineCodeToclassForMessage(errSelIdx, implicitReceiver, classForClassTag(irClassTag));
+ if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(irClassTag)))) != 0) {
+ handleMNUInMachineCodeToclassForMessage(errSelIdx, implicitReceiver, classAtIndex(irClassTag));
error("UNREACHABLE3");
}
}
@@ -17389,8 +17368,8 @@
error("Implicit receiver lookup should have followed fowarded objects");
}
GIV(messageSelector) = selector;
- if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(eoClassTag)))) != 0) {
- handleMNUInMachineCodeToclassForMessage(errSelIdx, enclosingObject, classForClassTag(eoClassTag));
+ if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(eoClassTag)))) != 0) {
+ handleMNUInMachineCodeToclassForMessage(errSelIdx, enclosingObject, classAtIndex(eoClassTag));
error("UNREACHABLE3");
}
}
@@ -17565,8 +17544,8 @@
return ceSelfSendtonumArgs(selector, handleForwardedSendFaultForReceiverstackDelta(rcvr, 1), numArgs);
}
GIV(messageSelector) = selector;
- if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
- handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+ if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
+ handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
assert(0);
}
}
@@ -17675,8 +17654,8 @@
}
else {
GIV(messageSelector) = selector;
- if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
- handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+ if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
+ handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
assert(0);
}
}
@@ -17765,8 +17744,8 @@
return ceSendFromInLineCacheMiss(cogMethodOrPIC);
}
GIV(messageSelector) = (cogMethodOrPIC->selector);
- if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
- handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+ if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
+ handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
assert(0);
}
}
@@ -17919,14 +17898,14 @@
return ceSendsupertonumArgs(selector, superNormalBar, handleForwardedSendFaultForReceiverstackDelta(rcvr, 1), numArgs);
}
GIV(messageSelector) = selector;
- if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
+ if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
if ((errSelIdx == SelectorDoesNotUnderstand)
&& ((((usqInt)((cogMethod = cogMNUPICSelectorreceivermethodOperandnumArgs(GIV(messageSelector), rcvr, mnuMethodOrNilFor(rcvr), GIV(argumentCount)))))) > (minCogMethodAddress()))) {
linkSendAtintooffsetreceiver(longAt(GIV(stackPointer)), mframeHomeMethod(GIV(framePointer)), cogMethod, (superNormalBar == 0
? entryOffset()
: noCheckEntryOffset()), rcvr);
}
- handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+ handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
assert(0);
}
}
@@ -18113,7 +18092,7 @@
static sqInt
checkForAndFollowForwardedPrimitiveState(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- sqInt accessorDepth;
+ signed char accessorDepth;
sqInt firstBytecode;
sqInt found;
sqInt found1;
@@ -19153,8 +19132,6 @@
return;
}
}
- /* begin classForClassTag: */
- assert(classTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((classTag <= (tagMask()))
|| (classTag >= (arrayClassIndexPun())));
@@ -20231,7 +20208,7 @@
}
if (!(lookupInMethodCacheSelclassTag(selector, classTag))) {
GIV(messageSelector) = selector;
- if (((erridx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
+ if (((erridx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
assert(erridx <= (maxLookupNoMNUErrorCode()));
return erridx;
}
@@ -24592,7 +24569,7 @@
|| (addressCouldBeObj(s)))
&& ((c != 0)
&& ((addressCouldBeClassObj(c))
- || (addressCouldBeClassObj(classForClassTag(c))))))) {
+ || (addressCouldBeClassObj(classAtIndex(c))))))) {
null;
printNum(i);
/* begin cr */
@@ -24617,7 +24594,7 @@
/* begin space */
/* begin printChar: */
putchar(' ');
- shortPrintOop(classForClassTag(c));
+ shortPrintOop(classAtIndex(c));
}
/* begin tab */
/* begin printChar: */
@@ -25574,7 +25551,7 @@
classTag = (longAt(longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassAlien << (shiftForWord()))))) & 0x3FFFFF;
GIV(messageSelector) = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SelectorInvokeCallback << (shiftForWord())));
if (!(lookupInMethodCacheSelclassTag(GIV(messageSelector), classTag))) {
- if ((lookupMethodNoMNUEtcInClass(classForClassTag(classTag))) != 0) {
+ if ((lookupMethodNoMNUEtcInClass(classAtIndex(classTag))) != 0) {
return 0;
}
}
@@ -26042,7 +26019,7 @@
GIV(messageSelector) = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SelectorInvokeCallback << (shiftForWord())));
GIV(argumentCount) = 4;
if (!(lookupInMethodCacheSelclassTag(GIV(messageSelector), classTag))) {
- if ((lookupMethodNoMNUEtcInClass(classForClassTag(classTag))) != 0) {
+ if ((lookupMethodNoMNUEtcInClass(classAtIndex(classTag))) != 0) {
return 0;
}
}
@@ -32046,7 +32023,7 @@
usqInt newObj;
usqInt numBytes;
sqInt numSlots;
- sqInt s;
+ usqInt s;
char *sp;
sqInt sz;
@@ -37752,7 +37729,7 @@
sqInt err;
sqInt hash;
sqInt instSpec;
- sqInt newObj;
+ usqInt newObj;
usqInt newObj1;
usqInt numBytes;
sqInt numSlots;
@@ -37877,7 +37854,7 @@
sqInt i;
usqInt instSpec;
sqInt literalCount;
- sqInt newObj;
+ usqInt newObj;
usqInt newObj1;
usqInt numBytes;
sqInt numSlots;
@@ -43807,7 +43784,7 @@
sqInt fillValue;
sqInt hash;
usqInt instSpec;
- sqInt newObj;
+ usqInt newObj;
usqInt newObj1;
usqInt numBytes;
usqInt numSlots;
@@ -45939,7 +45916,7 @@
sqInt entry;
sqInt expectedIndex;
sqInt expectedIndex1;
- sqInt freeChunk;
+ usqInt freeChunk;
sqInt i;
sqInt i1;
sqInt index;
@@ -45978,8 +45955,8 @@
sqInt ptr1;
sqInt ptr2;
sqInt slotBytes;
- sqInt smallObj;
- sqInt start;
+ usqInt smallObj;
+ usqInt start;
classIndex = (long32At(aClass + 4)) & 0x3FFFFF;
if (classIndex == 0) {
@@ -48655,13 +48632,16 @@
return longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
}
+
+/* No need to check this; classAtIndex: has a stricter assert:
+ self assert: classIndex ~= self isForwardedObjectClassIndexPun. */
+
/* SpurMemoryManager>>#classForClassTag: */
static sqInt
classForClassTag(sqInt classIndex)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt classTablePage;
- assert(classIndex != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((classIndex <= (tagMask()))
|| (classIndex >= (arrayClassIndexPun())));
@@ -48937,7 +48917,7 @@
sqInt fmt;
sqInt hasYoung;
sqInt i;
- sqInt newObj;
+ usqInt newObj;
usqInt newObj1;
usqInt numBytes;
usqInt numSlots;
@@ -63582,8 +63562,8 @@
sqInt prevPrevObj;
sqInt prevPrevObj1;
sqInt ptr;
- sqInt savedInHashes;
- sqInt savedOutHashes;
+ usqInt savedInHashes;
+ usqInt savedOutHashes;
sqInt segAddr;
sqInt segStart;
sqInt slotBytes;
@@ -64053,13 +64033,13 @@
or nil if out of memory. */
/* SpurMemoryManager>>#stringForCString: */
-sqInt
+usqInt
stringForCString(const char *aCString)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt formatField;
sqInt len;
usqInt newObj;
- sqInt newString;
+ usqInt newString;
usqInt numBytes;
sqInt numSlots;
@@ -65010,7 +64990,7 @@
sqInt largeChild;
sqInt newEndOfMemory;
sqInt next;
- usqInt node;
+ sqInt node;
SpurSegmentInfo *seg;
sqInt smallChild;
sqInt treeNode;
@@ -80259,7 +80239,7 @@
selector = GIV(messageSelector);
sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(selector), lengthOfMaybeImmediate(selector), newReceiver);
if (printOnTrace()) {
- printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lookupClassTag));
+ printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lookupClassTag));
/* begin cr */
printf("\n");
}
Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h 2015-06-20 22:42:13 UTC (rev 3386)
+++ branches/Cog/nsspursrc/vm/cointerp.h 2015-06-21 21:26:01 UTC (rev 3387)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
*/
@@ -258,7 +258,7 @@
extern sqInt splObj(sqInt index);
extern usqInt storeCheckBoundary(void);
extern sqInt storePointerUncheckedofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
-extern sqInt stringForCString(const char *aCString);
+extern usqInt stringForCString(const char *aCString);
extern void tenuringIncrementalGC(void);
extern sqInt topRemappableOop(void);
extern sqInt validFreeTree(void);
Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2015-06-20 22:42:13 UTC (rev 3386)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2015-06-21 21:26:01 UTC (rev 3387)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
from
- CoInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+ CoInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1190,7 +1190,7 @@
static sqInt storeImageSegmentIntooutPointersroots(sqInt segmentWordArray, sqInt outPointerArray, sqInt arrayOfRoots) NoDbgRegParms;
extern sqInt storePointerUncheckedofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
extern sqInt storePointerofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
-extern sqInt stringForCString(const char *aCString);
+extern usqInt stringForCString(const char *aCString);
static sqInt sufficientSpaceAfterGC(sqInt numBytes) NoDbgRegParms;
static sqInt swizzleObjStackAt(sqInt objStackRootIndex) NoDbgRegParms;
extern void tenuringIncrementalGC(void);
@@ -2379,7 +2379,7 @@
/*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
};
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1370";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1371";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -6059,8 +6059,6 @@
sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
if (recordSendTrace()) {
/* begin recordTrace:thing:source: */
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -6076,7 +6074,7 @@
GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
if (printOnTrace()) {
- printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+ printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
/* begin cr */
printf("\n");
}
@@ -6179,8 +6177,6 @@
goto l255;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -13374,7 +13370,6 @@
? 1
: tagBits)
: (longAt(rcvr)) & 0x3FFFFF);
- assert((classForClassTag(lkupClassTag)) != (nilObject()));
goto commonSend;
}
BREAK;
@@ -13470,8 +13465,6 @@
sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
if (recordSendTrace()) {
/* begin recordTrace:thing:source: */
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -13487,7 +13480,7 @@
GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
if (printOnTrace()) {
- printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+ printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
/* begin cr */
printf("\n");
}
@@ -13590,8 +13583,6 @@
goto l266;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -13919,8 +13910,6 @@
sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
if (recordSendTrace()) {
/* begin recordTrace:thing:source: */
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -13936,7 +13925,7 @@
GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
if (printOnTrace()) {
- printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+ printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
/* begin cr */
printf("\n");
}
@@ -14039,8 +14028,6 @@
goto l217;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -14478,8 +14465,6 @@
sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
if (recordSendTrace()) {
/* begin recordTrace:thing:source: */
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -14495,7 +14480,7 @@
GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
if (printOnTrace()) {
- printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+ printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
/* begin cr */
printf("\n");
}
@@ -14598,8 +14583,6 @@
goto l227;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -15043,8 +15026,6 @@
sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
if (recordSendTrace()) {
/* begin recordTrace:thing:source: */
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -15060,7 +15041,7 @@
GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
if (printOnTrace()) {
- printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+ printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
/* begin cr */
printf("\n");
}
@@ -15163,8 +15144,6 @@
goto l238;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -16675,8 +16654,8 @@
return ceDynamicSuperSendtonumArgs(selector, handleForwardedSendFaultForReceiverstackDelta(rcvr, 1), numArgs);
}
GIV(messageSelector) = selector;
- if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
- handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+ if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
+ handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
assert(0);
}
}
@@ -16811,8 +16790,8 @@
error("Implicit receiver lookup should have followed fowarded objects");
}
GIV(messageSelector) = selector;
- if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(irClassTag)))) != 0) {
- handleMNUInMachineCodeToclassForMessage(errSelIdx, implicitReceiver, classForClassTag(irClassTag));
+ if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(irClassTag)))) != 0) {
+ handleMNUInMachineCodeToclassForMessage(errSelIdx, implicitReceiver, classAtIndex(irClassTag));
error("UNREACHABLE3");
}
}
@@ -17398,8 +17377,8 @@
error("Implicit receiver lookup should have followed fowarded objects");
}
GIV(messageSelector) = selector;
- if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(eoClassTag)))) != 0) {
- handleMNUInMachineCodeToclassForMessage(errSelIdx, enclosingObject, classForClassTag(eoClassTag));
+ if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(eoClassTag)))) != 0) {
+ handleMNUInMachineCodeToclassForMessage(errSelIdx, enclosingObject, classAtIndex(eoClassTag));
error("UNREACHABLE3");
}
}
@@ -17574,8 +17553,8 @@
return ceSelfSendtonumArgs(selector, handleForwardedSendFaultForReceiverstackDelta(rcvr, 1), numArgs);
}
GIV(messageSelector) = selector;
- if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
- handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+ if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
+ handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
assert(0);
}
}
@@ -17684,8 +17663,8 @@
}
else {
GIV(messageSelector) = selector;
- if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
- handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+ if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
+ handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
assert(0);
}
}
@@ -17774,8 +17753,8 @@
return ceSendFromInLineCacheMiss(cogMethodOrPIC);
}
GIV(messageSelector) = (cogMethodOrPIC->selector);
- if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
- handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+ if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
+ handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
assert(0);
}
}
@@ -17928,14 +17907,14 @@
return ceSendsupertonumArgs(selector, superNormalBar, handleForwardedSendFaultForReceiverstackDelta(rcvr, 1), numArgs);
}
GIV(messageSelector) = selector;
- if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
+ if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
if ((errSelIdx == SelectorDoesNotUnderstand)
&& ((((usqInt)((cogMethod = cogMNUPICSelectorreceivermethodOperandnumArgs(GIV(messageSelector), rcvr, mnuMethodOrNilFor(rcvr), GIV(argumentCount)))))) > (minCogMethodAddress()))) {
linkSendAtintooffsetreceiver(longAt(GIV(stackPointer)), mframeHomeMethod(GIV(framePointer)), cogMethod, (superNormalBar == 0
? entryOffset()
: noCheckEntryOffset()), rcvr);
}
- handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+ handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
assert(0);
}
}
@@ -18122,7 +18101,7 @@
static sqInt
checkForAndFollowForwardedPrimitiveState(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- sqInt accessorDepth;
+ signed char accessorDepth;
sqInt firstBytecode;
sqInt found;
sqInt found1;
@@ -19162,8 +19141,6 @@
return;
}
}
- /* begin classForClassTag: */
- assert(classTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((classTag <= (tagMask()))
|| (classTag >= (arrayClassIndexPun())));
@@ -20240,7 +20217,7 @@
}
if (!(lookupInMethodCacheSelclassTag(selector, classTag))) {
GIV(messageSelector) = selector;
- if (((erridx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
+ if (((erridx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
assert(erridx <= (maxLookupNoMNUErrorCode()));
return erridx;
}
@@ -24601,7 +24578,7 @@
|| (addressCouldBeObj(s)))
&& ((c != 0)
&& ((addressCouldBeClassObj(c))
- || (addressCouldBeClassObj(classForClassTag(c))))))) {
+ || (addressCouldBeClassObj(classAtIndex(c))))))) {
null;
printNum(i);
/* begin cr */
@@ -24626,7 +24603,7 @@
/* begin space */
/* begin printChar: */
putchar(' ');
- shortPrintOop(classForClassTag(c));
+ shortPrintOop(classAtIndex(c));
}
/* begin tab */
/* begin printChar: */
@@ -25583,7 +25560,7 @@
classTag = (longAt(longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassAlien << (shiftForWord()))))) & 0x3FFFFF;
GIV(messageSelector) = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SelectorInvokeCallback << (shiftForWord())));
if (!(lookupInMethodCacheSelclassTag(GIV(messageSelector), classTag))) {
- if ((lookupMethodNoMNUEtcInClass(classForClassTag(classTag))) != 0) {
+ if ((lookupMethodNoMNUEtcInClass(classAtIndex(classTag))) != 0) {
return 0;
}
}
@@ -26051,7 +26028,7 @@
GIV(messageSelector) = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SelectorInvokeCallback << (shiftForWord())));
GIV(argumentCount) = 4;
if (!(lookupInMethodCacheSelclassTag(GIV(messageSelector), classTag))) {
- if ((lookupMethodNoMNUEtcInClass(classForClassTag(classTag))) != 0) {
+ if ((lookupMethodNoMNUEtcInClass(classAtIndex(classTag))) != 0) {
return 0;
}
}
@@ -32055,7 +32032,7 @@
usqInt newObj;
usqInt numBytes;
sqInt numSlots;
- sqInt s;
+ usqInt s;
char *sp;
sqInt sz;
@@ -37761,7 +37738,7 @@
sqInt err;
sqInt hash;
sqInt instSpec;
- sqInt newObj;
+ usqInt newObj;
usqInt newObj1;
usqInt numBytes;
sqInt numSlots;
@@ -37886,7 +37863,7 @@
sqInt i;
usqInt instSpec;
sqInt literalCount;
- sqInt newObj;
+ usqInt newObj;
usqInt newObj1;
usqInt numBytes;
sqInt numSlots;
@@ -43816,7 +43793,7 @@
sqInt fillValue;
sqInt hash;
usqInt instSpec;
- sqInt newObj;
+ usqInt newObj;
usqInt newObj1;
usqInt numBytes;
usqInt numSlots;
@@ -45948,7 +45925,7 @@
sqInt entry;
sqInt expectedIndex;
sqInt expectedIndex1;
- sqInt freeChunk;
+ usqInt freeChunk;
sqInt i;
sqInt i1;
sqInt index;
@@ -45987,8 +45964,8 @@
sqInt ptr1;
sqInt ptr2;
sqInt slotBytes;
- sqInt smallObj;
- sqInt start;
+ usqInt smallObj;
+ usqInt start;
classIndex = (long32At(aClass + 4)) & 0x3FFFFF;
if (classIndex == 0) {
@@ -48664,13 +48641,16 @@
return longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
}
+
+/* No need to check this; classAtIndex: has a stricter assert:
+ self assert: classIndex ~= self isForwardedObjectClassIndexPun. */
+
/* SpurMemoryManager>>#classForClassTag: */
static sqInt
classForClassTag(sqInt classIndex)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt classTablePage;
- assert(classIndex != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((classIndex <= (tagMask()))
|| (classIndex >= (arrayClassIndexPun())));
@@ -48946,7 +48926,7 @@
sqInt fmt;
sqInt hasYoung;
sqInt i;
- sqInt newObj;
+ usqInt newObj;
usqInt newObj1;
usqInt numBytes;
usqInt numSlots;
@@ -63591,8 +63571,8 @@
sqInt prevPrevObj;
sqInt prevPrevObj1;
sqInt ptr;
- sqInt savedInHashes;
- sqInt savedOutHashes;
+ usqInt savedInHashes;
+ usqInt savedOutHashes;
sqInt segAddr;
sqInt segStart;
sqInt slotBytes;
@@ -64062,13 +64042,13 @@
or nil if out of memory. */
/* SpurMemoryManager>>#stringForCString: */
-sqInt
+usqInt
stringForCString(const char *aCString)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt formatField;
sqInt len;
usqInt newObj;
- sqInt newString;
+ usqInt newString;
usqInt numBytes;
sqInt numSlots;
@@ -65019,7 +64999,7 @@
sqInt largeChild;
sqInt newEndOfMemory;
sqInt next;
- usqInt node;
+ sqInt node;
SpurSegmentInfo *seg;
sqInt smallChild;
sqInt treeNode;
@@ -80268,7 +80248,7 @@
selector = GIV(messageSelector);
sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(selector), lengthOfMaybeImmediate(selector), newReceiver);
if (printOnTrace()) {
- printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lookupClassTag));
+ printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lookupClassTag));
/* begin cr */
printf("\n");
}
Modified: branches/Cog/nsspurstack64src/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstack64src/vm/gcc3x-interp.c 2015-06-20 22:42:13 UTC (rev 3386)
+++ branches/Cog/nsspurstack64src/vm/gcc3x-interp.c 2015-06-21 21:26:01 UTC (rev 3387)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
from
- StackInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+ StackInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2146,7 +2146,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1370";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1371";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -5772,8 +5772,6 @@
goto l203;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -13369,7 +13367,6 @@
lkupClassTag = (((tagBits = rcvr & 7)) != 0
? tagBits
: (longAt(rcvr)) & 0x3FFFFF);
- assert((classForClassTag(lkupClassTag)) != (nilObject()));
goto commonSend;
}
BREAK;
@@ -13693,8 +13690,6 @@
goto l215;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -14020,8 +14015,6 @@
goto l167;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -14418,8 +14411,6 @@
goto l175;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -14842,8 +14833,6 @@
goto l185;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -36047,13 +36036,16 @@
return longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (((long)ClassFloat) << (shiftForWord())));
}
+
+/* No need to check this; classAtIndex: has a stricter assert:
+ self assert: classIndex ~= self isForwardedObjectClassIndexPun. */
+
/* SpurMemoryManager>>#classForClassTag: */
static sqInt
classForClassTag(sqInt classIndex)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt classTablePage;
- assert(classIndex != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((classIndex <= (tagMask()))
|| (classIndex >= (arrayClassIndexPun())));
@@ -58334,8 +58326,6 @@
return null;
}
}
- /* begin classForClassTag: */
- assert(classTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((classTag <= (tagMask()))
|| (classTag >= (arrayClassIndexPun())));
@@ -65346,7 +65336,7 @@
|| (addressCouldBeObj(s)))
&& ((c != 0)
&& ((addressCouldBeClassObj(c))
- || (addressCouldBeClassObj(classForClassTag(c))))))) {
+ || (addressCouldBeClassObj(classAtIndex(c))))))) {
null;
printNum(i);
/* begin cr */
@@ -65371,7 +65361,7 @@
/* begin space */
/* begin printChar: */
putchar(' ');
- shortPrintOop(classForClassTag(c));
+ shortPrintOop(classAtIndex(c));
}
/* begin tab */
/* begin printChar: */
@@ -67599,7 +67589,7 @@
classTag = (longAt(longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (((long)ClassAlien) << (shiftForWord()))))) & 0x3FFFFF;
GIV(messageSelector) = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (((long)SelectorInvokeCallback) << (shiftForWord())));
if (!(lookupInMethodCacheSelclassTag(GIV(messageSelector), classTag))) {
- if ((lookupMethodNoMNUEtcInClass(classForClassTag(classTag))) != 0) {
+ if ((lookupMethodNoMNUEtcInClass(classAtIndex(classTag))) != 0) {
return 0;
}
}
@@ -67773,7 +67763,7 @@
GIV(messageSelector) = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (((long)SelectorInvokeCallback) << (shiftForWord())));
GIV(argumentCount) = 4;
if (!(lookupInMethodCacheSelclassTag(GIV(messageSelector), classTag))) {
- if ((lookupMethodNoMNUEtcInClass(classForClassTag(classTag))) != 0) {
+ if ((lookupMethodNoMNUEtcInClass(classAtIndex(classTag))) != 0) {
return 0;
}
}
Modified: branches/Cog/nsspurstack64src/vm/interp.c
===================================================================
--- branches/Cog/nsspurstack64src/vm/interp.c 2015-06-20 22:42:13 UTC (rev 3386)
+++ branches/Cog/nsspurstack64src/vm/interp.c 2015-06-21 21:26:01 UTC (rev 3387)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
from
- StackInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+ StackInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2143,7 +2143,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1370";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1371";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -5763,8 +5763,6 @@
goto l203;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -13360,7 +13358,6 @@
lkupClassTag = (((tagBits = rcvr & 7)) != 0
? tagBits
: (longAt(rcvr)) & 0x3FFFFF);
- assert((classForClassTag(lkupClassTag)) != (nilObject()));
goto commonSend;
}
break;
@@ -13684,8 +13681,6 @@
goto l215;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -14011,8 +14006,6 @@
goto l167;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -14409,8 +14402,6 @@
goto l175;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -14833,8 +14824,6 @@
goto l185;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -36038,13 +36027,16 @@
return longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (((long)ClassFloat) << (shiftForWord())));
}
+
+/* No need to check this; classAtIndex: has a stricter assert:
+ self assert: classIndex ~= self isForwardedObjectClassIndexPun. */
+
/* SpurMemoryManager>>#classForClassTag: */
static sqInt
classForClassTag(sqInt classIndex)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt classTablePage;
- assert(classIndex != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((classIndex <= (tagMask()))
|| (classIndex >= (arrayClassIndexPun())));
@@ -58325,8 +58317,6 @@
return null;
}
}
- /* begin classForClassTag: */
- assert(classTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((classTag <= (tagMask()))
|| (classTag >= (arrayClassIndexPun())));
@@ -65337,7 +65327,7 @@
|| (addressCouldBeObj(s)))
&& ((c != 0)
&& ((addressCouldBeClassObj(c))
- || (addressCouldBeClassObj(classForClassTag(c))))))) {
+ || (addressCouldBeClassObj(classAtIndex(c))))))) {
null;
printNum(i);
/* begin cr */
@@ -65362,7 +65352,7 @@
/* begin space */
/* begin printChar: */
putchar(' ');
- shortPrintOop(classForClassTag(c));
+ shortPrintOop(classAtIndex(c));
}
/* begin tab */
/* begin printChar: */
@@ -67590,7 +67580,7 @@
classTag = (longAt(longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (((long)ClassAlien) << (shiftForWord()))))) & 0x3FFFFF;
GIV(messageSelector) = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (((long)SelectorInvokeCallback) << (shiftForWord())));
if (!(lookupInMethodCacheSelclassTag(GIV(messageSelector), classTag))) {
- if ((lookupMethodNoMNUEtcInClass(classForClassTag(classTag))) != 0) {
+ if ((lookupMethodNoMNUEtcInClass(classAtIndex(classTag))) != 0) {
return 0;
}
}
@@ -67764,7 +67754,7 @@
GIV(messageSelector) = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (((long)SelectorInvokeCallback) << (shiftForWord())));
GIV(argumentCount) = 4;
if (!(lookupInMethodCacheSelclassTag(GIV(messageSelector), classTag))) {
- if ((lookupMethodNoMNUEtcInClass(classForClassTag(classTag))) != 0) {
+ if ((lookupMethodNoMNUEtcInClass(classAtIndex(classTag))) != 0) {
return 0;
}
}
Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2015-06-20 22:42:13 UTC (rev 3386)
+++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2015-06-21 21:26:01 UTC (rev 3387)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
from
- StackInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+ StackInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2117,7 +2117,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1370";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1371";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -5745,8 +5745,6 @@
goto l249;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -12700,7 +12698,6 @@
? 1
: tagBits)
: (longAt(rcvr)) & 0x3FFFFF);
- assert((classForClassTag(lkupClassTag)) != (nilObject()));
goto commonSend;
}
BREAK;
@@ -13028,8 +13025,6 @@
goto l261;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -13355,8 +13350,6 @@
goto l213;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -13755,8 +13748,6 @@
goto l221;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
|| (lkupClassTag >= (arrayClassIndexPun())));
@@ -14181,8 +14172,6 @@
goto l231;
}
}
- /* begin classForClassTag: */
- assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
/* begin classAtIndex: */
assert((lkupClassTag <= (tagMask()))
@@ Diff output truncated at 50000 characters. @@
More information about the Vm-dev
mailing list