From 0b7f842592b63ce069c19bab360d5a28097ab0d8 Mon Sep 17 00:00:00 2001 From: Will Newton Date: Fri, 5 Dec 2014 12:43:26 +0000 Subject: [PATCH] ELF: Use ELF reloc .def files to reduce duplication Tested with check-lld with no regressions. llvm-svn: 223462 --- .../ELF/AArch64/AArch64TargetHandler.cpp | 90 ++------------------ .../ELF/Hexagon/HexagonTargetHandler.cpp | 97 ++-------------------- .../ReaderWriter/ELF/Mips/MipsTargetHandler.cpp | 28 ++----- lld/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp | 58 ++----------- lld/lib/ReaderWriter/ELF/X86/X86TargetHandler.cpp | 46 ++-------- .../ELF/X86_64/X86_64TargetHandler.cpp | 43 ++-------- 6 files changed, 32 insertions(+), 330 deletions(-) diff --git a/lld/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.cpp b/lld/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.cpp index a79cf1d..8b50a5a 100644 --- a/lld/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.cpp +++ b/lld/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.cpp @@ -43,87 +43,11 @@ std::unique_ptr AArch64TargetHandler::getWriter() { } } +#define ELF_RELOC(name, value) LLD_KIND_STRING_ENTRY(name), + const Registry::KindStrings AArch64TargetHandler::kindStrings[] = { - LLD_KIND_STRING_ENTRY(R_AARCH64_NONE), - LLD_KIND_STRING_ENTRY(R_AARCH64_ABS64), - LLD_KIND_STRING_ENTRY(R_AARCH64_ABS32), - LLD_KIND_STRING_ENTRY(R_AARCH64_ABS16), - LLD_KIND_STRING_ENTRY(R_AARCH64_PREL64), - LLD_KIND_STRING_ENTRY(R_AARCH64_PREL32), - LLD_KIND_STRING_ENTRY(R_AARCH64_PREL16), - LLD_KIND_STRING_ENTRY(R_AARCH64_MOVW_UABS_G0), - LLD_KIND_STRING_ENTRY(R_AARCH64_MOVW_UABS_G0_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_MOVW_UABS_G1), - LLD_KIND_STRING_ENTRY(R_AARCH64_MOVW_UABS_G1_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_MOVW_UABS_G2), - LLD_KIND_STRING_ENTRY(R_AARCH64_MOVW_UABS_G2_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_MOVW_UABS_G3), - LLD_KIND_STRING_ENTRY(R_AARCH64_MOVW_SABS_G0), - LLD_KIND_STRING_ENTRY(R_AARCH64_MOVW_SABS_G1), - LLD_KIND_STRING_ENTRY(R_AARCH64_MOVW_SABS_G2), - LLD_KIND_STRING_ENTRY(R_AARCH64_LD_PREL_LO19), - LLD_KIND_STRING_ENTRY(R_AARCH64_ADR_PREL_LO21), - LLD_KIND_STRING_ENTRY(R_AARCH64_ADR_PREL_PG_HI21), - LLD_KIND_STRING_ENTRY(R_AARCH64_ADD_ABS_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_LDST8_ABS_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TSTBR14), - LLD_KIND_STRING_ENTRY(R_AARCH64_CONDBR19), - LLD_KIND_STRING_ENTRY(R_AARCH64_JUMP26), - LLD_KIND_STRING_ENTRY(R_AARCH64_CALL26), - LLD_KIND_STRING_ENTRY(R_AARCH64_LDST16_ABS_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_LDST32_ABS_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_LDST64_ABS_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_LDST128_ABS_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_ADR_GOT_PAGE), - LLD_KIND_STRING_ENTRY(R_AARCH64_LD64_GOT_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLD_MOVW_DTPREL_G2), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLD_MOVW_DTPREL_G1), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLD_MOVW_DTPREL_G0), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLD_ADD_DTPREL_HI12), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLD_ADD_DTPREL_LO12), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLD_LDST8_DTPREL_LO12), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLD_LDST16_DTPREL_LO12), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLD_LDST32_DTPREL_LO12), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLD_LDST64_DTPREL_LO12), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSIE_MOVW_GOTTPREL_G1), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSIE_LD_GOTTPREL_PREL19), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLE_MOVW_TPREL_G2), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLE_MOVW_TPREL_G1), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLE_MOVW_TPREL_G1_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLE_MOVW_TPREL_G0), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLE_MOVW_TPREL_G0_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLE_ADD_TPREL_HI12), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLE_ADD_TPREL_LO12), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLE_ADD_TPREL_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLE_LDST8_TPREL_LO12), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLE_LDST16_TPREL_LO12), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLE_LDST32_TPREL_LO12), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLE_LDST64_TPREL_LO12), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSDESC_ADR_PAGE21), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSDESC_LD64_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSDESC_ADD_LO12_NC), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSDESC_CALL), - LLD_KIND_STRING_ENTRY(R_AARCH64_COPY), - LLD_KIND_STRING_ENTRY(R_AARCH64_GLOB_DAT), - LLD_KIND_STRING_ENTRY(R_AARCH64_JUMP_SLOT), - LLD_KIND_STRING_ENTRY(R_AARCH64_RELATIVE), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLS_DTPREL64), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLS_DTPMOD64), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLS_TPREL64), - LLD_KIND_STRING_ENTRY(R_AARCH64_TLSDESC), - LLD_KIND_STRING_ENTRY(R_AARCH64_IRELATIVE), - LLD_KIND_STRING_END}; +#include "llvm/Support/ELFRelocs/AArch64.def" + LLD_KIND_STRING_END +}; + +#undef ELF_RELOC diff --git a/lld/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp b/lld/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp index 4d1642a..59efcbc 100644 --- a/lld/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp +++ b/lld/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp @@ -328,98 +328,11 @@ void HexagonTargetHandler::registerRelocationNames(Registry ®istry) { Reference::KindArch::Hexagon, kindStrings); } +#define ELF_RELOC(name, value) LLD_KIND_STRING_ENTRY(name), + const Registry::KindStrings HexagonTargetHandler::kindStrings[] = { - LLD_KIND_STRING_ENTRY(R_HEX_NONE), - LLD_KIND_STRING_ENTRY(R_HEX_B22_PCREL), - LLD_KIND_STRING_ENTRY(R_HEX_B15_PCREL), - LLD_KIND_STRING_ENTRY(R_HEX_B7_PCREL), - LLD_KIND_STRING_ENTRY(R_HEX_LO16), - LLD_KIND_STRING_ENTRY(R_HEX_HI16), - LLD_KIND_STRING_ENTRY(R_HEX_32), - LLD_KIND_STRING_ENTRY(R_HEX_16), - LLD_KIND_STRING_ENTRY(R_HEX_8), - LLD_KIND_STRING_ENTRY(R_HEX_GPREL16_0), - LLD_KIND_STRING_ENTRY(R_HEX_GPREL16_1), - LLD_KIND_STRING_ENTRY(R_HEX_GPREL16_2), - LLD_KIND_STRING_ENTRY(R_HEX_GPREL16_3), - LLD_KIND_STRING_ENTRY(R_HEX_HL16), - LLD_KIND_STRING_ENTRY(R_HEX_B13_PCREL), - LLD_KIND_STRING_ENTRY(R_HEX_B9_PCREL), - LLD_KIND_STRING_ENTRY(R_HEX_B32_PCREL_X), - LLD_KIND_STRING_ENTRY(R_HEX_32_6_X), - LLD_KIND_STRING_ENTRY(R_HEX_B22_PCREL_X), - LLD_KIND_STRING_ENTRY(R_HEX_B15_PCREL_X), - LLD_KIND_STRING_ENTRY(R_HEX_B13_PCREL_X), - LLD_KIND_STRING_ENTRY(R_HEX_B9_PCREL_X), - LLD_KIND_STRING_ENTRY(R_HEX_B7_PCREL_X), - LLD_KIND_STRING_ENTRY(R_HEX_16_X), - LLD_KIND_STRING_ENTRY(R_HEX_12_X), - LLD_KIND_STRING_ENTRY(R_HEX_11_X), - LLD_KIND_STRING_ENTRY(R_HEX_10_X), - LLD_KIND_STRING_ENTRY(R_HEX_9_X), - LLD_KIND_STRING_ENTRY(R_HEX_8_X), - LLD_KIND_STRING_ENTRY(R_HEX_7_X), - LLD_KIND_STRING_ENTRY(R_HEX_6_X), - LLD_KIND_STRING_ENTRY(R_HEX_32_PCREL), - LLD_KIND_STRING_ENTRY(R_HEX_COPY), - LLD_KIND_STRING_ENTRY(R_HEX_GLOB_DAT), - LLD_KIND_STRING_ENTRY(R_HEX_JMP_SLOT), - LLD_KIND_STRING_ENTRY(R_HEX_RELATIVE), - LLD_KIND_STRING_ENTRY(R_HEX_PLT_B22_PCREL), - LLD_KIND_STRING_ENTRY(R_HEX_GOTREL_LO16), - LLD_KIND_STRING_ENTRY(R_HEX_GOTREL_HI16), - LLD_KIND_STRING_ENTRY(R_HEX_GOTREL_32), - LLD_KIND_STRING_ENTRY(R_HEX_GOT_LO16), - LLD_KIND_STRING_ENTRY(R_HEX_GOT_HI16), - LLD_KIND_STRING_ENTRY(R_HEX_GOT_32), - LLD_KIND_STRING_ENTRY(R_HEX_GOT_16), - LLD_KIND_STRING_ENTRY(R_HEX_DTPMOD_32), - LLD_KIND_STRING_ENTRY(R_HEX_DTPREL_LO16), - LLD_KIND_STRING_ENTRY(R_HEX_DTPREL_HI16), - LLD_KIND_STRING_ENTRY(R_HEX_DTPREL_32), - LLD_KIND_STRING_ENTRY(R_HEX_DTPREL_16), - LLD_KIND_STRING_ENTRY(R_HEX_GD_PLT_B22_PCREL), - LLD_KIND_STRING_ENTRY(R_HEX_GD_GOT_LO16), - LLD_KIND_STRING_ENTRY(R_HEX_GD_GOT_HI16), - LLD_KIND_STRING_ENTRY(R_HEX_GD_GOT_32), - LLD_KIND_STRING_ENTRY(R_HEX_GD_GOT_16), - LLD_KIND_STRING_ENTRY(R_HEX_IE_LO16), - LLD_KIND_STRING_ENTRY(R_HEX_IE_HI16), - LLD_KIND_STRING_ENTRY(R_HEX_IE_32), - LLD_KIND_STRING_ENTRY(R_HEX_IE_GOT_LO16), - LLD_KIND_STRING_ENTRY(R_HEX_IE_GOT_HI16), - LLD_KIND_STRING_ENTRY(R_HEX_IE_GOT_32), - LLD_KIND_STRING_ENTRY(R_HEX_IE_GOT_16), - LLD_KIND_STRING_ENTRY(R_HEX_TPREL_LO16), - LLD_KIND_STRING_ENTRY(R_HEX_TPREL_HI16), - LLD_KIND_STRING_ENTRY(R_HEX_TPREL_32), - LLD_KIND_STRING_ENTRY(R_HEX_TPREL_16), - LLD_KIND_STRING_ENTRY(R_HEX_6_PCREL_X), - LLD_KIND_STRING_ENTRY(R_HEX_GOTREL_32_6_X), - LLD_KIND_STRING_ENTRY(R_HEX_GOTREL_16_X), - LLD_KIND_STRING_ENTRY(R_HEX_GOTREL_11_X), - LLD_KIND_STRING_ENTRY(R_HEX_GOT_32_6_X), - LLD_KIND_STRING_ENTRY(R_HEX_GOT_16_X), - LLD_KIND_STRING_ENTRY(R_HEX_GOT_11_X), - LLD_KIND_STRING_ENTRY(R_HEX_DTPREL_32_6_X), - LLD_KIND_STRING_ENTRY(R_HEX_DTPREL_16_X), - LLD_KIND_STRING_ENTRY(R_HEX_DTPREL_11_X), - LLD_KIND_STRING_ENTRY(R_HEX_GD_GOT_32_6_X), - LLD_KIND_STRING_ENTRY(R_HEX_GD_GOT_16_X), - LLD_KIND_STRING_ENTRY(R_HEX_GD_GOT_11_X), - LLD_KIND_STRING_ENTRY(R_HEX_IE_32_6_X), - LLD_KIND_STRING_ENTRY(R_HEX_IE_32_6_X), - LLD_KIND_STRING_ENTRY(R_HEX_IE_16_X), - LLD_KIND_STRING_ENTRY(R_HEX_IE_GOT_32_6_X), - LLD_KIND_STRING_ENTRY(R_HEX_IE_GOT_16_X), - LLD_KIND_STRING_ENTRY(R_HEX_IE_GOT_11_X), - LLD_KIND_STRING_ENTRY(R_HEX_IE_32_6_X), - LLD_KIND_STRING_ENTRY(R_HEX_IE_16_X), - LLD_KIND_STRING_ENTRY(R_HEX_IE_GOT_32_6_X), - LLD_KIND_STRING_ENTRY(R_HEX_IE_GOT_16_X), - LLD_KIND_STRING_ENTRY(R_HEX_IE_GOT_11_X), - LLD_KIND_STRING_ENTRY(R_HEX_TPREL_32_6_X), - LLD_KIND_STRING_ENTRY(R_HEX_TPREL_16_X), - LLD_KIND_STRING_ENTRY(R_HEX_TPREL_11_X), +#include "llvm/Support/ELFRelocs/Hexagon.def" LLD_KIND_STRING_END }; + +#undef ELF_RELOC diff --git a/lld/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.cpp b/lld/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.cpp index caec0c4..2280dd3 100644 --- a/lld/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.cpp +++ b/lld/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.cpp @@ -45,30 +45,10 @@ void MipsTargetHandler::registerRelocationNames(Registry ®istry) { Reference::KindArch::Mips, kindStrings); } +#define ELF_RELOC(name, value) LLD_KIND_STRING_ENTRY(name), + const Registry::KindStrings MipsTargetHandler::kindStrings[] = { - LLD_KIND_STRING_ENTRY(R_MIPS_NONE), - LLD_KIND_STRING_ENTRY(R_MIPS_32), - LLD_KIND_STRING_ENTRY(R_MIPS_REL32), - LLD_KIND_STRING_ENTRY(R_MIPS_26), - LLD_KIND_STRING_ENTRY(R_MIPS_HI16), - LLD_KIND_STRING_ENTRY(R_MIPS_LO16), - LLD_KIND_STRING_ENTRY(R_MIPS_GOT16), - LLD_KIND_STRING_ENTRY(R_MIPS_CALL16), - LLD_KIND_STRING_ENTRY(R_MIPS_GPREL32), - LLD_KIND_STRING_ENTRY(R_MIPS_JALR), - LLD_KIND_STRING_ENTRY(R_MIPS_TLS_DTPMOD32), - LLD_KIND_STRING_ENTRY(R_MIPS_TLS_DTPREL32), - LLD_KIND_STRING_ENTRY(R_MIPS_TLS_GD), - LLD_KIND_STRING_ENTRY(R_MIPS_TLS_LDM), - LLD_KIND_STRING_ENTRY(R_MIPS_TLS_GOTTPREL), - LLD_KIND_STRING_ENTRY(R_MIPS_TLS_TPREL32), - LLD_KIND_STRING_ENTRY(R_MIPS_TLS_DTPREL_HI16), - LLD_KIND_STRING_ENTRY(R_MIPS_TLS_DTPREL_LO16), - LLD_KIND_STRING_ENTRY(R_MIPS_TLS_TPREL_HI16), - LLD_KIND_STRING_ENTRY(R_MIPS_TLS_TPREL_LO16), - LLD_KIND_STRING_ENTRY(R_MIPS_COPY), - LLD_KIND_STRING_ENTRY(R_MIPS_JUMP_SLOT), - LLD_KIND_STRING_ENTRY(R_MIPS_PC32), +#include "llvm/Support/ELFRelocs/Mips.def" LLD_KIND_STRING_ENTRY(LLD_R_MIPS_GLOBAL_GOT), LLD_KIND_STRING_ENTRY(LLD_R_MIPS_32_HI16), LLD_KIND_STRING_ENTRY(LLD_R_MIPS_GLOBAL_26), @@ -77,3 +57,5 @@ const Registry::KindStrings MipsTargetHandler::kindStrings[] = { LLD_KIND_STRING_ENTRY(LLD_R_MIPS_STO_PLT), LLD_KIND_STRING_END }; + +#undef ELF_RELOC diff --git a/lld/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp b/lld/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp index 5f01b2d..a3e6b66 100644 --- a/lld/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp +++ b/lld/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp @@ -89,59 +89,11 @@ std::unique_ptr PPCTargetHandler::getWriter() { } } +#define ELF_RELOC(name, value) LLD_KIND_STRING_ENTRY(name), + const Registry::KindStrings PPCTargetHandler::kindStrings[] = { - LLD_KIND_STRING_ENTRY(R_PPC_NONE), - LLD_KIND_STRING_ENTRY(R_PPC_ADDR32), - LLD_KIND_STRING_ENTRY(R_PPC_ADDR24), - LLD_KIND_STRING_ENTRY(R_PPC_ADDR16), - LLD_KIND_STRING_ENTRY(R_PPC_ADDR16_LO), - LLD_KIND_STRING_ENTRY(R_PPC_ADDR16_HI), - LLD_KIND_STRING_ENTRY(R_PPC_ADDR16_HA), - LLD_KIND_STRING_ENTRY(R_PPC_ADDR14), - LLD_KIND_STRING_ENTRY(R_PPC_ADDR14_BRTAKEN), - LLD_KIND_STRING_ENTRY(R_PPC_ADDR14_BRNTAKEN), - LLD_KIND_STRING_ENTRY(R_PPC_REL24), - LLD_KIND_STRING_ENTRY(R_PPC_REL14), - LLD_KIND_STRING_ENTRY(R_PPC_REL14_BRTAKEN), - LLD_KIND_STRING_ENTRY(R_PPC_REL14_BRNTAKEN), - LLD_KIND_STRING_ENTRY(R_PPC_GOT16), - LLD_KIND_STRING_ENTRY(R_PPC_GOT16_LO), - LLD_KIND_STRING_ENTRY(R_PPC_GOT16_HI), - LLD_KIND_STRING_ENTRY(R_PPC_GOT16_HA), - LLD_KIND_STRING_ENTRY(R_PPC_REL32), - LLD_KIND_STRING_ENTRY(R_PPC_TLS), - LLD_KIND_STRING_ENTRY(R_PPC_DTPMOD32), - LLD_KIND_STRING_ENTRY(R_PPC_TPREL16), - LLD_KIND_STRING_ENTRY(R_PPC_TPREL16_LO), - LLD_KIND_STRING_ENTRY(R_PPC_TPREL16_HI), - LLD_KIND_STRING_ENTRY(R_PPC_TPREL16_HA), - LLD_KIND_STRING_ENTRY(R_PPC_TPREL32), - LLD_KIND_STRING_ENTRY(R_PPC_DTPREL16), - LLD_KIND_STRING_ENTRY(R_PPC_DTPREL16_LO), - LLD_KIND_STRING_ENTRY(R_PPC_DTPREL16_HI), - LLD_KIND_STRING_ENTRY(R_PPC_DTPREL16_HA), - LLD_KIND_STRING_ENTRY(R_PPC_DTPREL32), - LLD_KIND_STRING_ENTRY(R_PPC_GOT_TLSGD16), - LLD_KIND_STRING_ENTRY(R_PPC_GOT_TLSGD16_LO), - LLD_KIND_STRING_ENTRY(R_PPC_GOT_TLSGD16_HI), - LLD_KIND_STRING_ENTRY(R_PPC_GOT_TLSGD16_HA), - LLD_KIND_STRING_ENTRY(R_PPC_GOT_TLSLD16), - LLD_KIND_STRING_ENTRY(R_PPC_GOT_TLSLD16_LO), - LLD_KIND_STRING_ENTRY(R_PPC_GOT_TLSLD16_HI), - LLD_KIND_STRING_ENTRY(R_PPC_GOT_TLSLD16_HA), - LLD_KIND_STRING_ENTRY(R_PPC_GOT_TPREL16), - LLD_KIND_STRING_ENTRY(R_PPC_GOT_TPREL16_LO), - LLD_KIND_STRING_ENTRY(R_PPC_GOT_TPREL16_HI), - LLD_KIND_STRING_ENTRY(R_PPC_GOT_TPREL16_HA), - LLD_KIND_STRING_ENTRY(R_PPC_GOT_DTPREL16), - LLD_KIND_STRING_ENTRY(R_PPC_GOT_DTPREL16_LO), - LLD_KIND_STRING_ENTRY(R_PPC_GOT_DTPREL16_HI), - LLD_KIND_STRING_ENTRY(R_PPC_GOT_DTPREL16_HA), - LLD_KIND_STRING_ENTRY(R_PPC_TLSGD), - LLD_KIND_STRING_ENTRY(R_PPC_TLSLD), - LLD_KIND_STRING_ENTRY(R_PPC_REL16), - LLD_KIND_STRING_ENTRY(R_PPC_REL16_LO), - LLD_KIND_STRING_ENTRY(R_PPC_REL16_HI), - LLD_KIND_STRING_ENTRY(R_PPC_REL16_HA), +#include "llvm/Support/ELFRelocs/PowerPC.def" LLD_KIND_STRING_END }; + +#undef ELF_RELOC diff --git a/lld/lib/ReaderWriter/ELF/X86/X86TargetHandler.cpp b/lld/lib/ReaderWriter/ELF/X86/X86TargetHandler.cpp index f9319e5..d1e0d2f 100644 --- a/lld/lib/ReaderWriter/ELF/X86/X86TargetHandler.cpp +++ b/lld/lib/ReaderWriter/ELF/X86/X86TargetHandler.cpp @@ -33,51 +33,15 @@ std::unique_ptr X86TargetHandler::getWriter() { } } +#define ELF_RELOC(name, value) LLD_KIND_STRING_ENTRY(name), + const Registry::KindStrings X86TargetHandler::kindStrings[] = { - LLD_KIND_STRING_ENTRY(R_386_NONE), - LLD_KIND_STRING_ENTRY(R_386_32), - LLD_KIND_STRING_ENTRY(R_386_PC32), - LLD_KIND_STRING_ENTRY(R_386_GOT32), - LLD_KIND_STRING_ENTRY(R_386_PLT32), - LLD_KIND_STRING_ENTRY(R_386_COPY), - LLD_KIND_STRING_ENTRY(R_386_GLOB_DAT), - LLD_KIND_STRING_ENTRY(R_386_JUMP_SLOT), - LLD_KIND_STRING_ENTRY(R_386_RELATIVE), - LLD_KIND_STRING_ENTRY(R_386_GOTOFF), - LLD_KIND_STRING_ENTRY(R_386_GOTPC), - LLD_KIND_STRING_ENTRY(R_386_32PLT), - LLD_KIND_STRING_ENTRY(R_386_TLS_TPOFF), - LLD_KIND_STRING_ENTRY(R_386_TLS_IE), - LLD_KIND_STRING_ENTRY(R_386_TLS_GOTIE), - LLD_KIND_STRING_ENTRY(R_386_TLS_LE), - LLD_KIND_STRING_ENTRY(R_386_TLS_GD), - LLD_KIND_STRING_ENTRY(R_386_TLS_LDM), - LLD_KIND_STRING_ENTRY(R_386_16), - LLD_KIND_STRING_ENTRY(R_386_PC16), - LLD_KIND_STRING_ENTRY(R_386_8), - LLD_KIND_STRING_ENTRY(R_386_PC8), - LLD_KIND_STRING_ENTRY(R_386_TLS_GD_32), - LLD_KIND_STRING_ENTRY(R_386_TLS_GD_PUSH), - LLD_KIND_STRING_ENTRY(R_386_TLS_GD_CALL), - LLD_KIND_STRING_ENTRY(R_386_TLS_GD_POP), - LLD_KIND_STRING_ENTRY(R_386_TLS_LDM_32), - LLD_KIND_STRING_ENTRY(R_386_TLS_LDM_PUSH), - LLD_KIND_STRING_ENTRY(R_386_TLS_LDM_CALL), - LLD_KIND_STRING_ENTRY(R_386_TLS_LDM_POP), - LLD_KIND_STRING_ENTRY(R_386_TLS_LDO_32), - LLD_KIND_STRING_ENTRY(R_386_TLS_IE_32), - LLD_KIND_STRING_ENTRY(R_386_TLS_LE_32), - LLD_KIND_STRING_ENTRY(R_386_TLS_DTPMOD32), - LLD_KIND_STRING_ENTRY(R_386_TLS_DTPOFF32), - LLD_KIND_STRING_ENTRY(R_386_TLS_TPOFF32), - LLD_KIND_STRING_ENTRY(R_386_TLS_GOTDESC), - LLD_KIND_STRING_ENTRY(R_386_TLS_DESC_CALL), - LLD_KIND_STRING_ENTRY(R_386_TLS_DESC), - LLD_KIND_STRING_ENTRY(R_386_IRELATIVE), - LLD_KIND_STRING_ENTRY(R_386_NUM), +#include "llvm/Support/ELFRelocs/i386.def" LLD_KIND_STRING_END }; +#undef ELF_RELOC + void X86TargetHandler::registerRelocationNames(Registry ®istry) { registry.addKindTable(Reference::KindNamespace::ELF, Reference::KindArch::x86, kindStrings); diff --git a/lld/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.cpp b/lld/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.cpp index 557ea0c..116da9f 100644 --- a/lld/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.cpp +++ b/lld/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.cpp @@ -43,45 +43,12 @@ std::unique_ptr X86_64TargetHandler::getWriter() { } } +#define ELF_RELOC(name, value) LLD_KIND_STRING_ENTRY(name), + const Registry::KindStrings X86_64TargetHandler::kindStrings[] = { - LLD_KIND_STRING_ENTRY(R_X86_64_NONE), - LLD_KIND_STRING_ENTRY(R_X86_64_64), - LLD_KIND_STRING_ENTRY(R_X86_64_PC32), - LLD_KIND_STRING_ENTRY(R_X86_64_GOT32), - LLD_KIND_STRING_ENTRY(R_X86_64_PLT32), - LLD_KIND_STRING_ENTRY(R_X86_64_COPY), - LLD_KIND_STRING_ENTRY(R_X86_64_GLOB_DAT), - LLD_KIND_STRING_ENTRY(R_X86_64_JUMP_SLOT), - LLD_KIND_STRING_ENTRY(R_X86_64_RELATIVE), - LLD_KIND_STRING_ENTRY(R_X86_64_GOTPCREL), - LLD_KIND_STRING_ENTRY(R_X86_64_32), - LLD_KIND_STRING_ENTRY(R_X86_64_32S), - LLD_KIND_STRING_ENTRY(R_X86_64_16), - LLD_KIND_STRING_ENTRY(R_X86_64_PC16), - LLD_KIND_STRING_ENTRY(R_X86_64_8), - LLD_KIND_STRING_ENTRY(R_X86_64_PC8), - LLD_KIND_STRING_ENTRY(R_X86_64_DTPMOD64), - LLD_KIND_STRING_ENTRY(R_X86_64_DTPOFF64), - LLD_KIND_STRING_ENTRY(R_X86_64_TPOFF64), - LLD_KIND_STRING_ENTRY(R_X86_64_TLSGD), - LLD_KIND_STRING_ENTRY(R_X86_64_TLSLD), - LLD_KIND_STRING_ENTRY(R_X86_64_DTPOFF32), - LLD_KIND_STRING_ENTRY(R_X86_64_GOTTPOFF), - LLD_KIND_STRING_ENTRY(R_X86_64_TPOFF32), - LLD_KIND_STRING_ENTRY(R_X86_64_PC64), - LLD_KIND_STRING_ENTRY(R_X86_64_GOTOFF64), - LLD_KIND_STRING_ENTRY(R_X86_64_GOTPC32), - LLD_KIND_STRING_ENTRY(R_X86_64_GOT64), - LLD_KIND_STRING_ENTRY(R_X86_64_GOTPCREL64), - LLD_KIND_STRING_ENTRY(R_X86_64_GOTPC64), - LLD_KIND_STRING_ENTRY(R_X86_64_GOTPLT64), - LLD_KIND_STRING_ENTRY(R_X86_64_PLTOFF64), - LLD_KIND_STRING_ENTRY(R_X86_64_SIZE32), - LLD_KIND_STRING_ENTRY(R_X86_64_SIZE64), - LLD_KIND_STRING_ENTRY(R_X86_64_GOTPC32_TLSDESC), - LLD_KIND_STRING_ENTRY(R_X86_64_TLSDESC_CALL), - LLD_KIND_STRING_ENTRY(R_X86_64_TLSDESC), - LLD_KIND_STRING_ENTRY(R_X86_64_IRELATIVE), +#include "llvm/Support/ELFRelocs/x86_64.def" LLD_KIND_STRING_ENTRY(LLD_R_X86_64_GOTRELINDEX), LLD_KIND_STRING_END }; + +#undef ELF_RELOC -- 2.7.4