diff options
author | Tom Cosgrove <tom@cvs.openbsd.org> | 2007-02-09 19:49:48 +0000 |
---|---|---|
committer | Tom Cosgrove <tom@cvs.openbsd.org> | 2007-02-09 19:49:48 +0000 |
commit | f62a80883d8cd6622cdedf4e057454ed507684eb (patch) | |
tree | 0d7c87503b157999d21c9237aa39d5d18b2f2c37 /sys/arch/i386 | |
parent | 12603d395904b8bd90dea3acac1a329b10c4c0f3 (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/i386')
-rw-r--r-- | sys/arch/i386/i386/vector.s | 5 |
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 */ ;\ |