sim: watch: fix pc watchpoints on little endian host systems

My change 1ac72f0659 ("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:
Mike Frysinger
2021-01-13 01:21:22 -05:00
parent 4180301e81
commit 62fe7512a7
4 changed files with 14 additions and 5 deletions

View File

@@ -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,