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