diff options
-rw-r--r-- | target-ppc/cpu.h | 1 | ||||
-rw-r--r-- | target-ppc/translate_init.c | 791 |
2 files changed, 420 insertions, 372 deletions
diff --git a/target-ppc/cpu.h b/target-ppc/cpu.h index 7fcdd4121f..198da43f3e 100644 --- a/target-ppc/cpu.h +++ b/target-ppc/cpu.h @@ -723,7 +723,6 @@ void cpu_ppc_reset (void *opaque); void ppc_cpu_list (FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...)); const ppc_def_t *cpu_ppc_find_by_name (const unsigned char *name); -const ppc_def_t *cpu_ppc_find_by_pvr (uint32_t pvr); int cpu_ppc_register_internal (CPUPPCState *env, const ppc_def_t *def); /* Time-base and decrementer management */ diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c index 973e0c5db0..20a24b4537 100644 --- a/target-ppc/translate_init.c +++ b/target-ppc/translate_init.c @@ -24,6 +24,7 @@ */ #include "dis-asm.h" +#include "host-utils.h" //#define PPC_DUMP_CPU //#define PPC_DEBUG_SPR @@ -32,7 +33,6 @@ struct ppc_def_t { const unsigned char *name; uint32_t pvr; - uint32_t pvr_mask; uint64_t insns_flags; uint64_t msr_mask; uint8_t mmu_model; @@ -5004,11 +5004,10 @@ enum { /*****************************************************************************/ /* PowerPC CPU definitions */ -#define POWERPC_DEF(_name, _pvr, _pvr_mask, _type) \ +#define POWERPC_DEF(_name, _pvr, _type) \ { \ .name = _name, \ .pvr = _pvr, \ - .pvr_mask = _pvr_mask, \ .insns_flags = glue(POWERPC_INSNS_,_type), \ .msr_mask = glue(POWERPC_MSRM_,_type), \ .mmu_model = glue(POWERPC_MMU_,_type), \ @@ -5020,853 +5019,857 @@ enum { .check_pow = &glue(check_pow_,_type), \ } -static ppc_def_t ppc_defs[] = { +static const ppc_def_t ppc_defs[] = { /* Embedded PowerPC */ /* PowerPC 401 family */ /* Generic PowerPC 401 */ - POWERPC_DEF("401", CPU_POWERPC_401, 0xFFFF0000, 401), + POWERPC_DEF("401", CPU_POWERPC_401, 401), /* PowerPC 401 cores */ /* PowerPC 401A1 */ - POWERPC_DEF("401A1", CPU_POWERPC_401A1, 0xFFFFFFFF, 401), + POWERPC_DEF("401A1", CPU_POWERPC_401A1, 401), /* PowerPC 401B2 */ - POWERPC_DEF("401B2", CPU_POWERPC_401B2, 0xFFFFFFFF, 401x2), + POWERPC_DEF("401B2", CPU_POWERPC_401B2, 401x2), #if defined (TODO) /* PowerPC 401B3 */ - POWERPC_DEF("401B3", CPU_POWERPC_401B3, 0xFFFFFFFF, 401x3), + POWERPC_DEF("401B3", CPU_POWERPC_401B3, 401x3), #endif /* PowerPC 401C2 */ - POWERPC_DEF("401C2", CPU_POWERPC_401C2, 0xFFFFFFFF, 401x2), + POWERPC_DEF("401C2", CPU_POWERPC_401C2, 401x2), /* PowerPC 401D2 */ - POWERPC_DEF("401D2", CPU_POWERPC_401D2, 0xFFFFFFFF, 401x2), + POWERPC_DEF("401D2", CPU_POWERPC_401D2, 401x2), /* PowerPC 401E2 */ - POWERPC_DEF("401E2", CPU_POWERPC_401E2, 0xFFFFFFFF, 401x2), + POWERPC_DEF("401E2", CPU_POWERPC_401E2, 401x2), /* PowerPC 401F2 */ - POWERPC_DEF("401F2", CPU_POWERPC_401F2, 0xFFFFFFFF, 401x2), + POWERPC_DEF("401F2", CPU_POWERPC_401F2, 401x2), /* PowerPC 401G2 */ /* XXX: to be checked */ - POWERPC_DEF("401G2", CPU_POWERPC_401G2, 0xFFFFFFFF, 401x2), + POWERPC_DEF("401G2", CPU_POWERPC_401G2, 401x2), /* PowerPC 401 microcontrolers */ #if defined (TODO) /* PowerPC 401GF */ - POWERPC_DEF("401GF", CPU_POWERPC_401GF, 0xFFFFFFFF, 401), + POWERPC_DEF("401GF", CPU_POWERPC_401GF, 401), #endif /* IOP480 (401 microcontroler) */ - POWERPC_DEF("IOP480", CPU_POWERPC_IOP480, 0xFFFFFFFF, IOP480), + POWERPC_DEF("IOP480", CPU_POWERPC_IOP480, IOP480), /* IBM Processor for Network Resources */ - POWERPC_DEF("Cobra", CPU_POWERPC_COBRA, 0xFFFFFFFF, 401), + POWERPC_DEF("Cobra", CPU_POWERPC_COBRA, 401), #if defined (TODO) - POWERPC_DEF("Xipchip", CPU_POWERPC_XIPCHIP, 0xFFFFFFFF, 401), + POWERPC_DEF("Xipchip", CPU_POWERPC_XIPCHIP, 401), #endif /* PowerPC 403 family */ /* Generic PowerPC 403 */ - POWERPC_DEF("403", CPU_POWERPC_403, 0xFFFF0000, 403), + POWERPC_DEF("403", CPU_POWERPC_403, 403), /* PowerPC 403 microcontrolers */ /* PowerPC 403 GA */ - POWERPC_DEF("403GA", CPU_POWERPC_403GA, 0xFFFFFFFF, 403), + POWERPC_DEF("403GA", CPU_POWERPC_403GA, 403), /* PowerPC 403 GB */ - POWERPC_DEF("403GB", CPU_POWERPC_403GB, 0xFFFFFFFF, 403), + POWERPC_DEF("403GB", CPU_POWERPC_403GB, 403), /* PowerPC 403 GC */ - POWERPC_DEF("403GC", CPU_POWERPC_403GC, 0xFFFFFFFF, 403), + POWERPC_DEF("403GC", CPU_POWERPC_403GC, 403), /* PowerPC 403 GCX */ - POWERPC_DEF("403GCX", CPU_POWERPC_403GCX, 0xFFFFFFFF, 403GCX), + POWERPC_DEF("403GCX", CPU_POWERPC_403GCX, 403GCX), #if defined (TODO) /* PowerPC 403 GP */ - POWERPC_DEF("403GP", CPU_POWERPC_403GP, 0xFFFFFFFF, 403), + POWERPC_DEF("403GP", CPU_POWERPC_403GP, 403), #endif /* PowerPC 405 family */ /* Generic PowerPC 405 */ - POWERPC_DEF("405", CPU_POWERPC_405, 0xFFFF0000, 405), + POWERPC_DEF("405", CPU_POWERPC_405, 405), /* PowerPC 405 cores */ #if defined (TODO) /* PowerPC 405 A3 */ - POWERPC_DEF("405A3", CPU_POWERPC_405A3, 0xFFFFFFFF, 405), + POWERPC_DEF("405A3", CPU_POWERPC_405A3, 405), #endif #if defined (TODO) /* PowerPC 405 A4 */ - POWERPC_DEF("405A4", CPU_POWERPC_405A4, 0xFFFFFFFF, 405), + POWERPC_DEF("405A4", CPU_POWERPC_405A4, 405), #endif #if defined (TODO) /* PowerPC 405 B3 */ - POWERPC_DEF("405B3", CPU_POWERPC_405B3, 0xFFFFFFFF, 405), + POWERPC_DEF("405B3", CPU_POWERPC_405B3, 405), #endif #if defined (TODO) /* PowerPC 405 B4 */ - POWERPC_DEF("405B4", CPU_POWERPC_405B4, 0xFFFFFFFF, 405), + POWERPC_DEF("405B4", CPU_POWERPC_405B4, 405), #endif #if defined (TODO) /* PowerPC 405 C3 */ - POWERPC_DEF("405C3", CPU_POWERPC_405C3, 0xFFFFFFFF, 405), + POWERPC_DEF("405C3", CPU_POWERPC_405C3, 405), #endif #if defined (TODO) /* PowerPC 405 C4 */ - POWERPC_DEF("405C4", CPU_POWERPC_405C4, 0xFFFFFFFF, 405), + POWERPC_DEF("405C4", CPU_POWERPC_405C4, 405), #endif /* PowerPC 405 D2 */ - POWERPC_DEF("405D2", CPU_POWERPC_405D2, 0xFFFFFFFF, 405), + POWERPC_DEF("405D2", CPU_POWERPC_405D2, 405), #if defined (TODO) /* PowerPC 405 D3 */ - POWERPC_DEF("405D3", CPU_POWERPC_405D3, 0xFFFFFFFF, 405), + POWERPC_DEF("405D3", CPU_POWERPC_405D3, 405), #endif /* PowerPC 405 D4 */ - POWERPC_DEF("405D4", CPU_POWERPC_405D4, 0xFFFFFFFF, 405), + POWERPC_DEF("405D4", CPU_POWERPC_405D4, 405), #if defined (TODO) /* PowerPC 405 D5 */ - POWERPC_DEF("405D5", CPU_POWERPC_405D5, 0xFFFFFFFF, 405), + POWERPC_DEF("405D5", CPU_POWERPC_405D5, 405), #endif #if defined (TODO) /* PowerPC 405 E4 */ - POWERPC_DEF("405E4", CPU_POWERPC_405E4, 0xFFFFFFFF, 405), + POWERPC_DEF("405E4", CPU_POWERPC_405E4, 405), #endif #if defined (TODO) /* PowerPC 405 F4 */ - POWERPC_DEF("405F4", CPU_POWERPC_405F4, 0xFFFFFFFF, 405), + POWERPC_DEF("405F4", CPU_POWERPC_405F4, 405), #endif #if defined (TODO) /* PowerPC 405 F5 */ - POWERPC_DEF("405F5", CPU_POWERPC_405F5, 0xFFFFFFFF, 405), + POWERPC_DEF("405F5", CPU_POWERPC_405F5, 405), #endif #if defined (TODO) /* PowerPC 405 F6 */ - POWERPC_DEF("405F6", CPU_POWERPC_405F6, 0xFFFFFFFF, 405), + POWERPC_DEF("405F6", CPU_POWERPC_405F6, 405), #endif /* PowerPC 405 microcontrolers */ /* PowerPC 405 CR */ - POWERPC_DEF("405CR", CPU_POWERPC_405CR, 0xFFFFFFFF, 405), + POWERPC_DEF("405CR", CPU_POWERPC_405CR, 405), /* PowerPC 405 CRa */ - POWERPC_DEF("405CRa", CPU_POWERPC_405CRa, 0xFFFFFFFF, 405), + POWERPC_DEF("405CRa", CPU_POWERPC_405CRa, 405), /* PowerPC 405 CRb */ - POWERPC_DEF("405CRb", CPU_POWERPC_405CRb, 0xFFFFFFFF, 405), + POWERPC_DEF("405CRb", CPU_POWERPC_405CRb, 405), /* PowerPC 405 CRc */ - POWERPC_DEF("405CRc", CPU_POWERPC_405CRc, 0xFFFFFFFF, 405), + POWERPC_DEF("405CRc", CPU_POWERPC_405CRc, 405), /* PowerPC 405 EP */ - POWERPC_DEF("405EP", CPU_POWERPC_405EP, 0xFFFFFFFF, 405), + POWERPC_DEF("405EP", CPU_POWERPC_405EP, 405), #if defined(TODO) /* PowerPC 405 EXr */ - POWERPC_DEF("405EXr", CPU_POWERPC_405EXr, 0xFFFFFFFF, 405), + POWERPC_DEF("405EXr", CPU_POWERPC_405EXr, 405), #endif /* PowerPC 405 EZ */ - POWERPC_DEF("405EZ", CPU_POWERPC_405EZ, 0xFFFFFFFF, 405), + POWERPC_DEF("405EZ", CPU_POWERPC_405EZ, 405), #if defined(TODO) /* PowerPC 405 FX */ - POWERPC_DEF("405FX", CPU_POWERPC_405FX, 0xFFFFFFFF, 405), + POWERPC_DEF("405FX", CPU_POWERPC_405FX, 405), #endif /* PowerPC 405 GP */ - POWERPC_DEF("405GP", CPU_POWERPC_405GP, 0xFFFFFFFF, 405), + POWERPC_DEF("405GP", CPU_POWERPC_405GP, 405), /* PowerPC 405 GPa */ - POWERPC_DEF("405GPa", CPU_POWERPC_405GPa, 0xFFFFFFFF, 405), + POWERPC_DEF("405GPa", CPU_POWERPC_405GPa, 405), /* PowerPC 405 GPb */ - POWERPC_DEF("405GPb", CPU_POWERPC_405GPb, 0xFFFFFFFF, 405), + POWERPC_DEF("405GPb", CPU_POWERPC_405GPb, 405), /* PowerPC 405 GPc */ - POWERPC_DEF("405GPc", CPU_POWERPC_405GPc, 0xFFFFFFFF, 405), + POWERPC_DEF("405GPc", CPU_POWERPC_405GPc, 405), /* PowerPC 405 GPd */ - POWERPC_DEF("405GPd", CPU_POWERPC_405GPd, 0xFFFFFFFF, 405), + POWERPC_DEF("405GPd", CPU_POWERPC_405GPd, 405), /* PowerPC 405 GPe */ - POWERPC_DEF("405GPe", CPU_POWERPC_405GPe, 0xFFFFFFFF, 405), + POWERPC_DEF("405GPe", CPU_POWERPC_405GPe, 405), /* PowerPC 405 GPR */ - POWERPC_DEF("405GPR", CPU_POWERPC_405GPR, 0xFFFFFFFF, 405), + POWERPC_DEF("405GPR", CPU_POWERPC_405GPR, 405), #if defined(TODO) /* PowerPC 405 H */ - POWERPC_DEF("405H", CPU_POWERPC_405H, 0xFFFFFFFF, 405), + POWERPC_DEF("405H", CPU_POWERPC_405H, 405), #endif #if defined(TODO) /* PowerPC 405 L */ - POWERPC_DEF("405L", CPU_POWERPC_405L, 0xFFFFFFFF, 405), + POWERPC_DEF("405L", CPU_POWERPC_405L, 405), #endif /* PowerPC 405 LP */ - POWERPC_DEF("405LP", CPU_POWERPC_405LP, 0xFFFFFFFF, 405), + POWERPC_DEF("405LP", CPU_POWERPC_405LP, 405), #if defined(TODO) /* PowerPC 405 PM */ - POWERPC_DEF("405PM", CPU_POWERPC_405PM, 0xFFFFFFFF, 405), + POWERPC_DEF("405PM", CPU_POWERPC_405PM, 405), #endif #if defined(TODO) /* PowerPC 405 PS */ - POWERPC_DEF("405PS", CPU_POWERPC_405PS, 0xFFFFFFFF, 405), + POWERPC_DEF("405PS", CPU_POWERPC_405PS, 405), #endif #if defined(TODO) /* PowerPC 405 S */ - POWERPC_DEF("405S", CPU_POWERPC_405S, 0xFFFFFFFF, 405), + POWERPC_DEF("405S", CPU_POWERPC_405S, 405), #endif /* Npe405 H */ - POWERPC_DEF("Npe405H", CPU_POWERPC_NPE405H, 0xFFFFFFFF, 405), + POWERPC_DEF("Npe405H", CPU_POWERPC_NPE405H, 405), /* Npe405 H2 */ - POWERPC_DEF("Npe405H2", CPU_POWERPC_NPE405H2, 0xFFFFFFFF, 405), + POWERPC_DEF("Npe405H2", CPU_POWERPC_NPE405H2, 405), /* Npe405 L */ - POWERPC_DEF("Npe405L", CPU_POWERPC_NPE405L, 0xFFFFFFFF, 405), + POWERPC_DEF("Npe405L", CPU_POWERPC_NPE405L, 405), /* Npe4GS3 */ - POWERPC_DEF("Npe4GS3", CPU_POWERPC_NPE4GS3, 0xFFFFFFFF, 405), + POWERPC_DEF("Npe4GS3", CPU_POWERPC_NPE4GS3, 405), #if defined (TODO) - POWERPC_DEF("Npcxx1", CPU_POWERPC_NPCxx1, 0xFFFFFFFF, 405), + POWERPC_DEF("Npcxx1", CPU_POWERPC_NPCxx1, 405), #endif #if defined (TODO) - POWERPC_DEF("Npr161", CPU_POWERPC_NPR161, 0xFFFFFFFF, 405), + POWERPC_DEF("Npr161", CPU_POWERPC_NPR161, 405), #endif #if defined (TODO) /* PowerPC LC77700 (Sanyo) */ - POWERPC_DEF("LC77700", CPU_POWERPC_LC77700, 0xFFFFFFFF, 405), + POWERPC_DEF("LC77700", CPU_POWERPC_LC77700, 405), #endif /* PowerPC 401/403/405 based set-top-box microcontrolers */ #if defined (TODO) /* STB010000 */ - POWERPC_DEF("STB01000", CPU_POWERPC_STB01000, 0xFFFFFFFF, 401x2), + POWERPC_DEF("STB01000", CPU_POWERPC_STB01000, 401x2), #endif #if defined (TODO) /* STB01010 */ - POWERPC_DEF("STB01010", CPU_POWERPC_STB01010, 0xFFFFFFFF, 401x2), + POWERPC_DEF("STB01010", CPU_POWERPC_STB01010, 401x2), #endif #if defined (TODO) /* STB0210 */ - POWERPC_DEF("STB0210", CPU_POWERPC_STB0210, 0xFFFFFFFF, 401x3), + POWERPC_DEF("STB0210", CPU_POWERPC_STB0210, 401x3), #endif /* STB03xx */ - POWERPC_DEF("STB03", CPU_POWERPC_STB03, 0xFFFFFFFF, 405), + POWERPC_DEF("STB03", CPU_POWERPC_STB03, 405), #if defined (TODO) /* STB043x */ - POWERPC_DEF("STB043", CPU_POWERPC_STB043, 0xFFFFFFFF, 405), + POWERPC_DEF("STB043", CPU_POWERPC_STB043, 405), #endif #if defined (TODO) /* STB045x */ - POWERPC_DEF("STB045", CPU_POWERPC_STB045, 0xFFFFFFFF, 405), + POWERPC_DEF("STB045", CPU_POWERPC_STB045, 405), #endif /* STB04xx */ - POWERPC_DEF("STB04", CPU_POWERPC_STB04, 0xFFFF0000, 405), + POWERPC_DEF("STB04", CPU_POWERPC_STB04, 405), /* STB25xx */ - POWERPC_DEF("STB25", CPU_POWERPC_STB25, 0xFFFFFFFF, 405), + POWERPC_DEF("STB25", CPU_POWERPC_STB25, 405), #if defined (TODO) /* STB130 */ - POWERPC_DEF("STB130", CPU_POWERPC_STB130, 0xFFFFFFFF, 405), + POWERPC_DEF("STB130", CPU_POWERPC_STB130, 405), #endif /* Xilinx PowerPC 405 cores */ - POWERPC_DEF("x2vp4", CPU_POWERPC_X2VP4, 0xFFFFFFFF, 405), - POWERPC_DEF("x2vp7", CPU_POWERPC_X2VP7, 0xFFFFFFFF, 405), - POWERPC_DEF("x2vp20", CPU_POWERPC_X2VP20, 0xFFFFFFFF, 405), - POWERPC_DEF("x2vp50", CPU_POWERPC_X2VP50, 0xFFFFFFFF, 405), + POWERPC_DEF("x2vp4", CPU_POWERPC_X2VP4, 405), + POWERPC_DEF("x2vp7", CPU_POWERPC_X2VP7, 405), + POWERPC_DEF("x2vp20", CPU_POWERPC_X2VP20, 405), + POWERPC_DEF("x2vp50", CPU_POWERPC_X2VP50, 405), #if defined (TODO) /* Zarlink ZL10310 */ - POWERPC_DEF("zl10310", CPU_POWERPC_ZL10310, 0xFFFFFFFF, 405), + POWERPC_DEF("zl10310", CPU_POWERPC_ZL10310, 405), #endif #if defined (TODO) /* Zarlink ZL10311 */ - POWERPC_DEF("zl10311", CPU_POWERPC_ZL10311, 0xFFFFFFFF, 405), + POWERPC_DEF("zl10311", CPU_POWERPC_ZL10311, 405), #endif #if defined (TODO) /* Zarlink ZL10320 */ - POWERPC_DEF("zl10320", CPU_POWERPC_ZL10320, 0xFFFFFFFF, 405), + POWERPC_DEF("zl10320", CPU_POWERPC_ZL10320, 405), #endif #if defined (TODO) /* Zarlink ZL10321 */ - POWERPC_DEF("zl10321", CPU_POWERPC_ZL10321, 0xFFFFFFFF, 405), + POWERPC_DEF("zl10321", CPU_POWERPC_ZL10321, 405), #endif /* PowerPC 440 family */ /* Generic PowerPC 440 */ - POWERPC_DEF("440", CPU_POWERPC_440, 0xFFFFFFFF, 440GP), + POWERPC_DEF("440", CPU_POWERPC_440, 440GP), /* PowerPC 440 cores */ #if defined (TODO) /* PowerPC 440 A4 */ - POWERPC_DEF("440A4", CPU_POWERPC_440A4, 0xFFFFFFFF, 440x4), + POWERPC_DEF("440A4", CPU_POWERPC_440A4, 440x4), #endif #if defined (TODO) /* PowerPC 440 A5 */ - POWERPC_DEF("440A5", CPU_POWERPC_440A5, 0xFFFFFFFF, 440x5), + POWERPC_DEF("440A5", CPU_POWERPC_440A5, 440x5), #endif #if defined (TODO) /* PowerPC 440 B4 */ - POWERPC_DEF("440B4", CPU_POWERPC_440B4, 0xFFFFFFFF, 440x4), + POWERPC_DEF("440B4", CPU_POWERPC_440B4, 440x4), #endif #if defined (TODO) /* PowerPC 440 G4 */ - POWERPC_DEF("440G4", CPU_POWERPC_440G4, 0xFFFFFFFF, 440x4), + POWERPC_DEF("440G4", CPU_POWERPC_440G4, 440x4), #endif #if defined (TODO) /* PowerPC 440 F5 */ - POWERPC_DEF("440F5", CPU_POWERPC_440F5, 0xFFFFFFFF, 440x5), + POWERPC_DEF("440F5", CPU_POWERPC_440F5, 440x5), #endif #if defined (TODO) /* PowerPC 440 G5 */ - POWERPC_DEF("440G5", CPU_POWERPC_440G5, 0xFFFFFFFF, 440x5), + POWERPC_DEF("440G5", CPU_POWERPC_440G5, 440x5), #endif #if defined (TODO) /* PowerPC 440H4 */ - POWERPC_DEF("440H4", CPU_POWERPC_440H4, 0xFFFFFFFF, 440x4), + POWERPC_DEF("440H4", CPU_POWERPC_440H4, 440x4), #endif #if defined (TODO) /* PowerPC 440H6 */ - POWERPC_DEF("440H6", CPU_POWERPC_440H6, 0xFFFFFFFF, 440Gx5), + POWERPC_DEF("440H6", CPU_POWERPC_440H6, 440Gx5), #endif /* PowerPC 440 microcontrolers */ /* PowerPC 440 EP */ - POWERPC_DEF("440EP", CPU_POWERPC_440EP, 0xFFFFFFFF, 440EP), + POWERPC_DEF("440EP", CPU_POWERPC_440EP, 440EP), /* PowerPC 440 EPa */ - POWERPC_DEF("440EPa", CPU_POWERPC_440EPa, 0xFFFFFFFF, 440EP), + POWERPC_DEF("440EPa", CPU_POWERPC_440EPa, 440EP), /* PowerPC 440 EPb */ - POWERPC_DEF("440EPb", CPU_POWERPC_440EPb, 0xFFFFFFFF, 440EP), + POWERPC_DEF("440EPb", CPU_POWERPC_440EPb, 440EP), /* PowerPC 440 EPX */ - POWERPC_DEF("440EPX", CPU_POWERPC_440EPX, 0xFFFFFFFF, 440EP), + POWERPC_DEF("440EPX", CPU_POWERPC_440EPX, 440EP), /* PowerPC 440 GP */ - POWERPC_DEF("440GP", CPU_POWERPC_440GP, 0xFFFFFFFF, 440GP), + POWERPC_DEF("440GP", CPU_POWERPC_440GP, 440GP), /* PowerPC 440 GPb */ - POWERPC_DEF("440GPb", CPU_POWERPC_440GPb, 0xFFFFFFFF, 440GP), + POWERPC_DEF("440GPb", CPU_POWERPC_440GPb, 440GP), /* PowerPC 440 GPc */ - POWERPC_DEF("440GPc", CPU_POWERPC_440GPc, 0xFFFFFFFF, 440GP), + POWERPC_DEF("440GPc", CPU_POWERPC_440GPc, 440GP), /* PowerPC 440 GR */ - POWERPC_DEF("440GR", CPU_POWERPC_440GR, 0xFFFFFFFF, 440x5), + POWERPC_DEF("440GR", CPU_POWERPC_440GR, 440x5), /* PowerPC 440 GRa */ - POWERPC_DEF("440GRa", CPU_POWERPC_440GRa, 0xFFFFFFFF, 440x5), + POWERPC_DEF("440GRa", CPU_POWERPC_440GRa, 440x5), /* PowerPC 440 GRX */ - POWERPC_DEF("440GRX", CPU_POWERPC_440GRX, 0xFFFFFFFF, 440x5), + POWERPC_DEF("440GRX", CPU_POWERPC_440GRX, 440x5), /* PowerPC 440 GX */ - POWERPC_DEF("440GX", CPU_POWERPC_440GX, 0xFFFFFFFF, 440EP), + POWERPC_DEF("440GX", CPU_POWERPC_440GX, 440EP), /* PowerPC 440 GXa */ - POWERPC_DEF("440GXa", CPU_POWERPC_440GXa, 0xFFFFFFFF, 440EP), + POWERPC_DEF("440GXa", CPU_POWERPC_440GXa, 440EP), /* PowerPC 440 GXb */ - POWERPC_DEF("440GXb", CPU_POWERPC_440GXb, 0xFFFFFFFF, 440EP), + POWERPC_DEF("440GXb", CPU_POWERPC_440GXb, 440EP), /* PowerPC 440 GXc */ - POWERPC_DEF("440GXc", CPU_POWERPC_440GXc, 0xFFFFFFFF, 440EP), + POWERPC_DEF("440GXc", CPU_POWERPC_440GXc, 440EP), /* PowerPC 440 GXf */ - POWERPC_DEF("440GXf", CPU_POWERPC_440GXf, 0xFFFFFFFF, 440EP), + POWERPC_DEF("440GXf", CPU_POWERPC_440GXf, 440EP), #if defined(TODO) /* PowerPC 440 S */ - POWERPC_DEF("440S", CPU_POWERPC_440S, 0xFFFFFFFF, 440), + POWERPC_DEF("440S", CPU_POWERPC_440S, 440), #endif /* PowerPC 440 SP */ - POWERPC_DEF("440SP", CPU_POWERPC_440SP, 0xFFFFFFFF, 440EP), + POWERPC_DEF("440SP", CPU_POWERPC_440SP, 440EP), /* PowerPC 440 SP2 */ - POWERPC_DEF("440SP2", CPU_POWERPC_440SP2, 0xFFFFFFFF, 440EP), + POWERPC_DEF("440SP2", CPU_POWERPC_440SP2, 440EP), /* PowerPC 440 SPE */ - POWERPC_DEF("440SPE", CPU_POWERPC_440SPE, 0xFFFFFFFF, 440EP), + POWERPC_DEF("440SPE", CPU_POWERPC_440SPE, 440EP), /* PowerPC 460 family */ #if defined (TODO) /* Generic PowerPC 464 */ - POWERPC_DEF("464", CPU_POWERPC_464, 0xFFFFFFFF, 460), + POWERPC_DEF("464", CPU_POWERPC_464, 460), #endif /* PowerPC 464 microcontrolers */ #if defined (TODO) /* PowerPC 464H90 */ - POWERPC_DEF("464H90", CPU_POWERPC_464H90, 0xFFFFFFFF, 460), + POWERPC_DEF("464H90", CPU_POWERPC_464H90, 460), #endif #if defined (TODO) /* PowerPC 464H90F */ - POWERPC_DEF("464H90F", CPU_POWERPC_464H90F, 0xFFFFFFFF, 460F), + POWERPC_DEF("464H90F", CPU_POWERPC_464H90F, 460F), #endif /* Freescale embedded PowerPC cores */ /* e200 family */ #if defined (TODO) /* Generic PowerPC e200 core */ - POWERPC_DEF("e200", CPU_POWERPC_e200, 0xFFFFFFFF, e200), + POWERPC_DEF("e200", CPU_POWERPC_e200, e200), #endif #if defined (TODO) /* PowerPC e200z5 core */ - POWERPC_DEF("e200z5", CPU_POWERPC_e200z5, 0xFFFFFFFF, e200), + POWERPC_DEF("e200z5", CPU_POWERPC_e200z5, e200), #endif #if defined (TODO) /* PowerPC e200z6 core */ - POWERPC_DEF("e200z6", CPU_POWERPC_e200z6, 0xFFFFFFFF, e200), + POWERPC_DEF("e200z6", CPU_POWERPC_e200z6, e200), #endif /* e300 family */ #if defined (TODO) /* Generic PowerPC e300 core */ - POWERPC_DEF("e300", CPU_POWERPC_e300, 0xFFFFFFFF, e300), + POWERPC_DEF("e300", CPU_POWERPC_e300, e300), #endif #if defined (TODO) /* PowerPC e300c1 core */ - POWERPC_DEF("e300c1", CPU_POWERPC_e300c1, 0xFFFFFFFF, e300), + POWERPC_DEF("e300c1", CPU_POWERPC_e300c1, e300), #endif #if defined (TODO) /* PowerPC e300c2 core */ - POWERPC_DEF("e300c2", CPU_POWERPC_e300c2, 0xFFFFFFFF, e300), + POWERPC_DEF("e300c2", CPU_POWERPC_e300c2, e300), #endif #if defined (TODO) /* PowerPC e300c3 core */ - POWERPC_DEF("e300c3", CPU_POWERPC_e300c3, 0xFFFFFFFF, e300), + POWERPC_DEF("e300c3", CPU_POWERPC_e300c3, e300), #endif /* e500 family */ #if defined (TODO) /* PowerPC e500 core */ - POWERPC_DEF("e500", CPU_POWERPC_e500, 0xFFFFFFFF, e500), + POWERPC_DEF("e500", CPU_POWERPC_e500, e500), #endif #if defined (TODO) /* PowerPC e500 v1.1 core */ - POWERPC_DEF("e500v1.1", CPU_POWERPC_e500_v11, 0xFFFFFFFF, e500), + POWERPC_DEF("e500v1.1", CPU_POWERPC_e500_v11, e500), #endif #if defined (TODO) /* PowerPC e500 v1.2 core */ - POWERPC_DEF("e500v1.2", CPU_POWERPC_e500_v12, 0xFFFFFFFF, e500), + POWERPC_DEF("e500v1.2", CPU_POWERPC_e500_v12, e500), #endif #if defined (TODO) /* PowerPC e500 v2.1 core */ - POWERPC_DEF("e500v2.1", CPU_POWERPC_e500_v21, 0xFFFFFFFF, e500), + POWERPC_DEF("e500v2.1", CPU_POWERPC_e500_v21, e500), #endif #if defined (TODO) /* PowerPC e500 v2.2 core */ - POWERPC_DEF("e500v2.2", CPU_POWERPC_e500_v22, 0xFFFFFFFF, e500), + POWERPC_DEF("e500v2.2", CPU_POWERPC_e500_v22, e500), #endif /* e600 family */ #if defined (TODO) /* PowerPC e600 core */ - POWERPC_DEF("e600", CPU_POWERPC_e600, 0xFFFFFFFF, e600), + POWERPC_DEF("e600", CPU_POWERPC_e600, e600), #endif /* PowerPC MPC 5xx cores */ #if defined (TODO) /* PowerPC MPC 5xx */ - POWERPC_DEF("mpc5xx", CPU_POWERPC_5xx, 0xFFFFFFFF, 5xx), + POWERPC_DEF("mpc5xx", CPU_POWERPC_5xx, 5xx), #endif /* PowerPC MPC 8xx cores */ #if defined (TODO) /* PowerPC MPC 8xx */ - POWERPC_DEF("mpc8xx", CPU_POWERPC_8xx, 0xFFFFFFFF, 8xx), + POWERPC_DEF("mpc8xx", CPU_POWERPC_8xx, 8xx), #endif /* PowerPC MPC 8xxx cores */ #if defined (TODO) /* PowerPC MPC 82xx HIP3 */ - POWERPC_DEF("mpc82xxhip3", CPU_POWERPC_82xx_HIP3, 0xFFFFFFFF, 82xx), + POWERPC_DEF("mpc82xxhip3", CPU_POWERPC_82xx_HIP3, 82xx), #endif #if defined (TODO) /* PowerPC MPC 82xx HIP4 */ - POWERPC_DEF("mpc82xxhip4", CPU_POWERPC_82xx_HIP4, 0xFFFFFFFF, 82xx), + POWERPC_DEF("mpc82xxhip4", CPU_POWERPC_82xx_HIP4, 82xx), #endif #if defined (TODO) /* PowerPC MPC 827x */ - POWERPC_DEF("mpc827x", CPU_POWERPC_827x, 0xFFFFFFFF, 827x), + POWERPC_DEF("mpc827x", CPU_POWERPC_827x, 827x), #endif /* 32 bits "classic" PowerPC */ /* PowerPC 6xx family */ /* PowerPC 601 */ - POWERPC_DEF("601", CPU_POWERPC_601, 0xFFFFFFFF, 601), + POWERPC_DEF("601", CPU_POWERPC_601, 601), /* PowerPC 601v2 */ - POWERPC_DEF("601a", CPU_POWERPC_601a, 0xFFFFFFFF, 601), + POWERPC_DEF("601a", CPU_POWERPC_601a, 601), /* PowerPC 602 */ - POWERPC_DEF("602", CPU_POWERPC_602, 0xFFFFFFFF, 602), + POWERPC_DEF("602", CPU_POWERPC_602, 602), /* PowerPC 603 */ - POWERPC_DEF("603", CPU_POWERPC_603, 0xFFFFFFFF, 603), + POWERPC_DEF("603", CPU_POWERPC_603, 603), /* Code name for PowerPC 603 */ - POWERPC_DEF("Vanilla", CPU_POWERPC_603, 0xFFFFFFFF, 603), + POWERPC_DEF("Vanilla", CPU_POWERPC_603, 603), /* PowerPC 603e */ - POWERPC_DEF("603e", CPU_POWERPC_603E, 0xFFFFFFFF, 603E), + POWERPC_DEF("603e", CPU_POWERPC_603E, 603E), /* Code name for PowerPC 603e */ - POWERPC_DEF("Stretch", CPU_POWERPC_603E, 0xFFFFFFFF, 603E), + POWERPC_DEF("Stretch", CPU_POWERPC_603E, 603E), /* PowerPC 603e v1.1 */ - POWERPC_DEF("603e1.1", CPU_POWERPC_603E_v11, 0xFFFFFFFF, 603E), + POWERPC_DEF("603e1.1", CPU_POWERPC_603E_v11, 603E), /* PowerPC 603e v1.2 */ - POWERPC_DEF("603e1.2", CPU_POWERPC_603E_v12, 0xFFFFFFFF, 603E), + POWERPC_DEF("603e1.2", CPU_POWERPC_603E_v12, 603E), /* PowerPC 603e v1.3 */ - POWERPC_DEF("603e1.3", CPU_POWERPC_603E_v13, 0xFFFFFFFF, 603E), + POWERPC_DEF("603e1.3", CPU_POWERPC_603E_v13, 603E), /* PowerPC 603e v1.4 */ - POWERPC_DEF("603e1.4", CPU_POWERPC_603E_v14, 0xFFFFFFFF, 603E), + POWERPC_DEF("603e1.4", CPU_POWERPC_603E_v14, 603E), /* PowerPC 603e v2.2 */ - POWERPC_DEF("603e2.2", CPU_POWERPC_603E_v22, 0xFFFFFFFF, 603E), + POWERPC_DEF("603e2.2", CPU_POWERPC_603E_v22, 603E), /* PowerPC 603e v3 */ - POWERPC_DEF("603e3", CPU_POWERPC_603E_v3, 0xFFFFFFFF, 603E), + POWERPC_DEF("603e3", CPU_POWERPC_603E_v3, 603E), /* PowerPC 603e v4 */ - POWERPC_DEF("603e4", CPU_POWERPC_603E_v4, 0xFFFFFFFF, 603E), + POWERPC_DEF("603e4", CPU_POWERPC_603E_v4, 603E), /* PowerPC 603e v4.1 */ - POWERPC_DEF("603e4.1", CPU_POWERPC_603E_v41, 0xFFFFFFFF, 603E), + POWERPC_DEF("603e4.1", CPU_POWERPC_603E_v41, 603E), /* PowerPC 603e */ - POWERPC_DEF("603e7", CPU_POWERPC_603E7, 0xFFFFFFFF, 603E), + POWERPC_DEF("603e7", CPU_POWERPC_603E7, 603E), /* PowerPC 603e7t */ - POWERPC_DEF("603e7t", CPU_POWERPC_603E7t, 0xFFFFFFFF, 603E), + POWERPC_DEF("603e7t", CPU_POWERPC_603E7t, 603E), /* PowerPC 603e7v */ - POWERPC_DEF("603e7v", CPU_POWERPC_603E7v, 0xFFFFFFFF, 603E), + POWERPC_DEF("603e7v", CPU_POWERPC_603E7v, 603E), /* Code name for PowerPC 603ev */ - POWERPC_DEF("Vaillant", CPU_POWERPC_603E7v, 0xFFFFFFFF, 603E), + POWERPC_DEF("Vaillant", CPU_POWERPC_603E7v, 603E), /* PowerPC 603e7v1 */ - POWERPC_DEF("603e7v1", CPU_POWERPC_603E7v1, 0xFFFFFFFF, 603E), + POWERPC_DEF("603e7v1", CPU_POWERPC_603E7v1, 603E), /* PowerPC 603e7v2 */ - POWERPC_DEF("603e7v2", CPU_POWERPC_603E7v2, 0xFFFFFFFF, 603E), + POWERPC_DEF("603e7v2", CPU_POWERPC_603E7v2, 603E), /* PowerPC 603p */ /* to be checked */ - POWERPC_DEF("603p", CPU_POWERPC_603P, 0xFFFFFFFF, 603), + POWERPC_DEF("603p", CPU_POWERPC_603P, 603), /* PowerPC 603r */ - POWERPC_DEF("603r", CPU_POWERPC_603R, 0xFFFFFFFF, 603E), + POWERPC_DEF("603r", CPU_POWERPC_603R, 603E), /* Code name for PowerPC 603r */ - POWERPC_DEF("Goldeneye", CPU_POWERPC_603R, 0xFFFFFFFF, 603E), + POWERPC_DEF("Goldeneye", CPU_POWERPC_603R, 603E), /* PowerPC G2 core */ - POWERPC_DEF("G2", CPU_POWERPC_G2, 0xFFFFFFFF, G2), + POWERPC_DEF("G2", CPU_POWERPC_G2, G2), /* PowerPC G2 H4 */ - POWERPC_DEF("G2H4", CPU_POWERPC_G2H4, 0xFFFFFFFF, G2), + POWERPC_DEF("G2H4", CPU_POWERPC_G2H4, G2), /* PowerPC G2 GP */ - POWERPC_DEF("G2GP", CPU_POWERPC_G2gp, 0xFFFFFFFF, G2), + POWERPC_DEF("G2GP", CPU_POWERPC_G2gp, G2), /* PowerPC G2 LS */ - POWERPC_DEF("G2LS", CPU_POWERPC_G2ls, 0xFFFFFFFF, G2), + POWERPC_DEF("G2LS", CPU_POWERPC_G2ls, G2), /* PowerPC G2LE */ /* Same as G2, with little-endian mode support */ - POWERPC_DEF("G2le", CPU_POWERPC_G2LE, 0xFFFFFFFF, G2LE), + POWERPC_DEF("G2le", CPU_POWERPC_G2LE, G2LE), /* PowerPC G2LE GP */ - POWERPC_DEF("G2leGP", CPU_POWERPC_G2LEgp, 0xFFFFFFFF, G2LE), + POWERPC_DEF("G2leGP", CPU_POWERPC_G2LEgp, G2LE), /* PowerPC G2LE LS */ - POWERPC_DEF("G2leLS", CPU_POWERPC_G2LEls, 0xFFFFFFFF, G2LE), + POWERPC_DEF("G2leLS", CPU_POWERPC_G2LEls, G2LE), /* PowerPC 604 */ - POWERPC_DEF("604", CPU_POWERPC_604, 0xFFFFFFFF, 604), + POWERPC_DEF("604", CPU_POWERPC_604, 604), /* PowerPC 604e */ - POWERPC_DEF("604e", CPU_POWERPC_604E, 0xFFFFFFFF, 604), + /* XXX: code names "Sirocco" "Mach 5" */ + POWERPC_DEF("604e", CPU_POWERPC_604E, 604), /* PowerPC 604e v1.0 */ - POWERPC_DEF("604e1.0", CPU_POWERPC_604E_v10, 0xFFFFFFFF, 604), + POWERPC_DEF("604e1.0", CPU_POWERPC_604E_v10, 604), /* PowerPC 604e v2.2 */ - POWERPC_DEF("604e2.2", CPU_POWERPC_604E_v22, 0xFFFFFFFF, 604), + POWERPC_DEF("604e2.2", CPU_POWERPC_604E_v22, 604), /* PowerPC 604e v2.4 */ - POWERPC_DEF("604e2.4", CPU_POWERPC_604E_v24, 0xFFFFFFFF, 604), + POWERPC_DEF("604e2.4", CPU_POWERPC_604E_v24, 604), /* PowerPC 604r */ - POWERPC_DEF("604r", CPU_POWERPC_604R, 0xFFFFFFFF, 604), + POWERPC_DEF("604r", CPU_POWERPC_604R, 604), #if defined(TODO) /* PowerPC 604ev */ - POWERPC_DEF("604ev", CPU_POWERPC_604EV, 0xFFFFFFFF, 604), + POWERPC_DEF("604ev", CPU_POWERPC_604EV, 604), #endif /* PowerPC 7xx family */ /* Generic PowerPC 740 (G3) */ - POWERPC_DEF("740", CPU_POWERPC_7x0, 0xFFFFFFFF, 7x0), + POWERPC_DEF("740", CPU_POWERPC_7x0, 7x0), /* Generic PowerPC 750 (G3) */ - POWERPC_DEF("750", CPU_POWERPC_7x0, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750", CPU_POWERPC_7x0, 7x0), /* Code name for generic PowerPC 740/750 (G3) */ - POWERPC_DEF("Arthur", CPU_POWERPC_7x0, 0xFFFFFFFF, 7x0), + POWERPC_DEF("Arthur", CPU_POWERPC_7x0, 7x0), + /* XXX: 750 codename "Typhoon" */ /* PowerPC 740/750 is also known as G3 */ - POWERPC_DEF("G3", CPU_POWERPC_7x0, 0xFFFFFFFF, 7x0), + POWERPC_DEF("G3", CPU_POWERPC_7x0, 7x0), /* PowerPC 740 v2.0 (G3) */ - POWERPC_DEF("740v2.0", CPU_POWERPC_7x0_v20, 0xFFFFFFFF, 7x0), + POWERPC_DEF("740v2.0", CPU_POWERPC_7x0_v20, 7x0), /* PowerPC 750 v2.0 (G3) */ - POWERPC_DEF("750v2.0", CPU_POWERPC_7x0_v20, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750v2.0", CPU_POWERPC_7x0_v20, 7x0), /* PowerPC 740 v2.1 (G3) */ - POWERPC_DEF("740v2.1", CPU_POWERPC_7x0_v21, 0xFFFFFFFF, 7x0), + POWERPC_DEF("740v2.1", CPU_POWERPC_7x0_v21, 7x0), /* PowerPC 750 v2.1 (G3) */ - POWERPC_DEF("750v2.1", CPU_POWERPC_7x0_v21, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750v2.1", CPU_POWERPC_7x0_v21, 7x0), /* PowerPC 740 v2.2 (G3) */ - POWERPC_DEF("740v2.2", CPU_POWERPC_7x0_v22, 0xFFFFFFFF, 7x0), + POWERPC_DEF("740v2.2", CPU_POWERPC_7x0_v22, 7x0), /* PowerPC 750 v2.2 (G3) */ - POWERPC_DEF("750v2.2", CPU_POWERPC_7x0_v22, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750v2.2", CPU_POWERPC_7x0_v22, 7x0), /* PowerPC 740 v3.0 (G3) */ - POWERPC_DEF("740v3.0", CPU_POWERPC_7x0_v30, 0xFFFFFFFF, 7x0), + POWERPC_DEF("740v3.0", CPU_POWERPC_7x0_v30, 7x0), /* PowerPC 750 v3.0 (G3) */ - POWERPC_DEF("750v3.0", CPU_POWERPC_7x0_v30, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750v3.0", CPU_POWERPC_7x0_v30, 7x0), /* PowerPC 740 v3.1 (G3) */ - POWERPC_DEF("740v3.1", CPU_POWERPC_7x0_v31, 0xFFFFFFFF, 7x0), + POWERPC_DEF("740v3.1", CPU_POWERPC_7x0_v31, 7x0), /* PowerPC 750 v3.1 (G3) */ - POWERPC_DEF("750v3.1", CPU_POWERPC_7x0_v31, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750v3.1", CPU_POWERPC_7x0_v31, 7x0), /* PowerPC 740E (G3) */ - POWERPC_DEF("740e", CPU_POWERPC_740E, 0xFFFFFFFF, 7x0), + POWERPC_DEF("740e", CPU_POWERPC_740E, 7x0), /* PowerPC 740P (G3) */ - POWERPC_DEF("740p", CPU_POWERPC_7x0P, 0xFFFFFFFF, 7x0), + POWERPC_DEF("740p", CPU_POWERPC_7x0P, 7x0), /* PowerPC 750P (G3) */ - POWERPC_DEF("750p", CPU_POWERPC_7x0P, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750p", CPU_POWERPC_7x0P, 7x0), /* Code name for PowerPC 740P/750P (G3) */ - POWERPC_DEF("Conan/Doyle", CPU_POWERPC_7x0P, 0xFFFFFFFF, 7x0), + POWERPC_DEF("Conan/Doyle", CPU_POWERPC_7x0P, 7x0), /* PowerPC 750CL (G3 embedded) */ - POWERPC_DEF("750cl", CPU_POWERPC_750CL, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750cl", CPU_POWERPC_750CL, 7x0), /* PowerPC 750CX (G3 embedded) */ - POWERPC_DEF("750cx", CPU_POWERPC_750CX, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750cx", CPU_POWERPC_750CX, 7x0), /* PowerPC 750CX v2.1 (G3 embedded) */ - POWERPC_DEF("750cx2.1", CPU_POWERPC_750CX_v21, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750cx2.1", CPU_POWERPC_750CX_v21, 7x0), /* PowerPC 750CX v2.2 (G3 embedded) */ - POWERPC_DEF("750cx2.2", CPU_POWERPC_750CX_v22, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750cx2.2", CPU_POWERPC_750CX_v22, 7x0), /* PowerPC 750CXe (G3 embedded) */ - POWERPC_DEF("750cxe", CPU_POWERPC_750CXE, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750cxe", CPU_POWERPC_750CXE, 7x0), /* PowerPC 750CXe v2.1 (G3 embedded) */ - POWERPC_DEF("750cxe21", CPU_POWERPC_750CXE_v21, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750cxe21", CPU_POWERPC_750CXE_v21, 7x0), /* PowerPC 750CXe v2.2 (G3 embedded) */ - POWERPC_DEF("750cxe22", CPU_POWERPC_750CXE_v22, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750cxe22", CPU_POWERPC_750CXE_v22, 7x0), /* PowerPC 750CXe v2.3 (G3 embedded) */ - POWERPC_DEF("750cxe23", CPU_POWERPC_750CXE_v23, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750cxe23", CPU_POWERPC_750CXE_v23, 7x0), /* PowerPC 750CXe v2.4 (G3 embedded) */ - POWERPC_DEF("750cxe24", CPU_POWERPC_750CXE_v24, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750cxe24", CPU_POWERPC_750CXE_v24, 7x0), /* PowerPC 750CXe v2.4b (G3 embedded) */ - POWERPC_DEF("750cxe24b", CPU_POWERPC_750CXE_v24b, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750cxe24b", CPU_POWERPC_750CXE_v24b, 7x0), /* PowerPC 750CXe v3.1 (G3 embedded) */ - POWERPC_DEF("750cxe31", CPU_POWERPC_750CXE_v31, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750cxe31", CPU_POWERPC_750CXE_v31, 7x0), /* PowerPC 750CXe v3.1b (G3 embedded) */ - POWERPC_DEF("750cxe3.1b", CPU_POWERPC_750CXE_v31b, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750cxe3.1b", CPU_POWERPC_750CXE_v31b, 7x0), /* PowerPC 750CXr (G3 embedded) */ - POWERPC_DEF("750cxr", CPU_POWERPC_750CXR, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750cxr", CPU_POWERPC_750CXR, 7x0), /* PowerPC 750E (G3) */ - POWERPC_DEF("750e", CPU_POWERPC_750E, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750e", CPU_POWERPC_750E, 7x0), /* PowerPC 750FL (G3 embedded) */ - POWERPC_DEF("750fl", CPU_POWERPC_750FL, 0xFFFFFFFF, 750fx), + POWERPC_DEF("750fl", CPU_POWERPC_750FL, 750fx), /* PowerPC 750FX (G3 embedded) */ - POWERPC_DEF("750fx", CPU_POWERPC_750FX, 0xFFFFFFFF, 750fx), + POWERPC_DEF("750fx", CPU_POWERPC_750FX, 750fx), /* PowerPC 750FX v1.0 (G3 embedded) */ - POWERPC_DEF("750fx1.0", CPU_POWERPC_750FX_v10, 0xFFFFFFFF, 750fx), + POWERPC_DEF("750fx1.0", CPU_POWERPC_750FX_v10, 750fx), /* PowerPC 750FX v2.0 (G3 embedded) */ - POWERPC_DEF("750fx2.0", CPU_POWERPC_750FX_v20, 0xFFFFFFFF, 750fx), + POWERPC_DEF("750fx2.0", CPU_POWERPC_750FX_v20, 750fx), /* PowerPC 750FX v2.1 (G3 embedded) */ - POWERPC_DEF("750fx2.1", CPU_POWERPC_750FX_v21, 0xFFFFFFFF, 750fx), + POWERPC_DEF("750fx2.1", CPU_POWERPC_750FX_v21, 750fx), /* PowerPC 750FX v2.2 (G3 embedded) */ - POWERPC_DEF("750fx2.2", CPU_POWERPC_750FX_v22, 0xFFFFFFFF, 750fx), + POWERPC_DEF("750fx2.2", CPU_POWERPC_750FX_v22, 750fx), /* PowerPC 750FX v2.3 (G3 embedded) */ - POWERPC_DEF("750fx2.3", CPU_POWERPC_750FX_v23, 0xFFFFFFFF, 750fx), + POWERPC_DEF("750fx2.3", CPU_POWERPC_750FX_v23, 750fx), /* PowerPC 750GL (G3 embedded) */ - POWERPC_DEF("750gl", CPU_POWERPC_750GL, 0xFFFFFFFF, 750fx), + POWERPC_DEF("750gl", CPU_POWERPC_750GL, 750fx), /* PowerPC 750GX (G3 embedded) */ - POWERPC_DEF("750gx", CPU_POWERPC_750GX, 0xFFFFFFFF, 750fx), + POWERPC_DEF("750gx", CPU_POWERPC_750GX, 750fx), /* PowerPC 750GX v1.0 (G3 embedded) */ - POWERPC_DEF("750gx1.0", CPU_POWERPC_750GX_v10, 0xFFFFFFFF, 750fx), + POWERPC_DEF("750gx1.0", CPU_POWERPC_750GX_v10, 750fx), /* PowerPC 750GX v1.1 (G3 embedded) */ - POWERPC_DEF("750gx1.1", CPU_POWERPC_750GX_v11, 0xFFFFFFFF, 750fx), + POWERPC_DEF("750gx1.1", CPU_POWERPC_750GX_v11, 750fx), /* PowerPC 750GX v1.2 (G3 embedded) */ - POWERPC_DEF("750gx1.2", CPU_POWERPC_750GX_v12, 0xFFFFFFFF, 750fx), + POWERPC_DEF("750gx1.2", CPU_POWERPC_750GX_v12, 750fx), /* PowerPC 750L (G3 embedded) */ - POWERPC_DEF("750l", CPU_POWERPC_750L, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750l", CPU_POWERPC_750L, 7x0), /* Code name for PowerPC 750L (G3 embedded) */ - POWERPC_DEF("LoneStar", CPU_POWERPC_750L, 0xFFFFFFFF, 7x0), + POWERPC_DEF("LoneStar", CPU_POWERPC_750L, 7x0), /* PowerPC 750L v2.2 (G3 embedded) */ - POWERPC_DEF("750l2.2", CPU_POWERPC_750L_v22, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750l2.2", CPU_POWERPC_750L_v22, 7x0), /* PowerPC 750L v3.0 (G3 embedded) */ - POWERPC_DEF("750l3.0", CPU_POWERPC_750L_v30, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750l3.0", CPU_POWERPC_750L_v30, 7x0), /* PowerPC 750L v3.2 (G3 embedded) */ - POWERPC_DEF("750l3.2", CPU_POWERPC_750L_v32, 0xFFFFFFFF, 7x0), + POWERPC_DEF("750l3.2", CPU_POWERPC_750L_v32, 7x0), /* Generic PowerPC 745 */ - POWERPC_DEF("745", CPU_POWERPC_7x5, 0xFFFFFFFF, 7x5), + POWERPC_DEF("745", CPU_POWERPC_7x5, 7x5), /* Generic PowerPC 755 */ - POWERPC_DEF("755", CPU_POWERPC_7x5, 0xFFFFFFFF, 7x5), + POWERPC_DEF("755", CPU_POWERPC_7x5, 7x5), /* Code name for PowerPC 745/755 */ - POWERPC_DEF("Goldfinger", CPU_POWERPC_7x5, 0xFFFFFFFF, 7x5), + POWERPC_DEF("Goldfinger", CPU_POWERPC_7x5, 7x5), /* PowerPC 745 v1.0 */ - POWERPC_DEF("745v1.0", CPU_POWERPC_7x5_v10, 0xFFFFFFFF, 7x5), + POWERPC_DEF("745v1.0", CPU_POWERPC_7x5_v10, 7x5), /* PowerPC 755 v1.0 */ - POWERPC_DEF("755v1.0", CPU_POWERPC_7x5_v10, 0xFFFFFFFF, 7x5), + POWERPC_DEF("755v1.0", CPU_POWERPC_7x5_v10, 7x5), /* PowerPC 745 v1.1 */ - POWERPC_DEF("745v1.1", CPU_POWERPC_7x5_v11, 0xFFFFFFFF, 7x5), + POWERPC_DEF("745v1.1", CPU_POWERPC_7x5_v11, 7x5), /* PowerPC 755 v1.1 */ - POWERPC_DEF("755v1.1", CPU_POWERPC_7x5_v11, 0xFFFFFFFF, 7x5), + POWERPC_DEF("755v1.1", CPU_POWERPC_7x5_v11, 7x5), /* PowerPC 745 v2.0 */ - POWERPC_DEF("745v2.0", CPU_POWERPC_7x5_v20, 0xFFFFFFFF, 7x5), + POWERPC_DEF("745v2.0", CPU_POWERPC_7x5_v20, 7x5), /* PowerPC 755 v2.0 */ - POWERPC_DEF("755v2.0", CPU_POWERPC_7x5_v20, 0xFFFFFFFF, 7x5), + POWERPC_DEF("755v2.0", CPU_POWERPC_7x5_v20, 7x5), /* PowerPC 745 v2.1 */ - POWERPC_DEF("745v2.1", CPU_POWERPC_7x5_v21, 0xFFFFFFFF, 7x5), + POWERPC_DEF("745v2.1", CPU_POWERPC_7x5_v21, 7x5), /* PowerPC 755 v2.1 */ - POWERPC_DEF("755v2.1", CPU_POWERPC_7x5_v21, 0xFFFFFFFF, 7x5), + POWERPC_DEF("755v2.1", CPU_POWERPC_7x5_v21, 7x5), /* PowerPC 745 v2.2 */ - POWERPC_DEF("745v2.2", CPU_POWERPC_7x5_v22, 0xFFFFFFFF, 7x5), + POWERPC_DEF("745v2.2", CPU_POWERPC_7x5_v22, 7x5), /* PowerPC 755 v2.2 */ - POWERPC_DEF("755v2.2", CPU_POWERPC_7x5_v22, 0xFFFFFFFF, 7x5), + POWERPC_DEF("755v2.2", CPU_POWERPC_7x5_v22, 7x5), /* PowerPC 745 v2.3 */ - POWERPC_DEF("745v2.3", CPU_POWERPC_7x5_v23, 0xFFFFFFFF, 7x5), + POWERPC_DEF("745v2.3", CPU_POWERPC_7x5_v23, 7x5), /* PowerPC 755 v2.3 */ - POWERPC_DEF("755v2.3", CPU_POWERPC_7x5_v23, 0xFFFFFFFF, 7x5), + POWERPC_DEF("755v2.3", CPU_POWERPC_7x5_v23, 7x5), /* PowerPC 745 v2.4 */ - POWERPC_DEF("745v2.4", CPU_POWERPC_7x5_v24, 0xFFFFFFFF, 7x5), + POWERPC_DEF("745v2.4", CPU_POWERPC_7x5_v24, 7x5), /* PowerPC 755 v2.4 */ - POWERPC_DEF("755v2.4", CPU_POWERPC_7x5_v24, 0xFFFFFFFF, 7x5), + POWERPC_DEF("755v2.4", CPU_POWERPC_7x5_v24, 7x5), /* PowerPC 745 v2.5 */ - POWERPC_DEF("745v2.5", CPU_POWERPC_7x5_v25, 0xFFFFFFFF, 7x5), + POWERPC_DEF("745v2.5", CPU_POWERPC_7x5_v25, 7x5), /* PowerPC 755 v2.5 */ - POWERPC_DEF("755v2.5", CPU_POWERPC_7x5_v25, 0xFFFFFFFF, 7x5), + POWERPC_DEF("755v2.5", CPU_POWERPC_7x5_v25, 7x5), /* PowerPC 745 v2.6 */ - POWERPC_DEF("745v2.6", CPU_POWERPC_7x5_v26, 0xFFFFFFFF, 7x5), + POWERPC_DEF("745v2.6", CPU_POWERPC_7x5_v26, 7x5), /* PowerPC 755 v2.6 */ - POWERPC_DEF("755v2.6", CPU_POWERPC_7x5_v26, 0xFFFFFFFF, 7x5), + POWERPC_DEF("755v2.6", CPU_POWERPC_7x5_v26, 7x5), /* PowerPC 745 v2.7 */ - POWERPC_DEF("745v2.7", CPU_POWERPC_7x5_v27, 0xFFFFFFFF, 7x5), + POWERPC_DEF("745v2.7", CPU_POWERPC_7x5_v27, 7x5), /* PowerPC 755 v2.7 */ - POWERPC_DEF("755v2.7", CPU_POWERPC_7x5_v27, 0xFFFFFFFF, 7x5), + POWERPC_DEF("755v2.7", CPU_POWERPC_7x5_v27, 7x5), /* PowerPC 745 v2.8 */ - POWERPC_DEF("745v2.8", CPU_POWERPC_7x5_v28, 0xFFFFFFFF, 7x5), + POWERPC_DEF("745v2.8", CPU_POWERPC_7x5_v28, 7x5), /* PowerPC 755 v2.8 */ - POWERPC_DEF("755v2.8", CPU_POWERPC_7x5_v28, 0xFFFFFFFF, 7x5), + POWERPC_DEF("755v2.8", CPU_POWERPC_7x5_v28, 7x5), #if defined (TODO) /* PowerPC 745P (G3) */ - POWERPC_DEF("745p", CPU_POWERPC_7x5P, 0xFFFFFFFF, 7x5), + POWERPC_DEF("745p", CPU_POWERPC_7x5P, 7x5), /* PowerPC 755P (G3) */ - POWERPC_DEF("755p", CPU_POWERPC_7x5P, 0xFFFFFFFF, 7x5), + POWERPC_DEF("755p", CPU_POWERPC_7x5P, 7x5), #endif /* PowerPC 74xx family */ /* PowerPC 7400 (G4) */ - POWERPC_DEF("7400", CPU_POWERPC_7400, 0xFFFFFFFF, 7400), + POWERPC_DEF("7400", CPU_POWERPC_7400, 7400), /* Code name for PowerPC 7400 */ - POWERPC_DEF("Max", CPU_POWERPC_7400, 0xFFFFFFFF, 7400), + POWERPC_DEF("Max", CPU_POWERPC_7400, 7400), /* PowerPC 74xx is also well known as G4 */ - POWERPC_DEF("G4", CPU_POWERPC_7400, 0xFFFFFFFF, 7400), + POWERPC_DEF("G4", CPU_POWERPC_7400, 7400), /* PowerPC 7400 v1.0 (G4) */ - POWERPC_DEF("7400v1.0", CPU_POWERPC_7400_v10, 0xFFFFFFFF, 7400), + POWERPC_DEF("7400v1.0", CPU_POWERPC_7400_v10, 7400), /* PowerPC 7400 v1.1 (G4) */ - POWERPC_DEF("7400v1.1", CPU_POWERPC_7400_v11, 0xFFFFFFFF, 7400), + POWERPC_DEF("7400v1.1", CPU_POWERPC_7400_v11, 7400), /* PowerPC 7400 v2.0 (G4) */ - POWERPC_DEF("7400v2.0", CPU_POWERPC_7400_v20, 0xFFFFFFFF, 7400), + POWERPC_DEF("7400v2.0", CPU_POWERPC_7400_v20, 7400), /* PowerPC 7400 v2.2 (G4) */ - POWERPC_DEF("7400v2.2", CPU_POWERPC_7400_v22, 0xFFFFFFFF, 7400), + POWERPC_DEF("7400v2.2", CPU_POWERPC_7400_v22, 7400), /* PowerPC 7400 v2.6 (G4) */ - POWERPC_DEF("7400v2.6", CPU_POWERPC_7400_v26, 0xFFFFFFFF, 7400), + POWERPC_DEF("7400v2.6", CPU_POWERPC_7400_v26, 7400), /* PowerPC 7400 v2.7 (G4) */ - POWERPC_DEF("7400v2.7", CPU_POWERPC_7400_v27, 0xFFFFFFFF, 7400), + POWERPC_DEF("7400v2.7", CPU_POWERPC_7400_v27, 7400), /* PowerPC 7400 v2.8 (G4) */ - POWERPC_DEF("7400v2.8", CPU_POWERPC_7400_v28, 0xFFFFFFFF, 7400), + POWERPC_DEF("7400v2.8", CPU_POWERPC_7400_v28, 7400), /* PowerPC 7400 v2.9 (G4) */ - POWERPC_DEF("7400v2.9", CPU_POWERPC_7400_v29, 0xFFFFFFFF, 7400), + POWERPC_DEF("7400v2.9", CPU_POWERPC_7400_v29, 7400), /* PowerPC 7410 (G4) */ - POWERPC_DEF("7410", CPU_POWERPC_7410, 0xFFFFFFFF, 7410), + POWERPC_DEF("7410", CPU_POWERPC_7410, 7410), /* Code name for PowerPC 7410 */ - POWERPC_DEF("Nitro", CPU_POWERPC_7410, 0xFFFFFFFF, 7410), + POWERPC_DEF("Nitro", CPU_POWERPC_7410, 7410), /* PowerPC 7410 v1.0 (G4) */ - POWERPC_DEF("7410v1.0", CPU_POWERPC_7410_v10, 0xFFFFFFFF, 7410), + POWERPC_DEF("7410v1.0", CPU_POWERPC_7410_v10, 7410), /* PowerPC 7410 v1.1 (G4) */ - POWERPC_DEF("7410v1.1", CPU_POWERPC_7410_v11, 0xFFFFFFFF, 7410), + POWERPC_DEF("7410v1.1", CPU_POWERPC_7410_v11, 7410), /* PowerPC 7410 v1.2 (G4) */ - POWERPC_DEF("7410v1.2", CPU_POWERPC_7410_v12, 0xFFFFFFFF, 7410), + POWERPC_DEF("7410v1.2", CPU_POWERPC_7410_v12, 7410), /* PowerPC 7410 v1.3 (G4) */ - POWERPC_DEF("7410v1.3", CPU_POWERPC_7410_v13, 0xFFFFFFFF, 7410), + POWERPC_DEF("7410v1.3", CPU_POWERPC_7410_v13, 7410), /* PowerPC 7410 v1.4 (G4) */ - POWERPC_DEF("7410v1.4", CPU_POWERPC_7410_v14, 0xFFFFFFFF, 7410), + POWERPC_DEF("7410v1.4", CPU_POWERPC_7410_v14, 7410), /* PowerPC 7448 (G4) */ - POWERPC_DEF("7448", CPU_POWERPC_7448, 0xFFFFFFFF, 7400), + POWERPC_DEF("7448", CPU_POWERPC_7448, 7400), /* PowerPC 7448 v1.0 (G4) */ - POWERPC_DEF("7448v1.0", CPU_POWERPC_7448_v10, 0xFFFFFFFF, 7400), + POWERPC_DEF("7448v1.0", CPU_POWERPC_7448_v10, 7400), /* PowerPC 7448 v1.1 (G4) */ - POWERPC_DEF("7448v1.1", CPU_POWERPC_7448_v11, 0xFFFFFFFF, 7400), + POWERPC_DEF("7448v1.1", CPU_POWERPC_7448_v11, 7400), /* PowerPC 7448 v2.0 (G4) */ - POWERPC_DEF("7448v2.0", CPU_POWERPC_7448_v20, 0xFFFFFFFF, 7400), + POWERPC_DEF("7448v2.0", CPU_POWERPC_7448_v20, 7400), /* PowerPC 7448 v2.1 (G4) */ - POWERPC_DEF("7448v2.1", CPU_POWERPC_7448_v21, 0xFFFFFFFF, 7400), + POWERPC_DEF("7448v2.1", CPU_POWERPC_7448_v21, 7400), /* PowerPC 7450 (G4) */ - POWERPC_DEF("7450", CPU_POWERPC_7450, 0xFFFFFFFF, 7450), + POWERPC_DEF("7450", CPU_POWERPC_7450, 7450), /* Code name for PowerPC 7450 */ - POWERPC_DEF("Vger", CPU_POWERPC_7450, 0xFFFFFFFF, 7450), + POWERPC_DEF("Vger", CPU_POWERPC_7450, 7450), /* PowerPC 7450 v1.0 (G4) */ - POWERPC_DEF("7450v1.0", CPU_POWERPC_7450_v10, 0xFFFFFFFF, 7450), + POWERPC_DEF("7450v1.0", CPU_POWERPC_7450_v10, 7450), /* PowerPC 7450 v1.1 (G4) */ - POWERPC_DEF("7450v1.1", CPU_POWERPC_7450_v11, 0xFFFFFFFF, 7450), + POWERPC_DEF("7450v1.1", CPU_POWERPC_7450_v11, 7450), /* PowerPC 7450 v1.2 (G4) */ - POWERPC_DEF("7450v1.2", CPU_POWERPC_7450_v12, 0xFFFFFFFF, 7450), + POWERPC_DEF("7450v1.2", CPU_POWERPC_7450_v12, 7450), /* PowerPC 7450 v2.0 (G4) */ - POWERPC_DEF("7450v2.0", CPU_POWERPC_7450_v20, 0xFFFFFFFF, 7450), + POWERPC_DEF("7450v2.0", CPU_POWERPC_7450_v20, 7450), /* PowerPC 7450 v2.1 (G4) */ - POWERPC_DEF("7450v2.1", CPU_POWERPC_7450_v21, 0xFFFFFFFF, 7450), + POWERPC_DEF("7450v2.1", CPU_POWERPC_7450_v21, 7450), /* PowerPC 7441 (G4) */ - POWERPC_DEF("7441", CPU_POWERPC_74x1, 0xFFFFFFFF, 7440), + POWERPC_DEF("7441", CPU_POWERPC_74x1, 7440), /* PowerPC 7451 (G4) */ - POWERPC_DEF("7451", CPU_POWERPC_74x1, 0xFFFFFFFF, 7450), + POWERPC_DEF("7451", CPU_POWERPC_74x1, 7450), /* PowerPC 7441g (G4) */ - POWERPC_DEF("7441g", CPU_POWERPC_74x1G, 0xFFFFFFFF, 7440), + POWERPC_DEF("7441g", CPU_POWERPC_74x1G, 7440), /* PowerPC 7451g (G4) */ - POWERPC_DEF("7451g", CPU_POWERPC_74x1G, 0xFFFFFFFF, 7450), + POWERPC_DEF("7451g", CPU_POWERPC_74x1G, 7450), /* PowerPC 7445 (G4) */ - POWERPC_DEF("7445", CPU_POWERPC_74x5, 0xFFFFFFFF, 7445), + POWERPC_DEF("7445", CPU_POWERPC_74x5, 7445), /* PowerPC 7455 (G4) */ - POWERPC_DEF("7455", CPU_POWERPC_74x5, 0xFFFFFFFF, 7455), + POWERPC_DEF("7455", CPU_POWERPC_74x5, 7455), /* Code name for PowerPC 7445/7455 */ - POWERPC_DEF("Apollo6", CPU_POWERPC_74x5, 0xFFFFFFFF, 7455), + POWERPC_DEF("Apollo6", CPU_POWERPC_74x5, 7455), /* PowerPC 7445 v1.0 (G4) */ - POWERPC_DEF("7445v1.0", CPU_POWERPC_74x5_v10, 0xFFFFFFFF, 7445), + POWERPC_DEF("7445v1.0", CPU_POWERPC_74x5_v10, 7445), /* PowerPC 7455 v1.0 (G4) */ - POWERPC_DEF("7455v1.0", CPU_POWERPC_74x5_v10, 0xFFFFFFFF, 7455), + POWERPC_DEF("7455v1.0", CPU_POWERPC_74x5_v10, 7455), /* PowerPC 7445 v2.1 (G4) */ - POWERPC_DEF("7445v2.1", CPU_POWERPC_74x5_v21, 0xFFFFFFFF, 7445), + POWERPC_DEF("7445v2.1", CPU_POWERPC_74x5_v21, 7445), /* PowerPC 7455 v2.1 (G4) */ - POWERPC_DEF("7455v2.1", CPU_POWERPC_74x5_v21, 0xFFFFFFFF, 7455), + POWERPC_DEF("7455v2.1", CPU_POWERPC_74x5_v21, 7455), /* PowerPC 7445 v3.2 (G4) */ - POWERPC_DEF("7445v3.2", CPU_POWERPC_74x5_v32, 0xFFFFFFFF, 7445), + POWERPC_DEF("7445v3.2", CPU_POWERPC_74x5_v32, 7445), /* PowerPC 7455 v3.2 (G4) */ - POWERPC_DEF("7455v3.2", CPU_POWERPC_74x5_v32, 0xFFFFFFFF, 7455), + POWERPC_DEF("7455v3.2", CPU_POWERPC_74x5_v32, 7455), /* PowerPC 7445 v3.3 (G4) */ - POWERPC_DEF("7445v3.3", CPU_POWERPC_74x5_v33, 0xFFFFFFFF, 7445), + POWERPC_DEF("7445v3.3", CPU_POWERPC_74x5_v33, 7445), /* PowerPC 7455 v3.3 (G4) */ - POWERPC_DEF("7455v3.3", CPU_POWERPC_74x5_v33, 0xFFFFFFFF, 7455), + POWERPC_DEF("7455v3.3", CPU_POWERPC_74x5_v33, 7455), /* PowerPC 7445 v3.4 (G4) */ - POWERPC_DEF("7445v3.4", CPU_POWERPC_74x5_v34, 0xFFFFFFFF, 7445), + POWERPC_DEF("7445v3.4", CPU_POWERPC_74x5_v34, 7445), /* PowerPC 7455 v3.4 (G4) */ - POWERPC_DEF("7455v3.4", CPU_POWERPC_74x5_v34, 0xFFFFFFFF, 7455), + POWERPC_DEF("7455v3.4", CPU_POWERPC_74x5_v34, 7455), /* PowerPC 7447 (G4) */ - POWERPC_DEF("7447", CPU_POWERPC_74x7, 0xFFFFFFFF, 7445), + POWERPC_DEF("7447", CPU_POWERPC_74x7, 7445), /* PowerPC 7457 (G4) */ - POWERPC_DEF("7457", CPU_POWERPC_74x7, 0xFFFFFFFF, 7455), + POWERPC_DEF("7457", CPU_POWERPC_74x7, 7455), /* Code name for PowerPC 7447/7457 */ - POWERPC_DEF("Apollo7", CPU_POWERPC_74x7, 0xFFFFFFFF, 7455), + POWERPC_DEF("Apollo7", CPU_POWERPC_74x7, 7455), /* PowerPC 7447 v1.0 (G4) */ - POWERPC_DEF("7447v1.0", CPU_POWERPC_74x7_v10, 0xFFFFFFFF, 7445), + POWERPC_DEF("7447v1.0", CPU_POWERPC_74x7_v10, 7445), /* PowerPC 7457 v1.0 (G4) */ - POWERPC_DEF("7457v1.0", CPU_POWERPC_74x7_v10, 0xFFFFFFFF, 7455), + POWERPC_DEF("7457v1.0", CPU_POWERPC_74x7_v10, 7455), /* Code name for PowerPC 7447A/7457A */ - POWERPC_DEF("Apollo7PM", CPU_POWERPC_74x7_v10, 0xFFFFFFFF, 7455), + POWERPC_DEF("Apollo7PM", CPU_POWERPC_74x7_v10, 7455), /* PowerPC 7447 v1.1 (G4) */ - POWERPC_DEF("7447v1.1", CPU_POWERPC_74x7_v11, 0xFFFFFFFF, 7445), + POWERPC_DEF("7447v1.1", CPU_POWERPC_74x7_v11, 7445), /* PowerPC 7457 v1.1 (G4) */ - POWERPC_DEF("7457v1.1", CPU_POWERPC_74x7_v11, 0xFFFFFFFF, 7455), + POWERPC_DEF("7457v1.1", CPU_POWERPC_74x7_v11, 7455), /* PowerPC 7447 v1.2 (G4) */ - POWERPC_DEF("7447v1.2", CPU_POWERPC_74x7_v12, 0xFFFFFFFF, 7445), + POWERPC_DEF("7447v1.2", CPU_POWERPC_74x7_v12, 7445), /* PowerPC 7457 v1.2 (G4) */ - POWERPC_DEF("7457v1.2", CPU_POWERPC_74x7_v12, 0xFFFFFFFF, 7455), + POWERPC_DEF("7457v1.2", CPU_POWERPC_74x7_v12, 7455), /* 64 bits PowerPC */ #if defined (TARGET_PPC64) /* PowerPC 620 */ - POWERPC_DEF("620", CPU_POWERPC_620, 0xFFFFFFFF, 620), + /* XXX: code name "Trident" */ + POWERPC_DEF("620", CPU_POWERPC_620, 620), #if defined (TODO) /* PowerPC 630 (POWER3) */ - POWERPC_DEF("630", CPU_POWERPC_630, 0xFFFFFFFF, 630), - POWERPC_DEF("POWER3", CPU_POWERPC_630, 0xFFFFFFFF, 630), + /* XXX: code names: "Boxer" "Dino" */ + POWERPC_DEF("630", CPU_POWERPC_630, 630), + POWERPC_DEF("POWER3", CPU_POWERPC_630, 630), #endif #if defined (TODO) /* PowerPC 631 (Power 3+) */ - POWERPC_DEF("631", CPU_POWERPC_631, 0xFFFFFFFF, 631), - POWERPC_DEF("POWER3+", CPU_POWERPC_631, 0xFFFFFFFF, 631), + POWERPC_DEF("631", CPU_POWERPC_631, 631), + POWERPC_DEF("POWER3+", CPU_POWERPC_631, 631), #endif #if defined (TODO) /* POWER4 */ - POWERPC_DEF("POWER4", CPU_POWERPC_POWER4, 0xFFFFFFFF, POWER4), + POWERPC_DEF("POWER4", CPU_POWERPC_POWER4, POWER4), #endif #if defined (TODO) /* POWER4p */ - POWERPC_DEF("POWER4+", CPU_POWERPC_POWER4P, 0xFFFFFFFF, POWER4P), + POWERPC_DEF("POWER4+", CPU_POWERPC_POWER4P, POWER4P), #endif #if defined (TODO) /* POWER5 */ - POWERPC_DEF("POWER5", CPU_POWERPC_POWER5, 0xFFFFFFFF, POWER5), + POWERPC_DEF("POWER5", CPU_POWERPC_POWER5, POWER5), /* POWER5GR */ - POWERPC_DEF("POWER5gr", CPU_POWERPC_POWER5GR, 0xFFFFFFFF, POWER5), + POWERPC_DEF("POWER5gr", CPU_POWERPC_POWER5GR, POWER5), #endif #if defined (TODO) /* POWER5+ */ - POWERPC_DEF("POWER5+", CPU_POWERPC_POWER5P, 0xFFFFFFFF, POWER5P), + POWERPC_DEF("POWER5+", CPU_POWERPC_POWER5P, POWER5P), /* POWER5GS */ - POWERPC_DEF("POWER5gs", CPU_POWERPC_POWER5GS, 0xFFFFFFFF, POWER5P), + POWERPC_DEF("POWER5gs", CPU_POWERPC_POWER5GS, POWER5P), #endif #if defined (TODO) /* POWER6 */ - POWERPC_DEF("POWER6", CPU_POWERPC_POWER6, 0xFFFFFFFF, POWER6), + POWERPC_DEF("POWER6", CPU_POWERPC_POWER6, POWER6), /* POWER6 running in POWER5 mode */ - POWERPC_DEF("POWER6_5", CPU_POWERPC_POWER6_5, 0xFFFFFFFF, POWER5), + POWERPC_DEF("POWER6_5", CPU_POWERPC_POWER6_5, POWER5), /* POWER6A */ - POWERPC_DEF("POWER6A", CPU_POWERPC_POWER6A, 0xFFFFFFFF, POWER6), + POWERPC_DEF("POWER6A", CPU_POWERPC_POWER6A, POWER6), #endif /* PowerPC 970 */ - POWERPC_DEF("970", CPU_POWERPC_970, 0xFFFFFFFF, 970), + POWERPC_DEF("970", CPU_POWERPC_970, 970), /* PowerPC 970FX (G5) */ - POWERPC_DEF("970fx", CPU_POWERPC_970FX, 0xFFFFFFFF, 970FX), + POWERPC_DEF("970fx", CPU_POWERPC_970FX, 970FX), /* PowerPC 970FX v1.0 (G5) */ - POWERPC_DEF("970fx1.0", CPU_POWERPC_970FX_v10, 0xFFFFFFFF, 970FX), + POWERPC_DEF("970fx1.0", CPU_POWERPC_970FX_v10, 970FX), /* PowerPC 970FX v2.0 (G5) */ - POWERPC_DEF("970fx2.0", CPU_POWERPC_970FX_v20, 0xFFFFFFFF, 970FX), + POWERPC_DEF("970fx2.0", CPU_POWERPC_970FX_v20, 970FX), /* PowerPC 970FX v2.1 (G5) */ - POWERPC_DEF("970fx2.1", CPU_POWERPC_970FX_v21, 0xFFFFFFFF, 970FX), + POWERPC_DEF("970fx2.1", CPU_POWERPC_970FX_v21, 970FX), /* PowerPC 970FX v3.0 (G5) */ - POWERPC_DEF("970fx3.0", CPU_POWERPC_970FX_v30, 0xFFFFFFFF, 970FX), + POWERPC_DEF("970fx3.0", CPU_POWERPC_970FX_v30, 970FX), /* PowerPC 970FX v3.1 (G5) */ - POWERPC_DEF("970fx3.1", CPU_POWERPC_970FX_v31, 0xFFFFFFFF, 970FX), + POWERPC_DEF("970fx3.1", CPU_POWERPC_970FX_v31, 970FX), /* PowerPC 970GX (G5) */ - POWERPC_DEF("970gx", CPU_POWERPC_970GX, 0xFFFFFFFF, 970GX), + POWERPC_DEF("970gx", CPU_POWERPC_970GX, 970GX), /* PowerPC 970MP */ - POWERPC_DEF("970mp", CPU_POWERPC_970MP, 0xFFFFFFFF, 970MP), + POWERPC_DEF("970mp", CPU_POWERPC_970MP, 970MP), /* PowerPC 970MP v1.0 */ - POWERPC_DEF("970mp1.0", CPU_POWERPC_970MP_v10, 0xFFFFFFFF, 970MP), + POWERPC_DEF("970mp1.0", CPU_POWERPC_970MP_v10, 970MP), /* PowerPC 970MP v1.1 */ - POWERPC_DEF("970mp1.1", CPU_POWERPC_970MP_v11, 0xFFFFFFFF, 970MP), + POWERPC_DEF("970mp1.1", CPU_POWERPC_970MP_v11, 970MP), #if defined (TODO) /* PowerPC Cell */ - POWERPC_DEF("Cell", CPU_POWERPC_CELL, 0xFFFFFFFF, 970), + POWERPC_DEF("Cell", CPU_POWERPC_CELL, 970), #endif #if defined (TODO) /* PowerPC Cell v1.0 */ - POWERPC_DEF("Cell1.0", CPU_POWERPC_CELL_v10, 0xFFFFFFFF, 970), + POWERPC_DEF("Cell1.0", CPU_POWERPC_CELL_v10, 970), #endif #if defined (TODO) /* PowerPC Cell v2.0 */ - POWERPC_DEF("Cell2.0", CPU_POWERPC_CELL_v20, 0xFFFFFFFF, 970), + POWERPC_DEF("Cell2.0", CPU_POWERPC_CELL_v20, 970), #endif #if defined (TODO) /* PowerPC Cell v3.0 */ - POWERPC_DEF("Cell3.0", CPU_POWERPC_CELL_v30, 0xFFFFFFFF, 970), + POWERPC_DEF("Cell3.0", CPU_POWERPC_CELL_v30, 970), #endif #if defined (TODO) /* PowerPC Cell v3.1 */ - POWERPC_DEF("Cell3.1", CPU_POWERPC_CELL_v31, 0xFFFFFFFF, 970), + POWERPC_DEF("Cell3.1", CPU_POWERPC_CELL_v31, 970), #endif #if defined (TODO) /* PowerPC Cell v3.2 */ - POWERPC_DEF("Cell3.2", CPU_POWERPC_CELL_v32, 0xFFFFFFFF, 970), + POWERPC_DEF("Cell3.2", CPU_POWERPC_CELL_v32, 970), #endif #if defined (TODO) /* RS64 (Apache/A35) */ @@ -5874,59 +5877,59 @@ static ppc_def_t ppc_defs[] = { * and the PowerPC 64 one. */ /* What about A10 & A30 ? */ - POWERPC_DEF("RS64", CPU_POWERPC_RS64, 0xFFFFFFFF, RS64), - POWERPC_DEF("Apache", CPU_POWERPC_RS64, 0xFFFFFFFF, RS64), - POWERPC_DEF("A35", CPU_POWERPC_RS64, 0xFFFFFFFF, RS64), + POWERPC_DEF("RS64", CPU_POWERPC_RS64, RS64), + POWERPC_DEF("Apache", CPU_POWERPC_RS64, RS64), + POWERPC_DEF("A35", CPU_POWERPC_RS64, RS64), #endif #if defined (TODO) /* RS64-II (NorthStar/A50) */ - POWERPC_DEF("RS64-II", CPU_POWERPC_RS64II, 0xFFFFFFFF, RS64), - POWERPC_DEF("NorthStar", CPU_POWERPC_RS64II, 0xFFFFFFFF, RS64), - POWERPC_DEF("A50", CPU_POWERPC_RS64II, 0xFFFFFFFF, RS64), + POWERPC_DEF("RS64-II", CPU_POWERPC_RS64II, RS64), + POWERPC_DEF("NorthStar", CPU_POWERPC_RS64II, RS64), + POWERPC_DEF("A50", CPU_POWERPC_RS64II, RS64), #endif #if defined (TODO) /* RS64-III (Pulsar) */ - POWERPC_DEF("RS64-III", CPU_POWERPC_RS64III, 0xFFFFFFFF, RS64), - POWERPC_DEF("Pulsar", CPU_POWERPC_RS64III, 0xFFFFFFFF, RS64), + POWERPC_DEF("RS64-III", CPU_POWERPC_RS64III, RS64), + POWERPC_DEF("Pulsar", CPU_POWERPC_RS64III, RS64), #endif #if defined (TODO) /* RS64-IV (IceStar/IStar/SStar) */ - POWERPC_DEF("RS64-IV", CPU_POWERPC_RS64IV, 0xFFFFFFFF, RS64), - POWERPC_DEF("IceStar", CPU_POWERPC_RS64IV, 0xFFFFFFFF, RS64), - POWERPC_DEF("IStar", CPU_POWERPC_RS64IV, 0xFFFFFFFF, RS64), - POWERPC_DEF("SStar", CPU_POWERPC_RS64IV, 0xFFFFFFFF, RS64), + POWERPC_DEF("RS64-IV", CPU_POWERPC_RS64IV, RS64), + POWERPC_DEF("IceStar", CPU_POWERPC_RS64IV, RS64), + POWERPC_DEF("IStar", CPU_POWERPC_RS64IV, RS64), + POWERPC_DEF("SStar", CPU_POWERPC_RS64IV, RS64), #endif #endif /* defined (TARGET_PPC64) */ /* POWER */ #if defined (TODO) /* Original POWER */ - POWERPC_DEF("POWER", CPU_POWERPC_POWER, 0xFFFFFFFF, POWER), - POWERPC_DEF("RIOS", CPU_POWERPC_POWER, 0xFFFFFFFF, POWER), - POWERPC_DEF("RSC", CPU_POWERPC_POWER, 0xFFFFFFFF, POWER), - POWERPC_DEF("RSC3308", CPU_POWERPC_POWER, 0xFFFFFFFF, POWER), - POWERPC_DEF("RSC4608", CPU_POWERPC_POWER, 0xFFFFFFFF, POWER), + POWERPC_DEF("POWER", CPU_POWERPC_POWER, POWER), + POWERPC_DEF("RIOS", CPU_POWERPC_POWER, POWER), + POWERPC_DEF("RSC", CPU_POWERPC_POWER, POWER), + POWERPC_DEF("RSC3308", CPU_POWERPC_POWER, POWER), + POWERPC_DEF("RSC4608", CPU_POWERPC_POWER, POWER), #endif #if defined (TODO) /* POWER2 */ - POWERPC_DEF("POWER2", CPU_POWERPC_POWER2, 0xFFFFFFFF, POWER), - POWERPC_DEF("RSC2", CPU_POWERPC_POWER2, 0xFFFFFFFF, POWER), - POWERPC_DEF("P2SC", CPU_POWERPC_POWER2, 0xFFFFFFFF, POWER), + POWERPC_DEF("POWER2", CPU_POWERPC_POWER2, POWER), + POWERPC_DEF("RSC2", CPU_POWERPC_POWER2, POWER), + POWERPC_DEF("P2SC", CPU_POWERPC_POWER2, POWER), #endif /* PA semi cores */ #if defined (TODO) /* PA PA6T */ - POWERPC_DEF("PA6T", CPU_POWERPC_PA6T, 0xFFFFFFFF, PA6T), + POWERPC_DEF("PA6T", CPU_POWERPC_PA6T, PA6T), #endif /* Generic PowerPCs */ #if defined (TARGET_PPC64) #if defined (TODO) - POWERPC_DEF("ppc64", CPU_POWERPC_PPC64, 0xFFFFFFFF, PPC64), + POWERPC_DEF("ppc64", CPU_POWERPC_PPC64, PPC64), #endif #endif - POWERPC_DEF("ppc32", CPU_POWERPC_PPC32, 0xFFFFFFFF, PPC32), - POWERPC_DEF("ppc", CPU_POWERPC_DEFAULT, 0xFFFFFFFF, DEFAULT), + POWERPC_DEF("ppc32", CPU_POWERPC_PPC32, PPC32), + POWERPC_DEF("ppc", CPU_POWERPC_DEFAULT, DEFAULT), /* Fallback */ - POWERPC_DEF("default", CPU_POWERPC_DEFAULT, 0xFFFFFFFF, DEFAULT), + POWERPC_DEF("default", CPU_POWERPC_DEFAULT, DEFAULT), }; /*****************************************************************************/ @@ -6514,31 +6517,77 @@ int cpu_ppc_register_internal (CPUPPCState *env, const ppc_def_t *def) return 0; } -const ppc_def_t *cpu_ppc_find_by_name (const unsigned char *name) +static const ppc_def_t *ppc_find_by_pvr (uint32_t pvr) { - int i, max; + const ppc_def_t *ret; + uint32_t pvr_rev; + int i, best, match, best_match, max; + ret = NULL; max = sizeof(ppc_defs) / sizeof(ppc_def_t); + best = -1; + pvr_rev = pvr & 0xFFFF; + /* We want all specified bits to match */ + best_match = 32 - ctz32(pvr_rev); for (i = 0; i < max; i++) { - if (strcasecmp(name, ppc_defs[i].name) == 0) { - return &ppc_defs[i]; + /* We check that the 16 higher bits are the same to ensure the CPU + * model will be the choosen one. + */ + if (((pvr ^ ppc_defs[i].pvr) >> 16) == 0) { + /* We want as much as possible of the low-level 16 bits + * to be the same but we allow inexact matches. + */ + match = clz32(pvr_rev ^ (ppc_defs[i].pvr & 0xFFFF)); + /* We check '>=' instead of '>' because the PPC_defs table + * is ordered by increasing revision. + * Then, we will match the higher revision compatible + * with the requested PVR + */ + if (match >= best_match) { + best = i; + best_match = match; + } } } - return NULL; + if (best != -1) + ret = &ppc_defs[best]; + + return ret; } -const ppc_def_t *cpu_ppc_find_by_pvr (uint32_t pvr) -{ - int i, max; +#include <ctype.h> +const ppc_def_t *cpu_ppc_find_by_name (const unsigned char *name) +{ + const ppc_def_t *ret; + const unsigned char *p; + int i, max, len; + + /* Check if the given name is a PVR */ + len = strlen(name); + if (len == 10 && name[0] == '0' && name[1] == 'x') { + p = name + 2; + goto check_pvr; + } else if (len == 8) { + p = name; + check_pvr: + for (i = 0; i < 8; i++) { + if (!isxdigit(*p++)) + break; + } + if (i == 8) + return ppc_find_by_pvr(strtoul(name, NULL, 16)); + } + ret = NULL; max = sizeof(ppc_defs) / sizeof(ppc_def_t); for (i = 0; i < max; i++) { - if ((pvr & ppc_defs[i].pvr_mask) == - (ppc_defs[i].pvr & ppc_defs[i].pvr_mask)) { - return &ppc_defs[i]; + if (strcasecmp(name, ppc_defs[i].name) == 0) { + ret = &ppc_defs[i]; + break; } } - return NULL; + + return ret; } void ppc_cpu_list (FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...)) |