From 364af81157a81cf34bb058a7d5b0185020e5164b Mon Sep 17 00:00:00 2001 From: Sanjiv Gupta Date: Mon, 18 Aug 2008 10:05:22 +0000 Subject: [PATCH] Allow targets to override description string. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54914 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Basic/TargetInfo.h | 6 ++---- lib/Basic/TargetInfo.cpp | 2 ++ lib/Basic/Targets.cpp | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/clang/Basic/TargetInfo.h b/include/clang/Basic/TargetInfo.h index 083aaf0e68..be81aa0b70 100644 --- a/include/clang/Basic/TargetInfo.h +++ b/include/clang/Basic/TargetInfo.h @@ -43,6 +43,7 @@ protected: unsigned char LongDoubleWidth, LongDoubleAlign; unsigned char LongWidth, LongAlign; unsigned char LongLongWidth, LongLongAlign; + char *DescriptionString; const llvm::fltSemantics *FloatFormat, *DoubleFormat, *LongDoubleFormat; @@ -197,10 +198,7 @@ public: } const char *getTargetDescription() const { - // FIXME ! - // Hard code darwin-x86 for now. - return "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:\ -32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"; + return DescriptionString; } struct GCCRegAlias { diff --git a/lib/Basic/TargetInfo.cpp b/lib/Basic/TargetInfo.cpp index 187e001358..6247afd588 100644 --- a/lib/Basic/TargetInfo.cpp +++ b/lib/Basic/TargetInfo.cpp @@ -37,6 +37,8 @@ TargetInfo::TargetInfo(const std::string &T) : Triple(T) { FloatFormat = &llvm::APFloat::IEEEsingle; DoubleFormat = &llvm::APFloat::IEEEdouble; LongDoubleFormat = &llvm::APFloat::IEEEdouble; + DescriptionString = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:\ +32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"; } // Out of line virtual dtor for TargetInfo. diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index d4ec04835c..3147aaa9bf 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -873,6 +873,7 @@ namespace { // little point on a platform with 8-bit loads. IntWidth = IntAlign = LongAlign = LongLongAlign = PointerWidth = 16; PointerAlign = 8; + DescriptionString = "e-p:16:8:8-i8:8:8-i16:8:8-i32:8:8"; } virtual uint64_t getPointerWidthV(unsigned AddrSpace) const { return 16; } virtual uint64_t getPointerAlignV(unsigned AddrSpace) const { return 8; } -- 2.40.0