Commit graph

18 commits

Author SHA1 Message Date
Martin
5e3785159f Re-reverse parameter order for extern(D). 2015-02-23 22:52:11 +01:00
Martin
965b97c571 Refactor Win64 ABI.
I've decided to use a consistent scheme here - types are returned the same
way as they are passed as arguments. So cfloat as 64-bit struct in RAX,
cdouble/creal and 80-bit real/ireal as types > 64 bit via sret.

MS allows using the x87 stack, but there are no official guidelines as
they don't use x87 at all.
2015-02-23 22:52:11 +01:00
Martin
42c793d12b Use single ByVal ABI rewrite for both Win64 and PPC. 2015-02-23 22:52:11 +01:00
Martin
d8bdb77e47 Get rid of CfloatToInt ABI rewrite and extend CompositeToInt.
CompositeToInt now also accepts complex number pairs and all other types,
not just pointers to structs/static arrays.
2015-02-23 22:52:10 +01:00
Martin
9c9d0f66c7 Don't swap real and imaginary parts of complex numbers.
Rely on LLVM to select a sane order, don't use DMD as reference anymore.
2015-02-23 22:52:10 +01:00
Martin
c15e1a3e9f Win64 fix: don't attempt to rewrite composites of size 0 to integers 2015-02-23 22:52:10 +01:00
Martin
b8833b3d99 Win64 fix: pass 64-bit reals as doubles 2015-02-23 22:52:10 +01:00
Martin
9839cfb889 Experimental varargs fix 2015-02-23 22:52:10 +01:00
Martin
fc59c34da6 Fix and clean-up Win64 ABI 2015-02-23 22:52:10 +01:00
Martin
c64070c09e Win64 ABI hotfix 2014-10-21 23:02:36 +02:00
Martin
31e2c3eae9 Fix Win64 ABI wrt. passing structs > 64 bit 2014-10-21 21:52:23 +02:00
Alexey Prokhin
a6f358c59b Remove LINKintrisic 2014-07-10 18:10:46 +04:00
Alexey Prokhin
b819975c84 Eliminate the need for TypeFunction::funcdecl 2013-10-05 19:03:03 +04:00
kai
37558273c2 Remove SARRAYVALUE 2013-03-06 10:20:24 +01:00
kai
1e4a8fffc2 Remove DMDV1 and DMDV2. 2013-03-06 10:20:24 +01:00
David Nadlinger
3392f70a4e Move calling convention conversion into TargetABI.
The code is tightly coupled to TargetABI (the transformations
there only make sense knowing that the right CC is selected).
2013-02-26 00:20:45 +01:00
David Nadlinger
3662b06a88 Remove unused variable. 2013-02-13 00:07:52 +01:00
Martin
51b45675cc Support for Windows x64 ABI. 2013-02-10 22:08:35 +01:00