Revision: 3360 Author: eliot Date: 2015-05-27 13:42:53 -0700 (Wed, 27 May 2015) Log Message: ----------- CogVM source as per VMMaker.oscog-eem.1329
Cogit: Fix cache tag access for ARM in cPICHasForwardedClass:
Guard access to the inline cache tag in PICs in GC routines by inlineCacheTagsMayBeObjects.
Mark inlineCacheTagsMayBeObjects as inline to eliminate dead code.
Linux build: Fix creating the launch scripts given the removal of VM_VERSION et al from the autoconf subsystem.
Modified Paths: -------------- branches/Cog/image/buildspurtrunkvmmakerimage.sh branches/Cog/nsspursrc/vm/cogit.h branches/Cog/nsspursrc/vm/cogitARMv5.c branches/Cog/nsspursrc/vm/cogitIA32.c branches/Cog/platforms/unix/config/Makefile.in branches/Cog/platforms/unix/config/Makefile.install branches/Cog/platforms/unix/config/configure branches/Cog/platforms/unix/config/configure.ac 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
Added Paths: ----------- branches/Cog/image/BuildSpurTrunk64Image.st branches/Cog/image/buildspurtrunk64image.sh branches/Cog/image/updatespurimage.sh
Property Changed: ---------------- branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Added: branches/Cog/image/BuildSpurTrunk64Image.st =================================================================== --- branches/Cog/image/BuildSpurTrunk64Image.st (rev 0) +++ branches/Cog/image/BuildSpurTrunk64Image.st 2015-05-27 20:42:53 UTC (rev 3360) @@ -0,0 +1,2 @@ +Spur32to64BitBootstrap new bootstrapImage: 'trunk46-spur'. +Smalltalk snapshot: false andQuit: true Added: branches/Cog/image/buildspurtrunk64image.sh =================================================================== --- branches/Cog/image/buildspurtrunk64image.sh (rev 0) +++ branches/Cog/image/buildspurtrunk64image.sh 2015-05-27 20:42:53 UTC (rev 3360) @@ -0,0 +1,12 @@ +#!/bin/sh +. ./envvars.sh + +./buildspurtrunkvmmakerimage.sh + +. ./getGoodSpurVM.sh + +echo $VM SpurVMMaker.image BuildSqueakSpurTrunkVMMakerImage.st +$VM SpurVMMaker.image BuildSqueakSpurTrunkVMMakerImage.st + +echo $VM SpurVMMaker.image BuildSpurTrunk64Image.st +$VM SpurVMMaker.image BuildSpurTrunk64Image.st
Property changes on: branches/Cog/image/buildspurtrunk64image.sh ___________________________________________________________________ Added: svn:executable + *
Modified: branches/Cog/image/buildspurtrunkvmmakerimage.sh =================================================================== --- branches/Cog/image/buildspurtrunkvmmakerimage.sh 2015-05-27 17:09:50 UTC (rev 3359) +++ branches/Cog/image/buildspurtrunkvmmakerimage.sh 2015-05-27 20:42:53 UTC (rev 3360) @@ -1,19 +1,10 @@ #!/bin/sh . ./envvars.sh
-if [ ! -f trunk46-spur.image -o ! -f trunk46-spur.changes ]; then - ./getlatestspurtrunkimage.sh -fi +./updatespurimage.sh
-./ensureSqueakV41sources.sh - cp -p trunk46-spur.image SpurVMMaker.image cp -p trunk46-spur.changes SpurVMMaker.changes
-. ./getGoodSpurVM.sh - -echo $VM SpurVMMaker.image UpdateSqueakTrunkImage.st -$VM SpurVMMaker.image UpdateSqueakTrunkImage.st - echo $VM SpurVMMaker.image BuildSqueakSpurTrunkVMMakerImage.st $VM SpurVMMaker.image BuildSqueakSpurTrunkVMMakerImage.st
Added: branches/Cog/image/updatespurimage.sh =================================================================== --- branches/Cog/image/updatespurimage.sh (rev 0) +++ branches/Cog/image/updatespurimage.sh 2015-05-27 20:42:53 UTC (rev 3360) @@ -0,0 +1,14 @@ +#!/bin/sh +# Update the latest Spur image. +. ./envvars.sh + +if [ ! -f trunk46-spur.image -o ! -f trunk46-spur.changes ]; then + ./getlatestspurtrunkimage.sh +fi + +./ensureSqueakV41sources.sh + +. ./getGoodSpurVM.sh + +echo $VM trunk46-spur.image UpdateSqueakTrunkImage.st +$VM trunk46-spur.image UpdateSqueakTrunkImage.st
Property changes on: branches/Cog/image/updatespurimage.sh ___________________________________________________________________ Added: svn:executable + *
Modified: branches/Cog/nsspursrc/vm/cogit.h =================================================================== --- branches/Cog/nsspursrc/vm/cogit.h 2015-05-27 17:09:50 UTC (rev 3359) +++ branches/Cog/nsspursrc/vm/cogit.h 2015-05-27 20:42:53 UTC (rev 3360) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + CCodeGenerator VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 */
Modified: branches/Cog/nsspursrc/vm/cogitARMv5.c =================================================================== --- branches/Cog/nsspursrc/vm/cogitARMv5.c 2015-05-27 17:09:50 UTC (rev 3359) +++ branches/Cog/nsspursrc/vm/cogitARMv5.c 2015-05-27 20:42:53 UTC (rev 3360) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + CCodeGenerator VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 from - StackToRegisterMappingCogit VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + StackToRegisterMappingCogit VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 " __DATE__ ; char *__cogitBuildInfo = __buildInfo;
@@ -882,7 +882,6 @@ static sqInt getActiveContextAllocatesInMachineCode(void); static sqInt hasSpurMemoryManagerAPI(void); static sqInt inlineCacheTagIsYoung(sqInt cacheTag) NoDbgRegParms; -static sqInt inlineCacheTagsMayBeObjects(void); static sqInt isSmallIntegerTagNonZero(void); static AbstractInstruction * jumpNotCharacterUnsignedValueInRegister(sqInt reg) NoDbgRegParms; static sqInt markAndTraceCacheTagLiteralinatpc(sqInt literal, CogMethod *cogMethodOrNil, usqInt address) NoDbgRegParms; @@ -6713,7 +6712,9 @@
/* Answer the long constant loaded by a MOV/ORR/ORR/ORR - or MOV/ORR/ORR/ORR/PUSH sequence, just before this address: */ + or MOV/ORR/ORR/ORR/PUSH, or MOV/ORR/ORR/ORR/CMP sequence, just before this + address: + */
/* CogARMCompiler>>#literalBeforeFollowingAddress: */ static sqInt @@ -9848,11 +9849,11 @@ { sqInt classIndex; sqInt i; - usqInt pc; + sqInt pc;
pc = (((((usqInt)cPIC)) + firstCPICCaseOffset) + cPICCaseSize) - (jumpLongConditionalByteSize(backEnd)); for (i = 2; i <= ((cPIC->cPICNumCases)); i += 1) { - classIndex = inlineCacheTagAt(backEnd, pc); + classIndex = literalBeforeFollowingAddress(backEnd, pc - (loadLiteralByteSize(backEnd))); if (isForwardedClassIndex(classIndex)) { return 1; } @@ -11793,9 +11794,7 @@ refersToYoung = updateMaybeObjRefAt(pc - (jumpLongByteSize(backEnd))); pc += cPICCaseSize; for (i = 2; i <= ((cPIC->cPICNumCases)); i += 1) { - if (updateMaybeObjRefAt((pc - (jumpLongConditionalByteSize(backEnd))) - (loadLiteralByteSize(backEnd)))) { - refersToYoung = 1; - } + ; if (updateMaybeObjRefAt(pc - (jumpLongConditionalByteSize(backEnd)))) { refersToYoung = 1; } @@ -18437,13 +18436,6 @@ return 0; }
- /* CogObjectRepresentationForSpur>>#inlineCacheTagsMayBeObjects */ -static sqInt -inlineCacheTagsMayBeObjects(void) -{ - return 0; -} - /* CogObjectRepresentationForSpur>>#isSmallIntegerTagNonZero */ static sqInt isSmallIntegerTagNonZero(void)
Modified: branches/Cog/nsspursrc/vm/cogitIA32.c =================================================================== --- branches/Cog/nsspursrc/vm/cogitIA32.c 2015-05-27 17:09:50 UTC (rev 3359) +++ branches/Cog/nsspursrc/vm/cogitIA32.c 2015-05-27 20:42:53 UTC (rev 3360) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + CCodeGenerator VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 from - StackToRegisterMappingCogit VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + StackToRegisterMappingCogit VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 " __DATE__ ; char *__cogitBuildInfo = __buildInfo;
@@ -826,7 +826,6 @@ static sqInt getActiveContextAllocatesInMachineCode(void); static sqInt hasSpurMemoryManagerAPI(void); static sqInt inlineCacheTagIsYoung(sqInt cacheTag) NoDbgRegParms; -static sqInt inlineCacheTagsMayBeObjects(void); static sqInt isSmallIntegerTagNonZero(void); static AbstractInstruction * jumpNotCharacterUnsignedValueInRegister(sqInt reg) NoDbgRegParms; static sqInt markAndTraceCacheTagLiteralinatpc(sqInt literal, CogMethod *cogMethodOrNil, usqInt address) NoDbgRegParms; @@ -8586,7 +8585,7 @@
pc = (((((usqInt)cPIC)) + firstCPICCaseOffset) + cPICCaseSize) - (jumpLongConditionalByteSize(backEnd)); for (i = 2; i <= ((cPIC->cPICNumCases)); i += 1) { - classIndex = inlineCacheTagAt(backEnd, pc); + classIndex = literalBeforeFollowingAddress(backEnd, pc - (loadLiteralByteSize(backEnd))); if (isForwardedClassIndex(classIndex)) { return 1; } @@ -10533,9 +10532,7 @@ refersToYoung = updateMaybeObjRefAt(pc - (jumpLongByteSize(backEnd))); pc += cPICCaseSize; for (i = 2; i <= ((cPIC->cPICNumCases)); i += 1) { - if (updateMaybeObjRefAt((pc - (jumpLongConditionalByteSize(backEnd))) - (loadLiteralByteSize(backEnd)))) { - refersToYoung = 1; - } + ; if (updateMaybeObjRefAt(pc - (jumpLongConditionalByteSize(backEnd)))) { refersToYoung = 1; } @@ -17163,13 +17160,6 @@ return 0; }
- /* CogObjectRepresentationForSpur>>#inlineCacheTagsMayBeObjects */ -static sqInt -inlineCacheTagsMayBeObjects(void) -{ - return 0; -} - /* CogObjectRepresentationForSpur>>#isSmallIntegerTagNonZero */ static sqInt isSmallIntegerTagNonZero(void)
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h ___________________________________________________________________ Modified: checkindate - Wed May 27 10:09:31 PDT 2015 + Wed May 27 13:40:34 PDT 2015
Modified: branches/Cog/platforms/unix/config/Makefile.in =================================================================== --- branches/Cog/platforms/unix/config/Makefile.in 2015-05-27 17:09:50 UTC (rev 3359) +++ branches/Cog/platforms/unix/config/Makefile.in 2015-05-27 20:42:53 UTC (rev 3360) @@ -69,6 +69,13 @@ reallyclean: for f in *; do case "$$f" in plugins.[ie][nx]t|mvm) ;; *) rm -rf $$f; esac; done
+# unix launch scripts +squeak.sh: ${cfgdir}/squeak.sh.in getversion + sed "s|.expanded_relative_imgdir.|lib/squeak/`./getversion VERSION_TAG`|" <${cfgdir}/squeak.sh.in >squeak.sh + +bin.squeak.sh: ${cfgdir}/bin.squeak.sh.in getversion + sed "s|.expanded_relative_imgdir.|lib/squeak/`./getversion VERSION_TAG`|" <${cfgdir}/bin.squeak.sh.in >bin.squeak.sh + # npsqueak
npsqueak : nps/npsqueak.so
Modified: branches/Cog/platforms/unix/config/Makefile.install =================================================================== --- branches/Cog/platforms/unix/config/Makefile.install 2015-05-27 17:09:50 UTC (rev 3359) +++ branches/Cog/platforms/unix/config/Makefile.install 2015-05-27 20:42:53 UTC (rev 3360) @@ -15,7 +15,7 @@
# squeak
-install-squeak : $(squeak) getversion +install-squeak : $(squeak) $(squeaksh) $(binsqueaksh) getversion $(MKINSTALLDIRS) $(ROOT)$(plgdir) $(MKINSTALLDIRS) $(ROOT)$(bindir) $(INSTALL_PROG) $(squeak) $(ROOT)$(plgdir)
Modified: branches/Cog/platforms/unix/config/configure =================================================================== --- branches/Cog/platforms/unix/config/configure 2015-05-27 17:09:50 UTC (rev 3359) +++ branches/Cog/platforms/unix/config/configure 2015-05-27 20:42:53 UTC (rev 3360) @@ -29291,7 +29291,7 @@
ac_config_headers="$ac_config_headers config.h"
- ac_config_files="$ac_config_files mkconfig make.cfg make.int make.ext make.prg inisqueak squeak.sh bin.squeak.sh Makefile" + ac_config_files="$ac_config_files mkconfig make.cfg make.int make.ext make.prg inisqueak Makefile"
ac_config_commands="$ac_config_commands default"
@@ -29839,8 +29839,6 @@ "make.ext" ) CONFIG_FILES="$CONFIG_FILES make.ext" ;; "make.prg" ) CONFIG_FILES="$CONFIG_FILES make.prg" ;; "inisqueak" ) CONFIG_FILES="$CONFIG_FILES inisqueak" ;; - "squeak.sh" ) CONFIG_FILES="$CONFIG_FILES squeak.sh" ;; - "bin.squeak.sh" ) CONFIG_FILES="$CONFIG_FILES bin.squeak.sh" ;; "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
Modified: branches/Cog/platforms/unix/config/configure.ac =================================================================== --- branches/Cog/platforms/unix/config/configure.ac 2015-05-27 17:09:50 UTC (rev 3359) +++ branches/Cog/platforms/unix/config/configure.ac 2015-05-27 20:42:53 UTC (rev 3360) @@ -401,7 +401,7 @@ # Create the build environment
AC_CONFIG_HEADER(config.h) -AC_CONFIG_FILES(mkconfig make.cfg make.int make.ext make.prg inisqueak squeak.sh bin.squeak.sh Makefile) +AC_CONFIG_FILES(mkconfig make.cfg make.int make.ext make.prg inisqueak Makefile) AC_CONFIG_COMMANDS([default],[ chmod +x mkconfig inisqueak ${SHELL} -ec "./mkconfig; ${cfgdir}/mktargets; ${cfgdir}/mkmf"],[
Modified: branches/Cog/spursistasrc/vm/cogit.h =================================================================== --- branches/Cog/spursistasrc/vm/cogit.h 2015-05-27 17:09:50 UTC (rev 3359) +++ branches/Cog/spursistasrc/vm/cogit.h 2015-05-27 20:42:53 UTC (rev 3360) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + CCodeGenerator VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 */
Modified: branches/Cog/spursistasrc/vm/cogitARMv5.c =================================================================== --- branches/Cog/spursistasrc/vm/cogitARMv5.c 2015-05-27 17:09:50 UTC (rev 3359) +++ branches/Cog/spursistasrc/vm/cogitARMv5.c 2015-05-27 20:42:53 UTC (rev 3360) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + CCodeGenerator VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 from - SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 */ -static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 " __DATE__ ; +static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 " __DATE__ ; char *__cogitBuildInfo = __buildInfo;
@@ -876,7 +876,6 @@ static sqInt getActiveContextAllocatesInMachineCode(void); static sqInt hasSpurMemoryManagerAPI(void); static sqInt inlineCacheTagIsYoung(sqInt cacheTag) NoDbgRegParms; -static sqInt inlineCacheTagsMayBeObjects(void); static sqInt isSmallIntegerTagNonZero(void); static AbstractInstruction * jumpNotCharacterUnsignedValueInRegister(sqInt reg) NoDbgRegParms; static sqInt markAndTraceCacheTagLiteralinatpc(sqInt literal, CogMethod *cogMethodOrNil, usqInt address) NoDbgRegParms; @@ -6714,7 +6713,9 @@
/* Answer the long constant loaded by a MOV/ORR/ORR/ORR - or MOV/ORR/ORR/ORR/PUSH sequence, just before this address: */ + or MOV/ORR/ORR/ORR/PUSH, or MOV/ORR/ORR/ORR/CMP sequence, just before this + address: + */
/* CogARMCompiler>>#literalBeforeFollowingAddress: */ static sqInt @@ -9758,11 +9759,11 @@ { sqInt classIndex; sqInt i; - sqInt pc; + usqInt pc;
pc = (((((usqInt)cPIC)) + firstCPICCaseOffset) + cPICCaseSize) - (jumpLongConditionalByteSize(backEnd)); for (i = 2; i <= ((cPIC->cPICNumCases)); i += 1) { - classIndex = inlineCacheTagAt(backEnd, pc); + classIndex = literalBeforeFollowingAddress(backEnd, pc - (loadLiteralByteSize(backEnd))); if (isForwardedClassIndex(classIndex)) { return 1; } @@ -11542,9 +11543,7 @@ refersToYoung = updateMaybeObjRefAt(pc - (jumpLongByteSize(backEnd))); pc += cPICCaseSize; for (i = 2; i <= ((cPIC->cPICNumCases)); i += 1) { - if (updateMaybeObjRefAt((pc - (jumpLongConditionalByteSize(backEnd))) - (loadLiteralByteSize(backEnd)))) { - refersToYoung = 1; - } + ; if (updateMaybeObjRefAt(pc - (jumpLongConditionalByteSize(backEnd)))) { refersToYoung = 1; } @@ -17482,13 +17481,6 @@ return 0; }
- /* CogObjectRepresentationForSpur>>#inlineCacheTagsMayBeObjects */ -static sqInt -inlineCacheTagsMayBeObjects(void) -{ - return 0; -} - /* CogObjectRepresentationForSpur>>#isSmallIntegerTagNonZero */ static sqInt isSmallIntegerTagNonZero(void)
Modified: branches/Cog/spursistasrc/vm/cogitIA32.c =================================================================== --- branches/Cog/spursistasrc/vm/cogitIA32.c 2015-05-27 17:09:50 UTC (rev 3359) +++ branches/Cog/spursistasrc/vm/cogitIA32.c 2015-05-27 20:42:53 UTC (rev 3360) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + CCodeGenerator VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 from - SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 */ -static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 " __DATE__ ; +static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 " __DATE__ ; char *__cogitBuildInfo = __buildInfo;
@@ -819,7 +819,6 @@ static sqInt getActiveContextAllocatesInMachineCode(void); static sqInt hasSpurMemoryManagerAPI(void); static sqInt inlineCacheTagIsYoung(sqInt cacheTag) NoDbgRegParms; -static sqInt inlineCacheTagsMayBeObjects(void); static sqInt isSmallIntegerTagNonZero(void); static AbstractInstruction * jumpNotCharacterUnsignedValueInRegister(sqInt reg) NoDbgRegParms; static sqInt markAndTraceCacheTagLiteralinatpc(sqInt literal, CogMethod *cogMethodOrNil, usqInt address) NoDbgRegParms; @@ -8484,7 +8483,7 @@
pc = (((((usqInt)cPIC)) + firstCPICCaseOffset) + cPICCaseSize) - (jumpLongConditionalByteSize(backEnd)); for (i = 2; i <= ((cPIC->cPICNumCases)); i += 1) { - classIndex = inlineCacheTagAt(backEnd, pc); + classIndex = literalBeforeFollowingAddress(backEnd, pc - (loadLiteralByteSize(backEnd))); if (isForwardedClassIndex(classIndex)) { return 1; } @@ -10270,9 +10269,7 @@ refersToYoung = updateMaybeObjRefAt(pc - (jumpLongByteSize(backEnd))); pc += cPICCaseSize; for (i = 2; i <= ((cPIC->cPICNumCases)); i += 1) { - if (updateMaybeObjRefAt((pc - (jumpLongConditionalByteSize(backEnd))) - (loadLiteralByteSize(backEnd)))) { - refersToYoung = 1; - } + ; if (updateMaybeObjRefAt(pc - (jumpLongConditionalByteSize(backEnd)))) { refersToYoung = 1; } @@ -16196,13 +16193,6 @@ return 0; }
- /* CogObjectRepresentationForSpur>>#inlineCacheTagsMayBeObjects */ -static sqInt -inlineCacheTagsMayBeObjects(void) -{ - return 0; -} - /* CogObjectRepresentationForSpur>>#isSmallIntegerTagNonZero */ static sqInt isSmallIntegerTagNonZero(void)
Modified: branches/Cog/spursrc/vm/cogit.h =================================================================== --- branches/Cog/spursrc/vm/cogit.h 2015-05-27 17:09:50 UTC (rev 3359) +++ branches/Cog/spursrc/vm/cogit.h 2015-05-27 20:42:53 UTC (rev 3360) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + CCodeGenerator VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 */
Modified: branches/Cog/spursrc/vm/cogitARMv5.c =================================================================== --- branches/Cog/spursrc/vm/cogitARMv5.c 2015-05-27 17:09:50 UTC (rev 3359) +++ branches/Cog/spursrc/vm/cogitARMv5.c 2015-05-27 20:42:53 UTC (rev 3360) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + CCodeGenerator VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 from - StackToRegisterMappingCogit VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + StackToRegisterMappingCogit VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 " __DATE__ ; char *__cogitBuildInfo = __buildInfo;
@@ -866,7 +866,6 @@ static sqInt getActiveContextAllocatesInMachineCode(void); static sqInt hasSpurMemoryManagerAPI(void); static sqInt inlineCacheTagIsYoung(sqInt cacheTag) NoDbgRegParms; -static sqInt inlineCacheTagsMayBeObjects(void); static sqInt isSmallIntegerTagNonZero(void); static AbstractInstruction * jumpNotCharacterUnsignedValueInRegister(sqInt reg) NoDbgRegParms; static sqInt markAndTraceCacheTagLiteralinatpc(sqInt literal, CogMethod *cogMethodOrNil, usqInt address) NoDbgRegParms; @@ -6389,7 +6388,9 @@
/* Answer the long constant loaded by a MOV/ORR/ORR/ORR - or MOV/ORR/ORR/ORR/PUSH sequence, just before this address: */ + or MOV/ORR/ORR/ORR/PUSH, or MOV/ORR/ORR/ORR/CMP sequence, just before this + address: + */
/* CogARMCompiler>>#literalBeforeFollowingAddress: */ static sqInt @@ -9389,7 +9390,7 @@
pc = (((((usqInt)cPIC)) + firstCPICCaseOffset) + cPICCaseSize) - (jumpLongConditionalByteSize(backEnd)); for (i = 2; i <= ((cPIC->cPICNumCases)); i += 1) { - classIndex = inlineCacheTagAt(backEnd, pc); + classIndex = literalBeforeFollowingAddress(backEnd, pc - (loadLiteralByteSize(backEnd))); if (isForwardedClassIndex(classIndex)) { return 1; } @@ -11202,9 +11203,7 @@ refersToYoung = updateMaybeObjRefAt(pc - (jumpLongByteSize(backEnd))); pc += cPICCaseSize; for (i = 2; i <= ((cPIC->cPICNumCases)); i += 1) { - if (updateMaybeObjRefAt((pc - (jumpLongConditionalByteSize(backEnd))) - (loadLiteralByteSize(backEnd)))) { - refersToYoung = 1; - } + ; if (updateMaybeObjRefAt(pc - (jumpLongConditionalByteSize(backEnd)))) { refersToYoung = 1; } @@ -16994,13 +16993,6 @@ return 0; }
- /* CogObjectRepresentationForSpur>>#inlineCacheTagsMayBeObjects */ -static sqInt -inlineCacheTagsMayBeObjects(void) -{ - return 0; -} - /* CogObjectRepresentationForSpur>>#isSmallIntegerTagNonZero */ static sqInt isSmallIntegerTagNonZero(void)
Modified: branches/Cog/spursrc/vm/cogitIA32.c =================================================================== --- branches/Cog/spursrc/vm/cogitIA32.c 2015-05-27 17:09:50 UTC (rev 3359) +++ branches/Cog/spursrc/vm/cogitIA32.c 2015-05-27 20:42:53 UTC (rev 3360) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + CCodeGenerator VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 from - StackToRegisterMappingCogit VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + StackToRegisterMappingCogit VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 " __DATE__ ; char *__cogitBuildInfo = __buildInfo;
@@ -809,7 +809,6 @@ static sqInt getActiveContextAllocatesInMachineCode(void); static sqInt hasSpurMemoryManagerAPI(void); static sqInt inlineCacheTagIsYoung(sqInt cacheTag) NoDbgRegParms; -static sqInt inlineCacheTagsMayBeObjects(void); static sqInt isSmallIntegerTagNonZero(void); static AbstractInstruction * jumpNotCharacterUnsignedValueInRegister(sqInt reg) NoDbgRegParms; static sqInt markAndTraceCacheTagLiteralinatpc(sqInt literal, CogMethod *cogMethodOrNil, usqInt address) NoDbgRegParms; @@ -8111,7 +8110,7 @@
pc = (((((usqInt)cPIC)) + firstCPICCaseOffset) + cPICCaseSize) - (jumpLongConditionalByteSize(backEnd)); for (i = 2; i <= ((cPIC->cPICNumCases)); i += 1) { - classIndex = inlineCacheTagAt(backEnd, pc); + classIndex = literalBeforeFollowingAddress(backEnd, pc - (loadLiteralByteSize(backEnd))); if (isForwardedClassIndex(classIndex)) { return 1; } @@ -9930,9 +9929,7 @@ refersToYoung = updateMaybeObjRefAt(pc - (jumpLongByteSize(backEnd))); pc += cPICCaseSize; for (i = 2; i <= ((cPIC->cPICNumCases)); i += 1) { - if (updateMaybeObjRefAt((pc - (jumpLongConditionalByteSize(backEnd))) - (loadLiteralByteSize(backEnd)))) { - refersToYoung = 1; - } + ; if (updateMaybeObjRefAt(pc - (jumpLongConditionalByteSize(backEnd)))) { refersToYoung = 1; } @@ -15708,13 +15705,6 @@ return 0; }
- /* CogObjectRepresentationForSpur>>#inlineCacheTagsMayBeObjects */ -static sqInt -inlineCacheTagsMayBeObjects(void) -{ - return 0; -} - /* CogObjectRepresentationForSpur>>#isSmallIntegerTagNonZero */ static sqInt isSmallIntegerTagNonZero(void)
Modified: branches/Cog/src/vm/cogit.h =================================================================== --- branches/Cog/src/vm/cogit.h 2015-05-27 17:09:50 UTC (rev 3359) +++ branches/Cog/src/vm/cogit.h 2015-05-27 20:42:53 UTC (rev 3360) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + CCodeGenerator VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 */
Modified: branches/Cog/src/vm/cogitARMv5.c =================================================================== --- branches/Cog/src/vm/cogitARMv5.c 2015-05-27 17:09:50 UTC (rev 3359) +++ branches/Cog/src/vm/cogitARMv5.c 2015-05-27 20:42:53 UTC (rev 3360) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + CCodeGenerator VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 from - StackToRegisterMappingCogit VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + StackToRegisterMappingCogit VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 " __DATE__ ; char *__cogitBuildInfo = __buildInfo;
@@ -844,7 +844,6 @@ static sqInt genStoreSourceRegslotIndexintoNewObjectInDestReg(sqInt sourceReg, sqInt index, sqInt destReg) NoDbgRegParms; static sqInt inlineCacheTagForInstance(sqInt oop) NoDbgRegParms; static sqInt inlineCacheTagIsYoung(sqInt cacheTag) NoDbgRegParms; -static sqInt inlineCacheTagsMayBeObjects(void); static sqInt isSmallIntegerTagNonZero(void); static void markAndTraceLiteralIfYoung(sqInt literal) NoDbgRegParms; static void markAndTraceLiteral(sqInt literal) NoDbgRegParms; @@ -6358,7 +6357,9 @@
/* Answer the long constant loaded by a MOV/ORR/ORR/ORR - or MOV/ORR/ORR/ORR/PUSH sequence, just before this address: */ + or MOV/ORR/ORR/ORR/PUSH, or MOV/ORR/ORR/ORR/CMP sequence, just before this + address: + */
/* CogARMCompiler>>#literalBeforeFollowingAddress: */ static sqInt @@ -8346,6 +8347,7 @@ && (!(isMarked(object)))) { return 1; } + object = literalBeforeFollowingAddress(backEnd, pc - offsetToLiteral); if ((couldBeObject(object)) && (!(isMarked(object)))) { @@ -11050,6 +11052,7 @@ if (updateMaybeObjRefAt((pc - (jumpLongConditionalByteSize(backEnd))) - (loadLiteralByteSize(backEnd)))) { refersToYoung = 1; } + if (updateMaybeObjRefAt(pc - (jumpLongConditionalByteSize(backEnd)))) { refersToYoung = 1; } @@ -15610,13 +15613,6 @@ return isYoung(cacheTag); }
- /* CogObjectRepresentationForSqueakV3>>#inlineCacheTagsMayBeObjects */ -static sqInt -inlineCacheTagsMayBeObjects(void) -{ - return 1; -} - /* CogObjectRepresentationForSqueakV3>>#isSmallIntegerTagNonZero */ static sqInt isSmallIntegerTagNonZero(void)
Modified: branches/Cog/src/vm/cogitIA32.c =================================================================== --- branches/Cog/src/vm/cogitIA32.c 2015-05-27 17:09:50 UTC (rev 3359) +++ branches/Cog/src/vm/cogitIA32.c 2015-05-27 20:42:53 UTC (rev 3360) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + CCodeGenerator VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 from - StackToRegisterMappingCogit VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 + StackToRegisterMappingCogit VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1328 uuid: c1e2ed6b-28c4-448f-88b8-4c7a3ad53b78 " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1329 uuid: d25444c7-af99-40e1-ab8a-a765c046eae5 " __DATE__ ; char *__cogitBuildInfo = __buildInfo;
@@ -786,7 +786,6 @@ static sqInt genStoreSourceRegslotIndexintoNewObjectInDestReg(sqInt sourceReg, sqInt index, sqInt destReg) NoDbgRegParms; static sqInt inlineCacheTagForInstance(sqInt oop) NoDbgRegParms; static sqInt inlineCacheTagIsYoung(sqInt cacheTag) NoDbgRegParms; -static sqInt inlineCacheTagsMayBeObjects(void); static sqInt isSmallIntegerTagNonZero(void); static void markAndTraceLiteralIfYoung(sqInt literal) NoDbgRegParms; static void markAndTraceLiteral(sqInt literal) NoDbgRegParms; @@ -7093,6 +7092,7 @@ && (!(isMarked(object)))) { return 1; } + object = literalBeforeFollowingAddress(backEnd, pc - offsetToLiteral); if ((couldBeObject(object)) && (!(isMarked(object)))) { @@ -9777,6 +9777,7 @@ if (updateMaybeObjRefAt((pc - (jumpLongConditionalByteSize(backEnd))) - (loadLiteralByteSize(backEnd)))) { refersToYoung = 1; } + if (updateMaybeObjRefAt(pc - (jumpLongConditionalByteSize(backEnd)))) { refersToYoung = 1; } @@ -14338,13 +14339,6 @@ return isYoung(cacheTag); }
- /* CogObjectRepresentationForSqueakV3>>#inlineCacheTagsMayBeObjects */ -static sqInt -inlineCacheTagsMayBeObjects(void) -{ - return 1; -} - /* CogObjectRepresentationForSqueakV3>>#isSmallIntegerTagNonZero */ static sqInt isSmallIntegerTagNonZero(void)
vm-dev@lists.squeakfoundation.org