1/* SPDX-License-Identifier: GPL-2.0 */
2 .globl getcc
3 .type getcc,#function
4getcc:
5 ldx [%o0 + PT_V9_TSTATE], %o1
6 srlx %o1, 32, %o1
7 and %o1, 0xf, %o1
8 retl
9 stx %o1, [%o0 + PT_V9_G1]
10 .size getcc,.-getcc
11
12 .globl setcc
13 .type setcc,#function
14setcc:
15 ldx [%o0 + PT_V9_TSTATE], %o1
16 ldx [%o0 + PT_V9_G1], %o2
17 or %g0, %ulo(TSTATE_ICC), %o3
18 sllx %o3, 32, %o3
19 andn %o1, %o3, %o1
20 sllx %o2, 32, %o2
21 and %o2, %o3, %o2
22 or %o1, %o2, %o1
23 retl
24 stx %o1, [%o0 + PT_V9_TSTATE]
25 .size setcc,.-setcc
26

source code of linux/arch/sparc/kernel/getsetcc.S