VM Maker: VMMaker.oscog-eem.2291.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: VMMaker.oscog-eem.2291.mcz

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

==================== 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

CoInterpreter:
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
  <api>
  <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!