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

                                        int extra, TCGv var)

{

    int val, rm;

    TCGv offset;



    if (insn & (1 << 22)) {

        /* immediate */

        val = (insn & 0xf) | ((insn >> 4) & 0xf0);

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

            val = -val;

        val += extra;

        if (val != 0)

            tcg_gen_addi_i32(var, var, val);

    } else {

        /* register */

        if (extra)

            tcg_gen_addi_i32(var, var, extra);

        rm = (insn) & 0xf;

        offset = load_reg(s, rm);

        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_datah_offset(DisasContext *s, unsigned int insn,

                                        int extra, TCGv var)

{

    int val, rm;

    TCGv offset;



    if (insn & (1 << 22)) {

        

        val = (insn & 0xf) | ((insn >> 4) & 0xf0);

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

            val = -val;

        val += extra;

        if (val != 0)

            tcg_gen_addi_i32(var, var, val);

    } else {

        

        if (extra)

            tcg_gen_addi_i32(var, var, extra);

        rm = (insn) & 0xf;

        offset = load_reg(s, rm);

        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,

                                        int VAR_2, TCGv VAR_3)

{

    int VAR_4, VAR_5;

    TCGv offset;



    if (VAR_1 & (1 << 22)) {

        

        VAR_4 = (VAR_1 & 0xf) | ((VAR_1 >> 4) & 0xf0);

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

            VAR_4 = -VAR_4;

        VAR_4 += VAR_2;

        if (VAR_4 != 0)

            tcg_gen_addi_i32(VAR_3, VAR_3, VAR_4);

    } else {

        

        if (VAR_2)

            tcg_gen_addi_i32(VAR_3, VAR_3, VAR_2);

        VAR_5 = (VAR_1) & 0xf;

        offset = load_reg(VAR_0, VAR_5);

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

            tcg_gen_sub_i32(VAR_3, VAR_3, offset);

        else

            tcg_gen_add_i32(VAR_3, VAR_3, offset);

        dead_tmp(offset);

    }

}

static inline void FUNC_0(DisasContext *VAR_0, unsigned int VAR_1,
int VAR_2, TCGv VAR_3)
{ int VAR_4, VAR_5; TCGv offset; if (VAR_1 & (1 << 22)) { VAR_4 = (VAR_1 & 0xf) | ((VAR_1 >> 4) & 0xf0); if (!(VAR_1 & (1 << 23)))
VAR_4 = -VAR_4; VAR_4 += VAR_2; if (VAR_4 != 0)
tcg_gen_addi_i32(VAR_3, VAR_3, VAR_4); } else { if (VAR_2)
tcg_gen_addi_i32(VAR_3, VAR_3, VAR_2); VAR_5 = (VAR_1) & 0xf; offset = load_reg(VAR_0, VAR_5); if (!(VAR_1 & (1 << 23)))
tcg_gen_sub_i32(VAR_3, VAR_3, offset); else
tcg_gen_add_i32(VAR_3, VAR_3, offset); dead_tmp(offset); } }