summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/patches/patch-r262262-clang-r199399-sparc.diff
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/patches/patch-r262262-clang-r199399-sparc.diff')
-rw-r--r--contrib/llvm/patches/patch-r262262-clang-r199399-sparc.diff37
1 files changed, 0 insertions, 37 deletions
diff --git a/contrib/llvm/patches/patch-r262262-clang-r199399-sparc.diff b/contrib/llvm/patches/patch-r262262-clang-r199399-sparc.diff
deleted file mode 100644
index 4a22be2..0000000
--- a/contrib/llvm/patches/patch-r262262-clang-r199399-sparc.diff
+++ /dev/null
@@ -1,37 +0,0 @@
-Pull in r199399 from upstream clang trunk (by Jakob Stoklund Olesen):
-
- SPARCv9 implements long double as an IEEE quad.
-
-Introduced here: http://svnweb.freebsd.org/changeset/base/262262
-
-Index: tools/clang/test/CodeGen/sparcv9-abi.c
-===================================================================
---- tools/clang/test/CodeGen/sparcv9-abi.c
-+++ tools/clang/test/CodeGen/sparcv9-abi.c
-@@ -18,6 +18,9 @@ long long f_int_3(long long x) { return x; }
- // CHECK-LABEL: define signext i8 @f_int_4(i8 signext %x)
- char f_int_4(char x) { return x; }
-
-+// CHECK-LABEL: define fp128 @f_ld(fp128 %x)
-+long double f_ld(long double x) { return x; }
-+
- // Small structs are passed in registers.
- struct small {
- int *a, *b;
-Index: tools/clang/lib/Basic/Targets.cpp
-===================================================================
---- tools/clang/lib/Basic/Targets.cpp
-+++ tools/clang/lib/Basic/Targets.cpp
-@@ -4529,6 +4529,12 @@ class SparcV9TargetInfo : public SparcTargetInfo {
- UIntMaxType = UnsignedLong;
- }
- Int64Type = IntMaxType;
-+
-+ // The SPARCv8 System V ABI has long double 128-bits in size, but 64-bit
-+ // aligned. The SPARCv9 SCD 2.4.1 says 16-byte aligned.
-+ LongDoubleWidth = 128;
-+ LongDoubleAlign = 128;
-+ LongDoubleFormat = &llvm::APFloat::IEEEquad;
- }
-
- virtual void getTargetDefines(const LangOptions &Opts,
OpenPOWER on IntegriCloud