From c43ad8eb1e91da3406b76c24f2711729320e03d8 Mon Sep 17 00:00:00 2001 From: Ben Elliston Date: Thu, 15 Feb 2001 21:14:40 +0000 Subject: * profiling bug fixes. 2001-02-09 Ben Elliston * (profile_print_pc): Write header out in target byte order. 2001-02-09 Ben Elliston * sim-profile.c (profile_pc_init): Correct bug in loop logic when adjusting the pc shift value. --- sim/common/ChangeLog | 9 +++++++++ sim/common/sim-profile.c | 10 ++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) (limited to 'sim/common') diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index 7f1fadf..35830a9 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,3 +1,12 @@ +2001-02-09 Ben Elliston + + * (profile_print_pc): Write header out in target byte order. + +2001-02-09 Ben Elliston + + * sim-profile.c (profile_pc_init): Correct bug in loop logic when + adjusting the pc shift value. + 2001-01-12 Chris Demetriou * aclocal.m4 (SIM_AC_OPTION_SCACHE): Properly handle the case diff --git a/sim/common/sim-profile.c b/sim/common/sim-profile.c index 1ac148d..20d7a54 100644 --- a/sim/common/sim-profile.c +++ b/sim/common/sim-profile.c @@ -1,5 +1,5 @@ /* Default profiling support. - Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc. Contributed by Cygnus Support. This file is part of GDB, the GNU debugger. @@ -564,7 +564,7 @@ profile_pc_init (SIM_DESC sd) + PROFILE_PC_NR_BUCKETS (data) - 1) / PROFILE_PC_NR_BUCKETS (data)); PROFILE_PC_SHIFT (data) = 0; - while (bucket_size < PROFILE_PC_BUCKET_SIZE (data)) + while (bucket_size > PROFILE_PC_BUCKET_SIZE (data)) { PROFILE_PC_SHIFT (data) += 1; } @@ -684,6 +684,12 @@ profile_print_pc (sim_cpu *cpu, int verbose) } /* size of sample buffer (+ header) */ header[2] = PROFILE_PC_NR_BUCKETS (profile) * 2 + sizeof (header); + + /* Header must be written out in target byte order. */ + H2T (header[0]); + H2T (header[1]); + H2T (header[2]); + ok = fwrite (&header, sizeof (header), 1, pf); for (loop = 0; ok && (loop < PROFILE_PC_NR_BUCKETS (profile)); -- cgit v1.1