143 lines
2.2 KiB
ArmAsm
143 lines
2.2 KiB
ArmAsm
|
# sh testcase for bst
|
||
|
# mach: all
|
||
|
# as(sh): -defsym sim_cpu=0
|
||
|
# as(shdsp): -defsym sim_cpu=1 -dsp
|
||
|
|
||
|
.include "testutils.inc"
|
||
|
|
||
|
.align 2
|
||
|
_x: .long 0
|
||
|
_y: .long 0x55555555
|
||
|
|
||
|
start
|
||
|
|
||
|
bst_b_imm_disp12_reg:
|
||
|
set_grs_a5a5
|
||
|
# Make sure T is true to start.
|
||
|
sett
|
||
|
|
||
|
mov.l x, r1
|
||
|
|
||
|
bst.b #0, @(3, r1)
|
||
|
assertmem _x, 0x1
|
||
|
bst.b #1, @(3, r1)
|
||
|
assertmem _x, 0x3
|
||
|
bst.b #2, @(3, r1)
|
||
|
assertmem _x, 0x7
|
||
|
bst.b #3, @(3, r1)
|
||
|
assertmem _x, 0xf
|
||
|
|
||
|
bst.b #4, @(3, r1)
|
||
|
assertmem _x, 0x1f
|
||
|
bst.b #5, @(3, r1)
|
||
|
assertmem _x, 0x3f
|
||
|
bst.b #6, @(3, r1)
|
||
|
assertmem _x, 0x7f
|
||
|
bst.b #7, @(3, r1)
|
||
|
assertmem _x, 0xff
|
||
|
|
||
|
bst.b #0, @(2, r1)
|
||
|
assertmem _x, 0x1ff
|
||
|
bst.b #1, @(2, r1)
|
||
|
assertmem _x, 0x3ff
|
||
|
bst.b #2, @(2, r1)
|
||
|
assertmem _x, 0x7ff
|
||
|
bst.b #3, @(2, r1)
|
||
|
assertmem _x, 0xfff
|
||
|
|
||
|
bra .L2
|
||
|
nop
|
||
|
|
||
|
.align 2
|
||
|
x: .long _x
|
||
|
y: .long _y
|
||
|
|
||
|
.L2:
|
||
|
bst.b #4, @(2, r1)
|
||
|
assertmem _x, 0x1fff
|
||
|
bst.b #5, @(2, r1)
|
||
|
assertmem _x, 0x3fff
|
||
|
bst.b #6, @(2, r1)
|
||
|
assertmem _x, 0x7fff
|
||
|
bst.b #7, @(2, r1)
|
||
|
assertmem _x, 0xffff
|
||
|
|
||
|
bst.b #0, @(1, r1)
|
||
|
assertmem _x, 0x1ffff
|
||
|
bst.b #1, @(1, r1)
|
||
|
assertmem _x, 0x3ffff
|
||
|
bst.b #2, @(1, r1)
|
||
|
assertmem _x, 0x7ffff
|
||
|
bst.b #3, @(1, r1)
|
||
|
assertmem _x, 0xfffff
|
||
|
|
||
|
bst.b #4, @(1, r1)
|
||
|
assertmem _x, 0x1fffff
|
||
|
bst.b #5, @(1, r1)
|
||
|
assertmem _x, 0x3fffff
|
||
|
bst.b #6, @(1, r1)
|
||
|
assertmem _x, 0x7fffff
|
||
|
bst.b #7, @(1, r1)
|
||
|
assertmem _x, 0xffffff
|
||
|
|
||
|
bst.b #0, @(0, r1)
|
||
|
assertmem _x, 0x1ffffff
|
||
|
bst.b #1, @(0, r1)
|
||
|
assertmem _x, 0x3ffffff
|
||
|
bst.b #2, @(0, r1)
|
||
|
assertmem _x, 0x7ffffff
|
||
|
bst.b #3, @(0, r1)
|
||
|
assertmem _x, 0xfffffff
|
||
|
|
||
|
bst.b #4, @(0, r1)
|
||
|
assertmem _x, 0x1fffffff
|
||
|
bst.b #5, @(0, r1)
|
||
|
assertmem _x, 0x3fffffff
|
||
|
bst.b #6, @(0, r1)
|
||
|
assertmem _x, 0x7fffffff
|
||
|
bst.b #7, @(0, r1)
|
||
|
assertmem _x, 0xffffffff
|
||
|
|
||
|
assertreg _x, r1
|
||
|
|
||
|
bst_imm_reg:
|
||
|
set_greg 0, r1
|
||
|
bst #0, r1
|
||
|
assertreg 0x1, r1
|
||
|
bst #1, r1
|
||
|
assertreg 0x3, r1
|
||
|
bst #2, r1
|
||
|
assertreg 0x7, r1
|
||
|
bst #3, r1
|
||
|
assertreg 0xf, r1
|
||
|
|
||
|
bst #4, r1
|
||
|
assertreg 0x1f, r1
|
||
|
bst #5, r1
|
||
|
assertreg 0x3f, r1
|
||
|
bst #6, r1
|
||
|
assertreg 0x7f, r1
|
||
|
bst #7, r1
|
||
|
assertreg 0xff, r1
|
||
|
|
||
|
test_gr_a5a5 r0
|
||
|
test_gr_a5a5 r2
|
||
|
test_gr_a5a5 r3
|
||
|
test_gr_a5a5 r4
|
||
|
test_gr_a5a5 r5
|
||
|
test_gr_a5a5 r6
|
||
|
test_gr_a5a5 r7
|
||
|
test_gr_a5a5 r8
|
||
|
test_gr_a5a5 r9
|
||
|
test_gr_a5a5 r10
|
||
|
test_gr_a5a5 r11
|
||
|
test_gr_a5a5 r12
|
||
|
test_gr_a5a5 r13
|
||
|
test_gr_a5a5 r14
|
||
|
|
||
|
pass
|
||
|
|
||
|
exit 0
|
||
|
|
||
|
|