filename | test/sh4/add.s |
changeset | 225:e5cea6125580 |
next | 226:0eeeb25447d3 |
author | nkeynes |
date | Wed Sep 20 09:52:32 2006 +0000 (15 years ago) |
permissions | -rw-r--r-- |
last change | Commit start of SH4 test cases |
file | annotate | diff | log | raw |
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +00001.2 +++ b/test/sh4/add.s Wed Sep 20 09:52:32 2006 +00001.3 @@ -0,0 +1,145 @@1.4 + .section .text1.5 +.global _test_add1.6 +_test_add:1.7 + mov.l r14, @-r151.8 + sts.l pr, @-r151.9 + mov.l r12, @-r151.10 + mov.l r13, @-r151.11 + mov r15, r141.12 + xor r12,r121.13 + xor r13,r131.14 +# r12 is the test counter1.15 +# r13 is the failed-test counter1.16 +1.17 +test_add_1: # test adding 0+0 = 01.18 + add #1, r121.19 + xor r0,r01.20 + xor r1,r11.21 + xor r2,r21.22 + add r0,r11.23 + cmp/eq r1, r21.24 + bt test_add_21.25 + add #1, r131.26 +1.27 +test_add_2: # test 0+ constant 1 = 11.28 + add #1, r121.29 + xor r0, r01.30 + xor r1, r11.31 + add #1, r11.32 + mov.l test_add_2_result, r21.33 + cmp/eq r1, r21.34 + bt test_add_31.35 + add #1, r131.36 + bra test_add_31.37 + nop1.38 +1.39 + .align 41.40 +test_add_2_result:1.41 + .long 0x000000011.42 +1.43 +test_add_3: # test 0 + constant -1 = -11.44 + add #1, r121.45 + xor r0, r01.46 + xor r1, r11.47 + add #-1, r11.48 + mov.l test_add_3_result, r21.49 + cmp/eq r1, r21.50 + bt test_add_41.51 + add #1, r131.52 + bra test_add_41.53 + nop1.54 +1.55 + .align 41.56 +test_add_3_result:1.57 + .long 0xFFFFFFFF1.58 +1.59 +test_add_4: # test a+b = c w/ overflow1.60 + add #1, r121.61 + mov.l test_add_4_op1, r41.62 + mov.l test_add_4_op2, r51.63 + mov.l test_add_4_result, r01.64 + add r4, r51.65 + cmp/eq r5, r01.66 + bt test_add_51.67 + add #1, r131.68 + bra test_add_51.69 + nop1.70 +1.71 + .align 41.72 +test_add_4_op1:1.73 + .long 0x987654321.74 +test_add_4_op2:1.75 + .long 0xA12345671.76 +test_add_4_result:1.77 + .long 0x399999991.78 +1.79 +test_add_5: # test carry neither used nor set (ala ADDC)1.80 + add #1, r121.81 + mov.l test_add_5_op1, r81.82 + mov.l test_add_5_op2, r91.83 + stc sr, r101.84 + xor r0,r01.85 + add #1, r01.86 + or r0,r101.87 + ldc r10, sr1.88 + add r9,r81.89 + mov.l test_add_5_result, r111.90 + cmp/eq r11, r81.91 + bt test_add_5_b1.92 + add #1, r131.93 + mov.l test_print_failure_k, r31.94 + mov r12, r51.95 + mov.l test_add_str_k, r41.96 + jsr @r31.97 + nop1.98 + bra test_add_61.99 + nop1.100 +test_add_5_b:1.101 + stc sr, r11.102 + and r0, r11.103 + cmp/eq r0, r11.104 + bt test_add_61.105 + add #1, r131.106 + mov.l test_print_failure_k, r31.107 + mov r12, r51.108 + mov.l test_add_str_k, r41.109 + jsr @r31.110 + nop1.111 + bra test_add_61.112 + nop1.113 +1.114 +test_add_5_op1:1.115 + .long 0x111111111.116 +test_add_5_op2:1.117 + .long 0x1000FFFF1.118 +test_add_5_result:1.119 + .long 0x211211101.120 +1.121 +test_add_6:1.122 +1.123 +test_add_end:1.124 + mov.l test_add_str_k, r41.125 + mov r13, r51.126 + mov r12, r61.127 + mov.l test_print_result_k, r11.128 + jsr @r11.129 + mov r14, r151.130 + mov.l @r15+, r131.131 + mov.l @r15+, r121.132 + lds.l @r15+, pr1.133 + mov.l @r15+, r141.134 + rts1.135 + nop1.136 +1.137 + .align 21.138 +test_add_str:1.139 + .string "ADD"1.140 + .align 21.141 +1.142 +test_add_str_k:1.143 + .long test_add_str1.144 +test_print_result_k:1.145 + .long _test_print_result1.146 +test_print_failure_k:1.147 + .long _test_print_failure1.148 +1.149 \ No newline at end of file
.