Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3291.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.3291 Author: eem Time: 12 January 2023, 1:03:12.565231 pm UUID: 815cbacd-2865-4024-987d-0b4974af3ed1 Ancestors: VMMaker.oscog-eem.3290
Merge VMMaker.oscog.seperateMarking-eem.3301
Given that better forwarding machinery was written over time, neaten StackInterpreter>>pushLiteralVariable: to use it. This is prompted by VMMaker.oscog.seperateMarking-eem.3300/VMMaker.oscog-eem.3290.
=============== Diff against VMMaker.oscog-eem.3290 ===============
Item was changed: ----- Method: StackInterpreter>>pushLiteralVariable: (in category 'stack bytecodes') ----- pushLiteralVariable: literalIndex + | litVar | + "In Spur: + push/store/popLiteralVariable all fetch a literal, and either read or write the literal's value field. + The fetch of the literal needs an explicit check (otherwise we would have to scan all literals in + all methods in the stack zone, and the entire method on return, and global variables are relatively + rare; in my work image 8.7% of literals are globals)." + litVar := self followLiteral: literalIndex ofMethod: method. + self internalPush: (objectMemory fetchPointer: ValueIndex ofObject: litVar)! - objectMemory hasSpurMemoryManagerAPI - ifTrue: - [| litVar | - "push/store/popLiteralVariable all fetch a literal, and either read or write the literal's value field. - The fetch of the literal needs an explicit check (otherwise we would have to scan all literals in - all methods in the stack zone, and the entire method on return, and global variables are relatively - rare; in my work image 8.7% of literals are globals)." - litVar := self literal: literalIndex. - (objectMemory isForwarded: litVar) ifTrue: - [litVar := self unfollow: litVar atIndex: literalIndex]. - self internalPush: - (objectMemory fetchPointer: ValueIndex ofObject: litVar)] - ifFalse: - [self internalPush: - (objectMemory fetchPointer: ValueIndex ofObject: (self literal: literalIndex))]!
vm-dev@lists.squeakfoundation.org