summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorTom Cosgrove <tom@cvs.openbsd.org>2007-02-09 19:49:48 +0000
committerTom Cosgrove <tom@cvs.openbsd.org>2007-02-09 19:49:48 +0000
commitf62a80883d8cd6622cdedf4e057454ed507684eb (patch)
tree0d7c87503b157999d21c9237aa39d5d18b2f2c37 /sys/arch
parent12603d395904b8bd90dea3acac1a329b10c4c0f3 (diff)
Don't both reloading the CPL into %eax before pushing it onto the stack,
since it's already in %ebx. (And %eax is reloaded immediately after the push, so CPL not needed in %eax.) Saves one load every interrupt. ok dim@, gwk@
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/i386/i386/vector.s5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/arch/i386/i386/vector.s b/sys/arch/i386/i386/vector.s
index 78052d1f95d..d8c84c8d8d5 100644
--- a/sys/arch/i386/i386/vector.s
+++ b/sys/arch/i386/i386/vector.s
@@ -1,4 +1,4 @@
-/* $OpenBSD: vector.s,v 1.8 2006/06/12 04:41:30 gwk Exp $ */
+/* $OpenBSD: vector.s,v 1.9 2007/02/09 19:49:47 tom Exp $ */
/* $NetBSD: vector.s,v 1.32 1996/01/07 21:29:47 mycroft Exp $ */
/*
@@ -114,8 +114,7 @@ _C_LABEL(Xintr_/**/name/**/num): ;\
movl CPL,%ebx ;\
cmpl %eax,%ebx ;\
jae _C_LABEL(Xhold_/**/name/**/num)/* currently masked; hold it */;\
- movl CPL,%eax /* cpl to restore on exit */ ;\
- pushl %eax ;\
+ pushl %ebx /* cpl to restore on exit */ ;\
1: ;\
movl _C_LABEL(imaxlevel) + (num) * 4,%eax ;\
movl %eax,CPL /* block enough for this irq */ ;\