[Vm-dev] [commit][3634] CogVM source as per VMMaker.oscog-eem.1703
commits at squeakvm.org
commits at squeakvm.org
Sun Feb 28 21:58:37 UTC 2016
Revision: 3634
Author: eliot
Date: 2016-02-28 13:58:34 -0800 (Sun, 28 Feb 2016)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1703
General:
Make the leak checker operational in the non-assert (& non-debug) VM.
64-bit Cogit:
Fix primtive 171 (primitiveImmediateAsInteger) in the Cogit for SmallFloat.
The old code only dealt with Characters. The new code replicates the
rotatedFloatBitsOf: scheme in Spur64BitMemoryManager.
Slang:
Eliminate some C compiler warnings in the generated code.
Add returns at the end of sqInt methods that don't end with a return.
Improve the variable pruning to mirror dead code elimination.
Fix casts of functions obtained from the SecurityPlugin which, you guessed it,
should be typed using sqInt, not int.
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/platforms/unix/plugins/SocketPlugin/sqUnixSocket.c
branches/Cog/platforms/unix/vm/aio.c
branches/Cog/platforms/unix/vm/sqaio.h
branches/Cog/scripts/mkspur64vmarchives
branches/Cog/scripts/uploadvms
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/plugins/ADPCMCodecPlugin/ADPCMCodecPlugin.c
branches/Cog/src/plugins/AioPlugin/AioPlugin.c
branches/Cog/src/plugins/AsynchFilePlugin/AsynchFilePlugin.c
branches/Cog/src/plugins/B2DPlugin/B2DPlugin.c
branches/Cog/src/plugins/B3DAcceleratorPlugin/B3DAcceleratorPlugin.c
branches/Cog/src/plugins/BMPReadWriterPlugin/BMPReadWriterPlugin.c
branches/Cog/src/plugins/BitBltPlugin/BitBltPlugin.c
branches/Cog/src/plugins/CroquetPlugin/CroquetPlugin.c
branches/Cog/src/plugins/DSAPrims/DSAPrims.c
branches/Cog/src/plugins/DropPlugin/DropPlugin.c
branches/Cog/src/plugins/FFTPlugin/FFTPlugin.c
branches/Cog/src/plugins/FilePlugin/FilePlugin.c
branches/Cog/src/plugins/FloatArrayPlugin/FloatArrayPlugin.c
branches/Cog/src/plugins/FloatMathPlugin/FloatMathPlugin.c
branches/Cog/src/plugins/IA32ABI/IA32ABI.c
branches/Cog/src/plugins/JPEGReaderPlugin/JPEGReaderPlugin.c
branches/Cog/src/plugins/Klatt/Klatt.c
branches/Cog/src/plugins/LargeIntegers/LargeIntegers.c
branches/Cog/src/plugins/Matrix2x3Plugin/Matrix2x3Plugin.c
branches/Cog/src/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
branches/Cog/src/plugins/QuicktimePlugin/QuicktimePlugin.c
branches/Cog/src/plugins/RePlugin/RePlugin.c
branches/Cog/src/plugins/SecurityPlugin/SecurityPlugin.c
branches/Cog/src/plugins/SocketPlugin/SocketPlugin.c
branches/Cog/src/plugins/SoundCodecPrims/SoundCodecPrims.c
branches/Cog/src/plugins/SoundGenerationPlugin/SoundGenerationPlugin.c
branches/Cog/src/plugins/Squeak3D/Squeak3D.c
branches/Cog/src/plugins/SqueakSSL/SqueakSSL.c
branches/Cog/src/plugins/StarSqueakPlugin/StarSqueakPlugin.c
branches/Cog/src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c
branches/Cog/src/plugins/Win32OSProcessPlugin/Win32OSProcessPlugin.c
branches/Cog/src/plugins/XDisplayControlPlugin/XDisplayControlPlugin.c
branches/Cog/src/plugins/ZipPlugin/ZipPlugin.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
Added Paths:
-----------
branches/Cog/scripts/compileChangeHistory
Property Changed:
----------------
branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nsspur64src/vm/cogit.h
===================================================================
--- branches/Cog/nsspur64src/vm/cogit.h 2016-02-27 22:26:23 UTC (rev 3633)
+++ branches/Cog/nsspur64src/vm/cogit.h 2016-02-28 21:58:34 UTC (rev 3634)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1700 uuid: 4efaff50-3cc1-4840-8195-df0e306eb5a4
+ CCodeGenerator VMMaker.oscog-eem.1703 uuid: 9bd9e03b-fbe7-450c-8adc-5e20f7d76cdf
*/
Modified: branches/Cog/nsspur64src/vm/cogitX64.c
===================================================================
--- branches/Cog/nsspur64src/vm/cogitX64.c 2016-02-27 22:26:23 UTC (rev 3633)
+++ branches/Cog/nsspur64src/vm/cogitX64.c 2016-02-28 21:58:34 UTC (rev 3634)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1700 uuid: 4efaff50-3cc1-4840-8195-df0e306eb5a4
+ CCodeGenerator VMMaker.oscog-eem.1703 uuid: 9bd9e03b-fbe7-450c-8adc-5e20f7d76cdf
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.1700 uuid: 4efaff50-3cc1-4840-8195-df0e306eb5a4
+ StackToRegisterMappingCogit VMMaker.oscog-eem.1703 uuid: 9bd9e03b-fbe7-450c-8adc-5e20f7d76cdf
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1700 uuid: 4efaff50-3cc1-4840-8195-df0e306eb5a4 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1703 uuid: 9bd9e03b-fbe7-450c-8adc-5e20f7d76cdf " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -756,6 +756,7 @@
static sqInt NoDbgRegParms genConvertBitsToSmallFloatInscratch(sqInt reg, sqInt scratch);
static void NoDbgRegParms genConvertCharacterToSmallIntegerInReg(sqInt reg);
static sqInt NoDbgRegParms genConvertIntegerToSmallIntegerInReg(sqInt reg);
+static sqInt NoDbgRegParms genConvertSmallFloatToSmallFloatHashAsIntegerInRegscratch(sqInt reg, sqInt scratch);
static void NoDbgRegParms genConvertSmallIntegerToCharacterInReg(sqInt reg);
static sqInt NoDbgRegParms genConvertSmallIntegerToIntegerInReg(sqInt reg);
static sqInt NoDbgRegParms genFetchIndexRegisterfrominto(sqInt indexReg, sqInt tableObj, sqInt destReg);
@@ -776,6 +777,7 @@
static sqInt genPrimitiveAt(void);
static sqInt genPrimitiveAtPut(void);
static sqInt genPrimitiveIdentityHash(void);
+static sqInt genPrimitiveImmediateAsInteger(void);
static sqInt genPrimitiveMirrorNew(void);
static sqInt genPrimitiveMirrorNewWithArg(void);
static sqInt genPrimitiveNew(void);
@@ -830,7 +832,6 @@
static sqInt NoDbgRegParms genNewArrayOfSizeinitialized(sqInt size, sqInt initialized);
static sqInt NoDbgRegParms genNoPopCreateClosureAtnumArgsnumCopiedcontextNumArgslargeinBlock(sqInt bcpc, sqInt numArgs, sqInt numCopied, sqInt ctxtNumArgs, sqInt isLargeCtxt, sqInt isInBlock);
static sqInt genPrimitiveAsCharacter(void);
-static sqInt genPrimitiveCharacterValue(void);
static sqInt NoDbgRegParms genPrimitiveIdenticalOrNotIf(sqInt orNot);
static sqInt genPrimitiveObjectAt(void);
static sqInt genPrimitiveSize(void);
@@ -1190,6 +1191,7 @@
static sqInt ceEnclosingObjectTrampoline;
void (*ceEnterCogCodePopReceiverReg)(void);
static sqInt ceFetchContextInstVarTrampoline;
+static void (*ceFlushICache)(unsigned long from, unsigned long to);
unsigned long (*ceGetFP)(void);
unsigned long (*ceGetSP)(void);
static sqInt ceLargeActiveContextInBlockTrampoline;
@@ -1214,7 +1216,6 @@
unsigned long (*ceTryLockVMOwner)(void);
void (*ceUnlockVMOwner)(void);
sqInt cFramePointerInUse;
-static sqInt checkedEntryAlignment;
static sqInt closedPICSize;
sqInt cmEntryOffset;
sqInt cmNoCheckEntryOffset;
@@ -1229,13 +1230,11 @@
static sqInt debugFixupBreaks;
static sqInt debugOpcodeIndices;
unsigned long debugPrimCallStackOffset;
-static sqInt directedSuperSendTrampolines[NumSendTrampolines];
static sqInt disassemblingMethod;
static sqInt dynamicSuperSendTrampolines[NumSendTrampolines];
static AbstractInstruction * endCPICCase0;
static sqInt endPC;
static AbstractInstruction * entry;
-static sqInt entryPointMask;
static sqInt enumeratingCogMethod;
static sqInt expectedFPAlignment;
static sqInt expectedSPAlignment;
@@ -1819,13 +1818,11 @@
static AbstractInstruction * stackCheckLabel;
static AbstractInstruction * stackOverflowCall;
static sqInt superSendTrampolines[NumSendTrampolines];
-static sqInt tempOop;
static sqInt theIRCs;
int traceFlags = 8 /* prim trace log on by default */;
sqInt traceStores;
static char *trampolineAddresses[NumTrampolines*2];
static sqInt trampolineTableIndex;
-static sqInt uncheckedEntryAlignment;
static usqInt unpairedMethodList;
static usqInt youngReferrers;
@@ -2516,7 +2513,6 @@
static AbstractInstruction * NoDbgRegParms
gAndCqRR(sqInt quickConstant, sqInt srcReg, sqInt destReg)
{
- AbstractInstruction *anInstruction;
AbstractInstruction *anInstruction1;
AbstractInstruction *anInstruction2;
AbstractInstruction *first;
@@ -4244,7 +4240,6 @@
compileAbort(void)
{
AbstractInstruction *anInstruction;
- sqInt callTarget;
/* begin MoveCq:R: */
anInstruction = genoperandoperand(MoveCqR, 0, ReceiverResultReg);
@@ -4307,6 +4302,7 @@
jmpTarget(jmp, gLabel());
compileBlockDispatchFromto(halfWay + 1, highBlockStartIndex);
}
+ return 0;
}
@@ -4381,10 +4377,8 @@
static void NoDbgRegParms
compileCallFornumArgsargargargargresultRegsaveRegs(void *aRoutine, sqInt numArgs, sqInt regOrConst0, sqInt regOrConst1, sqInt regOrConst2, sqInt regOrConst3, sqInt resultRegOrNone, sqInt saveRegs)
{
- AbstractInstruction *abstractInstruction;
AbstractInstruction *anInstruction;
AbstractInstruction *anInstruction1;
- AbstractInstruction *anInstruction11;
AbstractInstruction *anInstruction2;
AbstractInstruction *anInstruction3;
AbstractInstruction *anInstruction4;
@@ -4593,7 +4587,6 @@
compilePICAbort(sqInt numArgs)
{
AbstractInstruction *anInstruction;
- sqInt callTarget;
sqInt callTarget1;
AbstractInstruction * picMNUAbort;
@@ -4640,9 +4633,12 @@
static void
computeEntryOffsets(void)
{
+ sqInt checkedEntryAlignment;
+ sqInt entryPointMask;
sqInt fixupSize;
sqInt opcodeSize;
AbstractInstruction *sendMissCall;
+ sqInt uncheckedEntryAlignment;
/* begin allocateOpcodes:bytecodes: */
numAbstractOpcodes = 24;
@@ -5141,6 +5137,7 @@
? 0
: ((((blockStart->stackCheckLabel))->address)) - ((((blockStart->fakeHeader))->address))));
}
+ return 0;
}
/* Cogit>>#fillInMethodHeader:size:selector: */
@@ -5481,9 +5478,7 @@
static sqInt
genCheckForInterruptsTrampoline(void)
{
- sqInt address;
sqInt address1;
- AbstractInstruction *anInstruction;
AbstractInstruction *anInstruction1;
zeroOpcodeIndex();
@@ -5611,12 +5606,10 @@
{
sqInt address;
sqInt address1;
- sqInt address2;
AbstractInstruction *anInstruction;
AbstractInstruction *anInstruction1;
AbstractInstruction *anInstruction2;
AbstractInstruction *anInstruction3;
- AbstractInstruction *anInstruction4;
sqInt fixupSize;
sqInt opcodeSize;
sqInt quickConstant;
@@ -6241,7 +6234,6 @@
AbstractInstruction *anInstruction;
sqInt cacheValue;
sqInt opcode;
- sqInt selector;
assert((selectorIndex < 0
? (((-selectorIndex) >= 1) && ((-selectorIndex) <= (numSpecialSelectors())))
@@ -6258,9 +6250,7 @@
static sqInt
genNonLocalReturnTrampoline(void)
{
- sqInt address;
sqInt address1;
- AbstractInstruction *anInstruction;
AbstractInstruction *anInstruction1;
zeroOpcodeIndex();
@@ -6713,17 +6703,10 @@
void
initializeCodeZoneFromupTo(sqInt startAddress, sqInt endAddress)
{
- static void (*ceFlushICache)(unsigned long from, unsigned long to);
sqInt fixupSize;
- sqInt fixupSize1;
- sqInt fixupSize2;
sqInt numberOfAbstractOpcodes;
sqInt opcodeSize;
- sqInt opcodeSize1;
- sqInt opcodeSize2;
sqInt startAddress1;
- sqInt startAddress2;
- sqInt startAddress3;
initializeBackend();
stopsFromto(backEnd, startAddress, endAddress - 1);
@@ -7564,7 +7547,7 @@
val = 0;
val1 = 0;
if (leakCheckFullGC()) {
- assert(allMachineCodeObjectReferencesValid());
+ asserta(allMachineCodeObjectReferencesValid());
}
codeModified = 0;
markAndTraceObjectReferencesInGeneratedRuntime();
@@ -7660,7 +7643,7 @@
cogMethod = ((CogMethod *) (roundUpLength((((sqInt)cogMethod)) + ((cogMethod->blockSize)))));
}
if (leakCheckFullGC()) {
- assert(allMachineCodeObjectReferencesValid());
+ asserta(allMachineCodeObjectReferencesValid());
}
if (codeModified) {
@@ -10453,6 +10436,7 @@
}
openPIC = ((CogMethod *) ((openPIC->nextOpenPIC)));
} while(1);
+ return 0;
}
@@ -10636,6 +10620,7 @@
}
youngReferrers = dest;
assert(kosherYoungReferrers());
+ return 0;
}
/* CogMethodZone>>#relocateAndPruneYoungReferrers */
@@ -10677,6 +10662,7 @@
source -= BytesPerWord;
}
youngReferrers = dest;
+ return 0;
}
@@ -10731,6 +10717,7 @@
}
prevPIC = ((CogMethod *) ((prevPIC->nextOpenPIC)));
} while(1);
+ return 0;
}
/* CogMethodZone>>#removeFromUnpairedMethodList: */
@@ -10754,6 +10741,7 @@
}
prevMethod = ((CogMethod *) ((prevMethod->nextMethodOrIRCs)));
}
+ return 0;
}
/* CogMethodZone>>#voidYoungReferrersPostTenureAll */
@@ -11936,6 +11924,33 @@
}
+/* Convert the SmallFloat in reg to its identityHash as a SmallInteger.
+ Rotate the sign bit from bit 3 (zero-relative) the sign bit. This
+ implicitly sets
+ SmallInteger tags (3 >> 1 = 1). c.f.
+ Spur64BitMemoryManager>>rotatedFloatBitsOf: */
+
+ /* CogObjectRepresentationFor64BitSpur>>#genConvertSmallFloatToSmallFloatHashAsIntegerInReg:scratch: */
+static sqInt NoDbgRegParms
+genConvertSmallFloatToSmallFloatHashAsIntegerInRegscratch(sqInt reg, sqInt scratch)
+{
+ sqInt quickConstant;
+
+ assert((((usqInt) (smallFloatTag())) >> 1) == (smallIntegerTag()));
+ /* begin LogicalShiftRightCq:R: */
+ genoperandoperand(LogicalShiftRightCqR, 1, reg);
+ gAndCqRR(1LL << ((numTagBits()) - 1), reg, scratch);
+ /* begin SubR:R: */
+ genoperandoperand(SubRR, scratch, reg);
+ /* begin LogicalShiftLeftCq:R: */
+ quickConstant = 0x3F - ((numTagBits()) - 1);
+ genoperandoperand(LogicalShiftLeftCqR, quickConstant, scratch);
+ /* begin OrR:R: */
+ genoperandoperand(OrRR, scratch, reg);
+ return 0;
+}
+
+
/* Convert the SmallInteger in reg to a Character, assuming
the SmallInteger's value is a valid character. */
@@ -12360,7 +12375,6 @@
static AbstractInstruction * NoDbgRegParms
genJumpNotSmallFloatValueBitsscratch(sqInt reg, sqInt exponent)
{
- AbstractInstruction *anInstruction;
AbstractInstruction *anInstruction1;
AbstractInstruction *anInstruction2;
AbstractInstruction *anInstruction3;
@@ -12370,7 +12384,6 @@
AbstractInstruction *jumpTest;
AbstractInstruction *jumpZeroMantissa;
sqInt quickConstant;
- sqInt quickConstant1;
sqInt quickConstant2;
sqInt quickConstant3;
sqInt quickConstant4;
@@ -12418,43 +12431,45 @@
other than SmallIntegers,
i.e. don't branch if both aRegister and scratchA contain SmallIntegers.
Answer the jump. Destroy scratchA and scratchB if required. */
-/* Map SmallIntegers to 0 in scratchA & scratchB, add and jump non-zero. */
+/* Straight-forward approach. Map SmallIntegers to 0 in scratchA & scratchB,
+ add and jump non-zero. */
/* CogObjectRepresentationFor64BitSpur>>#genJumpNotSmallIntegersIn:andScratch:scratch: */
static AbstractInstruction * NoDbgRegParms
genJumpNotSmallIntegersInandScratchscratch(sqInt aRegister, sqInt scratchA, sqInt scratchB)
{
- AbstractInstruction *anInstruction;
AbstractInstruction *anInstruction1;
AbstractInstruction *anInstruction2;
AbstractInstruction *anInstruction3;
- sqInt quickConstant;
+ AbstractInstruction *anInstruction4;
sqInt quickConstant1;
sqInt quickConstant2;
sqInt quickConstant3;
+ sqInt quickConstant4;
return (/* begin MoveR:R: */
genoperandoperand(MoveRR, aRegister, scratchB),
/* begin SubCq:R: */
- (quickConstant2 = smallIntegerTag()),
+ (quickConstant3 = smallIntegerTag()),
/* begin gen:quickConstant:operand: */
- (anInstruction2 = genoperandoperand(SubCqR, quickConstant2, scratchA)),
+ (anInstruction1 = genoperandoperand(SubCqR, quickConstant3, scratchA)),
/* begin SubCq:R: */
- (quickConstant3 = smallIntegerTag()),
+ (quickConstant4 = smallIntegerTag()),
/* begin gen:quickConstant:operand: */
- (anInstruction3 = genoperandoperand(SubCqR, quickConstant3, scratchB)),
+ (anInstruction2 = genoperandoperand(SubCqR, quickConstant4, scratchB)),
/* begin AndCq:R: */
- (quickConstant = tagMask()),
+ (quickConstant1 = tagMask()),
/* begin gen:quickConstant:operand: */
- (anInstruction = genoperandoperand(AndCqR, quickConstant, scratchA)),
+ (anInstruction3 = genoperandoperand(AndCqR, quickConstant1, scratchA)),
/* begin AndCq:R: */
- (quickConstant1 = tagMask()),
+ (quickConstant2 = tagMask()),
/* begin gen:quickConstant:operand: */
- (anInstruction1 = genoperandoperand(AndCqR, quickConstant1, scratchB)),
+ (anInstruction4 = genoperandoperand(AndCqR, quickConstant2, scratchB)),
/* begin AddR:R: */
genoperandoperand(AddRR, scratchA, scratchB),
/* begin JumpNonZero: */
genConditionalBranchoperand(JumpNonZero, ((sqInt)0)));
+
}
@@ -13005,18 +13020,21 @@
return 0;
}
+
+/* Arguably we should fail for immediates, but so far no one has complained,
+ so...
+ */
+
/* CogObjectRepresentationFor64BitSpur>>#genPrimitiveIdentityHash */
static sqInt
genPrimitiveIdentityHash(void)
{
AbstractInstruction *anInstruction;
AbstractInstruction *anInstruction1;
- AbstractInstruction *anInstruction2;
AbstractInstruction *jumpImm;
+ AbstractInstruction *jumpNotCharacter;
AbstractInstruction *jumpNotSet;
- AbstractInstruction *jumpSF;
sqInt quickConstant;
- sqInt quickConstant1;
AbstractInstruction * ret;
@@ -13033,25 +13051,60 @@
assert(methodOrBlockNumArgs <= (numRegArgs()));
/* begin RetN: */
ret = genoperand(RetN, 0);
- jmpTarget(jumpImm, gLabel());
- gAndCqRR(tagMask(), ReceiverResultReg, TempReg);
+ jmpTarget(jumpImm, gAndCqRR(tagMask(), ReceiverResultReg, TempReg));
/* begin CmpCq:R: */
- quickConstant = smallIntegerTag();
+ quickConstant = characterTag();
/* begin gen:quickConstant:operand: */
anInstruction1 = genoperandoperand(CmpCqR, quickConstant, TempReg);
- /* begin JumpZero: */
- genConditionalBranchoperand(JumpZero, ((sqInt)ret));
+ /* begin JumpNonZero: */
+ jumpNotCharacter = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
+ genConvertCharacterToSmallIntegerInReg(ReceiverResultReg);
+ /* begin genPrimReturn */
+ assert(methodOrBlockNumArgs <= (numRegArgs()));
+ /* begin RetN: */
+ ret = genoperand(RetN, 0);
+ jmpTarget(jumpNotCharacter, gCmpCqR(smallFloatTag(), TempReg));
+ /* begin JumpNonZero: */
+ genConditionalBranchoperand(JumpNonZero, ((sqInt)ret));
+ genConvertSmallFloatToSmallFloatHashAsIntegerInRegscratch(ReceiverResultReg, TempReg);
+ /* begin genPrimReturn */
+ assert(methodOrBlockNumArgs <= (numRegArgs()));
+ /* begin RetN: */
+ genoperand(RetN, 0);
+ jmpTarget(jumpNotSet, gLabel());
+ return 0;
+}
+
+ /* CogObjectRepresentationFor64BitSpur>>#genPrimitiveImmediateAsInteger */
+static sqInt
+genPrimitiveImmediateAsInteger(void)
+{
+ AbstractInstruction *anInstruction;
+ AbstractInstruction *jumpNotCharacter;
+ sqInt quickConstant;
+ AbstractInstruction * ret;
+
+ gAndCqRR(tagMask(), ReceiverResultReg, TempReg);
/* begin CmpCq:R: */
- quickConstant1 = characterTag();
+ quickConstant = characterTag();
/* begin gen:quickConstant:operand: */
- anInstruction2 = genoperandoperand(CmpCqR, quickConstant1, TempReg);
+ anInstruction = genoperandoperand(CmpCqR, quickConstant, TempReg);
/* begin JumpNonZero: */
- jumpSF = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
+ jumpNotCharacter = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
genConvertCharacterToSmallIntegerInReg(ReceiverResultReg);
- /* begin Jump: */
- genoperand(Jump, ((sqInt)ret));
- jmpTarget(jumpNotSet, jmpTarget(jumpSF, gLabel()));
- return 0;
+ /* begin genPrimReturn */
+ assert(methodOrBlockNumArgs <= (numRegArgs()));
+ /* begin RetN: */
+ ret = genoperand(RetN, 0);
+ jmpTarget(jumpNotCharacter, gCmpCqR(smallFloatTag(), TempReg));
+ /* begin JumpNonZero: */
+ genConditionalBranchoperand(JumpNonZero, ((sqInt)ret));
+ genConvertSmallFloatToSmallFloatHashAsIntegerInRegscratch(ReceiverResultReg, TempReg);
+ /* begin genPrimReturn */
+ assert(methodOrBlockNumArgs <= (numRegArgs()));
+ /* begin RetN: */
+ genoperand(RetN, 0);
+ return UnfailingPrimitive;
}
@@ -14794,7 +14847,6 @@
AbstractInstruction *anInstruction34;
AbstractInstruction *anInstruction35;
AbstractInstruction *anInstruction4;
- AbstractInstruction *anInstruction5;
AbstractInstruction *anInstruction6;
AbstractInstruction *anInstruction7;
AbstractInstruction *anInstruction8;
@@ -15550,18 +15602,6 @@
return CompletePrimitive;
}
- /* CogObjectRepresentationForSpur>>#genPrimitiveCharacterValue */
-static sqInt
-genPrimitiveCharacterValue(void)
-{
- genConvertCharacterToSmallIntegerInReg(ReceiverResultReg);
- /* begin genPrimReturn */
- assert(methodOrBlockNumArgs <= (numRegArgs()));
- /* begin RetN: */
- genoperand(RetN, 0);
- return UnfailingPrimitive;
-}
-
/* CogObjectRepresentationForSpur>>#genPrimitiveIdenticalOrNotIf: */
static sqInt NoDbgRegParms
genPrimitiveIdenticalOrNotIf(sqInt orNot)
@@ -19932,8 +19972,6 @@
static AbstractInstruction * NoDbgRegParms
genPushRegisterArgsForNumArgsscratchReg(AbstractInstruction * self_in_genPushRegisterArgsForNumArgsscratchReg, sqInt numArgs, sqInt scratchReg)
{
- AbstractInstruction *anInstruction;
- AbstractInstruction *anInstruction1;
AbstractInstruction *anInstruction2;
AbstractInstruction *anInstruction3;
@@ -20859,12 +20897,6 @@
static sqInt NoDbgRegParms
compileInterpreterPrimitive(void (*primitiveRoutine)(void))
{
- AbstractInstruction *abstractInstruction;
- AbstractInstruction *abstractInstruction1;
- AbstractInstruction *abstractInstruction2;
- AbstractInstruction *abstractInstruction3;
- sqInt address;
- sqInt address1;
sqInt address10;
sqInt address11;
sqInt address12;
@@ -20872,18 +20904,9 @@
sqInt address2;
sqInt address3;
sqInt address4;
- sqInt address5;
- sqInt address6;
sqInt address7;
sqInt address8;
sqInt address9;
- AbstractInstruction *anInstruction;
- AbstractInstruction *anInstruction1;
- AbstractInstruction *anInstruction10;
- AbstractInstruction *anInstruction11;
- AbstractInstruction *anInstruction110;
- AbstractInstruction *anInstruction111;
- AbstractInstruction *anInstruction112;
AbstractInstruction *anInstruction12;
AbstractInstruction *anInstruction13;
AbstractInstruction *anInstruction14;
@@ -20898,7 +20921,6 @@
AbstractInstruction *anInstruction22;
AbstractInstruction *anInstruction23;
AbstractInstruction *anInstruction24;
- AbstractInstruction *anInstruction25;
AbstractInstruction *anInstruction26;
AbstractInstruction *anInstruction27;
AbstractInstruction *anInstruction28;
@@ -20918,7 +20940,6 @@
AbstractInstruction *jmp;
AbstractInstruction *jmpSampleNonPrim;
AbstractInstruction *jmpSamplePrim;
- sqInt literal;
sqInt literal1;
sqInt offset;
sqInt offset1;
@@ -22154,33 +22175,21 @@
static void NoDbgRegParms
genPrimReturnEnterCogCodeEnilopmart(sqInt profiling)
{
- AbstractInstruction *abstractInstruction;
- sqInt address;
- sqInt address1;
sqInt address2;
- sqInt address3;
- sqInt address4;
sqInt address5;
sqInt address6;
sqInt address7;
sqInt address8;
AbstractInstruction *anInstruction;
- AbstractInstruction *anInstruction1;
AbstractInstruction *anInstruction10;
- AbstractInstruction *anInstruction11;
AbstractInstruction *anInstruction12;
AbstractInstruction *anInstruction13;
AbstractInstruction *anInstruction14;
AbstractInstruction *anInstruction15;
AbstractInstruction *anInstruction16;
AbstractInstruction *anInstruction17;
- AbstractInstruction *anInstruction18;
- AbstractInstruction *anInstruction2;
AbstractInstruction *anInstruction3;
AbstractInstruction *anInstruction4;
- AbstractInstruction *anInstruction5;
- AbstractInstruction *anInstruction6;
- AbstractInstruction *anInstruction7;
AbstractInstruction *anInstruction8;
AbstractInstruction *anInstruction9;
sqInt callTarget;
@@ -22871,7 +22880,7 @@
{ 0, -1 },
{ genPrimitiveNotIdentical, 1 },
{ genPrimitiveAsCharacter, -1 },
- { genPrimitiveCharacterValue, 0 },
+ { genPrimitiveImmediateAsInteger, 0 },
{ 0, -1 },
{ 0, -1 },
{ 0, -1 },
@@ -23612,25 +23621,15 @@
static void NoDbgRegParms
adjustArgumentsForPerform(sqInt numArgs)
{
- AbstractInstruction *anInstruction;
- AbstractInstruction *anInstruction1;
- AbstractInstruction *anInstruction10;
- AbstractInstruction *anInstruction11;
- AbstractInstruction *anInstruction12;
AbstractInstruction *anInstruction13;
AbstractInstruction *anInstruction14;
AbstractInstruction *anInstruction15;
- AbstractInstruction *anInstruction2;
- AbstractInstruction *anInstruction3;
AbstractInstruction *anInstruction4;
AbstractInstruction *anInstruction5;
- AbstractInstruction *anInstruction6;
AbstractInstruction *anInstruction7;
AbstractInstruction *anInstruction8;
AbstractInstruction *anInstruction9;
sqInt index;
- sqInt literal;
- sqInt quickConstant;
sqInt quickConstant1;
assert((numRegArgs()) <= 2);
@@ -24632,13 +24631,9 @@
static sqInt
genExternalizePointersForPrimitiveCall(void)
{
- sqInt address;
- sqInt address1;
sqInt address2;
sqInt address3;
sqInt address4;
- AbstractInstruction *anInstruction;
- AbstractInstruction *anInstruction1;
AbstractInstruction *anInstruction2;
AbstractInstruction *anInstruction3;
AbstractInstruction *anInstruction4;
@@ -24969,7 +24964,6 @@
genMarshalledSendnumArgssendTable(sqInt selectorIndex, sqInt numArgs, sqInt *sendTable)
{
AbstractInstruction *anInstruction;
- AbstractInstruction *anInstruction1;
sqInt annotation;
assert(needsFrame);
@@ -25024,7 +25018,6 @@
static sqInt NoDbgRegParms
genMethodAbortTrampolineFor(sqInt numArgs)
{
- AbstractInstruction *anInstruction;
AbstractInstruction *anInstruction1;
AbstractInstruction *jumpSICMiss;
@@ -25517,6 +25510,9 @@
static sqInt NoDbgRegParms
genSendDirectedSupernumArgs(sqInt selectorIndex, sqInt numArgs)
{
+ sqInt directedSuperSendTrampolines[NumSendTrampolines];
+ sqInt tempOop;
+
assert((((ssTop())->type)) == SSConstant);
tempOop = ((ssTop())->constant);
ssPop(1);
Modified: branches/Cog/nsspur64src/vm/cointerp.c
===================================================================
--- branches/Cog/nsspur64src/vm/cointerp.c 2016-02-27 22:26:23 UTC (rev 3633)
+++ branches/Cog/nsspur64src/vm/cointerp.c 2016-02-28 21:58:34 UTC (rev 3634)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1699 uuid: 186ebd51-28ef-4e7f-8411-96b61577b777
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1702 uuid: ca289ff1-8bc0-40d7-a4bb-42b583f02dd1
from
- CoInterpreter VMMaker.oscog-eem.1699 uuid: 186ebd51-28ef-4e7f-8411-96b61577b777
+ CoInterpreter VMMaker.oscog-eem.1702 uuid: ca289ff1-8bc0-40d7-a4bb-42b583f02dd1
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1699 uuid: 186ebd51-28ef-4e7f-8411-96b61577b777 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1702 uuid: ca289ff1-8bc0-40d7-a4bb-42b583f02dd1 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1614,8 +1614,8 @@
_iss StackPage * stackPage;
_iss sqInt nilObj;
_iss sqInt argumentCount;
-_iss sqInt specialObjectsOop;
_iss sqInt bytecodeSetSelector;
+_iss sqInt specialObjectsOop;
_iss sqInt messageSelector;
_iss usqInt instructionPointer;
_iss usqInt newMethod;
@@ -1663,8 +1663,8 @@
_iss sqInt profileSemaphore;
_iss sqInt classTableIndex;
_iss SpurNewSpaceSpace futureSpace;
-_iss sqInt longRunningPrimitiveCheckSemaphore;
_iss sqInt profileMethod;
+_iss sqInt longRunningPrimitiveCheckSemaphore;
_iss sqInt numRememberedEphemerons;
_iss sqInt jmpDepth;
_iss usqInt lastFreeChunk;
@@ -1765,8 +1765,6 @@
_iss sqInt refCountToShrinkRT;
_iss sqInt statCoalesces;
_iss usqLong statIGCDeltaUsecs;
-_iss usqLong statIncrGCUsecs;
-_iss sqInt statIncrGCs;
_iss sqInt statPendingFinalizationSignals;
_iss sqInt statRootTableOverflows;
_iss usqLong statSGCDeltaUsecs;
@@ -1784,8 +1782,9 @@
_iss unsigned long byteCount;
_iss SpurCircularBuffer highestObjects;
_iss sqInt preferredPinningSegment;
-_iss char * stackMemory;
_iss usqLong statFGCDeltaUsecs;
+_iss usqLong statIncrGCUsecs;
+_iss sqInt statIncrGCs;
_iss sqInt theUnknownShort;
#undef _iss
#if SQ_USE_GLOBAL_STRUCT
@@ -1818,7 +1817,6 @@
jmp_buf reenterInterpreter; /* private export */;
sqInt checkAllocFiller;
sqInt breakSelectorLength = MinSmallInteger;
-sqInt inIOProcessEvents;
sqInt desiredEdenBytes;
sqInt desiredNumStackPages;
sqInt extraVMMemory;
@@ -1826,6 +1824,7 @@
unsigned long maxOldSpaceSize;
char * breakSelector;
usqInt heapBase;
+sqInt inIOProcessEvents;
void * showSurfaceFn;
sqInt deferDisplayUpdates;
struct VirtualMachine* interpreterProxy;
@@ -2442,7 +2441,7 @@
/*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
};
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1699";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1702";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -3594,8 +3593,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode);
@@ -3631,8 +3628,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode1);
@@ -3668,8 +3663,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode2);
@@ -3705,8 +3698,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode3);
@@ -3742,8 +3733,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode4);
@@ -3779,8 +3768,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode5);
@@ -3816,8 +3803,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode6);
@@ -3853,8 +3838,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode7);
@@ -3890,8 +3873,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode8);
@@ -3927,8 +3908,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode9);
@@ -3964,8 +3943,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode10);
@@ -4001,8 +3978,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode11);
@@ -4038,8 +4013,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode12);
@@ -4075,8 +4048,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode13);
@@ -4112,8 +4083,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode14);
@@ -4149,8 +4118,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode15);
@@ -4185,8 +4152,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode16);
@@ -4221,8 +4186,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode17);
@@ -4257,8 +4220,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode18);
@@ -4293,8 +4254,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode19);
@@ -4329,8 +4288,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode20);
@@ -4365,8 +4322,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode21);
@@ -4401,8 +4356,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode22);
@@ -4437,8 +4390,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode23);
@@ -4473,8 +4424,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode24);
@@ -4509,8 +4458,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode25);
@@ -4545,8 +4492,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode26);
@@ -4581,8 +4526,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode27);
@@ -4617,8 +4560,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode28);
@@ -4653,8 +4594,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode29);
@@ -4689,8 +4628,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode30);
@@ -4725,8 +4662,6 @@
/* pushLiteralVariableBytecode */
{
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(pushLiteralVariableBytecode31);
@@ -5693,8 +5628,6 @@
sqInt litVar;
sqInt object;
sqInt object1;
- sqInt object2;
- sqInt objOop;
sqInt referent;
sqInt variableIndex;
sqInt variableType;
@@ -6435,8 +6368,6 @@
sqInt litVar1;
sqInt object;
sqInt object1;
- sqInt object2;
- sqInt objOop;
sqInt onCurrentPage;
sqInt opType;
sqInt rcvr;
@@ -7172,24 +7103,18 @@
/* pushClosureCopyCopiedValuesBytecode */
{
sqInt blockSize;
- sqInt classObj;
sqInt context;
sqInt i;
sqInt initialIP;
- sqInt knownClassIndex;
sqInt newClosure;
sqInt newClosure1;
usqInt newObj;
- usqInt newObj1;
sqInt numArgs;
sqInt numArgsNumCopied;
usqInt numBytes;
- usqInt numBytes1;
sqInt numCopied;
sqInt numSlots;
- sqInt numSlots1;
sqInt objFormat;
- sqInt objFormat1;
char *theFP;
char *theSP;
@@ -12303,8 +12228,6 @@
{
sqInt index;
sqInt litVar;
- sqInt object;
- sqInt objOop;
sqInt referent;
VM_LABEL(extPushLiteralVariableBytecode);
@@ -14336,23 +14259,17 @@
{
sqInt blockSize;
sqInt byte;
- sqInt classObj;
sqInt context;
sqInt i;
sqInt initialIP;
- sqInt knownClassIndex;
sqInt newClosure;
sqInt newClosure1;
usqInt newObj;
- usqInt newObj1;
sqInt numArgs;
usqInt numBytes;
- usqInt numBytes1;
sqInt numCopied;
sqInt numSlots;
- sqInt numSlots1;
sqInt objFormat;
- sqInt objFormat1;
char *theFP;
char *theSP;
@@ -14860,6 +14777,7 @@
{
freeStackPageNoAssert(aPage);
assert(pageListIsWellFormed());
+ return 0;
}
@@ -15295,7 +15213,6 @@
sqInt header;
sqInt methodHeader;
sqInt p;
- sqInt primBits;
sqInt primitiveIndex;
sqInt probe;
@@ -15671,7 +15588,6 @@
volatile sqInt header1;
volatile jmp_buf savedReenterInterpreter;
volatile sqInt wasInMachineCode;
- volatile sqInt xArray;
/* For now, do not allow a callback unless we're in a primitiveResponse */
@@ -16606,7 +16522,6 @@
sqInt header;
sqInt methodHeader;
CogMethod *pic;
- sqInt primBits;
sqInt primitiveIndex;
sqInt top;
@@ -16665,7 +16580,6 @@
sqInt firstBytecode;
sqInt header;
sqInt methodHeader;
- sqInt primBits;
sqInt primitiveIndex;
char *sp;
sqInt tagBits;
@@ -16728,6 +16642,7 @@
? (GIV(lkupClass) = longAt((GIV(classTableFirstPage) + BaseHeaderSize) + (((long)tagBits1) << (shiftForWord()))))
: (GIV(lkupClass) = fetchClassOfNonImm(rcvr))));
assert(0);
+ return 0;
}
/* CoInterpreter>>#ceNonLocalReturn: */
@@ -17858,7 +17773,6 @@
sqInt index;
sqInt methodHeader;
sqInt oop;
- sqInt primBits;
sqInt primIndex;
sqInt referent;
sqInt scannedStackFrame;
@@ -18283,7 +18197,7 @@
GIV(statCodeCompactionUsecs) += (ioUTCMicrosecondsNow()) - startTime;
if (checkForLeaks != 0) {
clearLeakMapAndMapAccessibleObjects();
- assert(checkCodeIntegrity(0));
+ asserta(checkCodeIntegrity(0));
}
}
@@ -18739,6 +18653,7 @@
else {
activateNewMethod();
}
+ return 0;
}
@@ -18926,6 +18841,7 @@
if (methodHasCogMethod(methodObj)) {
rewritePrimInvocationInto(cogMethodOf(methodObj), primitiveExternalCall);
}
+ return 0;
}
@@ -23862,7 +23778,6 @@
primitivePropertyFlags(sqInt primIndex)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt baseFlags;
- sqInt baseFlags1;
/* begin primitivePropertyFlagsForSpur: */
baseFlags = PrimCallNeedsPrimitiveFunction + PrimCallNeedsNewMethod;
@@ -23906,7 +23821,6 @@
sqInt address;
sqInt firstBytecode;
sqInt methodHeader;
- sqInt primBits;
sqInt primitive;
sqInt theMethod;
@@ -24276,6 +24190,7 @@
}
}
}
+ return 0;
}
/* CoInterpreter>>#printLogEntryAt: */
@@ -24478,6 +24393,7 @@
/* return self */
}
}
+ return 0;
}
/* CoInterpreter>>#quickPrimitiveConstantFor: */
@@ -25199,12 +25115,7 @@
/* CoInterpreter>>#roomToPushNArgs: */
static sqInt NoDbgRegParms
roomToPushNArgs(sqInt n)
-{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- sqInt cntxSize;
- sqInt header;
- sqInt methodHeader;
- sqInt methodObj;
-
+{
/* simpler code that simply insists args are <= max arg count */
return n <= (LargeContextSlots - CtxtTempFrameStart);
@@ -25246,7 +25157,6 @@
sqInt errorCode;
sqInt i;
usqInt initialIP;
- sqInt integerValue;
sqInt methodHeader;
sqInt methodHeader1;
sqInt numArgs;
@@ -25738,6 +25648,7 @@
/* begin space */
putchar(' ');
shortPrintOop(rcvr);
+ return 0;
}
@@ -26364,7 +26275,6 @@
validInstructionPointerinMethodframePointer(usqInt instrPointer, usqInt aMethod, char *fp)
{
CogMethod *cogMethod;
- sqInt header;
sqInt methodField;
usqInt theInstrPointer;
@@ -27054,7 +26964,6 @@
sqInt i;
sqInt methodHeader;
sqInt oldMethod;
- sqInt primBits;
sqInt primIdx;
sqInt probe;
@@ -27174,6 +27083,7 @@
if (flushState) {
siglongjmp(reenterInterpreter, ReturnToInterpreter);
}
+ return 0;
}
@@ -27455,6 +27365,7 @@
if (flushState) {
siglongjmp(reenterInterpreter, ReturnToInterpreter);
}
+ return 0;
}
@@ -28194,7 +28105,6 @@
sqInt prevObj1;
sqInt prevPrevObj;
sqInt prevPrevObj1;
- sqInt primBits;
sqInt primIdx;
sqInt probe;
sqInt senderOop;
@@ -28907,7 +28817,6 @@
static sqInt NoDbgRegParms
magnitude64BitIntegerForneg(usqLong magnitude, sqInt isNegative)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- usqInt highWord;
sqInt isSmall;
sqInt largeClass;
sqInt newLargeInteger;
@@ -29045,10 +28954,6 @@
usqInt
positive32BitValueOf(sqInt oop)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- sqInt ccIndex;
- sqInt fmt;
- sqInt ok;
- sqInt sz;
sqInt value;
if ((((oop) & 7) == 1)) {
@@ -29533,7 +29438,6 @@
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt characterCode;
sqInt characterObject;
- sqInt objOop;
sqInt reasonCode;
char *sp;
@@ -29586,7 +29490,6 @@
sqInt integerValue;
usqInt numSlots;
usqInt numSlots1;
- sqInt objOop;
sqInt rcvr;
sqInt reasonCode;
sqInt result;
@@ -29729,37 +29632,23 @@
static void
primitiveAtPut(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- sqInt class;
sqInt class1;
- sqInt fixedFields;
sqInt fixedFields1;
- sqInt fmt;
sqInt fmt1;
- sqLong hdr;
sqLong hdr1;
sqInt index;
- usqInt numSlots;
- usqInt numSlots1;
usqInt numSlots11;
usqInt numSlots2;
sqInt rcvr;
- sqInt reasonCode;
sqInt reasonCode1;
- sqInt signedValueToStore;
sqInt signedValueToStore1;
char *sp;
- sqInt sp1;
sqInt sp11;
- sqInt sp2;
sqInt sp3;
- sqInt stSize;
sqInt stSize1;
- sqInt totalLength;
sqInt totalLength1;
- usqInt unsignedValueToStore;
usqInt unsignedValueToStore1;
sqInt value;
- sqInt value1;
/* begin commonAtPut: */
GIV(primFailCode) = 0;
@@ -30292,11 +30181,8 @@
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
usqLong integerArgument;
usqLong integerReceiver;
- sqInt integerValue;
sqInt oop;
- sqInt oop1;
char *sp;
- char *sp1;
integerArgument = longAt(GIV(stackPointer));
@@ -30349,11 +30235,8 @@
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
usqLong integerArgument;
usqLong integerReceiver;
- sqInt integerValue;
sqInt oop;
- sqInt oop1;
char *sp;
- char *sp1;
integerArgument = longAt(GIV(stackPointer));
@@ -30547,13 +30430,10 @@
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
usqLong integerArgument;
usqLong integerReceiver;
- sqInt integerValue;
sqInt oop;
sqInt oop1;
- sqInt oop2;
char *sp;
char *sp1;
- char *sp2;
integerArgument = longAt(GIV(stackPointer));
integerReceiver = longAt(GIV(stackPointer) + (1 * BytesPerWord));
@@ -31026,6 +30906,7 @@
oop1 = oop2;
longAtput((sp = GIV(stackPointer) + ((2 - 1) * BytesPerWord)), oop1);
GIV(stackPointer) = sp;
+ return 0;
}
/* InterpreterPrimitives>>#primitiveClosureValue */
@@ -32261,6 +32142,7 @@
crashInThisOrAnotherThread(crashInThisThread);
/* begin pop: */
GIV(stackPointer) += 1 * BytesPerWord;
+ return 0;
}
@@ -32297,6 +32179,7 @@
/* begin pop: */
GIV(stackPointer) += 1 * BytesPerWord;
}
+ return 0;
}
/* InterpreterPrimitives>>#primitiveDiv */
@@ -32624,6 +32507,7 @@
if (!GIV(primFailCode)) {
GIV(primFailCode) = 1;
}
+ return 0;
}
@@ -33924,7 +33808,6 @@
sqInt prevObj1;
sqInt prevPrevObj;
sqInt prevPrevObj1;
- sqInt primBits;
sqInt primIdx;
sqInt slotBytes;
sqInt slotBytes1;
@@ -34421,6 +34304,7 @@
/* begin push: */
longAtput((sp = GIV(stackPointer) - BytesPerWord), stringOop);
GIV(stackPointer) = sp;
+ return 0;
}
@@ -34578,6 +34462,7 @@
/* begin push: */
longAtput((sp = GIV(stackPointer) - BytesPerWord), labelOop);
GIV(stackPointer) = sp;
+ return 0;
}
@@ -34649,6 +34534,7 @@
object = pointResult;
longAtput((sp = GIV(stackPointer) - BytesPerWord), object);
GIV(stackPointer) = sp;
+ return 0;
}
/* InterpreterPrimitives>>#primitiveGreaterOrEqual */
@@ -34794,6 +34680,7 @@
l1: /* end positive32BitIntegerFor: */;
longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), oop);
GIV(stackPointer) = sp;
+ return 0;
}
@@ -34818,6 +34705,7 @@
object = positive64BitIntegerFor(ioHighResClock());
longAtput((sp = GIV(stackPointer) - BytesPerWord), object);
GIV(stackPointer) = sp;
+ return 0;
}
@@ -34916,6 +34804,7 @@
l1: /* end positive32BitIntegerFor: */;
longAtput((sp = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), oop);
GIV(stackPointer) = sp;
+ return 0;
}
@@ -35337,6 +35226,7 @@
oop = (((ioHeartbeatMilliseconds()) << 3) | 1);
longAtput((sp = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), oop);
GIV(stackPointer) = sp;
+ return 0;
}
@@ -35456,6 +35346,7 @@
? GIV(trueObj)
: GIV(falseObj)));
GIV(stackPointer) = sp;
+ return 0;
}
@@ -35508,6 +35399,7 @@
: GIV(falseObj));
longAtput((sp = GIV(stackPointer) - BytesPerWord), object);
GIV(stackPointer) = sp;
+ return 0;
}
@@ -36061,6 +35953,7 @@
/* begin pop:thenPush: */
longAtput((sp = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), (((sqInt)MillisecondClockMask << 3) | 1));
GIV(stackPointer) = sp;
+ return 0;
}
/* InterpreterPrimitives>>#primitiveMod */
@@ -36379,7 +36272,6 @@
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt classFormat;
sqInt classIndex;
- sqInt classObj;
sqInt classObj1;
sqInt err;
sqInt hash;
@@ -36389,14 +36281,10 @@
usqInt numBytes;
sqInt numSlots;
sqInt obj;
- sqInt oop;
usqInt p;
sqInt reasonCode;
char *sp;
- char *sp1;
- sqInt spaceOkay;
- spaceOkay = 0;
/* For the mirror prims check that the class obj is actually a valid class. */
if (!((GIV(argumentCount) < 1)
@@ -36658,21 +36546,16 @@
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt bs;
sqInt ccIndex;
- sqInt classObj;
sqInt fmt;
sqInt instSpec;
sqInt obj;
sqInt ok;
- sqInt oop;
sqInt oop1;
sqInt reasonCode;
unsigned long size;
char *sp;
- char *sp1;
- sqInt spaceOkay;
sqInt value;
- spaceOkay = 0;
/* For the mirror prims check that the class obj is actually a valid class. */
if (!((GIV(argumentCount) < 2)
@@ -37088,6 +36971,7 @@
oop = ((((ioOldMSecs()) & MillisecondClockMask) << 3) | 1);
longAtput((sp = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), oop);
GIV(stackPointer) = sp;
+ return 0;
}
@@ -37396,6 +37280,7 @@
/* begin pop:thenPush: */
longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), path);
GIV(stackPointer) = sp;
+ return 0;
}
/* InterpreterPrimitives>>#primitivePerformInSuperclass */
@@ -37561,8 +37446,6 @@
sqInt argumentArray;
usqInt arraySize;
sqInt delta;
- sqInt err;
- sqInt hash;
sqInt index;
sqInt nItems;
usqInt numSlots;
@@ -37681,6 +37564,7 @@
longAtput((sp = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), GIV(profileMethod));
GIV(stackPointer) = sp;
GIV(profileMethod) = GIV(nilObj);
+ return 0;
}
@@ -37706,6 +37590,7 @@
longAtput((sp = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), GIV(profileProcess));
GIV(stackPointer) = sp;
GIV(profileProcess) = GIV(nilObj);
+ return 0;
}
@@ -37759,6 +37644,7 @@
/* begin pop: */
GIV(stackPointer) += 1 * BytesPerWord;
}
+ return 0;
}
/* InterpreterPrimitives>>#primitiveQuit */
@@ -38362,6 +38248,7 @@
/* begin pop:thenPushInteger: */
longAtput((sp = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), ((depth << 3) | 1));
GIV(stackPointer) = sp;
+ return 0;
}
@@ -38735,6 +38622,7 @@
/* begin pop: */
GIV(stackPointer) += GIV(argumentCount) * BytesPerWord;
}
+ return 0;
}
/* InterpreterPrimitives>>#primitiveSetOrHasIdentityHash */
@@ -38877,6 +38765,7 @@
/* begin pop: */
GIV(stackPointer) += GIV(argumentCount) * BytesPerWord;
}
+ return 0;
}
@@ -38928,6 +38817,7 @@
/* begin pop: */
GIV(stackPointer) += GIV(argumentCount) * BytesPerWord;
}
+ return 0;
}
@@ -40553,7 +40443,6 @@
sqInt integerValue;
usqInt numSlots;
usqInt numSlots1;
- sqInt objOop;
sqInt rcvr;
sqInt reasonCode;
sqInt result;
@@ -40700,34 +40589,21 @@
primitiveStringAtPut(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt class;
- sqInt class1;
sqInt fixedFields;
- sqInt fixedFields1;
sqInt fmt;
- sqInt fmt1;
sqLong hdr;
- sqLong hdr1;
sqInt index;
usqInt numSlots;
usqInt numSlots1;
- usqInt numSlots11;
- usqInt numSlots2;
sqInt rcvr;
sqInt reasonCode;
- sqInt reasonCode1;
sqInt signedValueToStore;
- sqInt signedValueToStore1;
char *sp;
sqInt sp1;
- sqInt sp11;
sqInt sp2;
- sqInt sp3;
sqInt stSize;
- sqInt stSize1;
sqInt totalLength;
- sqInt totalLength1;
usqInt unsignedValueToStore;
- usqInt unsignedValueToStore1;
sqInt value;
sqInt value1;
@@ -41483,7 +41359,6 @@
sqInt prevObj1;
sqInt prevPrevObj;
sqInt prevPrevObj1;
- sqInt primBits;
sqInt primIdx;
sqInt slotBytes;
sqInt slotBytes1;
@@ -41817,6 +41692,7 @@
/* begin pop:thenPush: */
longAtput((sp = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), resultArray);
GIV(stackPointer) = sp;
+ return 0;
}
@@ -42327,6 +42203,7 @@
GIV(primFailCode) = 1;
}
}
+ return 0;
}
/* Spur64BitCoMemoryManager>>#ceScheduleScavenge */
@@ -43833,8 +43710,6 @@
addToEphemeronList(sqInt ephemeronCorpse)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt ephemeronListOffset;
- sqInt format;
- sqInt hash;
assert(!(isScavengeSurvivor(keyOfEphemeron(followForwarded(ephemeronCorpse)))));
ephemeronListOffset = (!(GIV(ephemeronList))
@@ -43862,8 +43737,6 @@
static void NoDbgRegParms NeverInline
addToWeakList(sqInt weakCorpse)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- sqInt format;
- sqInt hash;
sqInt weakListOffset;
weakListOffset = (!(GIV(weakList))
@@ -45236,8 +45109,6 @@
sqInt corpseOffset;
sqInt ephemeron;
sqInt ephemeronCorpse;
- sqInt format;
- sqInt hash;
sqInt nextCorpseOffset;
sqInt previousCorpse;
sqInt referent;
@@ -45433,6 +45304,7 @@
return objAfter;
}
}
+ return 0;
}
@@ -50682,6 +50554,7 @@
return PrimErrLimitExceeded;
}
}
+ return 0;
}
/* SpurMemoryManager>>#ephemeronFormat */
@@ -51599,6 +51472,7 @@
firstPage = stackOrNil;
}
assert(isValidObjStackAt(objStackRootIndex));
+ return 0;
}
@@ -53062,21 +52936,16 @@
inPlaceBecomeandcopyHashFlag(sqInt obj1, sqInt obj2, sqInt copyHashFlag)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt fmt;
- sqInt hash;
sqLong hash1;
sqLong hash2;
- sqInt hashTemp;
sqLong header1;
sqLong header2;
- sqLong headerTemp;
sqInt i;
sqInt iLimiT;
sqInt o1HasYoung;
sqInt o2HasYoung;
sqLong remembered1;
- sqInt remembered11;
sqLong remembered2;
- sqInt remembered21;
sqInt temp1;
sqInt temp2;
@@ -61538,7 +61407,7 @@
usqInt prevFree;
usqInt prevFreeChunk;
usqInt prevPrevFree;
- sqInt prevPrevFreeChunk;
+ usqInt prevPrevFreeChunk;
sqInt slotBytes;
sqInt slotBytes1;
usqInt there;
@@ -65189,7 +65058,7 @@
if (gcModes & GCModeFreeSpace) {
reverseDisplayFromto(16, 19);
clearLeakMapAndMapAccessibleFreeSpace();
- assert(checkHeapFreeSpaceIntegrity());
+ asserta(checkHeapFreeSpaceIntegrity());
}
}
@@ -65206,10 +65075,10 @@
reverseDisplayFromto(8, 15);
}
clearLeakMapAndMapAccessibleObjects();
- assert(checkHeapIntegrityclassIndicesShouldBeValid(0, 1));
- assert(checkInterpreterIntegrity());
- assert(checkStackIntegrity());
- assert(checkCodeIntegrity(gcModes));
+ asserta(checkHeapIntegrityclassIndicesShouldBeValid(0, 1));
+ asserta(checkInterpreterIntegrity());
+ asserta(checkStackIntegrity());
+ asserta(checkCodeIntegrity(gcModes));
}
return;
}
@@ -65227,10 +65096,10 @@
reverseDisplayFromto(8, 15);
}
clearLeakMapAndMapAccessibleObjects();
- assert(checkHeapIntegrityclassIndicesShouldBeValid(excludeUnmarkedNewSpaceObjs, classIndicesShouldBeValid));
- assert(checkInterpreterIntegrity());
- assert(checkStackIntegrity());
- assert(checkCodeIntegrity(gcModes));
+ asserta(checkHeapIntegrityclassIndicesShouldBeValid(excludeUnmarkedNewSpaceObjs, classIndicesShouldBeValid));
+ asserta(checkInterpreterIntegrity());
+ asserta(checkStackIntegrity());
+ asserta(checkCodeIntegrity(gcModes));
}
}
@@ -67072,6 +66941,7 @@
return (&(GIV(segments)[nextx]));
}
}
+ return 0;
}
@@ -67634,7 +67504,6 @@
sqInt header;
sqInt methodHeader;
sqInt p;
- sqInt primBits;
sqInt primitiveIndex;
usqInt probe;
@@ -67782,6 +67651,7 @@
if (!GIV(primFailCode)) {
GIV(primFailCode) = 1;
}
+ return 0;
}
@@ -67885,7 +67755,6 @@
canContextSwitchIfActivatingheader(sqInt theMethod, sqInt methodHeader)
{
sqInt firstBytecode;
- sqInt primBits;
sqInt primitiveIndex;
if (methodHeader & AlternateHeaderHasPrimFlag) {
@@ -67914,8 +67783,6 @@
sqInt
characterForAscii(sqInt ascii)
{
- sqInt objOop;
-
return (((long)ascii) << (numTagBits())) + (characterTag());
}
@@ -68744,25 +68611,13 @@
createActualMessageTo(sqInt lookupClass)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt argumentArray;
- sqInt classObj;
- sqInt classObj1;
sqInt i;
- sqInt knownClassIndex;
- sqInt knownClassIndex1;
sqInt message;
usqInt newObj;
usqInt newObj1;
- usqInt newObj2;
- usqInt newObj3;
usqInt numBytes;
usqInt numBytes1;
- usqInt numBytes2;
- usqInt numBytes3;
sqInt numSlots;
- sqInt numSlots1;
- sqInt numSlots2;
- sqInt objFormat;
- sqInt objFormat1;
char *sp;
@@ -68963,6 +68818,7 @@
ioShowDisplay(dispBitsIndex, w, h, d, left, right, top, bottom);
}
}
+ return 0;
}
/* StackInterpreter>>#divorceAllFrames */
@@ -70094,6 +69950,7 @@
assert(GIV(stackPage) == (mostRecentlyUsedPage()));
assert(pageListIsWellFormed());
assert(validStackPageBaseFrames());
+ return 0;
}
@@ -70995,6 +70852,7 @@
iccFunc();
}
GIV(statForceInterruptCheck) += 1;
+ return 0;
}
@@ -72968,6 +72826,7 @@
currentClass = objOop1;
}
error("Recursive not understood error encountered");
+ return 0;
}
@@ -73940,7 +73799,6 @@
sqInt callerContextOrNil;
sqInt context;
sqInt i;
- sqInt i1;
sqInt index;
sqInt index1;
@@ Diff output truncated at 50000 characters. @@
More information about the Vm-dev
mailing list