filename | test/sh4/mac.s |
changeset | 358:65043a8f5785 |
author | nkeynes |
date | Fri Feb 24 21:11:58 2012 +1000 (12 years ago) |
permissions | -rw-r--r-- |
last change | Add preprocessing support to genglsl |
file | annotate | diff | log | raw |
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +00001.2 +++ b/test/sh4/mac.s Fri Feb 24 21:11:58 2012 +10001.3 @@ -0,0 +1,262 @@1.4 +.section .text1.5 +.include "sh4/inc.s"1.6 +!1.7 +! Test MAC Rm,Rn operation1.8 +!1.9 +.global _test_mac1.10 +_test_mac:1.11 + start_test1.12 +1.13 +test_macl_1: ! Basic mac.l ops.1.14 + add #1, r121.15 + clrmac1.16 + clrs1.17 + mov.l test_macl_1_inputs_k, r01.18 + mov.l test_macl_1_results_k, r61.19 + mov r0, r11.20 + mac.l @r0+, @r1+1.21 + sts macl, r21.22 + sts mach, r31.23 + mov.l @r6+, r41.24 + cmp/eq r2, r41.25 + bf test_macl_1_fail1.26 + xor r5, r51.27 + cmp/eq r3, r51.28 + bf test_macl_1_fail1.29 + cmp/eq r0, r11.30 + bf test_macl_1_fail1.31 + mov.l test_macl_1_inputs_k, r01.32 + cmp/eq r0, r11.33 + bt test_macl_1_fail1.34 + add #-4, r11.35 + cmp/eq r0, r11.36 + bf test_macl_1_fail1.37 +1.38 + mac.l @r0+, @r0+1.39 + sts macl, r21.40 + sts mach, r31.41 + mov.l @r6+, r41.42 + cmp/eq r2, r41.43 + bf test_macl_1_fail1.44 + xor r5, r51.45 + cmp/eq r3, r51.46 + bf test_macl_1_fail1.47 + add #8, r11.48 + cmp/eq r0, r11.49 + bf test_macl_1_fail1.50 +1.51 + mac.l @r0+, @r1+1.52 + sts macl, r21.53 + sts mach, r31.54 + mov.l @r6+, r41.55 + cmp/eq r2, r41.56 + bf test_macl_1_fail1.57 + mov.l @r6+, r51.58 + cmp/eq r3, r51.59 + bf test_macl_1_fail1.60 + bra test_macl_21.61 + nop1.62 +test_macl_1_fail:1.63 + fail test_mac_str_k1.64 + bra test_macl_21.65 + nop1.66 +test_macl_1_inputs_k:1.67 + .long test_macl_1_inputs1.68 +test_macl_1_inputs:1.69 + .long 0x000000101.70 + .long 0x000000211.71 + .long 0xF00000021.72 +test_macl_1_results_k:1.73 + .long test_macl_1_results1.74 +test_macl_1_results:1.75 + .long 0x000001001.76 + .long 0x000003101.77 + .long 0xC00003141.78 + .long 0x00FFFFFF1.79 +1.80 +test_macl_2: ! Test saturation1.81 + add #1, r121.82 + sets1.83 + mova test_macl_2_results, r01.84 + mov r0, r31.85 + mova test_macl_2_inputs, r01.86 + mac.l @r0+, @r0+1.87 + sts macl, r11.88 + mov.l @r3+, r21.89 + cmp/eq r1, r21.90 + bf test_macl_2_fail1.91 + sts mach, r11.92 + mov.l @r3+, r21.93 + cmp/eq r1, r21.94 + bf test_macl_2_fail1.95 + mov r0, r11.96 + mova test_macl_2_inputs, r01.97 + add #8, r01.98 + cmp/eq r0, r11.99 + bf test_macl_2_fail1.100 +1.101 + mac.l @r0+, @r0+1.102 + sts macl, r11.103 + mov.l @r3+, r21.104 + cmp/eq r1, r21.105 + bf test_macl_2_fail1.106 + sts mach, r11.107 + mov.l @r3+, r21.108 + cmp/eq r1, r21.109 + bt test_macw_11.110 +1.111 +test_macl_2_fail:1.112 + fail test_mac_str_k1.113 + bra test_macw_11.114 + nop1.115 +test_macl_2_inputs:1.116 + .long 0x000000001.117 + .long 0x000000101.118 + .long 0x7FFFFFDB1.119 + .long 0x800000EC1.120 +1.121 +test_macl_2_results:1.122 + .long 0xFFFFFFFF1.123 + .long 0x00007FFF1.124 + .long 0x000000001.125 + .long 0xFFFF80001.126 +1.127 +test_macw_1:1.128 + add #1, r121.129 + clrs1.130 + clrmac1.131 +1.132 + mova test_macw_1_results, r01.133 + mov r0, r41.134 + mova test_macw_1_inputs, r01.135 + mov r0, r11.136 + mac.w @r0+, @r1+1.137 + sts macl, r21.138 + mov.l @r4+, r31.139 + cmp/eq r2, r31.140 + bf test_macw_1_fail1.141 + sts mach, r21.142 + tst r2,r21.143 + bf test_macw_1_fail1.144 + cmp/eq r0, r11.145 + bf test_macw_1_fail1.146 + mova test_macw_1_inputs, r01.147 + add #-2, r11.148 + cmp/eq r0, r11.149 + bf test_macw_1_fail1.150 +1.151 + mac.w @r0+, @r0+1.152 + sts macl, r21.153 + mov.l @r4+, r31.154 + cmp/eq r2, r31.155 + bf test_macw_1_fail1.156 + sts mach, r21.157 + tst r2, r21.158 + bf test_macw_1_fail1.159 + add #4, r11.160 + cmp/eq r0, r11.161 + bf test_macw_1_fail1.162 +1.163 + add #2, r11.164 + mac.w @r0+, @r1+1.165 + sts macl, r21.166 + mov.l @r4+, r31.167 + cmp/eq r2, r31.168 + bf test_macw_1_fail1.169 + sts mach, r21.170 + tst r2, r21.171 + bf test_macw_1_fail1.172 + bra test_macw_21.173 + nop1.174 +1.175 +test_macw_1_fail:1.176 + fail test_mac_str_k1.177 + bra test_macw_21.178 + nop1.179 +test_macw_1_inputs:1.180 + .long 0x002100141.181 + .long 0x0002FFFF1.182 +test_macw_1_results:1.183 + .long 0x000001901.184 + .long 0x000004241.185 + .long 0x000004221.186 +1.187 +test_macw_2:1.188 + add #1, r121.189 + sets1.190 + clrmac1.191 + xor r0, r01.192 + not r0, r01.193 + lds r0, mach1.194 +1.195 + mova test_macw_2_results, r01.196 + mov r0, r31.197 + mova test_macw_2_inputs, r01.198 + mov #3, r61.199 +test_macw_2_loop:1.200 + mac.w @r0+, @r0+1.201 + sts macl, r11.202 + mov.l @r3+, r21.203 + cmp/eq r1, r21.204 + bf test_macw_2_fail1.205 + sts mach, r11.206 + mov.l @r3+, r21.207 + cmp/eq r1, r21.208 + bf test_macw_2_fail1.209 + dt r61.210 + bf test_macw_2_loop1.211 +1.212 + clrmac1.213 + mov #3, r61.214 +test_macw_2_loop_2:1.215 + mac.w @r0+, @r0+1.216 + sts macl, r11.217 + mov.l @r3+, r21.218 + cmp/eq r1, r21.219 + bf test_macw_2_fail1.220 + sts mach, r11.221 + mov.l @r3+, r21.222 + cmp/eq r1, r21.223 + bf test_macw_2_fail1.224 + dt r61.225 + bf test_macw_2_loop_21.226 + bra test_mac_end1.227 + nop1.228 +1.229 +test_macw_2_fail:1.230 + fail test_mac_str_k1.231 + bra test_mac_end1.232 + nop1.233 +test_macw_2_inputs:1.234 + .long 0x7FFE7FFF1.235 + .long 0x7FFF7FFD1.236 + .long 0x7FFB7FFC1.237 + .long 0x80007FF11.238 + .long 0x7FF280031.239 + .long 0x80047FF51.240 +test_macw_2_results:1.241 + .long 0x3FFE80021.242 + .long 0xFFFFFFFF1.243 + .long 0x7FFC80051.244 + .long 0xFFFFFFFF1.245 + .long 0x7FFFFFFF1.246 + .long 0x000000011.247 + .long 0xC00780001.248 + .long 0x000000001.249 + .long 0x800FFFD61.250 + .long 0x000000001.251 + .long 0x800000001.252 + .long 0x000000011.253 +1.254 +test_mac_end:1.255 + end_test test_mac_str_k1.256 +1.257 +test_mac_data_end:1.258 + .align 41.259 +test_mac_data_end_k:1.260 + .long test_mac_data_end1.261 +test_mac_str_k:1.262 + .long test_mac_str1.263 +test_mac_str:1.264 + .string "MAC"1.265 +1.266 \ No newline at end of file
.