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/] [fmov.cgs] - Blame information for rev 26

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 26 jlechner
# sh testcase for all fmov instructions
2
# mach: all
3
# as: -isa=shcompact
4
# ld: -m shelf32
5
 
6
        .include "compact/testutils.inc"
7
 
8
        .macro init
9
        fldi0 fr0
10
        fldi1 fr2
11
        .endm
12
 
13
        # Set the SZ (SiZe) bit in the fpscr.
14
        .macro _setsz
15
        sts fpscr, r7
16
        mov #16, r8
17
        shll16 r8
18
        or r8, r7
19
        lds r7, fpscr
20
        .endm
21
 
22
        # Clear the SZ bit.
23
        .macro _clrsz
24
        sts fpscr, r7
25
        mov #16, r8
26
        shll16 r8
27
        not r8, r8
28
        and r8, r7
29
        lds r7, fpscr
30
        .endm
31
        start
32
 
33
fmov1:  # Test fr -> fr.
34
        init
35
        _clrpr
36
        _clrsz
37
        fmov fr0, fr10
38
        # Ensure fr0 and fr10 are now equal.
39
        fcmp/eq fr0, fr10
40
        bt fmov2
41
        fail
42
 
43
fmov2:  # Test dr -> dr.
44
        init
45
        _setpr
46
        _setsz
47
        fmov dr0, dr2
48
        # Ensure dr0 and dr2 are now equal.
49
        fcmp/eq dr0, dr2
50
        bt fmov3
51
        fail
52
 
53
fmov3:  # Test dr -> xd and xd -> dr.
54
        init
55
        _setsz
56
        fmov dr0, xd0
57
        # Ensure dr0 and xd0 are now equal.
58
        fmov xd0, dr2
59
        fcmp/eq dr0, dr2
60
        bt fmov4
61
        fail
62
 
63
fmov4:  # Test xd -> xd.
64
        init
65
        _setsz
66
        _setpr
67
        fmov dr0, xd0
68
        fmov xd0, xd2
69
        fmov xd2, dr2
70
        # Ensure dr0 and dr2 are now equal.
71
        fcmp/eq dr0, dr2
72
        bt fmov5
73
        fail
74
 
75
fmov5:  # Test fr -> @rn and @rn -> fr.
76
        init
77
        _clrsz
78
        _clrpr
79
        mov #40, r0
80
        shll8 r0
81
        fmov fr0, @r0
82
        fmov @r0, fr1
83
        fcmp/eq fr0, fr1
84
        bt fmov6
85
        fail
86
 
87
fmov6:  # Test dr -> @rn and @rn -> dr.
88
        init
89
        _setsz
90
        _setpr
91
        mov #40, r0
92
        shll8 r0
93
        fmov dr0, @r0
94
        fmov @r0, dr2
95
        fcmp/eq dr0, dr2
96
        bt fmov7
97
        fail
98
 
99
fmov7:  # Test xd -> @rn and @rn -> xd.
100
        init
101
        _setsz
102
        _setpr
103
        mov #40, r0
104
        shll8 r0
105
        fmov dr0, xd0
106
        fmov xd0, @r0
107
        fmov @r0, xd2
108
        fmov xd2, dr2
109
        fcmp/eq dr0, dr2
110
        bt fmov8
111
        fail
112
 
113
fmov8:  # Test fr -> @-rn.
114
        init
115
        _clrsz
116
        _clrpr
117
        mov #40, r0
118
        shll8 r0
119
        # Preserve.
120
        mov r0, r1
121
        fmov fr0, @-r0
122
        fmov @r0, fr2
123
        fcmp/eq fr0, fr2
124
        bt f8b
125
        fail
126
f8b:    # check pre-dec.
127
        add #4, r0
128
        cmp/eq r0, r1
129
        bt fmov9
130
        fail
131
 
132
fmov9:  # Test dr -> @-rn.
133
        init
134
        _setsz
135
        _setpr
136
        mov #40, r0
137
        shll8 r0
