[Vm-dev] [commit] r2497 - CogVm source as per VMMaker.oscog-eem.131. Deal with some realities in the

commits at squeakvm.org commits at squeakvm.org
Mon Oct 3 21:46:33 UTC 2011


Author: eliot
Date: 2011-10-03 14:46:33 -0700 (Mon, 03 Oct 2011)
New Revision: 2497

Modified:
   branches/Cog/nscogsrc/vm/cogit.c
   branches/Cog/nscogsrc/vm/cogit.h
   branches/Cog/nscogsrc/vm/cogmethod.h
   branches/Cog/nscogsrc/vm/cointerp.c
   branches/Cog/nscogsrc/vm/cointerp.h
   branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
   branches/Cog/nscogsrc/vm/interp.h
   branches/Cog/nscogsrc/vm/vmCallback.h
   branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
   branches/Cog/src/vm/cogit.c
   branches/Cog/src/vm/cogit.h
   branches/Cog/src/vm/cogmethod.h
   branches/Cog/src/vm/cointerp.c
   branches/Cog/src/vm/cointerp.h
   branches/Cog/src/vm/cointerpmt.c
   branches/Cog/src/vm/cointerpmt.h
   branches/Cog/src/vm/gcc3x-cointerp.c
   branches/Cog/src/vm/gcc3x-cointerpmt.c
   branches/Cog/src/vm/interp.h
   branches/Cog/src/vm/vmCallback.h
Log:
CogVm source as per VMMaker.oscog-eem.131.  Deal with some realities in the
minValidCallAddress checking code.  At least on Mac OS under gcc -O, gcc will
reorder code so that primitiveFail comes before interpret.  Also firm up the
signatures of rewriteInlineCacheAt:tag:target: & rewriteCallAt:target:.


Modified: branches/Cog/nscogsrc/vm/cogit.c
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.c	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/nscogsrc/vm/cogit.c	2011-10-03 21:46:33 UTC (rev 2497)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGenerator VMMaker.oscog-eem.129 uuid: 1b6f9029-666c-4ca4-b58c-9973784bb7ba
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	StackToRegisterMappingCogit VMMaker.oscog-eem.129 uuid: 1b6f9029-666c-4ca4-b58c-9973784bb7ba
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.129 uuid: 1b6f9029-666c-4ca4-b58c-9973784bb7ba " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -926,8 +926,8 @@
 static void removeFromOpenPICList(CogMethod *anOpenPIC);
 static void resolveJumpTarget(AbstractInstruction * self_in_resolveJumpTarget);
 static sqInt returnRegForStoreCheck(void);
-static sqInt rewriteCallAttarget(AbstractInstruction * self_in_rewriteCallAttarget, usqInt callSiteReturnAddress, sqInt callTargetAddress);
-static sqInt rewriteInlineCacheAttagtarget(AbstractInstruction * self_in_rewriteInlineCacheAttagtarget, usqInt callSiteReturnAddress, sqInt cacheTag, sqInt callTargetAddress);
+static sqInt rewriteCallAttarget(AbstractInstruction * self_in_rewriteCallAttarget, usqInt callSiteReturnAddress, usqInt callTargetAddress);
+static sqInt rewriteInlineCacheAttagtarget(AbstractInstruction * self_in_rewriteInlineCacheAttagtarget, usqInt callSiteReturnAddress, sqInt cacheTag, usqInt callTargetAddress);
 static void rewriteInlineCacheTagat(AbstractInstruction * self_in_rewriteInlineCacheTagat, sqInt cacheTag, sqInt callSiteReturnAddress);
 static sqInt rewriteJumpLongAttarget(AbstractInstruction * self_in_rewriteJumpLongAttarget, sqInt callSiteReturnAddress, sqInt callTargetAddress);
 void rewritePrimInvocationInto(CogMethod *cogMethod, void (*primFunctionPointer)(void));
@@ -12754,7 +12754,7 @@
 {
 	sqMakeMemoryExecutableFromTo(startAddress, endAddress);
 	codeBase = (methodZoneBase = startAddress);
-	minValidCallAddress = ((codeBase < (interpretAddress())) ? codeBase : (interpretAddress()));
+	minValidCallAddress = (((((codeBase < (interpretAddress())) ? codeBase : (interpretAddress()))) < (primitiveFailAddress())) ? (((codeBase < (interpretAddress())) ? codeBase : (interpretAddress()))) : (primitiveFailAddress()));
 	initializeBackend();
 	maybeGenerateCheckFeatures();
 	maybeGenerateICacheFlush();
@@ -15893,7 +15893,7 @@
 	callSiteReturnAddress - 1]. */
 
 static sqInt
