Skip to content

Commit 01937d6

Browse files
committed
CogVM source as per VMMaker.oscog-eem.3503
StackInterpreter: Fix for the StackInterpreter the regression in marryFrame: introduced in VMMaker.oscog-eem.3456 fixed in VMMaker.oscog-eem.3471. To this end add a more agressive assert to SpurMemoryManager>> storePointerUnchecked:ofObject:withValue:. Spur: Fix two mistakes in processing old space ephemerons. First, ephemerons in the unscannedEphemerons set are marked so to get them to be traced one can't just call markAndTrace: theEphemeron. One would need to unmark it, but better is to call markLoopFrom: theEphemeron directly. Second, numStrongSlotsOfInephemeral: was missing a case and answered 0 for ephemerons. Because scavenging is done after marking, future space could be larger than unused eden, so include it in the choices for unscannedEphemerons. Speed up flushMethodCacheFrom:to: for Spur. No need to test the class field cuz the method cache contains class indexes, not class objects. Speed up SpurMemoryManager>>addressCouldBeObj: by inlining isInOldSpace:.
1 parent 5e05e38 commit 01937d6

39 files changed

+43769
-9533
lines changed

src/spur32.cog.lowcode/cointerp.c

Lines changed: 1805 additions & 398 deletions
Large diffs are not rendered by default.

src/spur32.cog.lowcode/cointerp.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* Automatically generated by
2-
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3500 uuid: 125e4188-3517-4894-820f-fe57b485f930
2+
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3503 uuid: dd5af38b-cb11-48d5-a1f2-d7a971b76f2c
33
(Compiler-eem.513)
44
*/
55

0 commit comments

Comments
 (0)