On 08/02/2017 06:59 AM, James Hogan wrote:
DMTC0 CP0_Cause does a redundant gen_io_start() and gen_io_end() pair,
even though this is done for all DMTC0 operations outside of the switch
statement. Remove these redundant calls.

Fixes: 5dc5d9f055c5 ("mips: more fixes to the MIPS interrupt glue logic")
Signed-off-by: James Hogan <james.ho...@imgtec.com>

Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org>

Cc: Yongbok Kim <yongbok....@imgtec.com>
Cc: Aurelien Jarno <aurel...@aurel32.net>
---
  target/mips/translate.c | 8 --------
  1 file changed, 0 insertions(+), 8 deletions(-)

diff --git a/target/mips/translate.c b/target/mips/translate.c
index 6b41f7b65e00..6e724ac71dcd 100644
--- a/target/mips/translate.c
+++ b/target/mips/translate.c
@@ -7403,15 +7403,7 @@ static void gen_dmtc0(DisasContext *ctx, TCGv arg, int 
reg, int sel)
          switch (sel) {
          case 0:
              save_cpu_state(ctx, 1);
-            /* Mark as an IO operation because we may trigger a software
-               interrupt.  */
-            if (ctx->tb->cflags & CF_USE_ICOUNT) {
-                gen_io_start();
-            }
              gen_helper_mtc0_cause(cpu_env, arg);
-            if (ctx->tb->cflags & CF_USE_ICOUNT) {
-                gen_io_end();
-            }
              /* Stop translation as we may have triggered an intetrupt. BS_STOP
               * isn't sufficient, we need to ensure we break out of translated
               * code to check for pending interrupts.  */


Reply via email to