-rewriteCallAttarget(AbstractInstruction * self_in_rewriteCallAttarget, usqInt callSiteReturnAddress, sqInt callTargetAddress)
+rewriteCallAttarget(AbstractInstruction * self_in_rewriteCallAttarget, usqInt callSiteReturnAddress, usqInt callTargetAddress)
 {
     sqInt callDistance;
 
@@ -15925,7 +15925,7 @@
 	callSiteReturnAddress - 1]. */
 
 static sqInt
-rewriteInlineCacheAttagtarget(AbstractInstruction * self_in_rewriteInlineCacheAttagtarget, usqInt callSiteReturnAddress, sqInt cacheTag, sqInt callTargetAddress)
+rewriteInlineCacheAttagtarget(AbstractInstruction * self_in_rewriteInlineCacheAttagtarget, usqInt callSiteReturnAddress, sqInt cacheTag, usqInt callTargetAddress)
 {
     sqInt callDistance;
 

Modified: branches/Cog/nscogsrc/vm/cogit.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.h	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/nscogsrc/vm/cogit.h	2011-10-03 21:46:33 UTC (rev 2497)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGenerator VMMaker.oscog-eem.129 uuid: 1b6f9029-666c-4ca4-b58c-9973784bb7ba
  */
 
 

Modified: branches/Cog/nscogsrc/vm/cogmethod.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogmethod.h	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/nscogsrc/vm/cogmethod.h	2011-10-03 21:46:33 UTC (rev 2497)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGenerator VMMaker.oscog-eem.129 uuid: 1b6f9029-666c-4ca4-b58c-9973784bb7ba
  */
 
 typedef struct {

Modified: branches/Cog/nscogsrc/vm/cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.c	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/nscogsrc/vm/cointerp.c	2011-10-03 21:46:33 UTC (rev 2497)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
    from
-	CoInterpreter VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CoInterpreter VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -797,6 +797,7 @@
 static void primitiveExponent(void);
 static void primitiveExternalCall(void);
 sqInt primitiveFail(void);
+usqInt primitiveFailAddress(void);
 sqInt primitiveFailFor(sqInt reasonCode);
 sqInt primitiveFailureCode(void);
 static void primitiveFindHandlerContext(void);
@@ -1893,7 +1894,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.128";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.131";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -19052,15 +19053,15 @@
 
 /*	This is used for asserts that check that inline cache editing results in
 	valid addresses.
-	In the C VM interpret is guaranteed to come before any primitives and so
-	it constitutes
-	the lowest address in C code that machine code should be linked. In the
-	simulator we just answer something not low. */
+	In the C VM interpret is presumed to come before any primitives and so it
+	constitutes the lowest address in C code that machine code should be
+	linked. In the simulator
+	we just answer something not low. */
 
 usqInt
 interpretAddress(void)
 {
-	return ((usqInt)((&"interpret")));
+	return ((usqInt)((&(interpret))));
 }
 
 
@@ -28400,6 +28401,21 @@
 }
 
 
+/*	This is used for asserts that check that inline cache editing results in
+	valid addresses.
+	In the C VM interpret is presumed to come before any primitives and so it
+	constitutes the lowest address in C code that machine code should be
+	linked, but optimizing
+	compilers change things around. In the simulator we just answer something
+	not low. */
+
+usqInt
+primitiveFailAddress(void)
+{
+	return ((usqInt)((&(primitiveFail))));
+}
+
+
 /*	Set specific primitive failure.
 	N.B. primitiveFailFor: PrimNoErr is expected to clear the primFailCode. */
 

Modified: branches/Cog/nscogsrc/vm/cointerp.h
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.h	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/nscogsrc/vm/cointerp.h	2011-10-03 21:46:33 UTC (rev 2497)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
  */
 
 
@@ -131,6 +131,7 @@
 void primitiveClosureValueNoContextSwitch(void);
 sqInt primitiveErrorTable(void);
 sqInt primitiveFail(void);
+usqInt primitiveFailAddress(void);
 sqInt primitiveFailFor(sqInt reasonCode);
 sqInt primitiveFailureCode(void);
 usqInt primitiveFunctionPointerAddress(void);

Modified: branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/gcc3x-cointerp.c	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/nscogsrc/vm/gcc3x-cointerp.c	2011-10-03 21:46:33 UTC (rev 2497)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
    from
-	CoInterpreter VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CoInterpreter VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -800,6 +800,7 @@
 static void primitiveExponent(void);
 static void primitiveExternalCall(void);
 sqInt primitiveFail(void);
+usqInt primitiveFailAddress(void);
 sqInt primitiveFailFor(sqInt reasonCode);
 sqInt primitiveFailureCode(void);
 static void primitiveFindHandlerContext(void);
@@ -1896,7 +1897,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.128";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.131";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -19056,15 +19057,15 @@
 
 /*	This is used for asserts that check that inline cache editing results in
 	valid addresses.
-	In the C VM interpret is guaranteed to come before any primitives and so
-	it constitutes
-	the lowest address in C code that machine code should be linked. In the
-	simulator we just answer something not low. */
+	In the C VM interpret is presumed to come before any primitives and so it
+	constitutes the lowest address in C code that machine code should be
+	linked. In the simulator
+	we just answer something not low. */
 
 usqInt
 interpretAddress(void)
 {
-	return ((usqInt)((&"interpret")));
+	return ((usqInt)((&(interpret))));
 }
 
 
@@ -28404,6 +28405,21 @@
 }
 
 
