mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-08 21:47:23 +00:00
Port over more Thumb2 assembly tests to disassembly tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139912 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
cb574bb71e
commit
1070278efa
@ -408,6 +408,36 @@
|
||||
|
||||
0xbf 0xf3 0x6f 0x8f
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# IT
|
||||
#------------------------------------------------------------------------------
|
||||
# Test encodings of a few full IT blocks, not just the IT instruction
|
||||
|
||||
# CHECK: iteet eq
|
||||
# CHECK: addeq r0, r1, r2
|
||||
# CHECK: nopne
|
||||
# CHECK: subne r5, r6, r7
|
||||
# CHECK: addeq r1, r2, #4
|
||||
|
||||
0x0d 0xbf
|
||||
0x88 0x18
|
||||
0x00 0xbf
|
||||
0xf5 0x1b
|
||||
0x11 0x1d
|
||||
|
||||
# CHECK: ittee ls
|
||||
# CHECK: addls r0, r1, r2
|
||||
# CHECK: nopls
|
||||
# CHECK: subhi r5, r6, r7
|
||||
# CHECK: addhi r1, r2, #4
|
||||
|
||||
0x99 0xbf
|
||||
0x88 0x18
|
||||
0x00 0xbf
|
||||
0xf5 0x1b
|
||||
0x11 0x1d
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# LDMIA
|
||||
#------------------------------------------------------------------------------
|
||||
@ -915,35 +945,731 @@
|
||||
0x4f 0xf0 0x7f 0x70
|
||||
0x5f 0xf0 0x7f 0x70
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# MOVT
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: movt r3, #7
|
||||
# CHECK: movt r6, #65535
|
||||
# CHECK: it eq
|
||||
# CHECK: movteq r4, #4080
|
||||
|
||||
0xc0 0xf2 0x07 0x03
|
||||
0xcf 0xf6 0xff 0x76
|
||||
0x08 0xbf
|
||||
0xc0 0xf6 0xf0 0x74
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# IT
|
||||
# MRC/MRC2
|
||||
#------------------------------------------------------------------------------
|
||||
# Test encodings of a few full IT blocks, not just the IT instruction
|
||||
# CHECK: mrc p14, #0, r1, c1, c2, #4
|
||||
# CHECK: mrc2 p14, #0, r1, c1, c2, #4
|
||||
|
||||
# CHECK: iteet eq
|
||||
# CHECK: addeq r0, r1, r2
|
||||
# CHECK: nopne
|
||||
# CHECK: subne r5, r6, r7
|
||||
# CHECK: addeq r1, r2, #4
|
||||
0x11 0xee 0x92 0x1e
|
||||
0x11 0xfe 0x92 0x1e
|
||||
|
||||
0x0d 0xbf
|
||||
0x88 0x18
|
||||
0x00 0xbf
|
||||
0xf5 0x1b
|
||||
0x11 0x1d
|
||||
|
||||
# CHECK: ittee ls
|
||||
# CHECK: addls r0, r1, r2
|
||||
# CHECK: nopls
|
||||
# CHECK: subhi r5, r6, r7
|
||||
# CHECK: addhi r1, r2, #4
|
||||
#------------------------------------------------------------------------------
|
||||
# MRRC/MRRC2
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: mrrc p7, #1, r5, r4, c1
|
||||
# CHECK: mrrc2 p7, #1, r5, r4, c1
|
||||
|
||||
0x54 0xec 0x11 0x57
|
||||
0x54 0xfc 0x11 0x57
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# MRS
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: mrs r8, apsr
|
||||
# CHECK: mrs r8, spsr
|
||||
|
||||
0xef 0xf3 0x00 0x88
|
||||
0xff 0xf3 0x00 0x88
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# MSR
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: msr APSR_nzcvq, r1
|
||||
# CHECK: msr APSR_g, r2
|
||||
# CHECK: msr APSR_nzcvq, r3
|
||||
# CHECK: msr APSR_nzcvq, r4
|
||||
# CHECK: msr APSR_nzcvqg, r5
|
||||
# CHECK: msr CPSR_fc, r6
|
||||
# CHECK: msr CPSR_c, r7
|
||||
# CHECK: msr CPSR_x, r8
|
||||
# CHECK: msr CPSR_fc, r9
|
||||
# CHECK: msr CPSR_fc, r11
|
||||
# CHECK: msr CPSR_fsx, r12
|
||||
# CHECK: msr SPSR_fc, r0
|
||||
# CHECK: msr SPSR_fsxc, r5
|
||||
# CHECK: msr CPSR_fsxc, r8
|
||||
|
||||
0x81 0xf3 0x00 0x88
|
||||
0x82 0xf3 0x00 0x84
|
||||
0x83 0xf3 0x00 0x88
|
||||
0x84 0xf3 0x00 0x88
|
||||
0x85 0xf3 0x00 0x8c
|
||||
0x86 0xf3 0x00 0x89
|
||||
0x87 0xf3 0x00 0x81
|
||||
0x88 0xf3 0x00 0x82
|
||||
0x89 0xf3 0x00 0x89
|
||||
0x8b 0xf3 0x00 0x89
|
||||
0x8c 0xf3 0x00 0x8e
|
||||
0x90 0xf3 0x00 0x89
|
||||
0x95 0xf3 0x00 0x8f
|
||||
0x88 0xf3 0x00 0x8f
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# MUL
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: muls r3, r4, r3
|
||||
# CHECK: mul r3, r4, r3
|
||||
# CHECK: mul r3, r4, r6
|
||||
# CHECK: it eq
|
||||
# CHECK: muleq r3, r4, r5
|
||||
|
||||
0x63 0x43
|
||||
0x04 0xfb 0x03 0xf3
|
||||
0x04 0xfb 0x06 0xf3
|
||||
0x08 0xbf
|
||||
0x04 0xfb 0x05 0xf3
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# MVN(immediate)
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: mvns r8, #21
|
||||
# CHECK: mvn r0, #66846720
|
||||
# CHECK: mvns r0, #66846720
|
||||
# CHECK: itte eq
|
||||
# CHECK: mvnseq r1, #12
|
||||
# CHECK: mvneq r1, #12
|
||||
# CHECK: mvnne r1, #12
|
||||
|
||||
0x7f 0xf0 0x15 0x08
|
||||
0x6f 0xf0 0x7f 0x70
|
||||
0x7f 0xf0 0x7f 0x70
|
||||
0x06 0xbf
|
||||
0x7f 0xf0 0x0c 0x01
|
||||
0x6f 0xf0 0x0c 0x01
|
||||
0x6f 0xf0 0x0c 0x01
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# MVN(register)
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: mvn.w r2, r3
|
||||
# CHECK: mvns r2, r3
|
||||
# CHECK: mvn.w r5, r6, lsl #19
|
||||
# CHECK: mvn.w r5, r6, lsr #9
|
||||
# CHECK: mvn.w r5, r6, asr #4
|
||||
# CHECK: mvn.w r5, r6, ror #6
|
||||
# CHECK: mvn.w r5, r6, rrx
|
||||
# CHECK: it eq
|
||||
# CHECK: mvneq r2, r3
|
||||
|
||||
0x6f 0xea 0x03 0x02
|
||||
0xda 0x43
|
||||
0x6f 0xea 0xc6 0x45
|
||||
0x6f 0xea 0x56 0x25
|
||||
0x6f 0xea 0x26 0x15
|
||||
0x6f 0xea 0xb6 0x15
|
||||
0x6f 0xea 0x36 0x05
|
||||
0x08 0xbf
|
||||
0xda 0x43
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# NOP
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: nop.w
|
||||
|
||||
0xaf 0xf3 0x00 0x80
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# ORN
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: orn r4, r5, #61440
|
||||
# CHECK: orn r4, r5, r6
|
||||
# CHECK: orns r4, r5, r6
|
||||
# CHECK: orn r4, r5, r6, lsl #5
|
||||
# CHECK: orns r4, r5, r6, lsr #5
|
||||
# CHECK: orn r4, r5, r6, lsr #5
|
||||
# CHECK: orns r4, r5, r6, asr #5
|
||||
# CHECK: orn r4, r5, r6, ror #5
|
||||
|
||||
0x65 0xf4 0x70 0x44
|
||||
0x65 0xea 0x06 0x04
|
||||
0x75 0xea 0x06 0x04
|
||||
0x65 0xea 0x46 0x14
|
||||
0x75 0xea 0x56 0x14
|
||||
0x65 0xea 0x56 0x14
|
||||
0x75 0xea 0x66 0x14
|
||||
0x65 0xea 0x76 0x14
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# ORR
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: orr r4, r5, #61440
|
||||
# CHECK: orr.w r4, r5, r6
|
||||
# CHECK: orr.w r4, r5, r6, lsl #5
|
||||
# CHECK: orrs.w r4, r5, r6, lsr #5
|
||||
# CHECK: orr.w r4, r5, r6, lsr #5
|
||||
# CHECK: orrs.w r4, r5, r6, asr #5
|
||||
# CHECK: orr.w r4, r5, r6, ror #5
|
||||
|
||||
0x45 0xf4 0x70 0x44
|
||||
0x45 0xea 0x06 0x04
|
||||
0x45 0xea 0x46 0x14
|
||||
0x55 0xea 0x56 0x14
|
||||
0x45 0xea 0x56 0x14
|
||||
0x55 0xea 0x66 0x14
|
||||
0x45 0xea 0x76 0x14
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# PKH
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: pkhbt r2, r2, r3
|
||||
# CHECK: pkhbt r2, r2, r3, lsl #31
|
||||
# CHECK: pkhbt r2, r2, r3, lsl #15
|
||||
|
||||
# CHECK: pkhtb r2, r2, r3, asr #31
|
||||
# CHECK: pkhtb r2, r2, r3, asr #15
|
||||
|
||||
0xc2 0xea 0x03 0x02
|
||||
0xc2 0xea 0xc3 0x72
|
||||
0xc2 0xea 0xc3 0x32
|
||||
|
||||
0xc2 0xea 0xe3 0x72
|
||||
0xc2 0xea 0xe3 0x32
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# PLD(immediate)
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: pld [r5, #-4]
|
||||
# CHECK: pld [r6, #32]
|
||||
# CHECK: pld [r6, #33]
|
||||
# CHECK: pld [r6, #257]
|
||||
# CHECK: pld [r7, #257]
|
||||
|
||||
0x15 0xf8 0x04 0xfc
|
||||
0x96 0xf8 0x20 0xf0
|
||||
0x96 0xf8 0x21 0xf0
|
||||
0x96 0xf8 0x01 0xf1
|
||||
0x97 0xf8 0x01 0xf1
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# PLD(register)
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: pld [r8, r1]
|
||||
# CHECK: pld [r5, r2]
|
||||
# CHECK: pld [r0, r2, lsl #3]
|
||||
# CHECK: pld [r8, r2, lsl #2]
|
||||
# CHECK: pld [sp, r2, lsl #1]
|
||||
# CHECK: pld [sp, r2]
|
||||
|
||||
0x18 0xf8 0x01 0xf0
|
||||
0x15 0xf8 0x02 0xf0
|
||||
0x10 0xf8 0x32 0xf0
|
||||
0x18 0xf8 0x22 0xf0
|
||||
0x1d 0xf8 0x12 0xf0
|
||||
0x1d 0xf8 0x02 0xf0
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# PLI(immediate)
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: pli [r5, #-4]
|
||||
# CHECK: pli [r6, #32]
|
||||
# CHECK: pli [r6, #33]
|
||||
# CHECK: pli [r6, #257]
|
||||
# CHECK: pli [r7, #257]
|
||||
|
||||
0x15 0xf9 0x04 0xfc
|
||||
0x96 0xf9 0x20 0xf0
|
||||
0x96 0xf9 0x21 0xf0
|
||||
0x96 0xf9 0x01 0xf1
|
||||
0x97 0xf9 0x01 0xf1
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# PLI(register)
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: pli [r8, r1]
|
||||
# CHECK: pli [r5, r2]
|
||||
# CHECK: pli [r0, r2, lsl #3]
|
||||
# CHECK: pli [r8, r2, lsl #2]
|
||||
# CHECK: pli [sp, r2, lsl #1]
|
||||
# CHECK: pli [sp, r2]
|
||||
|
||||
0x18 0xf9 0x01 0xf0
|
||||
0x15 0xf9 0x02 0xf0
|
||||
0x10 0xf9 0x32 0xf0
|
||||
0x18 0xf9 0x22 0xf0
|
||||
0x1d 0xf9 0x12 0xf0
|
||||
0x1d 0xf9 0x02 0xf0
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# QADD/QADD16/QADD8
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: qadd r1, r2, r3
|
||||
# CHECK: qadd16 r1, r2, r3
|
||||
# CHECK: qadd8 r1, r2, r3
|
||||
# CHECK: itte gt
|
||||
# CHECK: qaddgt r1, r2, r3
|
||||
# CHECK: qadd16gt r1, r2, r3
|
||||
# CHECK: qadd8le r1, r2, r3
|
||||
|
||||
0x83 0xfa 0x82 0xf1
|
||||
0x92 0xfa 0x13 0xf1
|
||||
0x82 0xfa 0x13 0xf1
|
||||
0xc6 0xbf
|
||||
0x83 0xfa 0x82 0xf1
|
||||
0x92 0xfa 0x13 0xf1
|
||||
0x82 0xfa 0x13 0xf1
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# QDADD/QDSUB
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: qdadd r6, r7, r8
|
||||
# CHECK: qdsub r6, r7, r8
|
||||
# CHECK: itt hi
|
||||
# CHECK: qdaddhi r6, r7, r8
|
||||
# CHECK: qdsubhi r6, r7, r8
|
||||
|
||||
0x88 0xfa 0x97 0xf6
|
||||
0x88 0xfa 0xb7 0xf6
|
||||
0x84 0xbf
|
||||
0x88 0xfa 0x97 0xf6
|
||||
0x88 0xfa 0xb7 0xf6
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# QSAX
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: qsax r9, r12, r0
|
||||
# CHECK: it eq
|
||||
# CHECK: qsaxeq r9, r12, r0
|
||||
|
||||
0xec 0xfa 0x10 0xf9
|
||||
0x08 0xbf
|
||||
0xec 0xfa 0x10 0xf9
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# QSUB/QSUB16/QSUB8
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: qsub r1, r2, r3
|
||||
# CHECK: qsub16 r1, r2, r3
|
||||
# CHECK: qsub8 r1, r2, r3
|
||||
# CHECK: itet le
|
||||
# CHECK: qsuble r1, r2, r3
|
||||
# CHECK: qsub16gt r1, r2, r3
|
||||
# CHECK: qsub8le r1, r2, r3
|
||||
|
||||
0x83 0xfa 0xa2 0xf1
|
||||
0xd2 0xfa 0x13 0xf1
|
||||
0xc2 0xfa 0x13 0xf1
|
||||
0xd6 0xbf
|
||||
0x83 0xfa 0xa2 0xf1
|
||||
0xd2 0xfa 0x13 0xf1
|
||||
0xc2 0xfa 0x13 0xf1
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# RBIT
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: rbit r1, r2
|
||||
# CHECK: it ne
|
||||
# CHECK: rbitne r1, r2
|
||||
|
||||
0x92 0xfa 0xa2 0xf1
|
||||
0x18 0xbf
|
||||
0x92 0xfa 0xa2 0xf1
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# REV
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: rev.w r1, r2
|
||||
# CHECK: rev.w r2, r8
|
||||
# CHECK: itt ne
|
||||
# CHECK: revne r1, r2
|
||||
# CHECK: revne.w r1, r8
|
||||
|
||||
0x92 0xfa 0x82 0xf1
|
||||
0x98 0xfa 0x88 0xf2
|
||||
0x1c 0xbf
|
||||
0x11 0xba
|
||||
0x98 0xfa 0x88 0xf1
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# REV16
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: rev16.w r1, r2
|
||||
# CHECK: rev16.w r2, r8
|
||||
# CHECK: itt ne
|
||||
# CHECK: rev16ne r1, r2
|
||||
# CHECK: rev16ne.w r1, r8
|
||||
|
||||
0x92 0xfa 0x92 0xf1
|
||||
0x98 0xfa 0x98 0xf2
|
||||
0x1c 0xbf
|
||||
0x51 0xba
|
||||
0x98 0xfa 0x98 0xf1
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# REVSH
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: revsh.w r1, r2
|
||||
# CHECK: revsh.w r2, r8
|
||||
# CHECK: itt ne
|
||||
# CHECK: revshne r1, r2
|
||||
# CHECK: revshne.w r1, r8
|
||||
|
||||
0x92 0xfa 0xb2 0xf1
|
||||
0x98 0xfa 0xb8 0xf2
|
||||
0x1c 0xbf
|
||||
0xd1 0xba
|
||||
0x98 0xfa 0xb8 0xf1
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# ROR (immediate)
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: ror.w r2, r3, #12
|
||||
# CHECK: rors.w r8, r3, #31
|
||||
# CHECK: rors.w r2, r3, #1
|
||||
# CHECK: ror.w r2, r3, #4
|
||||
# CHECK: rors.w r2, r12, #15
|
||||
|
||||
# CHECK: ror.w r3, r3, #19
|
||||
# CHECK: rors.w r8, r8, #2
|
||||
# CHECK: rors.w r7, r7, #5
|
||||
# CHECK: ror.w r12, r12, #21
|
||||
|
||||
0x4f 0xea 0x33 0x32
|
||||
0x5f 0xea 0xf3 0x78
|
||||
0x5f 0xea 0x73 0x02
|
||||
0x4f 0xea 0x33 0x12
|
||||
0x5f 0xea 0xfc 0x32
|
||||
|
||||
0x4f 0xea 0xf3 0x43
|
||||
0x5f 0xea 0xb8 0x08
|
||||
0x5f 0xea 0x77 0x17
|
||||
0x4f 0xea 0x7c 0x5c
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# ROR (register)
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: ror.w r3, r4, r2
|
||||
# CHECK: ror.w r1, r1, r2
|
||||
# CHECK: rors.w r3, r4, r8
|
||||
|
||||
0x64 0xfa 0x02 0xf3
|
||||
0x61 0xfa 0x02 0xf1
|
||||
0x74 0xfa 0x08 0xf3
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# RRX
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: rrx r1, r2
|
||||
# CHECK: rrxs r1, r2
|
||||
# CHECK: ite lt
|
||||
# CHECK: rrxlt r9, r12
|
||||
# CHECK: rrxsge r8, r3
|
||||
|
||||
0x4f 0xea 0x32 0x01
|
||||
0x5f 0xea 0x32 0x01
|
||||
0xb4 0xbf
|
||||
0x4f 0xea 0x3c 0x09
|
||||
0x5f 0xea 0x33 0x08
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# RSB (immediate)
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: rsb.w r2, r5, #1044480
|
||||
# CHECK: rsbs.w r3, r12, #15
|
||||
# CHECK: rsb.w r1, r1, #255
|
||||
|
||||
0xc5 0xf5 0x7f 0x22
|
||||
0xdc 0xf1 0x0f 0x03
|
||||
0xc1 0xf1 0xff 0x01
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# RSB (register)
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: rsb r4, r4, r8
|
||||
# CHECK: rsb r4, r9, r8
|
||||
# CHECK: rsb r1, r4, r8, asr #3
|
||||
# CHECK: rsbs r2, r1, r7, lsl #1
|
||||
|
||||
0xc4 0xeb 0x08 0x04
|
||||
0xc9 0xeb 0x08 0x04
|
||||
0xc4 0xeb 0xe8 0x01
|
||||
0xd1 0xeb 0x47 0x02
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# SADD16
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: sadd16 r3, r4, r8
|
||||
# CHECK: it ne
|
||||
# CHECK: sadd16ne r3, r4, r8
|
||||
|
||||
0x94 0xfa 0x08 0xf3
|
||||
0x18 0xbf
|
||||
0x94 0xfa 0x08 0xf3
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# SADD8
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: sadd8 r3, r4, r8
|
||||
# CHECK: it ne
|
||||
# CHECK: sadd8ne r3, r4, r8
|
||||
|
||||
0x84 0xfa 0x08 0xf3
|
||||
0x18 0xbf
|
||||
0x84 0xfa 0x08 0xf3
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# SASX
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: sasx r9, r2, r7
|
||||
# CHECK: it ne
|
||||
# CHECK: sasxne r2, r5, r6
|
||||
|
||||
0xa2 0xfa 0x07 0xf9
|
||||
0x18 0xbf
|
||||
0xa5 0xfa 0x06 0xf2
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# SBC (immediate)
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: sbc r0, r1, #4
|
||||
# CHECK: sbcs r0, r1, #0
|
||||
# CHECK: sbc r1, r2, #255
|
||||
# CHECK: sbc r3, r7, #5570645
|
||||
# CHECK: sbc r8, r12, #2852170240
|
||||
# CHECK: sbc r9, r7, #2779096485
|
||||
# CHECK: sbc r5, r3, #2264924160
|
||||
# CHECK: sbc r4, r2, #2139095040
|
||||
# CHECK: sbc r4, r2, #1664
|
||||
|
||||
0x61 0xf1 0x04 0x00
|
||||
0x71 0xf1 0x00 0x00
|
||||
0x62 0xf1 0xff 0x01
|
||||
0x67 0xf1 0x55 0x13
|
||||
0x6c 0xf1 0xaa 0x28
|
||||
0x67 0xf1 0xa5 0x39
|
||||
0x63 0xf1 0x07 0x45
|
||||
0x62 0xf1 0xff 0x44
|
||||
0x62 0xf5 0xd0 0x64
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# SBC (register)
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: sbc.w r4, r5, r6
|
||||
# CHECK: sbcs.w r4, r5, r6
|
||||
# CHECK: sbc.w r9, r1, r3
|
||||
# CHECK: sbcs.w r9, r1, r3
|
||||
# CHECK: sbc.w r0, r1, r3, ror #4
|
||||
# CHECK: sbcs.w r0, r1, r3, lsl #7
|
||||
# CHECK: sbc.w r0, r1, r3, lsr #31
|
||||
# CHECK: sbcs.w r0, r1, r3, asr #32
|
||||
|
||||
0x65 0xeb 0x06 0x04
|
||||
0x75 0xeb 0x06 0x04
|
||||
0x61 0xeb 0x03 0x09
|
||||
0x71 0xeb 0x03 0x09
|
||||
0x61 0xeb 0x33 0x10
|
||||
0x71 0xeb 0xc3 0x10
|
||||
0x61 0xeb 0xd3 0x70
|
||||
0x71 0xeb 0x23 0x00
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# SBFX
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: sbfx r4, r5, #16, #1
|
||||
# CHECK: it gt
|
||||
# CHECK: sbfxgt r4, r5, #16, #16
|
||||
|
||||
0x45 0xf3 0x00 0x44
|
||||
0xc8 0xbf
|
||||
0x45 0xf3 0x0f 0x44
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# SEL
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: sel r5, r9, r2
|
||||
# CHECK: it le
|
||||
# CHECK: selle r5, r9, r2
|
||||
|
||||
0xa9 0xfa 0x82 0xf5
|
||||
0xd8 0xbf
|
||||
0xa9 0xfa 0x82 0xf5
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# SEV
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: sev.w
|
||||
# CHECK: it eq
|
||||
# CHECK: seveq.w
|
||||
|
||||
0xaf 0xf3 0x04 0x80
|
||||
0x08 0xbf
|
||||
0xaf 0xf3 0x04 0x80
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# SADD16/SADD8
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: sadd16 r1, r2, r3
|
||||
# CHECK: sadd8 r1, r2, r3
|
||||
# CHECK: ite gt
|
||||
# CHECK: sadd16gt r1, r2, r3
|
||||
# CHECK: sadd8le r1, r2, r3
|
||||
|
||||
0x92 0xfa 0x03 0xf1
|
||||
0x82 0xfa 0x03 0xf1
|
||||
0xcc 0xbf
|
||||
0x92 0xfa 0x03 0xf1
|
||||
0x82 0xfa 0x03 0xf1
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# SHASX
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: shasx r4, r8, r2
|
||||
# CHECK: it gt
|
||||
# CHECK: shasxgt r4, r8, r2
|
||||
|
||||
0xa8 0xfa 0x22 0xf4
|
||||
0xc8 0xbf
|
||||
0xa8 0xfa 0x22 0xf4
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# SHASX
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: shsax r4, r8, r2
|
||||
# CHECK: it gt
|
||||
# CHECK: shsaxgt r4, r8, r2
|
||||
|
||||
0xe8 0xfa 0x22 0xf4
|
||||
0xc8 0xbf
|
||||
0xe8 0xfa 0x22 0xf4
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# SHSUB16/SHSUB8
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: shsub16 r4, r8, r2
|
||||
# CHECK: shsub8 r4, r8, r2
|
||||
# CHECK: itt gt
|
||||
# CHECK: shsub16gt r4, r8, r2
|
||||
# CHECK: shsub8gt r4, r8, r2
|
||||
|
||||
0xd8 0xfa 0x22 0xf4
|
||||
0xc8 0xfa 0x22 0xf4
|
||||
0xc4 0xbf
|
||||
0xd8 0xfa 0x22 0xf4
|
||||
0xc8 0xfa 0x22 0xf4
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# SMLABB/SMLABT/SMLATB/SMLATT
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: smlabb r3, r1, r9, r0
|
||||
# CHECK: smlabt r5, r6, r4, r1
|
||||
# CHECK: smlatb r4, r2, r3, r2
|
||||
# CHECK: smlatt r8, r3, r8, r4
|
||||
# CHECK: itete gt
|
||||
# CHECK: smlabbgt r3, r1, r9, r0
|
||||
# CHECK: smlabtle r5, r6, r4, r1
|
||||
# CHECK: smlatbgt r4, r2, r3, r2
|
||||
# CHECK: smlattle r8, r3, r8, r4
|
||||
|
||||
0x11 0xfb 0x09 0x03
|
||||
0x16 0xfb 0x14 0x15
|
||||
0x12 0xfb 0x23 0x24
|
||||
0x13 0xfb 0x38 0x48
|
||||
0xcb 0xbf
|
||||
0x11 0xfb 0x09 0x03
|
||||
0x16 0xfb 0x14 0x15
|
||||
0x12 0xfb 0x23 0x24
|
||||
0x13 0xfb 0x38 0x48
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# SMLAD/SMLADX
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: smlad r2, r3, r5, r8
|
||||
# CHECK: smladx r2, r3, r5, r8
|
||||
# CHECK: itt hi
|
||||
# CHECK: smladhi r2, r3, r5, r8
|
||||
# CHECK: smladxhi r2, r3, r5, r8
|
||||
|
||||
0x23 0xfb 0x05 0x82
|
||||
0x23 0xfb 0x15 0x82
|
||||
0x84 0xbf
|
||||
0x23 0xfb 0x05 0x82
|
||||
0x23 0xfb 0x15 0x82
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# SMLAL
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: smlal r2, r3, r5, r8
|
||||
# CHECK: it eq
|
||||
# CHECK: smlaleq r2, r3, r5, r8
|
||||
|
||||
0xc5 0xfb 0x08 0x23
|
||||
0x08 0xbf
|
||||
0xc5 0xfb 0x08 0x23
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# SMLALBB/SMLALBT/SMLALTB/SMLALTT
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: smlalbb r3, r1, r9, r0
|
||||
# CHECK: smlalbt r5, r6, r4, r1
|
||||
# CHECK: smlaltb r4, r2, r3, r2
|
||||
# CHECK: smlaltt r8, r3, r8, r4
|
||||
# CHECK: iteet ge
|
||||
# CHECK: smlalbbge r3, r1, r9, r0
|
||||
# CHECK: smlalbtlt r5, r6, r4, r1
|
||||
# CHECK: smlaltblt r4, r2, r3, r2
|
||||
# CHECK: smlalttge r8, r3, r8, r4
|
||||
|
||||
0xc9 0xfb 0x80 0x31
|
||||
0xc4 0xfb 0x91 0x56
|
||||
0xc3 0xfb 0xa2 0x42
|
||||
0xc8 0xfb 0xb4 0x83
|
||||
0xad 0xbf
|
||||
0xc9 0xfb 0x80 0x31
|
||||
0xc4 0xfb 0x91 0x56
|
||||
0xc3 0xfb 0xa2 0x42
|
||||
0xc8 0xfb 0xb4 0x83
|
||||
|
||||
0x99 0xbf
|
||||
0x88 0x18
|
||||
0x00 0xbf
|
||||
0xf5 0x1b
|
||||
0x11 0x1d
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# STRD (immediate)
|
||||
|
Loading…
x
Reference in New Issue
Block a user