[pkg-d-commits] [ldc] 01/14: 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.

Matthias Klumpp mak at moszumanska.debian.org
Sun Apr 23 22:35:54 UTC 2017


This is an automated email from the git hooks/post-receive script.

mak pushed a commit to annotated tag v0.17.2
in repository ldc.

commit 4a98534d7d6e2aad2166044e3821adbb682719e7
Author: Joakim <git at joakim.fea.st>
Date:   Tue Jun 14 14:36:23 2016 +0530

    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.
---
 gen/abi-arm.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gen/abi-arm.cpp b/gen/abi-arm.cpp
index 165b192..c302f4b 100644
--- a/gen/abi-arm.cpp
+++ b/gen/abi-arm.cpp
@@ -16,6 +16,7 @@
 #include "gen/abi.h"
 #include "gen/abi-generic.h"
 #include "gen/abi-arm.h"
+#include "llvm/Target/TargetMachine.h"
 
 struct ArmTargetABI : TargetABI {
   HFAToArray hfaToArray;
@@ -38,7 +39,9 @@ struct ArmTargetABI : TargetABI {
       return rt->ty == Tsarray || rt->ty == Tstruct;
 
     return rt->ty == Tsarray ||
-           (rt->ty == Tstruct && rt->size() > 4 && !isHFA((TypeStruct *)rt));
+           (rt->ty == Tstruct && rt->size() > 4 &&
+             (gTargetMachine->Options.FloatABIType == llvm::FloatABI::Soft ||
+             !isHFA((TypeStruct *)rt)));
   }
 
   bool passByVal(Type *t) override {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-d/ldc.git



More information about the pkg-d-commits mailing list