+/*	This is used for asserts that check that inline cache editing results in
+	valid addresses.
+	In the C VM interpret is presumed to come before any primitives and so it
+	constitutes the lowest address in C code that machine code should be
+	linked, but optimizing
+	compilers change things around. In the simulator we just answer something
+	not low. */
+
+usqInt
+primitiveFailAddress(void)
+{
+	return ((usqInt)((&(primitiveFail))));
+}
+
+
 /*	Set specific primitive failure.
 	N.B. primitiveFailFor: PrimNoErr is expected to clear the primFailCode. */
 

Modified: branches/Cog/nscogsrc/vm/interp.h
===================================================================
--- branches/Cog/nscogsrc/vm/interp.h	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/nscogsrc/vm/interp.h	2011-10-03 21:46:33 UTC (rev 2497)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/nscogsrc/vm/vmCallback.h
===================================================================
--- branches/Cog/nscogsrc/vm/vmCallback.h	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/nscogsrc/vm/vmCallback.h	2011-10-03 21:46:33 UTC (rev 2497)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
  */
 
 #define VM_CALLBACK_INC 1


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Tue Sep 27 18:19:30 PDT 2011
   + Mon Oct  3 14:44:54 PDT 2011

Modified: branches/Cog/src/vm/cogit.c
===================================================================
--- branches/Cog/src/vm/cogit.c	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/src/vm/cogit.c	2011-10-03 21:46:33 UTC (rev 2497)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGenerator VMMaker.oscog-eem.129 uuid: 1b6f9029-666c-4ca4-b58c-9973784bb7ba
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	StackToRegisterMappingCogit VMMaker.oscog-eem.129 uuid: 1b6f9029-666c-4ca4-b58c-9973784bb7ba
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.129 uuid: 1b6f9029-666c-4ca4-b58c-9973784bb7ba " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -915,8 +915,8 @@
 static void removeFromOpenPICList(CogMethod *anOpenPIC);
 static void resolveJumpTarget(AbstractInstruction * self_in_resolveJumpTarget);
 static sqInt returnRegForStoreCheck(void);
-static sqInt rewriteCallAttarget(AbstractInstruction * self_in_rewriteCallAttarget, usqInt callSiteReturnAddress, sqInt callTargetAddress);
-static sqInt rewriteInlineCacheAttagtarget(AbstractInstruction * self_in_rewriteInlineCacheAttagtarget, usqInt callSiteReturnAddress, sqInt cacheTag, sqInt callTargetAddress);
+static sqInt rewriteCallAttarget(AbstractInstruction * self_in_rewriteCallAttarget, usqInt callSiteReturnAddress, usqInt callTargetAddress);
+static sqInt rewriteInlineCacheAttagtarget(AbstractInstruction * self_in_rewriteInlineCacheAttagtarget, usqInt callSiteReturnAddress, sqInt cacheTag, usqInt callTargetAddress);
 static void rewriteInlineCacheTagat(AbstractInstruction * self_in_rewriteInlineCacheTagat, sqInt cacheTag, sqInt callSiteReturnAddress);
 static sqInt rewriteJumpLongAttarget(AbstractInstruction * self_in_rewriteJumpLongAttarget, sqInt callSiteReturnAddress, sqInt callTargetAddress);
 void rewritePrimInvocationInto(CogMethod *cogMethod, void (*primFunctionPointer)(void));
