Skip to content

Commit

Permalink
CogVM source as per VMMaker.oscog-eem.3047
Browse files Browse the repository at this point in the history
  • Loading branch information
marceltaeumel committed Aug 24, 2021
1 parent c488ac4 commit f1c0a95
Show file tree
Hide file tree
Showing 85 changed files with 56,544 additions and 55,446 deletions.
6 changes: 1 addition & 5 deletions src/lowcode.vm.32bit.cog.spur/cogit.c
@@ -1,5 +1,5 @@
/* Automatically generated by
Cogit * VMMaker.oscog-eem.2980 uuid: 540cacd9-187d-4e9b-b357-47076ef661c8
Cogit * VMMaker.oscog-eem.3047, VMMaker.oscog-mt.2987 uuid: 548d0a5b-eb23-4df6-bbb1-0b431cc840b3
*/

#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_7__) || defined(__arm__) || defined(__arm32__) || defined(ARM32) || defined(_M_ARM)
Expand All @@ -10,10 +10,6 @@

# include "cogitIA32.c"

#elif defined(__MIPSEL__)

# include "cogitMIPSEL.c"

#else
# error As yet no Cogit implementation appears to exist for your platform.
# error Consider implementing it, starting by adding a subclass of CogAbstractInstruction.
Expand Down
11 changes: 5 additions & 6 deletions src/lowcode.vm.32bit.cog.spur/cogit.h
@@ -1,5 +1,5 @@
/* Automatically generated by
CCodeGenerator * VMMaker.oscog-eem.2980 uuid: 540cacd9-187d-4e9b-b357-47076ef661c8
CCodeGenerator * VMMaker.oscog-eem.3047, VMMaker.oscog-mt.2987 uuid: 548d0a5b-eb23-4df6-bbb1-0b431cc840b3
*/


Expand Down Expand Up @@ -60,15 +60,15 @@ extern void printCogMethodFor(void *address);
extern void printTrampolineTable(void);
extern sqInt recordPrimTraceFunc(void);
extern void setBreakMethod(sqInt anObj);
extern void setPostCompileHook(void (*aFunction)(CogMethod *));
extern void setSelectorOfto(CogMethod *cogMethod, sqInt aSelectorOop);
extern sqInt traceLinkedSendOffset(void);
extern void unlinkAllSends(void);
extern void unlinkSendsLinkedForInvalidClasses(void);
extern void unlinkSendsOfisMNUSelector(sqInt selector, sqInt isMNUSelector);
extern void unlinkSendsToFree(void);
extern void unlinkSendsToMachineCodePrimitiveMethodsAndFreeIf(sqInt freeIfTrue);
extern void unlinkSendsToMethodsSuchThatAndFreeIf(sqInt (*criterion)(CogMethod *), sqInt freeIfTrue);
extern void unlinkSendsToandFreeIf(sqInt targetMethodObject, sqInt freeIfTrue);
extern void voidCogCompiledCode(void);
extern CogMethod * cogMethodContaining(usqInt mcpc);
extern sqInt kosherYoungReferrers(void);
extern CogMethod * methodFor(void *address);
Expand All @@ -85,14 +85,12 @@ extern sqInt printOpenPICList(void);
extern sqInt pruneYoungReferrers(void);
EXPORT(char *) whereIsMaybeCodeThing(sqInt anOop);
extern sqInt numRegArgs(void);
extern sqInt cogMethodHasExternalPrim(CogMethod *aCogMethod);
extern sqInt cogMethodHasMachineCodePrim(CogMethod *aCogMethod);
extern sqInt genQuickReturnConst(void);
extern sqInt genQuickReturnInstVar(void);
extern sqInt genQuickReturnSelf(void);
extern sqInt mapPCDataForinto(CogMethod *cogMethod, sqInt arrayObj);
extern void recordCallOffsetIn(CogMethod *cogMethod);
extern void rewritePrimInvocationInto(CogMethod *cogMethod, void (*primFunctionPointer)(void));
extern void voidCogCompiledCode(void);
extern double getCogCodeZoneThreshold(void);
extern sqInt setCogCodeZoneThreshold(double ratio);
extern void callCogCodePopReceiverArg0Regs(void);
Expand Down Expand Up @@ -152,6 +150,7 @@ extern sqInt traceStores;
#define printOnTrace() (traceFlags & 1)
#define recordBlockTrace() (traceFlags & 4)
#define recordEventTrace() (traceFlags & 16)
#define recordFastCCallPrimTrace() (traceFlags & 512)
#define recordOverflowTrace() (traceFlags & 32)
#define recordPrimTrace() (traceFlags & 8)
#define recordSendTrace() (traceFlags & 2)
Expand Down
1,842 changes: 963 additions & 879 deletions src/lowcode.vm.32bit.cog.spur/cogitARMv5.c

Large diffs are not rendered by default.

2,084 changes: 1,203 additions & 881 deletions src/lowcode.vm.32bit.cog.spur/cogitIA32.c

Large diffs are not rendered by default.

2,804 changes: 1,413 additions & 1,391 deletions src/lowcode.vm.32bit.cog.spur/cointerp.c

Large diffs are not rendered by default.

14 changes: 7 additions & 7 deletions src/lowcode.vm.32bit.cog.spur/cointerp.h
@@ -1,5 +1,5 @@
/* Automatically generated by
CCodeGeneratorGlobalStructure * VMMaker.oscog-eem.2985 uuid: f1d118fb-fac8-4f42-82d9-68635c83d686
CCodeGeneratorGlobalStructure * VMMaker.oscog-eem.3047, VMMaker.oscog-mt.2987 uuid: 548d0a5b-eb23-4df6-bbb1-0b431cc840b3
*/


