Revision 52705890

b/exec.c
62 62

  
63 63
#define SMC_BITMAP_USE_THRESHOLD 10
64 64

  
65
#if defined(TARGET_SPARC64)
66
#define TARGET_PHYS_ADDR_SPACE_BITS 41
67
#elif defined(TARGET_SPARC)
68
#define TARGET_PHYS_ADDR_SPACE_BITS 36
69
#elif defined(TARGET_ALPHA)
70
#define TARGET_PHYS_ADDR_SPACE_BITS 42
71
#define TARGET_VIRT_ADDR_SPACE_BITS 42
72
#elif defined(TARGET_PPC64)
73
#define TARGET_PHYS_ADDR_SPACE_BITS 42
74
#elif defined(TARGET_X86_64)
75
#define TARGET_PHYS_ADDR_SPACE_BITS 42
76
#elif defined(TARGET_I386)
77
#define TARGET_PHYS_ADDR_SPACE_BITS 36
78
#else
79
#define TARGET_PHYS_ADDR_SPACE_BITS 32
80
#endif
81

  
82 65
static TranslationBlock *tbs;
83 66
int code_gen_max_blocks;
84 67
TranslationBlock *tb_phys_hash[CODE_GEN_PHYS_HASH_SIZE];
b/target-alpha/cpu.h
41 41

  
42 42
#define TARGET_PAGE_BITS 13
43 43

  
44
#define VA_BITS 43
44
/* ??? EV4 has 34 phys addr bits, EV5 has 40, EV6 has 44.  */
45
#define TARGET_PHYS_ADDR_SPACE_BITS	44
46
#define TARGET_VIRT_ADDR_SPACE_BITS	(30 + TARGET_PAGE_BITS)
45 47

  
46 48
/* Alpha major type */
47 49
enum {
b/target-arm/cpu.h
405 405
#define TARGET_PAGE_BITS 10
406 406
#endif
407 407

  
408
#define TARGET_PHYS_ADDR_SPACE_BITS 32
409
#define TARGET_VIRT_ADDR_SPACE_BITS 32
410

  
408 411
#define cpu_init cpu_arm_init
409 412
#define cpu_exec cpu_arm_exec
410 413
#define cpu_gen_code cpu_arm_gen_code
b/target-cris/cpu.h
200 200
#define TARGET_PAGE_BITS 13
201 201
#define MMAP_SHIFT TARGET_PAGE_BITS
202 202

  
203
#define TARGET_PHYS_ADDR_SPACE_BITS 32
204
#define TARGET_VIRT_ADDR_SPACE_BITS 32
205

  
203 206
#define cpu_init cpu_cris_init
204 207
#define cpu_exec cpu_cris_exec
205 208
#define cpu_gen_code cpu_cris_gen_code
b/target-i386/cpu.h
874 874

  
875 875
#define TARGET_PAGE_BITS 12
876 876

  
877
#ifdef TARGET_X86_64
878
#define TARGET_PHYS_ADDR_SPACE_BITS 52
879
/* ??? This is really 48 bits, sign-extended, but the only thing
880
   accessible to userland with bit 48 set is the VSYSCALL, and that
881
   is handled via other mechanisms.  */
882
#define TARGET_VIRT_ADDR_SPACE_BITS 47
883
#else
884
#define TARGET_PHYS_ADDR_SPACE_BITS 36
885
#define TARGET_VIRT_ADDR_SPACE_BITS 32
886
#endif
887

  
877 888
#define cpu_init cpu_x86_init
878 889
#define cpu_exec cpu_x86_exec
879 890
#define cpu_gen_code cpu_x86_gen_code
b/target-m68k/cpu.h
210 210
#define TARGET_PAGE_BITS 10
211 211
#endif
212 212

  
213
#define TARGET_PHYS_ADDR_SPACE_BITS 32
214
#define TARGET_VIRT_ADDR_SPACE_BITS 32
215

  
213 216
#define cpu_init cpu_m68k_init
214 217
#define cpu_exec cpu_m68k_exec
215 218
#define cpu_gen_code cpu_m68k_gen_code
b/target-microblaze/cpu.h
253 253
#define TARGET_PAGE_BITS 12
254 254
#define MMAP_SHIFT TARGET_PAGE_BITS
255 255

  
256
#define TARGET_PHYS_ADDR_SPACE_BITS 32
257
#define TARGET_VIRT_ADDR_SPACE_BITS 32
258

  
256 259
#define cpu_init cpu_mb_init
257 260
#define cpu_exec cpu_mb_exec
258 261
#define cpu_gen_code cpu_mb_gen_code
b/target-mips/mips-defs.h
8 8
#define TARGET_PAGE_BITS 12
9 9
#define MIPS_TLB_MAX 128
10 10

  
11
/* ??? MIPS64 no doubt has a larger address space.  */
12
#define TARGET_PHYS_ADDR_SPACE_BITS 32
13
#define TARGET_VIRT_ADDR_SPACE_BITS 32
14

  
11 15
#if defined(TARGET_MIPS64)
12 16
#define TARGET_LONG_BITS 64
13 17
#else
b/target-ppc/cpu.h
29 29
#define TARGET_LONG_BITS 64
30 30
#define TARGET_PAGE_BITS 12
31 31

  
32
/* Note that the official physical address space bits is 62-M where M
33
   is implementation dependent.  I've not looked up M for the set of
34
   cpus we emulate at the system level.  */
35
#define TARGET_PHYS_ADDR_SPACE_BITS 62
36

  
37
/* Note that the PPC environment architecture talks about 80 bit virtual
38
   addresses, with segmentation.  Obviously that's not all visible to a
39
   single process, which is all we're concerned with here.  */
40
#ifdef TARGET_ABI32
41
# define TARGET_VIRT_ADDR_SPACE_BITS 32
42
#else
43
# define TARGET_VIRT_ADDR_SPACE_BITS 64
44
#endif
45

  
32 46
#else /* defined (TARGET_PPC64) */
33 47
/* PowerPC 32 definitions */
34 48
#define TARGET_LONG_BITS 32
......
50 64
#define TARGET_PAGE_BITS 12
51 65
#endif /* defined(TARGET_PPCEMB) */
52 66

  
67
#define TARGET_PHYS_ADDR_SPACE_BITS 32
68
#define TARGET_VIRT_ADDR_SPACE_BITS 32
69

  
53 70
#endif /* defined (TARGET_PPC64) */
54 71

  
55 72
#define CPUState struct CPUPPCState
b/target-s390x/cpu.h
99 99

  
100 100
#define TARGET_PAGE_BITS 12
101 101

  
102
/* ??? This is certainly wrong for 64-bit s390x, but given that only KVM
103
   emulation actually works, this is good enough for a placeholder.  */
104
#define TARGET_PHYS_ADDR_SPACE_BITS 32
105
#define TARGET_VIRT_ADDR_SPACE_BITS 32
106

  
102 107
#ifndef CONFIG_USER_ONLY
103 108
extern int s390_virtio_hypercall(CPUState *env);
104 109
extern void kvm_s390_virtio_irq(CPUState *env, int config_change, uint64_t token);
b/target-sh4/cpu.h
44 44

  
45 45
#define TARGET_PAGE_BITS 12	/* 4k XXXXX */
46 46

  
47
#define TARGET_PHYS_ADDR_SPACE_BITS 32
48
#define TARGET_VIRT_ADDR_SPACE_BITS 32
49

  
47 50
#define SR_MD (1 << 30)
48 51
#define SR_RB (1 << 29)
49 52
#define SR_BL (1 << 28)
b/target-sparc/cpu.h
7 7
#define TARGET_LONG_BITS 32
8 8
#define TARGET_FPREGS 32
9 9
#define TARGET_PAGE_BITS 12 /* 4k */
10
#define TARGET_PHYS_ADDR_SPACE_BITS 41
11
# ifdef TARGET_ABI32
12
#  define TARGET_VIRT_ADDR_SPACE_BITS 32
13
# else
14
#  define TARGET_VIRT_ADDR_SPACE_BITS 44
15
# endif
10 16
#else
11 17
#define TARGET_LONG_BITS 64
12 18
#define TARGET_FPREGS 64
13 19
#define TARGET_PAGE_BITS 13 /* 8k */
20
#define TARGET_PHYS_ADDR_SPACE_BITS 36
21
#define TARGET_VIRT_ADDR_SPACE_BITS 32
14 22
#endif
15 23

  
16 24
#define CPUState struct CPUSPARCState

Also available in: Unified diff