Revision: 3342 Author: eliot Date: 2015-05-14 19:16:22 -0700 (Thu, 14 May 2015) Log Message: ----------- CogVM source as per VMMaker.oscog-eem.1303
Fix the regression with #== in the StackToRegisterMappingCogit; a spilled constant must still be dropped from the stack.
Mark the genEnsure... stubs in CogObjRep as inline and fix a signature to eliminate warnings.
Modified Paths: -------------- branches/Cog/nsspursrc/vm/cogit.h branches/Cog/nsspursrc/vm/cogitARMv5.c branches/Cog/nsspursrc/vm/cogitIA32.c branches/Cog/spursistasrc/vm/cogit.h branches/Cog/spursrc/vm/cogit.h branches/Cog/spursrc/vm/cogitARMv5.c branches/Cog/spursrc/vm/cogitIA32.c branches/Cog/src/vm/cogit.h branches/Cog/src/vm/cogitARMv5.c branches/Cog/src/vm/cogitIA32.c
Property Changed: ---------------- branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nsspursrc/vm/cogit.h =================================================================== --- branches/Cog/nsspursrc/vm/cogit.h 2015-05-14 22:34:53 UTC (rev 3341) +++ branches/Cog/nsspursrc/vm/cogit.h 2015-05-15 02:16:22 UTC (rev 3342) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 + CCodeGenerator VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa */
Modified: branches/Cog/nsspursrc/vm/cogitARMv5.c =================================================================== --- branches/Cog/nsspursrc/vm/cogitARMv5.c 2015-05-14 22:34:53 UTC (rev 3341) +++ branches/Cog/nsspursrc/vm/cogitARMv5.c 2015-05-15 02:16:22 UTC (rev 3342) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 + CCodeGenerator VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa from - StackToRegisterMappingCogit VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 + StackToRegisterMappingCogit VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa " __DATE__ ; char *__cogitBuildInfo = __buildInfo;
@@ -21686,7 +21686,7 @@ sqInt constant2; AbstractInstruction *jumpEqual; AbstractInstruction *jumpNotEqual; - AbstractInstruction * label; + AbstractInstruction *label;
/* begin Label */ label = genoperandoperand(Label, (labelCounter += 1), bytecodePC); @@ -23943,6 +23943,10 @@ else { argReg1 = allocateRegForStackEntryAtnotConflictingWith(0, 0); popToReg(ssTop(), argReg1); + if (((ssValue(1))->spilled)) { + /* begin AddCq:R: */ + genoperandoperand(AddCqR, BytesPerWord, SPReg); + } } } else {
Modified: branches/Cog/nsspursrc/vm/cogitIA32.c =================================================================== --- branches/Cog/nsspursrc/vm/cogitIA32.c 2015-05-14 22:34:53 UTC (rev 3341) +++ branches/Cog/nsspursrc/vm/cogitIA32.c 2015-05-15 02:16:22 UTC (rev 3342) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 + CCodeGenerator VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa from - StackToRegisterMappingCogit VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 + StackToRegisterMappingCogit VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa " __DATE__ ; char *__cogitBuildInfo = __buildInfo;
@@ -20444,7 +20444,7 @@ sqInt constant2; AbstractInstruction *jumpEqual; AbstractInstruction *jumpNotEqual; - AbstractInstruction * label; + AbstractInstruction *label;
/* begin Label */ label = genoperandoperand(Label, (labelCounter += 1), bytecodePC); @@ -22699,6 +22699,10 @@ else { argReg1 = allocateRegForStackEntryAtnotConflictingWith(0, 0); popToReg(ssTop(), argReg1); + if (((ssValue(1))->spilled)) { + /* begin AddCq:R: */ + genoperandoperand(AddCqR, BytesPerWord, SPReg); + } } } else {
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h ___________________________________________________________________ Modified: checkindate - Thu May 14 15:34:28 PDT 2015 + Thu May 14 19:15:55 PDT 2015
Modified: branches/Cog/spursistasrc/vm/cogit.h =================================================================== --- branches/Cog/spursistasrc/vm/cogit.h 2015-05-14 22:34:53 UTC (rev 3341) +++ branches/Cog/spursistasrc/vm/cogit.h 2015-05-15 02:16:22 UTC (rev 3342) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 + CCodeGenerator VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa */
Modified: branches/Cog/spursrc/vm/cogit.h =================================================================== --- branches/Cog/spursrc/vm/cogit.h 2015-05-14 22:34:53 UTC (rev 3341) +++ branches/Cog/spursrc/vm/cogit.h 2015-05-15 02:16:22 UTC (rev 3342) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 + CCodeGenerator VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa */
Modified: branches/Cog/spursrc/vm/cogitARMv5.c =================================================================== --- branches/Cog/spursrc/vm/cogitARMv5.c 2015-05-14 22:34:53 UTC (rev 3341) +++ branches/Cog/spursrc/vm/cogitARMv5.c 2015-05-15 02:16:22 UTC (rev 3342) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 + CCodeGenerator VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa from - StackToRegisterMappingCogit VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 + StackToRegisterMappingCogit VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa " __DATE__ ; char *__cogitBuildInfo = __buildInfo;
@@ -19634,7 +19634,7 @@ sqInt constant2; AbstractInstruction *jumpEqual; AbstractInstruction *jumpNotEqual; - AbstractInstruction * label; + AbstractInstruction *label;
/* begin Label */ label = genoperandoperand(Label, (labelCounter += 1), bytecodePC); @@ -21693,6 +21693,10 @@ else { argReg1 = allocateRegForStackEntryAtnotConflictingWith(0, 0); popToReg(ssTop(), argReg1); + if (((ssValue(1))->spilled)) { + /* begin AddCq:R: */ + genoperandoperand(AddCqR, BytesPerWord, SPReg); + } } } else {
Modified: branches/Cog/spursrc/vm/cogitIA32.c =================================================================== --- branches/Cog/spursrc/vm/cogitIA32.c 2015-05-14 22:34:53 UTC (rev 3341) +++ branches/Cog/spursrc/vm/cogitIA32.c 2015-05-15 02:16:22 UTC (rev 3342) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 + CCodeGenerator VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa from - StackToRegisterMappingCogit VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 + StackToRegisterMappingCogit VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa " __DATE__ ; char *__cogitBuildInfo = __buildInfo;
@@ -18381,7 +18381,7 @@ sqInt constant2; AbstractInstruction *jumpEqual; AbstractInstruction *jumpNotEqual; - AbstractInstruction * label; + AbstractInstruction *label;
/* begin Label */ label = genoperandoperand(Label, (labelCounter += 1), bytecodePC); @@ -20438,6 +20438,10 @@ else { argReg1 = allocateRegForStackEntryAtnotConflictingWith(0, 0); popToReg(ssTop(), argReg1); + if (((ssValue(1))->spilled)) { + /* begin AddCq:R: */ + genoperandoperand(AddCqR, BytesPerWord, SPReg); + } } } else {
Modified: branches/Cog/src/vm/cogit.h =================================================================== --- branches/Cog/src/vm/cogit.h 2015-05-14 22:34:53 UTC (rev 3341) +++ branches/Cog/src/vm/cogit.h 2015-05-15 02:16:22 UTC (rev 3342) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 + CCodeGenerator VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa */
Modified: branches/Cog/src/vm/cogitARMv5.c =================================================================== --- branches/Cog/src/vm/cogitARMv5.c 2015-05-14 22:34:53 UTC (rev 3341) +++ branches/Cog/src/vm/cogitARMv5.c 2015-05-15 02:16:22 UTC (rev 3342) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 + CCodeGenerator VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa from - StackToRegisterMappingCogit VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 + StackToRegisterMappingCogit VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa " __DATE__ ; char *__cogitBuildInfo = __buildInfo;
@@ -799,9 +799,6 @@ static sqInt checkValidObjectReference(sqInt anOop) NoDbgRegParms; static sqInt createsClosuresInline(void); static AbstractInstruction * genCmpClassFloatCompactIndexR(sqInt reg) NoDbgRegParms; -static sqInt genEnsureObjInRegNotForwardedscratchReg(sqInt reg, sqInt scratch) NoDbgRegParms; -static sqInt genEnsureOopInRegNotForwardedscratchReg(sqInt reg, sqInt scratch) NoDbgRegParms; -static sqInt genEnsureOopInRegNotForwardedscratchRegjumpBackTo(sqInt reg, sqInt scratch, sqInt instruction) NoDbgRegParms; static sqInt genInnerPrimitiveAsCharacterinReg(sqInt retNOffset, sqInt reg) NoDbgRegParms; static sqInt genInnerPrimitiveAtPut(sqInt retNoffset) NoDbgRegParms; static sqInt genInnerPrimitiveCharacterValue(sqInt retNOffset) NoDbgRegParms; @@ -13963,36 +13960,6 @@ }
-/* Make sure that the object in reg is not forwarded. By default there is - nothing to do. Subclasses for memory managers that forward will override. */ - -static sqInt -genEnsureObjInRegNotForwardedscratchReg(sqInt reg, sqInt scratch) -{ - return 0; -} - - -/* Make sure that the oop in reg is not forwarded. By default there is - nothing to do. Subclasses for memory managers that forward will override. */ - -static sqInt -genEnsureOopInRegNotForwardedscratchReg(sqInt reg, sqInt scratch) -{ - return 0; -} - - -/* Make sure that the oop in reg is not forwarded. By default there is - nothing to do. Subclasses for memory managers that forward will override. */ - -static sqInt -genEnsureOopInRegNotForwardedscratchRegjumpBackTo(sqInt reg, sqInt scratch, sqInt instruction) -{ - return 0; -} - - /* subclasses override if they can */
static sqInt @@ -17765,7 +17732,7 @@ sqInt constant2; AbstractInstruction *jumpEqual; AbstractInstruction *jumpNotEqual; - AbstractInstruction * label; + AbstractInstruction *label;
/* begin Label */ label = genoperandoperand(Label, (labelCounter += 1), bytecodePC); @@ -17802,10 +17769,10 @@ /* begin JumpZero: */ jumpEqual = genoperand(JumpZero, ((sqInt)0)); if (!argIsConstant) { - genEnsureOopInRegNotForwardedscratchRegjumpBackTo(argReg, TempReg, label); + 0; } if (!rcvrIsConstant) { - genEnsureOopInRegNotForwardedscratchRegjumpBackTo(rcvrReg, TempReg, label); + 0; } /* begin genMoveFalseR: */ /* begin genMoveConstant:R: */ @@ -18138,7 +18105,7 @@ l1: /* end annotationForSendTable: */; if ((annotation == IsSuperSend) || (0)) { - genEnsureOopInRegNotForwardedscratchReg(ReceiverResultReg, TempReg); + 0; } if (numArgs > 2) { /* begin MoveCq:R: */ @@ -19005,7 +18972,7 @@ /* begin MoveCq:R: */ genoperandoperand(MoveCqR, association, TempReg); } - genEnsureObjInRegNotForwardedscratchReg(TempReg, freeReg); + 0; genLoadSlotsourceRegdestReg(ValueIndex, TempReg, freeReg); ssPushRegister(freeReg); return 0; @@ -19730,7 +19697,7 @@ /* begin MoveCq:R: */ genoperandoperand(MoveCqR, association, assocReg); } - genEnsureObjInRegNotForwardedscratchReg(assocReg, TempReg); + 0; ssStorePoptoReg(popBoolean, TempReg); if (traceStores > 0) { if (!(assocReg == ReceiverResultReg)) { @@ -19759,7 +19726,7 @@ /* begin MoveCq:R: */ genoperandoperand(MoveCqR, association, ReceiverResultReg); } - genEnsureObjInRegNotForwardedscratchReg(ReceiverResultReg, TempReg); + 0; if (traceStores > 0) { /* begin MoveR:R: */ genoperandoperand(MoveRR, topReg, TempReg); @@ -20137,6 +20104,10 @@ else { argReg1 = allocateRegForStackEntryAtnotConflictingWith(0, 0); popToReg(ssTop(), argReg1); + if (((ssValue(1))->spilled)) { + /* begin AddCq:R: */ + genoperandoperand(AddCqR, BytesPerWord, SPReg); + } } } else {
Modified: branches/Cog/src/vm/cogitIA32.c =================================================================== --- branches/Cog/src/vm/cogitIA32.c 2015-05-14 22:34:53 UTC (rev 3341) +++ branches/Cog/src/vm/cogitIA32.c 2015-05-15 02:16:22 UTC (rev 3342) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 + CCodeGenerator VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa from - StackToRegisterMappingCogit VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 + StackToRegisterMappingCogit VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1301 uuid: ce7e12a9-6ef4-412e-942d-8b9d3b3b2980 " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1303 uuid: d796217a-dcf4-47eb-9a63-579a7e69a7fa " __DATE__ ; char *__cogitBuildInfo = __buildInfo;
@@ -741,9 +741,6 @@ static sqInt checkValidObjectReference(sqInt anOop) NoDbgRegParms; static sqInt createsClosuresInline(void); static AbstractInstruction * genCmpClassFloatCompactIndexR(sqInt reg) NoDbgRegParms; -static sqInt genEnsureObjInRegNotForwardedscratchReg(sqInt reg, sqInt scratch) NoDbgRegParms; -static sqInt genEnsureOopInRegNotForwardedscratchReg(sqInt reg, sqInt scratch) NoDbgRegParms; -static sqInt genEnsureOopInRegNotForwardedscratchRegjumpBackTo(sqInt reg, sqInt scratch, sqInt instruction) NoDbgRegParms; static sqInt genInnerPrimitiveAsCharacterinReg(sqInt retNOffset, sqInt reg) NoDbgRegParms; static sqInt genInnerPrimitiveAtPut(sqInt retNoffset) NoDbgRegParms; static sqInt genInnerPrimitiveCharacterValue(sqInt retNOffset) NoDbgRegParms; @@ -12727,36 +12724,6 @@ }
-/* Make sure that the object in reg is not forwarded. By default there is - nothing to do. Subclasses for memory managers that forward will override. */ - -static sqInt -genEnsureObjInRegNotForwardedscratchReg(sqInt reg, sqInt scratch) -{ - return 0; -} - - -/* Make sure that the oop in reg is not forwarded. By default there is - nothing to do. Subclasses for memory managers that forward will override. */ - -static sqInt -genEnsureOopInRegNotForwardedscratchReg(sqInt reg, sqInt scratch) -{ - return 0; -} - - -/* Make sure that the oop in reg is not forwarded. By default there is - nothing to do. Subclasses for memory managers that forward will override. */ - -static sqInt -genEnsureOopInRegNotForwardedscratchRegjumpBackTo(sqInt reg, sqInt scratch, sqInt instruction) -{ - return 0; -} - - /* subclasses override if they can */
static sqInt @@ -16526,7 +16493,7 @@ sqInt constant2; AbstractInstruction *jumpEqual; AbstractInstruction *jumpNotEqual; - AbstractInstruction * label; + AbstractInstruction *label;
/* begin Label */ label = genoperandoperand(Label, (labelCounter += 1), bytecodePC); @@ -16563,10 +16530,10 @@ /* begin JumpZero: */ jumpEqual = genoperand(JumpZero, ((sqInt)0)); if (!argIsConstant) { - genEnsureOopInRegNotForwardedscratchRegjumpBackTo(argReg, TempReg, label); + 0; } if (!rcvrIsConstant) { - genEnsureOopInRegNotForwardedscratchRegjumpBackTo(rcvrReg, TempReg, label); + 0; } /* begin genMoveFalseR: */ /* begin genMoveConstant:R: */ @@ -16898,7 +16865,7 @@ l1: /* end annotationForSendTable: */; if ((annotation == IsSuperSend) || (0)) { - genEnsureOopInRegNotForwardedscratchReg(ReceiverResultReg, TempReg); + 0; } if (numArgs > 2) { /* begin MoveCq:R: */ @@ -17763,7 +17730,7 @@ /* begin MoveCq:R: */ genoperandoperand(MoveCqR, association, TempReg); } - genEnsureObjInRegNotForwardedscratchReg(TempReg, freeReg); + 0; genLoadSlotsourceRegdestReg(ValueIndex, TempReg, freeReg); ssPushRegister(freeReg); return 0; @@ -18489,7 +18456,7 @@ /* begin MoveCq:R: */ genoperandoperand(MoveCqR, association, assocReg); } - genEnsureObjInRegNotForwardedscratchReg(assocReg, TempReg); + 0; ssStorePoptoReg(popBoolean, TempReg); if (traceStores > 0) { if (!(assocReg == ReceiverResultReg)) { @@ -18518,7 +18485,7 @@ /* begin MoveCq:R: */ genoperandoperand(MoveCqR, association, ReceiverResultReg); } - genEnsureObjInRegNotForwardedscratchReg(ReceiverResultReg, TempReg); + 0; if (traceStores > 0) { /* begin MoveR:R: */ genoperandoperand(MoveRR, topReg, TempReg); @@ -18881,6 +18848,10 @@ else { argReg1 = allocateRegForStackEntryAtnotConflictingWith(0, 0); popToReg(ssTop(), argReg1); + if (((ssValue(1))->spilled)) { + /* begin AddCq:R: */ + genoperandoperand(AddCqR, BytesPerWord, SPReg); + } } } else {
vm-dev@lists.squeakfoundation.org