static void gen_dmfc0 (DisasContext *ctx, int reg, int sel)

{

    const char *rn = "invalid";



    switch (reg) {

    case 0:

        switch (sel) {

        case 0:

           gen_op_mfc0_index();

            rn = "Index";

            break;

        case 1:

//         gen_op_dmfc0_mvpcontrol(); /* MT ASE */

            rn = "MVPControl";

//         break;

        case 2:

//         gen_op_dmfc0_mvpconf0(); /* MT ASE */

            rn = "MVPConf0";

//         break;

        case 3:

//         gen_op_dmfc0_mvpconf1(); /* MT ASE */

            rn = "MVPConf1";

//         break;

        default:

            goto die;

        }

        break;

    case 1:

        switch (sel) {

        case 0:

            gen_op_mfc0_random();

            rn = "Random";

           break;

        case 1:

//         gen_op_dmfc0_vpecontrol(); /* MT ASE */

            rn = "VPEControl";

//         break;

        case 2:

//         gen_op_dmfc0_vpeconf0(); /* MT ASE */

            rn = "VPEConf0";

//         break;

        case 3:

//         gen_op_dmfc0_vpeconf1(); /* MT ASE */

            rn = "VPEConf1";

//         break;

        case 4:

//         gen_op_dmfc0_YQMask(); /* MT ASE */

            rn = "YQMask";

//         break;

        case 5:

//         gen_op_dmfc0_vpeschedule(); /* MT ASE */

            rn = "VPESchedule";

//         break;

        case 6:

//         gen_op_dmfc0_vpeschefback(); /* MT ASE */

            rn = "VPEScheFBack";

//         break;

        case 7:

//         gen_op_dmfc0_vpeopt(); /* MT ASE */

            rn = "VPEOpt";

//         break;

        default:

            goto die;

        }

        break;

    case 2:

        switch (sel) {

        case 0:

           gen_op_dmfc0_entrylo0();

           rn = "EntryLo0";

           break;

        case 1:

//         gen_op_dmfc0_tcstatus(); /* MT ASE */

           rn = "TCStatus";

//         break;

        case 2:

//         gen_op_dmfc0_tcbind(); /* MT ASE */

           rn = "TCBind";

//         break;

        case 3:

//         gen_op_dmfc0_tcrestart(); /* MT ASE */

           rn = "TCRestart";

//         break;

        case 4:

//         gen_op_dmfc0_tchalt(); /* MT ASE */

           rn = "TCHalt";

//         break;

        case 5:

//         gen_op_dmfc0_tccontext(); /* MT ASE */

           rn = "TCContext";

//         break;

        case 6:

//         gen_op_dmfc0_tcschedule(); /* MT ASE */

           rn = "TCSchedule";

//         break;

        case 7:

//         gen_op_dmfc0_tcschefback(); /* MT ASE */

           rn = "TCScheFBack";

//         break;

        default:

            goto die;

        }

        break;

    case 3:

        switch (sel) {

        case 0:

           gen_op_dmfc0_entrylo1();

           rn = "EntryLo1";

           break;

        default:

            goto die;

       }

        break;

    case 4:

        switch (sel) {

        case 0:

           gen_op_dmfc0_context();

           rn = "Context";

           break;

        case 1:

//         gen_op_dmfc0_contextconfig(); /* SmartMIPS ASE */

           rn = "ContextConfig";

//         break;

        default:

            goto die;

       }

        break;

    case 5:

        switch (sel) {

        case 0:

           gen_op_mfc0_pagemask();

           rn = "PageMask";

           break;

        case 1:

           gen_op_mfc0_pagegrain();

           rn = "PageGrain";

           break;

        default:

            goto die;

       }

        break;

    case 6:

        switch (sel) {

        case 0:

           gen_op_mfc0_wired();

           rn = "Wired";

           break;

        case 1:

//         gen_op_dmfc0_srsconf0(); /* shadow registers */

           rn = "SRSConf0";

//         break;

        case 2:

//         gen_op_dmfc0_srsconf1(); /* shadow registers */

           rn = "SRSConf1";

//         break;

        case 3:

//         gen_op_dmfc0_srsconf2(); /* shadow registers */

           rn = "SRSConf2";

//         break;

        case 4:

//         gen_op_dmfc0_srsconf3(); /* shadow registers */

           rn = "SRSConf3";

//         break;

        case 5:

//         gen_op_dmfc0_srsconf4(); /* shadow registers */

           rn = "SRSConf4";

//         break;

        default:

            goto die;

       }

        break;

    case 7:

        switch (sel) {

        case 0:

           gen_op_mfc0_hwrena();

           rn = "HWREna";

           break;

        default:

            goto die;

       }

        break;

    case 8:

        switch (sel) {

        case 0:

           gen_op_dmfc0_badvaddr();

           rn = "BadVaddr";

           break;

        default:

            goto die;

       }

        break;

    case 9:

        switch (sel) {

        case 0:

           gen_op_mfc0_count();

           rn = "Count";

           break;

       /* 6,7 are implementation dependent */

        default:

            goto die;

       }

        break;

    case 10:

        switch (sel) {

        case 0:

           gen_op_dmfc0_entryhi();

           rn = "EntryHi";

           break;

        default:

            goto die;

       }

        break;

    case 11:

        switch (sel) {

        case 0:

           gen_op_mfc0_compare();

           rn = "Compare";

           break;

       /* 6,7 are implementation dependent */

        default:

            goto die;

       }

        break;

    case 12:

        switch (sel) {

        case 0:

           gen_op_mfc0_status();

           rn = "Status";

           break;

        case 1:

           gen_op_mfc0_intctl();

           rn = "IntCtl";

           break;

        case 2:

           gen_op_mfc0_srsctl();

           rn = "SRSCtl";

           break;

        case 3:

           gen_op_mfc0_srsmap(); /* shadow registers */

           rn = "SRSMap";

           break;

        default:

            goto die;

       }

        break;

    case 13:

        switch (sel) {

        case 0:

           gen_op_mfc0_cause();

           rn = "Cause";

           break;

        default:

            goto die;

       }

        break;

    case 14:

        switch (sel) {

        case 0:

           gen_op_dmfc0_epc();

           rn = "EPC";

           break;

        default:

            goto die;

       }

        break;

    case 15:

        switch (sel) {

        case 0:

           gen_op_mfc0_prid();

           rn = "PRid";

           break;

        case 1:

           gen_op_dmfc0_ebase();

           rn = "EBase";

           break;

        default:

            goto die;

       }

        break;

    case 16:

        switch (sel) {

        case 0:

           gen_op_mfc0_config0();

            rn = "Config";

            break;

        case 1:

           gen_op_mfc0_config1();

            rn = "Config1";

            break;

        case 2:

           gen_op_mfc0_config2();

            rn = "Config2";

            break;

        case 3:

           gen_op_mfc0_config3();

            rn = "Config3";

            break;

       /* 6,7 are implementation dependent */

        default:

            goto die;

        }

        break;

    case 17:

        switch (sel) {

        case 0:

           gen_op_dmfc0_lladdr();

           rn = "LLAddr";

           break;

        default:

            goto die;

        }

        break;

    case 18:

        switch (sel) {

        case 0:

           gen_op_dmfc0_watchlo0();

           rn = "WatchLo";

           break;

        case 1:

//         gen_op_dmfc0_watchlo1();

           rn = "WatchLo1";

//         break;

        case 2:

//         gen_op_dmfc0_watchlo2();

           rn = "WatchLo2";

//         break;

        case 3:

//         gen_op_dmfc0_watchlo3();

           rn = "WatchLo3";

//         break;

        case 4:

//         gen_op_dmfc0_watchlo4();

           rn = "WatchLo4";

//         break;

        case 5:

//         gen_op_dmfc0_watchlo5();

           rn = "WatchLo5";

//         break;

        case 6:

//         gen_op_dmfc0_watchlo6();

           rn = "WatchLo6";

//         break;

        case 7:

//         gen_op_dmfc0_watchlo7();

           rn = "WatchLo7";

//         break;

        default:

            goto die;

        }

        break;

    case 19:

        switch (sel) {

        case 0:

           gen_op_mfc0_watchhi0();

           rn = "WatchHi";

           break;

        case 1:

//         gen_op_mfc0_watchhi1();

           rn = "WatchHi1";

//         break;

        case 2:

//         gen_op_mfc0_watchhi2();

           rn = "WatchHi2";

//         break;

        case 3:

//         gen_op_mfc0_watchhi3();

           rn = "WatchHi3";

//         break;

        case 4:

//         gen_op_mfc0_watchhi4();

           rn = "WatchHi4";

//         break;

        case 5:

//         gen_op_mfc0_watchhi5();

           rn = "WatchHi5";

//         break;

        case 6:

//         gen_op_mfc0_watchhi6();

           rn = "WatchHi6";

//         break;

        case 7:

//         gen_op_mfc0_watchhi7();

           rn = "WatchHi7";

//         break;

        default:

            goto die;

        }

        break;

    case 20:

        switch (sel) {

        case 0:

           /* 64 bit MMU only */

           gen_op_dmfc0_xcontext();

           rn = "XContext";

           break;

        default:

            goto die;

        }

        break;

    case 21:

       /* Officially reserved, but sel 0 is used for R1x000 framemask */

        switch (sel) {

        case 0:

           gen_op_mfc0_framemask();

           rn = "Framemask";

           break;

        default:

            goto die;

        }

        break;

    case 22:

       /* ignored */

       rn = "'Diagnostic"; /* implementation dependent */

       break;

    case 23:

        switch (sel) {

        case 0:

           gen_op_mfc0_debug(); /* EJTAG support */

           rn = "Debug";

           break;

        case 1:

//         gen_op_dmfc0_tracecontrol(); /* PDtrace support */

           rn = "TraceControl";

//         break;

        case 2:

//         gen_op_dmfc0_tracecontrol2(); /* PDtrace support */

           rn = "TraceControl2";

//         break;

        case 3:

//         gen_op_dmfc0_usertracedata(); /* PDtrace support */

           rn = "UserTraceData";

//         break;

        case 4:

//         gen_op_dmfc0_debug(); /* PDtrace support */

           rn = "TraceBPC";

//         break;

        default:

            goto die;

        }

        break;

    case 24:

        switch (sel) {

        case 0:

           gen_op_dmfc0_depc(); /* EJTAG support */

           rn = "DEPC";

           break;

        default:

            goto die;

        }

        break;

    case 25:

        switch (sel) {

        case 0:

           gen_op_mfc0_performance0();

           rn = "Performance0";

            break;

        case 1:

//         gen_op_dmfc0_performance1();

           rn = "Performance1";

//         break;

        case 2:

//         gen_op_dmfc0_performance2();

           rn = "Performance2";

//         break;

        case 3:

//         gen_op_dmfc0_performance3();

           rn = "Performance3";

//         break;

        case 4:

//         gen_op_dmfc0_performance4();

           rn = "Performance4";

//         break;

        case 5:

//         gen_op_dmfc0_performance5();

           rn = "Performance5";

//         break;

        case 6:

//         gen_op_dmfc0_performance6();

           rn = "Performance6";

//         break;

        case 7:

//         gen_op_dmfc0_performance7();

           rn = "Performance7";

//         break;

        default:

            goto die;

        }

        break;

    case 26:

       rn = "ECC";

       break;

    case 27:

        switch (sel) {

        /* ignored */

        case 0 ... 3:

           rn = "CacheErr";

           break;

        default:

            goto die;

        }

        break;

    case 28:

        switch (sel) {

        case 0:

        case 2:

        case 4:

        case 6:

            gen_op_mfc0_taglo();

            rn = "TagLo";

            break;

        case 1:

        case 3:

        case 5:

        case 7:

            gen_op_mfc0_datalo();

            rn = "DataLo";

            break;

        default:

            goto die;

        }

        break;

    case 29:

        switch (sel) {

        case 0:

        case 2:

        case 4:

        case 6:

            gen_op_mfc0_taghi();

            rn = "TagHi";

            break;

        case 1:

        case 3:

        case 5:

        case 7:

            gen_op_mfc0_datahi();

            rn = "DataHi";

            break;

        default:

            goto die;

        }

        break;

    case 30:

        switch (sel) {

        case 0:

           gen_op_dmfc0_errorepc();

           rn = "ErrorEPC";

           break;

        default:

            goto die;

        }

        break;

    case 31:

        switch (sel) {

        case 0:

           gen_op_mfc0_desave(); /* EJTAG support */

           rn = "DESAVE";

           break;

        default:

            goto die;

        }

        break;

    default:

       goto die;

    }

#if defined MIPS_DEBUG_DISAS

    if (loglevel & CPU_LOG_TB_IN_ASM) {

        fprintf(logfile, "dmfc0 %s (reg %d sel %d)\n",

                rn, reg, sel);

    }

#endif

    return;



die:

#if defined MIPS_DEBUG_DISAS

    if (loglevel & CPU_LOG_TB_IN_ASM) {

        fprintf(logfile, "dmfc0 %s (reg %d sel %d)\n",

                rn, reg, sel);

    }

#endif

    generate_exception(ctx, EXCP_RI);

}

