Commit 1de2bc2a by Olivier Hainque Committed by Olivier Hainque

iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to match what the system unwinder expects.

	* config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
	match what the system unwinder expects.
	* config/mips/mips.c (mips_frame_set): If we're saving the return
	address register and the dwarf return address column number differs
	from the hard register number, adjust the note reg to refer to the
	former.

From-SVN: r97617
parent df7cc9b5
2005-04-05 Olivier Hainque <hainque@adacore.com>
* config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
match what the system unwinder expects.
* config/mips/mips.c (mips_frame_set): If we're saving the return
address register and the dwarf return address column number differs
from the hard register number, adjust the note reg to refer to the
former.
2004-04-05 Richard Sandiford <rsandifo@redhat.com> 2004-04-05 Richard Sandiford <rsandifo@redhat.com>
* config/mn10300/mn10300-protos.h (mn10300_override_options): Declare. * config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
......
...@@ -38,6 +38,11 @@ Boston, MA 02111-1307, USA. */ ...@@ -38,6 +38,11 @@ Boston, MA 02111-1307, USA. */
compiling -g. This guarantees that we can unwind the stack. */ compiling -g. This guarantees that we can unwind the stack. */
#define DWARF2_FRAME_INFO 1 #define DWARF2_FRAME_INFO 1
/* The system unwinder in libexc requires a specific dwarf return address
column to work. */
#undef DWARF_FRAME_RETURN_COLUMN
#define DWARF_FRAME_RETURN_COLUMN (FP_REG_LAST + 1)
#undef MACHINE_TYPE #undef MACHINE_TYPE
#define MACHINE_TYPE "SGI running IRIX 6.x" #define MACHINE_TYPE "SGI running IRIX 6.x"
......
...@@ -6276,8 +6276,18 @@ mips_set_frame_expr (rtx frame_pattern) ...@@ -6276,8 +6276,18 @@ mips_set_frame_expr (rtx frame_pattern)
static rtx static rtx
mips_frame_set (rtx mem, rtx reg) mips_frame_set (rtx mem, rtx reg)
{ {
rtx set = gen_rtx_SET (VOIDmode, mem, reg); rtx set;
/* If we're saving the return address register and the dwarf return
address column differs from the hard register number, adjust the
note reg to refer to the former. */
if (REGNO (reg) == GP_REG_FIRST + 31
&& DWARF_FRAME_RETURN_COLUMN != GP_REG_FIRST + 31)
reg = gen_rtx_REG (GET_MODE (reg), DWARF_FRAME_RETURN_COLUMN);
set = gen_rtx_SET (VOIDmode, mem, reg);
RTX_FRAME_RELATED_P (set) = 1; RTX_FRAME_RELATED_P (set) = 1;
return set; return set;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment