summaryrefslogtreecommitdiff
path: root/stage3/isr.lua
diff options
context:
space:
mode:
Diffstat (limited to 'stage3/isr.lua')
-rw-r--r--stage3/isr.lua13
1 files changed, 8 insertions, 5 deletions
diff --git a/stage3/isr.lua b/stage3/isr.lua
index 3c88c5e..4810f01 100644
--- a/stage3/isr.lua
+++ b/stage3/isr.lua
@@ -6,6 +6,13 @@ for _, x in pairs({8, 10, 11, 12, 13, 14, 17, 21, 29, 30}) do
has_error_code[x] = true
end
+print("section .data")
+print("idt_entries:")
+for i = 0, 255 do
+ print("dq isr_"..i)
+end
+
+print("section .text")
for i = 0, 255 do
print("isr_" .. i .. ":")
print("cli")
@@ -18,11 +25,6 @@ for i = 0, 255 do
print("jmp isr_common")
end
-print("idt_entries:")
-for i = 0, 255 do
- print("dq isr_"..i)
-end
-
print([[
isr_common:
push r15
@@ -42,6 +44,7 @@ isr_common:
push rax
cld
+ xor rbp, rbp
mov rdi, rsp
call interrupt_handler