[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