* profile/profile.h (mcount): Use __builtin_return_address
rather than __asm statements. * profile/Makefile.in: Remove special rule for mcount.o Specify dependencies for mcount.o profil.o gmon.o.
This commit is contained in:
parent
7729cf524f
commit
dcbe33d83a
|
@ -1,3 +1,10 @@
|
||||||
|
2003-03-16 Danny Smith <dannysmith@users.sourceforge.net>
|
||||||
|
|
||||||
|
* profile/profile.h (mcount): Use __builtin_return_address
|
||||||
|
rather than inline __asm statements.
|
||||||
|
* profile/Makefile.in: Remove special rule for mcount.o
|
||||||
|
Specify dependencies for mcount.o profil.o gmon.o.
|
||||||
|
|
||||||
2003-03-10 Danny Smith <dannysmith@users.sourceforge.net>
|
2003-03-10 Danny Smith <dannysmith@users.sourceforge.net>
|
||||||
|
|
||||||
* include/stdlib.h (qsort): Remove const from first parm.
|
* include/stdlib.h (qsort): Remove const from first parm.
|
||||||
|
|
|
@ -89,10 +89,12 @@ gcrt1.o: gcrt0.c
|
||||||
gcrt2.o: gcrt0.c
|
gcrt2.o: gcrt0.c
|
||||||
$(CC) -D__MSVCRT__ -c -o $@ $(CPPFLAGS) $(CFLAGS) $?
|
$(CC) -D__MSVCRT__ -c -o $@ $(CPPFLAGS) $(CFLAGS) $?
|
||||||
|
|
||||||
#FIXME: Optimizing at higher than -O1 tweaks a bug in gcc 3.2.2
|
#
|
||||||
# and earlier
|
# Dependancies
|
||||||
mcount.o: mcount.c
|
#
|
||||||
$(CC) -D__MSVCRT__ -c -o $@ $(CPPFLAGS) ${filter-out -O%,$(ALL_CFLAGS)} -O1 $?
|
gmon.o: gmon.c gmon.h profile.h profil.h
|
||||||
|
mcount.o: mcount.c gmon.h profile.h
|
||||||
|
profil.o: profil.c profil.h
|
||||||
|
|
||||||
Makefile: Makefile.in config.status configure
|
Makefile: Makefile.in config.status configure
|
||||||
$(SHELL) config.status
|
$(SHELL) config.status
|
||||||
|
@ -137,3 +139,4 @@ dist:
|
||||||
@for i in $(DISTFILES); do\
|
@for i in $(DISTFILES); do\
|
||||||
cp -p $(srcdir)/$$i $(distdir)/profile/$$i ; \
|
cp -p $(srcdir)/$$i $(distdir)/profile/$$i ; \
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
@ -46,18 +46,20 @@
|
||||||
void \
|
void \
|
||||||
mcount() \
|
mcount() \
|
||||||
{ \
|
{ \
|
||||||
int selfpc, frompcindex; \
|
u_long selfpc, frompcindex; \
|
||||||
/* \
|
/* \
|
||||||
* find the return address for mcount, \
|
* find the return address for mcount, \
|
||||||
* and the return address for mcount's caller. \
|
* and the return address for mcount's caller. \
|
||||||
* \
|
* \
|
||||||
* selfpc = pc pushed by mcount call \
|
* selfpc = pc pushed by mcount call \
|
||||||
*/ \
|
*/ \
|
||||||
__asm("movl 4(%%ebp),%0" : "=r" (selfpc)); \
|
/* __asm volatile ("movl 4(%%ebp),%0" : "=r" (selfpc)); */ \
|
||||||
|
selfpc = (u_long) __builtin_return_address (0); \
|
||||||
/* \
|
/* \
|
||||||
* frompcindex = pc pushed by call into self. \
|
* frompcindex = pc pushed by call into self. \
|
||||||
*/ \
|
*/ \
|
||||||
__asm("movl (%%ebp),%0;movl 4(%0),%0" : "=r" (frompcindex)); \
|
/* __asm ("movl (%%ebp),%0;movl 4(%0),%0" : "=r" (frompcindex)); */ \
|
||||||
|
frompcindex = (u_long) __builtin_return_address (1); \
|
||||||
_mcount(frompcindex, selfpc); \
|
_mcount(frompcindex, selfpc); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue