Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / diag / assembly / arch / prm / memory / memop_byte_mask.s
CommitLineData
86530b38
AT
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* OpenSPARC T2 Processor File: memop_byte_mask.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_PAGE_NUCLEUS_ALSO
39#define MAIN_PAGE_HV_ALSO
40
41#include "hboot.s"
42#include "asi_s.h"
43
44/************************************************************************
45 Test case code start
46 ************************************************************************/
47
48.text
49.global main
50
51main:
52 ta T_CHANGE_HPRIV
53
54!
55! Thread 0 Start
56!
57thread_0:
58 ! Bring data of all 1's into a L2 cache line
59
60 setx user_data_start, %g1, %g2
61 ld [%g2], %l0
62 membar #Sync
63
64 ! Do byte stores into that same L2 cache line.
65 ! Data = 0, 1, 2, 3, ..., 63
66
67 mov %g2, %g3 ! %g3 = address
68 mov %g0, %g1 ! %g1 = data
69
70storeloop:
71 stb %g1, [%g3]
72 add %g1, 1, %g1
73 cmp %g1, 63
74 bne storeloop
75 add %g3, 1, %g3
76
77 ! Do byte reads from that same L2 cache line
78 ! Check the data read.
79
80 mov %g2, %g3 ! %g3 = address
81 mov %g0, %g1 ! %g1 = data
82
83readloop:
84 ldub [%g3], %l1
85 cmp %l1, %g1
86 bne test_failed
87 add %g1, 1, %g1
88 cmp %g1, 63
89 bne readloop
90 add %g3, 1, %g3
91
92test_passed:
93 EXIT_GOOD
94
95test_failed:
96 EXIT_BAD
97
98
99/************************************************************************
100 Test case data start
101 ************************************************************************/
102.data
103user_data_start:
104.xword 0xffffffff
105.xword 0xffffffff
106.xword 0xffffffff
107.xword 0xffffffff
108.xword 0xffffffff
109.xword 0xffffffff
110.xword 0xffffffff
111.xword 0xffffffff
112.xword 0xffffffff
113.xword 0xffffffff
114.xword 0xffffffff
115.xword 0xffffffff
116.xword 0xffffffff
117.xword 0xffffffff
118.xword 0xffffffff
119.xword 0xffffffff
120.end
121
122
123