[Vm-dev] VM Maker: VMMaker.oscog-cb.1206.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Apr 16 23:23:51 UTC 2015
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-cb.1206.mcz
==================== Summary ====================
Name: VMMaker.oscog-cb.1206
Author: cb
Time: 16 April 2015, 4:22:03.426 pm
UUID: 69c4d035-4901-4062-ab70-9e204bc53c7c
Ancestors: VMMaker.oscog-cb.1205
first attempt to fix the sista trap trampoline.
Now expect the context trapping to have the object which traps on stack. Does not require anymore arguments passed by registers.
=============== Diff against VMMaker.oscog-cb.1205 ===============
Item was added:
+ ----- Method: CoInterpreter>>ceSistaTrap (in category 'trampolines') -----
+ ceSistaTrap
+ <api>
+ <option: #SistaVM>
+ | context obj |
+ instructionPointer := self popStack.
+ context := self ensureFrameIsMarried: framePointer SP: stackPointer.
+ "If there is a trap, the object is supposed to remain on
+ the stack, but the cogit always removes it. So restore it here."
+ obj := self stackTop.
+ self push: context.
+ self push: obj.
+ self push: instructionPointer.
+ ^self
+ ceSendAbort: (objectMemory splObj: SelectorSistaTrap)
+ to: context
+ numArgs: 1!
Item was removed:
- ----- Method: CoInterpreter>>ceSistaTrap: (in category 'trampolines') -----
- ceSistaTrap: anObject
- <api>
- <option: #SistaVM>
- | context |
- instructionPointer := self popStack.
- context := self ensureFrameIsMarried: framePointer SP: stackPointer.
- "If there is a trap, the object is supposed to remain on
- the stack, but the cogit always removes it. So restore it here."
- self push: anObject.
- self push: context.
- self push: anObject.
- self push: instructionPointer.
- ^self
- ceSendAbort: (objectMemory splObj: SelectorSistaTrap)
- to: anObject
- numArgs: 1!
Item was changed:
----- Method: SistaStackToRegisterMappingCogit>>generateSistaRuntime (in category 'initialization') -----
generateSistaRuntime
"Trap sends Sista trap message to context with top of stack, so we don't need any arguments..."
+ ceTrapTrampoline := self genTrampolineFor: #ceSistaTrap called: 'ceSistaTrapTrampoline'!
- ceTrapTrampoline := self genTrampolineFor: #ceSistaTrap:
- called: 'ceSistaTrapTrampoline'
- arg: ReceiverResultReg!
More information about the Vm-dev
mailing list