From 0617ed52b36ac1c5e3841880ce17214e578f22aa Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Sat, 2 Feb 2002 03:54:39 +0000 Subject: [PATCH] 2002-02-01 Eric Christopher From Daniel Jacobowitz * 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 --- gcc/ChangeLog | 9 ++++++++- gcc/config/mips/linux.h | 6 ++++++ gcc/config/mips/mips.h | 4 +--- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4086e1d2ff9..5279c567851 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2002-02-01 Eric Christopher + + From Daniel Jacobowitz + * 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 * 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 70901e79e77..7d4fc9a3220 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 2471cfc5da1..64ddf58e715 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"); \ } -- 2.30.2