diff options
author | Aurelien Jarno <aurelien@aurel32.net> | 2010-02-06 17:02:45 +0100 |
---|---|---|
committer | Aurelien Jarno <aurelien@aurel32.net> | 2010-02-06 17:23:33 +0100 |
commit | c36bbb28ad62b4b1f494df0b199432d8c79876db (patch) | |
tree | 5c58e047685761144079d31456142ddf9adc057f /target-mips/helper.c | |
parent | 3f26c1227e3b08010f2a65379cecf4cb4b5933fa (diff) |
target-mips: don't call cpu_loop_exit() from helper.c
In helper.c AREG0 may not correspond do env, so it's not possible to
call cpu_loop_exit() here. Call it from op_helper.c instead.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Diffstat (limited to 'target-mips/helper.c')
-rw-r--r-- | target-mips/helper.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/target-mips/helper.c b/target-mips/helper.c index 903987bb83..a3f099f04b 100644 --- a/target-mips/helper.c +++ b/target-mips/helper.c @@ -311,7 +311,7 @@ int cpu_mips_handle_mmu_fault (CPUState *env, target_ulong address, int rw, } #if !defined(CONFIG_USER_ONLY) -target_phys_addr_t do_translate_address(CPUState *env, target_ulong address, int rw) +target_phys_addr_t cpu_mips_translate_address(CPUState *env, target_ulong address, int rw) { target_phys_addr_t physical; int prot; @@ -326,10 +326,10 @@ target_phys_addr_t do_translate_address(CPUState *env, target_ulong address, int address, rw, access_type); if (ret != TLBRET_MATCH) { raise_mmu_exception(env, address, rw, ret); - cpu_loop_exit(); + return -1LL; + } else { + return physical; } - - return physical; } #endif |