Author: dsanders Date: Wed Jul 9 08:56:23 2014 New Revision: 212619 URL: http://llvm.org/viewvc/llvm-project?rev=212619&view=rev Log: [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 Modified: cfe/trunk/lib/Basic/Targets.cpp cfe/trunk/test/Preprocessor/init.c Modified: cfe/trunk/lib/Basic/Targets.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=212619&r1=212618&r2=212619&view=diff ============================================================================== --- cfe/trunk/lib/Basic/Targets.cpp (original) +++ cfe/trunk/lib/Basic/Targets.cpp Wed Jul 9 08:56:23 2014 @@ -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. Modified: cfe/trunk/test/Preprocessor/init.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/init.c?rev=212619&r1=212618&r2=212619&view=diff ============================================================================== --- cfe/trunk/test/Preprocessor/init.c (original) +++ cfe/trunk/test/Preprocessor/init.c Wed Jul 9 08:56:23 2014 @@ -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 _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
