# sh testcase for ldbank stbank resbank # mach: all # as(sh): -defsym sim_cpu=0 # as(shdsp): -defsym sim_cpu=1 -dsp .include "testutils.inc" .macro SEND reg bankno regno set_greg ((\bankno << 7) + (\regno << 2)), \reg .endm start stbank_1: set_grs_a5a5 mov #0, r0 SEND r1, 0, 0 stbank r0, @r1 mov #1, r0 SEND r1, 0, 1 stbank r0, @r1 mov #2, r0 SEND r1, 0, 2 stbank r0, @r1 mov #3, r0 SEND r1, 0, 3 stbank r0, @r1 mov #4, r0 SEND r1, 0, 4 stbank r0, @r1 mov #5, r0 SEND r1, 0, 5 stbank r0, @r1 mov #6, r0 SEND r1, 0, 6 stbank r0, @r1 mov #7, r0 SEND r1, 0, 7 stbank r0, @r1 mov #8, r0 SEND r1, 0, 8 stbank r0, @r1 mov #9, r0 SEND r1, 0, 9 stbank r0, @r1 mov #10, r0 SEND r1, 0, 10 stbank r0, @r1 mov #11, r0 SEND r1, 0, 11 stbank r0, @r1 mov #12, r0 SEND r1, 0, 12 stbank r0, @r1 mov #13, r0 SEND r1, 0, 13 stbank r0, @r1 mov #14, r0 SEND r1, 0, 14 stbank r0, @r1 mov #15, r0 SEND r1, 0, 15 stbank r0, @r1 mov #16, r0 SEND r1, 0, 16 stbank r0, @r1 mov #17, r0 SEND r1, 0, 17 stbank r0, @r1 mov #18, r0 SEND r1, 0, 18 stbank r0, @r1 mov #19, r0 SEND r1, 0, 19 stbank r0, @r1 assertreg0 19 assertreg 19 << 2, r1 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 ldbank_1: set_grs_a5a5 SEND r1, 0, 0 ldbank @r1, r0 assertreg0 0 SEND r1, 0, 1 ldbank @r1, r0 assertreg0 1 SEND r1, 0, 2 ldbank @r1, r0 assertreg0 2 SEND r1, 0, 3 ldbank @r1, r0 assertreg0 3 SEND r1, 0, 4 ldbank @r1, r0 assertreg0 4 SEND r1, 0, 5 ldbank @r1, r0 assertreg0 5 SEND r1, 0, 6 ldbank @r1, r0 assertreg0 6 SEND r1, 0, 7 ldbank @r1, r0 assertreg0 7 SEND r1, 0, 8 ldbank @r1, r0 assertreg0 8 SEND r1, 0, 9 ldbank @r1, r0 assertreg0 9 SEND r1, 0, 10 ldbank @r1, r0 assertreg0 10 SEND r1, 0, 11 ldbank @r1, r0 assertreg0 11 SEND r1, 0, 12 ldbank @r1, r0 assertreg0 12 SEND r1, 0, 13 ldbank @r1, r0 assertreg0 13 SEND r1, 0, 14 ldbank @r1, r0 assertreg0 14 SEND r1, 0, 15 ldbank @r1, r0 assertreg0 15 SEND r1, 0, 16 ldbank @r1, r0 assertreg0 16 SEND r1, 0, 17 ldbank @r1, r0 assertreg0 17 SEND r1, 0, 18 ldbank @r1, r0 assertreg0 18 SEND r1, 0, 19 ldbank @r1, r0 assertreg0 19 assertreg (19 << 2), r1 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 resbank_1: set_grs_a5a5 mov #1, r0 trapa #13 ! magic trap, sets ibnr resbank assertreg0 0 assertreg 1, r1 assertreg 2, r2 assertreg 3, r3 assertreg 4, r4 assertreg 5, r5 assertreg 6, r6 assertreg 7, r7 assertreg 8, r8 assertreg 9, r9 assertreg 10, r10 assertreg 11, r11 assertreg 12, r12 assertreg 13, r13 assertreg 14, r14 assert_sreg 15, mach assert_sreg 17, pr assert_creg 18, gbr assert_sreg 19, macl resbank_2: set_grs_a5a5 movi20 #555, r0 mov.l r0, @-r15 add #-1, r0 mov.l r0, @-r15 add #-1, r0 mov.l r0, @-r15 add #-1, r0 mov.l r0, @-r15 add #-1, r0 mov.l r0, @-r15 add #-1, r0 mov.l r0, @-r15 add #-1, r0 mov.l r0, @-r15 add #-1, r0 mov.l r0, @-r15 add #-1, r0 mov.l r0, @-r15 add #-1, r0 mov.l r0, @-r15 add #-1, r0 mov.l r0, @-r15 add #-1, r0 mov.l r0, @-r15 add #-1, r0 mov.l r0, @-r15 add #-1, r0 mov.l r0, @-r15 add #-1, r0 mov.l r0, @-r15 add #-1, r0 mov.l r0, @-r15 add #-1, r0 mov.l r0, @-r15 add #-1, r0 mov.l r0, @-r15 add #-1, r0 mov.l r0, @-r15 set_sr_bit (1 << 14) ! set BO resbank assert_sreg 555, macl assert_sreg 554, mach assert_creg 553, gbr assert_sreg 552, pr assertreg 551, r14 assertreg 550, r13 assertreg 549, r12 assertreg 548, r11 assertreg 547, r10 assertreg 546, r9 assertreg 545, r8 assertreg 544, r7 assertreg 543, r6 assertreg 542, r5 assertreg 541, r4 assertreg 540, r3 assertreg 539, r2 assertreg 538, r1 assertreg0 537 mov r15, r0 assertreg0 stackt pass exit 0