[Vm-dev] VM Maker: VMMaker.oscog.seperateMarking-eem.3315.mcz
commits at source.squeak.org
commits at source.squeak.org
Fri Feb 3 03:11:15 UTC 2023
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog.seperateMarking-eem.3315.mcz
==================== Summary ====================
Name: VMMaker.oscog.seperateMarking-eem.3315
Author: eem
Time: 2 February 2023, 7:10:54.944587 pm
UUID: c5e2e5db-aa9a-48cb-b8c5-a0e42b9c1cb1
Ancestors: VMMaker.oscog.seperateMarking-eem.3314
Merge VMMaker.oscog-eem.3302
=============== Diff against VMMaker.oscog.seperateMarking-eem.3314 ===============
Item was changed:
----- Method: StackInterpreter>>mapVMRegisters (in category 'object memory support') -----
mapVMRegisters
"Map the oops in the interpreter's vm ``registers'' to their new values
during garbage collection or a become: operation."
"Assume: All traced variables contain valid oops.
N.B. Don't trace messageSelector and lkupClass; these are ephemeral, live
only during message lookup and because createActualMessageTo will not
cause a GC these cannot change during message lookup.
c.f. followMethodNewMethodAndInstructionPointer"
| ipdelta |
(objectMemory shouldRemapObj: method) ifTrue:
[ipdelta := (self method: method includesAddress: instructionPointer) ifTrue:
[instructionPointer - method].
method := objectMemory remapObj: method.
ipdelta ifNotNil:
[instructionPointer := method + ipdelta]].
(objectMemory shouldRemapOop: newMethod) ifTrue: "maybe oop due to object-as-method"
+ [ipdelta := (ipdelta isNil "don't relocate twice!!!!"
+ and: [self method: newMethod includesAddress: instructionPointer]) ifTrue:
- [ipdelta := (self method: newMethod includesAddress: instructionPointer) ifTrue:
[instructionPointer - newMethod].
newMethod := objectMemory remapObj: newMethod.
ipdelta ifNotNil:
[instructionPointer := newMethod + ipdelta]]!
Item was changed:
----- Method: StackToRegisterMappingCogit>>genPushLiteral: (in category 'bytecode generator support') -----
genPushLiteral: literal
+ <inline: #always>
^self ssPushConstant: literal!
More information about the Vm-dev
mailing list