disas.c: Use address_space_read() to read memory

Currently disas.c reads physical memory using
cpu_physical_memory_read(). This effectively hard-codes
assuming that all CPUs have the same view of physical
memory. Switch to address_space_read() instead, which
lets us use the AddressSpace for the CPU we're
disassembling for.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20181122172653.3413-2-peter.maydell@linaro.org
stable-4.0
Peter Maydell 2018-12-14 13:30:49 +00:00
parent 3c8133f973
commit f2c6abc8d5
1 changed files with 4 additions and 1 deletions

View File

@ -588,7 +588,10 @@ static int
physical_read_memory(bfd_vma memaddr, bfd_byte *myaddr, int length,
struct disassemble_info *info)
{
cpu_physical_memory_read(memaddr, myaddr, length);
CPUDebug *s = container_of(info, CPUDebug, info);
address_space_read(s->cpu->as, memaddr, MEMTXATTRS_UNSPECIFIED,
myaddr, length);
return 0;
}