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

commits at source.squeak.org commits at source.squeak.org
Fri Dec 8 22:52:35 UTC 2017

Eliot Miranda uploaded a new version of VMMaker to project VM Maker:

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

Name: VMMaker.oscog-eem.2291
Author: eem
Time: 8 December 2017, 2:51:58.63029 pm
UUID: db3fbe11-c38f-4fc2-9569-51a31b905acf
Ancestors: VMMaker.oscog-eem.2290

Fix bug in new ceReapAndResetErrorCodeFor:; need to write the error code to the word above stack top, stack top holding the return address.

Make sure ceReapAndResetErrorCodeFor: simulates properly with the CogVMSimulator method coercing the address to a CogMethod.

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

Item was changed:
  ----- Method: CoInterpreter>>ceReapAndResetErrorCodeFor: (in category 'trampolines') -----
  ceReapAndResetErrorCodeFor: cogMethod
  	<var: #cogMethod type: #'CogMethod *'>
- 	self break.
  	self assert: primFailCode ~= 0.
  	newMethod := cogMethod methodObject.
+ 	self reapAndResetErrorCodeTo: stackPointer + objectMemory wordSize
+ 		header: cogMethod methodHeader!
- 	self reapAndResetErrorCodeTo: stackPointer header: cogMethod methodHeader!

Item was added:
+ ----- Method: CogVMSimulator>>ceReapAndResetErrorCodeFor: (in category 'trampolines') -----
+ ceReapAndResetErrorCodeFor: cogMethod
+ 	"Override to map the address into a CogMethodSurrogate"
+ 	| surrogate |
+ 	surrogate := cogMethod isInteger
+ 					ifTrue: [cogit cogMethodSurrogateAt: cogMethod]
+ 					ifFalse: [cogMethod].
+ 	^super ceReapAndResetErrorCodeFor: surrogate!

More information about the Vm-dev mailing list