aboutsummaryrefslogtreecommitdiff
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
commite612a1f7256bb3546cf3e9ae6cad3997c4153663 (patch)
tree068052193e653b300fdb37ce41e0be62f067aa81
parent0087375ec85879b69cdb039298ac51c740f11fcb (diff)
downloadqemu-e612a1f7256bb3546cf3e9ae6cad3997c4153663.zip
qemu-e612a1f7256bb3546cf3e9ae6cad3997c4153663.tar.gz
qemu-e612a1f7256bb3546cf3e9ae6cad3997c4153663.tar.bz2
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>
-rw-r--r--disas.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/disas.c b/disas.c
index 37f7433..6ed31e3 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;
}