aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Christopher <echristo@gcc.gnu.org>2002-02-02 03:54:39 +0000
committerEric Christopher <echristo@gcc.gnu.org>2002-02-02 03:54:39 +0000
commit0617ed52b36ac1c5e3841880ce17214e578f22aa (patch)
tree2c10c426fd1b9e82dc7af1e1738ec1fb6c1fc94f
parent00181da3af1afe94c49be480bde27cb6cbb54dd4 (diff)
downloadgcc-0617ed52b36ac1c5e3841880ce17214e578f22aa.zip
gcc-0617ed52b36ac1c5e3841880ce17214e578f22aa.tar.gz
gcc-0617ed52b36ac1c5e3841880ce17214e578f22aa.tar.bz2
2002-02-01 Eric Christopher <echristo@redhat.com>
From Daniel Jacobowitz <dmj+@andrew.cmu.edu> * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling. * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine. (ASM_OUTPUT_REG_POP): Ditto. From-SVN: r49423
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/mips/linux.h6
-rw-r--r--gcc/config/mips/mips.h4
3 files changed, 15 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4086e1d..5279c56 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2002-02-01 Eric Christopher <echristo@redhat.com>
+
+ From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
+ * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
+ * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
+ (ASM_OUTPUT_REG_POP): Ditto.
+
2002-02-02 Neil Booth <neil@daikokuya.demon.co.uk>
* c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
@@ -52,7 +59,7 @@
(movqi): Likewise.
* config/stormy16/stormy16.h (PREDICATE_CODES): Add
nonimmediate_nonstack_operand.
- * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
+ * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
New.
* config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
New.
diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
index 70901e7..7d4fc9a 100644
--- a/gcc/config/mips/linux.h
+++ b/gcc/config/mips/linux.h
@@ -279,3 +279,9 @@ void FN () \
/* Tell function_prologue in mips.c that we have already output the .ent/.end
pseudo-ops. */
#define FUNCTION_NAME_ALREADY_DECLARED
+
+/* The glibc _mcount stub will save $v0 for us. Don't mess with saving
+ it, since ASM_OUTPUT_REG_PUSH/ASM_OUTPUT_REG_POP do not work in the
+ presence of $gp-relative calls. */
+#undef ASM_OUTPUT_REG_PUSH
+#undef ASM_OUTPUT_REG_POP
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
index 2471cfc..64ddf58 100644
--- a/gcc/config/mips/mips.h
+++ b/gcc/config/mips/mips.h
@@ -2869,18 +2869,16 @@ typedef struct mips_args {
{ \
if (TARGET_MIPS16) \
sorry ("mips16 function profiling"); \
- fprintf (FILE, "\t.set\tnoreorder\n"); \
fprintf (FILE, "\t.set\tnoat\n"); \
fprintf (FILE, "\tmove\t%s,%s\t\t# save current return address\n", \
reg_names[GP_REG_FIRST + 1], reg_names[GP_REG_FIRST + 31]); \
- fprintf (FILE, "\tjal\t_mcount\n"); \
fprintf (FILE, \
"\t%s\t%s,%s,%d\t\t# _mcount pops 2 words from stack\n", \
TARGET_64BIT ? "dsubu" : "subu", \
reg_names[STACK_POINTER_REGNUM], \
reg_names[STACK_POINTER_REGNUM], \
Pmode == DImode ? 16 : 8); \
- fprintf (FILE, "\t.set\treorder\n"); \
+ fprintf (FILE, "\tjal\t_mcount\n"); \
fprintf (FILE, "\t.set\tat\n"); \
}