Module Name: src
Committed By: joerg
Date: Fri Mar 18 15:18:16 UTC 2011
Modified Files:
src/sys/arch/amd64/amd64: spl.S vector.S
src/sys/arch/i386/i386: locore.S spl.S vector.S
Log Message:
Remove static branch prediction hints. They pessimize code for all CPUs
but Pentium IV. Discussed with ad@ and dsl@
To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 src/sys/arch/amd64/amd64/spl.S
cvs rdiff -u -r1.36 -r1.37 src/sys/arch/amd64/amd64/vector.S
cvs rdiff -u -r1.94 -r1.95 src/sys/arch/i386/i386/locore.S
cvs rdiff -u -r1.35 -r1.36 src/sys/arch/i386/i386/spl.S
cvs rdiff -u -r1.56 -r1.57 src/sys/arch/i386/i386/vector.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/amd64/amd64/spl.S
diff -u src/sys/arch/amd64/amd64/spl.S:1.23 src/sys/arch/amd64/amd64/spl.S:1.24
--- src/sys/arch/amd64/amd64/spl.S:1.23 Fri Nov 27 03:23:04 2009
+++ src/sys/arch/amd64/amd64/spl.S Fri Mar 18 15:18:16 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: spl.S,v 1.23 2009/11/27 03:23:04 rmind Exp $ */
+/* $NetBSD: spl.S,v 1.24 2011/03/18 15:18:16 joerg Exp $ */
/*
* Copyright (c) 2003 Wasabi Systems, Inc.
@@ -229,7 +229,7 @@
movl CPUVAR(ILEVEL),%edx
movq %rbx,%r8
cmpl %edx,%edi /* new level is lower? */
- jae,pn 1f
+ jae 1f
0:
movl CPUVAR(IPENDING),%eax
movl %edi,%ecx
@@ -239,9 +239,9 @@
* On the P4 this jump is cheaper than patching in junk
* using cmov. Is cmpxchg expensive if it fails?
*/
- jnz,pn 2f
+ jnz 2f
cmpxchg8b CPUVAR(ISTATE) /* swap in new ilevel */
- jnz,pn 0b
+ jnz 0b
1:
movq %r8,%rbx
ret
Index: src/sys/arch/amd64/amd64/vector.S
diff -u src/sys/arch/amd64/amd64/vector.S:1.36 src/sys/arch/amd64/amd64/vector.S:1.37
--- src/sys/arch/amd64/amd64/vector.S:1.36 Wed Jan 12 23:12:11 2011
+++ src/sys/arch/amd64/amd64/vector.S Fri Mar 18 15:18:16 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: vector.S,v 1.36 2011/01/12 23:12:11 joerg Exp $ */
+/* $NetBSD: vector.S,v 1.37 2011/03/18 15:18:16 joerg Exp $ */
/*-
* Copyright (c) 1998, 2007, 2008 The NetBSD Foundation, Inc.
@@ -579,7 +579,7 @@
movq _C_LABEL(pmap_mbox)+MB_GLOBAL, %rdi
movl $0, _C_LABEL(local_apic)+LAPIC_EOI
cmpq $-1, %rax
- je,pn 3f
+ je 3f
1:
/* Invalidate a single page or a range of pages. */
invlpg (%rax)
Index: src/sys/arch/i386/i386/locore.S
diff -u src/sys/arch/i386/i386/locore.S:1.94 src/sys/arch/i386/i386/locore.S:1.95
--- src/sys/arch/i386/i386/locore.S:1.94 Mon Dec 20 00:25:35 2010
+++ src/sys/arch/i386/i386/locore.S Fri Mar 18 15:18:16 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.S,v 1.94 2010/12/20 00:25:35 matt Exp $ */
+/* $NetBSD: locore.S,v 1.95 2011/03/18 15:18:16 joerg Exp $ */
/*
* Copyright-o-rama!
@@ -129,7 +129,7 @@
*/
#include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.94 2010/12/20 00:25:35 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.95 2011/03/18 15:18:16 joerg Exp $");
#include "opt_compat_oldboot.h"
#include "opt_ddb.h"
@@ -1023,7 +1023,7 @@
/* Switch I/O bitmap */
movl PCB_IOMAP(%ebx),%eax
orl %eax,%eax
- jnz,pn .Lcopy_iobitmap
+ jnz .Lcopy_iobitmap
movl $(IOMAP_INVALOFF << 16),CPUVAR(IOBASE)
.Liobitmap_done:
Index: src/sys/arch/i386/i386/spl.S
diff -u src/sys/arch/i386/i386/spl.S:1.35 src/sys/arch/i386/i386/spl.S:1.36
--- src/sys/arch/i386/i386/spl.S:1.35 Fri Nov 27 03:23:10 2009
+++ src/sys/arch/i386/i386/spl.S Fri Mar 18 15:18:16 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: spl.S,v 1.35 2009/11/27 03:23:10 rmind Exp $ */
+/* $NetBSD: spl.S,v 1.36 2011/03/18 15:18:16 joerg Exp $ */
/*
* Copyright (c) 1998, 2007, 2008 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: spl.S,v 1.35 2009/11/27 03:23:10 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: spl.S,v 1.36 2011/03/18 15:18:16 joerg Exp $");
#include "opt_vm86.h"
#include "opt_ddb.h"
@@ -123,14 +123,14 @@
movl CPUVAR(ILEVEL),%edx
cmpl %edx,%ecx /* new level is lower? */
pushl %ebx
- jae,pn 1f
+ jae 1f
0:
movl CPUVAR(IPENDING),%eax
testl %eax,CPUVAR(IUNMASK)(,%ecx,4) /* deferred interrupts? */
movl %eax,%ebx
- jnz,pn 2f
+ jnz 2f
cmpxchg8b CPUVAR(ISTATE) /* swap in new ilevel */
- jnz,pn 0b
+ jnz 0b
1:
popl %ebx
ret
Index: src/sys/arch/i386/i386/vector.S
diff -u src/sys/arch/i386/i386/vector.S:1.56 src/sys/arch/i386/i386/vector.S:1.57
--- src/sys/arch/i386/i386/vector.S:1.56 Wed Jan 12 23:12:12 2011
+++ src/sys/arch/i386/i386/vector.S Fri Mar 18 15:18:16 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: vector.S,v 1.56 2011/01/12 23:12:12 joerg Exp $ */
+/* $NetBSD: vector.S,v 1.57 2011/03/18 15:18:16 joerg Exp $ */
/*
* Copyright 2002 (c) Wasabi Systems, Inc.
@@ -65,7 +65,7 @@
*/
#include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: vector.S,v 1.56 2011/01/12 23:12:12 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vector.S,v 1.57 2011/03/18 15:18:16 joerg Exp $");
#include "opt_ddb.h"
#include "opt_multiprocessor.h"
@@ -280,7 +280,7 @@
movl %ss:_C_LABEL(pmap_mbox)+MB_GLOBAL, %ebx
movl $0, %ss:_C_LABEL(local_apic)+LAPIC_EOI
cmpl $-1, %eax
- je,pn 3f
+ je 3f
1:
/* Invalidate a single page or a range of pages. */
invlpg %ss:(%eax)