diff options
author | Robert Morris <[email protected]> | 2019-07-26 09:38:22 -0400 |
---|---|---|
committer | Robert Morris <[email protected]> | 2019-07-26 09:38:22 -0400 |
commit | fa2e2e3c81b2686229acc204ece380953a8031ea (patch) | |
tree | 67c055fc880e8d286124814fff649c170434ea3e /kernel/kernelvec.S | |
parent | 8d30e21b59d2f6d48e593cd6c2399d0743971155 (diff) | |
download | xv6-labs-fa2e2e3c81b2686229acc204ece380953a8031ea.tar.gz xv6-labs-fa2e2e3c81b2686229acc204ece380953a8031ea.tar.bz2 xv6-labs-fa2e2e3c81b2686229acc204ece380953a8031ea.zip |
uservec before userret in trampoline, to match book and kernelvec
Diffstat (limited to 'kernel/kernelvec.S')
-rw-r--r-- | kernel/kernelvec.S | 5 |
1 files changed, 5 insertions, 0 deletions
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 # |