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

commits at source.squeak.org commits at source.squeak.org
Wed Feb 23 02:01:00 UTC 2022


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

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

Name: VMMaker.oscog-eem.3167
Author: eem
Time: 22 February 2022, 6:00:47.332049 pm
UUID: ab240217-a8b0-4942-9951-c2164bcb3479
Ancestors: VMMaker.oscog-eem.3166

StackToRegisterMappingCogit: Fix assert failures on first pass of embedded block compilations.

In-image compilation: Fix a slip in debugStackPointersFor:

=============== Diff against VMMaker.oscog-eem.3166 ===============

Item was changed:
  ----- Method: CurrentImageCoInterpreterFacade>>debugStackPointersFor: (in category 'accessing') -----
  debugStackPointersFor: anOop
  	^CArrayAccessor on:
  		((StackDepthFinder on: (objectMap keyAtValue: anOop))
+ 			encoderClass: (coInterpreter encoderClassForHeader: (objectMemory integerObjectOf: (objectMap keyAtValue: anOop) header));
- 			encoderClass: (coInterpreter encoderClassForHeader: (objectMap keyAtValue: anOop) header);
  			stackPointers)!

Item was changed:
  ----- Method: StackToRegisterMappingCogit>>assertCorrectSimStackPtr (in category 'compile abstract instructions') -----
  assertCorrectSimStackPtr
  	<inline: true>
  	"Would like to assert simply simSpillBase > methodOrBlockNumTemps but can't because
  	 of the initialNils hack for nested blocks in SqueakV3PlusClosures"
  	self assert: (simSpillBase >= methodOrBlockNumTemps
  				or: [self maybeCompilingFirstPassOfBlockWithInitialPushNil and: [simSpillBase > methodOrBlockNumArgs]]).
  	(needsFrame and: [simSpillBase > 0]) ifTrue:
+ 		[self assert: ((self simStackAt: simSpillBase - 1) spilled == true or: [self maybeCompilingFirstPassOfBlockWithInitialPushNil and: [simSpillBase > methodOrBlockNumArgs]]).
- 		[self assert: (self simStackAt: simSpillBase - 1) spilled == true.
  		 self assert: (simSpillBase > simStackPtr or: [(self simStackAt: simSpillBase) spilled == false])].
   	self cCode: '' inSmalltalk:
  		[deadCode ifFalse:
  			[self assert: simStackPtr + (needsFrame ifTrue: [0] ifFalse: [1])
  						= (self debugStackPointerFor: bytecodePC)]].!



More information about the Vm-dev mailing list