[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