Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / diag / assembly / arch / prm / tso / tso_directed / tso_n1_cross_mod6_big6372.s
CommitLineData
86530b38
AT
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* OpenSPARC T2 Processor File: tso_n1_cross_mod6_big6372.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 MAIN_BASE_DATA_ADDR 0x160000
39#define MAIN_BASE_TEXT_ADDR 0x150000
40#define MAIN_BASE_DATA_ADDR_RA 0x100160000
41#define MAIN_BASE_TEXT_ADDR_RA 0x100150000
42
43#define USER_PAGE_CUSTOM_MAP
44#include "hboot.s"
45
46SECTION .MAIN TEXT_VA=0x150000, DATA_VA=0x160000
47
48attr_text {
49 Name = .MAIN,
50 VA=MAIN_BASE_TEXT_ADDR,
51 RA=MAIN_BASE_TEXT_ADDR_RA,
52 PA=ra2pa(MAIN_BASE_TEXT_ADDR_RA,0),
53part_0_ctx_nonzero_tsb_config_0,
54 TTE_G=0, TTE_Context=PCONTEXT, TTE_V=1, TTE_Size=0, TTE_NFO=0,
55 TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
56 TTE_L=0, TTE_CP=1, TTE_CV=1, TTE_E=0, TTE_EP=1, TTE_P=0, TTE_W=1
57 }
58
59attr_data {
60 Name = .MAIN,
61 VA=MAIN_BASE_DATA_ADDR,
62 RA=MAIN_BASE_DATA_ADDR_RA,
63 PA=ra2pa(MAIN_BASE_DATA_ADDR_RA,0),
64part_0_ctx_nonzero_tsb_config_0,
65 TTE_G=0, TTE_Context=PCONTEXT, TTE_V=1, TTE_Size=0, TTE_NFO=0,
66 TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
67 TTE_L=0, TTE_CP=1, TTE_CV=1, TTE_E=0, TTE_P=0, TTE_W=1
68 }
69
70.text
71.global main
72main:
73 th_fork(th_main,%l0)
74
75
76! this thread modfifies the code
77!===============================
78th_main_0:
79 setx user_data_start, %l0, %o0
80 setx 0x100, %l0, %i0
81
82loop0:
83 ld [%o0], %l0 !
84 ld [%o0+ 0x10], %l0 !
85 ld [%o0+ 0x20], %l0 !
86 ld [%o0+ 0x30], %l0 !
87 add %o0, 0x40, %o0 !
88 dec %i0
89 brnz %i0, loop0 !
90 nop !
91
92 ba good_end
93
94th_main_1:
95 setx user_data_start, %l0, %o0
96 ba loop1
97 nop
98 .align 0x20
99
100loop1:
101 ld [%o0], %l0
102 ld [%o0], %l0
103 ld [%o0], %l0
104 ld [%o0], %l0
105 ld [%o0], %l0
106 ld [%o0], %l0
107 ld [%o0], %l0
108 ld [%o0], %l0
109 ld [%o0], %l0
110 ld [%o0], %l0
111 ld [%o0], %l0
112 ld [%o0], %l0
113 ld [%o0], %l0
114 ld [%o0], %l0
115 ld [%o0], %l0
116 ld [%o0], %l0
117 ld [%o0], %l0
118 ld [%o0], %l0
119 ld [%o0], %l0
120 ld [%o0], %l0
121 ld [%o0], %l0
122 ld [%o0], %l0
123 ld [%o0], %l0
124 ld [%o0], %l0
125 ld [%o0], %l0
126 ld [%o0], %l0
127 ld [%o0], %l0
128 ld [%o0], %l0
129 ld [%o0], %l0
130 ld [%o0], %l0
131 ld [%o0], %l0
132 ld [%o0], %l0
133 ld [%o0], %l0
134 ld [%o0], %l0
135 ld [%o0], %l0
136 ld [%o0], %l0
137 ld [%o0], %l0
138 ld [%o0], %l0
139 ld [%o0], %l0
140 ld [%o0], %l0
141 ld [%o0], %l0
142 ld [%o0], %l0
143 ld [%o0], %l0
144 ld [%o0], %l0
145 ld [%o0], %l0
146 ld [%o0], %l0
147 ld [%o0], %l0
148 ld [%o0], %l0
149 ld [%o0], %l0
150 ld [%o0], %l0
151 ld [%o0], %l0
152 ld [%o0], %l0
153 ld [%o0], %l0
154 ld [%o0], %l0
155 ld [%o0], %l0
156 ld [%o0], %l0
157 ld [%o0], %l0
158 ld [%o0], %l0
159 ld [%o0], %l0
160 ld [%o0], %l0
161 ld [%o0], %l0
162 ld [%o0], %l0
163 ld [%o0], %l0
164 ld [%o0], %l0
165 ld [%o0], %l0
166 ld [%o0], %l0
167 ld [%o0], %l0
168 ld [%o0], %l0
169 ld [%o0], %l0
170 ld [%o0], %l0
171 ld [%o0], %l0
172 ld [%o0], %l0
173 ld [%o0], %l0
174 ld [%o0], %l0
175 ld [%o0], %l0
176 ld [%o0], %l0
177 ld [%o0], %l0
178 ld [%o0], %l0
179 ld [%o0], %l0
180 ld [%o0], %l0
181 ld [%o0], %l0
182 ld [%o0], %l0
183 ld [%o0], %l0
184 ld [%o0], %l0
185 ld [%o0], %l0
186 ld [%o0], %l0
187 ld [%o0], %l0
188 ld [%o0], %l0
189 ld [%o0], %l0
190 ld [%o0], %l0
191 ld [%o0], %l0
192 ld [%o0], %l0
193 ld [%o0], %l0
194 ld [%o0], %l0
195 ld [%o0], %l0
196 ld [%o0], %l0
197 ld [%o0], %l0
198 ld [%o0], %l0
199 ld [%o0], %l0
200 ld [%o0], %l0
201 ld [%o0], %l0
202 ld [%o0], %l0
203 ld [%o0], %l0
204 ld [%o0], %l0
205 ld [%o0], %l0
206 ld [%o0], %l0
207 ld [%o0], %l0
208 ld [%o0], %l0
209 ld [%o0], %l0
210 ld [%o0], %l0
211 ld [%o0], %l0
212 ld [%o0], %l0
213 ld [%o0], %l0
214 ld [%o0], %l0
215 ld [%o0], %l0
216 ld [%o0], %l0
217 ld [%o0], %l0
218 ld [%o0], %l0
219 ld [%o0], %l0
220 ld [%o0], %l0
221 ld [%o0], %l0
222 ld [%o0], %l0
223 ld [%o0], %l0
224 ld [%o0], %l0
225 ld [%o0], %l0
226 ld [%o0], %l0
227
228 ba loop1
229 nop
230
231 ba good_end
232 nop
233
234th_main_2:
235 setx user_data_start, %l0, %o0
236
237loop2:
238 ld [%o0], %l0
239 ld [%o0], %l0
240 ld [%o0], %l0
241 ld [%o0], %l0
242 ld [%o0], %l0
243 ld [%o0], %l0
244 ld [%o0], %l0
245 ld [%o0], %l0
246 ld [%o0], %l0
247 ld [%o0], %l0
248 ld [%o0], %l0
249 ld [%o0], %l0
250 ld [%o0], %l0
251 ld [%o0], %l0
252 ld [%o0], %l0
253 ld [%o0], %l0
254 ld [%o0], %l0
255 ld [%o0], %l0
256 ld [%o0], %l0
257 ld [%o0], %l0
258 ld [%o0], %l0
259 ld [%o0], %l0
260 ld [%o0], %l0
261 ld [%o0], %l0
262 ld [%o0], %l0
263 ld [%o0], %l0
264 ld [%o0], %l0
265 ld [%o0], %l0
266 ld [%o0], %l0
267 ld [%o0], %l0
268 ld [%o0], %l0
269 ld [%o0], %l0
270 ld [%o0], %l0
271 ld [%o0], %l0
272 ld [%o0], %l0
273 ld [%o0], %l0
274 ld [%o0], %l0
275 ld [%o0], %l0
276 ld [%o0], %l0
277 ld [%o0], %l0
278 ld [%o0], %l0
279 ld [%o0], %l0
280 ld [%o0], %l0
281 ld [%o0], %l0
282 ld [%o0], %l0
283 ld [%o0], %l0
284 ld [%o0], %l0
285 ld [%o0], %l0
286 ld [%o0], %l0
287 ld [%o0], %l0
288 ld [%o0], %l0
289 ld [%o0], %l0
290 ld [%o0], %l0
291 ld [%o0], %l0
292 ld [%o0], %l0
293 ld [%o0], %l0
294 ld [%o0], %l0
295 ld [%o0], %l0
296 ld [%o0], %l0
297 ld [%o0], %l0
298 ld [%o0], %l0
299 ld [%o0], %l0
300 ld [%o0], %l0
301 ld [%o0], %l0
302 ld [%o0], %l0
303 ld [%o0], %l0
304 ld [%o0], %l0
305 ld [%o0], %l0
306 ld [%o0], %l0
307 ld [%o0], %l0
308 ld [%o0], %l0
309 ld [%o0], %l0
310 ld [%o0], %l0
311 ld [%o0], %l0
312 ld [%o0], %l0
313 ld [%o0], %l0
314 ld [%o0], %l0
315 ld [%o0], %l0
316 ld [%o0], %l0
317 ld [%o0], %l0
318 ld [%o0], %l0
319 ld [%o0], %l0
320 ld [%o0], %l0
321 ld [%o0], %l0
322 ld [%o0], %l0
323 ld [%o0], %l0
324 ld [%o0], %l0
325 ld [%o0], %l0
326 ld [%o0], %l0
327 ld [%o0], %l0
328 ld [%o0], %l0
329 ld [%o0], %l0
330 ld [%o0], %l0
331 ld [%o0], %l0
332 ld [%o0], %l0
333 ld [%o0], %l0
334 ld [%o0], %l0
335 ld [%o0], %l0
336 ld [%o0], %l0
337 ld [%o0], %l0
338 ld [%o0], %l0
339 ld [%o0], %l0
340
341 ba loop2
342 nop
343
344
345
346 ba good_end
347th_main_3:
348 setx loop1, %l0, %o0
349 or %o0, 0x18, %o0
350 add %o0, 0x20, %o1
351loop3:
352 ld [%o0], %l0
353 ld [%o1], %l0
354 ld [%o0], %l0
355 ld [%o1], %l0
356 ld [%o0], %l0
357 ld [%o1], %l0
358 ld [%o0], %l0
359 ld [%o1], %l0
360 ld [%o0], %l0
361 ld [%o1], %l0
362 ld [%o0], %l0
363 ld [%o1], %l0
364 ld [%o0], %l0
365 ld [%o1], %l0
366 ld [%o0], %l0
367 ld [%o1], %l0
368 ld [%o0], %l0
369 ld [%o1], %l0
370 ba loop3
371 nop
372
373 ba good_end
374 nop
375
376good_end:
377 ta T_GOOD_TRAP
378bad_end:
379 ta T_BAD_TRAP
380noop:
381 nop
382
383!------------------------------------------------------------------------------
384
385.data
386.global user_data_start
387user_data_start:
388 .skip 0x2000
389
390.end
391