Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / diag / assembly / arch / prm / tso / tso_directed / tso_n1_ld_starve2.s
CommitLineData
86530b38
AT
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* OpenSPARC T2 Processor File: tso_n1_ld_starve2.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], %l1
52 prefetch [%o0], #n_reads
53 prefetch [%o0], #n_reads
54 prefetch [%o0], #n_reads
55 prefetch [%o0], #n_reads
56 prefetch [%o0], #n_reads
57 prefetch [%o0], #n_reads
58 prefetch [%o0], #n_reads
59 prefetch [%o0], #n_reads
60 prefetch [%o0], #n_reads
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], %l1
88 setx my_data1, %l0, %o0
89 ld [%o0], %l1
90 setx my_data2, %l0, %o0
91 ld [%o0], %l1
92 setx my_data3, %l0, %o0
93 ld [%o0], %l1
94 setx my_data4, %l0, %o0
95 ld [%o0], %l1
96 setx my_data5, %l0, %o0
97 ld [%o0], %l1
98 setx my_data6, %l0, %o0
99 ld [%o0], %l1
100 setx my_data7, %l0, %o0
101 ld [%o0], %l1
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 prefetch [%o0], #n_reads
113 prefetch [%o0], #n_reads
114 prefetch [%o0], #n_reads
115 prefetch [%o0], #n_reads
116 prefetch [%o0], #n_reads
117 prefetch [%o0], #n_reads
118 prefetch [%o0], #n_reads
119 prefetch [%o0], #n_reads
120 prefetch [%o0], #n_reads
121 prefetch [%o0], #n_reads
122 prefetch [%o0], #n_reads
123 prefetch [%o0], #n_reads
124 prefetch [%o0], #n_reads
125 prefetch [%o0], #n_reads
126 prefetch [%o0], #n_reads
127 prefetch [%o0], #n_reads
128 prefetch [%o0], #n_reads
129 prefetch [%o0], #n_reads
130 prefetch [%o0], #n_reads
131 prefetch [%o0], #n_reads
132 prefetch [%o0], #n_reads
133 prefetch [%o0], #n_reads
134 prefetch [%o0], #n_reads
135 prefetch [%o0], #n_reads
136 prefetch [%o0], #n_reads
137 prefetch [%o0], #n_reads
138 prefetch [%o0], #n_reads
139 prefetch [%o0], #n_reads
140 prefetch [%o0], #n_reads
141 prefetch [%o0], #n_reads
142 prefetch [%o0], #n_reads
143 prefetch [%o0], #n_reads
144 prefetch [%o0], #n_reads
145 prefetch [%o0], #n_reads
146 prefetch [%o0], #n_reads
147 prefetch [%o0], #n_reads
148 prefetch [%o0], #n_reads
149 prefetch [%o0], #n_reads
150 prefetch [%o0], #n_reads
151 prefetch [%o0], #n_reads
152 prefetch [%o0], #n_reads
153 prefetch [%o0], #n_reads
154 prefetch [%o0], #n_reads
155 prefetch [%o0], #n_reads
156 prefetch [%o0], #n_reads
157 prefetch [%o0], #n_reads
158 prefetch [%o0], #n_reads
159 prefetch [%o0], #n_reads
160 prefetch [%o0], #n_reads
161 prefetch [%o0], #n_reads
162 prefetch [%o0], #n_reads
163 prefetch [%o0], #n_reads
164 prefetch [%o0], #n_reads
165 prefetch [%o0], #n_reads
166 prefetch [%o0], #n_reads
167 prefetch [%o0], #n_reads
168 prefetch [%o0], #n_reads
169 prefetch [%o0], #n_reads
170 prefetch [%o0], #n_reads
171 prefetch [%o0], #n_reads
172 prefetch [%o0], #n_reads
173 prefetch [%o0], #n_reads
174 prefetch [%o0], #n_reads
175 prefetch [%o0], #n_reads
176 prefetch [%o0], #n_reads
177 prefetch [%o0], #n_reads
178 prefetch [%o0], #n_reads
179 prefetch [%o0], #n_reads
180 prefetch [%o0], #n_reads
181 deccc %g1
182 bnz loop1
183 prefetch [%o0], #n_reads
184 ba normal_end
185 nop
186
187th_main_2:
188 mov 0xff, %g1
189 setx user_data_start, %l0, %o0
190 prefetch [%o0], #n_reads
191 prefetch [%o0], #n_reads
192 prefetch [%o0], #n_reads
193 prefetch [%o0], #n_reads
194 prefetch [%o0], #n_reads
195 prefetch [%o0], #n_reads
196 prefetch [%o0], #n_reads
197 prefetch [%o0], #n_reads
198 prefetch [%o0], #n_reads
199 prefetch [%o0], #n_reads
200 prefetch [%o0], #n_reads
201 prefetch [%o0], #n_reads
202 prefetch [%o0], #n_reads
203 prefetch [%o0], #n_reads
204 prefetch [%o0], #n_reads
205 prefetch [%o0], #n_reads
206 prefetch [%o0], #n_reads
207 prefetch [%o0], #n_reads
208 prefetch [%o0], #n_reads
209 prefetch [%o0], #n_reads
210 prefetch [%o0], #n_reads
211 prefetch [%o0], #n_reads
212 prefetch [%o0], #n_reads
213 prefetch [%o0], #n_reads
214 prefetch [%o0], #n_reads
215 prefetch [%o0], #n_reads
216 prefetch [%o0], #n_reads
217 prefetch [%o0], #n_reads
218 prefetch [%o0], #n_reads
219 prefetch [%o0], #n_reads
220
221loop2:
222 prefetch [%o0], #n_reads
223 prefetch [%o0], #n_reads
224 prefetch [%o0], #n_reads
225 prefetch [%o0], #n_reads
226 prefetch [%o0], #n_reads
227 prefetch [%o0], #n_reads
228 prefetch [%o0], #n_reads
229 prefetch [%o0], #n_reads
230 prefetch [%o0], #n_reads
231 prefetch [%o0], #n_reads
232 prefetch [%o0], #n_reads
233 prefetch [%o0], #n_reads
234 prefetch [%o0], #n_reads
235 prefetch [%o0], #n_reads
236 prefetch [%o0], #n_reads
237 prefetch [%o0], #n_reads
238 prefetch [%o0], #n_reads
239 prefetch [%o0], #n_reads
240 prefetch [%o0], #n_reads
241 prefetch [%o0], #n_reads
242 prefetch [%o0], #n_reads
243 prefetch [%o0], #n_reads
244 prefetch [%o0], #n_reads
245 prefetch [%o0], #n_reads
246 prefetch [%o0], #n_reads
247 prefetch [%o0], #n_reads
248 prefetch [%o0], #n_reads
249 prefetch [%o0], #n_reads
250 prefetch [%o0], #n_reads
251 prefetch [%o0], #n_reads
252 prefetch [%o0], #n_reads
253 prefetch [%o0], #n_reads
254 prefetch [%o0], #n_reads
255 prefetch [%o0], #n_reads
256 prefetch [%o0], #n_reads
257 prefetch [%o0], #n_reads
258 prefetch [%o0], #n_reads
259 prefetch [%o0], #n_reads
260 prefetch [%o0], #n_reads
261 prefetch [%o0], #n_reads
262 prefetch [%o0], #n_reads
263 prefetch [%o0], #n_reads
264 prefetch [%o0], #n_reads
265 prefetch [%o0], #n_reads
266 prefetch [%o0], #n_reads
267 prefetch [%o0], #n_reads
268 prefetch [%o0], #n_reads
269 prefetch [%o0], #n_reads
270 prefetch [%o0], #n_reads
271 prefetch [%o0], #n_reads
272 prefetch [%o0], #n_reads
273 prefetch [%o0], #n_reads
274 prefetch [%o0], #n_reads
275 prefetch [%o0], #n_reads
276 prefetch [%o0], #n_reads
277 prefetch [%o0], #n_reads
278 prefetch [%o0], #n_reads
279 prefetch [%o0], #n_reads
280 prefetch [%o0], #n_reads
281 prefetch [%o0], #n_reads
282 prefetch [%o0], #n_reads
283 prefetch [%o0], #n_reads
284 prefetch [%o0], #n_reads
285 prefetch [%o0], #n_reads
286 prefetch [%o0], #n_reads
287 prefetch [%o0], #n_reads
288 prefetch [%o0], #n_reads
289 prefetch [%o0], #n_reads
290 prefetch [%o0], #n_reads
291 deccc %g1
292 bnz loop2
293 prefetch [%o0], #n_reads
294 ba normal_end
295 nop
296
297th_main_3:
298 mov 0xff, %g1
299 setx user_data_start, %l0, %o0
300 prefetch [%o0], #n_reads
301 prefetch [%o0], #n_reads
302 prefetch [%o0], #n_reads
303 prefetch [%o0], #n_reads
304 prefetch [%o0], #n_reads
305 prefetch [%o0], #n_reads
306 prefetch [%o0], #n_reads
307 prefetch [%o0], #n_reads
308 prefetch [%o0], #n_reads
309 prefetch [%o0], #n_reads
310 prefetch [%o0], #n_reads
311 prefetch [%o0], #n_reads
312 prefetch [%o0], #n_reads
313 prefetch [%o0], #n_reads
314 prefetch [%o0], #n_reads
315 prefetch [%o0], #n_reads
316 prefetch [%o0], #n_reads
317 prefetch [%o0], #n_reads
318 prefetch [%o0], #n_reads
319 prefetch [%o0], #n_reads
320 prefetch [%o0], #n_reads
321 prefetch [%o0], #n_reads
322 prefetch [%o0], #n_reads
323 prefetch [%o0], #n_reads
324 prefetch [%o0], #n_reads
325 prefetch [%o0], #n_reads
326 prefetch [%o0], #n_reads
327 prefetch [%o0], #n_reads
328 prefetch [%o0], #n_reads
329 prefetch [%o0], #n_reads
330 prefetch [%o0], #n_reads
331 prefetch [%o0], #n_reads
332 prefetch [%o0], #n_reads
333 prefetch [%o0], #n_reads
334 prefetch [%o0], #n_reads
335 prefetch [%o0], #n_reads
336 prefetch [%o0], #n_reads
337 prefetch [%o0], #n_reads
338 prefetch [%o0], #n_reads
339 prefetch [%o0], #n_reads
340 prefetch [%o0], #n_reads
341 prefetch [%o0], #n_reads
342 prefetch [%o0], #n_reads
343 prefetch [%o0], #n_reads
344 prefetch [%o0], #n_reads
345 prefetch [%o0], #n_reads
346 prefetch [%o0], #n_reads
347 prefetch [%o0], #n_reads
348 prefetch [%o0], #n_reads
349 prefetch [%o0], #n_reads
350 prefetch [%o0], #n_reads
351 prefetch [%o0], #n_reads
352 prefetch [%o0], #n_reads
353 prefetch [%o0], #n_reads
354 prefetch [%o0], #n_reads
355 prefetch [%o0], #n_reads
356 prefetch [%o0], #n_reads
357 prefetch [%o0], #n_reads
358 prefetch [%o0], #n_reads
359 prefetch [%o0], #n_reads
360
361loop3:
362 prefetch [%o0], #n_reads
363 prefetch [%o0], #n_reads
364 prefetch [%o0], #n_reads
365 prefetch [%o0], #n_reads
366 prefetch [%o0], #n_reads
367 prefetch [%o0], #n_reads
368 prefetch [%o0], #n_reads
369 prefetch [%o0], #n_reads
370 prefetch [%o0], #n_reads
371 prefetch [%o0], #n_reads
372 prefetch [%o0], #n_reads
373 prefetch [%o0], #n_reads
374 prefetch [%o0], #n_reads
375 prefetch [%o0], #n_reads
376 prefetch [%o0], #n_reads
377 prefetch [%o0], #n_reads
378 prefetch [%o0], #n_reads
379 prefetch [%o0], #n_reads
380 prefetch [%o0], #n_reads
381 prefetch [%o0], #n_reads
382 prefetch [%o0], #n_reads
383 prefetch [%o0], #n_reads
384 prefetch [%o0], #n_reads
385 prefetch [%o0], #n_reads
386 prefetch [%o0], #n_reads
387 prefetch [%o0], #n_reads
388 prefetch [%o0], #n_reads
389 prefetch [%o0], #n_reads
390 prefetch [%o0], #n_reads
391 prefetch [%o0], #n_reads
392 prefetch [%o0], #n_reads
393 prefetch [%o0], #n_reads
394 prefetch [%o0], #n_reads
395 prefetch [%o0], #n_reads
396 prefetch [%o0], #n_reads
397 prefetch [%o0], #n_reads
398 prefetch [%o0], #n_reads
399 prefetch [%o0], #n_reads
400 prefetch [%o0], #n_reads
401 prefetch [%o0], #n_reads
402 prefetch [%o0], #n_reads
403 prefetch [%o0], #n_reads
404 prefetch [%o0], #n_reads
405 prefetch [%o0], #n_reads
406 prefetch [%o0], #n_reads
407 prefetch [%o0], #n_reads
408 prefetch [%o0], #n_reads
409 prefetch [%o0], #n_reads
410 prefetch [%o0], #n_reads
411 prefetch [%o0], #n_reads
412 prefetch [%o0], #n_reads
413 prefetch [%o0], #n_reads
414 prefetch [%o0], #n_reads
415 prefetch [%o0], #n_reads
416 prefetch [%o0], #n_reads
417 prefetch [%o0], #n_reads
418 prefetch [%o0], #n_reads
419 prefetch [%o0], #n_reads
420 prefetch [%o0], #n_reads
421 prefetch [%o0], #n_reads
422 prefetch [%o0], #n_reads
423 prefetch [%o0], #n_reads
424 prefetch [%o0], #n_reads
425 prefetch [%o0], #n_reads
426 prefetch [%o0], #n_reads
427 prefetch [%o0], #n_reads
428 prefetch [%o0], #n_reads
429 prefetch [%o0], #n_reads
430 prefetch [%o0], #n_reads
431 deccc %g1
432 bnz loop3
433 prefetch [%o0], #n_reads
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),
489part_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),
507part_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),
525part_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),
543part_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),
561part_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),
579part_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),
597part_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),
615part_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