Martin
01e3e372fa
Win64 ABI fix: return non-POD structs via sret.
...
And get rid of obsolete integer rewrites on Win64 and PPC.
2015-02-28 22:51:51 +01:00
Martin
dbe801ddff
Refactor ABI rewrites.
2015-02-23 22:52:12 +01:00
Martin
3f02467d31
Improve some ABI rewrites.
...
Support structs/static arrays and basic types in X86_64_C_struct_rewrite.
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
51b45675cc
Support for Windows x64 ABI.
2013-02-10 22:08:35 +01:00
David Nadlinger
0a96aea868
Sort includes according to style guidelines:
...
1. Main include corresponding to .cpp file, if any.
2. DMD and LDC includes.
3. LLVM includes.
4. System includes.
Also updated a few include guards to match the default format.
2013-02-07 21:20:55 +01:00
David Nadlinger
9458911839
Added LLVM-style license headers to all our files.
2012-12-16 17:19:14 +01:00
David Nadlinger
62bfda0259
Fix #113 - promotion of small static array arguments to registers.
2012-06-06 22:55:59 +02:00
Alexey Prokhin
629f13929e
WIP: port to llvm 3.0
2011-10-25 15:43:39 +04:00
Alexey Prokhin
7f0ecdf7b9
More X86_64 ABI
2011-03-26 19:30:17 +03:00
Alexey Prokhin
70aee84c70
Fix passing of a padded struct to a function
2011-02-26 20:16:01 +03:00
Alexey Prokhin
20e6c65200
To follow D ABI, swap real and imaginary parts of a complex return value on X86_64
...
TODO: should we disable this transformation for ldc1 in order to keep its ABI unchanged?
2011-02-26 13:04:09 +03:00
Alexey Prokhin
53fe662957
Fix a bunch of incorrect assert
2011-02-25 22:29:34 +03:00
Frits van Bommel
541f3723cd
Intrinsics shouldn't see struct padding, so use a special TargetABI for them
...
that removes it.
This unbreaks the `llvm_*_with_overflow` intrinsics.
2009-05-16 13:06:49 +02:00