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