summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorgkoehler <gkoehler@openbsd.org>2020-11-28 19:49:30 +0000
committergkoehler <gkoehler@openbsd.org>2020-11-28 19:49:30 +0000
commit15572fcf8c6bfa0588565cd23f393a5a1499ea57 (patch)
treea41513c79b27dd0f2180dbab6506b34caf86aa35 /lib/libc
parentSince our IPI broadcast functions exclude the CPU doing the broadcast, we (diff)
downloadwireguard-openbsd-15572fcf8c6bfa0588565cd23f393a5a1499ea57.tar.xz
wireguard-openbsd-15572fcf8c6bfa0588565cd23f393a5a1499ea57.zip
Add retguard to macppc kernel locore.S, ofwreal.S, setjmp.S
This changes RETGUARD_SETUP(ffs) to RETGUARD_SETUP(ffs, %r11, %r12) and RETGUARD_CHECK(ffs) to RETGUARD_CHECK(ffs, %r11, %r12) to show that r11 and r12 are in use between setup and check, and to pick registers other than r11 and r12 in some kernel functions. ok mortimer@ deraadt@
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/arch/powerpc/SYS.h10
-rw-r--r--lib/libc/arch/powerpc/string/ffs.S6
-rw-r--r--lib/libc/arch/powerpc/string/memmove.S8
-rw-r--r--lib/libc/arch/powerpc/sys/sigpending.S6
-rw-r--r--lib/libc/arch/powerpc/sys/sigprocmask.S6
-rw-r--r--lib/libc/arch/powerpc/sys/sigsuspend.S6
-rw-r--r--lib/libc/arch/powerpc/sys/tfork_thread.S6
7 files changed, 24 insertions, 24 deletions
diff --git a/lib/libc/arch/powerpc/SYS.h b/lib/libc/arch/powerpc/SYS.h
index 8705241b48a..053728a6395 100644
--- a/lib/libc/arch/powerpc/SYS.h
+++ b/lib/libc/arch/powerpc/SYS.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: SYS.h,v 1.24 2020/10/26 22:07:05 gkoehler Exp $ */
+/* $OpenBSD: SYS.h,v 1.25 2020/11/28 19:49:30 gkoehler Exp $ */
/*-
* Copyright (c) 1994
* Andrew Cagney. All rights reserved.
@@ -84,15 +84,15 @@
#define __END(x) __END_HIDDEN(x); END(x)
#define PSEUDO_NOERROR(x,y) SYSENTRY(x) \
- RETGUARD_SETUP(x); \
+ RETGUARD_SETUP(x, %r11, %r12); \
li %r0, SYS_ ## y ; \
sc; \
- RETGUARD_CHECK(x); \
+ RETGUARD_CHECK(x, %r11, %r12); \
blr; \
__END(x)
#define PSEUDO_HIDDEN(x,y) SYSENTRY_HIDDEN(x) \
- RETGUARD_SETUP(x); \
+ RETGUARD_SETUP(x, %r11, %r12); \
li %r0, SYS_ ## y; \
sc; \
cmpwi %r0, 0; \
@@ -101,7 +101,7 @@
li %r3, -1; \
li %r4, -1; /* for __syscall(lseek) */ \
.L_ret: \
- RETGUARD_CHECK(x); \
+ RETGUARD_CHECK(x, %r11, %r12); \
blr; \
__END_HIDDEN(x)
diff --git a/lib/libc/arch/powerpc/string/ffs.S b/lib/libc/arch/powerpc/string/ffs.S
index c8a6eacc128..4d6410ebd49 100644
--- a/lib/libc/arch/powerpc/string/ffs.S
+++ b/lib/libc/arch/powerpc/string/ffs.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: ffs.S,v 1.2 2020/10/26 22:07:05 gkoehler Exp $ */
+/* $OpenBSD: ffs.S,v 1.3 2020/11/28 19:49:30 gkoehler Exp $ */
/*
* Written by Christian Weisgerber <naddy@openbsd.org>.
* Public domain.
@@ -7,12 +7,12 @@
#include "SYS.h"
ENTRY(ffs)
- RETGUARD_SETUP(ffs)
+ RETGUARD_SETUP(ffs, %r11, %r12)
neg %r4, %r3
and %r3, %r3, %r4
cntlzw %r3, %r3
subfic %r3, %r3, 32
- RETGUARD_CHECK(ffs)
+ RETGUARD_CHECK(ffs, %r11, %r12)
blr
END(ffs)
.protected
diff --git a/lib/libc/arch/powerpc/string/memmove.S b/lib/libc/arch/powerpc/string/memmove.S
index 4b6ba3cc82b..1aa29c3f544 100644
--- a/lib/libc/arch/powerpc/string/memmove.S
+++ b/lib/libc/arch/powerpc/string/memmove.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: memmove.S,v 1.3 2020/10/26 22:07:05 gkoehler Exp $ */
+/* $OpenBSD: memmove.S,v 1.4 2020/11/28 19:49:30 gkoehler Exp $ */
/* $NetBSD: memmove.S,v 1.3 2011/01/15 07:31:12 matt Exp $ */
/* stropt/memmove.S, pl_string_common, pl_linux 10/11/04 11:45:37
@@ -46,7 +46,7 @@
/* void *memcpy(void *to, const void *from, size_t len) */
#if 0
ENTRY(memcpy)
- RETGUARD_SETUP(memmove)
+ RETGUARD_SETUP(memmove, %r11, %r12)
mr %r8, %r3 /* Save dst (return value) */
b fwd
#endif
@@ -59,7 +59,7 @@ ENTRY(bcopy)
/* void *memmove(void *, const void *, size_t) */
ENTRY(memmove)
- RETGUARD_SETUP(memmove)
+ RETGUARD_SETUP(memmove, %r11, %r12)
mr %r8, %r3 /* Save dst (return value) */
cmpw %r4, %r8 /* Branch to reverse if */
@@ -169,7 +169,7 @@ rlast2:
bdnz+ rlast2 /* Dec ctr, and branch if more */
/* bytes left */
done:
- RETGUARD_CHECK(memmove)
+ RETGUARD_CHECK(memmove, %r11, %r12)
blr
END_STRONG(memmove)
END_WEAK(bcopy)
diff --git a/lib/libc/arch/powerpc/sys/sigpending.S b/lib/libc/arch/powerpc/sys/sigpending.S
index 0136633fef5..fa41751497e 100644
--- a/lib/libc/arch/powerpc/sys/sigpending.S
+++ b/lib/libc/arch/powerpc/sys/sigpending.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: sigpending.S,v 1.7 2020/10/26 22:07:05 gkoehler Exp $ */
+/* $OpenBSD: sigpending.S,v 1.8 2020/11/28 19:49:30 gkoehler Exp $ */
/*
* Copyright (c) 2012 Mark Kettenis
*
@@ -21,12 +21,12 @@
.text
SYSENTRY(sigpending)
- RETGUARD_SETUP(sigpending)
+ RETGUARD_SETUP(sigpending, %r11, %r12)
mr %r5, %r3
li %r0, SYS_sigpending
sc
stw %r3, 0(%r5)
li %r3, 0
- RETGUARD_CHECK(sigpending)
+ RETGUARD_CHECK(sigpending, %r11, %r12)
blr
SYSCALL_END(sigpending)
diff --git a/lib/libc/arch/powerpc/sys/sigprocmask.S b/lib/libc/arch/powerpc/sys/sigprocmask.S
index 57b0987b542..bb21c0ca741 100644
--- a/lib/libc/arch/powerpc/sys/sigprocmask.S
+++ b/lib/libc/arch/powerpc/sys/sigprocmask.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: sigprocmask.S,v 1.13 2020/10/26 22:07:06 gkoehler Exp $ */
+/* $OpenBSD: sigprocmask.S,v 1.14 2020/11/28 19:49:30 gkoehler Exp $ */
/*
* Copyright (c) 1996 Dale Rahn
@@ -31,7 +31,7 @@
.text
SYSENTRY_HIDDEN(sigprocmask)
- RETGUARD_SETUP(sigprocmask)
+ RETGUARD_SETUP(sigprocmask, %r11, %r12)
stwu 1, -16(1)
stw 5, 12(1)
@@ -64,6 +64,6 @@ SYSENTRY_HIDDEN(sigprocmask)
li 3, 0
addi 1, 1, 16
.L_end:
- RETGUARD_CHECK(sigprocmask)
+ RETGUARD_CHECK(sigprocmask, %r11, %r12)
blr
SYSCALL_END_HIDDEN(sigprocmask)
diff --git a/lib/libc/arch/powerpc/sys/sigsuspend.S b/lib/libc/arch/powerpc/sys/sigsuspend.S
index 822345dd448..1c0f2372fff 100644
--- a/lib/libc/arch/powerpc/sys/sigsuspend.S
+++ b/lib/libc/arch/powerpc/sys/sigsuspend.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: sigsuspend.S,v 1.6 2020/10/26 22:07:06 gkoehler Exp $ */
+/* $OpenBSD: sigsuspend.S,v 1.7 2020/11/28 19:49:30 gkoehler Exp $ */
/*
* Copyright (c) 1996 Dale Rahn
@@ -31,7 +31,7 @@
.text
SYSENTRY_HIDDEN(sigsuspend)
- RETGUARD_SETUP(sigsuspend)
+ RETGUARD_SETUP(sigsuspend, %r11, %r12)
li %r0, SYS_sigsuspend
lwz %r3, 0(%r3) /* load the mask */
@@ -42,6 +42,6 @@ SYSENTRY_HIDDEN(sigsuspend)
stw %r0, R2_OFFSET_ERRNO(2)
li %r3, -1
.L_ret:
- RETGUARD_CHECK(sigsuspend)
+ RETGUARD_CHECK(sigsuspend, %r11, %r12)
blr
SYSCALL_END_HIDDEN(sigsuspend)
diff --git a/lib/libc/arch/powerpc/sys/tfork_thread.S b/lib/libc/arch/powerpc/sys/tfork_thread.S
index b33ef21c937..a90bd4ec390 100644
--- a/lib/libc/arch/powerpc/sys/tfork_thread.S
+++ b/lib/libc/arch/powerpc/sys/tfork_thread.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: tfork_thread.S,v 1.9 2020/10/26 22:07:06 gkoehler Exp $ */
+/* $OpenBSD: tfork_thread.S,v 1.10 2020/11/28 19:49:30 gkoehler Exp $ */
/*
* Copyright (c) 2005 Tim Wiess <tim@nop.cx>
@@ -19,7 +19,7 @@
#include "SYS.h"
ENTRY(__tfork_thread)
- RETGUARD_SETUP(__tfork_thread)
+ RETGUARD_SETUP(__tfork_thread, %r11, %r12)
/* call __tfork */
li %r0, SYS___tfork
sc
@@ -45,6 +45,6 @@ ENTRY(__tfork_thread)
stw 0, R2_OFFSET_ERRNO(%r2)
li %r3, -1
9:
- RETGUARD_CHECK(__tfork_thread)
+ RETGUARD_CHECK(__tfork_thread, %r11, %r12)
blr
END(__tfork_thread)