[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