Commit bedd2912 authored by Johan Bengtsson's avatar Johan Bengtsson Committed by Aurelien Jarno
Browse files

target-arm: Fix handling of AL condition in IT instruction



Do not try to insert a conditional jump over next instruction when the
condition code is AL as this will trigger an internal error.

Signed-off-by: default avatarJohan Bengtsson <teofrastius@gmail.com>
Signed-off-by: default avatarAurelien Jarno <aurelien@aurel32.net>
parent 3f90f252
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -8336,10 +8336,12 @@ static void disas_thumb_insn(CPUState *env, DisasContext *s)

    if (s->condexec_mask) {
        cond = s->condexec_cond;
        if (cond != 0x0e) {     /* Skip conditional when condition is AL. */
          s->condlabel = gen_new_label();
          gen_test_cc(cond ^ 1, s->condlabel);
          s->condjmp = 1;
        }
    }

    insn = lduw_code(s->pc);
    s->pc += 2;