Index: include/llvm/ADT/Triple.h =================================================================== --- include/llvm/ADT/Triple.h +++ include/llvm/ADT/Triple.h @@ -59,6 +59,7 @@ mips64, // MIPS64: mips64 mips64el, // MIPS64EL: mips64el msp430, // MSP430: msp430 + nds32, // NDS32: nds32 32-Bit ppc, // PPC: powerpc ppc64, // PPC64: powerpc64, ppu ppc64le, // PPC64LE: powerpc64le Index: lib/Support/Triple.cpp =================================================================== --- lib/Support/Triple.cpp +++ lib/Support/Triple.cpp @@ -38,6 +38,7 @@ case ppc64le: return "powerpc64le"; case ppc: return "powerpc"; case r600: return "r600"; + case nds32: return "nds32"; case amdgcn: return "amdgcn"; case riscv32: return "riscv32"; case riscv64: return "riscv64"; @@ -89,6 +90,8 @@ case avr: return "avr"; + case nds32: return "nds32"; + case ppc64: case ppc64le: case ppc: return "ppc"; @@ -266,6 +269,7 @@ .Case("ppc", ppc) .Case("ppc64le", ppc64le) .Case("r600", r600) + .Case("nds32", nds32) .Case("amdgcn", amdgcn) .Case("riscv32", riscv32) .Case("riscv64", riscv64) @@ -395,6 +399,7 @@ .Case("tce", Triple::tce) .Case("tcele", Triple::tcele) .Case("xcore", Triple::xcore) + .Cases("nds32", "nds32le", Triple::nds32) .Case("nvptx", Triple::nvptx) .Case("nvptx64", Triple::nvptx64) .Case("le32", Triple::le32) @@ -621,6 +626,7 @@ case Triple::mips64el: case Triple::mipsel: case Triple::msp430: + case Triple::nds32: case Triple::nvptx: case Triple::nvptx64: case Triple::ppc64le: @@ -1155,6 +1161,7 @@ case llvm::Triple::mips: case llvm::Triple::mipsel: case llvm::Triple::nvptx: + case llvm::Triple::nds32: case llvm::Triple::ppc: case llvm::Triple::r600: case llvm::Triple::riscv32: @@ -1250,6 +1257,7 @@ case Triple::x86: case Triple::xcore: case Triple::lanai: + case Triple::nds32: case Triple::shave: case Triple::wasm32: case Triple::renderscript32: @@ -1284,6 +1292,7 @@ case Triple::kalimba: case Triple::lanai: case Triple::msp430: + case Triple::nds32: case Triple::r600: case Triple::tce: case Triple::tcele: @@ -1357,6 +1366,7 @@ case Triple::msp430: case Triple::nvptx64: case Triple::nvptx: + case Triple::nds32: case Triple::r600: case Triple::riscv32: case Triple::riscv64: @@ -1441,6 +1451,7 @@ case Triple::mips64el: case Triple::mipsel: case Triple::msp430: + case Triple::nds32: case Triple::nvptx64: case Triple::nvptx: case Triple::ppc64le: Index: unittests/ADT/TripleTest.cpp =================================================================== --- unittests/ADT/TripleTest.cpp +++ unittests/ADT/TripleTest.cpp @@ -248,6 +248,18 @@ EXPECT_EQ(Triple::UnknownOS, T.getOS()); EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment()); + T = Triple("nds32-unknown-unknown"); + EXPECT_EQ(Triple::nds32, T.getArch()); + EXPECT_EQ(Triple::UnknownVendor, T.getVendor()); + EXPECT_EQ(Triple::UnknownOS, T.getOS()); + EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment()); + + T = Triple("nds32"); + EXPECT_EQ(Triple::nds32, T.getArch()); + EXPECT_EQ(Triple::UnknownVendor, T.getVendor()); + EXPECT_EQ(Triple::UnknownOS, T.getOS()); + EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment()); + T = Triple("amdgcn-mesa-mesa3d"); EXPECT_EQ(Triple::amdgcn, T.getArch()); EXPECT_EQ(Triple::Mesa, T.getVendor()); @@ -573,6 +585,11 @@ EXPECT_FALSE(T.isArch32Bit()); EXPECT_FALSE(T.isArch64Bit()); + T.setArch(Triple::nds32); + EXPECT_FALSE(T.isArch16Bit()); + EXPECT_TRUE(T.isArch32Bit()); + EXPECT_FALSE(T.isArch64Bit()); + T.setArch(Triple::lanai); EXPECT_FALSE(T.isArch16Bit()); EXPECT_TRUE(T.isArch32Bit()); @@ -606,6 +623,10 @@ EXPECT_EQ(Triple::mipsel, T.get32BitArchVariant().getArch()); EXPECT_EQ(Triple::mips64el, T.get64BitArchVariant().getArch()); + T.setArch(Triple::nds32); + EXPECT_EQ(Triple::UnknownArch, T.getBigEndianArchVariant().getArch()); + EXPECT_EQ(Triple::nds32, T.getLittleEndianArchVariant().getArch()); + T.setArch(Triple::ppc); EXPECT_EQ(Triple::ppc, T.get32BitArchVariant().getArch()); EXPECT_EQ(Triple::ppc64, T.get64BitArchVariant().getArch());