# sh testcase for psub # mach: shdsp # as(shdsp): -defsym sim_cpu=1 -dsp .include "testutils.inc" start set_grs_a5a5 lds r0, a0 pcopy a0, a1 lds r0, x0 lds r0, x1 lds r0, y0 lds r0, y1 pcopy x0, m0 pcopy y1, m1 psub_sx_sy: # 0xa5a5a5a5 minus 0xa5a5a5a5 equals zero psub x0, y0, a0 assert_sreg 0, a0 psub_sy_sx: # 100 - 25 = 75 mov #100, r0 mov #25, r1 lds r0, y1 lds r1, x1 psub y1, x1, a0 assert_sreg 75, a0 dct_psub: # 100 - 25 = 75 set_dcfalse dct psub y1, x1, a1 assert_sreg2 0xa5a5a5a5, a1 set_dctrue dct psub y1, x1, a1 assert_sreg2 75, a1 dcf_psub: # 25 - 100 = -75 set_dctrue dcf psub x1, y1, m1 assert_sreg2 0xa5a5a5a5, m1 set_dcfalse dcf psub x1, y1, m1 assert_sreg2 -75, m1 psub_pmuls: # 25 - 100 = -75, and 2 x 2 = 8 (yes, eight, not four) mov #2, r0 shll16 r0 lds r0, x0 lds r0, y0 psub x1, y1, a1 pmuls x0, y0, a0 assert_sreg 8, a0 assert_sreg2 -75, a1 set_greg 0xa5a5a5a5, r0 set_greg 0xa5a5a5a5, r1 test_grs_a5a5 pass exit 0