mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-02 19:24:25 +00:00
Add relocation types for Hexagon processor; patch by Sidney Manning <sidneym@codeaurora.org>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159081 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -1414,6 +1414,98 @@ error_code ELFObjectFile<target_endianness, is64Bits>
|
||||
res = "Unknown";
|
||||
}
|
||||
break;
|
||||
case ELF::EM_HEXAGON:
|
||||
switch (type) {
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_NONE);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B22_PCREL);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B15_PCREL);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B7_PCREL);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_LO16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_HI16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_32);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_8);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_0);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_1);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_2);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_3);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_HL16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B13_PCREL);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B9_PCREL);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B32_PCREL_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_32_6_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B22_PCREL_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B15_PCREL_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B13_PCREL_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B9_PCREL_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B7_PCREL_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_16_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_12_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_11_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_10_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_9_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_8_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_7_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_6_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_32_PCREL);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_COPY);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GLOB_DAT);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_JMP_SLOT);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_RELATIVE);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_PLT_B22_PCREL);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_LO16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_HI16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_32);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_LO16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_HI16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_32);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPMOD_32);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_LO16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_HI16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_32);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_PLT_B22_PCREL);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_LO16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_HI16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_32);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_LO16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_HI16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_32);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_LO16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_HI16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_32);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_LO16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_HI16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_32);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_6_PCREL_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_32_6_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_16_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_11_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_32_6_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_16_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_11_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_32_6_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_16_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_11_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_32_6_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_16_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_11_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_32_6_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_16_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_32_6_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_16_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_11_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_32_6_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_16_X);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_11_X);
|
||||
default:
|
||||
res = "Unknown";
|
||||
}
|
||||
break;
|
||||
default:
|
||||
res = "Unknown";
|
||||
}
|
||||
@ -1489,6 +1581,9 @@ error_code ELFObjectFile<target_endianness, is64Bits>
|
||||
res = "Unknown";
|
||||
}
|
||||
break;
|
||||
case ELF::EM_HEXAGON:
|
||||
res = symname;
|
||||
break;
|
||||
default:
|
||||
res = "Unknown";
|
||||
}
|
||||
@ -1888,6 +1983,8 @@ StringRef ELFObjectFile<target_endianness, is64Bits>
|
||||
return "ELF32-x86-64";
|
||||
case ELF::EM_ARM:
|
||||
return "ELF32-arm";
|
||||
case ELF::EM_HEXAGON:
|
||||
return "ELF32-hexagon";
|
||||
default:
|
||||
return "ELF32-unknown";
|
||||
}
|
||||
@ -1915,6 +2012,8 @@ unsigned ELFObjectFile<target_endianness, is64Bits>::getArch() const {
|
||||
return Triple::x86_64;
|
||||
case ELF::EM_ARM:
|
||||
return Triple::arm;
|
||||
case ELF::EM_HEXAGON:
|
||||
return Triple::hexagon;
|
||||
default:
|
||||
return Triple::UnknownArch;
|
||||
}
|
||||
|
Reference in New Issue
Block a user