@@ -12542,7 +12542,7 @@
 {
 	sqMakeMemoryExecutableFromTo(startAddress, endAddress);
 	codeBase = (methodZoneBase = startAddress);
-	minValidCallAddress = ((codeBase < (interpretAddress())) ? codeBase : (interpretAddress()));
+	minValidCallAddress = (((((codeBase < (interpretAddress())) ? codeBase : (interpretAddress()))) < (primitiveFailAddress())) ? (((codeBase < (interpretAddress())) ? codeBase : (interpretAddress()))) : (primitiveFailAddress()));
 	initializeBackend();
 	maybeGenerateCheckFeatures();
 	maybeGenerateICacheFlush();
@@ -15414,7 +15414,7 @@
 	callSiteReturnAddress - 1]. */
 
 static sqInt
-rewriteCallAttarget(AbstractInstruction * self_in_rewriteCallAttarget, usqInt callSiteReturnAddress, sqInt callTargetAddress)
+rewriteCallAttarget(AbstractInstruction * self_in_rewriteCallAttarget, usqInt callSiteReturnAddress, usqInt callTargetAddress)
 {
     sqInt callDistance;
 
@@ -15446,7 +15446,7 @@
 	callSiteReturnAddress - 1]. */
 
 static sqInt
-rewriteInlineCacheAttagtarget(AbstractInstruction * self_in_rewriteInlineCacheAttagtarget, usqInt callSiteReturnAddress, sqInt cacheTag, sqInt callTargetAddress)
+rewriteInlineCacheAttagtarget(AbstractInstruction * self_in_rewriteInlineCacheAttagtarget, usqInt callSiteReturnAddress, sqInt cacheTag, usqInt callTargetAddress)
 {
     sqInt callDistance;
 

Modified: branches/Cog/src/vm/cogit.h
===================================================================
--- branches/Cog/src/vm/cogit.h	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/src/vm/cogit.h	2011-10-03 21:46:33 UTC (rev 2497)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGenerator VMMaker.oscog-eem.129 uuid: 1b6f9029-666c-4ca4-b58c-9973784bb7ba
  */
 
 

Modified: branches/Cog/src/vm/cogmethod.h
===================================================================
--- branches/Cog/src/vm/cogmethod.h	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/src/vm/cogmethod.h	2011-10-03 21:46:33 UTC (rev 2497)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGenerator VMMaker.oscog-eem.129 uuid: 1b6f9029-666c-4ca4-b58c-9973784bb7ba
  */
 
 typedef struct {

Modified: branches/Cog/src/vm/cointerp.c
===================================================================
--- branches/Cog/src/vm/cointerp.c	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/src/vm/cointerp.c	2011-10-03 21:46:33 UTC (rev 2497)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
    from
-	CoInterpreter VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CoInterpreter VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -788,6 +788,7 @@
 static void primitiveExponent(void);
 static void primitiveExternalCall(void);
 sqInt primitiveFail(void);
+usqInt primitiveFailAddress(void);
 sqInt primitiveFailFor(sqInt reasonCode);
 sqInt primitiveFailureCode(void);
 static void primitiveFindHandlerContext(void);
@@ -1884,7 +1885,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.128]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.131]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -18383,15 +18384,15 @@
 
 /*	This is used for asserts that check that inline cache editing results in
 	valid addresses.
-	In the C VM interpret is guaranteed to come before any primitives and so
-	it constitutes
-	the lowest address in C code that machine code should be linked. In the
-	simulator we just answer something not low. */
+	In the C VM interpret is presumed to come before any primitives and so it
+	constitutes the lowest address in C code that machine code should be
+	linked. In the simulator
+	we just answer something not low. */
 
 usqInt
 interpretAddress(void)
 {
-	return ((usqInt)((&"interpret")));
+	return ((usqInt)((&(interpret))));
 }
 
 
@@ -27718,6 +27719,21 @@
 }
 
 
