Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / diag / assembly / arch / prm / tso / tso_directed / tso_n2_false_sharing4.s
CommitLineData
86530b38
AT
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* OpenSPARC T2 Processor File: tso_n2_false_sharing4.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
68
69th_main_2:
70 add my_id_reg, 0x08, my_id_reg
71 ba go
72 nop
73
74th_main_3:
75 add my_id_reg, 0x0c, my_id_reg
76 ba go
77 nop
78
79th_main_4:
80 add my_id_reg, 0x10, my_id_reg
81 ba go
82 nop
83
84th_main_5:
85 add my_id_reg, 0x14, my_id_reg
86 ba go
87 nop
88
89th_main_6:
90 add my_id_reg, 0x18, my_id_reg
91 ba go
92 nop
93
94th_main_7:
95 add my_id_reg, 0x1c, my_id_reg
96 ba go
97 nop
98
99th_main_8:
100 add my_id_reg, 0x20, my_id_reg
101 ba go
102 nop
103th_main_9:
104 add my_id_reg, 0x24, my_id_reg
105 ba go
106 nop
107th_main_10:
108 add my_id_reg, 0x24, my_id_reg
109 ba go
110 nop
111th_main_11:
112 add my_id_reg, 0x24, my_id_reg
113 ba go
114 nop
115th_main_12:
116 add my_id_reg, 0x24, my_id_reg
117 ba go
118 nop
119th_main_13:
120 add my_id_reg, 0x24, my_id_reg
121 ba go
122 nop
123th_main_14:
124 add my_id_reg, 0x24, my_id_reg
125 ba go
126 nop
127th_main_15:
128 add my_id_reg, 0x24, my_id_reg
129 ba go
130 nop
131
132go:
133 setx protected_area, %l0, data_base_reg ! the data area
134 add my_id_reg, data_base_reg, data_base_reg
135loop1:
136 ld [data_base_reg], %i1
137 deccc %i1
138 st %i1, [data_base_reg] ! store my ID in there
139 bne loop1 ! repeat
140 nop
141
142good_end:
143 ta T_GOOD_TRAP
144bad_end:
145 ta T_BAD_TRAP
146
147!==========================
148
149 .data
150.global protected_area
151protected_area:
152 .word 0x00ff
153 .word 0x00ff
154 .word 0x00ff
155 .word 0x00ff
156 .word 0x00ff
157 .word 0x00ff
158 .word 0x00ff
159 .word 0x00ff
160 .word 0x00ff
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 .skip 0x1000
180 .word 0xbeef
181
182.end