[Vm-dev] [commit][2922] CogVM source as per VMMaker.oscog-eem.723.

commits at squeakvm.org commits at squeakvm.org
Tue May 20 02:14:04 UTC 2014


Revision: 2922
Author:   eliot
Date:     2014-05-19 19:14:03 -0700 (Mon, 19 May 2014)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.723.

Alphabetise protocols in Cog & VMMaker in the image build script.  Leave it up
to VMClass class>>initialize to add the useful expressions to the do... menu.

Cogit:
Refactor the code around pushing register arguments and switching between the
Smalltalk and C stacks, moving the actual generators into backEnd (the special
instance of the relevant CogAbstractInstruction subclass) .  This allows
CogARMInstruction to handle pushing the register args and hence handle the
difference of having a link reg.

Combine genSaveStackPointers & genLoadCStackPointers
into Cogit>>genSmalltalkToCStackSwitch.

Newspeak Spur:
Provide machine code primitives for instantiateFixedClass:
(a.k.a. a 1 arg basicNew) and instantiateVariableClass:withSize:
(a.k.a. a 2 arg basicNew:).

Spur:
Make the MirrorNew prims option: #NewspeakVM

Split the check heap loop between newSpace and oldSpace
to improve leak map checking performance a little.

Fix the assert in checkForAndFollowForwardedPrimitiveState
and add support for primitive 218, primitiveDoNamedPrimitiveWithArgs.

Nuke old fit compact code.
Nuke unused inst vars (lastSubdividedFreeChunk, highestObjects).

Update SpurMemoryManager class comment.

Make compact update statCompactPassCount.

Check free space after rebuildFreeListsForPigCompact.

Slang:
In non-production VMs add an attribute to disable register parameters (at least
for GCC-compliant compilers), allowing all static functions to be called from
gdb even in the -O1 assert VMs.

Misc:
Fix str:n:cmp: usage in printOopShortInner:.

Modified Paths:
--------------
    branches/Cog/image/BuildSqueak45Image.st
    branches/Cog/macbuild/CoreMTVM.xcodeproj/project.pbxproj
    branches/Cog/macbuild/CoreVM.xcodeproj/project.pbxproj
    branches/Cog/nsbuild/macbuild/CoreVM.xcodeproj/project.pbxproj
    branches/Cog/nscogbuild/macbuild/CoreVM.xcodeproj/project.pbxproj
    branches/Cog/nsspurcogbuild/macbuild/CoreVM.xcodeproj/project.pbxproj
    branches/Cog/nsspursrc/vm/cogit.c
    branches/Cog/nsspursrc/vm/cogit.h
    branches/Cog/nsspursrc/vm/cogmethod.h
    branches/Cog/nsspursrc/vm/cointerp.c
    branches/Cog/nsspursrc/vm/cointerp.h
    branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
    branches/Cog/nsspursrc/vm/interp.h
    branches/Cog/nsspursrc/vm/vmCallback.h
    branches/Cog/nsspurstackbuild/macbuild/CoreVM.xcodeproj/project.pbxproj
    branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
    branches/Cog/nsspurstacksrc/vm/interp.c
    branches/Cog/nsspurstacksrc/vm/interp.h
    branches/Cog/nsspurstacksrc/vm/vmCallback.h
    branches/Cog/platforms/Cross/vm/sqMemoryAccess.h
    branches/Cog/sistamacbuild/CoreVM.xcodeproj/project.pbxproj
    branches/Cog/spurcogbuild/macbuild/CoreMTVM.xcodeproj/project.pbxproj
    branches/Cog/spurcogbuild/macbuild/CoreVM.xcodeproj/project.pbxproj
    branches/Cog/spursistamacbuild/CoreVM.xcodeproj/project.pbxproj
    branches/Cog/spursistasrc/vm/cogit.c
    branches/Cog/spursistasrc/vm/cogit.h
    branches/Cog/spursistasrc/vm/cogmethod.h
    branches/Cog/spursistasrc/vm/cointerp.c
    branches/Cog/spursistasrc/vm/cointerp.h
    branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
    branches/Cog/spursistasrc/vm/interp.h
    branches/Cog/spursistasrc/vm/vmCallback.h
    branches/Cog/spursrc/vm/cogit.c
    branches/Cog/spursrc/vm/cogit.h
    branches/Cog/spursrc/vm/cogmethod.h
    branches/Cog/spursrc/vm/cointerp.c
    branches/Cog/spursrc/vm/cointerp.h
    branches/Cog/spursrc/vm/gcc3x-cointerp.c
    branches/Cog/spursrc/vm/interp.h
    branches/Cog/spursrc/vm/vmCallback.h
    branches/Cog/spurstackbuild/macbuild/CoreVM.xcodeproj/project.pbxproj
    branches/Cog/spurstacksrc/vm/gcc3x-interp.c
    branches/Cog/spurstacksrc/vm/interp.c
    branches/Cog/spurstacksrc/vm/interp.h
    branches/Cog/spurstacksrc/vm/vmCallback.h
    branches/Cog/stackbuild/macbuild/CoreVM.xcodeproj/project.pbxproj

Property Changed:
----------------
    branches/Cog/platforms/Cross/vm/sqSCCSVersion.h

Modified: branches/Cog/image/BuildSqueak45Image.st
===================================================================
--- branches/Cog/image/BuildSqueak45Image.st	2014-05-11 16:05:51 UTC (rev 2921)
+++ branches/Cog/image/BuildSqueak45Image.st	2014-05-20 02:14:03 UTC (rev 2922)
@@ -65,8 +65,15 @@
 
 (Utilities classPool at: #CommonRequestStrings) ifNotNil:
 	[:crs|
-	crs contents: crs contents, '\-\VMMaker generateConfiguration\VMMaker generateAllConfigurationsUnderVersionControl\VMClass openCogMultiWindowBrowser\VMClass openObjectMemoriesInterpretersBrowser' withCRs].
+	crs contents: crs contents, '\-\VMMaker generateConfiguration\VMMaker generateAllConfigurationsUnderVersionControl\VMClass openCogMultiWindowBrowser\VMClass openObjectMemoriesInterpretersBrowser\VMClass openSpurMultiWindowBrowser' withCRs].
 
 CodeHolder useMultiWindowBrowsers: true.
 
+#('Cog' 'CogTools' 'VMMaker') do:
+	[:pkg|
+	(PackageInfo named: pkg) classes do:
+		[:c|
+		c organization sortCategories.
+		c class organization sortCategories]].
+
 Smalltalk snapshot: true andQuit: true
Modified: branches/Cog/macbuild/CoreMTVM.xcodeproj/project.pbxproj
===================================================================
--- branches/Cog/macbuild/CoreMTVM.xcodeproj/project.pbxproj	2014-05-11 16:05:51 UTC (rev 2921)
+++ branches/Cog/macbuild/CoreMTVM.xcodeproj/project.pbxproj	2014-05-20 02:14:03 UTC (rev 2922)
@@ -2144,7 +2144,7 @@
 				MACOSX_DEPLOYMENT_TARGET = 10.5;
 				OTHER_LDFLAGS = "";
 				OTHER_REZFLAGS = "";
-				PER_ARCH_CFLAGS_i386 = "-O3  -falign-functions=16 -fno-gcse -mtune=prescott -march=pentium-m  -mfpmath=sse -finline-functions -Wall -DUSE_INLINE_MEMORY_ACCESSORS";
+				PER_ARCH_CFLAGS_i386 = "-O3  -falign-functions=16 -fno-gcse -mtune=prescott -march=pentium4  -mfpmath=sse -finline-functions -Wall -DUSE_INLINE_MEMORY_ACCESSORS";
 				PRODUCT_NAME = Squeak;
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "";

Modified: branches/Cog/macbuild/CoreVM.xcodeproj/project.pbxproj
===================================================================
--- branches/Cog/macbuild/CoreVM.xcodeproj/project.pbxproj	2014-05-11 16:05:51 UTC (rev 2921)
+++ branches/Cog/macbuild/CoreVM.xcodeproj/project.pbxproj	2014-05-20 02:14:03 UTC (rev 2922)
@@ -2144,7 +2144,7 @@
 				MACOSX_DEPLOYMENT_TARGET = 10.5;
 				OTHER_LDFLAGS = "";
 				OTHER_REZFLAGS = "";
-				PER_ARCH_CFLAGS_i386 = "-O3  -falign-functions=16 -fno-gcse -mtune=prescott -march=pentium-m  -mfpmath=sse -finline-functions -Wall -DUSE_INLINE_MEMORY_ACCESSORS";
+				PER_ARCH_CFLAGS_i386 = "-O3  -falign-functions=16 -fno-gcse -mtune=prescott -march=pentium4  -mfpmath=sse -finline-functions -Wall -DUSE_INLINE_MEMORY_ACCESSORS";
 				PRODUCT_NAME = Squeak;
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "";

