static inline void gen_add_data_offset(DisasContext *s, unsigned int insn,

                                       TCGv var)

{

    int val, rm, shift, shiftop;

    TCGv offset;



    if (!(insn & (1 << 25))) {

        /* immediate */

        val = insn & 0xfff;

        if (!(insn & (1 << 23)))

            val = -val;

        if (val != 0)

            tcg_gen_addi_i32(var, var, val);

    } else {

        /* shift/register */

        rm = (insn) & 0xf;

        shift = (insn >> 7) & 0x1f;

        shiftop = (insn >> 5) & 3;

        offset = load_reg(s, rm);

        gen_arm_shift_im(offset, shiftop, shift, 0);

        if (!(insn & (1 << 23)))

            tcg_gen_sub_i32(var, var, offset);

        else

            tcg_gen_add_i32(var, var, offset);

        dead_tmp(offset);

    }

}

static inline void gen_add_data_offset(DisasContext *s, unsigned int insn,

                                       TCGv var)

{

    int val, rm, shift, shiftop;

    TCGv offset;



    if (!(insn & (1 << 25))) {

        

        val = insn & 0xfff;

        if (!(insn & (1 << 23)))

            val = -val;

        if (val != 0)

            tcg_gen_addi_i32(var, var, val);

    } else {

        

        rm = (insn) & 0xf;

        shift = (insn >> 7) & 0x1f;

        shiftop = (insn >> 5) & 3;

        offset = load_reg(s, rm);

        gen_arm_shift_im(offset, shiftop, shift, 0);

        if (!(insn & (1 << 23)))

            tcg_gen_sub_i32(var, var, offset);

        else

            tcg_gen_add_i32(var, var, offset);

        dead_tmp(offset);

    }

}

        dead_tmp(offset);         dead_tmp(offset);
static inline void FUNC_0(DisasContext *VAR_0, unsigned int VAR_1,

                                       TCGv VAR_2)

{

    int VAR_3, VAR_4, VAR_5, VAR_6;

    TCGv offset;



    if (!(VAR_1 & (1 << 25))) {

        

        VAR_3 = VAR_1 & 0xfff;

        if (!(VAR_1 & (1 << 23)))

            VAR_3 = -VAR_3;

        if (VAR_3 != 0)

            tcg_gen_addi_i32(VAR_2, VAR_2, VAR_3);

    } else {

        

        VAR_4 = (VAR_1) & 0xf;

        VAR_5 = (VAR_1 >> 7) & 0x1f;

        VAR_6 = (VAR_1 >> 5) & 3;

        offset = load_reg(VAR_0, VAR_4);

        gen_arm_shift_im(offset, VAR_6, VAR_5, 0);

        if (!(VAR_1 & (1 << 23)))

            tcg_gen_sub_i32(VAR_2, VAR_2, offset);

        else

            tcg_gen_add_i32(VAR_2, VAR_2, offset);

        dead_tmp(offset);

    }

}

static inline void FUNC_0(DisasContext *VAR_0, unsigned int VAR_1,
TCGv VAR_2)
{ int VAR_3, VAR_4, VAR_5, VAR_6; TCGv offset; if (!(VAR_1 & (1 << 25))) { VAR_3 = VAR_1 & 0xfff; if (!(VAR_1 & (1 << 23)))
VAR_3 = -VAR_3; if (VAR_3 != 0)
tcg_gen_addi_i32(VAR_2, VAR_2, VAR_3); } else { VAR_4 = (VAR_1) & 0xf; VAR_5 = (VAR_1 >> 7) & 0x1f; VAR_6 = (VAR_1 >> 5) & 3; offset = load_reg(VAR_0, VAR_4); gen_arm_shift_im(offset, VAR_6, VAR_5, 0); if (!(VAR_1 & (1 << 23)))
tcg_gen_sub_i32(VAR_2, VAR_2, offset); else
tcg_gen_add_i32(VAR_2, VAR_2, offset); dead_tmp(offset); } }