summaryrefslogtreecommitdiffstats
path: root/lld
diff options
context:
space:
mode:
authorSimon Atanasyan <simon@atanasyan.com>2015-08-28 21:39:13 +0000
committerSimon Atanasyan <simon@atanasyan.com>2015-08-28 21:39:13 +0000
commit9638d7d1624326f9cd33e15be7ec4ba7599fdbfa (patch)
treec24378497ddee6a75b1b8c28cfb4f63a797b25a7 /lld
parentf12120cfe93018513743a1ebc0125ce688bc5ea0 (diff)
downloadbcm5719-llvm-9638d7d1624326f9cd33e15be7ec4ba7599fdbfa.tar.gz
bcm5719-llvm-9638d7d1624326f9cd33e15be7ec4ba7599fdbfa.zip
[Mips] Support two more MIPS linking emulation options elf32btsmipn32/elf32ltsmipn32
llvm-svn: 246336
Diffstat (limited to 'lld')
-rw-r--r--lld/lib/Driver/GnuLdDriver.cpp4
-rw-r--r--lld/unittests/DriverTests/GnuLdDriverTest.cpp6
2 files changed, 8 insertions, 2 deletions
diff --git a/lld/lib/Driver/GnuLdDriver.cpp b/lld/lib/Driver/GnuLdDriver.cpp
index c2626de8500..b521e8928cd 100644
--- a/lld/lib/Driver/GnuLdDriver.cpp
+++ b/lld/lib/Driver/GnuLdDriver.cpp
@@ -169,8 +169,8 @@ getArchType(const llvm::Triple &triple, StringRef value) {
case llvm::Triple::mips64:
case llvm::Triple::mips64el:
return llvm::StringSwitch<llvm::Optional<llvm::Triple::ArchType>>(value)
- .Case("elf32btsmip", llvm::Triple::mips)
- .Case("elf32ltsmip", llvm::Triple::mipsel)
+ .Cases("elf32btsmip", "elf32btsmipn32", llvm::Triple::mips)
+ .Cases("elf32ltsmip", "elf32ltsmipn32", llvm::Triple::mipsel)
.Case("elf64btsmip", llvm::Triple::mips64)
.Case("elf64ltsmip", llvm::Triple::mips64el)
.Default(llvm::None);
diff --git a/lld/unittests/DriverTests/GnuLdDriverTest.cpp b/lld/unittests/DriverTests/GnuLdDriverTest.cpp
index 102dcc0e4b8..13d20a4411a 100644
--- a/lld/unittests/DriverTests/GnuLdDriverTest.cpp
+++ b/lld/unittests/DriverTests/GnuLdDriverTest.cpp
@@ -207,6 +207,12 @@ TEST_F(GnuLdParserTest, Emulation) {
EXPECT_TRUE(
parse("mips64el-linux-gnu-ld", "a.o", "-m", "elf32btsmip", nullptr));
EXPECT_EQ(Triple::mips, _ctx->getTriple().getArch());
+ EXPECT_TRUE(
+ parse("mipsel-linux-gnu-ld", "a.o", "-m", "elf32btsmipn32", nullptr));
+ EXPECT_EQ(Triple::mips, _ctx->getTriple().getArch());
+ EXPECT_TRUE(
+ parse("mips-linux-gnu-ld", "a.o", "-m", "elf32ltsmipn32", nullptr));
+ EXPECT_EQ(Triple::mipsel, _ctx->getTriple().getArch());
}
// Linker script
OpenPOWER on IntegriCloud