Advertisement
Guest User

Untitled

a guest
Nov 29th, 2022
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 0.86 KB | None | 0 0
  1. diff --git a/kernel/src/cpu/irq_stub.S b/kernel/src/cpu/irq_stub.S
  2. index f8a05b6..5127a72 100644
  3. --- a/kernel/src/cpu/irq_stub.S
  4. +++ b/kernel/src/cpu/irq_stub.S
  5. @@ -2,6 +2,7 @@
  6.  
  7.  .macro pushall
  8.     push %rax
  9. +   push %rbx
  10.     push %rcx
  11.     push %rdx
  12.     push %rsi
  13. @@ -10,11 +11,23 @@
  14.     push %r9
  15.     push %r10
  16.     push %r11
  17. -   pushfq
  18. +   push %r12
  19. +   push %r13
  20. +   push %r14
  21. +   push %r15
  22. +   mov %ds, %ax
  23. +   push %rax
  24. +   mov 0x80(%rsp), %rax
  25.  .endm
  26.  
  27.  .macro popall
  28. -   popfq
  29. +   pop %rax
  30. +   mov %ax, %ds
  31. +   mov %ax, %es
  32. +   pop %r15
  33. +   pop %r14
  34. +   pop %r13
  35. +   pop %r12
  36.     pop %r11
  37.     pop %r10
  38.     pop %r9
  39. @@ -23,6 +36,7 @@
  40.     pop %rsi
  41.     pop %rdx
  42.     pop %rcx
  43. +   pop %rbx
  44.     pop %rax
  45.  .endm
  46.  
  47. @@ -41,7 +55,7 @@ isr\number:
  48.  .global isr\number
  49.  isr\number:
  50.     pushall
  51. -   mov 0x50(%rsp), %rdi
  52. +   mov 0x78(%rsp), %rdi
  53.     cld
  54.     mov %rsp, panic_rsp
  55.     call isr\number\()_handler
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement