[llvm-readobj] - Rewrite reloc-types.test to use YAML. NFCI.
authorGeorge Rimar <grimar@accesssoftek.com>
Thu, 30 May 2019 12:39:05 +0000 (12:39 +0000)
committerGeorge Rimar <grimar@accesssoftek.com>
Thu, 30 May 2019 12:39:05 +0000 (12:39 +0000)
This change rewrites and splits reloc-types.test
to use yaml2obj instead of precompiled binaries.
That allowed to remove 7 precompiled objects from the inputs.

I took the existent objects, used obj2yaml on them, simplified the result and
used yaml2obj in the test case with the result.

Notes:
* I converted, but did not remove relocs.obj.elf-i386, relocs.obj.elf-x86_64 or relocs.obj.elf-mips objects
because found they are used in other tests.
* I was unable to convert relocs.obj.elf-ppc64, because obj2yaml hangs on this file for me.
* I was unable to convert relocs.obj.macho-arm, relocs.obj.macho-i386 and relocs.obj.macho-x86_64
because the output produced by obj2yaml does not seem to be correct.
* Because of the above I did not remove the script for creating all
of those objects: test\tools\llvm-readobj\Inputs\relocs.py

Differential revision: https://reviews.llvm.org/D62594

llvm-svn: 362089

21 files changed:
llvm/test/tools/llvm-readobj/Inputs/relocs.obj.coff-i386 [deleted file]
llvm/test/tools/llvm-readobj/Inputs/relocs.obj.coff-x86_64 [deleted file]
llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-aarch64 [deleted file]
llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-aarch64-ilp32 [deleted file]
llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-arm [deleted file]
llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-lanai [deleted file]
llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-mips64el [deleted file]
llvm/test/tools/llvm-readobj/reloc-types-coff-i386.test [new file with mode: 0644]
llvm/test/tools/llvm-readobj/reloc-types-coff-x64.test [new file with mode: 0644]
llvm/test/tools/llvm-readobj/reloc-types-elf-aarch64.test [new file with mode: 0644]
llvm/test/tools/llvm-readobj/reloc-types-elf-arm.test [new file with mode: 0644]
llvm/test/tools/llvm-readobj/reloc-types-elf-i386.test [new file with mode: 0644]
llvm/test/tools/llvm-readobj/reloc-types-elf-lanai.test [new file with mode: 0644]
llvm/test/tools/llvm-readobj/reloc-types-elf-mips.test [new file with mode: 0644]
llvm/test/tools/llvm-readobj/reloc-types-elf-mips64.test [new file with mode: 0644]
llvm/test/tools/llvm-readobj/reloc-types-elf-ppc64.test [new file with mode: 0644]
llvm/test/tools/llvm-readobj/reloc-types-elf-x64.test [new file with mode: 0644]
llvm/test/tools/llvm-readobj/reloc-types-macho-arm.test [new file with mode: 0644]
llvm/test/tools/llvm-readobj/reloc-types-macho-i386.test [new file with mode: 0644]
llvm/test/tools/llvm-readobj/reloc-types-macho-x64.test [new file with mode: 0644]
llvm/test/tools/llvm-readobj/reloc-types.test [deleted file]

