[Vm-dev] [commit][3261] CogVM source as per VMMaker.oscog-eem.1073
commits at squeakvm.org
commits at squeakvm.org
Sun Feb 22 23:10:11 UTC 2015
Revision: 3261
Author: eliot
Date: 2015-02-22 15:10:08 -0800 (Sun, 22 Feb 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1073
General:
Add an option to control FailUnbalancedPrimitives and
no longer burden the Stack VMs with the responsibility.
Newspeak VM:
Add an optional CheckPrivacyViolations option and obey it (thanks, Ryan).
Modified Paths:
--------------
branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
branches/Cog/nsspurstacksrc/vm/interp.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/stacksrc/vm/gcc3x-interp.c
branches/Cog/stacksrc/vm/interp.c
Property Changed:
----------------
branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2015-02-21 06:09:27 UTC (rev 3260)
+++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2015-02-22 23:10:08 UTC (rev 3261)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1073 uuid: f5e526a5-587e-4182-856d-519220e8efa9
from
- StackInterpreter VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
+ StackInterpreter VMMaker.oscog-eem.1073 uuid: f5e526a5-587e-4182-856d-519220e8efa9
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1073 uuid: f5e526a5-587e-4182-856d-519220e8efa9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -150,6 +150,7 @@
#define CacheProbeMax 3
#define CharacterTable null
#define CharacterValueIndex 0
+#define CheckPrivacyViolations 1
#define ClassAlien 52
#define ClassArray 7
#define ClassArrayCompactIndex 51
@@ -202,7 +203,7 @@
#define ExcessSignalsIndex 2
#define ExternalObjectsArray 38
#define ExtraRootsSize 2048
-#define FailImbalancedPrimitives 1
+#define FailImbalancedPrimitives 0
#define FalseObject 1
#define FirstLinkIndex 0
#define FoxCallerContext 4
@@ -248,6 +249,7 @@
#define MethodCacheSize 4096
#define MethodDictionaryIndex 1
#define MethodHeaderArgCountShift 25
+#define MethodHeaderFlagBitPosition 29
#define MethodHeaderTempCountShift 19
#define MethodIndex 3
#define MillisecondClockMask 0x1FFFFFFF
@@ -961,6 +963,7 @@
static usqInt totalBytesInSegments(void);
static sqInt writeImageSegmentsToFile(sqImageFile aBinaryStream) NoDbgRegParms;
static sqInt writeSegmentnextSegmenttoFile(SpurSegmentInfo *segment, SpurSegmentInfo *nextSegment, sqImageFile aBinaryStream) NoDbgRegParms;
+static sqInt accessModifierOfMethod(sqInt methodObj) NoDbgRegParms;
sqInt activeProcess(void);
static void addLastLinktoList(sqInt proc, sqInt aList) NoDbgRegParms;
static void addNewMethodToCache(sqInt classObj) NoDbgRegParms;
@@ -1455,6 +1458,7 @@
_iss sqInt gcSemaphoreIndex;
_iss sqInt globalSessionID;
_iss sqInt imageFloatsBigEndian;
+_iss sqInt isPrivateSend;
_iss sqInt longRunningPrimitiveSignalUndelivered;
_iss sqInt maxExtSemTabSizeSet;
_iss sqInt rememberedSetRedZone;
@@ -2110,7 +2114,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1072";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1073";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -5671,7 +5675,7 @@
sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
/* begin internalFindNewMethod */
-
+
/* shift drops two low-order zeros from addresses */
hash1 = GIV(messageSelector) ^ lkupClassTag;
@@ -5741,6 +5745,9 @@
localFP = pointerForOop(GIV(framePointer));
addNewMethodToCache(GIV(lkupClass));
l239: ;
+
+ GIV(isPrivateSend) = 0;
+
l238: /* end internalFindNewMethod */;
/* begin internalExecuteNewMethod */
if (primitiveFunctionPointer != 0) {
@@ -5787,10 +5794,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -5808,18 +5812,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -13177,6 +13170,8 @@
: tagBits)
: (longAt(localAbsentReceiver)) & 0x3FFFFF);
assert((classForClassTag(lkupClassTag)) != (nilObject()));
+ GIV(isPrivateSend) = 1;
+
goto commonSend;
}
}
@@ -19951,10 +19946,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -19972,18 +19964,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -22411,10 +22392,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -22432,18 +22410,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -22663,10 +22630,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -22684,18 +22648,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -48396,7 +48349,19 @@
return nWritten;
}
+static sqInt
+accessModifierOfMethod(sqInt methodObj)
+{
+ sqInt header;
+ /* begin accessModifierOfMethodHeader: */
+ /* begin methodHeaderOf: */
+ assert(isCompiledMethod(methodObj));
+ header = longAt((methodObj + BaseHeaderSize) + (HeaderIndex << (shiftForWord())));
+ return (((usqInt) header) >> MethodHeaderFlagBitPosition) & 3;
+}
+
+
/* Answer the current activeProcess. */
/* useful for VM debugging */
@@ -53867,6 +53832,19 @@
}
found = 0;
l1: /* end lookupMethodInDictionary: */;
+ if ((!GIV(isPrivateSend))
+ && ((GIV(messageSelector) != (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SelectorDoesNotUnderstand << (shiftForWord())))))
+ && ((accessModifierOfMethod(GIV(newMethod))) != 0))) {
+ print(nameOfClass(currentClass));
+ /* begin space */
+ /* begin printChar: */
+ putchar(' ');
+ printStringOf(GIV(messageSelector));
+ print(" from ");
+ printStringOf(fetchPointerofObject(0, methodClassOf(GIV(method))));
+ /* begin cr */
+ printf("\n");
+ }
if (found) {
return currentClass;
}
@@ -65759,10 +65737,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -65780,18 +65755,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -65897,10 +65861,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -65918,18 +65879,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -66128,10 +66078,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -66149,18 +66096,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -67437,10 +67373,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -67458,18 +67391,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
Modified: branches/Cog/nsspurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/interp.c 2015-02-21 06:09:27 UTC (rev 3260)
+++ branches/Cog/nsspurstacksrc/vm/interp.c 2015-02-22 23:10:08 UTC (rev 3261)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1073 uuid: f5e526a5-587e-4182-856d-519220e8efa9
from
- StackInterpreter VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
+ StackInterpreter VMMaker.oscog-eem.1073 uuid: f5e526a5-587e-4182-856d-519220e8efa9
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1073 uuid: f5e526a5-587e-4182-856d-519220e8efa9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -147,6 +147,7 @@
#define CacheProbeMax 3
#define CharacterTable null
#define CharacterValueIndex 0
+#define CheckPrivacyViolations 1
#define ClassAlien 52
#define ClassArray 7
#define ClassArrayCompactIndex 51
@@ -199,7 +200,7 @@
#define ExcessSignalsIndex 2
#define ExternalObjectsArray 38
#define ExtraRootsSize 2048
-#define FailImbalancedPrimitives 1
+#define FailImbalancedPrimitives 0
#define FalseObject 1
#define FirstLinkIndex 0
#define FoxCallerContext 4
@@ -245,6 +246,7 @@
#define MethodCacheSize 4096
#define MethodDictionaryIndex 1
#define MethodHeaderArgCountShift 25
+#define MethodHeaderFlagBitPosition 29
#define MethodHeaderTempCountShift 19
#define MethodIndex 3
#define MillisecondClockMask 0x1FFFFFFF
@@ -958,6 +960,7 @@
static usqInt totalBytesInSegments(void);
static sqInt writeImageSegmentsToFile(sqImageFile aBinaryStream) NoDbgRegParms;
static sqInt writeSegmentnextSegmenttoFile(SpurSegmentInfo *segment, SpurSegmentInfo *nextSegment, sqImageFile aBinaryStream) NoDbgRegParms;
+static sqInt accessModifierOfMethod(sqInt methodObj) NoDbgRegParms;
sqInt activeProcess(void);
static void addLastLinktoList(sqInt proc, sqInt aList) NoDbgRegParms;
static void addNewMethodToCache(sqInt classObj) NoDbgRegParms;
@@ -1452,6 +1455,7 @@
_iss sqInt gcSemaphoreIndex;
_iss sqInt globalSessionID;
_iss sqInt imageFloatsBigEndian;
+_iss sqInt isPrivateSend;
_iss sqInt longRunningPrimitiveSignalUndelivered;
_iss sqInt maxExtSemTabSizeSet;
_iss sqInt rememberedSetRedZone;
@@ -2107,7 +2111,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1072";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1073";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -5662,7 +5666,7 @@
sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
/* begin internalFindNewMethod */
-
+
/* shift drops two low-order zeros from addresses */
hash1 = GIV(messageSelector) ^ lkupClassTag;
@@ -5732,6 +5736,9 @@
localFP = pointerForOop(GIV(framePointer));
addNewMethodToCache(GIV(lkupClass));
l239: ;
+
+ GIV(isPrivateSend) = 0;
+
l238: /* end internalFindNewMethod */;
/* begin internalExecuteNewMethod */
if (primitiveFunctionPointer != 0) {
@@ -5778,10 +5785,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -5799,18 +5803,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -13168,6 +13161,8 @@
: tagBits)
: (longAt(localAbsentReceiver)) & 0x3FFFFF);
assert((classForClassTag(lkupClassTag)) != (nilObject()));
+ GIV(isPrivateSend) = 1;
+
goto commonSend;
}
}
@@ -19942,10 +19937,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -19963,18 +19955,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -22402,10 +22383,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -22423,18 +22401,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -22654,10 +22621,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -22675,18 +22639,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -48387,7 +48340,19 @@
return nWritten;
}
+static sqInt
+accessModifierOfMethod(sqInt methodObj)
+{
+ sqInt header;
+ /* begin accessModifierOfMethodHeader: */
+ /* begin methodHeaderOf: */
+ assert(isCompiledMethod(methodObj));
+ header = longAt((methodObj + BaseHeaderSize) + (HeaderIndex << (shiftForWord())));
+ return (((usqInt) header) >> MethodHeaderFlagBitPosition) & 3;
+}
+
+
/* Answer the current activeProcess. */
/* useful for VM debugging */
@@ -53858,6 +53823,19 @@
}
found = 0;
l1: /* end lookupMethodInDictionary: */;
+ if ((!GIV(isPrivateSend))
+ && ((GIV(messageSelector) != (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SelectorDoesNotUnderstand << (shiftForWord())))))
+ && ((accessModifierOfMethod(GIV(newMethod))) != 0))) {
+ print(nameOfClass(currentClass));
+ /* begin space */
+ /* begin printChar: */
+ putchar(' ');
+ printStringOf(GIV(messageSelector));
+ print(" from ");
+ printStringOf(fetchPointerofObject(0, methodClassOf(GIV(method))));
+ /* begin cr */
+ printf("\n");
+ }
if (found) {
return currentClass;
}
@@ -65750,10 +65728,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -65771,18 +65746,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -65888,10 +65852,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -65909,18 +65870,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -66119,10 +66069,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -66140,18 +66087,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -67428,10 +67364,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -67449,18 +67382,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
- Fri Feb 20 22:04:44 PST 2015
+ Sun Feb 22 15:09:48 PST 2015
Modified: branches/Cog/spurstack64src/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/spurstack64src/vm/gcc3x-interp.c 2015-02-21 06:09:27 UTC (rev 3260)
+++ branches/Cog/spurstack64src/vm/gcc3x-interp.c 2015-02-22 23:10:08 UTC (rev 3261)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1073 uuid: f5e526a5-587e-4182-856d-519220e8efa9
from
- StackInterpreter VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
+ StackInterpreter VMMaker.oscog-eem.1073 uuid: f5e526a5-587e-4182-856d-519220e8efa9
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1073 uuid: f5e526a5-587e-4182-856d-519220e8efa9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -128,7 +128,7 @@
#define ActiveProcessIndex 1
#define AlternateHeaderHasPrimFlag 0x80000
#define AlternateHeaderNumLiteralsMask 0x7FFF
-#define AltLongStoreBytecode 129
+#define AltLongStoreBytecode 234
#define AtCacheFixedFields 4
#define AtCacheFmt 3
#define AtCacheMask 0x1C
@@ -158,6 +158,7 @@
#define CacheProbeMax 3
#define CharacterTable null
#define CharacterValueIndex 0
+#define CheckPrivacyViolations 0
#define ClassAlien 52
#define ClassArray 7
#define ClassArrayCompactIndex 51
@@ -208,7 +209,7 @@
#define ExcessSignalsIndex 2
#define ExternalObjectsArray 38
#define ExtraRootsSize 2048
-#define FailImbalancedPrimitives 1
+#define FailImbalancedPrimitives 0
#define FalseObject 1
#define FirstLinkIndex 0
#define FoxCallerContext 8
@@ -2131,7 +2132,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1072]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1073]";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -5581,7 +5582,7 @@
sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
/* begin internalFindNewMethod */
-
+
/* shift drops two low-order zeros from addresses */
hash1 = GIV(messageSelector) ^ lkupClassTag;
@@ -5651,6 +5652,8 @@
localFP = pointerForOop(GIV(framePointer));
addNewMethodToCache(GIV(lkupClass));
l105: ;
+
+
l104: /* end internalFindNewMethod */;
/* begin internalExecuteNewMethod */
if (primitiveFunctionPointer != 0) {
@@ -5697,10 +5700,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -5718,18 +5718,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -16352,10 +16341,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -16373,18 +16359,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -18870,10 +18845,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -18891,18 +18863,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -19115,10 +19076,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -19136,18 +19094,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -54094,6 +54041,7 @@
}
found = 0;
l1: /* end lookupMethodInDictionary: */;
+
if (found) {
return currentClass;
}
@@ -65546,10 +65494,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -65567,18 +65512,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -65684,10 +65618,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -65705,18 +65636,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -65910,10 +65830,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -65931,18 +65848,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -67168,10 +67074,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -67189,18 +67092,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
Modified: branches/Cog/spurstack64src/vm/interp.c
===================================================================
--- branches/Cog/spurstack64src/vm/interp.c 2015-02-21 06:09:27 UTC (rev 3260)
+++ branches/Cog/spurstack64src/vm/interp.c 2015-02-22 23:10:08 UTC (rev 3261)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1073 uuid: f5e526a5-587e-4182-856d-519220e8efa9
from
- StackInterpreter VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
+ StackInterpreter VMMaker.oscog-eem.1073 uuid: f5e526a5-587e-4182-856d-519220e8efa9
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1073 uuid: f5e526a5-587e-4182-856d-519220e8efa9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -125,7 +125,7 @@
#define ActiveProcessIndex 1
#define AlternateHeaderHasPrimFlag 0x80000
#define AlternateHeaderNumLiteralsMask 0x7FFF
-#define AltLongStoreBytecode 129
+#define AltLongStoreBytecode 234
#define AtCacheFixedFields 4
#define AtCacheFmt 3
#define AtCacheMask 0x1C
@@ -155,6 +155,7 @@
#define CacheProbeMax 3
#define CharacterTable null
#define CharacterValueIndex 0
+#define CheckPrivacyViolations 0
#define ClassAlien 52
#define ClassArray 7
#define ClassArrayCompactIndex 51
@@ -205,7 +206,7 @@
#define ExcessSignalsIndex 2
#define ExternalObjectsArray 38
#define ExtraRootsSize 2048
-#define FailImbalancedPrimitives 1
+#define FailImbalancedPrimitives 0
#define FalseObject 1
#define FirstLinkIndex 0
#define FoxCallerContext 8
@@ -2128,7 +2129,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1072]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1073]";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -5572,7 +5573,7 @@
sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
/* begin internalFindNewMethod */
-
+
/* shift drops two low-order zeros from addresses */
hash1 = GIV(messageSelector) ^ lkupClassTag;
@@ -5642,6 +5643,8 @@
localFP = pointerForOop(GIV(framePointer));
addNewMethodToCache(GIV(lkupClass));
l105: ;
+
+
l104: /* end internalFindNewMethod */;
/* begin internalExecuteNewMethod */
if (primitiveFunctionPointer != 0) {
@@ -5688,10 +5691,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -5709,18 +5709,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -16343,10 +16332,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -16364,18 +16350,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -18861,10 +18836,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -18882,18 +18854,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -19106,10 +19067,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -19127,18 +19085,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -54085,6 +54032,7 @@
}
found = 0;
l1: /* end lookupMethodInDictionary: */;
+
if (found) {
return currentClass;
}
@@ -65537,10 +65485,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -65558,18 +65503,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -65675,10 +65609,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -65696,18 +65627,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -65901,10 +65821,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -65922,18 +65839,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
@@ -67159,10 +67065,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
GIV(primFailCode) = 0;
dispatchFunctionPointer(primitiveFunctionPointer);
@@ -67180,18 +67083,7 @@
GIV(primFailCode) = PrimErrWritePastObject;
}
}
- if ((!GIV(primFailCode))
- && ((GIV(framePointer) == savedFramePointer)
- && (!0))) {
-
- /* Don't fail if primitive has done something radical, e.g. perform: */
-
- if (GIV(stackPointer) != (savedStackPointer + (nArgs * BytesPerWord))) {
- flag("Would be nice to make this a message send of e.g. unbalancedPrimitive to the current process or context");
- GIV(stackPointer) = savedStackPointer;
- failUnbalancedPrimitive();
- }
- }
+
if (GIV(nextProfileTick) > 0) {
checkProfileTick(GIV(newMethod));
}
Modified: branches/Cog/spurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/gcc3x-interp.c 2015-02-21 06:09:27 UTC (rev 3260)
+++ branches/Cog/spurstacksrc/vm/gcc3x-interp.c 2015-02-22 23:10:08 UTC (rev 3261)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1073 uuid: f5e526a5-587e-4182-856d-519220e8efa9
from
- StackInterpreter VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
+ StackInterpreter VMMaker.oscog-eem.1073 uuid: f5e526a5-587e-4182-856d-519220e8efa9
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1073 uuid: f5e526a5-587e-4182-856d-519220e8efa9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -150,6 +150,7 @@
#define CacheProbeMax 3
#define CharacterTable null
#define CharacterValueIndex 0
+#define CheckPrivacyViolations 0
#define ClassAlien 52
#define ClassArray 7
#define ClassArrayCompactIndex 51
@@ -200,7 +201,7 @@
#define ExcessSignalsIndex 2
#define ExternalObjectsArray 38
#define ExtraRootsSize 2048
-#define FailImbalancedPrimitives 1
+#define FailImbalancedPrimitives 0
#define FalseObject 1
#define FirstLinkIndex 0
#define FoxCallerContext 4
@@ -2103,7 +2104,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1072]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1073]";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -5555,7 +5556,7 @@
sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
/* begin internalFindNewMethod */
-
+
/* shift drops two low-order zeros from addresses */
hash1 = GIV(messageSelector) ^ lkupClassTag;
@@ -5625,6 +5626,8 @@
localFP = pointerForOop(GIV(framePointer));
addNewMethodToCache(GIV(lkupClass));
l128: ;
+
+
l127: /* end internalFindNewMethod */;
/* begin internalExecuteNewMethod */
if (primitiveFunctionPointer != 0) {
@@ -5671,10 +5674,7 @@
/* begin slowPrimitiveResponse */
assert(!(isOopForwarded(stackValue(GIV(argumentCount)))));
assert((remapBufferCount()) == 0);
- nArgs = GIV(argumentCount);
- savedStackPointer = GIV(stackPointer);
- savedFramePointer = GIV(framePointer);
-
+
/* begin initPrimCall */
@@ Diff output truncated at 50000 characters. @@
More information about the Vm-dev
mailing list