1## Check obj2yaml is able to decode all PPC64 relocations. 2 3# RUN: yaml2obj %s -o %t 4# RUN: obj2yaml %t | FileCheck %s 5 6# CHECK: --- !ELF 7# CHECK-NEXT: FileHeader: 8# CHECK-NEXT: Class: ELFCLASS64 9# CHECK-NEXT: Data: ELFDATA2MSB 10# CHECK-NEXT: Type: ET_REL 11# CHECK-NEXT: Machine: EM_PPC64 12# CHECK-NEXT: Sections: 13# CHECK-NEXT: - Name: .rela.text 14# CHECK-NEXT: Type: SHT_RELA 15# CHECK-NEXT: Relocations: 16# CHECK-NEXT: - Type: R_PPC64_NONE 17# CHECK-NEXT: - Type: R_PPC64_ADDR32 18# CHECK-NEXT: - Type: R_PPC64_ADDR24 19# CHECK-NEXT: - Type: R_PPC64_ADDR16 20# CHECK-NEXT: - Type: R_PPC64_ADDR16_LO 21# CHECK-NEXT: - Type: R_PPC64_ADDR16_HI 22# CHECK-NEXT: - Type: R_PPC64_ADDR16_HA 23# CHECK-NEXT: - Type: R_PPC64_ADDR14 24# CHECK-NEXT: - Type: R_PPC64_ADDR14_BRTAKEN 25# CHECK-NEXT: - Type: R_PPC64_ADDR14_BRNTAKEN 26# CHECK-NEXT: - Type: R_PPC64_REL24 27# CHECK-NEXT: - Type: R_PPC64_REL14 28# CHECK-NEXT: - Type: R_PPC64_REL14_BRTAKEN 29# CHECK-NEXT: - Type: R_PPC64_REL14_BRNTAKEN 30# CHECK-NEXT: - Type: R_PPC64_GOT16 31# CHECK-NEXT: - Type: R_PPC64_GOT16_LO 32# CHECK-NEXT: - Type: R_PPC64_GOT16_HI 33# CHECK-NEXT: - Type: R_PPC64_GOT16_HA 34# CHECK-NEXT: - Type: R_PPC64_GLOB_DAT 35# CHECK-NEXT: - Type: R_PPC64_JMP_SLOT 36# CHECK-NEXT: - Type: R_PPC64_RELATIVE 37# CHECK-NEXT: - Type: R_PPC64_REL32 38# CHECK-NEXT: - Type: R_PPC64_ADDR64 39# CHECK-NEXT: - Type: R_PPC64_ADDR16_HIGHER 40# CHECK-NEXT: - Type: R_PPC64_ADDR16_HIGHERA 41# CHECK-NEXT: - Type: R_PPC64_ADDR16_HIGHEST 42# CHECK-NEXT: - Type: R_PPC64_ADDR16_HIGHESTA 43# CHECK-NEXT: - Type: R_PPC64_REL64 44# CHECK-NEXT: - Type: R_PPC64_TOC16 45# CHECK-NEXT: - Type: R_PPC64_TOC16_LO 46# CHECK-NEXT: - Type: R_PPC64_TOC16_HI 47# CHECK-NEXT: - Type: R_PPC64_TOC16_HA 48# CHECK-NEXT: - Type: R_PPC64_TOC 49# CHECK-NEXT: - Type: R_PPC64_ADDR16_DS 50# CHECK-NEXT: - Type: R_PPC64_ADDR16_LO_DS 51# CHECK-NEXT: - Type: R_PPC64_GOT16_DS 52# CHECK-NEXT: - Type: R_PPC64_GOT16_LO_DS 53# CHECK-NEXT: - Type: R_PPC64_TOC16_DS 54# CHECK-NEXT: - Type: R_PPC64_TOC16_LO_DS 55# CHECK-NEXT: - Type: R_PPC64_TLS 56# CHECK-NEXT: - Type: R_PPC64_DTPMOD64 57# CHECK-NEXT: - Type: R_PPC64_TPREL16 58# CHECK-NEXT: - Type: R_PPC64_TPREL16_LO 59# CHECK-NEXT: - Type: R_PPC64_TPREL16_HI 60# CHECK-NEXT: - Type: R_PPC64_TPREL16_HA 61# CHECK-NEXT: - Type: R_PPC64_TPREL64 62# CHECK-NEXT: - Type: R_PPC64_DTPREL16 63# CHECK-NEXT: - Type: R_PPC64_DTPREL16_LO 64# CHECK-NEXT: - Type: R_PPC64_DTPREL16_HI 65# CHECK-NEXT: - Type: R_PPC64_DTPREL16_HA 66# CHECK-NEXT: - Type: R_PPC64_DTPREL64 67# CHECK-NEXT: - Type: R_PPC64_GOT_TLSGD16 68# CHECK-NEXT: - Type: R_PPC64_GOT_TLSGD16_LO 69# CHECK-NEXT: - Type: R_PPC64_GOT_TLSGD16_HI 70# CHECK-NEXT: - Type: R_PPC64_GOT_TLSGD16_HA 71# CHECK-NEXT: - Type: R_PPC64_GOT_TLSLD16 72# CHECK-NEXT: - Type: R_PPC64_GOT_TLSLD16_LO 73# CHECK-NEXT: - Type: R_PPC64_GOT_TLSLD16_HI 74# CHECK-NEXT: - Type: R_PPC64_GOT_TLSLD16_HA 75# CHECK-NEXT: - Type: R_PPC64_GOT_TPREL16_DS 76# CHECK-NEXT: - Type: R_PPC64_GOT_TPREL16_LO_DS 77# CHECK-NEXT: - Type: R_PPC64_GOT_TPREL16_HI 78# CHECK-NEXT: - Type: R_PPC64_GOT_TPREL16_HA 79# CHECK-NEXT: - Type: R_PPC64_GOT_DTPREL16_DS 80# CHECK-NEXT: - Type: R_PPC64_GOT_DTPREL16_LO_DS 81# CHECK-NEXT: - Type: R_PPC64_GOT_DTPREL16_HI 82# CHECK-NEXT: - Type: R_PPC64_GOT_DTPREL16_HA 83# CHECK-NEXT: - Type: R_PPC64_TPREL16_DS 84# CHECK-NEXT: - Type: R_PPC64_TPREL16_LO_DS 85# CHECK-NEXT: - Type: R_PPC64_TPREL16_HIGHER 86# CHECK-NEXT: - Type: R_PPC64_TPREL16_HIGHERA 87# CHECK-NEXT: - Type: R_PPC64_TPREL16_HIGHEST 88# CHECK-NEXT: - Type: R_PPC64_TPREL16_HIGHESTA 89# CHECK-NEXT: - Type: R_PPC64_DTPREL16_DS 90# CHECK-NEXT: - Type: R_PPC64_DTPREL16_LO_DS 91# CHECK-NEXT: - Type: R_PPC64_DTPREL16_HIGHER 92# CHECK-NEXT: - Type: R_PPC64_DTPREL16_HIGHERA 93# CHECK-NEXT: - Type: R_PPC64_DTPREL16_HIGHEST 94# CHECK-NEXT: - Type: R_PPC64_DTPREL16_HIGHESTA 95# CHECK-NEXT: - Type: R_PPC64_TLSGD 96# CHECK-NEXT: - Type: R_PPC64_TLSLD 97# CHECK-NEXT: - Type: R_PPC64_ADDR16_HIGH 98# CHECK-NEXT: - Type: R_PPC64_ADDR16_HIGHA 99# CHECK-NEXT: - Type: R_PPC64_TPREL16_HIGH 100# CHECK-NEXT: - Type: R_PPC64_TPREL16_HIGHA 101# CHECK-NEXT: - Type: R_PPC64_DTPREL16_HIGH 102# CHECK-NEXT: - Type: R_PPC64_DTPREL16_HIGHA 103# CHECK-NEXT: - Type: R_PPC64_IRELATIVE 104# CHECK-NEXT: - Type: R_PPC64_REL16 105# CHECK-NEXT: - Type: R_PPC64_REL16_LO 106# CHECK-NEXT: - Type: R_PPC64_REL16_HI 107# CHECK-NEXT: - Type: R_PPC64_REL16_HA 108 109--- !ELF 110FileHeader: 111 Class: ELFCLASS64 112 Data: ELFDATA2MSB 113 Type: ET_REL 114 Machine: EM_PPC64 115Sections: 116 - Name: .rela.text 117 Type: SHT_RELA 118 Relocations: 119 - Type: R_PPC64_NONE 120 - Type: R_PPC64_ADDR32 121 - Type: R_PPC64_ADDR24 122 - Type: R_PPC64_ADDR16 123 - Type: R_PPC64_ADDR16_LO 124 - Type: R_PPC64_ADDR16_HI 125 - Type: R_PPC64_ADDR16_HA 126 - Type: R_PPC64_ADDR14 127 - Type: R_PPC64_ADDR14_BRTAKEN 128 - Type: R_PPC64_ADDR14_BRNTAKEN 129 - Type: R_PPC64_REL24 130 - Type: R_PPC64_REL14 131 - Type: R_PPC64_REL14_BRTAKEN 132 - Type: R_PPC64_REL14_BRNTAKEN 133 - Type: R_PPC64_GOT16 134 - Type: R_PPC64_GOT16_LO 135 - Type: R_PPC64_GOT16_HI 136 - Type: R_PPC64_GOT16_HA 137 - Type: R_PPC64_GLOB_DAT 138 - Type: R_PPC64_JMP_SLOT 139 - Type: R_PPC64_RELATIVE 140 - Type: R_PPC64_REL32 141 - Type: R_PPC64_ADDR64 142 - Type: R_PPC64_ADDR16_HIGHER 143 - Type: R_PPC64_ADDR16_HIGHERA 144 - Type: R_PPC64_ADDR16_HIGHEST 145 - Type: R_PPC64_ADDR16_HIGHESTA 146 - Type: R_PPC64_REL64 147 - Type: R_PPC64_TOC16 148 - Type: R_PPC64_TOC16_LO 149 - Type: R_PPC64_TOC16_HI 150 - Type: R_PPC64_TOC16_HA 151 - Type: R_PPC64_TOC 152 - Type: R_PPC64_ADDR16_DS 153 - Type: R_PPC64_ADDR16_LO_DS 154 - Type: R_PPC64_GOT16_DS 155 - Type: R_PPC64_GOT16_LO_DS 156 - Type: R_PPC64_TOC16_DS 157 - Type: R_PPC64_TOC16_LO_DS 158 - Type: R_PPC64_TLS 159 - Type: R_PPC64_DTPMOD64 160 - Type: R_PPC64_TPREL16 161 - Type: R_PPC64_TPREL16_LO 162 - Type: R_PPC64_TPREL16_HI 163 - Type: R_PPC64_TPREL16_HA 164 - Type: R_PPC64_TPREL64 165 - Type: R_PPC64_DTPREL16 166 - Type: R_PPC64_DTPREL16_LO 167 - Type: R_PPC64_DTPREL16_HI 168 - Type: R_PPC64_DTPREL16_HA 169 - Type: R_PPC64_DTPREL64 170 - Type: R_PPC64_GOT_TLSGD16 171 - Type: R_PPC64_GOT_TLSGD16_LO 172 - Type: R_PPC64_GOT_TLSGD16_HI 173 - Type: R_PPC64_GOT_TLSGD16_HA 174 - Type: R_PPC64_GOT_TLSLD16 175 - Type: R_PPC64_GOT_TLSLD16_LO 176 - Type: R_PPC64_GOT_TLSLD16_HI 177 - Type: R_PPC64_GOT_TLSLD16_HA 178 - Type: R_PPC64_GOT_TPREL16_DS 179 - Type: R_PPC64_GOT_TPREL16_LO_DS 180 - Type: R_PPC64_GOT_TPREL16_HI 181 - Type: R_PPC64_GOT_TPREL16_HA 182 - Type: R_PPC64_GOT_DTPREL16_DS 183 - Type: R_PPC64_GOT_DTPREL16_LO_DS 184 - Type: R_PPC64_GOT_DTPREL16_HI 185 - Type: R_PPC64_GOT_DTPREL16_HA 186 - Type: R_PPC64_TPREL16_DS 187 - Type: R_PPC64_TPREL16_LO_DS 188 - Type: R_PPC64_TPREL16_HIGHER 189 - Type: R_PPC64_TPREL16_HIGHERA 190 - Type: R_PPC64_TPREL16_HIGHEST 191 - Type: R_PPC64_TPREL16_HIGHESTA 192 - Type: R_PPC64_DTPREL16_DS 193 - Type: R_PPC64_DTPREL16_LO_DS 194 - Type: R_PPC64_DTPREL16_HIGHER 195 - Type: R_PPC64_DTPREL16_HIGHERA 196 - Type: R_PPC64_DTPREL16_HIGHEST 197 - Type: R_PPC64_DTPREL16_HIGHESTA 198 - Type: R_PPC64_TLSGD 199 - Type: R_PPC64_TLSLD 200 - Type: R_PPC64_ADDR16_HIGH 201 - Type: R_PPC64_ADDR16_HIGHA 202 - Type: R_PPC64_TPREL16_HIGH 203 - Type: R_PPC64_TPREL16_HIGHA 204 - Type: R_PPC64_DTPREL16_HIGH 205 - Type: R_PPC64_DTPREL16_HIGHA 206 - Type: R_PPC64_IRELATIVE 207 - Type: R_PPC64_REL16 208 - Type: R_PPC64_REL16_LO 209 - Type: R_PPC64_REL16_HI 210 - Type: R_PPC64_REL16_HA 211