1/* SPDX-License-Identifier: GPL-2.0 */
2#include <basic_asm.h>
3#include <asm/unistd.h>
4
5 .text
6FUNC_START(getppid_tm_active)
7 tbegin.
8 beq 1f
9 li r0, __NR_getppid
10 sc
11 tend.
12 blr
131:
14 li r3, -1
15 blr
16
17FUNC_START(getppid_tm_suspended)
18 tbegin.
19 beq 1f
20 li r0, __NR_getppid
21 tsuspend.
22 sc
23 tresume.
24 tend.
25 blr
261:
27 li r3, -1
28 blr
29
30
31.macro scv level
32 .long (0x44000001 | (\level) << 5)
33.endm
34
35FUNC_START(getppid_scv_tm_active)
36 PUSH_BASIC_STACK(0)
37 tbegin.
38 beq 1f
39 li r0, __NR_getppid
40 scv 0
41 tend.
42 POP_BASIC_STACK(0)
43 blr
441:
45 li r3, -1
46 POP_BASIC_STACK(0)
47 blr
48
49FUNC_START(getppid_scv_tm_suspended)
50 PUSH_BASIC_STACK(0)
51 tbegin.
52 beq 1f
53 li r0, __NR_getppid
54 tsuspend.
55 scv 0
56 tresume.
57 tend.
58 POP_BASIC_STACK(0)
59 blr
601:
61 li r3, -1
62 POP_BASIC_STACK(0)
63 blr
64

source code of linux/tools/testing/selftests/powerpc/tm/tm-syscall-asm.S