summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp
diff options
context:
space:
mode:
authorSimon Atanasyan <simon@atanasyan.com>2015-07-13 09:11:35 +0000
committerSimon Atanasyan <simon@atanasyan.com>2015-07-13 09:11:35 +0000
commitb34a080701942dc6e9ab3dac7e9eb220022bad46 (patch)
treec212d81aff47096b24d8fb535e13a565fecf2241 /lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp
parentf8f780ccc5ad5f26e6473ffbbca71b4d7f98d255 (diff)
downloadbcm5719-llvm-b34a080701942dc6e9ab3dac7e9eb220022bad46.tar.gz
bcm5719-llvm-b34a080701942dc6e9ab3dac7e9eb220022bad46.zip
[Mips] Support MIPS big-endian 32/64-bits targets
llvm-svn: 242014
Diffstat (limited to 'lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp')
-rw-r--r--lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp b/lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp
index 0124b7b737c..b905fa5f3ab 100644
--- a/lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp
+++ b/lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp
@@ -18,7 +18,9 @@ using namespace lld::elf;
std::unique_ptr<ELFLinkingContext>
elf::createMipsLinkingContext(llvm::Triple triple) {
- if (triple.getArch() == llvm::Triple::mipsel ||
+ if (triple.getArch() == llvm::Triple::mips ||
+ triple.getArch() == llvm::Triple::mipsel ||
+ triple.getArch() == llvm::Triple::mips64 ||
triple.getArch() == llvm::Triple::mips64el)
return llvm::make_unique<MipsLinkingContext>(triple);
return nullptr;
@@ -27,8 +29,12 @@ elf::createMipsLinkingContext(llvm::Triple triple) {
static std::unique_ptr<TargetHandler> createTarget(llvm::Triple triple,
MipsLinkingContext &ctx) {
switch (triple.getArch()) {
+ case llvm::Triple::mips:
+ return llvm::make_unique<MipsTargetHandler<ELF32BE>>(ctx);
case llvm::Triple::mipsel:
return llvm::make_unique<MipsTargetHandler<ELF32LE>>(ctx);
+ case llvm::Triple::mips64:
+ return llvm::make_unique<MipsTargetHandler<ELF64BE>>(ctx);
case llvm::Triple::mips64el:
return llvm::make_unique<MipsTargetHandler<ELF64LE>>(ctx);
default:
OpenPOWER on IntegriCloud