[Vm-dev] [commit][3342] CogVM source as per VMMaker.oscog-eem.1303

commits at squeakvm.org commits at squeakvm.org
Fri May 15 02:16:24 UTC 2015


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 {



More information about the Vm-dev mailing list