Expand All @@ -21,6 +21,7 @@
#endif

extern signed char accessorDepthForPrimitiveIndex(sqInt primIndex);
extern sqInt accessorDepthForPrimitiveMethod(sqInt aMethodObj);
extern usqInt argumentCountAddress(void);
extern void assertValidMachineCodeFrame(sqInt instrPtr);
extern void callForCogCompiledCodeCompaction(void);
Expand All @@ -32,7 +33,6 @@ extern sqInt ceCannotAssignTowithIndexvalueToAssign(sqInt immutableObject, sqInt
extern sqInt ceCannotResume(void);
extern void ceCheckAndMaybeRetryPrimitive(sqInt primIndex);
extern void ceCheckForInterrupt(void);
extern void ceCheckProfileTick(void);
extern sqInt ceContextinstVar(sqInt maybeContext, sqInt slotIndex);
extern sqInt ceContextinstVarvalue(sqInt maybeMarriedContext, sqInt slotIndex, sqInt anOop);
extern sqInt ceInterpretMethodFromPICreceiver(sqInt aMethodObj, sqInt rcvr);
Expand All @@ -49,11 +49,13 @@ extern sqInt ceSendabovetonumArgs(sqInt selector, sqInt methodClass, sqInt rcvr,
extern sqInt ceSendsupertonumArgs(sqInt selector, sqInt superNormalBar, sqInt rcvr, sqInt numArgs);
extern sqInt ceSistaTrap(void);
extern void ceStackOverflow(sqInt contextSwitchIfNotNil);
extern void ceTakeProfileSample(CogMethod *aCogMethodOrNil);
extern void ceTraceBlockActivation(void);
extern void ceTraceLinkedSend(sqInt theReceiver);
extern void ceTraceStoreOfinto(sqInt aValue, sqInt anObject);
extern usqInt cFramePointerAddress(void);
extern void checkAssertsEnabledInCoInterpreter(void);
extern sqInt checkForAndFollowForwardedPrimitiveState(void);
extern sqInt checkIfCFramePointerInUse(void);
extern void clearTraceLog(void);
extern CogMethod * cogMethodOf(sqInt aMethodOop);
Expand All @@ -65,9 +67,8 @@ extern void dumpPrimTraceLog(void);
extern void dumpTraceLog(void);
extern void executeCogMethodfromLinkedSendWithReceiver(CogMethod *cogMethod, sqInt rcvr);
extern void executeCogPICfromLinkedSendWithReceiverandCacheTag(CogMethod *cogPIC, sqInt rcvr, sqInt cacheTag);
extern void flushExternalPrimitiveOf(sqInt methodObj);
extern usqInt framePointerAddress(void);
extern void (*functionPointerForCompiledMethodprimitiveIndex(sqInt methodObj, sqInt primIndex))(void) ;
extern void (*functionPointerForCompiledMethodprimitiveIndexprimitivePropertyFlagsInto(sqInt methodObj, sqInt primitiveIndex, sqInt *flagsPtr))(void) ;
extern void ifValidWriteBackStackPointersSaveTo(void *theCFP, void *theCSP, char **savedFPP, char **savedSPP);
extern usqInt instructionPointerAddress(void);
extern sqInt interpret(void);
Expand All @@ -78,7 +79,6 @@ extern sqInt lookupOrdinaryreceiver(sqInt selector, sqInt rcvr);
extern void markActiveMethodsAndReferents(void);
extern sqInt marryFrameCopiesTemps(void);
extern sqInt maxLookupNoMNUErrorCode(void);
extern sqInt mcprimFunctionForPrimitiveIndex(sqInt primIndex);
extern void * methodCacheAddress(void);
extern sqInt methodHasCogMethod(sqInt aMethodOop);
extern sqInt methodNeedsLargeContext(sqInt methodObj);
Expand Down Expand Up @@ -107,6 +107,7 @@ extern sqInt (*quickPrimitiveGeneratorFor(sqInt aQuickPrimitiveIndex))(void) ;
extern sqInt quickPrimitiveInstVarIndexFor(sqInt primIndex);
extern sqInt rawHeaderOf(sqInt methodPointer);
extern void rawHeaderOfput(sqInt methodOop, sqInt cogMethodOrMethodHeader);
extern sqInt recordFastCCallPrimTraceForMethod(sqInt aMethodObj);
extern sqInt recordPrimTraceForMethod(sqInt aMethodObj);
extern void reportMinimumUnusedHeadroom(void);
extern usqInt shadowCallStackAddress(void);
Expand All @@ -120,7 +121,6 @@ extern usqInt stackPointerAddress(void);
extern sqInt startPCOfMethodHeader(sqInt aCompiledMethodHeader);
extern sqInt startPCOrNilOfLiteralin(sqInt lit, sqInt aMethodObj);
extern void updateStackZoneReferencesToCompiledCodePreCompaction(void);
extern sqInt mcprimHashMultiply(sqInt receiverArg);
extern usqInt primitiveFunctionPointerAddress(void);
extern char * cStringOrNullFor(sqInt oop);
extern sqInt failed(void);
Expand Down Expand Up @@ -247,7 +247,7 @@ extern sqInt minSlotsForShortening(void);
extern sqInt nilObject(void);
extern sqInt nonIndexablePointerFormat(void);
extern sqInt numBytesOf(sqInt objOop);
extern usqInt numPointerSlotsOf(sqInt objOop);
extern sqInt numPointerSlotsOf(sqInt objOop);
extern usqInt numSlotsOf(sqInt objOop);
extern sqInt numStrongSlotsOfWeakling(sqInt objOop);
extern sqInt objectAfter(sqInt objOop);
Expand Down

0 comments on commit f1c0a95

Please sign in to comment.