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; | ... | ... |