static void gen_flt3_arith (DisasContext *ctx, uint32_t opc, int fd,

                            int fr, int fs, int ft)

{

    const char *opn = "flt3_arith";



    /* All of those work only on 64bit FPUs. */

    gen_op_cp1_64bitmode();

    switch (opc) {

    case OPC_ALNV_PS:

        GEN_LOAD_REG_TN(T0, fr);

        GEN_LOAD_FREG_FTN(DT0, fs);

        GEN_LOAD_FREG_FTN(DT1, ft);

        gen_op_float_alnv_ps();

        GEN_STORE_FTN_FREG(fd, DT2);

        opn = "alnv.ps";

        break;

    case OPC_MADD_S:

        GEN_LOAD_FREG_FTN(WT0, fs);

        GEN_LOAD_FREG_FTN(WT1, ft);

        GEN_LOAD_FREG_FTN(WT2, fr);

        gen_op_float_muladd_s();

        GEN_STORE_FTN_FREG(fd, WT2);

        opn = "madd.s";

        break;

    case OPC_MADD_D:

        GEN_LOAD_FREG_FTN(DT0, fs);

        GEN_LOAD_FREG_FTN(DT1, ft);

        GEN_LOAD_FREG_FTN(DT2, fr);

        gen_op_float_muladd_d();

        GEN_STORE_FTN_FREG(fd, DT2);

        opn = "madd.d";

        break;

    case OPC_MADD_PS:

        GEN_LOAD_FREG_FTN(WT0, fs);

        GEN_LOAD_FREG_FTN(WTH0, fs);

        GEN_LOAD_FREG_FTN(WT1, ft);

        GEN_LOAD_FREG_FTN(WTH1, ft);

        GEN_LOAD_FREG_FTN(WT2, fr);

        GEN_LOAD_FREG_FTN(WTH2, fr);

        gen_op_float_muladd_ps();

        GEN_STORE_FTN_FREG(fd, WT2);

        GEN_STORE_FTN_FREG(fd, WTH2);

        opn = "madd.ps";

        break;

    case OPC_MSUB_S:

        GEN_LOAD_FREG_FTN(WT0, fs);

        GEN_LOAD_FREG_FTN(WT1, ft);

        GEN_LOAD_FREG_FTN(WT2, fr);

        gen_op_float_mulsub_s();

        GEN_STORE_FTN_FREG(fd, WT2);

        opn = "msub.s";

        break;

    case OPC_MSUB_D:

        GEN_LOAD_FREG_FTN(DT0, fs);

        GEN_LOAD_FREG_FTN(DT1, ft);

        GEN_LOAD_FREG_FTN(DT2, fr);

        gen_op_float_mulsub_d();

        GEN_STORE_FTN_FREG(fd, DT2);

        opn = "msub.d";

        break;

    case OPC_MSUB_PS:

        GEN_LOAD_FREG_FTN(WT0, fs);

        GEN_LOAD_FREG_FTN(WTH0, fs);

        GEN_LOAD_FREG_FTN(WT1, ft);

        GEN_LOAD_FREG_FTN(WTH1, ft);

        GEN_LOAD_FREG_FTN(WT2, fr);

        GEN_LOAD_FREG_FTN(WTH2, fr);

        gen_op_float_mulsub_ps();

        GEN_STORE_FTN_FREG(fd, WT2);

        GEN_STORE_FTN_FREG(fd, WTH2);

        opn = "msub.ps";

        break;

    case OPC_NMADD_S:

        GEN_LOAD_FREG_FTN(WT0, fs);

        GEN_LOAD_FREG_FTN(WT1, ft);

        GEN_LOAD_FREG_FTN(WT2, fr);

        gen_op_float_nmuladd_s();

        GEN_STORE_FTN_FREG(fd, WT2);

        opn = "nmadd.s";

        break;

    case OPC_NMADD_D:

        GEN_LOAD_FREG_FTN(DT0, fs);

        GEN_LOAD_FREG_FTN(DT1, ft);

        GEN_LOAD_FREG_FTN(DT2, fr);

        gen_op_float_nmuladd_d();

        GEN_STORE_FTN_FREG(fd, DT2);

        opn = "nmadd.d";

        break;

    case OPC_NMADD_PS:

        GEN_LOAD_FREG_FTN(WT0, fs);

        GEN_LOAD_FREG_FTN(WTH0, fs);

        GEN_LOAD_FREG_FTN(WT1, ft);

        GEN_LOAD_FREG_FTN(WTH1, ft);

        GEN_LOAD_FREG_FTN(WT2, fr);

        GEN_LOAD_FREG_FTN(WTH2, fr);

        gen_op_float_nmuladd_ps();

        GEN_STORE_FTN_FREG(fd, WT2);

        GEN_STORE_FTN_FREG(fd, WTH2);

        opn = "nmadd.ps";

        break;

    case OPC_NMSUB_S:

        GEN_LOAD_FREG_FTN(WT0, fs);

        GEN_LOAD_FREG_FTN(WT1, ft);

        GEN_LOAD_FREG_FTN(WT2, fr);

        gen_op_float_nmulsub_s();

        GEN_STORE_FTN_FREG(fd, WT2);

        opn = "nmsub.s";

        break;

    case OPC_NMSUB_D:

        GEN_LOAD_FREG_FTN(DT0, fs);

        GEN_LOAD_FREG_FTN(DT1, ft);

        GEN_LOAD_FREG_FTN(DT2, fr);

        gen_op_float_nmulsub_d();

        GEN_STORE_FTN_FREG(fd, DT2);

        opn = "nmsub.d";

        break;

    case OPC_NMSUB_PS:

        GEN_LOAD_FREG_FTN(WT0, fs);

        GEN_LOAD_FREG_FTN(WTH0, fs);

        GEN_LOAD_FREG_FTN(WT1, ft);

        GEN_LOAD_FREG_FTN(WTH1, ft);

        GEN_LOAD_FREG_FTN(WT2, fr);

        GEN_LOAD_FREG_FTN(WTH2, fr);

        gen_op_float_nmulsub_ps();

        GEN_STORE_FTN_FREG(fd, WT2);

        GEN_STORE_FTN_FREG(fd, WTH2);

        opn = "nmsub.ps";

        break;

    default:

        MIPS_INVAL(opn);

        generate_exception (ctx, EXCP_RI);

        return;

    }

    MIPS_DEBUG("%s %s, %s, %s, %s", opn, fregnames[fd], fregnames[fr],

               fregnames[fs], fregnames[ft]);

}

