summaryrefslogtreecommitdiff
path: root/disas.c
diff options
context:
space:
mode:
authorBlue Swirl <blauwirbel@gmail.com>2009-05-07 17:14:07 +0000
committerBlue Swirl <blauwirbel@gmail.com>2009-05-07 17:14:07 +0000
commitf3d9958a1a0633e1cad045968652397fee137845 (patch)
tree068052193e653b300fdb37ce41e0be62f067aa81 /disas.c
parent4cac90a20dc8a2ed1e1d1add5e9b47671be5e6bc (diff)
downloadqemu-f3d9958a1a0633e1cad045968652397fee137845.tar.gz
qemu-f3d9958a1a0633e1cad045968652397fee137845.tar.bz2
qemu-f3d9958a1a0633e1cad045968652397fee137845.zip
Fix disassembler memory accesses
Sparc disassembler wants to check previous addresses for some stuff and this may actually cause faults to be generated to the guest if the address is close to page start, because of the function used for the memory access. Fix by changing ldub_code to cpu_memory_rw_debug, which doesn't trigger exceptions. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'disas.c')
-rw-r--r--disas.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/disas.c b/disas.c
index 37f7433c3b..6ed31e3b79 100644
--- a/disas.c
+++ b/disas.c
@@ -33,10 +33,7 @@ target_read_memory (bfd_vma memaddr,
int length,
struct disassemble_info *info)
{
- int i;
- for(i = 0; i < length; i++) {
- myaddr[i] = ldub_code(memaddr + i);
- }
+ cpu_memory_rw_debug(cpu_single_env, memaddr, myaddr, length, 0);
return 0;
}