forked from OSchip/llvm-project
SPARCv9 implements long double as an IEEE quad.
llvm-svn: 199399
This commit is contained in:
parent
5a1a81841a
commit
497332c05f
|
@ -4532,6 +4532,12 @@ public:
|
||||||
UIntMaxType = UnsignedLong;
|
UIntMaxType = UnsignedLong;
|
||||||
}
|
}
|
||||||
Int64Type = IntMaxType;
|
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,
|
virtual void getTargetDefines(const LangOptions &Opts,
|
||||||
|
|
|
@ -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)
|
// CHECK-LABEL: define signext i8 @f_int_4(i8 signext %x)
|
||||||
char f_int_4(char x) { return 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.
|
// Small structs are passed in registers.
|
||||||
struct small {
|
struct small {
|
||||||
int *a, *b;
|
int *a, *b;
|
||||||
|
|
Loading…
Reference in New Issue