\
static void glue(glue(ppc_, _name), _cpu_family_class_init)
-/* PowerPC 401 */
static void init_proc_401 (CPUPPCState *env)
{
gen_spr_40x(env);
POWERPC_FAMILY(401)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 401";
pcc->init_proc = init_proc_401;
pcc->check_pow = check_pow_nocheck;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING |
POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 401x2 */
static void init_proc_401x2 (CPUPPCState *env)
{
gen_spr_40x(env);
POWERPC_FAMILY(401x2)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 401x2";
pcc->init_proc = init_proc_401x2;
pcc->check_pow = check_pow_nocheck;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 401x3 */
static void init_proc_401x3 (CPUPPCState *env)
{
gen_spr_40x(env);
POWERPC_FAMILY(401x3)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 401x3";
pcc->init_proc = init_proc_401x3;
pcc->check_pow = check_pow_nocheck;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BUS_CLK;
}
-/* IOP480 */
static void init_proc_IOP480 (CPUPPCState *env)
{
gen_spr_40x(env);
POWERPC_FAMILY(IOP480)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "IOP480";
pcc->init_proc = init_proc_IOP480;
pcc->check_pow = check_pow_nocheck;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING |
POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 403 */
static void init_proc_403 (CPUPPCState *env)
{
gen_spr_40x(env);
POWERPC_FAMILY(403)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 403";
pcc->init_proc = init_proc_403;
pcc->check_pow = check_pow_nocheck;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING |
POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 403 GCX */
static void init_proc_403GCX (CPUPPCState *env)
{
gen_spr_40x(env);
POWERPC_FAMILY(403GCX)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 403 GCX";
pcc->init_proc = init_proc_403GCX;
pcc->check_pow = check_pow_nocheck;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING |
POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 405 */
static void init_proc_405 (CPUPPCState *env)
{
/* Time base */
POWERPC_FAMILY(405)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 405";
pcc->init_proc = init_proc_405;
pcc->check_pow = check_pow_nocheck;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_DE | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 440 EP */
static void init_proc_440EP (CPUPPCState *env)
{
/* Time base */
POWERPC_FAMILY(440EP)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 440 EP";
pcc->init_proc = init_proc_440EP;
pcc->check_pow = check_pow_nocheck;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING |
POWERPC_FLAG_DE | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 440 GP */
static void init_proc_440GP (CPUPPCState *env)
{
/* Time base */
POWERPC_FAMILY(440GP)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 440 GP";
pcc->init_proc = init_proc_440GP;
pcc->check_pow = check_pow_nocheck;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING |
POWERPC_FLAG_DE | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 440x4 */
static void init_proc_440x4 (CPUPPCState *env)
{
/* Time base */
POWERPC_FAMILY(440x4)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 440x4";
pcc->init_proc = init_proc_440x4;
pcc->check_pow = check_pow_nocheck;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING |
POWERPC_FLAG_DE | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 440x5 */
static void init_proc_440x5 (CPUPPCState *env)
{
/* Time base */
POWERPC_FAMILY(440x5)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 440x5";
pcc->init_proc = init_proc_440x5;
pcc->check_pow = check_pow_nocheck;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING |
POWERPC_FLAG_DE | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 460 (guessed) */
static void init_proc_460 (CPUPPCState *env)
{
/* Time base */
POWERPC_FAMILY(460)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 460 (guessed)";
pcc->init_proc = init_proc_460;
pcc->check_pow = check_pow_nocheck;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING |
POWERPC_FLAG_DE | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 460F (guessed) */
static void init_proc_460F (CPUPPCState *env)
{
/* Time base */
POWERPC_FAMILY(460F)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 460F (guessed)";
pcc->init_proc = init_proc_460F;
pcc->check_pow = check_pow_nocheck;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING |
POWERPC_FLAG_DE | POWERPC_FLAG_BUS_CLK;
}
-/* Freescale 5xx cores (aka RCPU) */
static void init_proc_MPC5xx (CPUPPCState *env)
{
/* Time base */
POWERPC_FAMILY(MPC5xx)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "Freescale 5xx cores (aka RCPU)";
pcc->init_proc = init_proc_MPC5xx;
pcc->check_pow = check_pow_none;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING |
POWERPC_FLAG_BUS_CLK;
}
-/* Freescale 8xx cores (aka PowerQUICC) */
static void init_proc_MPC8xx (CPUPPCState *env)
{
/* Time base */
POWERPC_FAMILY(MPC8xx)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "Freescale 8xx cores (aka PowerQUICC)";
pcc->init_proc = init_proc_MPC8xx;
pcc->check_pow = check_pow_none;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING |
}
/* Freescale 82xx cores (aka PowerQUICC-II) */
-/* PowerPC G2 */
+
static void init_proc_G2 (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(G2)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC G2";
pcc->init_proc = init_proc_G2;
pcc->check_pow = check_pow_hid0;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BE | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC G2LE */
static void init_proc_G2LE (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(G2LE)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC G2LE";
pcc->init_proc = init_proc_G2LE;
pcc->check_pow = check_pow_hid0;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BE | POWERPC_FLAG_BUS_CLK;
}
-/* e200 core */
static void init_proc_e200 (CPUPPCState *env)
{
/* Time base */
POWERPC_FAMILY(e200)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "e200 core";
pcc->init_proc = init_proc_e200;
pcc->check_pow = check_pow_hid0;
/* XXX: unimplemented instructions:
POWERPC_FLAG_BUS_CLK;
}
-/* e300 core */
static void init_proc_e300 (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(e300)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "e300 core";
pcc->init_proc = init_proc_e300;
pcc->check_pow = check_pow_hid0;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BE | POWERPC_FLAG_BUS_CLK;
}
-/* e500v1 core */
-/* e500v2 core */
-/* e500mc core */
-/* e5500 core */
-
#if !defined(CONFIG_USER_ONLY)
static void spr_write_mas73(void *opaque, int sprn, int gprn)
{
POWERPC_FAMILY(e500v1)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "e500v1 core";
pcc->init_proc = init_proc_e500v1;
pcc->check_pow = check_pow_hid0;
pcc->insns_flags = PPC_INSNS_BASE | PPC_ISEL |
POWERPC_FAMILY(e500v2)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "e500v2 core";
pcc->init_proc = init_proc_e500v2;
pcc->check_pow = check_pow_hid0;
pcc->insns_flags = PPC_INSNS_BASE | PPC_ISEL |
POWERPC_FAMILY(e500mc)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "e500mc core";
pcc->init_proc = init_proc_e500mc;
pcc->check_pow = check_pow_none;
pcc->insns_flags = PPC_INSNS_BASE | PPC_ISEL |
POWERPC_FAMILY(e5500)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "e5500 core";
pcc->init_proc = init_proc_e5500;
pcc->check_pow = check_pow_none;
pcc->insns_flags = PPC_INSNS_BASE | PPC_ISEL |
#if defined(TODO)
POWERPC_FAMILY(POWER)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "POWER";
pcc->insns_flags = XXX_TODO;
/* POWER RSC (from RAD6000) */
pcc->msr_mask = 0x00000000FEF0ULL;
}
#endif /* TODO */
-/* PowerPC 601 */
#define POWERPC_MSRR_601 (0x0000000000001040ULL)
static void init_proc_601 (CPUPPCState *env)
POWERPC_FAMILY(601)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 601";
pcc->init_proc = init_proc_601;
pcc->check_pow = check_pow_none;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_POWER_BR |
pcc->flags = POWERPC_FLAG_SE | POWERPC_FLAG_RTC_CLK;
}
-/* PowerPC 601v */
#define POWERPC_MSRR_601v (0x0000000000001040ULL)
static void init_proc_601v (CPUPPCState *env)
POWERPC_FAMILY(601v)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 601v";
pcc->init_proc = init_proc_601v;
pcc->check_pow = check_pow_none;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_POWER_BR |
pcc->flags = POWERPC_FLAG_SE | POWERPC_FLAG_RTC_CLK;
}
-/* PowerPC 602 */
static void init_proc_602 (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(602)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 602";
pcc->init_proc = init_proc_602;
pcc->check_pow = check_pow_hid0;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BE | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 603 */
static void init_proc_603 (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(603)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 603";
pcc->init_proc = init_proc_603;
pcc->check_pow = check_pow_hid0;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BE | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 603e */
static void init_proc_603E (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(603E)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 603e";
pcc->init_proc = init_proc_603E;
pcc->check_pow = check_pow_hid0;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BE | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 604 */
static void init_proc_604 (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(604)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 604";
pcc->init_proc = init_proc_604;
pcc->check_pow = check_pow_nocheck;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_PMM | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 604E */
static void init_proc_604E (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(604E)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 604E";
pcc->init_proc = init_proc_604E;
pcc->check_pow = check_pow_nocheck;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_PMM | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 740 */
static void init_proc_740 (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(740)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 740";
pcc->init_proc = init_proc_740;
pcc->check_pow = check_pow_hid0;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_PMM | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 750 */
static void init_proc_750 (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(750)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 750";
pcc->init_proc = init_proc_750;
pcc->check_pow = check_pow_hid0;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_PMM | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 750 CL */
static void init_proc_750cl (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(750cl)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 750 CL";
pcc->init_proc = init_proc_750cl;
pcc->check_pow = check_pow_hid0;
/* XXX: not implemented:
POWERPC_FLAG_PMM | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 750CX */
static void init_proc_750cx (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(750cx)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 750CX";
pcc->init_proc = init_proc_750cx;
pcc->check_pow = check_pow_hid0;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_PMM | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 750FX */
static void init_proc_750fx (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(750fx)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 750FX";
pcc->init_proc = init_proc_750fx;
pcc->check_pow = check_pow_hid0;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_PMM | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 750GX */
static void init_proc_750gx (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(750gx)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 750GX";
pcc->init_proc = init_proc_750gx;
pcc->check_pow = check_pow_hid0;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_PMM | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 745 */
static void init_proc_745 (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(745)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 745";
pcc->init_proc = init_proc_745;
pcc->check_pow = check_pow_hid0;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_PMM | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 755 */
static void init_proc_755 (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(755)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 755";
pcc->init_proc = init_proc_755;
pcc->check_pow = check_pow_hid0;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_PMM | POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 7400 (aka G4) */
static void init_proc_7400 (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(7400)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 7400 (aka G4)";
pcc->init_proc = init_proc_7400;
pcc->check_pow = check_pow_hid0;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 7410 (aka G4) */
static void init_proc_7410 (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(7410)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 7410 (aka G4)";
pcc->init_proc = init_proc_7410;
pcc->check_pow = check_pow_hid0;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 7440 (aka G4) */
static void init_proc_7440 (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(7440)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 7440 (aka G4)";
pcc->init_proc = init_proc_7440;
pcc->check_pow = check_pow_hid0_74xx;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 7450 (aka G4) */
static void init_proc_7450 (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(7450)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 7450 (aka G4)";
pcc->init_proc = init_proc_7450;
pcc->check_pow = check_pow_hid0_74xx;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 7445 (aka G4) */
static void init_proc_7445 (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(7445)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 7445 (aka G4)";
pcc->init_proc = init_proc_7445;
pcc->check_pow = check_pow_hid0_74xx;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 7455 (aka G4) */
static void init_proc_7455 (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(7455)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 7455 (aka G4)";
pcc->init_proc = init_proc_7455;
pcc->check_pow = check_pow_hid0_74xx;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 7457 (aka G4) */
static void init_proc_7457 (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(7457)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 7457 (aka G4)";
pcc->init_proc = init_proc_7457;
pcc->check_pow = check_pow_hid0_74xx;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
}
#if defined (TARGET_PPC64)
-/* PowerPC 970 */
#if defined(CONFIG_USER_ONLY)
#define POWERPC970_HID5_INIT 0x00000080
#else
POWERPC_FAMILY(970)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 970";
pcc->init_proc = init_proc_970;
pcc->check_pow = check_pow_970;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 970FX (aka G5) */
static int check_pow_970FX (CPUPPCState *env)
{
if (env->spr[SPR_HID0] & 0x00600000)
POWERPC_FAMILY(970FX)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 970FX (aka G5)";
pcc->init_proc = init_proc_970FX;
pcc->check_pow = check_pow_970FX;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 970 GX */
static int check_pow_970GX (CPUPPCState *env)
{
if (env->spr[SPR_HID0] & 0x00600000)
POWERPC_FAMILY(970GX)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 970 GX";
pcc->init_proc = init_proc_970GX;
pcc->check_pow = check_pow_970GX;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BUS_CLK;
}
-/* PowerPC 970 MP */
static int check_pow_970MP (CPUPPCState *env)
{
if (env->spr[SPR_HID0] & 0x01C00000)
POWERPC_FAMILY(970MP)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 970 MP";
pcc->init_proc = init_proc_970MP;
pcc->check_pow = check_pow_970MP;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BUS_CLK;
}
-/* POWER7 */
static void init_proc_POWER7 (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(POWER7)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "POWER7";
pcc->init_proc = init_proc_POWER7;
pcc->check_pow = check_pow_nocheck;
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
POWERPC_FLAG_BUS_CLK | POWERPC_FLAG_CFAR;
}
-/* PowerPC 620 */
static void init_proc_620 (CPUPPCState *env)
{
gen_spr_ne_601(env);
POWERPC_FAMILY(620)(ObjectClass *oc, void *data)
{
+ DeviceClass *dc = DEVICE_CLASS(oc);
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+ dc->desc = "PowerPC 620";
pcc->init_proc = init_proc_620;
pcc->check_pow = check_pow_nocheck; /* Check this */
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
glue(POWERPC_DEF_PREFIX(_pvr, _svr, _type), _cpu_class_init) \
(ObjectClass *oc, void *data) \
{ \
+ DeviceClass *dc = DEVICE_CLASS(oc); \
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc); \
\
pcc->pvr = _pvr; \
pcc->svr = _svr; \
+ dc->desc = NULL; \
} \
\
static const TypeInfo \