Files
Linux_Drivers/linux_5.10/tools/testing/selftests/powerpc/signal/signal.S
sam.xiang 5c7dd7acc3 [linux] create linux_5.10.4 from T-head official:
repo: https://github.com/T-head-Semi/linux
	commit: b1313fe517ca3703119dcc99ef3bbf75ab42bcfb

Change-Id: I6cbb35294024ea3a66140e311f4bb705fd7fd626
2023-03-10 20:32:41 +08:00

47 lines
973 B
ArmAsm

/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright 2015, Cyril Bur, IBM Corp.
*/
#include "basic_asm.h"
/* long signal_self(pid_t pid, int sig); */
FUNC_START(signal_self)
li r0,37 /* sys_kill */
/* r3 already has our pid in it */
/* r4 already has signal type in it */
sc
bc 4,3,1f
subfze r3,r3
1: blr
FUNC_END(signal_self)
/* long tm_signal_self(pid_t pid, int sig, int *ret); */
FUNC_START(tm_signal_self)
PUSH_BASIC_STACK(8)
std r5,STACK_FRAME_PARAM(0)(sp) /* ret */
tbegin.
beq 1f
tsuspend.
li r0,37 /* sys_kill */
/* r3 already has our pid in it */
/* r4 already has signal type in it */
sc
ld r5,STACK_FRAME_PARAM(0)(sp) /* ret */
bc 4,3,2f
subfze r3,r3
2: std r3,0(r5)
tabort. 0
tresume. /* Be nice to some cleanup, jumps back to tbegin then to 1: */
/*
* Transaction should be proper doomed and we should never get
* here
*/
li r3,1
POP_BASIC_STACK(8)
blr
1: li r3,0
POP_BASIC_STACK(8)
blr
FUNC_END(tm_signal_self)