[Vm-dev] [commit][3336] CogVM source as per VMMaker.oscog-eem.1299
commits at squeakvm.org
commits at squeakvm.org
Tue May 12 01:25:14 UTC 2015
Revision: 3336
Author: eliot
Date: 2015-05-11 18:25:11 -0700 (Mon, 11 May 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1299
Clarify how to specify variadic primitives in the Cogit's primitive table
initializer (it had confused me enough to cause a regression).
Fix the regression in genPrmitiveClass.
Implement the stream primtiives using genFastPrimFail
which should speed up the stream prims noticeably.
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-11 02:29:34 UTC (rev 3335)
+++ branches/Cog/nsspursrc/vm/cogit.h 2015-05-12 01:25:11 UTC (rev 3336)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
+ CCodeGenerator VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef
*/
Modified: branches/Cog/nsspursrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitARMv5.c 2015-05-11 02:29:34 UTC (rev 3335)
+++ branches/Cog/nsspursrc/vm/cogitARMv5.c 2015-05-12 01:25:11 UTC (rev 3336)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1296 uuid: 264a71ca-50a1-4e84-96f4-dcb1c571859b
+ CCodeGenerator VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.1296 uuid: 264a71ca-50a1-4e84-96f4-dcb1c571859b
+ StackToRegisterMappingCogit VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1296 uuid: 264a71ca-50a1-4e84-96f4-dcb1c571859b " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -12719,11 +12719,11 @@
{ genPrimitiveSize, 0, 0 },
{ genPrimitiveStringAt, 1, 0 },
{ genPrimitiveStringAtPut, 2, 0 },
+ { genFastPrimFail, -1, 0 },
+ { genFastPrimFail, -1, 0 },
+ { genFastPrimFail, -1, 0 },
{ 0, -1, 0 },
{ 0, -1, 0 },
- { 0, -1, 0 },
- { 0, -1, 0 },
- { 0, -1, 0 },
{ genPrimitiveNew, -1, 0 },
{ genPrimitiveNewWithArg, -1, 0 },
{ 0, -1, 0 },
@@ -22493,19 +22493,23 @@
: compileFallbackToInterpreterPrimitive());
}
+
+/* Primitive class must be variadic for objectClass: */
+
static sqInt
genPrimitiveClass(void)
{
sqInt reg;
- reg = ReceiverResultReg;
if (methodOrBlockNumArgs > 0) {
if (methodOrBlockNumArgs > 1) {
return compileFallbackToInterpreterPrimitive();
}
reg = Arg0Reg;
}
-
+ else {
+ reg = ReceiverResultReg;
+ }
if ((genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ReceiverResultReg, TempReg, methodOrBlockNumArgs == 0)) == BadRegisterSet) {
genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ClassReg, TempReg, methodOrBlockNumArgs == 0);
/* begin MoveR:R: */
Modified: branches/Cog/nsspursrc/vm/cogitIA32.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitIA32.c 2015-05-11 02:29:34 UTC (rev 3335)
+++ branches/Cog/nsspursrc/vm/cogitIA32.c 2015-05-12 01:25:11 UTC (rev 3336)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1296 uuid: 264a71ca-50a1-4e84-96f4-dcb1c571859b
+ CCodeGenerator VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.1296 uuid: 264a71ca-50a1-4e84-96f4-dcb1c571859b
+ StackToRegisterMappingCogit VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1296 uuid: 264a71ca-50a1-4e84-96f4-dcb1c571859b " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -11485,11 +11485,11 @@
{ genPrimitiveSize, 0, 0 },
{ genPrimitiveStringAt, 1, 0 },
{ genPrimitiveStringAtPut, 2, 0 },
+ { genFastPrimFail, -1, 0 },
+ { genFastPrimFail, -1, 0 },
+ { genFastPrimFail, -1, 0 },
{ 0, -1, 0 },
{ 0, -1, 0 },
- { 0, -1, 0 },
- { 0, -1, 0 },
- { 0, -1, 0 },
{ genPrimitiveNew, -1, 0 },
{ genPrimitiveNewWithArg, -1, 0 },
{ 0, -1, 0 },
@@ -21248,19 +21248,23 @@
: compileFallbackToInterpreterPrimitive());
}
+
+/* Primitive class must be variadic for objectClass: */
+
static sqInt
genPrimitiveClass(void)
{
sqInt reg;
- reg = ReceiverResultReg;
if (methodOrBlockNumArgs > 0) {
if (methodOrBlockNumArgs > 1) {
return compileFallbackToInterpreterPrimitive();
}
reg = Arg0Reg;
}
-
+ else {
+ reg = ReceiverResultReg;
+ }
if ((genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ReceiverResultReg, TempReg, methodOrBlockNumArgs == 0)) == BadRegisterSet) {
genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ClassReg, TempReg, methodOrBlockNumArgs == 0);
/* begin MoveR:R: */
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
- Sun May 10 17:44:12 PDT 2015
+ Mon May 11 18:24:24 PDT 2015
Modified: branches/Cog/spursistasrc/vm/cogit.h
===================================================================
--- branches/Cog/spursistasrc/vm/cogit.h 2015-05-11 02:29:34 UTC (rev 3335)
+++ branches/Cog/spursistasrc/vm/cogit.h 2015-05-12 01:25:11 UTC (rev 3336)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
+ CCodeGenerator VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef
*/
Modified: branches/Cog/spursrc/vm/cogit.h
===================================================================
--- branches/Cog/spursrc/vm/cogit.h 2015-05-11 02:29:34 UTC (rev 3335)
+++ branches/Cog/spursrc/vm/cogit.h 2015-05-12 01:25:11 UTC (rev 3336)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
+ CCodeGenerator VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef
*/
Modified: branches/Cog/spursrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/spursrc/vm/cogitARMv5.c 2015-05-11 02:29:34 UTC (rev 3335)
+++ branches/Cog/spursrc/vm/cogitARMv5.c 2015-05-12 01:25:11 UTC (rev 3336)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1296 uuid: 264a71ca-50a1-4e84-96f4-dcb1c571859b
+ CCodeGenerator VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.1296 uuid: 264a71ca-50a1-4e84-96f4-dcb1c571859b
+ StackToRegisterMappingCogit VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1296 uuid: 264a71ca-50a1-4e84-96f4-dcb1c571859b " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -12089,11 +12089,11 @@
{ genPrimitiveSize, 0, 0 },
{ genPrimitiveStringAt, 1, 0 },
{ genPrimitiveStringAtPut, 2, 0 },
+ { genFastPrimFail, -1, 0 },
+ { genFastPrimFail, -1, 0 },
+ { genFastPrimFail, -1, 0 },
{ 0, -1, 0 },
{ 0, -1, 0 },
- { 0, -1, 0 },
- { 0, -1, 0 },
- { 0, -1, 0 },
{ genPrimitiveNew, 0, 0 },
{ genPrimitiveNewWithArg, 1, 0 },
{ 0, -1, 0 },
@@ -20354,16 +20354,25 @@
: compileFallbackToInterpreterPrimitive());
}
+
+/* Primitive class must be variadic for objectClass: */
+
static sqInt
genPrimitiveClass(void)
{
sqInt reg;
- reg = ReceiverResultReg;
- assert(methodOrBlockNumArgs == 0);
-
- if ((genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ReceiverResultReg, TempReg, 1)) == BadRegisterSet) {
- genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ClassReg, TempReg, 1);
+ if (methodOrBlockNumArgs > 0) {
+ if (methodOrBlockNumArgs > 1) {
+ return compileFallbackToInterpreterPrimitive();
+ }
+ reg = Arg0Reg;
+ }
+ else {
+ reg = ReceiverResultReg;
+ }
+ if ((genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ReceiverResultReg, TempReg, methodOrBlockNumArgs == 0)) == BadRegisterSet) {
+ genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ClassReg, TempReg, methodOrBlockNumArgs == 0);
/* begin MoveR:R: */
genoperandoperand(MoveRR, ClassReg, ReceiverResultReg);
}
Modified: branches/Cog/spursrc/vm/cogitIA32.c
===================================================================
--- branches/Cog/spursrc/vm/cogitIA32.c 2015-05-11 02:29:34 UTC (rev 3335)
+++ branches/Cog/spursrc/vm/cogitIA32.c 2015-05-12 01:25:11 UTC (rev 3336)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1296 uuid: 264a71ca-50a1-4e84-96f4-dcb1c571859b
+ CCodeGenerator VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.1296 uuid: 264a71ca-50a1-4e84-96f4-dcb1c571859b
+ StackToRegisterMappingCogit VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1296 uuid: 264a71ca-50a1-4e84-96f4-dcb1c571859b " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -10844,11 +10844,11 @@
{ genPrimitiveSize, 0, 0 },
{ genPrimitiveStringAt, 1, 0 },
{ genPrimitiveStringAtPut, 2, 0 },
+ { genFastPrimFail, -1, 0 },
+ { genFastPrimFail, -1, 0 },
+ { genFastPrimFail, -1, 0 },
{ 0, -1, 0 },
{ 0, -1, 0 },
- { 0, -1, 0 },
- { 0, -1, 0 },
- { 0, -1, 0 },
{ genPrimitiveNew, 0, 0 },
{ genPrimitiveNewWithArg, 1, 0 },
{ 0, -1, 0 },
@@ -19098,16 +19098,25 @@
: compileFallbackToInterpreterPrimitive());
}
+
+/* Primitive class must be variadic for objectClass: */
+
static sqInt
genPrimitiveClass(void)
{
sqInt reg;
- reg = ReceiverResultReg;
- assert(methodOrBlockNumArgs == 0);
-
- if ((genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ReceiverResultReg, TempReg, 1)) == BadRegisterSet) {
- genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ClassReg, TempReg, 1);
+ if (methodOrBlockNumArgs > 0) {
+ if (methodOrBlockNumArgs > 1) {
+ return compileFallbackToInterpreterPrimitive();
+ }
+ reg = Arg0Reg;
+ }
+ else {
+ reg = ReceiverResultReg;
+ }
+ if ((genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ReceiverResultReg, TempReg, methodOrBlockNumArgs == 0)) == BadRegisterSet) {
+ genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ClassReg, TempReg, methodOrBlockNumArgs == 0);
/* begin MoveR:R: */
genoperandoperand(MoveRR, ClassReg, ReceiverResultReg);
}
Modified: branches/Cog/src/vm/cogit.h
===================================================================
--- branches/Cog/src/vm/cogit.h 2015-05-11 02:29:34 UTC (rev 3335)
+++ branches/Cog/src/vm/cogit.h 2015-05-12 01:25:11 UTC (rev 3336)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
+ CCodeGenerator VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef
*/
Modified: branches/Cog/src/vm/cogitARMv5.c
===================================================================
--- branches/Cog/src/vm/cogitARMv5.c 2015-05-11 02:29:34 UTC (rev 3335)
+++ branches/Cog/src/vm/cogitARMv5.c 2015-05-12 01:25:11 UTC (rev 3336)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1296 uuid: 264a71ca-50a1-4e84-96f4-dcb1c571859b
+ CCodeGenerator VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.1296 uuid: 264a71ca-50a1-4e84-96f4-dcb1c571859b
+ StackToRegisterMappingCogit VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1296 uuid: 264a71ca-50a1-4e84-96f4-dcb1c571859b " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -12124,11 +12124,11 @@
{ genPrimitiveSize, 0, 0 },
{ genPrimitiveStringAt, 1, 0 },
{ genPrimitiveStringAtPut, 2, 0 },
+ { genFastPrimFail, -1, 0 },
+ { genFastPrimFail, -1, 0 },
+ { genFastPrimFail, -1, 0 },
{ 0, -1, 0 },
{ 0, -1, 0 },
- { 0, -1, 0 },
- { 0, -1, 0 },
- { 0, -1, 0 },
{ genPrimitiveNew, 0, 0 },
{ genPrimitiveNewWithArg, 1, 0 },
{ 0, -1, 0 },
@@ -18469,16 +18469,25 @@
: compileFallbackToInterpreterPrimitive());
}
+
+/* Primitive class must be variadic for objectClass: */
+
static sqInt
genPrimitiveClass(void)
{
sqInt reg;
- reg = ReceiverResultReg;
- assert(methodOrBlockNumArgs == 0);
-
- if ((genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ReceiverResultReg, TempReg, 1)) == BadRegisterSet) {
- genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ClassReg, TempReg, 1);
+ if (methodOrBlockNumArgs > 0) {
+ if (methodOrBlockNumArgs > 1) {
+ return compileFallbackToInterpreterPrimitive();
+ }
+ reg = Arg0Reg;
+ }
+ else {
+ reg = ReceiverResultReg;
+ }
+ if ((genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ReceiverResultReg, TempReg, methodOrBlockNumArgs == 0)) == BadRegisterSet) {
+ genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ClassReg, TempReg, methodOrBlockNumArgs == 0);
/* begin MoveR:R: */
genoperandoperand(MoveRR, ClassReg, ReceiverResultReg);
}
Modified: branches/Cog/src/vm/cogitIA32.c
===================================================================
--- branches/Cog/src/vm/cogitIA32.c 2015-05-11 02:29:34 UTC (rev 3335)
+++ branches/Cog/src/vm/cogitIA32.c 2015-05-12 01:25:11 UTC (rev 3336)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1296 uuid: 264a71ca-50a1-4e84-96f4-dcb1c571859b
+ CCodeGenerator VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.1296 uuid: 264a71ca-50a1-4e84-96f4-dcb1c571859b
+ StackToRegisterMappingCogit VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1296 uuid: 264a71ca-50a1-4e84-96f4-dcb1c571859b " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1299 uuid: cbe293c4-e086-4dbf-bb1c-055f8c47b3ef " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -10878,11 +10878,11 @@
{ genPrimitiveSize, 0, 0 },
{ genPrimitiveStringAt, 1, 0 },
{ genPrimitiveStringAtPut, 2, 0 },
+ { genFastPrimFail, -1, 0 },
+ { genFastPrimFail, -1, 0 },
+ { genFastPrimFail, -1, 0 },
{ 0, -1, 0 },
{ 0, -1, 0 },
- { 0, -1, 0 },
- { 0, -1, 0 },
- { 0, -1, 0 },
{ genPrimitiveNew, 0, 0 },
{ genPrimitiveNewWithArg, 1, 0 },
{ 0, -1, 0 },
@@ -17227,16 +17227,25 @@
: compileFallbackToInterpreterPrimitive());
}
+
+/* Primitive class must be variadic for objectClass: */
+
static sqInt
genPrimitiveClass(void)
{
sqInt reg;
- reg = ReceiverResultReg;
- assert(methodOrBlockNumArgs == 0);
-
- if ((genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ReceiverResultReg, TempReg, 1)) == BadRegisterSet) {
- genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ClassReg, TempReg, 1);
+ if (methodOrBlockNumArgs > 0) {
+ if (methodOrBlockNumArgs > 1) {
+ return compileFallbackToInterpreterPrimitive();
+ }
+ reg = Arg0Reg;
+ }
+ else {
+ reg = ReceiverResultReg;
+ }
+ if ((genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ReceiverResultReg, TempReg, methodOrBlockNumArgs == 0)) == BadRegisterSet) {
+ genGetClassObjectOfintoscratchReginstRegIsReceiver(reg, ClassReg, TempReg, methodOrBlockNumArgs == 0);
/* begin MoveR:R: */
genoperandoperand(MoveRR, ClassReg, ReceiverResultReg);
}
More information about the Vm-dev
mailing list