Modified: branches/Cog/nsbuild/macbuild/CoreVM.xcodeproj/project.pbxproj
===================================================================
--- branches/Cog/nsbuild/macbuild/CoreVM.xcodeproj/project.pbxproj	2014-05-11 16:05:51 UTC (rev 2921)
+++ branches/Cog/nsbuild/macbuild/CoreVM.xcodeproj/project.pbxproj	2014-05-20 02:14:03 UTC (rev 2922)
@@ -1855,7 +1855,7 @@
 				MACOSX_DEPLOYMENT_TARGET = 10.5;
 				OTHER_LDFLAGS = "";
 				OTHER_REZFLAGS = "";
-				PER_ARCH_CFLAGS_i386 = "-O3  -falign-functions=16 -fno-gcse -mtune=prescott -march=pentium-m  -mfpmath=sse -finline-functions -Wall -DUSE_INLINE_MEMORY_ACCESSORS";
+				PER_ARCH_CFLAGS_i386 = "-O3  -falign-functions=16 -fno-gcse -mtune=prescott -march=pentium4  -mfpmath=sse -finline-functions -Wall -DUSE_INLINE_MEMORY_ACCESSORS";
 				PRODUCT_NAME = "Newspeak Virtual Machine";
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "";

Modified: branches/Cog/nscogbuild/macbuild/CoreVM.xcodeproj/project.pbxproj
===================================================================
--- branches/Cog/nscogbuild/macbuild/CoreVM.xcodeproj/project.pbxproj	2014-05-11 16:05:51 UTC (rev 2921)
+++ branches/Cog/nscogbuild/macbuild/CoreVM.xcodeproj/project.pbxproj	2014-05-20 02:14:03 UTC (rev 2922)
@@ -1865,7 +1865,7 @@
 				MACOSX_DEPLOYMENT_TARGET = 10.5;
 				OTHER_LDFLAGS = "";
 				OTHER_REZFLAGS = "";
-				PER_ARCH_CFLAGS_i386 = "-O3  -falign-functions=16 -fno-gcse -mtune=prescott -march=pentium-m  -mfpmath=sse -finline-functions -Wall -DUSE_INLINE_MEMORY_ACCESSORS";
+				PER_ARCH_CFLAGS_i386 = "-O3  -falign-functions=16 -fno-gcse -mtune=prescott -march=pentium4  -mfpmath=sse -finline-functions -Wall -DUSE_INLINE_MEMORY_ACCESSORS";
 				PRODUCT_NAME = "Newspeak Virtual Machine";
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "";

Modified: branches/Cog/nsspurcogbuild/macbuild/CoreVM.xcodeproj/project.pbxproj
===================================================================
--- branches/Cog/nsspurcogbuild/macbuild/CoreVM.xcodeproj/project.pbxproj	2014-05-11 16:05:51 UTC (rev 2921)
+++ branches/Cog/nsspurcogbuild/macbuild/CoreVM.xcodeproj/project.pbxproj	2014-05-20 02:14:03 UTC (rev 2922)
@@ -1858,7 +1858,7 @@
 				MACOSX_DEPLOYMENT_TARGET = 10.5;
 				OTHER_LDFLAGS = "";
 				OTHER_REZFLAGS = "";
-				PER_ARCH_CFLAGS_i386 = "-O3  -falign-functions=16 -fno-gcse -mtune=prescott -march=pentium-m  -mfpmath=sse -finline-functions -Wall -DUSE_INLINE_MEMORY_ACCESSORS";
+				PER_ARCH_CFLAGS_i386 = "-O3  -falign-functions=16 -fno-gcse -mtune=prescott -march=pentium4  -mfpmath=sse -finline-functions -Wall -DUSE_INLINE_MEMORY_ACCESSORS";
 				PRODUCT_NAME = "Newspeak Virtual Machine";
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "";

Modified: branches/Cog/nsspursrc/vm/cogit.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.c	2014-05-11 16:05:51 UTC (rev 2921)
+++ branches/Cog/nsspursrc/vm/cogit.c	2014-05-20 02:14:03 UTC (rev 2922)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.712 uuid: 2f12e8dd-7da6-4358-9eb4-ba4782b7206d
+	CCodeGenerator VMMaker.oscog-eem.723 uuid: 7e7f66ea-1471-4c21-9040-bd4ba88fea7f
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.712 uuid: 2f12e8dd-7da6-4358-9eb4-ba4782b7206d
+	StackToRegisterMappingCogit VMMaker.oscog-eem.723 uuid: 7e7f66ea-1471-4c21-9040-bd4ba88fea7f
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.712 uuid: 2f12e8dd-7da6-4358-9eb4-ba4782b7206d " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.723 uuid: 7e7f66ea-1471-4c21-9040-bd4ba88fea7f " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -343,200 +343,210 @@
 
 
 /*** Function Prototypes ***/
-static AbstractInstruction * gAndCqR(sqInt quickConstant, sqInt reg);
-static AbstractInstruction * gArithmeticShiftRightRR(sqInt reg1, sqInt reg2);
+
+
+#if defined(PRODUCTION) && !PRODUCTION && defined(__GNUC__) && !defined(NoDbgRegParms)
+# define NoDbgRegParms __attribute__ ((regparm (0)))
+#endif
+
+#if !defined(NoDbgRegParms)
+# define NoDbgRegParms /*empty*/
+#endif
+
+static AbstractInstruction * gAndCqR(sqInt quickConstant, sqInt reg) NoDbgRegParms;
+static AbstractInstruction * gArithmeticShiftRightRR(sqInt reg1, sqInt reg2) NoDbgRegParms;
 sqInt abortOffset(void);
-static sqInt abstractInstructionfollows(AbstractInstruction *theAbstractInstruction, AbstractInstruction *anAbstractInstruction);
-static sqInt abstractRegisterForConcreteRegister(AbstractInstruction * self_in_abstractRegisterForConcreteRegister, sqInt reg);
-static BlockStart * addBlockStartAtnumArgsnumCopiedspan(sqInt bytecodepc, sqInt numArgs, sqInt numCopied, sqInt span);
+static sqInt abstractInstructionfollows(AbstractInstruction *theAbstractInstruction, AbstractInstruction *anAbstractInstruction) NoDbgRegParms;
+static sqInt abstractRegisterForConcreteRegister(AbstractInstruction * self_in_abstractRegisterForConcreteRegister, sqInt reg) NoDbgRegParms;
+static BlockStart * addBlockStartAtnumArgsnumCopiedspan(sqInt bytecodepc, sqInt numArgs, sqInt numCopied, sqInt span) NoDbgRegParms;
 static void addCleanBlockStarts(void);
 void addCogMethodsToHeapMap(void);
-static AbstractInstruction * addDependent(AbstractInstruction * self_in_addDependent, AbstractInstruction *anInstruction);
-static sqInt addressIsInFixups(AbstractInstruction *address);
-static sqInt addressIsInInstructions(AbstractInstruction *address);
-static sqInt addressOfEndOfCaseinCPIC(sqInt n, CogMethod *cPIC);
-static void addToOpenPICList(CogMethod *anOpenPIC);
-static void addToUnpairedMethodList(CogMethod *aCogMethod);
-static void addToYoungReferrers(CogMethod *cogMethod);
-static sqInt alignUptoRoutineBoundary(sqInt anAddress);
+static AbstractInstruction * addDependent(AbstractInstruction * self_in_addDependent, AbstractInstruction *anInstruction) NoDbgRegParms;
+static sqInt addressIsInFixups(AbstractInstruction *address) NoDbgRegParms;
+static sqInt addressIsInInstructions(AbstractInstruction *address) NoDbgRegParms;
+static sqInt addressOfEndOfCaseinCPIC(sqInt n, CogMethod *cPIC) NoDbgRegParms;
+static void addToOpenPICList(CogMethod *anOpenPIC) NoDbgRegParms;
+static void addToUnpairedMethodList(CogMethod *aCogMethod) NoDbgRegParms;
+static void addToYoungReferrers(CogMethod *cogMethod) NoDbgRegParms;
+static sqInt alignUptoRoutineBoundary(sqInt anAddress) NoDbgRegParms;
 static sqInt allMachineCodeObjectReferencesValid(void);
 static sqInt allMethodsHaveCorrectHeader(void);
-static sqInt allocate(sqInt numBytes);
+static sqInt allocate(sqInt numBytes) NoDbgRegParms;
 static sqInt allYoungObjectsAgeInFullGC(void);
