commit 24ec31ddc58641b24fa39c1f8ce6400a3beef671
parent 1744e5d30d64b2783b0bed99d20ed41e75b8f4d4
Author: erai <erai@omiltem.net>
Date: Wed, 1 May 2024 17:54:20 -0400
Fix trap errcode
Diffstat:
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/cc1.c b/cc1.c
@@ -1350,7 +1350,7 @@ emit_isr(c: *compiler) {
as_modrm(c.as, OP_LOAD, R_RAX, R_RBP, 0, 0, 176 + 0);
as_modrm(c.as, OP_STORE, R_RAX, R_RBP, 0, 0, 160);
// err
- as_modrm(c.as, OP_LOAD, R_RAX, R_RBP, 0, 0, 176 + 0);
+ as_modrm(c.as, OP_LOAD, R_RAX, R_RBP, 0, 0, 176 + 8);
as_modrm(c.as, OP_STORE, R_RAX, R_RBP, 0, 0, 168);
// rip
as_modrm(c.as, OP_LOAD, R_RAX, R_RBP, 0, 0, 176 + 16);
diff --git a/kernel.c b/kernel.c
@@ -228,6 +228,8 @@ panic(r: *regs) {
kputh(r.rbp);
kputs(" ");
kputh(r.rsp);
+ kputs(" ");
+ kputh16(r.ss);
kputs("\n");
kputh(r.rip);
@@ -235,6 +237,10 @@ panic(r: *regs) {
kputh(r.rflags);
kputs(" ");
kputh(rdcr2());
+ kputs(" ");
+ kputh(rdcr4());
+ kputs(" ");
+ kputh16(r.cs);
kputs("\n");
loop {