diff options
Diffstat (limited to 'arch/x86_64/ivt.s')
-rw-r--r-- | arch/x86_64/ivt.s | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/arch/x86_64/ivt.s b/arch/x86_64/ivt.s index d2d504b..0005686 100644 --- a/arch/x86_64/ivt.s +++ b/arch/x86_64/ivt.s @@ -18,6 +18,8 @@ __isr_head: call isr_handle popall + + addq $16, %rsp iretq .extern __isr_err @@ -26,12 +28,7 @@ __isr_head: .macro defn_isr_err num:req .type __isr\num @function __isr\num: - pushq %rbx - movq 8(%rsp), %rbx - movq %rbx, __isr_err - popq %rbx - addq $8, %rsp - movq $\num, __isr_num + pushq $\num jmp __isr_head .size __isr\num, . - __isr\num .endm @@ -39,7 +36,8 @@ __isr\num: .macro defn_isr num:req .type __isr\num @function __isr\num: - movq $\num, __isr_num + pushq $0 + pushq $\num jmp __isr_head .size __isr\num, . - __isr\num .endm |