static void gen_dmfc0 (DisasContext *ctx, int reg, int sel)

{

    const char *rn = "invalid";



    switch (reg) {

    case 0:

        switch (sel) {

        case 0:

           gen_op_mfc0_index();

            rn = "Index";

            break;

        case 1:



            rn = "MVPControl";



        case 2:



            rn = "MVPConf0";



        case 3:



            rn = "MVPConf1";



        default:

            goto die;

        }

        break;

    case 1:

        switch (sel) {

        case 0:

            gen_op_mfc0_random();

            rn = "Random";

           break;

        case 1:



            rn = "VPEControl";



        case 2:



            rn = "VPEConf0";



        case 3:



            rn = "VPEConf1";



        case 4:



            rn = "YQMask";



        case 5:



            rn = "VPESchedule";



        case 6:



            rn = "VPEScheFBack";



        case 7:



            rn = "VPEOpt";



        default:

            goto die;

        }

        break;

    case 2:

        switch (sel) {

        case 0:

           gen_op_dmfc0_entrylo0();

           rn = "EntryLo0";

           break;

        case 1:



           rn = "TCStatus";



        case 2:



           rn = "TCBind";



        case 3:



           rn = "TCRestart";



        case 4:



           rn = "TCHalt";



        case 5:



           rn = "TCContext";



        case 6:



           rn = "TCSchedule";



        case 7:



           rn = "TCScheFBack";



        default:

            goto die;

        }

        break;

    case 3:

        switch (sel) {

        case 0:

           gen_op_dmfc0_entrylo1();

           rn = "EntryLo1";

           break;

        default:

            goto die;

       }

        break;

    case 4:

        switch (sel) {

        case 0:

           gen_op_dmfc0_context();

           rn = "Context";

           break;

        case 1:



           rn = "ContextConfig";



        default:

            goto die;

       }

        break;

    case 5:

        switch (sel) {

        case 0:

           gen_op_mfc0_pagemask();

           rn = "PageMask";

           break;

        case 1:

           gen_op_mfc0_pagegrain();

           rn = "PageGrain";

           break;

        default:

            goto die;

       }

        break;

    case 6:

        switch (sel) {

        case 0:

           gen_op_mfc0_wired();

           rn = "Wired";

           break;

        case 1:



           rn = "SRSConf0";



        case 2:



           rn = "SRSConf1";



        case 3:



           rn = "SRSConf2";



        case 4:



           rn = "SRSConf3";



        case 5:



           rn = "SRSConf4";



        default:

            goto die;

       }

        break;

    case 7:

        switch (sel) {

        case 0:

           gen_op_mfc0_hwrena();

           rn = "HWREna";

           break;

        default:

            goto die;

       }

        break;

    case 8:

        switch (sel) {

        case 0:

           gen_op_dmfc0_badvaddr();

           rn = "BadVaddr";

           break;

        default:

            goto die;

       }

        break;

    case 9:

        switch (sel) {

        case 0:

           gen_op_mfc0_count();

           rn = "Count";

           break;

       

        default:

            goto die;

       }

        break;

    case 10:

        switch (sel) {

        case 0:

           gen_op_dmfc0_entryhi();

           rn = "EntryHi";

           break;

        default:

            goto die;

       }

        break;

    case 11:

        switch (sel) {

        case 0:

           gen_op_mfc0_compare();

           rn = "Compare";

           break;

       

        default:

            goto die;

       }

        break;

    case 12:

        switch (sel) {

        case 0:

           gen_op_mfc0_status();

           rn = "Status";

           break;

        case 1:

           gen_op_mfc0_intctl();

           rn = "IntCtl";

           break;

        case 2:

           gen_op_mfc0_srsctl();

           rn = "SRSCtl";

           break;

        case 3:

           gen_op_mfc0_srsmap(); 

           rn = "SRSMap";

           break;

        default:

            goto die;

       }

        break;

    case 13:

        switch (sel) {

        case 0:

           gen_op_mfc0_cause();

           rn = "Cause";

           break;

        default:

            goto die;

       }

        break;

    case 14:

        switch (sel) {

        case 0:

           gen_op_dmfc0_epc();

           rn = "EPC";

           break;

        default:

            goto die;

       }

        break;

    case 15:

        switch (sel) {

        case 0:

           gen_op_mfc0_prid();

           rn = "PRid";

           break;

        case 1:

           gen_op_dmfc0_ebase();

           rn = "EBase";

           break;

        default:

            goto die;

       }

        break;

    case 16:

        switch (sel) {

        case 0:

           gen_op_mfc0_config0();

            rn = "Config";

            break;

        case 1:

           gen_op_mfc0_config1();

            rn = "Config1";

            break;

        case 2:

           gen_op_mfc0_config2();

            rn = "Config2";

            break;

        case 3:

           gen_op_mfc0_config3();

            rn = "Config3";

            break;

       

        default:

            goto die;

        }

        break;

    case 17:

        switch (sel) {

        case 0:

           gen_op_dmfc0_lladdr();

           rn = "LLAddr";

           break;

        default:

            goto die;

        }

        break;

    case 18:

        switch (sel) {

        case 0:

           gen_op_dmfc0_watchlo0();

           rn = "WatchLo";

           break;

        case 1:



           rn = "WatchLo1";



        case 2:



           rn = "WatchLo2";



        case 3:



           rn = "WatchLo3";



        case 4:



           rn = "WatchLo4";



        case 5:



           rn = "WatchLo5";



        case 6:



           rn = "WatchLo6";



        case 7:



           rn = "WatchLo7";



        default:

            goto die;

        }

        break;

    case 19:

        switch (sel) {

        case 0:

           gen_op_mfc0_watchhi0();

           rn = "WatchHi";

           break;

        case 1:



           rn = "WatchHi1";



        case 2:



           rn = "WatchHi2";



        case 3:



           rn = "WatchHi3";



        case 4:



           rn = "WatchHi4";



        case 5:



           rn = "WatchHi5";



        case 6:



           rn = "WatchHi6";



        case 7:



           rn = "WatchHi7";



        default:

            goto die;

        }

        break;

    case 20:

        switch (sel) {

        case 0:

           

           gen_op_dmfc0_xcontext();

           rn = "XContext";

           break;

        default:

            goto die;

        }

        break;

    case 21:

       

        switch (sel) {

        case 0:

           gen_op_mfc0_framemask();

           rn = "Framemask";

           break;

        default:

            goto die;

        }

        break;

    case 22:

       

       rn = "'Diagnostic"; 

       break;

    case 23:

        switch (sel) {

        case 0:

           gen_op_mfc0_debug(); 

           rn = "Debug";

           break;

        case 1:



           rn = "TraceControl";



        case 2:



           rn = "TraceControl2";



        case 3:



           rn = "UserTraceData";



        case 4:



           rn = "TraceBPC";



        default:

            goto die;

        }

        break;

    case 24:

        switch (sel) {

        case 0:

           gen_op_dmfc0_depc(); 

           rn = "DEPC";

           break;

        default:

            goto die;

        }

        break;

    case 25:

        switch (sel) {

        case 0:

           gen_op_mfc0_performance0();

           rn = "Performance0";

            break;

        case 1:



           rn = "Performance1";



        case 2:



           rn = "Performance2";



        case 3:



           rn = "Performance3";



        case 4:



           rn = "Performance4";



        case 5:



           rn = "Performance5";



        case 6:



           rn = "Performance6";



        case 7:



           rn = "Performance7";



        default:

            goto die;

        }

        break;

    case 26:

       rn = "ECC";

       break;

    case 27:

        switch (sel) {

        

        case 0 ... 3:

           rn = "CacheErr";

           break;

        default:

            goto die;

        }

        break;

    case 28:

        switch (sel) {

        case 0:

        case 2:

        case 4:

        case 6:

            gen_op_mfc0_taglo();

            rn = "TagLo";

            break;

        case 1:

        case 3:

        case 5:

        case 7:

            gen_op_mfc0_datalo();

            rn = "DataLo";

            break;

        default:

            goto die;

        }

        break;

    case 29:

        switch (sel) {

        case 0:

        case 2:

        case 4:

        case 6:

            gen_op_mfc0_taghi();

            rn = "TagHi";

            break;

        case 1:

        case 3:

        case 5:

        case 7:

            gen_op_mfc0_datahi();

            rn = "DataHi";

            break;

        default:

            goto die;

        }

        break;

    case 30:

        switch (sel) {

        case 0:

           gen_op_dmfc0_errorepc();

           rn = "ErrorEPC";

           break;

        default:

            goto die;

        }

        break;

    case 31:

        switch (sel) {

        case 0:

           gen_op_mfc0_desave(); 

           rn = "DESAVE";

           break;

        default:

            goto die;

        }

        break;

    default:

       goto die;

    }

#if defined MIPS_DEBUG_DISAS

    if (loglevel & CPU_LOG_TB_IN_ASM) {

        fprintf(logfile, "dmfc0 %s (reg %d sel %d)\n",

                rn, reg, sel);

    }

#endif

    return;



die:

#if defined MIPS_DEBUG_DISAS

    if (loglevel & CPU_LOG_TB_IN_ASM) {

        fprintf(logfile, "dmfc0 %s (reg %d sel %d)\n",

                rn, reg, sel);

    }

#endif

    generate_exception(ctx, EXCP_RI);

}

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

