mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-02 10:16:06 +00:00
[mips][mips64r6] Define _MIPS_FPSET, __mips_fpr, and __mips_nan2008 correctly on MIPS32r6/MIPS64r6
Summary: This removes the need to pass -mnan=2008 explicitly to be able to compile the test-suite for MIPS32r6/MIPS64r6. Differential Revision: http://reviews.llvm.org/D4433 llvm-svn: 212619
This commit is contained in:
parent
cfbb71dfb6
commit
9500d2d751
@ -5297,6 +5297,14 @@ public:
|
||||
IsNan2008(false), IsSingleFloat(false), FloatABI(HardFloat),
|
||||
DspRev(NoDSP), HasMSA(false), HasFP64(false), ABI(ABIStr) {}
|
||||
|
||||
bool isNaN2008Default() const {
|
||||
return CPU == "mips32r6" || CPU == "mips64r6";
|
||||
}
|
||||
|
||||
bool isFP64Default() const {
|
||||
return CPU == "mips32r6" || ABI == "n32" || ABI == "n64" || ABI == "64";
|
||||
}
|
||||
|
||||
StringRef getABI() const override { return ABI; }
|
||||
bool setCPU(const std::string &Name) override {
|
||||
bool IsMips32 = getTriple().getArch() == llvm::Triple::mips ||
|
||||
@ -5467,11 +5475,11 @@ public:
|
||||
DiagnosticsEngine &Diags) override {
|
||||
IsMips16 = false;
|
||||
IsMicromips = false;
|
||||
IsNan2008 = false;
|
||||
IsNan2008 = isNaN2008Default();
|
||||
IsSingleFloat = false;
|
||||
FloatABI = HardFloat;
|
||||
DspRev = NoDSP;
|
||||
HasFP64 = ABI == "n32" || ABI == "n64" || ABI == "64";
|
||||
HasFP64 = isFP64Default();
|
||||
|
||||
for (std::vector<std::string>::iterator it = Features.begin(),
|
||||
ie = Features.end(); it != ie; ++it) {
|
||||
@ -5495,6 +5503,8 @@ public:
|
||||
HasFP64 = false;
|
||||
else if (*it == "+nan2008")
|
||||
IsNan2008 = true;
|
||||
else if (*it == "-nan2008")
|
||||
IsNan2008 = false;
|
||||
}
|
||||
|
||||
// Remove front-end specific options.
|
||||
|
@ -2864,6 +2864,16 @@
|
||||
// MIPS64-NOMFP64:#define _MIPS_FPSET 32
|
||||
// MIPS64-NOMFP64:#define __mips_fpr 32
|
||||
//
|
||||
// RUN: %clang_cc1 -target-cpu mips32r6 \
|
||||
// RUN: -E -dM -triple=mips-none-none < /dev/null \
|
||||
// RUN: | FileCheck -check-prefix MIPS-XXR6 %s
|
||||
// RUN: %clang_cc1 -target-cpu mips64r6 \
|
||||
// RUN: -E -dM -triple=mips64-none-none < /dev/null \
|
||||
// RUN: | FileCheck -check-prefix MIPS-XXR6 %s
|
||||
// MIPS-XXR6:#define _MIPS_FPSET 32
|
||||
// MIPS-XXR6:#define __mips_fpr 64
|
||||
// MIPS-XXR6:#define __mips_nan2008 1
|
||||
//
|
||||
// RUN: %clang_cc1 -E -dM -ffreestanding -triple=msp430-none-none < /dev/null | FileCheck -check-prefix MSP430 %s
|
||||
//
|
||||
// MSP430:#define MSP430 1
|
||||
|
Loading…
x
Reference in New Issue
Block a user