Revision 2f462816 target-ppc/translate_init.c

b/target-ppc/translate_init.c
42 42
    uint32_t flags;
43 43
    int bfd_mach;
44 44
    void (*init_proc)(CPUPPCState *env);
45
    int (*check_pow)(CPUPPCState *env);
45 46
};
46 47

  
47 48
/* For user-mode emulation, we don't emulate any IRQ controller */
......
2606 2607
#endif
2607 2608

  
2608 2609
/*****************************************************************************/
2610
/* Power management enable checks                                            */
2611
static int check_pow_none (CPUPPCState *env)
2612
{
2613
    return 0;
2614
}
2615

  
2616
static int check_pow_nocheck (CPUPPCState *env)
2617
{
2618
    return 1;
2619
}
2620

  
2621
static int check_pow_hid0 (CPUPPCState *env)
2622
{
2623
    if (env->spr[SPR_HID0] & 0x00E00000)
2624
        return 1;
2625

  
2626
    return 0;
2627
}
2628

  
2629
/*****************************************************************************/
2609 2630
/* PowerPC implementations definitions                                       */
2610 2631

  
2611 2632
/* PowerPC 40x instruction set                                               */
......
2621 2642
#define POWERPC_INPUT_401    (PPC_FLAGS_INPUT_401)
2622 2643
#define POWERPC_BFDM_401     (bfd_mach_ppc_403)
2623 2644
#define POWERPC_FLAG_401     (POWERPC_FLAG_CE | POWERPC_FLAG_DE)
2645
#define check_pow_401        check_pow_nocheck
2624 2646

  
2625 2647
static void init_proc_401 (CPUPPCState *env)
2626 2648
{
......
2646 2668
#define POWERPC_INPUT_401x2  (PPC_FLAGS_INPUT_401)
2647 2669
#define POWERPC_BFDM_401x2   (bfd_mach_ppc_403)
2648 2670
#define POWERPC_FLAG_401x2   (POWERPC_FLAG_CE | POWERPC_FLAG_DE)
2671
#define check_pow_401x2      check_pow_nocheck
2649 2672

  
2650 2673
static void init_proc_401x2 (CPUPPCState *env)
2651 2674
{
......
2678 2701
#define POWERPC_INPUT_401x3  (PPC_FLAGS_INPUT_401)
2679 2702
#define POWERPC_BFDM_401x3   (bfd_mach_ppc_403)
2680 2703
#define POWERPC_FLAG_401x3   (POWERPC_FLAG_CE | POWERPC_FLAG_DE)
2704
#define check_pow_401x3      check_pow_nocheck
2681 2705

  
2682 2706
__attribute__ (( unused ))
2683 2707
static void init_proc_401x3 (CPUPPCState *env)
......
2706 2730
#define POWERPC_INPUT_IOP480 (PPC_FLAGS_INPUT_401)
2707 2731
#define POWERPC_BFDM_IOP480  (bfd_mach_ppc_403)
2708 2732
#define POWERPC_FLAG_IOP480  (POWERPC_FLAG_CE | POWERPC_FLAG_DE)
2733
#define check_pow_IOP480     check_pow_nocheck
2709 2734

  
2710 2735
static void init_proc_IOP480 (CPUPPCState *env)
2711 2736
{
......
2736 2761
#define POWERPC_INPUT_403    (PPC_FLAGS_INPUT_401)
2737 2762
#define POWERPC_BFDM_403     (bfd_mach_ppc_403)
2738 2763
#define POWERPC_FLAG_403     (POWERPC_FLAG_CE | POWERPC_FLAG_PX)
2764
#define check_pow_403        check_pow_nocheck
2739 2765

  
2740 2766
static void init_proc_403 (CPUPPCState *env)
2741 2767
{
......
2765 2791
#define POWERPC_INPUT_403GCX (PPC_FLAGS_INPUT_401)
2766 2792
#define POWERPC_BFDM_403GCX  (bfd_mach_ppc_403)
2767 2793
#define POWERPC_FLAG_403GCX  (POWERPC_FLAG_CE | POWERPC_FLAG_PX)
2794
#define check_pow_403GCX     check_pow_nocheck
2768 2795

  
2769 2796
static void init_proc_403GCX (CPUPPCState *env)
2770 2797
{
......
2810 2837
#define POWERPC_BFDM_405     (bfd_mach_ppc_403)
2811 2838
#define POWERPC_FLAG_405     (POWERPC_FLAG_CE | POWERPC_FLAG_DWE |            \
2812 2839
                              POWERPC_FLAG_DE)
2840
#define check_pow_405        check_pow_nocheck
2813 2841

  
2814 2842
static void init_proc_405 (CPUPPCState *env)
2815 2843
{
......
2853 2881
#define POWERPC_BFDM_440EP   (bfd_mach_ppc_403)
2854 2882
#define POWERPC_FLAG_440EP   (POWERPC_FLAG_CE | POWERPC_FLAG_DWE |            \
2855 2883
                              POWERPC_FLAG_DE)
2884
#define check_pow_440EP      check_pow_nocheck
2856 2885

  
2857 2886
static void init_proc_440EP (CPUPPCState *env)
2858 2887
{
......
2902 2931
#define POWERPC_BFDM_440GP   (bfd_mach_ppc_403)
2903 2932
#define POWERPC_FLAG_440GP   (POWERPC_FLAG_CE | POWERPC_FLAG_DWE |            \
2904 2933
                              POWERPC_FLAG_DE)
2934
#define check_pow_440GP      check_pow_nocheck
2905 2935

  
2906 2936
static void init_proc_440GP (CPUPPCState *env)
2907 2937
{
......
2933 2963
#define POWERPC_BFDM_440x4   (bfd_mach_ppc_403)
2934 2964
#define POWERPC_FLAG_440x4   (POWERPC_FLAG_CE | POWERPC_FLAG_DWE |            \
2935 2965
                              POWERPC_FLAG_DE)
2966
#define check_pow_440x4      check_pow_nocheck
2936 2967

  
2937 2968
__attribute__ (( unused ))
2938 2969
static void init_proc_440x4 (CPUPPCState *env)
......
2965 2996
#define POWERPC_BFDM_440x5   (bfd_mach_ppc_403)
2966 2997
#define POWERPC_FLAG_440x5   (POWERPC_FLAG_CE | POWERPC_FLAG_DWE |           \
2967 2998
                              POWERPC_FLAG_DE)
2999
#define check_pow_440x5      check_pow_nocheck
2968 3000

  
2969 3001
static void init_proc_440x5 (CPUPPCState *env)
2970 3002
{
......
3014 3046
#define POWERPC_BFDM_460     (bfd_mach_ppc_403)
3015 3047
#define POWERPC_FLAG_460     (POWERPC_FLAG_CE | POWERPC_FLAG_DWE |            \
3016 3048
                              POWERPC_FLAG_DE)
3049
#define check_pow_460        check_pow_nocheck
3017 3050

  
3018 3051
__attribute__ (( unused ))
3019 3052
static void init_proc_460 (CPUPPCState *env)
......
3072 3105
#define POWERPC_BFDM_460F    (bfd_mach_ppc_403)
3073 3106
#define POWERPC_FLAG_460F    (POWERPC_FLAG_CE | POWERPC_FLAG_DWE |            \
3074 3107
                              POWERPC_FLAG_DE)
3108
#define check_pow_460F       check_pow_nocheck
3075 3109

  
3076 3110
__attribute__ (( unused ))
3077 3111
static void init_proc_460F (CPUPPCState *env)
......
3129 3163
#define POWERPC_INPUT_BookE  (PPC_FLAGS_INPUT_BookE)
3130 3164
#define POWERPC_BFDM_BookE   (bfd_mach_ppc_403)
3131 3165
#define POWERPC_FLAG_BookE   (POWERPC_FLAG_NONE)
3166
#define check_pow_BookE      check_pow_nocheck
3132 3167

  
3133 3168
__attribute__ (( unused ))
3134 3169
static void init_proc_BookE (CPUPPCState *env)
......
3152 3187
#define POWERPC_INPUT_e500   (PPC_FLAGS_INPUT_BookE)
3153 3188
#define POWERPC_BFDM_e500    (bfd_mach_ppc_403)
3154 3189
#define POWERPC_FLAG_e500    (POWERPC_FLAG_SPE)
3190
#define check_pow_e500       check_pow_hid0
3155 3191

  
3156 3192
__attribute__ (( unused ))
3157 3193
static void init_proc_e500 (CPUPPCState *env)
......
3201 3237
#define POWERPC_INPUT_601    (PPC_FLAGS_INPUT_6xx)
3202 3238
#define POWERPC_BFDM_601     (bfd_mach_ppc_601)
3203 3239
#define POWERPC_FLAG_601     (POWERPC_FLAG_SE)
3240
#define check_pow_601        check_pow_none
3204 3241

  
3205 3242
static void init_proc_601 (CPUPPCState *env)
3206 3243
{
......
3257 3294
#define POWERPC_BFDM_602     (bfd_mach_ppc_602)
3258 3295
#define POWERPC_FLAG_602     (POWERPC_FLAG_TGPR | POWERPC_FLAG_SE |           \
3259 3296
                              POWERPC_FLAG_BE)
3297
#define check_pow_602        check_pow_hid0
3260 3298

  
3261 3299
static void init_proc_602 (CPUPPCState *env)
3262 3300
{
......
3294 3332
#define POWERPC_BFDM_603     (bfd_mach_ppc_603)
3295 3333
#define POWERPC_FLAG_603     (POWERPC_FLAG_TGPR | POWERPC_FLAG_SE |           \
3296 3334
                              POWERPC_FLAG_BE)
3335
#define check_pow_603        check_pow_hid0
3297 3336

  
3298 3337
static void init_proc_603 (CPUPPCState *env)
3299 3338
{
......
3331 3370
#define POWERPC_BFDM_603E    (bfd_mach_ppc_ec603e)
3332 3371
#define POWERPC_FLAG_603E    (POWERPC_FLAG_TGPR | POWERPC_FLAG_SE |           \
3333 3372
                              POWERPC_FLAG_BE)
3373
#define check_pow_603E       check_pow_hid0
3334 3374

  
3335 3375
static void init_proc_603E (CPUPPCState *env)
3336 3376
{
......
3373 3413
#define POWERPC_BFDM_G2      (bfd_mach_ppc_ec603e)
3374 3414
#define POWERPC_FLAG_G2      (POWERPC_FLAG_TGPR | POWERPC_FLAG_SE |           \
3375 3415
                              POWERPC_FLAG_BE)
3416
#define check_pow_G2         check_pow_hid0
3376 3417

  
3377 3418
static void init_proc_G2 (CPUPPCState *env)
3378 3419
{
......
3417 3458
#define POWERPC_BFDM_G2LE    (bfd_mach_ppc_ec603e)
3418 3459
#define POWERPC_FLAG_G2LE    (POWERPC_FLAG_TGPR | POWERPC_FLAG_SE |           \
3419 3460
                              POWERPC_FLAG_BE)
3461
#define check_pow_G2LE       check_pow_hid0
3420 3462

  
3421 3463
static void init_proc_G2LE (CPUPPCState *env)
3422 3464
{
......
3461 3503
#define POWERPC_BFDM_604     (bfd_mach_ppc_604)
3462 3504
#define POWERPC_FLAG_604     (POWERPC_FLAG_SE | POWERPC_FLAG_BE |             \
3463 3505
                              POWERPC_FLAG_PMM)
3506
#define check_pow_604        check_pow_nocheck
3464 3507

  
3465 3508
static void init_proc_604 (CPUPPCState *env)
3466 3509
{
......
3497 3540
#define POWERPC_BFDM_7x0     (bfd_mach_ppc_750)
3498 3541
#define POWERPC_FLAG_7x0     (POWERPC_FLAG_SE | POWERPC_FLAG_BE |             \
3499 3542
                              POWERPC_FLAG_PMM)
3543
#define check_pow_7x0        check_pow_hid0
3500 3544

  
3501 3545
static void init_proc_7x0 (CPUPPCState *env)
3502 3546
{
......
3535 3579
#define POWERPC_BFDM_750fx   (bfd_mach_ppc_750)
3536 3580
#define POWERPC_FLAG_750fx   (POWERPC_FLAG_SE | POWERPC_FLAG_BE |             \
3537 3581
                              POWERPC_FLAG_PMM)
3582
#define check_pow_750fx      check_pow_hid0
3538 3583

  
3539 3584
static void init_proc_750fx (CPUPPCState *env)
3540 3585
{
......
3580 3625
#define POWERPC_BFDM_7x5     (bfd_mach_ppc_750)
3581 3626
#define POWERPC_FLAG_7x5     (POWERPC_FLAG_SE | POWERPC_FLAG_BE |             \
3582 3627
                              POWERPC_FLAG_PMM)
3628
#define check_pow_7x5        check_pow_hid0
3583 3629

  
3584 3630
static void init_proc_7x5 (CPUPPCState *env)
3585 3631
{
......
3640 3686
#define POWERPC_BFDM_7400    (bfd_mach_ppc_7400)
3641 3687
#define POWERPC_FLAG_7400    (POWERPC_FLAG_VRE | POWERPC_FLAG_SE |            \
3642 3688
                              POWERPC_FLAG_BE | POWERPC_FLAG_PMM)
3689
#define check_pow_7400       check_pow_hid0
3643 3690

  
3644 3691
static void init_proc_7400 (CPUPPCState *env)
3645 3692
{
......
3671 3718
#define POWERPC_BFDM_7410    (bfd_mach_ppc_7400)
3672 3719
#define POWERPC_FLAG_7410    (POWERPC_FLAG_VRE | POWERPC_FLAG_SE |            \
3673 3720
                              POWERPC_FLAG_BE | POWERPC_FLAG_PMM)
3721
#define check_pow_7410       check_pow_hid0
3674 3722

  
3675 3723
static void init_proc_7410 (CPUPPCState *env)
3676 3724
{
......
3714 3762
#define POWERPC_BFDM_7440    (bfd_mach_ppc_7400)
3715 3763
#define POWERPC_FLAG_7440    (POWERPC_FLAG_VRE | POWERPC_FLAG_SE |            \
3716 3764
                              POWERPC_FLAG_BE | POWERPC_FLAG_PMM)
3765
#define check_pow_7440       check_pow_hid0
3717 3766

  
3718 3767
__attribute__ (( unused ))
3719 3768
static void init_proc_7440 (CPUPPCState *env)
......
3784 3833
#define POWERPC_BFDM_7450    (bfd_mach_ppc_7400)
3785 3834
#define POWERPC_FLAG_7450    (POWERPC_FLAG_VRE | POWERPC_FLAG_SE |            \
3786 3835
                              POWERPC_FLAG_BE | POWERPC_FLAG_PMM)
3836
#define check_pow_7450       check_pow_hid0
3787 3837

  
3788 3838
__attribute__ (( unused ))
3789 3839
static void init_proc_7450 (CPUPPCState *env)
......
3856 3906
#define POWERPC_BFDM_7445    (bfd_mach_ppc_7400)
3857 3907
#define POWERPC_FLAG_7445    (POWERPC_FLAG_VRE | POWERPC_FLAG_SE |            \
3858 3908
                              POWERPC_FLAG_BE | POWERPC_FLAG_PMM)