138
        # Preserve r0.
139
        mov r0, r1
140
        fmov dr0, @-r0
141
        fmov @r0, dr2
142
        fcmp/eq dr0, dr2
143
        bt f9b
144
        fail
145
f9b:    # check pre-dec.
146
        add #8, r0
147
        cmp/eq r0, r1
148
        bt fmov10
149
        fail
150
 
151
fmov10: # Test xd -> @-rn.
152
        init
153
        _setsz
154
        _setpr
155
        mov #40, r0
156
        shll8 r0
157
        # Preserve r0.
158
        mov r0, r1
159
        fmov dr0, xd0
160
        fmov xd0, @-r0
161
        fmov @r0, xd2
162
        fmov xd2, dr2
163
        fcmp/eq dr0, dr2
164
        bt f10b
165
        fail
166
f10b:   # check pre-dec.
167
        add #8, r0
168
        cmp/eq r0, r1
169
        bt fmov11
170
        fail
171
 
172
fmov11: # Test @rn+ -> fr.
173
        init
174
        _clrsz
175
        _clrpr
176
        mov #40, r0
177
        shll8 r0
178
        # Preserve r0.
179
        mov r0, r1
180
        fmov fr0, @r0
181
        fmov @r0+, fr2
182
        fcmp/eq fr0, fr2
183
        bt f11b
184
        fail
185
f11b:   # check post-inc.
186
        add #4, r1
187
        cmp/eq r0, r1
188
        bt fmov12
189
        fail
190
 
191
fmov12: # Test @rn+ -> dr.
192
        init
193
        _setsz
194
        _setpr
195
        mov #40, r0
196
        shll8 r0
197
        # preserve r0.
198
        mov r0, r1
199
        fmov dr0, @r0
200
        fmov @r0+, dr2
201
        fcmp/eq dr0, dr2
202
        bt f12b
203
        fail
204
f12b:   # check post-inc.
205
        add #8, r1
206
        cmp/eq r0, r1
207
        bt fmov13
208
        fail
209
 
210
fmov13: # Test @rn -> xd.
211
        init
212
        _setsz
213
        _setpr
214
        mov #40, r0
215
        shll8 r0
216
        # Preserve r0.
217
        mov r0, r1
218
        fmov dr0, xd0
219
        fmov xd0, @r0
220
        fmov @r0+, xd2
221
        fmov xd2, dr2
222
        fcmp/eq dr0, dr2
223
        bt f13b
224
        fail
225
f13b:
226
        add #8, r1
227
        cmp/eq r0, r1
228
        bt fmov14
229
        fail
230
 
231
fmov14: # Test fr -> @(r0,rn), @(r0, rn) -> fr.
232
        init
233
        _clrsz
234
        _clrpr
235
        mov #40, r0
236
        shll8 r0
237
        mov #0, r1
238
        fmov fr0, @(r0, r1)
239
        fmov @(r0, r1), fr1
240
        fcmp/eq fr0, fr1
241
        bt fmov15
242
        fail
243
 
244
fmov15: # Test dr -> @(r0, rn), @(r0, rn) -> dr.
245
        init
246
        _setsz
247
        _setpr
248
        mov #40, r0
249
        shll8 r0
250
        mov #0, r1
251
        fmov dr0, @(r0, r1)
252
        fmov @(r0, r1), dr2
253
        fcmp/eq dr0, dr2
254
        bt fmov16
255
        fail
256
 
257
fmov16: # Test xd -> @(r0, rn), @(r0, rn) -> xd.
258
        init
259
        _setsz
260
        _setpr
261
        mov #40, r0
262
        shll8 r0
263
        mov #0, r1
264
        fmov dr0, xd0
265
        fmov xd0, @(r0, r1)
266
        fmov @(r0, r1), xd2
267
        fmov xd2, dr2
268
        fcmp/eq dr0, dr2
269
        bt okay
270
        fail
271
 
272
okay:
273
        pass

powered by: WebSVN 2.1.0

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