Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / diag / assembly / arch / prm / tso / tso_directed / tso_n2_false_sharing5.s
CommitLineData
86530b38
AT
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* OpenSPARC T2 Processor File: tso_n2_false_sharing5.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 data_base_reg %o1
39#define to_reg %o2
40#define my_id_reg %o3
41#define test_reg %o4
42#define global_cnt_reg %o5
43
44#define TIMEOUT 0x1000
45#define ITERATIONS 0x2
46
47#include "hboot.s"
48
49.global main
50
51main:
52
53 set ITERATIONS, global_cnt_reg
54 mov %g0, my_id_reg
55
56th_fork(th_main,%l0)
57
58th_main_0:
59 add my_id_reg, 0x00, my_id_reg ! this is my ID address
60 ba go
61 nop
62
63th_main_1:
64! add my_id_reg, 0x04, my_id_reg
65! ba go
66! nop
67 call leafRoutine
68 nop
69
70
71th_main_2:
72! add my_id_reg, 0x08, my_id_reg
73! ba go
74! nop
75 call leafRoutine
76 nop
77
78th_main_3:
79 add my_id_reg, 0x0c, my_id_reg
80 ba go
81 nop
82
83th_main_4:
84 add my_id_reg, 0x10, my_id_reg
85 ba go
86 nop
87
88th_main_5:
89 add my_id_reg, 0x14, my_id_reg
90 ba go
91 nop
92
93th_main_6:
94 add my_id_reg, 0x18, my_id_reg
95 ba go
96 nop
97
98th_main_7:
99 add my_id_reg, 0x1c, my_id_reg
100 ba go
101 nop
102
103th_main_8:
104 add my_id_reg, 0x20, my_id_reg
105 ba go
106 nop
107th_main_9:
108 add my_id_reg, 0x24, my_id_reg
109 ba go
110 nop
111th_main_10:
112 add my_id_reg, 0x24, my_id_reg
113 ba go
114 nop
115th_main_11:
116 add my_id_reg, 0x24, my_id_reg
117 ba go
118 nop
119th_main_12:
120 add my_id_reg, 0x24, my_id_reg
121 ba go
122 nop
123th_main_13:
124 add my_id_reg, 0x24, my_id_reg
125 ba go
126 nop
127th_main_14:
128 add my_id_reg, 0x24, my_id_reg
129 ba go
130 nop
131th_main_15:
132 add my_id_reg, 0x24, my_id_reg
133 ba go
134 nop
135
136go:
137 setx protected_area, %l0, data_base_reg ! the data area
138 add my_id_reg, data_base_reg, data_base_reg
139loop1:
140 ld [data_base_reg], %i1
141 deccc %i1
142 st %i1, [data_base_reg] ! store my ID in there
143 bne loop1 ! repeat
144 nop
145
146good_end:
147 ta T_GOOD_TRAP
148bad_end:
149 ta T_BAD_TRAP
150
151!==========================
152
153 .data
154.global protected_area
155protected_area:
156 .word 0x00ff
157.global leafRoutine
158leafRoutine:
159 .word 0x81c3e008
160 .word 0x0100000
161 .word 0x00ff
162 .word 0x00ff
163 .word 0x00ff
164 .word 0x00ff
165 .word 0x00ff
166 .word 0x00ff
167 .word 0x00ff
168 .word 0x00ff
169 .word 0x00ff
170 .word 0x00ff
171 .word 0x00ff
172 .word 0x00ff
173 .word 0x00ff
174 .word 0x00ff
175 .word 0x00ff
176 .word 0x00ff
177 .word 0x00ff
178 .word 0x00ff
179 .word 0x00ff
180 .word 0x00ff
181 .word 0x00ff
182 .word 0x00ff
183 .word 0x00ff
184 .word 0x00ff
185 .word 0x00ff
186 .word 0x00ff
187 .skip 0x1000
188 .word 0xbeef
189
190.end