[Vm-dev] [commit][3025] CogVM source as per VMMaker.oscog-eem.792

commits at squeakvm.org commits at squeakvm.org
Wed Jul 2 03:12:28 UTC 2014


Revision: 3025
Author:   eliot
Date:     2014-07-01 20:12:22 -0700 (Tue, 01 Jul 2014)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.792

Fix potential liveness of ReceiverResultReg across counting
jumps by reloading ReceiverResultReg before returning from
the trampoline through which ceCounterTripped: is called.

Modified Paths:
--------------
    branches/Cog/sistasrc/vm/cogit.c
    branches/Cog/sistasrc/vm/cogit.h
    branches/Cog/sistasrc/vm/cogmethod.h
    branches/Cog/spursistasrc/vm/cogit.c
    branches/Cog/spursistasrc/vm/cogit.h
    branches/Cog/spursistasrc/vm/cogmethod.h

Property Changed:
----------------
    branches/Cog/platforms/Cross/vm/sqSCCSVersion.h


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Tue Jul  1 08:38:13 PDT 2014
   + Tue Jul  1 20:11:53 PDT 2014

Modified: branches/Cog/sistasrc/vm/cogit.c
===================================================================
--- branches/Cog/sistasrc/vm/cogit.c	2014-07-01 15:39:10 UTC (rev 3024)
+++ branches/Cog/sistasrc/vm/cogit.c	2014-07-02 03:12:22 UTC (rev 3025)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.790 uuid: 1c0587fb-44ad-43f6-8bfd-2a0f91e21a59
+	CCodeGenerator VMMaker.oscog-eem.792 uuid: 9d8d23c8-c855-48a6-8bdd-402765c01a99
    from
-	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.790 uuid: 1c0587fb-44ad-43f6-8bfd-2a0f91e21a59
+	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.792 uuid: 9d8d23c8-c855-48a6-8bdd-402765c01a99
  */
