summaryrefslogtreecommitdiff
path: root/lib/libc
diff options
context:
space:
mode:
authorPatrick Wildt <patrick@cvs.openbsd.org>2017-02-23 22:50:08 +0000
committerPatrick Wildt <patrick@cvs.openbsd.org>2017-02-23 22:50:08 +0000
commit09db5d973d9f236e409b4d21922010ad3fd6380b (patch)
treee3e57a688a65682737b70215e641a2c146266a5d /lib/libc
parentbad5bb0e732cd584574a2804c5af4a2e10099eba (diff)
The assembly for sigpending(2) wasn't correctly implemented either. I
suppose this still stems from the first steps where we tried to get at least some userland stuff to compile. This change properly saves the pointer before doing the syscall and stores the return value in the pointer on return. This makes sigpending regress pass.
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/arch/aarch64/sys/sigpending.S5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/libc/arch/aarch64/sys/sigpending.S b/lib/libc/arch/aarch64/sys/sigpending.S
index 65265363115..076473b1ccb 100644
--- a/lib/libc/arch/aarch64/sys/sigpending.S
+++ b/lib/libc/arch/aarch64/sys/sigpending.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: sigpending.S,v 1.1 2017/01/11 18:09:24 patrick Exp $ */
+/* $OpenBSD: sigpending.S,v 1.2 2017/02/23 22:50:07 patrick Exp $ */
/* $NetBSD: sigpending.S,v 1.5 2003/08/07 16:42:05 agc Exp $ */
/*-
@@ -35,9 +35,10 @@
#include "SYS.h"
SYSENTRY(sigpending)
- ldr w0, [x0]
+ mov x2, x0
SYSTRAP(sigpending)
bcs CERROR
+ str w0, [x2]
mov x0, #0
ret
SYSCALL_END(sigpending)