1## Test that llvm-readobj/llvm-readelf shows proper relocation type 2## names and values for loongarch64 target. 3 4# RUN: yaml2obj %s -o %t-loongarch64.o 5# RUN: llvm-readobj -r --expand-relocs %t-loongarch64.o | FileCheck %s 6 7# CHECK: Type: R_LARCH_NONE (0) 8# CHECK: Type: R_LARCH_32 (1) 9# CHECK: Type: R_LARCH_64 (2) 10# CHECK: Type: R_LARCH_RELATIVE (3) 11# CHECK: Type: R_LARCH_COPY (4) 12# CHECK: Type: R_LARCH_JUMP_SLOT (5) 13# CHECK: Type: R_LARCH_TLS_DTPMOD32 (6) 14# CHECK: Type: R_LARCH_TLS_DTPMOD64 (7) 15# CHECK: Type: R_LARCH_TLS_DTPREL32 (8) 16# CHECK: Type: R_LARCH_TLS_DTPREL64 (9) 17# CHECK: Type: R_LARCH_TLS_TPREL32 (10) 18# CHECK: Type: R_LARCH_TLS_TPREL64 (11) 19# CHECK: Type: R_LARCH_IRELATIVE (12) 20# CHECK: Type: R_LARCH_TLS_DESC32 (13) 21# CHECK: Type: R_LARCH_TLS_DESC64 (14) 22# CHECK: Type: R_LARCH_MARK_LA (20) 23# CHECK: Type: R_LARCH_MARK_PCREL (21) 24# CHECK: Type: R_LARCH_SOP_PUSH_PCREL (22) 25# CHECK: Type: R_LARCH_SOP_PUSH_ABSOLUTE (23) 26# CHECK: Type: R_LARCH_SOP_PUSH_DUP (24) 27# CHECK: Type: R_LARCH_SOP_PUSH_GPREL (25) 28# CHECK: Type: R_LARCH_SOP_PUSH_TLS_TPREL (26) 29# CHECK: Type: R_LARCH_SOP_PUSH_TLS_GOT (27) 30# CHECK: Type: R_LARCH_SOP_PUSH_TLS_GD (28) 31# CHECK: Type: R_LARCH_SOP_PUSH_PLT_PCREL (29) 32# CHECK: Type: R_LARCH_SOP_ASSERT (30) 33# CHECK: Type: R_LARCH_SOP_NOT (31) 34# CHECK: Type: R_LARCH_SOP_SUB (32) 35# CHECK: Type: R_LARCH_SOP_SL (33) 36# CHECK: Type: R_LARCH_SOP_SR (34) 37# CHECK: Type: R_LARCH_SOP_ADD (35) 38# CHECK: Type: R_LARCH_SOP_AND (36) 39# CHECK: Type: R_LARCH_SOP_IF_ELSE (37) 40# CHECK: Type: R_LARCH_SOP_POP_32_S_10_5 (38) 41# CHECK: Type: R_LARCH_SOP_POP_32_U_10_12 (39) 42# CHECK: Type: R_LARCH_SOP_POP_32_S_10_12 (40) 43# CHECK: Type: R_LARCH_SOP_POP_32_S_10_16 (41) 44# CHECK: Type: R_LARCH_SOP_POP_32_S_10_16_S2 (42) 45# CHECK: Type: R_LARCH_SOP_POP_32_S_5_20 (43) 46# CHECK: Type: R_LARCH_SOP_POP_32_S_0_5_10_16_S2 (44) 47# CHECK: Type: R_LARCH_SOP_POP_32_S_0_10_10_16_S2 (45) 48# CHECK: Type: R_LARCH_SOP_POP_32_U (46) 49# CHECK: Type: R_LARCH_ADD8 (47) 50# CHECK: Type: R_LARCH_ADD16 (48) 51# CHECK: Type: R_LARCH_ADD24 (49) 52# CHECK: Type: R_LARCH_ADD32 (50) 53# CHECK: Type: R_LARCH_ADD64 (51) 54# CHECK: Type: R_LARCH_SUB8 (52) 55# CHECK: Type: R_LARCH_SUB16 (53) 56# CHECK: Type: R_LARCH_SUB24 (54) 57# CHECK: Type: R_LARCH_SUB32 (55) 58# CHECK: Type: R_LARCH_SUB64 (56) 59# CHECK: Type: R_LARCH_GNU_VTINHERIT (57) 60# CHECK: Type: R_LARCH_GNU_VTENTRY (58) 61# CHECK: Type: R_LARCH_B16 (64) 62# CHECK: Type: R_LARCH_B21 (65) 63# CHECK: Type: R_LARCH_B26 (66) 64# CHECK: Type: R_LARCH_ABS_HI20 (67) 65# CHECK: Type: R_LARCH_ABS_LO12 (68) 66# CHECK: Type: R_LARCH_ABS64_LO20 (69) 67# CHECK: Type: R_LARCH_ABS64_HI12 (70) 68# CHECK: Type: R_LARCH_PCALA_HI20 (71) 69# CHECK: Type: R_LARCH_PCALA_LO12 (72) 70# CHECK: Type: R_LARCH_PCALA64_LO20 (73) 71# CHECK: Type: R_LARCH_PCALA64_HI12 (74) 72# CHECK: Type: R_LARCH_GOT_PC_HI20 (75) 73# CHECK: Type: R_LARCH_GOT_PC_LO12 (76) 74# CHECK: Type: R_LARCH_GOT64_PC_LO20 (77) 75# CHECK: Type: R_LARCH_GOT64_PC_HI12 (78) 76# CHECK: Type: R_LARCH_GOT_HI20 (79) 77# CHECK: Type: R_LARCH_GOT_LO12 (80) 78# CHECK: Type: R_LARCH_GOT64_LO20 (81) 79# CHECK: Type: R_LARCH_GOT64_HI12 (82) 80# CHECK: Type: R_LARCH_TLS_LE_HI20 (83) 81# CHECK: Type: R_LARCH_TLS_LE_LO12 (84) 82# CHECK: Type: R_LARCH_TLS_LE64_LO20 (85) 83# CHECK: Type: R_LARCH_TLS_LE64_HI12 (86) 84# CHECK: Type: R_LARCH_TLS_IE_PC_HI20 (87) 85# CHECK: Type: R_LARCH_TLS_IE_PC_LO12 (88) 86# CHECK: Type: R_LARCH_TLS_IE64_PC_LO20 (89) 87# CHECK: Type: R_LARCH_TLS_IE64_PC_HI12 (90) 88# CHECK: Type: R_LARCH_TLS_IE_HI20 (91) 89# CHECK: Type: R_LARCH_TLS_IE_LO12 (92) 90# CHECK: Type: R_LARCH_TLS_IE64_LO20 (93) 91# CHECK: Type: R_LARCH_TLS_IE64_HI12 (94) 92# CHECK: Type: R_LARCH_TLS_LD_PC_HI20 (95) 93# CHECK: Type: R_LARCH_TLS_LD_HI20 (96) 94# CHECK: Type: R_LARCH_TLS_GD_PC_HI20 (97) 95# CHECK: Type: R_LARCH_TLS_GD_HI20 (98) 96# CHECK: Type: R_LARCH_32_PCREL (99) 97# CHECK: Type: R_LARCH_RELAX (100) 98# CHECK: Type: R_LARCH_ALIGN (102) 99# CHECK: Type: R_LARCH_PCREL20_S2 (103) 100# CHECK: Type: R_LARCH_ADD6 (105) 101# CHECK: Type: R_LARCH_SUB6 (106) 102# CHECK: Type: R_LARCH_ADD_ULEB128 (107) 103# CHECK: Type: R_LARCH_SUB_ULEB128 (108) 104# CHECK: Type: R_LARCH_64_PCREL (109) 105# CHECK: Type: R_LARCH_CALL36 (110) 106# CHECK: Type: R_LARCH_TLS_DESC_PC_HI20 (111) 107# CHECK: Type: R_LARCH_TLS_DESC_PC_LO12 (112) 108# CHECK: Type: R_LARCH_TLS_DESC64_PC_LO20 (113) 109# CHECK: Type: R_LARCH_TLS_DESC64_PC_HI12 (114) 110# CHECK: Type: R_LARCH_TLS_DESC_HI20 (115) 111# CHECK: Type: R_LARCH_TLS_DESC_LO12 (116) 112# CHECK: Type: R_LARCH_TLS_DESC64_LO20 (117) 113# CHECK: Type: R_LARCH_TLS_DESC64_HI12 (118) 114# CHECK: Type: R_LARCH_TLS_DESC_LD (119) 115# CHECK: Type: R_LARCH_TLS_DESC_CALL (120) 116# CHECK: Type: R_LARCH_TLS_LE_HI20_R (121) 117# CHECK: Type: R_LARCH_TLS_LE_ADD_R (122) 118# CHECK: Type: R_LARCH_TLS_LE_LO12_R (123) 119# CHECK: Type: R_LARCH_TLS_LD_PCREL20_S2 (124) 120# CHECK: Type: R_LARCH_TLS_GD_PCREL20_S2 (125) 121# CHECK: Type: R_LARCH_TLS_DESC_PCREL20_S2 (126) 122 123--- !ELF 124FileHeader: 125 Class: ELFCLASS64 126 Data: ELFDATA2LSB 127 Type: ET_REL 128 Machine: EM_LOONGARCH 129Sections: 130 - Name: .rela.text 131 Type: SHT_RELA 132 Relocations: 133 - Type: R_LARCH_NONE 134 - Type: R_LARCH_32 135 - Type: R_LARCH_64 136 - Type: R_LARCH_RELATIVE 137 - Type: R_LARCH_COPY 138 - Type: R_LARCH_JUMP_SLOT 139 - Type: R_LARCH_TLS_DTPMOD32 140 - Type: R_LARCH_TLS_DTPMOD64 141 - Type: R_LARCH_TLS_DTPREL32 142 - Type: R_LARCH_TLS_DTPREL64 143 - Type: R_LARCH_TLS_TPREL32 144 - Type: R_LARCH_TLS_TPREL64 145 - Type: R_LARCH_IRELATIVE 146 - Type: R_LARCH_TLS_DESC32 147 - Type: R_LARCH_TLS_DESC64 148 - Type: R_LARCH_MARK_LA 149 - Type: R_LARCH_MARK_PCREL 150 - Type: R_LARCH_SOP_PUSH_PCREL 151 - Type: R_LARCH_SOP_PUSH_ABSOLUTE 152 - Type: R_LARCH_SOP_PUSH_DUP 153 - Type: R_LARCH_SOP_PUSH_GPREL 154 - Type: R_LARCH_SOP_PUSH_TLS_TPREL 155 - Type: R_LARCH_SOP_PUSH_TLS_GOT 156 - Type: R_LARCH_SOP_PUSH_TLS_GD 157 - Type: R_LARCH_SOP_PUSH_PLT_PCREL 158 - Type: R_LARCH_SOP_ASSERT 159 - Type: R_LARCH_SOP_NOT 160 - Type: R_LARCH_SOP_SUB 161 - Type: R_LARCH_SOP_SL 162 - Type: R_LARCH_SOP_SR 163 - Type: R_LARCH_SOP_ADD 164 - Type: R_LARCH_SOP_AND 165 - Type: R_LARCH_SOP_IF_ELSE 166 - Type: R_LARCH_SOP_POP_32_S_10_5 167 - Type: R_LARCH_SOP_POP_32_U_10_12 168 - Type: R_LARCH_SOP_POP_32_S_10_12 169 - Type: R_LARCH_SOP_POP_32_S_10_16 170 - Type: R_LARCH_SOP_POP_32_S_10_16_S2 171 - Type: R_LARCH_SOP_POP_32_S_5_20 172 - Type: R_LARCH_SOP_POP_32_S_0_5_10_16_S2 173 - Type: R_LARCH_SOP_POP_32_S_0_10_10_16_S2 174 - Type: R_LARCH_SOP_POP_32_U 175 - Type: R_LARCH_ADD8 176 - Type: R_LARCH_ADD16 177 - Type: R_LARCH_ADD24 178 - Type: R_LARCH_ADD32 179 - Type: R_LARCH_ADD64 180 - Type: R_LARCH_SUB8 181 - Type: R_LARCH_SUB16 182 - Type: R_LARCH_SUB24 183 - Type: R_LARCH_SUB32 184 - Type: R_LARCH_SUB64 185 - Type: R_LARCH_GNU_VTINHERIT 186 - Type: R_LARCH_GNU_VTENTRY 187 - Type: R_LARCH_B16 188 - Type: R_LARCH_B21 189 - Type: R_LARCH_B26 190 - Type: R_LARCH_ABS_HI20 191 - Type: R_LARCH_ABS_LO12 192 - Type: R_LARCH_ABS64_LO20 193 - Type: R_LARCH_ABS64_HI12 194 - Type: R_LARCH_PCALA_HI20 195 - Type: R_LARCH_PCALA_LO12 196 - Type: R_LARCH_PCALA64_LO20 197 - Type: R_LARCH_PCALA64_HI12 198 - Type: R_LARCH_GOT_PC_HI20 199 - Type: R_LARCH_GOT_PC_LO12 200 - Type: R_LARCH_GOT64_PC_LO20 201 - Type: R_LARCH_GOT64_PC_HI12 202 - Type: R_LARCH_GOT_HI20 203 - Type: R_LARCH_GOT_LO12 204 - Type: R_LARCH_GOT64_LO20 205 - Type: R_LARCH_GOT64_HI12 206 - Type: R_LARCH_TLS_LE_HI20 207 - Type: R_LARCH_TLS_LE_LO12 208 - Type: R_LARCH_TLS_LE64_LO20 209 - Type: R_LARCH_TLS_LE64_HI12 210 - Type: R_LARCH_TLS_IE_PC_HI20 211 - Type: R_LARCH_TLS_IE_PC_LO12 212 - Type: R_LARCH_TLS_IE64_PC_LO20 213 - Type: R_LARCH_TLS_IE64_PC_HI12 214 - Type: R_LARCH_TLS_IE_HI20 215 - Type: R_LARCH_TLS_IE_LO12 216 - Type: R_LARCH_TLS_IE64_LO20 217 - Type: R_LARCH_TLS_IE64_HI12 218 - Type: R_LARCH_TLS_LD_PC_HI20 219 - Type: R_LARCH_TLS_LD_HI20 220 - Type: R_LARCH_TLS_GD_PC_HI20 221 - Type: R_LARCH_TLS_GD_HI20 222 - Type: R_LARCH_32_PCREL 223 - Type: R_LARCH_RELAX 224 - Type: R_LARCH_ALIGN 225 - Type: R_LARCH_PCREL20_S2 226 - Type: R_LARCH_ADD6 227 - Type: R_LARCH_SUB6 228 - Type: R_LARCH_ADD_ULEB128 229 - Type: R_LARCH_SUB_ULEB128 230 - Type: R_LARCH_64_PCREL 231 - Type: R_LARCH_CALL36 232 - Type: R_LARCH_TLS_DESC_PC_HI20 233 - Type: R_LARCH_TLS_DESC_PC_LO12 234 - Type: R_LARCH_TLS_DESC64_PC_LO20 235 - Type: R_LARCH_TLS_DESC64_PC_HI12 236 - Type: R_LARCH_TLS_DESC_HI20 237 - Type: R_LARCH_TLS_DESC_LO12 238 - Type: R_LARCH_TLS_DESC64_LO20 239 - Type: R_LARCH_TLS_DESC64_HI12 240 - Type: R_LARCH_TLS_DESC_LD 241 - Type: R_LARCH_TLS_DESC_CALL 242 - Type: R_LARCH_TLS_LE_HI20_R 243 - Type: R_LARCH_TLS_LE_ADD_R 244 - Type: R_LARCH_TLS_LE_LO12_R 245 - Type: R_LARCH_TLS_LD_PCREL20_S2 246 - Type: R_LARCH_TLS_GD_PCREL20_S2 247 - Type: R_LARCH_TLS_DESC_PCREL20_S2 248