static void gen_flt3_arith (DisasContext *ctx, uint32_t opc, int fd,

                            int fr, int fs, int ft)

{

    const char *opn = "flt3_arith";



    

    gen_op_cp1_64bitmode();

    switch (opc) {

    case OPC_ALNV_PS:

        GEN_LOAD_REG_TN(T0, fr);

        GEN_LOAD_FREG_FTN(DT0, fs);

        GEN_LOAD_FREG_FTN(DT1, ft);

        gen_op_float_alnv_ps();

        GEN_STORE_FTN_FREG(fd, DT2);

        opn = "alnv.ps";

        break;

    case OPC_MADD_S:

        GEN_LOAD_FREG_FTN(WT0, fs);

        GEN_LOAD_FREG_FTN(WT1, ft);

        GEN_LOAD_FREG_FTN(WT2, fr);

        gen_op_float_muladd_s();

        GEN_STORE_FTN_FREG(fd, WT2);

        opn = "madd.s";

        break;

    case OPC_MADD_D:

        GEN_LOAD_FREG_FTN(DT0, fs);

        GEN_LOAD_FREG_FTN(DT1, ft);

        GEN_LOAD_FREG_FTN(DT2, fr);

        gen_op_float_muladd_d();

        GEN_STORE_FTN_FREG(fd, DT2);

        opn = "madd.d";

        break;

    case OPC_MADD_PS:

        GEN_LOAD_FREG_FTN(WT0, fs);

        GEN_LOAD_FREG_FTN(WTH0, fs);

        GEN_LOAD_FREG_FTN(WT1, ft);

        GEN_LOAD_FREG_FTN(WTH1, ft);

        GEN_LOAD_FREG_FTN(WT2, fr);

        GEN_LOAD_FREG_FTN(WTH2, fr);

        gen_op_float_muladd_ps();

        GEN_STORE_FTN_FREG(fd, WT2);

        GEN_STORE_FTN_FREG(fd, WTH2);

        opn = "madd.ps";

        break;

    case OPC_MSUB_S:

        GEN_LOAD_FREG_FTN(WT0, fs);

        GEN_LOAD_FREG_FTN(WT1, ft);

        GEN_LOAD_FREG_FTN(WT2, fr);

        gen_op_float_mulsub_s();

        GEN_STORE_FTN_FREG(fd, WT2);

        opn = "msub.s";

        break;

    case OPC_MSUB_D:

        GEN_LOAD_FREG_FTN(DT0, fs);

        GEN_LOAD_FREG_FTN(DT1, ft);

        GEN_LOAD_FREG_FTN(DT2, fr);

        gen_op_float_mulsub_d();

        GEN_STORE_FTN_FREG(fd, DT2);

        opn = "msub.d";

        break;

    case OPC_MSUB_PS:

        GEN_LOAD_FREG_FTN(WT0, fs);

        GEN_LOAD_FREG_FTN(WTH0, fs);

        GEN_LOAD_FREG_FTN(WT1, ft);

        GEN_LOAD_FREG_FTN(WTH1, ft);

        GEN_LOAD_FREG_FTN(WT2, fr);

        GEN_LOAD_FREG_FTN(WTH2, fr);

        gen_op_float_mulsub_ps();

        GEN_STORE_FTN_FREG(fd, WT2);

        GEN_STORE_FTN_FREG(fd, WTH2);

        opn = "msub.ps";

        break;

    case OPC_NMADD_S:

        GEN_LOAD_FREG_FTN(WT0, fs);

        GEN_LOAD_FREG_FTN(WT1, ft);

        GEN_LOAD_FREG_FTN(WT2, fr);

        gen_op_float_nmuladd_s();

        GEN_STORE_FTN_FREG(fd, WT2);

        opn = "nmadd.s";

        break;

    case OPC_NMADD_D:

        GEN_LOAD_FREG_FTN(DT0, fs);

        GEN_LOAD_FREG_FTN(DT1, ft);

        GEN_LOAD_FREG_FTN(DT2, fr);

        gen_op_float_nmuladd_d();

        GEN_STORE_FTN_FREG(fd, DT2);

        opn = "nmadd.d";

        break;

    case OPC_NMADD_PS:

        GEN_LOAD_FREG_FTN(WT0, fs);

        GEN_LOAD_FREG_FTN(WTH0, fs);

        GEN_LOAD_FREG_FTN(WT1, ft);

        GEN_LOAD_FREG_FTN(WTH1, ft);

        GEN_LOAD_FREG_FTN(WT2, fr);

        GEN_LOAD_FREG_FTN(WTH2, fr);

        gen_op_float_nmuladd_ps();

        GEN_STORE_FTN_FREG(fd, WT2);

        GEN_STORE_FTN_FREG(fd, WTH2);

        opn = "nmadd.ps";

        break;

    case OPC_NMSUB_S:

        GEN_LOAD_FREG_FTN(WT0, fs);

        GEN_LOAD_FREG_FTN(WT1, ft);

        GEN_LOAD_FREG_FTN(WT2, fr);

        gen_op_float_nmulsub_s();

        GEN_STORE_FTN_FREG(fd, WT2);

        opn = "nmsub.s";

        break;

    case OPC_NMSUB_D:

        GEN_LOAD_FREG_FTN(DT0, fs);

        GEN_LOAD_FREG_FTN(DT1, ft);

        GEN_LOAD_FREG_FTN(DT2, fr);

        gen_op_float_nmulsub_d();

        GEN_STORE_FTN_FREG(fd, DT2);

        opn = "nmsub.d";

        break;

    case OPC_NMSUB_PS:

        GEN_LOAD_FREG_FTN(WT0, fs);

        GEN_LOAD_FREG_FTN(WTH0, fs);

        GEN_LOAD_FREG_FTN(WT1, ft);

        GEN_LOAD_FREG_FTN(WTH1, ft);

        GEN_LOAD_FREG_FTN(WT2, fr);

        GEN_LOAD_FREG_FTN(WTH2, fr);

        gen_op_float_nmulsub_ps();

        GEN_STORE_FTN_FREG(fd, WT2);

        GEN_STORE_FTN_FREG(fd, WTH2);

        opn = "nmsub.ps";

        break;

    default:

        MIPS_INVAL(opn);

        generate_exception (ctx, EXCP_RI);

        return;

    }

    MIPS_DEBUG("%s %s, %s, %s, %s", opn, fregnames[fd], fregnames[fr],

               fregnames[fs], fregnames[ft]);

}