3909
#define check_pow_7445       check_pow_hid0
3859 3910

  
3860 3911
__attribute__ (( unused ))
3861 3912
static void init_proc_7445 (CPUPPCState *env)
......
3960 4011
#define POWERPC_BFDM_7455    (bfd_mach_ppc_7400)
3961 4012
#define POWERPC_FLAG_7455    (POWERPC_FLAG_VRE | POWERPC_FLAG_SE |            \
3962 4013
                              POWERPC_FLAG_BE | POWERPC_FLAG_PMM)
4014
#define check_pow_7455       check_pow_hid0
3963 4015

  
3964 4016
__attribute__ (( unused ))
3965 4017
static void init_proc_7455 (CPUPPCState *env)
......
4078 4130
#define POWERPC970_HID5_INIT 0x00000000
4079 4131
#endif
4080 4132

  
4133
static int check_pow_970 (CPUPPCState *env)
4134
{
4135
    if (env->spr[SPR_HID0] & 0x00600000)
4136
        return 1;
4137

  
4138
    return 0;
4139
}
4140

  
4081 4141
static void init_proc_970 (CPUPPCState *env)
4082 4142
{
4083 4143
    gen_spr_ne_601(env);
......
4147 4207
#define POWERPC_FLAG_970FX   (POWERPC_FLAG_VRE | POWERPC_FLAG_SE |            \
4148 4208
                              POWERPC_FLAG_BE | POWERPC_FLAG_PMM)
