about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2002-08-21 07:57:48 +0000
committerAndreas Jaeger <aj@suse.de>2002-08-21 07:57:48 +0000
commit6dbdc56c3d1b52090fdff1a41ea6edbb55a5b8ea (patch)
treed0e918ebfec36c763a44123ba455696e7b04ff81
parent0bbade1c7a27a55b8cccf668dd750ac5d1d75921 (diff)
downloadglibc-6dbdc56c3d1b52090fdff1a41ea6edbb55a5b8ea.tar.gz
glibc-6dbdc56c3d1b52090fdff1a41ea6edbb55a5b8ea.tar.xz
glibc-6dbdc56c3d1b52090fdff1a41ea6edbb55a5b8ea.zip
Update.
2002-08-21  Andreas Jaeger  <aj@suse.de>

	* sysdeps/x86_64/sysdep.h (CALL_MCOUNT): Fix it.

	* sysdeps/x86_64/Makefile (sysdep_routines): Add _mcount.

	* sysdeps/x86_64/machine-gmon.h: New.
	* sysdeps/x86_64/_mcount.S: New.
-rw-r--r--ChangeLog9
-rw-r--r--sysdeps/x86_64/Makefile4
-rw-r--r--sysdeps/x86_64/sysdep.h5
3 files changed, 15 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 49769e4b7b..98837c9554 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2002-08-21  Andreas Jaeger  <aj@suse.de>
+
+	* sysdeps/x86_64/sysdep.h (CALL_MCOUNT): Fix it.
+
+	* sysdeps/x86_64/Makefile (sysdep_routines): Add _mcount.
+
+	* sysdeps/x86_64/machine-gmon.h: New.
+	* sysdeps/x86_64/_mcount.S: New.
+
 2002-08-20  Ulrich Drepper  <drepper@redhat.com>
 
 	* elf/rtld.c (_dl_start): Pass zero to TLS_INIT_TP.  Set
diff --git a/sysdeps/x86_64/Makefile b/sysdeps/x86_64/Makefile
index ad2a0cac06..3b8328ad2a 100644
--- a/sysdeps/x86_64/Makefile
+++ b/sysdeps/x86_64/Makefile
@@ -5,3 +5,7 @@ ifeq ($(subdir),csu)
 sysdep_routines += hp-timing
 static-only-routines += hp-timing
 endif
+
+ifeq ($(subdir),gmon)
+sysdep_routines += _mcount
+endif
diff --git a/sysdeps/x86_64/sysdep.h b/sysdeps/x86_64/sysdep.h
index 2a2ad41e52..a9c0d25f11 100644
--- a/sysdeps/x86_64/sysdep.h
+++ b/sysdeps/x86_64/sysdep.h
@@ -1,5 +1,5 @@
 /* Assembler macros for x86-64.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -58,11 +58,10 @@
 
 /* If compiled for profiling, call `mcount' at the start of each function.  */
 #ifdef	PROF
-/* XXX this does not work yet!  */
 /* The mcount code relies on a normal frame pointer being on the stack
    to locate our caller, so push one just for its benefit.  */
 #define CALL_MCOUNT \
-  pushl %ebp; movl %esp, %ebp; call JUMPTARGET(mcount); popl %ebp;
+  pushq %rbp; movq %rsp, %rbp; call JUMPTARGET(mcount); popq %rbp;
 #else
 #define CALL_MCOUNT		/* Do nothing.  */
 #endif