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