[Vm-dev] [commit][3160] CogVM source as per VMMaker.oscog-eem.968
commits at squeakvm.org
commits at squeakvm.org
Fri Dec 5 23:14:14 UTC 2014
Revision: 3160
Author: eliot
Date: 2014-12-05 15:14:12 -0800 (Fri, 05 Dec 2014)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.968
Extend the -breakmnu facility to break on creating MNU PIC entries, not just activating them.
Modified Paths:
--------------
branches/Cog/nscogsrc/vm/cogit.c
branches/Cog/nscogsrc/vm/cogit.h
branches/Cog/nscogsrc/vm/cointerp.c
branches/Cog/nscogsrc/vm/cointerp.h
branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
branches/Cog/nsspursrc/vm/cogit.c
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/sistasrc/vm/cogit.c
branches/Cog/sistasrc/vm/cogit.h
branches/Cog/sistasrc/vm/cointerp.c
branches/Cog/sistasrc/vm/cointerp.h
branches/Cog/sistasrc/vm/gcc3x-cointerp.c
branches/Cog/spursistasrc/vm/cogit.c
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.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/src/vm/cogit.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
Property Changed:
----------------
branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nscogsrc/vm/cogit.c
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.c 2014-12-05 20:27:02 UTC (rev 3159)
+++ branches/Cog/nscogsrc/vm/cogit.c 2014-12-05 23:14:12 UTC (rev 3160)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CCodeGenerator VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ StackToRegisterMappingCogit VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -9366,7 +9366,7 @@
sqInt size;
sqInt target;
- compilationBreakpoint((cPIC->selector), lengthOf((cPIC->selector)));
+ compilationBreakpointisMNUCase((cPIC->selector), lengthOf((cPIC->selector)), isMNUCase);
allocateOpcodesbytecodes(5, 0);
assert(!(inlineCacheTagIsYoung(caseNTag)));
assert((caseNMethod != null)
@@ -9501,7 +9501,7 @@
if (isYoung(selector)) {
return 0;
}
- compilationBreakpoint(selector, lengthOf(selector));
+ compilationBreakpointisMNUCase(selector, lengthOf(selector), 1);
assert(endCPICCase0 != null);
startAddress = allocate(closedPICSize);
if (startAddress == 0) {
@@ -9539,7 +9539,7 @@
sqInt mapSize;
sqInt startAddress;
- compilationBreakpoint(selector, lengthOf(selector));
+ compilationBreakpointisMNUCase(selector, lengthOf(selector), 0);
startAddress = allocate(openPICSize);
if (startAddress == 0) {
return ((CogMethod *) InsufficientCodeSpace);
@@ -9579,7 +9579,7 @@
if (isYoung(selector)) {
return ((CogMethod *) YoungSelectorInPIC);
}
- compilationBreakpoint(selector, lengthOf(selector));
+ compilationBreakpointisMNUCase(selector, lengthOf(selector), isMNUCase);
startAddress = allocate(closedPICSize);
if (startAddress == 0) {
return ((CogMethod *) InsufficientCodeSpace);
@@ -9615,7 +9615,7 @@
assert((!(methodHasCogMethod(aMethodObj)))
|| ((noAssertMethodClassAssociationOf(aMethodObj)) == (nilObject())));
- compilationBreakpoint(aSelectorOop, lengthOf(aSelectorOop));
+ compilationBreakpointisMNUCase(aSelectorOop, lengthOf(aSelectorOop), 0);
if (aMethodObj == breakMethod) {
haltmsg("Compilation of breakMethod");
}
@@ -14009,7 +14009,7 @@
void
setSelectorOfto(CogMethod *cogMethod, sqInt aSelectorOop)
{
- compilationBreakpoint(aSelectorOop, lengthOf(aSelectorOop));
+ compilationBreakpointisMNUCase(aSelectorOop, lengthOf(aSelectorOop), 0);
assert(((cogMethod->cmType)) == CMMethod);
(cogMethod->selector = aSelectorOop);
if (isYoung(aSelectorOop)) {
Modified: branches/Cog/nscogsrc/vm/cogit.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.h 2014-12-05 20:27:02 UTC (rev 3159)
+++ branches/Cog/nscogsrc/vm/cogit.h 2014-12-05 23:14:12 UTC (rev 3160)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CCodeGenerator VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
*/
Modified: branches/Cog/nscogsrc/vm/cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.c 2014-12-05 20:27:02 UTC (rev 3159)
+++ branches/Cog/nscogsrc/vm/cointerp.c 2014-12-05 23:14:12 UTC (rev 3160)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
from
- CoInterpreter VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CoInterpreter VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -496,6 +496,7 @@
static sqInt mframeReceiver(char *theFP) NoDbgRegParms;
static sqInt minimumUnusedHeadroom(void);
sqInt mMethodClass(void);
+void mnuCompilationBreakpointFor(sqInt selectorOop);
static sqInt mnuMethodOrNilFor(sqInt rcvr) NoDbgRegParms;
static char * moveFramesInthroughtoPage(StackPage *oldPage, char *theFP, StackPage *newPage) NoDbgRegParms;
static sqInt mustMapMachineCodePCcontext(sqInt theIP, sqInt aOnceMarriedContext) NoDbgRegParms;
@@ -1502,14 +1503,14 @@
sqInt checkAllocFiller;
sqInt inIOProcessEvents;
sqInt checkForLeaks;
+sqInt breakSelectorLength = -1;
sqInt desiredEdenBytes;
sqInt desiredNumStackPages;
-sqInt breakSelectorLength = -1;
sqInt extraVMMemory;
sqInt desiredCogCodeSize;
+char * breakSelector;
usqInt heapBase;
void * showSurfaceFn;
-char * breakSelector;
sqInt deferDisplayUpdates;
struct VirtualMachine* interpreterProxy;
static void (*interruptCheckChain)(void) = 0;
@@ -2096,7 +2097,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.966";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.968";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -2106,9 +2107,9 @@
#define cPICNumCasesHack hack hack hack i.e. the getter macro does all the work
#define nextOpenPIC methodObject
#define nextOpenPICHack hack hack hack i.e. the getter macro does all the work
-#define compilationBreakpoint(sel, len) do { \
- if ((len) == breakSelectorLength \
- && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, breakSelectorLength)) { \
+#define compilationBreakpointisMNUCase(sel, len, isMNU) do { \
+ if ((len) == (isMNU ? -breakSelectorLength : breakSelectorLength) \
+ && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, (isMNU ? -breakSelectorLength : breakSelectorLength))) { \
suppressHeartbeatFlag = 1; \
compilationBreakpointFor(sel); \
} \
@@ -2120,6 +2121,13 @@
#define getDesiredCogCodeSize() integerObjectOf(desiredCogCodeSize)
#define heapBase() heapBase
#define initialEnterSmalltalkExecutive() enterSmalltalkExecutiveImplementation()
+#define mnuCompilationBreakpoint(sel, len) do { \
+ if ((len) == -breakSelectorLength \
+ && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, -breakSelectorLength)) { \
+ suppressHeartbeatFlag = 1; \
+ compilationBreakpointFor(sel); \
+ } \
+} while (0)
#define primTraceLogIndex(aValue) (GIV(primTraceLogIndex) = (aValue))
#define setDesiredCogCodeSize(dccs) (desiredCogCodeSize = (dccs))
#define mostRecentlyUsedPage() GIV(mostRecentlyUsedPage)
@@ -17880,7 +17888,14 @@
return methodClassOf(((mframeHomeMethod(GIV(framePointer)))->methodObject));
}
+void
+mnuCompilationBreakpointFor(sqInt selectorOop)
+{
+ suppressHeartbeatFlag = 1;
+ warning("compilation MNU break (heartbeat suppressed)");
+}
+
/* Lookup the doesNotUnderstand: selector in the class of the argument rcvr.
Answer either the matching method (cogged if appropriate), or nil, if not
found.
Modified: branches/Cog/nscogsrc/vm/cointerp.h
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.h 2014-12-05 20:27:02 UTC (rev 3159)
+++ branches/Cog/nscogsrc/vm/cointerp.h 2014-12-05 23:14:12 UTC (rev 3160)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
*/
@@ -78,6 +78,7 @@
CogMethod * mframeHomeMethodExport(void);
CogMethod * mframeHomeMethod(char *theFP);
sqInt mMethodClass(void);
+void mnuCompilationBreakpointFor(sqInt selectorOop);
usqInt newMethodAddress(void);
usqInt nextProfileTickAddress(void);
sqInt noAssertHeaderOf(sqInt methodPointer);
@@ -290,13 +291,20 @@
/*** Macros ***/
-#define compilationBreakpoint(sel, len) do { \
- if ((len) == breakSelectorLength \
- && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, breakSelectorLength)) { \
+#define compilationBreakpointisMNUCase(sel, len, isMNU) do { \
+ if ((len) == (isMNU ? -breakSelectorLength : breakSelectorLength) \
+ && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, (isMNU ? -breakSelectorLength : breakSelectorLength))) { \
suppressHeartbeatFlag = 1; \
compilationBreakpointFor(sel); \
} \
} while (0)
+#define mnuCompilationBreakpoint(sel, len) do { \
+ if ((len) == -breakSelectorLength \
+ && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, -breakSelectorLength)) { \
+ suppressHeartbeatFlag = 1; \
+ compilationBreakpointFor(sel); \
+ } \
+} while (0)
#define classFieldOffset() (0 - BaseHeaderSize)
#define compactClassFieldWidth() 5
#define instFormatFieldLSB() 8
Modified: branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2014-12-05 20:27:02 UTC (rev 3159)
+++ branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2014-12-05 23:14:12 UTC (rev 3160)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
from
- CoInterpreter VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CoInterpreter VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -499,6 +499,7 @@
static sqInt mframeReceiver(char *theFP) NoDbgRegParms;
static sqInt minimumUnusedHeadroom(void);
sqInt mMethodClass(void);
+void mnuCompilationBreakpointFor(sqInt selectorOop);
static sqInt mnuMethodOrNilFor(sqInt rcvr) NoDbgRegParms;
static char * moveFramesInthroughtoPage(StackPage *oldPage, char *theFP, StackPage *newPage) NoDbgRegParms;
static sqInt mustMapMachineCodePCcontext(sqInt theIP, sqInt aOnceMarriedContext) NoDbgRegParms;
@@ -1505,14 +1506,14 @@
sqInt checkAllocFiller;
sqInt inIOProcessEvents;
sqInt checkForLeaks;
+sqInt breakSelectorLength = -1;
sqInt desiredEdenBytes;
sqInt desiredNumStackPages;
-sqInt breakSelectorLength = -1;
sqInt extraVMMemory;
sqInt desiredCogCodeSize;
+char * breakSelector;
usqInt heapBase;
void * showSurfaceFn;
-char * breakSelector;
sqInt deferDisplayUpdates;
struct VirtualMachine* interpreterProxy;
static void (*interruptCheckChain)(void) = 0;
@@ -2099,7 +2100,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.966";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.968";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -2109,9 +2110,9 @@
#define cPICNumCasesHack hack hack hack i.e. the getter macro does all the work
#define nextOpenPIC methodObject
#define nextOpenPICHack hack hack hack i.e. the getter macro does all the work
-#define compilationBreakpoint(sel, len) do { \
- if ((len) == breakSelectorLength \
- && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, breakSelectorLength)) { \
+#define compilationBreakpointisMNUCase(sel, len, isMNU) do { \
+ if ((len) == (isMNU ? -breakSelectorLength : breakSelectorLength) \
+ && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, (isMNU ? -breakSelectorLength : breakSelectorLength))) { \
suppressHeartbeatFlag = 1; \
compilationBreakpointFor(sel); \
} \
@@ -2123,6 +2124,13 @@
#define getDesiredCogCodeSize() integerObjectOf(desiredCogCodeSize)
#define heapBase() heapBase
#define initialEnterSmalltalkExecutive() enterSmalltalkExecutiveImplementation()
+#define mnuCompilationBreakpoint(sel, len) do { \
+ if ((len) == -breakSelectorLength \
+ && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, -breakSelectorLength)) { \
+ suppressHeartbeatFlag = 1; \
+ compilationBreakpointFor(sel); \
+ } \
+} while (0)
#define primTraceLogIndex(aValue) (GIV(primTraceLogIndex) = (aValue))
#define setDesiredCogCodeSize(dccs) (desiredCogCodeSize = (dccs))
#define mostRecentlyUsedPage() GIV(mostRecentlyUsedPage)
@@ -17889,7 +17897,14 @@
return methodClassOf(((mframeHomeMethod(GIV(framePointer)))->methodObject));
}
+void
+mnuCompilationBreakpointFor(sqInt selectorOop)
+{
+ suppressHeartbeatFlag = 1;
+ warning("compilation MNU break (heartbeat suppressed)");
+}
+
/* Lookup the doesNotUnderstand: selector in the class of the argument rcvr.
Answer either the matching method (cogged if appropriate), or nil, if not
found.
Modified: branches/Cog/nsspursrc/vm/cogit.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.c 2014-12-05 20:27:02 UTC (rev 3159)
+++ branches/Cog/nsspursrc/vm/cogit.c 2014-12-05 23:14:12 UTC (rev 3160)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CCodeGenerator VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ StackToRegisterMappingCogit VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -9324,7 +9324,7 @@
sqInt size;
sqInt target;
- compilationBreakpoint((cPIC->selector), lengthOf((cPIC->selector)));
+ compilationBreakpointisMNUCase((cPIC->selector), lengthOf((cPIC->selector)), isMNUCase);
allocateOpcodesbytecodes(5, 0);
assert(!(inlineCacheTagIsYoung(caseNTag)));
assert((caseNMethod != null)
@@ -9459,7 +9459,7 @@
if (isYoung(selector)) {
return 0;
}
- compilationBreakpoint(selector, lengthOf(selector));
+ compilationBreakpointisMNUCase(selector, lengthOf(selector), 1);
assert(endCPICCase0 != null);
startAddress = allocate(closedPICSize);
if (startAddress == 0) {
@@ -9497,7 +9497,7 @@
sqInt mapSize;
sqInt startAddress;
- compilationBreakpoint(selector, lengthOf(selector));
+ compilationBreakpointisMNUCase(selector, lengthOf(selector), 0);
startAddress = allocate(openPICSize);
if (startAddress == 0) {
return ((CogMethod *) InsufficientCodeSpace);
@@ -9537,7 +9537,7 @@
if (isYoung(selector)) {
return ((CogMethod *) YoungSelectorInPIC);
}
- compilationBreakpoint(selector, lengthOf(selector));
+ compilationBreakpointisMNUCase(selector, lengthOf(selector), isMNUCase);
startAddress = allocate(closedPICSize);
if (startAddress == 0) {
return ((CogMethod *) InsufficientCodeSpace);
@@ -9573,7 +9573,7 @@
assert((!(methodHasCogMethod(aMethodObj)))
|| ((noAssertMethodClassAssociationOf(aMethodObj)) == (nilObject())));
- compilationBreakpoint(aSelectorOop, lengthOf(aSelectorOop));
+ compilationBreakpointisMNUCase(aSelectorOop, lengthOf(aSelectorOop), 0);
if (aMethodObj == breakMethod) {
haltmsg("Compilation of breakMethod");
}
@@ -13910,7 +13910,7 @@
void
setSelectorOfto(CogMethod *cogMethod, sqInt aSelectorOop)
{
- compilationBreakpoint(aSelectorOop, lengthOf(aSelectorOop));
+ compilationBreakpointisMNUCase(aSelectorOop, lengthOf(aSelectorOop), 0);
assert(((cogMethod->cmType)) == CMMethod);
(cogMethod->selector = aSelectorOop);
if (isYoung(aSelectorOop)) {
Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h 2014-12-05 20:27:02 UTC (rev 3159)
+++ branches/Cog/nsspursrc/vm/cogit.h 2014-12-05 23:14:12 UTC (rev 3160)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CCodeGenerator VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
*/
Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c 2014-12-05 20:27:02 UTC (rev 3159)
+++ branches/Cog/nsspursrc/vm/cointerp.c 2014-12-05 23:14:12 UTC (rev 3160)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
from
- CoInterpreter VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CoInterpreter VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -506,6 +506,7 @@
static sqInt mframeReceiver(char *theFP) NoDbgRegParms;
static sqInt minimumUnusedHeadroom(void);
sqInt mMethodClass(void);
+void mnuCompilationBreakpointFor(sqInt selectorOop);
static sqInt mnuMethodOrNilFor(sqInt rcvr) NoDbgRegParms;
static char * moveFramesInthroughtoPage(StackPage *oldPage, char *theFP, StackPage *newPage) NoDbgRegParms;
static sqInt mustMapMachineCodePCcontext(sqInt theIP, sqInt aOnceMarriedContext) NoDbgRegParms;
@@ -1723,14 +1724,14 @@
sqInt checkForLeaks;
sqInt checkAllocFiller;
sqInt inIOProcessEvents;
+sqInt breakSelectorLength = -1;
sqInt desiredEdenBytes;
sqInt desiredNumStackPages;
-sqInt breakSelectorLength = -1;
sqInt extraVMMemory;
sqInt desiredCogCodeSize;
+char * breakSelector;
usqInt heapBase;
void * showSurfaceFn;
-char * breakSelector;
sqInt deferDisplayUpdates;
struct VirtualMachine* interpreterProxy;
static void (*interruptCheckChain)(void) = 0;
@@ -2345,7 +2346,7 @@
/*540*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
/*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
};
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.966";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.968";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -2355,9 +2356,9 @@
#define cPICNumCasesHack hack hack hack i.e. the getter macro does all the work
#define nextOpenPIC methodObject
#define nextOpenPICHack hack hack hack i.e. the getter macro does all the work
-#define compilationBreakpoint(sel, len) do { \
- if ((len) == breakSelectorLength \
- && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, breakSelectorLength)) { \
+#define compilationBreakpointisMNUCase(sel, len, isMNU) do { \
+ if ((len) == (isMNU ? -breakSelectorLength : breakSelectorLength) \
+ && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, (isMNU ? -breakSelectorLength : breakSelectorLength))) { \
suppressHeartbeatFlag = 1; \
compilationBreakpointFor(sel); \
} \
@@ -2369,6 +2370,13 @@
#define getDesiredCogCodeSize() integerObjectOf(desiredCogCodeSize)
#define heapBase() heapBase
#define initialEnterSmalltalkExecutive() enterSmalltalkExecutiveImplementation()
+#define mnuCompilationBreakpoint(sel, len) do { \
+ if ((len) == -breakSelectorLength \
+ && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, -breakSelectorLength)) { \
+ suppressHeartbeatFlag = 1; \
+ compilationBreakpointFor(sel); \
+ } \
+} while (0)
#define primTraceLogIndex(aValue) (GIV(primTraceLogIndex) = (aValue))
#define setDesiredCogCodeSize(dccs) (desiredCogCodeSize = (dccs))
#define mostRecentlyUsedPage() GIV(mostRecentlyUsedPage)
@@ -8842,7 +8850,7 @@
/* bytecodePrimBitShift */
{
sqInt integerArgument;
- sqLong integerReceiver;
+ usqInt integerReceiver;
sqInt shifted;
char *sp;
@@ -8902,7 +8910,7 @@
null;
goto l76;
}
- shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
+ shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -11590,7 +11598,7 @@
/* bytecodePrimBitShift */
{
sqInt integerArgument;
- sqLong integerReceiver;
+ usqInt integerReceiver;
sqInt shifted;
char *sp;
@@ -11650,7 +11658,7 @@
null;
goto l183;
}
- shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
+ shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -22119,7 +22127,14 @@
return methodClassOf(((mframeHomeMethod(GIV(framePointer)))->methodObject));
}
+void
+mnuCompilationBreakpointFor(sqInt selectorOop)
+{
+ suppressHeartbeatFlag = 1;
+ warning("compilation MNU break (heartbeat suppressed)");
+}
+
/* Lookup the doesNotUnderstand: selector in the class of the argument rcvr.
Answer either the matching method (cogged if appropriate), or nil, if not
found.
@@ -29379,7 +29394,7 @@
primitiveBitShift(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt integerArgument;
- sqLong integerReceiver;
+ usqInt integerReceiver;
sqInt shifted;
char *sp;
@@ -29426,7 +29441,7 @@
}
return;
}
- shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
+ shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h 2014-12-05 20:27:02 UTC (rev 3159)
+++ branches/Cog/nsspursrc/vm/cointerp.h 2014-12-05 23:14:12 UTC (rev 3160)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
*/
@@ -80,6 +80,7 @@
CogMethod * mframeHomeMethodExport(void);
CogMethod * mframeHomeMethod(char *theFP);
sqInt mMethodClass(void);
+void mnuCompilationBreakpointFor(sqInt selectorOop);
usqInt newMethodAddress(void);
usqInt nextProfileTickAddress(void);
sqInt noAssertHeaderOf(sqInt methodPointer);
@@ -338,13 +339,20 @@
/*** Macros ***/
-#define compilationBreakpoint(sel, len) do { \
- if ((len) == breakSelectorLength \
- && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, breakSelectorLength)) { \
+#define compilationBreakpointisMNUCase(sel, len, isMNU) do { \
+ if ((len) == (isMNU ? -breakSelectorLength : breakSelectorLength) \
+ && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, (isMNU ? -breakSelectorLength : breakSelectorLength))) { \
suppressHeartbeatFlag = 1; \
compilationBreakpointFor(sel); \
} \
} while (0)
+#define mnuCompilationBreakpoint(sel, len) do { \
+ if ((len) == -breakSelectorLength \
+ && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, -breakSelectorLength)) { \
+ suppressHeartbeatFlag = 1; \
+ compilationBreakpointFor(sel); \
+ } \
+} while (0)
#define startOfMemory() heapBase
#define shiftForWord() 2
#define wordSize() 4
Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-12-05 20:27:02 UTC (rev 3159)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-12-05 23:14:12 UTC (rev 3160)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
from
- CoInterpreter VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CoInterpreter VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -509,6 +509,7 @@
static sqInt mframeReceiver(char *theFP) NoDbgRegParms;
static sqInt minimumUnusedHeadroom(void);
sqInt mMethodClass(void);
+void mnuCompilationBreakpointFor(sqInt selectorOop);
static sqInt mnuMethodOrNilFor(sqInt rcvr) NoDbgRegParms;
static char * moveFramesInthroughtoPage(StackPage *oldPage, char *theFP, StackPage *newPage) NoDbgRegParms;
static sqInt mustMapMachineCodePCcontext(sqInt theIP, sqInt aOnceMarriedContext) NoDbgRegParms;
@@ -1726,14 +1727,14 @@
sqInt checkForLeaks;
sqInt checkAllocFiller;
sqInt inIOProcessEvents;
+sqInt breakSelectorLength = -1;
sqInt desiredEdenBytes;
sqInt desiredNumStackPages;
-sqInt breakSelectorLength = -1;
sqInt extraVMMemory;
sqInt desiredCogCodeSize;
+char * breakSelector;
usqInt heapBase;
void * showSurfaceFn;
-char * breakSelector;
sqInt deferDisplayUpdates;
struct VirtualMachine* interpreterProxy;
static void (*interruptCheckChain)(void) = 0;
@@ -2348,7 +2349,7 @@
/*540*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
/*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
};
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.966";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.968";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -2358,9 +2359,9 @@
#define cPICNumCasesHack hack hack hack i.e. the getter macro does all the work
#define nextOpenPIC methodObject
#define nextOpenPICHack hack hack hack i.e. the getter macro does all the work
-#define compilationBreakpoint(sel, len) do { \
- if ((len) == breakSelectorLength \
- && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, breakSelectorLength)) { \
+#define compilationBreakpointisMNUCase(sel, len, isMNU) do { \
+ if ((len) == (isMNU ? -breakSelectorLength : breakSelectorLength) \
+ && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, (isMNU ? -breakSelectorLength : breakSelectorLength))) { \
suppressHeartbeatFlag = 1; \
compilationBreakpointFor(sel); \
} \
@@ -2372,6 +2373,13 @@
#define getDesiredCogCodeSize() integerObjectOf(desiredCogCodeSize)
#define heapBase() heapBase
#define initialEnterSmalltalkExecutive() enterSmalltalkExecutiveImplementation()
+#define mnuCompilationBreakpoint(sel, len) do { \
+ if ((len) == -breakSelectorLength \
+ && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, -breakSelectorLength)) { \
+ suppressHeartbeatFlag = 1; \
+ compilationBreakpointFor(sel); \
+ } \
+} while (0)
#define primTraceLogIndex(aValue) (GIV(primTraceLogIndex) = (aValue))
#define setDesiredCogCodeSize(dccs) (desiredCogCodeSize = (dccs))
#define mostRecentlyUsedPage() GIV(mostRecentlyUsedPage)
@@ -8851,7 +8859,7 @@
/* bytecodePrimBitShift */
{
sqInt integerArgument;
- sqLong integerReceiver;
+ usqInt integerReceiver;
sqInt shifted;
char *sp;
@@ -8911,7 +8919,7 @@
null;
goto l76;
}
- shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
+ shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -11599,7 +11607,7 @@
/* bytecodePrimBitShift */
{
sqInt integerArgument;
- sqLong integerReceiver;
+ usqInt integerReceiver;
sqInt shifted;
char *sp;
@@ -11659,7 +11667,7 @@
null;
goto l183;
}
- shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
+ shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -22128,7 +22136,14 @@
return methodClassOf(((mframeHomeMethod(GIV(framePointer)))->methodObject));
}
+void
+mnuCompilationBreakpointFor(sqInt selectorOop)
+{
+ suppressHeartbeatFlag = 1;
+ warning("compilation MNU break (heartbeat suppressed)");
+}
+
/* Lookup the doesNotUnderstand: selector in the class of the argument rcvr.
Answer either the matching method (cogged if appropriate), or nil, if not
found.
@@ -29388,7 +29403,7 @@
primitiveBitShift(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt integerArgument;
- sqLong integerReceiver;
+ usqInt integerReceiver;
sqInt shifted;
char *sp;
@@ -29435,7 +29450,7 @@
}
return;
}
- shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
+ shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
- Fri Dec 5 12:23:57 PST 2014
+ Fri Dec 5 15:14:03 PST 2014
Modified: branches/Cog/sistasrc/vm/cogit.c
===================================================================
--- branches/Cog/sistasrc/vm/cogit.c 2014-12-05 20:27:02 UTC (rev 3159)
+++ branches/Cog/sistasrc/vm/cogit.c 2014-12-05 23:14:12 UTC (rev 3160)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CCodeGenerator VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
from
- SistaStackToRegisterMappingCogit VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ SistaStackToRegisterMappingCogit VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
*/
-static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06 " __DATE__ ;
+static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -9288,7 +9288,7 @@
sqInt size;
sqInt target;
- compilationBreakpoint((cPIC->selector), lengthOf((cPIC->selector)));
+ compilationBreakpointisMNUCase((cPIC->selector), lengthOf((cPIC->selector)), isMNUCase);
allocateOpcodesbytecodes(5, 0);
assert(!(inlineCacheTagIsYoung(caseNTag)));
assert((caseNMethod != null)
@@ -9423,7 +9423,7 @@
if (isYoung(selector)) {
return 0;
}
- compilationBreakpoint(selector, lengthOf(selector));
+ compilationBreakpointisMNUCase(selector, lengthOf(selector), 1);
assert(endCPICCase0 != null);
startAddress = allocate(closedPICSize);
if (startAddress == 0) {
@@ -9461,7 +9461,7 @@
sqInt mapSize;
sqInt startAddress;
- compilationBreakpoint(selector, lengthOf(selector));
+ compilationBreakpointisMNUCase(selector, lengthOf(selector), 0);
startAddress = allocate(openPICSize);
if (startAddress == 0) {
return ((CogMethod *) InsufficientCodeSpace);
@@ -9501,7 +9501,7 @@
if (isYoung(selector)) {
return ((CogMethod *) YoungSelectorInPIC);
}
- compilationBreakpoint(selector, lengthOf(selector));
+ compilationBreakpointisMNUCase(selector, lengthOf(selector), isMNUCase);
startAddress = allocate(closedPICSize);
if (startAddress == 0) {
return ((CogMethod *) InsufficientCodeSpace);
@@ -9537,7 +9537,7 @@
assert((!(methodHasCogMethod(aMethodObj)))
|| ((noAssertMethodClassAssociationOf(aMethodObj)) == (nilObject())));
- compilationBreakpoint(aSelectorOop, lengthOf(aSelectorOop));
+ compilationBreakpointisMNUCase(aSelectorOop, lengthOf(aSelectorOop), 0);
if (aMethodObj == breakMethod) {
haltmsg("Compilation of breakMethod");
}
@@ -13635,7 +13635,7 @@
void
setSelectorOfto(CogMethod *cogMethod, sqInt aSelectorOop)
{
- compilationBreakpoint(aSelectorOop, lengthOf(aSelectorOop));
+ compilationBreakpointisMNUCase(aSelectorOop, lengthOf(aSelectorOop), 0);
assert(((cogMethod->cmType)) == CMMethod);
(cogMethod->selector = aSelectorOop);
if (isYoung(aSelectorOop)) {
Modified: branches/Cog/sistasrc/vm/cogit.h
===================================================================
--- branches/Cog/sistasrc/vm/cogit.h 2014-12-05 20:27:02 UTC (rev 3159)
+++ branches/Cog/sistasrc/vm/cogit.h 2014-12-05 23:14:12 UTC (rev 3160)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CCodeGenerator VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
*/
Modified: branches/Cog/sistasrc/vm/cointerp.c
===================================================================
--- branches/Cog/sistasrc/vm/cointerp.c 2014-12-05 20:27:02 UTC (rev 3159)
+++ branches/Cog/sistasrc/vm/cointerp.c 2014-12-05 23:14:12 UTC (rev 3160)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
from
- CoInterpreter VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CoInterpreter VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -493,6 +493,7 @@
static sqInt mframeReceiver(char *theFP) NoDbgRegParms;
static sqInt minimumUnusedHeadroom(void);
sqInt mMethodClass(void);
+void mnuCompilationBreakpointFor(sqInt selectorOop);
static sqInt mnuMethodOrNilFor(sqInt rcvr) NoDbgRegParms;
static char * moveFramesInthroughtoPage(StackPage *oldPage, char *theFP, StackPage *newPage) NoDbgRegParms;
static sqInt mustMapMachineCodePCcontext(sqInt theIP, sqInt aOnceMarriedContext) NoDbgRegParms;
@@ -1499,14 +1500,14 @@
sqInt checkAllocFiller;
sqInt inIOProcessEvents;
sqInt checkForLeaks;
+sqInt breakSelectorLength = -1;
sqInt desiredEdenBytes;
sqInt desiredNumStackPages;
-sqInt breakSelectorLength = -1;
sqInt extraVMMemory;
sqInt desiredCogCodeSize;
+char * breakSelector;
usqInt heapBase;
void * showSurfaceFn;
-char * breakSelector;
sqInt deferDisplayUpdates;
struct VirtualMachine* interpreterProxy;
static void (*interruptCheckChain)(void) = 0;
@@ -2093,7 +2094,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.966]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.968]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -2103,9 +2104,9 @@
#define cPICNumCasesHack hack hack hack i.e. the getter macro does all the work
#define nextOpenPIC methodObject
#define nextOpenPICHack hack hack hack i.e. the getter macro does all the work
-#define compilationBreakpoint(sel, len) do { \
- if ((len) == breakSelectorLength \
- && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, breakSelectorLength)) { \
+#define compilationBreakpointisMNUCase(sel, len, isMNU) do { \
+ if ((len) == (isMNU ? -breakSelectorLength : breakSelectorLength) \
+ && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, (isMNU ? -breakSelectorLength : breakSelectorLength))) { \
suppressHeartbeatFlag = 1; \
compilationBreakpointFor(sel); \
} \
@@ -2117,6 +2118,13 @@
#define getDesiredCogCodeSize() integerObjectOf(desiredCogCodeSize)
#define heapBase() heapBase
#define initialEnterSmalltalkExecutive() enterSmalltalkExecutiveImplementation()
+#define mnuCompilationBreakpoint(sel, len) do { \
+ if ((len) == -breakSelectorLength \
+ && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, -breakSelectorLength)) { \
+ suppressHeartbeatFlag = 1; \
+ compilationBreakpointFor(sel); \
+ } \
+} while (0)
#define primTraceLogIndex(aValue) (GIV(primTraceLogIndex) = (aValue))
#define setDesiredCogCodeSize(dccs) (desiredCogCodeSize = (dccs))
#define mostRecentlyUsedPage() GIV(mostRecentlyUsedPage)
@@ -7947,7 +7955,7 @@
/* bytecodePrimBitShift */
{
sqInt integerArgument;
- usqInt integerReceiver;
+ sqLong integerReceiver;
sqInt shifted;
char *sp;
@@ -8007,7 +8015,7 @@
null;
goto l108;
}
- shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
+ shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -10932,7 +10940,7 @@
/* bytecodePrimBitShift */
{
sqInt integerArgument;
- usqInt integerReceiver;
+ sqLong integerReceiver;
sqInt shifted;
char *sp;
@@ -10992,7 +11000,7 @@
null;
goto l242;
}
- shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
+ shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -17889,7 +17897,14 @@
return methodClassOf(((mframeHomeMethod(GIV(framePointer)))->methodObject));
}
+void
+mnuCompilationBreakpointFor(sqInt selectorOop)
+{
+ suppressHeartbeatFlag = 1;
+ warning("compilation MNU break (heartbeat suppressed)");
+}
+
/* Lookup the doesNotUnderstand: selector in the class of the argument rcvr.
Answer either the matching method (cogged if appropriate), or nil, if not
found.
@@ -24575,7 +24590,7 @@
primitiveBitShift(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt integerArgument;
- usqInt integerReceiver;
+ sqLong integerReceiver;
sqInt shifted;
char *sp;
@@ -24622,7 +24637,7 @@
}
return;
}
- shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
+ shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
Modified: branches/Cog/sistasrc/vm/cointerp.h
===================================================================
--- branches/Cog/sistasrc/vm/cointerp.h 2014-12-05 20:27:02 UTC (rev 3159)
+++ branches/Cog/sistasrc/vm/cointerp.h 2014-12-05 23:14:12 UTC (rev 3160)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
*/
@@ -76,6 +76,7 @@
sqInt methodShouldBeCogged(sqInt aMethodObj);
CogMethod * mframeHomeMethod(char *theFP);
sqInt mMethodClass(void);
+void mnuCompilationBreakpointFor(sqInt selectorOop);
usqInt newMethodAddress(void);
usqInt nextProfileTickAddress(void);
sqInt noAssertHeaderOf(sqInt methodPointer);
@@ -288,13 +289,20 @@
/*** Macros ***/
-#define compilationBreakpoint(sel, len) do { \
- if ((len) == breakSelectorLength \
- && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, breakSelectorLength)) { \
+#define compilationBreakpointisMNUCase(sel, len, isMNU) do { \
+ if ((len) == (isMNU ? -breakSelectorLength : breakSelectorLength) \
+ && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, (isMNU ? -breakSelectorLength : breakSelectorLength))) { \
suppressHeartbeatFlag = 1; \
compilationBreakpointFor(sel); \
} \
} while (0)
+#define mnuCompilationBreakpoint(sel, len) do { \
+ if ((len) == -breakSelectorLength \
+ && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, -breakSelectorLength)) { \
+ suppressHeartbeatFlag = 1; \
+ compilationBreakpointFor(sel); \
+ } \
+} while (0)
#define classFieldOffset() (0 - BaseHeaderSize)
#define compactClassFieldWidth() 5
#define instFormatFieldLSB() 8
Modified: branches/Cog/sistasrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/sistasrc/vm/gcc3x-cointerp.c 2014-12-05 20:27:02 UTC (rev 3159)
+++ branches/Cog/sistasrc/vm/gcc3x-cointerp.c 2014-12-05 23:14:12 UTC (rev 3160)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
from
- CoInterpreter VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CoInterpreter VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -496,6 +496,7 @@
static sqInt mframeReceiver(char *theFP) NoDbgRegParms;
static sqInt minimumUnusedHeadroom(void);
sqInt mMethodClass(void);
+void mnuCompilationBreakpointFor(sqInt selectorOop);
static sqInt mnuMethodOrNilFor(sqInt rcvr) NoDbgRegParms;
static char * moveFramesInthroughtoPage(StackPage *oldPage, char *theFP, StackPage *newPage) NoDbgRegParms;
static sqInt mustMapMachineCodePCcontext(sqInt theIP, sqInt aOnceMarriedContext) NoDbgRegParms;
@@ -1502,14 +1503,14 @@
sqInt checkAllocFiller;
sqInt inIOProcessEvents;
sqInt checkForLeaks;
+sqInt breakSelectorLength = -1;
sqInt desiredEdenBytes;
sqInt desiredNumStackPages;
-sqInt breakSelectorLength = -1;
sqInt extraVMMemory;
sqInt desiredCogCodeSize;
+char * breakSelector;
usqInt heapBase;
void * showSurfaceFn;
-char * breakSelector;
sqInt deferDisplayUpdates;
struct VirtualMachine* interpreterProxy;
static void (*interruptCheckChain)(void) = 0;
@@ -2096,7 +2097,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.966]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.968]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -2106,9 +2107,9 @@
#define cPICNumCasesHack hack hack hack i.e. the getter macro does all the work
#define nextOpenPIC methodObject
#define nextOpenPICHack hack hack hack i.e. the getter macro does all the work
-#define compilationBreakpoint(sel, len) do { \
- if ((len) == breakSelectorLength \
- && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, breakSelectorLength)) { \
+#define compilationBreakpointisMNUCase(sel, len, isMNU) do { \
+ if ((len) == (isMNU ? -breakSelectorLength : breakSelectorLength) \
+ && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, (isMNU ? -breakSelectorLength : breakSelectorLength))) { \
suppressHeartbeatFlag = 1; \
compilationBreakpointFor(sel); \
} \
@@ -2120,6 +2121,13 @@
#define getDesiredCogCodeSize() integerObjectOf(desiredCogCodeSize)
#define heapBase() heapBase
#define initialEnterSmalltalkExecutive() enterSmalltalkExecutiveImplementation()
+#define mnuCompilationBreakpoint(sel, len) do { \
+ if ((len) == -breakSelectorLength \
+ && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, -breakSelectorLength)) { \
+ suppressHeartbeatFlag = 1; \
+ compilationBreakpointFor(sel); \
+ } \
+} while (0)
#define primTraceLogIndex(aValue) (GIV(primTraceLogIndex) = (aValue))
#define setDesiredCogCodeSize(dccs) (desiredCogCodeSize = (dccs))
#define mostRecentlyUsedPage() GIV(mostRecentlyUsedPage)
@@ -7956,7 +7964,7 @@
/* bytecodePrimBitShift */
{
sqInt integerArgument;
- usqInt integerReceiver;
+ sqLong integerReceiver;
sqInt shifted;
char *sp;
@@ -8016,7 +8024,7 @@
null;
goto l108;
}
- shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
+ shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -10941,7 +10949,7 @@
/* bytecodePrimBitShift */
{
sqInt integerArgument;
- usqInt integerReceiver;
+ sqLong integerReceiver;
sqInt shifted;
char *sp;
@@ -11001,7 +11009,7 @@
null;
goto l242;
}
- shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
+ shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -17898,7 +17906,14 @@
return methodClassOf(((mframeHomeMethod(GIV(framePointer)))->methodObject));
}
+void
+mnuCompilationBreakpointFor(sqInt selectorOop)
+{
+ suppressHeartbeatFlag = 1;
+ warning("compilation MNU break (heartbeat suppressed)");
+}
+
/* Lookup the doesNotUnderstand: selector in the class of the argument rcvr.
Answer either the matching method (cogged if appropriate), or nil, if not
found.
@@ -24584,7 +24599,7 @@
primitiveBitShift(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt integerArgument;
- usqInt integerReceiver;
+ sqLong integerReceiver;
sqInt shifted;
char *sp;
@@ -24631,7 +24646,7 @@
}
return;
}
- shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
+ shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
Modified: branches/Cog/spursistasrc/vm/cogit.c
===================================================================
--- branches/Cog/spursistasrc/vm/cogit.c 2014-12-05 20:27:02 UTC (rev 3159)
+++ branches/Cog/spursistasrc/vm/cogit.c 2014-12-05 23:14:12 UTC (rev 3160)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CCodeGenerator VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
from
- SistaStackToRegisterMappingCogit VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ SistaStackToRegisterMappingCogit VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
*/
-static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06 " __DATE__ ;
+static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -9253,7 +9253,7 @@
sqInt size;
sqInt target;
- compilationBreakpoint((cPIC->selector), lengthOf((cPIC->selector)));
+ compilationBreakpointisMNUCase((cPIC->selector), lengthOf((cPIC->selector)), isMNUCase);
allocateOpcodesbytecodes(5, 0);
assert(!(inlineCacheTagIsYoung(caseNTag)));
assert((caseNMethod != null)
@@ -9388,7 +9388,7 @@
if (isYoung(selector)) {
return 0;
}
- compilationBreakpoint(selector, lengthOf(selector));
+ compilationBreakpointisMNUCase(selector, lengthOf(selector), 1);
assert(endCPICCase0 != null);
startAddress = allocate(closedPICSize);
if (startAddress == 0) {
@@ -9426,7 +9426,7 @@
sqInt mapSize;
sqInt startAddress;
- compilationBreakpoint(selector, lengthOf(selector));
+ compilationBreakpointisMNUCase(selector, lengthOf(selector), 0);
startAddress = allocate(openPICSize);
if (startAddress == 0) {
return ((CogMethod *) InsufficientCodeSpace);
@@ -9466,7 +9466,7 @@
if (isYoung(selector)) {
return ((CogMethod *) YoungSelectorInPIC);
}
- compilationBreakpoint(selector, lengthOf(selector));
+ compilationBreakpointisMNUCase(selector, lengthOf(selector), isMNUCase);
startAddress = allocate(closedPICSize);
if (startAddress == 0) {
return ((CogMethod *) InsufficientCodeSpace);
@@ -9502,7 +9502,7 @@
assert((!(methodHasCogMethod(aMethodObj)))
|| ((noAssertMethodClassAssociationOf(aMethodObj)) == (nilObject())));
- compilationBreakpoint(aSelectorOop, lengthOf(aSelectorOop));
+ compilationBreakpointisMNUCase(aSelectorOop, lengthOf(aSelectorOop), 0);
if (aMethodObj == breakMethod) {
haltmsg("Compilation of breakMethod");
}
@@ -13594,7 +13594,7 @@
void
setSelectorOfto(CogMethod *cogMethod, sqInt aSelectorOop)
{
- compilationBreakpoint(aSelectorOop, lengthOf(aSelectorOop));
+ compilationBreakpointisMNUCase(aSelectorOop, lengthOf(aSelectorOop), 0);
assert(((cogMethod->cmType)) == CMMethod);
(cogMethod->selector = aSelectorOop);
if (isYoung(aSelectorOop)) {
Modified: branches/Cog/spursistasrc/vm/cogit.h
===================================================================
--- branches/Cog/spursistasrc/vm/cogit.h 2014-12-05 20:27:02 UTC (rev 3159)
+++ branches/Cog/spursistasrc/vm/cogit.h 2014-12-05 23:14:12 UTC (rev 3160)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CCodeGenerator VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
*/
Modified: branches/Cog/spursistasrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursistasrc/vm/cointerp.c 2014-12-05 20:27:02 UTC (rev 3159)
+++ branches/Cog/spursistasrc/vm/cointerp.c 2014-12-05 23:14:12 UTC (rev 3160)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
from
- CoInterpreter VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06
+ CoInterpreter VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.966 uuid: 46dd10c6-dc03-444c-bfa2-0f0b279c9b06 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.968 uuid: ddef3ea8-2ea4-4fe4-98ac-de4698b42ab8 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -503,6 +503,7 @@
static sqInt mframeReceiver(char *theFP) NoDbgRegParms;
static sqInt minimumUnusedHeadroom(void);
@@ Diff output truncated at 50000 characters. @@
More information about the Vm-dev
mailing list