1 # RUN: llvm-mc --disassemble %s -triple=thumbv7-apple-darwin9 -mcpu=cortex-a9 | FileCheck %s 2 3 # CHECK: add r5, sp, #68 4 0x11 0xad 5 6 # CHECK: adcs r0, r0, #1 7 0x50 0xf1 0x01 0x00 8 9 # CHECK: b #30 10 0x0f 0xe0 11 12 # CHECK: bgt.w #-16 13 0x3f 0xf7 0xf8 0xaf 14 15 # CHECK: bfc r0, #10, #10 16 0x6f 0xf3 0x93 0x20 17 18 # CHECK: bfi r2, r10, #0, #1 19 0x6a 0xf3 0x00 0x02 20 21 # CHECK: cbnz r7, #20 22 0x57 0xb9 23 24 # CHECK: cmp r3, r4 25 0xa3 0x42 26 27 # CHECK: cmn.w r0, #31 28 0x10 0xf1 0x1f 0x0f 29 30 # CHECK: ldm r0!, {r1} 31 0x02 0xc8 32 33 # CHECK: ldr r5, [pc, #432] 34 0x6c 0x4d 35 36 # CHECK: str r0, [r3] 37 0x18 0x60 38 39 # CHECK: str r0, [r3, #4] 40 0x58 0x60 41 42 # CHECK: str r2, [r5, r3] 43 0xea 0x50 44 45 # CHECK: ldrb.w r8, [pc, #-24] 46 0x1f 0xf8 0x18 0x80 47 48 # CHECK: ldrd r0, r1, [r7, #64]! 49 0xf7 0xe9 0x10 0x01 50 51 # CHECK: lsls.w r0, r5, #1 52 0x5f 0xea 0x45 0x00 53 54 # CHECK: mov r11, r7 55 0xbb 0x46 56 57 # CHECK: pkhtb r2, r4, r6, asr #16 58 0xc4 0xea 0x26 0x42 59 60 # CHECK-NOT: pkhbt r2, r4, r6, lsl #0 61 # CHECK: pkhbt r2, r4, r6 62 0xc4 0xea 0x06 0x02 63 64 # CHECK: pop.w {r2, r4, r6, r8, r10, r12} 65 0xbd 0xe8 0x54 0x15 66 67 # CHECK: push.w {r2, r4, r6, r8, r10, r12} 68 0x2d 0xe9 0x54 0x15 69 70 # CHECK: rsbs r0, r0, #0 71 0x40 0x42 72 73 # CHECK-NOT: rsb r0, r2, r0, lsl #0 74 # CHECK: rsb r0, r2, r0 75 0xc2 0xeb 0x00 0x00 76 77 # CHECK-NOT: ssat r0, #17, r12, lsl #0 78 # CHECK: ssat r0, #17, r12 79 0x0c 0xf3 0x10 0x00 80 81 # CHECK: strd r0, r1, [r7, #64] 82 0xc7 0xe9 0x10 0x01 83 84 # CHECK: sub sp, #60 85 0x8f 0xb0 86 87 # CHECK: subw r0, pc, #1 88 0xaf 0xf2 0x01 0x00 89 90 # CHECK: subw r0, sp, #835 91 0xad 0xf2 0x43 0x30 92 93 # CHECK: uqadd16 r3, r4, r5 94 0x94 0xfa 0x55 0xf3 95 96 # CHECK: usada8 r5, r4, r3, r2 97 0x74 0xfb 0x03 0x25 98 99 # CHECK: uxtab16 r1, r2, r3, ror #8 100 0x32 0xfa 0x93 0xf1 101 102 # IT block begin 103 # CHECK: ittte eq 104 0x03 0xbf 105 106 # CHECK: moveq r3, #3 107 0x03 0x23 108 109 # CHECK: asreq r1, r0, #5 110 0x41 0x11 111 112 # CHECK: lsleq r1, r0, #28 113 0x01 0x07 114 115 # CHECK: stmne r0!, {r1, r2, r3} 116 0x0e 0xc0 117 118 # IT block end 119 # CHECK: rsbs r1, r2, #0 120 0x51 0x42 121 122 # CHECK: cpsid.w f 123 0xaf 0xf3 0x20 0x86 124 125 # CHECK: cps #15 126 0xaf 0xf3 0x0f 0x81 127 128 # CHECK: cpsie if, #10 129 0xaf 0xf3 0x6a 0x85 130 131 # CHECK: cpsie aif 132 0x67 0xb6 133 134 # CHECK: msr CPSR_fc, r0 135 0x80 0xf3 0x00 0x89 136 137 # CHECK: blx #-4 138 0xff 0xf7 0xfe 0xef 139 140 # CHECK: vpush {d8, d9, d10} 141 0x2d 0xed 0x06 0x8b 142 143 # CHECK: vcmpe.f64 d8, #0 144 0xb5 0xee 0xc0 0x8b 145 146 # CHECK: stmdb sp, {r0, r2, r3, r8, r11, lr} 147 0x0d 0xe9 0x0d 0x49 148 149 # CHECK: stm r5!, {r0, r1, r2, r3, r4} 150 0x1f 0xc5 151 152 # CHECK: ldm r5, {r0, r1, r2, r3, r4, r5} 153 0x3f 0xcd 154 155 # CHECK: ldm r5!, {r0, r1, r2, r3, r4} 156 0x1f 0xcd 157 158 # CHECK: addw r0, pc, #1050 159 0x0f 0xf2 0x1a 0x40 160 161 # CHECK: ldrd r3, r8, [r11, #-60] 162 0x5b 0xe9 0x0f 0x38 163 164 # CHECK: ldrex r8, [r2] 165 0x52 0xe8 0x00 0x8f 166 167 # CHECK: ldrexd r8, r9, [r2] 168 0xd2 0xe8 0x7f 0x89 169 170 # CHECK: strexd r1, r7, r8, [r2] 171 0xc2 0xe8 0x71 0x78 172 173 # CHECK: tbh [r5, r4, lsl #1] 174 0xd5 0xe8 0x14 0xf0 175 176 # CHECK: tbb [r5, r4] 177 0xd5 0xe8 0x04 0xf0 178 179 # CHECK: ldr.w r4, [sp, r4, lsl #3] 180 0x5d 0xf8 0x34 0x40 181 182 # CHECK: ldr.w r5, [r6, #30] 183 0xd6 0xf8 0x1e 0x50 184 185 # CHECK: ldrh.w r5, [r6, #30] 186 0xb6 0xf8 0x1e 0x50 187 188 # CHECK: ldrt r5, [r6, #30] 189 0x56 0xf8 0x1e 0x5e 190 191 # CHECK: ldr r5, [r6, #-30] 192 0x56 0xf8 0x1e 0x5c 193 194 # CHECK: sel r7, r3, r5 195 0xa3 0xfa 0x85 0xf7 196 197 # CHECK: lsl.w r7, r3, r5 198 0x03 0xfa 0x05 0xf7 199 200 # CHECK: adds.w r7, r3, r5 201 0x13 0xeb 0x05 0x07 202 203 # CHECK: smlabt r4, r3, r2, r1 204 0x13 0xfb 0x12 0x14 205 206 # CHECK: smmulr r7, r8, r9 207 0x58 0xfb 0x19 0xf7 208 209 # CHECK: umull r1, r2, r3, r4 210 0xa3 0xfb 0x04 0x12 211 212 # CHECK: pld [r5, r0, lsl #1] 213 0x15 0xf8 0x10 0xf0 214 215 # CHECK: pld [pc, #-16] 216 0x1f 0xf8 0x10 0xf0 217 218 # CHECK: pld [r5, #30] 219 0x95 0xf8 0x1e 0xf0 220 221 # CHECK: stc2 p12, c15, [r9], {137} 222 0x89 0xfc 0x89 0xfc 223 224 # CHECK: stc2 p0, c0, [r0, #0]! 225 0xa0 0xfd 0x00 0x00 226 227 # CHECK: vmov r1, r0, d11 228 0x50 0xec 0x1b 0x1b 229 230 # CHECK: dsb nsh 231 0xbf 0xf3 0x47 0x8f 232 233 # CHECK: isb 234 0xbf 0xf3 0x6f 0x8f 235 236 # CHECK: asrs r1, r0, #32 237 0x1 0x10 238 239 # CHECK: lsr.w r10, r0, #32 240 0x4f 0xea 0x10 0x0a 241 242 # CHECK: blx sp 243 0xe8 0x47 244 245 # CHECK: bx lr 246 0x70 0x47 247 248 # CHECK: bx pc 249 0x78 0x47 250 251 # CHECK: svc #230 252 0xe6 0xdf 253 254 # CHECK: rfedb lr 255 0x1e 0xe8 0x00 0xc0 256 257 # CHECK: mov.w r3, #4294967295 258 0x4f 0xf0 0xff 0x33 259 260 # CHECK: mov pc, sp 261 0xef 0x46 262 263 # CHECK: nop 264 0x00 0xbf 265 266 # CHECK: nop.w 267 0xaf 0xf3 0x00 0x80 268 269 # CHECK: bne #24 270 0x0c 0xd1 271 272 # CHECK: vadd.f32 q0, q1, q2 273 0x02 0xef 0x44 0x0d 274 275 # CHECK: ldrsb r1, [r0, r0] 276 0x01 0x56 277 278 # CHECK: ldrsh r1, [r0, r0] 279 0x01 0x5E 280 281 # CHECK: and.w r5, r1, r10, ror #7 282 0x1 0xea 0xfa 0x95 283 284 # CHECK: ldrsh r6, [sp], #81 285 0x3d 0xf9 0x51 0x6b 286 287 # CHECK: usat16 r4, #10, r1 288 0xa1 0xf3 0x0a 0x04 289 290 # CHECK: smlad r5, r12, r8, r11 291 0x2c 0xfb 0x8 0xb5 292 293 # CHECK: teq.w r0, r11 294 0x90 0xea 0xb 0x8f 295 296 # CHECK: uxtb16 r9, r12, ror #16 297 0x3f 0xfa 0xec 0xf9 298 299 # CHECK: pldw [r11, r12, lsl #2] 300 0x3b 0xf8 0x2c 0xf0 301 302 # CHECK: msr CPSR_fc, r0 303 0x80 0xf3 0x00 0x89 304 305 # CHECK: mrs r0, apsr 306 0xef 0xf3 0x00 0x80 307 308 # rdar://11313994 309 # CHECK: blx #2313244 310 0x34 0xf2 0x0e 0xee 311 312 # rdar://11324693 313 # CHECK: bl #-12303196 314 0x44 0xf4 0x52 0xda 315