Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / diag / assembly / exu / ffu_fpreg_rw_n2.s
CommitLineData
86530b38
AT
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* OpenSPARC T2 Processor File: ffu_fpreg_rw_n2.s
5* Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
6* 4150 Network Circle, Santa Clara, California 95054, U.S.A.
7*
8* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
9*
10* This program is free software; you can redistribute it and/or modify
11* it under the terms of the GNU General Public License as published by
12* the Free Software Foundation; version 2 of the License.
13*
14* This program is distributed in the hope that it will be useful,
15* but WITHOUT ANY WARRANTY; without even the implied warranty of
16* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17* GNU General Public License for more details.
18*
19* You should have received a copy of the GNU General Public License
20* along with this program; if not, write to the Free Software
21* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22*
23* For the avoidance of doubt, and except that if any non-GPL license
24* choice is available it will apply instead, Sun elects to use only
25* the General Public License version 2 (GPLv2) at this time for any
26* software where a choice of GPL license versions is made
27* available with the language indicating that GPLv2 or any later version
28* may be used, or where a choice of which version of the GPL is applied is
29* otherwise unspecified.
30*
31* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
32* CA 95054 USA or visit www.sun.com if you need additional information or
33* have any questions.
34*
35*
36* ========== Copyright Header End ============================================
37*/
38#define ENABLE_T0_Fp_disabled_0x20
39
40#define MAIN_PAGE_HV_ALSO
41#define MAIN_PAGE_NUCLEUS_ALSO
42
43#define ENABLE_T0_Clean_Window_0x24
44#define ENABLE_T0_Corrected_ECC_error_0x63
45#define ENABLE_T0_Data_Access_Exception_0x30
46#define ENABLE_T0_Data_access_error_0x32
47#define ENABLE_T0_Division_By_Zero_0x28
48#define ENABLE_T0_Fp_disabled_0x20
49#define ENABLE_T0_Fp_exception_ieee_754_0x21
50#define ENABLE_T0_Fp_exception_other_0x22
51#define ENABLE_T0_Illegal_instruction_0x10
52#define ENABLE_T0_Instruction_Access_MMU_Miss_0x09
53#define ENABLE_T0_Instruction_access_error_0x0a
54#define ENABLE_T0_Instruction_access_exception_0x08
55#define ENABLE_T0_Lddf_Mem_Address_Not_Aligned_0x35
56#define ENABLE_T0_Mem_Address_Not_Aligned_0x34
57#define ENABLE_T0_Privileged_Action_0x37
58#define ENABLE_T0_Privileged_opcode_0x11
59#define ENABLE_T0_Stdf_Mem_Address_Not_Aligned_0x36
60#define ENABLE_T0_Tag_Overflow_0x23
61#define ENABLE_T0_Unimplemented_LDD_0x12
62#define ENABLE_T0_Unimplemented_STD_0x13
63#define ENABLE_T0_data_access_protection_0x6c
64#define ENABLE_T0_fast_data_access_MMU_miss_0x68
65#define ENABLE_T0_fast_instr_access_MMU_miss_0x64
66
67#include "hboot.s"
68
69
70.text
71.global main
72main:
73
74 wr %g0, 0x4, %fprs /* make sure fef is 1 */
75
76 setx data1, %l0, %g1
77 setx result,%l0, %g2
78 add %g0, 0x04, %g3
79
80single_loop:
81 ld [%g1], %f0
82 ld [%g1], %f1
83 ld [%g1], %f2
84 ld [%g1], %f3
85 ld [%g1], %f4
86 ld [%g1], %f5
87 ld [%g1], %f6
88 ld [%g1], %f7
89 ld [%g1], %f8
90 ld [%g1], %f9
91 ld [%g1], %f10
92 ld [%g1], %f11
93 ld [%g1], %f12
94 ld [%g1], %f13
95 ld [%g1], %f14
96 ld [%g1], %f15
97 ld [%g1], %f16
98 ld [%g1], %f17
99 ld [%g1], %f18
100 ld [%g1], %f19
101 ld [%g1], %f20
102 ld [%g1], %f21
103 ld [%g1], %f22
104 ld [%g1], %f23
105 ld [%g1], %f24
106 ld [%g1], %f25
107 ld [%g1], %f26
108 ld [%g1], %f27
109 ld [%g1], %f28
110 ld [%g1], %f29
111 ld [%g1], %f30
112 ld [%g1], %f31
113 ld [%g1], %f32
114 ld [%g1], %f33
115 ld [%g1], %f34
116 ld [%g1], %f35
117 ld [%g1], %f36
118 ld [%g1], %f37
119 ld [%g1], %f38
120 ld [%g1], %f39
121 ld [%g1], %f40
122 ld [%g1], %f41
123 ld [%g1], %f42
124 ld [%g1], %f43
125 ld [%g1], %f44
126 ld [%g1], %f45
127 ld [%g1], %f46
128 ld [%g1], %f47
129 ld [%g1], %f48
130 ld [%g1], %f49
131 ld [%g1], %f50
132 ld [%g1], %f51
133 ld [%g1], %f52
134 ld [%g1], %f53
135 ld [%g1], %f54
136 ld [%g1], %f55
137 ld [%g1], %f56
138 ld [%g1], %f57
139 ld [%g1], %f58
140 ld [%g1], %f59
141 ld [%g1], %f60
142 ld [%g1], %f61
143 ld [%g1], %f62
144 ld [%g1], %f63
145
146 st %f0, [%g2]
147 st %f1, [%g2]
148 st %f2, [%g2]
149 st %f3, [%g2]
150 st %f4, [%g2]
151 st %f5, [%g2]
152 st %f6, [%g2]
153 st %f7, [%g2]
154 st %f8, [%g2]
155 st %f9, [%g2]
156 st %f10, [%g2]
157 st %f11, [%g2]
158 st %f12, [%g2]
159 st %f13, [%g2]
160 st %f14, [%g2]
161 st %f15, [%g2]
162 st %f16, [%g2]
163 st %f17, [%g2]
164 st %f18, [%g2]
165 st %f19, [%g2]
166 st %f20, [%g2]
167 st %f21, [%g2]
168 st %f22, [%g2]
169 st %f23, [%g2]
170 st %f24, [%g2]
171 st %f25, [%g2]
172 st %f26, [%g2]
173 st %f27, [%g2]
174 st %f28, [%g2]
175 st %f29, [%g2]
176 st %f30, [%g2]
177 st %f31, [%g2]
178 st %f32, [%g2]
179 st %f33, [%g2]
180 st %f34, [%g2]
181 st %f35, [%g2]
182 st %f36, [%g2]
183 st %f37, [%g2]
184 st %f38, [%g2]
185 st %f39, [%g2]
186 st %f40, [%g2]
187 st %f41, [%g2]
188 st %f42, [%g2]
189 st %f43, [%g2]
190 st %f44, [%g2]
191 st %f45, [%g2]
192 st %f46, [%g2]
193 st %f47, [%g2]
194 st %f48, [%g2]
195 st %f49, [%g2]
196 st %f50, [%g2]
197 st %f51, [%g2]
198 st %f52, [%g2]
199 st %f53, [%g2]
200 st %f54, [%g2]
201 st %f55, [%g2]
202 st %f56, [%g2]
203 st %f57, [%g2]
204 st %f58, [%g2]
205 st %f59, [%g2]
206 st %f60, [%g2]
207 st %f61, [%g2]
208 st %f62, [%g2]
209 st %f63, [%g2]
210
211 add %g1, 0x08, %g1
212 add %g2, 0x08, %g2
213
214 sub %g3 , 0x01, %g3
215 brnz,pt %g3,single_loop
216 nop
217
218 setx data1, %l0, %g1
219 setx result, %l0, %g2
220
221double_loop:
222 ldd [%g1], %f0
223 ldd [%g1], %f2
224 ldd [%g1], %f4
225 ldd [%g1], %f6
226 ldd [%g1], %f8
227 ldd [%g1], %f10
228 ldd [%g1], %f12
229 ldd [%g1], %f14
230 ldd [%g1], %f16
231 ldd [%g1], %f18
232 ldd [%g1], %f20
233 ldd [%g1], %f22
234 ldd [%g1], %f24
235 ldd [%g1], %f26
236 ldd [%g1], %f28
237 ldd [%g1], %f30
238 ldd [%g1], %f32
239 ldd [%g1], %f34
240 ldd [%g1], %f36
241 ldd [%g1], %f38
242 ldd [%g1], %f40
243 ldd [%g1], %f42
244 ldd [%g1], %f44
245 ldd [%g1], %f46
246 ldd [%g1], %f48
247 ldd [%g1], %f50
248 ldd [%g1], %f52
249 ldd [%g1], %f54
250 ldd [%g1], %f56
251 ldd [%g1], %f58
252 ldd [%g1], %f60
253 ldd [%g1], %f62
254
255 std %f0, [%g2]
256 st %f1, [%g2]
257 std %f2, [%g2]
258 st %f3, [%g2]
259 std %f4, [%g2]
260 st %f5, [%g2]
261 std %f6, [%g2]
262 st %f7, [%g2]
263 std %f8, [%g2]
264 st %f9, [%g2]
265 std %f10, [%g2]
266 st %f11, [%g2]
267 std %f12, [%g2]
268 st %f13, [%g2]
269 std %f14, [%g2]
270 st %f15, [%g2]
271 std %f16, [%g2]
272 st %f17, [%g2]
273 std %f18, [%g2]
274 st %f19, [%g2]
275 std %f20, [%g2]
276 st %f21, [%g2]
277 std %f22, [%g2]
278 st %f23, [%g2]
279 std %f24, [%g2]
280 st %f25, [%g2]
281 std %f26, [%g2]
282 st %f27, [%g2]
283 std %f28, [%g2]
284 st %f29, [%g2]
285 std %f30, [%g2]
286 st %f31, [%g2]
287 std %f32, [%g2]
288 st %f33, [%g2]
289 std %f34, [%g2]
290 st %f35, [%g2]
291 std %f36, [%g2]
292 st %f37, [%g2]
293 std %f38, [%g2]
294 st %f39, [%g2]
295 std %f40, [%g2]
296 st %f41, [%g2]
297 std %f42, [%g2]
298 st %f43, [%g2]
299 std %f44, [%g2]
300 st %f45, [%g2]
301 std %f46, [%g2]
302 st %f47, [%g2]
303 std %f48, [%g2]
304 st %f49, [%g2]
305 std %f50, [%g2]
306 st %f51, [%g2]
307 std %f52, [%g2]
308 st %f53, [%g2]
309 std %f54, [%g2]
310 st %f55, [%g2]
311 std %f56, [%g2]
312 st %f57, [%g2]
313 std %f58, [%g2]
314 st %f59, [%g2]
315 std %f60, [%g2]
316 st %f61, [%g2]
317 std %f62, [%g2]
318 st %f63, [%g2]
319
320 add %g1, 0x08, %g1
321 add %g2, 0x08, %g2
322
323 sub %g3 , 0x1, %g3
324 brnz,pt %g3, double_loop
325
326
327good_end: ta GOOD_TRAP
328
329.seg "data"
330.align 0x1fff+1
331data1:
332 .word 0x0, 0x0
333 .word 0x55555555, 0x55555555
334 .word 0xaaaaaaaa, 0xaaaaaaaa
335 .word 0xffffffff, 0xffffffff
336.align 8
337result :
338