⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 translate_init.c

📁 qemu虚拟机代码
💻 C
📖 第 1 页 / 共 4 页
字号:
#endif#if defined (TODO)    /* MPC745P (G3) */    {        .name        = "745p",        .pvr         = CPU_PPC_74xP,        .pvr_mask    = 0xFFFFF000,        .insns_flags = PPC_INSNS_7x5,        .flags       = PPC_FLAGS_7x5,        .msr_mask    = 0x000000000007FF77,    },#endif    /* MPC750P (G3) */    {        .name        = "750p",        .pvr         = CPU_PPC_74xP,        .pvr_mask    = 0xFFFFF000,        .insns_flags = PPC_INSNS_7x0,        .flags       = PPC_FLAGS_7x0,        .msr_mask    = 0x000000000007FF77,    },#if defined (TODO)    /* MPC755P (G3) */    {        .name        = "755p",        .pvr         = CPU_PPC_74xP,        .pvr_mask    = 0xFFFFF000,        .insns_flags = PPC_INSNS_7x5,        .flags       = PPC_FLAGS_7x5,        .msr_mask    = 0x000000000007FF77,    },#endif    /* IBM 750CXe (G3 embedded) */    {        .name        = "750cxe",        .pvr         = CPU_PPC_750CXE,        .pvr_mask    = 0xFFFFF000,        .insns_flags = PPC_INSNS_7x0,        .flags       = PPC_FLAGS_7x0,        .msr_mask    = 0x000000000007FF77,    },    /* IBM 750FX (G3 embedded) */    {        .name        = "750fx",        .pvr         = CPU_PPC_750FX,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_7x0,        .flags       = PPC_FLAGS_7x0,        .msr_mask    = 0x000000000007FF77,    },    /* IBM 750GX (G3 embedded) */    {        .name        = "750gx",        .pvr         = CPU_PPC_750GX,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_7x0,        .flags       = PPC_FLAGS_7x0,        .msr_mask    = 0x000000000007FF77,    },#if defined (TODO)    /* generic G4 */    {        .name        = "G4",        .pvr         = CPU_PPC_7400,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_74xx,        .flags       = PPC_FLAGS_74xx,        .msr_mask    = 0x000000000205FF77,    },#endif#if defined (TODO)    /* PPC 7400 (G4) */    {        .name        = "7400",        .pvr         = CPU_PPC_7400,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_74xx,        .flags       = PPC_FLAGS_74xx,        .msr_mask    = 0x000000000205FF77,    },    {        .name        = "Max",        .pvr         = CPU_PPC_7400,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_74xx,        .flags       = PPC_FLAGS_74xx,        .msr_mask    = 0x000000000205FF77,    },#endif#if defined (TODO)    /* PPC 7410 (G4) */    {        .name        = "7410",        .pvr         = CPU_PPC_7410,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_74xx,        .flags       = PPC_FLAGS_74xx,        .msr_mask    = 0x000000000205FF77,    },    {        .name        = "Nitro",        .pvr         = CPU_PPC_7410,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_74xx,        .flags       = PPC_FLAGS_74xx,        .msr_mask    = 0x000000000205FF77,    },#endif    /* XXX: 7441 */    /* XXX: 7445 */    /* XXX: 7447 */    /* XXX: 7447A */#if defined (TODO)    /* PPC 7450 (G4) */    {        .name        = "7450",        .pvr         = CPU_PPC_7450,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_74xx,        .flags       = PPC_FLAGS_74xx,        .msr_mask    = 0x000000000205FF77,    },    {        .name        = "Vger",        .pvr         = CPU_PPC_7450,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_74xx,        .flags       = PPC_FLAGS_74xx,        .msr_mask    = 0x000000000205FF77,    },#endif    /* XXX: 7451 */#if defined (TODO)    /* PPC 7455 (G4) */    {        .name        = "7455",        .pvr         = CPU_PPC_7455,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_74xx,        .flags       = PPC_FLAGS_74xx,        .msr_mask    = 0x000000000205FF77,    },    {        .name        = "Apollo 6",        .pvr         = CPU_PPC_7455,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_74xx,        .flags       = PPC_FLAGS_74xx,        .msr_mask    = 0x000000000205FF77,    },#endif#if defined (TODO)    /* PPC 7457 (G4) */    {        .name        = "7457",        .pvr         = CPU_PPC_7457,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_74xx,        .flags       = PPC_FLAGS_74xx,        .msr_mask    = 0x000000000205FF77,    },    {        .name        = "Apollo 7",        .pvr         = CPU_PPC_7457,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_74xx,        .flags       = PPC_FLAGS_74xx,        .msr_mask    = 0x000000000205FF77,    },#endif#if defined (TODO)    /* PPC 7457A (G4) */    {        .name        = "7457A",        .pvr         = CPU_PPC_7457A,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_74xx,        .flags       = PPC_FLAGS_74xx,        .msr_mask    = 0x000000000205FF77,    },    {        .name        = "Apollo 7 PM",        .pvr         = CPU_PPC_7457A,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_74xx,        .flags       = PPC_FLAGS_74xx,        .msr_mask    = 0x000000000205FF77,    },#endif    /* 64 bits PPC */#if defined (TODO)    /* PPC 620 */    {        .name        = "620",        .pvr         = CPU_PPC_620,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_620,        .flags       = PPC_FLAGS_620,        .msr_mask    = 0x800000000005FF73,    },#endif#if defined (TODO)    /* PPC 630 (POWER3) */    {        .name        = "630",        .pvr         = CPU_PPC_630,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_630,        .flags       = PPC_FLAGS_630,        .msr_mask    = xxx,    }    {        .name        = "POWER3",        .pvr         = CPU_PPC_630,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_630,        .flags       = PPC_FLAGS_630,        .msr_mask    = xxx,    }#endif#if defined (TODO)    /* PPC 631 (Power 3+)*/    {        .name        = "631",        .pvr         = CPU_PPC_631,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_631,        .flags       = PPC_FLAGS_631,        .msr_mask    = xxx,    },    {        .name        = "POWER3+",        .pvr         = CPU_PPC_631,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_631,        .flags       = PPC_FLAGS_631,        .msr_mask    = xxx,    },#endif#if defined (TODO)    /* POWER4 */    {        .name        = "POWER4",        .pvr         = CPU_PPC_POWER4,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_POWER4,        .flags       = PPC_FLAGS_POWER4,        .msr_mask    = xxx,    },#endif#if defined (TODO)    /* POWER4p */    {        .name        = "POWER4+",        .pvr         = CPU_PPC_POWER4P,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_POWER4,        .flags       = PPC_FLAGS_POWER4,        .msr_mask    = xxx,    },#endif#if defined (TODO)    /* POWER5 */    {        .name        = "POWER5",        .pvr         = CPU_PPC_POWER5,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_POWER5,        .flags       = PPC_FLAGS_POWER5,        .msr_mask    = xxx,    },#endif#if defined (TODO)    /* POWER5+ */    {        .name        = "POWER5+",        .pvr         = CPU_PPC_POWER5P,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_POWER5,        .flags       = PPC_FLAGS_POWER5,        .msr_mask    = xxx,    },#endif#if defined (TODO)    /* PPC 970 */    {        .name        = "970",        .pvr         = CPU_PPC_970,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_970,        .flags       = PPC_FLAGS_970,        .msr_mask    = 0x900000000204FF36,    },#endif#if defined (TODO)    /* PPC 970FX (G5) */    {        .name        = "970fx",        .pvr         = CPU_PPC_970FX,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_970FX,        .flags       = PPC_FLAGS_970FX,        .msr_mask    = 0x800000000204FF36,    },#endif#if defined (TODO)    /* RS64 (Apache/A35) */    /* This one seems to support the whole POWER2 instruction set     * and the PowerPC 64 one.     */    {        .name        = "RS64",        .pvr         = CPU_PPC_RS64,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_RS64,        .flags       = PPC_FLAGS_RS64,        .msr_mask    = xxx,    },    {        .name        = "Apache",        .pvr         = CPU_PPC_RS64,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_RS64,        .flags       = PPC_FLAGS_RS64,        .msr_mask    = xxx,    },    {        .name        = "A35",        .pvr         = CPU_PPC_RS64,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_RS64,        .flags       = PPC_FLAGS_RS64,        .msr_mask    = xxx,    },#endif#if defined (TODO)    /* RS64-II (NorthStar/A50) */    {        .name        = "RS64-II",        .pvr         = CPU_PPC_RS64II,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_RS64,        .flags       = PPC_FLAGS_RS64,        .msr_mask    = xxx,    },    {        .name        = "NortStar",        .pvr         = CPU_PPC_RS64II,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_RS64,        .flags       = PPC_FLAGS_RS64,        .msr_mask    = xxx,    },    {        .name        = "A50",        .pvr         = CPU_PPC_RS64II,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_RS64,        .flags       = PPC_FLAGS_RS64,        .msr_mask    = xxx,    },#endif#if defined (TODO)    /* RS64-III (Pulsar) */    {        .name        = "RS64-III",        .pvr         = CPU_PPC_RS64III,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_RS64,        .flags       = PPC_FLAGS_RS64,        .msr_mask    = xxx,    },    {        .name        = "Pulsar",        .pvr         = CPU_PPC_RS64III,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_RS64,        .flags       = PPC_FLAGS_RS64,        .msr_mask    = xxx,    },#endif#if defined (TODO)    /* RS64-IV (IceStar/IStar/SStar) */    {        .name        = "RS64-IV",        .pvr         = CPU_PPC_RS64IV,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_RS64,        .flags       = PPC_FLAGS_RS64,        .msr_mask    = xxx,    },    {        .name        = "IceStar",        .pvr         = CPU_PPC_RS64IV,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_RS64,        .flags       = PPC_FLAGS_RS64,        .msr_mask    = xxx,    },    {        .name        = "IStar",        .pvr         = CPU_PPC_RS64IV,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_RS64,        .flags       = PPC_FLAGS_RS64,        .msr_mask    = xxx,    },    {        .name        = "SStar",        .pvr         = CPU_PPC_RS64IV,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_RS64,        .flags       = PPC_FLAGS_RS64,        .msr_mask    = xxx,    },#endif    /* POWER */#if defined (TODO)    /* Original POWER */    {        .name        = "POWER",        .pvr         = CPU_POWER,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_POWER,        .flags       = PPC_FLAGS_POWER,        .msr_mask    = xxx,    },#endif#if defined (TODO)    /* POWER2 */    {        .name        = "POWER2",        .pvr         = CPU_POWER2,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_POWER,        .flags       = PPC_FLAGS_POWER,        .msr_mask    = xxx,    },#endif    /* Generic PowerPCs */#if defined (TODO)    {        .name        = "ppc64",        .pvr         = CPU_PPC_970,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_PPC64,        .flags       = PPC_FLAGS_PPC64,        .msr_mask    = 0xA00000000204FF36,    },#endif    {        .name        = "ppc32",        .pvr         = CPU_PPC_604,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_PPC32,        .flags       = PPC_FLAGS_PPC32,        .msr_mask    = 0x000000000005FF77,    },    /* Fallback */    {        .name        = "ppc",        .pvr         = CPU_PPC_604,        .pvr_mask    = 0xFFFF0000,        .insns_flags = PPC_INSNS_PPC32,        .flags       = PPC_FLAGS_PPC32,        .msr_mask    = 0x000000000005FF77,    },};int ppc_find_by_name (const unsigned char *name, ppc_def_t **def){    int i, ret;    ret = -1;    *def = NULL;    for (i = 0; strcmp(ppc_defs[i].name, "ppc") != 0; i++) {        if (strcasecmp(name, ppc_defs[i].name) == 0) {            *def = &ppc_defs[i];            ret = 0;            break;        }    }    return ret;}int ppc_find_by_pvr (uint32_t pvr, ppc_def_t **def){    int i, ret;    ret = -1;    *def = NULL;    for (i = 0; ppc_defs[i].name != NULL; i++) {        if ((pvr & ppc_defs[i].pvr_mask) ==            (ppc_defs[i].pvr & ppc_defs[i].pvr_mask)) {            *def = &ppc_defs[i];            ret = 0;            break;        }    }    return ret;}void ppc_cpu_list (FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...)){    int i;    for (i = 0; ; i++) {        (*cpu_fprintf)(f, "PowerPC '%s' PVR %08x mask %08x\n",                       ppc_defs[i].name,                       ppc_defs[i].pvr, ppc_defs[i].pvr_mask);        if (strcmp(ppc_defs[i].name, "ppc") == 0)            break;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -