Commit 9fb63ac281f4472242f040b59d428aba35237530
1 parent
6af0bf9c
MIPS_USES_R4K_TLB typo
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1465 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
11 additions
and
12 deletions
target-mips/helper.c
... | ... | @@ -17,11 +17,10 @@ |
17 | 17 | * License along with this library; if not, write to the Free Software |
18 | 18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
19 | 19 | */ |
20 | - | |
21 | 20 | #include "exec.h" |
22 | 21 | |
23 | 22 | /* MIPS32 4K MMU emulation */ |
24 | -#if MIPS_USES_4K_TLB | |
23 | +#ifdef MIPS_USES_R4K_TLB | |
25 | 24 | static int map_address (CPUState *env, target_ulong *physical, int *prot, |
26 | 25 | target_ulong address, int rw, int access_type) |
27 | 26 | { |
... | ... | @@ -44,9 +43,9 @@ static int map_address (CPUState *env, target_ulong *physical, int *prot, |
44 | 43 | /* Check access rights */ |
45 | 44 | if ((tlb->V[n] & 2) && (rw == 0 || (tlb->D[n] & 4))) { |
46 | 45 | *physical = tlb->PFN[n] | (address & 0xFFF); |
47 | - *prot = PROT_READ; | |
46 | + *prot = PAGE_READ; | |
48 | 47 | if (tlb->D[n]) |
49 | - *prot |= PROT_WRITE; | |
48 | + *prot |= PAGE_WRITE; | |
50 | 49 | return 0; |
51 | 50 | } else if (!(tlb->V[n] & 2)) { |
52 | 51 | return -3; |
... | ... | @@ -78,9 +77,9 @@ int get_physical_address (CPUState *env, target_ulong *physical, int *prot, |
78 | 77 | return -1; |
79 | 78 | ret = 0; |
80 | 79 | if (address < 0x80000000UL) { |
81 | - if (user_mode || !(env->hflags & MIPS_HFLAG_ERL)) { | |
82 | -#if MIPS_USES_4K_TLB | |
83 | - ret = map_address(env, physical, prot, address, rw); | |
80 | + if (!(env->hflags & MIPS_HFLAG_ERL)) { | |
81 | +#ifdef MIPS_USES_R4K_TLB | |
82 | + ret = map_address(env, physical, prot, address, rw, access_type); | |
84 | 83 | #else |
85 | 84 | *physical = address + 0x40000000UL; |
86 | 85 | *prot = PAGE_READ | PAGE_WRITE; |
... | ... | @@ -101,8 +100,8 @@ int get_physical_address (CPUState *env, target_ulong *physical, int *prot, |
101 | 100 | *prot = PAGE_READ | PAGE_WRITE; |
102 | 101 | } else if (address < 0xE0000000UL) { |
103 | 102 | /* kseg2 */ |
104 | -#if MIPS_USES_4K_TLB | |
105 | - ret = map_address(env, physical, prot, address, rw); | |
103 | +#ifdef MIPS_USES_R4K_TLB | |
104 | + ret = map_address(env, physical, prot, address, rw, access_type); | |
106 | 105 | #else |
107 | 106 | *physical = address; |
108 | 107 | *prot = PAGE_READ | PAGE_WRITE; |
... | ... | @@ -111,8 +110,8 @@ int get_physical_address (CPUState *env, target_ulong *physical, int *prot, |
111 | 110 | /* kseg3 */ |
112 | 111 | /* XXX: check supervisor mode */ |
113 | 112 | /* XXX: debug segment is not emulated */ |
114 | -#if MIPS_USES_4K_TLB | |
115 | - ret = map_address(env, physical, prot, address, rw); | |
113 | +#ifdef MIPS_USES_R4K_TLB | |
114 | + ret = map_address(env, physical, prot, address, rw, access_type); | |
116 | 115 | #else |
117 | 116 | *physical = address; |
118 | 117 | *prot = PAGE_READ | PAGE_WRITE; |
... | ... | @@ -332,7 +331,7 @@ void do_interrupt (CPUState *env) |
332 | 331 | pc = 0xBFC00480; |
333 | 332 | break; |
334 | 333 | case EXCP_RESET: |
335 | -#if defined (MIPS_USES_R4K_TLB) | |
334 | +#ifdef MIPS_USES_R4K_TLB | |
336 | 335 | env->CP0_random = MIPS_TLB_NB - 1; |
337 | 336 | #endif |
338 | 337 | env->CP0_Wired = 0; | ... | ... |