From fa2e2e3c81b2686229acc204ece380953a8031ea Mon Sep 17 00:00:00 2001 From: Robert Morris Date: Fri, 26 Jul 2019 09:38:22 -0400 Subject: uservec before userret in trampoline, to match book and kernelvec --- kernel/kernelvec.S | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'kernel/kernelvec.S') diff --git a/kernel/kernelvec.S b/kernel/kernelvec.S index 9aabe96..222b172 100644 --- a/kernel/kernelvec.S +++ b/kernel/kernelvec.S @@ -8,8 +8,10 @@ .globl kernelvec .align 4 kernelvec: + // make room to save registers. addi sp, sp, -256 + // save the registers. sd ra, 0(sp) sd sp, 8(sp) sd gp, 16(sp) @@ -42,8 +44,10 @@ kernelvec: sd t5, 232(sp) sd t6, 240(sp) + // call the C trap handler in trap.c call kerneltrap + // restore registers. ld ra, 0(sp) ld sp, 8(sp) ld gp, 16(sp) @@ -78,6 +82,7 @@ kernelvec: addi sp, sp, 256 + // return to whatever we were doing in the kernel. sret # -- cgit v1.2.3