From 7b6a968c83af5c64db7b874e3b318ee2882b5cf1 Mon Sep 17 00:00:00 2001 From: Christopher Celio Date: Fri, 13 Jun 2014 02:33:32 -0700 Subject: Changes to allow spike & RTL behavior to better match each other. - EI turned off on sys_exit. - IM/IP cleared on start. - badvaddr only saved to tf on page faults. --- pk/handlers.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'pk/handlers.c') diff --git a/pk/handlers.c b/pk/handlers.c index ed499ad..00bb6de 100644 --- a/pk/handlers.c +++ b/pk/handlers.c @@ -98,12 +98,14 @@ static void handle_fault_fetch(trapframe_t* tf) void handle_fault_load(trapframe_t* tf) { + tf->badvaddr = read_csr(badvaddr); if (handle_page_fault(tf->badvaddr, PROT_READ) != 0) segfault(tf, tf->badvaddr, "load"); } void handle_fault_store(trapframe_t* tf) { + tf->badvaddr = read_csr(badvaddr); if (handle_page_fault(tf->badvaddr, PROT_WRITE) != 0) segfault(tf, tf->badvaddr, "store"); } -- cgit v1.1