int tcg_global_mem_new_internal(TCGType type, TCGv_ptr base,

                                intptr_t offset, const char *name)

{

    TCGContext *s = &tcg_ctx;

    TCGTemp *ts, *base_ts = &s->temps[GET_TCGV_PTR(base)];

    int idx, reg = base_ts->reg;



    idx = s->nb_globals;

#if TCG_TARGET_REG_BITS == 32

    if (type == TCG_TYPE_I64) {

        char buf[64];

        tcg_temp_alloc(s, s->nb_globals + 2);

        ts = &s->temps[s->nb_globals];

        ts->base_type = type;

        ts->type = TCG_TYPE_I32;

        ts->fixed_reg = 0;

        ts->mem_allocated = 1;

        ts->mem_reg = reg;

#ifdef HOST_WORDS_BIGENDIAN

        ts->mem_offset = offset + 4;

#else

        ts->mem_offset = offset;

#endif

        pstrcpy(buf, sizeof(buf), name);

        pstrcat(buf, sizeof(buf), "_0");

        ts->name = strdup(buf);

        ts++;



        ts->base_type = type;

        ts->type = TCG_TYPE_I32;

        ts->fixed_reg = 0;

        ts->mem_allocated = 1;

        ts->mem_reg = reg;

#ifdef HOST_WORDS_BIGENDIAN

        ts->mem_offset = offset;

#else

        ts->mem_offset = offset + 4;

#endif

        pstrcpy(buf, sizeof(buf), name);

        pstrcat(buf, sizeof(buf), "_1");

        ts->name = strdup(buf);



        s->nb_globals += 2;

    } else

#endif

    {

        tcg_temp_alloc(s, s->nb_globals + 1);

        ts = &s->temps[s->nb_globals];

        ts->base_type = type;

        ts->type = type;

        ts->fixed_reg = 0;

        ts->mem_allocated = 1;

        ts->mem_reg = reg;

        ts->mem_offset = offset;

        ts->name = name;

        s->nb_globals++;

    }

    return idx;

}

int tcg_global_mem_new_internal(TCGType type, TCGv_ptr base,

                                intptr_t offset, const char *name)

{

    TCGContext *s = &tcg_ctx;

    TCGTemp *ts, *base_ts = &s->temps[GET_TCGV_PTR(base)];

    int idx, reg = base_ts->reg;



    idx = s->nb_globals;

#if TCG_TARGET_REG_BITS == 32

    if (type == TCG_TYPE_I64) {

        char buf[64];

        tcg_temp_alloc(s, s->nb_globals + 2);

        ts = &s->temps[s->nb_globals];

        ts->base_type = type;

        ts->type = TCG_TYPE_I32;

        ts->fixed_reg = 0;

        ts->mem_allocated = 1;

        ts->mem_reg = reg;

#ifdef HOST_WORDS_BIGENDIAN

        ts->mem_offset = offset + 4;

#else

        ts->mem_offset = offset;

#endif

        pstrcpy(buf, sizeof(buf), name);

        pstrcat(buf, sizeof(buf), "_0");

        ts->name = strdup(buf);

        ts++;



        ts->base_type = type;

        ts->type = TCG_TYPE_I32;

        ts->fixed_reg = 0;

        ts->mem_allocated = 1;

        ts->mem_reg = reg;

#ifdef HOST_WORDS_BIGENDIAN

        ts->mem_offset = offset;

#else

        ts->mem_offset = offset + 4;

#endif

        pstrcpy(buf, sizeof(buf), name);

        pstrcat(buf, sizeof(buf), "_1");

        ts->name = strdup(buf);



        s->nb_globals += 2;

    } else

#endif

    {

        tcg_temp_alloc(s, s->nb_globals + 1);

        ts = &s->temps[s->nb_globals];

        ts->base_type = type;

        ts->type = type;

        ts->fixed_reg = 0;

        ts->mem_allocated = 1;

        ts->mem_reg = reg;

        ts->mem_offset = offset;

        ts->name = name;

        s->nb_globals++;

    }

    return idx;

}

int FUNC_0(TCGType VAR_0, TCGv_ptr VAR_1,

                                intptr_t VAR_2, const char *VAR_3)