diff --git a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.coff-i386 b/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.coff-i386
deleted file mode 100644 (file)
index 9c24ac8..0000000
Binary files a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.coff-i386 and /dev/null differ
diff --git a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.coff-x86_64 b/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.coff-x86_64
deleted file mode 100644 (file)
index 356437e..0000000
Binary files a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.coff-x86_64 and /dev/null differ
diff --git a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-aarch64 b/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-aarch64
deleted file mode 100644 (file)
index 658b0ea..0000000
Binary files a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-aarch64 and /dev/null differ
diff --git a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-aarch64-ilp32 b/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-aarch64-ilp32
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-arm b/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-arm
deleted file mode 100644 (file)
index 206c933..0000000
Binary files a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-arm and /dev/null differ
diff --git a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-lanai b/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-lanai
deleted file mode 100644 (file)
index 70e25d1..0000000
Binary files a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-lanai and /dev/null differ
diff --git a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-mips64el b/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-mips64el
deleted file mode 100644 (file)
index a977964..0000000
Binary files a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-mips64el and /dev/null differ
diff --git a/llvm/test/tools/llvm-readobj/reloc-types-coff-i386.test b/llvm/test/tools/llvm-readobj/reloc-types-coff-i386.test
new file mode 100644 (file)
index 0000000..466530c
--- /dev/null
@@ -0,0 +1,63 @@
+## Test that llvm-readobj/llvm-readelf shows proper relocation type
+## names and values for coff-i386 target.
+
+# RUN: yaml2obj %s -o %t-coff-i386.o
+# RUN: llvm-readobj -r --expand-relocs %t-coff-i386.o | FileCheck %s
+
+# CHECK: Type: IMAGE_REL_I386_ABSOLUTE (0)
+# CHECK: Type: IMAGE_REL_I386_DIR16 (1)
+# CHECK: Type: IMAGE_REL_I386_REL16 (2)
+# CHECK: Type: IMAGE_REL_I386_DIR32 (6)
+# CHECK: Type: IMAGE_REL_I386_DIR32NB (7)
+# CHECK: Type: IMAGE_REL_I386_SEG12 (9)
+# CHECK: Type: IMAGE_REL_I386_SECTION (10)
+# CHECK: Type: IMAGE_REL_I386_SECREL (11)
+# CHECK: Type: IMAGE_REL_I386_TOKEN (12)
+# CHECK: Type: IMAGE_REL_I386_SECREL7 (13)
+# CHECK: Type: IMAGE_REL_I386_REL32 (20)
+
+--- !COFF
+header:
+  Machine:         IMAGE_FILE_MACHINE_I386
+  Characteristics: [  ]
+sections:
+  - Name:            .text
+    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
+    Alignment:       4
+    SectionData:     00
+    Relocations:
+      - VirtualAddress: 3
+        Type:           IMAGE_REL_I386_ABSOLUTE
+      - VirtualAddress: 10
+        Type:           IMAGE_REL_I386_DIR16
+      - VirtualAddress: 17
+        Type:           IMAGE_REL_I386_REL16
+      - VirtualAddress: 24
+        Type:           IMAGE_REL_I386_DIR32
+      - VirtualAddress: 31
+        Type:           IMAGE_REL_I386_DIR32NB
+      - VirtualAddress: 38
+        Type:           IMAGE_REL_I386_SEG12
+      - VirtualAddress: 45
+        Type:           IMAGE_REL_I386_SECTION
+      - VirtualAddress: 52
+        Type:           IMAGE_REL_I386_SECREL
+      - VirtualAddress: 59
+        Type:           IMAGE_REL_I386_TOKEN
+      - VirtualAddress: 66
+        Type:           IMAGE_REL_I386_SECREL7
+      - VirtualAddress: 73
+        Type:           IMAGE_REL_I386_REL32
+symbols:
+  - Name:            .text
+    Value:           0
+    SectionNumber:   1
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_NULL
+    StorageClass:    IMAGE_SYM_CLASS_STATIC
+    SectionDefinition: 
+      Length:          77
+      NumberOfRelocations: 11
+      NumberOfLinenumbers: 0
+      CheckSum:        0
+      Number:          1
diff --git a/llvm/test/tools/llvm-readobj/reloc-types-coff-x64.test b/llvm/test/tools/llvm-readobj/reloc-types-coff-x64.test
new file mode 100644 (file)
index 0000000..b78cc03
--- /dev/null
@@ -0,0 +1,81 @@
+## Test that llvm-readobj/llvm-readelf shows proper relocation type
+## names and values for coff-x64 target.
+
+# RUN: yaml2obj %s -o %t-coff-x86_64.o
+# RUN: llvm-readobj -r --expand-relocs %t-coff-x86_64.o | FileCheck %s
+
+# CHECK: Type: IMAGE_REL_AMD64_ABSOLUTE (0)
+# CHECK: Type: IMAGE_REL_AMD64_ADDR64 (1)
+# CHECK: Type: IMAGE_REL_AMD64_ADDR32 (2)
+# CHECK: Type: IMAGE_REL_AMD64_ADDR32NB (3)
+# CHECK: Type: IMAGE_REL_AMD64_REL32 (4)
+# CHECK: Type: IMAGE_REL_AMD64_REL32_1 (5)
+# CHECK: Type: IMAGE_REL_AMD64_REL32_2 (6)
+# CHECK: Type: IMAGE_REL_AMD64_REL32_3 (7)
+# CHECK: Type: IMAGE_REL_AMD64_REL32_4 (8)
+# CHECK: Type: IMAGE_REL_AMD64_REL32_5 (9)
+# CHECK: Type: IMAGE_REL_AMD64_SECTION (10)
+# CHECK: Type: IMAGE_REL_AMD64_SECREL (11)
+# CHECK: Type: IMAGE_REL_AMD64_SECREL7 (12)
+# CHECK: Type: IMAGE_REL_AMD64_TOKEN (13)
+# CHECK: Type: IMAGE_REL_AMD64_SREL32 (14)
+# CHECK: Type: IMAGE_REL_AMD64_PAIR (15)
+# CHECK: Type: IMAGE_REL_AMD64_SSPAN32 (16)
+
+--- !COFF
+header:
+  Machine:         IMAGE_FILE_MACHINE_AMD64
+  Characteristics: [  ]
+sections:
+  - Name:            .text
+    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
+    Alignment:       4
+    SectionData:     00
+    Relocations:
+      - VirtualAddress: 4
+        Type:           IMAGE_REL_AMD64_ABSOLUTE
+      - VirtualAddress: 12
+        Type:           IMAGE_REL_AMD64_ADDR64
+      - VirtualAddress: 20
+        Type:           IMAGE_REL_AMD64_ADDR32
+      - VirtualAddress: 28
+        Type:           IMAGE_REL_AMD64_ADDR32NB
+      - VirtualAddress: 36
+        Type:           IMAGE_REL_AMD64_REL32
+      - VirtualAddress: 44
+        Type:           IMAGE_REL_AMD64_REL32_1
+      - VirtualAddress: 52
+        Type:           IMAGE_REL_AMD64_REL32_2
+      - VirtualAddress: 60
+        Type:           IMAGE_REL_AMD64_REL32_3
+      - VirtualAddress: 68
+        Type:           IMAGE_REL_AMD64_REL32_4
+      - VirtualAddress: 76
+        Type:           IMAGE_REL_AMD64_REL32_5
+      - VirtualAddress: 84
+        Type:           IMAGE_REL_AMD64_SECTION
+      - VirtualAddress: 92
+        Type:           IMAGE_REL_AMD64_SECREL
+      - VirtualAddress: 100
+        Type:           IMAGE_REL_AMD64_SECREL7
+      - VirtualAddress: 108
+        Type:           IMAGE_REL_AMD64_TOKEN
+      - VirtualAddress: 116
+        Type:           IMAGE_REL_AMD64_SREL32
+      - VirtualAddress: 124
+        Type:           IMAGE_REL_AMD64_PAIR
+      - VirtualAddress: 132
+        Type:           IMAGE_REL_AMD64_SSPAN32
+symbols:
+  - Name:            .text
+    Value:           0
+    SectionNumber:   1
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_NULL
+    StorageClass:    IMAGE_SYM_CLASS_STATIC
+    SectionDefinition: 
+      Length:          136
+      NumberOfRelocations: 17
+      NumberOfLinenumbers: 0
+      CheckSum:        0
+      Number:          1
diff --git a/llvm/test/tools/llvm-readobj/reloc-types-elf-aarch64.test b/llvm/test/tools/llvm-readobj/reloc-types-elf-aarch64.test
new file mode 100644 (file)
index 0000000..ba9cc7d
--- /dev/null
@@ -0,0 +1,393 @@
+## Test that llvm-readobj/llvm-readelf shows proper relocation type
+## names and values for aarch64 target.
+
+# RUN: yaml2obj %s -o %t-aarch64.o
+# RUN: llvm-readobj -r --expand-relocs %t-aarch64.o | FileCheck %s
+
+# CHECK: Type: R_AARCH64_NONE (0)
+# CHECK: Type: R_AARCH64_ABS64 (257)
+# CHECK: Type: R_AARCH64_ABS32 (258)
+# CHECK: Type: R_AARCH64_ABS16 (259)
+# CHECK: Type: R_AARCH64_PREL64 (260)
+# CHECK: Type: R_AARCH64_PREL32 (261)
+# CHECK: Type: R_AARCH64_PREL16 (262)
+# CHECK: Type: R_AARCH64_MOVW_UABS_G0 (263)
+# CHECK: Type: R_AARCH64_MOVW_UABS_G0_NC (264)
+# CHECK: Type: R_AARCH64_MOVW_UABS_G1 (265)
+# CHECK: Type: R_AARCH64_MOVW_UABS_G1_NC (266)
+# CHECK: Type: R_AARCH64_MOVW_UABS_G2 (267)
+# CHECK: Type: R_AARCH64_MOVW_UABS_G2_NC (268)
+# CHECK: Type: R_AARCH64_MOVW_UABS_G3 (269)
+# CHECK: Type: R_AARCH64_MOVW_SABS_G0 (270)
+# CHECK: Type: R_AARCH64_MOVW_SABS_G1 (271)
+# CHECK: Type: R_AARCH64_MOVW_SABS_G2 (272)
+# CHECK: Type: R_AARCH64_LD_PREL_LO19 (273)
+# CHECK: Type: R_AARCH64_ADR_PREL_LO21 (274)
+# CHECK: Type: R_AARCH64_ADR_PREL_PG_HI21 (275)
+# CHECK: Type: R_AARCH64_ADR_PREL_PG_HI21_NC (276)
+# CHECK: Type: R_AARCH64_ADD_ABS_LO12_NC (277)
+# CHECK: Type: R_AARCH64_LDST8_ABS_LO12_NC (278)
+# CHECK: Type: R_AARCH64_TSTBR14 (279)
+# CHECK: Type: R_AARCH64_CONDBR19 (280)
+# CHECK: Type: R_AARCH64_JUMP26 (282)
+# CHECK: Type: R_AARCH64_CALL26 (283)
+# CHECK: Type: R_AARCH64_LDST16_ABS_LO12_NC (284)
+# CHECK: Type: R_AARCH64_LDST32_ABS_LO12_NC (285)
+# CHECK: Type: R_AARCH64_LDST64_ABS_LO12_NC (286)
+# CHECK: Type: R_AARCH64_MOVW_PREL_G0 (287)
+# CHECK: Type: R_AARCH64_MOVW_PREL_G0_NC (288)
+# CHECK: Type: R_AARCH64_MOVW_PREL_G1 (289)
+# CHECK: Type: R_AARCH64_MOVW_PREL_G1_NC (290)
+# CHECK: Type: R_AARCH64_MOVW_PREL_G2 (291)
+# CHECK: Type: R_AARCH64_MOVW_PREL_G2_NC (292)
+# CHECK: Type: R_AARCH64_MOVW_PREL_G3 (293)
+# CHECK: Type: R_AARCH64_LDST128_ABS_LO12_NC (299)
+# CHECK: Type: R_AARCH64_MOVW_GOTOFF_G0 (300)
+# CHECK: Type: R_AARCH64_MOVW_GOTOFF_G0_NC (301)
+# CHECK: Type: R_AARCH64_MOVW_GOTOFF_G1 (302)
+# CHECK: Type: R_AARCH64_MOVW_GOTOFF_G1_NC (303)
+# CHECK: Type: R_AARCH64_MOVW_GOTOFF_G2 (304)
+# CHECK: Type: R_AARCH64_MOVW_GOTOFF_G2_NC (305)
+# CHECK: Type: R_AARCH64_MOVW_GOTOFF_G3 (306)
+# CHECK: Type: R_AARCH64_GOTREL64 (307)
+# CHECK: Type: R_AARCH64_GOTREL32 (308)
+# CHECK: Type: R_AARCH64_GOT_LD_PREL19 (309)
+# CHECK: Type: R_AARCH64_LD64_GOTOFF_LO15 (310)
+# CHECK: Type: R_AARCH64_ADR_GOT_PAGE (311)
+# CHECK: Type: R_AARCH64_LD64_GOT_LO12_NC (312)
+# CHECK: Type: R_AARCH64_LD64_GOTPAGE_LO15 (313)
+# CHECK: Type: R_AARCH64_TLSGD_ADR_PREL21 (512)
+# CHECK: Type: R_AARCH64_TLSGD_ADR_PAGE21 (513)
+# CHECK: Type: R_AARCH64_TLSGD_ADD_LO12_NC (514)
+# CHECK: Type: R_AARCH64_TLSGD_MOVW_G1 (515)
+# CHECK: Type: R_AARCH64_TLSGD_MOVW_G0_NC (516)
+# CHECK: Type: R_AARCH64_TLSLD_ADR_PREL21 (517)
+# CHECK: Type: R_AARCH64_TLSLD_ADR_PAGE21 (518)
+# CHECK: Type: R_AARCH64_TLSLD_ADD_LO12_NC (519)
+# CHECK: Type: R_AARCH64_TLSLD_MOVW_G1 (520)
+# CHECK: Type: R_AARCH64_TLSLD_MOVW_G0_NC (521)
+# CHECK: Type: R_AARCH64_TLSLD_LD_PREL19 (522)
+# CHECK: Type: R_AARCH64_TLSLD_MOVW_DTPREL_G2 (523)
+# CHECK: Type: R_AARCH64_TLSLD_MOVW_DTPREL_G1 (524)
+# CHECK: Type: R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC (525)
+# CHECK: Type: R_AARCH64_TLSLD_MOVW_DTPREL_G0 (526)
+# CHECK: Type: R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC (527)
+# CHECK: Type: R_AARCH64_TLSLD_ADD_DTPREL_HI12 (528)
+# CHECK: Type: R_AARCH64_TLSLD_ADD_DTPREL_LO12 (529)
+# CHECK: Type: R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC (530)
+# CHECK: Type: R_AARCH64_TLSLD_LDST8_DTPREL_LO12 (531)
+# CHECK: Type: R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC (532)
+# CHECK: Type: R_AARCH64_TLSLD_LDST16_DTPREL_LO12 (533)
+# CHECK: Type: R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC (534)
+# CHECK: Type: R_AARCH64_TLSLD_LDST32_DTPREL_LO12 (535)
+# CHECK: Type: R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC (536)
+# CHECK: Type: R_AARCH64_TLSLD_LDST64_DTPREL_LO12 (537)
+# CHECK: Type: R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC (538)
+# CHECK: Type: R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 (539)
+# CHECK: Type: R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC (540)
+# CHECK: Type: R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 (541)
+# CHECK: Type: R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC (542)
+# CHECK: Type: R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 (543)
+# CHECK: Type: R_AARCH64_TLSLE_MOVW_TPREL_G2 (544)
+# CHECK: Type: R_AARCH64_TLSLE_MOVW_TPREL_G1 (545)
+# CHECK: Type: R_AARCH64_TLSLE_MOVW_TPREL_G1_NC (546)
+# CHECK: Type: R_AARCH64_TLSLE_MOVW_TPREL_G0 (547)
+# CHECK: Type: R_AARCH64_TLSLE_MOVW_TPREL_G0_NC (548)
+# CHECK: Type: R_AARCH64_TLSLE_ADD_TPREL_HI12 (549)
+# CHECK: Type: R_AARCH64_TLSLE_ADD_TPREL_LO12 (550)
+# CHECK: Type: R_AARCH64_TLSLE_ADD_TPREL_LO12_NC (551)
+# CHECK: Type: R_AARCH64_TLSLE_LDST8_TPREL_LO12 (552)
+# CHECK: Type: R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC (553)
+# CHECK: Type: R_AARCH64_TLSLE_LDST16_TPREL_LO12 (554)
+# CHECK: Type: R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC (555)
+# CHECK: Type: R_AARCH64_TLSLE_LDST32_TPREL_LO12 (556)
+# CHECK: Type: R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC (557)
+# CHECK: Type: R_AARCH64_TLSLE_LDST64_TPREL_LO12 (558)
+# CHECK: Type: R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC (559)
+# CHECK: Type: R_AARCH64_TLSDESC_LD_PREL19 (560)
+# CHECK: Type: R_AARCH64_TLSDESC_ADR_PREL21 (561)
+# CHECK: Type: R_AARCH64_TLSDESC_ADR_PAGE21 (562)
+# CHECK: Type: R_AARCH64_TLSDESC_LD64_LO12 (563)
+# CHECK: Type: R_AARCH64_TLSDESC_ADD_LO12 (564)
+# CHECK: Type: R_AARCH64_TLSDESC_OFF_G1 (565)
+# CHECK: Type: R_AARCH64_TLSDESC_OFF_G0_NC (566)
+# CHECK: Type: R_AARCH64_TLSDESC_LDR (567)
+# CHECK: Type: R_AARCH64_TLSDESC_ADD (568)
+# CHECK: Type: R_AARCH64_TLSDESC_CALL (569)
+# CHECK: Type: R_AARCH64_TLSLE_LDST128_TPREL_LO12 (570)
+# CHECK: Type: R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC (571)
+# CHECK: Type: R_AARCH64_TLSLD_LDST128_DTPREL_LO12 (572)
+# CHECK: Type: R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC (573)
+# CHECK: Type: R_AARCH64_COPY (1024)
+# CHECK: Type: R_AARCH64_GLOB_DAT (1025)
+# CHECK: Type: R_AARCH64_JUMP_SLOT (1026)
+# CHECK: Type: R_AARCH64_RELATIVE (1027)
+# CHECK: Type: R_AARCH64_TLS_DTPREL64 (1028)
+# CHECK: Type: R_AARCH64_TLS_DTPMOD64 (1029)
+# CHECK: Type: R_AARCH64_TLS_TPREL64 (1030)
+# CHECK: Type: R_AARCH64_TLSDESC (1031)
+# CHECK: Type: R_AARCH64_IRELATIVE (1032)
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS64
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_AARCH64
+Sections:
+  - Name:    .text
+    Type:    SHT_PROGBITS
+    Content: 00
+  - Name:         .rela.text
+    Type:         SHT_RELA
+    Link:         .symtab
+    AddressAlign: 0x0000000000000008
+    EntSize:      0x0000000000000018
+    Info:         .text
+    Relocations:
+      - Offset: 0x0000000000000000
+        Type:   R_AARCH64_NONE
+      - Offset: 0x0000000000000004
+        Type:   R_AARCH64_ABS64
+      - Offset: 0x0000000000000008
+        Type:   R_AARCH64_ABS32
+      - Offset: 0x000000000000000C
+        Type:   R_AARCH64_ABS16
+      - Offset: 0x0000000000000010
+        Type:   R_AARCH64_PREL64
+      - Offset: 0x0000000000000014
+        Type:   R_AARCH64_PREL32
+      - Offset: 0x0000000000000018
+        Type:   R_AARCH64_PREL16
+      - Offset: 0x000000000000001C
+        Type:   R_AARCH64_MOVW_UABS_G0
+      - Offset: 0x0000000000000020
+        Type:   R_AARCH64_MOVW_UABS_G0_NC
+      - Offset: 0x0000000000000024
+        Type:   R_AARCH64_MOVW_UABS_G1
+      - Offset: 0x0000000000000028
+        Type:   R_AARCH64_MOVW_UABS_G1_NC
+      - Offset: 0x000000000000002C
+        Type:   R_AARCH64_MOVW_UABS_G2
+      - Offset: 0x0000000000000030
+        Type:   R_AARCH64_MOVW_UABS_G2_NC
+      - Offset: 0x0000000000000034
+        Type:   R_AARCH64_MOVW_UABS_G3
+      - Offset: 0x0000000000000038
+        Type:   R_AARCH64_MOVW_SABS_G0
+      - Offset: 0x000000000000003C
+        Type:   R_AARCH64_MOVW_SABS_G1
+      - Offset: 0x0000000000000040
+        Type:   R_AARCH64_MOVW_SABS_G2
+      - Offset: 0x0000000000000044
+        Type:   R_AARCH64_LD_PREL_LO19
+      - Offset: 0x0000000000000048
+        Type:   R_AARCH64_ADR_PREL_LO21
+      - Offset: 0x000000000000004C
+        Type:   R_AARCH64_ADR_PREL_PG_HI21
+      - Offset: 0x0000000000000050
+        Type:   R_AARCH64_ADR_PREL_PG_HI21_NC
+      - Offset: 0x0000000000000054
+        Type:   R_AARCH64_ADD_ABS_LO12_NC
+      - Offset: 0x0000000000000058
+        Type:   R_AARCH64_LDST8_ABS_LO12_NC
+      - Offset: 0x000000000000005C
+        Type:   R_AARCH64_TSTBR14
+      - Offset: 0x0000000000000060
+        Type:   R_AARCH64_CONDBR19
+      - Offset: 0x0000000000000064
+        Type:   R_AARCH64_JUMP26
+      - Offset: 0x0000000000000068
+        Type:   R_AARCH64_CALL26
+      - Offset: 0x000000000000006C
+        Type:   R_AARCH64_LDST16_ABS_LO12_NC
+      - Offset: 0x0000000000000070
+        Type:   R_AARCH64_LDST32_ABS_LO12_NC
+      - Offset: 0x0000000000000074
+        Type:   R_AARCH64_LDST64_ABS_LO12_NC
+      - Offset: 0x0000000000000078
+        Type:   R_AARCH64_MOVW_PREL_G0
+      - Offset: 0x000000000000007C
+        Type:   R_AARCH64_MOVW_PREL_G0_NC
+      - Offset: 0x0000000000000080
+        Type:   R_AARCH64_MOVW_PREL_G1
+      - Offset: 0x0000000000000084
+        Type:   R_AARCH64_MOVW_PREL_G1_NC
+      - Offset: 0x0000000000000088
+        Type:   R_AARCH64_MOVW_PREL_G2
+      - Offset: 0x000000000000008C
+        Type:   R_AARCH64_MOVW_PREL_G2_NC
+      - Offset: 0x0000000000000090
+        Type:   R_AARCH64_MOVW_PREL_G3
+      - Offset: 0x0000000000000094
+        Type:   R_AARCH64_LDST128_ABS_LO12_NC
+      - Offset: 0x0000000000000098
+        Type:   R_AARCH64_MOVW_GOTOFF_G0
+      - Offset: 0x000000000000009C
+        Type:   R_AARCH64_MOVW_GOTOFF_G0_NC
+      - Offset: 0x00000000000000A0
+        Type:   R_AARCH64_MOVW_GOTOFF_G1
+      - Offset: 0x00000000000000A4
+        Type:   R_AARCH64_MOVW_GOTOFF_G1_NC
+      - Offset: 0x00000000000000A8
+        Type:   R_AARCH64_MOVW_GOTOFF_G2
+      - Offset: 0x00000000000000AC
+        Type:   R_AARCH64_MOVW_GOTOFF_G2_NC
+      - Offset: 0x00000000000000B0
+        Type:   R_AARCH64_MOVW_GOTOFF_G3
+      - Offset: 0x00000000000000B4
+        Type:   R_AARCH64_GOTREL64
+      - Offset: 0x00000000000000B8
+        Type:   R_AARCH64_GOTREL32
+      - Offset: 0x00000000000000BC
+        Type:   R_AARCH64_GOT_LD_PREL19
+      - Offset: 0x00000000000000C0
+        Type:   R_AARCH64_LD64_GOTOFF_LO15
+      - Offset: 0x00000000000000C4
+        Type:   R_AARCH64_ADR_GOT_PAGE
+      - Offset: 0x00000000000000C8
+        Type:   R_AARCH64_LD64_GOT_LO12_NC
+      - Offset: 0x00000000000000CC
+        Type:   R_AARCH64_LD64_GOTPAGE_LO15
+      - Offset: 0x00000000000000D0
+        Type:   R_AARCH64_TLSGD_ADR_PREL21
+      - Offset: 0x00000000000000D4
+        Type:   R_AARCH64_TLSGD_ADR_PAGE21
+      - Offset: 0x00000000000000D8
+        Type:   R_AARCH64_TLSGD_ADD_LO12_NC
+      - Offset: 0x00000000000000DC
+        Type:   R_AARCH64_TLSGD_MOVW_G1
+      - Offset: 0x00000000000000E0
+        Type:   R_AARCH64_TLSGD_MOVW_G0_NC
+      - Offset: 0x00000000000000E4
+        Type:   R_AARCH64_TLSLD_ADR_PREL21
+      - Offset: 0x00000000000000E8
+        Type:   R_AARCH64_TLSLD_ADR_PAGE21
+      - Offset: 0x00000000000000EC
+        Type:   R_AARCH64_TLSLD_ADD_LO12_NC
+      - Offset: 0x00000000000000F0
+        Type:   R_AARCH64_TLSLD_MOVW_G1
+      - Offset: 0x00000000000000F4
+        Type:   R_AARCH64_TLSLD_MOVW_G0_NC
+      - Offset: 0x00000000000000F8
+        Type:   R_AARCH64_TLSLD_LD_PREL19
+      - Offset: 0x00000000000000FC
+        Type:   R_AARCH64_TLSLD_MOVW_DTPREL_G2
+      - Offset: 0x0000000000000100
+        Type:   R_AARCH64_TLSLD_MOVW_DTPREL_G1
+      - Offset: 0x0000000000000104
+        Type:   R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC
+      - Offset: 0x0000000000000108
+        Type:   R_AARCH64_TLSLD_MOVW_DTPREL_G0
+      - Offset: 0x000000000000010C
+        Type:   R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC
+      - Offset: 0x0000000000000110
+        Type:   R_AARCH64_TLSLD_ADD_DTPREL_HI12
+      - Offset: 0x0000000000000114
+        Type:   R_AARCH64_TLSLD_ADD_DTPREL_LO12
+      - Offset: 0x0000000000000118
+        Type:   R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC
+      - Offset: 0x000000000000011C
+        Type:   R_AARCH64_TLSLD_LDST8_DTPREL_LO12
+      - Offset: 0x0000000000000120
+        Type:   R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC
+      - Offset: 0x0000000000000124
+        Type:   R_AARCH64_TLSLD_LDST16_DTPREL_LO12
+      - Offset: 0x0000000000000128
+        Type:   R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC
+      - Offset: 0x000000000000012C
+        Type:   R_AARCH64_TLSLD_LDST32_DTPREL_LO12
+      - Offset: 0x0000000000000130
+        Type:   R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC
+      - Offset: 0x0000000000000134
+        Type:   R_AARCH64_TLSLD_LDST64_DTPREL_LO12
+      - Offset: 0x0000000000000138
+        Type:   R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC
+      - Offset: 0x000000000000013C
+        Type:   R_AARCH64_TLSIE_MOVW_GOTTPREL_G1
+      - Offset: 0x0000000000000140
+        Type:   R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC
+      - Offset: 0x0000000000000144
+        Type:   R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21
+      - Offset: 0x0000000000000148
+        Type:   R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC
+      - Offset: 0x000000000000014C
+        Type:   R_AARCH64_TLSIE_LD_GOTTPREL_PREL19
+      - Offset: 0x0000000000000150
+        Type:   R_AARCH64_TLSLE_MOVW_TPREL_G2
+      - Offset: 0x0000000000000154
+        Type:   R_AARCH64_TLSLE_MOVW_TPREL_G1
+      - Offset: 0x0000000000000158
+        Type:   R_AARCH64_TLSLE_MOVW_TPREL_G1_NC
+      - Offset: 0x000000000000015C
+        Type:   R_AARCH64_TLSLE_MOVW_TPREL_G0
+      - Offset: 0x0000000000000160
+        Type:   R_AARCH64_TLSLE_MOVW_TPREL_G0_NC
+      - Offset: 0x0000000000000164
+        Type:   R_AARCH64_TLSLE_ADD_TPREL_HI12
+      - Offset: 0x0000000000000168
+        Type:   R_AARCH64_TLSLE_ADD_TPREL_LO12
+      - Offset: 0x000000000000016C
+        Type:   R_AARCH64_TLSLE_ADD_TPREL_LO12_NC
+      - Offset: 0x0000000000000170
+        Type:   R_AARCH64_TLSLE_LDST8_TPREL_LO12
+      - Offset: 0x0000000000000174
+        Type:   R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC
+      - Offset: 0x0000000000000178
+        Type:   R_AARCH64_TLSLE_LDST16_TPREL_LO12
+      - Offset: 0x000000000000017C
+        Type:   R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC
+      - Offset: 0x0000000000000180
+        Type:   R_AARCH64_TLSLE_LDST32_TPREL_LO12
+      - Offset: 0x0000000000000184
+        Type:   R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC
+      - Offset: 0x0000000000000188
+        Type:   R_AARCH64_TLSLE_LDST64_TPREL_LO12
+      - Offset: 0x000000000000018C
+        Type:   R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC
+      - Offset: 0x0000000000000190
+        Type:   R_AARCH64_TLSDESC_LD_PREL19
+      - Offset: 0x0000000000000194
+        Type:   R_AARCH64_TLSDESC_ADR_PREL21
+      - Offset: 0x0000000000000198
+        Type:   R_AARCH64_TLSDESC_ADR_PAGE21
+      - Offset: 0x000000000000019C
+        Type:   R_AARCH64_TLSDESC_LD64_LO12
+      - Offset: 0x00000000000001A0
+        Type:   R_AARCH64_TLSDESC_ADD_LO12
+      - Offset: 0x00000000000001A4
+        Type:   R_AARCH64_TLSDESC_OFF_G1
+      - Offset: 0x00000000000001A8
+        Type:   R_AARCH64_TLSDESC_OFF_G0_NC
+      - Offset: 0x00000000000001AC
+        Type:   R_AARCH64_TLSDESC_LDR
+      - Offset: 0x00000000000001B0
+        Type:   R_AARCH64_TLSDESC_ADD
+      - Offset: 0x00000000000001B4
+        Type:   R_AARCH64_TLSDESC_CALL
+      - Offset: 0x00000000000001B8
+        Type:   R_AARCH64_TLSLE_LDST128_TPREL_LO12
+      - Offset: 0x00000000000001BC
+        Type:   R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC
+      - Offset: 0x00000000000001C0
+        Type:   R_AARCH64_TLSLD_LDST128_DTPREL_LO12
+      - Offset: 0x00000000000001C4
+        Type:   R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC
+      - Offset: 0x00000000000001C8
+        Type:   R_AARCH64_COPY
+      - Offset: 0x00000000000001CC
+        Type:   R_AARCH64_GLOB_DAT
+      - Offset: 0x00000000000001D0
+        Type:   R_AARCH64_JUMP_SLOT
+      - Offset: 0x00000000000001D4
+        Type:   R_AARCH64_RELATIVE
+      - Offset: 0x00000000000001D8
+        Type:   R_AARCH64_TLS_DTPREL64
+      - Offset: 0x00000000000001DC
+        Type:   R_AARCH64_TLS_DTPMOD64
+      - Offset: 0x00000000000001E0
+        Type:   R_AARCH64_TLS_TPREL64
+      - Offset: 0x00000000000001E4
+        Type:   R_AARCH64_TLSDESC
+      - Offset: 0x00000000000001E8
+        Type:   R_AARCH64_IRELATIVE
diff --git a/llvm/test/tools/llvm-readobj/reloc-types-elf-arm.test b/llvm/test/tools/llvm-readobj/reloc-types-elf-arm.test
new file mode 100644 (file)
index 0000000..6e29637
--- /dev/null
@@ -0,0 +1,420 @@
+## Test that llvm-readobj/llvm-readelf shows proper relocation type
+## names and values for arm target.
+
+# RUN: yaml2obj %s -o %t-arm.o
+# RUN: llvm-readobj -r --expand-relocs %t-arm.o | FileCheck %s
+
+# CHECK: Type: R_ARM_NONE (0)
+# CHECK: Type: R_ARM_PC24 (1)
+# CHECK: Type: R_ARM_ABS32 (2)
+# CHECK: Type: R_ARM_REL32 (3)
+# CHECK: Type: R_ARM_LDR_PC_G0 (4)
+# CHECK: Type: R_ARM_ABS16 (5)
+# CHECK: Type: R_ARM_ABS12 (6)
+# CHECK: Type: R_ARM_THM_ABS5 (7)
+# CHECK: Type: R_ARM_ABS8 (8)
+# CHECK: Type: R_ARM_SBREL32 (9)
+# CHECK: Type: R_ARM_THM_CALL (10)
+# CHECK: Type: R_ARM_THM_PC8 (11)
+# CHECK: Type: R_ARM_BREL_ADJ (12)
+# CHECK: Type: R_ARM_TLS_DESC (13)
+# CHECK: Type: R_ARM_THM_SWI8 (14)
+# CHECK: Type: R_ARM_XPC25 (15)
+# CHECK: Type: R_ARM_THM_XPC22 (16)
+# CHECK: Type: R_ARM_TLS_DTPMOD32 (17)
+# CHECK: Type: R_ARM_TLS_DTPOFF32 (18)
+# CHECK: Type: R_ARM_TLS_TPOFF32 (19)
+# CHECK: Type: R_ARM_COPY (20)
+# CHECK: Type: R_ARM_GLOB_DAT (21)
+# CHECK: Type: R_ARM_JUMP_SLOT (22)
+# CHECK: Type: R_ARM_RELATIVE (23)
+# CHECK: Type: R_ARM_GOTOFF32 (24)
+# CHECK: Type: R_ARM_BASE_PREL (25)
+# CHECK: Type: R_ARM_GOT_BREL (26)
+# CHECK: Type: R_ARM_CALL (28)
+# CHECK: Type: R_ARM_JUMP24 (29)
+# CHECK: Type: R_ARM_THM_JUMP24 (30)
+# CHECK: Type: R_ARM_BASE_ABS (31)
+# CHECK: Type: R_ARM_ALU_PCREL_7_0 (32)
+# CHECK: Type: R_ARM_ALU_PCREL_15_8 (33)
+# CHECK: Type: R_ARM_ALU_PCREL_23_15 (34)
+# CHECK: Type: R_ARM_LDR_SBREL_11_0_NC (35)
+# CHECK: Type: R_ARM_ALU_SBREL_19_12_NC (36)
+# CHECK: Type: R_ARM_ALU_SBREL_27_20_CK (37)
+# CHECK: Type: R_ARM_TARGET1 (38)
+# CHECK: Type: R_ARM_SBREL31 (39)
+# CHECK: Type: R_ARM_V4BX (40)
+# CHECK: Type: R_ARM_TARGET2 (41)
+# CHECK: Type: R_ARM_PREL31 (42)
+# CHECK: Type: R_ARM_MOVW_ABS_NC (43)
+# CHECK: Type: R_ARM_MOVT_ABS (44)
+# CHECK: Type: R_ARM_MOVW_PREL_NC (45)
+# CHECK: Type: R_ARM_MOVT_PREL (46)
+# CHECK: Type: R_ARM_THM_MOVW_ABS_NC (47)
+# CHECK: Type: R_ARM_THM_MOVT_ABS (48)
+# CHECK: Type: R_ARM_THM_MOVW_PREL_NC (49)
+# CHECK: Type: R_ARM_THM_MOVT_PREL (50)
+# CHECK: Type: R_ARM_THM_JUMP19 (51)
+# CHECK: Type: R_ARM_THM_JUMP6 (52)
+# CHECK: Type: R_ARM_THM_ALU_PREL_11_0 (53)
+# CHECK: Type: R_ARM_THM_PC12 (54)
+# CHECK: Type: R_ARM_ABS32_NOI (55)
+# CHECK: Type: R_ARM_REL32_NOI (56)
+# CHECK: Type: R_ARM_ALU_PC_G0_NC (57)
+# CHECK: Type: R_ARM_ALU_PC_G0 (58)
+# CHECK: Type: R_ARM_ALU_PC_G1_NC (59)
+# CHECK: Type: R_ARM_ALU_PC_G1 (60)
+# CHECK: Type: R_ARM_ALU_PC_G2 (61)
+# CHECK: Type: R_ARM_LDR_PC_G1 (62)
+# CHECK: Type: R_ARM_LDR_PC_G2 (63)
+# CHECK: Type: R_ARM_LDRS_PC_G0 (64)
+# CHECK: Type: R_ARM_LDRS_PC_G1 (65)
+# CHECK: Type: R_ARM_LDRS_PC_G2 (66)
+# CHECK: Type: R_ARM_LDC_PC_G0 (67)
+# CHECK: Type: R_ARM_LDC_PC_G1 (68)
+# CHECK: Type: R_ARM_LDC_PC_G2 (69)
+# CHECK: Type: R_ARM_ALU_SB_G0_NC (70)
+# CHECK: Type: R_ARM_ALU_SB_G0 (71)
+# CHECK: Type: R_ARM_ALU_SB_G1_NC (72)
+# CHECK: Type: R_ARM_ALU_SB_G1 (73)
+# CHECK: Type: R_ARM_ALU_SB_G2 (74)
+# CHECK: Type: R_ARM_LDR_SB_G0 (75)
+# CHECK: Type: R_ARM_LDR_SB_G1 (76)
+# CHECK: Type: R_ARM_LDR_SB_G2 (77)
+# CHECK: Type: R_ARM_LDRS_SB_G0 (78)
+# CHECK: Type: R_ARM_LDRS_SB_G1 (79)
+# CHECK: Type: R_ARM_LDRS_SB_G2 (80)
+# CHECK: Type: R_ARM_LDC_SB_G0 (81)
+# CHECK: Type: R_ARM_LDC_SB_G1 (82)
+# CHECK: Type: R_ARM_LDC_SB_G2 (83)
+# CHECK: Type: R_ARM_MOVW_BREL_NC (84)
+# CHECK: Type: R_ARM_MOVT_BREL (85)
+# CHECK: Type: R_ARM_MOVW_BREL (86)
+# CHECK: Type: R_ARM_THM_MOVW_BREL_NC (87)
+# CHECK: Type: R_ARM_THM_MOVT_BREL (88)
+# CHECK: Type: R_ARM_THM_MOVW_BREL (89)
+# CHECK: Type: R_ARM_TLS_GOTDESC (90)
+# CHECK: Type: R_ARM_TLS_CALL (91)
+# CHECK: Type: R_ARM_TLS_DESCSEQ (92)
+# CHECK: Type: R_ARM_THM_TLS_CALL (93)
+# CHECK: Type: R_ARM_PLT32_ABS (94)
+# CHECK: Type: R_ARM_GOT_ABS (95)
+# CHECK: Type: R_ARM_GOT_PREL (96)
+# CHECK: Type: R_ARM_GOT_BREL12 (97)
+# CHECK: Type: R_ARM_GOTOFF12 (98)
+# CHECK: Type: R_ARM_GOTRELAX (99)
+# CHECK: Type: R_ARM_GNU_VTENTRY (100)
+# CHECK: Type: R_ARM_GNU_VTINHERIT (101)
+# CHECK: Type: R_ARM_THM_JUMP11 (102)
+# CHECK: Type: R_ARM_THM_JUMP8 (103)
+# CHECK: Type: R_ARM_TLS_GD32 (104)
+# CHECK: Type: R_ARM_TLS_LDM32 (105)
+# CHECK: Type: R_ARM_TLS_LDO32 (106)
+# CHECK: Type: R_ARM_TLS_IE32 (107)
+# CHECK: Type: R_ARM_TLS_LE32 (108)
+# CHECK: Type: R_ARM_TLS_LDO12 (109)
+# CHECK: Type: R_ARM_TLS_LE12 (110)
+# CHECK: Type: R_ARM_TLS_IE12GP (111)
+# CHECK: Type: R_ARM_PRIVATE_0 (112)
+# CHECK: Type: R_ARM_PRIVATE_1 (113)
+# CHECK: Type: R_ARM_PRIVATE_2 (114)
+# CHECK: Type: R_ARM_PRIVATE_3 (115)
+# CHECK: Type: R_ARM_PRIVATE_4 (116)
+# CHECK: Type: R_ARM_PRIVATE_5 (117)
+# CHECK: Type: R_ARM_PRIVATE_6 (118)
+# CHECK: Type: R_ARM_PRIVATE_7 (119)
+# CHECK: Type: R_ARM_PRIVATE_8 (120)
+# CHECK: Type: R_ARM_PRIVATE_9 (121)
+# CHECK: Type: R_ARM_PRIVATE_10 (122)
+# CHECK: Type: R_ARM_PRIVATE_11 (123)
+# CHECK: Type: R_ARM_PRIVATE_12 (124)
+# CHECK: Type: R_ARM_PRIVATE_13 (125)
+# CHECK: Type: R_ARM_PRIVATE_14 (126)
+# CHECK: Type: R_ARM_PRIVATE_15 (127)
+# CHECK: Type: R_ARM_ME_TOO (128)
+# CHECK: Type: R_ARM_THM_TLS_DESCSEQ16 (129)
+# CHECK: Type: R_ARM_THM_TLS_DESCSEQ32 (130)
+# CHECK: Type: R_ARM_IRELATIVE (160)
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_ARM
+  Flags:   [ EF_ARM_EABI_VER5 ]
+Sections:
+  - Name:    .text
+    Type:    SHT_PROGBITS
+    Content: 00
+  - Name:         .rel.text
+    Type:         SHT_REL
+    Link:         .symtab
+    AddressAlign: 0x0000000000000004
+    EntSize:      0x0000000000000008
+    Info:         .text
+    Relocations:
+      - Offset: 0x0000000000000000
+        Type:   R_ARM_NONE
+      - Offset: 0x0000000000000004
+        Type:   R_ARM_PC24
+      - Offset: 0x0000000000000008
+        Type:   R_ARM_ABS32
+      - Offset: 0x000000000000000C
+        Type:   R_ARM_REL32
+      - Offset: 0x0000000000000010
+        Type:   R_ARM_LDR_PC_G0
+      - Offset: 0x0000000000000014
+        Type:   R_ARM_ABS16
+      - Offset: 0x0000000000000018
+        Type:   R_ARM_ABS12
+      - Offset: 0x000000000000001C
+        Type:   R_ARM_THM_ABS5
+      - Offset: 0x0000000000000020
+        Type:   R_ARM_ABS8
+      - Offset: 0x0000000000000024
+        Type:   R_ARM_SBREL32
+      - Offset: 0x0000000000000028
+        Type:   R_ARM_THM_CALL
+      - Offset: 0x000000000000002C
+        Type:   R_ARM_THM_PC8
+      - Offset: 0x0000000000000030
+        Type:   R_ARM_BREL_ADJ
+      - Offset: 0x0000000000000034
+        Type:   R_ARM_TLS_DESC
+      - Offset: 0x0000000000000038
+        Type:   R_ARM_THM_SWI8
+      - Offset: 0x000000000000003C
+        Type:   R_ARM_XPC25
+      - Offset: 0x0000000000000040
+        Type:   R_ARM_THM_XPC22
+      - Offset: 0x0000000000000044
+        Type:   R_ARM_TLS_DTPMOD32
+      - Offset: 0x0000000000000048
+        Type:   R_ARM_TLS_DTPOFF32
+      - Offset: 0x000000000000004C
+        Type:   R_ARM_TLS_TPOFF32
+      - Offset: 0x0000000000000050
+        Type:   R_ARM_COPY
+      - Offset: 0x0000000000000054
+        Type:   R_ARM_GLOB_DAT
+      - Offset: 0x0000000000000058
+        Type:   R_ARM_JUMP_SLOT
+      - Offset: 0x000000000000005C
+        Type:   R_ARM_RELATIVE
+      - Offset: 0x0000000000000060
+        Type:   R_ARM_GOTOFF32
+      - Offset: 0x0000000000000064
+        Type:   R_ARM_BASE_PREL
+      - Offset: 0x0000000000000068
+        Type:   R_ARM_GOT_BREL
+      - Offset: 0x000000000000006C
+        Type:   R_ARM_PLT32
+      - Offset: 0x0000000000000070
+        Type:   R_ARM_CALL
+      - Offset: 0x0000000000000074
+        Type:   R_ARM_JUMP24
+      - Offset: 0x0000000000000078
+        Type:   R_ARM_THM_JUMP24
+      - Offset: 0x000000000000007C
+        Type:   R_ARM_BASE_ABS
+      - Offset: 0x0000000000000080
+        Type:   R_ARM_ALU_PCREL_7_0
+      - Offset: 0x0000000000000084
+        Type:   R_ARM_ALU_PCREL_15_8
+      - Offset: 0x0000000000000088
+        Type:   R_ARM_ALU_PCREL_23_15
+      - Offset: 0x000000000000008C
+        Type:   R_ARM_LDR_SBREL_11_0_NC
+      - Offset: 0x0000000000000090
+        Type:   R_ARM_ALU_SBREL_19_12_NC
+      - Offset: 0x0000000000000094
+        Type:   R_ARM_ALU_SBREL_27_20_CK
+      - Offset: 0x0000000000000098
+        Type:   R_ARM_TARGET1
+      - Offset: 0x000000000000009C
+        Type:   R_ARM_SBREL31
+      - Offset: 0x00000000000000A0
+        Type:   R_ARM_V4BX
+      - Offset: 0x00000000000000A4
+        Type:   R_ARM_TARGET2
+      - Offset: 0x00000000000000A8
+        Type:   R_ARM_PREL31
+      - Offset: 0x00000000000000AC
+        Type:   R_ARM_MOVW_ABS_NC
+      - Offset: 0x00000000000000B0
+        Type:   R_ARM_MOVT_ABS
+      - Offset: 0x00000000000000B4
+        Type:   R_ARM_MOVW_PREL_NC
+      - Offset: 0x00000000000000B8
+        Type:   R_ARM_MOVT_PREL
+      - Offset: 0x00000000000000BC
+        Type:   R_ARM_THM_MOVW_ABS_NC
+      - Offset: 0x00000000000000C0
+        Type:   R_ARM_THM_MOVT_ABS
+      - Offset: 0x00000000000000C4
+        Type:   R_ARM_THM_MOVW_PREL_NC
+      - Offset: 0x00000000000000C8
+        Type:   R_ARM_THM_MOVT_PREL
+      - Offset: 0x00000000000000CC
+        Type:   R_ARM_THM_JUMP19
+      - Offset: 0x00000000000000D0
+        Type:   R_ARM_THM_JUMP6
+      - Offset: 0x00000000000000D4
+        Type:   R_ARM_THM_ALU_PREL_11_0
+      - Offset: 0x00000000000000D8
+        Type:   R_ARM_THM_PC12
+      - Offset: 0x00000000000000DC
+        Type:   R_ARM_ABS32_NOI
+      - Offset: 0x00000000000000E0
+        Type:   R_ARM_REL32_NOI
+      - Offset: 0x00000000000000E4
+        Type:   R_ARM_ALU_PC_G0_NC
+      - Offset: 0x00000000000000E8
+        Type:   R_ARM_ALU_PC_G0
+      - Offset: 0x00000000000000EC
+        Type:   R_ARM_ALU_PC_G1_NC
+      - Offset: 0x00000000000000F0
+        Type:   R_ARM_ALU_PC_G1
+      - Offset: 0x00000000000000F4
+        Type:   R_ARM_ALU_PC_G2
+      - Offset: 0x00000000000000F8
+        Type:   R_ARM_LDR_PC_G1
+      - Offset: 0x00000000000000FC
+        Type:   R_ARM_LDR_PC_G2
+      - Offset: 0x0000000000000100
+        Type:   R_ARM_LDRS_PC_G0
+      - Offset: 0x0000000000000104
+        Type:   R_ARM_LDRS_PC_G1
+      - Offset: 0x0000000000000108
+        Type:   R_ARM_LDRS_PC_G2
+      - Offset: 0x000000000000010C
+        Type:   R_ARM_LDC_PC_G0
+      - Offset: 0x0000000000000110
+        Type:   R_ARM_LDC_PC_G1
+      - Offset: 0x0000000000000114
+        Type:   R_ARM_LDC_PC_G2
+      - Offset: 0x0000000000000118
+        Type:   R_ARM_ALU_SB_G0_NC
+      - Offset: 0x000000000000011C
+        Type:   R_ARM_ALU_SB_G0
+      - Offset: 0x0000000000000120
+        Type:   R_ARM_ALU_SB_G1_NC
+      - Offset: 0x0000000000000124
+        Type:   R_ARM_ALU_SB_G1
+      - Offset: 0x0000000000000128
+        Type:   R_ARM_ALU_SB_G2
+      - Offset: 0x000000000000012C
+        Type:   R_ARM_LDR_SB_G0
+      - Offset: 0x0000000000000130
+        Type:   R_ARM_LDR_SB_G1
+      - Offset: 0x0000000000000134
+        Type:   R_ARM_LDR_SB_G2
+      - Offset: 0x0000000000000138
+        Type:   R_ARM_LDRS_SB_G0
+      - Offset: 0x000000000000013C
+        Type:   R_ARM_LDRS_SB_G1
+      - Offset: 0x0000000000000140
+        Type:   R_ARM_LDRS_SB_G2
+      - Offset: 0x0000000000000144
+        Type:   R_ARM_LDC_SB_G0
+      - Offset: 0x0000000000000148
+        Type:   R_ARM_LDC_SB_G1
+      - Offset: 0x000000000000014C
+        Type:   R_ARM_LDC_SB_G2
+      - Offset: 0x0000000000000150
+        Type:   R_ARM_MOVW_BREL_NC
+      - Offset: 0x0000000000000154
+        Type:   R_ARM_MOVT_BREL
+      - Offset: 0x0000000000000158
+        Type:   R_ARM_MOVW_BREL
+      - Offset: 0x000000000000015C
+        Type:   R_ARM_THM_MOVW_BREL_NC
+      - Offset: 0x0000000000000160
+        Type:   R_ARM_THM_MOVT_BREL
+      - Offset: 0x0000000000000164
+        Type:   R_ARM_THM_MOVW_BREL
+      - Offset: 0x0000000000000168
+        Type:   R_ARM_TLS_GOTDESC
+      - Offset: 0x000000000000016C
+        Type:   R_ARM_TLS_CALL
+      - Offset: 0x0000000000000170
+        Type:   R_ARM_TLS_DESCSEQ
+      - Offset: 0x0000000000000174
+        Type:   R_ARM_THM_TLS_CALL
+      - Offset: 0x0000000000000178
+        Type:   R_ARM_PLT32_ABS
+      - Offset: 0x000000000000017C
+        Type:   R_ARM_GOT_ABS
+      - Offset: 0x0000000000000180
+        Type:   R_ARM_GOT_PREL
+      - Offset: 0x0000000000000184
+        Type:   R_ARM_GOT_BREL12
+      - Offset: 0x0000000000000188
+        Type:   R_ARM_GOTOFF12
+      - Offset: 0x000000000000018C
+        Type:   R_ARM_GOTRELAX
+      - Offset: 0x0000000000000190
+        Type:   R_ARM_GNU_VTENTRY
+      - Offset: 0x0000000000000194
+        Type:   R_ARM_GNU_VTINHERIT
+      - Offset: 0x0000000000000198
+        Type:   R_ARM_THM_JUMP11
+      - Offset: 0x000000000000019C
+        Type:   R_ARM_THM_JUMP8
+      - Offset: 0x00000000000001A0
+        Type:   R_ARM_TLS_GD32
+      - Offset: 0x00000000000001A4
+        Type:   R_ARM_TLS_LDM32
+      - Offset: 0x00000000000001A8
+        Type:   R_ARM_TLS_LDO32
+      - Offset: 0x00000000000001AC
+        Type:   R_ARM_TLS_IE32
+      - Offset: 0x00000000000001B0
+        Type:   R_ARM_TLS_LE32
+      - Offset: 0x00000000000001B4
+        Type:   R_ARM_TLS_LDO12
+      - Offset: 0x00000000000001B8
+        Type:   R_ARM_TLS_LE12
+      - Offset: 0x00000000000001BC
+        Type:   R_ARM_TLS_IE12GP
+      - Offset: 0x00000000000001C0
+        Type:   R_ARM_PRIVATE_0
+      - Offset: 0x00000000000001C4
+        Type:   R_ARM_PRIVATE_1
+      - Offset: 0x00000000000001C8
+        Type:   R_ARM_PRIVATE_2
+      - Offset: 0x00000000000001CC
+        Type:   R_ARM_PRIVATE_3
+      - Offset: 0x00000000000001D0
+        Type:   R_ARM_PRIVATE_4
+      - Offset: 0x00000000000001D4
+        Type:   R_ARM_PRIVATE_5
+      - Offset: 0x00000000000001D8
+        Type:   R_ARM_PRIVATE_6
+      - Offset: 0x00000000000001DC
+        Type:   R_ARM_PRIVATE_7
+      - Offset: 0x00000000000001E0
+        Type:   R_ARM_PRIVATE_8
+      - Offset: 0x00000000000001E4
+        Type:   R_ARM_PRIVATE_9
+      - Offset: 0x00000000000001E8
+        Type:   R_ARM_PRIVATE_10
+      - Offset: 0x00000000000001EC
+        Type:   R_ARM_PRIVATE_11
+      - Offset: 0x00000000000001F0
+        Type:   R_ARM_PRIVATE_12
+      - Offset: 0x00000000000001F4
+        Type:   R_ARM_PRIVATE_13
+      - Offset: 0x00000000000001F8
+        Type:   R_ARM_PRIVATE_14
+      - Offset: 0x00000000000001FC
+        Type:   R_ARM_PRIVATE_15
+      - Offset: 0x0000000000000200
+        Type:   R_ARM_ME_TOO
+      - Offset: 0x0000000000000204
+        Type:   R_ARM_THM_TLS_DESCSEQ16
+      - Offset: 0x0000000000000208
+        Type:   R_ARM_THM_TLS_DESCSEQ32
+      - Offset: 0x000000000000020C
+        Type:   R_ARM_IRELATIVE
diff --git a/llvm/test/tools/llvm-readobj/reloc-types-elf-i386.test b/llvm/test/tools/llvm-readobj/reloc-types-elf-i386.test
new file mode 100644 (file)
index 0000000..b968757
--- /dev/null
@@ -0,0 +1,148 @@
+## Test that llvm-readobj/llvm-readelf shows proper relocation type
+## names and values for i386 target.
+
+# RUN: yaml2obj %s -o %t-i386.o
+# RUN: llvm-readobj -r --expand-relocs %t-i386.o | FileCheck %s
+
+# CHECK: Type: R_386_NONE (0)
+# CHECK: Type: R_386_32 (1)
+# CHECK: Type: R_386_PC32 (2)
+# CHECK: Type: R_386_GOT32 (3)
+# CHECK: Type: R_386_PLT32 (4)
+# CHECK: Type: R_386_COPY (5)
+# CHECK: Type: R_386_GLOB_DAT (6)
+# CHECK: Type: R_386_JUMP_SLOT (7)
+# CHECK: Type: R_386_RELATIVE (8)
+# CHECK: Type: R_386_GOTOFF (9)
+# CHECK: Type: R_386_GOTPC (10)
+# CHECK: Type: R_386_32PLT (11)
+# CHECK: Type: R_386_TLS_TPOFF (14)
+# CHECK: Type: R_386_TLS_IE (15)
+# CHECK: Type: R_386_TLS_GOTIE (16)
+# CHECK: Type: R_386_TLS_LE (17)
+# CHECK: Type: R_386_TLS_GD (18)
+# CHECK: Type: R_386_TLS_LDM (19)
+# CHECK: Type: R_386_16 (20)
+# CHECK: Type: R_386_PC16 (21)
+# CHECK: Type: R_386_8 (22)
+# CHECK: Type: R_386_PC8 (23)
+# CHECK: Type: R_386_TLS_GD_32 (24)
+# CHECK: Type: R_386_TLS_GD_PUSH (25)
+# CHECK: Type: R_386_TLS_GD_CALL (26)
+# CHECK: Type: R_386_TLS_GD_POP (27)
+# CHECK: Type: R_386_TLS_LDM_32 (28)
+# CHECK: Type: R_386_TLS_LDM_PUSH (29)
+# CHECK: Type: R_386_TLS_LDM_CALL (30)
+# CHECK: Type: R_386_TLS_LDM_POP (31)
+# CHECK: Type: R_386_TLS_LDO_32 (32)
+# CHECK: Type: R_386_TLS_IE_32 (33)
+# CHECK: Type: R_386_TLS_LE_32 (34)
+# CHECK: Type: R_386_TLS_DTPMOD32 (35)
+# CHECK: Type: R_386_TLS_DTPOFF32 (36)
+# CHECK: Type: R_386_TLS_TPOFF32 (37)
+# CHECK: Type: R_386_TLS_GOTDESC (39)
+# CHECK: Type: R_386_TLS_DESC_CALL (40)
+# CHECK: Type: R_386_TLS_DESC (41)
+# CHECK: Type: R_386_IRELATIVE (42)
+# CHECK: Type: R_386_GOT32X (43)
+
+--- !ELF
+FileHeader:
+  Class:    ELFCLASS32
+  Data:     ELFDATA2LSB
+  OSABI:    ELFOSABI_GNU
+  Type:     ET_REL
+  Machine:  EM_386
+Sections:
+  - Name:    .text
+    Type:    SHT_PROGBITS
+    Content: 00
+  - Name:         .rel.text
+    Type:         SHT_REL
+    Link:         .symtab
+    AddressAlign: 0x0000000000000004
+    EntSize:      0x0000000000000008
+    Info:         .text
+    Relocations:
+      - Offset: 0x0000000000000002
+        Type:   R_386_NONE
+      - Offset: 0x0000000000000008
+        Type:   R_386_32
+      - Offset: 0x000000000000000E
+        Type:   R_386_PC32
+      - Offset: 0x0000000000000014
+        Type:   R_386_GOT32
+      - Offset: 0x000000000000001A
+        Type:   R_386_PLT32
+      - Offset: 0x0000000000000020
+        Type:   R_386_COPY
+      - Offset: 0x0000000000000026
+        Type:   R_386_GLOB_DAT
+      - Offset: 0x000000000000002C
+        Type:   R_386_JUMP_SLOT
+      - Offset: 0x0000000000000032
+        Type:   R_386_RELATIVE
+      - Offset: 0x0000000000000038
+        Type:   R_386_GOTOFF
+      - Offset: 0x000000000000003E
+        Type:   R_386_GOTPC
+      - Offset: 0x0000000000000044
+        Type:   R_386_32PLT
+      - Offset: 0x000000000000004A
+        Type:   R_386_TLS_TPOFF
+      - Offset: 0x0000000000000050
+        Type:   R_386_TLS_IE
+      - Offset: 0x0000000000000056
+        Type:   R_386_TLS_GOTIE
+      - Offset: 0x000000000000005C
+        Type:   R_386_TLS_LE
+      - Offset: 0x0000000000000062
+        Type:   R_386_TLS_GD
+      - Offset: 0x0000000000000068
+        Type:   R_386_TLS_LDM
+      - Offset: 0x000000000000006E
+        Type:   R_386_16
+      - Offset: 0x0000000000000074
+        Type:   R_386_PC16
+      - Offset: 0x000000000000007A
+        Type:   R_386_8
+      - Offset: 0x0000000000000080
+        Type:   R_386_PC8
+      - Offset: 0x0000000000000086
+        Type:   R_386_TLS_GD_32
+      - Offset: 0x000000000000008C
+        Type:   R_386_TLS_GD_PUSH
+      - Offset: 0x0000000000000092
+        Type:   R_386_TLS_GD_CALL
+      - Offset: 0x0000000000000098
+        Type:   R_386_TLS_GD_POP
+      - Offset: 0x000000000000009E
+        Type:   R_386_TLS_LDM_32
+      - Offset: 0x00000000000000A4
+        Type:   R_386_TLS_LDM_PUSH
+      - Offset: 0x00000000000000AA
+        Type:   R_386_TLS_LDM_CALL
+      - Offset: 0x00000000000000B0
+        Type:   R_386_TLS_LDM_POP
+      - Offset: 0x00000000000000B6
+        Type:   R_386_TLS_LDO_32
+      - Offset: 0x00000000000000BC
+        Type:   R_386_TLS_IE_32
+      - Offset: 0x00000000000000C2
+        Type:   R_386_TLS_LE_32
+      - Offset: 0x00000000000000C8
+        Type:   R_386_TLS_DTPMOD32
+      - Offset: 0x00000000000000CE
+        Type:   R_386_TLS_DTPOFF32
+      - Offset: 0x00000000000000D4
+        Type:   R_386_TLS_TPOFF32
+      - Offset: 0x00000000000000DA
+        Type:   R_386_TLS_GOTDESC
+      - Offset: 0x00000000000000E0
+        Type:   R_386_TLS_DESC_CALL
+      - Offset: 0x00000000000000E6
+        Type:   R_386_TLS_DESC
+      - Offset: 0x00000000000000EC
+        Type:   R_386_IRELATIVE
+      - Offset: 0x00000000000000F2
+        Type:   R_386_GOT32X
diff --git a/llvm/test/tools/llvm-readobj/reloc-types-elf-lanai.test b/llvm/test/tools/llvm-readobj/reloc-types-elf-lanai.test
new file mode 100644 (file)
index 0000000..270e2c3
--- /dev/null
@@ -0,0 +1,47 @@
+## Test that llvm-readobj/llvm-readelf shows proper relocation type
+## names and values for lanai target.
+
+# RUN: yaml2obj %s -o %t-lanai.o
+# RUN: llvm-readobj -r --expand-relocs %t-lanai.o | FileCheck %s
+
+# CHECK: Type: R_LANAI_NONE (0)
+# CHECK: Type: R_LANAI_21 (1)
+# CHECK: Type: R_LANAI_21_F (2)
+# CHECK: Type: R_LANAI_25 (3)
+# CHECK: Type: R_LANAI_32 (4)
+# CHECK: Type: R_LANAI_HI16 (5)
+# CHECK: Type: R_LANAI_LO16 (6)
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2MSB
+  Type:    ET_REL
+  Machine: EM_LANAI
+Sections:
+  - Name:         .text
+    Type:         SHT_PROGBITS
+    Flags:        [ SHF_ALLOC, SHF_EXECINSTR ]
+    AddressAlign: 0x0000000000000004
+    Content:      00
+  - Name:         .rela.text
+    Type:         SHT_RELA
+    Link:         .symtab
+    AddressAlign: 0x0000000000000004
+    EntSize:      0x000000000000000C
+    Info:         .text
+    Relocations:
+      - Offset: 0x0000000000000000
+        Type:   R_LANAI_NONE
+      - Offset: 0x0000000000000004
+        Type:   R_LANAI_21
+      - Offset: 0x0000000000000008
+        Type:   R_LANAI_21_F
+      - Offset: 0x000000000000000C
+        Type:   R_LANAI_25
+      - Offset: 0x0000000000000010
+        Type:   R_LANAI_32
+      - Offset: 0x0000000000000014
+        Type:   R_LANAI_HI16
+      - Offset: 0x0000000000000018
+        Type:   R_LANAI_LO16
diff --git a/llvm/test/tools/llvm-readobj/reloc-types-elf-mips.test b/llvm/test/tools/llvm-readobj/reloc-types-elf-mips.test
new file mode 100644 (file)
index 0000000..b948a3d
--- /dev/null
@@ -0,0 +1,181 @@
+## Test that llvm-readobj/llvm-readelf shows proper relocation type
+## names and values for mips target.
+
+# RUN: yaml2obj %s -o %t-mips.o
+# RUN: llvm-readobj -r --expand-relocs %t-mips.o | FileCheck %s
+
+# CHECK: Type: R_MIPS_NONE (0)
+# CHECK: Type: R_MIPS_16 (1)
+# CHECK: Type: R_MIPS_32 (2)
+# CHECK: Type: R_MIPS_REL32 (3)
+# CHECK: Type: R_MIPS_26 (4)
+# CHECK: Type: R_MIPS_HI16 (5)
+# CHECK: Type: R_MIPS_LO16 (6)
+# CHECK: Type: R_MIPS_GPREL16 (7)
+# CHECK: Type: R_MIPS_LITERAL (8)
+# CHECK: Type: R_MIPS_GOT16 (9)
+# CHECK: Type: R_MIPS_PC16 (10)
+# CHECK: Type: R_MIPS_CALL16 (11)
+# CHECK: Type: R_MIPS_GPREL32 (12)
+# CHECK: Type: R_MIPS_SHIFT5 (16)
+# CHECK: Type: R_MIPS_SHIFT6 (17)
+# CHECK: Type: R_MIPS_64 (18)
+# CHECK: Type: R_MIPS_GOT_DISP (19)
+# CHECK: Type: R_MIPS_GOT_PAGE (20)
+# CHECK: Type: R_MIPS_GOT_OFST (21)
+# CHECK: Type: R_MIPS_GOT_HI16 (22)
+# CHECK: Type: R_MIPS_GOT_LO16 (23)
+# CHECK: Type: R_MIPS_SUB (24)
+# CHECK: Type: R_MIPS_INSERT_A (25)
+# CHECK: Type: R_MIPS_INSERT_B (26)
+# CHECK: Type: R_MIPS_DELETE (27)
+# CHECK: Type: R_MIPS_HIGHER (28)
+# CHECK: Type: R_MIPS_HIGHEST (29)
+# CHECK: Type: R_MIPS_CALL_HI16 (30)
+# CHECK: Type: R_MIPS_CALL_LO16 (31)
+# CHECK: Type: R_MIPS_SCN_DISP (32)
+# CHECK: Type: R_MIPS_REL16 (33)
+# CHECK: Type: R_MIPS_ADD_IMMEDIATE (34)
+# CHECK: Type: R_MIPS_PJUMP (35)
+# CHECK: Type: R_MIPS_RELGOT (36)
+# CHECK: Type: R_MIPS_JALR (37)
+# CHECK: Type: R_MIPS_TLS_DTPMOD32 (38)
+# CHECK: Type: R_MIPS_TLS_DTPREL32 (39)
+# CHECK: Type: R_MIPS_TLS_DTPMOD64 (40)
+# CHECK: Type: R_MIPS_TLS_DTPREL64 (41)
+# CHECK: Type: R_MIPS_TLS_GD (42)
+# CHECK: Type: R_MIPS_TLS_LDM (43)
+# CHECK: Type: R_MIPS_TLS_DTPREL_HI16 (44)
+# CHECK: Type: R_MIPS_TLS_DTPREL_LO16 (45)
+# CHECK: Type: R_MIPS_TLS_GOTTPREL (46)
+# CHECK: Type: R_MIPS_TLS_TPREL32 (47)
+# CHECK: Type: R_MIPS_TLS_TPREL64 (48)
+# CHECK: Type: R_MIPS_TLS_TPREL_HI16 (49)
+# CHECK: Type: R_MIPS_TLS_TPREL_LO16 (50)
+# CHECK: Type: R_MIPS_GLOB_DAT (51)
+# CHECK: Type: R_MIPS_COPY (126)
+# CHECK: Type: R_MIPS_JUMP_SLOT (127)
+# CHECK: Type: R_MIPS_NUM (218)
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2MSB
+  OSABI:   ELFOSABI_GNU
+  Type:    ET_REL
+  Machine: EM_MIPS
+Sections:
+  - Name:    .text
+    Type:    SHT_PROGBITS
+    Content: 00
+  - Name:         .rel.text
+    Type:         SHT_REL
+    Link:         .symtab
+    AddressAlign: 0x0000000000000004
+    EntSize:      0x0000000000000008
+    Info:         .text
+    Relocations:
+      - Offset: 0x0000000000000000
+        Type:   R_MIPS_NONE
+      - Offset: 0x0000000000000004
+        Type:   R_MIPS_16
+      - Offset: 0x0000000000000008
+        Type:   R_MIPS_32
+      - Offset: 0x000000000000000C
+        Type:   R_MIPS_REL32
+      - Offset: 0x0000000000000010
+        Type:   R_MIPS_26
+      - Offset: 0x0000000000000014
+        Type:   R_MIPS_HI16
+      - Offset: 0x0000000000000018
+        Type:   R_MIPS_LO16
+      - Offset: 0x000000000000001C
+        Type:   R_MIPS_GPREL16
+      - Offset: 0x0000000000000020
+        Type:   R_MIPS_LITERAL
+      - Offset: 0x0000000000000024
+        Type:   R_MIPS_GOT16
+      - Offset: 0x0000000000000028
+        Type:   R_MIPS_PC16
+      - Offset: 0x000000000000002C
+        Type:   R_MIPS_CALL16
+      - Offset: 0x0000000000000030
+        Type:   R_MIPS_GPREL32
+      - Offset: 0x0000000000000034
+        Type:   R_MIPS_SHIFT5
+      - Offset: 0x0000000000000038
+        Type:   R_MIPS_SHIFT6
+      - Offset: 0x000000000000003C
+        Type:   R_MIPS_64
+      - Offset: 0x0000000000000040
+        Type:   R_MIPS_GOT_DISP
+      - Offset: 0x0000000000000044
+        Type:   R_MIPS_GOT_PAGE
+      - Offset: 0x0000000000000048
+        Type:   R_MIPS_GOT_OFST
+      - Offset: 0x000000000000004C
+        Type:   R_MIPS_GOT_HI16
+      - Offset: 0x0000000000000050
+        Type:   R_MIPS_GOT_LO16
+      - Offset: 0x0000000000000054
+        Type:   R_MIPS_SUB
+      - Offset: 0x0000000000000058
+        Type:   R_MIPS_INSERT_A
+      - Offset: 0x000000000000005C
+        Type:   R_MIPS_INSERT_B
+      - Offset: 0x0000000000000060
+        Type:   R_MIPS_DELETE
+      - Offset: 0x0000000000000064
+        Type:   R_MIPS_HIGHER
+      - Offset: 0x0000000000000068
+        Type:   R_MIPS_HIGHEST
+      - Offset: 0x000000000000006C
+        Type:   R_MIPS_CALL_HI16
+      - Offset: 0x0000000000000070
+        Type:   R_MIPS_CALL_LO16
+      - Offset: 0x0000000000000074
+        Type:   R_MIPS_SCN_DISP
+      - Offset: 0x0000000000000078
+        Type:   R_MIPS_REL16
+      - Offset: 0x000000000000007C
+        Type:   R_MIPS_ADD_IMMEDIATE
+      - Offset: 0x0000000000000080
+        Type:   R_MIPS_PJUMP
+      - Offset: 0x0000000000000084
+        Type:   R_MIPS_RELGOT
+      - Offset: 0x0000000000000088
+        Type:   R_MIPS_JALR
+      - Offset: 0x000000000000008C
+        Type:   R_MIPS_TLS_DTPMOD32
+      - Offset: 0x0000000000000090
+        Type:   R_MIPS_TLS_DTPREL32
+      - Offset: 0x0000000000000094
+        Type:   R_MIPS_TLS_DTPMOD64
+      - Offset: 0x0000000000000098
+        Type:   R_MIPS_TLS_DTPREL64
+      - Offset: 0x000000000000009C
+        Type:   R_MIPS_TLS_GD
+      - Offset: 0x00000000000000A0
+        Type:   R_MIPS_TLS_LDM
+      - Offset: 0x00000000000000A4
+        Type:   R_MIPS_TLS_DTPREL_HI16
+      - Offset: 0x00000000000000A8
+        Type:   R_MIPS_TLS_DTPREL_LO16
+      - Offset: 0x00000000000000AC
+        Type:   R_MIPS_TLS_GOTTPREL
+      - Offset: 0x00000000000000B0
+        Type:   R_MIPS_TLS_TPREL32
+      - Offset: 0x00000000000000B4
+        Type:   R_MIPS_TLS_TPREL64
+      - Offset: 0x00000000000000B8
+        Type:   R_MIPS_TLS_TPREL_HI16
+      - Offset: 0x00000000000000BC
+        Type:   R_MIPS_TLS_TPREL_LO16
+      - Offset: 0x00000000000000C0
+        Type:   R_MIPS_GLOB_DAT
+      - Offset: 0x00000000000000C4
+        Type:   R_MIPS_COPY
+      - Offset: 0x00000000000000C8
+        Type:   R_MIPS_JUMP_SLOT
+      - Offset: 0x00000000000000CC
+        Type:   R_MIPS_NUM
diff --git a/llvm/test/tools/llvm-readobj/reloc-types-elf-mips64.test b/llvm/test/tools/llvm-readobj/reloc-types-elf-mips64.test
new file mode 100644 (file)
index 0000000..f040642
--- /dev/null
@@ -0,0 +1,283 @@
+## Test that llvm-readobj/llvm-readelf shows proper relocation type
+## names and values for mips64 target.
+
+# RUN: yaml2obj %s -o %t-mips64.o
+# RUN: llvm-readobj -r --expand-relocs %t-mips64.o | FileCheck %s
+
+# CHECK: Type: R_MIPS_NONE/R_MIPS_NONE/R_MIPS_NONE (0)
+# CHECK: Type: R_MIPS_16/R_MIPS_16/R_MIPS_16 (65793)
+# CHECK: Type: R_MIPS_32/R_MIPS_32/R_MIPS_32 (131586)
+# CHECK: Type: R_MIPS_REL32/R_MIPS_REL32/R_MIPS_REL32 (197379)
+# CHECK: Type: R_MIPS_26/R_MIPS_26/R_MIPS_26 (263172)
+# CHECK: Type: R_MIPS_HI16/R_MIPS_HI16/R_MIPS_HI16 (328965)
+# CHECK: Type: R_MIPS_LO16/R_MIPS_LO16/R_MIPS_LO16 (394758)
+# CHECK: Type: R_MIPS_GPREL16/R_MIPS_GPREL16/R_MIPS_GPREL16 (460551)
+# CHECK: Type: R_MIPS_LITERAL/R_MIPS_LITERAL/R_MIPS_LITERAL (526344)
+# CHECK: Type: R_MIPS_GOT16/R_MIPS_GOT16/R_MIPS_GOT16 (592137)
+# CHECK: Type: R_MIPS_PC16/R_MIPS_PC16/R_MIPS_PC16 (657930)
+# CHECK: Type: R_MIPS_CALL16/R_MIPS_CALL16/R_MIPS_CALL16 (723723)
+# CHECK: Type: R_MIPS_GPREL32/R_MIPS_GPREL32/R_MIPS_GPREL32 (789516)
+# CHECK: Type: R_MIPS_SHIFT5/R_MIPS_SHIFT5/R_MIPS_SHIFT5 (1052688)
+# CHECK: Type: R_MIPS_SHIFT6/R_MIPS_SHIFT6/R_MIPS_SHIFT6 (1118481)
+# CHECK: Type: R_MIPS_64/R_MIPS_64/R_MIPS_64 (1184274)
+# CHECK: Type: R_MIPS_GOT_DISP/R_MIPS_GOT_DISP/R_MIPS_GOT_DISP (1250067)
+# CHECK: Type: R_MIPS_GOT_PAGE/R_MIPS_GOT_PAGE/R_MIPS_GOT_PAGE (1315860)
+# CHECK: Type: R_MIPS_GOT_OFST/R_MIPS_GOT_OFST/R_MIPS_GOT_OFST (1381653)
+# CHECK: Type: R_MIPS_GOT_HI16/R_MIPS_GOT_HI16/R_MIPS_GOT_HI16 (1447446)
+# CHECK: Type: R_MIPS_GOT_LO16/R_MIPS_GOT_LO16/R_MIPS_GOT_LO16 (1513239)
+# CHECK: Type: R_MIPS_SUB/R_MIPS_SUB/R_MIPS_SUB (1579032)
+# CHECK: Type: R_MIPS_INSERT_A/R_MIPS_INSERT_A/R_MIPS_INSERT_A (1644825)
+# CHECK: Type: R_MIPS_INSERT_B/R_MIPS_INSERT_B/R_MIPS_INSERT_B (1710618)
+# CHECK: Type: R_MIPS_DELETE/R_MIPS_DELETE/R_MIPS_DELETE (1776411)
+# CHECK: Type: R_MIPS_HIGHER/R_MIPS_HIGHER/R_MIPS_HIGHER (1842204)
+# CHECK: Type: R_MIPS_HIGHEST/R_MIPS_HIGHEST/R_MIPS_HIGHEST (1907997)
+# CHECK: Type: R_MIPS_CALL_HI16/R_MIPS_CALL_HI16/R_MIPS_CALL_HI16 (1973790)
+# CHECK: Type: R_MIPS_CALL_LO16/R_MIPS_CALL_LO16/R_MIPS_CALL_LO16 (2039583)
+# CHECK: Type: R_MIPS_SCN_DISP/R_MIPS_SCN_DISP/R_MIPS_SCN_DISP (2105376)
+# CHECK: Type: R_MIPS_REL16/R_MIPS_REL16/R_MIPS_REL16 (2171169)
+# CHECK: Type: R_MIPS_ADD_IMMEDIATE/R_MIPS_ADD_IMMEDIATE/R_MIPS_ADD_IMMEDIATE (2236962)
+# CHECK: Type: R_MIPS_PJUMP/R_MIPS_PJUMP/R_MIPS_PJUMP (2302755)
+# CHECK: Type: R_MIPS_RELGOT/R_MIPS_RELGOT/R_MIPS_RELGOT (2368548)
+# CHECK: Type: R_MIPS_JALR/R_MIPS_JALR/R_MIPS_JALR (2434341)
+# CHECK: Type: R_MIPS_TLS_DTPMOD32/R_MIPS_TLS_DTPMOD32/R_MIPS_TLS_DTPMOD32 (2500134)
+# CHECK: Type: R_MIPS_TLS_DTPREL32/R_MIPS_TLS_DTPREL32/R_MIPS_TLS_DTPREL32 (2565927)
+# CHECK: Type: R_MIPS_TLS_DTPMOD64/R_MIPS_TLS_DTPMOD64/R_MIPS_TLS_DTPMOD64 (2631720)
+# CHECK: Type: R_MIPS_TLS_DTPREL64/R_MIPS_TLS_DTPREL64/R_MIPS_TLS_DTPREL64 (2697513)
+# CHECK: Type: R_MIPS_TLS_GD/R_MIPS_TLS_GD/R_MIPS_TLS_GD (2763306)
+# CHECK: Type: R_MIPS_TLS_LDM/R_MIPS_TLS_LDM/R_MIPS_TLS_LDM (2829099)
+# CHECK: Type: R_MIPS_TLS_DTPREL_HI16/R_MIPS_TLS_DTPREL_HI16/R_MIPS_TLS_DTPREL_HI16 (2894892)
+# CHECK: Type: R_MIPS_TLS_DTPREL_LO16/R_MIPS_TLS_DTPREL_LO16/R_MIPS_TLS_DTPREL_LO16 (2960685)
+# CHECK: Type: R_MIPS_TLS_GOTTPREL/R_MIPS_TLS_GOTTPREL/R_MIPS_TLS_GOTTPREL (3026478)
+# CHECK: Type: R_MIPS_TLS_TPREL32/R_MIPS_TLS_TPREL32/R_MIPS_TLS_TPREL32 (3092271)
+# CHECK: Type: R_MIPS_TLS_TPREL64/R_MIPS_TLS_TPREL64/R_MIPS_TLS_TPREL64 (3158064)
+# CHECK: Type: R_MIPS_TLS_TPREL_HI16/R_MIPS_TLS_TPREL_HI16/R_MIPS_TLS_TPREL_HI16 (3223857)
+# CHECK: Type: R_MIPS_TLS_TPREL_LO16/R_MIPS_TLS_TPREL_LO16/R_MIPS_TLS_TPREL_LO16 (3289650)
+# CHECK: Type: R_MIPS_GLOB_DAT/R_MIPS_GLOB_DAT/R_MIPS_GLOB_DAT (3355443)
+# CHECK: Type: R_MIPS_COPY/R_MIPS_COPY/R_MIPS_COPY (8289918)
+# CHECK: Type: R_MIPS_JUMP_SLOT/R_MIPS_JUMP_SLOT/R_MIPS_JUMP_SLOT (8355711)
+# CHECK: Type: R_MIPS_NUM/R_MIPS_NUM/R_MIPS_NUM (14342874)
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS64
+  Data:    ELFDATA2LSB
+  OSABI:   ELFOSABI_GNU
+  Type:    ET_REL
+  Machine: EM_MIPS
+Sections:
+  - Name:    .text
+    Type:    SHT_PROGBITS
+    Content: 00
+  - Name:         .rela.text
+    Type:         SHT_RELA
+    Link:         .symtab
+    AddressAlign: 0x0000000000000008
+    EntSize:      0x0000000000000018
+    Info:         .text
+    Relocations:
+      - Offset: 0x0000000000000000
+        Type:   R_MIPS_NONE
+      - Offset: 0x0000000000000004
+        Type:   R_MIPS_16
+        Type2:  R_MIPS_16
+        Type3:  R_MIPS_16
+      - Offset: 0x0000000000000008
+        Type:   R_MIPS_32
+        Type2:  R_MIPS_32
+        Type3:  R_MIPS_32
+      - Offset: 0x000000000000000C
+        Type:   R_MIPS_REL32
+        Type2:  R_MIPS_REL32
+        Type3:  R_MIPS_REL32
+      - Offset: 0x0000000000000010
+        Type:   R_MIPS_26
+        Type2:  R_MIPS_26
+        Type3:  R_MIPS_26
+      - Offset: 0x0000000000000014
+        Type:   R_MIPS_HI16
+        Type2:  R_MIPS_HI16
+        Type3:  R_MIPS_HI16
+      - Offset: 0x0000000000000018
+        Type:   R_MIPS_LO16
+        Type2:  R_MIPS_LO16
+        Type3:  R_MIPS_LO16
+      - Offset: 0x000000000000001C
+        Type:   R_MIPS_GPREL16
+        Type2:  R_MIPS_GPREL16
+        Type3:  R_MIPS_GPREL16
+      - Offset: 0x0000000000000020
+        Type:   R_MIPS_LITERAL
+        Type2:  R_MIPS_LITERAL
+        Type3:  R_MIPS_LITERAL
+      - Offset: 0x0000000000000024
+        Type:   R_MIPS_GOT16
+        Type2:  R_MIPS_GOT16
+        Type3:  R_MIPS_GOT16
+      - Offset: 0x0000000000000028
+        Type:   R_MIPS_PC16
+        Type2:  R_MIPS_PC16
+        Type3:  R_MIPS_PC16
+      - Offset: 0x000000000000002C
+        Type:   R_MIPS_CALL16
+        Type2:  R_MIPS_CALL16
+        Type3:  R_MIPS_CALL16
+      - Offset: 0x0000000000000030
+        Type:   R_MIPS_GPREL32
+        Type2:  R_MIPS_GPREL32
+        Type3:  R_MIPS_GPREL32
+      - Offset: 0x0000000000000034
+        Type:   R_MIPS_SHIFT5
+        Type2:  R_MIPS_SHIFT5
+        Type3:  R_MIPS_SHIFT5
+      - Offset: 0x0000000000000038
+        Type:   R_MIPS_SHIFT6
+        Type2:  R_MIPS_SHIFT6
+        Type3:  R_MIPS_SHIFT6
+      - Offset: 0x000000000000003C
+        Type:   R_MIPS_64
+        Type2:  R_MIPS_64
+        Type3:  R_MIPS_64
+      - Offset: 0x0000000000000040
+        Type:   R_MIPS_GOT_DISP
+        Type2:  R_MIPS_GOT_DISP
+        Type3:  R_MIPS_GOT_DISP
+      - Offset: 0x0000000000000044
+        Type:   R_MIPS_GOT_PAGE
+        Type2:  R_MIPS_GOT_PAGE
+        Type3:  R_MIPS_GOT_PAGE
+      - Offset: 0x0000000000000048
+        Type:   R_MIPS_GOT_OFST
+        Type2:  R_MIPS_GOT_OFST
+        Type3:  R_MIPS_GOT_OFST
+      - Offset: 0x000000000000004C
+        Type:   R_MIPS_GOT_HI16
+        Type2:  R_MIPS_GOT_HI16
+        Type3:  R_MIPS_GOT_HI16
+      - Offset: 0x0000000000000050
+        Type:   R_MIPS_GOT_LO16
+        Type2:  R_MIPS_GOT_LO16
+        Type3:  R_MIPS_GOT_LO16
+      - Offset: 0x0000000000000054
+        Type:   R_MIPS_SUB
+        Type2:  R_MIPS_SUB
+        Type3:  R_MIPS_SUB
+      - Offset: 0x0000000000000058
+        Type:   R_MIPS_INSERT_A
+        Type2:  R_MIPS_INSERT_A
+        Type3:  R_MIPS_INSERT_A
+      - Offset: 0x000000000000005C
+        Type:   R_MIPS_INSERT_B
+        Type2:  R_MIPS_INSERT_B
+        Type3:  R_MIPS_INSERT_B
+      - Offset: 0x0000000000000060
+        Type:   R_MIPS_DELETE
+        Type2:  R_MIPS_DELETE
+        Type3:  R_MIPS_DELETE
+      - Offset: 0x0000000000000064
+        Type:   R_MIPS_HIGHER
+        Type2:  R_MIPS_HIGHER
+        Type3:  R_MIPS_HIGHER
+      - Offset: 0x0000000000000068
+        Type:   R_MIPS_HIGHEST
+        Type2:  R_MIPS_HIGHEST
+        Type3:  R_MIPS_HIGHEST
+      - Offset: 0x000000000000006C
+        Type:   R_MIPS_CALL_HI16
+        Type2:  R_MIPS_CALL_HI16
+        Type3:  R_MIPS_CALL_HI16
+      - Offset: 0x0000000000000070
+        Type:   R_MIPS_CALL_LO16
+        Type2:  R_MIPS_CALL_LO16
+        Type3:  R_MIPS_CALL_LO16
+      - Offset: 0x0000000000000074
+        Type:   R_MIPS_SCN_DISP
+        Type2:  R_MIPS_SCN_DISP
+        Type3:  R_MIPS_SCN_DISP
+      - Offset: 0x0000000000000078
+        Type:   R_MIPS_REL16
+        Type2:  R_MIPS_REL16
+        Type3:  R_MIPS_REL16
+      - Offset: 0x000000000000007C
+        Type:   R_MIPS_ADD_IMMEDIATE
+        Type2:  R_MIPS_ADD_IMMEDIATE
+        Type3:  R_MIPS_ADD_IMMEDIATE
+      - Offset: 0x0000000000000080
+        Type:   R_MIPS_PJUMP
+        Type2:  R_MIPS_PJUMP
+        Type3:  R_MIPS_PJUMP
+      - Offset: 0x0000000000000084
+        Type:   R_MIPS_RELGOT
+        Type2:  R_MIPS_RELGOT
+        Type3:  R_MIPS_RELGOT
+      - Offset: 0x0000000000000088
+        Type:   R_MIPS_JALR
+        Type2:  R_MIPS_JALR
+        Type3:  R_MIPS_JALR
+      - Offset: 0x000000000000008C
+        Type:   R_MIPS_TLS_DTPMOD32
+        Type2:  R_MIPS_TLS_DTPMOD32
+        Type3:  R_MIPS_TLS_DTPMOD32
+      - Offset: 0x0000000000000090
+        Type:   R_MIPS_TLS_DTPREL32
+        Type2:  R_MIPS_TLS_DTPREL32
+        Type3:  R_MIPS_TLS_DTPREL32
+      - Offset: 0x0000000000000094
+        Type:   R_MIPS_TLS_DTPMOD64
+        Type2:  R_MIPS_TLS_DTPMOD64
+        Type3:  R_MIPS_TLS_DTPMOD64
+      - Offset: 0x0000000000000098
+        Type:   R_MIPS_TLS_DTPREL64
+        Type2:  R_MIPS_TLS_DTPREL64
+        Type3:  R_MIPS_TLS_DTPREL64
+      - Offset: 0x000000000000009C
+        Type:   R_MIPS_TLS_GD
+        Type2:  R_MIPS_TLS_GD
+        Type3:  R_MIPS_TLS_GD
+      - Offset: 0x00000000000000A0
+        Type:   R_MIPS_TLS_LDM
+        Type2:  R_MIPS_TLS_LDM
+        Type3:  R_MIPS_TLS_LDM
+      - Offset: 0x00000000000000A4
+        Type:   R_MIPS_TLS_DTPREL_HI16
+        Type2:  R_MIPS_TLS_DTPREL_HI16
+        Type3:  R_MIPS_TLS_DTPREL_HI16
+      - Offset: 0x00000000000000A8
+        Type:   R_MIPS_TLS_DTPREL_LO16
+        Type2:  R_MIPS_TLS_DTPREL_LO16
+        Type3:  R_MIPS_TLS_DTPREL_LO16
+      - Offset: 0x00000000000000AC
+        Type:   R_MIPS_TLS_GOTTPREL
+        Type2:  R_MIPS_TLS_GOTTPREL
+        Type3:  R_MIPS_TLS_GOTTPREL
+      - Offset: 0x00000000000000B0
+        Type:   R_MIPS_TLS_TPREL32
+        Type2:  R_MIPS_TLS_TPREL32
+        Type3:  R_MIPS_TLS_TPREL32
+      - Offset: 0x00000000000000B4
+        Type:   R_MIPS_TLS_TPREL64
+        Type2:  R_MIPS_TLS_TPREL64
+        Type3:  R_MIPS_TLS_TPREL64
+      - Offset: 0x00000000000000B8
+        Type:   R_MIPS_TLS_TPREL_HI16
+        Type2:  R_MIPS_TLS_TPREL_HI16
+        Type3:  R_MIPS_TLS_TPREL_HI16
+      - Offset: 0x00000000000000BC
+        Type:   R_MIPS_TLS_TPREL_LO16
+        Type2:  R_MIPS_TLS_TPREL_LO16
+        Type3:  R_MIPS_TLS_TPREL_LO16
+      - Offset: 0x00000000000000C0
+        Type:   R_MIPS_GLOB_DAT
+        Type2:  R_MIPS_GLOB_DAT
+        Type3:  R_MIPS_GLOB_DAT
+      - Offset: 0x00000000000000C4
+        Type:   R_MIPS_COPY
+        Type2:  R_MIPS_COPY
+        Type3:  R_MIPS_COPY
+      - Offset: 0x00000000000000C8
+        Type:   R_MIPS_JUMP_SLOT
+        Type2:  R_MIPS_JUMP_SLOT
+        Type3:  R_MIPS_JUMP_SLOT
+      - Offset: 0x00000000000000CC
+        Type:   R_MIPS_NUM
+        Type2:  R_MIPS_NUM
+        Type3:  R_MIPS_NUM
diff --git a/llvm/test/tools/llvm-readobj/reloc-types-elf-ppc64.test b/llvm/test/tools/llvm-readobj/reloc-types-elf-ppc64.test
new file mode 100644 (file)
index 0000000..f1102c3
--- /dev/null
@@ -0,0 +1,38 @@
+## Test that llvm-readobj/llvm-readelf shows proper relocation type
+## names and values for ppc64 target.
+
+## TODO: Use yaml2obj. obj2yaml now hangs on dumping relocs.obj.elf-ppc64
+# RUN: llvm-readobj -r --expand-relocs %p/Inputs/relocs.obj.elf-ppc64 | FileCheck %s
+
+# CHECK: Type: R_PPC64_NONE (0)
+# CHECK: Type: R_PPC64_ADDR32 (1)
+# CHECK: Type: R_PPC64_ADDR16_LO (4)
+# CHECK: Type: R_PPC64_ADDR16_HI (5)
+# CHECK: Type: R_PPC64_ADDR14 (7)
+# CHECK: Type: R_PPC64_REL24 (10)
+# CHECK: Type: R_PPC64_REL32 (26)
+# CHECK: Type: R_PPC64_ADDR64 (38)
+# CHECK: Type: R_PPC64_ADDR16_HIGHER (39)
+# CHECK: Type: R_PPC64_ADDR16_HIGHEST (41)
+# CHECK: Type: R_PPC64_REL64 (44)
+# CHECK: Type: R_PPC64_TOC16 (47)
+# CHECK: Type: R_PPC64_TOC16_LO (48)
+# CHECK: Type: R_PPC64_TOC16_HA (50)
+# CHECK: Type: R_PPC64_TOC (51)
+# CHECK: Type: R_PPC64_ADDR16_DS (56)
+# CHECK: Type: R_PPC64_ADDR16_LO_DS (57)
+# CHECK: Type: R_PPC64_TOC16_DS (63)
+# CHECK: Type: R_PPC64_TOC16_LO_DS (64)
+# CHECK: Type: R_PPC64_TLS (67)
+# CHECK: Type: R_PPC64_TPREL16_LO (70)
+# CHECK: Type: R_PPC64_TPREL16_HA (72)
+# CHECK: Type: R_PPC64_DTPREL16_LO (75)
+# CHECK: Type: R_PPC64_DTPREL16_HA (77)
+# CHECK: Type: R_PPC64_GOT_TLSGD16_LO (80)
+# CHECK: Type: R_PPC64_GOT_TLSGD16_HA (82)
+# CHECK: Type: R_PPC64_GOT_TLSLD16_LO (84)
+# CHECK: Type: R_PPC64_GOT_TLSLD16_HA (86)
+# CHECK: Type: R_PPC64_GOT_TPREL16_LO_DS (88)
+# CHECK: Type: R_PPC64_GOT_TPREL16_HA (90)
+# CHECK: Type: R_PPC64_TLSGD (107)
+# CHECK: Type: R_PPC64_TLSLD (108)
diff --git a/llvm/test/tools/llvm-readobj/reloc-types-elf-x64.test b/llvm/test/tools/llvm-readobj/reloc-types-elf-x64.test
new file mode 100644 (file)
index 0000000..7b3fa1c
--- /dev/null
@@ -0,0 +1,145 @@
+## Test that llvm-readobj/llvm-readelf shows proper relocation type
+## names and values for x86_64 target.
+
+# RUN: yaml2obj %s -o %t-x86_64.o
+# RUN: llvm-readobj -r --expand-relocs %t-x86_64.o | FileCheck %s
+
+# CHECK: Type: R_X86_64_NONE (0)
+# CHECK: Type: R_X86_64_64 (1)
+# CHECK: Type: R_X86_64_PC32 (2)
+# CHECK: Type: R_X86_64_GOT32 (3)
+# CHECK: Type: R_X86_64_PLT32 (4)
+# CHECK: Type: R_X86_64_COPY (5)
+# CHECK: Type: R_X86_64_GLOB_DAT (6)
+# CHECK: Type: R_X86_64_JUMP_SLOT (7)
+# CHECK: Type: R_X86_64_RELATIVE (8)
+# CHECK: Type: R_X86_64_GOTPCREL (9)
+# CHECK: Type: R_X86_64_32 (10)
+# CHECK: Type: R_X86_64_32S (11)
+# CHECK: Type: R_X86_64_16 (12)
+# CHECK: Type: R_X86_64_PC16 (13)
+# CHECK: Type: R_X86_64_8 (14)
+# CHECK: Type: R_X86_64_PC8 (15)
+# CHECK: Type: R_X86_64_DTPMOD64 (16)
+# CHECK: Type: R_X86_64_DTPOFF64 (17)
+# CHECK: Type: R_X86_64_TPOFF64 (18)
+# CHECK: Type: R_X86_64_TLSGD (19)
+# CHECK: Type: R_X86_64_TLSLD (20)
+# CHECK: Type: R_X86_64_DTPOFF32 (21)
+# CHECK: Type: R_X86_64_GOTTPOFF (22)
+# CHECK: Type: R_X86_64_TPOFF32 (23)
+# CHECK: Type: R_X86_64_PC64 (24)
+# CHECK: Type: R_X86_64_GOTOFF64 (25)
+# CHECK: Type: R_X86_64_GOTPC32 (26)
+# CHECK: Type: R_X86_64_GOT64 (27)
+# CHECK: Type: R_X86_64_GOTPCREL64 (28)
+# CHECK: Type: R_X86_64_GOTPC64 (29)
+# CHECK: Type: R_X86_64_GOTPLT64 (30)
+# CHECK: Type: R_X86_64_PLTOFF64 (31)
+# CHECK: Type: R_X86_64_SIZE32 (32)
+# CHECK: Type: R_X86_64_SIZE64 (33)
+# CHECK: Type: R_X86_64_GOTPC32_TLSDESC (34)
+# CHECK: Type: R_X86_64_TLSDESC_CALL (35)
+# CHECK: Type: R_X86_64_TLSDESC (36)
+# CHECK: Type: R_X86_64_IRELATIVE (37)
+# CHECK: Type: R_X86_64_GOTPCRELX (41)
+# CHECK: Type: R_X86_64_REX_GOTPCRELX (42)
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS64
+  Data:    ELFDATA2LSB
+  OSABI:   ELFOSABI_GNU
+  Type:    ET_REL
+  Machine: EM_X86_64
+Sections:
+  - Name:    .text
+    Type:    SHT_PROGBITS
+    Content: 00
+  - Name:         .rela.text
+    Type:         SHT_RELA
+    Link:         .symtab
+    AddressAlign: 0x0000000000000008
+    EntSize:      0x0000000000000018
+    Info:         .text
+    Relocations:
+      - Offset: 0x0000000000000003
+        Type:   R_X86_64_NONE
+      - Offset: 0x000000000000000A
+        Type:   R_X86_64_64
+      - Offset: 0x0000000000000011
+        Type:   R_X86_64_PC32
+      - Offset: 0x0000000000000018
+        Type:   R_X86_64_GOT32
+      - Offset: 0x000000000000001F
+        Type:   R_X86_64_PLT32
+      - Offset: 0x0000000000000026
+        Type:   R_X86_64_COPY
+      - Offset: 0x000000000000002D
+        Type:   R_X86_64_GLOB_DAT
+      - Offset: 0x0000000000000034
+        Type:   R_X86_64_JUMP_SLOT
+      - Offset: 0x000000000000003B
+        Type:   R_X86_64_RELATIVE
+      - Offset: 0x0000000000000042
+        Type:   R_X86_64_GOTPCREL
+      - Offset: 0x0000000000000049
+        Type:   R_X86_64_32
+      - Offset: 0x0000000000000050
+        Type:   R_X86_64_32S
+      - Offset: 0x0000000000000057
+        Type:   R_X86_64_16
+      - Offset: 0x000000000000005E
+        Type:   R_X86_64_PC16
+      - Offset: 0x0000000000000065
+        Type:   R_X86_64_8
+      - Offset: 0x000000000000006C
+        Type:   R_X86_64_PC8
+      - Offset: 0x0000000000000073
+        Type:   R_X86_64_DTPMOD64
+      - Offset: 0x000000000000007A
+        Type:   R_X86_64_DTPOFF64
+      - Offset: 0x0000000000000081
+        Type:   R_X86_64_TPOFF64
+      - Offset: 0x0000000000000088
+        Type:   R_X86_64_TLSGD
+      - Offset: 0x000000000000008F
+        Type:   R_X86_64_TLSLD
+      - Offset: 0x0000000000000096
+        Type:   R_X86_64_DTPOFF32
+      - Offset: 0x000000000000009D
+        Type:   R_X86_64_GOTTPOFF
+      - Offset: 0x00000000000000A4
+        Type:   R_X86_64_TPOFF32
+      - Offset: 0x00000000000000AB
+        Type:   R_X86_64_PC64
+      - Offset: 0x00000000000000B2
+        Type:   R_X86_64_GOTOFF64
+      - Offset: 0x00000000000000B9
+        Type:   R_X86_64_GOTPC32
+      - Offset: 0x00000000000000C0
+        Type:   R_X86_64_GOT64
+      - Offset: 0x00000000000000C7
+        Type:   R_X86_64_GOTPCREL64
+      - Offset: 0x00000000000000CE
+        Type:   R_X86_64_GOTPC64
+      - Offset: 0x00000000000000D5
+        Type:   R_X86_64_GOTPLT64
+      - Offset: 0x00000000000000DC
+        Type:   R_X86_64_PLTOFF64
+      - Offset: 0x00000000000000E3
+        Type:   R_X86_64_SIZE32
+      - Offset: 0x00000000000000EA
+        Type:   R_X86_64_SIZE64
+      - Offset: 0x00000000000000F1
+        Type:   R_X86_64_GOTPC32_TLSDESC
+      - Offset: 0x00000000000000F8
+        Type:   R_X86_64_TLSDESC_CALL
+      - Offset: 0x00000000000000FF
+        Type:   R_X86_64_TLSDESC
+      - Offset: 0x0000000000000106
+        Type:   R_X86_64_IRELATIVE
+      - Offset: 0x000000000000010A
+        Type:   R_X86_64_GOTPCRELX
+      - Offset: 0x000000000000010E
+        Type:   R_X86_64_REX_GOTPCRELX
diff --git a/llvm/test/tools/llvm-readobj/reloc-types-macho-arm.test b/llvm/test/tools/llvm-readobj/reloc-types-macho-arm.test
new file mode 100644 (file)
index 0000000..3444ab1
--- /dev/null
@@ -0,0 +1,16 @@
+## Test that llvm-readobj/llvm-readelf shows proper relocation type
+## names and values for macho-arm target.
+
+## TODO: use yaml2obj.
+# RUN: llvm-readobj -r --expand-relocs %p/Inputs/relocs.obj.macho-arm | FileCheck %s
+
+# CHECK: Type: ARM_RELOC_VANILLA (0)
+# CHECK: Type: ARM_RELOC_PAIR (1)
+# CHECK: Type: ARM_RELOC_SECTDIFF (2)
+# CHECK: Type: ARM_RELOC_LOCAL_SECTDIFF (3)
+# CHECK: Type: ARM_RELOC_PB_LA_PTR (4)
+# CHECK: Type: ARM_RELOC_BR24 (5)
+# CHECK: Type: ARM_THUMB_RELOC_BR22 (6)
+# CHECK: Type: ARM_THUMB_32BIT_BRANCH (7)
+# CHECK: Type: ARM_RELOC_HALF (8)
+# CHECK: Type: ARM_RELOC_HALF_SECTDIFF (9)
diff --git a/llvm/test/tools/llvm-readobj/reloc-types-macho-i386.test b/llvm/test/tools/llvm-readobj/reloc-types-macho-i386.test
new file mode 100644 (file)
index 0000000..5b14933
--- /dev/null
@@ -0,0 +1,12 @@
+## Test that llvm-readobj/llvm-readelf shows proper relocation type
+## names and values for macho-i386 target.
+
+## TODO: use yaml2obj.
+# RUN: llvm-readobj -r --expand-relocs %p/Inputs/relocs.obj.macho-i386 | FileCheck %s
+
+# CHECK: Type: GENERIC_RELOC_VANILLA (0)
+# CHECK: Type: GENERIC_RELOC_PAIR (1)
+# CHECK: Type: GENERIC_RELOC_SECTDIFF (2)
+# CHECK: Type: GENERIC_RELOC_PB_LA_PTR (3)
+# CHECK: Type: GENERIC_RELOC_LOCAL_SECTDIFF (4)
+# CHECK: Type: GENERIC_RELOC_TLV (5)
diff --git a/llvm/test/tools/llvm-readobj/reloc-types-macho-x64.test b/llvm/test/tools/llvm-readobj/reloc-types-macho-x64.test
new file mode 100644 (file)
index 0000000..49e0a8b
--- /dev/null
@@ -0,0 +1,16 @@
+## Test that llvm-readobj/llvm-readelf shows proper relocation type
+## names and values for macho-x64 target.
+
+## TODO: use yaml2obj.
+# RUN: llvm-readobj -r --expand-relocs %p/Inputs/relocs.obj.macho-x86_64 | FileCheck %s
+
+# CHECK: Type: X86_64_RELOC_UNSIGNED (0)
+# CHECK: Type: X86_64_RELOC_SIGNED (1)
+# CHECK: Type: X86_64_RELOC_BRANCH (2)
+# CHECK: Type: X86_64_RELOC_GOT_LOAD (3)
+# CHECK: Type: X86_64_RELOC_GOT (4)
+# CHECK: Type: X86_64_RELOC_SUBTRACTOR (5)
+# CHECK: Type: X86_64_RELOC_SIGNED_1 (6)
+# CHECK: Type: X86_64_RELOC_SIGNED_2 (7)
+# CHECK: Type: X86_64_RELOC_SIGNED_4 (8)
+# CHECK: Type: X86_64_RELOC_TLV (9)
diff --git a/llvm/test/tools/llvm-readobj/reloc-types.test b/llvm/test/tools/llvm-readobj/reloc-types.test
deleted file mode 100644 (file)
index 1d5210f..0000000
+++ /dev/null
@@ -1,699 +0,0 @@
-// Test that libObject and subsequently llvm-readobj shows proper relocation type
-// names and values.
-
-// Todo: ELF-PPC, ELF-HEXAGON
-
-RUN: llvm-readobj -r --expand-relocs %p/Inputs/relocs.obj.elf-i386     | FileCheck %s -check-prefix ELF-32
-RUN: llvm-readobj -r --expand-relocs %p/Inputs/relocs.obj.elf-x86_64   | FileCheck %s -check-prefix ELF-64
-RUN: llvm-readobj -r --expand-relocs %p/Inputs/relocs.obj.elf-aarch64  | FileCheck %s -check-prefix ELF-AARCH64
-RUN: llvm-readobj -r --expand-relocs %p/Inputs/relocs.obj.elf-arm      | FileCheck %s -check-prefix ELF-ARM
-RUN: llvm-readobj -r --expand-relocs %p/Inputs/relocs.obj.elf-lanai    | FileCheck %s -check-prefix ELF-LANAI
-RUN: llvm-readobj -r --expand-relocs %p/Inputs/relocs.obj.elf-mips     | FileCheck %s -check-prefix ELF-MIPS
-RUN: llvm-readobj -r --expand-relocs %p/Inputs/relocs.obj.elf-mips64el | FileCheck %s -check-prefix ELF-MIPS64EL
-RUN: llvm-readobj -r --expand-relocs %p/Inputs/relocs.obj.elf-ppc64    | FileCheck %s -check-prefix ELF-PPC64
-RUN: llvm-readobj -r --expand-relocs %p/Inputs/relocs.obj.coff-i386    | FileCheck %s -check-prefix COFF-32
-RUN: llvm-readobj -r --expand-relocs %p/Inputs/relocs.obj.coff-x86_64  | FileCheck %s -check-prefix COFF-64
-RUN: llvm-readobj -r --expand-relocs %p/Inputs/relocs.obj.macho-arm    | FileCheck %s -check-prefix MACHO-ARM
-RUN: llvm-readobj -r --expand-relocs %p/Inputs/relocs.obj.macho-i386   | FileCheck %s -check-prefix MACHO-32
-RUN: llvm-readobj -r --expand-relocs %p/Inputs/relocs.obj.macho-x86_64 | FileCheck %s -check-prefix MACHO-64
-
-
-ELF-32: Type: R_386_NONE (0)
-ELF-32: Type: R_386_32 (1)
-ELF-32: Type: R_386_PC32 (2)
-ELF-32: Type: R_386_GOT32 (3)
-ELF-32: Type: R_386_PLT32 (4)
-ELF-32: Type: R_386_COPY (5)
-ELF-32: Type: R_386_GLOB_DAT (6)
-ELF-32: Type: R_386_JUMP_SLOT (7)
-ELF-32: Type: R_386_RELATIVE (8)
-ELF-32: Type: R_386_GOTOFF (9)
-ELF-32: Type: R_386_GOTPC (10)
-ELF-32: Type: R_386_32PLT (11)
-ELF-32: Type: R_386_TLS_TPOFF (14)
-ELF-32: Type: R_386_TLS_IE (15)
-ELF-32: Type: R_386_TLS_GOTIE (16)
-ELF-32: Type: R_386_TLS_LE (17)
-ELF-32: Type: R_386_TLS_GD (18)
-ELF-32: Type: R_386_TLS_LDM (19)
-ELF-32: Type: R_386_16 (20)
-ELF-32: Type: R_386_PC16 (21)
-ELF-32: Type: R_386_8 (22)
-ELF-32: Type: R_386_PC8 (23)
-ELF-32: Type: R_386_TLS_GD_32 (24)
-ELF-32: Type: R_386_TLS_GD_PUSH (25)
-ELF-32: Type: R_386_TLS_GD_CALL (26)
-ELF-32: Type: R_386_TLS_GD_POP (27)
-ELF-32: Type: R_386_TLS_LDM_32 (28)
-ELF-32: Type: R_386_TLS_LDM_PUSH (29)
-ELF-32: Type: R_386_TLS_LDM_CALL (30)
-ELF-32: Type: R_386_TLS_LDM_POP (31)
-ELF-32: Type: R_386_TLS_LDO_32 (32)
-ELF-32: Type: R_386_TLS_IE_32 (33)
-ELF-32: Type: R_386_TLS_LE_32 (34)
-ELF-32: Type: R_386_TLS_DTPMOD32 (35)
-ELF-32: Type: R_386_TLS_DTPOFF32 (36)
-ELF-32: Type: R_386_TLS_TPOFF32 (37)
-ELF-32: Type: R_386_TLS_GOTDESC (39)
-ELF-32: Type: R_386_TLS_DESC_CALL (40)
-ELF-32: Type: R_386_TLS_DESC (41)
-ELF-32: Type: R_386_IRELATIVE (42)
-_LF-32: Type: R_386_NUM (43)
-
-ELF-64: Type: R_X86_64_NONE (0)
-ELF-64: Type: R_X86_64_64 (1)
-ELF-64: Type: R_X86_64_PC32 (2)
-ELF-64: Type: R_X86_64_GOT32 (3)
-ELF-64: Type: R_X86_64_PLT32 (4)
-ELF-64: Type: R_X86_64_COPY (5)
-ELF-64: Type: R_X86_64_GLOB_DAT (6)
-ELF-64: Type: R_X86_64_JUMP_SLOT (7)
-ELF-64: Type: R_X86_64_RELATIVE (8)
-ELF-64: Type: R_X86_64_GOTPCREL (9)
-ELF-64: Type: R_X86_64_32 (10)
-ELF-64: Type: R_X86_64_32S (11)
-ELF-64: Type: R_X86_64_16 (12)
-ELF-64: Type: R_X86_64_PC16 (13)
-ELF-64: Type: R_X86_64_8 (14)
-ELF-64: Type: R_X86_64_PC8 (15)
-ELF-64: Type: R_X86_64_DTPMOD64 (16)
-ELF-64: Type: R_X86_64_DTPOFF64 (17)
-ELF-64: Type: R_X86_64_TPOFF64 (18)
-ELF-64: Type: R_X86_64_TLSGD (19)
-ELF-64: Type: R_X86_64_TLSLD (20)
-ELF-64: Type: R_X86_64_DTPOFF32 (21)
-ELF-64: Type: R_X86_64_GOTTPOFF (22)
-ELF-64: Type: R_X86_64_TPOFF32 (23)
-ELF-64: Type: R_X86_64_PC64 (24)
-ELF-64: Type: R_X86_64_GOTOFF64 (25)
-ELF-64: Type: R_X86_64_GOTPC32 (26)
-ELF-64: Type: R_X86_64_GOT64 (27)
-ELF-64: Type: R_X86_64_GOTPCREL64 (28)
-ELF-64: Type: R_X86_64_GOTPC64 (29)
-ELF-64: Type: R_X86_64_GOTPLT64 (30)
-ELF-64: Type: R_X86_64_PLTOFF64 (31)
-ELF-64: Type: R_X86_64_SIZE32 (32)
-ELF-64: Type: R_X86_64_SIZE64 (33)
-ELF-64: Type: R_X86_64_GOTPC32_TLSDESC (34)
-ELF-64: Type: R_X86_64_TLSDESC_CALL (35)
-ELF-64: Type: R_X86_64_TLSDESC (36)
-ELF-64: Type: R_X86_64_IRELATIVE (37)
-
-ELF-PPC: Type: R_PPC_NONE (0)
-ELF-PPC: Type: R_PPC_ADDR32 (1)
-ELF-PPC: Type: R_PPC_ADDR24 (2)
-ELF-PPC: Type: R_PPC_ADDR16 (3)
-ELF-PPC: Type: R_PPC_ADDR16_LO (4)
-ELF-PPC: Type: R_PPC_ADDR16_HI (5)
-ELF-PPC: Type: R_PPC_ADDR16_HA (6)
-ELF-PPC: Type: R_PPC_ADDR14 (7)
-ELF-PPC: Type: R_PPC_ADDR14_BRTAKEN (8)
-ELF-PPC: Type: R_PPC_ADDR14_BRNTAKEN (9)
-ELF-PPC: Type: R_PPC_REL24 (10)
-ELF-PPC: Type: R_PPC_REL14 (11)
-ELF-PPC: Type: R_PPC_REL14_BRTAKEN (12)
-ELF-PPC: Type: R_PPC_REL14_BRNTAKEN (13)
-ELF-PPC: Type: R_PPC_REL32 (26)
-ELF-PPC: Type: R_PPC_TPREL16_LO (70)
-ELF-PPC: Type: R_PPC_TPREL16_HA (72)
-
-ELF-PPC64: Type: R_PPC64_NONE (0)
-ELF-PPC64: Type: R_PPC64_ADDR32 (1)
-ELF-PPC64: Type: R_PPC64_ADDR16_LO (4)
-ELF-PPC64: Type: R_PPC64_ADDR16_HI (5)
-ELF-PPC64: Type: R_PPC64_ADDR14 (7)
-ELF-PPC64: Type: R_PPC64_REL24 (10)
-ELF-PPC64: Type: R_PPC64_REL32 (26)
-ELF-PPC64: Type: R_PPC64_ADDR64 (38)
-ELF-PPC64: Type: R_PPC64_ADDR16_HIGHER (39)
-ELF-PPC64: Type: R_PPC64_ADDR16_HIGHEST (41)
-ELF-PPC64: Type: R_PPC64_REL64 (44)
-ELF-PPC64: Type: R_PPC64_TOC16 (47)
-ELF-PPC64: Type: R_PPC64_TOC16_LO (48)
-ELF-PPC64: Type: R_PPC64_TOC16_HA (50)
-ELF-PPC64: Type: R_PPC64_TOC (51)
-ELF-PPC64: Type: R_PPC64_ADDR16_DS (56)
-ELF-PPC64: Type: R_PPC64_ADDR16_LO_DS (57)
-ELF-PPC64: Type: R_PPC64_TOC16_DS (63)
-ELF-PPC64: Type: R_PPC64_TOC16_LO_DS (64)
-ELF-PPC64: Type: R_PPC64_TLS (67)
-ELF-PPC64: Type: R_PPC64_TPREL16_LO (70)
-ELF-PPC64: Type: R_PPC64_TPREL16_HA (72)
-ELF-PPC64: Type: R_PPC64_DTPREL16_LO (75)
-ELF-PPC64: Type: R_PPC64_DTPREL16_HA (77)
-ELF-PPC64: Type: R_PPC64_GOT_TLSGD16_LO (80)
-ELF-PPC64: Type: R_PPC64_GOT_TLSGD16_HA (82)
-ELF-PPC64: Type: R_PPC64_GOT_TLSLD16_LO (84)
-ELF-PPC64: Type: R_PPC64_GOT_TLSLD16_HA (86)
-ELF-PPC64: Type: R_PPC64_GOT_TPREL16_LO_DS (88)
-ELF-PPC64: Type: R_PPC64_GOT_TPREL16_HA (90)
-ELF-PPC64: Type: R_PPC64_TLSGD (107)
-ELF-PPC64: Type: R_PPC64_TLSLD (108)
-
-ELF-AARCH64: Type: R_AARCH64_NONE (0)
-ELF-AARCH64: Type: R_AARCH64_ABS64 (257)
-ELF-AARCH64: Type: R_AARCH64_ABS32 (258)
-ELF-AARCH64: Type: R_AARCH64_ABS16 (259)
-ELF-AARCH64: Type: R_AARCH64_PREL64 (260)
-ELF-AARCH64: Type: R_AARCH64_PREL32 (261)
-ELF-AARCH64: Type: R_AARCH64_PREL16 (262)
-ELF-AARCH64: Type: R_AARCH64_MOVW_UABS_G0 (263)
-ELF-AARCH64: Type: R_AARCH64_MOVW_UABS_G0_NC (264)
-ELF-AARCH64: Type: R_AARCH64_MOVW_UABS_G1 (265)
-ELF-AARCH64: Type: R_AARCH64_MOVW_UABS_G1_NC (266)
-ELF-AARCH64: Type: R_AARCH64_MOVW_UABS_G2 (267)
-ELF-AARCH64: Type: R_AARCH64_MOVW_UABS_G2_NC (268)
-ELF-AARCH64: Type: R_AARCH64_MOVW_UABS_G3 (269)
-ELF-AARCH64: Type: R_AARCH64_MOVW_SABS_G0 (270)
-ELF-AARCH64: Type: R_AARCH64_MOVW_SABS_G1 (271)
-ELF-AARCH64: Type: R_AARCH64_MOVW_SABS_G2 (272)
-ELF-AARCH64: Type: R_AARCH64_LD_PREL_LO19 (273)
-ELF-AARCH64: Type: R_AARCH64_ADR_PREL_LO21 (274)
-ELF-AARCH64: Type: R_AARCH64_ADR_PREL_PG_HI21 (275)
-ELF-AARCH64: Type: R_AARCH64_ADR_PREL_PG_HI21_NC (276)
-ELF-AARCH64: Type: R_AARCH64_ADD_ABS_LO12_NC (277)
-ELF-AARCH64: Type: R_AARCH64_LDST8_ABS_LO12_NC (278)
-ELF-AARCH64: Type: R_AARCH64_TSTBR14 (279)
-ELF-AARCH64: Type: R_AARCH64_CONDBR19 (280)
-ELF-AARCH64: Type: R_AARCH64_JUMP26 (282)
-ELF-AARCH64: Type: R_AARCH64_CALL26 (283)
-ELF-AARCH64: Type: R_AARCH64_LDST16_ABS_LO12_NC (284)
-ELF-AARCH64: Type: R_AARCH64_LDST32_ABS_LO12_NC (285)
-ELF-AARCH64: Type: R_AARCH64_LDST64_ABS_LO12_NC (286)
-ELF-AARCH64: Type: R_AARCH64_MOVW_PREL_G0 (287)
-ELF-AARCH64: Type: R_AARCH64_MOVW_PREL_G0_NC (288)
-ELF-AARCH64: Type: R_AARCH64_MOVW_PREL_G1 (289)
-ELF-AARCH64: Type: R_AARCH64_MOVW_PREL_G1_NC (290)
-ELF-AARCH64: Type: R_AARCH64_MOVW_PREL_G2 (291)
-ELF-AARCH64: Type: R_AARCH64_MOVW_PREL_G2_NC (292)
-ELF-AARCH64: Type: R_AARCH64_MOVW_PREL_G3 (293)
-ELF-AARCH64: Type: R_AARCH64_LDST128_ABS_LO12_NC (299)
-ELF-AARCH64: Type: R_AARCH64_MOVW_GOTOFF_G0 (300)
-ELF-AARCH64: Type: R_AARCH64_MOVW_GOTOFF_G0_NC (301)
-ELF-AARCH64: Type: R_AARCH64_MOVW_GOTOFF_G1 (302)
-ELF-AARCH64: Type: R_AARCH64_MOVW_GOTOFF_G1_NC (303)
-ELF-AARCH64: Type: R_AARCH64_MOVW_GOTOFF_G2 (304)
-ELF-AARCH64: Type: R_AARCH64_MOVW_GOTOFF_G2_NC (305)
-ELF-AARCH64: Type: R_AARCH64_MOVW_GOTOFF_G3 (306)
-ELF-AARCH64: Type: R_AARCH64_GOTREL64 (307)
-ELF-AARCH64: Type: R_AARCH64_GOTREL32 (308)
-ELF-AARCH64: Type: R_AARCH64_GOT_LD_PREL19 (309)
-ELF-AARCH64: Type: R_AARCH64_LD64_GOTOFF_LO15 (310)
-ELF-AARCH64: Type: R_AARCH64_ADR_GOT_PAGE (311)
-ELF-AARCH64: Type: R_AARCH64_LD64_GOT_LO12_NC (312)
-ELF-AARCH64: Type: R_AARCH64_LD64_GOTPAGE_LO15 (313)
-ELF-AARCH64: Type: R_AARCH64_TLSGD_ADR_PREL21 (512)
-ELF-AARCH64: Type: R_AARCH64_TLSGD_ADR_PAGE21 (513)
-ELF-AARCH64: Type: R_AARCH64_TLSGD_ADD_LO12_NC (514)
-ELF-AARCH64: Type: R_AARCH64_TLSGD_MOVW_G1 (515)
-ELF-AARCH64: Type: R_AARCH64_TLSGD_MOVW_G0_NC (516)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_ADR_PREL21 (517)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_ADR_PAGE21 (518)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_ADD_LO12_NC (519)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_MOVW_G1 (520)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_MOVW_G0_NC (521)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_LD_PREL19 (522)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_MOVW_DTPREL_G2 (523)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_MOVW_DTPREL_G1 (524)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC (525)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_MOVW_DTPREL_G0 (526)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC (527)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_ADD_DTPREL_HI12 (528)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_ADD_DTPREL_LO12 (529)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC (530)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_LDST8_DTPREL_LO12 (531)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC (532)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_LDST16_DTPREL_LO12 (533)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC (534)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_LDST32_DTPREL_LO12 (535)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC (536)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_LDST64_DTPREL_LO12 (537)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC (538)
-ELF-AARCH64: Type: R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 (539)
-ELF-AARCH64: Type: R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC (540)
-ELF-AARCH64: Type: R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 (541)
-ELF-AARCH64: Type: R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC (542)
-ELF-AARCH64: Type: R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 (543)
-ELF-AARCH64: Type: R_AARCH64_TLSLE_MOVW_TPREL_G2 (544)
-ELF-AARCH64: Type: R_AARCH64_TLSLE_MOVW_TPREL_G1 (545)
-ELF-AARCH64: Type: R_AARCH64_TLSLE_MOVW_TPREL_G1_NC (546)
-ELF-AARCH64: Type: R_AARCH64_TLSLE_MOVW_TPREL_G0 (547)
-ELF-AARCH64: Type: R_AARCH64_TLSLE_MOVW_TPREL_G0_NC (548)
-ELF-AARCH64: Type: R_AARCH64_TLSLE_ADD_TPREL_HI12 (549)
-ELF-AARCH64: Type: R_AARCH64_TLSLE_ADD_TPREL_LO12 (550)
-ELF-AARCH64: Type: R_AARCH64_TLSLE_ADD_TPREL_LO12_NC (551)
-ELF-AARCH64: Type: R_AARCH64_TLSLE_LDST8_TPREL_LO12 (552)
-ELF-AARCH64: Type: R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC (553)
-ELF-AARCH64: Type: R_AARCH64_TLSLE_LDST16_TPREL_LO12 (554)
-ELF-AARCH64: Type: R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC (555)
-ELF-AARCH64: Type: R_AARCH64_TLSLE_LDST32_TPREL_LO12 (556)
-ELF-AARCH64: Type: R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC (557)
-ELF-AARCH64: Type: R_AARCH64_TLSLE_LDST64_TPREL_LO12 (558)
-ELF-AARCH64: Type: R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC (559)
-ELF-AARCH64: Type: R_AARCH64_TLSDESC_LD_PREL19 (560)
-ELF-AARCH64: Type: R_AARCH64_TLSDESC_ADR_PREL21 (561)
-ELF-AARCH64: Type: R_AARCH64_TLSDESC_ADR_PAGE21 (562)
-ELF-AARCH64: Type: R_AARCH64_TLSDESC_LD64_LO12 (563)
-ELF-AARCH64: Type: R_AARCH64_TLSDESC_ADD_LO12 (564)
-ELF-AARCH64: Type: R_AARCH64_TLSDESC_OFF_G1 (565)
-ELF-AARCH64: Type: R_AARCH64_TLSDESC_OFF_G0_NC (566)
-ELF-AARCH64: Type: R_AARCH64_TLSDESC_LDR (567)
-ELF-AARCH64: Type: R_AARCH64_TLSDESC_ADD (568)
-ELF-AARCH64: Type: R_AARCH64_TLSDESC_CALL (569)
-ELF-AARCH64: Type: R_AARCH64_TLSLE_LDST128_TPREL_LO12 (570)
-ELF-AARCH64: Type: R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC (571)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_LDST128_DTPREL_LO12 (572)
-ELF-AARCH64: Type: R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC (573)
-ELF-AARCH64: Type: R_AARCH64_COPY (1024)
-ELF-AARCH64: Type: R_AARCH64_GLOB_DAT (1025)
-ELF-AARCH64: Type: R_AARCH64_JUMP_SLOT (1026)
-ELF-AARCH64: Type: R_AARCH64_RELATIVE (1027)
-ELF-AARCH64: Type: R_AARCH64_TLS_DTPREL64 (1028)
-ELF-AARCH64: Type: R_AARCH64_TLS_DTPMOD64 (1029)
-ELF-AARCH64: Type: R_AARCH64_TLS_TPREL64 (1030)
-ELF-AARCH64: Type: R_AARCH64_TLSDESC (1031)
-ELF-AARCH64: Type: R_AARCH64_IRELATIVE (1032)
-
-ELF-ARM: Type: R_ARM_NONE (0)
-ELF-ARM: Type: R_ARM_PC24 (1)
-ELF-ARM: Type: R_ARM_ABS32 (2)
-ELF-ARM: Type: R_ARM_REL32 (3)
-ELF-ARM: Type: R_ARM_LDR_PC_G0 (4)
-ELF-ARM: Type: R_ARM_ABS16 (5)
-ELF-ARM: Type: R_ARM_ABS12 (6)
-ELF-ARM: Type: R_ARM_THM_ABS5 (7)
-ELF-ARM: Type: R_ARM_ABS8 (8)
-ELF-ARM: Type: R_ARM_SBREL32 (9)
-ELF-ARM: Type: R_ARM_THM_CALL (10)
-ELF-ARM: Type: R_ARM_THM_PC8 (11)
-ELF-ARM: Type: R_ARM_BREL_ADJ (12)
-ELF-ARM: Type: R_ARM_TLS_DESC (13)
-ELF-ARM: Type: R_ARM_THM_SWI8 (14)
-ELF-ARM: Type: R_ARM_XPC25 (15)
-ELF-ARM: Type: R_ARM_THM_XPC22 (16)
-ELF-ARM: Type: R_ARM_TLS_DTPMOD32 (17)
-ELF-ARM: Type: R_ARM_TLS_DTPOFF32 (18)
-ELF-ARM: Type: R_ARM_TLS_TPOFF32 (19)
-ELF-ARM: Type: R_ARM_COPY (20)
-ELF-ARM: Type: R_ARM_GLOB_DAT (21)
-ELF-ARM: Type: R_ARM_JUMP_SLOT (22)
-ELF-ARM: Type: R_ARM_RELATIVE (23)
-ELF-ARM: Type: R_ARM_GOTOFF32 (24)
-ELF-ARM: Type: R_ARM_BASE_PREL (25)
-ELF-ARM: Type: R_ARM_GOT_BREL (26)
-ELF-ARM: Type: R_ARM_CALL (28)
-ELF-ARM: Type: R_ARM_JUMP24 (29)
-ELF-ARM: Type: R_ARM_THM_JUMP24 (30)
-ELF-ARM: Type: R_ARM_BASE_ABS (31)
-ELF-ARM: Type: R_ARM_ALU_PCREL_7_0 (32)
-ELF-ARM: Type: R_ARM_ALU_PCREL_15_8 (33)
-ELF-ARM: Type: R_ARM_ALU_PCREL_23_15 (34)
-ELF-ARM: Type: R_ARM_LDR_SBREL_11_0_NC (35)
-ELF-ARM: Type: R_ARM_ALU_SBREL_19_12_NC (36)
-ELF-ARM: Type: R_ARM_ALU_SBREL_27_20_CK (37)
-ELF-ARM: Type: R_ARM_TARGET1 (38)
-ELF-ARM: Type: R_ARM_SBREL31 (39)
-ELF-ARM: Type: R_ARM_V4BX (40)
-ELF-ARM: Type: R_ARM_TARGET2 (41)
-ELF-ARM: Type: R_ARM_PREL31 (42)
-ELF-ARM: Type: R_ARM_MOVW_ABS_NC (43)
-ELF-ARM: Type: R_ARM_MOVT_ABS (44)
-ELF-ARM: Type: R_ARM_MOVW_PREL_NC (45)
-ELF-ARM: Type: R_ARM_MOVT_PREL (46)
-ELF-ARM: Type: R_ARM_THM_MOVW_ABS_NC (47)
-ELF-ARM: Type: R_ARM_THM_MOVT_ABS (48)
-ELF-ARM: Type: R_ARM_THM_MOVW_PREL_NC (49)
-ELF-ARM: Type: R_ARM_THM_MOVT_PREL (50)
-ELF-ARM: Type: R_ARM_THM_JUMP19 (51)
-ELF-ARM: Type: R_ARM_THM_JUMP6 (52)
-ELF-ARM: Type: R_ARM_THM_ALU_PREL_11_0 (53)
-ELF-ARM: Type: R_ARM_THM_PC12 (54)
-ELF-ARM: Type: R_ARM_ABS32_NOI (55)
-ELF-ARM: Type: R_ARM_REL32_NOI (56)
-ELF-ARM: Type: R_ARM_ALU_PC_G0_NC (57)
-ELF-ARM: Type: R_ARM_ALU_PC_G0 (58)
-ELF-ARM: Type: R_ARM_ALU_PC_G1_NC (59)
-ELF-ARM: Type: R_ARM_ALU_PC_G1 (60)
-ELF-ARM: Type: R_ARM_ALU_PC_G2 (61)
-ELF-ARM: Type: R_ARM_LDR_PC_G1 (62)
-ELF-ARM: Type: R_ARM_LDR_PC_G2 (63)
-ELF-ARM: Type: R_ARM_LDRS_PC_G0 (64)
-ELF-ARM: Type: R_ARM_LDRS_PC_G1 (65)
-ELF-ARM: Type: R_ARM_LDRS_PC_G2 (66)
-ELF-ARM: Type: R_ARM_LDC_PC_G0 (67)
-ELF-ARM: Type: R_ARM_LDC_PC_G1 (68)
-ELF-ARM: Type: R_ARM_LDC_PC_G2 (69)
-ELF-ARM: Type: R_ARM_ALU_SB_G0_NC (70)
-ELF-ARM: Type: R_ARM_ALU_SB_G0 (71)
-ELF-ARM: Type: R_ARM_ALU_SB_G1_NC (72)
-ELF-ARM: Type: R_ARM_ALU_SB_G1 (73)
-ELF-ARM: Type: R_ARM_ALU_SB_G2 (74)
-ELF-ARM: Type: R_ARM_LDR_SB_G0 (75)
-ELF-ARM: Type: R_ARM_LDR_SB_G1 (76)
-ELF-ARM: Type: R_ARM_LDR_SB_G2 (77)
-ELF-ARM: Type: R_ARM_LDRS_SB_G0 (78)
-ELF-ARM: Type: R_ARM_LDRS_SB_G1 (79)
-ELF-ARM: Type: R_ARM_LDRS_SB_G2 (80)
-ELF-ARM: Type: R_ARM_LDC_SB_G0 (81)
-ELF-ARM: Type: R_ARM_LDC_SB_G1 (82)
-ELF-ARM: Type: R_ARM_LDC_SB_G2 (83)
-ELF-ARM: Type: R_ARM_MOVW_BREL_NC (84)
-ELF-ARM: Type: R_ARM_MOVT_BREL (85)
-ELF-ARM: Type: R_ARM_MOVW_BREL (86)
-ELF-ARM: Type: R_ARM_THM_MOVW_BREL_NC (87)
-ELF-ARM: Type: R_ARM_THM_MOVT_BREL (88)
-ELF-ARM: Type: R_ARM_THM_MOVW_BREL (89)
-ELF-ARM: Type: R_ARM_TLS_GOTDESC (90)
-ELF-ARM: Type: R_ARM_TLS_CALL (91)
-ELF-ARM: Type: R_ARM_TLS_DESCSEQ (92)
-ELF-ARM: Type: R_ARM_THM_TLS_CALL (93)
-ELF-ARM: Type: R_ARM_PLT32_ABS (94)
-ELF-ARM: Type: R_ARM_GOT_ABS (95)
-ELF-ARM: Type: R_ARM_GOT_PREL (96)
-ELF-ARM: Type: R_ARM_GOT_BREL12 (97)
-ELF-ARM: Type: R_ARM_GOTOFF12 (98)
-ELF-ARM: Type: R_ARM_GOTRELAX (99)
-ELF-ARM: Type: R_ARM_GNU_VTENTRY (100)
-ELF-ARM: Type: R_ARM_GNU_VTINHERIT (101)
-ELF-ARM: Type: R_ARM_THM_JUMP11 (102)
-ELF-ARM: Type: R_ARM_THM_JUMP8 (103)
-ELF-ARM: Type: R_ARM_TLS_GD32 (104)
-ELF-ARM: Type: R_ARM_TLS_LDM32 (105)
-ELF-ARM: Type: R_ARM_TLS_LDO32 (106)
-ELF-ARM: Type: R_ARM_TLS_IE32 (107)
-ELF-ARM: Type: R_ARM_TLS_LE32 (108)
-ELF-ARM: Type: R_ARM_TLS_LDO12 (109)
-ELF-ARM: Type: R_ARM_TLS_LE12 (110)
-ELF-ARM: Type: R_ARM_TLS_IE12GP (111)
-ELF-ARM: Type: R_ARM_PRIVATE_0 (112)
-ELF-ARM: Type: R_ARM_PRIVATE_1 (113)
-ELF-ARM: Type: R_ARM_PRIVATE_2 (114)
-ELF-ARM: Type: R_ARM_PRIVATE_3 (115)
-ELF-ARM: Type: R_ARM_PRIVATE_4 (116)
-ELF-ARM: Type: R_ARM_PRIVATE_5 (117)
-ELF-ARM: Type: R_ARM_PRIVATE_6 (118)
-ELF-ARM: Type: R_ARM_PRIVATE_7 (119)
-ELF-ARM: Type: R_ARM_PRIVATE_8 (120)
-ELF-ARM: Type: R_ARM_PRIVATE_9 (121)
-ELF-ARM: Type: R_ARM_PRIVATE_10 (122)
-ELF-ARM: Type: R_ARM_PRIVATE_11 (123)
-ELF-ARM: Type: R_ARM_PRIVATE_12 (124)
-ELF-ARM: Type: R_ARM_PRIVATE_13 (125)
-ELF-ARM: Type: R_ARM_PRIVATE_14 (126)
-ELF-ARM: Type: R_ARM_PRIVATE_15 (127)
-ELF-ARM: Type: R_ARM_ME_TOO (128)
-ELF-ARM: Type: R_ARM_THM_TLS_DESCSEQ16 (129)
-ELF-ARM: Type: R_ARM_THM_TLS_DESCSEQ32 (130)
-ELF-ARM: Type: R_ARM_IRELATIVE (160)
-
-ELF-LANAI: Type: R_LANAI_NONE (0)
-ELF-LANAI: Type: R_LANAI_21 (1)
-ELF-LANAI: Type: R_LANAI_21_F (2)
-ELF-LANAI: Type: R_LANAI_25 (3)
-ELF-LANAI: Type: R_LANAI_32 (4)
-ELF-LANAI: Type: R_LANAI_HI16 (5)
-ELF-LANAI: Type: R_LANAI_LO16 (6)
-
-ELF-MIPS: Type: R_MIPS_NONE (0)
-ELF-MIPS: Type: R_MIPS_16 (1)
-ELF-MIPS: Type: R_MIPS_32 (2)
-ELF-MIPS: Type: R_MIPS_REL32 (3)
-ELF-MIPS: Type: R_MIPS_26 (4)
-ELF-MIPS: Type: R_MIPS_HI16 (5)
-ELF-MIPS: Type: R_MIPS_LO16 (6)
-ELF-MIPS: Type: R_MIPS_GPREL16 (7)
-ELF-MIPS: Type: R_MIPS_LITERAL (8)
-ELF-MIPS: Type: R_MIPS_GOT16 (9)
-ELF-MIPS: Type: R_MIPS_PC16 (10)
-ELF-MIPS: Type: R_MIPS_CALL16 (11)
-ELF-MIPS: Type: R_MIPS_GPREL32 (12)
-ELF-MIPS: Type: R_MIPS_SHIFT5 (16)
-ELF-MIPS: Type: R_MIPS_SHIFT6 (17)
-ELF-MIPS: Type: R_MIPS_64 (18)
-ELF-MIPS: Type: R_MIPS_GOT_DISP (19)
-ELF-MIPS: Type: R_MIPS_GOT_PAGE (20)
-ELF-MIPS: Type: R_MIPS_GOT_OFST (21)
-ELF-MIPS: Type: R_MIPS_GOT_HI16 (22)
-ELF-MIPS: Type: R_MIPS_GOT_LO16 (23)
-ELF-MIPS: Type: R_MIPS_SUB (24)
-ELF-MIPS: Type: R_MIPS_INSERT_A (25)
-ELF-MIPS: Type: R_MIPS_INSERT_B (26)
-ELF-MIPS: Type: R_MIPS_DELETE (27)
-ELF-MIPS: Type: R_MIPS_HIGHER (28)
-ELF-MIPS: Type: R_MIPS_HIGHEST (29)
-ELF-MIPS: Type: R_MIPS_CALL_HI16 (30)
-ELF-MIPS: Type: R_MIPS_CALL_LO16 (31)
-ELF-MIPS: Type: R_MIPS_SCN_DISP (32)
-ELF-MIPS: Type: R_MIPS_REL16 (33)
-ELF-MIPS: Type: R_MIPS_ADD_IMMEDIATE (34)
-ELF-MIPS: Type: R_MIPS_PJUMP (35)
-ELF-MIPS: Type: R_MIPS_RELGOT (36)
-ELF-MIPS: Type: R_MIPS_JALR (37)
-ELF-MIPS: Type: R_MIPS_TLS_DTPMOD32 (38)
-ELF-MIPS: Type: R_MIPS_TLS_DTPREL32 (39)
-ELF-MIPS: Type: R_MIPS_TLS_DTPMOD64 (40)
-ELF-MIPS: Type: R_MIPS_TLS_DTPREL64 (41)
-ELF-MIPS: Type: R_MIPS_TLS_GD (42)
-ELF-MIPS: Type: R_MIPS_TLS_LDM (43)
-ELF-MIPS: Type: R_MIPS_TLS_DTPREL_HI16 (44)
-ELF-MIPS: Type: R_MIPS_TLS_DTPREL_LO16 (45)
-ELF-MIPS: Type: R_MIPS_TLS_GOTTPREL (46)
-ELF-MIPS: Type: R_MIPS_TLS_TPREL32 (47)
-ELF-MIPS: Type: R_MIPS_TLS_TPREL64 (48)
-ELF-MIPS: Type: R_MIPS_TLS_TPREL_HI16 (49)
-ELF-MIPS: Type: R_MIPS_TLS_TPREL_LO16 (50)
-ELF-MIPS: Type: R_MIPS_GLOB_DAT (51)
-ELF-MIPS: Type: R_MIPS_COPY (126)
-ELF-MIPS: Type: R_MIPS_JUMP_SLOT (127)
-ELF-MIPS: Type: R_MIPS_NUM (218)
-ELF-MIPS64EL: Type: R_MIPS_NONE/R_MIPS_NONE/R_MIPS_NONE (0)
-ELF-MIPS64EL: Type: R_MIPS_16/R_MIPS_16/R_MIPS_16 (65793)
-ELF-MIPS64EL: Type: R_MIPS_32/R_MIPS_32/R_MIPS_32 (131586)
-ELF-MIPS64EL: Type: R_MIPS_REL32/R_MIPS_REL32/R_MIPS_REL32 (197379)
-ELF-MIPS64EL: Type: R_MIPS_26/R_MIPS_26/R_MIPS_26 (263172)
-ELF-MIPS64EL: Type: R_MIPS_HI16/R_MIPS_HI16/R_MIPS_HI16 (328965)
-ELF-MIPS64EL: Type: R_MIPS_LO16/R_MIPS_LO16/R_MIPS_LO16 (394758)
-ELF-MIPS64EL: Type: R_MIPS_GPREL16/R_MIPS_GPREL16/R_MIPS_GPREL16 (460551)
-ELF-MIPS64EL: Type: R_MIPS_LITERAL/R_MIPS_LITERAL/R_MIPS_LITERAL (526344)
-ELF-MIPS64EL: Type: R_MIPS_GOT16/R_MIPS_GOT16/R_MIPS_GOT16 (592137)
-ELF-MIPS64EL: Type: R_MIPS_PC16/R_MIPS_PC16/R_MIPS_PC16 (657930)
-ELF-MIPS64EL: Type: R_MIPS_CALL16/R_MIPS_CALL16/R_MIPS_CALL16 (723723)
-ELF-MIPS64EL: Type: R_MIPS_GPREL32/R_MIPS_GPREL32/R_MIPS_GPREL32 (789516)
-ELF-MIPS64EL: Type: R_MIPS_SHIFT5/R_MIPS_SHIFT5/R_MIPS_SHIFT5 (1052688)
-ELF-MIPS64EL: Type: R_MIPS_SHIFT6/R_MIPS_SHIFT6/R_MIPS_SHIFT6 (1118481)
-ELF-MIPS64EL: Type: R_MIPS_64/R_MIPS_64/R_MIPS_64 (1184274)
-ELF-MIPS64EL: Type: R_MIPS_GOT_DISP/R_MIPS_GOT_DISP/R_MIPS_GOT_DISP (1250067)
-ELF-MIPS64EL: Type: R_MIPS_GOT_PAGE/R_MIPS_GOT_PAGE/R_MIPS_GOT_PAGE (1315860)
-ELF-MIPS64EL: Type: R_MIPS_GOT_OFST/R_MIPS_GOT_OFST/R_MIPS_GOT_OFST (1381653)
-ELF-MIPS64EL: Type: R_MIPS_GOT_HI16/R_MIPS_GOT_HI16/R_MIPS_GOT_HI16 (1447446)
-ELF-MIPS64EL: Type: R_MIPS_GOT_LO16/R_MIPS_GOT_LO16/R_MIPS_GOT_LO16 (1513239)
-ELF-MIPS64EL: Type: R_MIPS_SUB/R_MIPS_SUB/R_MIPS_SUB (1579032)
-ELF-MIPS64EL: Type: R_MIPS_INSERT_A/R_MIPS_INSERT_A/R_MIPS_INSERT_A (1644825)
-ELF-MIPS64EL: Type: R_MIPS_INSERT_B/R_MIPS_INSERT_B/R_MIPS_INSERT_B (1710618)
-ELF-MIPS64EL: Type: R_MIPS_DELETE/R_MIPS_DELETE/R_MIPS_DELETE (1776411)
-ELF-MIPS64EL: Type: R_MIPS_HIGHER/R_MIPS_HIGHER/R_MIPS_HIGHER (1842204)
-ELF-MIPS64EL: Type: R_MIPS_HIGHEST/R_MIPS_HIGHEST/R_MIPS_HIGHEST (1907997)
-ELF-MIPS64EL: Type: R_MIPS_CALL_HI16/R_MIPS_CALL_HI16/R_MIPS_CALL_HI16 (1973790)
-ELF-MIPS64EL: Type: R_MIPS_CALL_LO16/R_MIPS_CALL_LO16/R_MIPS_CALL_LO16 (2039583)
-ELF-MIPS64EL: Type: R_MIPS_SCN_DISP/R_MIPS_SCN_DISP/R_MIPS_SCN_DISP (2105376)
-ELF-MIPS64EL: Type: R_MIPS_REL16/R_MIPS_REL16/R_MIPS_REL16 (2171169)
-ELF-MIPS64EL: Type: R_MIPS_ADD_IMMEDIATE/R_MIPS_ADD_IMMEDIATE/R_MIPS_ADD_IMMEDIATE (2236962)
-ELF-MIPS64EL: Type: R_MIPS_PJUMP/R_MIPS_PJUMP/R_MIPS_PJUMP (2302755)
-ELF-MIPS64EL: Type: R_MIPS_RELGOT/R_MIPS_RELGOT/R_MIPS_RELGOT (2368548)
-ELF-MIPS64EL: Type: R_MIPS_JALR/R_MIPS_JALR/R_MIPS_JALR (2434341)
-ELF-MIPS64EL: Type: R_MIPS_TLS_DTPMOD32/R_MIPS_TLS_DTPMOD32/R_MIPS_TLS_DTPMOD32 (2500134)
-ELF-MIPS64EL: Type: R_MIPS_TLS_DTPREL32/R_MIPS_TLS_DTPREL32/R_MIPS_TLS_DTPREL32 (2565927)
-ELF-MIPS64EL: Type: R_MIPS_TLS_DTPMOD64/R_MIPS_TLS_DTPMOD64/R_MIPS_TLS_DTPMOD64 (2631720)
-ELF-MIPS64EL: Type: R_MIPS_TLS_DTPREL64/R_MIPS_TLS_DTPREL64/R_MIPS_TLS_DTPREL64 (2697513)
-ELF-MIPS64EL: Type: R_MIPS_TLS_GD/R_MIPS_TLS_GD/R_MIPS_TLS_GD (2763306)
-ELF-MIPS64EL: Type: R_MIPS_TLS_LDM/R_MIPS_TLS_LDM/R_MIPS_TLS_LDM (2829099)
-ELF-MIPS64EL: Type: R_MIPS_TLS_DTPREL_HI16/R_MIPS_TLS_DTPREL_HI16/R_MIPS_TLS_DTPREL_HI16 (2894892)
-ELF-MIPS64EL: Type: R_MIPS_TLS_DTPREL_LO16/R_MIPS_TLS_DTPREL_LO16/R_MIPS_TLS_DTPREL_LO16 (2960685)
-ELF-MIPS64EL: Type: R_MIPS_TLS_GOTTPREL/R_MIPS_TLS_GOTTPREL/R_MIPS_TLS_GOTTPREL (3026478)
-ELF-MIPS64EL: Type: R_MIPS_TLS_TPREL32/R_MIPS_TLS_TPREL32/R_MIPS_TLS_TPREL32 (3092271)
-ELF-MIPS64EL: Type: R_MIPS_TLS_TPREL64/R_MIPS_TLS_TPREL64/R_MIPS_TLS_TPREL64 (3158064)
-ELF-MIPS64EL: Type: R_MIPS_TLS_TPREL_HI16/R_MIPS_TLS_TPREL_HI16/R_MIPS_TLS_TPREL_HI16 (3223857)
-ELF-MIPS64EL: Type: R_MIPS_TLS_TPREL_LO16/R_MIPS_TLS_TPREL_LO16/R_MIPS_TLS_TPREL_LO16 (3289650)
-ELF-MIPS64EL: Type: R_MIPS_GLOB_DAT/R_MIPS_GLOB_DAT/R_MIPS_GLOB_DAT (3355443)
-ELF-MIPS64EL: Type: R_MIPS_COPY/R_MIPS_COPY/R_MIPS_COPY (8289918)
-ELF-MIPS64EL: Type: R_MIPS_JUMP_SLOT/R_MIPS_JUMP_SLOT/R_MIPS_JUMP_SLOT (8355711)
-ELF-MIPS64EL: Type: R_MIPS_NUM/R_MIPS_NUM/R_MIPS_NUM (14342874)
-
-ELF-HEXAGON: Type: R_HEX_NONE (0)
-ELF-HEXAGON: Type: R_HEX_B22_PCREL (1)
-ELF-HEXAGON: Type: R_HEX_B15_PCREL (2)
-ELF-HEXAGON: Type: R_HEX_B7_PCREL (3)
-ELF-HEXAGON: Type: R_HEX_LO16 (4)
-ELF-HEXAGON: Type: R_HEX_HI16 (5)
-ELF-HEXAGON: Type: R_HEX_32 (6)
-ELF-HEXAGON: Type: R_HEX_16 (7)
-ELF-HEXAGON: Type: R_HEX_8 (8)
-ELF-HEXAGON: Type: R_HEX_GPREL16_0 (9)
-ELF-HEXAGON: Type: R_HEX_GPREL16_1 (10)
-ELF-HEXAGON: Type: R_HEX_GPREL16_2 (11)
-ELF-HEXAGON: Type: R_HEX_GPREL16_3 (12)
-ELF-HEXAGON: Type: R_HEX_HL16 (13)
-ELF-HEXAGON: Type: R_HEX_B13_PCREL (14)
-ELF-HEXAGON: Type: R_HEX_B9_PCREL (15)
-ELF-HEXAGON: Type: R_HEX_B32_PCREL_X (16)
-ELF-HEXAGON: Type: R_HEX_32_6_X (17)
-ELF-HEXAGON: Type: R_HEX_B22_PCREL_X (18)
-ELF-HEXAGON: Type: R_HEX_B15_PCREL_X (19)
-ELF-HEXAGON: Type: R_HEX_B13_PCREL_X (20)
-ELF-HEXAGON: Type: R_HEX_B9_PCREL_X (21)
-ELF-HEXAGON: Type: R_HEX_B7_PCREL_X (22)
-ELF-HEXAGON: Type: R_HEX_16_X (23)
-ELF-HEXAGON: Type: R_HEX_12_X (24)
-ELF-HEXAGON: Type: R_HEX_11_X (25)
-ELF-HEXAGON: Type: R_HEX_10_X (26)
-ELF-HEXAGON: Type: R_HEX_9_X (27)
-ELF-HEXAGON: Type: R_HEX_8_X (28)
-ELF-HEXAGON: Type: R_HEX_7_X (29)
-ELF-HEXAGON: Type: R_HEX_6_X (30)
-ELF-HEXAGON: Type: R_HEX_32_PCREL (31)
-ELF-HEXAGON: Type: R_HEX_COPY (32)
-ELF-HEXAGON: Type: R_HEX_GLOB_DAT (33)
-ELF-HEXAGON: Type: R_HEX_JMP_SLOT (34)
-ELF-HEXAGON: Type: R_HEX_RELATIVE (35)
-ELF-HEXAGON: Type: R_HEX_PLT_B22_PCREL (36)
-ELF-HEXAGON: Type: R_HEX_GOTREL_LO16 (37)
-ELF-HEXAGON: Type: R_HEX_GOTREL_HI16 (38)
-ELF-HEXAGON: Type: R_HEX_GOTREL_32 (39)
-ELF-HEXAGON: Type: R_HEX_GOT_LO16 (40)
-ELF-HEXAGON: Type: R_HEX_GOT_HI16 (41)
-ELF-HEXAGON: Type: R_HEX_GOT_32 (42)
-ELF-HEXAGON: Type: R_HEX_GOT_16 (43)
-ELF-HEXAGON: Type: R_HEX_DTPMOD_32 (44)
-ELF-HEXAGON: Type: R_HEX_DTPREL_LO16 (45)
-ELF-HEXAGON: Type: R_HEX_DTPREL_HI16 (46)
-ELF-HEXAGON: Type: R_HEX_DTPREL_32 (47)
-ELF-HEXAGON: Type: R_HEX_DTPREL_16 (48)
-ELF-HEXAGON: Type: R_HEX_GD_PLT_B22_PCREL (49)
-ELF-HEXAGON: Type: R_HEX_GD_GOT_LO16 (50)
-ELF-HEXAGON: Type: R_HEX_GD_GOT_HI16 (51)
-ELF-HEXAGON: Type: R_HEX_GD_GOT_32 (52)
-ELF-HEXAGON: Type: R_HEX_GD_GOT_16 (53)
-ELF-HEXAGON: Type: R_HEX_IE_LO16 (54)
-ELF-HEXAGON: Type: R_HEX_IE_HI16 (55)
-ELF-HEXAGON: Type: R_HEX_IE_32 (56)
-ELF-HEXAGON: Type: R_HEX_IE_GOT_LO16 (57)
-ELF-HEXAGON: Type: R_HEX_IE_GOT_HI16 (58)
-ELF-HEXAGON: Type: R_HEX_IE_GOT_32 (59)
-ELF-HEXAGON: Type: R_HEX_IE_GOT_16 (60)
-ELF-HEXAGON: Type: R_HEX_TPREL_LO16 (61)
-ELF-HEXAGON: Type: R_HEX_TPREL_HI16 (62)
-ELF-HEXAGON: Type: R_HEX_TPREL_32 (63)
-ELF-HEXAGON: Type: R_HEX_TPREL_16 (64)
-ELF-HEXAGON: Type: R_HEX_6_PCREL_X (65)
-ELF-HEXAGON: Type: R_HEX_GOTREL_32_6_X (66)
-ELF-HEXAGON: Type: R_HEX_GOTREL_16_X (67)
-ELF-HEXAGON: Type: R_HEX_GOTREL_11_X (68)
-ELF-HEXAGON: Type: R_HEX_GOT_32_6_X (69)
-ELF-HEXAGON: Type: R_HEX_GOT_16_X (70)
-ELF-HEXAGON: Type: R_HEX_GOT_11_X (71)
-ELF-HEXAGON: Type: R_HEX_DTPREL_32_6_X (72)
-ELF-HEXAGON: Type: R_HEX_DTPREL_16_X (73)
-ELF-HEXAGON: Type: R_HEX_DTPREL_11_X (74)
-ELF-HEXAGON: Type: R_HEX_GD_GOT_32_6_X (75)
-ELF-HEXAGON: Type: R_HEX_GD_GOT_16_X (76)
-ELF-HEXAGON: Type: R_HEX_GD_GOT_11_X (77)
-ELF-HEXAGON: Type: R_HEX_IE_32_6_X (78)
-ELF-HEXAGON: Type: R_HEX_IE_16_X (79)
-ELF-HEXAGON: Type: R_HEX_IE_GOT_32_6_X (80)
-ELF-HEXAGON: Type: R_HEX_IE_GOT_16_X (81)
-ELF-HEXAGON: Type: R_HEX_IE_GOT_11_X (82)
-ELF-HEXAGON: Type: R_HEX_TPREL_32_6_X (83)
-ELF-HEXAGON: Type: R_HEX_TPREL_16_X (84)
-ELF-HEXAGON: Type: R_HEX_TPREL_11_X (85)
-
-COFF-32: Type: IMAGE_REL_I386_ABSOLUTE (0)
-COFF-32: Type: IMAGE_REL_I386_DIR16 (1)
-COFF-32: Type: IMAGE_REL_I386_REL16 (2)
-COFF-32: Type: IMAGE_REL_I386_DIR32 (6)
-COFF-32: Type: IMAGE_REL_I386_DIR32NB (7)
-COFF-32: Type: IMAGE_REL_I386_SEG12 (9)
-COFF-32: Type: IMAGE_REL_I386_SECTION (10)
-COFF-32: Type: IMAGE_REL_I386_SECREL (11)
-COFF-32: Type: IMAGE_REL_I386_TOKEN (12)
-COFF-32: Type: IMAGE_REL_I386_SECREL7 (13)
-COFF-32: Type: IMAGE_REL_I386_REL32 (20)
-
-COFF-64: Type: IMAGE_REL_AMD64_ABSOLUTE (0)
-COFF-64: Type: IMAGE_REL_AMD64_ADDR64 (1)
-COFF-64: Type: IMAGE_REL_AMD64_ADDR32 (2)
-COFF-64: Type: IMAGE_REL_AMD64_ADDR32NB (3)
-COFF-64: Type: IMAGE_REL_AMD64_REL32 (4)
-COFF-64: Type: IMAGE_REL_AMD64_REL32_1 (5)
-COFF-64: Type: IMAGE_REL_AMD64_REL32_2 (6)
-COFF-64: Type: IMAGE_REL_AMD64_REL32_3 (7)
-COFF-64: Type: IMAGE_REL_AMD64_REL32_4 (8)
-COFF-64: Type: IMAGE_REL_AMD64_REL32_5 (9)
-COFF-64: Type: IMAGE_REL_AMD64_SECTION (10)
-COFF-64: Type: IMAGE_REL_AMD64_SECREL (11)
-COFF-64: Type: IMAGE_REL_AMD64_SECREL7 (12)
-COFF-64: Type: IMAGE_REL_AMD64_TOKEN (13)
-COFF-64: Type: IMAGE_REL_AMD64_SREL32 (14)
-COFF-64: Type: IMAGE_REL_AMD64_PAIR (15)
-COFF-64: Type: IMAGE_REL_AMD64_SSPAN32 (16)
-
-COFF-ARM: Type: IMAGE_REL_ARM_ABSOLUTE (0x0000)
-COFF-ARM: Type: IMAGE_REL_ARM_ADDR32 (0x0001)
-COFF-ARM: Type: IMAGE_REL_ARM_ADDR32NB (0x0002)
-COFF-ARM: Type: IMAGE_REL_ARM_BRANCH24 (0x0003)
-COFF-ARM: Type: IMAGE_REL_ARM_BRANCH11 (0x0004)
-COFF-ARM: Type: IMAGE_REL_ARM_TOKEN (0x0005)
-COFF-ARM: Type: IMAGE_REL_ARM_BLX24 (0x0008)
-COFF-ARM: Type: IMAGE_REL_ARM_BLX11 (0x0009)
-COFF-ARM: Type: IMAGE_REL_ARM_SECTION (0x000E)
-COFF-ARM: Type: IMAGE_REL_ARM_SECREL (0x000F)
-COFF-ARM: Type: IMAGE_REL_ARM_MOV32A (0x0010)
-COFF-ARM: Type: IMAGE_REL_ARM_MOV32T (0x0011)
-COFF-ARM: Type: IMAGE_REL_ARM_BRANCH20T (0x0012)
-COFF-ARM: Type: IMAGE_REL_ARM_BRANCH24T (0x0014)
-COFF-ARM: Type: IMAGE_REL_ARM_BLX23T (0x0015)
-
-MACHO-32: Type: GENERIC_RELOC_VANILLA (0)
-MACHO-32: Type: GENERIC_RELOC_PAIR (1)
-MACHO-32: Type: GENERIC_RELOC_SECTDIFF (2)
-MACHO-32: Type: GENERIC_RELOC_PB_LA_PTR (3)
-MACHO-32: Type: GENERIC_RELOC_LOCAL_SECTDIFF (4)
-MACHO-32: Type: GENERIC_RELOC_TLV (5)
-
-MACHO-64: Type: X86_64_RELOC_UNSIGNED (0)
-MACHO-64: Type: X86_64_RELOC_SIGNED (1)
-MACHO-64: Type: X86_64_RELOC_BRANCH (2)
-MACHO-64: Type: X86_64_RELOC_GOT_LOAD (3)
-MACHO-64: Type: X86_64_RELOC_GOT (4)
-MACHO-64: Type: X86_64_RELOC_SUBTRACTOR (5)
-MACHO-64: Type: X86_64_RELOC_SIGNED_1 (6)
-MACHO-64: Type: X86_64_RELOC_SIGNED_2 (7)
-MACHO-64: Type: X86_64_RELOC_SIGNED_4 (8)
-MACHO-64: Type: X86_64_RELOC_TLV (9)
-
-MACHO-ARM: Type: ARM_RELOC_VANILLA (0)
-MACHO-ARM: Type: ARM_RELOC_PAIR (1)
-MACHO-ARM: Type: ARM_RELOC_SECTDIFF (2)
-MACHO-ARM: Type: ARM_RELOC_LOCAL_SECTDIFF (3)
-MACHO-ARM: Type: ARM_RELOC_PB_LA_PTR (4)
-MACHO-ARM: Type: ARM_RELOC_BR24 (5)
-MACHO-ARM: Type: ARM_THUMB_RELOC_BR22 (6)
-MACHO-ARM: Type: ARM_THUMB_32BIT_BRANCH (7)
-MACHO-ARM: Type: ARM_RELOC_HALF (8)
-MACHO-ARM: Type: ARM_RELOC_HALF_SECTDIFF (9)
-
-MACHO-PPC: PPC_RELOC_VANILLA (0)
-MACHO-PPC: PPC_RELOC_PAIR (1)
-MACHO-PPC: PPC_RELOC_BR14 (2)
-MACHO-PPC: PPC_RELOC_BR24 (3)
-MACHO-PPC: PPC_RELOC_HI16 (4)
-MACHO-PPC: PPC_RELOC_LO16 (5)
-MACHO-PPC: PPC_RELOC_HA16 (6)
-MACHO-PPC: PPC_RELOC_LO14 (7)
-MACHO-PPC: PPC_RELOC_SECTDIFF (8)
-MACHO-PPC: PPC_RELOC_PB_LA_PTR (9)
-MACHO-PPC: PPC_RELOC_HI16_SECTDIFF (10)
-MACHO-PPC: PPC_RELOC_LO16_SECTDIFF (11)
-MACHO-PPC: PPC_RELOC_HA16_SECTDIFF (12)
-MACHO-PPC: PPC_RELOC_JBSR (13)
-MACHO-PPC: PPC_RELOC_LO14_SECTDIFF (14)
-MACHO-PPC: PPC_RELOC_LOCAL_SECTDIFF (15)