filename | test/sh4/fmov.s |
changeset | 358:65043a8f5785 |
next | 732:f05753bbe723 |
author | nkeynes |
date | Thu Aug 23 12:34:43 2007 +0000 (16 years ago) |
permissions | -rw-r--r-- |
last change | Update generated files |
file | annotate | diff | log | raw |
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +00001.2 +++ b/test/sh4/fmov.s Thu Aug 23 12:34:43 2007 +00001.3 @@ -0,0 +1,320 @@1.4 +.section .text1.5 +.include "sh4/inc.s"1.6 +!1.7 +! Test fmov (all variants)1.8 +! (not arithmetic)1.9 +1.10 +.global _test_fmov1.11 +_test_fmov:1.12 + start_test1.13 +1.14 + xor r0,r01.15 + lds r0, fpscr1.16 +1.17 +test_fmov_1: ! single precision reg-to-reg1.18 + add #1, r121.19 +1.20 + fldi0 fr01.21 + fldi1 fr11.22 + flds fr0, fpul1.23 + sts fpul, r01.24 + tst r0, r01.25 + bf test_fmov_1_fail1.26 + fmov fr1, fr01.27 + flds fr0, fpul1.28 + sts fpul, r01.29 + mov.l test_fmov_1_result, r11.30 + cmp/eq r0, r11.31 + bt test_fmov_21.32 +test_fmov_1_fail:1.33 + fail test_fmov_str_k1.34 + bra test_fmov_21.35 + nop1.36 +1.37 +test_fmov_1_result:1.38 + .long 0x3F8000001.39 +1.40 +test_fmov_2: ! reg-to-reg double prec1.41 + add #1, r121.42 + mov.l test_fmov_2_input_a, r11.43 + lds r1, fpul1.44 + fsts fpul, fr41.45 + mov.l test_fmov_2_input_b, r31.46 + lds r3, fpul1.47 + fsts fpul, fr51.48 + fldi0 fr81.49 + fldi0 fr91.50 + fschg1.51 + flds fr8, fpul1.52 + sts fpul, r01.53 + tst r0, r01.54 + bf test_fmov_2_fail1.55 + flds fr9, fpul1.56 + sts fpul, r01.57 + tst r0, r01.58 + bf test_fmov_2_fail1.59 + fmov fr4, fr81.60 + flds fr8, fpul1.61 + sts fpul, r01.62 + flds fr9, fpul1.63 + sts fpul, r21.64 + cmp/eq r0, r11.65 + bf test_fmov_2_fail1.66 + cmp/eq r2, r31.67 + bt test_fmov_31.68 +test_fmov_2_fail:1.69 + fail test_fmov_str_k1.70 + bra test_fmov_31.71 + nop1.72 +test_fmov_2_input_a:1.73 + .long 0x123456781.74 +test_fmov_2_input_b:1.75 + .long 0x9ABCDEF01.76 +1.77 +test_fmov_3: ! double size DRm to XDn1.78 + add #1, r121.79 + frchg1.80 + fldi0 fr81.81 + fldi0 fr91.82 + frchg1.83 + fldi0 fr81.84 + fldi0 fr91.85 + mov.l test_fmov_3_input_a, r21.86 + lds r2, fpul1.87 + fsts fpul, fr21.88 + mov.l test_fmov_3_input_b, r31.89 + lds r3, fpul1.90 + fsts fpul, fr31.91 +1.92 + fmov fr2, fr91.93 + flds fr8, fpul1.94 + sts fpul, r01.95 + flds fr9, fpul1.96 + sts fpul, r11.97 + tst r0, r01.98 + bf test_fmov_3_fail1.99 + tst r1, r11.100 + bf test_fmov_3_fail1.101 + frchg1.102 + flds fr8, fpul1.103 + sts fpul, r01.104 + flds fr9, fpul1.105 + sts fpul, r11.106 + cmp/eq r0, r21.107 + bf test_fmov_3_fail1.108 + cmp/eq r1, r31.109 + bt test_fmov_41.110 +1.111 +test_fmov_3_fail:1.112 + fail test_fmov_str_k1.113 + bra test_fmov_41.114 + nop1.115 +1.116 +test_fmov_3_input_a:1.117 + .long 0x864213571.118 +test_fmov_3_input_b:1.119 + .long 0x975324681.120 +1.121 +test_fmov_4: ! double size XDm to DRn1.122 + add #1, r121.123 + mov.l test_fmov_4_input_a, r21.124 + lds r2, fpul1.125 + fsts fpul, fr61.126 + mov.l test_fmov_4_input_b, r31.127 + lds r3, fpul1.128 + fsts fpul, fr71.129 + fldi0 fr01.130 + fldi0 fr11.131 + frchg1.132 + fldi0 fr61.133 + fldi0 fr71.134 +1.135 + fmov fr7, fr01.136 + flds fr0, fpul1.137 + sts fpul, r01.138 + flds fr1, fpul1.139 + sts fpul, r11.140 + cmp/eq r0, r21.141 + bf test_fmov_4_fail1.142 + cmp/eq r1, r31.143 + bf test_fmov_4_fail1.144 + frchg1.145 + flds fr0, fpul1.146 + sts fpul, r01.147 + flds fr1, fpul1.148 + sts fpul, r11.149 + tst r0, r01.150 + bf test_fmov_4_fail1.151 + tst r1, r11.152 + bt test_fmov_51.153 +1.154 +test_fmov_4_fail:1.155 + fail test_fmov_str_k1.156 + bra test_fmov_51.157 + nop1.158 +1.159 +test_fmov_4_input_a:1.160 + .long 0xACADACA01.161 +test_fmov_4_input_b:1.162 + .long 0x122334451.163 +1.164 +1.165 +test_fmov_5: ! double size @Rm to DRn, DRm to @Rn1.166 + add #1, r121.167 + mova test_fmov_5_data_a, r01.168 + mov r0, r41.169 + xor r1, r11.170 + mov.l r1, @r01.171 + add #4, r01.172 + mov.l r1, @r01.173 + mova test_fmov_5_input_a, r01.174 + fmov @r0, fr81.175 + mov.l test_fmov_5_input_a, r01.176 + mov.l test_fmov_5_input_b, r11.177 + flds fr8, fpul1.178 + sts fpul, r51.179 + flds fr9, fpul1.180 + sts fpul, r61.181 + cmp/eq r0, r51.182 + bf test_fmov_5_fail1.183 + cmp/eq r1, r61.184 + bf test_fmov_5_fail1.185 + fmov fr8, @r41.186 + mov.l test_fmov_5_data_a, r21.187 + mov.l test_fmov_5_data_b, r31.188 + cmp/eq r0, r21.189 + bf test_fmov_5_fail1.190 + cmp/eq r1, r31.191 + bt test_fmov_61.192 +test_fmov_5_fail:1.193 + fail test_fmov_str_k1.194 + bra test_fmov_61.195 + nop1.196 +1.197 +test_fmov_5_input_a:1.198 + .long 0xFEEDBEEF1.199 +test_fmov_5_input_b:1.200 + .long 0xDEAD12341.201 +test_fmov_5_data_a:1.202 + .long 01.203 +test_fmov_5_data_b:1.204 + .long 01.205 +1.206 +test_fmov_6: ! double size @Rm+ to DRn, DRm to @-Rn1.207 + add #1, r121.208 + mova test_fmov_6_data_a, r01.209 + mov r0, r41.210 + xor r1, r11.211 + mov.l r1, @r41.212 + add #4, r41.213 + mov.l r1, @r41.214 + add #4, r41.215 + mova test_fmov_6_input_a, r01.216 + mov r0, r71.217 + fmov @r7+, fr101.218 + mov.l test_fmov_6_input_a, r01.219 + mov.l test_fmov_6_input_b, r11.220 + flds fr10, fpul1.221 + sts fpul, r51.222 + flds fr11, fpul1.223 + sts fpul, r61.224 + cmp/eq r0, r51.225 + bf test_fmov_6_fail1.226 + cmp/eq r1, r61.227 + bf test_fmov_6_fail1.228 + fmov fr10, @-r41.229 + mov.l test_fmov_6_data_a, r21.230 + mov.l test_fmov_6_data_b, r31.231 + cmp/eq r0, r21.232 + bf test_fmov_6_fail1.233 + cmp/eq r1, r31.234 + bf test_fmov_6_fail1.235 + mova test_fmov_6_data_a, r01.236 + cmp/eq r0, r41.237 + bf test_fmov_6_fail1.238 + cmp/eq r0, r71.239 + bt test_fmov_71.240 +test_fmov_6_fail:1.241 + fail test_fmov_str_k1.242 + bra test_fmov_71.243 + nop1.244 +1.245 +test_fmov_6_input_a:1.246 + .long 0x423185761.247 +test_fmov_6_input_b:1.248 + .long 0xF0AFD34F1.249 +test_fmov_6_data_a:1.250 + .long 01.251 +test_fmov_6_data_b:1.252 + .long 01.253 +1.254 +test_fmov_7: ! double size @Rm,@R0 to DRn, DRm to @Rn,@R01.255 + add #1, r121.256 + mova test_fmov_7_data_a, r01.257 + mov r0, r41.258 + xor r1, r11.259 + mov.l r1, @r41.260 + add #4, r41.261 + mov.l r1, @r41.262 + add #48, r41.263 + mova test_fmov_7_input_a, r01.264 + mov r0, r71.265 + xor r0, r01.266 + add #-31, r71.267 + add #31, r01.268 + fmov @(r0,r7), fr101.269 + mov.l test_fmov_7_input_a, r01.270 + mov.l test_fmov_7_input_b, r11.271 + flds fr10, fpul1.272 + sts fpul, r51.273 + flds fr11, fpul1.274 + sts fpul, r61.275 + cmp/eq r0, r51.276 + bf test_fmov_7_fail1.277 + cmp/eq r1, r61.278 + bf test_fmov_7_fail1.279 + xor r0, r01.280 + add #-52, r01.281 + fmov fr10, @(r0,r4)1.282 + mov.l test_fmov_7_input_a, r01.283 + mov.l test_fmov_7_data_a, r21.284 + mov.l test_fmov_7_data_b, r31.285 + cmp/eq r0, r21.286 + bf test_fmov_7_fail1.287 + cmp/eq r1, r31.288 + bf test_fmov_7_fail1.289 + mova test_fmov_7_data_a, r01.290 + add #52, r01.291 + cmp/eq r0, r41.292 + bf test_fmov_7_fail1.293 + mova test_fmov_7_input_a, r01.294 + add #-31, r01.295 + cmp/eq r0, r71.296 + bt test_fmov_81.297 +test_fmov_7_fail:1.298 + fail test_fmov_str_k1.299 + bra test_fmov_81.300 + nop1.301 +1.302 +test_fmov_7_input_a:1.303 + .long 0xABBACADA1.304 +test_fmov_7_input_b:1.305 + .long 0x435465761.306 +test_fmov_7_data_a:1.307 + .long 01.308 +test_fmov_7_data_b:1.309 + .long 01.310 +1.311 +test_fmov_8:1.312 +1.313 +test_fmov_end:1.314 + xor r0, r01.315 + lds r0, fpscr1.316 + end_test test_fmov_str_k1.317 +1.318 +test_fmov_str:1.319 + .string "FMOV"1.320 +1.321 +.align 41.322 +test_fmov_str_k:1.323 + .long test_fmov_str
.