1# RUN: llvm-mc -triple=armv7-apple-darwin -mcpu=cortex-a8 -disassemble < %s | FileCheck %s 2 3#------------------------------------------------------------------------------ 4# ADC (immediate) 5#------------------------------------------------------------------------------ 6# CHECK: adc r1, r2, #15 7# CHECK: adc r1, r2, #240 8# CHECK: adc r1, r2, #3840 9# CHECK: adc r1, r2, #61440 10# CHECK: adc r1, r2, #983040 11# CHECK: adc r1, r2, #15728640 12# CHECK: adc r1, r2, #251658240 13# CHECK: adc r1, r2, #4026531840 14# CHECK: adc r1, r2, #4026531855 15# CHECK: adcs r1, r2, #3840 16# CHECK: adcseq r1, r2, #3840 17# CHECK: adceq r1, r2, #3840 18 190x0f 0x10 0xa2 0xe2 200xf0 0x10 0xa2 0xe2 210x0f 0x1c 0xa2 0xe2 220x0f 0x1a 0xa2 0xe2 230x0f 0x18 0xa2 0xe2 240x0f 0x16 0xa2 0xe2 250x0f 0x14 0xa2 0xe2 260x0f 0x12 0xa2 0xe2 270xff 0x12 0xa2 0xe2 28 290x0f 0x1c 0xb2 0xe2 300x0f 0x1c 0xb2 0x02 310x0f 0x1c 0xa2 0x02 32 33#------------------------------------------------------------------------------ 34# ADC (register) 35# ADC (shifted register) 36#------------------------------------------------------------------------------ 37# CHECK: adc r4, r5, r6 38 39# CHECK: adc r4, r5, r6, lsl #1 40# CHECK: adc r4, r5, r6, lsl #31 41# CHECK: adc r4, r5, r6, lsr #1 42# CHECK: adc r4, r5, r6, lsr #31 43# CHECK: adc r4, r5, r6, lsr #32 44# CHECK: adc r4, r5, r6, asr #1 45# CHECK: adc r4, r5, r6, asr #31 46# CHECK: adc r4, r5, r6, asr #32 47# CHECK: adc r4, r5, r6, ror #1 48# CHECK: adc r4, r5, r6, ror #31 49 50# CHECK: adc r6, r7, r8, lsl r9 51# CHECK: adc r6, r7, r8, lsr r9 52# CHECK: adc r6, r7, r8, asr r9 53# CHECK: adc r6, r7, r8, ror r9 54# CHECK: adc r4, r5, r6, rrx 55 56# CHECK: adc r5, r5, r6 57# CHECK: adc r4, r4, r5, lsl #1 58# CHECK: adc r4, r4, r5, lsl #31 59# CHECK: adc r4, r4, r5, lsr #1 60# CHECK: adc r4, r4, r5, lsr #31 61# CHECK: adc r4, r4, r5, lsr #32 62# CHECK: adc r4, r4, r5, asr #1 63# CHECK: adc r4, r4, r5, asr #31 64# CHECK: adc r4, r4, r5, asr #32 65# CHECK: adc r4, r4, r5, ror #1 66# CHECK: adc r4, r4, r5, ror #31 67# CHECK: adc r4, r4, r5, rrx 68# CHECK: adc r6, r6, r7, lsl r9 69# CHECK: adc r6, r6, r7, lsr r9 70# CHECK: adc r6, r6, r7, asr r9 71# CHECK: adc r6, r6, r7, ror r9 72# CHECK: adc r4, r4, r5, rrx 73 740x06 0x40 0xa5 0xe0 75 760x86 0x40 0xa5 0xe0 770x86 0x4f 0xa5 0xe0 780xa6 0x40 0xa5 0xe0 790xa6 0x4f 0xa5 0xe0 800x26 0x40 0xa5 0xe0 810xc6 0x40 0xa5 0xe0 820xc6 0x4f 0xa5 0xe0 830x46 0x40 0xa5 0xe0 840xe6 0x40 0xa5 0xe0 850xe6 0x4f 0xa5 0xe0 86 870x18 0x69 0xa7 0xe0 880x38 0x69 0xa7 0xe0 890x58 0x69 0xa7 0xe0 900x78 0x69 0xa7 0xe0 910x66 0x40 0xa5 0xe0 92 930x06 0x50 0xa5 0xe0 940x85 0x40 0xa4 0xe0 950x85 0x4f 0xa4 0xe0 960xa5 0x40 0xa4 0xe0 970xa5 0x4f 0xa4 0xe0 980x25 0x40 0xa4 0xe0 990xc5 0x40 0xa4 0xe0 1000xc5 0x4f 0xa4 0xe0 1010x45 0x40 0xa4 0xe0 1020xe5 0x40 0xa4 0xe0 1030xe5 0x4f 0xa4 0xe0 1040x65 0x40 0xa4 0xe0 1050x17 0x69 0xa6 0xe0 1060x37 0x69 0xa6 0xe0 1070x57 0x69 0xa6 0xe0 1080x77 0x69 0xa6 0xe0 1090x65 0x40 0xa4 0xe0 110 111#------------------------------------------------------------------------------ 112# ADD 113#------------------------------------------------------------------------------ 114# CHECK: add r4, r5, #61440 115# CHECK: add r4, r5, r6 116# CHECK: add r4, r5, r6, lsl #5 117# CHECK: add r4, r5, r6, lsr #5 118# CHECK: add r4, r5, r6, lsr #5 119# CHECK: add r4, r5, r6, asr #5 120# CHECK: add r4, r5, r6, ror #5 121# CHECK: add r6, r7, r8, lsl r9 122# CHECK: add r6, r7, r8, lsr r9 123# CHECK: add r6, r7, r8, asr r9 124# CHECK: add r6, r7, r8, ror r9 125# CHECK: add r4, r5, r6, rrx 126 127# CHECK: add r5, r5, #61440 128# CHECK: add r4, r4, r5 129# CHECK: add r4, r4, r5, lsl #5 130# CHECK: add r4, r4, r5, lsr #5 131# CHECK: add r4, r4, r5, lsr #5 132# CHECK: add r4, r4, r5, asr #5 133# CHECK: add r4, r4, r5, ror #5 134# CHECK: add r6, r6, r7, lsl r9 135# CHECK: add r6, r6, r7, lsr r9 136# CHECK: add r6, r6, r7, asr r9 137# CHECK: add r6, r6, r7, ror r9 138# CHECK: add r4, r4, r5, rrx 139 1400x0f 0x4a 0x85 0xe2 1410x06 0x40 0x85 0xe0 1420x86 0x42 0x85 0xe0 1430xa6 0x42 0x85 0xe0 1440xa6 0x42 0x85 0xe0 1450xc6 0x42 0x85 0xe0 1460xe6 0x42 0x85 0xe0 1470x18 0x69 0x87 0xe0 1480x38 0x69 0x87 0xe0 1490x58 0x69 0x87 0xe0 1500x78 0x69 0x87 0xe0 1510x66 0x40 0x85 0xe0 152 153 1540x0f 0x5a 0x85 0xe2 1550x05 0x40 0x84 0xe0 1560x85 0x42 0x84 0xe0 1570xa5 0x42 0x84 0xe0 1580xa5 0x42 0x84 0xe0 1590xc5 0x42 0x84 0xe0 1600xe5 0x42 0x84 0xe0 1610x17 0x69 0x86 0xe0 1620x37 0x69 0x86 0xe0 1630x57 0x69 0x86 0xe0 1640x77 0x69 0x86 0xe0 1650x65 0x40 0x84 0xe0 166 167#------------------------------------------------------------------------------ 168# ADR 169#------------------------------------------------------------------------------ 170# CHECK: add r2, pc, #3 171# CHECK: sub r2, pc, #3 172# CHECK: sub r1, pc, #0 173# CHECK: sub r1, pc, #301989888 174# CHECK: add r1, pc, #301989888 175 1760x03 0x20 0x8f 0xe2 1770x03 0x20 0x4f 0xe2 1780x00 0x10 0x4f 0xe2 1790x12 0x14 0x4f 0xe2 1800x12 0x14 0x8f 0xe2 181 182#------------------------------------------------------------------------------ 183# AND 184#------------------------------------------------------------------------------ 185# CHECK: and r10, r1, #15 186# CHECK: and r10, r1, r6 187# CHECK: and r10, r1, r6, lsl #10 188# CHECK: and r10, r1, r6, lsr #10 189# CHECK: and r10, r1, r6, lsr #10 190# CHECK: and r10, r1, r6, asr #10 191# CHECK: and r10, r1, r6, ror #10 192# CHECK: and r6, r7, r8, lsl r2 193# CHECK: and r6, r7, r8, lsr r2 194# CHECK: and r6, r7, r8, asr r2 195# CHECK: and r6, r7, r8, ror r2 196# CHECK: and r10, r1, r6, rrx 197 198# CHECK: and r1, r1, #15 199# CHECK: and r10, r10, r1 200# CHECK: and r10, r10, r1, lsl #10 201# CHECK: and r10, r10, r1, lsr #10 202# CHECK: and r10, r10, r1, lsr #10 203# CHECK: and r10, r10, r1, asr #10 204# CHECK: and r10, r10, r1, ror #10 205# CHECK: and r6, r6, r7, lsl r2 206# CHECK: and r6, r6, r7, lsr r2 207# CHECK: and r6, r6, r7, asr r2 208# CHECK: and r6, r6, r7, ror r2 209# CHECK: and r10, r10, r1, rrx 210 2110x0f 0xa0 0x01 0xe2 2120x06 0xa0 0x01 0xe0 2130x06 0xa5 0x01 0xe0 2140x26 0xa5 0x01 0xe0 2150x26 0xa5 0x01 0xe0 2160x46 0xa5 0x01 0xe0 2170x66 0xa5 0x01 0xe0 2180x18 0x62 0x07 0xe0 2190x38 0x62 0x07 0xe0 2200x58 0x62 0x07 0xe0 2210x78 0x62 0x07 0xe0 2220x66 0xa0 0x01 0xe0 223 2240x0f 0x10 0x01 0xe2 2250x01 0xa0 0x0a 0xe0 2260x01 0xa5 0x0a 0xe0 2270x21 0xa5 0x0a 0xe0 2280x21 0xa5 0x0a 0xe0 2290x41 0xa5 0x0a 0xe0 2300x61 0xa5 0x0a 0xe0 2310x17 0x62 0x06 0xe0 2320x37 0x62 0x06 0xe0 2330x57 0x62 0x06 0xe0 2340x77 0x62 0x06 0xe0 2350x61 0xa0 0x0a 0xe0 236 237#------------------------------------------------------------------------------ 238# FIXME: ASR 239#------------------------------------------------------------------------------ 240 241#------------------------------------------------------------------------------ 242# BFC 243#------------------------------------------------------------------------------ 244# CHECK: bfc r5, #3, #17 245# CHECK: bfclo r5, #3, #17 246 2470x9f 0x51 0xd3 0xe7 2480x9f 0x51 0xd3 0x37 249 250 251#------------------------------------------------------------------------------ 252# BFI 253#------------------------------------------------------------------------------ 254# CHECK: bfi r5, r2, #3, #17 255# CHECK: bfine r5, r2, #3, #17 256 2570x92 0x51 0xd3 0xe7 2580x92 0x51 0xd3 0x17 259 260 261#------------------------------------------------------------------------------ 262# BIC 263#------------------------------------------------------------------------------ 264# CHECK: bic r10, r1, #15 265# CHECK: bic r10, r1, r6 266# CHECK: bic r10, r1, r6, lsl #10 267# CHECK: bic r10, r1, r6, lsr #10 268# CHECK: bic r10, r1, r6, lsr #10 269# CHECK: bic r10, r1, r6, asr #10 270# CHECK: bic r10, r1, r6, ror #10 271# CHECK: bic r6, r7, r8, lsl r2 272# CHECK: bic r6, r7, r8, lsr r2 273# CHECK: bic r6, r7, r8, asr r2 274# CHECK: bic r6, r7, r8, ror r2 275# CHECK: bic r10, r1, r6, rrx 276 277# CHECK: bic r1, r1, #15 278# CHECK: bic r10, r10, r1 279# CHECK: bic r10, r10, r1, lsl #10 280# CHECK: bic r10, r10, r1, lsr #10 281# CHECK: bic r10, r10, r1, lsr #10 282# CHECK: bic r10, r10, r1, asr #10 283# CHECK: bic r10, r10, r1, ror #10 284# CHECK: bic r6, r6, r7, lsl r2 285# CHECK: bic r6, r6, r7, lsr r2 286# CHECK: bic r6, r6, r7, asr r2 287# CHECK: bic r6, r6, r7, ror r2 288# CHECK: bic r10, r10, r1, rrx 289 2900x0f 0xa0 0xc1 0xe3 2910x06 0xa0 0xc1 0xe1 2920x06 0xa5 0xc1 0xe1 2930x26 0xa5 0xc1 0xe1 2940x26 0xa5 0xc1 0xe1 2950x46 0xa5 0xc1 0xe1 2960x66 0xa5 0xc1 0xe1 2970x18 0x62 0xc7 0xe1 2980x38 0x62 0xc7 0xe1 2990x58 0x62 0xc7 0xe1 3000x78 0x62 0xc7 0xe1 3010x66 0xa0 0xc1 0xe1 302 303 3040x0f 0x10 0xc1 0xe3 3050x01 0xa0 0xca 0xe1 3060x01 0xa5 0xca 0xe1 3070x21 0xa5 0xca 0xe1 3080x21 0xa5 0xca 0xe1 3090x41 0xa5 0xca 0xe1 3100x61 0xa5 0xca 0xe1 3110x17 0x62 0xc6 0xe1 3120x37 0x62 0xc6 0xe1 3130x57 0x62 0xc6 0xe1 3140x77 0x62 0xc6 0xe1 3150x61 0xa0 0xca 0xe1 316 317#------------------------------------------------------------------------------ 318# BKPT 319#------------------------------------------------------------------------------ 320# CHECK: bkpt #10 321# CHECK: bkpt #65535 322 3230x7a 0x00 0x20 0xe1 3240x7f 0xff 0x2f 0xe1 325 326#------------------------------------------------------------------------------ 327# BLX (register) 328#------------------------------------------------------------------------------ 329# CHECK: blx r2 330# CHECK: blxne r2 331 3320x32 0xff 0x2f 0xe1 3330x32 0xff 0x2f 0x11 334 335#------------------------------------------------------------------------------ 336# BLX (immediate) 337#------------------------------------------------------------------------------ 338# CHECK: blx #32424576 339# CHECK: blx #16212288 340 3410xa0 0xb0 0x7b 0xfa 3420x50 0xd8 0x3d 0xfa 343 344#------------------------------------------------------------------------------ 345# BX 346#------------------------------------------------------------------------------ 347 348# CHECK: bx r2 349# CHECK: bxne r2 350 3510x12 0xff 0x2f 0xe1 3520x12 0xff 0x2f 0x11 353 354#------------------------------------------------------------------------------ 355# BXJ 356#------------------------------------------------------------------------------ 357 358# CHECK: bxj r2 359# CHECK: bxjne r2 360 3610x22 0xff 0x2f 0xe1 3620x22 0xff 0x2f 0x11 363 364 365#------------------------------------------------------------------------------ 366# CDP/CDP2 367#------------------------------------------------------------------------------ 368# CHECK: cdp p7, #1, c1, c1, c1, #4 369# CHECK: cdp2 p7, #1, c1, c1, c1, #4 370 3710x81 0x17 0x11 0xee 3720x81 0x17 0x11 0xfe 373 374 375#------------------------------------------------------------------------------ 376# CLREX 377#------------------------------------------------------------------------------ 378# CHECK: clrex 379 3800x1f 0xf0 0x7f 0xf5 381 382 383#------------------------------------------------------------------------------ 384# CLZ 385#------------------------------------------------------------------------------ 386# CHECK: clz r1, r2 387# CHECK: clzeq r1, r2 388 3890x12 0x1f 0x6f 0xe1 3900x12 0x1f 0x6f 0x01 391 392#------------------------------------------------------------------------------ 393# CMN 394#------------------------------------------------------------------------------ 395# CHECK: cmn r1, #15 396# CHECK: cmn r1, r6 397# CHECK: cmn r1, r6, lsl #10 398# CHECK: cmn r1, r6, lsr #10 399# CHECK: cmn sp, r6, lsr #10 400# CHECK: cmn r1, r6, asr #10 401# CHECK: cmn r1, r6, ror #10 402# CHECK: cmn r7, r8, lsl r2 403# CHECK: cmn sp, r8, lsr r2 404# CHECK: cmn r7, r8, asr r2 405# CHECK: cmn r7, r8, ror r2 406# CHECK: cmn r1, r6, rrx 407 4080x0f 0x00 0x71 0xe3 4090x06 0x00 0x71 0xe1 4100x06 0x05 0x71 0xe1 4110x26 0x05 0x71 0xe1 4120x26 0x05 0x7d 0xe1 4130x46 0x05 0x71 0xe1 4140x66 0x05 0x71 0xe1 4150x18 0x02 0x77 0xe1 4160x38 0x02 0x7d 0xe1 4170x58 0x02 0x77 0xe1 4180x78 0x02 0x77 0xe1 4190x66 0x00 0x71 0xe1 420 421#------------------------------------------------------------------------------ 422# CMP 423#------------------------------------------------------------------------------ 424# CHECK: cmp r1, #15 425# CHECK: cmp r1, r6 426# CHECK: cmp r1, r6, lsl #10 427# CHECK: cmp r1, r6, lsr #10 428# CHECK: cmp sp, r6, lsr #10 429# CHECK: cmp r1, r6, asr #10 430# CHECK: cmp r1, r6, ror #10 431# CHECK: cmp r7, r8, lsl r2 432# CHECK: cmp sp, r8, lsr r2 433# CHECK: cmp r7, r8, asr r2 434# CHECK: cmp r7, r8, ror r2 435# CHECK: cmp r1, r6, rrx 436 4370x0f 0x00 0x51 0xe3 4380x06 0x00 0x51 0xe1 4390x06 0x05 0x51 0xe1 4400x26 0x05 0x51 0xe1 4410x26 0x05 0x5d 0xe1 4420x46 0x05 0x51 0xe1 4430x66 0x05 0x51 0xe1 4440x18 0x02 0x57 0xe1 4450x38 0x02 0x5d 0xe1 4460x58 0x02 0x57 0xe1 4470x78 0x02 0x57 0xe1 4480x66 0x00 0x51 0xe1 449 450 451#------------------------------------------------------------------------------ 452# CPS 453#------------------------------------------------------------------------------ 454# CHECK: cpsie aif 455# CHECK: cps #15 456# CHECK: cpsid if, #10 457 4580xc0 0x01 0x08 0xf1 4590x0f 0x00 0x02 0xf1 4600xca 0x00 0x0e 0xf1 461 462 463#------------------------------------------------------------------------------ 464# DBG 465#------------------------------------------------------------------------------ 466# CHECK: dbg #0 467# CHECK: dbg #5 468# CHECK: dbg #15 469 4700xf0 0xf0 0x20 0xe3 4710xf5 0xf0 0x20 0xe3 4720xff 0xf0 0x20 0xe3 473 474 475#------------------------------------------------------------------------------ 476# DMB 477#------------------------------------------------------------------------------ 478 479# CHECK: dmb #0x0 480# CHECK: dmb #0x1 481# CHECK: dmb oshst 482# CHECK: dmb osh 483# CHECK: dmb #0x4 484# CHECK: dmb #0x5 485# CHECK: dmb nshst 486# CHECK: dmb nsh 487# CHECK: dmb #0x8 488# CHECK: dmb #0x9 489# CHECK: dmb ishst 490# CHECK: dmb ish 491# CHECK: dmb #0xc 492# CHECK: dmb #0xd 493# CHECK: dmb st 494# CHECK: dmb sy 495 4960x50 0xf0 0x7f 0xf5 4970x51 0xf0 0x7f 0xf5 4980x52 0xf0 0x7f 0xf5 4990x53 0xf0 0x7f 0xf5 5000x54 0xf0 0x7f 0xf5 5010x55 0xf0 0x7f 0xf5 5020x56 0xf0 0x7f 0xf5 5030x57 0xf0 0x7f 0xf5 5040x58 0xf0 0x7f 0xf5 5050x59 0xf0 0x7f 0xf5 5060x5a 0xf0 0x7f 0xf5 5070x5b 0xf0 0x7f 0xf5 5080x5c 0xf0 0x7f 0xf5 5090x5d 0xf0 0x7f 0xf5 5100x5e 0xf0 0x7f 0xf5 5110x5f 0xf0 0x7f 0xf5 512 513#------------------------------------------------------------------------------ 514# DSB 515#------------------------------------------------------------------------------ 516 517# CHECK: dsb #0x0 518# CHECK: dsb #0x1 519# CHECK: dsb oshst 520# CHECK: dsb osh 521# CHECK: dsb #0x4 522# CHECK: dsb #0x5 523# CHECK: dsb nshst 524# CHECK: dsb nsh 525# CHECK: dsb #0x8 526# CHECK: dsb #0x9 527# CHECK: dsb ishst 528# CHECK: dsb ish 529# CHECK: dsb #0xc 530# CHECK: dsb #0xd 531# CHECK: dsb st 532# CHECK: dsb sy 533 5340x40 0xf0 0x7f 0xf5 5350x41 0xf0 0x7f 0xf5 5360x42 0xf0 0x7f 0xf5 5370x43 0xf0 0x7f 0xf5 5380x44 0xf0 0x7f 0xf5 5390x45 0xf0 0x7f 0xf5 5400x46 0xf0 0x7f 0xf5 5410x47 0xf0 0x7f 0xf5 5420x48 0xf0 0x7f 0xf5 5430x49 0xf0 0x7f 0xf5 5440x4a 0xf0 0x7f 0xf5 5450x4b 0xf0 0x7f 0xf5 5460x4c 0xf0 0x7f 0xf5 5470x4d 0xf0 0x7f 0xf5 5480x4e 0xf0 0x7f 0xf5 5490x4f 0xf0 0x7f 0xf5 550 551#------------------------------------------------------------------------------ 552# EOR 553#------------------------------------------------------------------------------ 554# CHECK: eor r4, r5, #61440 555# CHECK: eor r4, r5, r6 556# CHECK: eor r4, r5, r6, lsl #5 557# CHECK: eor r4, r5, r6, lsr #5 558# CHECK: eor r4, r5, r6, lsr #5 559# CHECK: eor r4, r5, r6, asr #5 560# CHECK: eor r4, r5, r6, ror #5 561# CHECK: eor r6, r7, r8, lsl r9 562# CHECK: eor r6, r7, r8, lsr r9 563# CHECK: eor r6, r7, r8, asr r9 564# CHECK: eor r6, r7, r8, ror r9 565# CHECK: eor r4, r5, r6, rrx 566 567# CHECK: eor r5, r5, #61440 568# CHECK: eor r4, r4, r5 569# CHECK: eor r4, r4, r5, lsl #5 570# CHECK: eor r4, r4, r5, lsr #5 571# CHECK: eor r4, r4, r5, lsr #5 572# CHECK: eor r4, r4, r5, asr #5 573# CHECK: eor r4, r4, r5, ror #5 574# CHECK: eor r6, r6, r7, lsl r9 575# CHECK: eor r6, r6, r7, lsr r9 576# CHECK: eor r6, r6, r7, asr r9 577# CHECK: eor r6, r6, r7, ror r9 578# CHECK: eor r4, r4, r5, rrx 579 5800x0f 0x4a 0x25 0xe2 5810x06 0x40 0x25 0xe0 5820x86 0x42 0x25 0xe0 5830xa6 0x42 0x25 0xe0 5840xa6 0x42 0x25 0xe0 5850xc6 0x42 0x25 0xe0 5860xe6 0x42 0x25 0xe0 5870x18 0x69 0x27 0xe0 5880x38 0x69 0x27 0xe0 5890x58 0x69 0x27 0xe0 5900x78 0x69 0x27 0xe0 5910x66 0x40 0x25 0xe0 592 593 5940x0f 0x5a 0x25 0xe2 5950x05 0x40 0x24 0xe0 5960x85 0x42 0x24 0xe0 5970xa5 0x42 0x24 0xe0 5980xa5 0x42 0x24 0xe0 5990xc5 0x42 0x24 0xe0 6000xe5 0x42 0x24 0xe0 6010x17 0x69 0x26 0xe0 6020x37 0x69 0x26 0xe0 6030x57 0x69 0x26 0xe0 6040x77 0x69 0x26 0xe0 6050x65 0x40 0x24 0xe0 606 607 608#------------------------------------------------------------------------------ 609# ISB 610#------------------------------------------------------------------------------ 611# CHECK: isb sy 612 6130x6f 0xf0 0x7f 0xf5 614 615 616 617#------------------------------------------------------------------------------ 618# LDM* 619#------------------------------------------------------------------------------ 620# CHECK: ldm r2, {r1, r3, r4, r5, r6, sp} 621# CHECK: ldmib r2, {r1, r3, r4, r5, r6, sp} 622# CHECK: ldmda r2, {r1, r3, r4, r5, r6, sp} 623# CHECK: ldmdb r2, {r1, r3, r4, r5, r6, sp} 624 625 626# CHECK: ldm r2!, {r1, r3, r4, r5, r6, sp} 627# CHECK: ldmib r2!, {r1, r3, r4, r5, r6, sp} 628# CHECK: ldmda r2!, {r1, r3, r4, r5, r6, sp} 629# CHECK: ldmdb r2!, {r1, r3, r4, r5, r6, sp} 630 6310x7a 0x20 0x92 0xe8 6320x7a 0x20 0x92 0xe9 6330x7a 0x20 0x12 0xe8 6340x7a 0x20 0x12 0xe9 635 6360x7a 0x20 0xb2 0xe8 6370x7a 0x20 0xb2 0xe9 6380x7a 0x20 0x32 0xe8 6390x7a 0x20 0x32 0xe9 640 641 642#------------------------------------------------------------------------------ 643# LDREX/LDREXB/LDREXH/LDREXD 644#------------------------------------------------------------------------------ 645# CHECK: ldrexb r3, [r4] 646# CHECK: ldrexh r2, [r5] 647# CHECK: ldrex r1, [r7] 648# CHECK: ldrexd r6, r7, [r8] 649 6500x9f 0x3f 0xd4 0xe1 6510x9f 0x2f 0xf5 0xe1 6520x9f 0x1f 0x97 0xe1 6530x9f 0x6f 0xb8 0xe1 654 655 656#------------------------------------------------------------------------------ 657# FIXME: LSL 658#------------------------------------------------------------------------------ 659#------------------------------------------------------------------------------ 660# FIXME: LSR 661#------------------------------------------------------------------------------ 662 663#------------------------------------------------------------------------------ 664# MCR/MCR2 665#------------------------------------------------------------------------------ 666# CHECK: mcr p7, #1, r5, c1, c1, #4 667# CHECK: mcr2 p7, #1, r5, c1, c1, #4 668 6690x91 0x57 0x21 0xee 6700x91 0x57 0x21 0xfe 671 672#------------------------------------------------------------------------------ 673# MCRR/MCRR2 674#------------------------------------------------------------------------------ 675# CHECK: mcrr p7, #15, r5, r4, c1 676# CHECK: mcrr2 p7, #15, r5, r4, c1 677 6780xf1 0x57 0x44 0xec 6790xf1 0x57 0x44 0xfc 680 681 682#------------------------------------------------------------------------------ 683# MLA 684#------------------------------------------------------------------------------ 685# CHECK: mla r1, r2, r3, r4 686# CHECK: mlas r1, r2, r3, r4 687# CHECK: mlane r1, r2, r3, r4 688# CHECK: mlasne r1, r2, r3, r4 689 6900x92 0x43 0x21 0xe0 6910x92 0x43 0x31 0xe0 6920x92 0x43 0x21 0x10 6930x92 0x43 0x31 0x10 694 695#------------------------------------------------------------------------------ 696# MLS 697#------------------------------------------------------------------------------ 698# CHECK: mls r2, r5, r6, r3 699# CHECK: mlsne r2, r5, r6, r3 700 7010x95 0x36 0x62 0xe0 7020x95 0x36 0x62 0x10 703 704#------------------------------------------------------------------------------ 705# MOV (immediate) 706#------------------------------------------------------------------------------ 707# CHECK: mov r3, #7 708# CHECK: mov r4, #4080 709# CHECK: mov r5, #16711680 710# CHECK: movw r6, #65535 711# CHECK: movw r9, #65535 712# CHECK: movs r3, #7 713# CHECK: moveq r4, #4080 714# CHECK: movseq r5, #16711680 715 7160x07 0x30 0xa0 0xe3 7170xff 0x4e 0xa0 0xe3 7180xff 0x58 0xa0 0xe3 7190xff 0x6f 0x0f 0xe3 7200xff 0x9f 0x0f 0xe3 7210x07 0x30 0xb0 0xe3 7220xff 0x4e 0xa0 0x03 7230xff 0x58 0xb0 0x03 724 725#------------------------------------------------------------------------------ 726# MOV (register) 727#------------------------------------------------------------------------------ 728# CHECK: mov r2, r3 729# CHECK: movs r2, r3 730# CHECK: moveq r2, r3 731# CHECK: movseq r2, r3 732 7330x03 0x20 0xa0 0xe1 7340x03 0x20 0xb0 0xe1 7350x03 0x20 0xa0 0x01 7360x03 0x20 0xb0 0x01 737 738#------------------------------------------------------------------------------ 739# MOVT 740#------------------------------------------------------------------------------ 741# CHECK: movt r3, #7 742# CHECK: movt r6, #65535 743# CHECK: movteq r4, #4080 744 7450x07 0x30 0x40 0xe3 7460xff 0x6f 0x4f 0xe3 7470xf0 0x4f 0x40 0x03 748 749 750#------------------------------------------------------------------------------ 751# MRC/MRC2 752#------------------------------------------------------------------------------ 753# CHECK: mrc p14, #0, r1, c1, c2, #4 754# CHECK: mrc2 p14, #0, r1, c1, c2, #4 755 7560x92 0x1e 0x11 0xee 7570x92 0x1e 0x11 0xfe 758 759#------------------------------------------------------------------------------ 760# MRRC/MRRC2 761#------------------------------------------------------------------------------ 762# CHECK: mrrc p7, #1, r5, r4, c1 763# CHECK: mrrc2 p7, #1, r5, r4, c1 764 7650x11 0x57 0x54 0xec 7660x11 0x57 0x54 0xfc 767 768 769#------------------------------------------------------------------------------ 770# MRS 771#------------------------------------------------------------------------------ 772# CHECK: mrs r8, apsr 773# CHECK: mrs r8, spsr 7740x00 0x80 0x0f 0xe1 7750x00 0x80 0x4f 0xe1 776 777 778 779#------------------------------------------------------------------------------ 780# MSR 781#------------------------------------------------------------------------------ 782 783# CHECK: msr CPSR_fc, #5 784# CHECK: msr APSR_g, #5 785# CHECK: msr APSR_nzcvq, #5 786# CHECK: msr APSR_nzcvq, #5 787# CHECK: msr APSR_nzcvqg, #5 788# CHECK: msr CPSR_fc, #5 789# CHECK: msr CPSR_c, #5 790# CHECK: msr CPSR_x, #5 791# CHECK: msr CPSR_fc, #5 792# CHECK: msr CPSR_fc, #5 793# CHECK: msr CPSR_fsx, #5 794# CHECK: msr SPSR_fc, #5 795# CHECK: msr SPSR_fsxc, #5 796# CHECK: msr CPSR_fsxc, #5 797 7980x05 0xf0 0x29 0xe3 7990x05 0xf0 0x24 0xe3 8000x05 0xf0 0x28 0xe3 8010x05 0xf0 0x28 0xe3 8020x05 0xf0 0x2c 0xe3 8030x05 0xf0 0x29 0xe3 8040x05 0xf0 0x21 0xe3 8050x05 0xf0 0x22 0xe3 8060x05 0xf0 0x29 0xe3 8070x05 0xf0 0x29 0xe3 8080x05 0xf0 0x2e 0xe3 8090x05 0xf0 0x69 0xe3 8100x05 0xf0 0x6f 0xe3 8110x05 0xf0 0x2f 0xe3 812 813# CHECK: msr CPSR_fc, r0 814# CHECK: msr APSR_g, r0 815# CHECK: msr APSR_nzcvq, r0 816# CHECK: msr APSR_nzcvq, r0 817# CHECK: msr APSR_nzcvqg, r0 818# CHECK: msr CPSR_fc, r0 819# CHECK: msr CPSR_c, r0 820# CHECK: msr CPSR_x, r0 821# CHECK: msr CPSR_fc, r0 822# CHECK: msr CPSR_fc, r0 823# CHECK: msr CPSR_fsx, r0 824# CHECK: msr SPSR_fc, r0 825# CHECK: msr SPSR_fsxc, r0 826# CHECK: msr CPSR_fsxc, r0 827 8280x00 0xf0 0x29 0xe1 8290x00 0xf0 0x24 0xe1 8300x00 0xf0 0x28 0xe1 8310x00 0xf0 0x28 0xe1 8320x00 0xf0 0x2c 0xe1 8330x00 0xf0 0x29 0xe1 8340x00 0xf0 0x21 0xe1 8350x00 0xf0 0x22 0xe1 8360x00 0xf0 0x29 0xe1 8370x00 0xf0 0x29 0xe1 8380x00 0xf0 0x2e 0xe1 8390x00 0xf0 0x69 0xe1 8400x00 0xf0 0x6f 0xe1 8410x00 0xf0 0x2f 0xe1 842 843#------------------------------------------------------------------------------ 844# MUL 845#------------------------------------------------------------------------------ 846 847# CHECK: mul r5, r6, r7 848# CHECK: muls r5, r6, r7 849# CHECK: mulgt r5, r6, r7 850# CHECK: mulsle r5, r6, r7 851 8520x96 0x07 0x05 0xe0 8530x96 0x07 0x15 0xe0 8540x96 0x07 0x05 0xc0 8550x96 0x07 0x15 0xd0 856 857 858#------------------------------------------------------------------------------ 859# MVN (immediate) 860#------------------------------------------------------------------------------ 861# CHECK: mvn r3, #7 862# CHECK: mvn r4, #4080 863# CHECK: mvn r5, #16711680 864# CHECK: mvns r3, #7 865# CHECK: mvneq r4, #4080 866# CHECK: mvnseq r5, #16711680 867 8680x07 0x30 0xe0 0xe3 8690xff 0x4e 0xe0 0xe3 8700xff 0x58 0xe0 0xe3 8710x07 0x30 0xf0 0xe3 8720xff 0x4e 0xe0 0x03 8730xff 0x58 0xf0 0x03 874 875 876#------------------------------------------------------------------------------ 877# MVN (register) 878#------------------------------------------------------------------------------ 879# CHECK: mvn r2, r3 880# CHECK: mvns r2, r3 881# CHECK: mvn r5, r6, lsl #19 882# CHECK: mvn r5, r6, lsr #9 883# CHECK: mvn r5, r6, asr #4 884# CHECK: mvn r5, r6, ror #6 885# CHECK: mvn r5, r6, rrx 886# CHECK: mvneq r2, r3 887# CHECK: mvnseq r2, r3, lsl #10 888 8890x03 0x20 0xe0 0xe1 8900x03 0x20 0xf0 0xe1 8910x86 0x59 0xe0 0xe1 8920xa6 0x54 0xe0 0xe1 8930x46 0x52 0xe0 0xe1 8940x66 0x53 0xe0 0xe1 8950x66 0x50 0xe0 0xe1 8960x03 0x20 0xe0 0x01 8970x03 0x25 0xf0 0x01 898 899 900#------------------------------------------------------------------------------ 901# MVN (shifted register) 902#------------------------------------------------------------------------------ 903# CHECK: mvn r5, r6, lsl r7 904# CHECK: mvns r5, r6, lsr r7 905# CHECK: mvngt r5, r6, asr r7 906# CHECK: mvnslt r5, r6, ror r7 907 9080x16 0x57 0xe0 0xe1 9090x36 0x57 0xf0 0xe1 9100x56 0x57 0xe0 0xc1 9110x76 0x57 0xf0 0xb1 912 913#------------------------------------------------------------------------------ 914# NOP 915#------------------------------------------------------------------------------ 916# CHECK: nop 917# CHECK: nopgt 918 9190x00 0xf0 0x20 0xe3 9200x00 0xf0 0x20 0xc3 921 922 923#------------------------------------------------------------------------------ 924# ORR 925#------------------------------------------------------------------------------ 926# CHECK: orr r4, r5, #61440 927# CHECK: orr r4, r5, r6 928# CHECK: orr r4, r5, r6, lsl #5 929# CHECK: orr r4, r5, r6, lsr #5 930# CHECK: orr r4, r5, r6, lsr #5 931# CHECK: orr r4, r5, r6, asr #5 932# CHECK: orr r4, r5, r6, ror #5 933# CHECK: orr r6, r7, r8, lsl r9 934# CHECK: orr r6, r7, r8, lsr r9 935# CHECK: orr r6, r7, r8, asr r9 936# CHECK: orr r6, r7, r8, ror r9 937# CHECK: orr r4, r5, r6, rrx 938 939# CHECK: orr r5, r5, #61440 940# CHECK: orr r4, r4, r5 941# CHECK: orr r4, r4, r5, lsl #5 942# CHECK: orr r4, r4, r5, lsr #5 943# CHECK: orr r4, r4, r5, lsr #5 944# CHECK: orr r4, r4, r5, asr #5 945# CHECK: orr r4, r4, r5, ror #5 946# CHECK: orr r6, r6, r7, lsl r9 947# CHECK: orr r6, r6, r7, lsr r9 948# CHECK: orr r6, r6, r7, asr r9 949# CHECK: orr r6, r6, r7, ror r9 950# CHECK: orr r4, r4, r5, rrx 951 9520x0f 0x4a 0x85 0xe3 9530x06 0x40 0x85 0xe1 9540x86 0x42 0x85 0xe1 9550xa6 0x42 0x85 0xe1 9560xa6 0x42 0x85 0xe1 9570xc6 0x42 0x85 0xe1 9580xe6 0x42 0x85 0xe1 9590x18 0x69 0x87 0xe1 9600x38 0x69 0x87 0xe1 9610x58 0x69 0x87 0xe1 9620x78 0x69 0x87 0xe1 9630x66 0x40 0x85 0xe1 964 9650x0f 0x5a 0x85 0xe3 9660x05 0x40 0x84 0xe1 9670x85 0x42 0x84 0xe1 9680xa5 0x42 0x84 0xe1 9690xa5 0x42 0x84 0xe1 9700xc5 0x42 0x84 0xe1 9710xe5 0x42 0x84 0xe1 9720x17 0x69 0x86 0xe1 9730x37 0x69 0x86 0xe1 9740x57 0x69 0x86 0xe1 9750x77 0x69 0x86 0xe1 9760x65 0x40 0x84 0xe1 977 978# CHECK: orrseq r4, r5, #61440 979# CHECK: orrne r4, r5, r6 980# CHECK: orrseq r4, r5, r6, lsl #5 981# CHECK: orrlo r6, r7, r8, ror r9 982# CHECK: orrshi r4, r5, r6, rrx 983# CHECK: orrhs r5, r5, #61440 984# CHECK: orrseq r4, r4, r5 985# CHECK: orrne r6, r6, r7, asr r9 986# CHECK: orrslt r6, r6, r7, ror r9 987# CHECK: orrsgt r4, r4, r5, rrx 988 9890x0f 0x4a 0x95 0x03 9900x06 0x40 0x85 0x11 9910x86 0x42 0x95 0x01 9920x78 0x69 0x87 0x31 9930x66 0x40 0x95 0x81 9940x0f 0x5a 0x85 0x23 9950x05 0x40 0x94 0x01 9960x57 0x69 0x86 0x11 9970x77 0x69 0x96 0xb1 9980x65 0x40 0x94 0xc1 999 1000#------------------------------------------------------------------------------ 1001# PKH 1002#------------------------------------------------------------------------------ 1003# CHECK: pkhbt r2, r2, r3 1004# CHECK: pkhbt r2, r2, r3, lsl #31 1005# CHECK: pkhbt r2, r2, r3 1006# CHECK: pkhbt r2, r2, r3, lsl #15 1007 1008# CHECK: pkhbt r2, r2, r3 1009# CHECK: pkhtb r2, r2, r3, asr #31 1010# CHECK: pkhtb r2, r2, r3, asr #15 1011 10120x13 0x20 0x82 0xe6 10130x93 0x2f 0x82 0xe6 10140x13 0x20 0x82 0xe6 10150x93 0x27 0x82 0xe6 1016 10170x13 0x20 0x82 0xe6 10180xd3 0x2f 0x82 0xe6 10190xd3 0x27 0x82 0xe6 1020 1021#------------------------------------------------------------------------------ 1022# FIXME: PLD 1023#------------------------------------------------------------------------------ 1024#------------------------------------------------------------------------------ 1025# FIXME: PLI 1026#------------------------------------------------------------------------------ 1027 1028 1029#------------------------------------------------------------------------------ 1030# POP 1031#------------------------------------------------------------------------------ 1032# CHECK: ldr r7, [sp], #4 1033# CHECK: pop {r7, r8, r9, r10} 1034 10350x04 0x70 0x9d 0xe4 10360x80 0x07 0xbd 0xe8 1037 1038 1039#------------------------------------------------------------------------------ 1040# PUSH 1041#------------------------------------------------------------------------------ 1042# CHECK: str r7, [sp, #-4]! 1043# CHECK: push {r7, r8, r9, r10} 1044 10450x04 0x70 0x2d 0xe5 10460x80 0x07 0x2d 0xe9 1047 1048 1049#------------------------------------------------------------------------------ 1050# QADD/QADD16/QADD8 1051#------------------------------------------------------------------------------ 1052# CHECK: qadd r1, r2, r3 1053# CHECK: qaddne r1, r2, r3 1054# CHECK: qadd16 r1, r2, r3 1055# CHECK: qadd16gt r1, r2, r3 1056# CHECK: qadd8 r1, r2, r3 1057# CHECK: qadd8le r1, r2, r3 1058 10590x52 0x10 0x03 0xe1 10600x52 0x10 0x03 0x11 10610x13 0x1f 0x22 0xe6 10620x13 0x1f 0x22 0xc6 10630x93 0x1f 0x22 0xe6 10640x93 0x1f 0x22 0xd6 1065 1066 1067#------------------------------------------------------------------------------ 1068# QDADD/QDSUB 1069#------------------------------------------------------------------------------ 1070# CHECK: qdadd r6, r7, r8 1071# CHECK: qdaddhi r6, r7, r8 1072# CHECK: qdsub r6, r7, r8 1073# CHECK: qdsubhi r6, r7, r8 1074 10750x57 0x60 0x48 0xe1 10760x57 0x60 0x48 0x81 10770x57 0x60 0x68 0xe1 10780x57 0x60 0x68 0x81 1079 1080 1081#------------------------------------------------------------------------------ 1082# QSAX 1083#------------------------------------------------------------------------------ 1084# CHECK: qsax r9, r12, r0 1085# CHECK: qsaxeq r9, r12, r0 1086 10870x50 0x9f 0x2c 0xe6 10880x50 0x9f 0x2c 0x06 1089 1090 1091#------------------------------------------------------------------------------ 1092# QSUB/QSUB16/QSUB8 1093#------------------------------------------------------------------------------ 1094# CHECK: qsub r1, r2, r3 1095# CHECK: qsubne r1, r2, r3 1096# CHECK: qsub16 r1, r2, r3 1097# CHECK: qsub16gt r1, r2, r3 1098# CHECK: qsub8 r1, r2, r3 1099# CHECK: qsub8le r1, r2, r3 1100 11010x52 0x10 0x23 0xe1 11020x52 0x10 0x23 0x11 11030x73 0x1f 0x22 0xe6 11040x73 0x1f 0x22 0xc6 11050xf3 0x1f 0x22 0xe6 11060xf3 0x1f 0x22 0xd6 1107 1108 1109#------------------------------------------------------------------------------ 1110# RBIT 1111#------------------------------------------------------------------------------ 1112# CHECK: rbit r1, r2 1113# CHECK: rbitne r1, r2 1114 11150x32 0x1f 0xff 0xe6 11160x32 0x1f 0xff 0x16 1117 1118 1119#------------------------------------------------------------------------------ 1120# REV/REV16/REVSH 1121#------------------------------------------------------------------------------ 1122# CHECK: rev r1, r9 1123# CHECK: revne r1, r5 1124# CHECK: rev16 r8, r3 1125# CHECK: rev16ne r12, r4 1126# CHECK: revsh r4, r9 1127# CHECK: revshne r9, r1 1128 11290x39 0x1f 0xbf 0xe6 11300x35 0x1f 0xbf 0x16 11310xb3 0x8f 0xbf 0xe6 11320xb4 0xcf 0xbf 0x16 11330xb9 0x4f 0xff 0xe6 11340xb1 0x9f 0xff 0x16 1135 1136 1137#------------------------------------------------------------------------------ 1138# RFE 1139#------------------------------------------------------------------------------ 1140# CHECK: rfeda r2 1141# CHECK: rfedb r3 1142# CHECK: rfeia r5 1143# CHECK: rfeib r6 1144 1145# CHECK: rfeda r4! 1146# CHECK: rfedb r7! 1147# CHECK: rfeia r9! 1148# CHECK: rfeib r8! 1149 1150# CHECK: rfeda r2 1151# CHECK: rfedb r3 1152# CHECK: rfeia r5 1153# CHECK: rfeib r6 1154 1155# CHECK: rfeda r4! 1156# CHECK: rfedb r7! 1157# CHECK: rfeia r9! 1158# CHECK: rfeib r8! 1159 1160# CHECK: rfeia r1 1161# CHECK: rfeia r1! 1162 11630x00 0x0a 0x12 0xf8 11640x00 0x0a 0x13 0xf9 11650x00 0x0a 0x95 0xf8 11660x00 0x0a 0x96 0xf9 1167 11680x00 0x0a 0x34 0xf8 11690x00 0x0a 0x37 0xf9 11700x00 0x0a 0xb9 0xf8 11710x00 0x0a 0xb8 0xf9 1172 11730x00 0x0a 0x12 0xf8 11740x00 0x0a 0x13 0xf9 11750x00 0x0a 0x95 0xf8 11760x00 0x0a 0x96 0xf9 1177 11780x00 0x0a 0x34 0xf8 11790x00 0x0a 0x37 0xf9 11800x00 0x0a 0xb9 0xf8 11810x00 0x0a 0xb8 0xf9 1182 11830x00 0x0a 0x91 0xf8 11840x00 0x0a 0xb1 0xf8 1185 1186 1187#------------------------------------------------------------------------------ 1188# RSB 1189#------------------------------------------------------------------------------ 1190# CHECK: rsb r4, r5, #61440 1191# CHECK: rsb r4, r5, r6 1192# CHECK: rsb r4, r5, r6, lsl #5 1193# CHECK: rsblo r4, r5, r6, lsr #5 1194# CHECK: rsb r4, r5, r6, lsr #5 1195# CHECK: rsb r4, r5, r6, asr #5 1196# CHECK: rsb r4, r5, r6, ror #5 1197# CHECK: rsb r6, r7, r8, lsl r9 1198# CHECK: rsb r6, r7, r8, lsr r9 1199# CHECK: rsb r6, r7, r8, asr r9 1200# CHECK: rsble r6, r7, r8, ror r9 1201# CHECK: rsb r4, r5, r6, rrx 1202 1203# CHECK: rsb r5, r5, #61440 1204# CHECK: rsb r4, r4, r5 1205# CHECK: rsb r4, r4, r5, lsl #5 1206# CHECK: rsb r4, r4, r5, lsr #5 1207# CHECK: rsbne r4, r4, r5, lsr #5 1208# CHECK: rsb r4, r4, r5, asr #5 1209# CHECK: rsb r4, r4, r5, ror #5 1210# CHECK: rsbgt r6, r6, r7, lsl r9 1211# CHECK: rsb r6, r6, r7, lsr r9 1212# CHECK: rsb r6, r6, r7, asr r9 1213# CHECK: rsb r6, r6, r7, ror r9 1214# CHECK: rsb r4, r4, r5, rrx 1215 12160x0f 0x4a 0x65 0xe2 12170x06 0x40 0x65 0xe0 12180x86 0x42 0x65 0xe0 12190xa6 0x42 0x65 0x30 12200xa6 0x42 0x65 0xe0 12210xc6 0x42 0x65 0xe0 12220xe6 0x42 0x65 0xe0 12230x18 0x69 0x67 0xe0 12240x38 0x69 0x67 0xe0 12250x58 0x69 0x67 0xe0 12260x78 0x69 0x67 0xd0 12270x66 0x40 0x65 0xe0 1228 12290x0f 0x5a 0x65 0xe2 12300x05 0x40 0x64 0xe0 12310x85 0x42 0x64 0xe0 12320xa5 0x42 0x64 0xe0 12330xa5 0x42 0x64 0x10 12340xc5 0x42 0x64 0xe0 12350xe5 0x42 0x64 0xe0 12360x17 0x69 0x66 0xc0 12370x37 0x69 0x66 0xe0 12380x57 0x69 0x66 0xe0 12390x77 0x69 0x66 0xe0 12400x65 0x40 0x64 0xe0 1241 1242#------------------------------------------------------------------------------ 1243# RSC 1244#------------------------------------------------------------------------------ 1245# CHECK: rsc r4, r5, #61440 1246# CHECK: rsc r4, r5, r6 1247# CHECK: rsc r4, r5, r6, lsl #5 1248# CHECK: rsclo r4, r5, r6, lsr #5 1249# CHECK: rsc r4, r5, r6, lsr #5 1250# CHECK: rsc r4, r5, r6, asr #5 1251# CHECK: rsc r4, r5, r6, ror #5 1252# CHECK: rsc r6, r7, r8, lsl r9 1253# CHECK: rsc r6, r7, r8, lsr r9 1254# CHECK: rsc r6, r7, r8, asr r9 1255# CHECK: rscle r6, r7, r8, ror r9 1256 1257# CHECK: rsc r5, r5, #61440 1258# CHECK: rsc r4, r4, r5 1259# CHECK: rsc r4, r4, r5, lsl #5 1260# CHECK: rsc r4, r4, r5, lsr #5 1261# CHECK: rscne r4, r4, r5, lsr #5 1262# CHECK: rsc r4, r4, r5, asr #5 1263# CHECK: rsc r4, r4, r5, ror #5 1264# CHECK: rscgt r6, r6, r7, lsl r9 1265# CHECK: rsc r6, r6, r7, lsr r9 1266# CHECK: rsc r6, r6, r7, asr r9 1267# CHECK: rsc r6, r6, r7, ror r9 1268 12690x0f 0x4a 0xe5 0xe2 12700x06 0x40 0xe5 0xe0 12710x86 0x42 0xe5 0xe0 12720xa6 0x42 0xe5 0x30 12730xa6 0x42 0xe5 0xe0 12740xc6 0x42 0xe5 0xe0 12750xe6 0x42 0xe5 0xe0 12760x18 0x69 0xe7 0xe0 12770x38 0x69 0xe7 0xe0 12780x58 0x69 0xe7 0xe0 12790x78 0x69 0xe7 0xd0 1280 12810x0f 0x5a 0xe5 0xe2 12820x05 0x40 0xe4 0xe0 12830x85 0x42 0xe4 0xe0 12840xa5 0x42 0xe4 0xe0 12850xa5 0x42 0xe4 0x10 12860xc5 0x42 0xe4 0xe0 12870xe5 0x42 0xe4 0xe0 12880x17 0x69 0xe6 0xc0 12890x37 0x69 0xe6 0xe0 12900x57 0x69 0xe6 0xe0 12910x77 0x69 0xe6 0xe0 1292 1293#------------------------------------------------------------------------------ 1294# SADD16/SADD8 1295#------------------------------------------------------------------------------ 1296# CHECK: sadd16 r1, r2, r3 1297# CHECK: sadd16gt r1, r2, r3 1298# CHECK: sadd8 r1, r2, r3 1299# CHECK: sadd8le r1, r2, r3 1300 13010x13 0x1f 0x12 0xe6 13020x13 0x1f 0x12 0xc6 13030x93 0x1f 0x12 0xe6 13040x93 0x1f 0x12 0xd6 1305 1306 1307#------------------------------------------------------------------------------ 1308# SASX 1309#------------------------------------------------------------------------------ 1310# CHECK: sasx r9, r12, r0 1311# CHECK: sasxeq r9, r12, r0 1312 13130x30 0x9f 0x1c 0xe6 13140x30 0x9f 0x1c 0x06 1315 1316 1317#------------------------------------------------------------------------------ 1318# SBC 1319#------------------------------------------------------------------------------ 1320# CHECK: sbc r4, r5, #61440 1321# CHECK: sbc r4, r5, r6 1322# CHECK: sbc r4, r5, r6, lsl #5 1323# CHECK: sbc r4, r5, r6, lsr #5 1324# CHECK: sbc r4, r5, r6, lsr #5 1325# CHECK: sbc r4, r5, r6, asr #5 1326# CHECK: sbc r4, r5, r6, ror #5 1327# CHECK: sbc r6, r7, r8, lsl r9 1328# CHECK: sbc r6, r7, r8, lsr r9 1329# CHECK: sbc r6, r7, r8, asr r9 1330# CHECK: sbc r6, r7, r8, ror r9 1331 1332# CHECK: sbc r5, r5, #61440 1333# CHECK: sbc r4, r4, r5 1334# CHECK: sbc r4, r4, r5, lsl #5 1335# CHECK: sbc r4, r4, r5, lsr #5 1336# CHECK: sbc r4, r4, r5, lsr #5 1337# CHECK: sbc r4, r4, r5, asr #5 1338# CHECK: sbc r4, r4, r5, ror #5 1339# CHECK: sbc r6, r6, r7, lsl r9 1340# CHECK: sbc r6, r6, r7, lsr r9 1341# CHECK: sbc r6, r6, r7, asr r9 1342# CHECK: sbc r6, r6, r7, ror r9 1343 13440x0f 0x4a 0xc5 0xe2 13450x06 0x40 0xc5 0xe0 13460x86 0x42 0xc5 0xe0 13470xa6 0x42 0xc5 0xe0 13480xa6 0x42 0xc5 0xe0 13490xc6 0x42 0xc5 0xe0 13500xe6 0x42 0xc5 0xe0 13510x18 0x69 0xc7 0xe0 13520x38 0x69 0xc7 0xe0 13530x58 0x69 0xc7 0xe0 13540x78 0x69 0xc7 0xe0 1355 13560x0f 0x5a 0xc5 0xe2 13570x05 0x40 0xc4 0xe0 13580x85 0x42 0xc4 0xe0 13590xa5 0x42 0xc4 0xe0 13600xa5 0x42 0xc4 0xe0 13610xc5 0x42 0xc4 0xe0 13620xe5 0x42 0xc4 0xe0 13630x17 0x69 0xc6 0xe0 13640x37 0x69 0xc6 0xe0 13650x57 0x69 0xc6 0xe0 13660x77 0x69 0xc6 0xe0 1367 1368 1369#------------------------------------------------------------------------------ 1370# SBFX 1371#------------------------------------------------------------------------------ 1372# CHECK: sbfx r4, r5, #16, #1 1373# CHECK: sbfxgt r4, r5, #16, #16 1374 13750x55 0x48 0xa0 0xe7 13760x55 0x48 0xaf 0xc7 1377 1378 1379#------------------------------------------------------------------------------ 1380# SEL 1381#------------------------------------------------------------------------------ 1382# CHECK: sel r9, r2, r1 1383# CHECK: selne r9, r2, r1 1384 13850xb1 0x9f 0x82 0xe6 13860xb1 0x9f 0x82 0x16 1387 1388 1389#------------------------------------------------------------------------------ 1390# SETEND 1391#------------------------------------------------------------------------------ 1392# CHECK: setend be 1393# CHECK: setend le 1394 13950x00 0x02 0x01 0xf1 13960x00 0x00 0x01 0xf1 1397 1398#------------------------------------------------------------------------------ 1399# SEV 1400#------------------------------------------------------------------------------ 1401# CHECK: sev 1402# CHECK: seveq 1403 14040x04 0xf0 0x20 0xe3 14050x04 0xf0 0x20 0x03 1406 1407#------------------------------------------------------------------------------ 1408# SHADD16/SHADD8 1409#------------------------------------------------------------------------------ 1410# CHECK: shadd16 r4, r8, r2 1411# CHECK: shadd16gt r4, r8, r2 1412# CHECK: shadd8 r4, r8, r2 1413# CHECK: shadd8gt r4, r8, r2 1414 14150x12 0x4f 0x38 0xe6 14160x12 0x4f 0x38 0xc6 14170x92 0x4f 0x38 0xe6 14180x92 0x4f 0x38 0xc6 1419 1420 1421#------------------------------------------------------------------------------ 1422# SHASX 1423#------------------------------------------------------------------------------ 1424# CHECK: shasx r4, r8, r2 1425# CHECK: shasxgt r4, r8, r2 1426 14270x32 0x4f 0x38 0xe6 14280x32 0x4f 0x38 0xc6 1429 1430 1431#------------------------------------------------------------------------------ 1432# SHSUB16/SHSUB8 1433#------------------------------------------------------------------------------ 1434# CHECK: shsub16 r4, r8, r2 1435# CHECK: shsub16gt r4, r8, r2 1436# CHECK: shsub8 r4, r8, r2 1437# CHECK: shsub8gt r4, r8, r2 1438 14390x72 0x4f 0x38 0xe6 14400x72 0x4f 0x38 0xc6 14410xf2 0x4f 0x38 0xe6 14420xf2 0x4f 0x38 0xc6 1443 1444#------------------------------------------------------------------------------ 1445# SMC 1446#------------------------------------------------------------------------------ 1447# CHECK: smc #15 1448# CHECK: smceq #0 1449 14500x7f 0x00 0x60 0xe1 14510x70 0x00 0x60 0x01 1452 1453#------------------------------------------------------------------------------ 1454# SMLABB/SMLABT/SMLATB/SMLATT 1455#------------------------------------------------------------------------------ 1456# CHECK: smlabb r3, r1, r9, r0 1457# CHECK: smlabt r5, r6, r4, r1 1458# CHECK: smlatb r4, r2, r3, r2 1459# CHECK: smlatt r8, r3, r8, r4 1460# CHECK: smlabbge r3, r1, r9, r0 1461# CHECK: smlabtle r5, r6, r4, r1 1462# CHECK: smlatbne r4, r2, r3, r2 1463# CHECK: smlatteq r8, r3, r8, r4 1464 14650x81 0x09 0x03 0xe1 14660xc6 0x14 0x05 0xe1 14670xa2 0x23 0x04 0xe1 14680xe3 0x48 0x08 0xe1 14690x81 0x09 0x03 0xa1 14700xc6 0x14 0x05 0xd1 14710xa2 0x23 0x04 0x11 14720xe3 0x48 0x08 0x01 1473 1474#------------------------------------------------------------------------------ 1475# SMLAD/SMLADX 1476#------------------------------------------------------------------------------ 1477# CHECK: smlad r2, r3, r5, r8 1478# CHECK: smladx r2, r3, r5, r8 1479# CHECK: smladeq r2, r3, r5, r8 1480# CHECK: smladxhi r2, r3, r5, r8 1481 14820x13 0x85 0x02 0xe7 14830x33 0x85 0x02 0xe7 14840x13 0x85 0x02 0x07 14850x33 0x85 0x02 0x87 1486 1487 1488#------------------------------------------------------------------------------ 1489# SMLAL 1490#------------------------------------------------------------------------------ 1491# CHECK: smlal r2, r3, r5, r8 1492# CHECK: smlals r2, r3, r5, r8 1493# CHECK: smlaleq r2, r3, r5, r8 1494# CHECK: smlalshi r2, r3, r5, r8 1495 14960x95 0x28 0xe3 0xe0 14970x95 0x28 0xf3 0xe0 14980x95 0x28 0xe3 0x00 14990x95 0x28 0xf3 0x80 1500 1501 1502#------------------------------------------------------------------------------ 1503# SMLALBB/SMLALBT/SMLALTB/SMLALTT 1504#------------------------------------------------------------------------------ 1505# CHECK: smlalbb r3, r1, r9, r0 1506# CHECK: smlalbt r5, r6, r4, r1 1507# CHECK: smlaltb r4, r2, r3, r2 1508# CHECK: smlaltt r8, r3, r8, r4 1509# CHECK: smlalbbge r3, r1, r9, r0 1510# CHECK: smlalbtle r5, r6, r4, r1 1511# CHECK: smlaltbne r4, r2, r3, r2 1512# CHECK: smlaltteq r8, r3, r8, r4 1513 15140x89 0x30 0x41 0xe1 15150xc4 0x51 0x46 0xe1 15160xa3 0x42 0x42 0xe1 15170xe8 0x84 0x43 0xe1 15180x89 0x30 0x41 0xa1 15190xc4 0x51 0x46 0xd1 15200xa3 0x42 0x42 0x11 15210xe8 0x84 0x43 0x01 1522 1523 1524#------------------------------------------------------------------------------ 1525# SMLALD/SMLALDX 1526#------------------------------------------------------------------------------ 1527# CHECK: smlald r2, r3, r5, r8 1528# CHECK: smlaldx r2, r3, r5, r8 1529# CHECK: smlaldeq r2, r3, r5, r8 1530# CHECK: smlaldxhi r2, r3, r5, r8 1531 15320x15 0x28 0x43 0xe7 15330x35 0x28 0x43 0xe7 15340x15 0x28 0x43 0x07 15350x35 0x28 0x43 0x87 1536 1537 1538#------------------------------------------------------------------------------ 1539# SMLAWB/SMLAWT 1540#------------------------------------------------------------------------------ 1541# CHECK: smlawb r2, r3, r10, r8 1542# CHECK: smlawt r8, r3, r5, r9 1543# CHECK: smlawbeq r2, r7, r5, r8 1544# CHECK: smlawthi r1, r3, r0, r8 1545 15460x83 0x8a 0x22 0xe1 15470xc3 0x95 0x28 0xe1 15480x87 0x85 0x22 0x01 15490xc3 0x80 0x21 0x81 1550 1551 1552#------------------------------------------------------------------------------ 1553# SMLSD/SMLSDX 1554#------------------------------------------------------------------------------ 1555# CHECK: smlsd r2, r3, r5, r8 1556# CHECK: smlsdx r2, r3, r5, r8 1557# CHECK: smlsdeq r2, r3, r5, r8 1558# CHECK: smlsdxhi r2, r3, r5, r8 1559 15600x53 0x85 0x02 0xe7 15610x73 0x85 0x02 0xe7 15620x53 0x85 0x02 0x07 15630x73 0x85 0x02 0x87 1564 1565 1566#------------------------------------------------------------------------------ 1567# SMLSLD/SMLSLDX 1568#------------------------------------------------------------------------------ 1569# CHECK: smlsld r2, r9, r5, r1 1570# CHECK: smlsldx r4, r11, r2, r8 1571# CHECK: smlsldeq r8, r2, r5, r6 1572# CHECK: smlsldxhi r1, r0, r3, r8 1573 15740x55 0x21 0x49 0xe7 15750x72 0x48 0x4b 0xe7 15760x55 0x86 0x42 0x07 15770x73 0x18 0x40 0x87 1578 1579 1580#------------------------------------------------------------------------------ 1581# SMMLA/SMMLAR 1582#------------------------------------------------------------------------------ 1583# CHECK: smmla r1, r2, r3, r4 1584# CHECK: smmlar r4, r3, r2, r1 1585# CHECK: smmlalo r1, r2, r3, r4 1586# CHECK: smmlarhs r4, r3, r2, r1 1587 15880x12 0x43 0x51 0xe7 15890x33 0x12 0x54 0xe7 15900x12 0x43 0x51 0x37 15910x33 0x12 0x54 0x27 1592 1593 1594#------------------------------------------------------------------------------ 1595# SMMLS/SMMLSR 1596#------------------------------------------------------------------------------ 1597# CHECK: smmls r1, r2, r3, r4 1598# CHECK: smmlsr r4, r3, r2, r1 1599# CHECK: smmlslo r1, r2, r3, r4 1600# CHECK: smmlsrhs r4, r3, r2, r1 1601 16020xd2 0x43 0x51 0xe7 16030xf3 0x12 0x54 0xe7 16040xd2 0x43 0x51 0x37 16050xf3 0x12 0x54 0x27 1606 1607 1608#------------------------------------------------------------------------------ 1609# SMMUL/SMMULR 1610#------------------------------------------------------------------------------ 1611# CHECK: smmul r2, r3, r4 1612# CHECK: smmulr r3, r2, r1 1613# CHECK: smmullo r2, r3, r4 1614# CHECK: smmulrhs r3, r2, r1 1615 16160x13 0xf4 0x52 0xe7 16170x32 0xf1 0x53 0xe7 16180x13 0xf4 0x52 0x37 16190x32 0xf1 0x53 0x27 1620 1621 1622#------------------------------------------------------------------------------ 1623# SMUAD/SMUADX 1624#------------------------------------------------------------------------------ 1625# CHECK: smuad r2, r3, r4 1626# CHECK: smuadx r3, r2, r1 1627# CHECK: smuadlt r2, r3, r4 1628# CHECK: smuadxge r3, r2, r1 1629 16300x13 0xf4 0x02 0xe7 16310x32 0xf1 0x03 0xe7 16320x13 0xf4 0x02 0xb7 16330x32 0xf1 0x03 0xa7 1634 1635 1636#------------------------------------------------------------------------------ 1637# SMULBB/SMLALBT/SMLALTB/SMLALTT 1638#------------------------------------------------------------------------------ 1639# CHECK: smulbb r3, r9, r0 1640# CHECK: smulbt r5, r4, r1 1641# CHECK: smultb r4, r2, r2 1642# CHECK: smultt r8, r3, r4 1643# CHECK: smulbbge r1, r9, r0 1644# CHECK: smulbtle r5, r6, r4 1645# CHECK: smultbne r2, r3, r2 1646# CHECK: smultteq r8, r3, r4 1647 16480x89 0x00 0x63 0xe1 16490xc4 0x01 0x65 0xe1 16500xa2 0x02 0x64 0xe1 16510xe3 0x04 0x68 0xe1 16520x89 0x00 0x61 0xa1 16530xc6 0x04 0x65 0xd1 16540xa3 0x02 0x62 0x11 16550xe3 0x04 0x68 0x01 1656 1657 1658#------------------------------------------------------------------------------ 1659# SMULL 1660#------------------------------------------------------------------------------ 1661# CHECK: smull r3, r9, r0, r1 1662# CHECK: smulls r3, r9, r0, r2 1663# CHECK: smulleq r8, r3, r4, r5 1664# CHECK: smullseq r8, r3, r4, r3 1665 16660x90 0x31 0xc9 0xe0 16670x90 0x32 0xd9 0xe0 16680x94 0x85 0xc3 0x00 16690x94 0x83 0xd3 0x00 1670 1671 1672#------------------------------------------------------------------------------ 1673# SMULWB/SMULWT 1674#------------------------------------------------------------------------------ 1675# CHECK: smulwb r3, r9, r0 1676# CHECK: smulwt r3, r9, r2 1677 16780xa9 0x00 0x23 0xe1 16790xe9 0x02 0x23 0xe1 1680 1681 1682#------------------------------------------------------------------------------ 1683# SMUSD/SMUSDX 1684#------------------------------------------------------------------------------ 1685# CHECK: smusd r3, r0, r1 1686# CHECK: smusdx r3, r9, r2 1687# CHECK: smusdeq r8, r3, r2 1688# CHECK: smusdxne r7, r4, r3 1689 16900x50 0xf1 0x03 0xe7 16910x79 0xf2 0x03 0xe7 16920x53 0xf2 0x08 0x07 16930x74 0xf3 0x07 0x17 1694 1695 1696#------------------------------------------------------------------------------ 1697# SRS 1698#------------------------------------------------------------------------------ 1699# CHECK: srsda sp, #5 1700# CHECK: srsdb sp, #1 1701# CHECK: srsia sp, #0 1702# CHECK: srsib sp, #15 1703 1704# CHECK: srsda sp!, #31 1705# CHECK: srsdb sp!, #19 1706# CHECK: srsia sp!, #2 1707# CHECK: srsib sp!, #14 1708 1709# CHECK: srsda sp, #11 1710# CHECK: srsdb sp, #10 1711# CHECK: srsia sp, #9 1712# CHECK: srsib sp, #5 1713 1714# CHECK: srsda sp!, #5 1715# CHECK: srsdb sp!, #5 1716# CHECK: srsia sp!, #5 1717# CHECK: srsib sp!, #5 1718 1719# CHECK: srsia sp, #5 1720# CHECK: srsia sp!, #5 1721 17220x05 0x05 0x4d 0xf8 17230x01 0x05 0x4d 0xf9 17240x00 0x05 0xcd 0xf8 17250x0f 0x05 0xcd 0xf9 1726 17270x1f 0x05 0x6d 0xf8 17280x13 0x05 0x6d 0xf9 17290x02 0x05 0xed 0xf8 17300x0e 0x05 0xed 0xf9 1731 17320x0b 0x05 0x4d 0xf8 17330x0a 0x05 0x4d 0xf9 17340x09 0x05 0xcd 0xf8 17350x05 0x05 0xcd 0xf9 1736 17370x05 0x05 0x6d 0xf8 17380x05 0x05 0x6d 0xf9 17390x05 0x05 0xed 0xf8 17400x05 0x05 0xed 0xf9 1741 17420x05 0x05 0xcd 0xf8 17430x05 0x05 0xed 0xf8 1744 1745 1746#------------------------------------------------------------------------------ 1747# SSAT 1748#------------------------------------------------------------------------------ 1749# CHECK: ssat r8, #1, r10 1750# CHECK: ssat r8, #1, r10, lsl #31 1751# CHECK: ssat r8, #1, r10, asr #32 1752# CHECK: ssat r8, #1, r10, asr #1 1753 17540x1a 0x80 0xa0 0xe6 17550x9a 0x8f 0xa0 0xe6 17560x5a 0x80 0xa0 0xe6 17570xda 0x80 0xa0 0xe6 1758 1759 1760#------------------------------------------------------------------------------ 1761# SSAT16 1762#------------------------------------------------------------------------------ 1763# CHECK: ssat16 r2, #1, r7 1764# CHECK: ssat16 r3, #16, r5 1765 17660x37 0x2f 0xa0 0xe6 17670x35 0x3f 0xaf 0xe6 1768 1769 1770#------------------------------------------------------------------------------ 1771# SSAX 1772#------------------------------------------------------------------------------ 1773# CHECK: ssax r2, r3, r4 1774# CHECK: ssaxlt r2, r3, r4 1775 17760x54 0x2f 0x13 0xe6 17770x54 0x2f 0x13 0xb6 1778 1779#------------------------------------------------------------------------------ 1780# SSUB16/SSUB8 1781#------------------------------------------------------------------------------ 1782# CHECK: ssub16 r1, r0, r6 1783# CHECK: ssub16ne r5, r3, r2 1784# CHECK: ssub8 r9, r2, r4 1785# CHECK: ssub8eq r5, r1, r2 1786 17870x76 0x1f 0x10 0xe6 17880x72 0x5f 0x13 0x16 17890xf4 0x9f 0x12 0xe6 17900xf2 0x5f 0x11 0x06 1791 1792 1793#------------------------------------------------------------------------------ 1794# STM* 1795#------------------------------------------------------------------------------ 1796# CHECK: stm r2, {r1, r3, r4, r5, r6, sp} 1797# CHECK: stm r3, {r1, r3, r4, r5, r6, lr} 1798# CHECK: stmib r4, {r1, r3, r4, r5, r6, sp} 1799# CHECK: stmda r5, {r1, r3, r4, r5, r6, sp} 1800# CHECK: stmdb r6, {r1, r3, r4, r5, r6, r8} 1801# CHECK: stmdb sp, {r1, r3, r4, r5, r6, sp} 1802 1803 1804# CHECK: stm r8!, {r1, r3, r4, r5, r6, sp} 1805# CHECK: stmib r9!, {r1, r3, r4, r5, r6, sp} 1806# CHECK: stmda sp!, {r1, r3, r4, r5, r6} 1807# CHECK: stmdb r0!, {r1, r5, r7, sp} 1808 18090x7a 0x20 0x82 0xe8 18100x7a 0x40 0x83 0xe8 18110x7a 0x20 0x84 0xe9 18120x7a 0x20 0x05 0xe8 18130x7a 0x01 0x06 0xe9 18140x7a 0x20 0x0d 0xe9 1815 18160x7a 0x20 0xa8 0xe8 18170x7a 0x20 0xa9 0xe9 18180x7a 0x00 0x2d 0xe8 18190xa2 0x20 0x20 0xe9 1820 1821 1822#------------------------------------------------------------------------------ 1823# STREX/STREXB/STREXH/STREXD 1824#------------------------------------------------------------------------------ 1825# CHECK: strexb r1, r3, [r4 1826# CHECK: strexh r4, r2, [r5 1827# CHECK: strex r2, r1, [r7 1828# CHECK: strexd r6, r2, r3, [r8 1829 18300x93 0x1f 0xc4 0xe1 18310x92 0x4f 0xe5 0xe1 18320x91 0x2f 0x87 0xe1 18330x92 0x6f 0xa8 0xe1 1834 1835 1836#------------------------------------------------------------------------------ 1837# SUB 1838#------------------------------------------------------------------------------ 1839# CHECK: sub r4, r5, #61440 1840# CHECK: sub r4, r5, r6 1841# CHECK: sub r4, r5, r6, lsl #5 1842# CHECK: sub r4, r5, r6, lsr #5 1843# CHECK: sub r4, r5, r6, lsr #5 1844# CHECK: sub r4, r5, r6, asr #5 1845# CHECK: sub r4, r5, r6, ror #5 1846# CHECK: sub r6, r7, r8, lsl r9 1847# CHECK: sub r6, r7, r8, lsr r9 1848# CHECK: sub r6, r7, r8, asr r9 1849# CHECK: sub r6, r7, r8, ror r9 1850 1851# CHECK: sub r5, r5, #61440 1852# CHECK: sub r4, r4, r5 1853# CHECK: sub r4, r4, r5, lsl #5 1854# CHECK: sub r4, r4, r5, lsr #5 1855# CHECK: sub r4, r4, r5, lsr #5 1856# CHECK: sub r4, r4, r5, asr #5 1857# CHECK: sub r4, r4, r5, ror #5 1858# CHECK: sub r6, r6, r7, lsl r9 1859# CHECK: sub r6, r6, r7, lsr r9 1860# CHECK: sub r6, r6, r7, asr r9 1861# CHECK: sub r6, r6, r7, ror r9 1862 18630x0f 0x4a 0x45 0xe2 18640x06 0x40 0x45 0xe0 18650x86 0x42 0x45 0xe0 18660xa6 0x42 0x45 0xe0 18670xa6 0x42 0x45 0xe0 18680xc6 0x42 0x45 0xe0 18690xe6 0x42 0x45 0xe0 18700x18 0x69 0x47 0xe0 18710x38 0x69 0x47 0xe0 18720x58 0x69 0x47 0xe0 18730x78 0x69 0x47 0xe0 1874 1875 18760x0f 0x5a 0x45 0xe2 18770x05 0x40 0x44 0xe0 18780x85 0x42 0x44 0xe0 18790xa5 0x42 0x44 0xe0 18800xa5 0x42 0x44 0xe0 18810xc5 0x42 0x44 0xe0 18820xe5 0x42 0x44 0xe0 18830x17 0x69 0x46 0xe0 18840x37 0x69 0x46 0xe0 18850x57 0x69 0x46 0xe0 18860x77 0x69 0x46 0xe0 1887 1888 1889#------------------------------------------------------------------------------ 1890# SVC 1891#------------------------------------------------------------------------------ 1892# CHECK: svc #16 1893# CHECK: svc #0 1894# CHECK: svc #16777215 1895 18960x10 0x00 0x00 0xef 18970x00 0x00 0x00 0xef 18980xff 0xff 0xff 0xef 1899 1900 1901#------------------------------------------------------------------------------ 1902# SWP/SWPB 1903#------------------------------------------------------------------------------ 1904# CHECK: swp r1, r2, [r3 1905# CHECK: swp r4, r4, [r6 1906# CHECK: swpb r5, r1, [r9 1907 19080x92 0x10 0x03 0xe1 19090x94 0x40 0x06 0xe1 19100x91 0x50 0x49 0xe1 1911 1912 1913#------------------------------------------------------------------------------ 1914# SXTAB 1915#------------------------------------------------------------------------------ 1916# CHECK: sxtab r2, r3, r4 1917# CHECK: sxtab r4, r5, r6 1918# CHECK: sxtablt r6, r2, r9, ror #8 1919# CHECK: sxtab r5, r1, r4, ror #16 1920# CHECK: sxtab r7, r8, r3, ror #24 1921 19220x74 0x20 0xa3 0xe6 19230x76 0x40 0xa5 0xe6 19240x79 0x64 0xa2 0xb6 19250x74 0x58 0xa1 0xe6 19260x73 0x7c 0xa8 0xe6 1927 1928 1929#------------------------------------------------------------------------------ 1930# SXTAB16 1931#------------------------------------------------------------------------------ 1932# CHECK: sxtab16ge r0, r1, r4 1933# CHECK: sxtab16 r6, r2, r7 1934# CHECK: sxtab16 r3, r5, r8, ror #8 1935# CHECK: sxtab16 r3, r2, r1, ror #16 1936# CHECK: sxtab16eq r1, r2, r3, ror #24 1937 19380x74 0x00 0x81 0xa6 19390x77 0x60 0x82 0xe6 19400x78 0x34 0x85 0xe6 19410x71 0x38 0x82 0xe6 19420x73 0x1c 0x82 0x06 1943 1944#------------------------------------------------------------------------------ 1945# SXTAH 1946#------------------------------------------------------------------------------ 1947# CHECK: sxtah r1, r3, r9 1948# CHECK: sxtahhi r6, r1, r6 1949# CHECK: sxtah r3, r8, r3, ror #8 1950# CHECK: sxtahlo r2, r2, r4, ror #16 1951# CHECK: sxtah r9, r3, r3, ror #24 1952 19530x79 0x10 0xb3 0xe6 19540x76 0x60 0xb1 0x86 19550x73 0x34 0xb8 0xe6 19560x74 0x28 0xb2 0x36 19570x73 0x9c 0xb3 0xe6 1958 1959#------------------------------------------------------------------------------ 1960# SXTB 1961#------------------------------------------------------------------------------ 1962# CHECK: sxtbge r2, r4 1963# CHECK: sxtb r5, r6 1964# CHECK: sxtb r6, r9, ror #8 1965# CHECK: sxtblo r5, r1, ror #16 1966# CHECK: sxtb r8, r3, ror #24 1967 19680x74 0x20 0xaf 0xa6 19690x76 0x50 0xaf 0xe6 19700x79 0x64 0xaf 0xe6 19710x71 0x58 0xaf 0x36 19720x73 0x8c 0xaf 0xe6 1973 1974 1975#------------------------------------------------------------------------------ 1976# SXTB16 1977#------------------------------------------------------------------------------ 1978# CHECK: sxtb16 r1, r4 1979# CHECK: sxtb16 r6, r7 1980# CHECK: sxtb16hs r3, r5, ror #8 1981# CHECK: sxtb16 r3, r1, ror #16 1982# CHECK: sxtb16ge r2, r3, ror #24 1983 19840x74 0x10 0x8f 0xe6 19850x77 0x60 0x8f 0xe6 19860x75 0x34 0x8f 0x26 19870x71 0x38 0x8f 0xe6 19880x73 0x2c 0x8f 0xa6 1989 1990 1991#------------------------------------------------------------------------------ 1992# SXTH 1993#------------------------------------------------------------------------------ 1994# CHECK: sxthne r3, r9 1995# CHECK: sxth r1, r6 1996# CHECK: sxth r3, r8, ror #8 1997# CHECK: sxthle r2, r2, ror #16 1998# CHECK: sxth r9, r3, ror #24 1999 20000x79 0x30 0xbf 0x16 20010x76 0x10 0xbf 0xe6 20020x78 0x34 0xbf 0xe6 20030x72 0x28 0xbf 0xd6 20040x73 0x9c 0xbf 0xe6 2005 2006 2007#------------------------------------------------------------------------------ 2008# FIXME: TBB/TBH 2009#------------------------------------------------------------------------------ 2010 2011 2012#------------------------------------------------------------------------------ 2013# TEQ 2014#------------------------------------------------------------------------------ 2015# CHECK: teq r5, #61440 2016# CHECK: teq r4, r5 2017# CHECK: teq r4, r5, lsl #5 2018# CHECK: teq r4, r5, lsr #5 2019# CHECK: teq r4, r5, lsr #5 2020# CHECK: teq r4, r5, asr #5 2021# CHECK: teq r4, r5, ror #5 2022# CHECK: teq r6, r7, lsl r9 2023# CHECK: teq r6, r7, lsr r9 2024# CHECK: teq r6, r7, asr r9 2025# CHECK: teq r6, r7, ror r9 2026 20270x0f 0x0a 0x35 0xe3 20280x05 0x00 0x34 0xe1 20290x85 0x02 0x34 0xe1 20300xa5 0x02 0x34 0xe1 20310xa5 0x02 0x34 0xe1 20320xc5 0x02 0x34 0xe1 20330xe5 0x02 0x34 0xe1 20340x17 0x09 0x36 0xe1 20350x37 0x09 0x36 0xe1 20360x57 0x09 0x36 0xe1 20370x77 0x09 0x36 0xe1 2038 2039 2040#------------------------------------------------------------------------------ 2041# TST 2042#------------------------------------------------------------------------------ 2043# CHECK: tst r5, #61440 2044# CHECK: tst r4, r5 2045# CHECK: tst r4, r5, lsl #5 2046# CHECK: tst r4, r5, lsr #5 2047# CHECK: tst r4, r5, lsr #5 2048# CHECK: tst r4, r5, asr #5 2049# CHECK: tst r4, r5, ror #5 2050# CHECK: tst r6, r7, lsl r9 2051# CHECK: tst r6, r7, lsr r9 2052# CHECK: tst r6, r7, asr r9 2053# CHECK: tst r6, r7, ror r9 2054 20550x0f 0x0a 0x15 0xe3 20560x05 0x00 0x14 0xe1 20570x85 0x02 0x14 0xe1 20580xa5 0x02 0x14 0xe1 20590xa5 0x02 0x14 0xe1 20600xc5 0x02 0x14 0xe1 20610xe5 0x02 0x14 0xe1 20620x17 0x09 0x16 0xe1 20630x37 0x09 0x16 0xe1 20640x57 0x09 0x16 0xe1 20650x77 0x09 0x16 0xe1 2066 2067 2068#------------------------------------------------------------------------------ 2069# UADD16/UADD8 2070#------------------------------------------------------------------------------ 2071# CHECK: uadd16 r1, r2, r3 2072# CHECK: uadd16gt r1, r2, r3 2073# CHECK: uadd8 r1, r2, r3 2074# CHECK: uadd8le r1, r2, r3 2075 20760x13 0x1f 0x52 0xe6 20770x13 0x1f 0x52 0xc6 20780x93 0x1f 0x52 0xe6 20790x93 0x1f 0x52 0xd6 2080 2081 2082#------------------------------------------------------------------------------ 2083# UASX 2084#------------------------------------------------------------------------------ 2085# CHECK: uasx r9, r12, r0 2086# CHECK: uasxeq r9, r12, r0 2087 20880x30 0x9f 0x5c 0xe6 20890x30 0x9f 0x5c 0x06 2090 2091 2092#------------------------------------------------------------------------------ 2093# UBFX 2094#------------------------------------------------------------------------------ 2095# CHECK: ubfx r4, r5, #16, #1 2096# CHECK: ubfxgt r4, r5, #16, #16 2097 20980x55 0x48 0xe0 0xe7 20990x55 0x48 0xef 0xc7 2100 2101 2102#------------------------------------------------------------------------------ 2103# UHADD16/UHADD8 2104#------------------------------------------------------------------------------ 2105# CHECK: uhadd16 r4, r8, r2 2106# CHECK: uhadd16gt r4, r8, r2 2107# CHECK: uhadd8 r4, r8, r2 2108# CHECK: uhadd8gt r4, r8, r2 2109 21100x12 0x4f 0x78 0xe6 21110x12 0x4f 0x78 0xc6 21120x92 0x4f 0x78 0xe6 21130x92 0x4f 0x78 0xc6 2114 2115 2116#------------------------------------------------------------------------------ 2117# UHASX 2118#------------------------------------------------------------------------------ 2119# CHECK: uhasx r4, r8, r2 2120# CHECK: uhasxgt r4, r8, r2 2121 21220x32 0x4f 0x78 0xe6 21230x32 0x4f 0x78 0xc6 2124 2125 2126#------------------------------------------------------------------------------ 2127# UHSUB16/UHSUB8 2128#------------------------------------------------------------------------------ 2129# CHECK: uhsub16 r4, r8, r2 2130# CHECK: uhsub16gt r4, r8, r2 2131# CHECK: uhsub8 r4, r8, r2 2132# CHECK: uhsub8gt r4, r8, r2 2133 21340x72 0x4f 0x78 0xe6 21350x72 0x4f 0x78 0xc6 21360xf2 0x4f 0x78 0xe6 21370xf2 0x4f 0x78 0xc6 2138 2139 2140#------------------------------------------------------------------------------ 2141# UMAAL 2142#------------------------------------------------------------------------------ 2143# CHECK: umaal r3, r4, r5, r6 2144# CHECK: umaallt r3, r4, r5, r6 2145 21460x95 0x36 0x44 0xe0 21470x95 0x36 0x44 0xb0 2148 2149 2150#------------------------------------------------------------------------------ 2151# UMLAL 2152#------------------------------------------------------------------------------ 2153# CHECK: umlal r2, r4, r6, r8 2154# CHECK: umlalgt r6, r1, r2, r6 2155# CHECK: umlals r2, r9, r2, r3 2156# CHECK: umlalseq r3, r5, r1, r2 2157 21580x96 0x28 0xa4 0xe0 21590x92 0x66 0xa1 0xc0 21600x92 0x23 0xb9 0xe0 21610x91 0x32 0xb5 0x00 2162 2163 2164#------------------------------------------------------------------------------ 2165# UMULL 2166#------------------------------------------------------------------------------ 2167# CHECK: umull r2, r4, r6, r8 2168# CHECK: umullgt r6, r1, r2, r6 2169# CHECK: umulls r2, r9, r2, r3 2170# CHECK: umullseq r3, r5, r1, r2 2171 21720x96 0x28 0x84 0xe0 21730x92 0x66 0x81 0xc0 21740x92 0x23 0x99 0xe0 21750x91 0x32 0x95 0x00 2176 2177 2178#------------------------------------------------------------------------------ 2179# UQADD16/UQADD8 2180#------------------------------------------------------------------------------ 2181# CHECK: uqadd16 r1, r2, r3 2182# CHECK: uqadd16gt r4, r7, r9 2183# CHECK: uqadd8 r3, r4, r8 2184# CHECK: uqadd8le r8, r1, r2 2185 2186 21870x13 0x1f 0x62 0xe6 21880x19 0x4f 0x67 0xc6 21890x98 0x3f 0x64 0xe6 21900x92 0x8f 0x61 0xd6 2191 2192 2193#------------------------------------------------------------------------------ 2194# UQASX 2195#------------------------------------------------------------------------------ 2196# CHECK: uqasx r2, r4, r1 2197# CHECK: uqasxhi r5, r2, r9 2198 21990x31 0x2f 0x64 0xe6 22000x39 0x5f 0x62 0x86 2201 2202 2203#------------------------------------------------------------------------------ 2204# UQSAX 2205#------------------------------------------------------------------------------ 2206# CHECK: uqsax r1, r3, r7 2207# CHECK: uqsax r3, r6, r2 2208 22090x57 0x1f 0x63 0xe6 22100x52 0x3f 0x66 0xe6 2211 2212 2213#------------------------------------------------------------------------------ 2214# UQSUB16/UQSUB8 2215#------------------------------------------------------------------------------ 2216# CHECK: uqsub16 r1, r5, r3 2217# CHECK: uqsub16gt r3, r2, r5 2218# CHECK: uqsub8 r2, r1, r4 2219# CHECK: uqsub8le r4, r6, r9 2220 22210x73 0x1f 0x65 0xe6 22220x75 0x3f 0x62 0xc6 22230xf4 0x2f 0x61 0xe6 22240xf9 0x4f 0x66 0xd6 2225 2226 2227#------------------------------------------------------------------------------ 2228# USADA8/USAD8 2229#------------------------------------------------------------------------------ 2230# CHECK: usad8 r2, r1, r4 2231# CHECK: usad8le r4, r6, r9 2232# CHECK: usada8 r1, r5, r3, r7 2233# CHECK: usada8gt r3, r2, r5, r1 2234 22350x11 0xf4 0x82 0xe7 22360x16 0xf9 0x84 0xd7 22370x15 0x73 0x81 0xe7 22380x12 0x15 0x83 0xc7 2239 2240 2241#------------------------------------------------------------------------------ 2242# USAT 2243#------------------------------------------------------------------------------ 2244 2245# CHECK: usat r8, #1, r10 2246# CHECK: usat r8, #4, r10 2247# CHECK: usat r8, #5, r10, lsl #31 2248# CHECK: usat r8, #31, r10, asr #32 2249# CHECK: usat r8, #16, r10, asr #1 2250 22510x1a 0x80 0xe1 0xe6 22520x1a 0x80 0xe4 0xe6 22530x9a 0x8f 0xe5 0xe6 22540x5a 0x80 0xff 0xe6 22550xda 0x80 0xf0 0xe6 2256 2257#------------------------------------------------------------------------------ 2258# USAT16 2259#------------------------------------------------------------------------------ 2260# CHECK: usat16 r2, #2, r7 2261# CHECK: usat16 r3, #15, r5 2262 22630x37 0x2f 0xe2 0xe6 22640x35 0x3f 0xef 0xe6 2265 2266 2267#------------------------------------------------------------------------------ 2268# USAX 2269#------------------------------------------------------------------------------ 2270# CHECK: usax r2, r3, r4 2271# CHECK: usaxne r2, r3, r4 2272 22730x54 0x2f 0x53 0xe6 22740x54 0x2f 0x53 0x16 2275 2276#------------------------------------------------------------------------------ 2277# USUB16/USUB8 2278#------------------------------------------------------------------------------ 2279# CHECK: usub16 r4, r2, r7 2280# CHECK: usub16hi r1, r1, r3 2281# CHECK: usub8 r1, r8, r5 2282# CHECK: usub8le r9, r2, r3 2283 22840x77 0x4f 0x52 0xe6 22850x73 0x1f 0x51 0x86 22860xf5 0x1f 0x58 0xe6 22870xf3 0x9f 0x52 0xd6 2288 2289 2290#------------------------------------------------------------------------------ 2291# UXTAB 2292#------------------------------------------------------------------------------ 2293# CHECK: uxtab r2, r3, r4 2294# CHECK: uxtab r4, r5, r6 2295# CHECK: uxtablt r6, r2, r9, ror #8 2296# CHECK: uxtab r5, r1, r4, ror #16 2297# CHECK: uxtab r7, r8, r3, ror #24 2298 22990x74 0x20 0xe3 0xe6 23000x76 0x40 0xe5 0xe6 23010x79 0x64 0xe2 0xb6 23020x74 0x58 0xe1 0xe6 23030x73 0x7c 0xe8 0xe6 2304 2305 2306#------------------------------------------------------------------------------ 2307# UXTAB16 2308#------------------------------------------------------------------------------ 2309# CHECK: uxtab16ge r0, r1, r4 2310# CHECK: uxtab16 r6, r2, r7 2311# CHECK: uxtab16 r3, r5, r8, ror #8 2312# CHECK: uxtab16 r3, r2, r1, ror #16 2313# CHECK: uxtab16eq r1, r2, r3, ror #24 2314 23150x74 0x00 0xc1 0xa6 23160x77 0x60 0xc2 0xe6 23170x78 0x34 0xc5 0xe6 23180x71 0x38 0xc2 0xe6 23190x73 0x1c 0xc2 0x06 2320 2321#------------------------------------------------------------------------------ 2322# UXTAH 2323#------------------------------------------------------------------------------ 2324# CHECK: uxtah r1, r3, r9 2325# CHECK: uxtahhi r6, r1, r6 2326# CHECK: uxtah r3, r8, r3, ror #8 2327# CHECK: uxtahlo r2, r2, r4, ror #16 2328# CHECK: uxtah r9, r3, r3, ror #24 2329 23300x79 0x10 0xf3 0xe6 23310x76 0x60 0xf1 0x86 23320x73 0x34 0xf8 0xe6 23330x74 0x28 0xf2 0x36 23340x73 0x9c 0xf3 0xe6 2335 2336#------------------------------------------------------------------------------ 2337# UXTB 2338#------------------------------------------------------------------------------ 2339# CHECK: uxtbge r2, r4 2340# CHECK: uxtb r5, r6 2341# CHECK: uxtb r6, r9, ror #8 2342# CHECK: uxtblo r5, r1, ror #16 2343# CHECK: uxtb r8, r3, ror #24 2344 23450x74 0x20 0xef 0xa6 23460x76 0x50 0xef 0xe6 23470x79 0x64 0xef 0xe6 23480x71 0x58 0xef 0x36 23490x73 0x8c 0xef 0xe6 2350 2351 2352#------------------------------------------------------------------------------ 2353# UXTB16 2354#------------------------------------------------------------------------------ 2355# CHECK: uxtb16 r1, r4 2356# CHECK: uxtb16 r6, r7 2357# CHECK: uxtb16hs r3, r5, ror #8 2358# CHECK: uxtb16 r3, r1, ror #16 2359# CHECK: uxtb16ge r2, r3, ror #24 2360 23610x74 0x10 0xcf 0xe6 23620x77 0x60 0xcf 0xe6 23630x75 0x34 0xcf 0x26 23640x71 0x38 0xcf 0xe6 23650x73 0x2c 0xcf 0xa6 2366 2367 2368#------------------------------------------------------------------------------ 2369# UXTH 2370#------------------------------------------------------------------------------ 2371# CHECK: uxthne r3, r9 2372# CHECK: uxth r1, r6 2373# CHECK: uxth r3, r8, ror #8 2374# CHECK: uxthle r2, r2, ror #16 2375# CHECK: uxth r9, r3, ror #24 2376 23770x79 0x30 0xff 0x16 23780x76 0x10 0xff 0xe6 23790x78 0x34 0xff 0xe6 23800x72 0x28 0xff 0xd6 23810x73 0x9c 0xff 0xe6 2382 2383#------------------------------------------------------------------------------ 2384# WFE/WFI/YIELD 2385#------------------------------------------------------------------------------ 2386# CHECK: wfe 2387# CHECK: wfehi 2388# CHECK: wfi 2389# CHECK: wfilt 2390# CHECK: yield 2391# CHECK: yieldne 2392 23930x02 0xf0 0x20 0xe3 23940x02 0xf0 0x20 0x83 23950x03 0xf0 0x20 0xe3 23960x03 0xf0 0x20 0xb3 23970x01 0xf0 0x20 0xe3 23980x01 0xf0 0x20 0x13 2399