-static AbstractInstruction * annotateAbsolutePCRef(AbstractInstruction *abstractInstruction);
-static void annotateBytecodeIfAnnotated(CogSimStackEntry *aSimStackEntry);
-static AbstractInstruction * annotateBytecode(AbstractInstruction *abstractInstruction);
-static AbstractInstruction * annotateobjRef(AbstractInstruction *abstractInstruction, sqInt anOop);
-static AbstractInstruction * annotatewith(AbstractInstruction *abstractInstruction, sqInt annotationFlag);
-static sqInt anyReferencesToRegisterinTopNItems(sqInt reg, sqInt n);
-static void assertSaneJumpTarget(AbstractInstruction *jumpTarget);
+static AbstractInstruction * annotateAbsolutePCRef(AbstractInstruction *abstractInstruction) NoDbgRegParms;
+static void annotateBytecodeIfAnnotated(CogSimStackEntry *aSimStackEntry) NoDbgRegParms;
+static AbstractInstruction * annotateBytecode(AbstractInstruction *abstractInstruction) NoDbgRegParms;
+static AbstractInstruction * annotateobjRef(AbstractInstruction *abstractInstruction, sqInt anOop) NoDbgRegParms;
+static AbstractInstruction * annotatewith(AbstractInstruction *abstractInstruction, sqInt annotationFlag) NoDbgRegParms;
+static sqInt anyReferencesToRegisterinTopNItems(sqInt reg, sqInt n) NoDbgRegParms;
+static void assertSaneJumpTarget(AbstractInstruction *jumpTarget) NoDbgRegParms;
 static sqInt availableRegisterOrNil(void);
-static sqInt blockCreationBytecodeSizeForHeader(sqInt methodHeader);
-static sqInt blockDispatchTargetsForperformarg(CogMethod *cogMethod, usqInt (*binaryFunction)(sqInt mcpc, sqInt arg), sqInt arg);
+static sqInt blockCreationBytecodeSizeForHeader(sqInt methodHeader) NoDbgRegParms;
+static sqInt blockDispatchTargetsForperformarg(CogMethod *cogMethod, usqInt (*binaryFunction)(sqInt mcpc, sqInt arg), sqInt arg) NoDbgRegParms;
 sqInt bytecodePCForstartBcpcin(sqInt mcpc, sqInt startbcpc, CogBlockMethod *cogMethod);
-static AbstractInstruction * CallNewspeakSend(sqInt callTarget);
-static AbstractInstruction * CallRT(sqInt callTarget);
-static AbstractInstruction * CallRTregistersToBeSavedMask(sqInt callTarget, sqInt registersToBeSaved);
-static AbstractInstruction * CallSend(sqInt callTarget);
-static AbstractInstruction * gCmpCqR(sqInt quickConstant, sqInt reg);
-static AbstractInstruction * gCmpCwR(sqInt wordConstant, sqInt reg);
-static AbstractInstruction * gCmpRR(sqInt reg1, sqInt reg2);
-static sqInt cacheTagIsMarked(sqInt cacheTag);
-static sqInt callerSavedRegisterMask(AbstractInstruction * self_in_callerSavedRegisterMask);
-static sqInt callInstructionByteSize(AbstractInstruction * self_in_callInstructionByteSize);
+static AbstractInstruction * CallNewspeakSend(sqInt callTarget) NoDbgRegParms;
+static AbstractInstruction * CallRT(sqInt callTarget) NoDbgRegParms;
+static AbstractInstruction * CallRTregistersToBeSavedMask(sqInt callTarget, sqInt registersToBeSaved) NoDbgRegParms;
+static AbstractInstruction * CallSend(sqInt callTarget) NoDbgRegParms;
+static AbstractInstruction * gCmpCqR(sqInt quickConstant, sqInt reg) NoDbgRegParms;
+static AbstractInstruction * gCmpCwR(sqInt wordConstant, sqInt reg) NoDbgRegParms;
+static AbstractInstruction * gCmpRR(sqInt reg1, sqInt reg2) NoDbgRegParms;
+static sqInt cacheTagIsMarked(sqInt cacheTag) NoDbgRegParms;
+static sqInt callerSavedRegisterMask(AbstractInstruction * self_in_callerSavedRegisterMask) NoDbgRegParms;
+static sqInt callInstructionByteSize(AbstractInstruction * self_in_callInstructionByteSize) NoDbgRegParms;
 static sqInt callPrimitiveBytecode(void);
-static sqInt callsAreRelative(AbstractInstruction * self_in_callsAreRelative);
-static sqInt callTargetFromReturnAddress(AbstractInstruction * self_in_callTargetFromReturnAddress, sqInt callSiteReturnAddress);
-static sqInt canDivQuoRem(AbstractInstruction * self_in_canDivQuoRem);
-static sqInt canMulRR(AbstractInstruction * self_in_canMulRR);
-static sqInt ceClosureCopyDescriptor(sqInt descriptor);
+static sqInt callsAreRelative(AbstractInstruction * self_in_callsAreRelative) NoDbgRegParms;
+static sqInt callTargetFromReturnAddress(AbstractInstruction * self_in_callTargetFromReturnAddress, sqInt callSiteReturnAddress) NoDbgRegParms;
+static sqInt canDivQuoRem(AbstractInstruction * self_in_canDivQuoRem) NoDbgRegParms;
+static sqInt canMulRR(AbstractInstruction * self_in_canMulRR) NoDbgRegParms;
+static sqInt ceClosureCopyDescriptor(sqInt descriptor) NoDbgRegParms;
 sqInt ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver);
-static sqInt ceImplicitReceiverForreceiverclass(sqInt selector, sqInt receiver, sqInt rcvrClass);
+static sqInt ceImplicitReceiverForreceiverclass(sqInt selector, sqInt receiver, sqInt rcvrClass) NoDbgRegParms;
 sqInt ceSICMiss(sqInt receiver);
 void checkAssertsEnabledInCogit(void);
-static sqInt checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod);
-static sqInt checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod);
+static sqInt checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) NoDbgRegParms;
+static sqInt checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) NoDbgRegParms;
 sqInt checkIntegrityOfObjectReferencesInCode(sqInt fullGCFlag);
-static sqInt checkMaybeObjRefAt(sqInt mcpc);
+static sqInt checkMaybeObjRefAt(sqInt mcpc) NoDbgRegParms;
 static void checkPrimitiveTableEnablers(void);
-static sqInt checkValidInlineCacheTag(sqInt classIndexOrTagPattern);
-static sqInt checkValidObjectReferencesInClosedPIC(CogMethod *cPIC);
-static sqInt checkValidObjectReference(sqInt anOop);
-static sqInt checkValidOopReference(sqInt anOop);
+static sqInt checkValidInlineCacheTag(sqInt classIndexOrTagPattern) NoDbgRegParms;
+static sqInt checkValidObjectReferencesInClosedPIC(CogMethod *cPIC) NoDbgRegParms;
+static sqInt checkValidObjectReference(sqInt anOop) NoDbgRegParms;
+static sqInt checkValidOopReference(sqInt anOop) NoDbgRegParms;
 static void clearCogCompiledCode(void);
-static CogMethod * cmHomeMethod(CogBlockMethod * self_in_cmHomeMethod);
+static CogMethod * cmHomeMethod(CogBlockMethod * self_in_cmHomeMethod) NoDbgRegParms;
 char * codeEntryFor(char *address);
 char * codeEntryNameFor(char *address);
 sqInt cogCodeBase(void);
 sqInt cogCodeConstituents(void);
-static sqInt cogExtendPICCaseNMethodtagisMNUCase(CogMethod *cPIC, sqInt caseNMethod, sqInt caseNTag, sqInt isMNUCase);
+static sqInt cogExtendPICCaseNMethodtagisMNUCase(CogMethod *cPIC, sqInt caseNMethod, sqInt caseNTag, sqInt isMNUCase) NoDbgRegParms;
 void cogitPostGCAction(sqInt gcMode);
 sqInt cogMethodDoesntLookKosher(CogMethod *cogMethod);
 CogMethod * cogMNUPICSelectormethodOperandnumArgs(sqInt selector, sqInt methodOperand, sqInt numArgs);
-static CogMethod * cogOpenPICSelectornumArgs(sqInt selector, sqInt numArgs);
-static CogMethod * cogPICSelectornumArgsCase0MethodCase1MethodtagisMNUCase(sqInt selector, sqInt numArgs, CogMethod *case0CogMethod, sqInt case1MethodOrNil, sqInt case1Tag, sqInt isMNUCase);
+static CogMethod * cogOpenPICSelectornumArgs(sqInt selector, sqInt numArgs) NoDbgRegParms;
+static CogMethod * cogPICSelectornumArgsCase0MethodCase1MethodtagisMNUCase(sqInt selector, sqInt numArgs, CogMethod *case0CogMethod, sqInt case1MethodOrNil, sqInt case1Tag, sqInt isMNUCase) NoDbgRegParms;
 CogMethod * cogselector(sqInt aMethodObj, sqInt aSelectorOop);
 void compactCogCompiledCode(void);
 static void compactCompiledCode(void);
 static void compileAbort(void);
