[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] pass env to raise_exception if called outside of op
From: |
Igor V. Kovalenko |
Subject: |
[Qemu-devel] [PATCH] pass env to raise_exception if called outside of op_helper code |
Date: |
Sun, 03 Jan 2010 15:09:27 +0300 |
User-agent: |
StGit/0.15 |
From: Igor V. Kovalenko <address@hidden>
- this fixes stepping with gdb, where do_unassigned_access
may be called from gdb handler, outside of generated code
Signed-off-by: Igor V. Kovalenko <address@hidden>
---
target-sparc/op_helper.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/target-sparc/op_helper.c b/target-sparc/op_helper.c
index 4e0a0e3..bd01a5e 100644
--- a/target-sparc/op_helper.c
+++ b/target-sparc/op_helper.c
@@ -3686,21 +3686,24 @@ void do_unassigned_access(target_phys_addr_t addr, int
is_write, int is_exec,
void do_unassigned_access(target_phys_addr_t addr, int is_write, int is_exec,
int is_asi, int size)
{
-#ifdef DEBUG_UNASSIGNED
CPUState *saved_env;
/* XXX: hack to restore env in all cases, even if not called from
generated code */
saved_env = env;
env = cpu_single_env;
+
+#ifdef DEBUG_UNASSIGNED
printf("Unassigned mem access to " TARGET_FMT_plx " from " TARGET_FMT_lx
"\n", addr, env->pc);
- env = saved_env;
#endif
+
if (is_exec)
raise_exception(TT_CODE_ACCESS);
else
raise_exception(TT_DATA_ACCESS);
+
+ env = saved_env;
}
#endif
- [Qemu-devel] [PATCH] pass env to raise_exception if called outside of op_helper code,
Igor V. Kovalenko <=