[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