-static sqInt compileAbstractInstructionsFromthrough(sqInt start, sqInt end);
+static sqInt compileAbstractInstructionsFromthrough(sqInt start, sqInt end) NoDbgRegParms;
 static sqInt compileBlockBodies(void);
 static sqInt compileBlockDispatch(void);
-static sqInt compileBlockDispatchFromto(sqInt lowBlockStartIndex, sqInt highBlockStartIndex);
-static void compileBlockEntry(BlockStart *blockStart);
-static void compileBlockFrameBuild(BlockStart *blockStart);
-static void compileBlockFramelessEntry(BlockStart *blockStart);
+static sqInt compileBlockDispatchFromto(sqInt lowBlockStartIndex, sqInt highBlockStartIndex) NoDbgRegParms;
+static void compileBlockEntry(BlockStart *blockStart) NoDbgRegParms;
+static void compileBlockFrameBuild(BlockStart *blockStart) NoDbgRegParms;
+static void compileBlockFramelessEntry(BlockStart *blockStart) NoDbgRegParms;
 static sqInt compileClosedPICPrototype(void);
-static CogMethod * compileCogMethod(sqInt selector);
+static CogMethod * compileCogMethod(sqInt selector) NoDbgRegParms;
 static AbstractInstruction * compileCPICEntry(void);
-static sqInt compileCPICCase0Case1MethodtagisMNUCasenumArgs(CogMethod *cPIC, CogMethod *case0CogMethod, sqInt case1Method, sqInt case1Tag, sqInt isMNUCase, sqInt numArgs);
+static sqInt compileCPICCase0Case1MethodtagisMNUCasenumArgs(CogMethod *cPIC, CogMethod *case0CogMethod, sqInt case1Method, sqInt case1Tag, sqInt isMNUCase, sqInt numArgs) NoDbgRegParms;
 static sqInt compileEntireMethod(void);
 static void compileEntry(void);
 static sqInt compileFallbackToInterpreterPrimitive(void);
 static sqInt compileFrameBuild(void);
 static void compileGetErrorCode(void);
-static sqInt compileInterpreterPrimitive(void (*primitiveRoutine)(void));
+static sqInt compileInterpreterPrimitive(void (*primitiveRoutine)(void)) NoDbgRegParms;
 static sqInt compileMethodBody(void);
-static sqInt compileMNUCPICmethodOperandnumArgs(CogMethod *cPIC, sqInt methodOperand, sqInt numArgs);
-static void compileOpenPICnumArgs(sqInt selector, sqInt numArgs);
-static sqInt compilePICProlog(sqInt numArgs);
+static sqInt compileMNUCPICmethodOperandnumArgs(CogMethod *cPIC, sqInt methodOperand, sqInt numArgs) NoDbgRegParms;
+static void compileOpenPICnumArgs(sqInt selector, sqInt numArgs) NoDbgRegParms;
+static sqInt compilePICProlog(sqInt numArgs) NoDbgRegParms;
 static sqInt compilePrimitive(void);
-static void compileTrampolineForcallJumpBarnumArgsargargargargsaveRegsresultReg(void *aRoutine, sqInt callJumpBar, sqInt numArgs, sqInt regOrConst0, sqInt regOrConst1, sqInt regOrConst2, sqInt regOrConst3, sqInt saveRegs, sqInt resultRegOrNil);
+static void compileTrampolineForcallJumpBarnumArgsargargargargsaveRegsresultReg(void *aRoutine, sqInt callJumpBar, sqInt numArgs, sqInt regOrConst0, sqInt regOrConst1, sqInt regOrConst2, sqInt regOrConst3, sqInt saveRegs, sqInt resultRegOrNil) NoDbgRegParms;
 static void computeEntryOffsets(void);
-static sqInt computeJumpTargetOffsetPlus(AbstractInstruction * self_in_computeJumpTargetOffsetPlus, sqInt anPCOffset);
-static sqInt computeMaximumSize(AbstractInstruction * self_in_computeMaximumSize);
+static sqInt computeJumpTargetOffsetPlus(AbstractInstruction * self_in_computeJumpTargetOffsetPlus, sqInt anPCOffset) NoDbgRegParms;
+static sqInt computeMaximumSize(AbstractInstruction * self_in_computeMaximumSize) NoDbgRegParms;
 static void computeMaximumSizes(void);
