[Vm-dev] [commit] r2494 - CogVM source as per VMMaker.oscog-eem.126. Fix cPICEndSize mis-computation

commits at squeakvm.org commits at squeakvm.org
Fri Sep 23 01:24:09 UTC 2011


Author: eliot
Date: 2011-09-22 18:24:09 -0700 (Thu, 22 Sep 2011)
New Revision: 2494

Modified:
   branches/Cog/nscogsrc/vm/cogit.c
   branches/Cog/nscogsrc/vm/cogit.h
   branches/Cog/nscogsrc/vm/cogmethod.h
   branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
   branches/Cog/scripts/uploadvms
   branches/Cog/src/vm/cogit.c
   branches/Cog/src/vm/cogit.h
   branches/Cog/src/vm/cogmethod.h
Log:
CogVM source as per VMMaker.oscog-eem.126. Fix cPICEndSize mis-computation
caused by using rounded-up closedPICSize.  Compute cPICEndSize and /then/
round-up closedPICSize.


Modified: branches/Cog/nscogsrc/vm/cogit.c
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.c	2011-09-21 23:10:54 UTC (rev 2493)
+++ branches/Cog/nscogsrc/vm/cogit.c	2011-09-23 01:24:09 UTC (rev 2494)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.125 uuid: 539c10db-ab19-4fc7-ada1-4ffae6463ed1
+	CCodeGenerator VMMaker.oscog-eem.126 uuid: 6af3249f-6c5c-4e1b-8a69-f59e542154c5
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.125 uuid: 539c10db-ab19-4fc7-ada1-4ffae6463ed1
+	StackToRegisterMappingCogit VMMaker.oscog-eem.126 uuid: 6af3249f-6c5c-4e1b-8a69-f59e542154c5
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.125 uuid: 539c10db-ab19-4fc7-ada1-4ffae6463ed1 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.126 uuid: 6af3249f-6c5c-4e1b-8a69-f59e542154c5 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -8377,9 +8377,10 @@
 	compileClosedPICPrototype();
 	computeMaximumSizes();
 	headerSize = sizeof(CogMethod);
-	closedPICSize = roundUpLength(headerSize + (generateInstructionsAt(methodZoneBase + headerSize)));
+	closedPICSize = headerSize + (generateInstructionsAt(methodZoneBase + headerSize));
 	firstCPICCaseOffset = ((endCPICCase0->address)) - methodZoneBase;
 	cPICCaseSize = ((endCPICCase1->address)) - ((endCPICCase0->address));
+	cPICEndSize = closedPICSize - (((numPICCases - 1) * cPICCaseSize) + firstCPICCaseOffset);
 
 	/* self cCode: ''
 		inSmalltalk:
@@ -8388,7 +8389,7 @@
 			 self disassembleFrom: methodZoneBase + headerSize to: end - 1.
 			 self halt] */
 
-	cPICEndSize = closedPICSize - (((numPICCases - 1) * cPICCaseSize) + firstCPICCaseOffset);
+	closedPICSize = roundUpLength(closedPICSize);
 }
 
 
@@ -15474,10 +15475,10 @@
 		byteAtput(retpc - 3, (((usqInt) distance) >> 8) & 255);
 		byteAtput(retpc - 4, distance & 255);
 		if (0) {
-			assert((callTargetFromReturnAddress(self_in_relocateCallBeforeReturnPCby, retpc)) >= (minCallAddress()));
+			assert((((usqInt) (callTargetFromReturnAddress(self_in_relocateCallBeforeReturnPCby, retpc)))) >= (minCallAddress()));
 		}
 		else {
-			if (!((callTargetFromReturnAddress(self_in_relocateCallBeforeReturnPCby, retpc)) >= (minCallAddress()))) {
+			if (!((((usqInt) (callTargetFromReturnAddress(self_in_relocateCallBeforeReturnPCby, retpc)))) >= (minCallAddress()))) {
 				error("relocating call to invalid address");
 			}
 		}
@@ -15899,7 +15900,7 @@
 	byteAtput(callSiteReturnAddress - 2, (((usqInt) callDistance) >> 16) & 255);
 	byteAtput(callSiteReturnAddress - 3, (((usqInt) callDistance) >> 8) & 255);
 	byteAtput(callSiteReturnAddress - 4, callDistance & 255);
-	assert((callTargetFromReturnAddress(self_in_rewriteCallAttarget, callSiteReturnAddress)) == callTargetAddress);
+	assert((((usqInt) (callTargetFromReturnAddress(self_in_rewriteCallAttarget, callSiteReturnAddress)))) == callTargetAddress);
 	return 5;
 }
 