4149 4209

  
4210
static int check_pow_970FX (CPUPPCState *env)
4211
{
4212
    if (env->spr[SPR_HID0] & 0x00600000)
4213
        return 1;
4214

  
4215
    return 0;
4216
}
4217

  
4150 4218
static void init_proc_970FX (CPUPPCState *env)
4151 4219
{
4152 4220
    gen_spr_ne_601(env);
......
4216 4284
#define POWERPC_FLAG_970GX   (POWERPC_FLAG_VRE | POWERPC_FLAG_SE |            \
4217 4285
                              POWERPC_FLAG_BE | POWERPC_FLAG_PMM)
4218 4286

  
4287
static int check_pow_970GX (CPUPPCState *env)
4288
{
4289
    if (env->spr[SPR_HID0] & 0x00600000)
4290
        return 1;
4291

  
4292
    return 0;
4293
}
4294

  
4219 4295
static void init_proc_970GX (CPUPPCState *env)
4220 4296
{
4221 4297
    gen_spr_ne_601(env);
......
4273 4349
    ppc970_irq_init(env);
4274 4350
}
4275 4351

  
4352
/* PowerPC 970 MP                                                            */
4353
#define POWERPC_INSNS_970MP  (POWERPC_INSNS_WORK64 | PPC_FLOAT_FSQRT |        \
4354
                              PPC_64B | PPC_ALTIVEC |                         \