-static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.790 uuid: 1c0587fb-44ad-43f6-8bfd-2a0f91e21a59 " __DATE__ ;
+static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.792 uuid: 9d8d23c8-c855-48a6-8bdd-402765c01a99 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -12864,19 +12864,21 @@
 genMustBeBooleanTrampolineForcalled(sqInt boolean, char *trampolineName)
 {
     AbstractInstruction *jumpMBB;
-    sqInt reg1;
 
 	opcodeIndex = 0;
 	/* begin CmpCq:R: */
 	genoperandoperand(CmpCqR, 0, SendNumArgsReg);
 	/* begin JumpZero: */
 	jumpMBB = genoperand(JumpZero, ((sqInt)0));
-	compileTrampolineFornumArgsargargargargsaveRegspushLinkRegresultReg(ceCounterTripped, 1, TempReg, null, null, null, 0, 1, null);
-	if ((cResultRegister(backEnd)) != TempReg) {
-		/* begin MoveR:R: */
-		reg1 = cResultRegister(backEnd);
-		genoperandoperand(MoveRR, reg1, TempReg);
-	}
+	
+	genSmalltalkToCStackSwitch();
+	compileCallFornumArgsargargargargresultRegsaveRegs(ceCounterTripped, 1, TempReg, null, null, null, TempReg, 0);
+	genLoadStackPointers(backEnd);
+	
+	/* begin MoveMw:r:R: */
+	genoperandoperandoperand(MoveMwrR, FoxMFReceiver, FPReg, ReceiverResultReg);
+	/* begin RetN: */
+	genoperand(RetN, 0);
 	assert(!(shouldAnnotateObjectReference(boolean)));
 	jmpTarget(jumpMBB, gAddCqR(boolean, TempReg));
 	return genTrampolineForcallednumArgsargargargargsaveRegspushLinkRegresultRegappendOpcodes(ceSendMustBeBoolean, trampolineName, 1, TempReg, null, null, null, 0, 1, null, 1);

Modified: branches/Cog/sistasrc/vm/cogit.h
===================================================================
--- branches/Cog/sistasrc/vm/cogit.h	2014-07-01 15:39:10 UTC (rev 3024)
+++ branches/Cog/sistasrc/vm/cogit.h	2014-07-02 03:12:22 UTC (rev 3025)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.790 uuid: 1c0587fb-44ad-43f6-8bfd-2a0f91e21a59
+	CCodeGenerator VMMaker.oscog-eem.792 uuid: 9d8d23c8-c855-48a6-8bdd-402765c01a99
  */
 
 

Modified: branches/Cog/sistasrc/vm/cogmethod.h
===================================================================
--- branches/Cog/sistasrc/vm/cogmethod.h	2014-07-01 15:39:10 UTC (rev 3024)
+++ branches/Cog/sistasrc/vm/cogmethod.h	2014-07-02 03:12:22 UTC (rev 3025)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.790 uuid: 1c0587fb-44ad-43f6-8bfd-2a0f91e21a59
+	CCodeGenerator VMMaker.oscog-eem.792 uuid: 9d8d23c8-c855-48a6-8bdd-402765c01a99
  */
 
 typedef struct {

Modified: branches/Cog/spursistasrc/vm/cogit.c
===================================================================
--- branches/Cog/spursistasrc/vm/cogit.c	2014-07-01 15:39:10 UTC (rev 3024)
+++ branches/Cog/spursistasrc/vm/cogit.c	2014-07-02 03:12:22 UTC (rev 3025)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.790 uuid: 1c0587fb-44ad-43f6-8bfd-2a0f91e21a59
+	CCodeGenerator VMMaker.oscog-eem.792 uuid: 9d8d23c8-c855-48a6-8bdd-402765c01a99
    from
-	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.790 uuid: 1c0587fb-44ad-43f6-8bfd-2a0f91e21a59
+	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.792 uuid: 9d8d23c8-c855-48a6-8bdd-402765c01a99
  */
-static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.790 uuid: 1c0587fb-44ad-43f6-8bfd-2a0f91e21a59 " __DATE__ ;
+static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.792 uuid: 9d8d23c8-c855-48a6-8bdd-402765c01a99 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -13959,19 +13959,21 @@
 genMustBeBooleanTrampolineForcalled(sqInt boolean, char *trampolineName)
 {
     AbstractInstruction *jumpMBB;
-    sqInt reg1;
 
 	opcodeIndex = 0;
 	/* begin CmpCq:R: */
 	genoperandoperand(CmpCqR, 0, SendNumArgsReg);
 	/* begin JumpZero: */
 	jumpMBB = genoperand(JumpZero, ((sqInt)0));
-	compileTrampolineFornumArgsargargargargsaveRegspushLinkRegresultReg(ceCounterTripped, 1, TempReg, null, null, null, 0, 1, null);
-	if ((cResultRegister(backEnd)) != TempReg) {
-		/* begin MoveR:R: */
-		reg1 = cResultRegister(backEnd);
-		genoperandoperand(MoveRR, reg1, TempReg);
-	}
+	
+	genSmalltalkToCStackSwitch();
+	compileCallFornumArgsargargargargresultRegsaveRegs(ceCounterTripped, 1, TempReg, null, null, null, TempReg, 0);
+	genLoadStackPointers(backEnd);
+	
+	/* begin MoveMw:r:R: */
+	genoperandoperandoperand(MoveMwrR, FoxMFReceiver, FPReg, ReceiverResultReg);
+	/* begin RetN: */
+	genoperand(RetN, 0);
 	assert(!(shouldAnnotateObjectReference(boolean)));
 	jmpTarget(jumpMBB, gAddCqR(boolean, TempReg));
 	return genTrampolineForcallednumArgsargargargargsaveRegspushLinkRegresultRegappendOpcodes(ceSendMustBeBoolean, trampolineName, 1, TempReg, null, null, null, 0, 1, null, 1);

Modified: branches/Cog/spursistasrc/vm/cogit.h
===================================================================
--- branches/Cog/spursistasrc/vm/cogit.h	2014-07-01 15:39:10 UTC (rev 3024)
+++ branches/Cog/spursistasrc/vm/cogit.h	2014-07-02 03:12:22 UTC (rev 3025)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.790 uuid: 1c0587fb-44ad-43f6-8bfd-2a0f91e21a59
+	CCodeGenerator VMMaker.oscog-eem.792 uuid: 9d8d23c8-c855-48a6-8bdd-402765c01a99
  */
 
 

Modified: branches/Cog/spursistasrc/vm/cogmethod.h
===================================================================
--- branches/Cog/spursistasrc/vm/cogmethod.h	2014-07-01 15:39:10 UTC (rev 3024)
+++ branches/Cog/spursistasrc/vm/cogmethod.h	2014-07-02 03:12:22 UTC (rev 3025)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.790 uuid: 1c0587fb-44ad-43f6-8bfd-2a0f91e21a59
+	CCodeGenerator VMMaker.oscog-eem.792 uuid: 9d8d23c8-c855-48a6-8bdd-402765c01a99
  */
 
 typedef struct {



More information about the Vm-dev mailing list