1 # RUN: llvm-mc --disassemble %s -triple=armv7-apple-darwin9 -mcpu=cortex-a9-mp | FileCheck %s 2 3 # CHECK: addpl r4, pc, #318767104 4 0x4c 0x45 0x8f 0x52 5 6 # CHECK: b #0 7 0x00 0x00 0x00 0xea 8 9 # CHECK: bl #7732 10 0x8d 0x07 0x00 0xeb 11 12 # CHECK: bleq #-4 13 0xff 0xff 0xff 0x0b 14 15 # CHECK: bfc r8, #0, #16 16 0x1f 0x80 0xcf 0xe7 17 18 # CHECK: bfi r8, r0, #16, #1 19 0x10 0x88 0xd0 0xe7 20 21 # CHECK: mov pc, lr 22 0x0e 0xf0 0xa0 0xe1 23 24 # CHECK: mov pc, #3221225535 25 0xff 0xf1 0xa0 0xe3 26 27 # CHECK: movw r7, #4096 28 0x00 0x70 0x01 0xe3 29 30 # CHECK: cmn r0, #1 31 0x01 0x00 0x70 0xe3 32 33 # CHECK: dmb 34 0x5f 0xf0 0x7f 0xf5 35 36 # CHECK: dmb nshst 37 0x56 0xf0 0x7f 0xf5 38 39 # CHECK: dsb 40 0x4f 0xf0 0x7f 0xf5 41 42 # CHECK: dsb st 43 0x4e 0xf0 0x7f 0xf5 44 45 # CHECK: isb 46 0x6f 0xf0 0x7f 0xf5 47 48 # FIXME: LDC encoding information is incorrect. Re-enable this along with more 49 # robust testing for other values when we get it fleshed out and working 50 # properly. 51 # CHECKx: ldclvc p5, cr15, [r8], #-0 52 #0x00 0xf5 0x78 0x7c 53 54 # CHECK: ldc p13, c9, [r2, #0]! 55 0x00 0x9d 0xb2 0xed 56 57 # CHECK: ldcl p1, c9, [r3, #0]! 58 0x00 0x91 0xf3 0xed 59 60 # CHECK: ldr r0, [r2], #15 61 0x0f 0x00 0x92 0xe4 62 63 # CHECK: ldr r5, [r7, -r10, lsl #2] 64 0x0a 0x51 0x17 0xe7 65 66 # CHECK: ldr r4, [r5, #0]! 67 0x00 0x40 0xb5 0xe5 68 69 # CHECK: ldrb lr, [r10, #0]! 70 0x00 0xe0 0xfa 0xe5 71 72 # CHECK: ldrd r4, r5, [r0, #0]! 73 0xd0 0x40 0xe0 0xe1 74 75 # CHECK: ldrh r0, [r2], #0 76 0xb0 0x00 0xd2 0xe0 77 78 # CHECK: ldrh r0, [r2] 79 0xb0 0x00 0xd2 0xe1 80 81 # CHECK: ldrh lr, [sp, #0]! 82 0xb0 0xe0 0xfd 0xe1 83 84 # CHECK: ldrht r0, [r2], #15 85 0xbf 0x00 0xf2 0xe0 86 87 # CHECK: ldrsb r1, [lr, #0]! 88 0xd0 0x10 0xfe 0xe1 89 90 # CHECK: ldrsbtvs lr, [r2], -r9 91 0xd9 0xe0 0x32 0x60 92 93 # CHECK: ldrsh r9, [r1, #0] 94 0xf0 0x90 0xf1 0xe1 95 96 # CHECK: lsls r0, r2, #31 97 0x82 0x0f 0xb0 0xe1 98 99 # CHECK: mcr2 p0, #0, r2, c1, c0, #7 100 0xf0 0x20 0x01 0xfe 101 102 # CHECK: movt r8, #65535 103 0xff 0x8f 0x4f 0xe3 104 105 # CHECK: mvnspl r7, #1073741885 106 0xf5 0x71 0xf0 0x53 107 108 # CHECK-NOT: orr r7, r8, r7, rrx #0 109 # CHECK: orr r7, r8, r7, rrx 110 0x67 0x70 0x88 0xe1 111 112 # CHECK: pkhbt r8, r9, r10, lsl #4 113 0x1a 0x82 0x89 0xe6 114 115 # CHECK-NOT: pkhbtls r10, r11, r11, lsl #0 116 # CHECK: pkhbtls r10, r11, r11 117 0x1b 0xa0 0x8b 0x96 118 119 # CHECK: pkhtbmi lr, r1, r6, asr #21 120 0xd6 0xea 0x81 0x46 121 122 # CHECK: pop {r0, r2, r4, r6, r8, r10} 123 0x55 0x05 0xbd 0xe8 124 125 # CHECK: push {r0, r2, r4, r6, r8, r10} 126 0x55 0x05 0x2d 0xe9 127 128 # CHECK: qsax r8, r9, r10 129 0x5a 0x8f 0x29 0xe6 130 131 # CHECK: rfedb r0! 132 0x00 0x0a 0x30 0xf9 133 134 # CHECK: srsdb sp!, #19 135 0x13 0x05 0x6d 0xf9 136 137 # CHECK: srsia sp, #9 138 0x09 0x05 0xcd 0xf8 139 140 # CHECK-NOT: rsbeq r0, r2, r0, lsl #0 141 # CHECK: rsbeq r0, r2, r0 142 0x00 0x00 0x62 0x00 143 144 # CHECK-NOT: rscseq r0, r0, r1, lsl #0 145 # CHECK: rscseq r0, r0, r1 146 0x01 0x00 0xf0 0x00 147 148 # CHECK: sbcs r0, pc, #1 149 0x01 0x00 0xdf 0xe2 150 151 # CHECK: sbfx r0, r1, #0, #8 152 0x51 0x00 0xa7 0xe7 153 154 # CHECK: ssat r8, #1, r10, lsl #8 155 0x1a 0x84 0xa0 0xe6 156 157 # CHECK-NOT: ssatmi r0, #17, r12, lsl #0 158 # CHECK: ssatmi r0, #17, r12 159 0x1c 0x00 0xb0 0x46 160 161 # CHECK: stmdb r10!, {r4, r5, r6, r7, lr} 162 0xf0 0x40 0x2a 0xe9 163 164 # CHECK: teq r0, #31 165 0x1f 0x00 0x30 0xe3 166 167 # CHECK: ubfx r0, r0, #16, #1 168 0x50 0x08 0xe0 0xe7 169 170 # CHECK: usat r8, #0, r10, asr #32 171 0x5a 0x80 0xe0 0xe6 172 173 # CHECK: setend be 174 0x00 0x02 0x01 0xf1 175 176 # CHECK: setend le 177 0x00 0x00 0x01 0xf1 178 179 # CHECK: cpsie aif 180 0xc0 0x01 0x08 0xf1 181 182 # CHECK: cps #15 183 0x0f 0x00 0x02 0xf1 184 185 # CHECK: cpsie if, #10 186 0xca 0x00 0x0a 0xf1 187 188 # CHECK: msr CPSR_fc, r0 189 0x00 0xf0 0x29 0xe1 190 191 # CHECK: msrmi CPSR_c, #4043309056 192 0xf1 0xf4 0x21 0x43 193 194 # CHECK: rsbs r6, r7, r8 195 0x08 0x60 0x77 0xe0 196 197 # CHECK: blxeq r5 198 0x35 0xff 0x2f 0x01 199 200 # CHECK: bx r12 201 0x1c 0xff 0x2f 0xe1 202 203 # CHECK: bxeq r5 204 0x15 0xff 0x2f 0x01 205 206 # CHECK: uqadd16mi r6, r11, r8 207 0x18 0x6F 0x6b 0x46 208 209 # CHECK: str r0, [sp, #4] 210 0x04 0x00 0x8d 0xe5 211 212 # CHECK: str r1, [sp] 213 0x00 0x10 0x8d 0xe5 214 215 # CHECK: ldr r3, [pc, #144] 216 0x90 0x30 0x9f 0xe5 217 218 # CHECK: ldr r3, [r0, #-4] 219 0x4 0x30 0x10 0xe5 220 221 # CHECK: ldr r5, [sp, r0, lsl #1]! 222 0x80 0x50 0xbd 0xe7 223 224 # CHECK: ldr r5, [r7], -r0, lsr #2 225 0x20 0x51 0x17 0xe6 226 227 # CHECK: strdeq r2, r3, [r0], -r8 228 0xf8 0x20 0x00 0x00 229 230 # CHECK: ldrdeq r2, r3, [r0], -r12 231 0xdc 0x24 0x00 0x00 232 233 # CHECK: ldrbt r3, [r4], -r5, lsl #12 234 0x05 0x36 0x74 0xe6 235 236 # CHECK: vcmpe.f64 d8, #0 237 0xc0 0x8b 0xb5 0xee 238 239 # CHECK: vldmdb r2!, {s7, s8, s9, s10, s11} 240 0x05 0x3a 0x72 0xed 241 242 # CHECK: vldr s23, [r2, #660] 243 0xa5 0xba 0xd2 0xed 244 245 # CHECK: strtvc r5, [r3], r0, lsr #20 246 0x20 0x5a 0xa3 0x76 247 248 # CHECK: stmiblo sp, {r0, r4, r8, r11, r12, pc} 249 0x11 0x99 0x8d 0x39 250 251 # CHECK: ldmdb sp, {r0, r4, r8, r11, r12, pc} 252 0x11 0x99 0x1d 0xe9 253 254 # CHECK: swpge r3, r2, [r6] 255 0x92 0x30 0x06 0xa1 256 257 # CHECK: umull r1, r2, r3, r4 258 0x93 0x14 0x82 0xe0 259 260 # CHECK: pldw [pc, #-0] 261 0x00 0xf0 0x1f 0xf5 262 263 # CHECK: pli [pc, #-0] 264 0x00 0xf0 0x5f 0xf4 265 266 # CHECK: pli [r3, r1, lsl #2] 267 0x01 0xf1 0xd3 0xf6 268 269 # CHECK: stc p2, c4, [r9], {157} 270 0x9d 0x42 0x89 0xec 271 272 # CHECK: stc p15, c0, [r3, #0]! 273 0x00 0x0f 0xa3 0xed 274 275 # CHECK: stc2 p2, c4, [r9], {157} 276 0x9d 0x42 0x89 0xfc 277 278 # CHECK: stcl p13, c12, [r9, #0]! 279 0x00 0xcd 0xe9 0xed 280 281 # CHECK: str pc, [r11, #0]! 282 0x00 0xf0 0xab 0xe5 283 284 # CHECK: strb r9, [r10, #0]! 285 0x00 0x90 0xea 0xe5 286 287 # CHECK: strd r12, sp, [r6, #0]! 288 0xf0 0xc0 0xe6 0xe1 289 290 # CHECK: strh r7, [r9, #0]! 291 0xb0 0x70 0xe9 0xe1 292 293 # CHECK: bne #-24 294 0xfa 0xff 0xff 0x1a 295 296 # CHECK: blx #60 297 0x0f 0x00 0x00 0xfa 298 299 # CHECK-NOT: adcs r10, r8, r0, asr #6 300 # CHECK: adcshi r10, r8, r0, asr #6 301 0x40 0xa3 0xb8 0x80 302 303 # CHECK: adcshi r10, r8, r0, asr r3 304 0x50 0xa3 0xb8 0x80 305 306 # CHECK: streq r1, [sp], #-1567 307 0x1f 0x16 0xd 0x4 308 309 # CHECK: mrchs p2, #3, r11, c13, c6, #6 310 0xd6 0xb2 0x7d 0x2e 311 312 # CHECK: smlsldx r4, r12, r11, r4 313 0x7b 0x44 0x4c 0xe7 314 315 # CHECK: lsl r3, r2, r1 316 0x12 0x31 0xa0 0xe1 317 318 # CHECK: sxtab r9, r8, r5 319 0x75 0x90 0xa8 0xe6 320 321 # CHECK: sxtb r9, r5, ror #8 322 0x75 0x94 0xaf 0xe6 323 324 # CHECK: bfc r5, #0, #16 325 0x1f 0x50 0xcf 0xe7 326 327 # CHECK: bfi r5, r6, #0, #16 328 0x16 0x50 0xcf 0xe7 329 330 # CHECK: sbfx r5, r6, #8, #8 331 0x56 0x54 0xa7 0xe7 332 333 # CHECK: rsb pc, r5, r0 334 0x00 0xf0 0x65 0xe0 335 336 # CHECK: uqadd8 r5, r6, r7 337 0x97 0x5f 0x66 0xe6 338 339 # CHECK: uqsax r5, r6, r7 340 0x57 0x5f 0x66 0xe6 341 342 # CHECK: smmlareq r0, r0, r0, r0 343 0x30 0x00 0x50 0x07 344 345 # CHECK: nop 346 0x00 0xf0 0x20 0xe3 347 348 # CHECK: andeq r0, r0, r0, lsr #32 349 0x20 0x00 0x00 0x00 350 351 # CHECK: strb r3, [r2], #1 352 0x01 0x30 0xc2 0xe4 353 354 # CHECK: strheq r0, [r0, -r0] 355 0xb0 0x00 0x00 0x01 356 357 # CHECK: rfedb #4! 358 0x14 0x0 0x32 0xf9 359 360 # CHECK: stc2l p0, c0, [r2], #-96 361 0x18 0x0 0x62 0xfc 362 363 # CHECK: ldmgt sp!, {r9} 364 0x00 0x02 0xbd 0xc8 365