1# RUN: llvm-mc -triple=thumbv7-apple-darwin -mcpu=cortex-a8 -disassemble < %s | FileCheck %s 2 3#------------------------------------------------------------------------------ 4# ADC (immediate) 5#------------------------------------------------------------------------------ 6# CHECK: adc r0, r1, #4 7# CHECK: adcs r0, r1, #0 8# CHECK: adc r1, r2, #255 9# CHECK: adc r3, r7, #5570645 10# CHECK: adc r8, r12, #2852170240 11# CHECK: adc r9, r7, #2779096485 12# CHECK: adc r5, r3, #2264924160 13# CHECK: adc r4, r2, #2139095040 14# CHECK: adc r4, r2, #1664 15 160x41 0xf1 0x04 0x00 170x51 0xf1 0x00 0x00 180x42 0xf1 0xff 0x01 190x47 0xf1 0x55 0x13 200x4c 0xf1 0xaa 0x28 210x47 0xf1 0xa5 0x39 220x43 0xf1 0x07 0x45 230x42 0xf1 0xff 0x44 240x42 0xf5 0xd0 0x64 25 26#------------------------------------------------------------------------------ 27# ADC (register) 28#------------------------------------------------------------------------------ 29# CHECK: adc.w r4, r5, r6 30# CHECK: adcs.w r4, r5, r6 31# CHECK: adc.w r9, r1, r3 32# CHECK: adcs.w r9, r1, r3 33# CHECK: adc.w r0, r1, r3, ror #4 34# CHECK: adcs.w r0, r1, r3, lsl #7 35# CHECK: adc.w r0, r1, r3, lsr #31 36# CHECK: adcs.w r0, r1, r3, asr #32 37 380x45 0xeb 0x06 0x04 390x55 0xeb 0x06 0x04 400x41 0xeb 0x03 0x09 410x51 0xeb 0x03 0x09 420x41 0xeb 0x33 0x10 430x51 0xeb 0xc3 0x10 440x41 0xeb 0xd3 0x70 450x51 0xeb 0x23 0x00 46 47 48#------------------------------------------------------------------------------ 49# ADD (immediate) 50#------------------------------------------------------------------------------ 51# CHECK: itet eq 52# CHECK: addeq r1, r2, #4 53# CHECK: addwne r5, r3, #1023 54# CHECK: addweq r4, r5, #293 55# CHECK: add.w r2, sp, #1024 56# CHECK: add.w r2, r8, #65280 57# CHECK: addw r2, r3, #257 58# CHECK: add.w r12, r6, #256 59# CHECK: addw r12, r6, #256 60# CHECK: adds.w r1, r2, #496 61 620x0a 0xbf 630x11 0x1d 640x03 0xf2 0xff 0x35 650x05 0xf2 0x25 0x14 660x0d 0xf5 0x80 0x62 670x08 0xf5 0x7f 0x42 680x03 0xf2 0x01 0x12 690x06 0xf5 0x80 0x7c 700x06 0xf2 0x00 0x1c 710x12 0xf5 0xf8 0x71 72 73 74#------------------------------------------------------------------------------ 75# ADD (register) 76#------------------------------------------------------------------------------ 77# CHECK: add.w r1, r2, r8 78# CHECK: add.w r5, r9, r2, asr #32 79# CHECK: adds.w r7, r3, r1, lsl #31 80# CHECK: adds.w r0, r3, r6, lsr #25 81# CHECK: add.w r4, r8, r1, ror #12 82 830x02 0xeb 0x08 0x01 840x09 0xeb 0x22 0x05 850x13 0xeb 0xc1 0x77 860x13 0xeb 0x56 0x60 870x08 0xeb 0x31 0x34 88 89 90#------------------------------------------------------------------------------ 91# ADR 92#------------------------------------------------------------------------------ 93# CHECK: subw r11, pc, #3270 94# CHECK: subw r11, pc, #826 95# CHECK: subw r1, pc, #0 96 970xaf 0xf6 0xc6 0x4b 980xaf 0xf2 0x3a 0x3b 990xaf 0xf2 0x00 0x01 100 101#------------------------------------------------------------------------------ 102# AND (immediate) 103#------------------------------------------------------------------------------ 104# CHECK: and r2, r5, #1044480 105# CHECK: ands r3, r12, #15 106# CHECK: and r1, r1, #255 107 1080x05 0xf4 0x7f 0x22 1090x1c 0xf0 0x0f 0x03 1100x01 0xf0 0xff 0x01 111 112 113#------------------------------------------------------------------------------ 114# AND (register) 115#------------------------------------------------------------------------------ 116# CHECK: and.w r4, r9, r8 117# CHECK: and.w r1, r4, r8, asr #3 118# CHECK: ands.w r2, r1, r7, lsl #1 119# CHECK: ands.w r4, r5, r2, lsr #20 120# CHECK: and.w r9, r12, r1, ror #17 121 1220x09 0xea 0x08 0x04 1230x04 0xea 0xe8 0x01 1240x11 0xea 0x47 0x02 1250x15 0xea 0x12 0x54 1260x0c 0xea 0x71 0x49 127 128#------------------------------------------------------------------------------ 129# ASR (immediate) 130#------------------------------------------------------------------------------ 131# CHECK: asr.w r2, r3, #12 132# CHECK: asrs.w r8, r3, #32 133# CHECK: asrs.w r2, r3, #1 134# CHECK: asr.w r2, r3, #4 135# CHECK: asrs.w r2, r12, #15 136 137# CHECK: asr.w r3, r3, #19 138# CHECK: asrs.w r8, r8, #2 139# CHECK: asrs.w r7, r7, #5 140# CHECK: asr.w r12, r12, #21 141 1420x4f 0xea 0x23 0x32 1430x5f 0xea 0x23 0x08 1440x5f 0xea 0x63 0x02 1450x4f 0xea 0x23 0x12 1460x5f 0xea 0xec 0x32 147 1480x4f 0xea 0xe3 0x43 1490x5f 0xea 0xa8 0x08 1500x5f 0xea 0x67 0x17 1510x4f 0xea 0x6c 0x5c 152 153 154#------------------------------------------------------------------------------ 155# ASR (register) 156#------------------------------------------------------------------------------ 157# CHECK: asr.w r3, r4, r2 158# CHECK: asr.w r1, r1, r2 159# CHECK: asrs.w r3, r4, r8 160 1610x44 0xfa 0x02 0xf3 1620x41 0xfa 0x02 0xf1 1630x54 0xfa 0x08 0xf3 164 165#------------------------------------------------------------------------------ 166# B 167#------------------------------------------------------------------------------ 168# CHECK: bmi.w #-183396 169 1700x13 0xf5 0xce 0xa9 171 172 173#------------------------------------------------------------------------------ 174# BFC 175#------------------------------------------------------------------------------ 176# CHECK: bfc r5, #3, #17 177# CHECK: it lo 178# CHECK: bfclo r5, #3, #17 179 1800x6f 0xf3 0xd3 0x05 1810x38 0xbf 1820x6f 0xf3 0xd3 0x05 183 184 185#------------------------------------------------------------------------------ 186# BFI 187#------------------------------------------------------------------------------ 188# CHECK: bfi r5, r2, #3, #17 189# CHECK: it ne 190# CHECK: bfine r5, r2, #3, #17 191# CHECK: bfi r6, r0, #0, #32 192# CHECK: bfi r6, r0, #31, #1 193 1940x62 0xf3 0xd3 0x05 1950x18 0xbf 1960x62 0xf3 0xd3 0x05 1970x60 0xf3 0x1f 0x06 1980x60 0xf3 0xdf 0x76 199 200 201#------------------------------------------------------------------------------ 202# BIC 203#------------------------------------------------------------------------------ 204# CHECK: bic r10, r1, #15 205# CHECK: bic.w r12, r3, r6 206# CHECK: bic.w r11, r2, r6, lsl #12 207# CHECK: bic.w r8, r4, r1, lsr #11 208# CHECK: bic.w r7, r5, r7, lsr #15 209# CHECK: bic.w r6, r7, r9, asr #32 210# CHECK: bic.w r5, r6, r8, ror #1 211 212# CHECK: bic r1, r1, #15 213# CHECK: bic.w r1, r1, r1 214# CHECK: bic.w r4, r4, r2, lsl #31 215# CHECK: bic.w r6, r6, r3, lsr #12 216# CHECK: bic.w r7, r7, r4, lsr #7 217# CHECK: bic.w r8, r8, r5, asr #15 218# CHECK: bic.w r12, r12, r6, ror #29 219 2200x21 0xf0 0x0f 0x0a 2210x23 0xea 0x06 0x0c 2220x22 0xea 0x06 0x3b 2230x24 0xea 0xd1 0x28 2240x25 0xea 0xd7 0x37 2250x27 0xea 0x29 0x06 2260x26 0xea 0x78 0x05 227 2280x21 0xf0 0x0f 0x01 2290x21 0xea 0x01 0x01 2300x24 0xea 0xc2 0x74 2310x26 0xea 0x13 0x36 2320x27 0xea 0xd4 0x17 2330x28 0xea 0xe5 0x38 2340x2c 0xea 0x76 0x7c 235 236 237#------------------------------------------------------------------------------ 238# BXJ 239#------------------------------------------------------------------------------ 240# CHECK: bxj r5 241# CHECK: it ne 242# CHECK: bxjne r7 243 2440xc5 0xf3 0x00 0x8f 2450x18 0xbf 2460xc7 0xf3 0x00 0x8f 247 248 249#------------------------------------------------------------------------------ 250# CBZ/CBNZ 251#------------------------------------------------------------------------------ 252# CHECK: cbnz r7, #6 253# CHECK: cbnz r7, #12 254 2550x1f 0xb9 2560x37 0xb9 257 258#------------------------------------------------------------------------------ 259# CDP/CDP2 260#------------------------------------------------------------------------------ 261# CHECK: cdp p7, #1, c1, c1, c1, #4 262# CHECK: cdp2 p7, #1, c1, c1, c1, #4 263 2640x11 0xee 0x81 0x17 2650x11 0xfe 0x81 0x17 266 267 268#------------------------------------------------------------------------------ 269# CLREX 270#------------------------------------------------------------------------------ 271#CHECK: clrex 272#CHECK: it ne 273#CHECK: clrexne 274 2750xbf 0xf3 0x2f 0x8f 2760x18 0xbf 2770xbf 0xf3 0x2f 0x8f 278 279 280#------------------------------------------------------------------------------ 281# CLZ 282#------------------------------------------------------------------------------ 283#CHECK: clz r1, r2 284#CHECK: it eq 285#CHECK: clzeq r1, r2 286 2870xb2 0xfa 0x82 0xf1 2880x08 0xbf 2890xb2 0xfa 0x82 0xf1 290 291 292#------------------------------------------------------------------------------ 293# CMN 294#------------------------------------------------------------------------------ 295#CHECK: cmn.w r1, #15 296#CHECK: cmn.w r8, r6 297#CHECK: cmn.w r1, r6, lsl #10 298#CHECK: cmn.w r1, r6, lsr #10 299#CHECK: cmn.w sp, r6, lsr #10 300#CHECK: cmn.w r1, r6, asr #10 301#CHECK: cmn.w r1, r6, ror #10 302 3030x11 0xf1 0x0f 0x0f 3040x18 0xeb 0x06 0x0f 3050x11 0xeb 0x86 0x2f 3060x11 0xeb 0x96 0x2f 3070x1d 0xeb 0x96 0x2f 3080x11 0xeb 0xa6 0x2f 3090x11 0xeb 0xb6 0x2f 310 311 312#------------------------------------------------------------------------------ 313# CMP 314#------------------------------------------------------------------------------ 315#CHECK: cmp.w r5, #65280 316#CHECK: cmp.w r4, r12 317#CHECK: cmp.w r9, r6, lsl #12 318#CHECK: cmp.w r3, r7, lsr #31 319#CHECK: cmp.w sp, r6, lsr #1 320#CHECK: cmp.w r2, r5, asr #24 321#CHECK: cmp.w r1, r4, ror #15 322 3230xb5 0xf5 0x7f 0x4f 3240xb4 0xeb 0x0c 0x0f 3250xb9 0xeb 0x06 0x3f 3260xb3 0xeb 0xd7 0x7f 3270xbd 0xeb 0x56 0x0f 3280xb2 0xeb 0x25 0x6f 3290xb1 0xeb 0xf4 0x3f 330 331 332#------------------------------------------------------------------------------ 333# DBG 334#------------------------------------------------------------------------------ 335#CHECK: dbg #5 336#CHECK: dbg #0 337#CHECK: dbg #15 338 3390xaf 0xf3 0xf5 0x80 3400xaf 0xf3 0xf0 0x80 3410xaf 0xf3 0xff 0x80 342 343 344#------------------------------------------------------------------------------ 345# DMB 346#------------------------------------------------------------------------------ 347#CHECK: dmb sy 348#CHECK: dmb st 349#CHECK: dmb #0xd 350#CHECK: dmb #0xc 351#CHECK: dmb ish 352#CHECK: dmb ishst 353#CHECK: dmb #0x9 354#CHECK: dmb #0x8 355#CHECK: dmb nsh 356#CHECK: dmb nshst 357#CHECK: dmb #0x5 358#CHECK: dmb #0x4 359#CHECK: dmb osh 360#CHECK: dmb oshst 361#CHECK: dmb #0x1 362#CHECK: dmb #0x0 363 3640xbf 0xf3 0x5f 0x8f 3650xbf 0xf3 0x5e 0x8f 3660xbf 0xf3 0x5d 0x8f 3670xbf 0xf3 0x5c 0x8f 3680xbf 0xf3 0x5b 0x8f 3690xbf 0xf3 0x5a 0x8f 3700xbf 0xf3 0x59 0x8f 3710xbf 0xf3 0x58 0x8f 3720xbf 0xf3 0x57 0x8f 3730xbf 0xf3 0x56 0x8f 3740xbf 0xf3 0x55 0x8f 3750xbf 0xf3 0x54 0x8f 3760xbf 0xf3 0x53 0x8f 3770xbf 0xf3 0x52 0x8f 3780xbf 0xf3 0x51 0x8f 3790xbf 0xf3 0x50 0x8f 380 381 382#------------------------------------------------------------------------------ 383# DSB 384#------------------------------------------------------------------------------ 385#CHECK: dsb sy 386#CHECK: dsb st 387#CHECK: dsb #0xd 388#CHECK: dsb #0xc 389#CHECK: dsb ish 390#CHECK: dsb ishst 391#CHECK: dsb #0x9 392#CHECK: dsb #0x8 393#CHECK: dsb nsh 394#CHECK: dsb nshst 395#CHECK: dsb #0x5 396#CHECK: dsb #0x4 397#CHECK: dsb osh 398#CHECK: dsb oshst 399#CHECK: dsb #0x1 400#CHECK: dsb #0x0 401 4020xbf 0xf3 0x4f 0x8f 4030xbf 0xf3 0x4e 0x8f 4040xbf 0xf3 0x4d 0x8f 4050xbf 0xf3 0x4c 0x8f 4060xbf 0xf3 0x4b 0x8f 4070xbf 0xf3 0x4a 0x8f 4080xbf 0xf3 0x49 0x8f 4090xbf 0xf3 0x48 0x8f 4100xbf 0xf3 0x47 0x8f 4110xbf 0xf3 0x46 0x8f 4120xbf 0xf3 0x45 0x8f 4130xbf 0xf3 0x44 0x8f 4140xbf 0xf3 0x43 0x8f 4150xbf 0xf3 0x42 0x8f 4160xbf 0xf3 0x41 0x8f 4170xbf 0xf3 0x40 0x8f 418 419 420#------------------------------------------------------------------------------ 421# EOR 422#------------------------------------------------------------------------------ 423#CHECK: eor r4, r5, #61440 424#CHECK: eor.w r4, r5, r6 425#CHECK: eor.w r4, r5, r6, lsl #5 426#CHECK: eor.w r4, r5, r6, lsr #5 427#CHECK: eor.w r4, r5, r6, lsr #5 428#CHECK: eor.w r4, r5, r6, asr #5 429#CHECK: eor.w r4, r5, r6, ror #5 430 4310x85 0xf4 0x70 0x44 4320x85 0xea 0x06 0x04 4330x85 0xea 0x46 0x14 4340x85 0xea 0x56 0x14 4350x85 0xea 0x56 0x14 4360x85 0xea 0x66 0x14 4370x85 0xea 0x76 0x14 438 439 440#------------------------------------------------------------------------------ 441# ISB 442#------------------------------------------------------------------------------ 443#CHECK: isb sy 444 4450xbf 0xf3 0x6f 0x8f 446 447#------------------------------------------------------------------------------ 448# IT 449#------------------------------------------------------------------------------ 450# Test encodings of a few full IT blocks, not just the IT instruction 451 452# CHECK: iteet eq 453# CHECK: addeq r0, r1, r2 454# CHECK: nopne 455# CHECK: subne r5, r6, r7 456# CHECK: addeq r1, r2, #4 457 4580x0d 0xbf 4590x88 0x18 4600x00 0xbf 4610xf5 0x1b 4620x11 0x1d 463 464# CHECK: ittee ls 465# CHECK: addls r0, r1, r2 466# CHECK: nopls 467# CHECK: subhi r5, r6, r7 468# CHECK: addhi r1, r2, #4 469 4700x99 0xbf 4710x88 0x18 4720x00 0xbf 4730xf5 0x1b 4740x11 0x1d 475 476 477#------------------------------------------------------------------------------ 478# LDMIA 479#------------------------------------------------------------------------------ 480# CHECK: ldm.w r4, {r4, r5, r8, r9} 481# CHECK: ldm.w r4, {r5, r6} 482# CHECK: ldm.w r5!, {r3, r8} 483# CHECK: ldm.w r4, {r4, r5, r8, r9} 484# CHECK: ldm.w r4, {r5, r6} 485# CHECK: ldm.w r5!, {r3, r8} 486# CHECK: ldm.w r5!, {r1, r2} 487# CHECK: ldm.w r2, {r1, r2} 488 489# CHECK: ldm.w r4, {r4, r5, r8, r9} 490# CHECK: ldm.w r4, {r5, r6} 491# CHECK: ldm.w r5!, {r3, r8} 492# CHECK: ldm.w r4, {r4, r5, r8, r9} 493# CHECK: ldm.w r4, {r5, r6} 494# CHECK: ldm.w r5!, {r3, r8} 495# CHECK: ldm.w r5!, {r3, r8} 496 4970x94 0xe8 0x30 0x03 4980x94 0xe8 0x60 0x00 4990xb5 0xe8 0x08 0x01 5000x94 0xe8 0x30 0x03 5010x94 0xe8 0x60 0x00 5020xb5 0xe8 0x08 0x01 5030xb5 0xe8 0x06 0x00 5040x92 0xe8 0x06 0x00 505 5060x94 0xe8 0x30 0x03 5070x94 0xe8 0x60 0x00 5080xb5 0xe8 0x08 0x01 5090x94 0xe8 0x30 0x03 5100x94 0xe8 0x60 0x00 5110xb5 0xe8 0x08 0x01 5120xb5 0xe8 0x08 0x01 513 514 515#------------------------------------------------------------------------------ 516# LDMDB 517#------------------------------------------------------------------------------ 518# CHECK: ldmdb r4, {r4, r5, r8, r9} 519# CHECK: ldmdb r4, {r5, r6} 520# CHECK: ldmdb r5!, {r3, r8} 521# CHECK: ldmdb r5!, {r3, r8} 522 5230x14 0xe9 0x30 0x03 5240x14 0xe9 0x60 0x00 5250x35 0xe9 0x08 0x01 5260x35 0xe9 0x08 0x01 527 528 529#------------------------------------------------------------------------------ 530# LDR(immediate) 531#------------------------------------------------------------------------------ 532# CHECK: ldr r5, [r5, #-4] 533# CHECK: ldr r5, [r6, #32] 534# CHECK: ldr.w r5, [r6, #33] 535# CHECK: ldr.w r5, [r6, #257] 536# CHECK: ldr.w pc, [r7, #257] 537 5380x55 0xf8 0x04 0x5c 5390x35 0x6a 5400xd6 0xf8 0x21 0x50 5410xd6 0xf8 0x01 0x51 5420xd7 0xf8 0x01 0xf1 543 544 545#------------------------------------------------------------------------------ 546# LDR(register) 547#------------------------------------------------------------------------------ 548# CHECK: ldr.w r1, [r8, r1] 549# CHECK: ldr.w r4, [r5, r2] 550# CHECK: ldr.w r6, [r0, r2, lsl #3] 551# CHECK: ldr.w r8, [r8, r2, lsl #2] 552# CHECK: ldr.w r7, [sp, r2, lsl #1] 553# CHECK: ldr.w r7, [sp, r2] 554# CHECK: ldr r2, [r4, #255]! 555# CHECK: ldr r8, [sp, #4]! 556# CHECK: ldr lr, [sp, #-4]! 557# CHECK: ldr r2, [r4], #255 558# CHECK: ldr r8, [sp], #4 559# CHECK: ldr lr, [sp], #-4 560 5610x58 0xf8 0x01 0x10 5620x55 0xf8 0x02 0x40 5630x50 0xf8 0x32 0x60 5640x58 0xf8 0x22 0x80 5650x5d 0xf8 0x12 0x70 5660x5d 0xf8 0x02 0x70 5670x54 0xf8 0xff 0x2f 5680x5d 0xf8 0x04 0x8f 5690x5d 0xf8 0x04 0xed 5700x54 0xf8 0xff 0x2b 5710x5d 0xf8 0x04 0x8b 5720x5d 0xf8 0x04 0xe9 573 574 575#------------------------------------------------------------------------------ 576# LDRB(immediate) 577#------------------------------------------------------------------------------ 578# CHECK: ldrb r5, [r5, #-4] 579# CHECK: ldrb.w r5, [r6, #32] 580# CHECK: ldrb.w r5, [r6, #33] 581# CHECK: ldrb.w r5, [r6, #257] 582# CHECK: ldrb.w lr, [r7, #257] 583 5840x15 0xf8 0x04 0x5c 5850x96 0xf8 0x20 0x50 5860x96 0xf8 0x21 0x50 5870x96 0xf8 0x01 0x51 5880x97 0xf8 0x01 0xe1 589 590 591#------------------------------------------------------------------------------ 592# LDRB(register) 593#------------------------------------------------------------------------------ 594# CHECK: ldrb.w r1, [r8, r1] 595# CHECK: ldrb.w r4, [r5, r2] 596# CHECK: ldrb.w r6, [r0, r2, lsl #3] 597# CHECK: ldrb.w r8, [r8, r2, lsl #2] 598# CHECK: ldrb.w r7, [sp, r2, lsl #1] 599# CHECK: ldrb.w r7, [sp, r2] 600# CHECK: ldrb r5, [r8, #255]! 601# CHECK: ldrb r2, [r5, #4]! 602# CHECK: ldrb r1, [r4, #-4]! 603# CHECK: ldrb lr, [r3], #255 604# CHECK: ldrb r9, [r2], #4 605# CHECK: ldrb r3, [sp], #-4 606 6070x18 0xf8 0x01 0x10 6080x15 0xf8 0x02 0x40 6090x10 0xf8 0x32 0x60 6100x18 0xf8 0x22 0x80 6110x1d 0xf8 0x12 0x70 6120x1d 0xf8 0x02 0x70 6130x18 0xf8 0xff 0x5f 6140x15 0xf8 0x04 0x2f 6150x14 0xf8 0x04 0x1d 6160x13 0xf8 0xff 0xeb 6170x12 0xf8 0x04 0x9b 6180x1d 0xf8 0x04 0x39 619 620 621#------------------------------------------------------------------------------ 622# LDRBT 623#------------------------------------------------------------------------------ 624# CHECK: ldrbt r1, [r2] 625# CHECK: ldrbt r1, [r8] 626# CHECK: ldrbt r1, [r8, #3] 627# CHECK: ldrbt r1, [r8, #255] 628 6290x12 0xf8 0x00 0x1e 6300x18 0xf8 0x00 0x1e 6310x18 0xf8 0x03 0x1e 6320x18 0xf8 0xff 0x1e 633 634 635#------------------------------------------------------------------------------ 636# LDRD(immediate) 637#------------------------------------------------------------------------------ 638# CHECK: ldrd r3, r5, [r6, #24] 639# CHECK: ldrd r3, r5, [r6, #24]! 640# CHECK: ldrd r3, r5, [r6], #4 641# CHECK: ldrd r3, r5, [r6], #-8 642# CHECK: ldrd r3, r5, [r6] 643# CHECK: ldrd r8, r1, [r3] 644# CHECK: ldrd r0, r1, [r2], #-0 645# CHECK: ldrd r0, r1, [r2, #-0]! 646# CHECK: ldrd r0, r1, [r2, #-0] 647 6480xd6 0xe9 0x06 0x35 6490xf6 0xe9 0x06 0x35 6500xf6 0xe8 0x01 0x35 6510x76 0xe8 0x02 0x35 6520xd6 0xe9 0x00 0x35 6530xd3 0xe9 0x00 0x81 6540x72 0xe8 0x00 0x01 6550x72 0xe9 0x00 0x01 6560x52 0xe9 0x00 0x01 657 658 659#------------------------------------------------------------------------------ 660# FIXME: LDRD(literal) 661#------------------------------------------------------------------------------ 662 663 664#------------------------------------------------------------------------------ 665# LDREX/LDREXB/LDREXH/LDREXD 666#------------------------------------------------------------------------------ 667# CHECK: ldrex r1, [r4] 668# CHECK: ldrex r8, [r4] 669# CHECK: ldrex r2, [sp, #128] 670# CHECK: ldrexb r5, [r7] 671# CHECK: ldrexh r9, [r12] 672# CHECK: ldrexd r9, r3, [r4] 673 6740x54 0xe8 0x00 0x1f 6750x54 0xe8 0x00 0x8f 6760x5d 0xe8 0x20 0x2f 6770xd7 0xe8 0x4f 0x5f 6780xdc 0xe8 0x5f 0x9f 6790xd4 0xe8 0x7f 0x93 680 681 682#------------------------------------------------------------------------------ 683# LDRH(immediate) 684#------------------------------------------------------------------------------ 685# CHECK: ldrh r5, [r5, #-4] 686# CHECK: ldrh r5, [r6, #32] 687# CHECK: ldrh.w r5, [r6, #33] 688# CHECK: ldrh.w r5, [r6, #257] 689# CHECK: ldrh.w lr, [r7, #257] 690# CHECK: ldrh.w r0, [pc, #-21] 691 6920x35 0xf8 0x04 0x5c 6930x35 0x8c 6940xb6 0xf8 0x21 0x50 6950xb6 0xf8 0x01 0x51 6960xb7 0xf8 0x01 0xe1 6970x3f 0xf8 0x15 0x00 698 699 700#------------------------------------------------------------------------------ 701# LDRH(register) 702#------------------------------------------------------------------------------ 703# CHECK: ldrh.w r1, [r8, r1] 704# CHECK: ldrh.w r4, [r5, r2] 705# CHECK: ldrh.w r6, [r0, r2, lsl #3] 706# CHECK: ldrh.w r8, [r8, r2, lsl #2] 707# CHECK: ldrh.w r7, [sp, r2, lsl #1] 708# CHECK: ldrh.w r7, [sp, r2] 709# CHECK: ldrh r5, [r8, #255]! 710# CHECK: ldrh r2, [r5, #4]! 711# CHECK: ldrh r1, [r4, #-4]! 712# CHECK: ldrh lr, [r3], #255 713# CHECK: ldrh r9, [r2], #4 714# CHECK: ldrh r3, [sp], #-4 715 7160x38 0xf8 0x01 0x10 7170x35 0xf8 0x02 0x40 7180x30 0xf8 0x32 0x60 7190x38 0xf8 0x22 0x80 7200x3d 0xf8 0x12 0x70 7210x3d 0xf8 0x02 0x70 7220x38 0xf8 0xff 0x5f 7230x35 0xf8 0x04 0x2f 7240x34 0xf8 0x04 0x1d 7250x33 0xf8 0xff 0xeb 7260x32 0xf8 0x04 0x9b 7270x3d 0xf8 0x04 0x39 728 729 730#------------------------------------------------------------------------------ 731# LDRSB(immediate) 732#------------------------------------------------------------------------------ 733# CHECK: ldrsb r5, [r5, #-4] 734# CHECK: ldrsb.w r5, [r6, #32] 735# CHECK: ldrsb.w r5, [r6, #33] 736# CHECK: ldrsb.w r5, [r6, #257] 737# CHECK: ldrsb.w lr, [r7, #257] 738 7390x15 0xf9 0x04 0x5c 7400x96 0xf9 0x20 0x50 7410x96 0xf9 0x21 0x50 7420x96 0xf9 0x01 0x51 7430x97 0xf9 0x01 0xe1 744 745 746#------------------------------------------------------------------------------ 747# LDRSB(register) 748#------------------------------------------------------------------------------ 749# CHECK: ldrsb.w r1, [r8, r1] 750# CHECK: ldrsb.w r4, [r5, r2] 751# CHECK: ldrsb.w r6, [r0, r2, lsl #3] 752# CHECK: ldrsb.w r8, [r8, r2, lsl #2] 753# CHECK: ldrsb.w r7, [sp, r2, lsl #1] 754# CHECK: ldrsb.w r7, [sp, r2] 755# CHECK: ldrsb r5, [r8, #255]! 756# CHECK: ldrsb r2, [r5, #4]! 757# CHECK: ldrsb r1, [r4, #-4]! 758# CHECK: ldrsb lr, [r3], #255 759# CHECK: ldrsb r9, [r2], #4 760# CHECK: ldrsb r3, [sp], #-4 761 7620x18 0xf9 0x01 0x10 7630x15 0xf9 0x02 0x40 7640x10 0xf9 0x32 0x60 7650x18 0xf9 0x22 0x80 7660x1d 0xf9 0x12 0x70 7670x1d 0xf9 0x02 0x70 7680x18 0xf9 0xff 0x5f 7690x15 0xf9 0x04 0x2f 7700x14 0xf9 0x04 0x1d 7710x13 0xf9 0xff 0xeb 7720x12 0xf9 0x04 0x9b 7730x1d 0xf9 0x04 0x39 774 775 776#------------------------------------------------------------------------------ 777# LDRSBT 778#------------------------------------------------------------------------------ 779# CHECK: ldrsbt r1, [r2] 780# CHECK: ldrsbt r1, [r8] 781# CHECK: ldrsbt r1, [r8, #3] 782# CHECK: ldrsbt r1, [r8, #255] 783 7840x12 0xf9 0x00 0x1e 7850x18 0xf9 0x00 0x1e 7860x18 0xf9 0x03 0x1e 7870x18 0xf9 0xff 0x1e 788 789 790#------------------------------------------------------------------------------ 791# LDRSH(immediate) 792#------------------------------------------------------------------------------ 793# CHECK: ldrsh r5, [r5, #-4] 794# CHECK: ldrsh.w r5, [r6, #32] 795# CHECK: ldrsh.w r5, [r6, #33] 796# CHECK: ldrsh.w r5, [r6, #257] 797# CHECK: ldrsh.w lr, [r7, #257] 798# CHECK: ldrsh r10, [r5, #-0] 799 8000x35 0xf9 0x04 0x5c 8010xb6 0xf9 0x20 0x50 8020xb6 0xf9 0x21 0x50 8030xb6 0xf9 0x01 0x51 8040xb7 0xf9 0x01 0xe1 8050x35 0xf9 0x00 0xac 806 807#------------------------------------------------------------------------------ 808# LDRSH(register) 809#------------------------------------------------------------------------------ 810# CHECK: ldrsh.w r1, [r8, r1] 811# CHECK: ldrsh.w r4, [r5, r2] 812# CHECK: ldrsh.w r6, [r0, r2, lsl #3] 813# CHECK: ldrsh.w r8, [r8, r2, lsl #2] 814# CHECK: ldrsh.w r7, [sp, r2, lsl #1] 815# CHECK: ldrsh.w r7, [sp, r2] 816# CHECK: ldrsh r5, [r8, #255]! 817# CHECK: ldrsh r2, [r5, #4]! 818# CHECK: ldrsh r1, [r4, #-4]! 819# CHECK: ldrsh lr, [r3], #255 820# CHECK: ldrsh r9, [r2], #4 821# CHECK: ldrsh r3, [sp], #-4 822 8230x38 0xf9 0x01 0x10 8240x35 0xf9 0x02 0x40 8250x30 0xf9 0x32 0x60 8260x38 0xf9 0x22 0x80 8270x3d 0xf9 0x12 0x70 8280x3d 0xf9 0x02 0x70 8290x38 0xf9 0xff 0x5f 8300x35 0xf9 0x04 0x2f 8310x34 0xf9 0x04 0x1d 8320x33 0xf9 0xff 0xeb 8330x32 0xf9 0x04 0x9b 8340x3d 0xf9 0x04 0x39 835 836 837#------------------------------------------------------------------------------ 838# LDRSHT 839#------------------------------------------------------------------------------ 840# CHECK: ldrsht r1, [r2] 841# CHECK: ldrsht r1, [r8] 842# CHECK: ldrsht r1, [r8, #3] 843# CHECK: ldrsht r1, [r8, #255] 844 8450x32 0xf9 0x00 0x1e 8460x38 0xf9 0x00 0x1e 8470x38 0xf9 0x03 0x1e 8480x38 0xf9 0xff 0x1e 849 850 851#------------------------------------------------------------------------------ 852# LDRT 853#------------------------------------------------------------------------------ 854# CHECK: ldrt r1, [r2] 855# CHECK: ldrt r2, [r6] 856# CHECK: ldrt r3, [r7, #3] 857# CHECK: ldrt r4, [r9, #255] 858 8590x52 0xf8 0x00 0x1e 8600x56 0xf8 0x00 0x2e 8610x57 0xf8 0x03 0x3e 8620x59 0xf8 0xff 0x4e 863 864 865#------------------------------------------------------------------------------ 866# LSL (immediate) 867#------------------------------------------------------------------------------ 868# CHECK: lsl.w r2, r3, #12 869# CHECK: lsls.w r8, r3, #31 870# CHECK: lsls.w r2, r3, #1 871# CHECK: lsl.w r2, r3, #4 872# CHECK: lsls.w r2, r12, #15 873 874# CHECK: lsl.w r3, r3, #19 875# CHECK: lsls.w r8, r8, #2 876# CHECK: lsls.w r7, r7, #5 877# CHECK: lsl.w r12, r12, #21 878 8790x4f 0xea 0x03 0x32 8800x5f 0xea 0xc3 0x78 8810x5f 0xea 0x43 0x02 8820x4f 0xea 0x03 0x12 8830x5f 0xea 0xcc 0x32 884 8850x4f 0xea 0xc3 0x43 8860x5f 0xea 0x88 0x08 8870x5f 0xea 0x47 0x17 8880x4f 0xea 0x4c 0x5c 889 890 891#------------------------------------------------------------------------------ 892# LSL (register) 893#------------------------------------------------------------------------------ 894# CHECK: lsl.w r3, r4, r2 895# CHECK: lsl.w r1, r1, r2 896# CHECK: lsls.w r3, r4, r8 897 8980x04 0xfa 0x02 0xf3 8990x01 0xfa 0x02 0xf1 9000x14 0xfa 0x08 0xf3 901 902 903#------------------------------------------------------------------------------ 904# LSR (immediate) 905#------------------------------------------------------------------------------ 906# CHECK: lsr.w r2, r3, #12 907# CHECK: lsrs.w r8, r3, #32 908# CHECK: lsrs.w r2, r3, #1 909# CHECK: lsr.w r2, r3, #4 910# CHECK: lsrs.w r2, r12, #15 911 912# CHECK: lsr.w r3, r3, #19 913# CHECK: lsrs.w r8, r8, #2 914# CHECK: lsrs.w r7, r7, #5 915# CHECK: lsr.w r12, r12, #21 916 9170x4f 0xea 0x13 0x32 9180x5f 0xea 0x13 0x08 9190x5f 0xea 0x53 0x02 9200x4f 0xea 0x13 0x12 9210x5f 0xea 0xdc 0x32 922 9230x4f 0xea 0xd3 0x43 9240x5f 0xea 0x98 0x08 9250x5f 0xea 0x57 0x17 9260x4f 0xea 0x5c 0x5c 927 928 929#------------------------------------------------------------------------------ 930# LSR (register) 931#------------------------------------------------------------------------------ 932# CHECK: lsr.w r3, r4, r2 933# CHECK: lsr.w r1, r1, r2 934# CHECK: lsrs.w r3, r4, r8 935 9360x24 0xfa 0x02 0xf3 9370x21 0xfa 0x02 0xf1 9380x34 0xfa 0x08 0xf3 939 940#------------------------------------------------------------------------------ 941# MCR/MCR2 942#------------------------------------------------------------------------------ 943# CHECK: mcr p7, #1, r5, c1, c1, #4 944# CHECK: mcr2 p7, #1, r5, c1, c1, #4 945 9460x21 0xee 0x91 0x57 9470x21 0xfe 0x91 0x57 948 949 950#------------------------------------------------------------------------------ 951# MCRR/MCRR2 952#------------------------------------------------------------------------------ 953# CHECK: mcrr p7, #15, r5, r4, c1 954# CHECK: mcrr2 p7, #15, r5, r4, c1 955 9560x44 0xec 0xf1 0x57 9570x44 0xfc 0xf1 0x57 958 959 960#------------------------------------------------------------------------------ 961# MLA/MLS 962#------------------------------------------------------------------------------ 963# CHECK: mla r1, r2, r3, r4 964# CHECK: mls r1, r2, r3, r4 965 9660x02 0xfb 0x03 0x41 9670x02 0xfb 0x13 0x41 968 969 970#------------------------------------------------------------------------------ 971# MOV(immediate) 972#------------------------------------------------------------------------------ 973# CHECK: movs r1, #21 974# CHECK: movs.w r1, #21 975# CHECK: movs.w r8, #21 976# CHECK: movw r0, #65535 977# CHECK: movw r1, #43777 978# CHECK: movw r1, #43792 979# CHECK: mov.w r0, #66846720 980# CHECK: mov.w r0, #66846720 981# CHECK: movs.w r0, #66846720 982 9830x15 0x21 9840x5f 0xf0 0x15 0x01 9850x5f 0xf0 0x15 0x08 9860x4f 0xf6 0xff 0x70 9870x4a 0xf6 0x01 0x31 9880x4a 0xf6 0x10 0x31 9890x4f 0xf0 0x7f 0x70 9900x4f 0xf0 0x7f 0x70 9910x5f 0xf0 0x7f 0x70 992 993#------------------------------------------------------------------------------ 994# MOVT 995#------------------------------------------------------------------------------ 996# CHECK: movt r3, #7 997# CHECK: movt r6, #65535 998# CHECK: it eq 999# CHECK: movteq r4, #4080 1000 10010xc0 0xf2 0x07 0x03 10020xcf 0xf6 0xff 0x76 10030x08 0xbf 10040xc0 0xf6 0xf0 0x74 1005 1006#------------------------------------------------------------------------------ 1007# MRC/MRC2 1008#------------------------------------------------------------------------------ 1009# CHECK: mrc p14, #0, r1, c1, c2, #4 1010# CHECK: mrc2 p14, #0, r1, c1, c2, #4 1011 10120x11 0xee 0x92 0x1e 10130x11 0xfe 0x92 0x1e 1014 1015 1016#------------------------------------------------------------------------------ 1017# MRRC/MRRC2 1018#------------------------------------------------------------------------------ 1019# CHECK: mrrc p7, #1, r5, r4, c1 1020# CHECK: mrrc2 p7, #1, r5, r4, c1 1021 10220x54 0xec 0x11 0x57 10230x54 0xfc 0x11 0x57 1024 1025 1026#------------------------------------------------------------------------------ 1027# MRS 1028#------------------------------------------------------------------------------ 1029# CHECK: mrs r8, apsr 1030# CHECK: mrs r8, spsr 1031 10320xef 0xf3 0x00 0x88 10330xff 0xf3 0x00 0x88 1034 1035 1036#------------------------------------------------------------------------------ 1037# MSR 1038#------------------------------------------------------------------------------ 1039# CHECK: msr APSR_nzcvq, r1 1040# CHECK: msr APSR_g, r2 1041# CHECK: msr APSR_nzcvq, r3 1042# CHECK: msr APSR_nzcvq, r4 1043# CHECK: msr APSR_nzcvqg, r5 1044# CHECK: msr CPSR_fc, r6 1045# CHECK: msr CPSR_c, r7 1046# CHECK: msr CPSR_x, r8 1047# CHECK: msr CPSR_fc, r9 1048# CHECK: msr CPSR_fc, r11 1049# CHECK: msr CPSR_fsx, r12 1050# CHECK: msr SPSR_fc, r0 1051# CHECK: msr SPSR_fsxc, r5 1052# CHECK: msr CPSR_fsxc, r8 1053 10540x81 0xf3 0x00 0x88 10550x82 0xf3 0x00 0x84 10560x83 0xf3 0x00 0x88 10570x84 0xf3 0x00 0x88 10580x85 0xf3 0x00 0x8c 10590x86 0xf3 0x00 0x89 10600x87 0xf3 0x00 0x81 10610x88 0xf3 0x00 0x82 10620x89 0xf3 0x00 0x89 10630x8b 0xf3 0x00 0x89 10640x8c 0xf3 0x00 0x8e 10650x90 0xf3 0x00 0x89 10660x95 0xf3 0x00 0x8f 10670x88 0xf3 0x00 0x8f 1068 1069 1070#------------------------------------------------------------------------------ 1071# MUL 1072#------------------------------------------------------------------------------ 1073# CHECK: muls r3, r4, r3 1074# CHECK: mul r3, r4, r3 1075# CHECK: mul r3, r4, r6 1076# CHECK: it eq 1077# CHECK: muleq r3, r4, r5 1078 10790x63 0x43 10800x04 0xfb 0x03 0xf3 10810x04 0xfb 0x06 0xf3 10820x08 0xbf 10830x04 0xfb 0x05 0xf3 1084 1085 1086#------------------------------------------------------------------------------ 1087# MVN(immediate) 1088#------------------------------------------------------------------------------ 1089# CHECK: mvns r8, #21 1090# CHECK: mvn r0, #66846720 1091# CHECK: mvns r0, #66846720 1092# CHECK: itte eq 1093# CHECK: mvnseq r1, #12 1094# CHECK: mvneq r1, #12 1095# CHECK: mvnne r1, #12 1096 10970x7f 0xf0 0x15 0x08 10980x6f 0xf0 0x7f 0x70 10990x7f 0xf0 0x7f 0x70 11000x06 0xbf 11010x7f 0xf0 0x0c 0x01 11020x6f 0xf0 0x0c 0x01 11030x6f 0xf0 0x0c 0x01 1104 1105 1106#------------------------------------------------------------------------------ 1107# MVN(register) 1108#------------------------------------------------------------------------------ 1109# CHECK: mvn.w r2, r3 1110# CHECK: mvns r2, r3 1111# CHECK: mvn.w r5, r6, lsl #19 1112# CHECK: mvn.w r5, r6, lsr #9 1113# CHECK: mvn.w r5, r6, asr #4 1114# CHECK: mvn.w r5, r6, ror #6 1115# CHECK: mvn.w r5, r6, rrx 1116# CHECK: it eq 1117# CHECK: mvneq r2, r3 1118 11190x6f 0xea 0x03 0x02 11200xda 0x43 11210x6f 0xea 0xc6 0x45 11220x6f 0xea 0x56 0x25 11230x6f 0xea 0x26 0x15 11240x6f 0xea 0xb6 0x15 11250x6f 0xea 0x36 0x05 11260x08 0xbf 11270xda 0x43 1128 1129#------------------------------------------------------------------------------ 1130# NOP 1131#------------------------------------------------------------------------------ 1132# CHECK: nop.w 1133 11340xaf 0xf3 0x00 0x80 1135 1136 1137#------------------------------------------------------------------------------ 1138# ORN 1139#------------------------------------------------------------------------------ 1140# CHECK: orn r4, r5, #61440 1141# CHECK: orn r4, r5, r6 1142# CHECK: orns r4, r5, r6 1143# CHECK: orn r4, r5, r6, lsl #5 1144# CHECK: orns r4, r5, r6, lsr #5 1145# CHECK: orn r4, r5, r6, lsr #5 1146# CHECK: orns r4, r5, r6, asr #5 1147# CHECK: orn r4, r5, r6, ror #5 1148 11490x65 0xf4 0x70 0x44 11500x65 0xea 0x06 0x04 11510x75 0xea 0x06 0x04 11520x65 0xea 0x46 0x14 11530x75 0xea 0x56 0x14 11540x65 0xea 0x56 0x14 11550x75 0xea 0x66 0x14 11560x65 0xea 0x76 0x14 1157 1158 1159#------------------------------------------------------------------------------ 1160# ORR 1161#------------------------------------------------------------------------------ 1162# CHECK: orr r4, r5, #61440 1163# CHECK: orr.w r4, r5, r6 1164# CHECK: orr.w r4, r5, r6, lsl #5 1165# CHECK: orrs.w r4, r5, r6, lsr #5 1166# CHECK: orr.w r4, r5, r6, lsr #5 1167# CHECK: orrs.w r4, r5, r6, asr #5 1168# CHECK: orr.w r4, r5, r6, ror #5 1169 11700x45 0xf4 0x70 0x44 11710x45 0xea 0x06 0x04 11720x45 0xea 0x46 0x14 11730x55 0xea 0x56 0x14 11740x45 0xea 0x56 0x14 11750x55 0xea 0x66 0x14 11760x45 0xea 0x76 0x14 1177 1178 1179#------------------------------------------------------------------------------ 1180# PKH 1181#------------------------------------------------------------------------------ 1182# CHECK: pkhbt r2, r2, r3 1183# CHECK: pkhbt r2, r2, r3, lsl #31 1184# CHECK: pkhbt r2, r2, r3, lsl #15 1185 1186# CHECK: pkhtb r2, r2, r3, asr #31 1187# CHECK: pkhtb r2, r2, r3, asr #15 1188 11890xc2 0xea 0x03 0x02 11900xc2 0xea 0xc3 0x72 11910xc2 0xea 0xc3 0x32 1192 11930xc2 0xea 0xe3 0x72 11940xc2 0xea 0xe3 0x32 1195 1196 1197#------------------------------------------------------------------------------ 1198# PLD(immediate) 1199#------------------------------------------------------------------------------ 1200# CHECK: pld [r5, #-4] 1201# CHECK: pld [r6, #32] 1202# CHECK: pld [r6, #33] 1203# CHECK: pld [r6, #257] 1204# CHECK: pld [r7, #257] 1205 12060x15 0xf8 0x04 0xfc 12070x96 0xf8 0x20 0xf0 12080x96 0xf8 0x21 0xf0 12090x96 0xf8 0x01 0xf1 12100x97 0xf8 0x01 0xf1 1211 1212#------------------------------------------------------------------------------ 1213# PLD(register) 1214#------------------------------------------------------------------------------ 1215# CHECK: pld [r8, r1] 1216# CHECK: pld [r5, r2] 1217# CHECK: pld [r0, r2, lsl #3] 1218# CHECK: pld [r8, r2, lsl #2] 1219# CHECK: pld [sp, r2, lsl #1] 1220# CHECK: pld [sp, r2] 1221 12220x18 0xf8 0x01 0xf0 12230x15 0xf8 0x02 0xf0 12240x10 0xf8 0x32 0xf0 12250x18 0xf8 0x22 0xf0 12260x1d 0xf8 0x12 0xf0 12270x1d 0xf8 0x02 0xf0 1228 1229#------------------------------------------------------------------------------ 1230# PLI(immediate) 1231#------------------------------------------------------------------------------ 1232# CHECK: pli [r5, #-4] 1233# CHECK: pli [r6, #32] 1234# CHECK: pli [r6, #33] 1235# CHECK: pli [r6, #257] 1236# CHECK: pli [r7, #257] 1237 12380x15 0xf9 0x04 0xfc 12390x96 0xf9 0x20 0xf0 12400x96 0xf9 0x21 0xf0 12410x96 0xf9 0x01 0xf1 12420x97 0xf9 0x01 0xf1 1243 1244#------------------------------------------------------------------------------ 1245# PLI(register) 1246#------------------------------------------------------------------------------ 1247# CHECK: pli [r8, r1] 1248# CHECK: pli [r5, r2] 1249# CHECK: pli [r0, r2, lsl #3] 1250# CHECK: pli [r8, r2, lsl #2] 1251# CHECK: pli [sp, r2, lsl #1] 1252# CHECK: pli [sp, r2] 1253 12540x18 0xf9 0x01 0xf0 12550x15 0xf9 0x02 0xf0 12560x10 0xf9 0x32 0xf0 12570x18 0xf9 0x22 0xf0 12580x1d 0xf9 0x12 0xf0 12590x1d 0xf9 0x02 0xf0 1260 1261 1262#------------------------------------------------------------------------------ 1263# QADD/QADD16/QADD8 1264#------------------------------------------------------------------------------ 1265# CHECK: qadd r1, r2, r3 1266# CHECK: qadd16 r1, r2, r3 1267# CHECK: qadd8 r1, r2, r3 1268# CHECK: itte gt 1269# CHECK: qaddgt r1, r2, r3 1270# CHECK: qadd16gt r1, r2, r3 1271# CHECK: qadd8le r1, r2, r3 1272 12730x83 0xfa 0x82 0xf1 12740x92 0xfa 0x13 0xf1 12750x82 0xfa 0x13 0xf1 12760xc6 0xbf 12770x83 0xfa 0x82 0xf1 12780x92 0xfa 0x13 0xf1 12790x82 0xfa 0x13 0xf1 1280 1281 1282#------------------------------------------------------------------------------ 1283# QDADD/QDSUB 1284#------------------------------------------------------------------------------ 1285# CHECK: qdadd r6, r7, r8 1286# CHECK: qdsub r6, r7, r8 1287# CHECK: itt hi 1288# CHECK: qdaddhi r6, r7, r8 1289# CHECK: qdsubhi r6, r7, r8 1290 12910x88 0xfa 0x97 0xf6 12920x88 0xfa 0xb7 0xf6 12930x84 0xbf 12940x88 0xfa 0x97 0xf6 12950x88 0xfa 0xb7 0xf6 1296 1297 1298#------------------------------------------------------------------------------ 1299# QSAX 1300#------------------------------------------------------------------------------ 1301# CHECK: qsax r9, r12, r0 1302# CHECK: it eq 1303# CHECK: qsaxeq r9, r12, r0 1304 13050xec 0xfa 0x10 0xf9 13060x08 0xbf 13070xec 0xfa 0x10 0xf9 1308 1309 1310#------------------------------------------------------------------------------ 1311# QSUB/QSUB16/QSUB8 1312#------------------------------------------------------------------------------ 1313# CHECK: qsub r1, r2, r3 1314# CHECK: qsub16 r1, r2, r3 1315# CHECK: qsub8 r1, r2, r3 1316# CHECK: itet le 1317# CHECK: qsuble r1, r2, r3 1318# CHECK: qsub16gt r1, r2, r3 1319# CHECK: qsub8le r1, r2, r3 1320 13210x83 0xfa 0xa2 0xf1 13220xd2 0xfa 0x13 0xf1 13230xc2 0xfa 0x13 0xf1 13240xd6 0xbf 13250x83 0xfa 0xa2 0xf1 13260xd2 0xfa 0x13 0xf1 13270xc2 0xfa 0x13 0xf1 1328 1329 1330#------------------------------------------------------------------------------ 1331# RBIT 1332#------------------------------------------------------------------------------ 1333# CHECK: rbit r1, r2 1334# CHECK: it ne 1335# CHECK: rbitne r1, r2 1336 13370x92 0xfa 0xa2 0xf1 13380x18 0xbf 13390x92 0xfa 0xa2 0xf1 1340 1341 1342#------------------------------------------------------------------------------ 1343# REV 1344#------------------------------------------------------------------------------ 1345# CHECK: rev.w r1, r2 1346# CHECK: rev.w r2, r8 1347# CHECK: itt ne 1348# CHECK: revne r1, r2 1349# CHECK: revne.w r1, r8 1350 13510x92 0xfa 0x82 0xf1 13520x98 0xfa 0x88 0xf2 13530x1c 0xbf 13540x11 0xba 13550x98 0xfa 0x88 0xf1 1356 1357 1358#------------------------------------------------------------------------------ 1359# REV16 1360#------------------------------------------------------------------------------ 1361# CHECK: rev16.w r1, r2 1362# CHECK: rev16.w r2, r8 1363# CHECK: itt ne 1364# CHECK: rev16ne r1, r2 1365# CHECK: rev16ne.w r1, r8 1366 13670x92 0xfa 0x92 0xf1 13680x98 0xfa 0x98 0xf2 13690x1c 0xbf 13700x51 0xba 13710x98 0xfa 0x98 0xf1 1372 1373 1374#------------------------------------------------------------------------------ 1375# REVSH 1376#------------------------------------------------------------------------------ 1377# CHECK: revsh.w r1, r2 1378# CHECK: revsh.w r2, r8 1379# CHECK: itt ne 1380# CHECK: revshne r1, r2 1381# CHECK: revshne.w r1, r8 1382 13830x92 0xfa 0xb2 0xf1 13840x98 0xfa 0xb8 0xf2 13850x1c 0xbf 13860xd1 0xba 13870x98 0xfa 0xb8 0xf1 1388 1389 1390#------------------------------------------------------------------------------ 1391# ROR (immediate) 1392#------------------------------------------------------------------------------ 1393# CHECK: ror.w r2, r3, #12 1394# CHECK: rors.w r8, r3, #31 1395# CHECK: rors.w r2, r3, #1 1396# CHECK: ror.w r2, r3, #4 1397# CHECK: rors.w r2, r12, #15 1398 1399# CHECK: ror.w r3, r3, #19 1400# CHECK: rors.w r8, r8, #2 1401# CHECK: rors.w r7, r7, #5 1402# CHECK: ror.w r12, r12, #21 1403 14040x4f 0xea 0x33 0x32 14050x5f 0xea 0xf3 0x78 14060x5f 0xea 0x73 0x02 14070x4f 0xea 0x33 0x12 14080x5f 0xea 0xfc 0x32 1409 14100x4f 0xea 0xf3 0x43 14110x5f 0xea 0xb8 0x08 14120x5f 0xea 0x77 0x17 14130x4f 0xea 0x7c 0x5c 1414 1415 1416#------------------------------------------------------------------------------ 1417# ROR (register) 1418#------------------------------------------------------------------------------ 1419# CHECK: ror.w r3, r4, r2 1420# CHECK: ror.w r1, r1, r2 1421# CHECK: rors.w r3, r4, r8 1422 14230x64 0xfa 0x02 0xf3 14240x61 0xfa 0x02 0xf1 14250x74 0xfa 0x08 0xf3 1426 1427 1428#------------------------------------------------------------------------------ 1429# RRX 1430#------------------------------------------------------------------------------ 1431# CHECK: rrx r1, r2 1432# CHECK: rrxs r1, r2 1433# CHECK: ite lt 1434# CHECK: rrxlt r9, r12 1435# CHECK: rrxsge r8, r3 1436 14370x4f 0xea 0x32 0x01 14380x5f 0xea 0x32 0x01 14390xb4 0xbf 14400x4f 0xea 0x3c 0x09 14410x5f 0xea 0x33 0x08 1442 1443#------------------------------------------------------------------------------ 1444# RSB (immediate) 1445#------------------------------------------------------------------------------ 1446# CHECK: rsb.w r2, r5, #1044480 1447# CHECK: rsbs.w r3, r12, #15 1448# CHECK: rsb.w r1, r1, #255 1449 14500xc5 0xf5 0x7f 0x22 14510xdc 0xf1 0x0f 0x03 14520xc1 0xf1 0xff 0x01 1453 1454 1455#------------------------------------------------------------------------------ 1456# RSB (register) 1457#------------------------------------------------------------------------------ 1458# CHECK: rsb r4, r4, r8 1459# CHECK: rsb r4, r9, r8 1460# CHECK: rsb r1, r4, r8, asr #3 1461# CHECK: rsbs r2, r1, r7, lsl #1 1462 14630xc4 0xeb 0x08 0x04 14640xc9 0xeb 0x08 0x04 14650xc4 0xeb 0xe8 0x01 14660xd1 0xeb 0x47 0x02 1467 1468 1469#------------------------------------------------------------------------------ 1470# SADD16 1471#------------------------------------------------------------------------------ 1472# CHECK: sadd16 r3, r4, r8 1473# CHECK: it ne 1474# CHECK: sadd16ne r3, r4, r8 1475 14760x94 0xfa 0x08 0xf3 14770x18 0xbf 14780x94 0xfa 0x08 0xf3 1479 1480 1481#------------------------------------------------------------------------------ 1482# SADD8 1483#------------------------------------------------------------------------------ 1484# CHECK: sadd8 r3, r4, r8 1485# CHECK: it ne 1486# CHECK: sadd8ne r3, r4, r8 1487 14880x84 0xfa 0x08 0xf3 14890x18 0xbf 14900x84 0xfa 0x08 0xf3 1491 1492 1493#------------------------------------------------------------------------------ 1494# SASX 1495#------------------------------------------------------------------------------ 1496# CHECK: sasx r9, r2, r7 1497# CHECK: it ne 1498# CHECK: sasxne r2, r5, r6 1499 15000xa2 0xfa 0x07 0xf9 15010x18 0xbf 15020xa5 0xfa 0x06 0xf2 1503 1504 1505#------------------------------------------------------------------------------ 1506# SBC (immediate) 1507#------------------------------------------------------------------------------ 1508# CHECK: sbc r0, r1, #4 1509# CHECK: sbcs r0, r1, #0 1510# CHECK: sbc r1, r2, #255 1511# CHECK: sbc r3, r7, #5570645 1512# CHECK: sbc r8, r12, #2852170240 1513# CHECK: sbc r9, r7, #2779096485 1514# CHECK: sbc r5, r3, #2264924160 1515# CHECK: sbc r4, r2, #2139095040 1516# CHECK: sbc r4, r2, #1664 1517 15180x61 0xf1 0x04 0x00 15190x71 0xf1 0x00 0x00 15200x62 0xf1 0xff 0x01 15210x67 0xf1 0x55 0x13 15220x6c 0xf1 0xaa 0x28 15230x67 0xf1 0xa5 0x39 15240x63 0xf1 0x07 0x45 15250x62 0xf1 0xff 0x44 15260x62 0xf5 0xd0 0x64 1527 1528 1529#------------------------------------------------------------------------------ 1530# SBC (register) 1531#------------------------------------------------------------------------------ 1532# CHECK: sbc.w r4, r5, r6 1533# CHECK: sbcs.w r4, r5, r6 1534# CHECK: sbc.w r9, r1, r3 1535# CHECK: sbcs.w r9, r1, r3 1536# CHECK: sbc.w r0, r1, r3, ror #4 1537# CHECK: sbcs.w r0, r1, r3, lsl #7 1538# CHECK: sbc.w r0, r1, r3, lsr #31 1539# CHECK: sbcs.w r0, r1, r3, asr #32 1540 15410x65 0xeb 0x06 0x04 15420x75 0xeb 0x06 0x04 15430x61 0xeb 0x03 0x09 15440x71 0xeb 0x03 0x09 15450x61 0xeb 0x33 0x10 15460x71 0xeb 0xc3 0x10 15470x61 0xeb 0xd3 0x70 15480x71 0xeb 0x23 0x00 1549 1550 1551#------------------------------------------------------------------------------ 1552# SBFX 1553#------------------------------------------------------------------------------ 1554# CHECK: sbfx r4, r5, #16, #1 1555# CHECK: it gt 1556# CHECK: sbfxgt r4, r5, #16, #16 1557 15580x45 0xf3 0x00 0x44 15590xc8 0xbf 15600x45 0xf3 0x0f 0x44 1561 1562 1563#------------------------------------------------------------------------------ 1564# SEL 1565#------------------------------------------------------------------------------ 1566# CHECK: sel r5, r9, r2 1567# CHECK: it le 1568# CHECK: selle r5, r9, r2 1569 15700xa9 0xfa 0x82 0xf5 15710xd8 0xbf 15720xa9 0xfa 0x82 0xf5 1573 1574 1575#------------------------------------------------------------------------------ 1576# SEV 1577#------------------------------------------------------------------------------ 1578# CHECK: sev.w 1579# CHECK: it eq 1580# CHECK: seveq.w 1581 15820xaf 0xf3 0x04 0x80 15830x08 0xbf 15840xaf 0xf3 0x04 0x80 1585 1586 1587#------------------------------------------------------------------------------ 1588# SADD16/SADD8 1589#------------------------------------------------------------------------------ 1590# CHECK: sadd16 r1, r2, r3 1591# CHECK: sadd8 r1, r2, r3 1592# CHECK: ite gt 1593# CHECK: sadd16gt r1, r2, r3 1594# CHECK: sadd8le r1, r2, r3 1595 15960x92 0xfa 0x03 0xf1 15970x82 0xfa 0x03 0xf1 15980xcc 0xbf 15990x92 0xfa 0x03 0xf1 16000x82 0xfa 0x03 0xf1 1601 1602 1603#------------------------------------------------------------------------------ 1604# SHASX 1605#------------------------------------------------------------------------------ 1606# CHECK: shasx r4, r8, r2 1607# CHECK: it gt 1608# CHECK: shasxgt r4, r8, r2 1609 16100xa8 0xfa 0x22 0xf4 16110xc8 0xbf 16120xa8 0xfa 0x22 0xf4 1613 1614 1615#------------------------------------------------------------------------------ 1616# SHASX 1617#------------------------------------------------------------------------------ 1618# CHECK: shsax r4, r8, r2 1619# CHECK: it gt 1620# CHECK: shsaxgt r4, r8, r2 1621 16220xe8 0xfa 0x22 0xf4 16230xc8 0xbf 16240xe8 0xfa 0x22 0xf4 1625 1626 1627#------------------------------------------------------------------------------ 1628# SHSUB16/SHSUB8 1629#------------------------------------------------------------------------------ 1630# CHECK: shsub16 r4, r8, r2 1631# CHECK: shsub8 r4, r8, r2 1632# CHECK: itt gt 1633# CHECK: shsub16gt r4, r8, r2 1634# CHECK: shsub8gt r4, r8, r2 1635 16360xd8 0xfa 0x22 0xf4 16370xc8 0xfa 0x22 0xf4 16380xc4 0xbf 16390xd8 0xfa 0x22 0xf4 16400xc8 0xfa 0x22 0xf4 1641 1642 1643#------------------------------------------------------------------------------ 1644# SMLABB/SMLABT/SMLATB/SMLATT 1645#------------------------------------------------------------------------------ 1646# CHECK: smlabb r3, r1, r9, r0 1647# CHECK: smlabt r5, r6, r4, r1 1648# CHECK: smlatb r4, r2, r3, r2 1649# CHECK: smlatt r8, r3, r8, r4 1650# CHECK: itete gt 1651# CHECK: smlabbgt r3, r1, r9, r0 1652# CHECK: smlabtle r5, r6, r4, r1 1653# CHECK: smlatbgt r4, r2, r3, r2 1654# CHECK: smlattle r8, r3, r8, r4 1655 16560x11 0xfb 0x09 0x03 16570x16 0xfb 0x14 0x15 16580x12 0xfb 0x23 0x24 16590x13 0xfb 0x38 0x48 16600xcb 0xbf 16610x11 0xfb 0x09 0x03 16620x16 0xfb 0x14 0x15 16630x12 0xfb 0x23 0x24 16640x13 0xfb 0x38 0x48 1665 1666 1667#------------------------------------------------------------------------------ 1668# SMLAD/SMLADX 1669#------------------------------------------------------------------------------ 1670# CHECK: smlad r2, r3, r5, r8 1671# CHECK: smladx r2, r3, r5, r8 1672# CHECK: itt hi 1673# CHECK: smladhi r2, r3, r5, r8 1674# CHECK: smladxhi r2, r3, r5, r8 1675 16760x23 0xfb 0x05 0x82 16770x23 0xfb 0x15 0x82 16780x84 0xbf 16790x23 0xfb 0x05 0x82 16800x23 0xfb 0x15 0x82 1681 1682 1683#------------------------------------------------------------------------------ 1684# SMLAL 1685#------------------------------------------------------------------------------ 1686# CHECK: smlal r2, r3, r5, r8 1687# CHECK: it eq 1688# CHECK: smlaleq r2, r3, r5, r8 1689 16900xc5 0xfb 0x08 0x23 16910x08 0xbf 16920xc5 0xfb 0x08 0x23 1693 1694 1695#------------------------------------------------------------------------------ 1696# SMLALBB/SMLALBT/SMLALTB/SMLALTT 1697#------------------------------------------------------------------------------ 1698# CHECK: smlalbb r3, r1, r9, r0 1699# CHECK: smlalbt r5, r6, r4, r1 1700# CHECK: smlaltb r4, r2, r3, r2 1701# CHECK: smlaltt r8, r3, r8, r4 1702# CHECK: iteet ge 1703# CHECK: smlalbbge r3, r1, r9, r0 1704# CHECK: smlalbtlt r5, r6, r4, r1 1705# CHECK: smlaltblt r4, r2, r3, r2 1706# CHECK: smlalttge r8, r3, r8, r4 1707 17080xc9 0xfb 0x80 0x31 17090xc4 0xfb 0x91 0x56 17100xc3 0xfb 0xa2 0x42 17110xc8 0xfb 0xb4 0x83 17120xad 0xbf 17130xc9 0xfb 0x80 0x31 17140xc4 0xfb 0x91 0x56 17150xc3 0xfb 0xa2 0x42 17160xc8 0xfb 0xb4 0x83 1717 1718#------------------------------------------------------------------------------ 1719# SMLALD/SMLALDX 1720#------------------------------------------------------------------------------ 1721# CHECK: smlald r2, r3, r5, r8 1722# CHECK: smlaldx r2, r3, r5, r8 1723# CHECK: ite eq 1724# CHECK: smlaldeq r2, r3, r5, r8 1725# CHECK: smlaldxne r2, r3, r5, r8 1726 17270xc5 0xfb 0xc8 0x23 17280xc5 0xfb 0xd8 0x23 17290x0c 0xbf 17300xc5 0xfb 0xc8 0x23 17310xc5 0xfb 0xd8 0x23 1732 1733 1734#------------------------------------------------------------------------------ 1735# SMLAWB/SMLAWT 1736#------------------------------------------------------------------------------ 1737# CHECK: smlawb r2, r3, r10, r8 1738# CHECK: smlawt r8, r3, r5, r9 1739# CHECK: ite eq 1740# CHECK: smlawbeq r2, r7, r5, r8 1741# CHECK: smlawtne r1, r3, r0, r8 1742 17430x33 0xfb 0x0a 0x82 17440x33 0xfb 0x15 0x98 17450x0c 0xbf 17460x37 0xfb 0x05 0x82 17470x33 0xfb 0x10 0x81 1748 1749 1750#------------------------------------------------------------------------------ 1751# SMLSD/SMLSDX 1752#------------------------------------------------------------------------------ 1753# CHECK: smlsd r2, r3, r5, r8 1754# CHECK: smlsdx r2, r3, r5, r8 1755# CHECK: ite le 1756# CHECK: smlsdle r2, r3, r5, r8 1757# CHECK: smlsdxgt r2, r3, r5, r8 1758 17590x43 0xfb 0x05 0x82 17600x43 0xfb 0x15 0x82 17610xd4 0xbf 17620x43 0xfb 0x05 0x82 17630x43 0xfb 0x15 0x82 1764 1765 1766#------------------------------------------------------------------------------ 1767# SMLSLD/SMLSLDX 1768#------------------------------------------------------------------------------ 1769# CHECK: smlsld r2, r9, r5, r1 1770# CHECK: smlsldx r4, r11, r2, r8 1771# CHECK: ite ge 1772# CHECK: smlsldge r8, r2, r5, r6 1773# CHECK: smlsldxlt r1, r0, r3, r8 1774 17750xd5 0xfb 0xc1 0x29 17760xd2 0xfb 0xd8 0x4b 17770xac 0xbf 17780xd5 0xfb 0xc6 0x82 17790xd3 0xfb 0xd8 0x10 1780 1781 1782#------------------------------------------------------------------------------ 1783# SMMLA/SMMLAR 1784#------------------------------------------------------------------------------ 1785# CHECK: smmla r1, r2, r3, r4 1786# CHECK: smmlar r4, r3, r2, r1 1787# CHECK: ite lo 1788# CHECK: smmlalo r1, r2, r3, r4 1789# CHECK: smmlarhs r4, r3, r2, r1 1790 17910x52 0xfb 0x03 0x41 17920x53 0xfb 0x12 0x14 17930x34 0xbf 17940x52 0xfb 0x03 0x41 17950x53 0xfb 0x12 0x14 1796 1797 1798#------------------------------------------------------------------------------ 1799# SMMLS/SMMLSR 1800#------------------------------------------------------------------------------ 1801# CHECK: smmls r1, r2, r3, r4 1802# CHECK: smmlsr r4, r3, r2, r1 1803# CHECK: ite lo 1804# CHECK: smmlslo r1, r2, r3, r4 1805# CHECK: smmlsrhs r4, r3, r2, r1 1806 18070x62 0xfb 0x03 0x41 18080x63 0xfb 0x12 0x14 18090x34 0xbf 18100x62 0xfb 0x03 0x41 18110x63 0xfb 0x12 0x14 1812 1813#------------------------------------------------------------------------------ 1814# SSAT 1815#------------------------------------------------------------------------------ 1816# CHECK: ssat r9, #30, r0, asr #2 1817 18180x20 0xf3 0x9d 0x09 1819 1820#------------------------------------------------------------------------------ 1821# STR (immediate) 1822#------------------------------------------------------------------------------ 1823# CHECK: str r10, [r11], #0 1824 18250x4b 0xf8 0x00 0xab 1826 1827#------------------------------------------------------------------------------ 1828# STRD (immediate) 1829#------------------------------------------------------------------------------ 1830# CHECK: strd r6, r3, [r5], #-8 1831# CHECK: strd r8, r5, [r5], #-0 1832# CHECK: strd r7, r4, [r5], #-4 1833# CHECK: strd r0, r1, [r2, #-0]! 1834# CHECK: strd r0, r1, [r2, #-0] 1835 18360x65 0xe8 0x02 0x63 18370x65 0xe8 0x00 0x85 18380x65 0xe8 0x01 0x74 18390x62 0xe9 0x00 0x01 18400x42 0xe9 0x00 0x01 1841 1842#------------------------------------------------------------------------------ 1843# STREX/STREXB/STREXH/STREXD 1844#------------------------------------------------------------------------------ 1845# CHECK: strex r1, r8, [r4] 1846# CHECK: strex r8, r2, [r4] 1847# CHECK: strex r2, r12, [sp, #128] 1848# CHECK: strexb r5, r1, [r7] 1849# CHECK: strexh r9, r7, [r12] 1850# CHECK: strexd r9, r3, r6, [r4] 1851 18520x44 0xe8 0x00 0x81 18530x44 0xe8 0x00 0x28 18540x4d 0xe8 0x20 0xc2 18550xc7 0xe8 0x45 0x1f 18560xcc 0xe8 0x59 0x7f 18570xc4 0xe8 0x79 0x36 1858 1859 1860#------------------------------------------------------------------------------ 1861# STRH(immediate) 1862#------------------------------------------------------------------------------ 1863# CHECK: strh r5, [r5, #-4] 1864# CHECK: strh r5, [r6, #32] 1865# CHECK: strh.w r5, [r6, #33] 1866# CHECK: strh.w r5, [r6, #257] 1867# CHECK: strh.w lr, [r7, #257] 1868# CHECK: strh r5, [r8, #255]! 1869# CHECK: strh r2, [r5, #4]! 1870# CHECK: strh r1, [r4, #-4]! 1871# CHECK: strh lr, [r3], #255 1872# CHECK: strh r9, [r2], #4 1873# CHECK: strh r3, [sp], #-4 1874 18750x25 0xf8 0x04 0x5c 18760x35 0x84 18770xa6 0xf8 0x21 0x50 18780xa6 0xf8 0x01 0x51 18790xa7 0xf8 0x01 0xe1 18800x28 0xf8 0xff 0x5f 18810x25 0xf8 0x04 0x2f 18820x24 0xf8 0x04 0x1d 18830x23 0xf8 0xff 0xeb 18840x22 0xf8 0x04 0x9b 18850x2d 0xf8 0x04 0x39 1886 1887 1888#------------------------------------------------------------------------------ 1889# STRH(register) 1890#------------------------------------------------------------------------------ 1891# CHECK: strh.w r1, [r8, r1] 1892# CHECK: strh.w r4, [r5, r2] 1893# CHECK: strh.w r6, [r0, r2, lsl #3] 1894# CHECK: strh.w r8, [r8, r2, lsl #2] 1895# CHECK: strh.w r7, [sp, r2, lsl #1] 1896# CHECK: strh.w r7, [sp, r2] 1897 18980x28 0xf8 0x01 0x10 18990x25 0xf8 0x02 0x40 19000x20 0xf8 0x32 0x60 19010x28 0xf8 0x22 0x80 19020x2d 0xf8 0x12 0x70 19030x2d 0xf8 0x02 0x70 1904 1905 1906#------------------------------------------------------------------------------ 1907# STRHT 1908#------------------------------------------------------------------------------ 1909# CHECK: strht r1, [r2] 1910# CHECK: strht r1, [r8] 1911# CHECK: strht r1, [r8, #3] 1912# CHECK: strht r1, [r8, #255] 1913 19140x22 0xf8 0x00 0x1e 19150x28 0xf8 0x00 0x1e 19160x28 0xf8 0x03 0x1e 19170x28 0xf8 0xff 0x1e 1918 1919 1920#------------------------------------------------------------------------------ 1921# STRT 1922#------------------------------------------------------------------------------ 1923# CHECK: strt r1, [r2] 1924# CHECK: strt r1, [r8] 1925# CHECK: strt r1, [r8, #3] 1926# CHECK: strt r1, [r8, #255] 1927 19280x42 0xf8 0x00 0x1e 19290x48 0xf8 0x00 0x1e 19300x48 0xf8 0x03 0x1e 19310x48 0xf8 0xff 0x1e 1932 1933 1934#------------------------------------------------------------------------------ 1935# SUB (immediate) 1936#------------------------------------------------------------------------------ 1937# CHECK: itet eq 1938# CHECK: subeq r1, r2, #4 1939# CHECK: subwne r5, r3, #1023 1940# CHECK: subweq r4, r5, #293 1941# CHECK: sub.w r2, sp, #1024 1942# CHECK: sub.w r2, r8, #65280 1943# CHECK: subw r2, r3, #257 1944# CHECK: sub.w r12, r6, #256 1945# CHECK: subw r12, r6, #256 1946# CHECK: subs.w r1, r2, #496 1947 19480x0a 0xbf 19490x11 0x1f 19500xa3 0xf2 0xff 0x35 19510xa5 0xf2 0x25 0x14 19520xad 0xf5 0x80 0x62 19530xa8 0xf5 0x7f 0x42 19540xa3 0xf2 0x01 0x12 19550xa6 0xf5 0x80 0x7c 19560xa6 0xf2 0x00 0x1c 19570xb2 0xf5 0xf8 0x71 1958 1959 1960#------------------------------------------------------------------------------ 1961# SUB (register) 1962#------------------------------------------------------------------------------ 1963# CHECK: sub.w r4, r5, r6 1964# CHECK: sub.w r4, r5, r6, lsl #5 1965# CHECK: sub.w r4, r5, r6, lsr #5 1966# CHECK: sub.w r4, r5, r6, lsr #5 1967# CHECK: sub.w r4, r5, r6, asr #5 1968# CHECK: sub.w r4, r5, r6, ror #5 1969# CHECK: sub.w r5, r2, r12, rrx 1970 19710xa5 0xeb 0x06 0x04 19720xa5 0xeb 0x46 0x14 19730xa5 0xeb 0x56 0x14 19740xa5 0xeb 0x56 0x14 19750xa5 0xeb 0x66 0x14 19760xa5 0xeb 0x76 0x14 19770xa2 0xeb 0x3c 0x05 1978 1979 1980#------------------------------------------------------------------------------ 1981# SVC 1982#------------------------------------------------------------------------------ 1983# CHECK: svc #0 1984# CHECK: ite eq 1985# CHECK: svceq #255 1986# CHECK: svcne #33 1987 19880x00 0xdf 19890x0c 0xbf 19900xff 0xdf 19910x21 0xdf 1992 1993#------------------------------------------------------------------------------ 1994# SXTAB 1995#------------------------------------------------------------------------------ 1996# CHECK: sxtab r2, r3, r4 1997# CHECK: sxtab r4, r5, r6 1998# CHECK: it lt 1999# CHECK: sxtablt r6, r2, r9, ror #8 2000# CHECK: sxtab r5, r1, r4, ror #16 2001# CHECK: sxtab r7, r8, r3, ror #24 2002 20030x43 0xfa 0x84 0xf2 20040x45 0xfa 0x86 0xf4 20050xb8 0xbf 20060x42 0xfa 0x99 0xf6 20070x41 0xfa 0xa4 0xf5 20080x48 0xfa 0xb3 0xf7 2009 2010 2011#------------------------------------------------------------------------------ 2012# SXTAB16 2013#------------------------------------------------------------------------------ 2014# CHECK: sxtab16 r6, r2, r7 2015# CHECK: sxtab16 r3, r5, r8, ror #8 2016# CHECK: sxtab16 r3, r2, r1, ror #16 2017# CHECK: ite ne 2018# CHECK: sxtab16ne r0, r1, r4 2019# CHECK: sxtab16eq r1, r2, r3, ror #24 2020 20210x22 0xfa 0x87 0xf6 20220x25 0xfa 0x98 0xf3 20230x22 0xfa 0xa1 0xf3 20240x14 0xbf 20250x21 0xfa 0x84 0xf0 20260x22 0xfa 0xb3 0xf1 2027 2028 2029#------------------------------------------------------------------------------ 2030# SXTAH 2031#------------------------------------------------------------------------------ 2032# CHECK: sxtah r1, r3, r9 2033# CHECK: sxtah r3, r8, r3, ror #8 2034# CHECK: sxtah r9, r3, r3, ror #24 2035# CHECK: ite hi 2036# CHECK: sxtahhi r6, r1, r6 2037# CHECK: sxtahls r2, r2, r4, ror #16 2038 20390x03 0xfa 0x89 0xf1 20400x08 0xfa 0x93 0xf3 20410x03 0xfa 0xb3 0xf9 20420x8c 0xbf 20430x01 0xfa 0x86 0xf6 20440x02 0xfa 0xa4 0xf2 2045 2046 2047#------------------------------------------------------------------------------ 2048# SXTB 2049#------------------------------------------------------------------------------ 2050# CHECK: sxtb r5, r6 2051# CHECK: sxtb.w r6, r9, ror #8 2052# CHECK: sxtb.w r8, r3, ror #24 2053# CHECK: ite ge 2054# CHECK: sxtbge r2, r4 2055# CHECK: sxtblt.w r5, r1, ror #16 2056 20570x75 0xb2 20580x4f 0xfa 0x99 0xf6 20590x4f 0xfa 0xb3 0xf8 20600xac 0xbf 20610x62 0xb2 20620x4f 0xfa 0xa1 0xf5 2063 2064 2065#------------------------------------------------------------------------------ 2066# SXTB16 2067#------------------------------------------------------------------------------ 2068# CHECK: sxtb16 r1, r4 2069# CHECK: sxtb16 r6, r7 2070# CHECK: sxtb16 r3, r1, ror #16 2071# CHECK: ite hs 2072# CHECK: sxtb16hs r3, r5, ror #8 2073# CHECK: sxtb16lo r2, r3, ror #24 2074 20750x2f 0xfa 0x84 0xf1 20760x2f 0xfa 0x87 0xf6 20770x2f 0xfa 0xa1 0xf3 20780x2c 0xbf 20790x2f 0xfa 0x95 0xf3 20800x2f 0xfa 0xb3 0xf2 2081 2082 2083#------------------------------------------------------------------------------ 2084# SXTH 2085#------------------------------------------------------------------------------ 2086# CHECK: sxth r1, r6 2087# CHECK: sxth.w r3, r8, ror #8 2088# CHECK: sxth.w r9, r3, ror #24 2089# CHECK: itt ne 2090# CHECK: sxthne.w r3, r9 2091# CHECK: sxthne.w r2, r2, ror #16 2092 20930x31 0xb2 20940x0f 0xfa 0x98 0xf3 20950x0f 0xfa 0xb3 0xf9 20960x1c 0xbf 20970x0f 0xfa 0x89 0xf3 20980x0f 0xfa 0xa2 0xf2 2099 2100 2101#------------------------------------------------------------------------------ 2102# SXTB 2103#------------------------------------------------------------------------------ 2104# CHECK: sxtb r5, r6 2105# CHECK: sxtb.w r6, r9, ror #8 2106# CHECK: sxtb.w r8, r3, ror #24 2107# CHECK: ite ge 2108# CHECK: sxtbge r2, r4 2109# CHECK: sxtblt.w r5, r1, ror #16 2110 21110x75 0xb2 21120x4f 0xfa 0x99 0xf6 21130x4f 0xfa 0xb3 0xf8 21140xac 0xbf 21150x62 0xb2 21160x4f 0xfa 0xa1 0xf5 2117 2118 2119#------------------------------------------------------------------------------ 2120# SXTB16 2121#------------------------------------------------------------------------------ 2122# CHECK: sxtb16 r1, r4 2123# CHECK: sxtb16 r6, r7 2124# CHECK: sxtb16 r3, r1, ror #16 2125# CHECK: ite hs 2126# CHECK: sxtb16hs r3, r5, ror #8 2127# CHECK: sxtb16lo r2, r3, ror #24 2128 21290x2f 0xfa 0x84 0xf1 21300x2f 0xfa 0x87 0xf6 21310x2f 0xfa 0xa1 0xf3 21320x2c 0xbf 21330x2f 0xfa 0x95 0xf3 21340x2f 0xfa 0xb3 0xf2 2135 2136 2137#------------------------------------------------------------------------------ 2138# SXTH 2139#------------------------------------------------------------------------------ 2140# CHECK: sxth r1, r6 2141# CHECK: sxth.w r3, r8, ror #8 2142# CHECK: sxth.w r9, r3, ror #24 2143# CHECK: itt ne 2144# CHECK: sxthne.w r3, r9 2145# CHECK: sxthne.w r2, r2, ror #16 2146 21470x31 0xb2 21480x0f 0xfa 0x98 0xf3 21490x0f 0xfa 0xb3 0xf9 21500x1c 0xbf 21510x0f 0xfa 0x89 0xf3 21520x0f 0xfa 0xa2 0xf2 2153 2154 2155#------------------------------------------------------------------------------ 2156# TBB/TBH 2157#------------------------------------------------------------------------------ 2158# CHECK: tbb [r3, r8] 2159# CHECK: tbh [r3, r8, lsl #1] 2160# CHECK: it eq 2161# CHECK: tbbeq [r3, r8] 2162# CHECK: it hs 2163# CHECK: tbhhs [r3, r8, lsl #1] 2164 21650xd3 0xe8 0x08 0xf0 21660xd3 0xe8 0x18 0xf0 21670x08 0xbf 21680xd3 0xe8 0x08 0xf0 21690x28 0xbf 21700xd3 0xe8 0x18 0xf0 2171 2172 2173#------------------------------------------------------------------------------ 2174# TEQ 2175#------------------------------------------------------------------------------ 2176# CHECK: teq.w r5, #61440 2177# CHECK: teq.w r4, r5 2178# CHECK: teq.w r4, r5, lsl #5 2179# CHECK: teq.w r4, r5, lsr #5 2180# CHECK: teq.w r4, r5, lsr #5 2181# CHECK: teq.w r4, r5, asr #5 2182# CHECK: teq.w r4, r5, ror #5 2183 21840x95 0xf4 0x70 0x4f 21850x94 0xea 0x05 0x0f 21860x94 0xea 0x45 0x1f 21870x94 0xea 0x55 0x1f 21880x94 0xea 0x55 0x1f 21890x94 0xea 0x65 0x1f 21900x94 0xea 0x75 0x1f 2191 2192 2193#------------------------------------------------------------------------------ 2194# TST 2195#------------------------------------------------------------------------------ 2196# CHECK: tst.w r5, #61440 2197# CHECK: tst r2, r5 2198# CHECK: tst.w r3, r12, lsl #5 2199# CHECK: tst.w r4, r11, lsr #4 2200# CHECK: tst.w r5, r10, lsr #12 2201# CHECK: tst.w r6, r9, asr #30 2202# CHECK: tst.w r7, r8, ror #2 2203 22040x15 0xf4 0x70 0x4f 22050x2a 0x42 22060x13 0xea 0x4c 0x1f 22070x14 0xea 0x1b 0x1f 22080x15 0xea 0x1a 0x3f 22090x16 0xea 0xa9 0x7f 22100x17 0xea 0xb8 0x0f 2211 2212 2213#------------------------------------------------------------------------------ 2214# UADD16/UADD8 2215#------------------------------------------------------------------------------ 2216# CHECK: uadd16 r1, r2, r3 2217# CHECK: uadd8 r1, r2, r3 2218# CHECK: ite gt 2219# CHECK: uadd16gt r1, r2, r3 2220# CHECK: uadd8le r1, r2, r3 2221 22220x92 0xfa 0x43 0xf1 22230x82 0xfa 0x43 0xf1 22240xcc 0xbf 22250x92 0xfa 0x43 0xf1 22260x82 0xfa 0x43 0xf1 2227 2228 2229#------------------------------------------------------------------------------ 2230# UASX 2231#------------------------------------------------------------------------------ 2232# CHECK: uasx r9, r12, r0 2233# CHECK: it eq 2234# CHECK: uasxeq r9, r12, r0 2235# CHECK: uasx r9, r12, r0 2236# CHECK: it eq 2237# CHECK: uasxeq r9, r12, r0 2238 22390xac 0xfa 0x40 0xf9 22400x08 0xbf 22410xac 0xfa 0x40 0xf9 22420xac 0xfa 0x40 0xf9 22430x08 0xbf 22440xac 0xfa 0x40 0xf9 2245 2246 2247#------------------------------------------------------------------------------ 2248# UBFX 2249#------------------------------------------------------------------------------ 2250# CHECK: ubfx r4, r5, #16, #1 2251# CHECK: it gt 2252# CHECK: ubfxgt r4, r5, #16, #16 2253 22540xc5 0xf3 0x00 0x44 22550xc8 0xbf 22560xc5 0xf3 0x0f 0x44 2257 2258 2259#------------------------------------------------------------------------------ 2260# UHADD16/UHADD8 2261#------------------------------------------------------------------------------ 2262# CHECK: uhadd16 r4, r8, r2 2263# CHECK: uhadd8 r4, r8, r2 2264# CHECK: itt gt 2265# CHECK: uhadd16gt r4, r8, r2 2266# CHECK: uhadd8gt r4, r8, r2 2267 22680x98 0xfa 0x62 0xf4 22690x88 0xfa 0x62 0xf4 22700xc4 0xbf 22710x98 0xfa 0x62 0xf4 22720x88 0xfa 0x62 0xf4 2273 2274 2275#------------------------------------------------------------------------------ 2276# UHASX/UHSAX 2277#------------------------------------------------------------------------------ 2278# CHECK: uhasx r4, r1, r5 2279# CHECK: uhsax r5, r6, r6 2280# CHECK: itt gt 2281# CHECK: uhasxgt r6, r9, r8 2282# CHECK: uhsaxgt r7, r8, r12 2283 22840xa1 0xfa 0x65 0xf4 22850xe6 0xfa 0x66 0xf5 22860xc4 0xbf 22870xa9 0xfa 0x68 0xf6 22880xe8 0xfa 0x6c 0xf7 2289 2290#------------------------------------------------------------------------------ 2291# UHSUB16/UHSUB8 2292#------------------------------------------------------------------------------ 2293# CHECK: uhsub16 r5, r8, r3 2294# CHECK: uhsub8 r1, r7, r6 2295# CHECK: itt lt 2296# CHECK: uhsub16lt r4, r9, r12 2297# CHECK: uhsub8lt r3, r1, r5 2298 22990xd8 0xfa 0x63 0xf5 23000xc7 0xfa 0x66 0xf1 23010xbc 0xbf 23020xd9 0xfa 0x6c 0xf4 23030xc1 0xfa 0x65 0xf3 2304 2305 2306#------------------------------------------------------------------------------ 2307# UMAAL 2308#------------------------------------------------------------------------------ 2309# CHECK: umaal r3, r4, r5, r6 2310# CHECK: it lt 2311# CHECK: umaallt r3, r4, r5, r6 2312 23130xe5 0xfb 0x66 0x34 23140xb8 0xbf 23150xe5 0xfb 0x66 0x34 2316 2317 2318#------------------------------------------------------------------------------ 2319# UMLAL 2320#------------------------------------------------------------------------------ 2321# CHECK: umlal r2, r4, r6, r8 2322# CHECK: it gt 2323# CHECK: umlalgt r6, r1, r2, r6 2324 23250xe6 0xfb 0x08 0x24 23260xc8 0xbf 23270xe2 0xfb 0x06 0x61 2328 2329 2330#------------------------------------------------------------------------------ 2331# UMULL 2332#------------------------------------------------------------------------------ 2333# CHECK: umull r2, r4, r6, r8 2334# CHECK: it gt 2335# CHECK: umullgt r6, r1, r2, r6 2336 23370xa6 0xfb 0x08 0x24 23380xc8 0xbf 23390xa2 0xfb 0x06 0x61 2340 2341 2342#------------------------------------------------------------------------------ 2343# UQADD16/UQADD8 2344#------------------------------------------------------------------------------ 2345# CHECK: uqadd16 r1, r2, r3 2346# CHECK: uqadd8 r3, r4, r8 2347# CHECK: ite gt 2348# CHECK: uqadd16gt r4, r7, r9 2349# CHECK: uqadd8le r8, r1, r2 2350 23510x92 0xfa 0x53 0xf1 23520x84 0xfa 0x58 0xf3 23530xcc 0xbf 23540x97 0xfa 0x59 0xf4 23550x81 0xfa 0x52 0xf8 2356 2357 2358#------------------------------------------------------------------------------ 2359# UQASX/UQSAX 2360#------------------------------------------------------------------------------ 2361# CHECK: uqasx r1, r2, r3 2362# CHECK: uqsax r3, r4, r8 2363# CHECK: ite gt 2364# CHECK: uqasxgt r4, r7, r9 2365# CHECK: uqsaxle r8, r1, r2 2366 23670xa2 0xfa 0x53 0xf1 23680xe4 0xfa 0x58 0xf3 23690xcc 0xbf 23700xa7 0xfa 0x59 0xf4 23710xe1 0xfa 0x52 0xf8 2372 2373 2374#------------------------------------------------------------------------------ 2375# UQSUB16/UQSUB8 2376#------------------------------------------------------------------------------ 2377# CHECK: uqsub8 r8, r2, r9 2378# CHECK: uqsub16 r1, r9, r7 2379# CHECK: ite gt 2380# CHECK: uqsub8gt r3, r1, r6 2381# CHECK: uqsub16le r4, r6, r4 2382 23830xc2 0xfa 0x59 0xf8 23840xd9 0xfa 0x57 0xf1 23850xcc 0xbf 23860xc1 0xfa 0x56 0xf3 23870xd6 0xfa 0x54 0xf4 2388 2389 2390#------------------------------------------------------------------------------ 2391# UQSUB16/UQSUB8 2392#------------------------------------------------------------------------------ 2393# CHECK: usad8 r1, r9, r7 2394# CHECK: usada8 r8, r2, r9, r12 2395# CHECK: ite gt 2396# CHECK: usada8gt r3, r1, r6, r9 2397# CHECK: usad8le r4, r6, r4 2398 23990x79 0xfb 0x07 0xf1 24000x72 0xfb 0x09 0xc8 24010xcc 0xbf 24020x71 0xfb 0x06 0x93 24030x76 0xfb 0x04 0xf4 2404 2405 2406#------------------------------------------------------------------------------ 2407# USAT 2408#------------------------------------------------------------------------------ 2409# CHECK: usat r8, #1, r10 2410# CHECK: usat r8, #4, r10 2411# CHECK: usat r8, #5, r10, lsl #31 2412# CHECK: usat r8, #16, r10, asr #1 2413 24140x8a 0xf3 0x01 0x08 24150x8a 0xf3 0x04 0x08 24160x8a 0xf3 0xc5 0x78 24170xaa 0xf3 0x50 0x08 2418 2419 2420#------------------------------------------------------------------------------ 2421# USAT16 2422#------------------------------------------------------------------------------ 2423# CHECK: usat16 r2, #2, r7 2424# CHECK: usat16 r3, #15, r5 2425 24260xa7 0xf3 0x02 0x02 24270xa5 0xf3 0x0f 0x03 2428 2429 2430#------------------------------------------------------------------------------ 2431# USAX 2432#------------------------------------------------------------------------------ 2433# CHECK: usax r2, r3, r4 2434# CHECK: it ne 2435# CHECK: usaxne r6, r1, r9 2436# CHECK: usax r2, r3, r4 2437# CHECK: it ne 2438# CHECK: usaxne r6, r1, r9 2439 24400xe3 0xfa 0x44 0xf2 24410x18 0xbf 24420xe1 0xfa 0x49 0xf6 24430xe3 0xfa 0x44 0xf2 24440x18 0xbf 24450xe1 0xfa 0x49 0xf6 2446 2447 2448#------------------------------------------------------------------------------ 2449# USUB16/USUB8 2450#------------------------------------------------------------------------------ 2451# CHECK: usub16 r4, r2, r7 2452# CHECK: usub8 r1, r8, r5 2453# CHECK: ite hi 2454# CHECK: usub16hi r1, r1, r3 2455# CHECK: usub8ls r9, r2, r3 2456 24570xd2 0xfa 0x47 0xf4 24580xc8 0xfa 0x45 0xf1 24590x8c 0xbf 24600xd1 0xfa 0x43 0xf1 24610xc2 0xfa 0x43 0xf9 2462 2463 2464#------------------------------------------------------------------------------ 2465# UXTAB 2466#------------------------------------------------------------------------------ 2467# CHECK: uxtab r2, r3, r4 2468# CHECK: uxtab r4, r5, r6 2469# CHECK: it lt 2470# CHECK: uxtablt r6, r2, r9, ror #8 2471# CHECK: uxtab r5, r1, r4, ror #16 2472# CHECK: uxtab r7, r8, r3, ror #24 2473 24740x53 0xfa 0x84 0xf2 24750x55 0xfa 0x86 0xf4 24760xb8 0xbf 24770x52 0xfa 0x99 0xf6 24780x51 0xfa 0xa4 0xf5 24790x58 0xfa 0xb3 0xf7 2480 2481 2482#------------------------------------------------------------------------------ 2483# UXTAB16 2484#------------------------------------------------------------------------------ 2485# CHECK: it ge 2486# CHECK: uxtab16ge r0, r1, r4 2487# CHECK: uxtab16 r6, r2, r7 2488# CHECK: uxtab16 r3, r5, r8, ror #8 2489# CHECK: uxtab16 r3, r2, r1, ror #16 2490# CHECK: it eq 2491# CHECK: uxtab16eq r1, r2, r3, ror #24 2492 24930xa8 0xbf 24940x31 0xfa 0x84 0xf0 24950x32 0xfa 0x87 0xf6 24960x35 0xfa 0x98 0xf3 24970x32 0xfa 0xa1 0xf3 24980x08 0xbf 24990x32 0xfa 0xb3 0xf1 2500 2501 2502#------------------------------------------------------------------------------ 2503# UXTAH 2504#------------------------------------------------------------------------------ 2505# CHECK: uxtah r1, r3, r9 2506# CHECK: it hi 2507# CHECK: uxtahhi r6, r1, r6 2508# CHECK: uxtah r3, r8, r3, ror #8 2509# CHECK: it lo 2510# CHECK: uxtahlo r2, r2, r4, ror #16 2511# CHECK: uxtah r9, r3, r3, ror #24 2512 25130x13 0xfa 0x89 0xf1 25140x88 0xbf 25150x11 0xfa 0x86 0xf6 25160x18 0xfa 0x93 0xf3 25170x38 0xbf 25180x12 0xfa 0xa4 0xf2 25190x13 0xfa 0xb3 0xf9 2520 2521 2522#------------------------------------------------------------------------------ 2523# UXTB 2524#------------------------------------------------------------------------------ 2525# CHECK: it ge 2526# CHECK: uxtbge r2, r4 2527# CHECK: uxtb r5, r6 2528# CHECK: uxtb.w r6, r9, ror #8 2529# CHECK: it lo 2530# CHECK: uxtblo.w r5, r1, ror #16 2531# CHECK: uxtb.w r8, r3, ror #24 2532 25330xa8 0xbf 25340xe2 0xb2 25350xf5 0xb2 25360x5f 0xfa 0x99 0xf6 25370x38 0xbf 25380x5f 0xfa 0xa1 0xf5 25390x5f 0xfa 0xb3 0xf8 2540 2541 2542#------------------------------------------------------------------------------ 2543# UXTB16 2544#------------------------------------------------------------------------------ 2545# CHECK: uxtb16 r1, r4 2546# CHECK: uxtb16 r6, r7 2547# CHECK: it hs 2548# CHECK: uxtb16hs r3, r5, ror #8 2549# CHECK: uxtb16 r3, r1, ror #16 2550# CHECK: it ge 2551# CHECK: uxtb16ge r2, r3, ror #24 2552 25530x3f 0xfa 0x84 0xf1 25540x3f 0xfa 0x87 0xf6 25550x28 0xbf 25560x3f 0xfa 0x95 0xf3 25570x3f 0xfa 0xa1 0xf3 25580xa8 0xbf 25590x3f 0xfa 0xb3 0xf2 2560 2561 2562#------------------------------------------------------------------------------ 2563# UXTH 2564#------------------------------------------------------------------------------ 2565# CHECK: it ne 2566# CHECK: uxthne.w r3, r9 2567# CHECK: uxth r1, r6 2568# CHECK: uxth.w r3, r8, ror #8 2569# CHECK: it le 2570# CHECK: uxthle.w r2, r2, ror #16 2571# CHECK: uxth.w r9, r3, ror #24 2572 25730x18 0xbf 25740x1f 0xfa 0x89 0xf3 25750xb1 0xb2 25760x1f 0xfa 0x98 0xf3 25770xd8 0xbf 25780x1f 0xfa 0xa2 0xf2 25790x1f 0xfa 0xb3 0xf9 2580 2581 2582#------------------------------------------------------------------------------ 2583# WFE/WFI/YIELD 2584#------------------------------------------------------------------------------ 2585# CHECK: wfe 2586# CHECK: wfi 2587# CHECK: yield 2588# CHECK: itet lt 2589# CHECK: wfelt 2590# CHECK: wfige 2591# CHECK: yieldlt 2592 25930x20 0xbf 25940x30 0xbf 25950x10 0xbf 25960xb6 0xbf 25970x20 0xbf 25980x30 0xbf 25990x10 0xbf 2600 2601