@@ -15935,7 +15936,7 @@
 	byteAtput(callSiteReturnAddress - 7, (((usqInt) cacheTag) >> 16) & 255);
 	byteAtput(callSiteReturnAddress - 8, (((usqInt) cacheTag) >> 8) & 255);
 	byteAtput(callSiteReturnAddress - 9, cacheTag & 255);
-	assert((callTargetFromReturnAddress(self_in_rewriteInlineCacheAttagtarget, callSiteReturnAddress)) == callTargetAddress);
+	assert((((usqInt) (callTargetFromReturnAddress(self_in_rewriteInlineCacheAttagtarget, callSiteReturnAddress)))) == callTargetAddress);
 	return 10;
 }
 

Modified: branches/Cog/nscogsrc/vm/cogit.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.h	2011-09-21 23:10:54 UTC (rev 2493)
+++ branches/Cog/nscogsrc/vm/cogit.h	2011-09-23 01:24:09 UTC (rev 2494)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.125 uuid: 539c10db-ab19-4fc7-ada1-4ffae6463ed1
+	CCodeGenerator VMMaker.oscog-eem.126 uuid: 6af3249f-6c5c-4e1b-8a69-f59e542154c5
  */
 
 

Modified: branches/Cog/nscogsrc/vm/cogmethod.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogmethod.h	2011-09-21 23:10:54 UTC (rev 2493)
+++ branches/Cog/nscogsrc/vm/cogmethod.h	2011-09-23 01:24:09 UTC (rev 2494)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.125 uuid: 539c10db-ab19-4fc7-ada1-4ffae6463ed1
+	CCodeGenerator VMMaker.oscog-eem.126 uuid: 6af3249f-6c5c-4e1b-8a69-f59e542154c5
  */
 
 typedef struct {


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Wed Sep 21 16:09:47 PDT 2011
   + Thu Sep 22 18:21:48 PDT 2011

Modified: branches/Cog/scripts/uploadvms
===================================================================
--- branches/Cog/scripts/uploadvms	2011-09-21 23:10:54 UTC (rev 2493)
+++ branches/Cog/scripts/uploadvms	2011-09-23 01:24:09 UTC (rev 2494)
@@ -25,7 +25,7 @@
 		-l)		ARCHIVES="$ARCHIVES	coglinux.tgz	nsvmlinux.tgz";;
 		-m)		ARCHIVES="$ARCHIVES	Cog.app.tgz	Newspeak Virtual Machine.app.tgz";;
 		-w)		ARCHIVES="$ARCHIVES	cogwin.tgz	nsvmwin.tgz";;
-		-?|-h)  echo usage: $0 [-l -m -w -cl -cm -cw -nl -nm -nw]; exit 0
+		-?|-h)  echo usage: $0 [-l -m -w -cl -cm -cw -ctl -ctm -ctw -nl -nm -nw]; exit 0
 		esac
 		shift
 	done

Modified: branches/Cog/src/vm/cogit.c
===================================================================
--- branches/Cog/src/vm/cogit.c	2011-09-21 23:10:54 UTC (rev 2493)
+++ branches/Cog/src/vm/cogit.c	2011-09-23 01:24:09 UTC (rev 2494)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.125 uuid: 539c10db-ab19-4fc7-ada1-4ffae6463ed1
+	CCodeGenerator VMMaker.oscog-eem.126 uuid: 6af3249f-6c5c-4e1b-8a69-f59e542154c5
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.125 uuid: 539c10db-ab19-4fc7-ada1-4ffae6463ed1
+	StackToRegisterMappingCogit VMMaker.oscog-eem.126 uuid: 6af3249f-6c5c-4e1b-8a69-f59e542154c5
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.125 uuid: 539c10db-ab19-4fc7-ada1-4ffae6463ed1 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.126 uuid: 6af3249f-6c5c-4e1b-8a69-f59e542154c5 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -8288,9 +8288,10 @@
 	compileClosedPICPrototype();
 	computeMaximumSizes();
 	headerSize = sizeof(CogMethod);
