diff options
author | 2020-11-28 19:49:30 +0000 | |
---|---|---|
committer | 2020-11-28 19:49:30 +0000 | |
commit | 15572fcf8c6bfa0588565cd23f393a5a1499ea57 (patch) | |
tree | a41513c79b27dd0f2180dbab6506b34caf86aa35 /lib/libc | |
parent | Since our IPI broadcast functions exclude the CPU doing the broadcast, we (diff) | |
download | wireguard-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.h | 10 | ||||
-rw-r--r-- | lib/libc/arch/powerpc/string/ffs.S | 6 | ||||
-rw-r--r-- | lib/libc/arch/powerpc/string/memmove.S | 8 | ||||
-rw-r--r-- | lib/libc/arch/powerpc/sys/sigpending.S | 6 | ||||
-rw-r--r-- | lib/libc/arch/powerpc/sys/sigprocmask.S | 6 | ||||
-rw-r--r-- | lib/libc/arch/powerpc/sys/sigsuspend.S | 6 | ||||
-rw-r--r-- | lib/libc/arch/powerpc/sys/tfork_thread.S | 6 |
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) |