windows fastcall (x64) call convention (#314)

* initial set of work for windows fastcall (x64) call convention

- call conventions: rename `fastcall` to `windows_fastcall`
- add initial set of filetests
- ensure arguments are written after the shadow space/store (offset-wise)
  The shadow space available before the arguments (range 0..32)
  is not used as spill space yet.

* address review feedback
This commit is contained in:
Steffen Butzer
2018-05-09 20:18:30 +02:00
committed by Dan Gohman
parent 09f883182d
commit 5aa84a744b
9 changed files with 246 additions and 16 deletions

View File

@@ -36,14 +36,22 @@ call_conv = EnumSetting(
- fast: not-ABI-stable convention for best performance
- cold: not-ABI-stable convention for infrequently executed code
- system_v: System V-style convention used on many platforms
- fastcall: Windows "fastcall" convention, also used for x64 and ARM
- windows_fastcall: Windows "fastcall" convention, also used for
x64 and ARM
- baldrdash: SpiderMonkey WebAssembly convention
- probestack: specialized convention for the probestack function
The default calling convention may be overridden by individual
functions.
""",
'fast', 'cold', 'system_v', 'fastcall', 'baldrdash', 'probestack')
'fast',
'cold',
'system_v',
'windows_fastcall',
'baldrdash',
'probestack'
)
# Note that Cretonne doesn't currently need an is_pie flag, because PIE is just
# PIC where symbols can't be pre-empted, which can be expressed with the