llvm-6502/test/MC/Disassembler/ARM/thumb-tests.txt
Johnny Chen e68d8ec252 It used to be that t_addrmode_s4 was used for both:
o A8.6.195 STR (register) -- Encoding T1
o A8.6.193 STR (immediate, Thumb) -- Encoding T1

It has been changed so that now they use different addressing modes
and thus different MC representation (Operand Infos).  Modify the
disassembler to reflect the change, and add relevant tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127833 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-17 22:04:05 +00:00

133 lines
2.0 KiB
Plaintext

# RUN: llvm-mc --disassemble %s -triple=thumb-apple-darwin9 | FileCheck %s
# CHECK: add r5, sp, #68
0x11 0xad
# CHECK: adcs r0, r0, #1
0x50 0xf1 0x01 0x00
# CHECK: b #34
0x0f 0xe0
# CHECK: b.w #-12
0xff 0xf7 0xf8 0xaf
# CHECK: bfi r2, r10, #0, #1
0x6a 0xf3 0x00 0x02
# CHECK: cbnz r7, #20
0x57 0xb9
# CHECK: cmp r3, r4
0xa3 0x42
# CHECK: cmn.w r0, #31
0x10 0xf1 0x1f 0x0f
# CHECK: ldmia r0!, {r1}
0x02 0xc8
# CHECK: str r0, [r3]
0x18 0x60
# CHECK: str r0, [r3, #4]
0x58 0x60
# CHECK: str r2, [r5, r3]
0xea 0x50
# CHECK: ldrb.w r8, #-24
0x1f 0xf8 0x18 0x80
# CHECK: ldrd r0, r1, [r7, #64]!
0xf7 0xe9 0x10 0x01
# CHECK: lsls.w r0, pc, #1
0x5f 0xea 0x4f 0x00
# CHECK: mov r11, r7
0xbb 0x46
# CHECK: pkhtb r2, r4, r6, asr #16
0xc4 0xea 0x26 0x42
# CHECK-NOT: pkhbt r2, r4, r6, lsl #0
# CHECK: pkhbt r2, r4, r6
0xc4 0xea 0x06 0x02
# CHECK: pop.w {r2, r4, r6, r8, r10, r12}
0xbd 0xe8 0x54 0x15
# CHECK: push.w {r2, r4, r6, r8, r10, r12}
0x2d 0xe9 0x54 0x15
# CHECK: rsbs r0, r0, #0
0x40 0x42
# CHECK-NOT: rsb r0, r2, r0, lsl #0
# CHECK: rsb r0, r2, r0
0xc2 0xeb 0x00 0x00
# CHECK-NOT: ssat r0, #17, r12, lsl #0
# CHECK: ssat r0, #17, r12
0x0c 0xf3 0x10 0x00
# CHECK: strd r0, r1, [r7, #64]
0xc7 0xe9 0x10 0x01
# CHECK: sub sp, #60
0x8f 0xb0
# CHECK: subw r0, pc, #1
0xaf 0xf2 0x01 0x00
# CHECK: subw r0, sp, #835
0xad 0xf2 0x43 0x30
# CHECK: uqadd16 r3, r4, r5
0x94 0xfa 0x55 0xf3
# CHECK: usada8 r5, r4, r3, r2
0x74 0xfb 0x03 0x25
# CHECK: uxtab16 r1, r2, r3, ror #8
0x32 0xfa 0x93 0xf1
# IT block begin
# CHECK: ittte eq
0x03 0xbf
# CHECK: moveq r3, #3
0x03 0x23
# CHECK: asreq r1, r0, #5
0x41 0x11
# CHECK: lsleq r1, r0, #28
0x01 0x07
# CHECK: stmiane r0!, {r1, r2, r3}
0x0e 0xc0
# IT block end
# CHECK: rsbs r1, r2, #0
0x51 0x42
# CHECK: cpsid.w f
0xaf 0xf3 0x20 0x86
# CHECK: cps #15
0xaf 0xf3 0x0f 0x81
# CHECK: cpsie.w if, #10
0xaf 0xf3 0x6a 0x85
# CHECK: cpsie aif
0x67 0xb6
# CHECK: msr cpsr_fc, r0
0x80 0xf3 0x00 0x89
# CHECK: blx #0
0xff 0xf7 0xfe 0xef