VM Maker: VMMaker.oscog-eem.2227.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: VMMaker.oscog-eem.2227.mcz

commits-2
 
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!