]>
Commit | Line | Data |
---|---|---|
cbb38b47 BE |
1 | # sh testcase for ftrv xmtrx, $fvn -*- Asm -*- |
2 | # mach: all | |
3 | # as: -isa=shcompact | |
4 | # ld: -m shelf32 | |
5 | ||
6 | .include "compact/testutils.inc" | |
7 | ||
8 | # set the fr bit in the fpscr | |
9 | .macro _setfr | |
10 | sts fpscr, r7 | |
11 | mov #32, r8 | |
12 | shll16 r8 | |
13 | or r8, r7 | |
14 | lds r7, fpscr | |
15 | .endm | |
16 | ||
17 | # clear the fr bit | |
18 | .macro _clrfr | |
19 | sts fpscr, r7 | |
20 | mov #32, r8 | |
21 | shll16 r8 | |
22 | not r8, r8 | |
23 | and r8, r7 | |
24 | lds r7, fpscr | |
25 | .endm | |
26 | ||
27 | .macro incr old new | |
28 | fldi1 \new | |
29 | fadd \old, \new | |
30 | .endm | |
31 | ||
32 | start | |
33 | _setfr | |
34 | popmtrx: | |
35 | # 1.0. | |
36 | fldi1 fr0 | |
37 | # 2.0. | |
38 | fldi1 fr1 | |
39 | fadd fr1, fr1 | |
40 | ||
41 | incr fr1, fr2 | |
42 | incr fr2, fr3 | |
43 | incr fr3, fr4 | |
44 | incr fr4, fr5 | |
45 | incr fr5, fr6 | |
46 | incr fr6, fr7 | |
47 | incr fr7, fr8 | |
48 | incr fr8, fr9 | |
49 | incr fr9, fr10 | |
50 | incr fr10, fr11 | |
51 | incr fr11, fr12 | |
52 | incr fr12, fr13 | |
53 | incr fr13, fr14 | |
54 | incr fr14, fr15 | |
55 | ||
56 | popvect: | |
57 | # Swtich fp banks. | |
58 | _clrfr | |
59 | fldi1 fr4 | |
60 | fldi1 fr5 | |
61 | fadd fr5, fr5 | |
62 | fldi1 fr6 | |
63 | fadd fr5, fr6 | |
64 | fldi1 fr7 | |
65 | fadd fr6, fr7 | |
66 | ||
67 | ftrv: | |
68 | # fr[4,7] should contain the results: | |
69 | # { 30, 70, 110, 150 }. | |
70 | ftrv xmtrx, fv4 | |
71 | ||
72 | okay: | |
73 | pass | |
74 |