{

    const char *VAR_3 = "invalid";



    switch (VAR_1) {

    case 0:

        switch (VAR_2) {

        case 0:

           gen_op_mfc0_index();

            VAR_3 = "Index";

            break;

        case 1:



            VAR_3 = "MVPControl";



        case 2:



            VAR_3 = "MVPConf0";



        case 3:



            VAR_3 = "MVPConf1";



        default:

            goto die;

        }

        break;

    case 1:

        switch (VAR_2) {

        case 0:

            gen_op_mfc0_random();

            VAR_3 = "Random";

           break;

        case 1:



            VAR_3 = "VPEControl";



        case 2:



            VAR_3 = "VPEConf0";



        case 3:



            VAR_3 = "VPEConf1";



        case 4:



            VAR_3 = "YQMask";



        case 5:



            VAR_3 = "VPESchedule";



        case 6:



            VAR_3 = "VPEScheFBack";



        case 7:



            VAR_3 = "VPEOpt";



        default:

            goto die;

        }

        break;

    case 2:

        switch (VAR_2) {

        case 0:

           gen_op_dmfc0_entrylo0();

           VAR_3 = "EntryLo0";

           break;

        case 1:



           VAR_3 = "TCStatus";



        case 2:



           VAR_3 = "TCBind";



        case 3:



           VAR_3 = "TCRestart";



        case 4:



           VAR_3 = "TCHalt";



        case 5:



           VAR_3 = "TCContext";



        case 6:



           VAR_3 = "TCSchedule";



        case 7:



           VAR_3 = "TCScheFBack";



        default:

            goto die;

        }

        break;

    case 3:

        switch (VAR_2) {

        case 0:

           gen_op_dmfc0_entrylo1();

           VAR_3 = "EntryLo1";

           break;

        default:

            goto die;

       }

        break;

    case 4:

        switch (VAR_2) {

        case 0:

           gen_op_dmfc0_context();

           VAR_3 = "Context";

           break;

        case 1:



           VAR_3 = "ContextConfig";



        default:

            goto die;

       }

        break;

    case 5:

        switch (VAR_2) {

        case 0:

           gen_op_mfc0_pagemask();

           VAR_3 = "PageMask";

           break;

        case 1:

           gen_op_mfc0_pagegrain();

           VAR_3 = "PageGrain";

           break;

        default:

            goto die;

       }

        break;

    case 6:

        switch (VAR_2) {

        case 0:

           gen_op_mfc0_wired();

           VAR_3 = "Wired";

           break;

        case 1:



           VAR_3 = "SRSConf0";



        case 2:



           VAR_3 = "SRSConf1";



        case 3:



           VAR_3 = "SRSConf2";



        case 4:



           VAR_3 = "SRSConf3";



        case 5:



           VAR_3 = "SRSConf4";



        default:

            goto die;

       }

        break;

    case 7:

        switch (VAR_2) {

        case 0:

           gen_op_mfc0_hwrena();

           VAR_3 = "HWREna";

           break;

        default:

            goto die;

       }

        break;

    case 8:

        switch (VAR_2) {

        case 0:

           gen_op_dmfc0_badvaddr();

           VAR_3 = "BadVaddr";

           break;

        default:

            goto die;

       }

        break;

    case 9:

        switch (VAR_2) {

        case 0:

           gen_op_mfc0_count();

           VAR_3 = "Count";

           break;

       

        default:

            goto die;

       }

        break;

    case 10:

        switch (VAR_2) {

        case 0:

           gen_op_dmfc0_entryhi();

           VAR_3 = "EntryHi";

           break;

        default:

            goto die;

       }

        break;

    case 11:

        switch (VAR_2) {

        case 0:

           gen_op_mfc0_compare();

           VAR_3 = "Compare";

           break;

       

        default:

            goto die;

       }

        break;

    case 12:

        switch (VAR_2) {

        case 0:

           gen_op_mfc0_status();

           VAR_3 = "Status";

           break;

        case 1:

           gen_op_mfc0_intctl();

           VAR_3 = "IntCtl";

           break;

        case 2:

           gen_op_mfc0_srsctl();

           VAR_3 = "SRSCtl";

           break;

        case 3:

           gen_op_mfc0_srsmap(); 

           VAR_3 = "SRSMap";

           break;

        default:

            goto die;

       }

        break;

    case 13:

        switch (VAR_2) {

        case 0:

           gen_op_mfc0_cause();

           VAR_3 = "Cause";

           break;

        default:

            goto die;

       }

        break;

    case 14:

        switch (VAR_2) {

        case 0:

           gen_op_dmfc0_epc();

           VAR_3 = "EPC";

           break;

        default:

            goto die;

       }

        break;

    case 15:

        switch (VAR_2) {

        case 0:

           gen_op_mfc0_prid();

           VAR_3 = "PRid";

           break;

        case 1:

           gen_op_dmfc0_ebase();

           VAR_3 = "EBase";

           break;

        default:

            goto die;

       }

        break;

    case 16:

        switch (VAR_2) {

        case 0:

           gen_op_mfc0_config0();

            VAR_3 = "Config";

            break;

        case 1:

           gen_op_mfc0_config1();

            VAR_3 = "Config1";

            break;

        case 2:

           gen_op_mfc0_config2();

            VAR_3 = "Config2";

            break;

        case 3:

           gen_op_mfc0_config3();

            VAR_3 = "Config3";

            break;

       

        default:

            goto die;

        }

        break;

    case 17:

        switch (VAR_2) {

        case 0:

           gen_op_dmfc0_lladdr();

           VAR_3 = "LLAddr";

           break;

        default:

            goto die;

        }

        break;

    case 18:

        switch (VAR_2) {

        case 0:

           gen_op_dmfc0_watchlo0();

           VAR_3 = "WatchLo";

           break;

        case 1:



           VAR_3 = "WatchLo1";



        case 2:



           VAR_3 = "WatchLo2";



        case 3:



           VAR_3 = "WatchLo3";



        case 4:



           VAR_3 = "WatchLo4";



        case 5:



           VAR_3 = "WatchLo5";



        case 6:



           VAR_3 = "WatchLo6";



        case 7:



           VAR_3 = "WatchLo7";



        default:

            goto die;

        }

        break;

    case 19:

        switch (VAR_2) {

        case 0:

           gen_op_mfc0_watchhi0();

           VAR_3 = "WatchHi";

           break;

        case 1:



           VAR_3 = "WatchHi1";



        case 2:



           VAR_3 = "WatchHi2";



        case 3:



           VAR_3 = "WatchHi3";



        case 4:



           VAR_3 = "WatchHi4";



        case 5:



           VAR_3 = "WatchHi5";



        case 6:



           VAR_3 = "WatchHi6";



        case 7:



           VAR_3 = "WatchHi7";



        default:

            goto die;

        }

        break;

    case 20:

        switch (VAR_2) {

        case 0:

           

           gen_op_dmfc0_xcontext();

           VAR_3 = "XContext";

           break;

        default:

            goto die;

        }

        break;

    case 21:

       

        switch (VAR_2) {

        case 0:

           gen_op_mfc0_framemask();

           VAR_3 = "Framemask";

           break;

        default:

            goto die;

        }

        break;

    case 22:

       

       VAR_3 = "'Diagnostic"; 

       break;

    case 23:

        switch (VAR_2) {

        case 0:

           gen_op_mfc0_debug(); 

           VAR_3 = "Debug";

           break;

        case 1:



           VAR_3 = "TraceControl";



        case 2:



           VAR_3 = "TraceControl2";



        case 3:



           VAR_3 = "UserTraceData";



        case 4:



           VAR_3 = "TraceBPC";



        default:

            goto die;

        }

        break;

    case 24:

        switch (VAR_2) {

        case 0:

           gen_op_dmfc0_depc(); 

           VAR_3 = "DEPC";

           break;

        default:

            goto die;

        }

        break;

    case 25:

        switch (VAR_2) {

        case 0:

           gen_op_mfc0_performance0();

           VAR_3 = "Performance0";

            break;

        case 1:



           VAR_3 = "Performance1";



        case 2:



           VAR_3 = "Performance2";



        case 3:



           VAR_3 = "Performance3";



        case 4:



           VAR_3 = "Performance4";



        case 5:



           VAR_3 = "Performance5";



        case 6:



           VAR_3 = "Performance6";



        case 7:



           VAR_3 = "Performance7";



        default:

            goto die;

        }

        break;

    case 26:

       VAR_3 = "ECC";

       break;

    case 27:

        switch (VAR_2) {

        

        case 0 ... 3:

           VAR_3 = "CacheErr";

           break;

        default:

            goto die;

        }

        break;

    case 28:

        switch (VAR_2) {

        case 0:

        case 2:

        case 4:

        case 6:

            gen_op_mfc0_taglo();

            VAR_3 = "TagLo";

            break;

        case 1:

        case 3:

        case 5:

        case 7:

            gen_op_mfc0_datalo();

            VAR_3 = "DataLo";

            break;

        default:

            goto die;

        }

        break;

    case 29:

        switch (VAR_2) {

        case 0:

        case 2:

        case 4:

        case 6:

            gen_op_mfc0_taghi();

            VAR_3 = "TagHi";

            break;

        case 1:

        case 3:

        case 5:

        case 7:

            gen_op_mfc0_datahi();

            VAR_3 = "DataHi";

            break;

        default:

            goto die;

        }

        break;

    case 30:

        switch (VAR_2) {

        case 0:

           gen_op_dmfc0_errorepc();

           VAR_3 = "ErrorEPC";

           break;

        default:

            goto die;

        }

        break;

    case 31:

        switch (VAR_2) {

        case 0:

           gen_op_mfc0_desave(); 

           VAR_3 = "DESAVE";

           break;

        default:

            goto die;

        }

        break;

    default:

       goto die;

    }

#if defined MIPS_DEBUG_DISAS

    if (loglevel & CPU_LOG_TB_IN_ASM) {

        fprintf(logfile, "dmfc0 %s (VAR_1 %d VAR_2 %d)\n",

                VAR_3, VAR_1, VAR_2);

    }

#endif

    return;



die:

#if defined MIPS_DEBUG_DISAS

    if (loglevel & CPU_LOG_TB_IN_ASM) {

        fprintf(logfile, "dmfc0 %s (VAR_1 %d VAR_2 %d)\n",

                VAR_3, VAR_1, VAR_2);

    }

#endif

    generate_exception(VAR_0, EXCP_RI);

}

