diff --git a/sys/arch/shark/isa/isa_irq.S b/sys/arch/shark/isa/isa_irq.S index 9699b1a6e323..a5814066554e 100644 --- a/sys/arch/shark/isa/isa_irq.S +++ b/sys/arch/shark/isa/isa_irq.S @@ -1,4 +1,4 @@ -/* $NetBSD: isa_irq.S,v 1.7 2007/03/09 19:21:59 thorpej Exp $ */ +/* $NetBSD: isa_irq.S,v 1.8 2007/08/13 01:55:31 tsutsui Exp $ */ /* * Copyright 1997 @@ -297,9 +297,6 @@ nextirq: /* NOT REACHED */ b . - 8 -Lspl_mask: - .word _C_LABEL(spl_mask) /* irq's allowed at current spl level */ - Lcurrent_mask: .word _C_LABEL(current_mask) /* irq's that are usable */ @@ -318,8 +315,10 @@ ENTRY(irq_setmasks) ldr r1, Lcurrent_mask /* All the enabled interrupts */ ldrh r1, [r1] /* get hardware bits of mask */ /* .word 0xe0d110b0 */ /* hand-assembled ldrh r1, [r1] */ - ldr r2, Lspl_mask /* Block due to current spl level */ + ldr r0, Lspl_masks + ldr r2, Lcurrent_spl_level ldr r2, [r2] + ldr r2, [r0, r2, lsl #2] and r1, r1, r2 ldr r2, Ldisabled_mask /* Block due to active interrupts */ ldr r2, [r2]