| # sh testcase for bset | |
| # 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 | |
| bset_b_imm_disp12_reg: | |
| set_grs_a5a5 | |
| mov.l x, r1 | |
| bset.b #0, @(3, r1) | |
| assertmem _x, 0x1 | |
| bset.b #1, @(3, r1) | |
| assertmem _x, 0x3 | |
| bset.b #2, @(3, r1) | |
| assertmem _x, 0x7 | |
| bset.b #3, @(3, r1) | |
| assertmem _x, 0xf | |
| bset.b #4, @(3, r1) | |
| assertmem _x, 0x1f | |
| bset.b #5, @(3, r1) | |
| assertmem _x, 0x3f | |
| bset.b #6, @(3, r1) | |
| assertmem _x, 0x7f | |
| bset.b #7, @(3, r1) | |
| assertmem _x, 0xff | |
| bset.b #0, @(2, r1) | |
| assertmem _x, 0x1ff | |
| bset.b #1, @(2, r1) | |
| assertmem _x, 0x3ff | |
| bset.b #2, @(2, r1) | |
| assertmem _x, 0x7ff | |
| bset.b #3, @(2, r1) | |
| assertmem _x, 0xfff | |
| bra .L2 | |
| nop | |
| .align 2 | |
| x: .long _x | |
| y: .long _y | |
| .L2: | |
| bset.b #4, @(2, r1) | |
| assertmem _x, 0x1fff | |
| bset.b #5, @(2, r1) | |
| assertmem _x, 0x3fff | |
| bset.b #6, @(2, r1) | |
| assertmem _x, 0x7fff | |
| bset.b #7, @(2, r1) | |
| assertmem _x, 0xffff | |
| bset.b #0, @(1, r1) | |
| assertmem _x, 0x1ffff | |
| bset.b #1, @(1, r1) | |
| assertmem _x, 0x3ffff | |
| bset.b #2, @(1, r1) | |
| assertmem _x, 0x7ffff | |
| bset.b #3, @(1, r1) | |
| assertmem _x, 0xfffff | |
| bset.b #4, @(1, r1) | |
| assertmem _x, 0x1fffff | |
| bset.b #5, @(1, r1) | |
| assertmem _x, 0x3fffff | |
| bset.b #6, @(1, r1) | |
| assertmem _x, 0x7fffff | |
| bset.b #7, @(1, r1) | |
| assertmem _x, 0xffffff | |
| bset.b #0, @(0, r1) | |
| assertmem _x, 0x1ffffff | |
| bset.b #1, @(0, r1) | |
| assertmem _x, 0x3ffffff | |
| bset.b #2, @(0, r1) | |
| assertmem _x, 0x7ffffff | |
| bset.b #3, @(0, r1) | |
| assertmem _x, 0xfffffff | |
| bset.b #4, @(0, r1) | |
| assertmem _x, 0x1fffffff | |
| bset.b #5, @(0, r1) | |
| assertmem _x, 0x3fffffff | |
| bset.b #6, @(0, r1) | |
| assertmem _x, 0x7fffffff | |
| bset.b #7, @(0, r1) | |
| assertmem _x, 0xffffffff | |
| assertreg _x, r1 | |
| bset_imm_reg: | |
| set_greg 0, r1 | |
| bset #0, r1 | |
| assertreg 0x1, r1 | |
| bset #1, r1 | |
| assertreg 0x3, r1 | |
| bset #2, r1 | |
| assertreg 0x7, r1 | |
| bset #3, r1 | |
| assertreg 0xf, r1 | |
| bset #4, r1 | |
| assertreg 0x1f, r1 | |
| bset #5, r1 | |
| assertreg 0x3f, r1 | |
| bset #6, r1 | |
| assertreg 0x7f, r1 | |
| bset #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 | |