[Vm-dev] VM Maker: VMMaker.oscog-eem.1697.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Feb 24 00:54:40 UTC 2016
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1697.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.1697
Author: eem
Time: 23 February 2016, 4:52:59.370596 pm
UUID: 03f07782-25a7-4178-8528-7f8638ca30ff
Ancestors: VMMaker.oscog-eem.1696
And get the adjustment correct for the SimpleStackBasedCogit too.
=============== Diff against VMMaker.oscog-eem.1696 ===============
Item was changed:
----- Method: SimpleStackBasedCogit>>adjustArgumentsForPerform: (in category 'primitive generators') -----
adjustArgumentsForPerform: numArgs
+ "e.g. Receiver Receiver or Receiver Receiver (RISC)
+ Selector/Arg0 => Arg1 Selector/Arg0 => Arg1
+ Arg1 Arg2 Arg1 Arg2
+ Arg2 Arg3 Arg2 sp-> Arg3
+ Arg3 sp-> retpc sp-> Arg3
- "e.g. Receiver Receiver
- Selector/Arg0 => Arg1
- Arg1 Arg2
- Arg2 sp-> retpc
sp-> retpc"
+ backEnd hasLinkRegister
+ ifTrue:
+ [numArgs - 2 to: 0 by: -1 do:
+ [:index|
+ self MoveMw: index * objectMemory wordSize r: SPReg R: TempReg.
+ self MoveR: TempReg Mw: index + 1 * objectMemory wordSize r: SPReg].
+ self AddCq: objectMemory wordSize R: SPReg]
+ ifFalse:
+ [numArgs - 1 to: 1 by: -1 do:
+ [:index|
+ self MoveMw: index * objectMemory wordSize r: SPReg R: TempReg.
+ self MoveR: TempReg Mw: index + 1 * objectMemory wordSize r: SPReg].
+ self PopR: TempReg.
+ self MoveR: TempReg Mw: 0 r: SPReg]!
- (backEnd hasLinkRegister ifTrue: [numArgs - 2] ifFalse: [numArgs - 1]) to: 0 by: -1 do:
- [:index|
- self MoveMw: index * objectMemory wordSize r: SPReg R: TempReg.
- self MoveR: TempReg Mw: index + 1 * objectMemory wordSize r: SPReg].
- self PopR: TempReg.
- self MoveR: TempReg Mw: 0 r: SPReg!
More information about the Vm-dev
mailing list