xref: /linux/tools/testing/selftests/powerpc/tm/tm-syscall-asm.S (revision 762f99f4f3cb41a775b5157dd761217beba65873)
1b2441318SGreg Kroah-Hartman/* SPDX-License-Identifier: GPL-2.0 */
2*5379ef2aSNicholas Piggin#include <basic_asm.h>
37fe924d9SSam bobroff#include <asm/unistd.h>
47fe924d9SSam bobroff
57fe924d9SSam bobroff	.text
67fe924d9SSam bobroffFUNC_START(getppid_tm_active)
77fe924d9SSam bobroff	tbegin.
87fe924d9SSam bobroff	beq 1f
97fe924d9SSam bobroff	li	r0, __NR_getppid
107fe924d9SSam bobroff	sc
117fe924d9SSam bobroff	tend.
127fe924d9SSam bobroff	blr
137fe924d9SSam bobroff1:
147fe924d9SSam bobroff	li	r3, -1
157fe924d9SSam bobroff	blr
167fe924d9SSam bobroff
177fe924d9SSam bobroffFUNC_START(getppid_tm_suspended)
187fe924d9SSam bobroff	tbegin.
197fe924d9SSam bobroff	beq 1f
207fe924d9SSam bobroff	li	r0, __NR_getppid
217fe924d9SSam bobroff	tsuspend.
227fe924d9SSam bobroff	sc
237fe924d9SSam bobroff	tresume.
247fe924d9SSam bobroff	tend.
257fe924d9SSam bobroff	blr
267fe924d9SSam bobroff1:
277fe924d9SSam bobroff	li	r3, -1
287fe924d9SSam bobroff	blr
29*5379ef2aSNicholas Piggin
30*5379ef2aSNicholas Piggin
31*5379ef2aSNicholas Piggin.macro scv level
32*5379ef2aSNicholas Piggin	.long (0x44000001 | (\level) << 5)
33*5379ef2aSNicholas Piggin.endm
34*5379ef2aSNicholas Piggin
35*5379ef2aSNicholas PigginFUNC_START(getppid_scv_tm_active)
36*5379ef2aSNicholas Piggin	PUSH_BASIC_STACK(0)
37*5379ef2aSNicholas Piggin	tbegin.
38*5379ef2aSNicholas Piggin	beq 1f
39*5379ef2aSNicholas Piggin	li	r0, __NR_getppid
40*5379ef2aSNicholas Piggin	scv	0
41*5379ef2aSNicholas Piggin	tend.
42*5379ef2aSNicholas Piggin	POP_BASIC_STACK(0)
43*5379ef2aSNicholas Piggin	blr
44*5379ef2aSNicholas Piggin1:
45*5379ef2aSNicholas Piggin	li	r3, -1
46*5379ef2aSNicholas Piggin	POP_BASIC_STACK(0)
47*5379ef2aSNicholas Piggin	blr
48*5379ef2aSNicholas Piggin
49*5379ef2aSNicholas PigginFUNC_START(getppid_scv_tm_suspended)
50*5379ef2aSNicholas Piggin	PUSH_BASIC_STACK(0)
51*5379ef2aSNicholas Piggin	tbegin.
52*5379ef2aSNicholas Piggin	beq 1f
53*5379ef2aSNicholas Piggin	li	r0, __NR_getppid
54*5379ef2aSNicholas Piggin	tsuspend.
55*5379ef2aSNicholas Piggin	scv	0
56*5379ef2aSNicholas Piggin	tresume.
57*5379ef2aSNicholas Piggin	tend.
58*5379ef2aSNicholas Piggin	POP_BASIC_STACK(0)
59*5379ef2aSNicholas Piggin	blr
60*5379ef2aSNicholas Piggin1:
61*5379ef2aSNicholas Piggin	li	r3, -1
62*5379ef2aSNicholas Piggin	POP_BASIC_STACK(0)
63*5379ef2aSNicholas Piggin	blr
64