diff options
author | Andrew Waterman <andrew@sifive.com> | 2021-03-29 16:49:29 -0700 |
---|---|---|
committer | Andrew Waterman <andrew@sifive.com> | 2021-03-29 16:58:42 -0700 |
commit | fe4118a6918b7829f96f42944522da79564a1393 (patch) | |
tree | 8b773647c83062d25d8a7ef4cc24aac8f75777fa | |
parent | c09d4af850ff8b502b5efd4de1aac39fcbc63618 (diff) | |
download | pk-fe4118a6918b7829f96f42944522da79564a1393.zip pk-fe4118a6918b7829f96f42944522da79564a1393.tar.gz pk-fe4118a6918b7829f96f42944522da79564a1393.tar.bz2 |
pk: remove vestigial trapframe_t::insn field
This assumes that stval is populated with the opcode on illegal
instruction exceptions. But since we're only using the opcode for
error reporting, it's OK if this assumption is violated.
-rw-r--r-- | pk/console.c | 3 | ||||
-rw-r--r-- | pk/entry.S | 4 | ||||
-rw-r--r-- | pk/handlers.c | 7 | ||||
-rw-r--r-- | pk/pk.h | 1 |
4 files changed, 1 insertions, 14 deletions
diff --git a/pk/console.c b/pk/console.c index 90742d1..475a93b 100644 --- a/pk/console.c +++ b/pk/console.c @@ -48,8 +48,7 @@ void dump_tf(trapframe_t* tf) for(int j = 0; j < 4; j++) printk("%s %lx%c", get_regname(i+j), tf->gpr[i+j], j < 3 ? ' ' : '\n'); } - printk("pc %lx va %lx insn %x sr %lx\n", tf->epc, tf->badvaddr, - (uint32_t)tf->insn, tf->status); + printk("pc %lx va/inst %lx sr %lx\n", tf->epc, tf->badvaddr, tf->status); } void do_panic(const char* s, ...) @@ -47,10 +47,6 @@ STORE t1,33*REGBYTES(x2) STORE t2,34*REGBYTES(x2) STORE t3,35*REGBYTES(x2) - - # get faulting insn, if it wasn't a fetch-related trap - li x5,-1 - STORE x5,36*REGBYTES(x2) 1: .endm diff --git a/pk/handlers.c b/pk/handlers.c index efd14f1..7216713 100644 --- a/pk/handlers.c +++ b/pk/handlers.c @@ -25,13 +25,6 @@ static void handle_store_access_fault(trapframe_t *tf) static void handle_illegal_instruction(trapframe_t* tf) { - tf->insn = *(uint16_t*)tf->epc; - int len = insn_len(tf->insn); - if (len == 4) - tf->insn |= ((uint32_t)*(uint16_t*)(tf->epc + 2) << 16); - else - kassert(len == 2); - dump_tf(tf); panic("An illegal instruction was executed!"); } @@ -17,7 +17,6 @@ typedef struct long epc; long badvaddr; long cause; - long insn; } trapframe_t; #define panic(s,...) do { do_panic(s"\n", ##__VA_ARGS__); } while(0) |