diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2025-07-19 10:22:31 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2025-07-19 10:22:31 +0200 |
commit | 288163f2e010709888a9bc358307cf9863973e16 (patch) | |
tree | b8b95ed449f2cf2599be3903c4e0f15610538650 | |
parent | e7ab1c0d68c695c57388625c1354d3f3955deda7 (diff) |
-rw-r--r-- | i386/i386at/interrupt.S | 5 | ||||
-rw-r--r-- | x86_64/interrupt.S | 6 |
2 files changed, 4 insertions, 7 deletions
diff --git a/i386/i386at/interrupt.S b/i386/i386at/interrupt.S index ac71473b..164b0939 100644 --- a/i386/i386at/interrupt.S +++ b/i386/i386at/interrupt.S @@ -124,11 +124,10 @@ _call_handler: movl S_IRQ,%eax /* copy irq number */ - shll $2,%eax /* irq * 4 */ - movl EXT(iunit)(%eax),%edx /* get device unit number */ + movl EXT(iunit)(,%eax,4),%edx /* get device unit number */ movl %edx,(%esp) /* unit number as 1st arg */ - call *EXT(ivect)(%eax) /* call interrupt handler */ + call *EXT(ivect)(,%eax,4) /* call interrupt handler */ movl S_IRQ,%ecx /* restore irq number */ movb EXT(irqinfo)(,%ecx,2),%al /* look up irq_info[irq].trigger */ diff --git a/x86_64/interrupt.S b/x86_64/interrupt.S index 6c0b4e02..4b2d0482 100644 --- a/x86_64/interrupt.S +++ b/x86_64/interrupt.S @@ -123,11 +123,9 @@ _call_handler: movq S_REGS,S_ARG3 /* address of interrupted registers as 4th arg */ movl S_IRQ,%eax /* copy irq number */ - shll $2,%eax /* irq * 4 */ - movl EXT(iunit)(%rax),%edi /* get device unit number as 1st arg */ + movl EXT(iunit)(,%rax,4),%edi /* get device unit number as 1st arg */ - shll $1,%eax /* irq * 8 */ - call *EXT(ivect)(%rax) /* call interrupt handler */ + call *EXT(ivect)(,%rax,8) /* call interrupt handler */ movl S_IRQ,%ecx movb EXT(irqinfo)(,%rcx,2),%al /* look up irq_info[irq].trigger */ |