Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / diag / assembly / arch / prm / tso / tso_directed / tso_n1_ld_starve1.s
CommitLineData
86530b38
AT
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* OpenSPARC T2 Processor File: tso_n1_ld_starve1.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#include "hboot.s"
39
40.text
41.global main
42
43main:
44
45setx 0x80, %l1, %l7
46th_fork(th_main, %l0)
47
48!----------------------
49th_main_0:
50 setx user_data_start, %l0, %o0
51 ld [%o0], %l0
52 ld [%o0], %l0
53 ld [%o0], %l0
54 ld [%o0], %l0
55 ld [%o0], %l0
56 ld [%o0], %l0
57 ld [%o0], %l0
58 ld [%o0], %l0
59 ld [%o0], %l0
60 ld [%o0], %l0
61 nop; nop; nop; nop;
62 nop; nop; nop; nop;
63 nop; nop; nop; nop;
64 nop; nop; nop; nop;
65 nop; nop; nop; nop;
66 nop; nop; nop; nop;
67 nop; nop; nop; nop;
68 nop; nop; nop; nop;
69 nop; nop; nop; nop;
70 nop; nop; nop; nop;
71 nop; nop; nop; nop;
72 nop; nop; nop; nop;
73 nop; nop; nop; nop;
74 nop; nop; nop; nop;
75 nop; nop; nop; nop;
76 nop; nop; nop; nop;
77 nop; nop; nop; nop;
78 nop; nop; nop; nop;
79 nop; nop; nop; nop;
80 nop; nop; nop; nop;
81 nop; nop; nop; nop;
82 nop; nop; nop; nop;
83 nop; nop; nop; nop;
84 nop; nop; nop; nop;
85 nop; nop; nop; nop;
86 setx my_data0, %l0, %o0
87 ld [%o0], %l0
88 setx my_data1, %l0, %o0
89 ld [%o0], %l0
90 setx my_data2, %l0, %o0
91 ld [%o0], %l0
92 setx my_data3, %l0, %o0
93 ld [%o0], %l0
94 setx my_data4, %l0, %o0
95 ld [%o0], %l0
96 setx my_data5, %l0, %o0
97 ld [%o0], %l0
98 setx my_data6, %l0, %o0
99 ld [%o0], %l0
100 setx my_data7, %l0, %o0
101 ld [%o0], %l0
102
103 ba normal_end
104 nop
105
106!----------------------
107th_main_1:
108 mov 0xff, %g1
109 setx user_data_start, %l0, %o0
110
111loop1:
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 deccc %g1
182 bnz loop1
183 ld [%o0], %l0
184 ba normal_end
185 nop
186
187th_main_2:
188 mov 0xff, %g1
189 setx user_data_start, %l0, %o0
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
221loop2:
222 ld [%o0], %l0
223 ld [%o0], %l0
224 ld [%o0], %l0
225 ld [%o0], %l0
226 ld [%o0], %l0
227 ld [%o0], %l0
228 ld [%o0], %l0
229 ld [%o0], %l0
230 ld [%o0], %l0
231 ld [%o0], %l0
232 ld [%o0], %l0
233 ld [%o0], %l0
234 ld [%o0], %l0
235 ld [%o0], %l0
236 ld [%o0], %l0
237 ld [%o0], %l0
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 deccc %g1
292 bnz loop2
293 ld [%o0], %l0
294 ba normal_end
295 nop
296
297th_main_3:
298 mov 0xff, %g1
299 setx user_data_start, %l0, %o0
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 ld [%o0], %l0
341 ld [%o0], %l0
342 ld [%o0], %l0
343 ld [%o0], %l0
344 ld [%o0], %l0
345 ld [%o0], %l0
346 ld [%o0], %l0
347 ld [%o0], %l0
348 ld [%o0], %l0
349 ld [%o0], %l0
350 ld [%o0], %l0
351 ld [%o0], %l0
352 ld [%o0], %l0
353 ld [%o0], %l0
354 ld [%o0], %l0
355 ld [%o0], %l0
356 ld [%o0], %l0
357 ld [%o0], %l0
358 ld [%o0], %l0
359 ld [%o0], %l0
360
361loop3:
362 ld [%o0], %l0
363 ld [%o0], %l0
364 ld [%o0], %l0
365 ld [%o0], %l0
366 ld [%o0], %l0
367 ld [%o0], %l0
368 ld [%o0], %l0
369 ld [%o0], %l0
370 ld [%o0], %l0
371 ld [%o0], %l0
372 ld [%o0], %l0
373 ld [%o0], %l0
374 ld [%o0], %l0
375 ld [%o0], %l0
376 ld [%o0], %l0
377 ld [%o0], %l0
378 ld [%o0], %l0
379 ld [%o0], %l0
380 ld [%o0], %l0
381 ld [%o0], %l0
382 ld [%o0], %l0
383 ld [%o0], %l0
384 ld [%o0], %l0
385 ld [%o0], %l0
386 ld [%o0], %l0
387 ld [%o0], %l0
388 ld [%o0], %l0
389 ld [%o0], %l0
390 ld [%o0], %l0
391 ld [%o0], %l0
392 ld [%o0], %l0
393 ld [%o0], %l0
394 ld [%o0], %l0
395 ld [%o0], %l0
396 ld [%o0], %l0
397 ld [%o0], %l0
398 ld [%o0], %l0
399 ld [%o0], %l0
400 ld [%o0], %l0
401 ld [%o0], %l0
402 ld [%o0], %l0
403 ld [%o0], %l0
404 ld [%o0], %l0
405 ld [%o0], %l0
406 ld [%o0], %l0
407 ld [%o0], %l0
408 ld [%o0], %l0
409 ld [%o0], %l0
410 ld [%o0], %l0
411 ld [%o0], %l0
412 ld [%o0], %l0
413 ld [%o0], %l0
414 ld [%o0], %l0
415 ld [%o0], %l0
416 ld [%o0], %l0
417 ld [%o0], %l0
418 ld [%o0], %l0
419 ld [%o0], %l0
420 ld [%o0], %l0
421 ld [%o0], %l0
422 ld [%o0], %l0
423 ld [%o0], %l0
424 ld [%o0], %l0
425 ld [%o0], %l0
426 ld [%o0], %l0
427 ld [%o0], %l0
428 ld [%o0], %l0
429 ld [%o0], %l0
430 ld [%o0], %l0
431 deccc %g1
432 bnz loop3
433 ld [%o0], %l0
434 ba normal_end
435 nop
436
437th_main_4:
438th_main_5:
439th_main_6:
440th_main_7:
441th_main_8:
442th_main_9:
443th_main_10:
444th_main_11:
445th_main_12:
446th_main_13:
447th_main_14:
448th_main_15:
449th_main_16:
450th_main_17:
451th_main_18:
452th_main_19:
453th_main_20:
454th_main_21:
455th_main_22:
456th_main_23:
457th_main_24:
458th_main_25:
459th_main_26:
460th_main_27:
461th_main_28:
462th_main_29:
463th_main_30:
464th_main_31:
465
466
467normal_end:
468 ta T_GOOD_TRAP
469bad_end:
470 ta T_BAD_TRAP
471
472
473user_text_end:
474
475/***********************************************************************
476 Test case data start
477 ***********************************************************************/
478.data
479user_data_start:
480 .skip 1000
481user_data_end:
482
483SECTION .MY_DATA0 DATA_VA=0xd0100000
484attr_data {
485 Name = .MY_DATA0,
486 VA= 0x0d0100000
487 RA= 0x1d0100000
488 PA= ra2pa(0x1d0100000,0),
489 part_0_ctx_nonzero_tsb_config_0,
490 TTE_G=1, TTE_Context=0x44, TTE_V=1, TTE_Size=0, TTE_NFO=0,
491 TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
492 TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1
493 }
494
495 .data
496
497.global my_data0
498my_data0:
499 .xword 0x0
500
501SECTION .MY_DATA1 DATA_VA=0xd1110000
502attr_data {
503 Name = .MY_DATA1,
504 VA= 0x0d1110000,
505 RA= 0x1d1110000,
506 PA= ra2pa(0x1d1110000,0),
507 part_0_ctx_nonzero_tsb_config_0,
508 TTE_G=1, TTE_Context=0x44, TTE_V=1, TTE_Size=0, TTE_NFO=0,
509 TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
510 TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1
511 }
512
513 .data
514.global my_data1
515my_data1:
516 .xword 0x0
517
518
519SECTION .MY_DATA2 DATA_VA=0xd1210000
520attr_data {
521 Name = .MY_DATA2,
522 VA= 0x0d1210000,
523 RA= 0x1d1210000,
524 PA= ra2pa(0x1d1210000,0),
525 part_0_ctx_nonzero_tsb_config_0,
526 TTE_G=1, TTE_Context=0x44, TTE_V=1, TTE_Size=0, TTE_NFO=0,
527 TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
528 TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1
529 }
530
531 .data
532.global my_data2
533my_data2:
534 .xword 0x0
535
536
537SECTION .MY_DATA3 DATA_VA=0xd1310000
538attr_data {
539 Name = .MY_DATA3,
540 VA= 0x0d1310000,
541 RA= 0x1d1310000,
542 PA= ra2pa(0x1d1310000,0),
543 part_0_ctx_nonzero_tsb_config_0,
544 TTE_G=1, TTE_Context=0x44, TTE_V=1, TTE_Size=0, TTE_NFO=0,
545 TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
546 TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1
547 }
548
549 .data
550.global my_data3
551my_data3:
552 .xword 0x0
553
554
555SECTION .MY_DATA4 DATA_VA=0xd1410000
556attr_data {
557 Name = .MY_DATA4,
558 VA= 0x0d1410000,
559 RA= 0x1d1410000,
560 PA= ra2pa(0x1d1410000,0),
561 part_0_ctx_nonzero_tsb_config_0,
562 TTE_G=1, TTE_Context=0x44, TTE_V=1, TTE_Size=0, TTE_NFO=0,
563 TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
564 TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1
565 }
566
567 .data
568.global my_data4
569my_data4:
570 .xword 0x0
571
572
573SECTION .MY_DATA5 DATA_VA=0xd1510000
574attr_data {
575 Name = .MY_DATA5,
576 VA= 0x0d1510000,
577 RA= 0x1d1510000,
578 PA= ra2pa(0x1d1510000,0),
579 part_0_ctx_nonzero_tsb_config_0,
580 TTE_G=1, TTE_Context=0x44, TTE_V=1, TTE_Size=0, TTE_NFO=0,
581 TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
582 TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1
583 }
584
585 .data
586.global my_data5
587my_data5:
588 .xword 0x0
589
590
591SECTION .MY_DATA6 DATA_VA=0xd1610000
592attr_data {
593 Name = .MY_DATA6,
594 VA= 0x0d1610000,
595 RA= 0x1d1610000,
596 PA= ra2pa(0x1d1610000,0),
597 part_0_ctx_nonzero_tsb_config_0,
598 TTE_G=1, TTE_Context=0x44, TTE_V=1, TTE_Size=0, TTE_NFO=0,
599 TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
600 TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1
601 }
602
603 .data
604.global my_data6
605my_data6:
606 .xword 0x0
607
608
609SECTION .MY_DATA7 DATA_VA=0xd1710000
610attr_data {
611 Name = .MY_DATA7,
612 VA= 0x0d1710000,
613 RA= 0x1d1710000,
614 PA= ra2pa(0x1d1710000,0),
615 part_0_ctx_nonzero_tsb_config_0,
616 TTE_G=1, TTE_Context=0x44, TTE_V=1, TTE_Size=0, TTE_NFO=0,
617 TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
618 TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1
619 }
620
621 .data
622.global my_data7
623my_data7:
624 .xword 0x0
625
626.end