# sh testcase for ldrc, strc # mach: shdsp # as(shdsp): -defsym sim_cpu=1 -dsp .include "testutils.inc" start setrc_imm: set_grs_a5a5 # Test setrc # ldrs lstart ldre lend setrc #0xff get_sr r1 shlr16 r1 set_greg 0xfff, r0 and r0, r1 assertreg 0xff, r1 stc rs, r0 ! rs unchanged assertreg0 lstart stc re, r0 ! re unchanged assertreg0 lend set_greg 0xa5a5a5a5, r0 set_greg 0xa5a5a5a5, r1 test_grs_a5a5 setrc_reg: set_grs_a5a5 # Test setrc # ldrs lstart ldre lend set_greg 0xfff, r0 setrc r0 get_sr r1 shlr16 r1 set_greg 0xfff, r0 and r0, r1 assertreg 0xfff, r1 stc rs, r0 ! rs unchanged assertreg0 lstart stc re, r0 ! re unchanged assertreg0 lend set_greg 0xa5a5a5a5, r0 set_greg 0xa5a5a5a5, r1 test_grs_a5a5 bra ldrc_imm .global lstart .align 2 lstart: nop nop nop nop .global lend .align 2 lend: nop nop nop nop ldrc_imm: set_grs_a5a5 # Test ldrc setrc #0x0 ! zero rc ldrc #0xa5 get_sr r1 shlr16 r1 set_greg 0xfff, r0 and r0, r1 assertreg 0xa5, r1 stc rs, r0 ! rs unchanged assertreg0 lstart stc re, r0 assertreg0 lend+1 ! bit 0 set in re # fix up re for next test dt r0 ! Ugh! No DEC insn! ldc r0, re set_greg 0xa5a5a5a5, r0 set_greg 0xa5a5a5a5, r1 test_grs_a5a5 ldrc_reg: set_grs_a5a5 # Test ldrc setrc #0x0 ! zero rc set_greg 0xa5a, r0 ldrc r0 get_sr r1 shlr16 r1 set_greg 0xfff, r0 and r0, r1 assertreg 0xa5a, r1 stc rs, r0 ! rs unchanged assertreg0 lstart stc re, r0 assertreg0 lend+1 ! bit 0 set in re set_greg 0xa5a5a5a5, r0 set_greg 0xa5a5a5a5, r1 test_grs_a5a5 pass exit 0