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# CHECK: cpsid af, #17 458# CHECK: cpsie f, #26 459 4600xc0 0x01 0x08 0xf1 4610x0f 0x00 0x02 0xf1 4620xca 0x00 0x0e 0xf1 4630x51 0x01 0x0e 0xf1 4640x5a 0x00 0x0a 0xf1 465 466 467#------------------------------------------------------------------------------ 468# DBG 469#------------------------------------------------------------------------------ 470# CHECK: dbg #0 471# CHECK: dbg #5 472# CHECK: dbg #15 473 4740xf0 0xf0 0x20 0xe3 4750xf5 0xf0 0x20 0xe3 4760xff 0xf0 0x20 0xe3 477 478 479#------------------------------------------------------------------------------ 480# DMB 481#------------------------------------------------------------------------------ 482 483# CHECK: dmb #0x0 484# CHECK: dmb #0x1 485# CHECK: dmb oshst 486# CHECK: dmb osh 487# CHECK: dmb #0x4 488# CHECK: dmb #0x5 489# CHECK: dmb nshst 490# CHECK: dmb nsh 491# CHECK: dmb #0x8 492# CHECK: dmb #0x9 493# CHECK: dmb ishst 494# CHECK: dmb ish 495# CHECK: dmb #0xc 496# CHECK: dmb #0xd 497# CHECK: dmb st 498# CHECK: dmb sy 499 5000x50 0xf0 0x7f 0xf5 5010x51 0xf0 0x7f 0xf5 5020x52 0xf0 0x7f 0xf5 5030x53 0xf0 0x7f 0xf5 5040x54 0xf0 0x7f 0xf5 5050x55 0xf0 0x7f 0xf5 5060x56 0xf0 0x7f 0xf5 5070x57 0xf0 0x7f 0xf5 5080x58 0xf0 0x7f 0xf5 5090x59 0xf0 0x7f 0xf5 5100x5a 0xf0 0x7f 0xf5 5110x5b 0xf0 0x7f 0xf5 5120x5c 0xf0 0x7f 0xf5 5130x5d 0xf0 0x7f 0xf5 5140x5e 0xf0 0x7f 0xf5 5150x5f 0xf0 0x7f 0xf5 516 517#------------------------------------------------------------------------------ 518# DSB 519#------------------------------------------------------------------------------ 520 521# CHECK: dsb #0x0 522# CHECK: dsb #0x1 523# CHECK: dsb oshst 524# CHECK: dsb osh 525# CHECK: dsb #0x4 526# CHECK: dsb #0x5 527# CHECK: dsb nshst 528# CHECK: dsb nsh 529# CHECK: dsb #0x8 530# CHECK: dsb #0x9 531# CHECK: dsb ishst 532# CHECK: dsb ish 533# CHECK: dsb #0xc 534# CHECK: dsb #0xd 535# CHECK: dsb st 536# CHECK: dsb sy 537 5380x40 0xf0 0x7f 0xf5 5390x41 0xf0 0x7f 0xf5 5400x42 0xf0 0x7f 0xf5 5410x43 0xf0 0x7f 0xf5 5420x44 0xf0 0x7f 0xf5 5430x45 0xf0 0x7f 0xf5 5440x46 0xf0 0x7f 0xf5 5450x47 0xf0 0x7f 0xf5 5460x48 0xf0 0x7f 0xf5 5470x49 0xf0 0x7f 0xf5 5480x4a 0xf0 0x7f 0xf5 5490x4b 0xf0 0x7f 0xf5 5500x4c 0xf0 0x7f 0xf5 5510x4d 0xf0 0x7f 0xf5 5520x4e 0xf0 0x7f 0xf5 5530x4f 0xf0 0x7f 0xf5 554 555#------------------------------------------------------------------------------ 556# EOR 557#------------------------------------------------------------------------------ 558# CHECK: eor r4, r5, #61440 559# CHECK: eor r4, r5, r6 560# CHECK: eor r4, r5, r6, lsl #5 561# CHECK: eor r4, r5, r6, lsr #5 562# CHECK: eor r4, r5, r6, lsr #5 563# CHECK: eor r4, r5, r6, asr #5 564# CHECK: eor r4, r5, r6, ror #5 565# CHECK: eor r6, r7, r8, lsl r9 566# CHECK: eor r6, r7, r8, lsr r9 567# CHECK: eor r6, r7, r8, asr r9 568# CHECK: eor r6, r7, r8, ror r9 569# CHECK: eor r4, r5, r6, rrx 570 571# CHECK: eor r5, r5, #61440 572# CHECK: eor r4, r4, r5 573# CHECK: eor r4, r4, r5, lsl #5 574# CHECK: eor r4, r4, r5, lsr #5 575# CHECK: eor r4, r4, r5, lsr #5 576# CHECK: eor r4, r4, r5, asr #5 577# CHECK: eor r4, r4, r5, ror #5 578# CHECK: eor r6, r6, r7, lsl r9 579# CHECK: eor r6, r6, r7, lsr r9 580# CHECK: eor r6, r6, r7, asr r9 581# CHECK: eor r6, r6, r7, ror r9 582# CHECK: eor r4, r4, r5, rrx 583 5840x0f 0x4a 0x25 0xe2 5850x06 0x40 0x25 0xe0 5860x86 0x42 0x25 0xe0 5870xa6 0x42 0x25 0xe0 5880xa6 0x42 0x25 0xe0 5890xc6 0x42 0x25 0xe0 5900xe6 0x42 0x25 0xe0 5910x18 0x69 0x27 0xe0 5920x38 0x69 0x27 0xe0 5930x58 0x69 0x27 0xe0 5940x78 0x69 0x27 0xe0 5950x66 0x40 0x25 0xe0 596 597 5980x0f 0x5a 0x25 0xe2 5990x05 0x40 0x24 0xe0 6000x85 0x42 0x24 0xe0 6010xa5 0x42 0x24 0xe0 6020xa5 0x42 0x24 0xe0 6030xc5 0x42 0x24 0xe0 6040xe5 0x42 0x24 0xe0 6050x17 0x69 0x26 0xe0 6060x37 0x69 0x26 0xe0 6070x57 0x69 0x26 0xe0 6080x77 0x69 0x26 0xe0 6090x65 0x40 0x24 0xe0 610 611 612#------------------------------------------------------------------------------ 613# ISB 614#------------------------------------------------------------------------------ 615# CHECK: isb sy 616# CHECK: isb #0xa 617 6180x6f 0xf0 0x7f 0xf5 6190x6a 0xf0 0x7f 0xf5 620 621 622 623#------------------------------------------------------------------------------ 624# LDM* 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 631 632# CHECK: ldm r2!, {r1, r3, r4, r5, r6, sp} 633# CHECK: ldmib r2!, {r1, r3, r4, r5, r6, sp} 634# CHECK: ldmda r2!, {r1, r3, r4, r5, r6, sp} 635# CHECK: ldmdb r2!, {r1, r3, r4, r5, r6, sp} 636 6370x7a 0x20 0x92 0xe8 6380x7a 0x20 0x92 0xe9 6390x7a 0x20 0x12 0xe8 6400x7a 0x20 0x12 0xe9 641 6420x7a 0x20 0xb2 0xe8 6430x7a 0x20 0xb2 0xe9 6440x7a 0x20 0x32 0xe8 6450x7a 0x20 0x32 0xe9 646 647 648#------------------------------------------------------------------------------ 649# LDREX/LDREXB/LDREXH/LDREXD 650#------------------------------------------------------------------------------ 651# CHECK: ldrexb r3, [r4] 652# CHECK: ldrexh r2, [r5] 653# CHECK: ldrex r1, [r7] 654# CHECK: ldrexd r6, r7, [r8] 655 6560x9f 0x3f 0xd4 0xe1 6570x9f 0x2f 0xf5 0xe1 6580x9f 0x1f 0x97 0xe1 6590x9f 0x6f 0xb8 0xe1 660 661 662#------------------------------------------------------------------------------ 663# FIXME: LSL 664#------------------------------------------------------------------------------ 665#------------------------------------------------------------------------------ 666# FIXME: LSR 667#------------------------------------------------------------------------------ 668 669#------------------------------------------------------------------------------ 670# MCR/MCR2 671#------------------------------------------------------------------------------ 672# CHECK: mcr p7, #1, r5, c1, c1, #4 673# CHECK: mcr2 p7, #1, r5, c1, c1, #4 674 6750x91 0x57 0x21 0xee 6760x91 0x57 0x21 0xfe 677 678#------------------------------------------------------------------------------ 679# MCRR/MCRR2 680#------------------------------------------------------------------------------ 681# CHECK: mcrr p7, #15, r5, r4, c1 682# CHECK: mcrr2 p7, #15, r5, r4, c1 683 6840xf1 0x57 0x44 0xec 6850xf1 0x57 0x44 0xfc 686 687 688#------------------------------------------------------------------------------ 689# MLA 690#------------------------------------------------------------------------------ 691# CHECK: mla r1, r2, r3, r4 692# CHECK: mlas r1, r2, r3, r4 693# CHECK: mlane r1, r2, r3, r4 694# CHECK: mlasne r1, r2, r3, r4 695 6960x92 0x43 0x21 0xe0 6970x92 0x43 0x31 0xe0 6980x92 0x43 0x21 0x10 6990x92 0x43 0x31 0x10 700 701#------------------------------------------------------------------------------ 702# MLS 703#------------------------------------------------------------------------------ 704# CHECK: mls r2, r5, r6, r3 705# CHECK: mlsne r2, r5, r6, r3 706 7070x95 0x36 0x62 0xe0 7080x95 0x36 0x62 0x10 709 710#------------------------------------------------------------------------------ 711# MOV (immediate) 712#------------------------------------------------------------------------------ 713# CHECK: mov r3, #7 714# CHECK: mov r4, #4080 715# CHECK: mov r5, #16711680 716# CHECK: mov sp, #35 717# CHECK: movw r6, #65535 718# CHECK: movw r9, #65535 719# CHECK: movw sp, #1193 720# CHECK: movs r3, #7 721# CHECK: moveq r4, #4080 722# CHECK: movseq r5, #16711680 723 7240x07 0x30 0xa0 0xe3 7250xff 0x4e 0xa0 0xe3 7260xff 0x58 0xa0 0xe3 7270x23 0xd0 0xa0 0xe3 7280xff 0x6f 0x0f 0xe3 7290xff 0x9f 0x0f 0xe3 7300xa9 0xd4 0x00 0xe3 7310x07 0x30 0xb0 0xe3 7320xff 0x4e 0xa0 0x03 7330xff 0x58 0xb0 0x03 734 735#------------------------------------------------------------------------------ 736# MOV (register) 737#------------------------------------------------------------------------------ 738# CHECK: mov r2, r3 739# CHECK: movs r2, r3 740# CHECK: moveq r2, r3 741# CHECK: movseq r2, r3 742 7430x03 0x20 0xa0 0xe1 7440x03 0x20 0xb0 0xe1 7450x03 0x20 0xa0 0x01 7460x03 0x20 0xb0 0x01 747 748#------------------------------------------------------------------------------ 749# MOVT 750#------------------------------------------------------------------------------ 751# CHECK: movt r3, #7 752# CHECK: movt r6, #65535 753# CHECK: movt sp, #3397 754# CHECK: movteq r4, #4080 755 7560x07 0x30 0x40 0xe3 7570xff 0x6f 0x4f 0xe3 7580x45 0xdd 0x40 0xe3 7590xf0 0x4f 0x40 0x03 760 761 762#------------------------------------------------------------------------------ 763# MRC/MRC2 764#------------------------------------------------------------------------------ 765# CHECK: mrc p14, #0, r1, c1, c2, #4 766# CHECK: mrc p15, #7, apsr_nzcv, c15, c6, #6 767# CHECK: mrc2 p14, #0, r1, c1, c2, #4 768# CHECK: mrc2 p9, #7, apsr_nzcv, c15, c0, #1 769 7700x92 0x1e 0x11 0xee 7710xd6 0xff 0xff 0xee 7720x92 0x1e 0x11 0xfe 7730x30 0xf9 0xff 0xfe 774 775#------------------------------------------------------------------------------ 776# MRRC/MRRC2 777#------------------------------------------------------------------------------ 778# CHECK: mrrc p7, #1, r5, r4, c1 779# CHECK: mrrc2 p7, #1, r5, r4, c1 780 7810x11 0x57 0x54 0xec 7820x11 0x57 0x54 0xfc 783 784 785#------------------------------------------------------------------------------ 786# MRS 787#------------------------------------------------------------------------------ 788# CHECK: mrs r8, apsr 789# CHECK: mrs r8, spsr 7900x00 0x80 0x0f 0xe1 7910x00 0x80 0x4f 0xe1 792 793 794 795#------------------------------------------------------------------------------ 796# MSR 797#------------------------------------------------------------------------------ 798 799# CHECK: msr CPSR_fc, #5 800# CHECK: msr APSR_g, #5 801# CHECK: msr APSR_nzcvq, #5 802# CHECK: msr APSR_nzcvq, #5 803# CHECK: msr APSR_nzcvqg, #5 804# CHECK: msr CPSR_fc, #5 805# CHECK: msr CPSR_c, #5 806# CHECK: msr CPSR_x, #5 807# CHECK: msr CPSR_fc, #5 808# CHECK: msr CPSR_fc, #5 809# CHECK: msr CPSR_fsx, #5 810# CHECK: msr SPSR_fc, #5 811# CHECK: msr SPSR_fsxc, #5 812# CHECK: msr CPSR_fsxc, #5 813 8140x05 0xf0 0x29 0xe3 8150x05 0xf0 0x24 0xe3 8160x05 0xf0 0x28 0xe3 8170x05 0xf0 0x28 0xe3 8180x05 0xf0 0x2c 0xe3 8190x05 0xf0 0x29 0xe3 8200x05 0xf0 0x21 0xe3 8210x05 0xf0 0x22 0xe3 8220x05 0xf0 0x29 0xe3 8230x05 0xf0 0x29 0xe3 8240x05 0xf0 0x2e 0xe3 8250x05 0xf0 0x69 0xe3 8260x05 0xf0 0x6f 0xe3 8270x05 0xf0 0x2f 0xe3 828 829# CHECK: msr CPSR_fc, r0 830# CHECK: msr APSR_g, r0 831# CHECK: msr APSR_nzcvq, r0 832# CHECK: msr APSR_nzcvq, r0 833# CHECK: msr APSR_nzcvqg, r0 834# CHECK: msr CPSR_fc, r0 835# CHECK: msr CPSR_c, r0 836# CHECK: msr CPSR_x, r0 837# CHECK: msr CPSR_fc, r0 838# CHECK: msr CPSR_fc, r0 839# CHECK: msr CPSR_fsx, r0 840# CHECK: msr SPSR_fc, r0 841# CHECK: msr SPSR_fsxc, r0 842# CHECK: msr CPSR_fsxc, r0 843 8440x00 0xf0 0x29 0xe1 8450x00 0xf0 0x24 0xe1 8460x00 0xf0 0x28 0xe1 8470x00 0xf0 0x28 0xe1 8480x00 0xf0 0x2c 0xe1 8490x00 0xf0 0x29 0xe1 8500x00 0xf0 0x21 0xe1 8510x00 0xf0 0x22 0xe1 8520x00 0xf0 0x29 0xe1 8530x00 0xf0 0x29 0xe1 8540x00 0xf0 0x2e 0xe1 8550x00 0xf0 0x69 0xe1 8560x00 0xf0 0x6f 0xe1 8570x00 0xf0 0x2f 0xe1 858 859#------------------------------------------------------------------------------ 860# MUL 861#------------------------------------------------------------------------------ 862 863# CHECK: mul r5, r6, r7 864# CHECK: muls r5, r6, r7 865# CHECK: mulgt r5, r6, r7 866# CHECK: mulsle r5, r6, r7 867 8680x96 0x07 0x05 0xe0 8690x96 0x07 0x15 0xe0 8700x96 0x07 0x05 0xc0 8710x96 0x07 0x15 0xd0 872 873 874#------------------------------------------------------------------------------ 875# MVN (immediate) 876#------------------------------------------------------------------------------ 877# CHECK: mvn r3, #7 878# CHECK: mvn r4, #4080 879# CHECK: mvn r5, #16711680 880# CHECK: mvns r3, #7 881# CHECK: mvneq r4, #4080 882# CHECK: mvnseq r5, #16711680 883 8840x07 0x30 0xe0 0xe3 8850xff 0x4e 0xe0 0xe3 8860xff 0x58 0xe0 0xe3 8870x07 0x30 0xf0 0xe3 8880xff 0x4e 0xe0 0x03 8890xff 0x58 0xf0 0x03 890 891 892#------------------------------------------------------------------------------ 893# MVN (register) 894#------------------------------------------------------------------------------ 895# CHECK: mvn r2, r3 896# CHECK: mvns r2, r3 897# CHECK: mvn r5, r6, lsl #19 898# CHECK: mvn r5, r6, lsr #9 899# CHECK: mvn r5, r6, asr #4 900# CHECK: mvn r5, r6, ror #6 901# CHECK: mvn r5, r6, rrx 902# CHECK: mvneq r2, r3 903# CHECK: mvnseq r2, r3, lsl #10 904 9050x03 0x20 0xe0 0xe1 9060x03 0x20 0xf0 0xe1 9070x86 0x59 0xe0 0xe1 9080xa6 0x54 0xe0 0xe1 9090x46 0x52 0xe0 0xe1 9100x66 0x53 0xe0 0xe1 9110x66 0x50 0xe0 0xe1 9120x03 0x20 0xe0 0x01 9130x03 0x25 0xf0 0x01 914 915 916#------------------------------------------------------------------------------ 917# MVN (shifted register) 918#------------------------------------------------------------------------------ 919# CHECK: mvn r5, r6, lsl r7 920# CHECK: mvns r5, r6, lsr r7 921# CHECK: mvngt r5, r6, asr r7 922# CHECK: mvnslt r5, r6, ror r7 923 9240x16 0x57 0xe0 0xe1 9250x36 0x57 0xf0 0xe1 9260x56 0x57 0xe0 0xc1 9270x76 0x57 0xf0 0xb1 928 929#------------------------------------------------------------------------------ 930# NOP 931#------------------------------------------------------------------------------ 932# CHECK: nop 933# CHECK: nopgt 934 9350x00 0xf0 0x20 0xe3 9360x00 0xf0 0x20 0xc3 937 938 939#------------------------------------------------------------------------------ 940# ORR 941#------------------------------------------------------------------------------ 942# CHECK: orr r4, r5, #61440 943# CHECK: orr r4, r5, r6 944# CHECK: orr r4, r5, r6, lsl #5 945# CHECK: orr r4, r5, r6, lsr #5 946# CHECK: orr r4, r5, r6, lsr #5 947# CHECK: orr r4, r5, r6, asr #5 948# CHECK: orr r4, r5, r6, ror #5 949# CHECK: orr r6, r7, r8, lsl r9 950# CHECK: orr r6, r7, r8, lsr r9 951# CHECK: orr r6, r7, r8, asr r9 952# CHECK: orr r6, r7, r8, ror r9 953# CHECK: orr r4, r5, r6, rrx 954 955# CHECK: orr r5, r5, #61440 956# CHECK: orr r4, r4, r5 957# CHECK: orr r4, r4, r5, lsl #5 958# CHECK: orr r4, r4, r5, lsr #5 959# CHECK: orr r4, r4, r5, lsr #5 960# CHECK: orr r4, r4, r5, asr #5 961# CHECK: orr r4, r4, r5, ror #5 962# CHECK: orr r6, r6, r7, lsl r9 963# CHECK: orr r6, r6, r7, lsr r9 964# CHECK: orr r6, r6, r7, asr r9 965# CHECK: orr r6, r6, r7, ror r9 966# CHECK: orr r4, r4, r5, rrx 967 9680x0f 0x4a 0x85 0xe3 9690x06 0x40 0x85 0xe1 9700x86 0x42 0x85 0xe1 9710xa6 0x42 0x85 0xe1 9720xa6 0x42 0x85 0xe1 9730xc6 0x42 0x85 0xe1 9740xe6 0x42 0x85 0xe1 9750x18 0x69 0x87 0xe1 9760x38 0x69 0x87 0xe1 9770x58 0x69 0x87 0xe1 9780x78 0x69 0x87 0xe1 9790x66 0x40 0x85 0xe1 980 9810x0f 0x5a 0x85 0xe3 9820x05 0x40 0x84 0xe1 9830x85 0x42 0x84 0xe1 9840xa5 0x42 0x84 0xe1 9850xa5 0x42 0x84 0xe1 9860xc5 0x42 0x84 0xe1 9870xe5 0x42 0x84 0xe1 9880x17 0x69 0x86 0xe1 9890x37 0x69 0x86 0xe1 9900x57 0x69 0x86 0xe1 9910x77 0x69 0x86 0xe1 9920x65 0x40 0x84 0xe1 993 994# CHECK: orrseq r4, r5, #61440 995# CHECK: orrne r4, r5, r6 996# CHECK: orrseq r4, r5, r6, lsl #5 997# CHECK: orrlo r6, r7, r8, ror r9 998# CHECK: orrshi r4, r5, r6, rrx 999# CHECK: orrhs r5, r5, #61440 1000# CHECK: orrseq r4, r4, r5 1001# CHECK: orrne r6, r6, r7, asr r9 1002# CHECK: orrslt r6, r6, r7, ror r9 1003# CHECK: orrsgt r4, r4, r5, rrx 1004 10050x0f 0x4a 0x95 0x03 10060x06 0x40 0x85 0x11 10070x86 0x42 0x95 0x01 10080x78 0x69 0x87 0x31 10090x66 0x40 0x95 0x81 10100x0f 0x5a 0x85 0x23 10110x05 0x40 0x94 0x01 10120x57 0x69 0x86 0x11 10130x77 0x69 0x96 0xb1 10140x65 0x40 0x94 0xc1 1015 1016#------------------------------------------------------------------------------ 1017# PKH 1018#------------------------------------------------------------------------------ 1019# CHECK: pkhbt r2, r2, r3 1020# CHECK: pkhbt r2, r2, r3, lsl #31 1021# CHECK: pkhbt r2, r2, r3 1022# CHECK: pkhbt r2, r2, r3, lsl #15 1023 1024# CHECK: pkhbt r2, r2, r3 1025# CHECK: pkhtb r2, r2, r3, asr #31 1026# CHECK: pkhtb r2, r2, r3, asr #15 1027 10280x13 0x20 0x82 0xe6 10290x93 0x2f 0x82 0xe6 10300x13 0x20 0x82 0xe6 10310x93 0x27 0x82 0xe6 1032 10330x13 0x20 0x82 0xe6 10340xd3 0x2f 0x82 0xe6 10350xd3 0x27 0x82 0xe6 1036 1037#------------------------------------------------------------------------------ 1038# FIXME: PLD 1039#------------------------------------------------------------------------------ 1040#------------------------------------------------------------------------------ 1041# FIXME: PLI 1042#------------------------------------------------------------------------------ 1043 1044 1045#------------------------------------------------------------------------------ 1046# POP 1047#------------------------------------------------------------------------------ 1048# CHECK: ldr r7, [sp], #4 1049# CHECK: pop {r7, r8, r9, r10} 1050 10510x04 0x70 0x9d 0xe4 10520x80 0x07 0xbd 0xe8 1053 1054 1055#------------------------------------------------------------------------------ 1056# PUSH 1057#------------------------------------------------------------------------------ 1058# CHECK: str r7, [sp, #-4]! 1059# CHECK: push {r7, r8, r9, r10} 1060 10610x04 0x70 0x2d 0xe5 10620x80 0x07 0x2d 0xe9 1063 1064 1065#------------------------------------------------------------------------------ 1066# QADD/QADD16/QADD8 1067#------------------------------------------------------------------------------ 1068# CHECK: qadd r1, r2, r3 1069# CHECK: qaddne r1, r2, r3 1070# CHECK: qadd16 r1, r2, r3 1071# CHECK: qadd16gt r1, r2, r3 1072# CHECK: qadd8 r1, r2, r3 1073# CHECK: qadd8le r1, r2, r3 1074 10750x52 0x10 0x03 0xe1 10760x52 0x10 0x03 0x11 10770x13 0x1f 0x22 0xe6 10780x13 0x1f 0x22 0xc6 10790x93 0x1f 0x22 0xe6 10800x93 0x1f 0x22 0xd6 1081 1082 1083#------------------------------------------------------------------------------ 1084# QDADD/QDSUB 1085#------------------------------------------------------------------------------ 1086# CHECK: qdadd r6, r7, r8 1087# CHECK: qdaddhi r6, r7, r8 1088# CHECK: qdsub r6, r7, r8 1089# CHECK: qdsubhi r6, r7, r8 1090 10910x57 0x60 0x48 0xe1 10920x57 0x60 0x48 0x81 10930x57 0x60 0x68 0xe1 10940x57 0x60 0x68 0x81 1095 1096 1097#------------------------------------------------------------------------------ 1098# QSAX 1099#------------------------------------------------------------------------------ 1100# CHECK: qsax r9, r12, r0 1101# CHECK: qsaxeq r9, r12, r0 1102 11030x50 0x9f 0x2c 0xe6 11040x50 0x9f 0x2c 0x06 1105 1106 1107#------------------------------------------------------------------------------ 1108# QSUB/QSUB16/QSUB8 1109#------------------------------------------------------------------------------ 1110# CHECK: qsub r1, r2, r3 1111# CHECK: qsubne r1, r2, r3 1112# CHECK: qsub16 r1, r2, r3 1113# CHECK: qsub16gt r1, r2, r3 1114# CHECK: qsub8 r1, r2, r3 1115# CHECK: qsub8le r1, r2, r3 1116 11170x52 0x10 0x23 0xe1 11180x52 0x10 0x23 0x11 11190x73 0x1f 0x22 0xe6 11200x73 0x1f 0x22 0xc6 11210xf3 0x1f 0x22 0xe6 11220xf3 0x1f 0x22 0xd6 1123 1124 1125#------------------------------------------------------------------------------ 1126# RBIT 1127#------------------------------------------------------------------------------ 1128# CHECK: rbit r1, r2 1129# CHECK: rbitne r1, r2 1130 11310x32 0x1f 0xff 0xe6 11320x32 0x1f 0xff 0x16 1133 1134 1135#------------------------------------------------------------------------------ 1136# REV/REV16/REVSH 1137#------------------------------------------------------------------------------ 1138# CHECK: rev r1, r9 1139# CHECK: revne r1, r5 1140# CHECK: rev16 r8, r3 1141# CHECK: rev16ne r12, r4 1142# CHECK: revsh r4, r9 1143# CHECK: revshne r9, r1 1144 11450x39 0x1f 0xbf 0xe6 11460x35 0x1f 0xbf 0x16 11470xb3 0x8f 0xbf 0xe6 11480xb4 0xcf 0xbf 0x16 11490xb9 0x4f 0xff 0xe6 11500xb1 0x9f 0xff 0x16 1151 1152 1153#------------------------------------------------------------------------------ 1154# RFE 1155#------------------------------------------------------------------------------ 1156# CHECK: rfeda r2 1157# CHECK: rfedb r3 1158# CHECK: rfeia r5 1159# CHECK: rfeib r6 1160 1161# CHECK: rfeda r4! 1162# CHECK: rfedb r7! 1163# CHECK: rfeia r9! 1164# CHECK: rfeib r8! 1165 1166# CHECK: rfeda r2 1167# CHECK: rfedb r3 1168# CHECK: rfeia r5 1169# CHECK: rfeib r6 1170 1171# CHECK: rfeda r4! 1172# CHECK: rfedb r7! 1173# CHECK: rfeia r9! 1174# CHECK: rfeib r8! 1175 1176# CHECK: rfeia r1 1177# CHECK: rfeia r1! 1178 11790x00 0x0a 0x12 0xf8 11800x00 0x0a 0x13 0xf9 11810x00 0x0a 0x95 0xf8 11820x00 0x0a 0x96 0xf9 1183 11840x00 0x0a 0x34 0xf8 11850x00 0x0a 0x37 0xf9 11860x00 0x0a 0xb9 0xf8 11870x00 0x0a 0xb8 0xf9 1188 11890x00 0x0a 0x12 0xf8 11900x00 0x0a 0x13 0xf9 11910x00 0x0a 0x95 0xf8 11920x00 0x0a 0x96 0xf9 1193 11940x00 0x0a 0x34 0xf8 11950x00 0x0a 0x37 0xf9 11960x00 0x0a 0xb9 0xf8 11970x00 0x0a 0xb8 0xf9 1198 11990x00 0x0a 0x91 0xf8 12000x00 0x0a 0xb1 0xf8 1201 1202 1203#------------------------------------------------------------------------------ 1204# RSB 1205#------------------------------------------------------------------------------ 1206# CHECK: rsb r4, r5, #61440 1207# CHECK: rsb r4, r5, r6 1208# CHECK: rsb r4, r5, r6, lsl #5 1209# CHECK: rsblo r4, r5, r6, lsr #5 1210# CHECK: rsb r4, r5, r6, lsr #5 1211# CHECK: rsb r4, r5, r6, asr #5 1212# CHECK: rsb r4, r5, r6, ror #5 1213# CHECK: rsb r6, r7, r8, lsl r9 1214# CHECK: rsb r6, r7, r8, lsr r9 1215# CHECK: rsb r6, r7, r8, asr r9 1216# CHECK: rsble r6, r7, r8, ror r9 1217# CHECK: rsb r4, r5, r6, rrx 1218 1219# CHECK: rsb r5, r5, #61440 1220# CHECK: rsb r4, r4, r5 1221# CHECK: rsb r4, r4, r5, lsl #5 1222# CHECK: rsb r4, r4, r5, lsr #5 1223# CHECK: rsbne r4, r4, r5, lsr #5 1224# CHECK: rsb r4, r4, r5, asr #5 1225# CHECK: rsb r4, r4, r5, ror #5 1226# CHECK: rsbgt r6, r6, r7, lsl r9 1227# CHECK: rsb r6, r6, r7, lsr r9 1228# CHECK: rsb r6, r6, r7, asr r9 1229# CHECK: rsb r6, r6, r7, ror r9 1230# CHECK: rsb r4, r4, r5, rrx 1231 12320x0f 0x4a 0x65 0xe2 12330x06 0x40 0x65 0xe0 12340x86 0x42 0x65 0xe0 12350xa6 0x42 0x65 0x30 12360xa6 0x42 0x65 0xe0 12370xc6 0x42 0x65 0xe0 12380xe6 0x42 0x65 0xe0 12390x18 0x69 0x67 0xe0 12400x38 0x69 0x67 0xe0 12410x58 0x69 0x67 0xe0 12420x78 0x69 0x67 0xd0 12430x66 0x40 0x65 0xe0 1244 12450x0f 0x5a 0x65 0xe2 12460x05 0x40 0x64 0xe0 12470x85 0x42 0x64 0xe0 12480xa5 0x42 0x64 0xe0 12490xa5 0x42 0x64 0x10 12500xc5 0x42 0x64 0xe0 12510xe5 0x42 0x64 0xe0 12520x17 0x69 0x66 0xc0 12530x37 0x69 0x66 0xe0 12540x57 0x69 0x66 0xe0 12550x77 0x69 0x66 0xe0 12560x65 0x40 0x64 0xe0 1257 1258#------------------------------------------------------------------------------ 1259# RSC 1260#------------------------------------------------------------------------------ 1261# CHECK: rsc r4, r5, #61440 1262# CHECK: rsc r4, r5, r6 1263# CHECK: rsc r4, r5, r6, lsl #5 1264# CHECK: rsclo r4, r5, r6, lsr #5 1265# CHECK: rsc r4, r5, r6, lsr #5 1266# CHECK: rsc r4, r5, r6, asr #5 1267# CHECK: rsc r4, r5, r6, ror #5 1268# CHECK: rsc r6, r7, r8, lsl r9 1269# CHECK: rsc r6, r7, r8, lsr r9 1270# CHECK: rsc r6, r7, r8, asr r9 1271# CHECK: rscle r6, r7, r8, ror r9 1272 1273# CHECK: rsc r5, r5, #61440 1274# CHECK: rsc r4, r4, r5 1275# CHECK: rsc r4, r4, r5, lsl #5 1276# CHECK: rsc r4, r4, r5, lsr #5 1277# CHECK: rscne r4, r4, r5, lsr #5 1278# CHECK: rsc r4, r4, r5, asr #5 1279# CHECK: rsc r4, r4, r5, ror #5 1280# CHECK: rscgt r6, r6, r7, lsl r9 1281# CHECK: rsc r6, r6, r7, lsr r9 1282# CHECK: rsc r6, r6, r7, asr r9 1283# CHECK: rsc r6, r6, r7, ror r9 1284 12850x0f 0x4a 0xe5 0xe2 12860x06 0x40 0xe5 0xe0 12870x86 0x42 0xe5 0xe0 12880xa6 0x42 0xe5 0x30 12890xa6 0x42 0xe5 0xe0 12900xc6 0x42 0xe5 0xe0 12910xe6 0x42 0xe5 0xe0 12920x18 0x69 0xe7 0xe0 12930x38 0x69 0xe7 0xe0 12940x58 0x69 0xe7 0xe0 12950x78 0x69 0xe7 0xd0 1296 12970x0f 0x5a 0xe5 0xe2 12980x05 0x40 0xe4 0xe0 12990x85 0x42 0xe4 0xe0 13000xa5 0x42 0xe4 0xe0 13010xa5 0x42 0xe4 0x10 13020xc5 0x42 0xe4 0xe0 13030xe5 0x42 0xe4 0xe0 13040x17 0x69 0xe6 0xc0 13050x37 0x69 0xe6 0xe0 13060x57 0x69 0xe6 0xe0 13070x77 0x69 0xe6 0xe0 1308 1309#------------------------------------------------------------------------------ 1310# RRX/RRXS 1311#------------------------------------------------------------------------------ 1312# CHECK: rrx r0, r1 1313# CHECK: rrx sp, pc 1314# CHECK: rrx pc, lr 1315# CHECK: rrx lr, sp 1316 13170x61 0x00 0xa0 0xe1 13180x6f 0xd0 0xa0 0xe1 13190x6e 0xf0 0xa0 0xe1 13200x6d 0xe0 0xa0 0xe1 1321 1322# CHECK: rrxs r0, r1 1323# CHECK: rrxs sp, pc 1324# CHECK: rrxs pc, lr 1325# CHECK: rrxs lr, sp 1326 13270x61 0x00 0xb0 0xe1 13280x6f 0xd0 0xb0 0xe1 13290x6e 0xf0 0xb0 0xe1 13300x6d 0xe0 0xb0 0xe1 1331 1332#------------------------------------------------------------------------------ 1333# SADD16/SADD8 1334#------------------------------------------------------------------------------ 1335# CHECK: sadd16 r1, r2, r3 1336# CHECK: sadd16gt r1, r2, r3 1337# CHECK: sadd8 r1, r2, r3 1338# CHECK: sadd8le r1, r2, r3 1339 13400x13 0x1f 0x12 0xe6 13410x13 0x1f 0x12 0xc6 13420x93 0x1f 0x12 0xe6 13430x93 0x1f 0x12 0xd6 1344 1345 1346#------------------------------------------------------------------------------ 1347# SASX 1348#------------------------------------------------------------------------------ 1349# CHECK: sasx r9, r12, r0 1350# CHECK: sasxeq r9, r12, r0 1351 13520x30 0x9f 0x1c 0xe6 13530x30 0x9f 0x1c 0x06 1354 1355 1356#------------------------------------------------------------------------------ 1357# SBC 1358#------------------------------------------------------------------------------ 1359# CHECK: sbc r4, r5, #61440 1360# CHECK: sbc r4, r5, r6 1361# CHECK: sbc r4, r5, r6, lsl #5 1362# CHECK: sbc r4, r5, r6, lsr #5 1363# CHECK: sbc r4, r5, r6, lsr #5 1364# CHECK: sbc r4, r5, r6, asr #5 1365# CHECK: sbc r4, r5, r6, ror #5 1366# CHECK: sbc r6, r7, r8, lsl r9 1367# CHECK: sbc r6, r7, r8, lsr r9 1368# CHECK: sbc r6, r7, r8, asr r9 1369# CHECK: sbc r6, r7, r8, ror r9 1370 1371# CHECK: sbc r5, r5, #61440 1372# CHECK: sbc r4, r4, r5 1373# CHECK: sbc r4, r4, r5, lsl #5 1374# CHECK: sbc r4, r4, r5, lsr #5 1375# CHECK: sbc r4, r4, r5, lsr #5 1376# CHECK: sbc r4, r4, r5, asr #5 1377# CHECK: sbc r4, r4, r5, ror #5 1378# CHECK: sbc r6, r6, r7, lsl r9 1379# CHECK: sbc r6, r6, r7, lsr r9 1380# CHECK: sbc r6, r6, r7, asr r9 1381# CHECK: sbc r6, r6, r7, ror r9 1382 13830x0f 0x4a 0xc5 0xe2 13840x06 0x40 0xc5 0xe0 13850x86 0x42 0xc5 0xe0 13860xa6 0x42 0xc5 0xe0 13870xa6 0x42 0xc5 0xe0 13880xc6 0x42 0xc5 0xe0 13890xe6 0x42 0xc5 0xe0 13900x18 0x69 0xc7 0xe0 13910x38 0x69 0xc7 0xe0 13920x58 0x69 0xc7 0xe0 13930x78 0x69 0xc7 0xe0 1394 13950x0f 0x5a 0xc5 0xe2 13960x05 0x40 0xc4 0xe0 13970x85 0x42 0xc4 0xe0 13980xa5 0x42 0xc4 0xe0 13990xa5 0x42 0xc4 0xe0 14000xc5 0x42 0xc4 0xe0 14010xe5 0x42 0xc4 0xe0 14020x17 0x69 0xc6 0xe0 14030x37 0x69 0xc6 0xe0 14040x57 0x69 0xc6 0xe0 14050x77 0x69 0xc6 0xe0 1406 1407 1408#------------------------------------------------------------------------------ 1409# SBFX 1410#------------------------------------------------------------------------------ 1411# CHECK: sbfx r4, r5, #16, #1 1412# CHECK: sbfxgt r4, r5, #16, #16 1413 14140x55 0x48 0xa0 0xe7 14150x55 0x48 0xaf 0xc7 1416 1417 1418#------------------------------------------------------------------------------ 1419# SEL 1420#------------------------------------------------------------------------------ 1421# CHECK: sel r9, r2, r1 1422# CHECK: selne r9, r2, r1 1423 14240xb1 0x9f 0x82 0xe6 14250xb1 0x9f 0x82 0x16 1426 1427 1428#------------------------------------------------------------------------------ 1429# SETEND 1430#------------------------------------------------------------------------------ 1431# CHECK: setend be 1432# CHECK: setend le 1433 14340x00 0x02 0x01 0xf1 14350x00 0x00 0x01 0xf1 1436 1437#------------------------------------------------------------------------------ 1438# SEV 1439#------------------------------------------------------------------------------ 1440# CHECK: sev 1441# CHECK: seveq 1442 14430x04 0xf0 0x20 0xe3 14440x04 0xf0 0x20 0x03 1445 1446#------------------------------------------------------------------------------ 1447# SHADD16/SHADD8 1448#------------------------------------------------------------------------------ 1449# CHECK: shadd16 r4, r8, r2 1450# CHECK: shadd16gt r4, r8, r2 1451# CHECK: shadd8 r4, r8, r2 1452# CHECK: shadd8gt r4, r8, r2 1453 14540x12 0x4f 0x38 0xe6 14550x12 0x4f 0x38 0xc6 14560x92 0x4f 0x38 0xe6 14570x92 0x4f 0x38 0xc6 1458 1459 1460#------------------------------------------------------------------------------ 1461# SHASX 1462#------------------------------------------------------------------------------ 1463# CHECK: shasx r4, r8, r2 1464# CHECK: shasxgt r4, r8, r2 1465 14660x32 0x4f 0x38 0xe6 14670x32 0x4f 0x38 0xc6 1468 1469 1470#------------------------------------------------------------------------------ 1471# SHSUB16/SHSUB8 1472#------------------------------------------------------------------------------ 1473# CHECK: shsub16 r4, r8, r2 1474# CHECK: shsub16gt r4, r8, r2 1475# CHECK: shsub8 r4, r8, r2 1476# CHECK: shsub8gt r4, r8, r2 1477 14780x72 0x4f 0x38 0xe6 14790x72 0x4f 0x38 0xc6 14800xf2 0x4f 0x38 0xe6 14810xf2 0x4f 0x38 0xc6 1482 1483#------------------------------------------------------------------------------ 1484# SMLABB/SMLABT/SMLATB/SMLATT 1485#------------------------------------------------------------------------------ 1486# CHECK: smlabb r3, r1, r9, r0 1487# CHECK: smlabt r5, r6, r4, r1 1488# CHECK: smlatb r4, r2, r3, r2 1489# CHECK: smlatt r8, r3, r8, r4 1490# CHECK: smlabbge r3, r1, r9, r0 1491# CHECK: smlabtle r5, r6, r4, r1 1492# CHECK: smlatbne r4, r2, r3, r2 1493# CHECK: smlatteq r8, r3, r8, r4 1494 14950x81 0x09 0x03 0xe1 14960xc6 0x14 0x05 0xe1 14970xa2 0x23 0x04 0xe1 14980xe3 0x48 0x08 0xe1 14990x81 0x09 0x03 0xa1 15000xc6 0x14 0x05 0xd1 15010xa2 0x23 0x04 0x11 15020xe3 0x48 0x08 0x01 1503 1504#------------------------------------------------------------------------------ 1505# SMLAD/SMLADX 1506#------------------------------------------------------------------------------ 1507# CHECK: smlad r2, r3, r5, r8 1508# CHECK: smladx r2, r3, r5, r8 1509# CHECK: smladeq r2, r3, r5, r8 1510# CHECK: smladxhi r2, r3, r5, r8 1511 15120x13 0x85 0x02 0xe7 15130x33 0x85 0x02 0xe7 15140x13 0x85 0x02 0x07 15150x33 0x85 0x02 0x87 1516 1517 1518#------------------------------------------------------------------------------ 1519# SMLAL 1520#------------------------------------------------------------------------------ 1521# CHECK: smlal r2, r3, r5, r8 1522# CHECK: smlals r2, r3, r5, r8 1523# CHECK: smlaleq r2, r3, r5, r8 1524# CHECK: smlalshi r2, r3, r5, r8 1525 15260x95 0x28 0xe3 0xe0 15270x95 0x28 0xf3 0xe0 15280x95 0x28 0xe3 0x00 15290x95 0x28 0xf3 0x80 1530 1531 1532#------------------------------------------------------------------------------ 1533# SMLALBB/SMLALBT/SMLALTB/SMLALTT 1534#------------------------------------------------------------------------------ 1535# CHECK: smlalbb r3, r1, r9, r0 1536# CHECK: smlalbt r5, r6, r4, r1 1537# CHECK: smlaltb r4, r2, r3, r2 1538# CHECK: smlaltt r8, r3, r8, r4 1539# CHECK: smlalbbge r3, r1, r9, r0 1540# CHECK: smlalbtle r5, r6, r4, r1 1541# CHECK: smlaltbne r4, r2, r3, r2 1542# CHECK: smlaltteq r8, r3, r8, r4 1543 15440x89 0x30 0x41 0xe1 15450xc4 0x51 0x46 0xe1 15460xa3 0x42 0x42 0xe1 15470xe8 0x84 0x43 0xe1 15480x89 0x30 0x41 0xa1 15490xc4 0x51 0x46 0xd1 15500xa3 0x42 0x42 0x11 15510xe8 0x84 0x43 0x01 1552 1553 1554#------------------------------------------------------------------------------ 1555# SMLALD/SMLALDX 1556#------------------------------------------------------------------------------ 1557# CHECK: smlald r2, r3, r5, r8 1558# CHECK: smlaldx r2, r3, r5, r8 1559# CHECK: smlaldeq r2, r3, r5, r8 1560# CHECK: smlaldxhi r2, r3, r5, r8 1561 15620x15 0x28 0x43 0xe7 15630x35 0x28 0x43 0xe7 15640x15 0x28 0x43 0x07 15650x35 0x28 0x43 0x87 1566 1567 1568#------------------------------------------------------------------------------ 1569# SMLAWB/SMLAWT 1570#------------------------------------------------------------------------------ 1571# CHECK: smlawb r2, r3, r10, r8 1572# CHECK: smlawt r8, r3, r5, r9 1573# CHECK: smlawbeq r2, r7, r5, r8 1574# CHECK: smlawthi r1, r3, r0, r8 1575 15760x83 0x8a 0x22 0xe1 15770xc3 0x95 0x28 0xe1 15780x87 0x85 0x22 0x01 15790xc3 0x80 0x21 0x81 1580 1581 1582#------------------------------------------------------------------------------ 1583# SMLSD/SMLSDX 1584#------------------------------------------------------------------------------ 1585# CHECK: smlsd r2, r3, r5, r8 1586# CHECK: smlsdx r2, r3, r5, r8 1587# CHECK: smlsdeq r2, r3, r5, r8 1588# CHECK: smlsdxhi r2, r3, r5, r8 1589 15900x53 0x85 0x02 0xe7 15910x73 0x85 0x02 0xe7 15920x53 0x85 0x02 0x07 15930x73 0x85 0x02 0x87 1594 1595 1596#------------------------------------------------------------------------------ 1597# SMLSLD/SMLSLDX 1598#------------------------------------------------------------------------------ 1599# CHECK: smlsld r2, r9, r5, r1 1600# CHECK: smlsldx r4, r11, r2, r8 1601# CHECK: smlsldeq r8, r2, r5, r6 1602# CHECK: smlsldxhi r1, r0, r3, r8 1603 16040x55 0x21 0x49 0xe7 16050x72 0x48 0x4b 0xe7 16060x55 0x86 0x42 0x07 16070x73 0x18 0x40 0x87 1608 1609 1610#------------------------------------------------------------------------------ 1611# SMMLA/SMMLAR 1612#------------------------------------------------------------------------------ 1613# CHECK: smmla r1, r2, r3, r4 1614# CHECK: smmlar r4, r3, r2, r1 1615# CHECK: smmlalo r1, r2, r3, r4 1616# CHECK: smmlarhs r4, r3, r2, r1 1617 16180x12 0x43 0x51 0xe7 16190x33 0x12 0x54 0xe7 16200x12 0x43 0x51 0x37 16210x33 0x12 0x54 0x27 1622 1623 1624#------------------------------------------------------------------------------ 1625# SMMLS/SMMLSR 1626#------------------------------------------------------------------------------ 1627# CHECK: smmls r1, r2, r3, r4 1628# CHECK: smmlsr r4, r3, r2, r1 1629# CHECK: smmlslo r1, r2, r3, r4 1630# CHECK: smmlsrhs r4, r3, r2, r1 1631 16320xd2 0x43 0x51 0xe7 16330xf3 0x12 0x54 0xe7 16340xd2 0x43 0x51 0x37 16350xf3 0x12 0x54 0x27 1636 1637 1638#------------------------------------------------------------------------------ 1639# SMMUL/SMMULR 1640#------------------------------------------------------------------------------ 1641# CHECK: smmul r2, r3, r4 1642# CHECK: smmulr r3, r2, r1 1643# CHECK: smmullo r2, r3, r4 1644# CHECK: smmulrhs r3, r2, r1 1645 16460x13 0xf4 0x52 0xe7 16470x32 0xf1 0x53 0xe7 16480x13 0xf4 0x52 0x37 16490x32 0xf1 0x53 0x27 1650 1651 1652#------------------------------------------------------------------------------ 1653# SMUAD/SMUADX 1654#------------------------------------------------------------------------------ 1655# CHECK: smuad r2, r3, r4 1656# CHECK: smuadx r3, r2, r1 1657# CHECK: smuadlt r2, r3, r4 1658# CHECK: smuadxge r3, r2, r1 1659 16600x13 0xf4 0x02 0xe7 16610x32 0xf1 0x03 0xe7 16620x13 0xf4 0x02 0xb7 16630x32 0xf1 0x03 0xa7 1664 1665 1666#------------------------------------------------------------------------------ 1667# SMULBB/SMLALBT/SMLALTB/SMLALTT 1668#------------------------------------------------------------------------------ 1669# CHECK: smulbb r3, r9, r0 1670# CHECK: smulbt r5, r4, r1 1671# CHECK: smultb r4, r2, r2 1672# CHECK: smultt r8, r3, r4 1673# CHECK: smulbbge r1, r9, r0 1674# CHECK: smulbtle r5, r6, r4 1675# CHECK: smultbne r2, r3, r2 1676# CHECK: smultteq r8, r3, r4 1677 16780x89 0x00 0x63 0xe1 16790xc4 0x01 0x65 0xe1 16800xa2 0x02 0x64 0xe1 16810xe3 0x04 0x68 0xe1 16820x89 0x00 0x61 0xa1 16830xc6 0x04 0x65 0xd1 16840xa3 0x02 0x62 0x11 16850xe3 0x04 0x68 0x01 1686 1687 1688#------------------------------------------------------------------------------ 1689# SMULL 1690#------------------------------------------------------------------------------ 1691# CHECK: smull r3, r9, r0, r1 1692# CHECK: smulls r3, r9, r0, r2 1693# CHECK: smulleq r8, r3, r4, r5 1694# CHECK: smullseq r8, r3, r4, r3 1695 16960x90 0x31 0xc9 0xe0 16970x90 0x32 0xd9 0xe0 16980x94 0x85 0xc3 0x00 16990x94 0x83 0xd3 0x00 1700 1701 1702#------------------------------------------------------------------------------ 1703# SMULWB/SMULWT 1704#------------------------------------------------------------------------------ 1705# CHECK: smulwb r3, r9, r0 1706# CHECK: smulwt r3, r9, r2 1707 17080xa9 0x00 0x23 0xe1 17090xe9 0x02 0x23 0xe1 1710 1711 1712#------------------------------------------------------------------------------ 1713# SMUSD/SMUSDX 1714#------------------------------------------------------------------------------ 1715# CHECK: smusd r3, r0, r1 1716# CHECK: smusdx r3, r9, r2 1717# CHECK: smusdeq r8, r3, r2 1718# CHECK: smusdxne r7, r4, r3 1719 17200x50 0xf1 0x03 0xe7 17210x79 0xf2 0x03 0xe7 17220x53 0xf2 0x08 0x07 17230x74 0xf3 0x07 0x17 1724 1725 1726#------------------------------------------------------------------------------ 1727# SRS 1728#------------------------------------------------------------------------------ 1729# CHECK: srsda sp, #5 1730# CHECK: srsdb sp, #1 1731# CHECK: srsia sp, #0 1732# CHECK: srsib sp, #15 1733 1734# CHECK: srsda sp!, #31 1735# CHECK: srsdb sp!, #19 1736# CHECK: srsia sp!, #2 1737# CHECK: srsib sp!, #14 1738 1739# CHECK: srsda sp, #11 1740# CHECK: srsdb sp, #10 1741# CHECK: srsia sp, #9 1742# CHECK: srsib sp, #5 1743 1744# CHECK: srsda sp!, #5 1745# CHECK: srsdb sp!, #5 1746# CHECK: srsia sp!, #5 1747# CHECK: srsib sp!, #5 1748 1749# CHECK: srsia sp, #5 1750# CHECK: srsia sp!, #5 1751 17520x05 0x05 0x4d 0xf8 17530x01 0x05 0x4d 0xf9 17540x00 0x05 0xcd 0xf8 17550x0f 0x05 0xcd 0xf9 1756 17570x1f 0x05 0x6d 0xf8 17580x13 0x05 0x6d 0xf9 17590x02 0x05 0xed 0xf8 17600x0e 0x05 0xed 0xf9 1761 17620x0b 0x05 0x4d 0xf8 17630x0a 0x05 0x4d 0xf9 17640x09 0x05 0xcd 0xf8 17650x05 0x05 0xcd 0xf9 1766 17670x05 0x05 0x6d 0xf8 17680x05 0x05 0x6d 0xf9 17690x05 0x05 0xed 0xf8 17700x05 0x05 0xed 0xf9 1771 17720x05 0x05 0xcd 0xf8 17730x05 0x05 0xed 0xf8 1774 1775 1776#------------------------------------------------------------------------------ 1777# SSAT 1778#------------------------------------------------------------------------------ 1779# CHECK: ssat r8, #1, r10 1780# CHECK: ssat r8, #1, r10, lsl #31 1781# CHECK: ssat r8, #1, r10, asr #32 1782# CHECK: ssat r8, #1, r10, asr #1 1783 17840x1a 0x80 0xa0 0xe6 17850x9a 0x8f 0xa0 0xe6 17860x5a 0x80 0xa0 0xe6 17870xda 0x80 0xa0 0xe6 1788 1789 1790#------------------------------------------------------------------------------ 1791# SSAT16 1792#------------------------------------------------------------------------------ 1793# CHECK: ssat16 r2, #1, r7 1794# CHECK: ssat16 r3, #16, r5 1795 17960x37 0x2f 0xa0 0xe6 17970x35 0x3f 0xaf 0xe6 1798 1799 1800#------------------------------------------------------------------------------ 1801# SSAX 1802#------------------------------------------------------------------------------ 1803# CHECK: ssax r2, r3, r4 1804# CHECK: ssaxlt r2, r3, r4 1805 18060x54 0x2f 0x13 0xe6 18070x54 0x2f 0x13 0xb6 1808 1809#------------------------------------------------------------------------------ 1810# SSUB16/SSUB8 1811#------------------------------------------------------------------------------ 1812# CHECK: ssub16 r1, r0, r6 1813# CHECK: ssub16ne r5, r3, r2 1814# CHECK: ssub8 r9, r2, r4 1815# CHECK: ssub8eq r5, r1, r2 1816 18170x76 0x1f 0x10 0xe6 18180x72 0x5f 0x13 0x16 18190xf4 0x9f 0x12 0xe6 18200xf2 0x5f 0x11 0x06 1821 1822 1823#------------------------------------------------------------------------------ 1824# STM* 1825#------------------------------------------------------------------------------ 1826# CHECK: stm r2, {r1, r3, r4, r5, r6, sp} 1827# CHECK: stm r3, {r1, r3, r4, r5, r6, lr} 1828# CHECK: stmib r4, {r1, r3, r4, r5, r6, sp} 1829# CHECK: stmda r5, {r1, r3, r4, r5, r6, sp} 1830# CHECK: stmdb r6, {r1, r3, r4, r5, r6, r8} 1831# CHECK: stmdb sp, {r1, r3, r4, r5, r6, sp} 1832 1833 1834# CHECK: stm r8!, {r1, r3, r4, r5, r6, sp} 1835# CHECK: stmib r9!, {r1, r3, r4, r5, r6, sp} 1836# CHECK: stmda sp!, {r1, r3, r4, r5, r6} 1837# CHECK: stmdb r0!, {r1, r5, r7, sp} 1838 18390x7a 0x20 0x82 0xe8 18400x7a 0x40 0x83 0xe8 18410x7a 0x20 0x84 0xe9 18420x7a 0x20 0x05 0xe8 18430x7a 0x01 0x06 0xe9 18440x7a 0x20 0x0d 0xe9 1845 18460x7a 0x20 0xa8 0xe8 18470x7a 0x20 0xa9 0xe9 18480x7a 0x00 0x2d 0xe8 18490xa2 0x20 0x20 0xe9 1850 1851 1852#------------------------------------------------------------------------------ 1853# STREX/STREXB/STREXH/STREXD 1854#------------------------------------------------------------------------------ 1855# CHECK: strexb r1, r3, [r4 1856# CHECK: strexh r4, r2, [r5 1857# CHECK: strex r2, r1, [r7 1858# CHECK: strexd r6, r2, r3, [r8 1859# CHECK: strexd sp, r0, r1, [r0] 1860 18610x93 0x1f 0xc4 0xe1 18620x92 0x4f 0xe5 0xe1 18630x91 0x2f 0x87 0xe1 18640x92 0x6f 0xa8 0xe1 18650x90 0xdf 0xa0 0xe1 1866 1867#------------------------------------------------------------------------------ 1868# SUB 1869#------------------------------------------------------------------------------ 1870# CHECK: sub r4, r5, #61440 1871# CHECK: sub r4, r5, r6 1872# CHECK: sub r4, r5, r6, lsl #5 1873# CHECK: sub r4, r5, r6, lsr #5 1874# CHECK: sub r4, r5, r6, lsr #5 1875# CHECK: sub r4, r5, r6, asr #5 1876# CHECK: sub r4, r5, r6, ror #5 1877# CHECK: sub r6, r7, r8, lsl r9 1878# CHECK: sub r6, r7, r8, lsr r9 1879# CHECK: sub r6, r7, r8, asr r9 1880# CHECK: sub r6, r7, r8, ror r9 1881 1882# CHECK: sub r5, r5, #61440 1883# CHECK: sub r4, r4, r5 1884# CHECK: sub r4, r4, r5, lsl #5 1885# CHECK: sub r4, r4, r5, lsr #5 1886# CHECK: sub r4, r4, r5, lsr #5 1887# CHECK: sub r4, r4, r5, asr #5 1888# CHECK: sub r4, r4, r5, ror #5 1889# CHECK: sub r6, r6, r7, lsl r9 1890# CHECK: sub r6, r6, r7, lsr r9 1891# CHECK: sub r6, r6, r7, asr r9 1892# CHECK: sub r6, r6, r7, ror r9 1893 18940x0f 0x4a 0x45 0xe2 18950x06 0x40 0x45 0xe0 18960x86 0x42 0x45 0xe0 18970xa6 0x42 0x45 0xe0 18980xa6 0x42 0x45 0xe0 18990xc6 0x42 0x45 0xe0 19000xe6 0x42 0x45 0xe0 19010x18 0x69 0x47 0xe0 19020x38 0x69 0x47 0xe0 19030x58 0x69 0x47 0xe0 19040x78 0x69 0x47 0xe0 1905 1906 19070x0f 0x5a 0x45 0xe2 19080x05 0x40 0x44 0xe0 19090x85 0x42 0x44 0xe0 19100xa5 0x42 0x44 0xe0 19110xa5 0x42 0x44 0xe0 19120xc5 0x42 0x44 0xe0 19130xe5 0x42 0x44 0xe0 19140x17 0x69 0x46 0xe0 19150x37 0x69 0x46 0xe0 19160x57 0x69 0x46 0xe0 19170x77 0x69 0x46 0xe0 1918 1919 1920#------------------------------------------------------------------------------ 1921# SVC 1922#------------------------------------------------------------------------------ 1923# CHECK: svc #16 1924# CHECK: svc #0 1925# CHECK: svc #16777215 1926 19270x10 0x00 0x00 0xef 19280x00 0x00 0x00 0xef 19290xff 0xff 0xff 0xef 1930 1931 1932#------------------------------------------------------------------------------ 1933# SWP/SWPB 1934#------------------------------------------------------------------------------ 1935# CHECK: swp r1, r2, [r3 1936# CHECK: swp r4, r4, [r6 1937# CHECK: swpb r5, r1, [r9 1938 19390x92 0x10 0x03 0xe1 19400x94 0x40 0x06 0xe1 19410x91 0x50 0x49 0xe1 1942 1943 1944#------------------------------------------------------------------------------ 1945# SXTAB 1946#------------------------------------------------------------------------------ 1947# CHECK: sxtab r2, r3, r4 1948# CHECK: sxtab r4, r5, r6 1949# CHECK: sxtablt r6, r2, r9, ror #8 1950# CHECK: sxtab r5, r1, r4, ror #16 1951# CHECK: sxtab r7, r8, r3, ror #24 1952 19530x74 0x20 0xa3 0xe6 19540x76 0x40 0xa5 0xe6 19550x79 0x64 0xa2 0xb6 19560x74 0x58 0xa1 0xe6 19570x73 0x7c 0xa8 0xe6 1958 1959 1960#------------------------------------------------------------------------------ 1961# SXTAB16 1962#------------------------------------------------------------------------------ 1963# CHECK: sxtab16ge r0, r1, r4 1964# CHECK: sxtab16 r6, r2, r7 1965# CHECK: sxtab16 r3, r5, r8, ror #8 1966# CHECK: sxtab16 r3, r2, r1, ror #16 1967# CHECK: sxtab16eq r1, r2, r3, ror #24 1968 19690x74 0x00 0x81 0xa6 19700x77 0x60 0x82 0xe6 19710x78 0x34 0x85 0xe6 19720x71 0x38 0x82 0xe6 19730x73 0x1c 0x82 0x06 1974 1975#------------------------------------------------------------------------------ 1976# SXTAH 1977#------------------------------------------------------------------------------ 1978# CHECK: sxtah r1, r3, r9 1979# CHECK: sxtahhi r6, r1, r6 1980# CHECK: sxtah r3, r8, r3, ror #8 1981# CHECK: sxtahlo r2, r2, r4, ror #16 1982# CHECK: sxtah r9, r3, r3, ror #24 1983 19840x79 0x10 0xb3 0xe6 19850x76 0x60 0xb1 0x86 19860x73 0x34 0xb8 0xe6 19870x74 0x28 0xb2 0x36 19880x73 0x9c 0xb3 0xe6 1989 1990#------------------------------------------------------------------------------ 1991# SXTB 1992#------------------------------------------------------------------------------ 1993# CHECK: sxtbge r2, r4 1994# CHECK: sxtb r5, r6 1995# CHECK: sxtb r6, r9, ror #8 1996# CHECK: sxtblo r5, r1, ror #16 1997# CHECK: sxtb r8, r3, ror #24 1998 19990x74 0x20 0xaf 0xa6 20000x76 0x50 0xaf 0xe6 20010x79 0x64 0xaf 0xe6 20020x71 0x58 0xaf 0x36 20030x73 0x8c 0xaf 0xe6 2004 2005 2006#------------------------------------------------------------------------------ 2007# SXTB16 2008#------------------------------------------------------------------------------ 2009# CHECK: sxtb16 r1, r4 2010# CHECK: sxtb16 r6, r7 2011# CHECK: sxtb16hs r3, r5, ror #8 2012# CHECK: sxtb16 r3, r1, ror #16 2013# CHECK: sxtb16ge r2, r3, ror #24 2014 20150x74 0x10 0x8f 0xe6 20160x77 0x60 0x8f 0xe6 20170x75 0x34 0x8f 0x26 20180x71 0x38 0x8f 0xe6 20190x73 0x2c 0x8f 0xa6 2020 2021 2022#------------------------------------------------------------------------------ 2023# SXTH 2024#------------------------------------------------------------------------------ 2025# CHECK: sxthne r3, r9 2026# CHECK: sxth r1, r6 2027# CHECK: sxth r3, r8, ror #8 2028# CHECK: sxthle r2, r2, ror #16 2029# CHECK: sxth r9, r3, ror #24 2030 20310x79 0x30 0xbf 0x16 20320x76 0x10 0xbf 0xe6 20330x78 0x34 0xbf 0xe6 20340x72 0x28 0xbf 0xd6 20350x73 0x9c 0xbf 0xe6 2036 2037 2038#------------------------------------------------------------------------------ 2039# FIXME: TBB/TBH 2040#------------------------------------------------------------------------------ 2041 2042 2043#------------------------------------------------------------------------------ 2044# TEQ 2045#------------------------------------------------------------------------------ 2046# CHECK: teq r5, #61440 2047# CHECK: teq r4, r5 2048# CHECK: teq r4, r5, lsl #5 2049# CHECK: teq r4, r5, lsr #5 2050# CHECK: teq r4, r5, lsr #5 2051# CHECK: teq r4, r5, asr #5 2052# CHECK: teq r4, r5, ror #5 2053# CHECK: teq r6, r7, lsl r9 2054# CHECK: teq r6, r7, lsr r9 2055# CHECK: teq r6, r7, asr r9 2056# CHECK: teq r6, r7, ror r9 2057 20580x0f 0x0a 0x35 0xe3 20590x05 0x00 0x34 0xe1 20600x85 0x02 0x34 0xe1 20610xa5 0x02 0x34 0xe1 20620xa5 0x02 0x34 0xe1 20630xc5 0x02 0x34 0xe1 20640xe5 0x02 0x34 0xe1 20650x17 0x09 0x36 0xe1 20660x37 0x09 0x36 0xe1 20670x57 0x09 0x36 0xe1 20680x77 0x09 0x36 0xe1 2069 2070 2071#------------------------------------------------------------------------------ 2072# TST 2073#------------------------------------------------------------------------------ 2074# CHECK: tst r5, #61440 2075# CHECK: tst r4, r5 2076# CHECK: tst r4, r5, lsl #5 2077# CHECK: tst r4, r5, lsr #5 2078# CHECK: tst r4, r5, lsr #5 2079# CHECK: tst r4, r5, asr #5 2080# CHECK: tst r4, r5, ror #5 2081# CHECK: tst r6, r7, lsl r9 2082# CHECK: tst r6, r7, lsr r9 2083# CHECK: tst r6, r7, asr r9 2084# CHECK: tst r6, r7, ror r9 2085 20860x0f 0x0a 0x15 0xe3 20870x05 0x00 0x14 0xe1 20880x85 0x02 0x14 0xe1 20890xa5 0x02 0x14 0xe1 20900xa5 0x02 0x14 0xe1 20910xc5 0x02 0x14 0xe1 20920xe5 0x02 0x14 0xe1 20930x17 0x09 0x16 0xe1 20940x37 0x09 0x16 0xe1 20950x57 0x09 0x16 0xe1 20960x77 0x09 0x16 0xe1 2097 2098 2099#------------------------------------------------------------------------------ 2100# UADD16/UADD8 2101#------------------------------------------------------------------------------ 2102# CHECK: uadd16 r1, r2, r3 2103# CHECK: uadd16gt r1, r2, r3 2104# CHECK: uadd8 r1, r2, r3 2105# CHECK: uadd8le r1, r2, r3 2106 21070x13 0x1f 0x52 0xe6 21080x13 0x1f 0x52 0xc6 21090x93 0x1f 0x52 0xe6 21100x93 0x1f 0x52 0xd6 2111 2112 2113#------------------------------------------------------------------------------ 2114# UASX 2115#------------------------------------------------------------------------------ 2116# CHECK: uasx r9, r12, r0 2117# CHECK: uasxeq r9, r12, r0 2118 21190x30 0x9f 0x5c 0xe6 21200x30 0x9f 0x5c 0x06 2121 2122 2123#------------------------------------------------------------------------------ 2124# UBFX 2125#------------------------------------------------------------------------------ 2126# CHECK: ubfx r4, r5, #16, #1 2127# CHECK: ubfxgt r4, r5, #16, #16 2128 21290x55 0x48 0xe0 0xe7 21300x55 0x48 0xef 0xc7 2131 2132 2133#------------------------------------------------------------------------------ 2134# UHADD16/UHADD8 2135#------------------------------------------------------------------------------ 2136# CHECK: uhadd16 r4, r8, r2 2137# CHECK: uhadd16gt r4, r8, r2 2138# CHECK: uhadd8 r4, r8, r2 2139# CHECK: uhadd8gt r4, r8, r2 2140 21410x12 0x4f 0x78 0xe6 21420x12 0x4f 0x78 0xc6 21430x92 0x4f 0x78 0xe6 21440x92 0x4f 0x78 0xc6 2145 2146 2147#------------------------------------------------------------------------------ 2148# UHASX 2149#------------------------------------------------------------------------------ 2150# CHECK: uhasx r4, r8, r2 2151# CHECK: uhasxgt r4, r8, r2 2152 21530x32 0x4f 0x78 0xe6 21540x32 0x4f 0x78 0xc6 2155 2156 2157#------------------------------------------------------------------------------ 2158# UHSUB16/UHSUB8 2159#------------------------------------------------------------------------------ 2160# CHECK: uhsub16 r4, r8, r2 2161# CHECK: uhsub16gt r4, r8, r2 2162# CHECK: uhsub8 r4, r8, r2 2163# CHECK: uhsub8gt r4, r8, r2 2164 21650x72 0x4f 0x78 0xe6 21660x72 0x4f 0x78 0xc6 21670xf2 0x4f 0x78 0xe6 21680xf2 0x4f 0x78 0xc6 2169 2170 2171#------------------------------------------------------------------------------ 2172# UMAAL 2173#------------------------------------------------------------------------------ 2174# CHECK: umaal r3, r4, r5, r6 2175# CHECK: umaallt r3, r4, r5, r6 2176 21770x95 0x36 0x44 0xe0 21780x95 0x36 0x44 0xb0 2179 2180 2181#------------------------------------------------------------------------------ 2182# UMLAL 2183#------------------------------------------------------------------------------ 2184# CHECK: umlal r2, r4, r6, r8 2185# CHECK: umlalgt r6, r1, r2, r6 2186# CHECK: umlals r2, r9, r2, r3 2187# CHECK: umlalseq r3, r5, r1, r2 2188 21890x96 0x28 0xa4 0xe0 21900x92 0x66 0xa1 0xc0 21910x92 0x23 0xb9 0xe0 21920x91 0x32 0xb5 0x00 2193 2194 2195#------------------------------------------------------------------------------ 2196# UMULL 2197#------------------------------------------------------------------------------ 2198# CHECK: umull r2, r4, r6, r8 2199# CHECK: umullgt r6, r1, r2, r6 2200# CHECK: umulls r2, r9, r2, r3 2201# CHECK: umullseq r3, r5, r1, r2 2202 22030x96 0x28 0x84 0xe0 22040x92 0x66 0x81 0xc0 22050x92 0x23 0x99 0xe0 22060x91 0x32 0x95 0x00 2207 2208 2209#------------------------------------------------------------------------------ 2210# UQADD16/UQADD8 2211#------------------------------------------------------------------------------ 2212# CHECK: uqadd16 r1, r2, r3 2213# CHECK: uqadd16gt r4, r7, r9 2214# CHECK: uqadd8 r3, r4, r8 2215# CHECK: uqadd8le r8, r1, r2 2216 2217 22180x13 0x1f 0x62 0xe6 22190x19 0x4f 0x67 0xc6 22200x98 0x3f 0x64 0xe6 22210x92 0x8f 0x61 0xd6 2222 2223 2224#------------------------------------------------------------------------------ 2225# UQASX 2226#------------------------------------------------------------------------------ 2227# CHECK: uqasx r2, r4, r1 2228# CHECK: uqasxhi r5, r2, r9 2229 22300x31 0x2f 0x64 0xe6 22310x39 0x5f 0x62 0x86 2232 2233 2234#------------------------------------------------------------------------------ 2235# UQSAX 2236#------------------------------------------------------------------------------ 2237# CHECK: uqsax r1, r3, r7 2238# CHECK: uqsax r3, r6, r2 2239 22400x57 0x1f 0x63 0xe6 22410x52 0x3f 0x66 0xe6 2242 2243 2244#------------------------------------------------------------------------------ 2245# UQSUB16/UQSUB8 2246#------------------------------------------------------------------------------ 2247# CHECK: uqsub16 r1, r5, r3 2248# CHECK: uqsub16gt r3, r2, r5 2249# CHECK: uqsub8 r2, r1, r4 2250# CHECK: uqsub8le r4, r6, r9 2251 22520x73 0x1f 0x65 0xe6 22530x75 0x3f 0x62 0xc6 22540xf4 0x2f 0x61 0xe6 22550xf9 0x4f 0x66 0xd6 2256 2257 2258#------------------------------------------------------------------------------ 2259# USADA8/USAD8 2260#------------------------------------------------------------------------------ 2261# CHECK: usad8 r2, r1, r4 2262# CHECK: usad8le r4, r6, r9 2263# CHECK: usada8 r1, r5, r3, r7 2264# CHECK: usada8gt r3, r2, r5, r1 2265 22660x11 0xf4 0x82 0xe7 22670x16 0xf9 0x84 0xd7 22680x15 0x73 0x81 0xe7 22690x12 0x15 0x83 0xc7 2270 2271 2272#------------------------------------------------------------------------------ 2273# USAT 2274#------------------------------------------------------------------------------ 2275 2276# CHECK: usat r8, #1, r10 2277# CHECK: usat r8, #4, r10 2278# CHECK: usat r8, #5, r10, lsl #31 2279# CHECK: usat r8, #31, r10, asr #32 2280# CHECK: usat r8, #16, r10, asr #1 2281 22820x1a 0x80 0xe1 0xe6 22830x1a 0x80 0xe4 0xe6 22840x9a 0x8f 0xe5 0xe6 22850x5a 0x80 0xff 0xe6 22860xda 0x80 0xf0 0xe6 2287 2288#------------------------------------------------------------------------------ 2289# USAT16 2290#------------------------------------------------------------------------------ 2291# CHECK: usat16 r2, #2, r7 2292# CHECK: usat16 r3, #15, r5 2293 22940x37 0x2f 0xe2 0xe6 22950x35 0x3f 0xef 0xe6 2296 2297 2298#------------------------------------------------------------------------------ 2299# USAX 2300#------------------------------------------------------------------------------ 2301# CHECK: usax r2, r3, r4 2302# CHECK: usaxne r2, r3, r4 2303 23040x54 0x2f 0x53 0xe6 23050x54 0x2f 0x53 0x16 2306 2307#------------------------------------------------------------------------------ 2308# USUB16/USUB8 2309#------------------------------------------------------------------------------ 2310# CHECK: usub16 r4, r2, r7 2311# CHECK: usub16hi r1, r1, r3 2312# CHECK: usub8 r1, r8, r5 2313# CHECK: usub8le r9, r2, r3 2314 23150x77 0x4f 0x52 0xe6 23160x73 0x1f 0x51 0x86 23170xf5 0x1f 0x58 0xe6 23180xf3 0x9f 0x52 0xd6 2319 2320 2321#------------------------------------------------------------------------------ 2322# UXTAB 2323#------------------------------------------------------------------------------ 2324# CHECK: uxtab r2, r3, r4 2325# CHECK: uxtab r4, r5, r6 2326# CHECK: uxtablt r6, r2, r9, ror #8 2327# CHECK: uxtab r5, r1, r4, ror #16 2328# CHECK: uxtab r7, r8, r3, ror #24 2329 23300x74 0x20 0xe3 0xe6 23310x76 0x40 0xe5 0xe6 23320x79 0x64 0xe2 0xb6 23330x74 0x58 0xe1 0xe6 23340x73 0x7c 0xe8 0xe6 2335 2336 2337#------------------------------------------------------------------------------ 2338# UXTAB16 2339#------------------------------------------------------------------------------ 2340# CHECK: uxtab16ge r0, r1, r4 2341# CHECK: uxtab16 r6, r2, r7 2342# CHECK: uxtab16 r3, r5, r8, ror #8 2343# CHECK: uxtab16 r3, r2, r1, ror #16 2344# CHECK: uxtab16eq r1, r2, r3, ror #24 2345 23460x74 0x00 0xc1 0xa6 23470x77 0x60 0xc2 0xe6 23480x78 0x34 0xc5 0xe6 23490x71 0x38 0xc2 0xe6 23500x73 0x1c 0xc2 0x06 2351 2352#------------------------------------------------------------------------------ 2353# UXTAH 2354#------------------------------------------------------------------------------ 2355# CHECK: uxtah r1, r3, r9 2356# CHECK: uxtahhi r6, r1, r6 2357# CHECK: uxtah r3, r8, r3, ror #8 2358# CHECK: uxtahlo r2, r2, r4, ror #16 2359# CHECK: uxtah r9, r3, r3, ror #24 2360 23610x79 0x10 0xf3 0xe6 23620x76 0x60 0xf1 0x86 23630x73 0x34 0xf8 0xe6 23640x74 0x28 0xf2 0x36 23650x73 0x9c 0xf3 0xe6 2366 2367#------------------------------------------------------------------------------ 2368# UXTB 2369#------------------------------------------------------------------------------ 2370# CHECK: uxtbge r2, r4 2371# CHECK: uxtb r5, r6 2372# CHECK: uxtb r6, r9, ror #8 2373# CHECK: uxtblo r5, r1, ror #16 2374# CHECK: uxtb r8, r3, ror #24 2375 23760x74 0x20 0xef 0xa6 23770x76 0x50 0xef 0xe6 23780x79 0x64 0xef 0xe6 23790x71 0x58 0xef 0x36 23800x73 0x8c 0xef 0xe6 2381 2382 2383#------------------------------------------------------------------------------ 2384# UXTB16 2385#------------------------------------------------------------------------------ 2386# CHECK: uxtb16 r1, r4 2387# CHECK: uxtb16 r6, r7 2388# CHECK: uxtb16hs r3, r5, ror #8 2389# CHECK: uxtb16 r3, r1, ror #16 2390# CHECK: uxtb16ge r2, r3, ror #24 2391 23920x74 0x10 0xcf 0xe6 23930x77 0x60 0xcf 0xe6 23940x75 0x34 0xcf 0x26 23950x71 0x38 0xcf 0xe6 23960x73 0x2c 0xcf 0xa6 2397 2398 2399#------------------------------------------------------------------------------ 2400# UXTH 2401#------------------------------------------------------------------------------ 2402# CHECK: uxthne r3, r9 2403# CHECK: uxth r1, r6 2404# CHECK: uxth r3, r8, ror #8 2405# CHECK: uxthle r2, r2, ror #16 2406# CHECK: uxth r9, r3, ror #24 2407 24080x79 0x30 0xff 0x16 24090x76 0x10 0xff 0xe6 24100x78 0x34 0xff 0xe6 24110x72 0x28 0xff 0xd6 24120x73 0x9c 0xff 0xe6 2413 2414#------------------------------------------------------------------------------ 2415# WFE/WFI/YIELD 2416#------------------------------------------------------------------------------ 2417# CHECK: wfe 2418# CHECK: wfehi 2419# CHECK: wfi 2420# CHECK: wfilt 2421# CHECK: yield 2422# CHECK: yieldne 2423# CHECK: hint #5 2424 24250x02 0xf0 0x20 0xe3 24260x02 0xf0 0x20 0x83 24270x03 0xf0 0x20 0xe3 24280x03 0xf0 0x20 0xb3 24290x01 0xf0 0x20 0xe3 24300x01 0xf0 0x20 0x13 24310x05 0xf0 0x20 0xe3 2432