Commit 8d4a4dc8 authored by Richard Henderson's avatar Richard Henderson Committed by Peter Maydell
Browse files

target/arm: Convert T16, Unconditional branch



Reviewed-by: default avatarPeter Maydell <peter.maydell@linaro.org>
Signed-off-by: default avatarRichard Henderson <richard.henderson@linaro.org>
Message-id: 20190904193059.26202-67-richard.henderson@linaro.org
Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parent 46beb58e
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -266,3 +266,9 @@ LDM_t16 1011 110 ......... \
  SVC           1101 1111 imm:8                 &i
  B_cond_thumb  1101 cond:4 ........            &ci imm=%imm8_0x2
}

# Unconditional Branch

%imm11_0x2      0:s11 !function=times_2

B               11100 ...........               &i imm=%imm11_0x2
+2 −7
Original line number Diff line number Diff line
@@ -10736,7 +10736,6 @@ static void disas_thumb2_insn(DisasContext *s, uint32_t insn)

static void disas_thumb_insn(DisasContext *s, uint32_t insn)
{
    uint32_t val;
    int32_t offset;
    TCGv_i32 tmp;
    TCGv_i32 tmp2;
@@ -10780,12 +10779,8 @@ static void disas_thumb_insn(DisasContext *s, uint32_t insn)
            gen_bx(s, tmp);
            break;
        }
        /* unconditional branch */
        val = read_pc(s);
        offset = ((int32_t)insn << 21) >> 21;
        val += offset << 1;
        gen_jmp(s, val);
        break;
        /* unconditional branch, in decodetree */
        goto illegal_op;

    case 15:
        /* thumb_insn_is_16bit() ensures we can't get here for