OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gdb/] [gdb-6.8/] [sim/] [testsuite/] [sim/] [sh64/] [compact/] [ftrc.cgs] - Blame information for rev 26

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 26 jlechner
# 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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.