[Vm-dev] [commit][3739] CogVM source as per VMMaker.oscog-eem.1885
commits at squeakvm.org
commits at squeakvm.org
Tue Jun 7 22:35:58 UTC 2016
Revision: 3739
Author: eliot
Date: 2016-06-07 15:35:56 -0700 (Tue, 07 Jun 2016)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1885
Fix multiple bytecode set selection in the Spur 64-bit VM, which must use
signedIntFromLong64 to test for a negative header.
Modified Paths:
--------------
branches/Cog/nsspur64src/vm/cogit.h
branches/Cog/nsspur64src/vm/cogitX64.c
branches/Cog/nsspur64src/vm/cointerp.c
branches/Cog/nsspur64src/vm/cointerp.h
branches/Cog/nsspur64src/vm/gcc3x-cointerp.c
branches/Cog/nsspursrc/vm/cogit.h
branches/Cog/nsspursrc/vm/cogitARMv5.c
branches/Cog/nsspursrc/vm/cogitIA32.c
branches/Cog/nsspursrc/vm/cogitMIPSEL.c
branches/Cog/nsspursrc/vm/cointerp.c
branches/Cog/nsspursrc/vm/cointerp.h
branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
branches/Cog/nsspurstack64src/vm/gcc3x-interp.c
branches/Cog/nsspurstack64src/vm/interp.c
branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
branches/Cog/nsspurstacksrc/vm/interp.c
branches/Cog/spur64src/vm/cogit.h
branches/Cog/spur64src/vm/cogitX64.c
branches/Cog/spur64src/vm/cointerp.c
branches/Cog/spur64src/vm/cointerp.h
branches/Cog/spur64src/vm/gcc3x-cointerp.c
branches/Cog/spursistasrc/vm/cogit.h
branches/Cog/spursistasrc/vm/cogitARMv5.c
branches/Cog/spursistasrc/vm/cogitIA32.c
branches/Cog/spursistasrc/vm/cogitMIPSEL.c
branches/Cog/spursistasrc/vm/cointerp.c
branches/Cog/spursistasrc/vm/cointerp.h
branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
branches/Cog/spursrc/vm/cogit.h
branches/Cog/spursrc/vm/cogitARMv5.c
branches/Cog/spursrc/vm/cogitIA32.c
branches/Cog/spursrc/vm/cogitMIPSEL.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/cogit.h
branches/Cog/src/vm/cogitARMv5.c
branches/Cog/src/vm/cogitIA32.c
branches/Cog/src/vm/cogitMIPSEL.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/nsspur64src/vm/cogit.h
===================================================================
--- branches/Cog/nsspur64src/vm/cogit.h 2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspur64src/vm/cogit.h 2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ CCodeGenerator VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
*/
Modified: branches/Cog/nsspur64src/vm/cogitX64.c
===================================================================
--- branches/Cog/nsspur64src/vm/cogitX64.c 2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspur64src/vm/cogitX64.c 2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ CCodeGenerator VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ StackToRegisterMappingCogit VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -602,7 +602,7 @@
static AbstractInstruction * NoDbgRegParms gMoveCwR(sqInt wordConstant, sqInt reg);
static AbstractInstruction * NoDbgRegParms gMoveRMwr(sqInt sourceReg, sqInt offset, sqInt baseReg);
static AbstractInstruction * NoDbgRegParms gMoveRR(sqInt reg1, sqInt reg2);
-static usqInt NoDbgRegParms mapEndFor(CogMethod *cogMethod);
+static sqInt NoDbgRegParms mapEndFor(CogMethod *cogMethod);
static sqInt NoDbgRegParms mapForperformUntilarg(CogMethod *cogMethod, sqInt (*functionSymbol)(sqInt annotation, char *mcpc, sqInt arg), sqInt arg);
static sqInt NoDbgRegParms mapObjectReferencesInClosedPIC(CogMethod *cPIC);
static void mapObjectReferencesInGeneratedRuntime(void);
@@ -2799,7 +2799,7 @@
sqInt byte;
BytecodeDescriptor *descriptor;
sqInt distance;
- sqInt endbcpc;
+ usqInt endbcpc;
CogMethod *homeMethod;
sqInt isBackwardBranch;
sqInt isInBlock;
@@ -5954,12 +5954,12 @@
generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
{
unsigned char annotation;
- sqInt delta;
+ usqInt delta;
sqInt i;
AbstractInstruction *instruction;
sqInt length;
- sqInt location;
- sqInt mapEntry;
+ usqInt location;
+ usqInt mapEntry;
sqInt maxDelta;
usqInt mcpc;
@@ -7175,7 +7175,7 @@
/* Answer the address of the null byte at the end of the method map. */
/* Cogit>>#mapEndFor: */
-static usqInt NoDbgRegParms
+static sqInt NoDbgRegParms
mapEndFor(CogMethod *cogMethod)
{
usqInt end;
@@ -8237,7 +8237,7 @@
sqInt byte;
BytecodeDescriptor *descriptor;
sqInt distance;
- sqInt endbcpc;
+ usqInt endbcpc;
CogMethod *homeMethod;
sqInt isBackwardBranch;
sqInt isInBlock;
@@ -23169,7 +23169,7 @@
CogBlockMethod *cogMethod1;
BytecodeDescriptor *descriptor;
sqInt distance;
- sqInt endbcpc;
+ usqInt endbcpc;
sqInt errCode;
CogMethod *homeMethod;
sqInt isBackwardBranch;
Modified: branches/Cog/nsspur64src/vm/cointerp.c
===================================================================
--- branches/Cog/nsspur64src/vm/cointerp.c 2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspur64src/vm/cointerp.c 2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
from
- CoInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ CoInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -892,6 +892,7 @@
static sqInt NoDbgRegParms fetchLong32ofFloatObject(sqInt fieldIndex, sqInt oop);
extern sqInt floatObjectOf(double aFloat);
extern double floatValueOf(sqInt oop);
+extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
static sqInt NoDbgRegParms initFreeChunkWithBytesat(usqLong numBytes, sqInt address);
static void NoDbgRegParms initSegmentBridgeWithBytesat(usqLong numBytes, sqInt address);
extern sqInt instantiateClassindexableSize(sqInt classObj, usqInt nElements);
@@ -1383,7 +1384,6 @@
static sqInt NoDbgRegParms handleSpecialSelectorSendFaultForfpsp(sqInt obj, char *theFP, char *theSP);
static void handleStackOverflow(void);
static sqInt NoDbgRegParms handleStackOverflowOrEventAllowContextSwitch(sqInt mayContextSwitch);
-extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
extern usqInt highBit(usqInt anUnsignedValue);
static sqInt NoDbgRegParms ifCurrentStackPageHasValidHeadPointers(StackPage *thePage);
static usqInt NoDbgRegParms iframeMethod(char *theFP);
@@ -2452,7 +2452,7 @@
};
sqInt checkedPluginName;
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1883";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1885";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -6038,7 +6038,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -6064,7 +6064,7 @@
with a long store temp. Strictly no need to skip the store because it's effectively a noop. */
localIP += 3;
if (GIV(primFailCode) != 0) {
- if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+ if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -13047,7 +13047,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -13073,7 +13073,7 @@
with a long store temp. Strictly no need to skip the store because it's effectively a noop. */
localIP += 3;
if (GIV(primFailCode) != 0) {
- if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+ if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -13407,7 +13407,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -13433,7 +13433,7 @@
with a long store temp. Strictly no need to skip the store because it's effectively a noop. */
localIP += 3;
if (GIV(primFailCode) != 0) {
- if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+ if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -13873,7 +13873,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -13899,7 +13899,7 @@
with a long store temp. Strictly no need to skip the store because it's effectively a noop. */
localIP += 3;
if (GIV(primFailCode) != 0) {
- if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+ if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -14341,7 +14341,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -14367,7 +14367,7 @@
with a long store temp. Strictly no need to skip the store because it's effectively a noop. */
localIP += 3;
if (GIV(primFailCode) != 0) {
- if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+ if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -14753,7 +14753,7 @@
/* Store the error code if the method starts with a long store temp. No instructionPointer skip because we're heading for machine code. */
initialPC = ((GIV(newMethod) + ((LiteralStart + (literalCountOfMethodHeader(methodHeader))) * BytesPerOop)) + BaseHeaderSize) + (3);
if (GIV(primFailCode) != 0) {
- if ((byteAt(initialPC)) == (((((int) methodHeader)) < 0
+ if ((byteAt(initialPC)) == (((((sqLong) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -14848,7 +14848,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -14879,7 +14879,7 @@
with a long store temp. Strictly no need to skip the store because it's effectively a noop. */
GIV(instructionPointer) += 3;
if (GIV(primFailCode) != 0) {
- if ((byteAt(GIV(instructionPointer) + 1)) == (((((int) methodHeader)) < 0
+ if ((byteAt(GIV(instructionPointer) + 1)) == (((((sqLong) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -17629,7 +17629,7 @@
sqInt i;
sqInt methodField;
sqInt ok;
- usqInt oop;
+ sqInt oop;
char *theFP;
StackPage *thePage;
char *theSP;
@@ -23700,7 +23700,7 @@
usqInt index;
sqInt methodField;
usqInt numArgs;
- usqInt numTemps;
+ sqInt numTemps;
char *rcvrAddress;
sqInt rcvrOrClosure;
sqInt theMethod;
@@ -24951,7 +24951,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader1);
- GIV(bytecodeSetSelector) = ((((int) methodHeader1)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader1)) < 0
? 256
: 0);
@@ -24986,7 +24986,7 @@
GIV(instructionPointer) = initialIP;
}
if (GIV(primFailCode) != 0) {
- if ((byteAt(initialIP + 1)) == (((((int) methodHeader1)) < 0
+ if ((byteAt(initialIP + 1)) == (((((sqLong) methodHeader1)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -25179,7 +25179,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader1);
- GIV(bytecodeSetSelector) = ((((int) methodHeader1)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader1)) < 0
? 256
: 0);
@@ -25214,7 +25214,7 @@
GIV(instructionPointer) = initialIP;
}
if (GIV(primFailCode) != 0) {
- if ((byteAt(initialIP + 1)) == (((((int) methodHeader1)) < 0
+ if ((byteAt(initialIP + 1)) == (((((sqLong) methodHeader1)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -31031,7 +31031,7 @@
GIV(method) = theMethod;
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -31288,7 +31288,7 @@
GIV(method) = theMethod;
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -31578,7 +31578,7 @@
GIV(method) = theMethod;
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -42965,6 +42965,16 @@
}
+/* A negative header selects the alternate bytecode set. */
+
+ /* Spur64BitMemoryManager>>#headerIndicatesAlternateBytecodeSet: */
+sqInt
+headerIndicatesAlternateBytecodeSet(sqInt methodHeader)
+{
+ return (((sqLong) methodHeader)) < 0;
+}
+
+
/* must have room for a header (single or double) plus the next free pointer */
/* Spur64BitMemoryManager>>#initFreeChunkWithBytes:at: */
@@ -67496,7 +67506,7 @@
static void
postSnapshot(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- usqInt address;
+ sqInt address;
sqInt bytes;
usqInt freeChunk;
sqInt i;
@@ -71885,16 +71895,6 @@
}
-/* A negative header selects the alternate bytecode set. */
-
- /* StackInterpreter>>#headerIndicatesAlternateBytecodeSet: */
-sqInt
-headerIndicatesAlternateBytecodeSet(sqInt methodHeader)
-{
- return (((int) methodHeader)) < 0;
-}
-
-
/* This is a C implementation needed by ioSetMaxExtSemTableSize
and e.g. stackPageByteSize. */
@@ -72872,7 +72872,7 @@
sqInt
longStoreBytecodeForHeader(sqInt methodHeader)
{
- return ((((int) methodHeader)) < 0
+ return ((((sqLong) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode);
}
@@ -74967,7 +74967,7 @@
assert((((((CogMethod *) header))->objectHeader)) == (nullHeaderForMachineCodeMethod()));
methodHeader = ((((CogMethod *) header))->methodHeader);
}
- return (((int) methodHeader)) < 0;
+ return (((sqLong) methodHeader)) < 0;
}
@@ -75304,12 +75304,12 @@
}
-/* Note: With the Squeak V0 format we now have 10 bits of primitive index,
- but they are in
- two places for temporary backward compatibility. The time to unpack is
+/* Note: With the Squeak V3 format we now have 10 bits of primitive index,
+ but they are
+ in two places for temporary backward compatibility. The time to unpack is
negligible, since the derived primitive function pointer is stored in the
- method cache. With the new
- format we assume a 3-byte CallPrimitive with a little-endian 16-bit
+ method cache. With the
+ Spur format we assume a 3-byte CallPrimitive with a little-endian 16-bit
primitive index. */
/* StackInterpreter>>#primitiveIndexOfMethod:header: */
@@ -78490,7 +78490,7 @@
static sqInt
retryPrimitiveOnFailure(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- signed char accessorDepth;
+ sqInt accessorDepth;
sqInt canRetry;
sqInt firstBytecode;
sqInt followDone;
@@ -79581,7 +79581,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -79616,7 +79616,7 @@
GIV(instructionPointer) = initialIP;
}
if (GIV(primFailCode) != 0) {
- if ((byteAt(initialIP + 1)) == (((((int) methodHeader)) < 0
+ if ((byteAt(initialIP + 1)) == (((((sqLong) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
Modified: branches/Cog/nsspur64src/vm/cointerp.h
===================================================================
--- branches/Cog/nsspur64src/vm/cointerp.h 2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspur64src/vm/cointerp.h 2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
*/
@@ -132,6 +132,7 @@
extern usqInt specialObjectsArrayAddress(void);
extern sqInt withoutForwardingOnandwithsendToCogit(sqInt obj1, sqInt obj2, sqInt aBool, sqInt (*selector)(sqInt,sqInt,sqInt));
extern sqInt byteSwapped(sqInt w);
+extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
extern sqInt instantiateClassindexableSize(sqInt classObj, usqInt nElements);
extern sqInt isIntegerValue(sqInt intValue);
extern sqInt isMarked(sqInt objOop);
@@ -272,7 +273,6 @@
extern void (*functionPointerForinClass(sqInt primIdx,sqInt theClass))(void) ;
extern usqLong getNextWakeupUsecs(void);
extern sqInt * getStackPointer(void);
-extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
extern usqInt highBit(usqInt anUnsignedValue);
extern sqInt isFloatObject(sqInt oop);
extern sqInt isKindOfInteger(sqInt oop);
Modified: branches/Cog/nsspur64src/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspur64src/vm/gcc3x-cointerp.c 2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspur64src/vm/gcc3x-cointerp.c 2016-06-07 22:35:56 UTC (rev 3739)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
from
- CoInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ CoInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -895,6 +895,7 @@
static sqInt NoDbgRegParms fetchLong32ofFloatObject(sqInt fieldIndex, sqInt oop);
extern sqInt floatObjectOf(double aFloat);
extern double floatValueOf(sqInt oop);
+extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
static sqInt NoDbgRegParms initFreeChunkWithBytesat(usqLong numBytes, sqInt address);
static void NoDbgRegParms initSegmentBridgeWithBytesat(usqLong numBytes, sqInt address);
extern sqInt instantiateClassindexableSize(sqInt classObj, usqInt nElements);
@@ -1386,7 +1387,6 @@
static sqInt NoDbgRegParms handleSpecialSelectorSendFaultForfpsp(sqInt obj, char *theFP, char *theSP);
static void handleStackOverflow(void);
static sqInt NoDbgRegParms handleStackOverflowOrEventAllowContextSwitch(sqInt mayContextSwitch);
-extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
extern usqInt highBit(usqInt anUnsignedValue);
static sqInt NoDbgRegParms ifCurrentStackPageHasValidHeadPointers(StackPage *thePage);
static usqInt NoDbgRegParms iframeMethod(char *theFP);
@@ -2455,7 +2455,7 @@
};
sqInt checkedPluginName;
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1883";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1885";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -6047,7 +6047,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -6073,7 +6073,7 @@
with a long store temp. Strictly no need to skip the store because it's effectively a noop. */
localIP += 3;
if (GIV(primFailCode) != 0) {
- if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+ if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -13056,7 +13056,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -13082,7 +13082,7 @@
with a long store temp. Strictly no need to skip the store because it's effectively a noop. */
localIP += 3;
if (GIV(primFailCode) != 0) {
- if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+ if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -13416,7 +13416,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -13442,7 +13442,7 @@
with a long store temp. Strictly no need to skip the store because it's effectively a noop. */
localIP += 3;
if (GIV(primFailCode) != 0) {
- if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+ if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -13882,7 +13882,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -13908,7 +13908,7 @@
with a long store temp. Strictly no need to skip the store because it's effectively a noop. */
localIP += 3;
if (GIV(primFailCode) != 0) {
- if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+ if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -14350,7 +14350,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -14376,7 +14376,7 @@
with a long store temp. Strictly no need to skip the store because it's effectively a noop. */
localIP += 3;
if (GIV(primFailCode) != 0) {
- if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+ if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -14762,7 +14762,7 @@
/* Store the error code if the method starts with a long store temp. No instructionPointer skip because we're heading for machine code. */
initialPC = ((GIV(newMethod) + ((LiteralStart + (literalCountOfMethodHeader(methodHeader))) * BytesPerOop)) + BaseHeaderSize) + (3);
if (GIV(primFailCode) != 0) {
- if ((byteAt(initialPC)) == (((((int) methodHeader)) < 0
+ if ((byteAt(initialPC)) == (((((sqLong) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -14857,7 +14857,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -14888,7 +14888,7 @@
with a long store temp. Strictly no need to skip the store because it's effectively a noop. */
GIV(instructionPointer) += 3;
if (GIV(primFailCode) != 0) {
- if ((byteAt(GIV(instructionPointer) + 1)) == (((((int) methodHeader)) < 0
+ if ((byteAt(GIV(instructionPointer) + 1)) == (((((sqLong) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -17638,7 +17638,7 @@
sqInt i;
sqInt methodField;
sqInt ok;
- usqInt oop;
+ sqInt oop;
char *theFP;
StackPage *thePage;
char *theSP;
@@ -23709,7 +23709,7 @@
usqInt index;
sqInt methodField;
usqInt numArgs;
- usqInt numTemps;
+ sqInt numTemps;
char *rcvrAddress;
sqInt rcvrOrClosure;
sqInt theMethod;
@@ -24960,7 +24960,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader1);
- GIV(bytecodeSetSelector) = ((((int) methodHeader1)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader1)) < 0
? 256
: 0);
@@ -24995,7 +24995,7 @@
GIV(instructionPointer) = initialIP;
}
if (GIV(primFailCode) != 0) {
- if ((byteAt(initialIP + 1)) == (((((int) methodHeader1)) < 0
+ if ((byteAt(initialIP + 1)) == (((((sqLong) methodHeader1)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -25188,7 +25188,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader1);
- GIV(bytecodeSetSelector) = ((((int) methodHeader1)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader1)) < 0
? 256
: 0);
@@ -25223,7 +25223,7 @@
GIV(instructionPointer) = initialIP;
}
if (GIV(primFailCode) != 0) {
- if ((byteAt(initialIP + 1)) == (((((int) methodHeader1)) < 0
+ if ((byteAt(initialIP + 1)) == (((((sqLong) methodHeader1)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -31040,7 +31040,7 @@
GIV(method) = theMethod;
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -31297,7 +31297,7 @@
GIV(method) = theMethod;
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -31587,7 +31587,7 @@
GIV(method) = theMethod;
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -42974,6 +42974,16 @@
}
+/* A negative header selects the alternate bytecode set. */
+
+ /* Spur64BitMemoryManager>>#headerIndicatesAlternateBytecodeSet: */
+sqInt
+headerIndicatesAlternateBytecodeSet(sqInt methodHeader)
+{
+ return (((sqLong) methodHeader)) < 0;
+}
+
+
/* must have room for a header (single or double) plus the next free pointer */
/* Spur64BitMemoryManager>>#initFreeChunkWithBytes:at: */
@@ -67505,7 +67515,7 @@
static void
postSnapshot(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- usqInt address;
+ sqInt address;
sqInt bytes;
usqInt freeChunk;
sqInt i;
@@ -71894,16 +71904,6 @@
}
-/* A negative header selects the alternate bytecode set. */
-
- /* StackInterpreter>>#headerIndicatesAlternateBytecodeSet: */
-sqInt
-headerIndicatesAlternateBytecodeSet(sqInt methodHeader)
-{
- return (((int) methodHeader)) < 0;
-}
-
-
/* This is a C implementation needed by ioSetMaxExtSemTableSize
and e.g. stackPageByteSize. */
@@ -72881,7 +72881,7 @@
sqInt
longStoreBytecodeForHeader(sqInt methodHeader)
{
- return ((((int) methodHeader)) < 0
+ return ((((sqLong) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode);
}
@@ -74976,7 +74976,7 @@
assert((((((CogMethod *) header))->objectHeader)) == (nullHeaderForMachineCodeMethod()));
methodHeader = ((((CogMethod *) header))->methodHeader);
}
- return (((int) methodHeader)) < 0;
+ return (((sqLong) methodHeader)) < 0;
}
@@ -75313,12 +75313,12 @@
}
-/* Note: With the Squeak V0 format we now have 10 bits of primitive index,
- but they are in
- two places for temporary backward compatibility. The time to unpack is
+/* Note: With the Squeak V3 format we now have 10 bits of primitive index,
+ but they are
+ in two places for temporary backward compatibility. The time to unpack is
negligible, since the derived primitive function pointer is stored in the
- method cache. With the new
- format we assume a 3-byte CallPrimitive with a little-endian 16-bit
+ method cache. With the
+ Spur format we assume a 3-byte CallPrimitive with a little-endian 16-bit
primitive index. */
/* StackInterpreter>>#primitiveIndexOfMethod:header: */
@@ -78499,7 +78499,7 @@
static sqInt
retryPrimitiveOnFailure(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- signed char accessorDepth;
+ sqInt accessorDepth;
sqInt canRetry;
sqInt firstBytecode;
sqInt followDone;
@@ -79590,7 +79590,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -79625,7 +79625,7 @@
GIV(instructionPointer) = initialIP;
}
if (GIV(primFailCode) != 0) {
- if ((byteAt(initialIP + 1)) == (((((int) methodHeader)) < 0
+ if ((byteAt(initialIP + 1)) == (((((sqLong) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h 2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspursrc/vm/cogit.h 2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ CCodeGenerator VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
*/
Modified: branches/Cog/nsspursrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitARMv5.c 2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspursrc/vm/cogitARMv5.c 2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ CCodeGenerator VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ StackToRegisterMappingCogit VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
Modified: branches/Cog/nsspursrc/vm/cogitIA32.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitIA32.c 2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspursrc/vm/cogitIA32.c 2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ CCodeGenerator VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ StackToRegisterMappingCogit VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
Modified: branches/Cog/nsspursrc/vm/cogitMIPSEL.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitMIPSEL.c 2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspursrc/vm/cogitMIPSEL.c 2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ CCodeGenerator VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ StackToRegisterMappingCogit VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -2682,7 +2682,7 @@
sqInt byte;
BytecodeDescriptor *descriptor;
sqInt distance;
- sqInt endbcpc;
+ usqInt endbcpc;
CogMethod *homeMethod;
sqInt isBackwardBranch;
sqInt isInBlock;
@@ -3188,7 +3188,7 @@
usqInt cacheTag1;
sqInt classTag;
sqInt enclosingObject;
- usqInt entryPoint;
+ sqInt entryPoint;
usqInt entryPoint1;
usqInt entryPoint2;
sqInt literal;
@@ -4741,7 +4741,7 @@
static sqInt NoDbgRegParms
cPICHasFreedTargets(CogMethod *cPIC)
{
- sqInt entryPoint;
+ usqInt entryPoint;
sqInt i;
sqInt pc;
CogMethod *targetMethod;
@@ -5808,12 +5808,12 @@
generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
{
unsigned char annotation;
- sqInt delta;
+ usqInt delta;
sqInt i;
AbstractInstruction *instruction;
sqInt length;
- sqInt location;
- sqInt mapEntry;
+ usqInt location;
+ usqInt mapEntry;
sqInt maxDelta;
usqInt mcpc;
@@ -8078,7 +8078,7 @@
sqInt byte;
BytecodeDescriptor *descriptor;
sqInt distance;
- sqInt endbcpc;
+ usqInt endbcpc;
CogMethod *homeMethod;
sqInt isBackwardBranch;
sqInt isInBlock;
@@ -8754,7 +8754,7 @@
relocateCallsInClosedPIC(CogMethod *cPIC)
{
sqLong callDelta;
- sqInt entryPoint;
+ usqInt entryPoint;
sqInt i;
sqInt pc;
sqLong refDelta;
@@ -9624,7 +9624,7 @@
unlinkIfLinkedSendpcto(sqInt annotation, char *mcpc, sqInt theCogMethod)
{
usqInt cacheAddress;
- usqInt entryPoint;
+ sqInt entryPoint;
usqInt entryPoint1;
char *mcpc1;
NSSendCache *nsSendCache;
@@ -14780,7 +14780,7 @@
static AbstractInstruction * NoDbgRegParms
relocateMethodReferenceBeforeAddressby(AbstractInstruction * self_in_relocateMethodReferenceBeforeAddressby, sqInt pc, sqInt delta)
{
- usqInt newValue;
+ sqInt newValue;
usqInt oldValue;
if (((opcodeAtAddress(self_in_relocateMethodReferenceBeforeAddressby, pc - 8)) == ADDIU)
@@ -22263,7 +22263,7 @@
CogBlockMethod *cogMethod1;
BytecodeDescriptor *descriptor;
sqInt distance;
- sqInt endbcpc;
+ usqInt endbcpc;
sqInt errCode;
CogMethod *homeMethod;
sqInt isBackwardBranch;
Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c 2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspursrc/vm/cointerp.c 2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
from
- CoInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ CoInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -870,6 +870,7 @@
extern sqInt floatObjectOf(double aFloat);
extern double floatValueOf(sqInt oop);
static sqInt hasSixtyFourBitImmediates(void);
+extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
static sqInt NoDbgRegParms initFreeChunkWithBytesat(usqLong numBytes, sqInt address);
static void NoDbgRegParms initSegmentBridgeWithBytesat(usqLong numBytes, sqInt address);
extern sqInt instantiateClassindexableSize(sqInt classObj, usqInt nElements);
@@ -1358,7 +1359,6 @@
static sqInt NoDbgRegParms handleSpecialSelectorSendFaultForfpsp(sqInt obj, char *theFP, char *theSP);
static void handleStackOverflow(void);
static sqInt NoDbgRegParms handleStackOverflowOrEventAllowContextSwitch(sqInt mayContextSwitch);
-extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
extern usqInt highBit(usqInt anUnsignedValue);
static sqInt NoDbgRegParms ifCurrentStackPageHasValidHeadPointers(StackPage *thePage);
static usqInt NoDbgRegParms iframeMethod(char *theFP);
@@ -2428,7 +2428,7 @@
};
sqInt checkedPluginName;
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1883";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1885";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -23022,7 +23022,7 @@
usqInt index;
sqInt methodField;
usqInt numArgs;
- sqInt numTemps;
+ usqInt numTemps;
char *rcvrAddress;
sqInt rcvrOrClosure;
sqInt theMethod;
@@ -41803,7 +41803,7 @@
sqInt fmt;
usqInt instBytes;
sqInt instFormat;
- sqInt newFormat;
+ usqInt newFormat;
sqInt normalizedInstFormat;
usqInt numBytes;
usqInt numSlots;
@@ -42074,6 +42074,16 @@
}
+/* A negative header selects the alternate bytecode set. */
+
+ /* Spur32BitMemoryManager>>#headerIndicatesAlternateBytecodeSet: */
+sqInt
+headerIndicatesAlternateBytecodeSet(sqInt methodHeader)
+{
+ return (((int) methodHeader)) < 0;
+}
+
+
/* must have room for a header (single or double) plus the next free pointer */
/* Spur32BitMemoryManager>>#initFreeChunkWithBytes:at: */
@@ -66226,7 +66236,7 @@
bridgeFromto(SpurSegmentInfo *aSegment, SpurSegmentInfo *nextSegmentOrNil)
{
usqInt bridgeSpan;
- usqInt clifton;
+ sqInt clifton;
usqInt segEnd;
segEnd = ((aSegment->segSize)) + ((aSegment->segStart));
@@ -66407,7 +66417,7 @@
static void
postSnapshot(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- sqInt address;
+ usqInt address;
sqInt bytes;
usqInt freeChunk;
sqInt i;
@@ -70822,16 +70832,6 @@
}
-/* A negative header selects the alternate bytecode set. */
-
- /* StackInterpreter>>#headerIndicatesAlternateBytecodeSet: */
-sqInt
-headerIndicatesAlternateBytecodeSet(sqInt methodHeader)
-{
- return (((int) methodHeader)) < 0;
-}
-
-
/* This is a C implementation needed by ioSetMaxExtSemTableSize
and e.g. stackPageByteSize. */
@@ -74372,12 +74372,12 @@
}
-/* Note: With the Squeak V0 format we now have 10 bits of primitive index,
- but they are in
- two places for temporary backward compatibility. The time to unpack is
+/* Note: With the Squeak V3 format we now have 10 bits of primitive index,
+ but they are
+ in two places for temporary backward compatibility. The time to unpack is
negligible, since the derived primitive function pointer is stored in the
- method cache. With the new
- format we assume a 3-byte CallPrimitive with a little-endian 16-bit
+ method cache. With the
+ Spur format we assume a 3-byte CallPrimitive with a little-endian 16-bit
primitive index. */
/* StackInterpreter>>#primitiveIndexOfMethod:header: */
@@ -77506,7 +77506,7 @@
static sqInt
retryPrimitiveOnFailure(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- signed char accessorDepth;
+ sqInt accessorDepth;
sqInt canRetry;
sqInt firstBytecode;
sqInt followDone;
Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h 2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspursrc/vm/cointerp.h 2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
*/
@@ -131,6 +131,7 @@
extern usqInt scavengeThresholdAddress(void);
extern sqInt withoutForwardingOnandwithsendToCogit(sqInt obj1, sqInt obj2, sqInt aBool, sqInt (*selector)(sqInt,sqInt,sqInt));
extern sqInt byteSwapped(sqInt w);
+extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
extern sqInt instantiateClassindexableSize(sqInt classObj, usqInt nElements);
extern sqInt isIntegerValue(sqInt intValue);
extern sqInt isMarked(sqInt objOop);
@@ -271,7 +272,6 @@
extern void (*functionPointerForinClass(sqInt primIdx,sqInt theClass))(void) ;
extern usqLong getNextWakeupUsecs(void);
extern sqInt * getStackPointer(void);
-extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
extern usqInt highBit(usqInt anUnsignedValue);
extern sqInt isFloatObject(sqInt oop);
extern sqInt isKindOfInteger(sqInt oop);
Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2016-06-07 22:35:56 UTC (rev 3739)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
from
- CoInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ CoInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -873,6 +873,7 @@
extern sqInt floatObjectOf(double aFloat);
extern double floatValueOf(sqInt oop);
static sqInt hasSixtyFourBitImmediates(void);
+extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
static sqInt NoDbgRegParms initFreeChunkWithBytesat(usqLong numBytes, sqInt address);
static void NoDbgRegParms initSegmentBridgeWithBytesat(usqLong numBytes, sqInt address);
extern sqInt instantiateClassindexableSize(sqInt classObj, usqInt nElements);
@@ -1361,7 +1362,6 @@
static sqInt NoDbgRegParms handleSpecialSelectorSendFaultForfpsp(sqInt obj, char *theFP, char *theSP);
static void handleStackOverflow(void);
static sqInt NoDbgRegParms handleStackOverflowOrEventAllowContextSwitch(sqInt mayContextSwitch);
-extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
extern usqInt highBit(usqInt anUnsignedValue);
static sqInt NoDbgRegParms ifCurrentStackPageHasValidHeadPointers(StackPage *thePage);
static usqInt NoDbgRegParms iframeMethod(char *theFP);
@@ -2431,7 +2431,7 @@
};
sqInt checkedPluginName;
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1883";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1885";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -23031,7 +23031,7 @@
usqInt index;
sqInt methodField;
usqInt numArgs;
- sqInt numTemps;
+ usqInt numTemps;
char *rcvrAddress;
sqInt rcvrOrClosure;
sqInt theMethod;
@@ -41812,7 +41812,7 @@
sqInt fmt;
usqInt instBytes;
sqInt instFormat;
- sqInt newFormat;
+ usqInt newFormat;
sqInt normalizedInstFormat;
usqInt numBytes;
usqInt numSlots;
@@ -42083,6 +42083,16 @@
}
+/* A negative header selects the alternate bytecode set. */
+
+ /* Spur32BitMemoryManager>>#headerIndicatesAlternateBytecodeSet: */
+sqInt
+headerIndicatesAlternateBytecodeSet(sqInt methodHeader)
+{
+ return (((int) methodHeader)) < 0;
+}
+
+
/* must have room for a header (single or double) plus the next free pointer */
/* Spur32BitMemoryManager>>#initFreeChunkWithBytes:at: */
@@ -66235,7 +66245,7 @@
bridgeFromto(SpurSegmentInfo *aSegment, SpurSegmentInfo *nextSegmentOrNil)
{
usqInt bridgeSpan;
- usqInt clifton;
+ sqInt clifton;
usqInt segEnd;
segEnd = ((aSegment->segSize)) + ((aSegment->segStart));
@@ -66416,7 +66426,7 @@
static void
postSnapshot(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- sqInt address;
+ usqInt address;
sqInt bytes;
usqInt freeChunk;
sqInt i;
@@ -70831,16 +70841,6 @@
}
-/* A negative header selects the alternate bytecode set. */
-
- /* StackInterpreter>>#headerIndicatesAlternateBytecodeSet: */
-sqInt
-headerIndicatesAlternateBytecodeSet(sqInt methodHeader)
-{
- return (((int) methodHeader)) < 0;
-}
-
-
/* This is a C implementation needed by ioSetMaxExtSemTableSize
and e.g. stackPageByteSize. */
@@ -74381,12 +74381,12 @@
}
-/* Note: With the Squeak V0 format we now have 10 bits of primitive index,
- but they are in
- two places for temporary backward compatibility. The time to unpack is
+/* Note: With the Squeak V3 format we now have 10 bits of primitive index,
+ but they are
+ in two places for temporary backward compatibility. The time to unpack is
negligible, since the derived primitive function pointer is stored in the
- method cache. With the new
- format we assume a 3-byte CallPrimitive with a little-endian 16-bit
+ method cache. With the
+ Spur format we assume a 3-byte CallPrimitive with a little-endian 16-bit
primitive index. */
/* StackInterpreter>>#primitiveIndexOfMethod:header: */
@@ -77515,7 +77515,7 @@
static sqInt
retryPrimitiveOnFailure(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- signed char accessorDepth;
+ sqInt accessorDepth;
sqInt canRetry;
sqInt firstBytecode;
sqInt followDone;
Modified: branches/Cog/nsspurstack64src/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstack64src/vm/gcc3x-interp.c 2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspurstack64src/vm/gcc3x-interp.c 2016-06-07 22:35:56 UTC (rev 3739)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
from
- StackInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+ StackInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -632,6 +632,7 @@
static sqInt NoDbgRegParms fetchLong32ofFloatObject(sqInt fieldIndex, sqInt oop);
extern sqInt floatObjectOf(double aFloat);
extern double floatValueOf(sqInt oop);
+extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
static sqInt NoDbgRegParms initFreeChunkWithBytesat(usqLong numBytes, sqInt address);
static void NoDbgRegParms initSegmentBridgeWithBytesat(usqLong numBytes, sqInt address);
extern sqInt instantiateClassindexableSize(sqInt classObj, usqInt nElements);
@@ -1140,7 +1141,6 @@
static sqInt NoDbgRegParms handleSpecialSelectorSendFaultForfpsp(sqInt obj, char *theFP, char *theSP);
static void handleStackOverflow(void);
static sqInt NoDbgRegParms handleStackOverflowOrEventAllowContextSwitch(sqInt mayContextSwitch);
-extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
extern usqInt highBit(usqInt anUnsignedValue);
static sqInt NoDbgRegParms ifCurrentStackPageHasValidHeadPointers(StackPage *thePage);
static usqInt NoDbgRegParms iframeMethod(char *theFP);
@@ -2193,7 +2193,7 @@
0 };
sqInt checkedPluginName;
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1883";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1885";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -5623,7 +5623,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
? 256
: 0);
@@ -5647,7 +5647,7 @@
@@ Diff output truncated at 50000 characters. @@
More information about the Vm-dev
mailing list