+/*	This is used for asserts that check that inline cache editing results in
+	valid addresses.
+	In the C VM interpret is presumed to come before any primitives and so it
+	constitutes the lowest address in C code that machine code should be
+	linked, but optimizing
+	compilers change things around. In the simulator we just answer something
+	not low. */
+
+usqInt
+primitiveFailAddress(void)
+{
+	return ((usqInt)((&(primitiveFail))));
+}
+
+
 /*	Set specific primitive failure.
 	N.B. primitiveFailFor: PrimNoErr is expected to clear the primFailCode. */
 

Modified: branches/Cog/src/vm/cointerp.h
===================================================================
--- branches/Cog/src/vm/cointerp.h	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/src/vm/cointerp.h	2011-10-03 21:46:33 UTC (rev 2497)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
  */
 
 
@@ -131,6 +131,7 @@
 void primitiveClosureValueNoContextSwitch(void);
 sqInt primitiveErrorTable(void);
 sqInt primitiveFail(void);
+usqInt primitiveFailAddress(void);
 sqInt primitiveFailFor(sqInt reasonCode);
 sqInt primitiveFailureCode(void);
 usqInt primitiveFunctionPointerAddress(void);

Modified: branches/Cog/src/vm/cointerpmt.c
===================================================================
--- branches/Cog/src/vm/cointerpmt.c	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/src/vm/cointerpmt.c	2011-10-03 21:46:33 UTC (rev 2497)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
    from
-	CoInterpreterMT VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CoInterpreterMT VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
  */
-static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b " __DATE__ ;
+static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -851,6 +851,7 @@
 static void primitiveExponent(void);
 static void primitiveExternalCall(void);
 sqInt primitiveFail(void);
+usqInt primitiveFailAddress(void);
 sqInt primitiveFailFor(sqInt reasonCode);
 sqInt primitiveFailureCode(void);
 static void primitiveFindHandlerContext(void);
@@ -1984,7 +1985,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
-const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.128]";
+const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.131]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 sqInt willNotThreadWarnCount;
@@ -19085,15 +19086,15 @@
 
 /*	This is used for asserts that check that inline cache editing results in
 	valid addresses.
-	In the C VM interpret is guaranteed to come before any primitives and so
-	it constitutes
-	the lowest address in C code that machine code should be linked. In the
-	simulator we just answer something not low. */
+	In the C VM interpret is presumed to come before any primitives and so it
+	constitutes the lowest address in C code that machine code should be
+	linked. In the simulator
+	we just answer something not low. */
 
 usqInt
 interpretAddress(void)
 {
-	return ((usqInt)((&"interpret")));
+	return ((usqInt)((&(interpret))));
 }
 
 
@@ -28927,6 +28928,21 @@
 }
 
 
+/*	This is used for asserts that check that inline cache editing results in
+	valid addresses.
+	In the C VM interpret is presumed to come before any primitives and so it
+	constitutes the lowest address in C code that machine code should be
+	linked, but optimizing
+	compilers change things around. In the simulator we just answer something
+	not low. */
+
+usqInt
+primitiveFailAddress(void)
+{
+	return ((usqInt)((&(primitiveFail))));
+}
+
+
 /*	Set specific primitive failure.
 	N.B. primitiveFailFor: PrimNoErr is expected to clear the primFailCode. */
 

Modified: branches/Cog/src/vm/cointerpmt.h
===================================================================
--- branches/Cog/src/vm/cointerpmt.h	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/src/vm/cointerpmt.h	2011-10-03 21:46:33 UTC (rev 2497)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
  */
 
 
@@ -134,6 +134,7 @@
 void primitiveClosureValueNoContextSwitch(void);
 sqInt primitiveErrorTable(void);
 sqInt primitiveFail(void);
+usqInt primitiveFailAddress(void);
 sqInt primitiveFailFor(sqInt reasonCode);
 sqInt primitiveFailureCode(void);
 usqInt primitiveFunctionPointerAddress(void);

Modified: branches/Cog/src/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/src/vm/gcc3x-cointerp.c	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/src/vm/gcc3x-cointerp.c	2011-10-03 21:46:33 UTC (rev 2497)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
    from
-	CoInterpreter VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CoInterpreter VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -791,6 +791,7 @@
 static void primitiveExponent(void);
 static void primitiveExternalCall(void);
 sqInt primitiveFail(void);
