void helper_msa_st_df(CPUMIPSState *env, uint32_t df, uint32_t wd, uint32_t rs,

                     int32_t s10)

{

    wr_t *pwd = &(env->active_fpu.fpr[wd].wr);

    target_ulong addr = env->active_tc.gpr[rs] + (s10 << df);

    int i;



    switch (df) {

    case DF_BYTE:

        for (i = 0; i < DF_ELEMENTS(DF_BYTE); i++) {

            do_sb(env, addr + (i << DF_BYTE), pwd->b[i],

                    env->hflags & MIPS_HFLAG_KSU);

        }

        break;

    case DF_HALF:

        for (i = 0; i < DF_ELEMENTS(DF_HALF); i++) {

            do_sh(env, addr + (i << DF_HALF), pwd->h[i],

                    env->hflags & MIPS_HFLAG_KSU);

        }

        break;

    case DF_WORD:

        for (i = 0; i < DF_ELEMENTS(DF_WORD); i++) {

            do_sw(env, addr + (i << DF_WORD), pwd->w[i],

                    env->hflags & MIPS_HFLAG_KSU);

        }

        break;

    case DF_DOUBLE:

        for (i = 0; i < DF_ELEMENTS(DF_DOUBLE); i++) {

            do_sd(env, addr + (i << DF_DOUBLE), pwd->d[i],

                    env->hflags & MIPS_HFLAG_KSU);

        }

        break;

    }

}

void helper_msa_st_df(CPUMIPSState *env, uint32_t df, uint32_t wd, uint32_t rs,

                     int32_t s10)

{

    wr_t *pwd = &(env->active_fpu.fpr[wd].wr);

    target_ulong addr = env->active_tc.gpr[rs] + (s10 << df);

    int i;



    switch (df) {

    case DF_BYTE:

        for (i = 0; i < DF_ELEMENTS(DF_BYTE); i++) {

            do_sb(env, addr + (i << DF_BYTE), pwd->b[i],

                    env->hflags & MIPS_HFLAG_KSU);

        }

        break;

    case DF_HALF:

        for (i = 0; i < DF_ELEMENTS(DF_HALF); i++) {

            do_sh(env, addr + (i << DF_HALF), pwd->h[i],

                    env->hflags & MIPS_HFLAG_KSU);

        }

        break;

    case DF_WORD:

        for (i = 0; i < DF_ELEMENTS(DF_WORD); i++) {

            do_sw(env, addr + (i << DF_WORD), pwd->w[i],

                    env->hflags & MIPS_HFLAG_KSU);

        }

        break;

    case DF_DOUBLE:

        for (i = 0; i < DF_ELEMENTS(DF_DOUBLE); i++) {

            do_sd(env, addr + (i << DF_DOUBLE), pwd->d[i],

                    env->hflags & MIPS_HFLAG_KSU);

        }

        break;

    }

}

void FUNC_0(CPUMIPSState *VAR_0, uint32_t VAR_1, uint32_t VAR_2, uint32_t VAR_3,

                     int32_t VAR_4)

{

    wr_t *pwd = &(VAR_0->active_fpu.fpr[VAR_2].wr);

    target_ulong addr = VAR_0->active_tc.gpr[VAR_3] + (VAR_4 << VAR_1);

    int VAR_5;



    switch (VAR_1) {

    case DF_BYTE:

        for (VAR_5 = 0; VAR_5 < DF_ELEMENTS(DF_BYTE); VAR_5++) {

            do_sb(VAR_0, addr + (VAR_5 << DF_BYTE), pwd->b[VAR_5],

                    VAR_0->hflags & MIPS_HFLAG_KSU);

        }

        break;

    case DF_HALF:

        for (VAR_5 = 0; VAR_5 < DF_ELEMENTS(DF_HALF); VAR_5++) {

            do_sh(VAR_0, addr + (VAR_5 << DF_HALF), pwd->h[VAR_5],

                    VAR_0->hflags & MIPS_HFLAG_KSU);

        }

        break;

    case DF_WORD:

        for (VAR_5 = 0; VAR_5 < DF_ELEMENTS(DF_WORD); VAR_5++) {

            do_sw(VAR_0, addr + (VAR_5 << DF_WORD), pwd->w[VAR_5],

                    VAR_0->hflags & MIPS_HFLAG_KSU);

        }

        break;

    case DF_DOUBLE:

        for (VAR_5 = 0; VAR_5 < DF_ELEMENTS(DF_DOUBLE); VAR_5++) {

            do_sd(VAR_0, addr + (VAR_5 << DF_DOUBLE), pwd->d[VAR_5],

                    VAR_0->hflags & MIPS_HFLAG_KSU);

        }

        break;

    }

}

void FUNC_0(CPUMIPSState *VAR_0, uint32_t VAR_1, uint32_t VAR_2, uint32_t VAR_3,
int32_t VAR_4)
{ wr_t *pwd = &(VAR_0->active_fpu.fpr[VAR_2].wr); target_ulong addr = VAR_0->active_tc.gpr[VAR_3] + (VAR_4 << VAR_1); int VAR_5; switch (VAR_1) { case DF_BYTE:
for (VAR_5 = 0; VAR_5 < DF_ELEMENTS(DF_BYTE); VAR_5++) { do_sb(VAR_0, addr + (VAR_5 << DF_BYTE), pwd->b[VAR_5],
VAR_0->hflags & MIPS_HFLAG_KSU); } break; case DF_HALF:
for (VAR_5 = 0; VAR_5 < DF_ELEMENTS(DF_HALF); VAR_5++) { do_sh(VAR_0, addr + (VAR_5 << DF_HALF), pwd->h[VAR_5],
VAR_0->hflags & MIPS_HFLAG_KSU); } break; case DF_WORD:
for (VAR_5 = 0; VAR_5 < DF_ELEMENTS(DF_WORD); VAR_5++) { do_sw(VAR_0, addr + (VAR_5 << DF_WORD), pwd->w[VAR_5],
VAR_0->hflags & MIPS_HFLAG_KSU); } break; case DF_DOUBLE:
for (VAR_5 = 0; VAR_5 < DF_ELEMENTS(DF_DOUBLE); VAR_5++) { do_sd(VAR_0, addr + (VAR_5 << DF_DOUBLE), pwd->d[VAR_5],
VAR_0->hflags & MIPS_HFLAG_KSU); } break; } }