summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2018-07-10 16:01:27 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2018-07-10 16:01:27 +0000
commit170337a2e5dad781c35dbe77f15f5b07d3f988c1 (patch)
treec48a1f05be998269703cfd4631c1a7fc69b83f2f /sys
parent2bd710f5b4fe8036d1371d1b47d23a1eae9e0d02 (diff)
In asm.h ensure NENTRY uses the old-school nop-sled align, but change standard
ENTRY is a trapsled. Fix a few functions which fall-through into an ENTRY macro. amd64 binaries now are free of double+-nop sequences (except for one assember nit in aes-586.pl). Previous changes by guenther got us here. ok mortimer kettenis
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/amd64/amd64/locore.S4
-rw-r--r--sys/arch/amd64/amd64/locore0.S4
-rw-r--r--sys/arch/amd64/amd64/spl.S4
-rw-r--r--sys/arch/amd64/amd64/vector.S4
-rw-r--r--sys/arch/amd64/include/asm.h8
-rw-r--r--sys/lib/libkern/arch/amd64/htonl.S4
-rw-r--r--sys/lib/libkern/arch/amd64/htons.S4
-rw-r--r--sys/lib/libkern/arch/amd64/memmove.S2
8 files changed, 14 insertions, 20 deletions
diff --git a/sys/arch/amd64/amd64/locore.S b/sys/arch/amd64/amd64/locore.S
index b1f85ab6137..05ec5fb2d37 100644
--- a/sys/arch/amd64/amd64/locore.S
+++ b/sys/arch/amd64/amd64/locore.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.S,v 1.103 2018/07/03 23:21:15 mortimer Exp $ */
+/* $OpenBSD: locore.S,v 1.104 2018/07/10 16:01:26 deraadt Exp $ */
/* $NetBSD: locore.S,v 1.13 2004/03/25 18:33:17 drochner Exp $ */
/*
@@ -128,8 +128,6 @@
* override user-land alignment before including asm.h
*/
#define ALIGN_DATA .align 8,0xcc
-#define ALIGN_TEXT .align 16,0x90
-#define _ALIGN_TEXT ALIGN_TEXT
#include <machine/asm.h>
diff --git a/sys/arch/amd64/amd64/locore0.S b/sys/arch/amd64/amd64/locore0.S
index 662b58fb5bc..67f6f75ea99 100644
--- a/sys/arch/amd64/amd64/locore0.S
+++ b/sys/arch/amd64/amd64/locore0.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore0.S,v 1.8 2018/05/22 15:55:30 guenther Exp $ */
+/* $OpenBSD: locore0.S,v 1.9 2018/07/10 16:01:26 deraadt Exp $ */
/* $NetBSD: locore.S,v 1.13 2004/03/25 18:33:17 drochner Exp $ */
/*
@@ -116,8 +116,6 @@
* override user-land alignment before including asm.h
*/
#define ALIGN_DATA .align 8,0xcc
-#define ALIGN_TEXT .align 16,0x90
-#define _ALIGN_TEXT ALIGN_TEXT
#include <machine/asm.h>
diff --git a/sys/arch/amd64/amd64/spl.S b/sys/arch/amd64/amd64/spl.S
index 063dbe7db81..c4782552d5c 100644
--- a/sys/arch/amd64/amd64/spl.S
+++ b/sys/arch/amd64/amd64/spl.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: spl.S,v 1.16 2018/07/03 23:21:15 mortimer Exp $ */
+/* $OpenBSD: spl.S,v 1.17 2018/07/10 16:01:26 deraadt Exp $ */
/* $NetBSD: spl.S,v 1.3 2004/06/28 09:13:11 fvdl Exp $ */
/*
@@ -65,8 +65,6 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#define ALIGN_TEXT .align 16,0x90
-
#include <machine/asm.h>
#include <machine/psl.h>
#include <machine/trap.h>
diff --git a/sys/arch/amd64/amd64/vector.S b/sys/arch/amd64/amd64/vector.S
index d9c42d5b03c..0dc7f2e5dd7 100644
--- a/sys/arch/amd64/amd64/vector.S
+++ b/sys/arch/amd64/amd64/vector.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: vector.S,v 1.70 2018/07/10 08:57:44 guenther Exp $ */
+/* $OpenBSD: vector.S,v 1.71 2018/07/10 16:01:26 deraadt Exp $ */
/* $NetBSD: vector.S,v 1.5 2004/06/28 09:13:11 fvdl Exp $ */
/*
@@ -65,8 +65,6 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#define ALIGN_TEXT .align 16,0x90
-
#include <machine/param.h>
#include <machine/i8259.h>
#include <machine/i82093reg.h>
diff --git a/sys/arch/amd64/include/asm.h b/sys/arch/amd64/include/asm.h
index 110beb7c5c3..0ef11752c02 100644
--- a/sys/arch/amd64/include/asm.h
+++ b/sys/arch/amd64/include/asm.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: asm.h,v 1.13 2018/07/01 16:02:12 guenther Exp $ */
+/* $OpenBSD: asm.h,v 1.14 2018/07/10 16:01:26 deraadt Exp $ */
/* $NetBSD: asm.h,v 1.2 2003/05/02 18:05:47 yamt Exp $ */
/*-
@@ -66,6 +66,8 @@
#define _ALIGN_TRAPS .align 16, 0xcc
#define _ENTRY(x) \
+ .text; _ALIGN_TRAPS; .globl x; .type x,@function; x:
+#define _NENTRY(x) \
.text; _ALIGN_TEXT; .globl x; .type x,@function; x:
#ifdef _KERNEL
@@ -137,8 +139,8 @@
#endif
#define ENTRY(y) _ENTRY(_C_LABEL(y)); _PROF_PROLOGUE
-#define NENTRY(y) _ENTRY(_C_LABEL(y))
-#define ASENTRY(y) _ENTRY(_ASM_LABEL(y)); _PROF_PROLOGUE
+#define NENTRY(y) _NENTRY(_C_LABEL(y))
+#define ASENTRY(y) _NENTRY(_ASM_LABEL(y)); _PROF_PROLOGUE
#define END(y) .size y, . - y
#define STRONG_ALIAS(alias,sym) \
diff --git a/sys/lib/libkern/arch/amd64/htonl.S b/sys/lib/libkern/arch/amd64/htonl.S
index f7d640521d1..07965cd1fd9 100644
--- a/sys/lib/libkern/arch/amd64/htonl.S
+++ b/sys/lib/libkern/arch/amd64/htonl.S
@@ -41,8 +41,8 @@
#include <machine/asm.h>
_ENTRY(_C_LABEL(htonl))
-_ENTRY(_C_LABEL(ntohl))
-_ENTRY(_C_LABEL(bswap32))
+_NENTRY(_C_LABEL(ntohl))
+_NENTRY(_C_LABEL(bswap32))
_PROF_PROLOGUE
RETGUARD_SETUP(htonl, r11)
movl %edi,%eax
diff --git a/sys/lib/libkern/arch/amd64/htons.S b/sys/lib/libkern/arch/amd64/htons.S
index 15016f5736e..3a702594733 100644
--- a/sys/lib/libkern/arch/amd64/htons.S
+++ b/sys/lib/libkern/arch/amd64/htons.S
@@ -41,8 +41,8 @@
#include <machine/asm.h>
_ENTRY(_C_LABEL(htons))
-_ENTRY(_C_LABEL(ntohs))
-_ENTRY(_C_LABEL(bswap16))
+_NENTRY(_C_LABEL(ntohs))
+_NENTRY(_C_LABEL(bswap16))
_PROF_PROLOGUE
RETGUARD_SETUP(htons, r11)
movl %edi,%eax
diff --git a/sys/lib/libkern/arch/amd64/memmove.S b/sys/lib/libkern/arch/amd64/memmove.S
index 3a0bed88790..71d5b007f41 100644
--- a/sys/lib/libkern/arch/amd64/memmove.S
+++ b/sys/lib/libkern/arch/amd64/memmove.S
@@ -44,7 +44,7 @@ ENTRY(bcopy)
xchgq %rdi,%rsi
/* fall into memmove */
-ENTRY(memmove)
+NENTRY(memmove)
RETGUARD_SETUP(memmove, r10)
movq %rdi,%r11 /* save dest */
movq %rdx,%rcx