mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-04-12 14:33:06 +08:00
sim: watch: fix pc watchpoints on little endian host systems
My change 1ac72f0659d64d6a14da862242db0d841d2878d0 ("sim: convert to bfd_endian") subtly broke the watchpoint module on little endian host systems. The old code used 0 to mean "whatever the host endian is", and while that was changed to use BFD_ENDIAN_UNKNOWN, this caller was missed. Since its API used an int instead of an enum, the coercion from 0 to the BFD endian enum was silently missed, and 0 happens to be BFD_ENDIAN_BIG. Instead of restoring the old logic by passing in BFD_ENDIAN_UNKNOWN, we know the right host endian at compile time, so use that directly.
This commit is contained in:
parent
4180301e81
commit
62fe7512a7
@ -1,3 +1,12 @@
|
||||
2021-01-13 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* sim-events.c (sim_events_watch_sim): Change byte_order type to
|
||||
enum bfd_endian.
|
||||
(sim_events_watch_core): Likewise.
|
||||
* sim-events.h (sim_events_watch_sim, sim_events_watch_core): Likewise.
|
||||
* sim-watch.c (schedule_watchpoint): Change 0 to HOST_BYTE_ORDER in
|
||||
call to sim_events_watch_sim.
|
||||
|
||||
2021-01-12 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* sim-profile.h [!WITH_PROFILE]: Rewrite to use #error.
|
||||
|
@ -613,7 +613,7 @@ sim_event *
|
||||
sim_events_watch_sim (SIM_DESC sd,
|
||||
void *host_addr,
|
||||
int nr_bytes,
|
||||
int byte_order,
|
||||
enum bfd_endian byte_order,
|
||||
int is_within,
|
||||
unsigned64 lb,
|
||||
unsigned64 ub,
|
||||
@ -692,7 +692,7 @@ sim_events_watch_core (SIM_DESC sd,
|
||||
address_word core_addr,
|
||||
unsigned core_map,
|
||||
int nr_bytes,
|
||||
int byte_order,
|
||||
enum bfd_endian byte_order,
|
||||
int is_within,
|
||||
unsigned64 lb,
|
||||
unsigned64 ub,
|
||||
|
@ -161,7 +161,7 @@ extern sim_event *sim_events_watch_sim
|
||||
(SIM_DESC sd,
|
||||
void *host_addr,
|
||||
int nr_bytes,
|
||||
int byte_order,
|
||||
enum bfd_endian byte_order,
|
||||
int is_within,
|
||||
unsigned64 lb,
|
||||
unsigned64 ub,
|
||||
@ -182,7 +182,7 @@ extern sim_event *sim_events_watch_core
|
||||
address_word core_addr,
|
||||
unsigned map,
|
||||
int nr_bytes,
|
||||
int byte_order,
|
||||
enum bfd_endian byte_order,
|
||||
int is_within,
|
||||
unsigned64 lb,
|
||||
unsigned64 ub,
|
||||
|
@ -173,7 +173,7 @@ schedule_watchpoint (SIM_DESC sd,
|
||||
point->event = sim_events_watch_sim (sd,
|
||||
watch->pc,
|
||||
watch->sizeof_pc,
|
||||
0/* host-endian */,
|
||||
HOST_BYTE_ORDER,
|
||||
point->is_within,
|
||||
point->arg0, point->arg1,
|
||||
/* PC in arg0..arg1 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user