-static sqInt computeShiftRRSize(AbstractInstruction * self_in_computeShiftRRSize);
-static sqInt concreteDPFPRegister(AbstractInstruction * self_in_concreteDPFPRegister, sqInt registerIndex);
-static sqInt concreteRegister(AbstractInstruction * self_in_concreteRegister, sqInt registerIndex);
-static sqInt concretizeAddCqR(AbstractInstruction * self_in_concretizeAddCqR);
-static sqInt concretizeAddCwR(AbstractInstruction * self_in_concretizeAddCwR);
-static sqInt concretizeAddRR(AbstractInstruction * self_in_concretizeAddRR);
-static AbstractInstruction * concretizeAlignmentNops(AbstractInstruction * self_in_concretizeAlignmentNops);
-static sqInt concretizeAndCqR(AbstractInstruction * self_in_concretizeAndCqR);
-static sqInt concretizeAndCwR(AbstractInstruction * self_in_concretizeAndCwR);
-static sqInt concretizeAndRR(AbstractInstruction * self_in_concretizeAndRR);
-static sqInt concretizeArithmeticShiftRightCqR(AbstractInstruction * self_in_concretizeArithmeticShiftRightCqR);
-static sqInt concretizeArithmeticShiftRightRR(AbstractInstruction * self_in_concretizeArithmeticShiftRightRR);
-static sqInt concretizeAt(AbstractInstruction * self_in_concretizeAt, sqInt actualAddress);
-static sqInt concretizeCall(AbstractInstruction * self_in_concretizeCall);
-static sqInt concretizeCDQ(AbstractInstruction * self_in_concretizeCDQ);
-static sqInt concretizeCMPXCHGAwR(AbstractInstruction * self_in_concretizeCMPXCHGAwR);
-static sqInt concretizeCMPXCHGMwrR(AbstractInstruction * self_in_concretizeCMPXCHGMwrR);
-static sqInt concretizeCmpCqR(AbstractInstruction * self_in_concretizeCmpCqR);
-static sqInt concretizeCmpCwR(AbstractInstruction * self_in_concretizeCmpCwR);
-static sqInt concretizeCmpRdRd(AbstractInstruction * self_in_concretizeCmpRdRd);
-static sqInt concretizeCmpRR(AbstractInstruction * self_in_concretizeCmpRR);
-static sqInt concretizeConditionalJumpLong(AbstractInstruction * self_in_concretizeConditionalJumpLong, sqInt conditionCode);
-static sqInt concretizeConditionalJump(AbstractInstruction * self_in_concretizeConditionalJump, sqInt conditionCode);
-static sqInt concretizeConvertRRd(AbstractInstruction * self_in_concretizeConvertRRd);
-static sqInt concretizeCPUID(AbstractInstruction * self_in_concretizeCPUID);
-static sqInt concretizeFENCE(AbstractInstruction * self_in_concretizeFENCE, sqInt regOpcode);
-static sqInt concretizeFill16(AbstractInstruction * self_in_concretizeFill16);
-static sqInt concretizeFill32(AbstractInstruction * self_in_concretizeFill32);
-static sqInt concretizeFillFromWord(AbstractInstruction * self_in_concretizeFillFromWord);
-static sqInt concretizeIDIVR(AbstractInstruction * self_in_concretizeIDIVR);
-static sqInt concretizeJump(AbstractInstruction * self_in_concretizeJump);
-static sqInt concretizeJumpLong(AbstractInstruction * self_in_concretizeJumpLong);
-static sqInt concretizeJumpR(AbstractInstruction * self_in_concretizeJumpR);
-static sqInt concretizeLabel(AbstractInstruction * self_in_concretizeLabel);
-static sqInt concretizeLOCK(AbstractInstruction * self_in_concretizeLOCK);
-static sqInt concretizeLoadEffectiveAddressMwrR(AbstractInstruction * self_in_concretizeLoadEffectiveAddressMwrR);
-static sqInt concretizeLogicalShiftLeftCqR(AbstractInstruction * self_in_concretizeLogicalShiftLeftCqR);
-static sqInt concretizeLogicalShiftLeftRR(AbstractInstruction * self_in_concretizeLogicalShiftLeftRR);
-static sqInt concretizeLogicalShiftRightCqR(AbstractInstruction * self_in_concretizeLogicalShiftRightCqR);
-static sqInt concretizeMoveAwR(AbstractInstruction * self_in_concretizeMoveAwR);
-static sqInt concretizeMoveCqR(AbstractInstruction * self_in_concretizeMoveCqR);
-static sqInt concretizeMoveCwR(AbstractInstruction * self_in_concretizeMoveCwR);
-static sqInt concretizeMoveM16rR(AbstractInstruction * self_in_concretizeMoveM16rR);
-static sqInt concretizeMoveM64rRd(AbstractInstruction * self_in_concretizeMoveM64rRd);
-static sqInt concretizeMoveMbrR(AbstractInstruction * self_in_concretizeMoveMbrR);
-static sqInt concretizeMoveMwrR(AbstractInstruction * self_in_concretizeMoveMwrR);
-static sqInt concretizeMoveRAw(AbstractInstruction * self_in_concretizeMoveRAw);
-static sqInt concretizeMoveRdM64r(AbstractInstruction * self_in_concretizeMoveRdM64r);
-static sqInt concretizeMoveRMbr(AbstractInstruction * self_in_concretizeMoveRMbr);
-static sqInt concretizeMoveRMwr(AbstractInstruction * self_in_concretizeMoveRMwr);
-static sqInt concretizeMoveRR(AbstractInstruction * self_in_concretizeMoveRR);
-static sqInt concretizeMoveRXbrR(AbstractInstruction * self_in_concretizeMoveRXbrR);
-static sqInt concretizeMoveRXwrR(AbstractInstruction * self_in_concretizeMoveRXwrR);
-static sqInt concretizeMoveXbrRR(AbstractInstruction * self_in_concretizeMoveXbrRR);
-static sqInt concretizeMoveXwrRR(AbstractInstruction * self_in_concretizeMoveXwrRR);
-static sqInt concretizeMulRR(AbstractInstruction * self_in_concretizeMulRR);
-static sqInt concretizeNegateR(AbstractInstruction * self_in_concretizeNegateR);
-static sqInt concretizeNop(AbstractInstruction * self_in_concretizeNop);
-static sqInt concretizeOrCqR(AbstractInstruction * self_in_concretizeOrCqR);
-static sqInt concretizeOrCwR(AbstractInstruction * self_in_concretizeOrCwR);
-static sqInt concretizeOrRR(AbstractInstruction * self_in_concretizeOrRR);
-static sqInt concretizePopR(AbstractInstruction * self_in_concretizePopR);
-static sqInt concretizePrefetchAw(AbstractInstruction * self_in_concretizePrefetchAw);
-static sqInt concretizePushCw(AbstractInstruction * self_in_concretizePushCw);
-static sqInt concretizePushR(AbstractInstruction * self_in_concretizePushR);
-static sqInt concretizeRetN(AbstractInstruction * self_in_concretizeRetN);
-static sqInt concretizeSEE2OpRdRd(AbstractInstruction * self_in_concretizeSEE2OpRdRd, sqInt opCode);
-static sqInt concretizeSqrtRd(AbstractInstruction * self_in_concretizeSqrtRd);
-static sqInt concretizeSubCqR(AbstractInstruction * self_in_concretizeSubCqR);
-static sqInt concretizeSubCwR(AbstractInstruction * self_in_concretizeSubCwR);
-static sqInt concretizeSubRR(AbstractInstruction * self_in_concretizeSubRR);
-static sqInt concretizeXCHGAwR(AbstractInstruction * self_in_concretizeXCHGAwR);
-static sqInt concretizeXCHGMwrR(AbstractInstruction * self_in_concretizeXCHGMwrR);
-static sqInt concretizeXCHGRR(AbstractInstruction * self_in_concretizeXCHGRR);
-static sqInt concretizeXorCwR(AbstractInstruction * self_in_concretizeXorCwR);
-static sqInt concretizeXorRR(AbstractInstruction * self_in_concretizeXorRR);
-static sqInt couldBeObject(sqInt literal);
-static sqInt counterTargetFromFollowingAddress(AbstractInstruction * self_in_counterTargetFromFollowingAddress, sqInt nextInstructionAddress);
-static sqInt cPICHasFreedTargets(CogMethod *cPIC);
-static sqInt cPICMissTrampolineFor(sqInt numArgs);
-static sqInt cPICHasTarget(CogMethod *cPIC, CogMethod *targetMethod);
-static sqInt cResultRegister(AbstractInstruction * self_in_cResultRegister);
-static AbstractInstruction * gDivRRQuoRem(sqInt rDivisor, sqInt rDividend, sqInt rQuotient, sqInt rRemainder);
-static void dispatchConcretize(AbstractInstruction * self_in_dispatchConcretize);
+static sqInt computeShiftRRSize(AbstractInstruction * self_in_computeShiftRRSize) NoDbgRegParms;
+static sqInt concreteDPFPRegister(AbstractInstruction * self_in_concreteDPFPRegister, sqInt registerIndex) NoDbgRegParms;
+static sqInt concreteRegister(AbstractInstruction * self_in_concreteRegister, sqInt registerIndex) NoDbgRegParms;
+static sqInt concretizeAddCqR(AbstractInstruction * self_in_concretizeAddCqR) NoDbgRegParms;
+static sqInt concretizeAddCwR(AbstractInstruction * self_in_concretizeAddCwR) NoDbgRegParms;
+static sqInt concretizeAddRR(AbstractInstruction * self_in_concretizeAddRR) NoDbgRegParms;
+static AbstractInstruction * concretizeAlignmentNops(AbstractInstruction * self_in_concretizeAlignmentNops) NoDbgRegParms;
+static sqInt concretizeAndCqR(AbstractInstruction * self_in_concretizeAndCqR) NoDbgRegParms;
+static sqInt concretizeAndCwR(AbstractInstruction * self_in_concretizeAndCwR) NoDbgRegParms;
+static sqInt concretizeAndRR(AbstractInstruction * self_in_concretizeAndRR) NoDbgRegParms;
+static sqInt concretizeArithmeticShiftRightCqR(AbstractInstruction * self_in_concretizeArithmeticShiftRightCqR) NoDbgRegParms;
+static sqInt concretizeArithmeticShiftRightRR(AbstractInstruction * self_in_concretizeArithmeticShiftRightRR) NoDbgRegParms;
+static sqInt concretizeAt(AbstractInstruction * self_in_concretizeAt, sqInt actualAddress) NoDbgRegParms;
+static sqInt concretizeCall(AbstractInstruction * self_in_concretizeCall) NoDbgRegParms;
+static sqInt concretizeCDQ(AbstractInstruction * self_in_concretizeCDQ) NoDbgRegParms;
+static sqInt concretizeCMPXCHGAwR(AbstractInstruction * self_in_concretizeCMPXCHGAwR) NoDbgRegParms;
+static sqInt concretizeCMPXCHGMwrR(AbstractInstruction * self_in_concretizeCMPXCHGMwrR) NoDbgRegParms;
+static sqInt concretizeCmpCqR(AbstractInstruction * self_in_concretizeCmpCqR) NoDbgRegParms;
+static sqInt concretizeCmpCwR(AbstractInstruction * self_in_concretizeCmpCwR) NoDbgRegParms;
+static sqInt concretizeCmpRdRd(AbstractInstruction * self_in_concretizeCmpRdRd) NoDbgRegParms;
+static sqInt concretizeCmpRR(AbstractInstruction * self_in_concretizeCmpRR) NoDbgRegParms;
+static sqInt concretizeConditionalJumpLong(AbstractInstruction * self_in_concretizeConditionalJumpLong, sqInt conditionCode) NoDbgRegParms;
+static sqInt concretizeConditionalJump(AbstractInstruction * self_in_concretizeConditionalJump, sqInt conditionCode) NoDbgRegParms;
+static sqInt concretizeConvertRRd(AbstractInstruction * self_in_concretizeConvertRRd) NoDbgRegParms;
+static sqInt concretizeCPUID(AbstractInstruction * self_in_concretizeCPUID) NoDbgRegParms;
+static sqInt concretizeFENCE(AbstractInstruction * self_in_concretizeFENCE, sqInt regOpcode) NoDbgRegParms;
+static sqInt concretizeFill16(AbstractInstruction * self_in_concretizeFill16) NoDbgRegParms;
+static sqInt concretizeFill32(AbstractInstruction * self_in_concretizeFill32) NoDbgRegParms;
+static sqInt concretizeFillFromWord(AbstractInstruction * self_in_concretizeFillFromWord) NoDbgRegParms;
+static sqInt concretizeIDIVR(AbstractInstruction * self_in_concretizeIDIVR) NoDbgRegParms;
+static sqInt concretizeJump(AbstractInstruction * self_in_concretizeJump) NoDbgRegParms;
+static sqInt concretizeJumpLong(AbstractInstruction * self_in_concretizeJumpLong) NoDbgRegParms;
+static sqInt concretizeJumpR(AbstractInstruction * self_in_concretizeJumpR) NoDbgRegParms;
+static sqInt concretizeLabel(AbstractInstruction * self_in_concretizeLabel) NoDbgRegParms;
+static sqInt concretizeLOCK(AbstractInstruction * self_in_concretizeLOCK) NoDbgRegParms;
+static sqInt concretizeLoadEffectiveAddressMwrR(AbstractInstruction * self_in_concretizeLoadEffectiveAddressMwrR) NoDbgRegParms;
+static sqInt concretizeLogicalShiftLeftCqR(AbstractInstruction * self_in_concretizeLogicalShiftLeftCqR) NoDbgRegParms;
+static sqInt concretizeLogicalShiftLeftRR(AbstractInstruction * self_in_concretizeLogicalShiftLeftRR) NoDbgRegParms;
+static sqInt concretizeLogicalShiftRightCqR(AbstractInstruction * self_in_concretizeLogicalShiftRightCqR) NoDbgRegParms;
+static sqInt concretizeMoveAwR(AbstractInstruction * self_in_concretizeMoveAwR) NoDbgRegParms;
+static sqInt concretizeMoveCqR(AbstractInstruction * self_in_concretizeMoveCqR) NoDbgRegParms;
+static sqInt concretizeMoveCwR(AbstractInstruction * self_in_concretizeMoveCwR) NoDbgRegParms;
+static sqInt concretizeMoveM16rR(AbstractInstruction * self_in_concretizeMoveM16rR) NoDbgRegParms;
+static sqInt concretizeMoveM64rRd(AbstractInstruction * self_in_concretizeMoveM64rRd) NoDbgRegParms;
+static sqInt concretizeMoveMbrR(AbstractInstruction * self_in_concretizeMoveMbrR) NoDbgRegParms;
+static sqInt concretizeMoveMwrR(AbstractInstruction * self_in_concretizeMoveMwrR) NoDbgRegParms;
+static sqInt concretizeMoveRAw(AbstractInstruction * self_in_concretizeMoveRAw) NoDbgRegParms;
+static sqInt concretizeMoveRdM64r(AbstractInstruction * self_in_concretizeMoveRdM64r) NoDbgRegParms;
+static sqInt concretizeMoveRMbr(AbstractInstruction * self_in_concretizeMoveRMbr) NoDbgRegParms;
+static sqInt concretizeMoveRMwr(AbstractInstruction * self_in_concretizeMoveRMwr) NoDbgRegParms;
+static sqInt concretizeMoveRR(AbstractInstruction * self_in_concretizeMoveRR) NoDbgRegParms;
+static sqInt concretizeMoveRXbrR(AbstractInstruction * self_in_concretizeMoveRXbrR) NoDbgRegParms;
+static sqInt concretizeMoveRXwrR(AbstractInstruction * self_in_concretizeMoveRXwrR) NoDbgRegParms;
+static sqInt concretizeMoveXbrRR(AbstractInstruction * self_in_concretizeMoveXbrRR) NoDbgRegParms;
+static sqInt concretizeMoveXwrRR(AbstractInstruction * self_in_concretizeMoveXwrRR) NoDbgRegParms;
+static sqInt concretizeMulRR(AbstractInstruction * self_in_concretizeMulRR) NoDbgRegParms;
+static sqInt concretizeNegateR(AbstractInstruction * self_in_concretizeNegateR) NoDbgRegParms;
+static sqInt concretizeNop(AbstractInstruction * self_in_concretizeNop) NoDbgRegParms;
+static sqInt concretizeOrCqR(AbstractInstruction * self_in_concretizeOrCqR) NoDbgRegParms;
+static sqInt concretizeOrCwR(AbstractInstruction * self_in_concretizeOrCwR) NoDbgRegParms;
+static sqInt concretizeOrRR(AbstractInstruction * self_in_concretizeOrRR) NoDbgRegParms;
+static sqInt concretizePopR(AbstractInstruction * self_in_concretizePopR) NoDbgRegParms;
+static sqInt concretizePrefetchAw(AbstractInstruction * self_in_concretizePrefetchAw) NoDbgRegParms;
+static sqInt concretizePushCw(AbstractInstruction * self_in_concretizePushCw) NoDbgRegParms;
+static sqInt concretizePushR(AbstractInstruction * self_in_concretizePushR) NoDbgRegParms;
+static sqInt concretizeRetN(AbstractInstruction * self_in_concretizeRetN) NoDbgRegParms;
+static sqInt concretizeSEE2OpRdRd(AbstractInstruction * self_in_concretizeSEE2OpRdRd, sqInt opCode) NoDbgRegParms;
+static sqInt concretizeSqrtRd(AbstractInstruction * self_in_concretizeSqrtRd) NoDbgRegParms;
+static sqInt concretizeSubCqR(AbstractInstruction * self_in_concretizeSubCqR) NoDbgRegParms;
+static sqInt concretizeSubCwR(AbstractInstruction * self_in_concretizeSubCwR) NoDbgRegParms;
+static sqInt concretizeSubRR(AbstractInstruction * self_in_concretizeSubRR) NoDbgRegParms;
+static sqInt concretizeXCHGAwR(AbstractInstruction * self_in_concretizeXCHGAwR) NoDbgRegParms;
+static sqInt concretizeXCHGMwrR(AbstractInstruction * self_in_concretizeXCHGMwrR) NoDbgRegParms;
+static sqInt concretizeXCHGRR(AbstractInstruction * self_in_concretizeXCHGRR) NoDbgRegParms;
+static sqInt concretizeXorCwR(AbstractInstruction * self_in_concretizeXorCwR) NoDbgRegParms;
+static sqInt concretizeXorRR(AbstractInstruction * self_in_concretizeXorRR) NoDbgRegParms;
+static sqInt couldBeObject(sqInt literal) NoDbgRegParms;
+static sqInt counterTargetFromFollowingAddress(AbstractInstruction * self_in_counterTargetFromFollowingAddress, sqInt nextInstructionAddress) NoDbgRegParms;
+static sqInt cPICHasFreedTargets(CogMethod *cPIC) NoDbgRegParms;
+static sqInt cPICMissTrampolineFor(sqInt numArgs) NoDbgRegParms;
+static sqInt cPICHasTarget(CogMethod *cPIC, CogMethod *targetMethod) NoDbgRegParms;
+static sqInt cResultRegister(AbstractInstruction * self_in_cResultRegister) NoDbgRegParms;
+static AbstractInstruction * gDivRRQuoRem(sqInt rDivisor, sqInt rDividend, sqInt rQuotient, sqInt rRemainder) NoDbgRegParms;
+static void dispatchConcretize(AbstractInstruction * self_in_dispatchConcretize) NoDbgRegParms;
 static sqInt doubleExtendedDoAnythingBytecode(void);
 static sqInt duplicateTopBytecode(void);