static void FUNC_0 (DisasContext *VAR_0, int VAR_1, int VAR_2)
{ const char *VAR_3 = "invalid"; switch (VAR_1) { case 0:
switch (VAR_2) { case 0:
gen_op_mfc0_index(); VAR_3 = "Index"; break; case 1:
VAR_3 = "MVPControl"; case 2:
VAR_3 = "MVPConf0"; case 3:
VAR_3 = "MVPConf1"; default:
goto die; } break; case 1:
switch (VAR_2) { case 0:
gen_op_mfc0_random(); VAR_3 = "Random"; break; case 1:
VAR_3 = "VPEControl"; case 2:
VAR_3 = "VPEConf0"; case 3:
VAR_3 = "VPEConf1"; case 4:
VAR_3 = "YQMask"; case 5:
VAR_3 = "VPESchedule"; case 6:
VAR_3 = "VPEScheFBack"; case 7:
VAR_3 = "VPEOpt"; default:
goto die; } break; case 2:
switch (VAR_2) { case 0:
gen_op_dmfc0_entrylo0(); VAR_3 = "EntryLo0"; break; case 1:
VAR_3 = "TCStatus"; case 2:
VAR_3 = "TCBind"; case 3:
VAR_3 = "TCRestart"; case 4:
VAR_3 = "TCHalt"; case 5:
VAR_3 = "TCContext"; case 6:
VAR_3 = "TCSchedule"; case 7:
VAR_3 = "TCScheFBack"; default:
goto die; } break; case 3:
switch (VAR_2) { case 0:
gen_op_dmfc0_entrylo1(); VAR_3 = "EntryLo1"; break; default:
goto die; } break; case 4:
switch (VAR_2) { case 0:
gen_op_dmfc0_context(); VAR_3 = "Context"; break; case 1:
VAR_3 = "ContextConfig"; default:
goto die; } break; case 5:
switch (VAR_2) { case 0:
gen_op_mfc0_pagemask(); VAR_3 = "PageMask"; break; case 1:
gen_op_mfc0_pagegrain(); VAR_3 = "PageGrain"; break; default:
goto die; } break; case 6:
switch (VAR_2) { case 0:
gen_op_mfc0_wired(); VAR_3 = "Wired"; break; case 1:
VAR_3 = "SRSConf0"; case 2:
VAR_3 = "SRSConf1"; case 3:
VAR_3 = "SRSConf2"; case 4:
VAR_3 = "SRSConf3"; case 5:
VAR_3 = "SRSConf4"; default:
goto die; } break; case 7:
switch (VAR_2) { case 0:
gen_op_mfc0_hwrena(); VAR_3 = "HWREna"; break; default:
goto die; } break; case 8:
switch (VAR_2) { case 0:
gen_op_dmfc0_badvaddr(); VAR_3 = "BadVaddr"; break; default:
goto die; } break; case 9:
switch (VAR_2) { case 0:
gen_op_mfc0_count(); VAR_3 = "Count"; break; default:
goto die; } break; case 10:
switch (VAR_2) { case 0:
gen_op_dmfc0_entryhi(); VAR_3 = "EntryHi"; break; default:
goto die; } break; case 11:
switch (VAR_2) { case 0:
gen_op_mfc0_compare(); VAR_3 = "Compare"; break; default:
goto die; } break; case 12:
switch (VAR_2) { case 0:
gen_op_mfc0_status(); VAR_3 = "Status"; break; case 1:
gen_op_mfc0_intctl(); VAR_3 = "IntCtl"; break; case 2:
gen_op_mfc0_srsctl(); VAR_3 = "SRSCtl"; break; case 3:
gen_op_mfc0_srsmap(); VAR_3 = "SRSMap"; break; default:
goto die; } break; case 13:
switch (VAR_2) { case 0:
gen_op_mfc0_cause(); VAR_3 = "Cause"; break; default:
goto die; } break; case 14:
switch (VAR_2) { case 0:
gen_op_dmfc0_epc(); VAR_3 = "EPC"; break; default:
goto die; } break; case 15:
switch (VAR_2) { case 0:
gen_op_mfc0_prid(); VAR_3 = "PRid"; break; case 1:
gen_op_dmfc0_ebase(); VAR_3 = "EBase"; break; default:
goto die; } break; case 16:
switch (VAR_2) { case 0:
gen_op_mfc0_config0(); VAR_3 = "Config"; break; case 1:
gen_op_mfc0_config1(); VAR_3 = "Config1"; break; case 2:
gen_op_mfc0_config2(); VAR_3 = "Config2"; break; case 3:
gen_op_mfc0_config3(); VAR_3 = "Config3"; break; default:
goto die; } break; case 17:
switch (VAR_2) { case 0:
gen_op_dmfc0_lladdr(); VAR_3 = "LLAddr"; break; default:
goto die; } break; case 18:
switch (VAR_2) { case 0:
gen_op_dmfc0_watchlo0(); VAR_3 = "WatchLo"; break; case 1:
VAR_3 = "WatchLo1"; case 2:
VAR_3 = "WatchLo2"; case 3:
VAR_3 = "WatchLo3"; case 4:
VAR_3 = "WatchLo4"; case 5:
VAR_3 = "WatchLo5"; case 6:
VAR_3 = "WatchLo6"; case 7:
VAR_3 = "WatchLo7"; default:
goto die; } break; case 19:
switch (VAR_2) { case 0:
gen_op_mfc0_watchhi0(); VAR_3 = "WatchHi"; break; case 1:
VAR_3 = "WatchHi1"; case 2:
VAR_3 = "WatchHi2"; case 3:
VAR_3 = "WatchHi3"; case 4:
VAR_3 = "WatchHi4"; case 5:
VAR_3 = "WatchHi5"; case 6:
VAR_3 = "WatchHi6"; case 7:
VAR_3 = "WatchHi7"; default:
goto die; } break; case 20:
switch (VAR_2) { case 0:
gen_op_dmfc0_xcontext(); VAR_3 = "XContext"; break; default:
goto die; } break; case 21:
switch (VAR_2) { case 0:
gen_op_mfc0_framemask(); VAR_3 = "Framemask"; break; default:
goto die; } break; case 22:
VAR_3 = "'Diagnostic"; break; case 23:
switch (VAR_2) { case 0:
gen_op_mfc0_debug(); VAR_3 = "Debug"; break; case 1:
VAR_3 = "TraceControl"; case 2:
VAR_3 = "TraceControl2"; case 3:
VAR_3 = "UserTraceData"; case 4:
VAR_3 = "TraceBPC"; default:
goto die; } break; case 24:
switch (VAR_2) { case 0:
gen_op_dmfc0_depc(); VAR_3 = "DEPC"; break; default:
goto die; } break; case 25:
switch (VAR_2) { case 0:
gen_op_mfc0_performance0(); VAR_3 = "Performance0"; break; case 1:
VAR_3 = "Performance1"; case 2:
VAR_3 = "Performance2"; case 3:
VAR_3 = "Performance3"; case 4:
VAR_3 = "Performance4"; case 5:
VAR_3 = "Performance5"; case 6:
VAR_3 = "Performance6"; case 7:
VAR_3 = "Performance7"; default:
goto die; } break; case 26:
VAR_3 = "ECC"; break; case 27:
switch (VAR_2) { case 0 ... 3:
VAR_3 = "CacheErr"; break; default:
goto die; } break; case 28:
switch (VAR_2) { case 0:
case 2:
case 4:
case 6:
gen_op_mfc0_taglo(); VAR_3 = "TagLo"; break; case 1:
case 3:
case 5:
case 7:
gen_op_mfc0_datalo(); VAR_3 = "DataLo"; break; default:
goto die; } break; case 29:
switch (VAR_2) { case 0:
case 2:
case 4:
case 6:
gen_op_mfc0_taghi(); VAR_3 = "TagHi"; break; case 1:
case 3:
case 5:
case 7:
gen_op_mfc0_datahi(); VAR_3 = "DataHi"; break; default:
goto die; } break; case 30:
switch (VAR_2) { case 0:
gen_op_dmfc0_errorepc(); VAR_3 = "ErrorEPC"; break; default:
goto die; } break; case 31:
switch (VAR_2) { case 0:
gen_op_mfc0_desave(); VAR_3 = "DESAVE"; break; default:
goto die; } break; default:
goto die; } #if defined MIPS_DEBUG_DISAS
if (loglevel & CPU_LOG_TB_IN_ASM) { fprintf(logfile, "dmfc0 %s (VAR_1 %d VAR_2 %d)\n",
VAR_3, VAR_1, VAR_2); } #endif
return; die:
#if defined MIPS_DEBUG_DISAS
if (loglevel & CPU_LOG_TB_IN_ASM) { fprintf(logfile, "dmfc0 %s (VAR_1 %d VAR_2 %d)\n",
VAR_3, VAR_1, VAR_2); } #endif
generate_exception(VAR_0, EXCP_RI); }