diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-10-25 20:29:30 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-10-25 20:29:30 +0000 |
commit | 6a39d02719ff34c9f51dd3049add71086572da5a (patch) | |
tree | b8ba2075e98fd560c7e4f402e8bccd3f315aa177 | |
parent | fb9c4974822da36f0d5900163282ec85c6f0c7eb (diff) | |
download | glibc-6a39d02719ff34c9f51dd3049add71086572da5a.tar.gz glibc-6a39d02719ff34c9f51dd3049add71086572da5a.tar.xz glibc-6a39d02719ff34c9f51dd3049add71086572da5a.zip |
Update.
2000-10-25 David Mosberger <davidm@hpl.hp.com> * sysdeps/unix/sysv/linux/ia64/profil-counter.h: Multiply slot number by four to use bins of width 4 to get accurate instruction-level profiling.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/ia64/profil-counter.h | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 1163fba482..3ec6463433 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2000-10-25 David Mosberger <davidm@hpl.hp.com> + + * sysdeps/unix/sysv/linux/ia64/profil-counter.h: Multiply slot + number by four to use bins of width 4 to get accurate + instruction-level profiling. + 2000-10-25 Andreas Jaeger <aj@suse.de> * sysdeps/generic/dl-cache.h (CACHEMAGIC_VERSION_NEW): Correct string. diff --git a/sysdeps/unix/sysv/linux/ia64/profil-counter.h b/sysdeps/unix/sysv/linux/ia64/profil-counter.h index 1cc0390b8f..a3e501dd89 100644 --- a/sysdeps/unix/sysv/linux/ia64/profil-counter.h +++ b/sysdeps/unix/sysv/linux/ia64/profil-counter.h @@ -23,5 +23,10 @@ static void profil_counter (int signr, int code, struct sigcontext *scp) { - profil_count ((void *) scp->sc_ip); + unsigned long ip = scp->sc_ip & ~0X3ULL, slot = scp->sc_ip & 0x3ull; + + /* Note: Linux/ia64 encodes the slot number in bits 0 and 1. We + want to multiply the slot number by four so we can use bins of + width 4 to get accurate instruction-level profiling. */ + profil_count ((void *) (ip + 4*slot)); } |