summaryrefslogtreecommitdiff
path: root/sys/arch/i386/isa/icu.s
diff options
context:
space:
mode:
authorAaron Campbell <aaron@cvs.openbsd.org>2001-11-18 20:46:50 +0000
committerAaron Campbell <aaron@cvs.openbsd.org>2001-11-18 20:46:50 +0000
commited3510e3ec23ddc3fdabcc9e73813f8ef36614e8 (patch)
tree4f8baa91f7ddf04a3ca8636e81a37082d4b94cca /sys/arch/i386/isa/icu.s
parent8376e8e1fbcb5f1432e20d080b7f7e197c6a7f07 (diff)
Revert niklas's broken ICU interrupt handling changes; deraadt@ ok
Diffstat (limited to 'sys/arch/i386/isa/icu.s')
-rw-r--r--sys/arch/i386/isa/icu.s20
1 files changed, 9 insertions, 11 deletions
diff --git a/sys/arch/i386/isa/icu.s b/sys/arch/i386/isa/icu.s
index f348a10b0b9..8be1d64520b 100644
--- a/sys/arch/i386/isa/icu.s
+++ b/sys/arch/i386/isa/icu.s
@@ -1,4 +1,4 @@
-/* $OpenBSD: icu.s,v 1.16 2001/11/12 20:28:20 niklas Exp $ */
+/* $OpenBSD: icu.s,v 1.17 2001/11/18 20:46:49 aaron 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 $IPL_HIGH,%eax
+ movl $-1,%eax
xchgl %eax,_C_LABEL(cpl)
ret
@@ -72,9 +72,8 @@ IDTVEC(spllower)
pushl %edi
movl _C_LABEL(cpl),%ebx # save priority
movl $1f,%esi # address to resume loop at
-1: movl %ebx,%eax # get cpl
- shrl $4,%eax # find its mask.
- movl _C_LABEL(iunmask)(,%eax,4),%eax
+1: movl %ebx,%eax
+ notl %eax
andl _C_LABEL(ipending),%eax
jz 2f
bsfl %eax,%eax
@@ -98,9 +97,8 @@ IDTVEC(doreti)
popl %ebx # get previous priority
movl %ebx,_C_LABEL(cpl)
movl $1f,%esi # address to resume loop at
-1: movl %ebx,%eax # get cpl
- shrl $4,%eax # find its mask
- movl _C_LABEL(iunmask)(,%eax,4),%eax
+1: movl %ebx,%eax
+ notl %eax
andl _C_LABEL(ipending),%eax
jz 2f
bsfl %eax,%eax # slow, but not worth optimizing
@@ -134,7 +132,7 @@ IDTVEC(doreti)
IDTVEC(softtty)
#if NPCCOM > 0
- movl $IPL_SOFTTTY,%eax
+ leal SIR_TTYMASK(%ebx),%eax
movl %eax,_C_LABEL(cpl)
call _C_LABEL(comsoft)
movl %ebx,_C_LABEL(cpl)
@@ -149,7 +147,7 @@ IDTVEC(softtty)
1:
IDTVEC(softnet)
- movl $IPL_SOFTNET,%eax
+ leal SIR_NETMASK(%ebx),%eax
movl %eax,_C_LABEL(cpl)
xorl %edi,%edi
xchgl _C_LABEL(netisr),%edi
@@ -159,7 +157,7 @@ IDTVEC(softnet)
#undef DONETISR
IDTVEC(softclock)
- movl $IPL_SOFTCLOCK,%eax
+ leal SIR_CLOCKMASK(%ebx),%eax
movl %eax,_C_LABEL(cpl)
call _C_LABEL(softclock)
movl %ebx,_C_LABEL(cpl)