+usqInt primitiveFailAddress(void);
 sqInt primitiveFailFor(sqInt reasonCode);
 sqInt primitiveFailureCode(void);
 static void primitiveFindHandlerContext(void);
@@ -1887,7 +1888,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.128]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.131]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -18387,15 +18388,15 @@
 
 /*	This is used for asserts that check that inline cache editing results in
 	valid addresses.
-	In the C VM interpret is guaranteed to come before any primitives and so
-	it constitutes
-	the lowest address in C code that machine code should be linked. In the
-	simulator we just answer something not low. */
+	In the C VM interpret is presumed to come before any primitives and so it
+	constitutes the lowest address in C code that machine code should be
+	linked. In the simulator
+	we just answer something not low. */
 
 usqInt
 interpretAddress(void)
 {
-	return ((usqInt)((&"interpret")));
+	return ((usqInt)((&(interpret))));
 }
 
 
@@ -27722,6 +27723,21 @@
 }
 
 
+/*	This is used for asserts that check that inline cache editing results in
+	valid addresses.
+	In the C VM interpret is presumed to come before any primitives and so it
+	constitutes the lowest address in C code that machine code should be
+	linked, but optimizing
+	compilers change things around. In the simulator we just answer something
+	not low. */
+
+usqInt
+primitiveFailAddress(void)
+{
+	return ((usqInt)((&(primitiveFail))));
+}
+
+
 /*	Set specific primitive failure.
 	N.B. primitiveFailFor: PrimNoErr is expected to clear the primFailCode. */
 

Modified: branches/Cog/src/vm/gcc3x-cointerpmt.c
===================================================================
--- branches/Cog/src/vm/gcc3x-cointerpmt.c	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/src/vm/gcc3x-cointerpmt.c	2011-10-03 21:46:33 UTC (rev 2497)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
    from
-	CoInterpreterMT VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CoInterpreterMT VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
  */
-static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b " __DATE__ ;
+static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -854,6 +854,7 @@
 static void primitiveExponent(void);
 static void primitiveExternalCall(void);
 sqInt primitiveFail(void);
+usqInt primitiveFailAddress(void);
 sqInt primitiveFailFor(sqInt reasonCode);
 sqInt primitiveFailureCode(void);
 static void primitiveFindHandlerContext(void);
@@ -1987,7 +1988,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
-const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.128]";
+const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.131]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 sqInt willNotThreadWarnCount;
@@ -19089,15 +19090,15 @@
 
 /*	This is used for asserts that check that inline cache editing results in
 	valid addresses.
-	In the C VM interpret is guaranteed to come before any primitives and so
-	it constitutes
-	the lowest address in C code that machine code should be linked. In the
-	simulator we just answer something not low. */
+	In the C VM interpret is presumed to come before any primitives and so it
+	constitutes the lowest address in C code that machine code should be
+	linked. In the simulator
+	we just answer something not low. */
 
 usqInt
 interpretAddress(void)
 {
-	return ((usqInt)((&"interpret")));
+	return ((usqInt)((&(interpret))));
 }
 
 
@@ -28931,6 +28932,21 @@
 }
 
 
+/*	This is used for asserts that check that inline cache editing results in
+	valid addresses.
+	In the C VM interpret is presumed to come before any primitives and so it
+	constitutes the lowest address in C code that machine code should be
+	linked, but optimizing
+	compilers change things around. In the simulator we just answer something
+	not low. */
+
+usqInt
+primitiveFailAddress(void)
+{
+	return ((usqInt)((&(primitiveFail))));
+}
+
+
 /*	Set specific primitive failure.
 	N.B. primitiveFailFor: PrimNoErr is expected to clear the primFailCode. */
 

Modified: branches/Cog/src/vm/interp.h
===================================================================
--- branches/Cog/src/vm/interp.h	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/src/vm/interp.h	2011-10-03 21:46:33 UTC (rev 2497)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/src/vm/vmCallback.h
===================================================================
--- branches/Cog/src/vm/vmCallback.h	2011-09-28 01:21:14 UTC (rev 2496)
+++ branches/Cog/src/vm/vmCallback.h	2011-10-03 21:46:33 UTC (rev 2497)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.128 uuid: 314823f6-cd6c-468f-9183-843b558f630b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.131 uuid: 7a963469-105d-4374-9162-62c6dbd745f4
  */
 
 #define VM_CALLBACK_INC 1



More information about the Vm-dev mailing list