static void FUNC_0 (DisasContext *VAR_0, uint32_t VAR_1, int VAR_2,

                            int VAR_3, int VAR_4, int VAR_5)

{

    const char *VAR_6 = "flt3_arith";



    

    gen_op_cp1_64bitmode();

    switch (VAR_1) {

    case OPC_ALNV_PS:

        GEN_LOAD_REG_TN(T0, VAR_3);

        GEN_LOAD_FREG_FTN(DT0, VAR_4);

        GEN_LOAD_FREG_FTN(DT1, VAR_5);

        gen_op_float_alnv_ps();

        GEN_STORE_FTN_FREG(VAR_2, DT2);

        VAR_6 = "alnv.ps";

        break;

    case OPC_MADD_S:

        GEN_LOAD_FREG_FTN(WT0, VAR_4);

        GEN_LOAD_FREG_FTN(WT1, VAR_5);

        GEN_LOAD_FREG_FTN(WT2, VAR_3);

        gen_op_float_muladd_s();

        GEN_STORE_FTN_FREG(VAR_2, WT2);

        VAR_6 = "madd.s";

        break;

    case OPC_MADD_D:

        GEN_LOAD_FREG_FTN(DT0, VAR_4);

        GEN_LOAD_FREG_FTN(DT1, VAR_5);

        GEN_LOAD_FREG_FTN(DT2, VAR_3);

        gen_op_float_muladd_d();

        GEN_STORE_FTN_FREG(VAR_2, DT2);

        VAR_6 = "madd.d";

        break;

    case OPC_MADD_PS:

        GEN_LOAD_FREG_FTN(WT0, VAR_4);

        GEN_LOAD_FREG_FTN(WTH0, VAR_4);

        GEN_LOAD_FREG_FTN(WT1, VAR_5);

        GEN_LOAD_FREG_FTN(WTH1, VAR_5);

        GEN_LOAD_FREG_FTN(WT2, VAR_3);

        GEN_LOAD_FREG_FTN(WTH2, VAR_3);

        gen_op_float_muladd_ps();

        GEN_STORE_FTN_FREG(VAR_2, WT2);

        GEN_STORE_FTN_FREG(VAR_2, WTH2);

        VAR_6 = "madd.ps";

        break;

    case OPC_MSUB_S:

        GEN_LOAD_FREG_FTN(WT0, VAR_4);

        GEN_LOAD_FREG_FTN(WT1, VAR_5);

        GEN_LOAD_FREG_FTN(WT2, VAR_3);

        gen_op_float_mulsub_s();

        GEN_STORE_FTN_FREG(VAR_2, WT2);

        VAR_6 = "msub.s";

        break;

    case OPC_MSUB_D:

        GEN_LOAD_FREG_FTN(DT0, VAR_4);

        GEN_LOAD_FREG_FTN(DT1, VAR_5);

        GEN_LOAD_FREG_FTN(DT2, VAR_3);

        gen_op_float_mulsub_d();

        GEN_STORE_FTN_FREG(VAR_2, DT2);

        VAR_6 = "msub.d";

        break;

    case OPC_MSUB_PS:

        GEN_LOAD_FREG_FTN(WT0, VAR_4);

        GEN_LOAD_FREG_FTN(WTH0, VAR_4);

        GEN_LOAD_FREG_FTN(WT1, VAR_5);

        GEN_LOAD_FREG_FTN(WTH1, VAR_5);

        GEN_LOAD_FREG_FTN(WT2, VAR_3);

        GEN_LOAD_FREG_FTN(WTH2, VAR_3);

        gen_op_float_mulsub_ps();

        GEN_STORE_FTN_FREG(VAR_2, WT2);

        GEN_STORE_FTN_FREG(VAR_2, WTH2);

        VAR_6 = "msub.ps";

        break;

    case OPC_NMADD_S:

        GEN_LOAD_FREG_FTN(WT0, VAR_4);

        GEN_LOAD_FREG_FTN(WT1, VAR_5);

        GEN_LOAD_FREG_FTN(WT2, VAR_3);

        gen_op_float_nmuladd_s();

        GEN_STORE_FTN_FREG(VAR_2, WT2);

        VAR_6 = "nmadd.s";

        break;

    case OPC_NMADD_D:

        GEN_LOAD_FREG_FTN(DT0, VAR_4);

        GEN_LOAD_FREG_FTN(DT1, VAR_5);

        GEN_LOAD_FREG_FTN(DT2, VAR_3);

        gen_op_float_nmuladd_d();

        GEN_STORE_FTN_FREG(VAR_2, DT2);

        VAR_6 = "nmadd.d";

        break;

    case OPC_NMADD_PS:

        GEN_LOAD_FREG_FTN(WT0, VAR_4);

        GEN_LOAD_FREG_FTN(WTH0, VAR_4);

        GEN_LOAD_FREG_FTN(WT1, VAR_5);

        GEN_LOAD_FREG_FTN(WTH1, VAR_5);

        GEN_LOAD_FREG_FTN(WT2, VAR_3);

        GEN_LOAD_FREG_FTN(WTH2, VAR_3);

        gen_op_float_nmuladd_ps();

        GEN_STORE_FTN_FREG(VAR_2, WT2);

        GEN_STORE_FTN_FREG(VAR_2, WTH2);

        VAR_6 = "nmadd.ps";

        break;

    case OPC_NMSUB_S:

        GEN_LOAD_FREG_FTN(WT0, VAR_4);

        GEN_LOAD_FREG_FTN(WT1, VAR_5);

        GEN_LOAD_FREG_FTN(WT2, VAR_3);

        gen_op_float_nmulsub_s();

        GEN_STORE_FTN_FREG(VAR_2, WT2);

        VAR_6 = "nmsub.s";

        break;

    case OPC_NMSUB_D:

        GEN_LOAD_FREG_FTN(DT0, VAR_4);

        GEN_LOAD_FREG_FTN(DT1, VAR_5);

        GEN_LOAD_FREG_FTN(DT2, VAR_3);

        gen_op_float_nmulsub_d();

        GEN_STORE_FTN_FREG(VAR_2, DT2);

        VAR_6 = "nmsub.d";

        break;

    case OPC_NMSUB_PS:

        GEN_LOAD_FREG_FTN(WT0, VAR_4);

        GEN_LOAD_FREG_FTN(WTH0, VAR_4);

        GEN_LOAD_FREG_FTN(WT1, VAR_5);

        GEN_LOAD_FREG_FTN(WTH1, VAR_5);

        GEN_LOAD_FREG_FTN(WT2, VAR_3);

        GEN_LOAD_FREG_FTN(WTH2, VAR_3);

        gen_op_float_nmulsub_ps();

        GEN_STORE_FTN_FREG(VAR_2, WT2);

        GEN_STORE_FTN_FREG(VAR_2, WTH2);

        VAR_6 = "nmsub.ps";

        break;

    default:

        MIPS_INVAL(VAR_6);

        generate_exception (VAR_0, EXCP_RI);

        return;

    }

    MIPS_DEBUG("%s %s, %s, %s, %s", VAR_6, fregnames[VAR_2], fregnames[VAR_3],

               fregnames[VAR_4], fregnames[VAR_5]);

}

