[Vm-dev] [commit][3204] CogVM source as per VMMaker.oscog-eem.1007
commits at squeakvm.org
commits at squeakvm.org
Thu Jan 1 21:42:18 UTC 2015
Revision: 3204
Author: eliot
Date: 2015-01-01 13:42:13 -0800 (Thu, 01 Jan 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1007
Fix stupid regression in findUnwindThroughContext:.
Minor streamline to commonReturn in CoInterpreter.
Add range check for 64-bit SmallInteger to Float conversion since in 64-bits
this can overflow the exact float range.
Modified Paths:
--------------
branches/Cog/nscogsrc/vm/cointerp.c
branches/Cog/nscogsrc/vm/cointerp.h
branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
branches/Cog/nsspursrc/vm/cointerp.c
branches/Cog/nsspursrc/vm/cointerp.h
branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
branches/Cog/nsspurstacksrc/vm/interp.c
branches/Cog/scripts/uploadvms
branches/Cog/sistasrc/vm/cointerp.c
branches/Cog/sistasrc/vm/cointerp.h
branches/Cog/sistasrc/vm/gcc3x-cointerp.c
branches/Cog/spursistasrc/vm/cointerp.c
branches/Cog/spursistasrc/vm/cointerp.h
branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
branches/Cog/spursrc/vm/cointerp.c
branches/Cog/spursrc/vm/cointerp.h
branches/Cog/spursrc/vm/gcc3x-cointerp.c
branches/Cog/spurstack64src/vm/gcc3x-interp.c
branches/Cog/spurstack64src/vm/interp.c
branches/Cog/spurstacksrc/vm/gcc3x-interp.c
branches/Cog/spurstacksrc/vm/interp.c
branches/Cog/src/vm/cointerp.c
branches/Cog/src/vm/cointerp.h
branches/Cog/src/vm/cointerpmt.c
branches/Cog/src/vm/cointerpmt.h
branches/Cog/src/vm/gcc3x-cointerp.c
branches/Cog/src/vm/gcc3x-cointerpmt.c
branches/Cog/stacksrc/vm/gcc3x-interp.c
branches/Cog/stacksrc/vm/interp.c
Property Changed:
----------------
branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nscogsrc/vm/cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.c 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/nscogsrc/vm/cointerp.c 2015-01-01 21:42:13 UTC (rev 3204)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
from
- CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2101,7 +2101,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1004";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1006";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -4353,9 +4353,7 @@
/* If this is a method simply return to the sender/caller. */
- if (!(((((usqInt)(longAt(localFP + FoxMethod)))) < (startOfMemory())
- ? ((longAt(localFP + FoxMethod)) & MFMethodFlagIsBlockFlag) != 0
- : (byteAt((localFP + FoxIFrameFlags) + 3)) != 0))) {
+ if (!((byteAt((localFP + FoxIFrameFlags) + 3)) != 0)) {
goto commonCallerReturn;
goto l294;
}
@@ -46088,7 +46086,9 @@
unwind-protects nilObj home context could not be found => cannotReturn
context the context of an intervening unwind-protect implies home context
was found */
-/* Almost always (98%) the home is on the same page. */
+/* Almost always (98%) the home is on the same page, in which case we know it
+ will be found.
+ */
static sqInt
findUnwindThroughContext(sqInt homeContext)
@@ -46176,15 +46176,16 @@
}
ctxtOrNilOrZero = findMethodWithPrimitiveFromContextUpToContext(198, senderContext, homeContext);
l1: /* end findMethodWithPrimitive:FromFP:UpToContext: */;
- if (onSamePage
- || (ctxtOrNilOrZero == 0)) {
+ assert(!((onSamePage
+ && (ctxtOrNilOrZero == (nilObject())))));
+ if (ctxtOrNilOrZero == 0) {
theMethod = longAt((homeContext + BaseHeaderSize) + (MethodIndex << (shiftForWord())));
if ((primitiveIndexOfMethodheader(theMethod, methodHeaderOf(theMethod))) == 198) {
return homeContext;
}
- return 0;
}
- if (!(ctxtOrNilOrZero == GIV(nilObj))) {
+ if (!(onSamePage
+ || (ctxtOrNilOrZero == GIV(nilObj)))) {
if ((findMethodWithPrimitiveFromContextUpToContext(0, ctxtOrNilOrZero, homeContext)) == GIV(nilObj)) {
return GIV(nilObj);
}
Modified: branches/Cog/nscogsrc/vm/cointerp.h
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.h 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/nscogsrc/vm/cointerp.h 2015-01-01 21:42:13 UTC (rev 3204)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
*/
Modified: branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2015-01-01 21:42:13 UTC (rev 3204)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
from
- CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2104,7 +2104,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1004";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1006";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -4362,9 +4362,7 @@
/* If this is a method simply return to the sender/caller. */
- if (!(((((usqInt)(longAt(localFP + FoxMethod)))) < (startOfMemory())
- ? ((longAt(localFP + FoxMethod)) & MFMethodFlagIsBlockFlag) != 0
- : (byteAt((localFP + FoxIFrameFlags) + 3)) != 0))) {
+ if (!((byteAt((localFP + FoxIFrameFlags) + 3)) != 0)) {
goto commonCallerReturn;
goto l294;
}
@@ -46097,7 +46095,9 @@
unwind-protects nilObj home context could not be found => cannotReturn
context the context of an intervening unwind-protect implies home context
was found */
-/* Almost always (98%) the home is on the same page. */
+/* Almost always (98%) the home is on the same page, in which case we know it
+ will be found.
+ */
static sqInt
findUnwindThroughContext(sqInt homeContext)
@@ -46185,15 +46185,16 @@
}
ctxtOrNilOrZero = findMethodWithPrimitiveFromContextUpToContext(198, senderContext, homeContext);
l1: /* end findMethodWithPrimitive:FromFP:UpToContext: */;
- if (onSamePage
- || (ctxtOrNilOrZero == 0)) {
+ assert(!((onSamePage
+ && (ctxtOrNilOrZero == (nilObject())))));
+ if (ctxtOrNilOrZero == 0) {
theMethod = longAt((homeContext + BaseHeaderSize) + (MethodIndex << (shiftForWord())));
if ((primitiveIndexOfMethodheader(theMethod, methodHeaderOf(theMethod))) == 198) {
return homeContext;
}
- return 0;
}
- if (!(ctxtOrNilOrZero == GIV(nilObj))) {
+ if (!(onSamePage
+ || (ctxtOrNilOrZero == GIV(nilObj)))) {
if ((findMethodWithPrimitiveFromContextUpToContext(0, ctxtOrNilOrZero, homeContext)) == GIV(nilObj)) {
return GIV(nilObj);
}
Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/nsspursrc/vm/cointerp.c 2015-01-01 21:42:13 UTC (rev 3204)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
from
- CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2353,7 +2353,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.1004";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1006";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -5100,9 +5100,7 @@
/* If this is a method simply return to the sender/caller. */
- if (!(((((usqInt)(longAt(localFP + FoxMethod)))) < (startOfMemory())
- ? ((longAt(localFP + FoxMethod)) & MFMethodFlagIsBlockFlag) != 0
- : (byteAt((localFP + FoxIFrameFlags) + 3)) != 0))) {
+ if (!((byteAt((localFP + FoxIFrameFlags) + 3)) != 0)) {
goto commonCallerReturn;
goto l248;
}
@@ -65491,7 +65489,9 @@
unwind-protects nilObj home context could not be found => cannotReturn
context the context of an intervening unwind-protect implies home context
was found */
-/* Almost always (98%) the home is on the same page. */
+/* Almost always (98%) the home is on the same page, in which case we know it
+ will be found.
+ */
static sqInt
findUnwindThroughContext(sqInt homeContext)
@@ -65579,15 +65579,16 @@
}
ctxtOrNilOrZero = findMethodWithPrimitiveFromContextUpToContext(198, senderContext, homeContext);
l1: /* end findMethodWithPrimitive:FromFP:UpToContext: */;
- if (onSamePage
- || (ctxtOrNilOrZero == 0)) {
+ assert(!((onSamePage
+ && (ctxtOrNilOrZero == (nilObject())))));
+ if (ctxtOrNilOrZero == 0) {
theMethod = longAt((homeContext + BaseHeaderSize) + (MethodIndex << (shiftForWord())));
if ((primitiveIndexOfMethodheader(theMethod, methodHeaderOf(theMethod))) == 198) {
return homeContext;
}
- return 0;
}
- if (!(ctxtOrNilOrZero == GIV(nilObj))) {
+ if (!(onSamePage
+ || (ctxtOrNilOrZero == GIV(nilObj)))) {
if ((findMethodWithPrimitiveFromContextUpToContext(0, ctxtOrNilOrZero, homeContext)) == GIV(nilObj)) {
return GIV(nilObj);
}
Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/nsspursrc/vm/cointerp.h 2015-01-01 21:42:13 UTC (rev 3204)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
*/
Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2015-01-01 21:42:13 UTC (rev 3204)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
from
- CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2356,7 +2356,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.1004";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1006";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -5109,9 +5109,7 @@
/* If this is a method simply return to the sender/caller. */
- if (!(((((usqInt)(longAt(localFP + FoxMethod)))) < (startOfMemory())
- ? ((longAt(localFP + FoxMethod)) & MFMethodFlagIsBlockFlag) != 0
- : (byteAt((localFP + FoxIFrameFlags) + 3)) != 0))) {
+ if (!((byteAt((localFP + FoxIFrameFlags) + 3)) != 0)) {
goto commonCallerReturn;
goto l248;
}
@@ -65500,7 +65498,9 @@
unwind-protects nilObj home context could not be found => cannotReturn
context the context of an intervening unwind-protect implies home context
was found */
-/* Almost always (98%) the home is on the same page. */
+/* Almost always (98%) the home is on the same page, in which case we know it
+ will be found.
+ */
static sqInt
findUnwindThroughContext(sqInt homeContext)
@@ -65588,15 +65588,16 @@
}
ctxtOrNilOrZero = findMethodWithPrimitiveFromContextUpToContext(198, senderContext, homeContext);
l1: /* end findMethodWithPrimitive:FromFP:UpToContext: */;
- if (onSamePage
- || (ctxtOrNilOrZero == 0)) {
+ assert(!((onSamePage
+ && (ctxtOrNilOrZero == (nilObject())))));
+ if (ctxtOrNilOrZero == 0) {
theMethod = longAt((homeContext + BaseHeaderSize) + (MethodIndex << (shiftForWord())));
if ((primitiveIndexOfMethodheader(theMethod, methodHeaderOf(theMethod))) == 198) {
return homeContext;
}
- return 0;
}
- if (!(ctxtOrNilOrZero == GIV(nilObj))) {
+ if (!(onSamePage
+ || (ctxtOrNilOrZero == GIV(nilObj)))) {
if ((findMethodWithPrimitiveFromContextUpToContext(0, ctxtOrNilOrZero, homeContext)) == GIV(nilObj)) {
return GIV(nilObj);
}
Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2015-01-01 21:42:13 UTC (rev 3204)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
from
- StackInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ StackInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2101,7 +2101,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1004";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1006";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -4913,17 +4913,17 @@
}
ctxtOrNilOrZero = findMethodWithPrimitiveFromContextUpToContext(198, senderContext, home);
l248: /* end findMethodWithPrimitive:FromFP:UpToContext: */;
- if (onSamePage
- || (ctxtOrNilOrZero == 0)) {
+ assert(!((onSamePage
+ && (ctxtOrNilOrZero == (nilObject())))));
+ if (ctxtOrNilOrZero == 0) {
theMethod = longAt((home + BaseHeaderSize) + (MethodIndex << (shiftForWord())));
if ((primitiveIndexOfMethodheader(theMethod, methodHeaderOf(theMethod))) == 198) {
unwindContextOrNilOrZero = home;
goto l245;
}
- unwindContextOrNilOrZero = 0;
- goto l245;
}
- if (!(ctxtOrNilOrZero == GIV(nilObj))) {
+ if (!(onSamePage
+ || (ctxtOrNilOrZero == GIV(nilObj)))) {
if ((findMethodWithPrimitiveFromContextUpToContext(0, ctxtOrNilOrZero, home)) == GIV(nilObj)) {
unwindContextOrNilOrZero = GIV(nilObj);
goto l245;
Modified: branches/Cog/nsspurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/interp.c 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/nsspurstacksrc/vm/interp.c 2015-01-01 21:42:13 UTC (rev 3204)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
from
- StackInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ StackInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2098,7 +2098,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1004";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1006";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -4904,17 +4904,17 @@
}
ctxtOrNilOrZero = findMethodWithPrimitiveFromContextUpToContext(198, senderContext, home);
l248: /* end findMethodWithPrimitive:FromFP:UpToContext: */;
- if (onSamePage
- || (ctxtOrNilOrZero == 0)) {
+ assert(!((onSamePage
+ && (ctxtOrNilOrZero == (nilObject())))));
+ if (ctxtOrNilOrZero == 0) {
theMethod = longAt((home + BaseHeaderSize) + (MethodIndex << (shiftForWord())));
if ((primitiveIndexOfMethodheader(theMethod, methodHeaderOf(theMethod))) == 198) {
unwindContextOrNilOrZero = home;
goto l245;
}
- unwindContextOrNilOrZero = 0;
- goto l245;
}
- if (!(ctxtOrNilOrZero == GIV(nilObj))) {
+ if (!(onSamePage
+ || (ctxtOrNilOrZero == GIV(nilObj)))) {
if ((findMethodWithPrimitiveFromContextUpToContext(0, ctxtOrNilOrZero, home)) == GIV(nilObj)) {
unwindContextOrNilOrZero = GIV(nilObj);
goto l245;
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
- Wed Dec 31 14:34:37 PST 2014
+ Thu Jan 1 13:41:39 PST 2015
Modified: branches/Cog/scripts/uploadvms
===================================================================
--- branches/Cog/scripts/uploadvms 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/scripts/uploadvms 2015-01-01 21:42:13 UTC (rev 3204)
@@ -148,12 +148,12 @@
fi
if [ -n "$CheckDMG" -a -n "$MNSSPUR" -a ! -f "Newspeak Spur Virtual Machine-$TAG.dmg" ]; then
NMID=../build.macos32x86/newspeak.cog.spur/installer
- if [ -f "Newspeak Virtual Spur Machine-$TAG.dmg" ]; then
+ if [ -f "Newspeak Spur Virtual Machine-$TAG.dmg" ]; then
true
- elif [ -f "$NMID/Newspeak Virtual Spur Machine-$TAG.dmg" ]; then
- ln "$NMID/Newspeak Virtual Spur Machine-$TAG.dmg" .
+ elif [ -f "$NMID/Newspeak Spur Virtual Machine-$TAG.dmg" ]; then
+ ln "$NMID/Newspeak Spur Virtual Machine-$TAG.dmg" .
else
- echo Newspeak Virtual Spur Machine-$TAG.dmg is missing 1>&2
+ echo Newspeak Spur Virtual Machine-$TAG.dmg is missing 1>&2
exit 1
fi
fi
Modified: branches/Cog/sistasrc/vm/cointerp.c
===================================================================
--- branches/Cog/sistasrc/vm/cointerp.c 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/sistasrc/vm/cointerp.c 2015-01-01 21:42:13 UTC (rev 3204)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
from
- CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2098,7 +2098,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1004]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1006]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -4353,9 +4353,7 @@
/* If this is a method simply return to the sender/caller. */
- if (!(((((usqInt)(longAt(localFP + FoxMethod)))) < (startOfMemory())
- ? ((longAt(localFP + FoxMethod)) & MFMethodFlagIsBlockFlag) != 0
- : (byteAt((localFP + FoxIFrameFlags) + 3)) != 0))) {
+ if (!((byteAt((localFP + FoxIFrameFlags) + 3)) != 0)) {
goto commonCallerReturn;
goto l293;
}
@@ -7951,7 +7949,7 @@
/* bytecodePrimBitShift */
{
sqInt integerArgument;
- usqInt integerReceiver;
+ sqLong integerReceiver;
sqInt shifted;
char *sp;
@@ -8011,7 +8009,7 @@
null;
goto l108;
}
- shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
+ shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -10936,7 +10934,7 @@
/* bytecodePrimBitShift */
{
sqInt integerArgument;
- usqInt integerReceiver;
+ sqLong integerReceiver;
sqInt shifted;
char *sp;
@@ -10996,7 +10994,7 @@
null;
goto l242;
}
- shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
+ shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -24480,7 +24478,7 @@
primitiveBitShift(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt integerArgument;
- usqInt integerReceiver;
+ sqLong integerReceiver;
sqInt shifted;
char *sp;
@@ -24527,7 +24525,7 @@
}
return;
}
- shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
+ shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -46061,7 +46059,9 @@
unwind-protects nilObj home context could not be found => cannotReturn
context the context of an intervening unwind-protect implies home context
was found */
-/* Almost always (98%) the home is on the same page. */
+/* Almost always (98%) the home is on the same page, in which case we know it
+ will be found.
+ */
static sqInt
findUnwindThroughContext(sqInt homeContext)
@@ -46149,15 +46149,16 @@
}
ctxtOrNilOrZero = findMethodWithPrimitiveFromContextUpToContext(198, senderContext, homeContext);
l1: /* end findMethodWithPrimitive:FromFP:UpToContext: */;
- if (onSamePage
- || (ctxtOrNilOrZero == 0)) {
+ assert(!((onSamePage
+ && (ctxtOrNilOrZero == (nilObject())))));
+ if (ctxtOrNilOrZero == 0) {
theMethod = longAt((homeContext + BaseHeaderSize) + (MethodIndex << (shiftForWord())));
if ((primitiveIndexOfMethodheader(theMethod, methodHeaderOf(theMethod))) == 198) {
return homeContext;
}
- return 0;
}
- if (!(ctxtOrNilOrZero == GIV(nilObj))) {
+ if (!(onSamePage
+ || (ctxtOrNilOrZero == GIV(nilObj)))) {
if ((findMethodWithPrimitiveFromContextUpToContext(0, ctxtOrNilOrZero, homeContext)) == GIV(nilObj)) {
return GIV(nilObj);
}
Modified: branches/Cog/sistasrc/vm/cointerp.h
===================================================================
--- branches/Cog/sistasrc/vm/cointerp.h 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/sistasrc/vm/cointerp.h 2015-01-01 21:42:13 UTC (rev 3204)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
*/
Modified: branches/Cog/sistasrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/sistasrc/vm/gcc3x-cointerp.c 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/sistasrc/vm/gcc3x-cointerp.c 2015-01-01 21:42:13 UTC (rev 3204)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
from
- CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2101,7 +2101,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1004]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1006]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -4362,9 +4362,7 @@
/* If this is a method simply return to the sender/caller. */
- if (!(((((usqInt)(longAt(localFP + FoxMethod)))) < (startOfMemory())
- ? ((longAt(localFP + FoxMethod)) & MFMethodFlagIsBlockFlag) != 0
- : (byteAt((localFP + FoxIFrameFlags) + 3)) != 0))) {
+ if (!((byteAt((localFP + FoxIFrameFlags) + 3)) != 0)) {
goto commonCallerReturn;
goto l293;
}
@@ -7960,7 +7958,7 @@
/* bytecodePrimBitShift */
{
sqInt integerArgument;
- usqInt integerReceiver;
+ sqLong integerReceiver;
sqInt shifted;
char *sp;
@@ -8020,7 +8018,7 @@
null;
goto l108;
}
- shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
+ shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -10945,7 +10943,7 @@
/* bytecodePrimBitShift */
{
sqInt integerArgument;
- usqInt integerReceiver;
+ sqLong integerReceiver;
sqInt shifted;
char *sp;
@@ -11005,7 +11003,7 @@
null;
goto l242;
}
- shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
+ shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -24489,7 +24487,7 @@
primitiveBitShift(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt integerArgument;
- usqInt integerReceiver;
+ sqLong integerReceiver;
sqInt shifted;
char *sp;
@@ -24536,7 +24534,7 @@
}
return;
}
- shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
+ shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -46070,7 +46068,9 @@
unwind-protects nilObj home context could not be found => cannotReturn
context the context of an intervening unwind-protect implies home context
was found */
-/* Almost always (98%) the home is on the same page. */
+/* Almost always (98%) the home is on the same page, in which case we know it
+ will be found.
+ */
static sqInt
findUnwindThroughContext(sqInt homeContext)
@@ -46158,15 +46158,16 @@
}
ctxtOrNilOrZero = findMethodWithPrimitiveFromContextUpToContext(198, senderContext, homeContext);
l1: /* end findMethodWithPrimitive:FromFP:UpToContext: */;
- if (onSamePage
- || (ctxtOrNilOrZero == 0)) {
+ assert(!((onSamePage
+ && (ctxtOrNilOrZero == (nilObject())))));
+ if (ctxtOrNilOrZero == 0) {
theMethod = longAt((homeContext + BaseHeaderSize) + (MethodIndex << (shiftForWord())));
if ((primitiveIndexOfMethodheader(theMethod, methodHeaderOf(theMethod))) == 198) {
return homeContext;
}
- return 0;
}
- if (!(ctxtOrNilOrZero == GIV(nilObj))) {
+ if (!(onSamePage
+ || (ctxtOrNilOrZero == GIV(nilObj)))) {
if ((findMethodWithPrimitiveFromContextUpToContext(0, ctxtOrNilOrZero, homeContext)) == GIV(nilObj)) {
return GIV(nilObj);
}
Modified: branches/Cog/spursistasrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursistasrc/vm/cointerp.c 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/spursistasrc/vm/cointerp.c 2015-01-01 21:42:13 UTC (rev 3204)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
from
- CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2349,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 = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1004]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1006]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -5099,9 +5099,7 @@
/* If this is a method simply return to the sender/caller. */
- if (!(((((usqInt)(longAt(localFP + FoxMethod)))) < (startOfMemory())
- ? ((longAt(localFP + FoxMethod)) & MFMethodFlagIsBlockFlag) != 0
- : (byteAt((localFP + FoxIFrameFlags) + 3)) != 0))) {
+ if (!((byteAt((localFP + FoxIFrameFlags) + 3)) != 0)) {
goto commonCallerReturn;
goto l250;
}
@@ -9168,7 +9166,7 @@
/* bytecodePrimBitShift */
{
sqInt integerArgument;
- sqLong integerReceiver;
+ usqInt integerReceiver;
sqInt shifted;
char *sp;
@@ -9228,7 +9226,7 @@
null;
goto l77;
}
- shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
+ shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -11965,7 +11963,7 @@
/* bytecodePrimBitShift */
{
sqInt integerArgument;
- sqLong integerReceiver;
+ usqInt integerReceiver;
sqInt shifted;
char *sp;
@@ -12025,7 +12023,7 @@
null;
goto l183;
}
- shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
+ shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -29590,7 +29588,7 @@
primitiveBitShift(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt integerArgument;
- sqLong integerReceiver;
+ usqInt integerReceiver;
sqInt shifted;
char *sp;
@@ -29637,7 +29635,7 @@
}
return;
}
- shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
+ shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -65603,7 +65601,9 @@
unwind-protects nilObj home context could not be found => cannotReturn
context the context of an intervening unwind-protect implies home context
was found */
-/* Almost always (98%) the home is on the same page. */
+/* Almost always (98%) the home is on the same page, in which case we know it
+ will be found.
+ */
static sqInt
findUnwindThroughContext(sqInt homeContext)
@@ -65691,15 +65691,16 @@
}
ctxtOrNilOrZero = findMethodWithPrimitiveFromContextUpToContext(198, senderContext, homeContext);
l1: /* end findMethodWithPrimitive:FromFP:UpToContext: */;
- if (onSamePage
- || (ctxtOrNilOrZero == 0)) {
+ assert(!((onSamePage
+ && (ctxtOrNilOrZero == (nilObject())))));
+ if (ctxtOrNilOrZero == 0) {
theMethod = longAt((homeContext + BaseHeaderSize) + (MethodIndex << (shiftForWord())));
if ((primitiveIndexOfMethodheader(theMethod, methodHeaderOf(theMethod))) == 198) {
return homeContext;
}
- return 0;
}
- if (!(ctxtOrNilOrZero == GIV(nilObj))) {
+ if (!(onSamePage
+ || (ctxtOrNilOrZero == GIV(nilObj)))) {
if ((findMethodWithPrimitiveFromContextUpToContext(0, ctxtOrNilOrZero, homeContext)) == GIV(nilObj)) {
return GIV(nilObj);
}
Modified: branches/Cog/spursistasrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursistasrc/vm/cointerp.h 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/spursistasrc/vm/cointerp.h 2015-01-01 21:42:13 UTC (rev 3204)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
*/
Modified: branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursistasrc/vm/gcc3x-cointerp.c 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/spursistasrc/vm/gcc3x-cointerp.c 2015-01-01 21:42:13 UTC (rev 3204)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
from
- CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2352,7 +2352,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 = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1004]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1006]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -5108,9 +5108,7 @@
/* If this is a method simply return to the sender/caller. */
- if (!(((((usqInt)(longAt(localFP + FoxMethod)))) < (startOfMemory())
- ? ((longAt(localFP + FoxMethod)) & MFMethodFlagIsBlockFlag) != 0
- : (byteAt((localFP + FoxIFrameFlags) + 3)) != 0))) {
+ if (!((byteAt((localFP + FoxIFrameFlags) + 3)) != 0)) {
goto commonCallerReturn;
goto l250;
}
@@ -9177,7 +9175,7 @@
/* bytecodePrimBitShift */
{
sqInt integerArgument;
- sqLong integerReceiver;
+ usqInt integerReceiver;
sqInt shifted;
char *sp;
@@ -9237,7 +9235,7 @@
null;
goto l77;
}
- shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
+ shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -11974,7 +11972,7 @@
/* bytecodePrimBitShift */
{
sqInt integerArgument;
- sqLong integerReceiver;
+ usqInt integerReceiver;
sqInt shifted;
char *sp;
@@ -12034,7 +12032,7 @@
null;
goto l183;
}
- shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
+ shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -29599,7 +29597,7 @@
primitiveBitShift(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt integerArgument;
- sqLong integerReceiver;
+ usqInt integerReceiver;
sqInt shifted;
char *sp;
@@ -29646,7 +29644,7 @@
}
return;
}
- shifted = ((unsigned sqLong)integerReceiver) >> (0 - integerArgument);
+ shifted = ((usqInt) integerReceiver) >> (0 - integerArgument);
}
shifted = positive32BitIntegerFor(shifted);
/* begin pop:thenPush: */
@@ -65612,7 +65610,9 @@
unwind-protects nilObj home context could not be found => cannotReturn
context the context of an intervening unwind-protect implies home context
was found */
-/* Almost always (98%) the home is on the same page. */
+/* Almost always (98%) the home is on the same page, in which case we know it
+ will be found.
+ */
static sqInt
findUnwindThroughContext(sqInt homeContext)
@@ -65700,15 +65700,16 @@
}
ctxtOrNilOrZero = findMethodWithPrimitiveFromContextUpToContext(198, senderContext, homeContext);
l1: /* end findMethodWithPrimitive:FromFP:UpToContext: */;
- if (onSamePage
- || (ctxtOrNilOrZero == 0)) {
+ assert(!((onSamePage
+ && (ctxtOrNilOrZero == (nilObject())))));
+ if (ctxtOrNilOrZero == 0) {
theMethod = longAt((homeContext + BaseHeaderSize) + (MethodIndex << (shiftForWord())));
if ((primitiveIndexOfMethodheader(theMethod, methodHeaderOf(theMethod))) == 198) {
return homeContext;
}
- return 0;
}
- if (!(ctxtOrNilOrZero == GIV(nilObj))) {
+ if (!(onSamePage
+ || (ctxtOrNilOrZero == GIV(nilObj)))) {
if ((findMethodWithPrimitiveFromContextUpToContext(0, ctxtOrNilOrZero, homeContext)) == GIV(nilObj)) {
return GIV(nilObj);
}
Modified: branches/Cog/spursrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/cointerp.c 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/spursrc/vm/cointerp.c 2015-01-01 21:42:13 UTC (rev 3204)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
from
- CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2340,7 +2340,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 = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1004]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1006]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -4989,9 +4989,7 @@
/* If this is a method simply return to the sender/caller. */
- if (!(((((usqInt)(longAt(localFP + FoxMethod)))) < (startOfMemory())
- ? ((longAt(localFP + FoxMethod)) & MFMethodFlagIsBlockFlag) != 0
- : (byteAt((localFP + FoxIFrameFlags) + 3)) != 0))) {
+ if (!((byteAt((localFP + FoxIFrameFlags) + 3)) != 0)) {
goto commonCallerReturn;
goto l123;
}
@@ -60492,7 +60490,9 @@
unwind-protects nilObj home context could not be found => cannotReturn
context the context of an intervening unwind-protect implies home context
was found */
-/* Almost always (98%) the home is on the same page. */
+/* Almost always (98%) the home is on the same page, in which case we know it
+ will be found.
+ */
static sqInt
findUnwindThroughContext(sqInt homeContext)
@@ -60580,15 +60580,16 @@
}
ctxtOrNilOrZero = findMethodWithPrimitiveFromContextUpToContext(198, senderContext, homeContext);
l1: /* end findMethodWithPrimitive:FromFP:UpToContext: */;
- if (onSamePage
- || (ctxtOrNilOrZero == 0)) {
+ assert(!((onSamePage
+ && (ctxtOrNilOrZero == (nilObject())))));
+ if (ctxtOrNilOrZero == 0) {
theMethod = longAt((homeContext + BaseHeaderSize) + (MethodIndex << (shiftForWord())));
if ((primitiveIndexOfMethodheader(theMethod, methodHeaderOf(theMethod))) == 198) {
return homeContext;
}
- return 0;
}
- if (!(ctxtOrNilOrZero == GIV(nilObj))) {
+ if (!(onSamePage
+ || (ctxtOrNilOrZero == GIV(nilObj)))) {
if ((findMethodWithPrimitiveFromContextUpToContext(0, ctxtOrNilOrZero, homeContext)) == GIV(nilObj)) {
return GIV(nilObj);
}
Modified: branches/Cog/spursrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursrc/vm/cointerp.h 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/spursrc/vm/cointerp.h 2015-01-01 21:42:13 UTC (rev 3204)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
*/
Modified: branches/Cog/spursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/gcc3x-cointerp.c 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/spursrc/vm/gcc3x-cointerp.c 2015-01-01 21:42:13 UTC (rev 3204)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
from
- CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1006 uuid: 9d3cd4bd-d2d0-476b-bf87-1b040eaaf57e " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2343,7 +2343,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 = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1004]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1006]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -4998,9 +4998,7 @@
/* If this is a method simply return to the sender/caller. */
- if (!(((((usqInt)(longAt(localFP + FoxMethod)))) < (startOfMemory())
- ? ((longAt(localFP + FoxMethod)) & MFMethodFlagIsBlockFlag) != 0
- : (byteAt((localFP + FoxIFrameFlags) + 3)) != 0))) {
+ if (!((byteAt((localFP + FoxIFrameFlags) + 3)) != 0)) {
goto commonCallerReturn;
goto l123;
}
@@ -60501,7 +60499,9 @@
unwind-protects nilObj home context could not be found => cannotReturn
context the context of an intervening unwind-protect implies home context
was found */
-/* Almost always (98%) the home is on the same page. */
+/* Almost always (98%) the home is on the same page, in which case we know it
+ will be found.
+ */
static sqInt
findUnwindThroughContext(sqInt homeContext)
@@ -60589,15 +60589,16 @@
}
ctxtOrNilOrZero = findMethodWithPrimitiveFromContextUpToContext(198, senderContext, homeContext);
l1: /* end findMethodWithPrimitive:FromFP:UpToContext: */;
- if (onSamePage
- || (ctxtOrNilOrZero == 0)) {
+ assert(!((onSamePage
+ && (ctxtOrNilOrZero == (nilObject())))));
+ if (ctxtOrNilOrZero == 0) {
theMethod = longAt((homeContext + BaseHeaderSize) + (MethodIndex << (shiftForWord())));
if ((primitiveIndexOfMethodheader(theMethod, methodHeaderOf(theMethod))) == 198) {
return homeContext;
}
- return 0;
}
- if (!(ctxtOrNilOrZero == GIV(nilObj))) {
+ if (!(onSamePage
+ || (ctxtOrNilOrZero == GIV(nilObj)))) {
if ((findMethodWithPrimitiveFromContextUpToContext(0, ctxtOrNilOrZero, homeContext)) == GIV(nilObj)) {
return GIV(nilObj);
}
Modified: branches/Cog/spurstack64src/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/spurstack64src/vm/gcc3x-interp.c 2015-01-01 00:32:58 UTC (rev 3203)
+++ branches/Cog/spurstack64src/vm/gcc3x-interp.c 2015-01-01 21:42:13 UTC (rev 3204)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1007 uuid: 5ab9382c-cd68-43ef-a5e4-0c107083d0c6
from
- StackInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188
+ StackInterpreter VMMaker.oscog-eem.1007 uuid: 5ab9382c-cd68-43ef-a5e4-0c107083d0c6
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1004 uuid: 132642b3-ab26-4957-82a4-8aa19b60f188 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1007 uuid: 5ab9382c-cd68-43ef-a5e4-0c107083d0c6 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -127,7 +127,7 @@
/*** Constants ***/
#define ActiveProcessIndex 1
#define AlternateHeaderHasPrimFlag 0x80000
-#define AltLongStoreBytecode 234
+#define AltLongStoreBytecode 129
#define AtCacheFixedFields 4
#define AtCacheFmt 3
#define AtCacheMask 0x1C
@@ -2121,7 +2121,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1004]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1007]";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -4835,17 +4835,17 @@
}
ctxtOrNilOrZero = findMethodWithPrimitiveFromContextUpToContext(198, senderContext, home);
l102: /* end findMethodWithPrimitive:FromFP:UpToContext: */;
- if (onSamePage
- || (ctxtOrNilOrZero == 0)) {
+ assert(!((onSamePage
+ && (ctxtOrNilOrZero == (nilObject())))));
+ if (ctxtOrNilOrZero == 0) {
theMethod = longAt((home + BaseHeaderSize) + (((long)MethodIndex) << (shiftForWord())));
if ((primitiveIndexOfMethodheader(theMethod, methodHeaderOf(theMethod))) == 198) {
unwindContextOrNilOrZero = home;
goto l99;
}
- unwindContextOrNilOrZero = 0;
- goto l99;
}
- if (!(ctxtOrNilOrZero == GIV(nilObj))) {
+ if (!(onSamePage
+ || (ctxtOrNilOrZero == GIV(nilObj)))) {
if ((findMethodWithPrimitiveFromContextUpToContext(0, ctxtOrNilOrZero, home)) == GIV(nilObj)) {
unwindContextOrNilOrZero = GIV(nilObj);
goto l99;
@@ -6810,6 +6810,8 @@
double result2;
sqInt rot;
sqInt rot1;
+ sqInt shift;
+ sqInt shift1;
char *sp;
sqInt tagBits;
sqInt tagBits1;
@@ -6855,7 +6857,9 @@
rcvr1 = (((double *) ((&bits))))[0];
goto l17;
}
- if (tagBits == 1) {
+ if ((tagBits == 1)
+ && (((shift = (64 - 3) - 52),
+ (((sqInt) (((long)rcvr) << shift)) >> shift) == rcvr))) {
rcvr1 = ((double) ((rcvr >> 3)) );
goto l17;
}
@@ -6892,7 +6896,9 @@
arg1 = (((double *) ((&bits1))))[0];
goto l18;
}
- if (tagBits1 == 1) {
+ if ((tagBits1 == 1)
+ && (((shift1 = (64 - 3) - 52),
+ (((sqInt) (((long)arg) << shift1)) >> shift1) == arg))) {
arg1 = ((double) ((arg >> 3)) );
goto l18;
}
@@ -6948,6 +6954,8 @@
double result2;
sqInt rot;
sqInt rot1;
+ sqInt shift;
+ sqInt shift1;
char *sp;
sqInt tagBits;
sqInt tagBits1;
@@ -6993,7 +7001,9 @@
rcvr1 = (((double *) ((&bits))))[0];
goto l20;
}
- if (tagBits == 1) {
+ if ((tagBits == 1)
+ && (((shift = (64 - 3) - 52),
+ (((sqInt) (((long)rcvr) << shift)) >> shift) == rcvr))) {
rcvr1 = ((double) ((rcvr >> 3)) );
goto l20;
}
@@ -7030,7 +7040,9 @@
arg1 = (((double *) ((&bits1))))[0];
goto l21;
}
- if (tagBits1 == 1) {
+ if ((tagBits1 == 1)
+ && (((shift1 = (64 - 3) - 52),
+ (((sqInt) (((long)arg) << shift1)) >> shift1) == arg))) {
arg1 = ((double) ((arg >> 3)) );
goto l21;
}
@@ -7086,6 +7098,8 @@
double result1;
sqInt rot;
sqInt rot1;
+ sqInt shift;
+ sqInt shift1;
sqInt tagBits;
sqInt tagBits1;
@@ -7128,7 +7142,9 @@
rcvr1 = (((double *) ((&bits))))[0];
goto l23;
}
- if (tagBits == 1) {
+ if ((tagBits == 1)
+ && (((shift = (64 - 3) - 52),
+ (((sqInt) (((long)rcvr) << shift)) >> shift) == rcvr))) {
rcvr1 = ((double) ((rcvr >> 3)) );
goto l23;
}
@@ -7165,7 +7181,9 @@
arg1 = (((double *) ((&bits1))))[0];
goto l24;
}
- if (tagBits1 == 1) {
+ if ((tagBits1 == 1)
+ && (((shift1 = (64 - 3) - 52),
+ (((sqInt) (((long)arg) << shift1)) >> shift1) == arg))) {
arg1 = ((double) ((arg >> 3)) );
goto l24;
}
@@ -7269,6 +7287,8 @@
double result1;
sqInt rot;
sqInt rot1;
+ sqInt shift;
+ sqInt shift1;
sqInt tagBits;
sqInt tagBits1;
@@ -7311,7 +7331,9 @@
rcvr1 = (((double *) ((&bits))))[0];
goto l26;
}
- if (tagBits == 1) {
+ if ((tagBits == 1)
+ && (((shift = (64 - 3) - 52),
+ (((sqInt) (((long)rcvr) << shift)) >> shift) == rcvr))) {
rcvr1 = ((double) ((rcvr >> 3)) );
goto l26;
}
@@ -7348,7 +7370,9 @@
arg1 = (((double *) ((&bits1))))[0];
goto l27;
}
- if (tagBits1 == 1) {
+ if ((tagBits1 == 1)
+ && (((shift1 = (64 - 3) - 52),
+ (((sqInt) (((long)arg) << shift1)) >> shift1) == arg))) {
arg1 = ((double) ((arg >> 3)) );
goto l27;
}
@@ -7441,6 +7465,8 @@
double result1;
sqInt rot;
sqInt rot1;
+ sqInt shift;
+ sqInt shift1;
sqInt tagBits;
sqInt tagBits1;
@@ -7483,7 +7509,9 @@
rcvr1 = (((double *) ((&bits))))[0];
goto l29;
}
- if (tagBits == 1) {
+ if ((tagBits == 1)
+ && (((shift = (64 - 3) - 52),
+ (((sqInt) (((long)rcvr) << shift)) >> shift) == rcvr))) {
rcvr1 = ((double) ((rcvr >> 3)) );
goto l29;
}
@@ -7520,7 +7548,9 @@
arg1 = (((double *) ((&bits1))))[0];
goto l30;
}
- if (tagBits1 == 1) {
@@ Diff output truncated at 50000 characters. @@
More information about the Vm-dev
mailing list