* profiling bug fixes.
authorBen Elliston <bje@au.ibm.com>
Thu, 15 Feb 2001 21:14:40 +0000 (21:14 +0000)
committerBen Elliston <bje@au.ibm.com>
Thu, 15 Feb 2001 21:14:40 +0000 (21:14 +0000)
2001-02-09  Ben Elliston  <bje@redhat.com>

* (profile_print_pc): Write header out in target byte order.

2001-02-09  Ben Elliston  <bje@redhat.com>

* sim-profile.c (profile_pc_init): Correct bug in loop logic when
adjusting the pc shift value.

sim/common/ChangeLog
sim/common/sim-profile.c

index 7f1fadfb81a5c5f0508bfba335ba22e53e77de82..35830a9e5a8e5152dde3c1e968182aba26d87070 100644 (file)
@@ -1,3 +1,12 @@
+2001-02-09  Ben Elliston  <bje@redhat.com>
+
+       * (profile_print_pc): Write header out in target byte order.
+
+2001-02-09  Ben Elliston  <bje@redhat.com>
+
+       * sim-profile.c (profile_pc_init): Correct bug in loop logic when
+       adjusting the pc shift value.
+
 2001-01-12  Chris Demetriou  <cgd@sibyte.com>
 
        * aclocal.m4 (SIM_AC_OPTION_SCACHE): Properly handle the case
index 1ac148d1a9bec94ec14c1b201b512290143652d9..20d7a541f31f54dc5e7e508b0f4ee1d6dfa03da8 100644 (file)
@@ -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));