filename | test/math.s |
changeset | 185:6755a04c447f |
author | nkeynes |
date | Sat Jun 13 07:04:24 2009 +0000 (14 years ago) |
permissions | -rw-r--r-- |
last change | Fix cpu_desc_t initializer (not that we really use this one) |
file | annotate | diff | log | raw |
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +00001.2 +++ b/test/math.s Sat Jun 13 07:04:24 2009 +00001.3 @@ -0,0 +1,142 @@1.4 +#1.5 +# Assembler functions to invoke the non-standard FP operations1.6 +#1.7 +.global _clear_fpscr1.8 +_clear_fpscr:1.9 + xor r0, r01.10 + lds r0, fpscr1.11 + rts1.12 + nop1.13 +1.14 +.global _get_fpscr1.15 +_get_fpscr:1.16 + rts1.17 + sts fpscr, r01.18 +1.19 +.global _set_fpscr1.20 +_set_fpscr:1.21 + rts1.22 + lds r4, fpscr1.23 +1.24 +.global _do_fsca1.25 +_do_fsca:1.26 + sts fpscr, r01.27 + mov #0x08, r11.28 + shll16 r11.29 + not r1, r11.30 + and r0, r11.31 + lds r1, fpscr1.32 + lds r4, fpul1.33 + .word 0xF0FD1.34 + fmov fr0, @r51.35 + fmov fr1, @r61.36 + xor r0,r01.37 + rts1.38 + lds r1, fpscr1.39 +1.40 +.global _do_fsrra1.41 +_do_fsrra:1.42 + sts fpscr, r01.43 + mov #0x08, r11.44 + shll16 r11.45 + not r1, r11.46 + and r0, r11.47 + lds r1, fpscr1.48 + fmov fr4, fr01.49 + .word 0xF07D1.50 + rts1.51 + lds r0, fpscr1.52 +1.53 +.global _do_fipr1.54 +_do_fipr:1.55 + sts fpscr, r01.56 + mov #0x08, r11.57 + shll16 r11.58 + not r1, r11.59 + and r0, r11.60 + lds r1, fpscr1.61 + fmov.s @r4+, fr01.62 + fmov.s @r4+, fr11.63 + fmov.s @r4+, fr21.64 + fmov.s @r4+, fr31.65 + fmov.s @r5+, fr41.66 + fmov.s @r5+, fr51.67 + fmov.s @r5+, fr61.68 + fmov.s @r5+, fr71.69 + fipr fv0, fv41.70 + lds r0, fpscr1.71 + rts1.72 + fmov fr7, fr01.73 +1.74 +.global _do_fipr21.75 +_do_fipr2:1.76 + sts fpscr, r01.77 + mov #0x08, r11.78 + shll16 r11.79 + not r1, r11.80 + and r0, r11.81 + lds r1, fpscr1.82 + fschg1.83 + fmov @r4+, dr01.84 + fmov @r4+, dr21.85 + fmov @r5+, dr41.86 + fmov @r5+, dr61.87 + fschg1.88 + fipr fv0, fv41.89 + lds r0, fpscr1.90 + rts1.91 + fmov fr7, fr01.92 +1.93 +.global _do_ftrv1.94 +_do_ftrv:1.95 + sts fpscr, r01.96 + mov #0x08, r11.97 + shll16 r11.98 + not r1, r11.99 + and r0, r11.100 + lds r1, fpscr1.101 + fschg1.102 + fmov @r4+, xd01.103 + fmov @r4+, xd21.104 + fmov @r4+, xd41.105 + fmov @r4+, xd61.106 + fmov @r4+, xd81.107 + fmov @r4+, xd101.108 + fmov @r4+, xd121.109 + fmov @r4, xd141.110 + fmov @r5+, dr01.111 + fmov @r5, dr21.112 + ftrv xmtrx, fv01.113 + fmov dr2, @r51.114 + fmov dr0, @-r51.115 + fschg1.116 + rts1.117 + lds r0, fpscr1.118 +1.119 +.global _do_ftrv21.120 +_do_ftrv2:1.121 + sts fpscr, r01.122 + mov #0x08, r11.123 + shll16 r11.124 + not r1, r11.125 + and r0, r11.126 + lds r1, fpscr1.127 + fschg1.128 + frchg1.129 + fmov @r4+, dr01.130 + fmov @r4+, dr21.131 + fmov @r4+, dr41.132 + fmov @r4+, dr61.133 + fmov @r4+, dr81.134 + fmov @r4+, dr101.135 + fmov @r4+, dr121.136 + fmov @r4+, dr141.137 + frchg1.138 + fmov @r5+, dr01.139 + fmov @r5, dr21.140 + ftrv xmtrx, fv01.141 + fmov dr2, @-r51.142 + fmov dr0, @-r51.143 + fschg1.144 + rts1.145 + lds r0, fpscr
.