[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