[Vm-dev] VM Maker: VMMaker.oscog-eem.2227.mcz

commits at source.squeak.org commits at source.squeak.org
Mon May 29 17:28:16 UTC 2017


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

==================== Summary ====================

Name: VMMaker.oscog-eem.2227
Author: eem
Time: 29 May 2017, 10:27:16.31959 am
UUID: 7ea146b4-39ce-4de7-afa3-a76ed1d1da35
Ancestors: VMMaker.oscog-eem.2225

Inline arg removal to match inlining of arg marshalling, since removal is either no or one instruction.

=============== Diff against VMMaker.oscog-eem.2225 ===============

Item was changed:
  ----- Method: CogARMCompiler>>genRemoveNArgsFromStack: (in category 'abi') -----
  genRemoveNArgsFromStack: n
  	"This is a no-op on ARM since the ABI passes up to 4 args in registers and trampolines currently observe that limit."
+ 	<inline: true>
  	self assert: n <= 4.
  	^0!

Item was changed:
  ----- Method: CogIA32Compiler>>genRemoveNArgsFromStack: (in category 'abi') -----
+ genRemoveNArgsFromStack: n
+ 	<inline: true>
- genRemoveNArgsFromStack: n 
  	n = 0 ifFalse: [cogit AddCq: n * 4 R: ESP].
  	^0!

Item was changed:
  ----- Method: CogIA32Compiler>>genRemoveNFloatArgsFromStack: (in category 'abi') -----
+ genRemoveNFloatArgsFromStack: n
+ 	<inline: true>
- genRemoveNFloatArgsFromStack: n 
  	n > 0 ifTrue: [cogit AddCq: n * 8 R: ESP].
  	^0!

Item was changed:
  ----- Method: CogMIPSELCompiler>>genRemoveNArgsFromStack: (in category 'abi') -----
  genRemoveNArgsFromStack: n
  	"This is a no-op on MIPS since the ABI passes up to 4 args in registers and trampolines currently observe that limit."
+ 	<inline: true>
  	self assert: n <= 4.
  	^0!

Item was changed:
  ----- Method: CogX64Compiler>>genRemoveNArgsFromStack: (in category 'abi') -----
  genRemoveNArgsFromStack: n
  	"This is a no-op on x64 SysV since the ABI passes up to 6 args in registers and trampolines currently observe a limit of 4.
  	But the WIN64 ABI allways reserve shadow space for saving up to 4 parameter registers (even if less than 4 args)."
+ 	<inline: true>
  	self assert: n <= 4.
  	SysV ifFalse: [cogit AddCq: 32 R: RSP].
  	^0!

Item was changed:
  ----- Method: CogX64Compiler>>genRemoveNFloatArgsFromStack: (in category 'abi') -----
  genRemoveNFloatArgsFromStack: n
  	"This is a no-op on x64 SysV since the ABI passes up to 6 args in registers and trampolines currently observe a limit of 4.
  	But the WIN64 ABI allways reserve shadow space for saving up to 4 parameter registers (even if less than 4 args)."
+ 	<inline: true>
  	self assert: n <= 4.
  	SysV ifFalse: [cogit AddCq: 32 R: RSP].
  	^0!



More information about the Vm-dev mailing list