| # sh testcase for ftrv xmtrx, $fvn -*- Asm -*- |
| # mach: all |
| # as: -isa=shcompact |
| # ld: -m shelf32 |
| |
| .include "compact/testutils.inc" |
| |
| # set the fr bit in the fpscr |
| .macro _setfr |
| sts fpscr, r7 |
| mov #32, r8 |
| shll16 r8 |
| or r8, r7 |
| lds r7, fpscr |
| .endm |
| |
| # clear the fr bit |
| .macro _clrfr |
| sts fpscr, r7 |
| mov #32, r8 |
| shll16 r8 |
| not r8, r8 |
| and r8, r7 |
| lds r7, fpscr |
| .endm |
| |
| .macro incr old new |
| fldi1 \new |
| fadd \old, \new |
| .endm |
| |
| start |
| _setfr |
| popmtrx: |
| # 1.0. |
| fldi1 fr0 |
| # 2.0. |
| fldi1 fr1 |
| fadd fr1, fr1 |
| |
| incr fr1, fr2 |
| incr fr2, fr3 |
| incr fr3, fr4 |
| incr fr4, fr5 |
| incr fr5, fr6 |
| incr fr6, fr7 |
| incr fr7, fr8 |
| incr fr8, fr9 |
| incr fr9, fr10 |
| incr fr10, fr11 |
| incr fr11, fr12 |
| incr fr12, fr13 |
| incr fr13, fr14 |
| incr fr14, fr15 |
| |
| popvect: |
| # Swtich fp banks. |
| _clrfr |
| fldi1 fr4 |
| fldi1 fr5 |
| fadd fr5, fr5 |
| fldi1 fr6 |
| fadd fr5, fr6 |
| fldi1 fr7 |
| fadd fr6, fr7 |
| |
| ftrv: |
| # fr[4,7] should contain the results: |
| # { 30, 70, 110, 150 }. |
| ftrv xmtrx, fv4 |
| |
| okay: |
| pass |
| |