static void FUNC_0 (DisasContext *VAR_0, uint32_t VAR_1, int VAR_2,
int VAR_3, int VAR_4, int VAR_5)
{ const char *VAR_6 = "flt3_arith"; gen_op_cp1_64bitmode(); switch (VAR_1) { case OPC_ALNV_PS:
GEN_LOAD_REG_TN(T0, VAR_3); GEN_LOAD_FREG_FTN(DT0, VAR_4); GEN_LOAD_FREG_FTN(DT1, VAR_5); gen_op_float_alnv_ps(); GEN_STORE_FTN_FREG(VAR_2, DT2); VAR_6 = "alnv.ps"; break; case OPC_MADD_S:
GEN_LOAD_FREG_FTN(WT0, VAR_4); GEN_LOAD_FREG_FTN(WT1, VAR_5); GEN_LOAD_FREG_FTN(WT2, VAR_3); gen_op_float_muladd_s(); GEN_STORE_FTN_FREG(VAR_2, WT2); VAR_6 = "madd.s"; break; case OPC_MADD_D:
GEN_LOAD_FREG_FTN(DT0, VAR_4); GEN_LOAD_FREG_FTN(DT1, VAR_5); GEN_LOAD_FREG_FTN(DT2, VAR_3); gen_op_float_muladd_d(); GEN_STORE_FTN_FREG(VAR_2, DT2); VAR_6 = "madd.d"; break; case OPC_MADD_PS:
GEN_LOAD_FREG_FTN(WT0, VAR_4); GEN_LOAD_FREG_FTN(WTH0, VAR_4); GEN_LOAD_FREG_FTN(WT1, VAR_5); GEN_LOAD_FREG_FTN(WTH1, VAR_5); GEN_LOAD_FREG_FTN(WT2, VAR_3); GEN_LOAD_FREG_FTN(WTH2, VAR_3); gen_op_float_muladd_ps(); GEN_STORE_FTN_FREG(VAR_2, WT2); GEN_STORE_FTN_FREG(VAR_2, WTH2); VAR_6 = "madd.ps"; break; case OPC_MSUB_S:
GEN_LOAD_FREG_FTN(WT0, VAR_4); GEN_LOAD_FREG_FTN(WT1, VAR_5); GEN_LOAD_FREG_FTN(WT2, VAR_3); gen_op_float_mulsub_s(); GEN_STORE_FTN_FREG(VAR_2, WT2); VAR_6 = "msub.s"; break; case OPC_MSUB_D:
GEN_LOAD_FREG_FTN(DT0, VAR_4); GEN_LOAD_FREG_FTN(DT1, VAR_5); GEN_LOAD_FREG_FTN(DT2, VAR_3); gen_op_float_mulsub_d(); GEN_STORE_FTN_FREG(VAR_2, DT2); VAR_6 = "msub.d"; break; case OPC_MSUB_PS:
GEN_LOAD_FREG_FTN(WT0, VAR_4); GEN_LOAD_FREG_FTN(WTH0, VAR_4); GEN_LOAD_FREG_FTN(WT1, VAR_5); GEN_LOAD_FREG_FTN(WTH1, VAR_5); GEN_LOAD_FREG_FTN(WT2, VAR_3); GEN_LOAD_FREG_FTN(WTH2, VAR_3); gen_op_float_mulsub_ps(); GEN_STORE_FTN_FREG(VAR_2, WT2); GEN_STORE_FTN_FREG(VAR_2, WTH2); VAR_6 = "msub.ps"; break; case OPC_NMADD_S:
GEN_LOAD_FREG_FTN(WT0, VAR_4); GEN_LOAD_FREG_FTN(WT1, VAR_5); GEN_LOAD_FREG_FTN(WT2, VAR_3); gen_op_float_nmuladd_s(); GEN_STORE_FTN_FREG(VAR_2, WT2); VAR_6 = "nmadd.s"; break; case OPC_NMADD_D:
GEN_LOAD_FREG_FTN(DT0, VAR_4); GEN_LOAD_FREG_FTN(DT1, VAR_5); GEN_LOAD_FREG_FTN(DT2, VAR_3); gen_op_float_nmuladd_d(); GEN_STORE_FTN_FREG(VAR_2, DT2); VAR_6 = "nmadd.d"; break; case OPC_NMADD_PS:
GEN_LOAD_FREG_FTN(WT0, VAR_4); GEN_LOAD_FREG_FTN(WTH0, VAR_4); GEN_LOAD_FREG_FTN(WT1, VAR_5); GEN_LOAD_FREG_FTN(WTH1, VAR_5); GEN_LOAD_FREG_FTN(WT2, VAR_3); GEN_LOAD_FREG_FTN(WTH2, VAR_3); gen_op_float_nmuladd_ps(); GEN_STORE_FTN_FREG(VAR_2, WT2); GEN_STORE_FTN_FREG(VAR_2, WTH2); VAR_6 = "nmadd.ps"; break; case OPC_NMSUB_S:
GEN_LOAD_FREG_FTN(WT0, VAR_4); GEN_LOAD_FREG_FTN(WT1, VAR_5); GEN_LOAD_FREG_FTN(WT2, VAR_3); gen_op_float_nmulsub_s(); GEN_STORE_FTN_FREG(VAR_2, WT2); VAR_6 = "nmsub.s"; break; case OPC_NMSUB_D:
GEN_LOAD_FREG_FTN(DT0, VAR_4); GEN_LOAD_FREG_FTN(DT1, VAR_5); GEN_LOAD_FREG_FTN(DT2, VAR_3); gen_op_float_nmulsub_d(); GEN_STORE_FTN_FREG(VAR_2, DT2); VAR_6 = "nmsub.d"; break; case OPC_NMSUB_PS:
GEN_LOAD_FREG_FTN(WT0, VAR_4); GEN_LOAD_FREG_FTN(WTH0, VAR_4); GEN_LOAD_FREG_FTN(WT1, VAR_5); GEN_LOAD_FREG_FTN(WTH1, VAR_5); GEN_LOAD_FREG_FTN(WT2, VAR_3); GEN_LOAD_FREG_FTN(WTH2, VAR_3); gen_op_float_nmulsub_ps(); GEN_STORE_FTN_FREG(VAR_2, WT2); GEN_STORE_FTN_FREG(VAR_2, WTH2); VAR_6 = "nmsub.ps"; break; default:
MIPS_INVAL(VAR_6); generate_exception (VAR_0, EXCP_RI); return; } MIPS_DEBUG("%s %s, %s, %s, %s", VAR_6, fregnames[VAR_2], fregnames[VAR_3],
fregnames[VAR_4], fregnames[VAR_5]); }