mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-18 00:32:30 +08:00
sim: profile: fix bucketing with 64-bit targets
When the target's PC is 64-bits, this shift expands into a range of 8 * 8 - 1 which doesn't work with 32-bit constants. Force it to be a 64-bit value all the time and let the compiler truncate it.
This commit is contained in:
@ -1,3 +1,7 @@
|
||||
2021-01-30 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* sim-profile.c (profile_pc_init): Change 1 in shifts to 1ULL.
|
||||
|
||||
2021-01-30 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* sim-hw.c (merge_device_file): Replace fgets with getline.
|
||||
|
@ -554,7 +554,7 @@ profile_pc_init (SIM_DESC sd)
|
||||
{
|
||||
/* nr_buckets = (full-address-range / 2) / (bucket_size / 2) */
|
||||
PROFILE_PC_NR_BUCKETS (data) =
|
||||
((1 << sizeof (sim_cia) * (8 - 1))
|
||||
((1ULL << sizeof (sim_cia) * (8 - 1))
|
||||
/ (PROFILE_PC_BUCKET_SIZE (data) / 2));
|
||||
}
|
||||
else
|
||||
@ -573,7 +573,7 @@ profile_pc_init (SIM_DESC sd)
|
||||
{
|
||||
if (PROFILE_PC_END (data) == 0)
|
||||
/* bucket_size = (full-address-range / 2) / (nr_buckets / 2) */
|
||||
bucket_size = ((1 << ((sizeof (sim_cia) * 8) - 1))
|
||||
bucket_size = ((1ULL << ((sizeof (sim_cia) * 8) - 1))
|
||||
/ (PROFILE_PC_NR_BUCKETS (data) / 2));
|
||||
else
|
||||
bucket_size = ((PROFILE_PC_END (data)
|
||||
|
Reference in New Issue
Block a user