diff options
Diffstat (limited to 'sys/arch/i386/isa/icu.s')
-rw-r--r-- | sys/arch/i386/isa/icu.s | 20 |
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) |