monitor.c: Use ld*_p() instead of ld*_raw()

The monitor code for doing a memory_dump() was using ld*_raw() to do
target-CPU accesses out of a local buf[] array. The correct functions
for this purpose are ld*_p(), which take a host pointer, rather than
ld*_raw(), which take an integer representing a guest address and
are somewhat meaningless in softmmu configurations. Nobody noticed
because for softmmu the _raw functions are the same as ldl_p but
with some extra casts thrown in. Switch to using the correct functions
instead.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 1421334118-3287-3-git-send-email-peter.maydell@linaro.org
This commit is contained in:
Peter Maydell 2015-01-20 15:19:32 +00:00
parent 0c021c1fd2
commit 24e60305c5

View File

@ -1292,16 +1292,16 @@ static void memory_dump(Monitor *mon, int count, int format, int wsize,
switch(wsize) { switch(wsize) {
default: default:
case 1: case 1:
v = ldub_raw(buf + i); v = ldub_p(buf + i);
break; break;
case 2: case 2:
v = lduw_raw(buf + i); v = lduw_p(buf + i);
break; break;
case 4: case 4:
v = (uint32_t)ldl_raw(buf + i); v = (uint32_t)ldl_p(buf + i);
break; break;
case 8: case 8:
v = ldq_raw(buf + i); v = ldq_p(buf + i);
break; break;
} }
monitor_printf(mon, " "); monitor_printf(mon, " ");