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