-static sqInt endPCOf(sqInt aMethod);
-static BytecodeFixup * ensureFixupAt(sqInt targetIndex);
-static BytecodeFixup * ensureNonMergeFixupAt(sqInt targetIndex);
+static sqInt endPCOf(sqInt aMethod) NoDbgRegParms;
+static BytecodeFixup * ensureFixupAt(sqInt targetIndex) NoDbgRegParms;
+static BytecodeFixup * ensureNonMergeFixupAt(sqInt targetIndex) NoDbgRegParms;
 static void ensureReceiverResultRegContainsSelf(void);
-static CogSimStackEntry * ensureSpilledAtfrom(CogSimStackEntry * self_in_ensureSpilledAtfrom, sqInt baseOffset, sqInt baseRegister);
+static CogSimStackEntry * ensureSpilledAtfrom(CogSimStackEntry * self_in_ensureSpilledAtfrom, sqInt baseOffset, sqInt baseRegister) NoDbgRegParms;
 void enterCogCodePopReceiver(void);
 void enterCogCodePopReceiverAndClassRegs(void);
 void enterCogCodePopReceiverArg0Regs(void);
@@ -546,46 +556,46 @@
 static sqInt extendedPushBytecode(void);
 static sqInt extendedStoreAndPopBytecode(void);
 static sqInt extendedStoreBytecode(void);
