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:
parent
0c021c1fd2
commit
24e60305c5
@ -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, " ");
|
||||||
|
Loading…
Reference in New Issue
Block a user