summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AVR/MCTargetDesc/AVRELFObjectWriter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/AVR/MCTargetDesc/AVRELFObjectWriter.cpp')
-rw-r--r--llvm/lib/Target/AVR/MCTargetDesc/AVRELFObjectWriter.cpp45
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:
OpenPOWER on IntegriCloud