re PR target/38085 (gcc -m64 -pg generates invalid assembler code on Solaris 10/x86)

gcc:
	PR target/38085
	* config/i386/i386.c (x86_function_profiler)
	[!NO_PROFILE_COUNTERS]: Fix typo.
	* config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
	instead of callq.

	libgcc:
	PR target/38085
	* config/i386/t-sol2 ($(T)gmon.o): Use CFLAGS instead of
	MULTILIB_CFLAGS.
	($(T)gcrt1.o): Likewise.
	($(T)crt1.o): Likewise.
	($(T)crti.o): Likewise.
	($(T)crtn.o): Likewise.

From-SVN: r157648
This commit is contained in:
Rainer Orth 2010-03-22 20:12:34 +00:00 committed by Rainer Orth
parent d4f3924a90
commit 7f5441df09
5 changed files with 25 additions and 7 deletions

View File

@ -1,3 +1,11 @@
2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR target/38085
* config/i386/i386.c (x86_function_profiler)
[!NO_PROFILE_COUNTERS]: Fix typo.
* config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
instead of callq.
2010-03-22 Janis Johnson <janis187@us.ibm.com>
Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>

View File

@ -268,7 +268,7 @@ asm(".globl _mcount\n"
FROMPCINDEX (via the frame pointer. */
"\tmovq\t0x38(%rsp),%rdi\n"
"\tmovq\t0x8(%rbp),%rsi\n"
"\tcallq\tinternal_mcount\n"
"\tcall\tinternal_mcount\n"
/* Restore the saved registers. */
"\tmovq\t0x30(%rsp),%r9\n"
"\tmovq\t0x28(%rsp),%r8\n"

View File

@ -26369,7 +26369,7 @@ x86_function_profiler (FILE *file, int labelno ATTRIBUTE_UNUSED)
if (TARGET_64BIT)
{
#ifndef NO_PROFILE_COUNTERS
fprintf (file, "\tleaq\t" LPREFIX "P%d@(%%rip),%%r11\n", labelno);
fprintf (file, "\tleaq\t" LPREFIX "P%d(%%rip),%%r11\n", labelno);
#endif
if (DEFAULT_ABI == SYSV_ABI && flag_pic)

View File

@ -1,3 +1,13 @@
2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR target/38085
* config/i386/t-sol2 ($(T)gmon.o): Use CFLAGS instead of
MULTILIB_CFLAGS.
($(T)gcrt1.o): Likewise.
($(T)crt1.o): Likewise.
($(T)crti.o): Likewise.
($(T)crtn.o): Likewise.
2010-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR other/42980

View File

@ -1,6 +1,6 @@
# gmon build rule:
$(T)gmon.o: $(gcc_srcdir)/config/i386/gmon-sol2.c $(GCC_PASSES) $(CONFIG_H)
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) \
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(CFLAGS) \
-c $(gcc_srcdir)/config/i386/gmon-sol2.c -o $(T)gmon.o
# Assemble startup files.
@ -9,16 +9,16 @@ $(T)gmon.o: $(gcc_srcdir)/config/i386/gmon-sol2.c $(GCC_PASSES) $(CONFIG_H)
# the comments with sed. This bug may only be in the Early Access releases.
$(T)gcrt1.o: $(gcc_srcdir)/config/i386/sol2-gc1.asm $(GCC_PASSES)
sed -e '/^!/d' <$(gcc_srcdir)/config/i386/sol2-gc1.asm >gcrt1.s
$(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)gcrt1.o gcrt1.s
$(GCC_FOR_TARGET) $(CFLAGS) -c -o $(T)gcrt1.o gcrt1.s
$(T)crt1.o: $(gcc_srcdir)/config/i386/sol2-c1.asm $(GCC_PASSES)
sed -e '/^!/d' <$(gcc_srcdir)/config/i386/sol2-c1.asm >crt1.s
$(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)crt1.o crt1.s
$(GCC_FOR_TARGET) $(CFLAGS) -c -o $(T)crt1.o crt1.s
$(T)crti.o: $(gcc_srcdir)/config/i386/sol2-ci.asm $(GCC_PASSES)
sed -e '/^!/d' <$(gcc_srcdir)/config/i386/sol2-ci.asm >crti.s
$(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)crti.o crti.s
$(GCC_FOR_TARGET) $(CFLAGS) -c -o $(T)crti.o crti.s
$(T)crtn.o: $(gcc_srcdir)/config/i386/sol2-cn.asm $(GCC_PASSES)
sed -e '/^!/d' <$(gcc_srcdir)/config/i386/sol2-cn.asm >crtn.s
$(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)crtn.o crtn.s
$(GCC_FOR_TARGET) $(CFLAGS) -c -o $(T)crtn.o crtn.s
# We need to use -fPIC when we are using gcc to compile the routines in
# crtstuff.c. This is only really needed when we are going to use gcc/g++