[Vm-dev] [commit][3555] CogVM source as per VMMaker.oscog-eem.1639
commits at squeakvm.org
commits at squeakvm.org
Sat Jan 16 04:22:19 UTC 2016
Revision: 3555
Author: eliot
Date: 2016-01-15 20:22:18 -0800 (Fri, 15 Jan 2016)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1639
Cogit:
Fix slip in immutability jumps. jumpTarget is not a selector.
getJmpTarget is.
64-bit Spur Cogit:
Generate cleaner SmallFloat arithmetic and comparison code by
extracting arg tag once.
Implement MoveRM[16|b]r for MIPSEL and correct machine code size of
MoveMbrR/RMbrR.
Spur:
Add some commentary on default sizes, explaining why 64-bit Spur
has the same default eden size as 32-bits.
Modified Paths:
--------------
branches/Cog/nsspursrc/vm/cogit.h
branches/Cog/nsspursrc/vm/cogitARMv5.c
branches/Cog/nsspursrc/vm/cogitIA32.c
branches/Cog/nsspursrc/vm/cogitMIPSEL.c
branches/Cog/nsspursrc/vm/cointerp.c
branches/Cog/nsspursrc/vm/cointerp.h
branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
branches/Cog/nsspurstack64src/vm/gcc3x-interp.c
branches/Cog/nsspurstack64src/vm/interp.c
branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
branches/Cog/nsspurstacksrc/vm/interp.c
branches/Cog/spur64src/vm/cogit.h
branches/Cog/spur64src/vm/cogitX64.c
branches/Cog/spur64src/vm/cointerp.c
branches/Cog/spur64src/vm/cointerp.h
branches/Cog/spur64src/vm/gcc3x-cointerp.c
branches/Cog/spursistasrc/vm/cogit.h
branches/Cog/spursistasrc/vm/cogitARMv5.c
branches/Cog/spursistasrc/vm/cogitIA32.c
branches/Cog/spursistasrc/vm/cogitMIPSEL.c
branches/Cog/spursistasrc/vm/cointerp.c
branches/Cog/spursistasrc/vm/cointerp.h
branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
branches/Cog/spursrc/vm/cogit.h
branches/Cog/spursrc/vm/cogitARMv5.c
branches/Cog/spursrc/vm/cogitIA32.c
branches/Cog/spursrc/vm/cogitMIPSEL.c
branches/Cog/spursrc/vm/cointerp.c
branches/Cog/spursrc/vm/cointerp.h
branches/Cog/spursrc/vm/gcc3x-cointerp.c
branches/Cog/spurstack64src/vm/gcc3x-interp.c
branches/Cog/spurstack64src/vm/interp.c
branches/Cog/spurstacksrc/vm/gcc3x-interp.c
branches/Cog/spurstacksrc/vm/interp.c
branches/Cog/src/vm/cogit.h
branches/Cog/src/vm/cogitARMv5.c
branches/Cog/src/vm/cogitIA32.c
branches/Cog/src/vm/cogitMIPSEL.c
Property Changed:
----------------
branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h 2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspursrc/vm/cogit.h 2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ CCodeGenerator VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
*/
Modified: branches/Cog/nsspursrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitARMv5.c 2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspursrc/vm/cogitARMv5.c 2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ CCodeGenerator VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ StackToRegisterMappingCogit VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -1005,6 +1005,7 @@
static sqInt genLongUnconditionalForwardJump(void);
static sqInt NoDbgRegParms genLookupForPerformNumArgs(sqInt numArgs);
static AbstractInstruction * NoDbgRegParms genMoveConstantR(sqInt constant, sqInt reg);
+static AbstractInstruction * NoDbgRegParms genMoveFalseR(sqInt reg);
static sqInt NoDbgRegParms genMoveTrueR(sqInt reg);
static sqInt NoDbgRegParms genMustBeBooleanTrampolineForcalled(sqInt boolean, char *trampolineName);
static void NoDbgRegParms genPrimReturnEnterCogCodeEnilopmart(sqInt profiling);
@@ -10446,12 +10447,12 @@
generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
{
unsigned char annotation;
- usqInt delta;
+ sqInt delta;
sqInt i;
AbstractInstruction *instruction;
sqInt length;
- usqInt location;
- usqInt mapEntry;
+ sqInt location;
+ sqInt mapEntry;
sqInt maxDelta;
usqInt mcpc;
@@ -15515,7 +15516,7 @@
/* FP jumps are a little weird */
jumpCond = jumpOpcodeGenerator(0);
- /* begin genMoveConstant:R: */
+ /* begin genMoveFalseR: */
constant = falseObject();
if (shouldAnnotateObjectReference(constant)) {
annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -16194,6 +16195,7 @@
jumpNotSI = genJumpNotSmallInteger(Arg0Reg);
genShiftAwaySmallIntegerTagsInScratchReg(ClassReg);
genRemoveSmallIntegerTagsInScratchReg(Arg1Reg);
+ /* begin MulR:R: */
genMulRR(backEnd, Arg1Reg, ClassReg);
/* begin JumpOverflow: */
jumpOvfl = genConditionalBranchoperand(JumpOverflow, ((sqInt)0));
@@ -16340,7 +16342,7 @@
/* begin CmpR:R: */
genoperandoperand(CmpRR, Arg0Reg, ReceiverResultReg);
jumpTrue = genConditionalBranchoperand(jumpOpcode, 0);
- /* begin genMoveConstant:R: */
+ /* begin genMoveFalseR: */
constant = falseObject();
if (shouldAnnotateObjectReference(constant)) {
annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -16411,7 +16413,7 @@
/* FP jumps are a little weird */
jumpCond = jumpFPOpcodeGenerator(0);
- /* begin genMoveConstant:R: */
+ /* begin genMoveFalseR: */
constant = falseObject();
if (shouldAnnotateObjectReference(constant)) {
annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -20504,7 +20506,7 @@
assert(methodOrBlockNumArgs <= (numRegArgs()));
/* begin RetN: */
genoperand(RetN, 0);
- jmpTarget(jumpCmp, genMoveConstantR(falseObject(), ReceiverResultReg));
+ jmpTarget(jumpCmp, genMoveFalseR(ReceiverResultReg));
/* begin genPrimReturn */
assert(methodOrBlockNumArgs <= (numRegArgs()));
/* begin RetN: */
@@ -23469,6 +23471,25 @@
anInstruction));
}
+ /* SimpleStackBasedCogit>>#genMoveFalseR: */
+static AbstractInstruction * NoDbgRegParms
+genMoveFalseR(sqInt reg)
+{
+ AbstractInstruction *anInstruction;
+ sqInt constant;
+
+ /* begin genMoveConstant:R: */
+ constant = falseObject();
+ return (shouldAnnotateObjectReference(constant)
+ ? annotateobjRef(gMoveCwR(constant, reg), constant)
+ : (/* begin MoveCq:R: */
+ (anInstruction = genoperandoperand(MoveCqR, constant, reg)),
+ (usesOutOfLineLiteral(anInstruction)
+ ? (anInstruction->dependent = locateLiteral(constant))
+ : 0),
+ anInstruction));
+}
+
/* SimpleStackBasedCogit>>#genMoveTrueR: */
static sqInt NoDbgRegParms
genMoveTrueR(sqInt reg)
Modified: branches/Cog/nsspursrc/vm/cogitIA32.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitIA32.c 2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspursrc/vm/cogitIA32.c 2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ CCodeGenerator VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ StackToRegisterMappingCogit VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -843,7 +843,7 @@
static sqInt NoDbgRegParms genGetClassIndexOfNonImminto(sqInt sourceReg, sqInt destReg);
static sqInt NoDbgRegParms genGetClassObjectOfClassIndexintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg);
static sqInt NoDbgRegParms genGetClassObjectOfintoscratchReginstRegIsReceiver(sqInt instReg, sqInt destReg, sqInt scratchReg, sqInt instRegIsReceiver);
-static sqInt NoDbgRegParms genGetClassTagOfintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg);
+static AbstractInstruction * NoDbgRegParms genGetClassTagOfintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg);
static sqInt NoDbgRegParms genGetCompactClassIndexNonImmOfinto(sqInt instReg, sqInt destReg);
static sqInt NoDbgRegParms genGetDoubleValueOfinto(sqInt srcReg, sqInt destFPReg);
static sqInt NoDbgRegParms genGetFormatOfinto(sqInt srcReg, sqInt destReg);
@@ -929,8 +929,8 @@
static sqInt genLongUnconditionalBackwardJump(void);
static sqInt genLongUnconditionalForwardJump(void);
static sqInt NoDbgRegParms genLookupForPerformNumArgs(sqInt numArgs);
-static AbstractInstruction * NoDbgRegParms genMoveConstantR(sqInt constant, sqInt reg);
-static sqInt NoDbgRegParms genMoveTrueR(sqInt reg);
+static AbstractInstruction * NoDbgRegParms genMoveFalseR(sqInt reg);
+static AbstractInstruction * NoDbgRegParms genMoveTrueR(sqInt reg);
static sqInt NoDbgRegParms genMustBeBooleanTrampolineForcalled(sqInt boolean, char *trampolineName);
static void NoDbgRegParms genPrimReturnEnterCogCodeEnilopmart(sqInt profiling);
static sqInt genPushClosureTempsBytecode(void);
@@ -3158,7 +3158,7 @@
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset16) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset16) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset16) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpLongNonZero:
@@ -3198,7 +3198,7 @@
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset18) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset18) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset18) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case Jump:
@@ -3263,7 +3263,7 @@
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset110) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset110) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset110) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpNonNegative:
@@ -3301,7 +3301,7 @@
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset111) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset111) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset111) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpOverflow:
@@ -3339,7 +3339,7 @@
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset112) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset112) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset112) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpNoOverflow:
@@ -3377,7 +3377,7 @@
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset113) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset113) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset113) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpCarry:
@@ -3417,7 +3417,7 @@
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset114) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset114) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset114) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpNoCarry:
@@ -3457,7 +3457,7 @@
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset115) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset115) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset115) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpLess:
@@ -3495,7 +3495,7 @@
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset116) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset116) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset116) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpGreaterOrEqual:
@@ -3533,7 +3533,7 @@
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset117) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset117) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset117) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpGreater:
@@ -3571,7 +3571,7 @@
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset118) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset118) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset118) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpLessOrEqual:
@@ -3609,7 +3609,7 @@
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset119) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset119) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset119) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpAbove:
@@ -3648,7 +3648,7 @@
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset120) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset120) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset120) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpBelowOrEqual:
@@ -3687,7 +3687,7 @@
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset121) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset121) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset121) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpFPOrdered:
@@ -3725,7 +3725,7 @@
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset122) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset122) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset122) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpFPUnordered:
@@ -3763,7 +3763,7 @@
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset123) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset123) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset123) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case RetN:
@@ -9600,12 +9600,12 @@
generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
{
unsigned char annotation;
- usqInt delta;
+ sqInt delta;
sqInt i;
AbstractInstruction *instruction;
sqInt length;
- usqInt location;
- usqInt mapEntry;
+ sqInt location;
+ sqInt mapEntry;
sqInt maxDelta;
usqInt mcpc;
@@ -14640,7 +14640,7 @@
/* FP jumps are a little weird */
jumpCond = jumpOpcodeGenerator(0);
- /* begin genMoveConstant:R: */
+ /* begin genMoveFalseR: */
constant = falseObject();
if (shouldAnnotateObjectReference(constant)) {
annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -14653,7 +14653,7 @@
assert(methodOrBlockNumArgs <= (numRegArgs()));
/* begin RetN: */
genoperand(RetN, 0);
- jmpTarget(jumpCond, genMoveConstantR(trueObject(), ReceiverResultReg));
+ jmpTarget(jumpCond, genMoveTrueR(ReceiverResultReg));
/* begin genPrimReturn */
assert(methodOrBlockNumArgs <= (numRegArgs()));
/* begin RetN: */
@@ -15423,7 +15423,7 @@
/* begin CmpR:R: */
genoperandoperand(CmpRR, Arg0Reg, ReceiverResultReg);
jumpTrue = genConditionalBranchoperand(jumpOpcode, 0);
- /* begin genMoveConstant:R: */
+ /* begin genMoveFalseR: */
constant = falseObject();
if (shouldAnnotateObjectReference(constant)) {
annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -15436,7 +15436,7 @@
assert(methodOrBlockNumArgs <= (numRegArgs()));
/* begin RetN: */
genoperand(RetN, 0);
- jmpTarget(jumpTrue, genMoveConstantR(trueObject(), ReceiverResultReg));
+ jmpTarget(jumpTrue, genMoveTrueR(ReceiverResultReg));
/* begin genPrimReturn */
assert(methodOrBlockNumArgs <= (numRegArgs()));
/* begin RetN: */
@@ -15491,7 +15491,7 @@
/* FP jumps are a little weird */
jumpCond = jumpFPOpcodeGenerator(0);
- /* begin genMoveConstant:R: */
+ /* begin genMoveFalseR: */
constant = falseObject();
if (shouldAnnotateObjectReference(constant)) {
annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -15504,7 +15504,7 @@
assert(methodOrBlockNumArgs <= (numRegArgs()));
/* begin RetN: */
genoperand(RetN, 0);
- jmpTarget(jumpCond, genMoveConstantR(trueObject(), ReceiverResultReg));
+ jmpTarget(jumpCond, genMoveTrueR(ReceiverResultReg));
/* begin genPrimReturn */
assert(methodOrBlockNumArgs <= (numRegArgs()));
/* begin RetN: */
@@ -18380,7 +18380,7 @@
}
/* CogObjectRepresentationForSpur>>#genGetClassTagOf:into:scratchReg: */
-static sqInt NoDbgRegParms
+static AbstractInstruction * NoDbgRegParms
genGetClassTagOfintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg)
{
return genGetInlineCacheClassTagFromintoforEntry(instReg, destReg, 1);
@@ -18781,7 +18781,7 @@
/* begin JumpNonZero: */
jumpCmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
}
- /* begin genMoveConstant:R: */
+ /* begin genMoveTrueR: */
constant = trueObject();
if (shouldAnnotateObjectReference(constant)) {
annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -18794,7 +18794,7 @@
assert(methodOrBlockNumArgs <= (numRegArgs()));
/* begin RetN: */
genoperand(RetN, 0);
- jmpTarget(jumpCmp, genMoveConstantR(falseObject(), ReceiverResultReg));
+ jmpTarget(jumpCmp, genMoveFalseR(ReceiverResultReg));
/* begin genPrimReturn */
assert(methodOrBlockNumArgs <= (numRegArgs()));
/* begin RetN: */
@@ -20866,12 +20866,15 @@
return 0;
}
- /* SimpleStackBasedCogit>>#genMoveConstant:R: */
+ /* SimpleStackBasedCogit>>#genMoveFalseR: */
static AbstractInstruction * NoDbgRegParms
-genMoveConstantR(sqInt constant, sqInt reg)
+genMoveFalseR(sqInt reg)
{
AbstractInstruction *anInstruction;
+ sqInt constant;
+ /* begin genMoveConstant:R: */
+ constant = falseObject();
return (shouldAnnotateObjectReference(constant)
? annotateobjRef(gMoveCwR(constant, reg), constant)
: (/* begin MoveCq:R: */
@@ -20880,7 +20883,7 @@
}
/* SimpleStackBasedCogit>>#genMoveTrueR: */
-static sqInt NoDbgRegParms
+static AbstractInstruction * NoDbgRegParms
genMoveTrueR(sqInt reg)
{
AbstractInstruction *anInstruction;
Modified: branches/Cog/nsspursrc/vm/cogitMIPSEL.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitMIPSEL.c 2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspursrc/vm/cogitMIPSEL.c 2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ CCodeGenerator VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ StackToRegisterMappingCogit VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -757,11 +757,11 @@
static sqInt NoDbgRegParms computeMaximumSize(AbstractInstruction * self_in_computeMaximumSize);
static usqInt NoDbgRegParms concretizeAddCheckOverflowCqR(AbstractInstruction * self_in_concretizeAddCheckOverflowCqR);
static usqInt NoDbgRegParms concretizeAddCheckOverflowRR(AbstractInstruction * self_in_concretizeAddCheckOverflowRR);
-static sqInt NoDbgRegParms concretizeAddCqR(AbstractInstruction * self_in_concretizeAddCqR);
+static usqInt NoDbgRegParms concretizeAddCqR(AbstractInstruction * self_in_concretizeAddCqR);
static usqInt NoDbgRegParms concretizeAddCwR(AbstractInstruction * self_in_concretizeAddCwR);
static usqInt NoDbgRegParms concretizeAddRR(AbstractInstruction * self_in_concretizeAddRR);
static AbstractInstruction * NoDbgRegParms concretizeAlignmentNops(AbstractInstruction * self_in_concretizeAlignmentNops);
-static sqInt NoDbgRegParms concretizeAndCqR(AbstractInstruction * self_in_concretizeAndCqR);
+static usqInt NoDbgRegParms concretizeAndCqR(AbstractInstruction * self_in_concretizeAndCqR);
static usqInt NoDbgRegParms concretizeAndCqRR(AbstractInstruction * self_in_concretizeAndCqRR);
static usqInt NoDbgRegParms concretizeAndCwR(AbstractInstruction * self_in_concretizeAndCwR);
static usqInt NoDbgRegParms concretizeAndRR(AbstractInstruction * self_in_concretizeAndRR);
@@ -780,7 +780,7 @@
static usqInt NoDbgRegParms concretizeBrUnsignedGreaterRR(AbstractInstruction * self_in_concretizeBrUnsignedGreaterRR);
static usqInt NoDbgRegParms concretizeBrUnsignedLessEqualRR(AbstractInstruction * self_in_concretizeBrUnsignedLessEqualRR);
static usqInt NoDbgRegParms concretizeBrUnsignedLessRR(AbstractInstruction * self_in_concretizeBrUnsignedLessRR);
-static usqInt NoDbgRegParms concretizeCall(AbstractInstruction * self_in_concretizeCall);
+static sqInt NoDbgRegParms concretizeCall(AbstractInstruction * self_in_concretizeCall);
static usqInt NoDbgRegParms concretizeCallFull(AbstractInstruction * self_in_concretizeCallFull);
static sqInt NoDbgRegParms concretizeCmpCqR(AbstractInstruction * self_in_concretizeCmpCqR);
static sqInt NoDbgRegParms concretizeCmpCwR(AbstractInstruction * self_in_concretizeCmpCwR);
@@ -812,7 +812,7 @@
static usqInt NoDbgRegParms concretizeLogicalShiftRightRR(AbstractInstruction * self_in_concretizeLogicalShiftRightRR);
static usqInt NoDbgRegParms concretizeMoveAbR(AbstractInstruction * self_in_concretizeMoveAbR);
static usqInt NoDbgRegParms concretizeMoveAwR(AbstractInstruction * self_in_concretizeMoveAwR);
-static sqInt NoDbgRegParms concretizeMoveCqR(AbstractInstruction * self_in_concretizeMoveCqR);
+static usqInt NoDbgRegParms concretizeMoveCqR(AbstractInstruction * self_in_concretizeMoveCqR);
static usqInt NoDbgRegParms concretizeMoveCwR(AbstractInstruction * self_in_concretizeMoveCwR);
static usqInt NoDbgRegParms concretizeMoveHighR(AbstractInstruction * self_in_concretizeMoveHighR);
static usqInt NoDbgRegParms concretizeMoveLowR(AbstractInstruction * self_in_concretizeMoveLowR);
@@ -821,6 +821,8 @@
static usqInt NoDbgRegParms concretizeMoveMwrR(AbstractInstruction * self_in_concretizeMoveMwrR);
static usqInt NoDbgRegParms concretizeMoveRAb(AbstractInstruction * self_in_concretizeMoveRAb);
static usqInt NoDbgRegParms concretizeMoveRAw(AbstractInstruction * self_in_concretizeMoveRAw);
+static usqInt NoDbgRegParms concretizeMoveRM16r(AbstractInstruction * self_in_concretizeMoveRM16r);
+static usqInt NoDbgRegParms concretizeMoveRMbr(AbstractInstruction * self_in_concretizeMoveRMbr);
static usqInt NoDbgRegParms concretizeMoveRMwr(AbstractInstruction * self_in_concretizeMoveRMwr);
static usqInt NoDbgRegParms concretizeMoveRR(AbstractInstruction * self_in_concretizeMoveRR);
static usqInt NoDbgRegParms concretizeMoveRXbrR(AbstractInstruction * self_in_concretizeMoveRXbrR);
@@ -830,22 +832,22 @@
static usqInt NoDbgRegParms concretizeMulCheckOverflowRR(AbstractInstruction * self_in_concretizeMulCheckOverflowRR);
static usqInt NoDbgRegParms concretizeNegateR(AbstractInstruction * self_in_concretizeNegateR);
static usqInt NoDbgRegParms concretizeNop(AbstractInstruction * self_in_concretizeNop);
-static usqInt NoDbgRegParms concretizeOrCqR(AbstractInstruction * self_in_concretizeOrCqR);
+static sqInt NoDbgRegParms concretizeOrCqR(AbstractInstruction * self_in_concretizeOrCqR);
static usqInt NoDbgRegParms concretizeOrCwR(AbstractInstruction * self_in_concretizeOrCwR);
static usqInt NoDbgRegParms concretizeOrRR(AbstractInstruction * self_in_concretizeOrRR);
static usqInt NoDbgRegParms concretizePopR(AbstractInstruction * self_in_concretizePopR);
static usqInt NoDbgRegParms concretizePrefetchAw(AbstractInstruction * self_in_concretizePrefetchAw);
-static usqInt NoDbgRegParms concretizePushCq(AbstractInstruction * self_in_concretizePushCq);
+static sqInt NoDbgRegParms concretizePushCq(AbstractInstruction * self_in_concretizePushCq);
static usqInt NoDbgRegParms concretizePushCw(AbstractInstruction * self_in_concretizePushCw);
static usqInt NoDbgRegParms concretizePushR(AbstractInstruction * self_in_concretizePushR);
static usqInt NoDbgRegParms concretizeRetN(AbstractInstruction * self_in_concretizeRetN);
static usqInt NoDbgRegParms concretizeStop(AbstractInstruction * self_in_concretizeStop);
static usqInt NoDbgRegParms concretizeSubCheckOverflowCqR(AbstractInstruction * self_in_concretizeSubCheckOverflowCqR);
static usqInt NoDbgRegParms concretizeSubCheckOverflowRR(AbstractInstruction * self_in_concretizeSubCheckOverflowRR);
-static sqInt NoDbgRegParms concretizeSubCqR(AbstractInstruction * self_in_concretizeSubCqR);
+static usqInt NoDbgRegParms concretizeSubCqR(AbstractInstruction * self_in_concretizeSubCqR);
static usqInt NoDbgRegParms concretizeSubCwR(AbstractInstruction * self_in_concretizeSubCwR);
static usqInt NoDbgRegParms concretizeSubRR(AbstractInstruction * self_in_concretizeSubRR);
-static sqInt NoDbgRegParms concretizeTstCqR(AbstractInstruction * self_in_concretizeTstCqR);
+static usqInt NoDbgRegParms concretizeTstCqR(AbstractInstruction * self_in_concretizeTstCqR);
static usqInt NoDbgRegParms concretizeTstCwR(AbstractInstruction * self_in_concretizeTstCwR);
static sqInt NoDbgRegParms concretizeUnimplemented(AbstractInstruction * self_in_concretizeUnimplemented);
static usqInt NoDbgRegParms concretizeXorCwR(AbstractInstruction * self_in_concretizeXorCwR);
@@ -5710,12 +5712,12 @@
generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
{
unsigned char annotation;
- sqInt delta;
+ usqInt delta;
sqInt i;
AbstractInstruction *instruction;
sqInt length;
- sqInt location;
- sqInt mapEntry;
+ usqInt location;
+ usqInt mapEntry;
sqInt maxDelta;
usqInt mcpc;
@@ -10803,8 +10805,6 @@
case BrLongNotEqualRR:
case AndCqR:
case MoveRMwr:
- case MoveMbrR:
- case MoveRMbr:
case MoveMwrR:
case PushCw:
case PushCq:
@@ -10838,7 +10838,10 @@
case SqrtRd:
case MoveRR:
case MoveRdRd:
+ case MoveMbrR:
+ case MoveRMbr:
case MoveM16rR:
+ case MoveRM16r:
return 4;
case Label:
@@ -10966,7 +10969,7 @@
}
/* CogMIPSELCompiler>>#concretizeAddCqR */
-static sqInt NoDbgRegParms
+static usqInt NoDbgRegParms
concretizeAddCqR(AbstractInstruction * self_in_concretizeAddCqR)
{
sqInt aWord;
@@ -11042,7 +11045,7 @@
}
/* CogMIPSELCompiler>>#concretizeAndCqR */
-static sqInt NoDbgRegParms
+static usqInt NoDbgRegParms
concretizeAndCqR(AbstractInstruction * self_in_concretizeAndCqR)
{
sqInt aWord;
@@ -11620,7 +11623,7 @@
the method zone. */
/* CogMIPSELCompiler>>#concretizeCall */
-static usqInt NoDbgRegParms
+static sqInt NoDbgRegParms
concretizeCall(AbstractInstruction * self_in_concretizeCall)
{
return concretizeCallFull(self_in_concretizeCall);
@@ -12097,7 +12100,7 @@
}
/* CogMIPSELCompiler>>#concretizeMoveCqR */
-static sqInt NoDbgRegParms
+static usqInt NoDbgRegParms
concretizeMoveCqR(AbstractInstruction * self_in_concretizeMoveCqR)
{
sqInt aWord;
@@ -12302,6 +12305,42 @@
return ((self_in_concretizeMoveRAw->machineCodeSize) = 12);
}
+ /* CogMIPSELCompiler>>#concretizeMoveRM16r */
+static usqInt NoDbgRegParms
+concretizeMoveRM16r(AbstractInstruction * self_in_concretizeMoveRM16r)
+{
+ sqInt aWord;
+ unsigned long destReg;
+ sqInt offset;
+ unsigned long srcReg;
+
+ srcReg = ((self_in_concretizeMoveRM16r->operands))[0];
+ offset = ((self_in_concretizeMoveRM16r->operands))[1];
+ destReg = ((self_in_concretizeMoveRM16r->operands))[2];
+ /* begin machineCodeAt:put: */
+ aWord = shRbaseoffset(self_in_concretizeMoveRM16r, srcReg, destReg, offset);
+ ((self_in_concretizeMoveRM16r->machineCode))[0 / 4] = aWord;
+ return ((self_in_concretizeMoveRM16r->machineCodeSize) = 4);
+}
+
+ /* CogMIPSELCompiler>>#concretizeMoveRMbr */
+static usqInt NoDbgRegParms
+concretizeMoveRMbr(AbstractInstruction * self_in_concretizeMoveRMbr)
+{
+ sqInt aWord;
+ unsigned long destReg;
+ sqInt offset;
+ unsigned long srcReg;
+
+ srcReg = ((self_in_concretizeMoveRMbr->operands))[0];
+ offset = ((self_in_concretizeMoveRMbr->operands))[1];
+ destReg = ((self_in_concretizeMoveRMbr->operands))[2];
+ /* begin machineCodeAt:put: */
+ aWord = sbRbaseoffset(self_in_concretizeMoveRMbr, srcReg, destReg, offset);
+ ((self_in_concretizeMoveRMbr->machineCode))[0 / 4] = aWord;
+ return ((self_in_concretizeMoveRMbr->machineCodeSize) = 4);
+}
+
/* CogMIPSELCompiler>>#concretizeMoveRMwr */
static usqInt NoDbgRegParms
concretizeMoveRMwr(AbstractInstruction * self_in_concretizeMoveRMwr)
@@ -12489,7 +12528,7 @@
}
/* CogMIPSELCompiler>>#concretizeOrCqR */
-static usqInt NoDbgRegParms
+static sqInt NoDbgRegParms
concretizeOrCqR(AbstractInstruction * self_in_concretizeOrCqR)
{
sqInt aWord;
@@ -12591,7 +12630,7 @@
}
/* CogMIPSELCompiler>>#concretizePushCq */
-static usqInt NoDbgRegParms
+static sqInt NoDbgRegParms
concretizePushCq(AbstractInstruction * self_in_concretizePushCq)
{
return concretizePushCw(self_in_concretizePushCq);
@@ -12754,7 +12793,7 @@
}
/* CogMIPSELCompiler>>#concretizeSubCqR */
-static sqInt NoDbgRegParms
+static usqInt NoDbgRegParms
concretizeSubCqR(AbstractInstruction * self_in_concretizeSubCqR)
{
sqInt aWord;
@@ -12816,7 +12855,7 @@
}
/* CogMIPSELCompiler>>#concretizeTstCqR */
-static sqInt NoDbgRegParms
+static usqInt NoDbgRegParms
concretizeTstCqR(AbstractInstruction * self_in_concretizeTstCqR)
{
sqInt aWord;
@@ -13263,6 +13302,10 @@
concretizeMoveM16rR(self_in_dispatchConcretize);
return;
+ case MoveRM16r:
+ concretizeMoveRM16r(self_in_dispatchConcretize);
+ return;
+
case MoveMwrR:
concretizeMoveMwrR(self_in_dispatchConcretize);
return;
Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c 2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspursrc/vm/cointerp.c 2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
from
- CoInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ CoInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -842,7 +842,7 @@
extern void ensureNoForwardedLiteralsIn(sqInt aMethodObj);
extern usqInt freeStartAddress(void);
extern usqInt getScavengeThreshold(void);
-static sqInt NoDbgRegParms headerWhileForwardingOf(sqInt aCompiledMethodObjOop);
+static sqLong NoDbgRegParms headerWhileForwardingOf(sqInt aCompiledMethodObjOop);
extern sqInt isForwardedClassIndex(sqInt maybeClassIndex);
extern sqInt isImmediateClass(sqInt classObj);
extern sqInt isReallyYoungObject(sqInt objOop);
@@ -2399,7 +2399,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.1636";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1639";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -42051,7 +42051,7 @@
(which shouldn't happen with Spur). */
/* Spur32BitCoMemoryManager>>#headerWhileForwardingOf: */
-static sqInt NoDbgRegParms
+static sqLong NoDbgRegParms
headerWhileForwardingOf(sqInt aCompiledMethodObjOop)
{
assert(!(isForwarded(aCompiledMethodObjOop)));
@@ -48139,7 +48139,14 @@
/* Answer the default amount of memory to allocate for the eden space.
The actual value can be set via vmParameterAt: and/or a preference in the
ini file.
- The shootout tests seem to plateau at 5 or 6Mb */
+ The shootout tests seem to plateau at 5 or 6Mb.
+
+ Both the 32-bit and 64-bit versions use the same 4Mb default. Measuring
+ the simulator on image start-up, the 64-bit system's eden at the same
+ point in start-up (the first copyBits) is only 8% larger in bytes because
+ it allocates
+ 26% fewer objects. Some 21% of the objects in the 32-bit version's eden
+ are large integers and floats that are representable as 64-bit immediates. */
/* SpurMemoryManager>>#defaultEdenBytes */
static sqInt
@@ -58772,7 +58779,7 @@
usqInt prevFree;
usqInt prevFreeChunk;
usqInt prevPrevFree;
- sqInt prevPrevFreeChunk;
+ usqInt prevPrevFreeChunk;
sqInt slotBytes;
sqInt slotBytes1;
usqInt there;
@@ -63467,7 +63474,7 @@
static void
postSnapshot(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- sqInt address;
+ usqInt address;
sqInt bytes;
usqInt freeChunk;
sqInt i;
Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h 2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspursrc/vm/cointerp.h 2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
*/
Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2016-01-16 04:22:18 UTC (rev 3555)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
from
- CoInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ CoInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -845,7 +845,7 @@
extern void ensureNoForwardedLiteralsIn(sqInt aMethodObj);
extern usqInt freeStartAddress(void);
extern usqInt getScavengeThreshold(void);
-static sqInt NoDbgRegParms headerWhileForwardingOf(sqInt aCompiledMethodObjOop);
+static sqLong NoDbgRegParms headerWhileForwardingOf(sqInt aCompiledMethodObjOop);
extern sqInt isForwardedClassIndex(sqInt maybeClassIndex);
extern sqInt isImmediateClass(sqInt classObj);
extern sqInt isReallyYoungObject(sqInt objOop);
@@ -2402,7 +2402,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.1636";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1639";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -42060,7 +42060,7 @@
(which shouldn't happen with Spur). */
/* Spur32BitCoMemoryManager>>#headerWhileForwardingOf: */
-static sqInt NoDbgRegParms
+static sqLong NoDbgRegParms
headerWhileForwardingOf(sqInt aCompiledMethodObjOop)
{
assert(!(isForwarded(aCompiledMethodObjOop)));
@@ -48148,7 +48148,14 @@
/* Answer the default amount of memory to allocate for the eden space.
The actual value can be set via vmParameterAt: and/or a preference in the
ini file.
- The shootout tests seem to plateau at 5 or 6Mb */
+ The shootout tests seem to plateau at 5 or 6Mb.
+
+ Both the 32-bit and 64-bit versions use the same 4Mb default. Measuring
+ the simulator on image start-up, the 64-bit system's eden at the same
+ point in start-up (the first copyBits) is only 8% larger in bytes because
+ it allocates
+ 26% fewer objects. Some 21% of the objects in the 32-bit version's eden
+ are large integers and floats that are representable as 64-bit immediates. */
/* SpurMemoryManager>>#defaultEdenBytes */
static sqInt
@@ -58781,7 +58788,7 @@
usqInt prevFree;
usqInt prevFreeChunk;
usqInt prevPrevFree;
- sqInt prevPrevFreeChunk;
+ usqInt prevPrevFreeChunk;
sqInt slotBytes;
sqInt slotBytes1;
usqInt there;
@@ -63476,7 +63483,7 @@
static void
postSnapshot(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- sqInt address;
+ usqInt address;
sqInt bytes;
usqInt freeChunk;
sqInt i;
Modified: branches/Cog/nsspurstack64src/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstack64src/vm/gcc3x-interp.c 2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspurstack64src/vm/gcc3x-interp.c 2016-01-16 04:22:18 UTC (rev 3555)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
from
- StackInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ StackInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2166,7 +2166,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1636";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1639";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -35537,7 +35537,14 @@
/* Answer the default amount of memory to allocate for the eden space.
The actual value can be set via vmParameterAt: and/or a preference in the
ini file.
- The shootout tests seem to plateau at 5 or 6Mb */
+ The shootout tests seem to plateau at 5 or 6Mb.
+
+ Both the 32-bit and 64-bit versions use the same 4Mb default. Measuring
+ the simulator on image start-up, the 64-bit system's eden at the same
+ point in start-up (the first copyBits) is only 8% larger in bytes because
+ it allocates
+ 26% fewer objects. Some 21% of the objects in the 32-bit version's eden
+ are large integers and floats that are representable as 64-bit immediates. */
/* SpurMemoryManager>>#defaultEdenBytes */
static sqInt
Modified: branches/Cog/nsspurstack64src/vm/interp.c
===================================================================
--- branches/Cog/nsspurstack64src/vm/interp.c 2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspurstack64src/vm/interp.c 2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
from
- StackInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ StackInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2163,7 +2163,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1636";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1639";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -35528,7 +35528,14 @@
/* Answer the default amount of memory to allocate for the eden space.
The actual value can be set via vmParameterAt: and/or a preference in the
ini file.
- The shootout tests seem to plateau at 5 or 6Mb */
+ The shootout tests seem to plateau at 5 or 6Mb.
+
+ Both the 32-bit and 64-bit versions use the same 4Mb default. Measuring
+ the simulator on image start-up, the 64-bit system's eden at the same
+ point in start-up (the first copyBits) is only 8% larger in bytes because
+ it allocates
+ 26% fewer objects. Some 21% of the objects in the 32-bit version's eden
+ are large integers and floats that are representable as 64-bit immediates. */
/* SpurMemoryManager>>#defaultEdenBytes */
static sqInt
Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2016-01-16 04:22:18 UTC (rev 3555)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
from
- StackInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ StackInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2136,7 +2136,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1636";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1639";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -33470,7 +33470,14 @@
/* Answer the default amount of memory to allocate for the eden space.
The actual value can be set via vmParameterAt: and/or a preference in the
ini file.
- The shootout tests seem to plateau at 5 or 6Mb */
+ The shootout tests seem to plateau at 5 or 6Mb.
+
+ Both the 32-bit and 64-bit versions use the same 4Mb default. Measuring
+ the simulator on image start-up, the 64-bit system's eden at the same
+ point in start-up (the first copyBits) is only 8% larger in bytes because
+ it allocates
+ 26% fewer objects. Some 21% of the objects in the 32-bit version's eden
+ are large integers and floats that are representable as 64-bit immediates. */
/* SpurMemoryManager>>#defaultEdenBytes */
static sqInt
Modified: branches/Cog/nsspurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/interp.c 2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspurstacksrc/vm/interp.c 2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
from
- StackInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ StackInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2133,7 +2133,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1636";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1639";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -33461,7 +33461,14 @@
/* Answer the default amount of memory to allocate for the eden space.
The actual value can be set via vmParameterAt: and/or a preference in the
ini file.
- The shootout tests seem to plateau at 5 or 6Mb */
+ The shootout tests seem to plateau at 5 or 6Mb.
+
+ Both the 32-bit and 64-bit versions use the same 4Mb default. Measuring
+ the simulator on image start-up, the 64-bit system's eden at the same
+ point in start-up (the first copyBits) is only 8% larger in bytes because
+ it allocates
+ 26% fewer objects. Some 21% of the objects in the 32-bit version's eden
+ are large integers and floats that are representable as 64-bit immediates. */
/* SpurMemoryManager>>#defaultEdenBytes */
static sqInt
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
- Fri Jan 15 13:53:15 PST 2016
+ Fri Jan 15 20:20:41 PST 2016
Modified: branches/Cog/spur64src/vm/cogit.h
===================================================================
--- branches/Cog/spur64src/vm/cogit.h 2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/spur64src/vm/cogit.h 2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ CCodeGenerator VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
*/
Modified: branches/Cog/spur64src/vm/cogitX64.c
===================================================================
--- branches/Cog/spur64src/vm/cogitX64.c 2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/spur64src/vm/cogitX64.c 2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ CCodeGenerator VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+ StackToRegisterMappingCogit VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -787,7 +787,7 @@
static sqInt NoDbgRegParms genGetClassIndexOfNonImminto(sqInt sourceReg, sqInt destReg);
static sqInt NoDbgRegParms genGetClassObjectOfClassIndexintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg);
static sqInt NoDbgRegParms genGetClassObjectOfintoscratchReginstRegIsReceiver(sqInt instReg, sqInt destReg, sqInt scratchReg, sqInt instRegIsReceiver);
-static AbstractInstruction * NoDbgRegParms genGetClassTagOfintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg);
+static sqInt NoDbgRegParms genGetClassTagOfintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg);
static sqInt NoDbgRegParms genGetCompactClassIndexNonImmOfinto(sqInt instReg, sqInt destReg);
static sqInt NoDbgRegParms genGetDoubleValueOfinto(sqInt srcReg, sqInt destFPReg);
static sqInt NoDbgRegParms genGetFormatOfinto(sqInt srcReg, sqInt destReg);
@@ -833,7 +833,7 @@
static sqInt NoDbgRegParms cmpC32RTempByteSize(AbstractInstruction * self_in_cmpC32RTempByteSize);
static sqInt NoDbgRegParms computeMaximumSize(AbstractInstruction * self_in_computeMaximumSize);
static sqInt NoDbgRegParms computeShiftRRSize(AbstractInstruction * self_in_computeShiftRRSize);
-static usqInt NoDbgRegParms concretizeArithCqRWithROraxOpcode(AbstractInstruction * self_in_concretizeArithCqRWithROraxOpcode, sqInt regOpcode, sqInt raxOpcode);
+static sqInt NoDbgRegParms concretizeArithCqRWithROraxOpcode(AbstractInstruction * self_in_concretizeArithCqRWithROraxOpcode, sqInt regOpcode, sqInt raxOpcode);
static usqInt NoDbgRegParms concretizeFill32(AbstractInstruction * self_in_concretizeFill32);
static usqInt NoDbgRegParms concretizeMoveRX32rR(AbstractInstruction * self_in_concretizeMoveRX32rR);
static usqInt NoDbgRegParms concretizeMoveX32rRR(AbstractInstruction * self_in_concretizeMoveX32rRR);
@@ -917,7 +917,7 @@
static sqInt genLongUnconditionalBackwardJump(void);
static sqInt genLongUnconditionalForwardJump(void);
static sqInt NoDbgRegParms genLookupForPerformNumArgs(sqInt numArgs);
-static AbstractInstruction * NoDbgRegParms genMoveFalseR(sqInt reg);
+static AbstractInstruction * NoDbgRegParms genMoveConstantR(sqInt constant, sqInt reg);
static AbstractInstruction * NoDbgRegParms genMoveTrueR(sqInt reg);
static sqInt NoDbgRegParms genMustBeBooleanTrampolineForcalled(sqInt boolean, char *trampolineName);
static void NoDbgRegParms genPrimReturnEnterCogCodeEnilopmart(sqInt profiling);
@@ -5375,12 +5375,12 @@
generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
{
unsigned char annotation;
- sqInt delta;
+ usqInt delta;
sqInt i;
AbstractInstruction *instruction;
sqInt length;
- sqInt location;
- sqInt mapEntry;
+ usqInt location;
+ usqInt mapEntry;
sqInt maxDelta;
usqInt mcpc;
@@ -9801,7 +9801,7 @@
/* FP jumps are a little weird */
jumpCond = jumpOpcodeGenerator(0);
- /* begin genMoveFalseR: */
+ /* begin genMoveConstant:R: */
constant = falseObject();
if (shouldAnnotateObjectReference(constant)) {
annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -10428,6 +10428,7 @@
jumpNotSI = genJumpNotSmallIntegerscratchReg(Arg0Reg, TempReg);
genShiftAwaySmallIntegerTagsInScratchReg(ClassReg);
@@ Diff output truncated at 50000 characters. @@
More information about the Vm-dev
mailing list