aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>2010-03-22 20:12:34 +0000
committerRainer Orth <ro@gcc.gnu.org>2010-03-22 20:12:34 +0000
commit7f5441df096d75d4e293d7e2062c2b962924dbdd (patch)
tree6df365bdd709eb2f8ab6b85b6a2b205669849b6d
parentd4f3924a905135bbcdfab16fe704941ee3879e57 (diff)
downloadgcc-7f5441df096d75d4e293d7e2062c2b962924dbdd.zip
gcc-7f5441df096d75d4e293d7e2062c2b962924dbdd.tar.gz
gcc-7f5441df096d75d4e293d7e2062c2b962924dbdd.tar.bz2
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
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/i386/gmon-sol2.c2
-rw-r--r--gcc/config/i386/i386.c2
-rw-r--r--libgcc/ChangeLog10
-rw-r--r--libgcc/config/i386/t-sol210
5 files changed, 25 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 278d03f..bfca217 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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>
diff --git a/gcc/config/i386/gmon-sol2.c b/gcc/config/i386/gmon-sol2.c
index d207621..e0923a0 100644
--- a/gcc/config/i386/gmon-sol2.c
+++ b/gcc/config/i386/gmon-sol2.c
@@ -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"
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 9cc6661..5620765 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -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)
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index ec9d8d2..db348ba 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -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
diff --git a/libgcc/config/i386/t-sol2 b/libgcc/config/i386/t-sol2
index 24b7c7c..351d7fb 100644
--- a/libgcc/config/i386/t-sol2
+++ b/libgcc/config/i386/t-sol2
@@ -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++