filename | test/sh4/addc.s |
changeset | 226:0eeeb25447d3 |
next | 231:a9e61a96a885 |
author | nkeynes |
date | Sat Sep 23 10:35:29 2006 +0000 (17 years ago) |
permissions | -rw-r--r-- |
last change | SH4 tests: Add tests for addc, addv, and |
file | annotate | diff | log | raw |
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +00001.2 +++ b/test/sh4/addc.s Sat Sep 23 10:35:29 2006 +00001.3 @@ -0,0 +1,210 @@1.4 +.section .text1.5 +.include "sh4/inc.s"1.6 +1.7 +.global _test_addc1.8 +_test_addc:1.9 + start_test1.10 +1.11 +test_addc_1: ! test adding 0+0 = 01.12 + clc1.13 + add #1, r121.14 + xor r0,r01.15 + xor r1,r11.16 + xor r2,r21.17 + addc r0,r11.18 + stc sr, r41.19 + cmp/eq r1, r21.20 + bt test_addc_1_b1.21 + fail test_addc_str_k1.22 + bra test_addc_21.23 + nop1.24 +test_addc_1_b:1.25 + ldc r4, sr1.26 + assert_t_clear test_addc_str_k1.27 +1.28 +test_addc_2: ! test 0+ constant 1 = 11.29 + add #1, r121.30 + clc1.31 + xor r0, r01.32 + xor r1, r11.33 + add #1, r01.34 + addc r0, r11.35 + stc sr, r41.36 + mov.l test_addc_2_result, r21.37 + cmp/eq r1, r21.38 + bt test_addc_2_b1.39 + fail test_addc_str_k1.40 + bra test_addc_31.41 + nop1.42 +test_addc_2_b:1.43 + ldc r4, sr1.44 + assert_t_clear test_addc_str_k1.45 + bra test_addc_31.46 + nop1.47 +1.48 + .align 41.49 +test_addc_2_result:1.50 + .long 0x000000011.51 +1.52 +test_addc_3: ! test 0 + constant -1 = -11.53 + add #1, r121.54 + clc1.55 + xor r0, r01.56 + xor r1, r11.57 + add #-1, r01.58 + addc r0, r11.59 + mov.l test_addc_3_result, r21.60 + stc sr, r31.61 + cmp/eq r1, r21.62 + bt test_addc_3_b1.63 + fail test_addc_str_k1.64 + bra test_addc_41.65 + nop1.66 +test_addc_3_b:1.67 + ldc r3, sr1.68 + assert_t_clear test_addc_str_k1.69 + bra test_addc_41.70 + nop1.71 +1.72 + .align 41.73 +test_addc_3_result:1.74 + .long 0xFFFFFFFF1.75 +1.76 +test_addc_4: ! test a+b = c w/ carry set1.77 + add #1, r121.78 + clc1.79 + mov.l test_addc_4_op1, r41.80 + mov.l test_addc_4_op2, r51.81 + mov.l test_addc_4_result, r01.82 + addc r4, r51.83 + stc sr, r11.84 + cmp/eq r5, r01.85 + bt test_addc_4_b1.86 + fail test_addc_str_k1.87 + bra test_addc_51.88 + nop1.89 +test_addc_4_b:1.90 + ldc r1, sr1.91 + assert_t_set test_addc_str_k1.92 + bra test_addc_51.93 + nop1.94 +1.95 + .align 41.96 +test_addc_4_op1:1.97 + .long 0x987654321.98 +test_addc_4_op2:1.99 + .long 0xA12345671.100 +test_addc_4_result:1.101 + .long 0x399999991.102 +1.103 +test_addc_5: ! test carry used and cleared1.104 + add #1, r121.105 + mov.l test_addc_5_op1, r81.106 + mov.l test_addc_5_op2, r91.107 + stc sr, r101.108 + xor r0,r01.109 + add #1, r01.110 + or r0,r101.111 + ldc r10, sr1.112 + addc r9,r81.113 + stc sr, r11.114 + mov.l test_addc_5_result, r111.115 + cmp/eq r11, r81.116 + bt test_addc_5_b1.117 + fail test_addc_str_k1.118 + bra test_addc_61.119 + nop1.120 +test_addc_5_b:1.121 + ldc r1, sr1.122 + assert_t_clear test_addc_str_k1.123 + bra test_addc_61.124 + nop1.125 +1.126 +test_addc_5_op1:1.127 + .long 0x111111111.128 +test_addc_5_op2:1.129 + .long 0x1000FFFF1.130 +test_addc_5_result:1.131 + .long 0x211211111.132 +1.133 +test_addc_6: ! test carry set on full rollover (ie n + 0xFFFFFFFF + carry )1.134 + add #1, r121.135 + setc1.136 + mov.l test_addc_6_op1, r51.137 + mov.l test_addc_6_op2, r61.138 + addc r5, r61.139 + stc sr, r11.140 + cmp/eq r5, r61.141 + bt test_addc_6_b1.142 + fail test_addc_str_k1.143 + bra test_addc_71.144 + nop1.145 +test_addc_6_b:1.146 + ldc r1, sr1.147 + assert_t_set test_addc_str_k1.148 + bra test_addc_71.149 + nop1.150 +1.151 +test_addc_6_op1:1.152 + .long 0x123467891.153 +test_addc_6_op2:1.154 + .long 0xFFFFFFFF1.155 +1.156 +1.157 +test_addc_7:1.158 + add #1, r121.159 + clc1.160 + mov.l test_addc_7_op1, r51.161 + mov.l test_addc_7_op2, r61.162 + addc r5, r61.163 + stc sr, r11.164 + mov.l test_addc_7_result, r21.165 + cmp/eq r2, r61.166 + bt test_addc_7_b1.167 + fail test_addc_str_k1.168 + bra test_addc_81.169 + nop1.170 +test_addc_7_b:1.171 + ldc r1, sr1.172 + assert_t_set test_addc_str_k1.173 + bra test_addc_81.174 + nop1.175 +1.176 +test_addc_7_op1:1.177 + .long 0x987654321.178 +test_addc_7_op2:1.179 + .long 0xFFFFFFFF1.180 +test_addc_7_result:1.181 + .long 0x987654311.182 +1.183 +test_addc_8:1.184 + add #1, r121.185 + setc1.186 + xor r0,r01.187 + addc r0, r01.188 + stc sr, r31.189 + mov.l test_addc_8_result, r11.190 + cmp/eq r0, r11.191 + bt test_addc_8_b1.192 + fail test_addc_str_k1.193 + bra test_addc_91.194 + nop1.195 +test_addc_8_b:1.196 + ldc r3, sr1.197 + assert_t_clear test_addc_str_k1.198 + bra test_addc_91.199 + nop1.200 +1.201 +test_addc_8_result:1.202 + .long 0x000000011.203 +1.204 +test_addc_9:1.205 +test_addc_end:1.206 + end_test test_addc_str_k1.207 +1.208 +test_addc_str:1.209 + .string "ADDC"1.210 +1.211 +.align 41.212 +test_addc_str_k:1.213 + .long test_addc_str
.