Revision 0411a972 target-ppc/cpu.h
b/target-ppc/cpu.h | ||
---|---|---|
368 | 368 |
#define MSR_DE 9 /* Debug interrupts enable on embedded PowerPC x */ |
369 | 369 |
#define MSR_FE1 8 /* Floating point exception mode 1 hflags */ |
370 | 370 |
#define MSR_AL 7 /* AL bit on POWER */ |
371 |
#define MSR_EP 3 /* Exception prefix on 601 */
|
|
371 |
#define MSR_EP 6 /* Exception prefix on 601 */
|
|
372 | 372 |
#define MSR_IR 5 /* Instruction relocate */ |
373 | 373 |
#define MSR_DR 4 /* Data relocate */ |
374 | 374 |
#define MSR_PE 3 /* Protection enable on 403 */ |
... | ... | |
376 | 376 |
#define MSR_PMM 2 /* Performance monitor mark on POWER x */ |
377 | 377 |
#define MSR_RI 1 /* Recoverable interrupt 1 */ |
378 | 378 |
#define MSR_LE 0 /* Little-endian mode 1 hflags */ |
379 |
#define msr_sf env->msr[MSR_SF] |
|
380 |
#define msr_isf env->msr[MSR_ISF] |
|
381 |
#define msr_hv env->msr[MSR_HV] |
|
382 |
#define msr_cm env->msr[MSR_CM] |
|
383 |
#define msr_icm env->msr[MSR_ICM] |
|
384 |
#define msr_ucle env->msr[MSR_UCLE] |
|
385 |
#define msr_vr env->msr[MSR_VR] |
|
386 |
#define msr_spe env->msr[MSR_SPE] |
|
387 |
#define msr_ap env->msr[MSR_AP] |
|
388 |
#define msr_sa env->msr[MSR_SA] |
|
389 |
#define msr_key env->msr[MSR_KEY] |
|
390 |
#define msr_pow env->msr[MSR_POW] |
|
391 |
#define msr_tgpr env->msr[MSR_TGPR] |
|
392 |
#define msr_ce env->msr[MSR_CE] |
|
393 |
#define msr_ile env->msr[MSR_ILE] |
|
394 |
#define msr_ee env->msr[MSR_EE] |
|
395 |
#define msr_pr env->msr[MSR_PR] |
|
396 |
#define msr_fp env->msr[MSR_FP] |
|
397 |
#define msr_me env->msr[MSR_ME] |
|
398 |
#define msr_fe0 env->msr[MSR_FE0] |
|
399 |
#define msr_se env->msr[MSR_SE] |
|
400 |
#define msr_dwe env->msr[MSR_DWE] |
|
401 |
#define msr_uble env->msr[MSR_UBLE] |
|
402 |
#define msr_be env->msr[MSR_BE] |
|
403 |
#define msr_de env->msr[MSR_DE] |
|
404 |
#define msr_fe1 env->msr[MSR_FE1] |
|
405 |
#define msr_al env->msr[MSR_AL] |
|
406 |
#define msr_ir env->msr[MSR_IR] |
|
407 |
#define msr_dr env->msr[MSR_DR] |
|
408 |
#define msr_pe env->msr[MSR_PE] |
|
409 |
#define msr_ep env->msr[MSR_EP] |
|
410 |
#define msr_px env->msr[MSR_PX] |
|
411 |
#define msr_pmm env->msr[MSR_PMM] |
|
412 |
#define msr_ri env->msr[MSR_RI] |
|
413 |
#define msr_le env->msr[MSR_LE] |
|
379 |
|
|
380 |
#define msr_sf ((env->msr >> MSR_SF) & 1) |
|
381 |
#define msr_isf ((env->msr >> MSR_ISF) & 1) |
|
382 |
#define msr_hv ((env->msr >> MSR_HV) & 1) |
|
383 |
#define msr_cm ((env->msr >> MSR_CM) & 1) |
|
384 |
#define msr_icm ((env->msr >> MSR_ICM) & 1) |
|
385 |
#define msr_ucle ((env->msr >> MSR_UCLE) & 1) |
|
386 |
#define msr_vr ((env->msr >> MSR_VR) & 1) |
|
387 |
#define msr_spe ((env->msr >> MSR_SE) & 1) |
|
388 |
#define msr_ap ((env->msr >> MSR_AP) & 1) |
|
389 |
#define msr_sa ((env->msr >> MSR_SA) & 1) |
|
390 |
#define msr_key ((env->msr >> MSR_KEY) & 1) |
|
391 |
#define msr_pow ((env->msr >> MSR_POW) & 1) |
|
392 |
#define msr_tgpr ((env->msr >> MSR_TGPR) & 1) |
|
393 |
#define msr_ce ((env->msr >> MSR_CE) & 1) |
|
394 |
#define msr_ile ((env->msr >> MSR_ILE) & 1) |
|
395 |
#define msr_ee ((env->msr >> MSR_EE) & 1) |
|
396 |
#define msr_pr ((env->msr >> MSR_PR) & 1) |
|
397 |
#define msr_fp ((env->msr >> MSR_FP) & 1) |
|
398 |
#define msr_me ((env->msr >> MSR_ME) & 1) |
|
399 |
#define msr_fe0 ((env->msr >> MSR_FE0) & 1) |
|
400 |
#define msr_se ((env->msr >> MSR_SE) & 1) |
|
401 |
#define msr_dwe ((env->msr >> MSR_DWE) & 1) |
|
402 |
#define msr_uble ((env->msr >> MSR_UBLE) & 1) |
|
403 |
#define msr_be ((env->msr >> MSR_BE) & 1) |
|
404 |
#define msr_de ((env->msr >> MSR_DE) & 1) |
|
405 |
#define msr_fe1 ((env->msr >> MSR_FE1) & 1) |
|
406 |
#define msr_al ((env->msr >> MSR_AL) & 1) |
|
407 |
#define msr_ep ((env->msr >> MSR_EP) & 1) |
|
408 |
#define msr_ir ((env->msr >> MSR_IR) & 1) |
|
409 |
#define msr_dr ((env->msr >> MSR_DR) & 1) |
|
410 |
#define msr_pe ((env->msr >> MSR_PE) & 1) |
|
411 |
#define msr_px ((env->msr >> MSR_PX) & 1) |
|
412 |
#define msr_pmm ((env->msr >> MSR_PMM) & 1) |
|
413 |
#define msr_ri ((env->msr >> MSR_RI) & 1) |
|
414 |
#define msr_le ((env->msr >> MSR_LE) & 1) |
|
414 | 415 |
|
415 | 416 |
enum { |
416 | 417 |
POWERPC_FLAG_NONE = 0x00000000, |
... | ... | |
468 | 469 |
|
469 | 470 |
/* Those ones are used in supervisor mode only */ |
470 | 471 |
/* machine state register */ |
471 |
uint8_t msr[64];
|
|
472 |
target_ulong msr;
|
|
472 | 473 |
/* temporary general purpose registers */ |
473 | 474 |
ppc_gpr_t tgpr[4]; /* Used to speed-up TLB assist handlers */ |
474 | 475 |
|
... | ... | |
639 | 640 |
#endif /* !defined(CONFIG_USER_ONLY) */ |
640 | 641 |
target_ulong ppc_load_xer (CPUPPCState *env); |
641 | 642 |
void ppc_store_xer (CPUPPCState *env, target_ulong value); |
642 |
target_ulong do_load_msr (CPUPPCState *env); |
|
643 |
int do_store_msr (CPUPPCState *env, target_ulong value); |
|
644 |
#if defined(TARGET_PPC64) |
|
645 |
int ppc_store_msr_32 (CPUPPCState *env, uint32_t value); |
|
646 |
#endif |
|
643 |
void ppc_store_msr (CPUPPCState *env, target_ulong value); |
|
647 | 644 |
|
648 |
void do_compute_hflags (CPUPPCState *env); |
|
649 | 645 |
void cpu_ppc_reset (void *opaque); |
650 | 646 |
CPUPPCState *cpu_ppc_init (void); |
651 | 647 |
void cpu_ppc_close(CPUPPCState *env); |
Also available in: Unified diff