Revision: 3244
Author: eliot
Date: 2015-01-30 18:15:58 -0800 (Fri, 30 Jan 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1034
Spur:
Clarify and ensure that we always follow receivers after any become to ensure
that e.g. super sends on non-pointer receivers (which don't check) will have
unforwarded receivers and hence any primitives that don't validate their
receivers will function correctly. Better safe than sorry.
Modified Paths:
--------------
branches/Cog/nsspursrc/vm/cointerp.c
branches/Cog/nsspursrc/vm/cointerp.h
branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
branches/Cog/nsspurstacksrc/vm/interp.c
branches/Cog/spursistasrc/vm/cointerp.c
branches/Cog/spursistasrc/vm/cointerp.h
branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
branches/Cog/spursrc/vm/cointerp.c
branches/Cog/spursrc/vm/cointerp.h
branches/Cog/spursrc/vm/gcc3x-cointerp.c
branches/Cog/spurstack64src/vm/gcc3x-interp.c
branches/Cog/spurstack64src/vm/interp.c
branches/Cog/spurstacksrc/vm/gcc3x-interp.c
branches/Cog/spurstacksrc/vm/interp.c
Property Changed:
----------------
branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c 2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/nsspursrc/vm/cointerp.c 2015-01-31 02:15:58 UTC (rev 3244)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
from
- CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2353,7 +2353,7 @@
/*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
};
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1029";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1034";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -72847,7 +72847,9 @@
All receivers must be unfollowed for two reasons:
1. inst var access is direct with no read barrier
2. super sends (always to the receiver) have no class check and so don't
- trap for forwarded receivers.
+ trap for forwarded receivers. This is an issue for primitives that assume
+ their receiver
+ is valid and don't validate.
Methods must be unfollowed since bytecode access is direct with no read
barrier. But this only needs to be done if the becomeEffectsFlags indicate
that a
@@ -72901,12 +72903,8 @@
sqInt schedAssoc;
sqInt xArray;
+ followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags != 0) {
-
- /* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
- [ */
-
- followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
/* begin followForwardedMethodsInMethodCache */
for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {
Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h 2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/nsspursrc/vm/cointerp.h 2015-01-31 02:15:58 UTC (rev 3244)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
*/
Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2015-01-31 02:15:58 UTC (rev 3244)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
from
- CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2356,7 +2356,7 @@
/*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
};
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1029";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1034";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -72856,7 +72856,9 @@
All receivers must be unfollowed for two reasons:
1. inst var access is direct with no read barrier
2. super sends (always to the receiver) have no class check and so don't
- trap for forwarded receivers.
+ trap for forwarded receivers. This is an issue for primitives that assume
+ their receiver
+ is valid and don't validate.
Methods must be unfollowed since bytecode access is direct with no read
barrier. But this only needs to be done if the becomeEffectsFlags indicate
that a
@@ -72910,12 +72912,8 @@
sqInt schedAssoc;
sqInt xArray;
+ followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags != 0) {
-
- /* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
- [ */
-
- followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
/* begin followForwardedMethodsInMethodCache */
for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {
Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2015-01-31 02:15:58 UTC (rev 3244)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
from
- StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2104,7 +2104,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1029";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1034";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -62299,7 +62299,9 @@
All receivers must be unfollowed for two reasons:
1. inst var access is direct with no read barrier
2. super sends (always to the receiver) have no class check and so don't
- trap for forwarded receivers.
+ trap for forwarded receivers. This is an issue for primitives that assume
+ their receiver
+ is valid and don't validate.
Methods must be unfollowed since bytecode access is direct with no read
barrier. But this only needs to be done if the becomeEffectsFlags indicate
that a
@@ -62353,12 +62355,8 @@
sqInt schedAssoc;
sqInt xArray;
+ followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags != 0) {
-
- /* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
- [ */
-
- followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
/* begin followForwardedMethodsInMethodCache */
for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {
Modified: branches/Cog/nsspurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/interp.c 2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/nsspurstacksrc/vm/interp.c 2015-01-31 02:15:58 UTC (rev 3244)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
from
- StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2101,7 +2101,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1029";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1034";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -62290,7 +62290,9 @@
All receivers must be unfollowed for two reasons:
1. inst var access is direct with no read barrier
2. super sends (always to the receiver) have no class check and so don't
- trap for forwarded receivers.
+ trap for forwarded receivers. This is an issue for primitives that assume
+ their receiver
+ is valid and don't validate.
Methods must be unfollowed since bytecode access is direct with no read
barrier. But this only needs to be done if the becomeEffectsFlags indicate
that a
@@ -62344,12 +62346,8 @@
sqInt schedAssoc;
sqInt xArray;
+ followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags != 0) {
-
- /* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
- [ */
-
- followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
/* begin followForwardedMethodsInMethodCache */
for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
- Fri Jan 30 17:17:40 PST 2015
+ Fri Jan 30 18:15:57 PST 2015
Modified: branches/Cog/spursistasrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursistasrc/vm/cointerp.c 2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spursistasrc/vm/cointerp.c 2015-01-31 02:15:58 UTC (rev 3244)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
from
- CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2354,7 +2354,7 @@
/*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
};
char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1029]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1034]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -72882,7 +72882,9 @@
All receivers must be unfollowed for two reasons:
1. inst var access is direct with no read barrier
2. super sends (always to the receiver) have no class check and so don't
- trap for forwarded receivers.
+ trap for forwarded receivers. This is an issue for primitives that assume
+ their receiver
+ is valid and don't validate.
Methods must be unfollowed since bytecode access is direct with no read
barrier. But this only needs to be done if the becomeEffectsFlags indicate
that a
@@ -72936,12 +72938,8 @@
sqInt schedAssoc;
sqInt xArray;
+ followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags != 0) {
-
- /* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
- [ */
-
- followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
/* begin followForwardedMethodsInMethodCache */
for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {
Modified: branches/Cog/spursistasrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursistasrc/vm/cointerp.h 2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spursistasrc/vm/cointerp.h 2015-01-31 02:15:58 UTC (rev 3244)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
*/
Modified: branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursistasrc/vm/gcc3x-cointerp.c 2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spursistasrc/vm/gcc3x-cointerp.c 2015-01-31 02:15:58 UTC (rev 3244)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
from
- CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2357,7 +2357,7 @@
/*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
};
char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1029]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1034]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -72891,7 +72891,9 @@
All receivers must be unfollowed for two reasons:
1. inst var access is direct with no read barrier
2. super sends (always to the receiver) have no class check and so don't
- trap for forwarded receivers.
+ trap for forwarded receivers. This is an issue for primitives that assume
+ their receiver
+ is valid and don't validate.
Methods must be unfollowed since bytecode access is direct with no read
barrier. But this only needs to be done if the becomeEffectsFlags indicate
that a
@@ -72945,12 +72947,8 @@
sqInt schedAssoc;
sqInt xArray;
+ followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags != 0) {
-
- /* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
- [ */
-
- followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
/* begin followForwardedMethodsInMethodCache */
for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {
Modified: branches/Cog/spursrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/cointerp.c 2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spursrc/vm/cointerp.c 2015-01-31 02:15:58 UTC (rev 3244)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
from
- CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2343,7 +2343,7 @@
/*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
};
char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1029]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1034]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -67742,7 +67742,9 @@
All receivers must be unfollowed for two reasons:
1. inst var access is direct with no read barrier
2. super sends (always to the receiver) have no class check and so don't
- trap for forwarded receivers.
+ trap for forwarded receivers. This is an issue for primitives that assume
+ their receiver
+ is valid and don't validate.
Methods must be unfollowed since bytecode access is direct with no read
barrier. But this only needs to be done if the becomeEffectsFlags indicate
that a
@@ -67796,12 +67798,8 @@
sqInt schedAssoc;
sqInt xArray;
+ followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags != 0) {
-
- /* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
- [ */
-
- followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
/* begin followForwardedMethodsInMethodCache */
for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {
Modified: branches/Cog/spursrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursrc/vm/cointerp.h 2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spursrc/vm/cointerp.h 2015-01-31 02:15:58 UTC (rev 3244)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
*/
Modified: branches/Cog/spursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/gcc3x-cointerp.c 2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spursrc/vm/gcc3x-cointerp.c 2015-01-31 02:15:58 UTC (rev 3244)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
from
- CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2346,7 +2346,7 @@
/*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
};
char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1029]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1034]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -67751,7 +67751,9 @@
All receivers must be unfollowed for two reasons:
1. inst var access is direct with no read barrier
2. super sends (always to the receiver) have no class check and so don't
- trap for forwarded receivers.
+ trap for forwarded receivers. This is an issue for primitives that assume
+ their receiver
+ is valid and don't validate.
Methods must be unfollowed since bytecode access is direct with no read
barrier. But this only needs to be done if the becomeEffectsFlags indicate
that a
@@ -67805,12 +67807,8 @@
sqInt schedAssoc;
sqInt xArray;
+ followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags != 0) {
-
- /* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
- [ */
-
- followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
/* begin followForwardedMethodsInMethodCache */
for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {
Modified: branches/Cog/spurstack64src/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/spurstack64src/vm/gcc3x-interp.c 2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spurstack64src/vm/gcc3x-interp.c 2015-01-31 02:15:58 UTC (rev 3244)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
from
- StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2127,7 +2127,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1029]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1034]";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -62482,7 +62482,9 @@
All receivers must be unfollowed for two reasons:
1. inst var access is direct with no read barrier
2. super sends (always to the receiver) have no class check and so don't
- trap for forwarded receivers.
+ trap for forwarded receivers. This is an issue for primitives that assume
+ their receiver
+ is valid and don't validate.
Methods must be unfollowed since bytecode access is direct with no read
barrier. But this only needs to be done if the becomeEffectsFlags indicate
that a
@@ -62536,12 +62538,8 @@
sqInt schedAssoc;
sqInt xArray;
+ followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags != 0) {
-
- /* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
- [ */
-
- followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
/* begin followForwardedMethodsInMethodCache */
for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {
Modified: branches/Cog/spurstack64src/vm/interp.c
===================================================================
--- branches/Cog/spurstack64src/vm/interp.c 2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spurstack64src/vm/interp.c 2015-01-31 02:15:58 UTC (rev 3244)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
from
- StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2124,7 +2124,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1029]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1034]";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -62473,7 +62473,9 @@
All receivers must be unfollowed for two reasons:
1. inst var access is direct with no read barrier
2. super sends (always to the receiver) have no class check and so don't
- trap for forwarded receivers.
+ trap for forwarded receivers. This is an issue for primitives that assume
+ their receiver
+ is valid and don't validate.
Methods must be unfollowed since bytecode access is direct with no read
barrier. But this only needs to be done if the becomeEffectsFlags indicate
that a
@@ -62527,12 +62529,8 @@
sqInt schedAssoc;
sqInt xArray;
+ followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags != 0) {
-
- /* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
- [ */
-
- followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
/* begin followForwardedMethodsInMethodCache */
for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {
Modified: branches/Cog/spurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/gcc3x-interp.c 2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spurstacksrc/vm/gcc3x-interp.c 2015-01-31 02:15:58 UTC (rev 3244)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
from
- StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2097,7 +2097,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1029]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1034]";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -57570,7 +57570,9 @@
All receivers must be unfollowed for two reasons:
1. inst var access is direct with no read barrier
2. super sends (always to the receiver) have no class check and so don't
- trap for forwarded receivers.
+ trap for forwarded receivers. This is an issue for primitives that assume
+ their receiver
+ is valid and don't validate.
Methods must be unfollowed since bytecode access is direct with no read
barrier. But this only needs to be done if the becomeEffectsFlags indicate
that a
@@ -57624,12 +57626,8 @@
sqInt schedAssoc;
sqInt xArray;
+ followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags != 0) {
-
- /* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
- [ */
-
- followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
/* begin followForwardedMethodsInMethodCache */
for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {
Modified: branches/Cog/spurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/interp.c 2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spurstacksrc/vm/interp.c 2015-01-31 02:15:58 UTC (rev 3244)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
from
- StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+ StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2094,7 +2094,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1029]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1034]";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -57561,7 +57561,9 @@
All receivers must be unfollowed for two reasons:
1. inst var access is direct with no read barrier
2. super sends (always to the receiver) have no class check and so don't
- trap for forwarded receivers.
+ trap for forwarded receivers. This is an issue for primitives that assume
+ their receiver
+ is valid and don't validate.
Methods must be unfollowed since bytecode access is direct with no read
barrier. But this only needs to be done if the becomeEffectsFlags indicate
that a
@@ -57615,12 +57617,8 @@
sqInt schedAssoc;
sqInt xArray;
+ followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags != 0) {
-
- /* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
- [ */
-
- followForwardingPointersInStackZone(theBecomeEffectsFlags);
if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
/* begin followForwardedMethodsInMethodCache */
for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {