summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp')
-rw-r--r--llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
index 469e598f4b3..5c78799996f 100644
--- a/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
+++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
@@ -657,12 +657,10 @@ bool MipsELFObjectWriter::needsRelocateWithSymbol(const MCSymbol &Sym,
}
MCObjectWriter *llvm::createMipsELFObjectWriter(raw_pwrite_stream &OS,
- const Triple &TT) {
+ const Triple &TT, bool IsN32) {
uint8_t OSABI = MCELFObjectTargetWriter::getOSABI(TT.getOS());
- // FIXME: We need to check an actual ABI. mips64/mips64el do not
- // always imply the N64 ABI and RELA relocation's format.
- bool IsN64 = TT.isArch64Bit();
- bool HasRelocationAddend = IsN64;
+ bool IsN64 = TT.isArch64Bit() && !IsN32;
+ bool HasRelocationAddend = TT.isArch64Bit();
auto *MOTW = new MipsELFObjectWriter(OSABI, HasRelocationAddend, IsN64,
TT.isLittleEndian());
return createELFObjectWriter(MOTW, OS, TT.isLittleEndian());
OpenPOWER on IntegriCloud