summaryrefslogtreecommitdiff
path: root/sys/arch/i386/isa/icu.s
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/i386/isa/icu.s')
-rw-r--r--sys/arch/i386/isa/icu.s20
1 files changed, 11 insertions, 9 deletions
diff --git a/sys/arch/i386/isa/icu.s b/sys/arch/i386/isa/icu.s
index a21c5ce112d..f348a10b0b9 100644
--- a/sys/arch/i386/isa/icu.s
+++ b/sys/arch/i386/isa/icu.s
@@ -1,4 +1,4 @@
-/* $OpenBSD: icu.s,v 1.15 2001/11/08 20:01:52 mickey Exp $ */
+/* $OpenBSD: icu.s,v 1.16 2001/11/12 20:28:20 niklas Exp $ */
/* $NetBSD: icu.s,v 1.45 1996/01/07 03:59:34 mycroft Exp $ */
/*-
@@ -45,7 +45,7 @@ _C_LABEL(imen):
ALIGN_TEXT
_C_LABEL(splhigh):
- movl $-1,%eax
+ movl $IPL_HIGH,%eax
xchgl %eax,_C_LABEL(cpl)
ret
@@ -72,8 +72,9 @@ IDTVEC(spllower)
pushl %edi
movl _C_LABEL(cpl),%ebx # save priority
movl $1f,%esi # address to resume loop at
-1: movl %ebx,%eax
- notl %eax
+1: movl %ebx,%eax # get cpl
+ shrl $4,%eax # find its mask.
+ movl _C_LABEL(iunmask)(,%eax,4),%eax
andl _C_LABEL(ipending),%eax
jz 2f
bsfl %eax,%eax
@@ -97,8 +98,9 @@ IDTVEC(doreti)
popl %ebx # get previous priority
movl %ebx,_C_LABEL(cpl)
movl $1f,%esi # address to resume loop at
-1: movl %ebx,%eax
- notl %eax
+1: movl %ebx,%eax # get cpl
+ shrl $4,%eax # find its mask
+ movl _C_LABEL(iunmask)(,%eax,4),%eax
andl _C_LABEL(ipending),%eax
jz 2f
bsfl %eax,%eax # slow, but not worth optimizing
@@ -132,7 +134,7 @@ IDTVEC(doreti)
IDTVEC(softtty)
#if NPCCOM > 0
- leal SIR_TTYMASK(%ebx),%eax
+ movl $IPL_SOFTTTY,%eax
movl %eax,_C_LABEL(cpl)
call _C_LABEL(comsoft)
movl %ebx,_C_LABEL(cpl)
@@ -147,7 +149,7 @@ IDTVEC(softtty)
1:
IDTVEC(softnet)
- leal SIR_NETMASK(%ebx),%eax
+ movl $IPL_SOFTNET,%eax
movl %eax,_C_LABEL(cpl)
xorl %edi,%edi
xchgl _C_LABEL(netisr),%edi
@@ -157,7 +159,7 @@ IDTVEC(softnet)
#undef DONETISR
IDTVEC(softclock)
- leal SIR_CLOCKMASK(%ebx),%eax
+ movl $IPL_SOFTCLOCK,%eax
movl %eax,_C_LABEL(cpl)
call _C_LABEL(softclock)
movl %ebx,_C_LABEL(cpl)