-static sqInt fillInBlockHeadersAt(sqInt startAddress);
-static CogMethod * fillInCPICHeadersizenumArgsnumCaseshasMNUCaseselector(CogMethod *pic, sqInt size, sqInt numArgs, sqInt numCases, sqInt hasMNUCase, sqInt selector);
-static CogMethod * fillInMethodHeadersizeselector(CogMethod *method, sqInt size, sqInt selector);
-static CogMethod * fillInOPICHeadersizenumArgsselector(CogMethod *pic, sqInt size, sqInt numArgs, sqInt selector);
-static usqInt findBlockMethodWithEntrystartBcpc(sqInt blockEntryMcpc, sqInt startBcpc);
-static sqInt findMapLocationForMcpcinMethod(sqInt targetMcpc, CogMethod *cogMethod);
+static sqInt fillInBlockHeadersAt(sqInt startAddress) NoDbgRegParms;
+static CogMethod * fillInCPICHeadersizenumArgsnumCaseshasMNUCaseselector(CogMethod *pic, sqInt size, sqInt numArgs, sqInt numCases, sqInt hasMNUCase, sqInt selector) NoDbgRegParms;
+static CogMethod * fillInMethodHeadersizeselector(CogMethod *method, sqInt size, sqInt selector) NoDbgRegParms;
+static CogMethod * fillInOPICHeadersizenumArgsselector(CogMethod *pic, sqInt size, sqInt numArgs, sqInt selector) NoDbgRegParms;
+static usqInt findBlockMethodWithEntrystartBcpc(sqInt blockEntryMcpc, sqInt startBcpc) NoDbgRegParms;
+static sqInt findMapLocationForMcpcinMethod(sqInt targetMcpc, CogMethod *cogMethod) NoDbgRegParms;
 CogBlockMethod * findMethodForStartBcpcinHomeMethod(sqInt startbcpc, CogMethod *cogMethod);
-static CogMethod * findPreviouslyCompiledVersionOfwith(sqInt aMethodObj, sqInt aSelectorOop);
-static sqInt findIsBackwardBranchMcpcBcpcMatchingMcpc(BytecodeDescriptor *descriptor, sqInt isBackwardBranch, char *mcpc, sqInt bcpc, void *targetMcpc);
+static CogMethod * findPreviouslyCompiledVersionOfwith(sqInt aMethodObj, sqInt aSelectorOop) NoDbgRegParms;
+static sqInt findIsBackwardBranchMcpcBcpcMatchingMcpc(BytecodeDescriptor *descriptor, sqInt isBackwardBranch, char *mcpc, sqInt bcpc, void *targetMcpc) NoDbgRegParms;
 void followForwardedLiteralsIn(CogMethod *cogMethod);
 void followForwardedMethods(void);
-static sqInt followMaybeObjRefAt(sqInt mcpc);
-static sqInt followMethodReferencesInClosedPIC(CogMethod *cPIC);
-static sqInt frameOffsetOfTemporary(sqInt index);
-static void freeMethod(CogMethod *cogMethod);
+static sqInt followMaybeObjRefAt(sqInt mcpc) NoDbgRegParms;
+static sqInt followMethodReferencesInClosedPIC(CogMethod *cPIC) NoDbgRegParms;
+static sqInt frameOffsetOfTemporary(sqInt index) NoDbgRegParms;
+static void freeMethod(CogMethod *cogMethod) NoDbgRegParms;
 static void freeOlderMethodsForCompaction(void);
 static void freePICsWithFreedTargets(void);
 void freeUnmarkedMachineCode(void);
 static sqInt genActiveContextTrampoline(void);
-static sqInt genAddSmallIntegerTagsTo(sqInt aRegister);
-static sqInt genAlignCStackSavingRegistersnumArgswordAlignment(AbstractInstruction * self_in_genAlignCStackSavingRegistersnumArgswordAlignment, sqInt saveRegs, sqInt numArgs, sqInt alignment);
-static AbstractInstruction * genAllocFloatValueintoscratchRegscratchReg(sqInt dpreg, sqInt resultReg, sqInt scratch1, sqInt scratch2);
+static sqInt genAddSmallIntegerTagsTo(sqInt aRegister) NoDbgRegParms;
+static sqInt genAlignCStackSavingRegistersnumArgswordAlignment(AbstractInstruction * self_in_genAlignCStackSavingRegistersnumArgswordAlignment, sqInt saveRegs, sqInt numArgs, sqInt alignment) NoDbgRegParms;
+static AbstractInstruction * genAllocFloatValueintoscratchRegscratchReg(sqInt dpreg, sqInt resultReg, sqInt scratch1, sqInt scratch2) NoDbgRegParms;
 static sqInt genCheckForInterruptsTrampoline(void);
-static sqInt genConvertCharacterToCodeInReg(sqInt reg);
-static void genConvertCharacterToSmallIntegerInReg(sqInt reg);
-static sqInt genConvertIntegerToCharacterInReg(sqInt reg);
-static sqInt genConvertIntegerToSmallIntegerInReg(sqInt reg);
-static sqInt genConvertIntegerToSmallIntegerInScratchReg(sqInt scratchReg);
-static void genConvertSmallIntegerToCharacterInReg(sqInt reg);
-static sqInt genConvertSmallIntegerToIntegerInReg(sqInt reg);
-static AbstractInstruction * genDivRRQuoRem(AbstractInstruction * self_in_genDivRRQuoRem, sqInt abstractRegDivisor, sqInt abstractRegDividend, sqInt abstractRegQuotient, sqInt abstractRegRemainder);
-static sqInt genDoubleArithmeticpreOpCheck(sqInt arithmeticOperator, AbstractInstruction *(*preOpCheckOrNil)(int rcvrReg, int argReg));
-static sqInt genDoubleComparisoninvert(AbstractInstruction *(*jumpOpcodeGenerator)(void *), sqInt invertComparison);
-static AbstractInstruction * genDoubleFailIfZeroArgRcvrarg(sqInt rcvrReg, sqInt argReg);
+static sqInt genConvertCharacterToCodeInReg(sqInt reg) NoDbgRegParms;
+static void genConvertCharacterToSmallIntegerInReg(sqInt reg) NoDbgRegParms;
+static sqInt genConvertIntegerToCharacterInReg(sqInt reg) NoDbgRegParms;
+static sqInt genConvertIntegerToSmallIntegerInReg(sqInt reg) NoDbgRegParms;
+static sqInt genConvertIntegerToSmallIntegerInScratchReg(sqInt scratchReg) NoDbgRegParms;
+static void genConvertSmallIntegerToCharacterInReg(sqInt reg) NoDbgRegParms;
+static sqInt genConvertSmallIntegerToIntegerInReg(sqInt reg) NoDbgRegParms;
+static AbstractInstruction * genDivRRQuoRem(AbstractInstruction * self_in_genDivRRQuoRem, sqInt abstractRegDivisor, sqInt abstractRegDividend, sqInt abstractRegQuotient, sqInt abstractRegRemainder) NoDbgRegParms;
+static sqInt genDoubleArithmeticpreOpCheck(sqInt arithmeticOperator, AbstractInstruction *(*preOpCheckOrNil)(int rcvrReg, int argReg)) NoDbgRegParms;
+static sqInt genDoubleComparisoninvert(AbstractInstruction *(*jumpOpcodeGenerator)(void *), sqInt invertComparison) NoDbgRegParms;
+static AbstractInstruction * genDoubleFailIfZeroArgRcvrarg(sqInt rcvrReg, sqInt argReg) NoDbgRegParms;
 static sqInt genDynamicSuperSendBytecode(void);
-static void (*genEnilopmartForandandcalled(sqInt regArg1, sqInt regArg2, sqInt regArg3, char *trampolineName))(void) ;
-static void (*genEnilopmartForandcalled(sqInt regArg1, sqInt regArg2, char *trampolineName))(void) ;
-static void (*genEnilopmartForcalled(sqInt regArg, char *trampolineName))(void) ;
-static sqInt genEnsureObjInRegNotForwardedscratchReg(sqInt reg, sqInt scratch);
-static void (*genEnterPICEnilopmartNumArgs(sqInt numArgs))(void) ;
+static void (*genEnilopmartForandandcalled(sqInt regArg1, sqInt regArg2, sqInt regArg3, char *trampolineName))(void)  NoDbgRegParms;
+static void (*genEnilopmartForandcalled(sqInt regArg1, sqInt regArg2, char *trampolineName))(void)  NoDbgRegParms;
+static void (*genEnilopmartForcalled(sqInt regArg, char *trampolineName))(void)  NoDbgRegParms;
+static sqInt genEnsureObjInRegNotForwardedscratchReg(sqInt reg, sqInt scratch) NoDbgRegParms;
+static void (*genEnterPICEnilopmartNumArgs(sqInt numArgs))(void)  NoDbgRegParms;
 static sqInt genExtendedSendBytecode(void);
 static sqInt genExtendedSuperBytecode(void);
 static sqInt genExternalizePointersForPrimitiveCall(void);
