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.
This commit is contained in:
Ulrich Drepper 2000-10-25 20:29:30 +00:00
parent fb9c497482
commit 6a39d02719
2 changed files with 12 additions and 1 deletions

View File

@ -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> 2000-10-25 Andreas Jaeger <aj@suse.de>
* sysdeps/generic/dl-cache.h (CACHEMAGIC_VERSION_NEW): Correct string. * sysdeps/generic/dl-cache.h (CACHEMAGIC_VERSION_NEW): Correct string.

View File

@ -23,5 +23,10 @@
static void static void
profil_counter (int signr, int code, struct sigcontext *scp) 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));
} }