]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/testsuite/sim/sh64/compact/ftrc.cgs
* Contribute Hitachi SH5 simulator.
[thirdparty/binutils-gdb.git] / sim / testsuite / sim / sh64 / compact / ftrc.cgs
1 # sh testcase for ftrc -*- Asm -*-
2 # mach: all
3 # as: -isa=shcompact
4 # ld: -m shelf32
5
6 .include "compact/testutils.inc"
7
8 start
9
10 # ftrc(0.0) = 0.
11 fldi0 fr0
12 ftrc fr0, fpul
13 # check results.
14 mov #0, r0
15 sts fpul, r1
16 cmp/eq r0, r1
17 bf wrong
18
19 # ftrc(1.5) = 1.
20 fldi1 fr0
21 fldi1 fr1
22 fldi1 fr2
23 # double it.
24 fadd fr2, fr2
25 # form the fraction.
26 fdiv fr2, fr1
27 fadd fr1, fr0
28 # now we've got 1.5 in fr0.
29 ftrc fr0, fpul
30 # check results.
31 mov #1, r0
32 sts fpul, r1
33 cmp/eq r0, r1
34 bf wrong
35
36 # ftrc(-1.5) = -1.
37 fldi1 fr0
38 fneg fr0
39 fldi1 fr1
40 fldi1 fr2
41 # double it.
42 fadd fr2, fr2
43 # form the fraction.
44 fdiv fr2, fr1
45 fneg fr1
46 # -1 + -0.5 = -1.5.
47 fadd fr1, fr0
48 # now we've got 1.5 in fr0.
49 ftrc fr0, fpul
50 # check results.
51 mov #1, r0
52 neg r0, r0
53 sts fpul, r1
54 cmp/eq r0, r1
55 bf wrong
56
57 bra double
58 nop
59
60 wrong:
61 fail
62
63 double:
64 # ftrc(0.0) = 0.
65 fldi0 fr0
66 _s2d fr0, dr0
67 _setpr
68 ftrc dr0, fpul
69 _clrpr
70 # check results.
71 mov #0, r0
72 sts fpul, r1
73 cmp/eq r0, r1
74 foo:
75 bf wrong2
76
77 # ftrc(1.5) = 1.
78 fldi1 fr0
79 fldi1 fr2
80 fldi1 fr4
81 # double it.
82 fadd fr4, fr4
83 # form 0.5.
84 fdiv fr4, fr2
85 fadd fr2, fr0
86 # now we've got 1.5 in fr0, so do some single->double
87 # conversions and perform the ftrc.
88 _s2d fr0, dr0
89 _s2d fr2, dr2
90 _s2d fr4, dr4
91 _setpr
92 ftrc dr0, fpul
93 _clrpr
94
95 # check results.
96 mov #1, r0
97 sts fpul, r1
98 cmp/eq r0, r1
99 bf wrong2
100
101 # ftrc(-1.5) = -1.
102 fldi1 fr0
103 fneg fr0
104 fldi1 fr2
105 fldi1 fr4
106 # double it.
107 fadd fr4, fr4
108 # form the fraction.
109 fdiv fr4, fr2
110 fneg fr2
111 # -1 + -0.5 = -1.5.
112 fadd fr2, fr0
113 # now we've got 1.5 in fr0, so do some single->double
114 # conversions and perform the ftrc.
115 _s2d fr0, dr0
116 _s2d fr2, dr2
117 _s2d fr4, dr4
118 _setpr
119 ftrc dr0, fpul
120 _clrpr
121
122 # check results.
123 mov #1, r0
124 neg r0, r0
125 sts fpul, r1
126 cmp/eq r0, r1
127 bf wrong2
128
129 okay:
130 pass
131 wrong2:
132 fail