aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Support/ELF.h
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@linux.vnet.ibm.com>2013-05-03 11:11:15 +0000
committerRichard Sandiford <rsandifo@linux.vnet.ibm.com>2013-05-03 11:11:15 +0000
commit820b3fd7716cf5ab26961d1b2b21fd5d0f330fe1 (patch)
tree30b3162e9387f33ead896574d1d5da9259063f9d /include/llvm/Support/ELF.h
parent0512910867e77125b63054da2860a7812604c22e (diff)
downloadexternal_llvm-820b3fd7716cf5ab26961d1b2b21fd5d0f330fe1.zip
external_llvm-820b3fd7716cf5ab26961d1b2b21fd5d0f330fe1.tar.gz
external_llvm-820b3fd7716cf5ab26961d1b2b21fd5d0f330fe1.tar.bz2
[SystemZ] Add ELF relocation support
Another step towards reinstating the SystemZ backend. Tests will be included in the main backend patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181008 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Support/ELF.h')
-rw-r--r--include/llvm/Support/ELF.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/include/llvm/Support/ELF.h b/include/llvm/Support/ELF.h
index 232aadc..c46dfeb 100644
--- a/include/llvm/Support/ELF.h
+++ b/include/llvm/Support/ELF.h
@@ -946,6 +946,72 @@ enum {
R_HEX_TPREL_11_X = 85
};
+// ELF Relocation types for S390/zSeries
+enum {
+ R_390_NONE = 0,
+ R_390_8 = 1,
+ R_390_12 = 2,
+ R_390_16 = 3,
+ R_390_32 = 4,
+ R_390_PC32 = 5,
+ R_390_GOT12 = 6,
+ R_390_GOT32 = 7,
+ R_390_PLT32 = 8,
+ R_390_COPY = 9,
+ R_390_GLOB_DAT = 10,
+ R_390_JMP_SLOT = 11,
+ R_390_RELATIVE = 12,
+ R_390_GOTOFF = 13,
+ R_390_GOTPC = 14,
+ R_390_GOT16 = 15,
+ R_390_PC16 = 16,
+ R_390_PC16DBL = 17,
+ R_390_PLT16DBL = 18,
+ R_390_PC32DBL = 19,
+ R_390_PLT32DBL = 20,
+ R_390_GOTPCDBL = 21,
+ R_390_64 = 22,
+ R_390_PC64 = 23,
+ R_390_GOT64 = 24,
+ R_390_PLT64 = 25,
+ R_390_GOTENT = 26,
+ R_390_GOTOFF16 = 27,
+ R_390_GOTOFF64 = 28,
+ R_390_GOTPLT12 = 29,
+ R_390_GOTPLT16 = 30,
+ R_390_GOTPLT32 = 31,
+ R_390_GOTPLT64 = 32,
+ R_390_GOTPLTENT = 33,
+ R_390_PLTOFF16 = 34,
+ R_390_PLTOFF32 = 35,
+ R_390_PLTOFF64 = 36,
+ R_390_TLS_LOAD = 37,
+ R_390_TLS_GDCALL = 38,
+ R_390_TLS_LDCALL = 39,
+ R_390_TLS_GD32 = 40,
+ R_390_TLS_GD64 = 41,
+ R_390_TLS_GOTIE12 = 42,
+ R_390_TLS_GOTIE32 = 43,
+ R_390_TLS_GOTIE64 = 44,
+ R_390_TLS_LDM32 = 45,
+ R_390_TLS_LDM64 = 46,
+ R_390_TLS_IE32 = 47,
+ R_390_TLS_IE64 = 48,
+ R_390_TLS_IEENT = 49,
+ R_390_TLS_LE32 = 50,
+ R_390_TLS_LE64 = 51,
+ R_390_TLS_LDO32 = 52,
+ R_390_TLS_LDO64 = 53,
+ R_390_TLS_DTPMOD = 54,
+ R_390_TLS_DTPOFF = 55,
+ R_390_TLS_TPOFF = 56,
+ R_390_20 = 57,
+ R_390_GOT20 = 58,
+ R_390_GOTPLT20 = 59,
+ R_390_TLS_GOTIE20 = 60,
+ R_390_IRELATIVE = 61
+};
+
// Section header.
struct Elf32_Shdr {
Elf32_Word sh_name; // Section name (index into string table)