4355
                              PPC_SEGMENT_64B | PPC_SLBI)
4356
#define POWERPC_MSRM_970MP   (0x900000000204FF36ULL)
4357
#define POWERPC_MMU_970MP    (POWERPC_MMU_64B)
4358
#define POWERPC_EXCP_970MP   (POWERPC_EXCP_970)
4359
#define POWERPC_INPUT_970MP  (PPC_FLAGS_INPUT_970)
4360
#define POWERPC_BFDM_970MP   (bfd_mach_ppc64)
4361
#define POWERPC_FLAG_970MP   (POWERPC_FLAG_VRE | POWERPC_FLAG_SE |            \
4362
                              POWERPC_FLAG_BE | POWERPC_FLAG_PMM)
4363

  
4364
static int check_pow_970MP (CPUPPCState *env)
4365
{
4366
    if (env->spr[SPR_HID0] & 0x01C00000)
4367
        return 1;
4368

  
4369
    return 0;
4370
}
4371

  
4372
static void init_proc_970MP (CPUPPCState *env)
4373
{
4374
    gen_spr_ne_601(env);
4375
    gen_spr_7xx(env);
4376
    /* Time base */
4377
    gen_tbl(env);
4378
    /* Hardware implementation registers */
4379
    /* XXX : not implemented */
4380
    spr_register(env, SPR_HID0, "HID0",
4381
                 SPR_NOACCESS, SPR_NOACCESS,
4382
                 &spr_read_generic, &spr_write_clear,
4383
                 0x60000000);
4384
    /* XXX : not implemented */
4385
    spr_register(env, SPR_HID1, "HID1",
4386
                 SPR_NOACCESS, SPR_NOACCESS,
4387
                 &spr_read_generic, &spr_write_generic,
4388
                 0x00000000);
4389
    /* XXX : not implemented */
4390
    spr_register(env, SPR_750_HID2, "HID2",
4391
                 SPR_NOACCESS, SPR_NOACCESS,
4392
                 &spr_read_generic, &spr_write_generic,
4393
                 0x00000000);
4394
    /* XXX : not implemented */
4395
    spr_register(env, SPR_970_HID5, "HID5",
4396
                 SPR_NOACCESS, SPR_NOACCESS,
4397
                 &spr_read_generic, &spr_write_generic,
4398
                 POWERPC970_HID5_INIT);
4399
    /* Memory management */
4400
    /* XXX: not correct */
4401
    gen_low_BATs(env);
4402
    /* XXX : not implemented */
4403
    spr_register(env, SPR_MMUCFG, "MMUCFG",
4404
                 SPR_NOACCESS, SPR_NOACCESS,
4405
                 &spr_read_generic, SPR_NOACCESS,
4406
                 0x00000000); /* TOFIX */
4407
    /* XXX : not implemented */
4408
    spr_register(env, SPR_MMUCSR0, "MMUCSR0",
4409
                 SPR_NOACCESS, SPR_NOACCESS,
4410
                 &spr_read_generic, &spr_write_generic,
4411
                 0x00000000); /* TOFIX */
4412
    spr_register(env, SPR_HIOR, "SPR_HIOR",
4413
                 SPR_NOACCESS, SPR_NOACCESS,
4414
                 &spr_read_generic, &spr_write_generic,
4415
                 0xFFF00000); /* XXX: This is a hack */
4416
#if !defined(CONFIG_USER_ONLY)
4417
    env->excp_prefix = 0xFFF00000;
4418
#endif
4419
#if !defined(CONFIG_USER_ONLY)
4420
    env->slb_nr = 32;
4421
#endif
4422
    init_excp_970(env);
4423
    env->dcache_line_size = 128;
4424
    env->icache_line_size = 128;
4425
    /* Allocate hardware IRQ controller */
4426
    ppc970_irq_init(env);
4427
}
4428

  
4276 4429
/* PowerPC 620                                                               */
4277 4430
#define POWERPC_INSNS_620    (POWERPC_INSNS_WORKS | PPC_FLOAT_FSQRT |         \
4278 4431
                              PPC_64B | PPC_SLBI)
