revision 393:5e5335b61373
summary |
tree |
shortlog |
changelog |
graph |
changeset |
raw | bz2 | zip | gz changeset | 393:5e5335b61373 |
parent | 392:39e596b3b6dd |
child | 394:7eb172bfeefe |
author | nkeynes |
date | Wed Sep 19 09:13:08 2007 +0000 (15 years ago) |
Add tests for SUB, SUBC and XTRCT
Add rounding tests for FTRC
Add rounding tests for FTRC
![]() | test/Makefile | view | annotate | diff | log | |
![]() | test/sh4/ftrc.s | view | annotate | diff | log | |
![]() | test/sh4/sub.s | view | annotate | diff | log | |
![]() | test/sh4/subc.s | view | annotate | diff | log | |
![]() | test/sh4/testsh4.c | view | annotate | diff | log | |
![]() | test/sh4/xtrct.s | view | annotate | diff | log |
1.1 --- a/test/Makefile Tue Sep 18 10:48:57 2007 +00001.2 +++ b/test/Makefile Wed Sep 19 09:13:08 2007 +00001.3 @@ -75,7 +75,7 @@1.4 sh4/add.so sh4/addc.so sh4/addv.so sh4/and.so sh4/andi.so \1.5 sh4/bf.so sh4/bt.so sh4/cmp.so sh4/cmpstr.so sh4/div0.so \1.6 sh4/div1.so sh4/float.so sh4/fmov.so sh4/ftrc.so sh4/mac.s \1.7 - sh4/shld.so \1.8 + sh4/shld.so sh4/sub.so sh4/subc.so sh4/xtrct.so \1.9 sh4/excslot.so sh4/undef.so1.10 $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)1.11 $(SH4OBJCOPY) testsh4 testsh4.bin
2.1 --- a/test/sh4/ftrc.s Tue Sep 18 10:48:57 2007 +00002.2 +++ b/test/sh4/ftrc.s Wed Sep 19 09:13:08 2007 +00002.3 @@ -274,10 +274,10 @@2.4 sts fpul, r12.5 mov.l test_ftrc_11_result, r22.6 cmp/eq r1, r22.7 - bt test_ftrc_end2.8 + bt test_ftrc_122.9 test_ftrc_11_fail:2.10 fail test_ftrc_str_k2.11 - bra test_ftrc_end2.12 + bra test_ftrc_122.13 nop2.14 test_ftrc_11_input_a:2.15 .long 0x40FFFF112.16 @@ -288,7 +288,40 @@2.17 test_ftrc_11_result:2.18 .long 0x000000002.20 +test_ftrc_12: ! single precision numeric tests (rounding)2.21 + mov.l r11, @-r152.22 + mov.l r10, @-r152.23 + mova test_ftrc_12_data, r02.24 + mov r0, r102.25 + mov #4, r112.26 + clrpr2.27 +test_ftrc_12_loop:2.28 + add #1, r122.29 + fmov @r10+, fr52.30 + ftrc fr5, fpul2.31 + sts fpul, r42.32 + mov.l @r10+, r52.33 + cmp/eq r4, r52.34 + bt test_ftrc_12_ok2.35 + fail test_ftrc_str_k2.36 +test_ftrc_12_ok:2.37 + dt r112.38 + bf test_ftrc_12_loop2.39 + bra test_ftrc_end2.40 + nop2.41 +test_ftrc_12_data:2.42 + .long 0x449a53142.43 + .long 0x000004D22.44 + .long 0xC5A9C7852.45 + .long 0xFFFFEAC82.46 + .long 0x490982912.47 + .long 0x000898292.48 + .long 0xC2DA999A2.49 + .long 0xFFFFFF932.50 +2.51 test_ftrc_end:2.52 + mov.l @r15+, r102.53 + mov.l @r15+, r112.54 end_test test_ftrc_str_k2.56 test_ftrc_str:
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +00003.2 +++ b/test/sh4/sub.s Wed Sep 19 09:13:08 2007 +00003.3 @@ -0,0 +1,119 @@3.4 +.section .text3.5 +.include "sh4/inc.s"3.6 +3.7 +.global _test_sub3.8 +_test_sub:3.9 + start_test3.10 +3.11 +test_sub_1: ! test subing 0+0 = 03.12 + add #1, r123.13 + xor r0,r03.14 + xor r1,r13.15 + xor r2,r23.16 + sett3.17 + sub r0,r13.18 + bf test_sub_1_fail3.19 + cmp/eq r1, r23.20 + bt test_sub_23.21 +test_sub_1_fail:3.22 + fail test_sub_str_k3.23 +3.24 +test_sub_2: ! test 0+ constant 1 = 13.25 + add #1, r123.26 + xor r0, r03.27 + xor r1, r13.28 + mov.l test_sub_2_input, r03.29 + mov.l test_sub_2_result, r23.30 + clrt3.31 + sub r0, r13.32 + bt test_sub_2_fail3.33 + cmp/eq r1, r23.34 + bt test_sub_33.35 +test_sub_2_fail:3.36 + fail test_sub_str_k3.37 + bra test_sub_33.38 + nop3.39 +3.40 + .align 43.41 +test_sub_2_input:3.42 + .long 0x000000013.43 +test_sub_2_result:3.44 + .long 0xFFFFFFFF3.45 +3.46 +test_sub_3: ! test 0 + constant -1 = -13.47 + add #1, r123.48 + mov.l test_sub_3_input_1, r03.49 + mov r0, r13.50 + mov.l test_sub_3_input_2, r13.51 + sett3.52 + sub r0, r13.53 + bf test_sub_3_fail3.54 + mov.l test_sub_3_result, r23.55 + cmp/eq r1, r23.56 + bt test_sub_43.57 +test_sub_3_fail:3.58 + fail test_sub_str_k3.59 + bra test_sub_43.60 + nop3.61 +3.62 + .align 43.63 +test_sub_3_input_1:3.64 + .long 0xFFFFFF843.65 +test_sub_3_input_2:3.66 + .long 0x432170003.67 +test_sub_3_result:3.68 + .long 0x4321707C3.69 +3.70 +test_sub_4: ! Test 0 result3.71 + add #1, r123.72 + mov.l test_sub_4_op1, r23.73 + mov.l test_sub_4_op2, r13.74 + mov r2, r33.75 + sub r1, r33.76 + mov.l test_sub_4_result_1, r03.77 + cmp/eq r0, r33.78 + bf test_sub_4_fail3.79 + mov r2, r33.80 + sub r3, r13.81 + mov.l test_sub_4_result_2, r23.82 + cmp/eq r1, r23.83 + bt test_sub_53.84 +test_sub_4_fail:3.85 + fail test_sub_str_k3.86 + bra test_sub_53.87 + nop3.88 +test_sub_4_op1:3.89 + .long 0x000000013.90 +test_sub_4_op2:3.91 + .long 0xFFFFFFFF3.92 +test_sub_4_result_1:3.93 + .long 0x000000023.94 +test_sub_4_result_2:3.95 + .long 0xFFFFFFFE3.96 +3.97 +test_sub_5:3.98 + add #1, r123.99 + mov.l test_sub_5_op, r23.100 + sett3.101 + sub r2, r23.102 + bf test_sub_5_fail3.103 + tst r2, r23.104 + bt test_sub_end3.105 +test_sub_5_fail:3.106 + fail test_sub_str_k3.107 + bra test_sub_end3.108 + nop3.109 +3.110 +test_sub_5_op:3.111 + .long 0xABCD12343.112 +3.113 +test_sub_end:3.114 + end_test test_sub_str_k3.115 +3.116 +test_sub_str:3.117 + .string "SUB"3.118 +3.119 +.align 43.120 +test_sub_str_k:3.121 + .long test_sub_str3.122 +3.123 \ No newline at end of file
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +00004.2 +++ b/test/sh4/subc.s Wed Sep 19 09:13:08 2007 +00004.3 @@ -0,0 +1,83 @@4.4 +.section .text4.5 +.include "sh4/inc.s"4.6 +4.7 +.global _test_subc4.8 +_test_subc:4.9 + start_test4.10 +4.11 +test_subc_1: ! test subing 0+0 = 04.12 + add #1, r124.13 +4.14 + xor r3, r34.15 + clrt4.16 + subc r3, r34.17 + bt test_subc_1_fail4.18 + tst r3, r34.19 + bt test_subc_24.20 +test_subc_1_fail:4.21 + fail test_subc_str_k4.22 +4.23 +test_subc_2: ! test subing 0+0+T = -14.24 + add #1, r124.25 +4.26 + xor r3, r34.27 + sett4.28 + subc r3, r34.29 + bf test_subc_2_fail4.30 + mov.l test_subc_2_result, r24.31 + cmp/eq r2, r34.32 + bt test_subc_34.33 +test_subc_2_fail:4.34 + fail test_subc_str_k4.35 + bra test_subc_34.36 + nop4.37 +test_subc_2_result:4.38 + .long 0xFFFFFFFF4.39 +test_subc_3:4.40 + add #1, r124.41 +4.42 + xor r3, r34.43 + mov.l test_subc_3_input, r24.44 + clrt4.45 + subc r2, r34.46 + bf test_subc_3_fail4.47 + mov.l test_subc_3_result, r14.48 + cmp/eq r1, r34.49 + bt test_subc_44.50 +test_subc_3_fail:4.51 + fail test_subc_str_k4.52 + bra test_subc_44.53 + nop4.54 +test_subc_3_input:4.55 + .long 0x000000014.56 +test_subc_3_result:4.57 + .long 0xFFFFFFFF4.58 +4.59 +test_subc_4:4.60 + add #1, r124.61 +4.62 + xor r3, r34.63 + mov.l test_subc_4_input, r24.64 + sett4.65 + subc r3, r24.66 + bt test_subc_4_fail4.67 + tst r2, r24.68 + bt test_subc_54.69 +test_subc_4_fail:4.70 + fail test_subc_str_k4.71 + bra test_subc_54.72 + nop4.73 +test_subc_4_input:4.74 + .long 0x000000014.75 +4.76 +test_subc_5:4.77 +test_subc_end:4.78 + end_test test_subc_str_k4.79 +4.80 +test_subc_str:4.81 + .string "SUBC"4.82 +4.83 +.align 44.84 +test_subc_str_k:4.85 + .long test_subc_str4.86 +4.87 \ No newline at end of file
5.1 --- a/test/sh4/testsh4.c Tue Sep 18 10:48:57 2007 +00005.2 +++ b/test/sh4/testsh4.c Wed Sep 19 09:13:08 2007 +00005.3 @@ -62,6 +62,9 @@5.4 test_ftrc();5.5 test_mac();5.6 test_shld();5.7 + test_sub();5.8 + test_subc();5.9 + test_xtrct();5.10 fprintf( stdout, "--> %d/%d instruction tests passed (%d%%)\n\n",5.11 total_tests-total_fails, total_tests,5.12 ((total_tests-total_fails)*100)/total_tests );
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +00006.2 +++ b/test/sh4/xtrct.s Wed Sep 19 09:13:08 2007 +00006.3 @@ -0,0 +1,60 @@6.4 +.section .text6.5 +.include "sh4/inc.s"6.6 +6.7 +.global _test_xtrct6.8 +_test_xtrct:6.9 + start_test6.10 +6.11 +test_xtrct_1:6.12 + add #1, r126.13 +6.14 + mov.l test_xtrct_1_input_1, r36.15 + mov.l test_xtrct_1_input_2, r46.16 + mov r4, r56.17 + xtrct r3, r46.18 + xtrct r5, r36.19 + mov.l test_xtrct_1_result_1, r06.20 + mov.l test_xtrct_1_result_2, r16.21 + cmp/eq r0, r46.22 + bf test_xtrct_1_fail6.23 + cmp/eq r1, r36.24 + bt test_xtrct_26.25 +test_xtrct_1_fail:6.26 + fail test_xtrct_str_k6.27 + bra test_xtrct_26.28 + nop6.29 +test_xtrct_1_input_1:6.30 + .long 0x123456786.31 +test_xtrct_1_input_2:6.32 + .long 0x9ABCDEF06.33 +test_xtrct_1_result_1:6.34 + .long 0x56789ABC6.35 +test_xtrct_1_result_2:6.36 + .long 0xDEF012346.37 +6.38 +test_xtrct_2:6.39 + add #1, r126.40 +6.41 + mov.l test_xtrct_2_input, r36.42 + xtrct r3, r36.43 + mov.l test_xtrct_2_result, r46.44 + cmp/eq r3, r36.45 + bt test_xtrct_end6.46 + fail test_xtrct_str_k6.47 + bra test_xtrct_end6.48 + nop6.49 +test_xtrct_2_input:6.50 + .long 0x2143546A6.51 +test_xtrct_2_result:6.52 + .long 0x546A21436.53 +6.54 +test_xtrct_end:6.55 + end_test test_xtrct_str_k6.56 +6.57 +test_xtrct_str:6.58 + .string "XTRCT"6.59 +6.60 +.align 46.61 +test_xtrct_str_k:6.62 + .long test_xtrct_str6.63 +6.64 \ No newline at end of file
.