diff options
Diffstat (limited to 'llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp')
| -rw-r--r-- | llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp | 27 |
1 files changed, 2 insertions, 25 deletions
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp index 9f7dfdf62482..75a9f2f5c80e 100644 --- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp +++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp @@ -88,8 +88,6 @@ public: uint64_t Value, bool IsResolved, const MCSubtargetInfo *STI) const override; - bool mayNeedRelaxation(const MCInst &Inst, - const MCSubtargetInfo &STI) const override; bool fixupNeedsRelaxation(const MCFixup &Fixup, uint64_t Value, const MCRelaxableFragment *DF, const MCAsmLayout &Layout) const override; @@ -156,19 +154,6 @@ static unsigned AdrImmBits(unsigned Value) { return (hi19 << 5) | (lo2 << 29); } -static bool valueFitsIntoFixupKind(unsigned Kind, uint64_t Value) { - unsigned NumBits; - switch(Kind) { - case FK_Data_1: NumBits = 8; break; - case FK_Data_2: NumBits = 16; break; - case FK_Data_4: NumBits = 32; break; - case FK_Data_8: NumBits = 64; break; - default: return true; - } - return isUIntN(NumBits, Value) || - isIntN(NumBits, static_cast<int64_t>(Value)); -} - static uint64_t adjustFixupValue(const MCFixup &Fixup, const MCValue &Target, uint64_t Value, MCContext &Ctx, const Triple &TheTriple, bool IsResolved) { @@ -343,9 +328,6 @@ static uint64_t adjustFixupValue(const MCFixup &Fixup, const MCValue &Target, case FK_Data_2: case FK_Data_4: case FK_Data_8: - if (!valueFitsIntoFixupKind(Fixup.getTargetKind(), Value)) - Ctx.reportError(Fixup.getLoc(), "fixup value too large for data type!"); - LLVM_FALLTHROUGH; case FK_SecRel_2: case FK_SecRel_4: return Value; @@ -463,11 +445,6 @@ void AArch64AsmBackend::applyFixup(const MCAssembler &Asm, const MCFixup &Fixup, } } -bool AArch64AsmBackend::mayNeedRelaxation(const MCInst &Inst, - const MCSubtargetInfo &STI) const { - return false; -} - bool AArch64AsmBackend::fixupNeedsRelaxation(const MCFixup &Fixup, uint64_t Value, const MCRelaxableFragment *DF, @@ -781,7 +758,7 @@ MCAsmBackend *llvm::createAArch64leAsmBackend(const Target &T, assert(TheTriple.isOSBinFormatELF() && "Invalid target"); uint8_t OSABI = MCELFObjectTargetWriter::getOSABI(TheTriple.getOS()); - bool IsILP32 = Options.getABIName() == "ilp32"; + bool IsILP32 = STI.getTargetTriple().getEnvironment() == Triple::GNUILP32; return new ELFAArch64AsmBackend(T, TheTriple, OSABI, /*IsLittleEndian=*/true, IsILP32); } @@ -794,7 +771,7 @@ MCAsmBackend *llvm::createAArch64beAsmBackend(const Target &T, assert(TheTriple.isOSBinFormatELF() && "Big endian is only supported for ELF targets!"); uint8_t OSABI = MCELFObjectTargetWriter::getOSABI(TheTriple.getOS()); - bool IsILP32 = Options.getABIName() == "ilp32"; + bool IsILP32 = STI.getTargetTriple().getEnvironment() == Triple::GNUILP32; return new ELFAArch64AsmBackend(T, TheTriple, OSABI, /*IsLittleEndian=*/false, IsILP32); } |
