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!
vm-dev@lists.squeakfoundation.org