[Vm-dev] [commit][3383] CogVM source as per VMMaker.oscog-eem.1366

commits at squeakvm.org commits at squeakvm.org
Fri Jun 19 18:13:43 UTC 2015


Revision: 3383
Author:   eliot
Date:     2015-06-19 11:13:41 -0700 (Fri, 19 Jun 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1366

ARM Cogit:
Revise the outOfLineLiteralOpcodeLimit since more thna one hardware instruction
can be emitted per abstracxt opcode.  The old code fell foul of IntegerTest>>
#testIntegerPadding which contains many literals but no jumps or returns.

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/spursistasrc/vm/cogitARMv5.c
    branches/Cog/spursistasrc/vm/cogitIA32.c
    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-06-19 17:08:36 UTC (rev 3382)
+++ branches/Cog/nsspursrc/vm/cogit.h	2015-06-19 18:13:41 UTC (rev 3383)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	CCodeGenerator VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
  */
 
 

Modified: branches/Cog/nsspursrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitARMv5.c	2015-06-19 17:08:36 UTC (rev 3382)
+++ branches/Cog/nsspursrc/vm/cogitARMv5.c	2015-06-19 18:13:41 UTC (rev 3383)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	CCodeGenerator VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -10619,12 +10619,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;
 
@@ -19629,13 +19629,15 @@
 
 
 /*	The maximum offset in a LDR is (1<<12)-1, or (1<<10)-1 instructions.
-	Be a little conservative. */
+	Be conservative. The issue is that one abstract instruction can emit
+	multiple hardware instructions so we assume a 2 to 1 worst case of
+	hardware instructions to abstract opcodes.. */
 
 	/* CogOutOfLineLiteralsARMCompiler>>#outOfLineLiteralOpcodeLimit */
 static sqInt
 outOfLineLiteralOpcodeLimit(AbstractInstruction * self_in_outOfLineLiteralOpcodeLimit)
 {
-	return (1 << (12 - 2)) - 4;
+	return (1 << ((12 - 2) - 1)) - 1;
 }
 
 

Modified: branches/Cog/nsspursrc/vm/cogitIA32.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitIA32.c	2015-06-19 17:08:36 UTC (rev 3382)
+++ branches/Cog/nsspursrc/vm/cogitIA32.c	2015-06-19 18:13:41 UTC (rev 3383)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	CCodeGenerator VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -9964,12 +9964,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;
 


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Fri Jun 19 10:06:24 PDT 2015
   + Fri Jun 19 11:12:50 PDT 2015

Modified: branches/Cog/spursistasrc/vm/cogit.h
===================================================================
--- branches/Cog/spursistasrc/vm/cogit.h	2015-06-19 17:08:36 UTC (rev 3382)
+++ branches/Cog/spursistasrc/vm/cogit.h	2015-06-19 18:13:41 UTC (rev 3383)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	CCodeGenerator VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
  */
 
 

Modified: branches/Cog/spursistasrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/spursistasrc/vm/cogitARMv5.c	2015-06-19 17:08:36 UTC (rev 3382)
+++ branches/Cog/spursistasrc/vm/cogitARMv5.c	2015-06-19 18:13:41 UTC (rev 3383)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	CCodeGenerator VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
    from
-	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
  */
-static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88 " __DATE__ ;
+static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -10476,12 +10476,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;
 
@@ -18752,13 +18752,15 @@
 
 
 /*	The maximum offset in a LDR is (1<<12)-1, or (1<<10)-1 instructions.
-	Be a little conservative. */
+	Be conservative. The issue is that one abstract instruction can emit
+	multiple hardware instructions so we assume a 2 to 1 worst case of
+	hardware instructions to abstract opcodes.. */
 
 	/* CogOutOfLineLiteralsARMCompiler>>#outOfLineLiteralOpcodeLimit */
 static sqInt
 outOfLineLiteralOpcodeLimit(AbstractInstruction * self_in_outOfLineLiteralOpcodeLimit)
 {
-	return (1 << (12 - 2)) - 4;
+	return (1 << ((12 - 2) - 1)) - 1;
 }
 
 

Modified: branches/Cog/spursistasrc/vm/cogitIA32.c
===================================================================
--- branches/Cog/spursistasrc/vm/cogitIA32.c	2015-06-19 17:08:36 UTC (rev 3382)
+++ branches/Cog/spursistasrc/vm/cogitIA32.c	2015-06-19 18:13:41 UTC (rev 3383)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	CCodeGenerator VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
    from
-	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
  */
-static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88 " __DATE__ ;
+static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 

Modified: branches/Cog/spursrc/vm/cogit.h
===================================================================
--- branches/Cog/spursrc/vm/cogit.h	2015-06-19 17:08:36 UTC (rev 3382)
+++ branches/Cog/spursrc/vm/cogit.h	2015-06-19 18:13:41 UTC (rev 3383)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	CCodeGenerator VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
  */
 
 

Modified: branches/Cog/spursrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/spursrc/vm/cogitARMv5.c	2015-06-19 17:08:36 UTC (rev 3382)
+++ branches/Cog/spursrc/vm/cogitARMv5.c	2015-06-19 18:13:41 UTC (rev 3383)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	CCodeGenerator VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -10124,12 +10124,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;
 
@@ -18038,13 +18038,15 @@
 
 
 /*	The maximum offset in a LDR is (1<<12)-1, or (1<<10)-1 instructions.
-	Be a little conservative. */
+	Be conservative. The issue is that one abstract instruction can emit
+	multiple hardware instructions so we assume a 2 to 1 worst case of
+	hardware instructions to abstract opcodes.. */
 
 	/* CogOutOfLineLiteralsARMCompiler>>#outOfLineLiteralOpcodeLimit */
 static sqInt
 outOfLineLiteralOpcodeLimit(AbstractInstruction * self_in_outOfLineLiteralOpcodeLimit)
 {
-	return (1 << (12 - 2)) - 4;
+	return (1 << ((12 - 2) - 1)) - 1;
 }
 
 

Modified: branches/Cog/spursrc/vm/cogitIA32.c
===================================================================
--- branches/Cog/spursrc/vm/cogitIA32.c	2015-06-19 17:08:36 UTC (rev 3382)
+++ branches/Cog/spursrc/vm/cogitIA32.c	2015-06-19 18:13:41 UTC (rev 3383)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	CCodeGenerator VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -9457,12 +9457,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;
 

Modified: branches/Cog/src/vm/cogit.h
===================================================================
--- branches/Cog/src/vm/cogit.h	2015-06-19 17:08:36 UTC (rev 3382)
+++ branches/Cog/src/vm/cogit.h	2015-06-19 18:13:41 UTC (rev 3383)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	CCodeGenerator VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
  */
 
 

Modified: branches/Cog/src/vm/cogitARMv5.c
===================================================================
--- branches/Cog/src/vm/cogitARMv5.c	2015-06-19 17:08:36 UTC (rev 3382)
+++ branches/Cog/src/vm/cogitARMv5.c	2015-06-19 18:13:41 UTC (rev 3383)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	CCodeGenerator VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -16026,13 +16026,15 @@
 
 
 /*	The maximum offset in a LDR is (1<<12)-1, or (1<<10)-1 instructions.
-	Be a little conservative. */
+	Be conservative. The issue is that one abstract instruction can emit
+	multiple hardware instructions so we assume a 2 to 1 worst case of
+	hardware instructions to abstract opcodes.. */
 
 	/* CogOutOfLineLiteralsARMCompiler>>#outOfLineLiteralOpcodeLimit */
 static sqInt
 outOfLineLiteralOpcodeLimit(AbstractInstruction * self_in_outOfLineLiteralOpcodeLimit)
 {
-	return (1 << (12 - 2)) - 4;
+	return (1 << ((12 - 2) - 1)) - 1;
 }
 
 

Modified: branches/Cog/src/vm/cogitIA32.c
===================================================================
--- branches/Cog/src/vm/cogitIA32.c	2015-06-19 17:08:36 UTC (rev 3382)
+++ branches/Cog/src/vm/cogitIA32.c	2015-06-19 18:13:41 UTC (rev 3383)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	CCodeGenerator VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1366 uuid: caed09f8-bf82-445d-b581-1d65e2b6882c " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -9252,12 +9252,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;
 



More information about the Vm-dev mailing list