Commit 4cae8f56 authored by Alex Bennée's avatar Alex Bennée Committed by Peter Maydell
Browse files

target/arm/translate: ensure gen_goto_tb sets exit flags



As the gen_goto_tb function can do both static and dynamic jumps it
should also set the is_jmp field. This matches the behaviour of the
a64 code.

Signed-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
Reviewed-by: default avatarRichard Henderson <rth@twiddle.net>
Message-id: 20170713141928.25419-5-alex.bennee@linaro.org
[tweak to multiline comment formatting]
Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parent abd1fb0e
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -4158,6 +4158,10 @@ static void gen_goto_ptr(void)
    tcg_temp_free(addr);
}

/* This will end the TB but doesn't guarantee we'll return to
 * cpu_loop_exec. Any live exit_requests will be processed as we
 * enter the next TB.
 */
static void gen_goto_tb(DisasContext *s, int n, target_ulong dest)
{
    if (use_goto_tb(s, dest)) {
@@ -4168,6 +4172,7 @@ static void gen_goto_tb(DisasContext *s, int n, target_ulong dest)
        gen_set_pc_im(s, dest);
        gen_goto_ptr();
    }
    s->is_jmp = DISAS_TB_JUMP;
}

static inline void gen_jmp (DisasContext *s, uint32_t dest)
@@ -4179,7 +4184,6 @@ static inline void gen_jmp (DisasContext *s, uint32_t dest)
        gen_bx_im(s, dest);
    } else {
        gen_goto_tb(s, 0, dest);
        s->is_jmp = DISAS_TB_JUMP;
    }
}