summaryrefslogtreecommitdiff
path: root/llvm/include/llvm/BinaryFormat/ELFRelocs
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2020-07-26 19:36:28 +0000
committerDimitry Andric <dim@FreeBSD.org>2020-07-26 19:36:28 +0000
commitcfca06d7963fa0909f90483b42a6d7d194d01e08 (patch)
tree209fb2a2d68f8f277793fc8df46c753d31bc853b /llvm/include/llvm/BinaryFormat/ELFRelocs
parent706b4fc47bbc608932d3b491ae19a3b9cde9497b (diff)
Notes
Diffstat (limited to 'llvm/include/llvm/BinaryFormat/ELFRelocs')
-rw-r--r--llvm/include/llvm/BinaryFormat/ELFRelocs/AArch64.def4
-rw-r--r--llvm/include/llvm/BinaryFormat/ELFRelocs/PowerPC64.def8
-rw-r--r--llvm/include/llvm/BinaryFormat/ELFRelocs/RISCV.def1
-rw-r--r--llvm/include/llvm/BinaryFormat/ELFRelocs/VE.def48
4 files changed, 61 insertions, 0 deletions
diff --git a/llvm/include/llvm/BinaryFormat/ELFRelocs/AArch64.def b/llvm/include/llvm/BinaryFormat/ELFRelocs/AArch64.def
index c8364133e31f..96a4efe82560 100644
--- a/llvm/include/llvm/BinaryFormat/ELFRelocs/AArch64.def
+++ b/llvm/include/llvm/BinaryFormat/ELFRelocs/AArch64.def
@@ -58,6 +58,7 @@ ELF_RELOC(R_AARCH64_LD64_GOTOFF_LO15, 0x136)
ELF_RELOC(R_AARCH64_ADR_GOT_PAGE, 0x137)
ELF_RELOC(R_AARCH64_LD64_GOT_LO12_NC, 0x138)
ELF_RELOC(R_AARCH64_LD64_GOTPAGE_LO15, 0x139)
+ELF_RELOC(R_AARCH64_PLT32, 0x13a)
ELF_RELOC(R_AARCH64_TLSGD_ADR_PREL21, 0x200)
ELF_RELOC(R_AARCH64_TLSGD_ADR_PAGE21, 0x201)
ELF_RELOC(R_AARCH64_TLSGD_ADD_LO12_NC, 0x202)
@@ -120,6 +121,7 @@ ELF_RELOC(R_AARCH64_TLSLE_LDST128_TPREL_LO12, 0x23a)
ELF_RELOC(R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC, 0x23b)
ELF_RELOC(R_AARCH64_TLSLD_LDST128_DTPREL_LO12, 0x23c)
ELF_RELOC(R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC, 0x23d)
+// Dynamic relocations start
ELF_RELOC(R_AARCH64_COPY, 0x400)
ELF_RELOC(R_AARCH64_GLOB_DAT, 0x401)
ELF_RELOC(R_AARCH64_JUMP_SLOT, 0x402)
@@ -162,6 +164,7 @@ ELF_RELOC(R_AARCH64_P32_GOT_LD_PREL19, 0x019)
ELF_RELOC(R_AARCH64_P32_ADR_GOT_PAGE, 0x01a)
ELF_RELOC(R_AARCH64_P32_LD32_GOT_LO12_NC, 0x01b)
ELF_RELOC(R_AARCH64_P32_LD32_GOTPAGE_LO14, 0x01c)
+ELF_RELOC(R_AARCH64_P32_PLT32, 0x01d)
ELF_RELOC(R_AARCH64_P32_TLSGD_ADR_PREL21, 0x050)
ELF_RELOC(R_AARCH64_P32_TLSGD_ADR_PAGE21, 0x051)
ELF_RELOC(R_AARCH64_P32_TLSGD_ADD_LO12_NC, 0x052)
@@ -210,6 +213,7 @@ ELF_RELOC(R_AARCH64_P32_TLSDESC_ADR_PAGE21, 0x07c)
ELF_RELOC(R_AARCH64_P32_TLSDESC_LD32_LO12, 0x07d)
ELF_RELOC(R_AARCH64_P32_TLSDESC_ADD_LO12, 0x07e)
ELF_RELOC(R_AARCH64_P32_TLSDESC_CALL, 0x07f)
+// Dynamic relocations start
ELF_RELOC(R_AARCH64_P32_COPY, 0x0b4)
ELF_RELOC(R_AARCH64_P32_GLOB_DAT, 0x0b5)
ELF_RELOC(R_AARCH64_P32_JUMP_SLOT, 0x0b6)
diff --git a/llvm/include/llvm/BinaryFormat/ELFRelocs/PowerPC64.def b/llvm/include/llvm/BinaryFormat/ELFRelocs/PowerPC64.def
index 8c5b482f0511..e28c9caaefaf 100644
--- a/llvm/include/llvm/BinaryFormat/ELFRelocs/PowerPC64.def
+++ b/llvm/include/llvm/BinaryFormat/ELFRelocs/PowerPC64.def
@@ -26,6 +26,7 @@
#undef R_PPC64_GOT16_LO
#undef R_PPC64_GOT16_HI
#undef R_PPC64_GOT16_HA
+#undef R_PPC64_COPY
#undef R_PPC64_GLOB_DAT
#undef R_PPC64_JMP_SLOT
#undef R_PPC64_RELATIVE
@@ -95,6 +96,9 @@
#undef R_PPC64_TPREL16_HIGHA
#undef R_PPC64_DTPREL16_HIGH
#undef R_PPC64_DTPREL16_HIGHA
+#undef R_PPC64_REL24_NOTOC
+#undef R_PPC64_PCREL34
+#undef R_PPC64_GOT_PCREL34
#undef R_PPC64_IRELATIVE
#undef R_PPC64_REL16
#undef R_PPC64_REL16_LO
@@ -119,6 +123,7 @@ ELF_RELOC(R_PPC64_GOT16, 14)
ELF_RELOC(R_PPC64_GOT16_LO, 15)
ELF_RELOC(R_PPC64_GOT16_HI, 16)
ELF_RELOC(R_PPC64_GOT16_HA, 17)
+ELF_RELOC(R_PPC64_COPY, 19)
ELF_RELOC(R_PPC64_GLOB_DAT, 20)
ELF_RELOC(R_PPC64_JMP_SLOT, 21)
ELF_RELOC(R_PPC64_RELATIVE, 22)
@@ -188,6 +193,9 @@ ELF_RELOC(R_PPC64_TPREL16_HIGH, 112)
ELF_RELOC(R_PPC64_TPREL16_HIGHA, 113)
ELF_RELOC(R_PPC64_DTPREL16_HIGH, 114)
ELF_RELOC(R_PPC64_DTPREL16_HIGHA, 115)
+ELF_RELOC(R_PPC64_REL24_NOTOC, 116)
+ELF_RELOC(R_PPC64_PCREL34, 132)
+ELF_RELOC(R_PPC64_GOT_PCREL34, 133)
ELF_RELOC(R_PPC64_IRELATIVE, 248)
ELF_RELOC(R_PPC64_REL16, 249)
ELF_RELOC(R_PPC64_REL16_LO, 250)
diff --git a/llvm/include/llvm/BinaryFormat/ELFRelocs/RISCV.def b/llvm/include/llvm/BinaryFormat/ELFRelocs/RISCV.def
index 5cc4c0ec3029..9f2f0540bcbd 100644
--- a/llvm/include/llvm/BinaryFormat/ELFRelocs/RISCV.def
+++ b/llvm/include/llvm/BinaryFormat/ELFRelocs/RISCV.def
@@ -57,3 +57,4 @@ ELF_RELOC(R_RISCV_SET8, 54)
ELF_RELOC(R_RISCV_SET16, 55)
ELF_RELOC(R_RISCV_SET32, 56)
ELF_RELOC(R_RISCV_32_PCREL, 57)
+ELF_RELOC(R_RISCV_IRELATIVE, 58)
diff --git a/llvm/include/llvm/BinaryFormat/ELFRelocs/VE.def b/llvm/include/llvm/BinaryFormat/ELFRelocs/VE.def
new file mode 100644
index 000000000000..9bfdbf1b0960
--- /dev/null
+++ b/llvm/include/llvm/BinaryFormat/ELFRelocs/VE.def
@@ -0,0 +1,48 @@
+
+#ifndef ELF_RELOC
+#error "ELF_RELOC must be defined"
+#endif
+
+// Relocation types defined in following documents.
+//
+// - System V Application Binary Interface - VE Architecture
+// Processor Supplement
+// - ELF Handling For Thread-Local Storage - VE Architecture
+// Processor Supplement
+
+ELF_RELOC(R_VE_NONE, 0)
+ELF_RELOC(R_VE_REFLONG, 1)
+ELF_RELOC(R_VE_REFQUAD, 2)
+ELF_RELOC(R_VE_SREL32, 3)
+ELF_RELOC(R_VE_HI32, 4)
+ELF_RELOC(R_VE_LO32, 5)
+ELF_RELOC(R_VE_PC_HI32, 6)
+ELF_RELOC(R_VE_PC_LO32, 7)
+ELF_RELOC(R_VE_GOT32, 8)
+ELF_RELOC(R_VE_GOT_HI32, 9)
+ELF_RELOC(R_VE_GOT_LO32, 10)
+ELF_RELOC(R_VE_GOTOFF32, 11)
+ELF_RELOC(R_VE_GOTOFF_HI32, 12)
+ELF_RELOC(R_VE_GOTOFF_LO32, 13)
+ELF_RELOC(R_VE_PLT32, 14)
+ELF_RELOC(R_VE_PLT_HI32, 15)
+ELF_RELOC(R_VE_PLT_LO32, 16)
+ELF_RELOC(R_VE_RELATIVE, 17)
+ELF_RELOC(R_VE_GLOB_DAT, 18)
+ELF_RELOC(R_VE_JUMP_SLOT, 19)
+ELF_RELOC(R_VE_COPY, 20)
+ELF_RELOC(R_VE_DTPMOD64, 22)
+ELF_RELOC(R_VE_DTPOFF64, 23)
+// ELF_RELOC(R_VE_TPOFF64, 24)
+ELF_RELOC(R_VE_TLS_GD_HI32, 25)
+ELF_RELOC(R_VE_TLS_GD_LO32, 26)
+// ELF_RELOC(R_VE_TLS_LD_HI32, 27)
+// ELF_RELOC(R_VE_TLS_LD_LO32, 28)
+// ELF_RELOC(R_VE_DTPOFF32, 29)
+// ELF_RELOC(R_VE_TLS_IE_HI32, 30)
+// ELF_RELOC(R_VE_TLS_IE_LO32, 31)
+ELF_RELOC(R_VE_TPOFF_HI32, 32)
+ELF_RELOC(R_VE_TPOFF_LO32, 33)
+// ELF_RELOC(R_VE_TPOFF32, 34)
+ELF_RELOC(R_VE_CALL_HI32, 35)
+ELF_RELOC(R_VE_CALL_LO32, 36)