add riscv asm for these two security-feature checking regress tests
authorderaadt <deraadt@openbsd.org>
Sun, 16 May 2021 03:23:48 +0000 (03:23 +0000)
committerderaadt <deraadt@openbsd.org>
Sun, 16 May 2021 03:23:48 +0000 (03:23 +0000)
with drahn

regress/sys/kern/noexec/Makefile
regress/sys/kern/noexec/testfly.S
regress/sys/kern/stackpivot/Makefile
regress/sys/kern/stackpivot/pivot.h

index 96103c3..f2717bb 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: Makefile,v 1.22 2020/12/17 00:51:12 bluhm Exp $
+#      $OpenBSD: Makefile,v 1.23 2021/05/16 03:23:48 deraadt Exp $
 
 PROG=          noexec
 SRCS=          noexec.c testfly.S
@@ -69,6 +69,7 @@ nxmmap-mprotect: ${PROG}
     ${MACHINE} != "i386" && \
     ${MACHINE} != "octeon" && \
     ${MACHINE} != "powerpc64" && \
+    ${MACHINE} != "riscv64" && \
     ${MACHINE} != "sparc64"
 REGRESS_TARGETS=run-regress-skiparch
 run-regress-skiparch:
index 46faa42..3fabe27 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: testfly.S,v 1.8 2020/07/06 07:31:19 kettenis Exp $    */
+/*     $OpenBSD: testfly.S,v 1.9 2021/05/16 03:23:48 deraadt Exp $     */
 
 /*
  * Copyright (c) 2002,2003 Michael Shalayeff
@@ -65,6 +65,12 @@ LEAF(testfly, 0)
 END(testfly)
 #endif
 
+#ifdef __riscv64
+ENTRY(testfly)
+       jr      ra
+END(testfly)
+#endif
+
 #ifdef __powerpc__
 ENTRY(testfly)
        blr
index a9f963d..fa6f245 100644 (file)
@@ -3,6 +3,7 @@
     ${MACHINE} != "amd64" && \
     ${MACHINE} != "i386" && \
     ${MACHINE} != "powerpc64" && \
+    ${MACHINE} != "riscv64" && \
     ${MACHINE_ARCH} != "powerpc" && \
     ${MACHINE_ARCH} != "mips64" && \
     ${MACHINE_ARCH} != "mips64el"
index eec5352..fe87baa 100644 (file)
@@ -14,6 +14,8 @@ static void pivot(void *newstack) {
     asm("mr %%r1, %0; ld %%r3, 0(%%r1); mtlr %%r3; blr;" ::"r"(newstack));
 #elif defined(__powerpc__)
     asm("mr %%r1, %0; lwz %%r3, 0(%%r1); mtlr %%r3; blr;" ::"r"(newstack));
+#elif defined(__riscv)
+    asm("mv sp, %0; ld ra, 0(sp); jr ra" ::"r"(newstack));
 #endif
 }