diff options
Diffstat (limited to 'llvm/lib/Target/AVR/MCTargetDesc/AVRELFObjectWriter.cpp')
-rw-r--r-- | llvm/lib/Target/AVR/MCTargetDesc/AVRELFObjectWriter.cpp | 45 |
1 files changed, 6 insertions, 39 deletions
diff --git a/llvm/lib/Target/AVR/MCTargetDesc/AVRELFObjectWriter.cpp b/llvm/lib/Target/AVR/MCTargetDesc/AVRELFObjectWriter.cpp index 412f66fbcf2..25da75e63fe 100644 --- a/llvm/lib/Target/AVR/MCTargetDesc/AVRELFObjectWriter.cpp +++ b/llvm/lib/Target/AVR/MCTargetDesc/AVRELFObjectWriter.cpp @@ -40,43 +40,12 @@ unsigned AVRELFObjectWriter::getRelocType(MCContext &Ctx, const MCValue &Target, const MCFixup &Fixup, bool IsPCRel) const { - MCSymbolRefExpr::VariantKind Modifier = Target.getAccessVariant(); switch ((unsigned) Fixup.getKind()) { case FK_Data_1: - switch (Modifier) { - default: - llvm_unreachable("Unsupported Modifier"); - case MCSymbolRefExpr::VK_None: - return ELF::R_AVR_8; - case MCSymbolRefExpr::VK_AVR_DIFF8: - return ELF::R_AVR_DIFF8; - case MCSymbolRefExpr::VK_AVR_LO8: - return ELF::R_AVR_8_LO8; - case MCSymbolRefExpr::VK_AVR_HI8: - return ELF::R_AVR_8_HI8; - case MCSymbolRefExpr::VK_AVR_HLO8: - return ELF::R_AVR_8_HLO8; - } case FK_Data_4: - switch (Modifier) { - default: - llvm_unreachable("Unsupported Modifier"); - case MCSymbolRefExpr::VK_None: - return ELF::R_AVR_32; - case MCSymbolRefExpr::VK_AVR_DIFF32: - return ELF::R_AVR_DIFF32; - } + llvm_unreachable("unsupported relocation type"); case FK_Data_2: - switch (Modifier) { - default: - llvm_unreachable("Unsupported Modifier"); - case MCSymbolRefExpr::VK_None: - return ELF::R_AVR_16; - case MCSymbolRefExpr::VK_AVR_NONE: - return ELF::R_AVR_16_PM; - case MCSymbolRefExpr::VK_AVR_DIFF16: - return ELF::R_AVR_DIFF16; - } + return ELF::R_AVR_16_PM; case AVR::fixup_32: return ELF::R_AVR_32; case AVR::fixup_7_pcrel: @@ -135,12 +104,10 @@ unsigned AVRELFObjectWriter::getRelocType(MCContext &Ctx, return ELF::R_AVR_8_HI8; case AVR::fixup_8_hlo8: return ELF::R_AVR_8_HLO8; - case AVR::fixup_diff8: - return ELF::R_AVR_DIFF8; - case AVR::fixup_diff16: - return ELF::R_AVR_DIFF16; - case AVR::fixup_diff32: - return ELF::R_AVR_DIFF32; + case AVR::fixup_sym_diff: + return ELF::R_AVR_SYM_DIFF; + case AVR::fixup_16_ldst: + return ELF::R_AVR_16_LDST; case AVR::fixup_lds_sts_16: return ELF::R_AVR_LDS_STS_16; case AVR::fixup_port6: |