......
4282 4435
#define POWERPC_INPUT_620    (PPC_FLAGS_INPUT_970)
4283 4436
#define POWERPC_BFDM_620     (bfd_mach_ppc64)
4284 4437
#define POWERPC_FLAG_620     (POWERPC_FLAG_SE | POWERPC_FLAG_BE)
4438
#define check_pow_620        check_pow_nocheck /* Check this */
4285 4439

  
4286 4440
__attribute__ (( unused ))
4287 4441
static void init_proc_620 (CPUPPCState *env)
......
4313 4467
#define POWERPC_MMU_PPC32     POWERPC_MMU_604
4314 4468
#define POWERPC_EXCP_PPC32    POWERPC_EXCP_604
4315 4469
#define POWERPC_INPUT_PPC32   POWERPC_INPUT_604
4316
#define init_proc_PPC32       init_proc_604
4317 4470
#define POWERPC_BFDM_PPC32    POWERPC_BFDM_604
4318 4471
#define POWERPC_FLAG_PPC32    POWERPC_FLAG_604
4472
#define check_pow_PPC32       check_pow_604
4473
#define init_proc_PPC32       init_proc_604
4319 4474

  
4320 4475
/* Default 64 bits PowerPC target will be 970 FX */
4321 4476
#define CPU_POWERPC_PPC64     CPU_POWERPC_970FX
......
4324 4479
#define POWERPC_MMU_PPC64     POWERPC_MMU_970FX
4325 4480
#define POWERPC_EXCP_PPC64    POWERPC_EXCP_970FX
4326 4481
#define POWERPC_INPUT_PPC64   POWERPC_INPUT_970FX
4327
#define init_proc_PPC64       init_proc_970FX
4328 4482
#define POWERPC_BFDM_PPC64    POWERPC_BFDM_970FX
4329 4483
#define POWERPC_FLAG_PPC64    POWERPC_FLAG_970FX
4484
#define check_pow_PPC64       check_pow_970FX
4485
#define init_proc_PPC64       init_proc_970FX
4330 4486

  
4331 4487
/* Default PowerPC target will be PowerPC 32 */
4332 4488
#if defined (TARGET_PPC64) && 0 // XXX: TODO
......
4336 4492
#define POWERPC_MMU_DEFAULT   POWERPC_MMU_PPC64
4337 4493
#define POWERPC_EXCP_DEFAULT  POWERPC_EXCP_PPC64
4338 4494
#define POWERPC_INPUT_DEFAULT POWERPC_INPUT_PPC64
4339
#define init_proc_DEFAULT     init_proc_PPC64
4340 4495
#define POWERPC_BFDM_DEFAULT  POWERPC_BFDM_PPC64
4341 4496
#define POWERPC_FLAG_DEFAULT  POWERPC_FLAG_PPC64
4497
#define check_pow_DEFAULT     check_pow_PPC64
4498
#define init_proc_DEFAULT     init_proc_PPC64
4342 4499
#else
4343 4500
#define CPU_POWERPC_DEFAULT   CPU_POWERPC_PPC32
4344 4501
#define POWERPC_INSNS_DEFAULT POWERPC_INSNS_PPC32
......
4346 4503
#define POWERPC_MMU_DEFAULT   POWERPC_MMU_PPC32
4347 4504
#define POWERPC_EXCP_DEFAULT  POWERPC_EXCP_PPC32
4348 4505
#define POWERPC_INPUT_DEFAULT POWERPC_INPUT_PPC32
4349
#define init_proc_DEFAULT     init_proc_PPC32
4350 4506
#define POWERPC_BFDM_DEFAULT  POWERPC_BFDM_PPC32
4351 4507
#define POWERPC_FLAG_DEFAULT  POWERPC_FLAG_PPC32
4508
#define check_pow_DEFAULT     check_pow_PPC32
4509
#define init_proc_DEFAULT     init_proc_PPC32
4352 4510
#endif
4353 4511

  
4354 4512
/*****************************************************************************/
......
4848 5006
        .bfd_mach    = glue(POWERPC_BFDM_,_type),                             \
