Skip to content

Commit

Permalink
CogVM source as per VMMaker.oscog-eem.3200
Browse files Browse the repository at this point in the history
Add a scheme to report the traceFlags in usage() on the command-line.
traceFlagsMeanings is a null-terminated array of strings as per argv.

Redefine the flags so that the newspeak-only & simulation-only ones
come at the end so avoid reporting unused entries.
  • Loading branch information
eliotmiranda committed Jun 25, 2022
1 parent f616897 commit 083a490
Show file tree
Hide file tree
Showing 24 changed files with 219 additions and 127 deletions.
7 changes: 4 additions & 3 deletions src/spur32.cog.lowcode/cogit.h
@@ -1,5 +1,5 @@
/* Automatically generated by
CCodeGenerator VMMaker.oscog-eem.3199 uuid: 3866dedc-ccfd-4fc1-a487-85095ada8bba
CCodeGenerator VMMaker.oscog-eem.3200 uuid: dcd3d040-95e7-43b9-a0e7-4ad384662520
*/


Expand Down Expand Up @@ -133,12 +133,13 @@ extern void (*realCECallCogCodePopReceiverArg1Arg0Regs)(void);
extern void (*realCECallCogCodePopReceiverReg)(void);
extern void (*realCEEnterCogCodePopReceiverReg)(void);
extern int traceFlags ;
extern const char * traceFlagsMeanings[] ;
extern sqInt traceStores;


/*** Macros ***/
#define blockAlignment() 8
#define breakOnImplicitReceiver() (traceFlags & 64)
#define breakOnImplicitReceiver() (traceFlags & 256)
#define ceBaseFrameReturnPC() ceBaseFrameReturnTrampoline
#define ceCannotResumePC() ((usqInt)ceCannotResumeTrampoline)
#define ceReturnToInterpreterPC() ((usqInt)ceReturnToInterpreterTrampoline)
Expand All @@ -151,7 +152,7 @@ extern sqInt traceStores;
#define printOnTrace() (traceFlags & 1)
#define recordBlockTrace() (traceFlags & 4)
#define recordEventTrace() (traceFlags & 16)
#define recordFastCCallPrimTrace() (traceFlags & 512)
#define recordFastCCallPrimTrace() (traceFlags & 128)
#define recordOverflowTrace() (traceFlags & 32)
#define recordPrimTrace() (traceFlags & 8)
#define recordSendTrace() (traceFlags & 2)
Expand Down
17 changes: 11 additions & 6 deletions src/spur32.cog.lowcode/cogitARMv5.c
@@ -1,9 +1,9 @@
/* Automatically generated by
CCodeGenerator VMMaker.oscog-eem.3199 uuid: 3866dedc-ccfd-4fc1-a487-85095ada8bba
CCodeGenerator VMMaker.oscog-eem.3200 uuid: dcd3d040-95e7-43b9-a0e7-4ad384662520
from
StackToRegisterMappingCogit VMMaker.oscog-eem.3199 uuid: 3866dedc-ccfd-4fc1-a487-85095ada8bba
StackToRegisterMappingCogit VMMaker.oscog-eem.3200 uuid: dcd3d040-95e7-43b9-a0e7-4ad384662520
*/
static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3199 uuid: 3866dedc-ccfd-4fc1-a487-85095ada8bba " __DATE__ ;
static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3200 uuid: dcd3d040-95e7-43b9-a0e7-4ad384662520 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;


