13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 */
25
26 /*
27 * Routines for manipulating the UltraSPARC performance
28 * counter registers (%pcr and %pic)
29 */
30
31 #include <sys/asm_linkage.h>
32
33 #if defined(lint) || defined(__lint)
34
35 #include <sys/cpc_ultra.h>
36
37 /*ARGSUSED*/
38 void
39 ultra_setpcr(uint64_t pcr)
40 {}
41
42 /*ARGSUSED*/
43 uint64_t
44 ultra_getpcr(void)
45 { return (0); }
46
47 /*ARGSUSED*/
48 void
49 ultra_setpic(uint64_t pic)
50 {}
51
52 uint64_t
53 ultra_getpic(void)
54 { return (0); }
55
56 #else /* lint || __lint */
57
58 ENTRY(ultra_setpcr)
59 retl
60 wr %o0, %pcr
61 SET_SIZE(ultra_setpcr)
62
63 ENTRY(ultra_getpcr)
64 retl
65 rd %pcr, %o0
66 SET_SIZE(ultra_getpcr)
67
68 ENTRY(ultra_setpic)
69 #if defined(BB_ERRATA_1) /* Writes to %pic may fail */
70 ba 1f
71 nop
72 .align 16
73 1: wr %o0, %pic
74 rd %pic, %g0
75 retl
76 nop
77 #else
78 retl
79 wr %o0, %pic
80 #endif /* BB_ERRATA_1 */
81 SET_SIZE(ultra_setpic)
82
83 ENTRY(ultra_getpic)
84 retl
85 rd %pic, %o0
86 SET_SIZE(ultra_getpic)
87
88 #endif /* lint || __lint */
|
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 */
25
26 /*
27 * Routines for manipulating the UltraSPARC performance
28 * counter registers (%pcr and %pic)
29 */
30
31 #include <sys/asm_linkage.h>
32
33 ENTRY(ultra_setpcr)
34 retl
35 wr %o0, %pcr
36 SET_SIZE(ultra_setpcr)
37
38 ENTRY(ultra_getpcr)
39 retl
40 rd %pcr, %o0
41 SET_SIZE(ultra_getpcr)
42
43 ENTRY(ultra_setpic)
44 #if defined(BB_ERRATA_1) /* Writes to %pic may fail */
45 ba 1f
46 nop
47 .align 16
48 1: wr %o0, %pic
49 rd %pic, %g0
50 retl
51 nop
52 #else
53 retl
54 wr %o0, %pic
55 #endif /* BB_ERRATA_1 */
56 SET_SIZE(ultra_setpic)
57
58 ENTRY(ultra_getpic)
59 retl
60 rd %pic, %o0
61 SET_SIZE(ultra_getpic)
62
|