diff options
Diffstat (limited to 'c/src/lib/libbsp/i386/shared/irq/irq_asm.S')
-rw-r--r-- | c/src/lib/libbsp/i386/shared/irq/irq_asm.S | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/i386/shared/irq/irq_asm.S b/c/src/lib/libbsp/i386/shared/irq/irq_asm.S index e644e7587c..a0a00e944c 100644 --- a/c/src/lib/libbsp/i386/shared/irq/irq_asm.S +++ b/c/src/lib/libbsp/i386/shared/irq/irq_asm.S @@ -76,6 +76,8 @@ SYM (_ISR_Handler): movl ebx, EBX_OFF(esp) movl eax, ESP_OFF(esp) movl ebp, EBP_OFF(esp) + movw SYM (i8259s_cache), ax /* save current i8259 interrupt mask */ + movl eax, MSK_OFF(esp) /* save in stack frame */ #ifdef __SSE__ /* NOTE: SSE only is supported if the BSP enables fxsave/fxrstor @@ -142,8 +144,7 @@ nested: /* * acknowledge the interrupt */ - movw SYM (i8259s_cache), ax /* save current i8259 interrupt mask */ - movl eax, MSK_OFF(esp) /* save in stack frame */ + movw SYM (i8259s_cache), ax /* fetch current i8259 interrupt mask */ /* * compute the new PIC mask: |