phosek created this revision.
phosek added reviewers: mcgrathr, jakehehrlich.
Herald added subscribers: cfe-commits, kristof.beyls, javed.absar.
Herald added a project: clang.

This change unifies the long double format between x86_64 and aarch64
targets making it easier to write code that's independent of the target.


Repository:
  rC Clang

https://reviews.llvm.org/D64603

Files:
  clang/lib/Basic/Targets.cpp
  clang/lib/Basic/Targets/X86.h


Index: clang/lib/Basic/Targets/X86.h
===================================================================
--- clang/lib/Basic/Targets/X86.h
+++ clang/lib/Basic/Targets/X86.h
@@ -848,6 +848,18 @@
 
   const char *getLongDoubleMangling() const override { return "g"; }
 };
+
+// x86_64 Fuchsia target
+class LLVM_LIBRARY_VISIBILITY FuchsiaX86_64TargetInfo
+    : public FuchsiaTargetInfo<X86_64TargetInfo> {
+public:
+  FuchsiaX86_64TargetInfo(const llvm::Triple &Triple, const TargetOptions 
&Opts)
+      : FuchsiaTargetInfo<X86_64TargetInfo>(Triple, Opts) {
+    LongDoubleFormat = &llvm::APFloat::IEEEquad();
+  }
+};
+
 } // namespace targets
 } // namespace clang
+
 #endif // LLVM_CLANG_LIB_BASIC_TARGETS_X86_H
Index: clang/lib/Basic/Targets.cpp
===================================================================
--- clang/lib/Basic/Targets.cpp
+++ clang/lib/Basic/Targets.cpp
@@ -517,7 +517,7 @@
     case llvm::Triple::FreeBSD:
       return new FreeBSDTargetInfo<X86_64TargetInfo>(Triple, Opts);
     case llvm::Triple::Fuchsia:
-      return new FuchsiaTargetInfo<X86_64TargetInfo>(Triple, Opts);
+      return new FuchsiaX86_64TargetInfo(Triple, Opts);
     case llvm::Triple::KFreeBSD:
       return new KFreeBSDTargetInfo<X86_64TargetInfo>(Triple, Opts);
     case llvm::Triple::Solaris:


Index: clang/lib/Basic/Targets/X86.h
===================================================================
--- clang/lib/Basic/Targets/X86.h
+++ clang/lib/Basic/Targets/X86.h
@@ -848,6 +848,18 @@
 
   const char *getLongDoubleMangling() const override { return "g"; }
 };
+
+// x86_64 Fuchsia target
+class LLVM_LIBRARY_VISIBILITY FuchsiaX86_64TargetInfo
+    : public FuchsiaTargetInfo<X86_64TargetInfo> {
+public:
+  FuchsiaX86_64TargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
+      : FuchsiaTargetInfo<X86_64TargetInfo>(Triple, Opts) {
+    LongDoubleFormat = &llvm::APFloat::IEEEquad();
+  }
+};
+
 } // namespace targets
 } // namespace clang
+
 #endif // LLVM_CLANG_LIB_BASIC_TARGETS_X86_H
Index: clang/lib/Basic/Targets.cpp
===================================================================
--- clang/lib/Basic/Targets.cpp
+++ clang/lib/Basic/Targets.cpp
@@ -517,7 +517,7 @@
     case llvm::Triple::FreeBSD:
       return new FreeBSDTargetInfo<X86_64TargetInfo>(Triple, Opts);
     case llvm::Triple::Fuchsia:
-      return new FuchsiaTargetInfo<X86_64TargetInfo>(Triple, Opts);
+      return new FuchsiaX86_64TargetInfo(Triple, Opts);
     case llvm::Triple::KFreeBSD:
       return new KFreeBSDTargetInfo<X86_64TargetInfo>(Triple, Opts);
     case llvm::Triple::Solaris:
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D64603: [Target] Us... Petr Hosek via Phabricator via cfe-commits

Reply via email to