[Vm-dev] [commit][3382] CogVM source as per VMMaker.oscog-eem.1365

commits at squeakvm.org commits at squeakvm.org
Fri Jun 19 17:08:39 UTC 2015


Revision: 3382
Author:   eliot
Date:     2015-06-19 10:08:36 -0700 (Fri, 19 Jun 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1365

Cogit:
Fix regression in relocateMethodsPreCompaction in VMMaker.oscog-eem.1342.

Fix multiple annotations on the same pc now that annotations are directly
attached to instructions by annotating a Label with the second annotation.
Affects e.g. calls through ceNonLocalReturnTrampoline.  Neaten
generateMapAt:start: by moving the byte write inside the new
addToMap:instruction:byte:at:for:.

Fix addressIsInCurrentCompilation: using youngReferrers as the upper limit.
Revise initializeCodeZoneFrom:upTo: as a result.

ARM Cogit:
Fix relocating jumps in PICs by indirecting through the
literalsManager to skip out-of-line literals as required.

Set an out-of-line literal's opcodeIndex when dumping literals and revise the
ARM's outOfLineLiteralOpcodeLimit up a bit.  Add an assert to check that the
pc offset is in range.

Remember to nil the address on literal allocation.

Make Literals not pc-dependent; only the instructions that reference them are.

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-18 21:08:45 UTC (rev 3381)
+++ branches/Cog/nsspursrc/vm/cogit.h	2015-06-19 17:08:36 UTC (rev 3382)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1363 uuid: 7688edec-456b-4fce-a6e0-b0dd8cf2877a
+	CCodeGenerator VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
  */
 
 

Modified: branches/Cog/nsspursrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitARMv5.c	2015-06-18 21:08:45 UTC (rev 3381)
+++ branches/Cog/nsspursrc/vm/cogitARMv5.c	2015-06-19 17:08:36 UTC (rev 3382)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1363 uuid: 7688edec-456b-4fce-a6e0-b0dd8cf2877a
+	CCodeGenerator VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1363 uuid: 7688edec-456b-4fce-a6e0-b0dd8cf2877a
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1363 uuid: 7688edec-456b-4fce-a6e0-b0dd8cf2877a " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -1931,7 +1931,6 @@
 #define reportError(n) warning("compilation error")
 #define setCFramePointer(theFP) (CFramePointer = (void *)(theFP))
 #define setCStackPointer(theSP) (CStackPointer = (void *)(theSP))
-#define traceMapinstructionbyteatfor(ig,no,r,e,d) 0
 #define tryLockVMOwner() (ceTryLockVMOwner() != 0)
 #define unlockVMOwner() ceUnlockVMOwner()
 #define nextOpenPIC methodObject
@@ -2006,7 +2005,8 @@
 cloneLiteralFrom(AbstractInstruction * self_in_cloneLiteralFrom, AbstractInstruction *existingLiteral)
 {
 	assert((((existingLiteral->opcode)) == Literal)
-	 && (((self_in_cloneLiteralFrom->dependent)) == null));
+	 && ((((self_in_cloneLiteralFrom->dependent)) == null)
+	 && (((self_in_cloneLiteralFrom->address)) == null)));
 	(self_in_cloneLiteralFrom->opcode) = Literal;
 	(self_in_cloneLiteralFrom->annotation) = (existingLiteral->annotation);
 	((self_in_cloneLiteralFrom->operands))[0] = (((existingLiteral->operands))[0]);
@@ -2062,8 +2062,9 @@
 
 	/* separate := nil for Slang */
 
+	(self_in_initializeSharableLiteral->annotation) = null;
+	(self_in_initializeSharableLiteral->address) = null;
 	(self_in_initializeSharableLiteral->dependent) = null;
-	(self_in_initializeSharableLiteral->annotation) = null;
 	((self_in_initializeSharableLiteral->operands))[0] = literal;
 	((self_in_initializeSharableLiteral->operands))[1] = 1;
 	((self_in_initializeSharableLiteral->operands))[2] = -1;
@@ -2081,8 +2082,9 @@
 
 	/* separate := nil for Slang */
 
+	(self_in_initializeUniqueLiteral->annotation) = null;
+	(self_in_initializeUniqueLiteral->address) = null;
 	(self_in_initializeUniqueLiteral->dependent) = null;
-	(self_in_initializeUniqueLiteral->annotation) = null;
 	((self_in_initializeUniqueLiteral->operands))[0] = literal;
 	((self_in_initializeUniqueLiteral->operands))[1] = 0;
 	((self_in_initializeUniqueLiteral->operands))[2] = -1;
@@ -3511,6 +3513,7 @@
 		jumpTarget = jumpTarget1;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord42 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -3549,6 +3552,7 @@
 		jumpTarget2 = jumpTarget11;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord43 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4113,6 +4117,7 @@
 		rd2 = rn4;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord44 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4256,6 +4261,7 @@
 		rd22 = rn24;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord63 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4344,6 +4350,7 @@
 			rd4 = rn6;
 			/* begin moveCw:intoR: */
 			assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+			assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 			/* begin machineCodeAt:put: */
 			aWord46 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 				? 1
@@ -4440,6 +4447,7 @@
 		rd5 = 0;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord47 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4516,6 +4524,7 @@
 		rd23 = rn25;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord64 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4599,6 +4608,7 @@
 		rd7 = rn9;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord49 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4653,6 +4663,7 @@
 		rd8 = rn10;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord50 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4796,6 +4807,7 @@
 		rd24 = rn26;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord65 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4822,6 +4834,7 @@
 		rd10 = rn12;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord52 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4842,6 +4855,7 @@
 		rd11 = rn13;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord53 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4862,6 +4876,7 @@
 		rd12 = 0;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord54 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4882,6 +4897,7 @@
 		rd13 = rn15;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord55 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4902,6 +4918,7 @@
 		rd14 = rn16;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord56 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4922,6 +4939,7 @@
 		rd15 = rn17;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord57 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -5067,6 +5085,7 @@
 		}
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord35 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -5276,6 +5295,7 @@
 		}
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord210 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -5306,6 +5326,7 @@
 		}
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord211 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -5365,6 +5386,7 @@
 			else {
 				/* begin moveCw:intoR: */
 				assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+				assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 				/* begin machineCodeAt:put: */
 				aWord310 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 					? 1
@@ -5430,6 +5452,7 @@
 			else {
 				/* begin moveCw:intoR: */
 				assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+				assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 				/* begin machineCodeAt:put: */
 				aWord311 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 					? 1
@@ -5483,6 +5506,7 @@
 		else {
 			/* begin moveCw:intoR: */
 			assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+			assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 			/* begin machineCodeAt:put: */
 			aWord37 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 				? 1
@@ -5539,6 +5563,7 @@
 		else {
 			/* begin moveCw:intoR: */
 			assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+			assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 			/* begin machineCodeAt:put: */
 			aWord38 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 				? 1
@@ -5663,6 +5688,7 @@
 		else {
 			/* begin moveCw:intoR: */
 			assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+			assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 			/* begin machineCodeAt:put: */
 			aWord39 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 				? 1
@@ -5754,6 +5780,7 @@
 		}
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord40 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -5843,6 +5870,7 @@
 		}
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord123 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -6673,6 +6701,7 @@
 	}
 	/* begin moveCw:intoR: */
 	assert(addressIsInCurrentCompilation((((self_in_loadCwInto->dependent))->address)));
+	assert((abs(((((self_in_loadCwInto->dependent))->address)) - (((self_in_loadCwInto->address)) + 8))) < (1 << 12));
 	/* begin machineCodeAt:put: */
 	aWord1 = ldrrnplusimm(self_in_loadCwInto, destReg, PC, (((((self_in_loadCwInto->dependent))->address)) >= (((self_in_loadCwInto->address)) + 8)
 		? 1
@@ -7320,7 +7349,7 @@
 addressIsInCurrentCompilation(sqInt address)
 {
 	return ((((usqInt)address)) >= ((methodLabel->address)))
-	 && ((((usqInt)address)) < (((methodLabel->address)) + (1 << 16)));
+	 && ((((usqInt)address)) < (youngReferrers()));
 }
 
 	/* Cogit>>#addressIsInFixups: */
@@ -8492,7 +8521,9 @@
 
 		/* Find target from jump.  Ignore jumps to the interpret and MNU calls within this PIC */
 
-		entryPoint = jumpLongTargetBeforeFollowingAddress(backEnd, pc - offsetToJump);
+		entryPoint = jumpLongTargetBeforeFollowingAddress(backEnd(), (pc - offsetToJump) - ((i <= 1
+	? BytesPerOop
+	: BytesPerOop + 4)));
 		assert((entryPoint > methodZoneBase)
 		 && (entryPoint < (freeStart())));
 		if (((((usqInt)entryPoint)) < (((usqInt)cPIC)))
@@ -9708,7 +9739,9 @@
 
 		/* Find target from jump.  Ignore jumps to the interpret and MNU calls within this PIC */
 
-		entryPoint = jumpLongTargetBeforeFollowingAddress(backEnd, pc);
+		entryPoint = jumpLongTargetBeforeFollowingAddress(backEnd(), pc - ((i <= 1
+	? BytesPerOop
+	: BytesPerOop + 4)));
 		if ((entryPoint < (((sqInt)cPIC)))
 		 || (entryPoint > ((((sqInt)cPIC)) + ((cPIC->blockSize))))) {
 			targetMethod = ((CogMethod *) (entryPoint - cmNoCheckEntryOffset));
@@ -9734,7 +9767,9 @@
 	target = (((usqInt)targetMethod)) + cmNoCheckEntryOffset;
 	pc = (((sqInt)cPIC)) + firstCPICCaseOffset;
 	for (i = 1; i <= ((cPIC->cPICNumCases)); i += 1) {
-		if (target == (jumpLongTargetBeforeFollowingAddress(backEnd, pc))) {
+		if (target == (jumpLongTargetBeforeFollowingAddress(backEnd(), pc - ((i <= 1
+	? BytesPerOop
+	: BytesPerOop + 4))))) {
 			return 1;
 		}
 		pc += cPICCaseSize;
@@ -10534,6 +10569,7 @@
     AbstractInstruction *abstractInstruction;
     BytecodeFixup *fixup;
     sqInt i;
+    sqInt j;
     sqInt pcDependentIndex;
 
 	absoluteAddress = eventualAbsoluteAddress;
@@ -10554,8 +10590,8 @@
 			absoluteAddress = concretizeAt(abstractInstruction, absoluteAddress);
 		}
 	}
-	for (i = 0; i < pcDependentIndex; i += 1) {
-		fixup = fixupAt(i);
+	for (j = 0; j < pcDependentIndex; j += 1) {
+		fixup = fixupAt(j);
 		abstractInstruction = abstractInstructionAt((fixup->instructionIndex));
 		if (breakPC == absoluteAddress) {
 			haltmsg("breakPC reached in generateInstructionsAt:");
@@ -10583,12 +10619,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;
 
@@ -10608,16 +10644,18 @@
 				maxDelta = (((((delta < MaxX2NDisplacement) ? delta : MaxX2NDisplacement)) | DisplacementMask) - DisplacementMask);
 				assert((((usqInt) maxDelta) >> AnnotationShift) <= DisplacementMask);
 				if (!(addressOrNull == null)) {
+					/* begin addToMap:instruction:byte:at:for: */
 					byteAtput(addressOrNull - length, (((usqInt) maxDelta) >> AnnotationShift) + DisplacementX2N);
-					traceMapinstructionbyteatfor(IsDisplacementX2N, instruction, (((usqInt) maxDelta) >> AnnotationShift) + DisplacementX2N, addressOrNull - length, mcpc);
+					null;
 				}
 				location += maxDelta * 4;
 				length += 1;
 			}
 			if (!(addressOrNull == null)) {
 				mapEntry = delta + ((((annotation < IsSendCall) ? annotation : IsSendCall)) << AnnotationShift);
+				/* begin addToMap:instruction:byte:at:for: */
 				byteAtput(addressOrNull - length, mapEntry);
-				traceMapinstructionbyteatfor(annotation, instruction, mapEntry, addressOrNull - length, mcpc);
+				null;
 			}
 			location += delta * 4;
 			length += 1;
@@ -10627,16 +10665,18 @@
 
 				if (!(addressOrNull == null)) {
 					mapEntry = (IsAnnotationExtension << AnnotationShift) + (annotation - IsSendCall);
+					/* begin addToMap:instruction:byte:at:for: */
 					byteAtput(addressOrNull - length, mapEntry);
-					traceMapinstructionbyteatfor(annotation, instruction, mapEntry, addressOrNull - length, mcpc);
+					null;
 				}
 				length += 1;
 			}
 		}
 	}
 	if (!(addressOrNull == null)) {
+		/* begin addToMap:instruction:byte:at:for: */
 		byteAtput(addressOrNull - length, MapEnd);
-		traceMapinstructionbyteatfor(MapEnd, null, MapEnd, addressOrNull - length, 0);
+		null;
 	}
 	return length + 1;
 }
@@ -11389,13 +11429,13 @@
 	codeBase = (methodZoneBase = startAddress);
 	minValidCallAddress = (((((codeBase < (interpretAddress())) ? codeBase : (interpretAddress()))) < (primitiveFailAddress())) ? (((codeBase < (interpretAddress())) ? codeBase : (interpretAddress()))) : (primitiveFailAddress()));
 	initializeBackend();
+	manageFromto(methodZoneBase, endAddress);
 	maybeGenerateCheckFeatures();
 	maybeGenerateICacheFlush();
 	generateVMOwnerLockFunctions();
 	ceGetSP = ((unsigned long (*)(void)) (genGetLeafCallStackPointer()));
 	generateStackPointerCapture();
 	generateTrampolines();
-	
 	manageFromto(methodZoneBase, endAddress);
 	computeEntryOffsets();
 	generateClosedPICPrototype();
@@ -13147,7 +13187,9 @@
 
 		/* Find target from jump.  Ignore jumps to the interpret and MNU calls within this PIC */
 
-		entryPoint = jumpLongTargetBeforeFollowingAddress(backEnd, pc);
+		entryPoint = jumpLongTargetBeforeFollowingAddress(backEnd(), pc - ((i <= 1
+	? BytesPerOop
+	: BytesPerOop + 4)));
 		if ((entryPoint < (((sqInt)cPIC)))
 		 || (entryPoint > ((((sqInt)cPIC)) + ((cPIC->blockSize))))) {
 			targetMethod = ((CogMethod *) (entryPoint - cmNoCheckEntryOffset));
@@ -13741,6 +13783,7 @@
 relocateCallsInClosedPIC(CogMethod *cPIC)
 {
     sqLong delta;
+    sqInt delta1;
     sqInt entryPoint;
     sqInt i;
     sqInt pc;
@@ -13754,12 +13797,18 @@
 
 		/* Find target from jump.  Ignore jumps to the interpret and MNU calls within this PIC */
 
-		entryPoint = jumpLongTargetBeforeFollowingAddress(backEnd, pc);
+		entryPoint = jumpLongTargetBeforeFollowingAddress(backEnd(), pc - ((i <= 1
+	? BytesPerOop
+	: BytesPerOop + 4)));
 		if ((entryPoint < (((sqInt)cPIC)))
 		 || (entryPoint > ((((sqInt)cPIC)) + ((cPIC->blockSize))))) {
 			targetMethod = ((CogMethod *) (entryPoint - cmNoCheckEntryOffset));
 			assert(((targetMethod->cmType)) == CMMethod);
-			relocateJumpLongBeforeFollowingAddressby(backEnd, pc, -(delta - ((targetMethod->objectHeader))));
+			/* begin cPICCase:relocateJumpLongBefore:by: */
+			delta1 = -(delta - ((targetMethod->objectHeader)));
+			relocateJumpLongBeforeFollowingAddressby(backEnd(), pc - ((i <= 1
+	? BytesPerOop
+	: BytesPerOop + 4)), delta1);
 		}
 		pc += cPICCaseSize;
 	}
@@ -15693,7 +15742,7 @@
     CogMethod *cogMethod;
 
 	cogMethod = ((CogMethod *) baseAddress);
-	while (((usqInt)cogMethod)) {
+	while ((((usqInt)cogMethod)) < mzFreeStart) {
 		if (((cogMethod->cmType)) != CMFree) {
 			if (((cogMethod->cmType)) == CMClosedPIC) {
 				relocateCallsInClosedPIC(cogMethod);
@@ -19511,15 +19560,19 @@
 		? (literalAsInstruction->address)
 		: ((usqInt)literalAsInstruction));
 	assert((((self_in_concretizeLiteral->dependent)) != null)
-	 && ((((((self_in_concretizeLiteral->dependent))->opcode)) == Literal)
-	 && (((((self_in_concretizeLiteral->dependent))->address)) == ((self_in_concretizeLiteral->address)))));
+	 && (((((self_in_concretizeLiteral->dependent))->opcode)) == Literal));
 	if (!(((((self_in_concretizeLiteral->dependent))->annotation)) == null)) {
 		assert(((self_in_concretizeLiteral->annotation)) == null);
 		(self_in_concretizeLiteral->annotation) = (((self_in_concretizeLiteral->dependent))->annotation);
 	}
+	if (!(((((self_in_concretizeLiteral->dependent))->address)) == null)) {
+		assert(((((self_in_concretizeLiteral->dependent))->address)) == ((self_in_concretizeLiteral->address)));
+	}
+	(((self_in_concretizeLiteral->dependent))->address = (self_in_concretizeLiteral->address));
 	/* begin machineCodeAt:put: */
 	((self_in_concretizeLiteral->machineCode))[0 / 4] = literal;
 	self_in_concretizeLiteral;
+	(self_in_concretizeLiteral->machineCodeSize) = 4;
 	return self_in_concretizeLiteral;
 }
 
@@ -19542,8 +19595,9 @@
 {
 	return (isJump(self_in_isPCDependent))
 	 || ((((self_in_isPCDependent->opcode)) == AlignmentNops)
-	 || ((((self_in_isPCDependent->dependent)) != null)
-	 && (((((self_in_isPCDependent->dependent))->opcode)) == Literal)));
+	 || ((((self_in_isPCDependent->opcode)) != Literal)
+	 && ((((self_in_isPCDependent->dependent)) != null)
+	 && (((((self_in_isPCDependent->dependent))->opcode)) == Literal))));
 }
 
 
@@ -19574,13 +19628,14 @@
 }
 
 
-/*	The maximum offset in a LDR is 1<<12. Be conservative. */
+/*	The maximum offset in a LDR is (1<<12)-1, or (1<<10)-1 instructions.
+	Be a little conservative. */
 
 	/* CogOutOfLineLiteralsARMCompiler>>#outOfLineLiteralOpcodeLimit */
 static sqInt
 outOfLineLiteralOpcodeLimit(AbstractInstruction * self_in_outOfLineLiteralOpcodeLimit)
 {
-	return 1 << (11 - 2);
+	return (1 << (12 - 2)) - 4;
 }
 
 
@@ -20288,6 +20343,7 @@
 dumpLiterals(sqInt generateBranchAround)
 {
     sqInt i;
+    sqInt index;
     AbstractInstruction *jump;
     AbstractInstruction *litInst;
 
@@ -20298,6 +20354,11 @@
 	for (i = lastDumpedLiteralIndex; i < nextLiteralIndex; i += 1) {
 		litInst = literalInstructionAt(i);
 		((genoperand(Literal, ((litInst->operands))[0]))->dependent = litInst);
+		/* begin setLiteralOpcodeIndex: */
+		index = opcodeIndex;
+		assert(((litInst->opcode)) == Literal);
+		((litInst->operands))[2] = index;
+		litInst;
 	}
 	if (generateBranchAround) {
 		jmpTarget(jump, gLabel());
@@ -24387,13 +24448,15 @@
 	/* begin JumpAboveOrEqual: */
 	jumpTarget = fixupAt(targetBytecodePC - initialPC);
 	genoperand(JumpAboveOrEqual, ((sqInt)jumpTarget));
-	/* begin annotateBytecode: */
 	/* begin CallRT: */
 	/* begin annotateCall: */
 	/* begin Call: */
 	abstractInstruction1 = genoperand(Call, ceCheckForInterruptTrampoline);
 	(abstractInstruction1->annotation = IsRelativeCall);
-	abstractInstruction = abstractInstruction1;
+	abstractInstruction1;
+	/* begin annotateBytecode: */
+	/* begin Label */
+	abstractInstruction = genoperandoperand(Label, (labelCounter += 1), bytecodePC);
 	(abstractInstruction->annotation = HasBytecodePC);
 	abstractInstruction;
 	/* begin Jump: */
@@ -27094,13 +27157,15 @@
 
 	if (inBlock) {
 		assert(needsFrame);
-		/* begin annotateBytecode: */
 		/* begin CallRT: */
 		/* begin annotateCall: */
 		/* begin Call: */
 		abstractInstruction1 = genoperand(Call, ceNonLocalReturnTrampoline);
 		(abstractInstruction1->annotation = IsRelativeCall);
-		abstractInstruction = abstractInstruction1;
+		abstractInstruction1;
+		/* begin annotateBytecode: */
+		/* begin Label */
+		abstractInstruction = genoperandoperand(Label, (labelCounter += 1), bytecodePC);
 		(abstractInstruction->annotation = HasBytecodePC);
 		abstractInstruction;
 		return 0;

Modified: branches/Cog/nsspursrc/vm/cogitIA32.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitIA32.c	2015-06-18 21:08:45 UTC (rev 3381)
+++ branches/Cog/nsspursrc/vm/cogitIA32.c	2015-06-19 17:08:36 UTC (rev 3382)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1363 uuid: 7688edec-456b-4fce-a6e0-b0dd8cf2877a
+	CCodeGenerator VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1363 uuid: 7688edec-456b-4fce-a6e0-b0dd8cf2877a
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1363 uuid: 7688edec-456b-4fce-a6e0-b0dd8cf2877a " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -1853,7 +1853,6 @@
 #define reportError(n) warning("compilation error")
 #define setCFramePointer(theFP) (CFramePointer = (void *)(theFP))
 #define setCStackPointer(theSP) (CStackPointer = (void *)(theSP))
-#define traceMapinstructionbyteatfor(ig,no,r,e,d) 0
 #define tryLockVMOwner() (ceTryLockVMOwner() != 0)
 #define unlockVMOwner() ceUnlockVMOwner()
 #define nextOpenPIC methodObject
@@ -1959,7 +1958,8 @@
 cloneLiteralFrom(AbstractInstruction * self_in_cloneLiteralFrom, AbstractInstruction *existingLiteral)
 {
 	assert((((existingLiteral->opcode)) == Literal)
-	 && (((self_in_cloneLiteralFrom->dependent)) == null));
+	 && ((((self_in_cloneLiteralFrom->dependent)) == null)
+	 && (((self_in_cloneLiteralFrom->address)) == null)));
 	(self_in_cloneLiteralFrom->opcode) = Literal;
 	(self_in_cloneLiteralFrom->annotation) = (existingLiteral->annotation);
 	((self_in_cloneLiteralFrom->operands))[0] = (((existingLiteral->operands))[0]);
@@ -2037,8 +2037,9 @@
 
 	/* separate := nil for Slang */
 
+	(self_in_initializeSharableLiteral->annotation) = null;
+	(self_in_initializeSharableLiteral->address) = null;
 	(self_in_initializeSharableLiteral->dependent) = null;
-	(self_in_initializeSharableLiteral->annotation) = null;
 	((self_in_initializeSharableLiteral->operands))[0] = literal;
 	((self_in_initializeSharableLiteral->operands))[1] = 1;
 	((self_in_initializeSharableLiteral->operands))[2] = -1;
@@ -2056,8 +2057,9 @@
 
 	/* separate := nil for Slang */
 
+	(self_in_initializeUniqueLiteral->annotation) = null;
+	(self_in_initializeUniqueLiteral->address) = null;
 	(self_in_initializeUniqueLiteral->dependent) = null;
-	(self_in_initializeUniqueLiteral->annotation) = null;
 	((self_in_initializeUniqueLiteral->operands))[0] = literal;
 	((self_in_initializeUniqueLiteral->operands))[1] = 0;
 	((self_in_initializeUniqueLiteral->operands))[2] = -1;
@@ -7863,7 +7865,7 @@
 
 		/* Find target from jump.  Ignore jumps to the interpret and MNU calls within this PIC */
 
-		entryPoint = jumpLongTargetBeforeFollowingAddress(backEnd, pc - offsetToJump);
+		entryPoint = jumpLongTargetBeforeFollowingAddress(backEnd(), pc - offsetToJump);
 		assert((entryPoint > methodZoneBase)
 		 && (entryPoint < (freeStart())));
 		if (((((usqInt)entryPoint)) < (((usqInt)cPIC)))
@@ -9071,7 +9073,7 @@
 
 		/* Find target from jump.  Ignore jumps to the interpret and MNU calls within this PIC */
 
-		entryPoint = jumpLongTargetBeforeFollowingAddress(backEnd, pc);
+		entryPoint = jumpLongTargetBeforeFollowingAddress(backEnd(), pc);
 		if ((entryPoint < (((sqInt)cPIC)))
 		 || (entryPoint > ((((sqInt)cPIC)) + ((cPIC->blockSize))))) {
 			targetMethod = ((CogMethod *) (entryPoint - cmNoCheckEntryOffset));
@@ -9097,7 +9099,7 @@
 	target = (((usqInt)targetMethod)) + cmNoCheckEntryOffset;
 	pc = (((sqInt)cPIC)) + firstCPICCaseOffset;
 	for (i = 1; i <= ((cPIC->cPICNumCases)); i += 1) {
-		if (target == (jumpLongTargetBeforeFollowingAddress(backEnd, pc))) {
+		if (target == (jumpLongTargetBeforeFollowingAddress(backEnd(), pc))) {
 			return 1;
 		}
 		pc += cPICCaseSize;
@@ -9912,6 +9914,7 @@
     AbstractInstruction *abstractInstruction;
     BytecodeFixup *fixup;
     sqInt i;
+    sqInt j;
     sqInt pcDependentIndex;
 
 	absoluteAddress = eventualAbsoluteAddress;
@@ -9932,8 +9935,8 @@
 			absoluteAddress = concretizeAt(abstractInstruction, absoluteAddress);
 		}
 	}
-	for (i = 0; i < pcDependentIndex; i += 1) {
-		fixup = fixupAt(i);
+	for (j = 0; j < pcDependentIndex; j += 1) {
+		fixup = fixupAt(j);
 		abstractInstruction = abstractInstructionAt((fixup->instructionIndex));
 		if (breakPC == absoluteAddress) {
 			haltmsg("breakPC reached in generateInstructionsAt:");
@@ -9982,16 +9985,18 @@
 				maxDelta = (((((delta < MaxX2NDisplacement) ? delta : MaxX2NDisplacement)) | DisplacementMask) - DisplacementMask);
 				assert((((usqInt) maxDelta) >> AnnotationShift) <= DisplacementMask);
 				if (!(addressOrNull == null)) {
+					/* begin addToMap:instruction:byte:at:for: */
 					byteAtput(addressOrNull - length, (((usqInt) maxDelta) >> AnnotationShift) + DisplacementX2N);
-					traceMapinstructionbyteatfor(IsDisplacementX2N, instruction, (((usqInt) maxDelta) >> AnnotationShift) + DisplacementX2N, addressOrNull - length, mcpc);
+					null;
 				}
 				location += maxDelta;
 				length += 1;
 			}
 			if (!(addressOrNull == null)) {
 				mapEntry = delta + ((((annotation < IsSendCall) ? annotation : IsSendCall)) << AnnotationShift);
+				/* begin addToMap:instruction:byte:at:for: */
 				byteAtput(addressOrNull - length, mapEntry);
-				traceMapinstructionbyteatfor(annotation, instruction, mapEntry, addressOrNull - length, mcpc);
+				null;
 			}
 			location += delta;
 			length += 1;
@@ -10001,16 +10006,18 @@
 
 				if (!(addressOrNull == null)) {
 					mapEntry = (IsAnnotationExtension << AnnotationShift) + (annotation - IsSendCall);
+					/* begin addToMap:instruction:byte:at:for: */
 					byteAtput(addressOrNull - length, mapEntry);
-					traceMapinstructionbyteatfor(annotation, instruction, mapEntry, addressOrNull - length, mcpc);
+					null;
 				}
 				length += 1;
 			}
 		}
 	}
 	if (!(addressOrNull == null)) {
+		/* begin addToMap:instruction:byte:at:for: */
 		byteAtput(addressOrNull - length, MapEnd);
-		traceMapinstructionbyteatfor(MapEnd, null, MapEnd, addressOrNull - length, 0);
+		null;
 	}
 	return length + 1;
 }
@@ -10755,13 +10762,13 @@
 	codeBase = (methodZoneBase = startAddress);
 	minValidCallAddress = (((((codeBase < (interpretAddress())) ? codeBase : (interpretAddress()))) < (primitiveFailAddress())) ? (((codeBase < (interpretAddress())) ? codeBase : (interpretAddress()))) : (primitiveFailAddress()));
 	initializeBackend();
+	manageFromto(methodZoneBase, endAddress);
 	maybeGenerateCheckFeatures();
 	maybeGenerateICacheFlush();
 	generateVMOwnerLockFunctions();
 	ceGetSP = ((unsigned long (*)(void)) (genGetLeafCallStackPointer()));
 	generateStackPointerCapture();
 	generateTrampolines();
-	
 	manageFromto(methodZoneBase, endAddress);
 	computeEntryOffsets();
 	generateClosedPICPrototype();
@@ -12540,7 +12547,7 @@
 
 		/* Find target from jump.  Ignore jumps to the interpret and MNU calls within this PIC */
 
-		entryPoint = jumpLongTargetBeforeFollowingAddress(backEnd, pc);
+		entryPoint = jumpLongTargetBeforeFollowingAddress(backEnd(), pc);
 		if ((entryPoint < (((sqInt)cPIC)))
 		 || (entryPoint > ((((sqInt)cPIC)) + ((cPIC->blockSize))))) {
 			targetMethod = ((CogMethod *) (entryPoint - cmNoCheckEntryOffset));
@@ -13147,6 +13154,7 @@
 relocateCallsInClosedPIC(CogMethod *cPIC)
 {
     sqLong delta;
+    sqInt delta1;
     sqInt entryPoint;
     sqInt i;
     sqInt pc;
@@ -13160,12 +13168,14 @@
 
 		/* Find target from jump.  Ignore jumps to the interpret and MNU calls within this PIC */
 
-		entryPoint = jumpLongTargetBeforeFollowingAddress(backEnd, pc);
+		entryPoint = jumpLongTargetBeforeFollowingAddress(backEnd(), pc);
 		if ((entryPoint < (((sqInt)cPIC)))
 		 || (entryPoint > ((((sqInt)cPIC)) + ((cPIC->blockSize))))) {
 			targetMethod = ((CogMethod *) (entryPoint - cmNoCheckEntryOffset));
 			assert(((targetMethod->cmType)) == CMMethod);
-			relocateJumpLongBeforeFollowingAddressby(backEnd, pc, -(delta - ((targetMethod->objectHeader))));
+			/* begin cPICCase:relocateJumpLongBefore:by: */
+			delta1 = -(delta - ((targetMethod->objectHeader)));
+			relocateJumpLongBeforeFollowingAddressby(backEnd(), pc, delta1);
 		}
 		pc += cPICCaseSize;
 	}
@@ -15098,7 +15108,7 @@
     CogMethod *cogMethod;
 
 	cogMethod = ((CogMethod *) baseAddress);
-	while (((usqInt)cogMethod)) {
+	while ((((usqInt)cogMethod)) < mzFreeStart) {
 		if (((cogMethod->cmType)) != CMFree) {
 			if (((cogMethod->cmType)) == CMClosedPIC) {
 				relocateCallsInClosedPIC(cogMethod);
@@ -24258,13 +24268,15 @@
 	/* begin JumpAboveOrEqual: */
 	jumpTarget = fixupAt(targetBytecodePC - initialPC);
 	genoperand(JumpAboveOrEqual, ((sqInt)jumpTarget));
-	/* begin annotateBytecode: */
 	/* begin CallRT: */
 	/* begin annotateCall: */
 	/* begin Call: */
 	abstractInstruction1 = genoperand(Call, ceCheckForInterruptTrampoline);
 	(abstractInstruction1->annotation = IsRelativeCall);
-	abstractInstruction = abstractInstruction1;
+	abstractInstruction1;
+	/* begin annotateBytecode: */
+	/* begin Label */
+	abstractInstruction = genoperandoperand(Label, (labelCounter += 1), bytecodePC);
 	(abstractInstruction->annotation = HasBytecodePC);
 	abstractInstruction;
 	/* begin Jump: */
@@ -27127,13 +27139,15 @@
 
 	if (inBlock) {
 		assert(needsFrame);
-		/* begin annotateBytecode: */
 		/* begin CallRT: */
 		/* begin annotateCall: */
 		/* begin Call: */
 		abstractInstruction1 = genoperand(Call, ceNonLocalReturnTrampoline);
 		(abstractInstruction1->annotation = IsRelativeCall);
-		abstractInstruction = abstractInstruction1;
+		abstractInstruction1;
+		/* begin annotateBytecode: */
+		/* begin Label */
+		abstractInstruction = genoperandoperand(Label, (labelCounter += 1), bytecodePC);
 		(abstractInstruction->annotation = HasBytecodePC);
 		abstractInstruction;
 		return 0;


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Thu Jun 18 14:07:34 PDT 2015
   + Fri Jun 19 10:06:24 PDT 2015

Modified: branches/Cog/spursistasrc/vm/cogit.h
===================================================================
--- branches/Cog/spursistasrc/vm/cogit.h	2015-06-18 21:08:45 UTC (rev 3381)
+++ branches/Cog/spursistasrc/vm/cogit.h	2015-06-19 17:08:36 UTC (rev 3382)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1363 uuid: 7688edec-456b-4fce-a6e0-b0dd8cf2877a
+	CCodeGenerator VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
  */
 
 

Modified: branches/Cog/spursistasrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/spursistasrc/vm/cogitARMv5.c	2015-06-18 21:08:45 UTC (rev 3381)
+++ branches/Cog/spursistasrc/vm/cogitARMv5.c	2015-06-19 17:08:36 UTC (rev 3382)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1363 uuid: 7688edec-456b-4fce-a6e0-b0dd8cf2877a
+	CCodeGenerator VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
    from
-	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1363 uuid: 7688edec-456b-4fce-a6e0-b0dd8cf2877a
+	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88
  */
-static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1363 uuid: 7688edec-456b-4fce-a6e0-b0dd8cf2877a " __DATE__ ;
+static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1365 uuid: a12bef68-d8c2-4546-80c5-310ef8d8cd88 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -1932,7 +1932,6 @@
 #define reportError(n) warning("compilation error")
 #define setCFramePointer(theFP) (CFramePointer = (void *)(theFP))
 #define setCStackPointer(theSP) (CStackPointer = (void *)(theSP))
-#define traceMapinstructionbyteatfor(ig,no,r,e,d) 0
 #define tryLockVMOwner() (ceTryLockVMOwner() != 0)
 #define unlockVMOwner() ceUnlockVMOwner()
 #define nextOpenPIC methodObject
@@ -2007,7 +2006,8 @@
 cloneLiteralFrom(AbstractInstruction * self_in_cloneLiteralFrom, AbstractInstruction *existingLiteral)
 {
 	assert((((existingLiteral->opcode)) == Literal)
-	 && (((self_in_cloneLiteralFrom->dependent)) == null));
+	 && ((((self_in_cloneLiteralFrom->dependent)) == null)
+	 && (((self_in_cloneLiteralFrom->address)) == null)));
 	(self_in_cloneLiteralFrom->opcode) = Literal;
 	(self_in_cloneLiteralFrom->annotation) = (existingLiteral->annotation);
 	((self_in_cloneLiteralFrom->operands))[0] = (((existingLiteral->operands))[0]);
@@ -2063,8 +2063,9 @@
 
 	/* separate := nil for Slang */
 
+	(self_in_initializeSharableLiteral->annotation) = null;
+	(self_in_initializeSharableLiteral->address) = null;
 	(self_in_initializeSharableLiteral->dependent) = null;
-	(self_in_initializeSharableLiteral->annotation) = null;
 	((self_in_initializeSharableLiteral->operands))[0] = literal;
 	((self_in_initializeSharableLiteral->operands))[1] = 1;
 	((self_in_initializeSharableLiteral->operands))[2] = -1;
@@ -2082,8 +2083,9 @@
 
 	/* separate := nil for Slang */
 
+	(self_in_initializeUniqueLiteral->annotation) = null;
+	(self_in_initializeUniqueLiteral->address) = null;
 	(self_in_initializeUniqueLiteral->dependent) = null;
-	(self_in_initializeUniqueLiteral->annotation) = null;
 	((self_in_initializeUniqueLiteral->operands))[0] = literal;
 	((self_in_initializeUniqueLiteral->operands))[1] = 0;
 	((self_in_initializeUniqueLiteral->operands))[2] = -1;
@@ -3512,6 +3514,7 @@
 		jumpTarget = jumpTarget1;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord42 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -3550,6 +3553,7 @@
 		jumpTarget2 = jumpTarget11;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord43 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4114,6 +4118,7 @@
 		rd2 = rn4;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord44 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4257,6 +4262,7 @@
 		rd22 = rn24;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord63 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4345,6 +4351,7 @@
 			rd4 = rn6;
 			/* begin moveCw:intoR: */
 			assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+			assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 			/* begin machineCodeAt:put: */
 			aWord46 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 				? 1
@@ -4441,6 +4448,7 @@
 		rd5 = 0;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord47 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4517,6 +4525,7 @@
 		rd23 = rn25;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord64 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4600,6 +4609,7 @@
 		rd7 = rn9;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord49 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4654,6 +4664,7 @@
 		rd8 = rn10;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord50 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4797,6 +4808,7 @@
 		rd24 = rn26;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord65 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4823,6 +4835,7 @@
 		rd10 = rn12;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord52 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4843,6 +4856,7 @@
 		rd11 = rn13;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord53 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4863,6 +4877,7 @@
 		rd12 = 0;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord54 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4883,6 +4898,7 @@
 		rd13 = rn15;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord55 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4903,6 +4919,7 @@
 		rd14 = rn16;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord56 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -4923,6 +4940,7 @@
 		rd15 = rn17;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord57 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -5068,6 +5086,7 @@
 		}
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */
 		aWord35 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
@@ -5277,6 +5296,7 @@
 		}
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
+		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12));
 		/* begin machineCodeAt:put: */

@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list