{

    TCGContext *s = &tcg_ctx;

    TCGTemp *ts, *base_ts = &s->temps[GET_TCGV_PTR(VAR_1)];

    int VAR_4, VAR_5 = base_ts->VAR_5;



    VAR_4 = s->nb_globals;

#if TCG_TARGET_REG_BITS == 32

    if (VAR_0 == TCG_TYPE_I64) {

        char buf[64];

        tcg_temp_alloc(s, s->nb_globals + 2);

        ts = &s->temps[s->nb_globals];

        ts->base_type = VAR_0;

        ts->VAR_0 = TCG_TYPE_I32;

        ts->fixed_reg = 0;

        ts->mem_allocated = 1;

        ts->mem_reg = VAR_5;

#ifdef HOST_WORDS_BIGENDIAN

        ts->mem_offset = VAR_2 + 4;

#else

        ts->mem_offset = VAR_2;

#endif

        pstrcpy(buf, sizeof(buf), VAR_3);

        pstrcat(buf, sizeof(buf), "_0");

        ts->VAR_3 = strdup(buf);

        ts++;



        ts->base_type = VAR_0;

        ts->VAR_0 = TCG_TYPE_I32;

        ts->fixed_reg = 0;

        ts->mem_allocated = 1;

        ts->mem_reg = VAR_5;

#ifdef HOST_WORDS_BIGENDIAN

        ts->mem_offset = VAR_2;

#else

        ts->mem_offset = VAR_2 + 4;

#endif

        pstrcpy(buf, sizeof(buf), VAR_3);

        pstrcat(buf, sizeof(buf), "_1");

        ts->VAR_3 = strdup(buf);



        s->nb_globals += 2;

    } else

#endif

    {

        tcg_temp_alloc(s, s->nb_globals + 1);

        ts = &s->temps[s->nb_globals];

        ts->base_type = VAR_0;

        ts->VAR_0 = VAR_0;

        ts->fixed_reg = 0;

        ts->mem_allocated = 1;

        ts->mem_reg = VAR_5;

        ts->mem_offset = VAR_2;

        ts->VAR_3 = VAR_3;

        s->nb_globals++;

    }

    return VAR_4;

}

int FUNC_0(TCGType VAR_0, TCGv_ptr VAR_1,
intptr_t VAR_2, const char *VAR_3)
{ TCGContext *s = &tcg_ctx; TCGTemp *ts, *base_ts = &s->temps[GET_TCGV_PTR(VAR_1)]; int VAR_4, VAR_5 = base_ts->VAR_5; VAR_4 = s->nb_globals; #if TCG_TARGET_REG_BITS == 32
if (VAR_0 == TCG_TYPE_I64) { char buf[64]; tcg_temp_alloc(s, s->nb_globals + 2); ts = &s->temps[s->nb_globals]; ts->base_type = VAR_0; ts->VAR_0 = TCG_TYPE_I32; ts->fixed_reg = 0; ts->mem_allocated = 1; ts->mem_reg = VAR_5; #ifdef HOST_WORDS_BIGENDIAN
ts->mem_offset = VAR_2 + 4; #else
ts->mem_offset = VAR_2; #endif
pstrcpy(buf, sizeof(buf), VAR_3); pstrcat(buf, sizeof(buf), "_0"); ts->VAR_3 = strdup(buf); ts++; ts->base_type = VAR_0; ts->VAR_0 = TCG_TYPE_I32; ts->fixed_reg = 0; ts->mem_allocated = 1; ts->mem_reg = VAR_5; #ifdef HOST_WORDS_BIGENDIAN
ts->mem_offset = VAR_2; #else
ts->mem_offset = VAR_2 + 4; #endif
pstrcpy(buf, sizeof(buf), VAR_3); pstrcat(buf, sizeof(buf), "_1"); ts->VAR_3 = strdup(buf); s->nb_globals += 2; } else #endif
{ tcg_temp_alloc(s, s->nb_globals + 1); ts = &s->temps[s->nb_globals]; ts->base_type = VAR_0; ts->VAR_0 = VAR_0; ts->fixed_reg = 0; ts->mem_allocated = 1; ts->mem_reg = VAR_5; ts->mem_offset = VAR_2; ts->VAR_3 = VAR_3; s->nb_globals++; } return VAR_4; }