Revision bd7d9a6d
b/target-ppc/cpu.h | ||
---|---|---|
27 | 27 |
|
28 | 28 |
#if defined (TARGET_PPC64) |
29 | 29 |
/* PowerPC 64 definitions */ |
30 |
typedef uint64_t ppc_gpr_t; |
|
31 | 30 |
#define TARGET_LONG_BITS 64 |
32 | 31 |
#define TARGET_PAGE_BITS 12 |
33 | 32 |
|
34 | 33 |
#else /* defined (TARGET_PPC64) */ |
35 | 34 |
/* PowerPC 32 definitions */ |
36 |
typedef uint32_t ppc_gpr_t; |
|
37 | 35 |
#define TARGET_LONG_BITS 32 |
38 | 36 |
|
39 | 37 |
#if defined(TARGET_PPCEMB) |
... | ... | |
531 | 529 |
/* First are the most commonly used resources |
532 | 530 |
* during translated code execution |
533 | 531 |
*/ |
534 |
#if (TARGET_LONG_BITS > HOST_LONG_BITS) || !defined(TARGET_PPC64) |
|
532 |
#if TARGET_LONG_BITS > HOST_LONG_BITS |
|
533 |
target_ulong t0, t1, t2; |
|
534 |
#endif |
|
535 |
#if !defined(TARGET_PPC64) |
|
535 | 536 |
/* temporary fixed-point registers |
536 |
* used to emulate 64 bits registers on 32 bits hosts
|
|
537 |
* used to emulate 64 bits registers on 32 bits targets
|
|
537 | 538 |
*/ |
538 |
uint64_t t0, t1, t2;
|
|
539 |
uint64_t t0_64, t1_64, t2_64;
|
|
539 | 540 |
#endif |
540 | 541 |
ppc_avr_t avr0, avr1, avr2; |
541 | 542 |
|
542 | 543 |
/* general purpose registers */ |
543 |
ppc_gpr_t gpr[32];
|
|
544 |
target_ulong gpr[32];
|
|
544 | 545 |
#if !defined(TARGET_PPC64) |
545 | 546 |
/* Storage for GPR MSB, used by the SPE extension */ |
546 |
ppc_gpr_t gprh[32];
|
|
547 |
target_ulong gprh[32];
|
|
547 | 548 |
#endif |
548 | 549 |
/* LR */ |
549 | 550 |
target_ulong lr; |
... | ... | |
561 | 562 |
/* machine state register */ |
562 | 563 |
target_ulong msr; |
563 | 564 |
/* temporary general purpose registers */ |
564 |
ppc_gpr_t tgpr[4]; /* Used to speed-up TLB assist handlers */
|
|
565 |
target_ulong tgpr[4]; /* Used to speed-up TLB assist handlers */
|
|
565 | 566 |
|
566 | 567 |
/* Floating point execution context */ |
567 | 568 |
/* temporary float registers */ |
... | ... | |
614 | 615 |
ppc_avr_t avr[32]; |
615 | 616 |
uint32_t vscr; |
616 | 617 |
/* SPE registers */ |
617 |
ppc_gpr_t spe_acc;
|
|
618 |
target_ulong spe_acc;
|
|
618 | 619 |
float_status spe_status; |
619 | 620 |
uint32_t spe_fscr; |
620 | 621 |
|
b/target-ppc/exec.h | ||
---|---|---|
39 | 39 |
#define T2 (env->t2) |
40 | 40 |
#define TDX "%016" PRIx64 |
41 | 41 |
#else |
42 |
register unsigned long T0 asm(AREG1);
|
|
43 |
register unsigned long T1 asm(AREG2);
|
|
44 |
register unsigned long T2 asm(AREG3);
|
|
42 |
register target_ulong T0 asm(AREG1);
|
|
43 |
register target_ulong T1 asm(AREG2);
|
|
44 |
register target_ulong T2 asm(AREG3);
|
|
45 | 45 |
#define TDX "%016lx" |
46 | 46 |
#endif |
47 | 47 |
/* We may, sometime, need 64 bits registers on 32 bits targets */ |
48 |
#if (HOST_LONG_BITS == 32) |
|
49 |
/* no registers can be used */ |
|
50 |
#define T0_64 (env->t0) |
|
51 |
#define T1_64 (env->t1) |
|
52 |
#define T2_64 (env->t2) |
|
48 |
#if !defined(TARGET_PPC64) |
|
49 |
#define T0_64 (env->t0_64) |
|
50 |
#define T1_64 (env->t1_64) |
|
51 |
#define T2_64 (env->t2_64) |
|
53 | 52 |
#else |
54 | 53 |
#define T0_64 T0 |
55 | 54 |
#define T1_64 T1 |
b/target-ppc/helper_regs.h | ||
---|---|---|
42 | 42 |
/* Swap temporary saved registers with GPRs */ |
43 | 43 |
static always_inline void hreg_swap_gpr_tgpr (CPUPPCState *env) |
44 | 44 |
{ |
45 |
ppc_gpr_t tmp;
|
|
45 |
target_ulong tmp;
|
|
46 | 46 |
|
47 | 47 |
tmp = env->gpr[0]; |
48 | 48 |
env->gpr[0] = env->tgpr[0]; |
b/target-ppc/translate.c | ||
---|---|---|
90 | 90 |
#endif |
91 | 91 |
#if !defined(TARGET_PPC64) |
92 | 92 |
cpu_T64[0] = tcg_global_mem_new(TCG_TYPE_I64, |
93 |
TCG_AREG0, offsetof(CPUState, t0), |
|
93 |
TCG_AREG0, offsetof(CPUState, t0_64),
|
|
94 | 94 |
"T0_64"); |
95 | 95 |
cpu_T64[1] = tcg_global_mem_new(TCG_TYPE_I64, |
96 |
TCG_AREG0, offsetof(CPUState, t1), |
|
96 |
TCG_AREG0, offsetof(CPUState, t1_64),
|
|
97 | 97 |
"T1_64"); |
98 | 98 |
cpu_T64[2] = tcg_global_mem_new(TCG_TYPE_I64, |
99 |
TCG_AREG0, offsetof(CPUState, t2), |
|
99 |
TCG_AREG0, offsetof(CPUState, t2_64),
|
|
100 | 100 |
"T2_64"); |
101 | 101 |
#endif |
102 | 102 |
|
Also available in: Unified diff