Martin Kinkelin
4a23399236
Aim for consistent #includes (order + dir prefix)
...
I surely missed a few.
2018-10-20 16:19:46 +02:00
Martin Kinkelin
7776c4081b
Upgrade frontend & libs to v2.083.0-beta.1
2018-10-20 16:19:46 +02:00
Martin Kinkelin
a133ffad56
MSVC: Port Rainer's upstream extern(C++) method ABI fixes
...
From https://github.com/dlang/dmd/pull/8330 .
2018-06-19 20:13:02 +02:00
Martin Kinkelin
3ca43c51b8
Use IndirectByvalRewrite for non-POD args and extern(C++) on Posix ( #2728 )
...
Fixing one aspect of issue #2702 ; not tackling the different destruction
rules yet.
2018-06-19 20:09:35 +02:00
Martin Kinkelin
93515eb32e
Merge pull request #2719 from kinke/stable
...
Upgrade to upstream `stable`
2018-06-01 20:42:44 +02:00
Martin Kinkelin
43296da0a2
Upgrade to upstream stable
(0c4d5bb5)
2018-05-31 17:22:09 +02:00
Martin Kinkelin
29d609d63d
Refactoring: Introduce TargetABI::reverseExplicitParams()
2018-05-30 22:42:00 +02:00
Martin Kinkelin
92913d4c08
Store front-end D function type in IrFuncTy
...
As we do for IrFuncTyArg. We'll need access to the front-end linkage for
the Posix ABIs too in order to implement indirect-by-value passing of
non-PODs for `extern(C++)`.
2018-05-30 22:41:48 +02:00
Martin Kinkelin
8faab8b684
Refactoring: Add ABIRewrite::applyTo() for convenience
...
Allowing the ABIRewrite to adapt the IrFuncTyArg appropriately and
reducing code duplication.
2018-05-26 22:09:37 +02:00
Martin
17a2c8ace2
Attempt to fix PPC64-LE, MIPS64 and ARM/AArch64 ABIs
...
Most importantly, make sure sret is enforced for all non-POD structs as
done for all other ABIs, and don't treat extern(D) any different from the
C ABI wrt. return values anymore.
Also reduce code duplication via common TargetABI patterns.
2016-11-29 22:32:14 +01:00
Joakim
5eef53e994
Differentiate between the soft and hard floating-point ABIs for ARM, to decide
...
whether to return the address of structs with floating-point numbers in
general-purpose registers.
2016-08-12 13:40:18 +05:30
Martin
82005009e7
Refactor and fix intrinsics for variadic functions
...
I.e., va_start(), va_copy() and va_arg().
2016-06-28 22:40:14 +02:00
Martin
dd21a805ee
Trim signature of method ABIRewrite::type()
2016-05-29 11:04:29 +02:00
David Nadlinger
219758756c
Merge branch 'merge-2.071'
2016-05-06 19:24:48 +01:00
Kai Nacke
e55823fd09
Merge remote-tracking branch 'origin/ltsmaster'
2016-04-23 11:19:20 +02:00
Dan Olson
deb3847f75
ARM AAPCS: struct rewrite with 8-byte alignment
...
structs with 8-byte alignment or greater needs to be rewritten as
array of i64 to be compatible with the AAPCS C ABI.
2016-04-19 05:16:38 +00:00
Rainer Schuetze
c74d4c2231
Merge remote-tracking branch 'remotes/origin/master' into merge-2.071
...
# Conflicts:
# runtime/druntime
# tests/d2/dmd-testsuite
2016-04-17 21:24:56 +02:00
Dan Olson
cd216538f9
Merge branch 'master' into objc-wip
2016-04-08 22:38:39 -07:00
David Nadlinger
9f998a398d
Initial merge of upstream v2.071.0-b2
...
Notably, the glue layer side of the changed multiple interface
inheritance layout (DMD a54e89d) has not been implemented yet.
This corresponds to DMD commit 3f6a763c0589dd03c1c206eafd434b593702564e.
2016-04-03 15:15:14 +01:00
Dan Olson
462b089492
Move Objective-C runtime choice to TargetABI
2016-03-23 23:54:49 -07:00
Kai Nacke
0924a8c233
Fix compile errors
2016-03-08 20:36:07 +01:00
Dan Olson
ae99d9c713
Support ARM AAPCS style va_list for C++ mangling
...
AAPCS defines va_list as a std::__va_list struct, which is needed to
interface with C++.
2016-03-07 16:59:13 +00:00
Dan Olson
ad1bb14bd6
ARM: Re-reverse parameter order for extern(D)
...
Follow in footsteps of 5e3785159f
,
allowing opCmp to behave as expected.
This allows runnable/test12.d and test5854.d to pass.
2016-02-25 19:17:02 +00:00
Dan Olson
9751f3f20f
ARM: Use byval attr for types > 64-bytes
...
Pass values > 64-bytes with byval attribute. This fixes a codegen
problem and was discovered by examining what clang does. This allows
runnable/mars1.d to compile and run with -O3, same for std.datetime
and std.random unittests.
2016-02-25 19:11:41 +00:00
Dan Olson
b9b4564d22
Implement ARM AAPCS ABI
...
This is the bulk of the AAPCS (Procedure Call Standard for the ARM
Architecture) used for C interop. This will be used for both arm and
thumb target triples. The extern(D) ABI tries to follows the AAPCS with
a few exceptions.
2016-02-05 09:04:09 -08:00