[Vm-dev] VM Maker: VMMaker.oscog.seperateMarking-eem.3298.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Jan 12 20:26:19 UTC 2023


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog.seperateMarking-eem.3298.mcz

==================== Summary ====================

Name: VMMaker.oscog.seperateMarking-eem.3298
Author: eem
Time: 12 January 2023, 12:18:14.125099 pm
UUID: ad8f08f9-a95a-41cd-a29b-802277030e3a
Ancestors: VMMaker.oscog.seperateMarking-WoC.3297

Merge VMMaker.oscog-eem.3290:

Use a slightly better form for dealing with potential forwarding in the pushFullClosure bytecode.

=============== Diff against VMMaker.oscog.seperateMarking-WoC.3297 ===============

Item was changed:
  ----- Method: StackInterpreter>>extPushFullClosureBytecode (in category 'stack bytecodes') -----
  extPushFullClosureBytecode
  	"255		11111111	xxxxxxxx	siyyyyyy	
  		push Closure Compiled block literal index xxxxxxxx (+ Extend A * 256) 
  		numCopied yyyyyy 
  		receiverOnStack: s = 1 
  		ignoreOuterContext: i = 1
  	 The compiler has pushed the values to be copied, if any. The receiver has been pushed on stack before if specified. 
  	 Create a Closure with space for the copiedValues and pop numCopied values off the stack into the closure.
  	 Sets outerContext, compiledBlock, numArgs and receiver as specified.."
  	| compiledBlockLiteralIndex compiledBlock byte numArgs numCopied receiverIsOnStack ignoreContext |
  	compiledBlockLiteralIndex := self fetchByte + (extA << 8).
  	extA := 0.
+ 	compiledBlock := self followLiteral: compiledBlockLiteralIndex ofMethod: method.
- 	compiledBlock := self literal: compiledBlockLiteralIndex.
  	self assert: (objectMemory isOopCompiledMethod: compiledBlock).
  	numArgs := self argumentCountOf: compiledBlock.
  	byte := self fetchByte.
  	numCopied := byte bitAnd: 1<< 6 - 1.
  	receiverIsOnStack := byte anyMask: 1 << 7.
  	ignoreContext := byte anyMask: 1 << 6.
  	self pushFullClosureNumArgs: numArgs copiedValues: numCopied compiledBlock: compiledBlock receiverIsOnStack: receiverIsOnStack ignoreContext: ignoreContext!



More information about the Vm-dev mailing list