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. @@
vm-dev@lists.squeakfoundation.org