From 5b4eb413c2620d4f29af1a8954871a74be8dee25 Mon Sep 17 00:00:00 2001 From: Srivatsa Yogendra <36861801+srivatsa611y@users.noreply.github.com> Date: Tue, 21 Aug 2018 13:14:07 -0700 Subject: Changing the register mstatus is read into (#152) The mstatus reading overwrites the expected user mode cause value. --- isa/rv64si/scall.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'isa/rv64si/scall.S') diff --git a/isa/rv64si/scall.S b/isa/rv64si/scall.S index 0579806..82f202a 100644 --- a/isa/rv64si/scall.S +++ b/isa/rv64si/scall.S @@ -34,8 +34,8 @@ RVTEST_CODE_BEGIN # Otherwise, if in S mode, then U mode must exist and we don't need to check. li t0, MSTATUS_MPP csrc mstatus, t0 - csrr t1, mstatus - and t0, t0, t1 + csrr t2, mstatus + and t0, t0, t2 beqz t0, 1f # If U mode doesn't exist, mcause should indicate ECALL from M mode. -- cgit v1.1