diff options
-rw-r--r-- | v/entry.S | 18 | ||||
-rw-r--r-- | v/vm.c | 28 |
2 files changed, 23 insertions, 23 deletions
@@ -146,17 +146,17 @@ trap_entry: csrr t0, sstatus li t1, SSTATUS_XS and t0, t0, t1 - beqz t0, 2f + #beqz t0, 2f - # disable saving vector state for now - addi t0,sp,SIZEOF_TRAPFRAME_T_SCALAR + ## disable saving vector state for now + #addi t0,sp,SIZEOF_TRAPFRAME_T_SCALAR - vgetcfg x4 - STORE x4,0*REGBYTES(t0) - vgetvl x4 - STORE x4,1*REGBYTES(t0) - addi t0,t0,2*REGBYTES - vxcptevac t0 + #vgetcfg x4 + #STORE x4,0*REGBYTES(t0) + #vgetvl x4 + #STORE x4,1*REGBYTES(t0) + #addi t0,t0,2*REGBYTES + #vxcptevac t0 2:j handle_trap .global do_tohost @@ -196,24 +196,24 @@ void handle_trap(trapframe_t* tf) } else if (tf->cause == CAUSE_FAULT_LOAD || tf->cause == CAUSE_FAULT_STORE) handle_fault(tf->badvaddr); - else if ((long)tf->cause < 0 && (uint8_t)tf->cause == IRQ_COP) - { - if (tf->hwacha_cause == HWACHA_CAUSE_VF_FAULT_FETCH || - tf->hwacha_cause == HWACHA_CAUSE_FAULT_LOAD || - tf->hwacha_cause == HWACHA_CAUSE_FAULT_STORE) - { - long badvaddr = vxcptaux(); - handle_fault(badvaddr); - } - else - assert(!"unexpected interrupt"); - } + //else if ((long)tf->cause < 0 && (uint8_t)tf->cause == IRQ_COP) + //{ + // if (tf->hwacha_cause == HWACHA_CAUSE_VF_FAULT_FETCH || + // tf->hwacha_cause == HWACHA_CAUSE_FAULT_LOAD || + // tf->hwacha_cause == HWACHA_CAUSE_FAULT_STORE) + // { + // long badvaddr = vxcptaux(); + // handle_fault(badvaddr); + // } + // else + // assert(!"unexpected interrupt"); + //} else assert(!"unexpected exception"); out: - if (!(tf->sr & SSTATUS_PS) && (tf->sr & SSTATUS_XS)) - restore_vector(tf); + //if (!(tf->sr & SSTATUS_PS) && (tf->sr & SSTATUS_XS)) + // restore_vector(tf); pop_tf(tf); } |