[Vm-dev] [commit][3533] CogVM source as per VMMaker.oscog-eem.1597
commits at squeakvm.org
commits at squeakvm.org
Tue Dec 15 19:48:53 UTC 2015
Revision: 3533
Author: eliot
Date: 2015-12-15 11:48:51 -0800 (Tue, 15 Dec 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1597
Cogit:
Fix regression in x86's register save/restore.
Eliminate some warnings in cogitX64.c. Use the right conversions for
computing 32-bit offsets in jumps and calls.
Nuke genJump[Not]SmallInteger:scratch: in favour of
genJump[Not]SmallInteger:scratchReg:
Plugins:
Fix the Alien plugins for 64-bits in the simulator which alas changes the
C code to no effect.
Modified Paths:
--------------
branches/Cog/nsspursrc/plugins/IA32ABI/IA32ABI.c
branches/Cog/nsspursrc/vm/cogit.h
branches/Cog/nsspursrc/vm/cogitIA32.c
branches/Cog/nsspursrc/vm/cointerp.c
branches/Cog/nsspursrc/vm/cointerp.h
branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
branches/Cog/nsspurstack64src/vm/gcc3x-interp.c
branches/Cog/nsspurstack64src/vm/interp.c
branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
branches/Cog/nsspurstacksrc/vm/interp.c
branches/Cog/scripts/lastCheckin
branches/Cog/spur64src/vm/cogit.h
branches/Cog/spur64src/vm/cogitX64.c
branches/Cog/spur64src/vm/cointerp.c
branches/Cog/spur64src/vm/cointerp.h
branches/Cog/spur64src/vm/gcc3x-cointerp.c
branches/Cog/spursistasrc/vm/cogit.h
branches/Cog/spursistasrc/vm/cogitIA32.c
branches/Cog/spursistasrc/vm/cointerp.c
branches/Cog/spursistasrc/vm/cointerp.h
branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
branches/Cog/spursrc/vm/cogit.h
branches/Cog/spursrc/vm/cogitIA32.c
branches/Cog/spursrc/vm/cointerp.c
branches/Cog/spursrc/vm/cointerp.h
branches/Cog/spursrc/vm/gcc3x-cointerp.c
branches/Cog/spurstack64src/vm/gcc3x-interp.c
branches/Cog/spurstack64src/vm/interp.c
branches/Cog/spurstacksrc/vm/gcc3x-interp.c
branches/Cog/spurstacksrc/vm/interp.c
branches/Cog/src/plugins/IA32ABI/IA32ABI.c
branches/Cog/src/vm/cogit.h
branches/Cog/src/vm/cogitIA32.c
branches/Cog/src/vm/cointerp.c
branches/Cog/src/vm/cointerp.h
branches/Cog/src/vm/cointerpmt.c
branches/Cog/src/vm/cointerpmt.h
branches/Cog/src/vm/gcc3x-cointerp.c
branches/Cog/src/vm/gcc3x-cointerpmt.c
branches/Cog/stacksrc/vm/gcc3x-interp.c
branches/Cog/stacksrc/vm/interp.c
Property Changed:
----------------
branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nsspursrc/plugins/IA32ABI/IA32ABI.c
===================================================================
--- branches/Cog/nsspursrc/plugins/IA32ABI/IA32ABI.c 2015-12-14 19:30:06 UTC (rev 3532)
+++ branches/Cog/nsspursrc/plugins/IA32ABI/IA32ABI.c 2015-12-15 19:48:51 UTC (rev 3533)
@@ -1,9 +1,9 @@
/* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-rmacnak.1532 uuid: 20303656-4854-4e5b-8bcd-eeff8cf5d262
+ VMPluginCodeGenerator * VMMaker.oscog-eem.1596 uuid: b5172901-ebc3-4132-b421-446d4a1d080f
from
- NewsqueakIA32ABIPlugin VMMaker.oscog-rmacnak.1532 uuid: 20303656-4854-4e5b-8bcd-eeff8cf5d262
+ NewsqueakIA32ABIPlugin * VMMaker.oscog-eem.1596 uuid: b5172901-ebc3-4132-b421-446d4a1d080f
*/
-static char __buildInfo[] = "NewsqueakIA32ABIPlugin VMMaker.oscog-rmacnak.1532 uuid: 20303656-4854-4e5b-8bcd-eeff8cf5d262 " __DATE__ ;
+static char __buildInfo[] = "NewsqueakIA32ABIPlugin * VMMaker.oscog-eem.1596 uuid: b5172901-ebc3-4132-b421-446d4a1d080f " __DATE__ ;
@@ -227,9 +227,9 @@
struct VirtualMachine* interpreterProxy;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "IA32ABI VMMaker.oscog-rmacnak.1532 (i)"
+ "IA32ABI VMMaker.oscog-eem.1596 (i)"
#else
- "IA32ABI VMMaker.oscog-rmacnak.1532 (e)"
+ "IA32ABI VMMaker.oscog-eem.1596 (e)"
#endif
;
@@ -1507,7 +1507,13 @@
sqInt valueOop;
rcvr = stackValue(0);
- value = ((sqInt) (longAt(rcvr + BaseHeaderSize)));
+ value =
+# if BytesPerOop == 8
+ ((sqLong) (longAt(rcvr + BaseHeaderSize)))
+# else /* BytesPerOop == 8 */
+ ((int) (longAt(rcvr + BaseHeaderSize)))
+# endif /* BytesPerOop == 8 */
+ ;
valueOop = (BytesPerWord == 8
? signed64BitIntegerFor(value)
: signed32BitIntegerFor(value));
@@ -1535,10 +1541,15 @@
if (failed()) {
return primitiveFailFor(PrimErrBadArgument);
}
- if (isOopImmutable(rcvr)) {
- return primitiveFailFor(PrimErrNoModification);
- }
+
+# if BytesPerOop == 8
longAtput(rcvr + BaseHeaderSize, ((usqInt) value));
+
+# else /* BytesPerOop == 8 */
+ longAtput(rcvr + BaseHeaderSize, ((usqInt) value));
+
+# endif /* BytesPerOop == 8 */
+
return methodReturnValue(valueOop);
}
Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h 2015-12-14 19:30:06 UTC (rev 3532)
+++ branches/Cog/nsspursrc/vm/cogit.h 2015-12-15 19:48:51 UTC (rev 3533)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1594 uuid: 79da8b81-d1f3-469a-869c-16c79d12649a
+ CCodeGenerator VMMaker.oscog-eem.1597 uuid: d40647ee-f0e2-471a-8007-2d2ca3483790
*/
Modified: branches/Cog/nsspursrc/vm/cogitIA32.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitIA32.c 2015-12-14 19:30:06 UTC (rev 3532)
+++ branches/Cog/nsspursrc/vm/cogitIA32.c 2015-12-15 19:48:51 UTC (rev 3533)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1594 uuid: 79da8b81-d1f3-469a-869c-16c79d12649a
+ CCodeGenerator VMMaker.oscog-eem.1597 uuid: d40647ee-f0e2-471a-8007-2d2ca3483790
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.1594 uuid: 79da8b81-d1f3-469a-869c-16c79d12649a
+ StackToRegisterMappingCogit VMMaker.oscog-eem.1597 uuid: d40647ee-f0e2-471a-8007-2d2ca3483790
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1594 uuid: 79da8b81-d1f3-469a-869c-16c79d12649a " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1597 uuid: d40647ee-f0e2-471a-8007-2d2ca3483790 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -929,7 +929,7 @@
static sqInt genLongUnconditionalForwardJump(void);
static sqInt NoDbgRegParms genLookupForPerformNumArgs(sqInt numArgs);
static AbstractInstruction * NoDbgRegParms genMoveConstantR(sqInt constant, sqInt reg);
-static AbstractInstruction * NoDbgRegParms genMoveTrueR(sqInt reg);
+static sqInt NoDbgRegParms genMoveTrueR(sqInt reg);
static sqInt NoDbgRegParms genMustBeBooleanTrampolineForcalled(sqInt boolean, char *trampolineName);
static sqInt genPrimitiveEqual(void);
static sqInt genPrimitiveFloatAdd(void);
@@ -2372,7 +2372,7 @@
sqInt callDistance;
callDistance = literalBeforeFollowingAddress(self_in_callTargetFromReturnAddress, callSiteReturnAddress);
- return callSiteReturnAddress + (((sqInt) callDistance));
+ return callSiteReturnAddress + (((int) callDistance));
}
/* CogIA32Compiler>>#cmpC32RTempByteSize */
@@ -3296,7 +3296,7 @@
case CallFull:
/* begin concretizeCall */
assert((((self_in_dispatchConcretize->operands))[0]) != 0);
- offset2 = (((sqInt) (((self_in_dispatchConcretize->operands))[0]))) - (((sqInt) (((self_in_dispatchConcretize->address)) + 5)));
+ offset2 = (((int) (((self_in_dispatchConcretize->operands))[0]))) - (((int) (((self_in_dispatchConcretize->address)) + 5)));
((self_in_dispatchConcretize->machineCode))[0] = 232;
((self_in_dispatchConcretize->machineCode))[1] = (offset2 & 0xFF);
((self_in_dispatchConcretize->machineCode))[2] = ((((usqInt) offset2) >> 8) & 0xFF);
@@ -3322,7 +3322,7 @@
jumpTarget = ((AbstractInstruction *) ((jumpTarget->address)));
}
assert(jumpTarget != 0);
- offset12 = (((sqInt) jumpTarget)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 5)));
+ offset12 = (((int) jumpTarget)) - (((int) (((self_in_dispatchConcretize->address)) + 5)));
((self_in_dispatchConcretize->machineCode))[0] = 233;
((self_in_dispatchConcretize->machineCode))[1] = (offset12 & 0xFF);
((self_in_dispatchConcretize->machineCode))[2] = ((((usqInt) offset12) >> 8) & 0xFF);
@@ -3345,7 +3345,7 @@
}
assert(jumpTarget12 != 0);
jumpTarget3 = jumpTarget12;
- offset14 = (((sqInt) jumpTarget3)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 2)));
+ offset14 = (((int) jumpTarget3)) - (((int) (((self_in_dispatchConcretize->address)) + 2)));
if ((((self_in_dispatchConcretize->machineCodeSize)) == 0
? isQuick(self_in_dispatchConcretize, offset14)
: ((self_in_dispatchConcretize->machineCodeSize)) == 2)) {
@@ -3365,14 +3365,14 @@
}
assert(jumpTarget11 != 0);
jumpTarget2 = jumpTarget11;
- offset15 = (((sqInt) jumpTarget2)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 6)));
+ offset15 = (((int) jumpTarget2)) - (((int) (((self_in_dispatchConcretize->address)) + 6)));
((self_in_dispatchConcretize->machineCode))[0] = 15;
((self_in_dispatchConcretize->machineCode))[1] = (128 + 4);
((self_in_dispatchConcretize->machineCode))[2] = (offset15 & 0xFF);
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset15) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset15) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset15) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpLongNonZero:
@@ -3389,7 +3389,7 @@
}
assert(jumpTarget13 != 0);
jumpTarget4 = jumpTarget13;
- offset16 = (((sqInt) jumpTarget4)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 2)));
+ offset16 = (((int) jumpTarget4)) - (((int) (((self_in_dispatchConcretize->address)) + 2)));
if ((((self_in_dispatchConcretize->machineCodeSize)) == 0
? isQuick(self_in_dispatchConcretize, offset16)
: ((self_in_dispatchConcretize->machineCodeSize)) == 2)) {
@@ -3409,14 +3409,14 @@
}
assert(jumpTarget111 != 0);
jumpTarget21 = jumpTarget111;
- offset17 = (((sqInt) jumpTarget21)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 6)));
+ offset17 = (((int) jumpTarget21)) - (((int) (((self_in_dispatchConcretize->address)) + 6)));
((self_in_dispatchConcretize->machineCode))[0] = 15;
((self_in_dispatchConcretize->machineCode))[1] = (128 + 5);
((self_in_dispatchConcretize->machineCode))[2] = (offset17 & 0xFF);
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset17) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset17) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset17) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case Jump:
@@ -3428,7 +3428,7 @@
jumpTarget1 = ((AbstractInstruction *) ((jumpTarget1->address)));
}
assert(jumpTarget1 != 0);
- offset13 = (((sqInt) jumpTarget1)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 2)));
+ offset13 = (((int) jumpTarget1)) - (((int) (((self_in_dispatchConcretize->address)) + 2)));
if ((((self_in_dispatchConcretize->machineCodeSize)) == 0
? isQuick(self_in_dispatchConcretize, offset13)
: ((self_in_dispatchConcretize->machineCodeSize)) == 2)) {
@@ -3437,7 +3437,7 @@
((self_in_dispatchConcretize->machineCodeSize) = 2);
return;
}
- offset13 = (((sqInt) jumpTarget1)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 5)));
+ offset13 = (((int) jumpTarget1)) - (((int) (((self_in_dispatchConcretize->address)) + 5)));
((self_in_dispatchConcretize->machineCode))[0] = 233;
((self_in_dispatchConcretize->machineCode))[1] = (offset13 & 0xFF);
((self_in_dispatchConcretize->machineCode))[2] = ((((usqInt) offset13) >> 8) & 0xFF);
@@ -3458,7 +3458,7 @@
}
assert(jumpTarget14 != 0);
jumpTarget5 = jumpTarget14;
- offset18 = (((sqInt) jumpTarget5)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 2)));
+ offset18 = (((int) jumpTarget5)) - (((int) (((self_in_dispatchConcretize->address)) + 2)));
if ((((self_in_dispatchConcretize->machineCodeSize)) == 0
? isQuick(self_in_dispatchConcretize, offset18)
: ((self_in_dispatchConcretize->machineCodeSize)) == 2)) {
@@ -3478,14 +3478,14 @@
}
assert(jumpTarget112 != 0);
jumpTarget22 = jumpTarget112;
- offset19 = (((sqInt) jumpTarget22)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 6)));
+ offset19 = (((int) jumpTarget22)) - (((int) (((self_in_dispatchConcretize->address)) + 6)));
((self_in_dispatchConcretize->machineCode))[0] = 15;
((self_in_dispatchConcretize->machineCode))[1] = (128 + 8);
((self_in_dispatchConcretize->machineCode))[2] = (offset19 & 0xFF);
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset19) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset19) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset19) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpNonNegative:
@@ -3500,7 +3500,7 @@
}
assert(jumpTarget15 != 0);
jumpTarget6 = jumpTarget15;
- offset20 = (((sqInt) jumpTarget6)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 2)));
+ offset20 = (((int) jumpTarget6)) - (((int) (((self_in_dispatchConcretize->address)) + 2)));
if ((((self_in_dispatchConcretize->machineCodeSize)) == 0
? isQuick(self_in_dispatchConcretize, offset20)
: ((self_in_dispatchConcretize->machineCodeSize)) == 2)) {
@@ -3520,14 +3520,14 @@
}
assert(jumpTarget113 != 0);
jumpTarget23 = jumpTarget113;
- offset110 = (((sqInt) jumpTarget23)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 6)));
+ offset110 = (((int) jumpTarget23)) - (((int) (((self_in_dispatchConcretize->address)) + 6)));
((self_in_dispatchConcretize->machineCode))[0] = 15;
((self_in_dispatchConcretize->machineCode))[1] = (128 + 9);
((self_in_dispatchConcretize->machineCode))[2] = (offset110 & 0xFF);
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset110) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset110) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset110) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpOverflow:
@@ -3542,7 +3542,7 @@
}
assert(jumpTarget16 != 0);
jumpTarget7 = jumpTarget16;
- offset21 = (((sqInt) jumpTarget7)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 2)));
+ offset21 = (((int) jumpTarget7)) - (((int) (((self_in_dispatchConcretize->address)) + 2)));
if ((((self_in_dispatchConcretize->machineCodeSize)) == 0
? isQuick(self_in_dispatchConcretize, offset21)
: ((self_in_dispatchConcretize->machineCodeSize)) == 2)) {
@@ -3562,14 +3562,14 @@
}
assert(jumpTarget114 != 0);
jumpTarget24 = jumpTarget114;
- offset111 = (((sqInt) jumpTarget24)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 6)));
+ offset111 = (((int) jumpTarget24)) - (((int) (((self_in_dispatchConcretize->address)) + 6)));
((self_in_dispatchConcretize->machineCode))[0] = 15;
((self_in_dispatchConcretize->machineCode))[1] = (128);
((self_in_dispatchConcretize->machineCode))[2] = (offset111 & 0xFF);
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset111) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset111) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset111) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpNoOverflow:
@@ -3584,7 +3584,7 @@
}
assert(jumpTarget17 != 0);
jumpTarget8 = jumpTarget17;
- offset22 = (((sqInt) jumpTarget8)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 2)));
+ offset22 = (((int) jumpTarget8)) - (((int) (((self_in_dispatchConcretize->address)) + 2)));
if ((((self_in_dispatchConcretize->machineCodeSize)) == 0
? isQuick(self_in_dispatchConcretize, offset22)
: ((self_in_dispatchConcretize->machineCodeSize)) == 2)) {
@@ -3604,14 +3604,14 @@
}
assert(jumpTarget115 != 0);
jumpTarget25 = jumpTarget115;
- offset112 = (((sqInt) jumpTarget25)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 6)));
+ offset112 = (((int) jumpTarget25)) - (((int) (((self_in_dispatchConcretize->address)) + 6)));
((self_in_dispatchConcretize->machineCode))[0] = 15;
((self_in_dispatchConcretize->machineCode))[1] = (128 + 1);
((self_in_dispatchConcretize->machineCode))[2] = (offset112 & 0xFF);
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset112) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset112) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset112) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpCarry:
@@ -3628,7 +3628,7 @@
}
assert(jumpTarget18 != 0);
jumpTarget9 = jumpTarget18;
- offset23 = (((sqInt) jumpTarget9)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 2)));
+ offset23 = (((int) jumpTarget9)) - (((int) (((self_in_dispatchConcretize->address)) + 2)));
if ((((self_in_dispatchConcretize->machineCodeSize)) == 0
? isQuick(self_in_dispatchConcretize, offset23)
: ((self_in_dispatchConcretize->machineCodeSize)) == 2)) {
@@ -3648,14 +3648,14 @@
}
assert(jumpTarget116 != 0);
jumpTarget26 = jumpTarget116;
- offset113 = (((sqInt) jumpTarget26)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 6)));
+ offset113 = (((int) jumpTarget26)) - (((int) (((self_in_dispatchConcretize->address)) + 6)));
((self_in_dispatchConcretize->machineCode))[0] = 15;
((self_in_dispatchConcretize->machineCode))[1] = (128 + 2);
((self_in_dispatchConcretize->machineCode))[2] = (offset113 & 0xFF);
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset113) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset113) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset113) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpNoCarry:
@@ -3672,7 +3672,7 @@
}
assert(jumpTarget19 != 0);
jumpTarget10 = jumpTarget19;
- offset24 = (((sqInt) jumpTarget10)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 2)));
+ offset24 = (((int) jumpTarget10)) - (((int) (((self_in_dispatchConcretize->address)) + 2)));
if ((((self_in_dispatchConcretize->machineCodeSize)) == 0
? isQuick(self_in_dispatchConcretize, offset24)
: ((self_in_dispatchConcretize->machineCodeSize)) == 2)) {
@@ -3692,14 +3692,14 @@
}
assert(jumpTarget117 != 0);
jumpTarget27 = jumpTarget117;
- offset114 = (((sqInt) jumpTarget27)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 6)));
+ offset114 = (((int) jumpTarget27)) - (((int) (((self_in_dispatchConcretize->address)) + 6)));
((self_in_dispatchConcretize->machineCode))[0] = 15;
((self_in_dispatchConcretize->machineCode))[1] = (128 + 3);
((self_in_dispatchConcretize->machineCode))[2] = (offset114 & 0xFF);
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset114) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset114) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset114) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpLess:
@@ -3714,7 +3714,7 @@
}
assert(jumpTarget110 != 0);
jumpTarget20 = jumpTarget110;
- offset25 = (((sqInt) jumpTarget20)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 2)));
+ offset25 = (((int) jumpTarget20)) - (((int) (((self_in_dispatchConcretize->address)) + 2)));
if ((((self_in_dispatchConcretize->machineCodeSize)) == 0
? isQuick(self_in_dispatchConcretize, offset25)
: ((self_in_dispatchConcretize->machineCodeSize)) == 2)) {
@@ -3734,14 +3734,14 @@
}
assert(jumpTarget118 != 0);
jumpTarget28 = jumpTarget118;
- offset115 = (((sqInt) jumpTarget28)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 6)));
+ offset115 = (((int) jumpTarget28)) - (((int) (((self_in_dispatchConcretize->address)) + 6)));
((self_in_dispatchConcretize->machineCode))[0] = 15;
((self_in_dispatchConcretize->machineCode))[1] = (128 + 12);
((self_in_dispatchConcretize->machineCode))[2] = (offset115 & 0xFF);
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset115) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset115) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset115) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpGreaterOrEqual:
@@ -3756,7 +3756,7 @@
}
assert(jumpTarget119 != 0);
jumpTarget29 = jumpTarget119;
- offset26 = (((sqInt) jumpTarget29)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 2)));
+ offset26 = (((int) jumpTarget29)) - (((int) (((self_in_dispatchConcretize->address)) + 2)));
if ((((self_in_dispatchConcretize->machineCodeSize)) == 0
? isQuick(self_in_dispatchConcretize, offset26)
: ((self_in_dispatchConcretize->machineCodeSize)) == 2)) {
@@ -3776,14 +3776,14 @@
}
assert(jumpTarget1110 != 0);
jumpTarget210 = jumpTarget1110;
- offset116 = (((sqInt) jumpTarget210)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 6)));
+ offset116 = (((int) jumpTarget210)) - (((int) (((self_in_dispatchConcretize->address)) + 6)));
((self_in_dispatchConcretize->machineCode))[0] = 15;
((self_in_dispatchConcretize->machineCode))[1] = (128 + 13);
((self_in_dispatchConcretize->machineCode))[2] = (offset116 & 0xFF);
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset116) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset116) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset116) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpGreater:
@@ -3798,7 +3798,7 @@
}
assert(jumpTarget120 != 0);
jumpTarget30 = jumpTarget120;
- offset27 = (((sqInt) jumpTarget30)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 2)));
+ offset27 = (((int) jumpTarget30)) - (((int) (((self_in_dispatchConcretize->address)) + 2)));
if ((((self_in_dispatchConcretize->machineCodeSize)) == 0
? isQuick(self_in_dispatchConcretize, offset27)
: ((self_in_dispatchConcretize->machineCodeSize)) == 2)) {
@@ -3818,14 +3818,14 @@
}
assert(jumpTarget1111 != 0);
jumpTarget211 = jumpTarget1111;
- offset117 = (((sqInt) jumpTarget211)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 6)));
+ offset117 = (((int) jumpTarget211)) - (((int) (((self_in_dispatchConcretize->address)) + 6)));
((self_in_dispatchConcretize->machineCode))[0] = 15;
((self_in_dispatchConcretize->machineCode))[1] = (128 + 15);
((self_in_dispatchConcretize->machineCode))[2] = (offset117 & 0xFF);
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset117) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset117) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset117) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpLessOrEqual:
@@ -3840,7 +3840,7 @@
}
assert(jumpTarget121 != 0);
jumpTarget31 = jumpTarget121;
- offset28 = (((sqInt) jumpTarget31)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 2)));
+ offset28 = (((int) jumpTarget31)) - (((int) (((self_in_dispatchConcretize->address)) + 2)));
if ((((self_in_dispatchConcretize->machineCodeSize)) == 0
? isQuick(self_in_dispatchConcretize, offset28)
: ((self_in_dispatchConcretize->machineCodeSize)) == 2)) {
@@ -3860,14 +3860,14 @@
}
assert(jumpTarget1112 != 0);
jumpTarget212 = jumpTarget1112;
- offset118 = (((sqInt) jumpTarget212)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 6)));
+ offset118 = (((int) jumpTarget212)) - (((int) (((self_in_dispatchConcretize->address)) + 6)));
((self_in_dispatchConcretize->machineCode))[0] = 15;
((self_in_dispatchConcretize->machineCode))[1] = (128 + 14);
((self_in_dispatchConcretize->machineCode))[2] = (offset118 & 0xFF);
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset118) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset118) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset118) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpAbove:
@@ -3883,7 +3883,7 @@
}
assert(jumpTarget122 != 0);
jumpTarget32 = jumpTarget122;
- offset29 = (((sqInt) jumpTarget32)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 2)));
+ offset29 = (((int) jumpTarget32)) - (((int) (((self_in_dispatchConcretize->address)) + 2)));
if ((((self_in_dispatchConcretize->machineCodeSize)) == 0
? isQuick(self_in_dispatchConcretize, offset29)
: ((self_in_dispatchConcretize->machineCodeSize)) == 2)) {
@@ -3903,14 +3903,14 @@
}
assert(jumpTarget1113 != 0);
jumpTarget213 = jumpTarget1113;
- offset119 = (((sqInt) jumpTarget213)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 6)));
+ offset119 = (((int) jumpTarget213)) - (((int) (((self_in_dispatchConcretize->address)) + 6)));
((self_in_dispatchConcretize->machineCode))[0] = 15;
((self_in_dispatchConcretize->machineCode))[1] = (128 + 7);
((self_in_dispatchConcretize->machineCode))[2] = (offset119 & 0xFF);
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset119) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset119) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset119) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpBelowOrEqual:
@@ -3926,7 +3926,7 @@
}
assert(jumpTarget123 != 0);
jumpTarget33 = jumpTarget123;
- offset30 = (((sqInt) jumpTarget33)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 2)));
+ offset30 = (((int) jumpTarget33)) - (((int) (((self_in_dispatchConcretize->address)) + 2)));
if ((((self_in_dispatchConcretize->machineCodeSize)) == 0
? isQuick(self_in_dispatchConcretize, offset30)
: ((self_in_dispatchConcretize->machineCodeSize)) == 2)) {
@@ -3946,14 +3946,14 @@
}
assert(jumpTarget1114 != 0);
jumpTarget214 = jumpTarget1114;
- offset120 = (((sqInt) jumpTarget214)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 6)));
+ offset120 = (((int) jumpTarget214)) - (((int) (((self_in_dispatchConcretize->address)) + 6)));
((self_in_dispatchConcretize->machineCode))[0] = 15;
((self_in_dispatchConcretize->machineCode))[1] = (128 + 6);
((self_in_dispatchConcretize->machineCode))[2] = (offset120 & 0xFF);
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset120) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset120) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset120) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpFPOrdered:
@@ -3968,7 +3968,7 @@
}
assert(jumpTarget124 != 0);
jumpTarget34 = jumpTarget124;
- offset31 = (((sqInt) jumpTarget34)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 2)));
+ offset31 = (((int) jumpTarget34)) - (((int) (((self_in_dispatchConcretize->address)) + 2)));
if ((((self_in_dispatchConcretize->machineCodeSize)) == 0
? isQuick(self_in_dispatchConcretize, offset31)
: ((self_in_dispatchConcretize->machineCodeSize)) == 2)) {
@@ -3988,14 +3988,14 @@
}
assert(jumpTarget1115 != 0);
jumpTarget215 = jumpTarget1115;
- offset121 = (((sqInt) jumpTarget215)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 6)));
+ offset121 = (((int) jumpTarget215)) - (((int) (((self_in_dispatchConcretize->address)) + 6)));
((self_in_dispatchConcretize->machineCode))[0] = 15;
((self_in_dispatchConcretize->machineCode))[1] = (128 + 11);
((self_in_dispatchConcretize->machineCode))[2] = (offset121 & 0xFF);
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset121) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset121) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset121) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case JumpFPUnordered:
@@ -4010,7 +4010,7 @@
}
assert(jumpTarget125 != 0);
jumpTarget35 = jumpTarget125;
- offset32 = (((sqInt) jumpTarget35)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 2)));
+ offset32 = (((int) jumpTarget35)) - (((int) (((self_in_dispatchConcretize->address)) + 2)));
if ((((self_in_dispatchConcretize->machineCodeSize)) == 0
? isQuick(self_in_dispatchConcretize, offset32)
: ((self_in_dispatchConcretize->machineCodeSize)) == 2)) {
@@ -4030,14 +4030,14 @@
}
assert(jumpTarget1116 != 0);
jumpTarget216 = jumpTarget1116;
- offset122 = (((sqInt) jumpTarget216)) - (((sqInt) (((self_in_dispatchConcretize->address)) + 6)));
+ offset122 = (((int) jumpTarget216)) - (((int) (((self_in_dispatchConcretize->address)) + 6)));
((self_in_dispatchConcretize->machineCode))[0] = 15;
((self_in_dispatchConcretize->machineCode))[1] = (128 + 10);
((self_in_dispatchConcretize->machineCode))[2] = (offset122 & 0xFF);
((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset122) >> 8) & 0xFF);
((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset122) >> 16) & 0xFF);
((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset122) >> 24) & 0xFF);
- ((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+ ((self_in_dispatchConcretize->machineCodeSize) = 6);
return;
case RetN:
@@ -5754,18 +5754,14 @@
static sqInt NoDbgRegParms
genRestoreRegs(AbstractInstruction * self_in_genRestoreRegs)
{
- /* begin PopR: */
- genoperand(PopR, EAX);
- /* begin PopR: */
- genoperand(PopR, EBX);
- /* begin PopR: */
- genoperand(PopR, ECX);
- /* begin PopR: */
- genoperand(PopR, EDX);
- /* begin PopR: */
- genoperand(PopR, ESI);
- /* begin PopR: */
- genoperand(PopR, EDI);
+ sqInt reg;
+
+ for (reg = EAX; reg <= EDI; reg += 1) {
+ if (!(((reg >= ESP) && (reg <= EBP)))) {
+ /* begin PopR: */
+ genoperand(PopR, reg);
+ }
+ }
return 0;
}
@@ -5803,10 +5799,12 @@
{
sqInt reg;
- assert(((EDI - EAX) + 1) == 6);
+ assert(((EDI - EAX) + 1) == 8);
for (reg = EDI; reg >= EAX; reg += -1) {
- /* begin PushR: */
- genoperand(PushR, reg);
+ if (!(((reg >= ESP) && (reg <= EBP)))) {
+ /* begin PushR: */
+ genoperand(PushR, reg);
+ }
}
return 0;
}
@@ -5985,7 +5983,7 @@
static sqInt NoDbgRegParms
isQuick(AbstractInstruction * self_in_isQuick, unsigned long operand)
{
- return (((((sqInt) operand)) >= -128) && ((((sqInt) operand)) <= 0x7F));
+ return (((((int) operand)) >= -128) && ((((int) operand)) <= 0x7F));
}
@@ -6297,7 +6295,7 @@
byteAtput(callSiteReturnAddress - 2, (((usqInt) callDistance) >> 16) & 0xFF);
byteAtput(callSiteReturnAddress - 3, (((usqInt) callDistance) >> 8) & 0xFF);
byteAtput(callSiteReturnAddress - 4, callDistance & 0xFF);
- assert((((usqInt) (callTargetFromReturnAddress(self_in_rewriteCallAttarget, callSiteReturnAddress)))) == callTargetAddress);
+ assert((callTargetFromReturnAddress(self_in_rewriteCallAttarget, callSiteReturnAddress)) == callTargetAddress);
return 5;
}
@@ -10037,14 +10035,14 @@
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;
+ sqInt mcpc;
length = 0;
location = startAddress;
@@ -18665,7 +18663,6 @@
/* begin JumpNonZero: */
jumpCmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
}
- /* begin genMoveTrueR: */
/* begin genMoveConstant:R: */
constant = trueObject();
if (shouldAnnotateObjectReference(constant)) {
@@ -21295,7 +21292,7 @@
}
/* SimpleStackBasedCogit>>#genMoveTrueR: */
-static AbstractInstruction * NoDbgRegParms
+static sqInt NoDbgRegParms
genMoveTrueR(sqInt reg)
{
AbstractInstruction *anInstruction;
Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c 2015-12-14 19:30:06 UTC (rev 3532)
+++ branches/Cog/nsspursrc/vm/cointerp.c 2015-12-15 19:48:51 UTC (rev 3533)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1594 uuid: 79da8b81-d1f3-469a-869c-16c79d12649a
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1597 uuid: d40647ee-f0e2-471a-8007-2d2ca3483790
from
- CoInterpreter VMMaker.oscog-eem.1594 uuid: 79da8b81-d1f3-469a-869c-16c79d12649a
+ CoInterpreter VMMaker.oscog-eem.1597 uuid: d40647ee-f0e2-471a-8007-2d2ca3483790
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1594 uuid: 79da8b81-d1f3-469a-869c-16c79d12649a " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1597 uuid: d40647ee-f0e2-471a-8007-2d2ca3483790 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -240,7 +240,8 @@
#define GCModeImageSegment 16
#define GCModeIncremental 4
#define GCModeNewSpace 2
-#define HasBeenReturnedFromMCPC 0xFFFFFFFFUL
+#define HasBeenReturnedFromMCPC -1
+#define HasBeenReturnedFromMCPCOop 0xFFFFFFFFUL
#define HeaderIndex 0
#define IFrameSlots 7
#define InstanceSpecificationIndex 2
@@ -505,7 +506,6 @@
static sqInt NoDbgRegParms frameMethodObject(char *theFP);
static sqInt NoDbgRegParms frameNumArgs(char *theFP);
extern usqInt framePointerAddress(void);
-static char * NoDbgRegParms frameReceiverLocation(char *theFP);
static sqInt NoDbgRegParms frameReceiver(char *theFP);
extern void (*functionPointerForCompiledMethodprimitiveIndex(sqInt methodObj, sqInt primIndex))(void) ;
extern sqInt getCheckAllocFiller(void);
@@ -1243,7 +1243,7 @@
static void NoDbgRegParms addLastLinktoList(sqInt proc, sqInt aList);
static void NoDbgRegParms addNewMethodToNSCache(sqInt rule);
static sqInt NoDbgRegParms addressCouldBeClassObj(sqInt maybeClassObj);
-static char * NoDbgRegParms allocateMemoryminimumimageFileheaderSize(sqInt heapSize, sqInt minimumMemory, sqImageFile fileStream, sqInt headerSize);
+static char * allOnesAsCharStar(void);
extern sqInt argumentCountOfClosure(sqInt closurePointer);
extern sqInt argumentCountOfMethodHeader(sqInt header);
extern sqInt argumentCountOf(sqInt methodPointer);
@@ -1309,8 +1309,6 @@
extern double floatArg(sqInt index);
static void NoDbgRegParms followForwardedFrameContentsstackPointer(char *theFP, char *theSP);
extern sqInt forceInterruptCheck(void);
-static char * NoDbgRegParms frameCallerFP(char *theFP);
-static char * NoDbgRegParms frameCallerSavedIP(char *theFP);
static char * NoDbgRegParms frameCallerSP(char *theFP);
static sqInt NoDbgRegParms frameContext(char *theFP);
static char * NoDbgRegParms frameOfMarriedContext(sqInt aContext);
@@ -2397,7 +2395,7 @@
/*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
};
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1594";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1597";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -5297,7 +5295,6 @@
contextToReturnTo = callerContextOrNil;
}
else {
- /* begin frameCallerFP: */
frameToReturnTo = pointerForOop(longAt(theFP + FoxSavedFP));
}
}
@@ -5430,10 +5427,8 @@
else {
do {
callerFP = localFP;
- /* begin frameCallerFP: */
localFP = pointerForOop(longAt(localFP + FoxSavedFP));
} while(localFP != frameToReturnTo);
- /* begin frameCallerSavedIP: */
localIP = pointerForOop(longAt(callerFP + FoxCallerSavedIP));
localSP = (frameCallerSP(callerFP)) - BytesPerWord;
}
@@ -5547,7 +5542,6 @@
char *theSP;
VM_LABEL(commonCallerReturn);
- /* begin frameCallerFP: */
callersFPOrNull = pointerForOop(longAt(localFP + FoxSavedFP));
if (callersFPOrNull == 0) {
@@ -5600,7 +5594,7 @@
frameAbove = 0;
goto l236;
}
- while (((callerFP = frameCallerFP(fp))) != 0) {
+ while (((callerFP = pointerForOop(longAt(fp + FoxSavedFP)))) != 0) {
if (callerFP == theFP) {
frameAbove = fp;
goto l236;
@@ -5700,7 +5694,6 @@
goto l235;
}
- /* begin frameCallerSavedIP: */
localIP = pointerForOop(longAt(localFP + FoxCallerSavedIP));
localSP = localFP + (frameStackedReceiverOffsetNumArgs(((((usqInt)(longAt(localFP + FoxMethod)))) < (startOfMemory())
? ((mframeCogMethod(localFP))->cmNumArgs)
@@ -6374,7 +6367,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((sqInt) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
? 256
: 0);
@@ -6401,7 +6394,7 @@
localIP += 3;
if (GIV(primFailCode) != 0) {
- if ((byteAt(localIP + 1)) == (((((sqInt) methodHeader)) < 0
+ if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -6523,7 +6516,7 @@
value = longAt((rcvr1 + BaseHeaderSize) + (byte3 << (shiftForWord())));
if ((byte3 == InstructionPointerIndex)
&& (((value & 1))
- && ((((sqInt) value)) < 0))) {
+ && ((((int) value)) < 0))) {
/* begin internalMustMapMachineCodePC:context: */
/* begin externalizeIPandSP */
assert((((usqInt)localIP)) != (ceReturnToInterpreterPC()));
@@ -6552,7 +6545,6 @@
spouseFP = pointerForOop(senderOop - 1);
if (byte3 == SenderIndex) {
/* begin ensureCallerContext: */
- /* begin frameCallerFP: */
callerFP = pointerForOop(longAt(spouseFP + FoxSavedFP));
if (callerFP == 0) {
@@ -8965,8 +8957,8 @@
sqInt fmt;
sqInt fmt1;
sqInt fmt2;
- sqLong hdr;
- sqLong hdr1;
+ sqInt hdr;
+ sqInt hdr1;
sqInt index;
sqInt index1;
sqInt newLargeInteger;
@@ -9013,7 +9005,7 @@
/* begin install:inAtCache:at:string: */
assert(!(isContext(rcvr)));
hdr = long64At(rcvr);
- fmt1 = (((unsigned sqLong)hdr) >> (formatShift())) & (formatMask());
+ fmt1 = (((usqInt) hdr) >> (formatShift())) & (formatMask());
if ((fmt1 == (indexablePointersFormat()))
&& ((hdr & (classIndexMask())) == ClassMethodContextCompactIndex)) {
@@ -9079,7 +9071,7 @@
/* begin install:inAtCache:at:string: */
assert(!(isContext(rcvr)));
hdr1 = long64At(rcvr);
- fmt2 = (((unsigned sqLong)hdr1) >> (formatShift())) & (formatMask());
+ fmt2 = (((usqInt) hdr1) >> (formatShift())) & (formatMask());
/* begin lengthOf:format: */
/* begin numSlotsOfAny: */
numSlots21 = byteAt(rcvr + 7);
@@ -9262,8 +9254,8 @@
sqInt fmt;
sqInt fmt1;
sqInt fmt2;
- sqLong hdr;
- sqLong hdr1;
+ sqInt hdr;
+ sqInt hdr1;
sqInt index;
sqInt isCharacter;
usqInt numSlots;
@@ -9305,7 +9297,7 @@
/* begin install:inAtCache:at:string: */
assert(!(isContext(rcvr)));
hdr = long64At(rcvr);
- fmt1 = (((unsigned sqLong)hdr) >> (formatShift())) & (formatMask());
+ fmt1 = (((usqInt) hdr) >> (formatShift())) & (formatMask());
if ((fmt1 == (indexablePointersFormat()))
&& ((hdr & (classIndexMask())) == ClassMethodContextCompactIndex)) {
@@ -9371,7 +9363,7 @@
/* begin install:inAtCache:at:string: */
assert(!(isContext(rcvr)));
hdr1 = long64At(rcvr);
- fmt2 = (((unsigned sqLong)hdr1) >> (formatShift())) & (formatMask());
+ fmt2 = (((usqInt) hdr1) >> (formatShift())) & (formatMask());
/* begin lengthOf:format: */
/* begin numSlotsOfAny: */
numSlots21 = byteAt(rcvr + 7);
@@ -11571,8 +11563,8 @@
sqInt fmt;
sqInt fmt1;
sqInt fmt2;
- sqLong hdr;
- sqLong hdr1;
+ sqInt hdr;
+ sqInt hdr1;
sqInt index;
sqInt index1;
sqInt newLargeInteger;
@@ -11619,7 +11611,7 @@
/* begin install:inAtCache:at:string: */
assert(!(isContext(rcvr)));
hdr = long64At(rcvr);
- fmt1 = (((unsigned sqLong)hdr) >> (formatShift())) & (formatMask());
+ fmt1 = (((usqInt) hdr) >> (formatShift())) & (formatMask());
if ((fmt1 == (indexablePointersFormat()))
&& ((hdr & (classIndexMask())) == ClassMethodContextCompactIndex)) {
@@ -11685,7 +11677,7 @@
/* begin install:inAtCache:at:string: */
assert(!(isContext(rcvr)));
hdr1 = long64At(rcvr);
- fmt2 = (((unsigned sqLong)hdr1) >> (formatShift())) & (formatMask());
+ fmt2 = (((usqInt) hdr1) >> (formatShift())) & (formatMask());
/* begin lengthOf:format: */
/* begin numSlotsOfAny: */
numSlots21 = byteAt(rcvr + 7);
@@ -11868,8 +11860,8 @@
sqInt fmt;
sqInt fmt1;
sqInt fmt2;
- sqLong hdr;
- sqLong hdr1;
+ sqInt hdr;
+ sqInt hdr1;
sqInt index;
sqInt isCharacter;
usqInt numSlots;
@@ -11911,7 +11903,7 @@
/* begin install:inAtCache:at:string: */
assert(!(isContext(rcvr)));
hdr = long64At(rcvr);
- fmt1 = (((unsigned sqLong)hdr) >> (formatShift())) & (formatMask());
+ fmt1 = (((usqInt) hdr) >> (formatShift())) & (formatMask());
if ((fmt1 == (indexablePointersFormat()))
&& ((hdr & (classIndexMask())) == ClassMethodContextCompactIndex)) {
@@ -11977,7 +11969,7 @@
/* begin install:inAtCache:at:string: */
assert(!(isContext(rcvr)));
hdr1 = long64At(rcvr);
- fmt2 = (((unsigned sqLong)hdr1) >> (formatShift())) & (formatMask());
+ fmt2 = (((usqInt) hdr1) >> (formatShift())) & (formatMask());
/* begin lengthOf:format: */
/* begin numSlotsOfAny: */
numSlots21 = byteAt(rcvr + 7);
@@ -12689,7 +12681,7 @@
value = longAt((rcvr + BaseHeaderSize) + (index << (shiftForWord())));
if ((index == InstructionPointerIndex)
&& (((value & 1))
- && ((((sqInt) value)) < 0))) {
+ && ((((int) value)) < 0))) {
/* begin internalMustMapMachineCodePC:context: */
/* begin externalizeIPandSP */
assert((((usqInt)localIP)) != (ceReturnToInterpreterPC()));
@@ -12718,7 +12710,6 @@
spouseFP = pointerForOop(senderOop - 1);
if (index == SenderIndex) {
/* begin ensureCallerContext: */
- /* begin frameCallerFP: */
callerFP = pointerForOop(longAt(spouseFP + FoxSavedFP));
if (callerFP == 0) {
@@ -13824,7 +13815,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((sqInt) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
? 256
: 0);
@@ -13851,7 +13842,7 @@
localIP += 3;
if (GIV(primFailCode) != 0) {
- if ((byteAt(localIP + 1)) == (((((sqInt) methodHeader)) < 0
+ if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -14194,7 +14185,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((sqInt) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
? 256
: 0);
@@ -14221,7 +14212,7 @@
localIP += 3;
if (GIV(primFailCode) != 0) {
- if ((byteAt(localIP + 1)) == (((((sqInt) methodHeader)) < 0
+ if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -14671,7 +14662,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((sqInt) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
? 256
: 0);
@@ -14698,7 +14689,7 @@
localIP += 3;
if (GIV(primFailCode) != 0) {
- if ((byteAt(localIP + 1)) == (((((sqInt) methodHeader)) < 0
+ if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -15157,7 +15148,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((sqInt) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
? 256
: 0);
@@ -15184,7 +15175,7 @@
localIP += 3;
if (GIV(primFailCode) != 0) {
- if ((byteAt(localIP + 1)) == (((((sqInt) methodHeader)) < 0
+ if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -15576,7 +15567,7 @@
initialPC = ((GIV(newMethod) + ((LiteralStart + (literalCountOfMethodHeader(methodHeader))) * BytesPerOop)) + BaseHeaderSize) + (3);
if (GIV(primFailCode) != 0) {
- if ((byteAt(initialPC)) == (((((sqInt) methodHeader)) < 0
+ if ((byteAt(initialPC)) == (((((int) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -15672,7 +15663,7 @@
GIV(method) = GIV(newMethod);
assert(isOopCompiledMethod(GIV(method)));
assert((methodHeaderOf(GIV(method))) == methodHeader);
- GIV(bytecodeSetSelector) = ((((sqInt) methodHeader)) < 0
+ GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
? 256
: 0);
@@ -15704,7 +15695,7 @@
GIV(instructionPointer) += 3;
if (GIV(primFailCode) != 0) {
- if ((byteAt(GIV(instructionPointer) + 1)) == (((((sqInt) methodHeader)) < 0
+ if ((byteAt(GIV(instructionPointer) + 1)) == (((((int) methodHeader)) < 0
? AltLongStoreBytecode
: LongStoreBytecode))) {
/* begin getErrorObjectFromPrimFailCode */
@@ -15999,7 +15990,7 @@
prevFrameWasCogged = 0;
}
theIP = ((usqInt)(longAt(theFP + FoxCallerSavedIP)));
- if (!(((callerFP = frameCallerFP(theFP))) != 0)) break;
+ if (!(((callerFP = pointerForOop(longAt(theFP + FoxSavedFP)))) != 0)) break;
theFP = callerFP;
}
assertl(theIP == (ceBaseFrameReturnPC()), ln);
@@ -16048,7 +16039,6 @@
char *p;
usqInt pc;
usqInt pc1;
- sqInt savedIP;
char *sp;
char *sp1;
sqInt startBcpc;
@@ -16069,13 +16059,11 @@
longAtput(GIV(framePointer) + FoxCallerSavedIP, ceBaseFrameReturnPC());
}
else {
- if (!(isMachineCodeFrame(frameCallerFP(GIV(framePointer))))) {
+ if (!((((usqInt)(longAt((pointerForOop(longAt(GIV(framePointer) + FoxSavedFP))) + FoxMethod)))) < (startOfMemory()))) {
/* begin iframeSavedIP:put: */
- /* begin frameCallerFP: */
theFP = pointerForOop(longAt(GIV(framePointer) + FoxSavedFP));
- savedIP = ((sqInt)(frameCallerSavedIP(GIV(framePointer))));
assert(!(isMachineCodeFrame(theFP)));
- longAtput(theFP + FoxIFSavedIP, savedIP);
+ longAtput(theFP + FoxIFSavedIP, ((sqInt)(pointerForOop(longAt(GIV(framePointer) + FoxCallerSavedIP)))));
longAtput(GIV(framePointer) + FoxCallerSavedIP, ceReturnToInterpreterPC());
}
}
@@ -16362,17 +16350,8 @@
assert((((GIV(stackPage)->baseFP)) + (2 * BytesPerWord)) < ((GIV(stackPage)->baseAddress)));
assert((addressCouldBeObj(longAt(((GIV(stackPage)->baseAddress)) - BytesPerWord)))
&& (isContext(longAt(((GIV(stackPage)->baseAddress)) - BytesPerWord))));
- assert((addressCouldBeObj(longAt((GIV(stackPage)->baseAddress))))
- && (isContext(longAt((GIV(stackPage)->baseAddress)))));
-
- /* The stack page is effectively free now, so free it. We must free it to be
- correct in determining if contextToReturnTo is still married, and in case
- makeBaseFrameFor: cogs a method, which may cause a code compaction,
- in which case the frame must be free to avoid the relocation machinery
- tracing the dead frame. Since freeing now temporarily violates the page-list
- ordering invariant, use the assert-free version. */
-
contextToReturnTo = longAt((GIV(stackPage)->baseAddress));
+ assert(addressCouldBeObj(contextToReturnTo));
freeStackPageNoAssert(GIV(stackPage));
isAContext = ((contextToReturnTo & (tagMask())) == 0)
&& (((longAt(contextToReturnTo)) & (classIndexMask())) == ClassMethodContextCompactIndex);
@@ -16405,7 +16384,7 @@
frameAbove = 0;
goto l1;
}
- while (((callerFP = frameCallerFP(fp))) != 0) {
+ while (((callerFP = pointerForOop(longAt(fp + FoxSavedFP)))) != 0) {
if (callerFP == GIV(framePointer)) {
frameAbove = fp;
goto l1;
@@ -17371,7 +17350,6 @@
contextToReturnTo = callerContextOrNil;
}
else {
- /* begin frameCallerFP: */
frameToReturnTo = pointerForOop(longAt(theFP + FoxSavedFP));
}
}
@@ -17502,10 +17480,9 @@
else {
do {
callerFP = GIV(framePointer);
- /* begin frameCallerFP: */
GIV(framePointer) = pointerForOop(longAt(GIV(framePointer) + FoxSavedFP));
} while(GIV(framePointer) != frameToReturnTo);
- GIV(instructionPointer) = ((usqInt)(frameCallerSavedIP(callerFP)));
+ GIV(instructionPointer) = ((usqInt)(pointerForOop(longAt(callerFP + FoxCallerSavedIP))));
/* begin frameCallerSP: */
assert(!(isBaseFrame(callerFP)));
GIV(stackPointer) = (callerFP + (frameStackedReceiverOffsetNumArgs(((((usqInt)(longAt(callerFP + FoxMethod)))) < (startOfMemory())
@@ -18577,7 +18554,6 @@
theSP += BytesPerWord;
}
while (1) {
- /* begin frameReceiverLocation: */
frameRcvrOffset = ((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
? theFP + FoxMFReceiver
: theFP + FoxIFReceiver);
@@ -18639,7 +18615,7 @@
ok = 0;
}
}
- if (!(((callerFP = frameCallerFP(theFP))) != 0)) break;
+ if (!(((callerFP = pointerForOop(longAt(theFP + FoxSavedFP)))) != 0)) break;
theSP = (theFP + FoxCallerSavedIP) + BytesPerWord;
theFP = callerFP;
}
@@ -18792,7 +18768,7 @@
/* begin mframeCogMethod: */
cogMethod = ((CogBlockMethod *) ((longAt(theFP + FoxMethod)) & MFMethodMask));
if (theIP == (ceCannotResumePC())) {
- return HasBeenReturnedFromMCPC;
+ return HasBeenReturnedFromMCPCOop;
}
if (((cogMethod->cmType)) == CMMethod) {
return ((((((sqInt)cogMethod)) - theIP) << 1) | 1);
@@ -18865,7 +18841,6 @@
return 1;
}
calleeFP = theFP;
- /* begin frameCallerFP: */
theFP = pointerForOop(longAt(theFP + FoxSavedFP));
if (!(theFP != 0)) break;
@@ -19227,7 +19202,7 @@
value = longAt((aContext + BaseHeaderSize) + (offset << (shiftForWord())));
return ((offset == InstructionPointerIndex)
&& (((value & 1))
- && ((((sqInt) value)) < 0))
+ && ((((int) value)) < 0))
? (/* begin externalWriteBackHeadFramePointers */
assert((GIV(framePointer) - GIV(stackPointer)) < (LargeContextSlots * BytesPerOop)),
assert(GIV(stackPage) == (mostRecentlyUsedPage())),
@@ -19597,7 +19572,7 @@
&& (((longAt(oop)) & (classIndexMask())) == (isForwardedObjectClassIndexPun()))) {
longAtput(theFP + offset, followForwarded(oop));
}
- if (!(((callerFP = frameCallerFP(theFP))) != 0)) break;
+ if (!(((callerFP = pointerForOop(longAt(theFP + FoxSavedFP)))) != 0)) break;
theIPPtr = ((usqInt)(theFP + FoxCallerSavedIP));
theFP = callerFP;
}
@@ -19747,15 +19722,6 @@
return ((usqInt)((&GIV(framePointer))));
}
@@ Diff output truncated at 50000 characters. @@
More information about the Vm-dev
mailing list