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