-	closedPICSize = roundUpLength(headerSize + (generateInstructionsAt(methodZoneBase + headerSize)));
+	closedPICSize = headerSize + (generateInstructionsAt(methodZoneBase + headerSize));
 	firstCPICCaseOffset = ((endCPICCase0->address)) - methodZoneBase;
 	cPICCaseSize = ((endCPICCase1->address)) - ((endCPICCase0->address));
+	cPICEndSize = closedPICSize - (((numPICCases - 1) * cPICCaseSize) + firstCPICCaseOffset);
 
 	/* self cCode: ''
 		inSmalltalk:
@@ -8299,7 +8300,7 @@
 			 self disassembleFrom: methodZoneBase + headerSize to: end - 1.
 			 self halt] */
 
-	cPICEndSize = closedPICSize - (((numPICCases - 1) * cPICCaseSize) + firstCPICCaseOffset);
+	closedPICSize = roundUpLength(closedPICSize);
 }
 
 
@@ -15083,10 +15084,10 @@
 		byteAtput(retpc - 3, (((usqInt) distance) >> 8) & 255);
 		byteAtput(retpc - 4, distance & 255);
 		if (0) {
-			assert((callTargetFromReturnAddress(self_in_relocateCallBeforeReturnPCby, retpc)) >= (minCallAddress()));
+			assert((((usqInt) (callTargetFromReturnAddress(self_in_relocateCallBeforeReturnPCby, retpc)))) >= (minCallAddress()));
 		}
 		else {
-			if (!((callTargetFromReturnAddress(self_in_relocateCallBeforeReturnPCby, retpc)) >= (minCallAddress()))) {
+			if (!((((usqInt) (callTargetFromReturnAddress(self_in_relocateCallBeforeReturnPCby, retpc)))) >= (minCallAddress()))) {
 				error("relocating call to invalid address");
 			}
 		}
@@ -15420,7 +15421,7 @@
 	byteAtput(callSiteReturnAddress - 2, (((usqInt) callDistance) >> 16) & 255);
 	byteAtput(callSiteReturnAddress - 3, (((usqInt) callDistance) >> 8) & 255);
 	byteAtput(callSiteReturnAddress - 4, callDistance & 255);
-	assert((callTargetFromReturnAddress(self_in_rewriteCallAttarget, callSiteReturnAddress)) == callTargetAddress);
+	assert((((usqInt) (callTargetFromReturnAddress(self_in_rewriteCallAttarget, callSiteReturnAddress)))) == callTargetAddress);
 	return 5;
 }
 
@@ -15456,7 +15457,7 @@
 	byteAtput(callSiteReturnAddress - 7, (((usqInt) cacheTag) >> 16) & 255);
 	byteAtput(callSiteReturnAddress - 8, (((usqInt) cacheTag) >> 8) & 255);
 	byteAtput(callSiteReturnAddress - 9, cacheTag & 255);
-	assert((callTargetFromReturnAddress(self_in_rewriteInlineCacheAttagtarget, callSiteReturnAddress)) == callTargetAddress);
+	assert((((usqInt) (callTargetFromReturnAddress(self_in_rewriteInlineCacheAttagtarget, callSiteReturnAddress)))) == callTargetAddress);
 	return 10;
 }
 

Modified: branches/Cog/src/vm/cogit.h
===================================================================
--- branches/Cog/src/vm/cogit.h	2011-09-21 23:10:54 UTC (rev 2493)
+++ branches/Cog/src/vm/cogit.h	2011-09-23 01:24:09 UTC (rev 2494)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.125 uuid: 539c10db-ab19-4fc7-ada1-4ffae6463ed1
+	CCodeGenerator VMMaker.oscog-eem.126 uuid: 6af3249f-6c5c-4e1b-8a69-f59e542154c5
  */
 
 

Modified: branches/Cog/src/vm/cogmethod.h
===================================================================
--- branches/Cog/src/vm/cogmethod.h	2011-09-21 23:10:54 UTC (rev 2493)
+++ branches/Cog/src/vm/cogmethod.h	2011-09-23 01:24:09 UTC (rev 2494)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.125 uuid: 539c10db-ab19-4fc7-ada1-4ffae6463ed1
+	CCodeGenerator VMMaker.oscog-eem.126 uuid: 6af3249f-6c5c-4e1b-8a69-f59e542154c5
  */
 
 typedef struct {



More information about the Vm-dev mailing list