@@ -608,16 +618,16 @@
 static sqInt genExtStoreLiteralVariableBytecode(void);
 static sqInt genExtStoreReceiverVariableBytecode(void);
 static sqInt genExtUnconditionalJump(void);
-static void generateCaptureCStackPointers(sqInt captureFramePointer);
-static AbstractInstruction * generateCheckFeatures(AbstractInstruction * self_in_generateCheckFeatures);
+static void generateCaptureCStackPointers(sqInt captureFramePointer) NoDbgRegParms;
+static AbstractInstruction * generateCheckFeatures(AbstractInstruction * self_in_generateCheckFeatures) NoDbgRegParms;
 static void generateClosedPICPrototype(void);
-static CogMethod * generateCogMethod(sqInt selector);
+static CogMethod * generateCogMethod(sqInt selector) NoDbgRegParms;
 static void generateEnilopmarts(void);
-static AbstractInstruction * generateICacheFlush(AbstractInstruction * self_in_generateICacheFlush);
-static sqInt generateInstructionsAt(sqInt eventualAbsoluteAddress);
-static AbstractInstruction * generateLowLevelTryLock(AbstractInstruction * self_in_generateLowLevelTryLock, sqInt vmOwnerLockAddress);
-static AbstractInstruction * generateLowLevelUnlock(AbstractInstruction * self_in_generateLowLevelUnlock, sqInt vmOwnerLockAddress);
-static sqInt generateMapAtstart(sqInt addressOrNull, sqInt startAddress);
+static AbstractInstruction * generateICacheFlush(AbstractInstruction * self_in_generateICacheFlush) NoDbgRegParms;
+static sqInt generateInstructionsAt(sqInt eventualAbsoluteAddress) NoDbgRegParms;
+static AbstractInstruction * generateLowLevelTryLock(AbstractInstruction * self_in_generateLowLevelTryLock, sqInt vmOwnerLockAddress) NoDbgRegParms;
+static AbstractInstruction * generateLowLevelUnlock(AbstractInstruction * self_in_generateLowLevelUnlock, sqInt vmOwnerLockAddress) NoDbgRegParms;
+static sqInt generateMapAtstart(sqInt addressOrNull, sqInt startAddress) NoDbgRegParms;
 static void generateMissAbortTrampolines(void);
 static void generateNewspeakRuntime(void);
 static void generateObjectRepresentationTrampolines(void);
@@ -629,50 +639,55 @@
 static void generateTrampolines(void);
 static void generateVMOwnerLockFunctions(void);
 static sqInt genFastPrimFail(void);
-static void genFastPrimTraceUsingand(sqInt r1, sqInt r2);
-static sqInt genFetchIndexRegisterfrominto(sqInt indexReg, sqInt tableObj, sqInt destReg);
-static sqInt genFramelessStorePopReceiverVariable(sqInt popBoolean, sqInt slotIndex);
-static sqInt genGetClassIndexOfNonImminto(sqInt sourceReg, sqInt destReg);
-static sqInt genGetClassObjectOfClassIndexintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg);
-static sqInt genGetClassObjectOfintoscratchReginstRegIsReceiver(sqInt instReg, sqInt destReg, sqInt scratchReg, sqInt instRegIsReceiver);
-static AbstractInstruction * genGetClassTagOfintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg);
-static sqInt genGetCompactClassIndexNonImmOfinto(sqInt instReg, sqInt destReg);
-static sqInt genGetDoubleValueOfinto(sqInt srcReg, sqInt destFPReg);
-static sqInt genGetHashFieldNonImmOfasSmallIntegerInto(sqInt instReg, sqInt destReg);
-static sqInt genGetHashFieldNonImmOfinto(sqInt instReg, sqInt destReg);
-static sqInt genGetImplicitReceiverForforPush(sqInt selector, sqInt forPushSendBar);
+static void genFastPrimTraceUsingand(sqInt r1, sqInt r2) NoDbgRegParms;
+static sqInt genFetchIndexRegisterfrominto(sqInt indexReg, sqInt tableObj, sqInt destReg) NoDbgRegParms;
+static sqInt genFramelessStorePopReceiverVariable(sqInt popBoolean, sqInt slotIndex) NoDbgRegParms;
+static sqInt genGetClassIndexOfNonImminto(sqInt sourceReg, sqInt destReg) NoDbgRegParms;
+static sqInt genGetClassObjectOfClassIndexintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg) NoDbgRegParms;
+static sqInt genGetClassObjectOfintoscratchReginstRegIsReceiver(sqInt instReg, sqInt destReg, sqInt scratchReg, sqInt instRegIsReceiver) NoDbgRegParms;
+static AbstractInstruction * genGetClassTagOfintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg) NoDbgRegParms;
+static sqInt genGetCompactClassIndexNonImmOfinto(sqInt instReg, sqInt destReg) NoDbgRegParms;
+static sqInt genGetDoubleValueOfinto(sqInt srcReg, sqInt destFPReg) NoDbgRegParms;
+static sqInt genGetFormatOfintoleastSignificantHalfOfBaseHeaderIntoScratch(sqInt sourceReg, sqInt destReg, sqInt scratchRegOrNil) NoDbgRegParms;
+static sqInt genGetHashFieldNonImmOfasSmallIntegerInto(sqInt instReg, sqInt destReg) NoDbgRegParms;
+static sqInt genGetHashFieldNonImmOfinto(sqInt instReg, sqInt destReg) NoDbgRegParms;
+static sqInt genGetImplicitReceiverForforPush(sqInt selector, sqInt forPushSendBar) NoDbgRegParms;
 static sqInt genGetLeafCallStackPointer(void);
-static AbstractInstruction * genGetLeafCallStackPointerFunction(AbstractInstruction * self_in_genGetLeafCallStackPointerFunction);
-static sqInt genInnerPICAbortTrampoline(char *name);
-static sqInt genInnerPrimitiveAsCharacterinReg(sqInt retNOffset, sqInt reg);
-static sqInt genInnerPrimitiveAtPut(sqInt retNoffset);
-static sqInt genInnerPrimitiveAt(sqInt retNoffset);
-static sqInt genInnerPrimitiveCharacterValue(sqInt retNOffset);
-static sqInt genInnerPrimitiveIdenticalorNotIf(sqInt retNoffset, sqInt orNot);
-static sqInt genInnerPrimitiveIdentityHash(sqInt retNoffset);
-static sqInt genInnerPrimitiveNewMethod(sqInt retNoffset);
-static sqInt genInnerPrimitiveNewWithArg(sqInt retNoffset);
-static sqInt genInnerPrimitiveNew(sqInt retNoffset);
-static sqInt genInnerPrimitiveSize(sqInt retNoffset);
-static sqInt genInnerPrimitiveStringAtPut(sqInt retNoffset);
-static sqInt genInnerPrimitiveStringAt(sqInt retNoffset);
-static sqInt genJumpBackTo(sqInt targetBytecodePC);
-static AbstractInstruction * genJumpFPEqual(AbstractInstruction * self_in_genJumpFPEqual, void *jumpTarget);
-static AbstractInstruction * genJumpFPGreaterOrEqual(AbstractInstruction * self_in_genJumpFPGreaterOrEqual, void *jumpTarget);
-static AbstractInstruction * genJumpFPGreater(AbstractInstruction * self_in_genJumpFPGreater, void *jumpTarget);
-static AbstractInstruction * genJumpFPLessOrEqual(AbstractInstruction * self_in_genJumpFPLessOrEqual, void *jumpTarget);
-static AbstractInstruction * genJumpFPLess(AbstractInstruction * self_in_genJumpFPLess, void *jumpTarget);
-static AbstractInstruction * genJumpFPNotEqual(AbstractInstruction * self_in_genJumpFPNotEqual, void *jumpTarget);
-static sqInt genJumpIfto(sqInt boolean, sqInt targetBytecodePC);
-static AbstractInstruction * genJumpImmediateInScratchReg(sqInt aRegister);
-static AbstractInstruction * genJumpNotCharacterInScratchReg(sqInt reg);
-static AbstractInstruction * genJumpNotSmallIntegerInScratchReg(sqInt aRegister);
-static AbstractInstruction * genJumpSmallIntegerInScratchReg(sqInt aRegister);
-static sqInt genJumpTo(sqInt targetBytecodePC);

@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list