4849 5007
        .flags       = glue(POWERPC_FLAG_,_type),                             \
4850 5008
        .init_proc   = &glue(init_proc_,_type),                               \
5009
        .check_pow   = &glue(check_pow_,_type),                               \
4851 5010
    }
4852 5011

  
4853 5012
static ppc_def_t ppc_defs[] = {
......
5671 5830
    /* PowerPC 970GX (G5)                                                    */
5672 5831
    POWERPC_DEF("970gx",       CPU_POWERPC_970GX,       0xFFFFFFFF, 970GX),
5673 5832
    /* PowerPC 970MP                                                         */
5674
    POWERPC_DEF("970mp",       CPU_POWERPC_970MP,       0xFFFFFFFF, 970),
5833
    POWERPC_DEF("970mp",       CPU_POWERPC_970MP,       0xFFFFFFFF, 970MP),
5675 5834
    /* PowerPC 970MP v1.0                                                    */
5676
    POWERPC_DEF("970mp1.0",    CPU_POWERPC_970MP_v10,   0xFFFFFFFF, 970),
5835
    POWERPC_DEF("970mp1.0",    CPU_POWERPC_970MP_v10,   0xFFFFFFFF, 970MP),
5677 5836
    /* PowerPC 970MP v1.1                                                    */
5678
    POWERPC_DEF("970mp1.1",    CPU_POWERPC_970MP_v11,   0xFFFFFFFF, 970),
5837
    POWERPC_DEF("970mp1.1",    CPU_POWERPC_970MP_v11,   0xFFFFFFFF, 970MP),
5679 5838
#if defined (TODO)
5680 5839
    /* PowerPC Cell                                                          */
5681 5840
    POWERPC_DEF("Cell",        CPU_POWERPC_CELL,        0xFFFFFFFF, 970),
......
5884 6043
                " Attempt Qemu to crash very soon !\n");
5885 6044
    }
5886 6045
#endif
6046
    if (env->check_pow == NULL) {
6047
        fprintf(stderr, "WARNING: no power management check handler "
6048
                "registered.\n"
6049
                " Attempt Qemu to crash very soon !\n");
6050
    }
5887 6051
}
5888 6052

  
5889 6053
#if defined(PPC_DUMP_CPU)
......
6186 6350
    env->bus_model = def->bus_model;
6187 6351
    env->flags = def->flags;
6188 6352
    env->bfd_mach = def->bfd_mach;
6353
    env->check_pow = def->check_pow;
6189 6354
    if (create_ppc_opcodes(env, def) < 0)
6190 6355
        return -1;
6191 6356
    init_ppc_proc(env, def);

Also available in: Unified diff