xref: /titanic_52/usr/src/uts/sparc/asm/cpu.h (revision 94e7edb1e6b194fffd0e7901c0b32e9fc836bc5b)
1*94e7edb1Slucy wang - Sun Microsystems - Beijing China /*
2*94e7edb1Slucy wang - Sun Microsystems - Beijing China  * CDDL HEADER START
3*94e7edb1Slucy wang - Sun Microsystems - Beijing China  *
4*94e7edb1Slucy wang - Sun Microsystems - Beijing China  * The contents of this file are subject to the terms of the
5*94e7edb1Slucy wang - Sun Microsystems - Beijing China  * Common Development and Distribution License (the "License").
6*94e7edb1Slucy wang - Sun Microsystems - Beijing China  * You may not use this file except in compliance with the License.
7*94e7edb1Slucy wang - Sun Microsystems - Beijing China  *
8*94e7edb1Slucy wang - Sun Microsystems - Beijing China  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*94e7edb1Slucy wang - Sun Microsystems - Beijing China  * or http://www.opensolaris.org/os/licensing.
10*94e7edb1Slucy wang - Sun Microsystems - Beijing China  * See the License for the specific language governing permissions
11*94e7edb1Slucy wang - Sun Microsystems - Beijing China  * and limitations under the License.
12*94e7edb1Slucy wang - Sun Microsystems - Beijing China  *
13*94e7edb1Slucy wang - Sun Microsystems - Beijing China  * When distributing Covered Code, include this CDDL HEADER in each
14*94e7edb1Slucy wang - Sun Microsystems - Beijing China  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*94e7edb1Slucy wang - Sun Microsystems - Beijing China  * If applicable, add the following below this CDDL HEADER, with the
16*94e7edb1Slucy wang - Sun Microsystems - Beijing China  * fields enclosed by brackets "[]" replaced with your own identifying
17*94e7edb1Slucy wang - Sun Microsystems - Beijing China  * information: Portions Copyright [yyyy] [name of copyright owner]
18*94e7edb1Slucy wang - Sun Microsystems - Beijing China  *
19*94e7edb1Slucy wang - Sun Microsystems - Beijing China  * CDDL HEADER END
20*94e7edb1Slucy wang - Sun Microsystems - Beijing China  */
21*94e7edb1Slucy wang - Sun Microsystems - Beijing China 
22*94e7edb1Slucy wang - Sun Microsystems - Beijing China /*
23*94e7edb1Slucy wang - Sun Microsystems - Beijing China  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
24*94e7edb1Slucy wang - Sun Microsystems - Beijing China  * Use is subject to license terms.
25*94e7edb1Slucy wang - Sun Microsystems - Beijing China  */
26*94e7edb1Slucy wang - Sun Microsystems - Beijing China 
27*94e7edb1Slucy wang - Sun Microsystems - Beijing China #ifndef _ASM_CPU_H
28*94e7edb1Slucy wang - Sun Microsystems - Beijing China #define	_ASM_CPU_H
29*94e7edb1Slucy wang - Sun Microsystems - Beijing China 
30*94e7edb1Slucy wang - Sun Microsystems - Beijing China #include <sys/types.h>
31*94e7edb1Slucy wang - Sun Microsystems - Beijing China 
32*94e7edb1Slucy wang - Sun Microsystems - Beijing China #ifdef	__cplusplus
33*94e7edb1Slucy wang - Sun Microsystems - Beijing China extern "C" {
34*94e7edb1Slucy wang - Sun Microsystems - Beijing China #endif
35*94e7edb1Slucy wang - Sun Microsystems - Beijing China 
36*94e7edb1Slucy wang - Sun Microsystems - Beijing China #if !defined(__lint) && defined(__GNUC__)
37*94e7edb1Slucy wang - Sun Microsystems - Beijing China 
38*94e7edb1Slucy wang - Sun Microsystems - Beijing China extern __inline__ void
39*94e7edb1Slucy wang - Sun Microsystems - Beijing China prefetch_read_many(void *addr)
40*94e7edb1Slucy wang - Sun Microsystems - Beijing China {
41*94e7edb1Slucy wang - Sun Microsystems - Beijing China #if defined(__sparcv9)
42*94e7edb1Slucy wang - Sun Microsystems - Beijing China 	__asm__ __volatile__(
43*94e7edb1Slucy wang - Sun Microsystems - Beijing China 	    "prefetch	[%0],#n_reads\n\t"
44*94e7edb1Slucy wang - Sun Microsystems - Beijing China 	    : "=r" (addr)
45*94e7edb1Slucy wang - Sun Microsystems - Beijing China 	    : "0" (addr));
46*94e7edb1Slucy wang - Sun Microsystems - Beijing China #else
47*94e7edb1Slucy wang - Sun Microsystems - Beijing China #error	"port me"
48*94e7edb1Slucy wang - Sun Microsystems - Beijing China #endif
49*94e7edb1Slucy wang - Sun Microsystems - Beijing China }
50*94e7edb1Slucy wang - Sun Microsystems - Beijing China 
51*94e7edb1Slucy wang - Sun Microsystems - Beijing China extern __inline__ void
52*94e7edb1Slucy wang - Sun Microsystems - Beijing China prefetch_read_once(void *addr)
53*94e7edb1Slucy wang - Sun Microsystems - Beijing China {
54*94e7edb1Slucy wang - Sun Microsystems - Beijing China #if defined(__sparcv9)
55*94e7edb1Slucy wang - Sun Microsystems - Beijing China 	__asm__ __volatile__(
56*94e7edb1Slucy wang - Sun Microsystems - Beijing China 	    "prefetch	[%0],#one_read\n\t"
57*94e7edb1Slucy wang - Sun Microsystems - Beijing China 	    : "=r" (addr)
58*94e7edb1Slucy wang - Sun Microsystems - Beijing China 	    : "0" (addr));
59*94e7edb1Slucy wang - Sun Microsystems - Beijing China #else
60*94e7edb1Slucy wang - Sun Microsystems - Beijing China #error	"port me"
61*94e7edb1Slucy wang - Sun Microsystems - Beijing China #endif
62*94e7edb1Slucy wang - Sun Microsystems - Beijing China }
63*94e7edb1Slucy wang - Sun Microsystems - Beijing China 
64*94e7edb1Slucy wang - Sun Microsystems - Beijing China extern __inline__ void
65*94e7edb1Slucy wang - Sun Microsystems - Beijing China prefetch_write_many(void *addr)
66*94e7edb1Slucy wang - Sun Microsystems - Beijing China {
67*94e7edb1Slucy wang - Sun Microsystems - Beijing China #if defined(__sparcv9)
68*94e7edb1Slucy wang - Sun Microsystems - Beijing China 	__asm__ __volatile__(
69*94e7edb1Slucy wang - Sun Microsystems - Beijing China 	    "prefetch	[%0],#n_writes\n\t"
70*94e7edb1Slucy wang - Sun Microsystems - Beijing China 	    : "=r" (addr)
71*94e7edb1Slucy wang - Sun Microsystems - Beijing China 	    : "0" (addr));
72*94e7edb1Slucy wang - Sun Microsystems - Beijing China #else
73*94e7edb1Slucy wang - Sun Microsystems - Beijing China #error	"port me"
74*94e7edb1Slucy wang - Sun Microsystems - Beijing China #endif
75*94e7edb1Slucy wang - Sun Microsystems - Beijing China }
76*94e7edb1Slucy wang - Sun Microsystems - Beijing China 
77*94e7edb1Slucy wang - Sun Microsystems - Beijing China extern __inline__ void
78*94e7edb1Slucy wang - Sun Microsystems - Beijing China prefetch_write_once(void *addr)
79*94e7edb1Slucy wang - Sun Microsystems - Beijing China {
80*94e7edb1Slucy wang - Sun Microsystems - Beijing China #if defined(__sparcv9)
81*94e7edb1Slucy wang - Sun Microsystems - Beijing China 	__asm__ __volatile__(
82*94e7edb1Slucy wang - Sun Microsystems - Beijing China 	    "prefetch	[%0],#one_write\n\t"
83*94e7edb1Slucy wang - Sun Microsystems - Beijing China 	    : "=r" (addr)
84*94e7edb1Slucy wang - Sun Microsystems - Beijing China 	    : "0" (addr));
85*94e7edb1Slucy wang - Sun Microsystems - Beijing China #else
86*94e7edb1Slucy wang - Sun Microsystems - Beijing China #error	"port me"
87*94e7edb1Slucy wang - Sun Microsystems - Beijing China #endif
88*94e7edb1Slucy wang - Sun Microsystems - Beijing China }
89*94e7edb1Slucy wang - Sun Microsystems - Beijing China 
90*94e7edb1Slucy wang - Sun Microsystems - Beijing China #endif	/* !__lint && __GNUC__ */
91*94e7edb1Slucy wang - Sun Microsystems - Beijing China 
92*94e7edb1Slucy wang - Sun Microsystems - Beijing China #ifdef	__cplusplus
93*94e7edb1Slucy wang - Sun Microsystems - Beijing China }
94*94e7edb1Slucy wang - Sun Microsystems - Beijing China #endif
95*94e7edb1Slucy wang - Sun Microsystems - Beijing China 
96*94e7edb1Slucy wang - Sun Microsystems - Beijing China #endif	/* _ASM_CPU_H */
97