blob: b699ef40911c8e6087bc510671edcfa137c07005 [file] [log] [blame]
# RUN: llvm-mc -triple=arc -disassemble %s | FileCheck %s
# CHECK: ld %r0, [%r0,0]
0x00 0x10 0x00 0x00
# CHECK: ldh %r0, [%r0,0]
0x00 0x10 0x00 0x01
# CHECK: ldb %r0, [%r0,0]
0x00 0x10 0x80 0x00
# CHECK: ld %r1, [%r0,12]
0x0c 0x10 0x01 0x00
# CHECK: ld %r14, [%fp,-12]
0xf4 0x13 0x0e 0xb0
# CHECK: ld %r3, [%r0,-12]
0xf4 0x10 0x03 0x80
# CHECK: ld %r0, [%r0,244]
0xf4 0x10 0x00 0x00
# CHECK: ld %r0, [%r0,-12]
0xf4 0x10 0x00 0x80
# CHECK: ldh.x %r3, [%r1,0]
0x00 0x11 0x43 0x01
# CHECK: ldh.x %r2, [%r1,2]
0x02 0x11 0x42 0x01
# CHECK: ldh.x %r2, [%fp,-132]
0x7c 0x13 0x42 0xb1
# CHECK: ld %r0, [%r0,64000]
0x30 0x20 0x80 0x0f 0x00 0x00 0x00 0xfa
# CHECK: ld %r6, [63920]
0x00 0x16 0x06 0x70 0x00 0x00 0xb0 0xf9
# CHECK: stb %r2, [%sp,35]
0x23 0x1c 0x82 0x30
# CHECK: st %r7, [63920]
0x00 0x1e 0xc0 0x71 0x00 0x00 0xb0 0xf9
# CHECK: ldb.ab %r1, [%r0,1]
0x01 0x10 0x81 0x04
# CHECK: stb.ab %r2, [%r0,1]
0x01 0x18 0x92 0x00
# CHECK: ldh.ab %r3, [%r0,12]
0x0C 0x10 0x03 0x05
# CHECK: sth.ab %r4, [%r0,18]
0x12 0x18 0x14 0x01
# CHECK: ld.ab %r5, [%r2,128]
0x80 0x12 0x05 0x04
# CHECK: st.ab %r6, [%r2,64]
0x40 0x1A 0x90 0x01
# CHECK: ldb.aw %r7, [%r0,1]
0x01 0x10 0x87 0x02
# CHECK: stb.aw %r8, [%r0,1]
0x01 0x18 0x0A 0x02
# CHECK: ldh.aw %r3, [%r0,12]
0x0C 0x10 0x03 0x03
# CHECK: sth.aw %r3, [%r0,18]
0x12 0x18 0xCC 0x00
# CHECK: ld.aw %r6, [%r2,128]
0x80 0x12 0x06 0x02
# CHECK: st.aw %r6, [%r2,64]
0x40 0x1A 0x88 0x01
# CHECK: ld.aw %r6, [%r2,128]
0x80 0x12 0x06 0x02
# CHECK: st.aw %r6, [%r2,64]
0x40 0x1A 0x88 0x01
# CHECK: ldb.x.di.aw %r0, [%r8,8]
0x08 0x10 0xC0 0x1A
# CHECK: stb.di.ab %r0, [%r9,64]
0x40 0x19 0x32 0x10
# LR instructions with a U6 immediate bit pattern
# ([33] maps to the [%count0] auxilary register)
# CHECK: lr %r0, [33]
0x6a 0x20 0x40 0x08
# CHECK: lr %r7, [33]
0x6a 0x27 0x40 0x08
# CHECK: lr %r15, [33]
0x6a 0x27 0x40 0x18
# CHECK: lr %r22, [33]
0x6a 0x26 0x40 0x28
# LR instructions with an S12 immediate bit pattern
# CHECK: lr %r0, [33]
0xaa 0x20 0x40 0x08
# The following don't necessarily map to real auxilary registers, but
# the different range of numbers helps exercise the S12 decoder.
# CHECK: lr %r0, [-33]
0xaa 0x20 0x60 0x08
# CHECK: lr %r0, [97]
0xaa 0x20 0x41 0x08
# CHECK: lr %r0, [-97]
0xaa 0x20 0x61 0x08