Expand Down Expand Up @@ -2749,6 +2749,11 @@ sqInt cmNoCheckEntryOffset;
usqInt methodZoneBase;
sqInt missOffset;
int traceFlags = 8 /* prim trace log on by default */;
const char * traceFlagsMeanings[] = {
"1: print trace", "2: trace sends", "4: trace block activations", "8: trace interpreter primitives",
"16: trace events (context switches, GCs, etc)", "32: trace stack overflow (poll for events hook)",
"64: trace linked sends", "128: trace fast C call interpreter primitives", null
};
sqInt traceStores;
void (*ceCall0ArgsPIC)(void);
void (*ceCall1ArgsPIC)(void);
Expand Down Expand Up @@ -2794,7 +2799,7 @@ void (*realCEEnterCogCodePopReceiverReg)(void);
#define backEnd() backEnd
#define blockAlignment() 8
#define blockStartAt(index) (&blockStarts[index])
#define breakOnImplicitReceiver() (traceFlags & 64)
#define breakOnImplicitReceiver() (traceFlags & 256)
#define ceBaseFrameReturnPC() ceBaseFrameReturnTrampoline
#define ceCannotResumePC() ((usqInt)ceCannotResumeTrampoline)
#define ceCheckForInterruptTrampoline() ceCheckForInterruptTrampoline
Expand Down Expand Up @@ -2830,7 +2835,7 @@ void (*realCEEnterCogCodePopReceiverReg)(void);
#define printOnTrace() (traceFlags & 1)
#define recordBlockTrace() (traceFlags & 4)
#define recordEventTrace() (traceFlags & 16)
#define recordFastCCallPrimTrace() (traceFlags & 512)
#define recordFastCCallPrimTrace() (traceFlags & 128)
#define recordOverflowTrace() (traceFlags & 32)
#define recordPrimTrace() (traceFlags & 8)
#define recordSendTrace() (traceFlags & 2)
Expand Down Expand Up @@ -10780,7 +10785,7 @@ compileEntry(void)
genoperandoperand(CmpRR, ClassReg, TempReg);
genConditionalBranchoperand(JumpNonZero, ((sqInt)sendMiss));
noCheckEntry = genoperandoperand(Label, (labelCounter += 1), bytecodePC);
if (((traceFlags & 0x100) == 0x100)) {
if (((traceFlags & 64) == 64)) {
/* begin saveAndRestoreLinkRegAround: */
inst = genoperand(PushR, LinkReg);
/* begin gen:literal: */
Expand Down
17 changes: 11 additions & 6 deletions src/spur32.cog.lowcode/cogitIA32.c
@@ -1,9 +1,9 @@
/* Automatically generated by
CCodeGenerator VMMaker.oscog-eem.3199 uuid: 3866dedc-ccfd-4fc1-a487-85095ada8bba
CCodeGenerator VMMaker.oscog-eem.3200 uuid: dcd3d040-95e7-43b9-a0e7-4ad384662520
from
StackToRegisterMappingCogit VMMaker.oscog-eem.3199 uuid: 3866dedc-ccfd-4fc1-a487-85095ada8bba
StackToRegisterMappingCogit VMMaker.oscog-eem.3200 uuid: dcd3d040-95e7-43b9-a0e7-4ad384662520
*/
static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3199 uuid: 3866dedc-ccfd-4fc1-a487-85095ada8bba " __DATE__ ;
static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3200 uuid: dcd3d040-95e7-43b9-a0e7-4ad384662520 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;


Expand Down Expand Up @@ -2680,6 +2680,11 @@ sqInt cmNoCheckEntryOffset;
usqInt methodZoneBase;
sqInt missOffset;
int traceFlags = 8 /* prim trace log on by default */;
const char * traceFlagsMeanings[] = {
"1: print trace", "2: trace sends", "4: trace block activations", "8: trace interpreter primitives",
"16: trace events (context switches, GCs, etc)", "32: trace stack overflow (poll for events hook)",
"64: trace linked sends", "128: trace fast C call interpreter primitives", null
};
sqInt traceStores;
void (*ceCall0ArgsPIC)(void);
void (*ceCall1ArgsPIC)(void);
Expand Down Expand Up @@ -2732,7 +2737,7 @@ void (*realCEEnterCogCodePopReceiverReg)(void);
#define backEnd() backEnd
#define blockAlignment() 8
#define blockStartAt(index) (&blockStarts[index])
#define breakOnImplicitReceiver() (traceFlags & 64)
#define breakOnImplicitReceiver() (traceFlags & 256)
#define ceBaseFrameReturnPC() ceBaseFrameReturnTrampoline
#define ceCannotResumePC() ((usqInt)ceCannotResumeTrampoline)
#define ceCheckForInterruptTrampoline() ceCheckForInterruptTrampoline
Expand Down Expand Up @@ -2768,7 +2773,7 @@ void (*realCEEnterCogCodePopReceiverReg)(void);
#define printOnTrace() (traceFlags & 1)
#define recordBlockTrace() (traceFlags & 4)
#define recordEventTrace() (traceFlags & 16)
#define recordFastCCallPrimTrace() (traceFlags & 512)
#define recordFastCCallPrimTrace() (traceFlags & 128)
#define recordOverflowTrace() (traceFlags & 32)
#define recordPrimTrace() (traceFlags & 8)
#define recordSendTrace() (traceFlags & 2)
Expand Down Expand Up @@ -10577,7 +10582,7 @@ compileEntry(void)
genoperandoperand(CmpRR, ClassReg, TempReg);
genConditionalBranchoperand(JumpNonZero, ((sqInt)sendMiss));
noCheckEntry = genoperandoperand(Label, (labelCounter += 1), bytecodePC);
if (((traceFlags & 0x100) == 0x100)) {
if (((traceFlags & 64) == 64)) {
/* begin saveAndRestoreLinkRegAround: */
/* begin annotateCall: */
anInstruction = genoperand(CallFull, ceTraceLinkedSendTrampoline);
Expand Down
7 changes: 4 additions & 3 deletions src/spur32.cog/cogit.h
@@ -1,5 +1,5 @@
/* Automatically generated by
CCodeGenerator VMMaker.oscog-eem.3199 uuid: 3866dedc-ccfd-4fc1-a487-85095ada8bba
CCodeGenerator VMMaker.oscog-eem.3200 uuid: dcd3d040-95e7-43b9-a0e7-4ad384662520
*/


Expand Down Expand Up @@ -131,12 +131,13 @@ extern void (*realCECallCogCodePopReceiverArg1Arg0Regs)(void);
extern void (*realCECallCogCodePopReceiverReg)(void);
extern void (*realCEEnterCogCodePopReceiverReg)(void);
extern int traceFlags ;
extern const char * traceFlagsMeanings[] ;
extern sqInt traceStores;


/*** Macros ***/
#define blockAlignment() 8
#define breakOnImplicitReceiver() (traceFlags & 64)
#define breakOnImplicitReceiver() (traceFlags & 256)
#define ceBaseFrameReturnPC() ceBaseFrameReturnTrampoline
#define ceCannotResumePC() ((usqInt)ceCannotResumeTrampoline)
#define ceReturnToInterpreterPC() ((usqInt)ceReturnToInterpreterTrampoline)
Expand All @@ -149,7 +150,7 @@ extern sqInt traceStores;
#define printOnTrace() (traceFlags & 1)
#define recordBlockTrace() (traceFlags & 4)
#define recordEventTrace() (traceFlags & 16)
#define recordFastCCallPrimTrace() (traceFlags & 512)
#define recordFastCCallPrimTrace() (traceFlags & 128)
#define recordOverflowTrace() (traceFlags & 32)
#define recordPrimTrace() (traceFlags & 8)
#define recordSendTrace() (traceFlags & 2)
Expand Down
17 changes: 11 additions & 6 deletions src/spur32.cog/cogitARMv5.c
@@ -1,9 +1,9 @@
/* Automatically generated by
CCodeGenerator VMMaker.oscog-eem.3199 uuid: 3866dedc-ccfd-4fc1-a487-85095ada8bba
CCodeGenerator VMMaker.oscog-eem.3200 uuid: dcd3d040-95e7-43b9-a0e7-4ad384662520
from
StackToRegisterMappingCogit VMMaker.oscog-eem.3199 uuid: 3866dedc-ccfd-4fc1-a487-85095ada8bba
StackToRegisterMappingCogit VMMaker.oscog-eem.3200 uuid: dcd3d040-95e7-43b9-a0e7-4ad384662520
*/
static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3199 uuid: 3866dedc-ccfd-4fc1-a487-85095ada8bba " __DATE__ ;
static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3200 uuid: dcd3d040-95e7-43b9-a0e7-4ad384662520 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;


Expand Down Expand Up @@ -2568,6 +2568,11 @@ sqInt cmNoCheckEntryOffset;
usqInt methodZoneBase;
sqInt missOffset;
int traceFlags = 8 /* prim trace log on by default */;
const char * traceFlagsMeanings[] = {
"1: print trace", "2: trace sends", "4: trace block activations", "8: trace interpreter primitives",
"16: trace events (context switches, GCs, etc)", "32: trace stack overflow (poll for events hook)",
"64: trace linked sends", "128: trace fast C call interpreter primitives", null
};
sqInt traceStores;
void (*ceCall0ArgsPIC)(void);
void (*ceCall1ArgsPIC)(void);
Expand Down Expand Up @@ -2613,7 +2618,7 @@ void (*realCEEnterCogCodePopReceiverReg)(void);
#define backEnd() backEnd
#define blockAlignment() 8
#define blockStartAt(index) (&blockStarts[index])
#define breakOnImplicitReceiver() (traceFlags & 64)
#define breakOnImplicitReceiver() (traceFlags & 256)
#define ceBaseFrameReturnPC() ceBaseFrameReturnTrampoline
#define ceCannotResumePC() ((usqInt)ceCannotResumeTrampoline)
#define ceCheckForInterruptTrampoline() ceCheckForInterruptTrampoline
Expand Down Expand Up @@ -2649,7 +2654,7 @@ void (*realCEEnterCogCodePopReceiverReg)(void);
#define printOnTrace() (traceFlags & 1)
#define recordBlockTrace() (traceFlags & 4)
#define recordEventTrace() (traceFlags & 16)
#define recordFastCCallPrimTrace() (traceFlags & 512)
#define recordFastCCallPrimTrace() (traceFlags & 128)
#define recordOverflowTrace() (traceFlags & 32)
#define recordPrimTrace() (traceFlags & 8)
#define recordSendTrace() (traceFlags & 2)
Expand Down Expand Up @@ -10383,7 +10388,7 @@ compileEntry(void)
genoperandoperand(CmpRR, ClassReg, TempReg);
genConditionalBranchoperand(JumpNonZero, ((sqInt)sendMiss));
noCheckEntry = genoperandoperand(Label, (labelCounter += 1), bytecodePC);
if (((traceFlags & 0x100) == 0x100)) {
if (((traceFlags & 64) == 64)) {
/* begin saveAndRestoreLinkRegAround: */
inst = genoperand(PushR, LinkReg);
/* begin gen:literal: */
Expand Down
17 changes: 11 additions & 6 deletions src/spur32.cog/cogitIA32.c
@@ -1,9 +1,9 @@
/* Automatically generated by
CCodeGenerator VMMaker.oscog-eem.3199 uuid: 3866dedc-ccfd-4fc1-a487-85095ada8bba
CCodeGenerator VMMaker.oscog-eem.3200 uuid: dcd3d040-95e7-43b9-a0e7-4ad384662520
from
StackToRegisterMappingCogit VMMaker.oscog-eem.3199 uuid: 3866dedc-ccfd-4fc1-a487-85095ada8bba
StackToRegisterMappingCogit VMMaker.oscog-eem.3200 uuid: dcd3d040-95e7-43b9-a0e7-4ad384662520
*/
static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3199 uuid: 3866dedc-ccfd-4fc1-a487-85095ada8bba " __DATE__ ;
static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3200 uuid: dcd3d040-95e7-43b9-a0e7-4ad384662520 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;


Expand Down Expand Up @@ -2523,6 +2523,11 @@ sqInt cmNoCheckEntryOffset;
usqInt methodZoneBase;
sqInt missOffset;
int traceFlags = 8 /* prim trace log on by default */;
const char * traceFlagsMeanings[] = {
"1: print trace", "2: trace sends", "4: trace block activations", "8: trace interpreter primitives",
"16: trace events (context switches, GCs, etc)", "32: trace stack overflow (poll for events hook)",
"64: trace linked sends", "128: trace fast C call interpreter primitives", null
};
sqInt traceStores;
void (*ceCall0ArgsPIC)(void);
void (*ceCall1ArgsPIC)(void);
Expand Down Expand Up @@ -2575,7 +2580,7 @@ void (*realCEEnterCogCodePopReceiverReg)(void);
#define backEnd() backEnd
#define blockAlignment() 8
#define blockStartAt(index) (&blockStarts[index])
#define breakOnImplicitReceiver() (traceFlags & 64)
#define breakOnImplicitReceiver() (traceFlags & 256)
#define ceBaseFrameReturnPC() ceBaseFrameReturnTrampoline
#define ceCannotResumePC() ((usqInt)ceCannotResumeTrampoline)
#define ceCheckForInterruptTrampoline() ceCheckForInterruptTrampoline
Expand Down Expand Up @@ -2611,7 +2616,7 @@ void (*realCEEnterCogCodePopReceiverReg)(void);
#define printOnTrace() (traceFlags & 1)
#define recordBlockTrace() (traceFlags & 4)
#define recordEventTrace() (traceFlags & 16)
#define recordFastCCallPrimTrace() (traceFlags & 512)
#define recordFastCCallPrimTrace() (traceFlags & 128)
#define recordOverflowTrace() (traceFlags & 32)
#define recordPrimTrace() (traceFlags & 8)
#define recordSendTrace() (traceFlags & 2)
Expand Down Expand Up @@ -10047,7 +10052,7 @@ compileEntry(void)
genoperandoperand(CmpRR, ClassReg, TempReg);
genConditionalBranchoperand(JumpNonZero, ((sqInt)sendMiss));
noCheckEntry = genoperandoperand(Label, (labelCounter += 1), bytecodePC);
if (((traceFlags & 0x100) == 0x100)) {
if (((traceFlags & 64) == 64)) {
/* begin saveAndRestoreLinkRegAround: */
/* begin annotateCall: */
anInstruction = genoperand(CallFull, ceTraceLinkedSendTrampoline);
Expand Down
7 changes: 4 additions & 3 deletions src/spur32.sista/cogit.h
@@ -1,5 +1,5 @@
/* Automatically generated by
CCodeGenerator VMMaker.oscog-eem.3199 uuid: 3866dedc-ccfd-4fc1-a487-85095ada8bba
CCodeGenerator VMMaker.oscog-eem.3200 uuid: dcd3d040-95e7-43b9-a0e7-4ad384662520
*/


Expand Down Expand Up @@ -136,12 +136,13 @@ extern void (*realCECallCogCodePopReceiverArg1Arg0Regs)(void);
extern void (*realCECallCogCodePopReceiverReg)(void);
extern void (*realCEEnterCogCodePopReceiverReg)(void);
extern int traceFlags ;
extern const char * traceFlagsMeanings[] ;
extern sqInt traceStores;


/*** Macros ***/
#define blockAlignment() 8
#define breakOnImplicitReceiver() (traceFlags & 64)
#define breakOnImplicitReceiver() (traceFlags & 256)
#define ceBaseFrameReturnPC() ceBaseFrameReturnTrampoline
#define ceCannotResumePC() ((usqInt)ceCannotResumeTrampoline)
#define ceReturnToInterpreterPC() ((usqInt)ceReturnToInterpreterTrampoline)
Expand All @@ -154,7 +155,7 @@ extern sqInt traceStores;
#define printOnTrace() (traceFlags & 1)
#define recordBlockTrace() (traceFlags & 4)
#define recordEventTrace() (traceFlags & 16)
#define recordFastCCallPrimTrace() (traceFlags & 512)
#define recordFastCCallPrimTrace() (traceFlags & 128)
#define recordOverflowTrace() (traceFlags & 32)
#define recordPrimTrace() (traceFlags & 8)
#define recordSendTrace() (traceFlags & 2)
Expand Down
17 changes: 11 additions & 6 deletions src/spur32.sista/cogitARMv5.c
@@ -1,9 +1,9 @@
/* Automatically generated by
CCodeGenerator VMMaker.oscog-eem.3199 uuid: 3866dedc-ccfd-4fc1-a487-85095ada8bba
CCodeGenerator VMMaker.oscog-eem.3200 uuid: dcd3d040-95e7-43b9-a0e7-4ad384662520
from
SistaCogit VMMaker.oscog-eem.3199 uuid: 3866dedc-ccfd-4fc1-a487-85095ada8bba
SistaCogit VMMaker.oscog-eem.3200 uuid: dcd3d040-95e7-43b9-a0e7-4ad384662520
*/
static char __buildInfo[] = "SistaCogit VMMaker.oscog-eem.3199 uuid: 3866dedc-ccfd-4fc1-a487-85095ada8bba " __DATE__ ;
static char __buildInfo[] = "SistaCogit VMMaker.oscog-eem.3200 uuid: dcd3d040-95e7-43b9-a0e7-4ad384662520 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;


Expand Down Expand Up @@ -2660,6 +2660,11 @@ sqInt cmNoCheckEntryOffset;
usqInt methodZoneBase;
sqInt missOffset;
int traceFlags = 8 /* prim trace log on by default */;
const char * traceFlagsMeanings[] = {
"1: print trace", "2: trace sends", "4: trace block activations", "8: trace interpreter primitives",
"16: trace events (context switches, GCs, etc)", "32: trace stack overflow (poll for events hook)",
"64: trace linked sends", "128: trace fast C call interpreter primitives", null
};
sqInt traceStores;
void (*ceCall0ArgsPIC)(void);
void (*ceCall1ArgsPIC)(void);
Expand Down Expand Up @@ -2705,7 +2710,7 @@ void (*realCEEnterCogCodePopReceiverReg)(void);
#define backEnd() backEnd
#define blockAlignment() 8
#define blockStartAt(index) (&blockStarts[index])
#define breakOnImplicitReceiver() (traceFlags & 64)
#define breakOnImplicitReceiver() (traceFlags & 256)
#define ceBaseFrameReturnPC() ceBaseFrameReturnTrampoline
#define ceCannotResumePC() ((usqInt)ceCannotResumeTrampoline)
#define ceCheckForInterruptTrampoline() ceCheckForInterruptTrampoline
Expand Down Expand Up @@ -2741,7 +2746,7 @@ void (*realCEEnterCogCodePopReceiverReg)(void);
#define printOnTrace() (traceFlags & 1)
#define recordBlockTrace() (traceFlags & 4)
#define recordEventTrace() (traceFlags & 16)
#define recordFastCCallPrimTrace() (traceFlags & 512)
#define recordFastCCallPrimTrace() (traceFlags & 128)
#define recordOverflowTrace() (traceFlags & 32)
#define recordPrimTrace() (traceFlags & 8)
#define recordSendTrace() (traceFlags & 2)
Expand Down Expand Up @@ -10581,7 +10586,7 @@ compileEntry(void)
genoperandoperand(CmpRR, ClassReg, TempReg);
genConditionalBranchoperand(JumpNonZero, ((sqInt)sendMiss));
noCheckEntry = genoperandoperand(Label, (labelCounter += 1), bytecodePC);
if (((traceFlags & 0x100) == 0x100)) {
if (((traceFlags & 64) == 64)) {
/* begin saveAndRestoreLinkRegAround: */
inst = genoperand(PushR, LinkReg);
/* begin gen:literal: */
Expand Down

0 comments on commit 083a490

Please sign in to comment.