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!