Skip to content

Commit 9e8e7b3

Browse files
committed
CogVM source as per VMMaker.oscog-eem.3470
Implement SmalltalkImage>>maxIdentityHash efficiently in the Cogit. It's used a lot (e.g. in Dictionary lookup). Eliminate warnings in computing jump spans on x86_64. Slang: Eliminate statements following a return inserted into a block in optimization up to the next label. Get printing semicolons after the last label in a block correct. Eliminate a spurious cr in comments marking the end of inlinings. Further adapt to Compiler-eem.508. Don't suppress output of comments for TLabeledCommentNode when sent from TStmtListNode gen loop.
1 parent 3d35407 commit 9e8e7b3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+215557
-157461
lines changed

src/spur32.cog.newspeak/cogit.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/* Automatically generated by
2-
CCodeGenerator VMMaker.oscog-eem.3445 uuid: bf34d535-d388-48bb-b497-6a6661b81d9a
2+
CCodeGenerator VMMaker.oscog-eem.3470 uuid: 5eca4261-1c46-4eb4-bd5f-803847c2ab7f
3+
(Compiler-eem.512)
34
*/
45

56

src/spur32.cog.newspeak/cogitARMv5.c

Lines changed: 9382 additions & 7571 deletions
Large diffs are not rendered by default.

src/spur32.cog.newspeak/cogitIA32.c

Lines changed: 7592 additions & 5005 deletions
Large diffs are not rendered by default.

src/spur32.cog.newspeak/cointerp.c

Lines changed: 26853 additions & 23434 deletions
Large diffs are not rendered by default.

src/spur32.cog.newspeak/cointerp.h

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/* Automatically generated by
2-
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3445 uuid: bf34d535-d388-48bb-b497-6a6661b81d9a
2+
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3470 uuid: 5eca4261-1c46-4eb4-bd5f-803847c2ab7f
3+
(Compiler-eem.512)
34
*/
45

56

