[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