static void disas_cond_b_imm(DisasContext *s, uint32_t insn)

{

    unsigned int cond;

    uint64_t addr;



    if ((insn & (1 << 4)) || (insn & (1 << 24))) {

        unallocated_encoding(s);

        return;

    }

    addr = s->pc + sextract32(insn, 5, 19) * 4 - 4;

    cond = extract32(insn, 0, 4);



    if (cond < 0x0e) {

        /* genuinely conditional branches */

        int label_match = gen_new_label();

        arm_gen_test_cc(cond, label_match);

        gen_goto_tb(s, 0, s->pc);

        gen_set_label(label_match);

        gen_goto_tb(s, 1, addr);

    } else {

        /* 0xe and 0xf are both "always" conditions */

        gen_goto_tb(s, 0, addr);

    }

}

static void disas_cond_b_imm(DisasContext *s, uint32_t insn)

{

    unsigned int cond;

    uint64_t addr;



    if ((insn & (1 << 4)) || (insn & (1 << 24))) {

        unallocated_encoding(s);

        return;

    }

    addr = s->pc + sextract32(insn, 5, 19) * 4 - 4;

    cond = extract32(insn, 0, 4);



    if (cond < 0x0e) {

        

        int label_match = gen_new_label();

        arm_gen_test_cc(cond, label_match);

        gen_goto_tb(s, 0, s->pc);

        gen_set_label(label_match);

        gen_goto_tb(s, 1, addr);

    } else {

        

        gen_goto_tb(s, 0, addr);

    }

}

static void FUNC_0(DisasContext *VAR_0, uint32_t VAR_1)

{

    unsigned int VAR_2;

    uint64_t addr;



    if ((VAR_1 & (1 << 4)) || (VAR_1 & (1 << 24))) {

        unallocated_encoding(VAR_0);

        return;

    }

    addr = VAR_0->pc + sextract32(VAR_1, 5, 19) * 4 - 4;

    VAR_2 = extract32(VAR_1, 0, 4);



    if (VAR_2 < 0x0e) {

        

        int VAR_3 = gen_new_label();

        arm_gen_test_cc(VAR_2, VAR_3);

        gen_goto_tb(VAR_0, 0, VAR_0->pc);

        gen_set_label(VAR_3);

        gen_goto_tb(VAR_0, 1, addr);

    } else {

        

        gen_goto_tb(VAR_0, 0, addr);

    }

}

static void FUNC_0(DisasContext *VAR_0, uint32_t VAR_1)
{ unsigned int VAR_2; uint64_t addr; if ((VAR_1 & (1 << 4)) || (VAR_1 & (1 << 24))) { unallocated_encoding(VAR_0); return; } addr = VAR_0->pc + sextract32(VAR_1, 5, 19) * 4 - 4; VAR_2 = extract32(VAR_1, 0, 4); if (VAR_2 < 0x0e) { int VAR_3 = gen_new_label(); arm_gen_test_cc(VAR_2, VAR_3); gen_goto_tb(VAR_0, 0, VAR_0->pc); gen_set_label(VAR_3); gen_goto_tb(VAR_0, 1, addr); } else { gen_goto_tb(VAR_0, 0, addr); } }