Ulrich Weigand | d839490 | 2013-05-03 19:50:27 +0000 | [diff] [blame] | 1 | |
| 2 | # RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck %s |
| 3 | |
| 4 | # FIXME: Condition register bit symbols |
| 5 | |
| 6 | # Branch mnemonics |
| 7 | |
| 8 | # CHECK: blr # encoding: [0x4e,0x80,0x00,0x20] |
| 9 | blr |
| 10 | # CHECK: bctr # encoding: [0x4e,0x80,0x04,0x20] |
| 11 | bctr |
| 12 | # FIXME: blrl |
| 13 | # CHECK: bctrl # encoding: [0x4e,0x80,0x04,0x21] |
| 14 | bctrl |
| 15 | |
| 16 | # FIXME: bt 2, target |
| 17 | # FIXME: bta 2, target |
| 18 | # FIXME: btlr 2 |
| 19 | # FIXME: btctr 2 |
| 20 | # FIXME: btl 2, target |
| 21 | # FIXME: btla 2, target |
| 22 | # FIXME: btlrl 2 |
| 23 | # FIXME: btctrl 2 |
| 24 | |
| 25 | # FIXME: bf 2, target |
| 26 | # FIXME: bfa 2, target |
| 27 | # FIXME: bflr 2 |
| 28 | # FIXME: bfctr 2 |
| 29 | # FIXME: bfl 2, target |
| 30 | # FIXME: bfla 2, target |
| 31 | # FIXME: bflrl 2 |
| 32 | # FIXME: bfctrl 2 |
| 33 | |
| 34 | # CHECK: bdnz target # encoding: [0x42,0x00,A,0bAAAAAA00] |
| 35 | # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 |
| 36 | bdnz target |
| 37 | # FIXME: bdnza target |
| 38 | # CHECK: bdnzlr # encoding: [0x4e,0x00,0x00,0x20] |
| 39 | bdnzlr |
| 40 | # FIXME: bdnzl target |
| 41 | # FIXME: bdnzla target |
| 42 | # FIXME: bdnzlrl |
| 43 | |
| 44 | # FIXME: bdnzt 2, target |
| 45 | # FIXME: bdnzta 2, target |
| 46 | # FIXME: bdnztlr 2 |
| 47 | # FIXME: bdnztl 2, target |
| 48 | # FIXME: bdnztla 2, target |
| 49 | # FIXME: bdnztlrl 2 |
| 50 | # FIXME: bdnzf 2, target |
| 51 | # FIXME: bdnzfa 2, target |
| 52 | # FIXME: bdnzflr 2 |
| 53 | # FIXME: bdnzfl 2, target |
| 54 | # FIXME: bdnzfla 2, target |
| 55 | # FIXME: bdnzflrl 2 |
| 56 | |
| 57 | # CHECK: bdz target # encoding: [0x42,0x40,A,0bAAAAAA00] |
| 58 | # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 |
| 59 | bdz target |
| 60 | # FIXME: bdza target |
| 61 | # CHECK: bdzlr # encoding: [0x4e,0x40,0x00,0x20] |
| 62 | bdzlr |
| 63 | # FIXME: bdzl target |
| 64 | # FIXME: bdzla target |
| 65 | |
| 66 | # FIXME: bdzlrl |
| 67 | # FIXME: bdzt 2, target |
| 68 | # FIXME: bdzta 2, target |
| 69 | # FIXME: bdztlr 2 |
| 70 | # FIXME: bdztl 2, target |
| 71 | # FIXME: bdztla 2, target |
| 72 | # FIXME: bdztlrl 2 |
| 73 | # FIXME: bdzf 2, target |
| 74 | # FIXME: bdzfa 2, target |
| 75 | # FIXME: bdzflr 2 |
| 76 | # FIXME: bdzfl 2, target |
| 77 | # FIXME: bdzfla 2, target |
| 78 | # FIXME: bdzflrl 2 |
| 79 | |
| 80 | # CHECK: blt 2, target # encoding: [0x41,0x88,A,0bAAAAAA00] |
| 81 | # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 |
| 82 | blt 2, target |
| 83 | # FIXME: blta 2, target |
| 84 | # CHECK: bltlr 2 # encoding: [0x4d,0x88,0x00,0x20] |
| 85 | bltlr 2 |
| 86 | # CHECK: bltctr 2 # encoding: [0x4d,0x88,0x04,0x20] |
| 87 | bltctr 2 |
| 88 | # FIXME: bltl 2, target |
| 89 | # FIXME: bltla 2, target |
| 90 | # FIXME: bltlrl 2 |
| 91 | # CHECK: bltctrl 2 # encoding: [0x4d,0x88,0x04,0x21] |
| 92 | bltctrl 2 |
| 93 | |
| 94 | # CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00] |
| 95 | # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 |
| 96 | ble 2, target |
| 97 | # FIXME: blea 2, target |
| 98 | # CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20] |
| 99 | blelr 2 |
| 100 | # CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20] |
| 101 | blectr 2 |
| 102 | # FIXME: blel 2, target |
| 103 | # FIXME: blela 2, target |
| 104 | # FIXME: blelrl 2 |
| 105 | # CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21] |
| 106 | blectrl 2 |
| 107 | |
| 108 | # CHECK: beq 2, target # encoding: [0x41,0x8a,A,0bAAAAAA00] |
| 109 | # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 |
| 110 | beq 2, target |
| 111 | # FIXME: beqa 2, target |
| 112 | # CHECK: beqlr 2 # encoding: [0x4d,0x8a,0x00,0x20] |
| 113 | beqlr 2 |
| 114 | # CHECK: beqctr 2 # encoding: [0x4d,0x8a,0x04,0x20] |
| 115 | beqctr 2 |
| 116 | # FIXME: beql 2, target |
| 117 | # FIXME: beqla 2, target |
| 118 | # FIXME: beqlrl 2 |
| 119 | # CHECK: beqctrl 2 # encoding: [0x4d,0x8a,0x04,0x21] |
| 120 | beqctrl 2 |
| 121 | |
| 122 | # CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00] |
| 123 | # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 |
| 124 | bge 2, target |
| 125 | # FIXME: bgea 2, target |
| 126 | # CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20] |
| 127 | bgelr 2 |
| 128 | # CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20] |
| 129 | bgectr 2 |
| 130 | # FIXME: bgel 2, target |
| 131 | # FIXME: bgela 2, target |
| 132 | # FIXME: bgelrl 2 |
| 133 | # CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21] |
| 134 | bgectrl 2 |
| 135 | |
| 136 | # CHECK: bgt 2, target # encoding: [0x41,0x89,A,0bAAAAAA00] |
| 137 | # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 |
| 138 | bgt 2, target |
| 139 | # FIXME: bgta 2, target |
| 140 | # CHECK: bgtlr 2 # encoding: [0x4d,0x89,0x00,0x20] |
| 141 | bgtlr 2 |
| 142 | # CHECK: bgtctr 2 # encoding: [0x4d,0x89,0x04,0x20] |
| 143 | bgtctr 2 |
| 144 | # FIXME: bgtl 2, target |
| 145 | # FIXME: bgtla 2, target |
| 146 | # FIXME: bgtlrl 2 |
| 147 | # CHECK: bgtctrl 2 # encoding: [0x4d,0x89,0x04,0x21] |
| 148 | bgtctrl 2 |
| 149 | |
| 150 | # CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00] |
| 151 | # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 |
| 152 | bnl 2, target |
| 153 | # FIXME: bnla 2, target |
| 154 | # CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20] |
| 155 | bnllr 2 |
| 156 | # CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20] |
| 157 | bnlctr 2 |
| 158 | # FIXME: bnll 2, target |
| 159 | # FIXME: bnlla 2, target |
| 160 | # FIXME: bnllrl 2 |
| 161 | # CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21] |
| 162 | bnlctrl 2 |
| 163 | |
| 164 | # CHECK: bne 2, target # encoding: [0x40,0x8a,A,0bAAAAAA00] |
| 165 | # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 |
| 166 | bne 2, target |
| 167 | # FIXME: bnea 2, target |
| 168 | # CHECK: bnelr 2 # encoding: [0x4c,0x8a,0x00,0x20] |
| 169 | bnelr 2 |
| 170 | # CHECK: bnectr 2 # encoding: [0x4c,0x8a,0x04,0x20] |
| 171 | bnectr 2 |
| 172 | # FIXME: bnel 2, target |
| 173 | # FIXME: bnela 2, target |
| 174 | # FIXME: bnelrl 2 |
| 175 | # CHECK: bnectrl 2 # encoding: [0x4c,0x8a,0x04,0x21] |
| 176 | bnectrl 2 |
| 177 | |
| 178 | # CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00] |
| 179 | # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 |
| 180 | bng 2, target |
| 181 | # FIXME: bnga 2, target |
| 182 | # CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20] |
| 183 | bnglr 2 |
| 184 | # CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20] |
| 185 | bngctr 2 |
| 186 | # FIXME: bngl 2, target |
| 187 | # FIXME: bngla 2, target |
| 188 | # FIXME: bnglrl 2 |
| 189 | # CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21] |
| 190 | bngctrl 2 |
| 191 | |
| 192 | # CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00] |
| 193 | # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 |
| 194 | bso 2, target |
| 195 | # FIXME: bsoa 2, target |
| 196 | # CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20] |
| 197 | bsolr 2 |
| 198 | # CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20] |
| 199 | bsoctr 2 |
| 200 | # FIXME: bsol 2, target |
| 201 | # FIXME: bsola 2, target |
| 202 | # FIXME: bsolrl 2 |
| 203 | # CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21] |
| 204 | bsoctrl 2 |
| 205 | |
| 206 | # CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00] |
| 207 | # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 |
| 208 | bns 2, target |
| 209 | # FIXME: bnsa 2, target |
| 210 | # CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20] |
| 211 | bnslr 2 |
| 212 | # CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20] |
| 213 | bnsctr 2 |
| 214 | # FIXME: bnsl 2, target |
| 215 | # FIXME: bnsla 2, target |
| 216 | # FIXME: bnslrl 2 |
| 217 | # CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21] |
| 218 | bnsctrl 2 |
| 219 | |
| 220 | # CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00] |
| 221 | # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 |
| 222 | bun 2, target |
| 223 | # FIXME: buna 2, target |
| 224 | # CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20] |
| 225 | bunlr 2 |
| 226 | # CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20] |
| 227 | bunctr 2 |
| 228 | # FIXME: bunl 2, target |
| 229 | # FIXME: bunla 2, target |
| 230 | # FIXME: bunlrl 2 |
| 231 | # CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21] |
| 232 | bunctrl 2 |
| 233 | |
| 234 | # CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00] |
| 235 | # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 |
| 236 | bnu 2, target |
| 237 | # FIXME: bnua 2, target |
| 238 | # CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20] |
| 239 | bnulr 2 |
| 240 | # CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20] |
| 241 | bnuctr 2 |
| 242 | # FIXME: bnul 2, target |
| 243 | # FIXME: bnula 2, target |
| 244 | # FIXME: bnulrl 2 |
| 245 | # CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21] |
| 246 | bnuctrl 2 |
| 247 | |
| 248 | # FIXME: Condition register logical mnemonics |
| 249 | |
| 250 | # FIXME: Subtract mnemonics |
| 251 | |
| 252 | # Compare mnemonics |
| 253 | |
| 254 | # CHECK: cmpdi 2, 3, 128 # encoding: [0x2d,0x23,0x00,0x80] |
| 255 | cmpdi 2, 3, 128 |
| 256 | # CHECK: cmpd 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x00] |
| 257 | cmpd 2, 3, 4 |
| 258 | # CHECK: cmpldi 2, 3, 128 # encoding: [0x29,0x23,0x00,0x80] |
| 259 | cmpldi 2, 3, 128 |
| 260 | # CHECK: cmpld 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x40] |
| 261 | cmpld 2, 3, 4 |
| 262 | |
| 263 | # CHECK: cmpwi 2, 3, 128 # encoding: [0x2d,0x03,0x00,0x80] |
| 264 | cmpwi 2, 3, 128 |
| 265 | # CHECK: cmpw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x00] |
| 266 | cmpw 2, 3, 4 |
| 267 | # CHECK: cmplwi 2, 3, 128 # encoding: [0x29,0x03,0x00,0x80] |
| 268 | cmplwi 2, 3, 128 |
| 269 | # CHECK: cmplw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x40] |
| 270 | cmplw 2, 3, 4 |
| 271 | |
| 272 | # FIXME: Trap mnemonics |
| 273 | |
| 274 | # Rotate and shift mnemonics |
| 275 | |
| 276 | # FIXME: extldi 2, 3, 4, 5 |
| 277 | # FIXME: extrdi 2, 3, 4, 5 |
| 278 | # FIXME: insrdi 2, 3, 4, 5 |
| 279 | # FIXME: rotldi 2, 3, 4 |
| 280 | # FIXME: rotrdi 2, 3, 4 |
| 281 | # FIXME: rotld 2, 3, 4 |
| 282 | # CHECK: sldi 2, 3, 4 # encoding: [0x78,0x62,0x26,0xe4] |
| 283 | sldi 2, 3, 4 |
| 284 | # CHECK: rldicl 2, 3, 60, 4 # encoding: [0x78,0x62,0xe1,0x02] |
| 285 | srdi 2, 3, 4 |
| 286 | # FIXME: clrldi 2, 3, 4 |
| 287 | # FIXME: clrrdi 2, 3, 4 |
| 288 | # FIXME: clrlsldi 2, 3, 4, 5 |
| 289 | |
| 290 | # FIXME: extlwi 2, 3, 4, 5 |
| 291 | # FIXME: extrwi 2, 3, 4, 5 |
| 292 | # FIXME: inslwi 2, 3, 4, 5 |
| 293 | # FIXME: insrwi 2, 3, 4, 5 |
| 294 | # FIXME: rotlwi 2, 3, 4 |
| 295 | # FIXME: rotrwi 2, 3, 4 |
| 296 | # FIXME: rotlw 2, 3, 4 |
| 297 | # CHECK: slwi 2, 3, 4 # encoding: [0x54,0x62,0x20,0x36] |
| 298 | slwi 2, 3, 4 |
| 299 | # CHECK: srwi 2, 3, 4 # encoding: [0x54,0x62,0xe1,0x3e] |
| 300 | srwi 2, 3, 4 |
| 301 | # FIXME: clrlwi 2, 3, 4 |
| 302 | # FIXME: clrrwi 2, 3, 4 |
| 303 | # FIXME: clrlslwi 2, 3, 4, 5 |
| 304 | |
| 305 | # Move to/from special purpose register mnemonics |
| 306 | |
| 307 | # FIXME: mtxer 2 |
| 308 | # FIXME: mfxer 2 |
| 309 | # CHECK: mtlr 2 # encoding: [0x7c,0x48,0x03,0xa6] |
| 310 | mtlr 2 |
| 311 | # CHECK: mflr 2 # encoding: [0x7c,0x48,0x02,0xa6] |
| 312 | mflr 2 |
| 313 | # CHECK: mtctr 2 # encoding: [0x7c,0x49,0x03,0xa6] |
| 314 | mtctr 2 |
| 315 | # CHECK: mfctr 2 # encoding: [0x7c,0x49,0x02,0xa6] |
| 316 | mfctr 2 |
| 317 | |
| 318 | # Miscellaneous mnemonics |
| 319 | |
| 320 | # CHECK: nop # encoding: [0x60,0x00,0x00,0x00] |
| 321 | nop |
| 322 | # FIXME: xnop |
| 323 | # CHECK: li 2, 128 # encoding: [0x38,0x40,0x00,0x80] |
| 324 | li 2, 128 |
| 325 | # CHECK: lis 2, 128 # encoding: [0x3c,0x40,0x00,0x80] |
| 326 | lis 2, 128 |
| 327 | # FIXME: la 2, 128(4) |
| 328 | # CHECK: mr 2, 3 # encoding: [0x7c,0x62,0x1b,0x78] |
| 329 | mr 2, 3 |
| 330 | # FIXME: not 2, 3 |
| 331 | |