static void tcg_out_ld_abs(TCGContext *s, TCGType type, TCGReg dest, void *abs)

{

    intptr_t addr = (intptr_t)abs;



    if ((facilities & FACILITY_GEN_INST_EXT) && !(addr & 1)) {

        ptrdiff_t disp = tcg_pcrel_diff(s, abs) >> 1;

        if (disp == (int32_t)disp) {

            if (type == TCG_TYPE_I32) {

                tcg_out_insn(s, RIL, LRL, dest, disp);

            } else {

                tcg_out_insn(s, RIL, LGRL, dest, disp);

            }

            return;

        }

    }



    tcg_out_movi(s, TCG_TYPE_PTR, dest, addr & ~0xffff);

    tcg_out_ld(s, type, dest, dest, addr & 0xffff);

}

static void tcg_out_ld_abs(TCGContext *s, TCGType type, TCGReg dest, void *abs)

{

    intptr_t addr = (intptr_t)abs;



    if ((facilities & FACILITY_GEN_INST_EXT) && !(addr & 1)) {

        ptrdiff_t disp = tcg_pcrel_diff(s, abs) >> 1;

        if (disp == (int32_t)disp) {

            if (type == TCG_TYPE_I32) {

                tcg_out_insn(s, RIL, LRL, dest, disp);

            } else {

                tcg_out_insn(s, RIL, LGRL, dest, disp);

            }

            return;

        }

    }



    tcg_out_movi(s, TCG_TYPE_PTR, dest, addr & ~0xffff);

    tcg_out_ld(s, type, dest, dest, addr & 0xffff);

}

static void FUNC_0(TCGContext *VAR_0, TCGType VAR_1, TCGReg VAR_2, void *VAR_3)

{

    intptr_t addr = (intptr_t)VAR_3;



    if ((facilities & FACILITY_GEN_INST_EXT) && !(addr & 1)) {

        ptrdiff_t disp = tcg_pcrel_diff(VAR_0, VAR_3) >> 1;

        if (disp == (int32_t)disp) {

            if (VAR_1 == TCG_TYPE_I32) {

                tcg_out_insn(VAR_0, RIL, LRL, VAR_2, disp);

            } else {

                tcg_out_insn(VAR_0, RIL, LGRL, VAR_2, disp);

            }

            return;

        }

    }



    tcg_out_movi(VAR_0, TCG_TYPE_PTR, VAR_2, addr & ~0xffff);

    tcg_out_ld(VAR_0, VAR_1, VAR_2, VAR_2, addr & 0xffff);

}

static void FUNC_0(TCGContext *VAR_0, TCGType VAR_1, TCGReg VAR_2, void *VAR_3)
{ intptr_t addr = (intptr_t)VAR_3; if ((facilities & FACILITY_GEN_INST_EXT) && !(addr & 1)) { ptrdiff_t disp = tcg_pcrel_diff(VAR_0, VAR_3) >> 1; if (disp == (int32_t)disp) { if (VAR_1 == TCG_TYPE_I32) { tcg_out_insn(VAR_0, RIL, LRL, VAR_2, disp); } else { tcg_out_insn(VAR_0, RIL, LGRL, VAR_2, disp); } return; } } tcg_out_movi(VAR_0, TCG_TYPE_PTR, VAR_2, addr & ~0xffff); tcg_out_ld(VAR_0, VAR_1, VAR_2, VAR_2, addr & 0xffff); }