diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-07-02 15:23:21 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-07-02 15:23:21 +0000 |
commit | 51e11d9e6c8deea88ba2d24c8a04102c787cdd19 (patch) | |
tree | e0de99437812f99d6b5dcc78be064434d2844eb0 /target-mips | |
parent | 90b37806ba1a09b77dc6245ac34dabbceba555df (diff) | |
download | qemu-51e11d9e6c8deea88ba2d24c8a04102c787cdd19.zip qemu-51e11d9e6c8deea88ba2d24c8a04102c787cdd19.tar.gz qemu-51e11d9e6c8deea88ba2d24c8a04102c787cdd19.tar.bz2 |
fixed eret insn (Ralf Baechle)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1474 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-mips')
-rw-r--r-- | target-mips/op.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/target-mips/op.c b/target-mips/op.c index 6d94be6..df76e8e 100644 --- a/target-mips/op.c +++ b/target-mips/op.c @@ -597,10 +597,13 @@ void debug_eret (void); void op_eret (void) { CALL_FROM_TB0(debug_eret); - if (env->hflags & MIPS_HFLAG_ERL) + if (env->hflags & MIPS_HFLAG_ERL) { env->PC = env->CP0_ErrorEPC; - else + env->hflags &= ~MIPS_HFLAG_ERL; + } else { env->PC = env->CP0_EPC; + env->hflags &= ~MIPS_HFLAG_EXL; + } env->CP0_LLAddr = 1; } |