Cleanup and add more PowerPC core definitions.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2684 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
c55e9aefa7
commit
3a6078548d
|
@ -1875,7 +1875,7 @@ static void init_ppc_proc (CPUPPCState *env, ppc_def_t *def)
|
||||||
def->pvr);
|
def->pvr);
|
||||||
printf("%s: PVR %08x mask %08x => %08x\n", __func__,
|
printf("%s: PVR %08x mask %08x => %08x\n", __func__,
|
||||||
def->pvr, def->pvr_mask, def->pvr & def->pvr_mask);
|
def->pvr, def->pvr_mask, def->pvr & def->pvr_mask);
|
||||||
switch (def->pvr & def->pvr_mask) {
|
switch (def->pvr) {
|
||||||
/* Embedded PowerPC from IBM */
|
/* Embedded PowerPC from IBM */
|
||||||
case CPU_PPC_401A1: /* 401 A1 family */
|
case CPU_PPC_401A1: /* 401 A1 family */
|
||||||
case CPU_PPC_401B2: /* 401 B2 family */
|
case CPU_PPC_401B2: /* 401 B2 family */
|
||||||
|
@ -2715,8 +2715,7 @@ int cpu_ppc_register (CPUPPCState *env, ppc_def_t *def)
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* PowerPC CPU definitions */
|
/* PowerPC CPU definitions */
|
||||||
static ppc_def_t ppc_defs[] =
|
static ppc_def_t ppc_defs[] = {
|
||||||
{
|
|
||||||
/* Embedded PowerPC */
|
/* Embedded PowerPC */
|
||||||
#if defined (TODO)
|
#if defined (TODO)
|
||||||
/* PowerPC 401 */
|
/* PowerPC 401 */
|
||||||
|
@ -2806,7 +2805,6 @@ static ppc_def_t ppc_defs[] =
|
||||||
.msr_mask = 0x000000000007D23D,
|
.msr_mask = 0x000000000007D23D,
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
#if defined (TODO)
|
|
||||||
/* Generic PowerPC 405 */
|
/* Generic PowerPC 405 */
|
||||||
{
|
{
|
||||||
.name = "405",
|
.name = "405",
|
||||||
|
@ -2816,35 +2814,41 @@ static ppc_def_t ppc_defs[] =
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
},
|
},
|
||||||
#endif
|
|
||||||
#if defined (TODO)
|
|
||||||
/* PowerPC 405 CR */
|
/* PowerPC 405 CR */
|
||||||
{
|
{
|
||||||
.name = "405cr",
|
.name = "405cr",
|
||||||
.pvr = CPU_PPC_405,
|
.pvr = CPU_PPC_405,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
},
|
},
|
||||||
#endif
|
|
||||||
#if defined (TODO)
|
#if defined (TODO)
|
||||||
/* PowerPC 405 GP */
|
/* PowerPC 405 GP */
|
||||||
{
|
{
|
||||||
.name = "405gp",
|
.name = "405gp",
|
||||||
.pvr = CPU_PPC_405,
|
.pvr = CPU_PPC_405,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
#if defined (TODO)
|
|
||||||
/* PowerPC 405 EP */
|
/* PowerPC 405 EP */
|
||||||
{
|
{
|
||||||
.name = "405ep",
|
.name = "405ep",
|
||||||
.pvr = CPU_PPC_405EP,
|
.pvr = CPU_PPC_405EP,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
|
.insns_flags = PPC_INSNS_405,
|
||||||
|
.flags = PPC_FLAGS_405,
|
||||||
|
.msr_mask = 0x00000000020EFF30,
|
||||||
|
},
|
||||||
|
#if defined (TODO)
|
||||||
|
/* PowerPC 405 EZ */
|
||||||
|
{
|
||||||
|
.name = "405ez",
|
||||||
|
.pvr = CPU_PPC_405EZ,
|
||||||
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
|
@ -2855,7 +2859,7 @@ static ppc_def_t ppc_defs[] =
|
||||||
{
|
{
|
||||||
.name = "405gpr",
|
.name = "405gpr",
|
||||||
.pvr = CPU_PPC_405GPR,
|
.pvr = CPU_PPC_405GPR,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
|
@ -2866,7 +2870,7 @@ static ppc_def_t ppc_defs[] =
|
||||||
{
|
{
|
||||||
.name = "405d2",
|
.name = "405d2",
|
||||||
.pvr = CPU_PPC_405D2,
|
.pvr = CPU_PPC_405D2,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
|
@ -2877,7 +2881,7 @@ static ppc_def_t ppc_defs[] =
|
||||||
{
|
{
|
||||||
.name = "405d4",
|
.name = "405d4",
|
||||||
.pvr = CPU_PPC_405D4,
|
.pvr = CPU_PPC_405D4,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
|
@ -2888,7 +2892,7 @@ static ppc_def_t ppc_defs[] =
|
||||||
{
|
{
|
||||||
.name = "Npe405H",
|
.name = "Npe405H",
|
||||||
.pvr = CPU_PPC_NPE405H,
|
.pvr = CPU_PPC_NPE405H,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
|
@ -2899,7 +2903,7 @@ static ppc_def_t ppc_defs[] =
|
||||||
{
|
{
|
||||||
.name = "Npe405L",
|
.name = "Npe405L",
|
||||||
.pvr = CPU_PPC_NPE405L,
|
.pvr = CPU_PPC_NPE405L,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
|
@ -2910,7 +2914,7 @@ static ppc_def_t ppc_defs[] =
|
||||||
{
|
{
|
||||||
.name = "STB01000",
|
.name = "STB01000",
|
||||||
.pvr = CPU_PPC_STB01000,
|
.pvr = CPU_PPC_STB01000,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
|
@ -2921,7 +2925,7 @@ static ppc_def_t ppc_defs[] =
|
||||||
{
|
{
|
||||||
.name = "STB01010",
|
.name = "STB01010",
|
||||||
.pvr = CPU_PPC_STB01010,
|
.pvr = CPU_PPC_STB01010,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
|
@ -2932,18 +2936,18 @@ static ppc_def_t ppc_defs[] =
|
||||||
{
|
{
|
||||||
.name = "STB0210",
|
.name = "STB0210",
|
||||||
.pvr = CPU_PPC_STB0210,
|
.pvr = CPU_PPC_STB0210,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
#if defined (TODO)
|
#if defined (TODO) || 1
|
||||||
/* STB03xx */
|
/* STB03xx */
|
||||||
{
|
{
|
||||||
.name = "STB03",
|
.name = "STB03",
|
||||||
.pvr = CPU_PPC_STB03,
|
.pvr = CPU_PPC_STB03,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
|
@ -2954,7 +2958,7 @@ static ppc_def_t ppc_defs[] =
|
||||||
{
|
{
|
||||||
.name = "STB043",
|
.name = "STB043",
|
||||||
.pvr = CPU_PPC_STB043,
|
.pvr = CPU_PPC_STB043,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
|
@ -2965,18 +2969,18 @@ static ppc_def_t ppc_defs[] =
|
||||||
{
|
{
|
||||||
.name = "STB045",
|
.name = "STB045",
|
||||||
.pvr = CPU_PPC_STB045,
|
.pvr = CPU_PPC_STB045,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
#if defined (TODO)
|
#if defined (TODO) || 1
|
||||||
/* STB25xx */
|
/* STB25xx */
|
||||||
{
|
{
|
||||||
.name = "STB25",
|
.name = "STB25",
|
||||||
.pvr = CPU_PPC_STB25,
|
.pvr = CPU_PPC_STB25,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
|
@ -2987,7 +2991,7 @@ static ppc_def_t ppc_defs[] =
|
||||||
{
|
{
|
||||||
.name = "STB130",
|
.name = "STB130",
|
||||||
.pvr = CPU_PPC_STB130,
|
.pvr = CPU_PPC_STB130,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
|
@ -2998,7 +3002,7 @@ static ppc_def_t ppc_defs[] =
|
||||||
{
|
{
|
||||||
.name = "x2vp4",
|
.name = "x2vp4",
|
||||||
.pvr = CPU_PPC_X2VP4,
|
.pvr = CPU_PPC_X2VP4,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
|
@ -3006,7 +3010,7 @@ static ppc_def_t ppc_defs[] =
|
||||||
{
|
{
|
||||||
.name = "x2vp7",
|
.name = "x2vp7",
|
||||||
.pvr = CPU_PPC_X2VP7,
|
.pvr = CPU_PPC_X2VP7,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
|
@ -3014,7 +3018,7 @@ static ppc_def_t ppc_defs[] =
|
||||||
{
|
{
|
||||||
.name = "x2vp20",
|
.name = "x2vp20",
|
||||||
.pvr = CPU_PPC_X2VP20,
|
.pvr = CPU_PPC_X2VP20,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
|
@ -3022,7 +3026,7 @@ static ppc_def_t ppc_defs[] =
|
||||||
{
|
{
|
||||||
.name = "x2vp50",
|
.name = "x2vp50",
|
||||||
.pvr = CPU_PPC_X2VP50,
|
.pvr = CPU_PPC_X2VP50,
|
||||||
.pvr_mask = 0xFFFF0000,
|
.pvr_mask = 0xFFFFFFFF,
|
||||||
.insns_flags = PPC_INSNS_405,
|
.insns_flags = PPC_INSNS_405,
|
||||||
.flags = PPC_FLAGS_405,
|
.flags = PPC_FLAGS_405,
|
||||||
.msr_mask = 0x00000000020EFF30,
|
.msr_mask = 0x00000000020EFF30,
|
||||||
|
@ -3697,7 +3701,7 @@ static ppc_def_t ppc_defs[] =
|
||||||
.msr_mask = xxx,
|
.msr_mask = xxx,
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
#if defined (TODO)
|
#if defined (TODO) || 1
|
||||||
/* PowerPC 970 */
|
/* PowerPC 970 */
|
||||||
{
|
{
|
||||||
.name = "970",
|
.name = "970",
|
||||||
|
@ -3855,7 +3859,7 @@ static ppc_def_t ppc_defs[] =
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
/* Generic PowerPCs */
|
/* Generic PowerPCs */
|
||||||
#if defined (TODO)
|
#if defined (TODO) || 1
|
||||||
{
|
{
|
||||||
.name = "ppc64",
|
.name = "ppc64",
|
||||||
.pvr = CPU_PPC_970,
|
.pvr = CPU_PPC_970,
|
||||||
|
|
Loading…
Reference in a new issue