diff options
author | Chris Demetriou <cgd@broadcom.com> | 2003-03-14 15:53:48 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2003-03-14 15:53:48 +0000 |
commit | a0a89ed0afd227148e44cade7c4cf2220d358461 (patch) | |
tree | 143a87d994e2c1187f3241f5519f562df6bcd787 /gcc | |
parent | 8d3f82aa3ae7dc4a11f94bd191e56a63faa06ae8 (diff) | |
download | gcc-a0a89ed0afd227148e44cade7c4cf2220d358461.zip gcc-a0a89ed0afd227148e44cade7c4cf2220d358461.tar.gz gcc-a0a89ed0afd227148e44cade7c4cf2220d358461.tar.bz2 |
mips.h (FUNCTION_PROFILER): _mcount() doesn't pop 2 words in new abis.
* config/mips/mips.h (FUNCTION_PROFILER): _mcount() doesn't pop 2
words in new abis.
From-SVN: r64364
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/mips/mips.h | 15 |
2 files changed, 14 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3069374..75a3131 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-03-14 Chris Demetriou <cgd@broadcom.com>, Alexandre Oliva <aoliva@redhat.com> + + * config/mips/mips.h (FUNCTION_PROFILER): _mcount() doesn't pop 2 + words in new abis. + 2003-03-14 Eric Botcazou <ebotcazou@libertysurf.fr> PR optimization/8396 diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 2064ace..9c6fefd 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -2921,12 +2921,15 @@ typedef struct mips_args { 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, \ - "\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); \ + if (mips_abi != ABI_N32 && mips_abi != ABI_64) \ + { \ + 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, "\tjal\t_mcount\n"); \ fprintf (FILE, "\t.set\tat\n"); \ } |