summaryrefslogtreecommitdiff
path: root/target-mips/helper.c
diff options
context:
space:
mode:
authorAurelien Jarno <aurelien@aurel32.net>2010-02-06 17:02:45 +0100
committerAurelien Jarno <aurelien@aurel32.net>2010-02-06 17:23:33 +0100
commitc36bbb28ad62b4b1f494df0b199432d8c79876db (patch)
tree5c58e047685761144079d31456142ddf9adc057f /target-mips/helper.c
parent3f26c1227e3b08010f2a65379cecf4cb4b5933fa (diff)
downloadqemu-c36bbb28ad62b4b1f494df0b199432d8c79876db.tar.gz
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.c8
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