Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / tools / testing / selftests / powerpc / tm / tm-syscall-asm.S
blobaed632d29fff5273c69210a85bdaece582d91e9b
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #include <basic_asm.h>
3 #include <asm/unistd.h>
5         .text
6 FUNC_START(getppid_tm_active)
7         tbegin.
8         beq 1f
9         li      r0, __NR_getppid
10         sc
11         tend.
12         blr
14         li      r3, -1
15         blr
17 FUNC_START(getppid_tm_suspended)
18         tbegin.
19         beq 1f
20         li      r0, __NR_getppid
21         tsuspend.
22         sc
23         tresume.
24         tend.
25         blr
27         li      r3, -1
28         blr
31 .macro scv level
32         .long (0x44000001 | (\level) << 5)
33 .endm
35 FUNC_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
45         li      r3, -1
46         POP_BASIC_STACK(0)
47         blr
49 FUNC_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
61         li      r3, -1
62         POP_BASIC_STACK(0)
63         blr