Revision 81762d6d target-ppc/cpu.h
b/target-ppc/cpu.h | ||
---|---|---|
43 | 43 |
# define TARGET_VIRT_ADDR_SPACE_BITS 64 |
44 | 44 |
#endif |
45 | 45 |
|
46 |
#define TARGET_PAGE_BITS_16M 24 |
|
47 |
|
|
46 | 48 |
#else /* defined (TARGET_PPC64) */ |
47 | 49 |
/* PowerPC 32 definitions */ |
48 | 50 |
#define TARGET_LONG_BITS 32 |
... | ... | |
359 | 361 |
|
360 | 362 |
typedef struct ppc_slb_t ppc_slb_t; |
361 | 363 |
struct ppc_slb_t { |
362 |
uint64_t tmp64;
|
|
363 |
uint32_t tmp;
|
|
364 |
uint64_t esid;
|
|
365 |
uint64_t vsid;
|
|
364 | 366 |
}; |
365 | 367 |
|
368 |
/* Bits in the SLB ESID word */ |
|
369 |
#define SLB_ESID_ESID 0xFFFFFFFFF0000000ULL |
|
370 |
#define SLB_ESID_V 0x0000000008000000ULL /* valid */ |
|
371 |
|
|
372 |
/* Bits in the SLB VSID word */ |
|
373 |
#define SLB_VSID_SHIFT 12 |
|
374 |
#define SLB_VSID_SSIZE_SHIFT 62 |
|
375 |
#define SLB_VSID_B 0xc000000000000000ULL |
|
376 |
#define SLB_VSID_B_256M 0x0000000000000000ULL |
|
377 |
#define SLB_VSID_VSID 0x3FFFFFFFFFFFF000ULL |
|
378 |
#define SLB_VSID_KS 0x0000000000000800ULL |
|
379 |
#define SLB_VSID_KP 0x0000000000000400ULL |
|
380 |
#define SLB_VSID_N 0x0000000000000200ULL /* no-execute */ |
|
381 |
#define SLB_VSID_L 0x0000000000000100ULL |
|
382 |
#define SLB_VSID_C 0x0000000000000080ULL /* class */ |
|
383 |
#define SLB_VSID_LP 0x0000000000000030ULL |
|
384 |
#define SLB_VSID_ATTR 0x0000000000000FFFULL |
|
385 |
|
|
386 |
#define SEGMENT_SHIFT_256M 28 |
|
387 |
#define SEGMENT_MASK_256M (~((1ULL << SEGMENT_SHIFT_256M) - 1)) |
|
388 |
|
|
366 | 389 |
/*****************************************************************************/ |
367 | 390 |
/* Machine state register bits definition */ |
368 | 391 |
#define MSR_SF 63 /* Sixty-four-bit mode hflags */ |
... | ... | |
755 | 778 |
void ppc_store_asr (CPUPPCState *env, target_ulong value); |
756 | 779 |
target_ulong ppc_load_slb (CPUPPCState *env, int slb_nr); |
757 | 780 |
target_ulong ppc_load_sr (CPUPPCState *env, int sr_nr); |
758 |
void ppc_store_slb (CPUPPCState *env, target_ulong rb, target_ulong rs);
|
|
781 |
int ppc_store_slb (CPUPPCState *env, target_ulong rb, target_ulong rs);
|
|
759 | 782 |
#endif /* defined(TARGET_PPC64) */ |
760 | 783 |
void ppc_store_sr (CPUPPCState *env, int srnum, target_ulong value); |
761 | 784 |
#endif /* !defined(CONFIG_USER_ONLY) */ |
Also available in: Unified diff