@@ -94,7 +95,7 @@ extern unsigned int positive32BitValueOf(sqInt oop);
9495
extern sqInt positive64BitIntegerFor(usqLong integerValue);
9596
extern usqLong positive64BitValueOf(sqInt oop);
9697
extern usqInt primFailCodeAddress(void);
97-
extern int primitivePropertyFlagsnumArgs(sqInt primIndex, sqInt numArgs);
98+
extern sqInt primitivePropertyFlagsnumArgs(sqInt primIndex, sqInt numArgs);
9899
extern void * primTraceLogAddress(void);
99100
extern usqInt primTraceLogIndexAddress(void);
100101
extern void printCogMethod(CogMethod *cogMethod);
@@ -112,7 +113,7 @@ extern sqLong signed64BitValueOf(sqInt oop);
112113
extern sqInt specialSelectorNumArgs(sqInt index);
113114
extern usqInt stackLimitAddress(void);
114115
extern usqInt stackPointerAddress(void);
115-
extern sqInt startPCOfMethodHeader(sqInt aCompiledMethodHeader);
116+
extern usqInt startPCOfMethodHeader(sqInt aCompiledMethodHeader);
116117
extern sqInt startPCOrNilOfLiteralin(sqInt lit, sqInt aMethodObj);
117118
extern void updateStackZoneReferencesToCompiledCodePreCompaction(void);
118119
extern usqInt primitiveFunctionPointerAddress(void);
@@ -160,6 +161,7 @@ extern sqInt classTagForClass(sqInt classObj);
160161
extern usqInt eeInstantiateClassIndexformatnumSlots(sqInt knownClassIndex, sqInt objFormat, sqInt numSlots);
161162
extern sqInt falseObject(void);
162163
extern sqInt fetchByteofObject(sqInt byteIndex, sqInt objOop);
164+
extern int fetchLong32ofObject(sqInt fieldIndex, sqInt oop);
163165
extern sqInt fetchPointerofObject(sqInt fieldIndex, sqInt objOop);
164166
extern sqInt fixedFieldsOfClassFormatMask(void);
165167
extern sqInt fixedFieldsOfClassFormat(sqInt classFormat);
@@ -188,9 +190,10 @@ extern int isYoungObject(sqInt objOop);
188190
extern sqInt isYoung(sqInt oop);
189191
extern int leakCheckFullGC(void);
190192
extern int leakCheckNewSpaceGC(void);
191-
extern sqInt literalCountOfMethodHeader(sqInt header);
192-
extern sqInt literalCountOf(sqInt methodPointer);
193+
extern usqInt literalCountOfMethodHeader(sqInt header);
194+
extern usqInt literalCountOf(sqInt methodPointer);
193195
extern NeverInline void markAndTrace(sqInt objOop);
196+
extern sqInt maxIdentityHash(void);
194197
extern sqInt maxSlotsForNewSpaceAlloc(void);
195198
extern sqInt maybeMethodClassOfseemsToBeInstantiating(sqInt methodObj, sqInt format);
196199
extern sqInt minSlotsForShortening(void);
@@ -220,11 +223,17 @@ extern sqInt remapObj(sqInt objOop);
220223
extern sqInt shouldRemapObj(sqInt objOop);
221224
extern sqInt accessorDepthForPrimitiveMethod(sqInt aMethodObj);
222225
extern sqInt argumentCountOfClosure(sqInt closurePointer);
223-
extern sqInt argumentCountOfMethodHeader(sqInt header);
224-
extern sqInt argumentCountOf(sqInt methodPointer);
226+
extern usqInt argumentCountOfMethodHeader(sqInt header);
227+
extern usqInt argumentCountOf(sqInt methodPointer);
225228
extern sqInt canContextSwitchIfActivatingheader(sqInt theMethod, sqInt methodHeader);
226-
extern usqInt copiedValueCountOfClosure(sqInt closureObj);
229+
extern sqInt copiedValueCountOfClosure(sqInt closureObj);
230+
#if SEND_PRINTING
231+
extern void disableSendPrinting(void);
232+
#endif /* SEND_PRINTING */
227233
extern NeverInline void eekcr(void);
234+
#if SEND_PRINTING
235+
extern void enableSendPrinting(void);
236+
#endif /* SEND_PRINTING */
228237
extern void flush(void);
229238
extern sqInt getThisSessionID(void);
230239
extern FILE * getTranscript(void);
@@ -250,10 +259,9 @@ extern sqInt sizeOfLongStoreTempBytecode(sqInt methodHeader);
250259
extern sqInt specialSelector(sqInt index);
251260
extern sqInt stackTop(void);
252261
extern sqInt stackValue(sqInt offset);
253-
extern sqInt startPCOfMethod(sqInt aCompiledMethod);
254-
extern sqInt tempCountOf(sqInt methodPointer);
255-
extern sqInt temporaryCountOfMethodHeader(sqInt header);
256-
extern sqInt ultimateLiteralOf(sqInt aMethodOop);
262+
extern usqInt startPCOfMethod(sqInt aCompiledMethod);
263+
extern usqInt tempCountOf(sqInt methodPointer);
264+
extern usqInt temporaryCountOfMethodHeader(sqInt header);
257265

258266

259267
/*** Global Variables ***/
@@ -512,10 +520,6 @@ extern sqInt suppressHeartbeatFlag;
512520
#define SpecialSelectors 23
513521
#define SqueakV3PlusClosuresBytecodeSet 1
514522
#define StackPointerIndex 2
515-
#define StreamArrayIndex 0
516-
#define StreamIndexIndex 1
517-
#define StreamReadLimitIndex 2
518-
#define StreamWriteLimitIndex 3
519523
#define SuperclassIndex 0
520524
#define SuspendedContextIndex 1
521525
#define TheDisplay 14

0 commit comments

Comments
 (0)