1# RUN: llvm-mc --disassemble %s -triple=thumbv7-apple-darwin9 -mcpu=cortex-a9 | FileCheck %s 2 3# CHECK: add r5, sp, #68 40x11 0xad 5 6# CHECK: adcs r0, r0, #1 70x50 0xf1 0x01 0x00 8 9# CHECK: b #30 100x0f 0xe0 11 12# CHECK: bgt.w #-16 130x3f 0xf7 0xf8 0xaf 14 15# CHECK: bfc r0, #10, #10 160x6f 0xf3 0x93 0x20 17 18# CHECK: bfi r2, r10, #0, #1 190x6a 0xf3 0x00 0x02 20 21# CHECK: cbnz r7, #20 220x57 0xb9 23 24# CHECK: cmp r3, r4 250xa3 0x42 26 27# CHECK: cmn.w r0, #31 280x10 0xf1 0x1f 0x0f 29 30# CHECK: ldm r0!, {r1} 310x02 0xc8 32 33# CHECK: ldr r5, [pc, #432] 340x6c 0x4d 35 36# CHECK: str r0, [r3] 370x18 0x60 38 39# CHECK: str r0, [r3, #4] 400x58 0x60 41 42# CHECK: str r2, [r5, r3] 430xea 0x50 44 45# CHECK: ldrb.w r8, [pc, #-24] 460x1f 0xf8 0x18 0x80 47 48# CHECK: ldrd r0, r1, [r7, #64]! 490xf7 0xe9 0x10 0x01 50 51# CHECK: lsls.w r0, r5, #1 520x5f 0xea 0x45 0x00 53 54# CHECK: mov r11, r7 550xbb 0x46 56 57# CHECK: pkhtb r2, r4, r6, asr #16 580xc4 0xea 0x26 0x42 59 60# CHECK-NOT: pkhbt r2, r4, r6, lsl #0 61# CHECK: pkhbt r2, r4, r6 620xc4 0xea 0x06 0x02 63 64# CHECK: pop.w {r2, r4, r6, r8, r10, r12} 650xbd 0xe8 0x54 0x15 66 67# CHECK: push.w {r2, r4, r6, r8, r10, r12} 680x2d 0xe9 0x54 0x15 69 70# CHECK: rsbs r0, r0, #0 710x40 0x42 72 73# CHECK-NOT: rsb r0, r2, r0, lsl #0 74# CHECK: rsb r0, r2, r0 750xc2 0xeb 0x00 0x00 76 77# CHECK-NOT: ssat r0, #17, r12, lsl #0 78# CHECK: ssat r0, #17, r12 790x0c 0xf3 0x10 0x00 80 81# CHECK: strd r0, r1, [r7, #64] 820xc7 0xe9 0x10 0x01 83 84# CHECK: sub sp, #60 850x8f 0xb0 86 87# CHECK: subw r0, pc, #1 880xaf 0xf2 0x01 0x00 89 90# CHECK: subw r0, sp, #835 910xad 0xf2 0x43 0x30 92 93# CHECK: uqadd16 r3, r4, r5 940x94 0xfa 0x55 0xf3 95 96# CHECK: usada8 r5, r4, r3, r2 970x74 0xfb 0x03 0x25 98 99# CHECK: uxtab16 r1, r2, r3, ror #8 1000x32 0xfa 0x93 0xf1 101 102# IT block begin 103# CHECK: ittte eq 1040x03 0xbf 105 106# CHECK: moveq r3, #3 1070x03 0x23 108 109# CHECK: asreq r1, r0, #5 1100x41 0x11 111 112# CHECK: lsleq r1, r0, #28 1130x01 0x07 114 115# CHECK: stmne r0!, {r1, r2, r3} 1160x0e 0xc0 117 118# IT block end 119# CHECK: rsbs r1, r2, #0 1200x51 0x42 121 122# CHECK: cpsid.w f 1230xaf 0xf3 0x20 0x86 124 125# CHECK: cps #15 1260xaf 0xf3 0x0f 0x81 127 128# CHECK: cpsie if, #10 1290xaf 0xf3 0x6a 0x85 130 131# CHECK: cpsie aif 1320x67 0xb6 133 134# CHECK: msr CPSR_fc, r0 1350x80 0xf3 0x00 0x89 136 137# CHECK: blx #-4 1380xff 0xf7 0xfe 0xef 139 140# CHECK: vpush {d8, d9, d10} 1410x2d 0xed 0x06 0x8b 142 143# CHECK: vcmpe.f64 d8, #0 1440xb5 0xee 0xc0 0x8b 145 146# CHECK: stmdb sp, {r0, r2, r3, r8, r11, lr} 1470x0d 0xe9 0x0d 0x49 148 149# CHECK: stm r5!, {r0, r1, r2, r3, r4} 1500x1f 0xc5 151 152# CHECK: ldm r5, {r0, r1, r2, r3, r4, r5} 1530x3f 0xcd 154 155# CHECK: ldm r5!, {r0, r1, r2, r3, r4} 1560x1f 0xcd 157 158# CHECK: addw r0, pc, #1050 1590x0f 0xf2 0x1a 0x40 160 161# CHECK: ldrd r3, r8, [r11, #-60] 1620x5b 0xe9 0x0f 0x38 163 164# CHECK: ldrex r8, [r2] 1650x52 0xe8 0x00 0x8f 166 167# CHECK: ldrexd r8, r9, [r2] 1680xd2 0xe8 0x7f 0x89 169 170# CHECK: strexd r1, r7, r8, [r2] 1710xc2 0xe8 0x71 0x78 172 173# CHECK: tbh [r5, r4, lsl #1] 1740xd5 0xe8 0x14 0xf0 175 176# CHECK: tbb [r5, r4] 1770xd5 0xe8 0x04 0xf0 178 179# CHECK: ldr.w r4, [sp, r4, lsl #3] 1800x5d 0xf8 0x34 0x40 181 182# CHECK: ldr.w r5, [r6, #30] 1830xd6 0xf8 0x1e 0x50 184 185# CHECK: ldrh.w r5, [r6, #30] 1860xb6 0xf8 0x1e 0x50 187 188# CHECK: ldrt r5, [r6, #30] 1890x56 0xf8 0x1e 0x5e 190 191# CHECK: ldr r5, [r6, #-30] 1920x56 0xf8 0x1e 0x5c 193 194# CHECK: sel r7, r3, r5 1950xa3 0xfa 0x85 0xf7 196 197# CHECK: lsl.w r7, r3, r5 1980x03 0xfa 0x05 0xf7 199 200# CHECK: adds.w r7, r3, r5 2010x13 0xeb 0x05 0x07 202 203# CHECK: smlabt r4, r3, r2, r1 2040x13 0xfb 0x12 0x14 205 206# CHECK: smmulr r7, r8, r9 2070x58 0xfb 0x19 0xf7 208 209# CHECK: umull r1, r2, r3, r4 2100xa3 0xfb 0x04 0x12 211 212# CHECK: pld [r5, r0, lsl #1] 2130x15 0xf8 0x10 0xf0 214 215# CHECK: pld [pc, #-16] 2160x1f 0xf8 0x10 0xf0 217 218# CHECK: pld [r5, #30] 2190x95 0xf8 0x1e 0xf0 220 221# CHECK: stc2 p12, c15, [r9], {137} 2220x89 0xfc 0x89 0xfc 223 224# CHECK: stc2 p0, c0, [r0, #0]! 2250xa0 0xfd 0x00 0x00 226 227# CHECK: vmov r1, r0, d11 2280x50 0xec 0x1b 0x1b 229 230# CHECK: dsb nsh 2310xbf 0xf3 0x47 0x8f 232 233# CHECK: isb 2340xbf 0xf3 0x6f 0x8f 235 236# CHECK: asrs r1, r0, #32 2370x1 0x10 238 239# CHECK: lsr.w r10, r0, #32 2400x4f 0xea 0x10 0x0a 241 242# CHECK: blx sp 2430xe8 0x47 244 245# CHECK: bx lr 2460x70 0x47 247 248# CHECK: bx pc 2490x78 0x47 250 251# CHECK: svc #230 2520xe6 0xdf 253 254# CHECK: rfedb lr 2550x1e 0xe8 0x00 0xc0 256 257# CHECK: mov.w r3, #4294967295 2580x4f 0xf0 0xff 0x33 259 260# CHECK: mov pc, sp 2610xef 0x46 262 263# CHECK: nop 2640x00 0xbf 265 266# CHECK: nop.w 2670xaf 0xf3 0x00 0x80 268 269# CHECK: bne #24 2700x0c 0xd1 271 272# CHECK: vadd.f32 q0, q1, q2 2730x02 0xef 0x44 0x0d 274 275# CHECK: ldrsb r1, [r0, r0] 2760x01 0x56 277 278# CHECK: ldrsh r1, [r0, r0] 2790x01 0x5E 280 281# CHECK: and.w r5, r1, r10, ror #7 2820x1 0xea 0xfa 0x95 283 284# CHECK: ldrsh r6, [sp], #81 2850x3d 0xf9 0x51 0x6b 286 287# CHECK: usat16 r4, #10, r1 2880xa1 0xf3 0x0a 0x04 289 290# CHECK: smlad r5, r12, r8, r11 2910x2c 0xfb 0x8 0xb5 292 293# CHECK: teq.w r0, r11 2940x90 0xea 0xb 0x8f 295 296# CHECK: uxtb16 r9, r12, ror #16 2970x3f 0xfa 0xec 0xf9 298 299# CHECK: pldw [r11, r12, lsl #2] 3000x3b 0xf8 0x2c 0xf0 301 302# CHECK: msr CPSR_fc, r0 3030x80 0xf3 0x00 0x89 304 305# CHECK: mrs r0, apsr 3060xef 0xf3 0x00 0x80 307 308# rdar://11313994 309# CHECK: blx #2313244 3100x34 0xf2 0x0e 0xee 311 312# rdar://11324693 313# CHECK: bl #-12303196 3140x44 0xf4 0x52 0xda 315