Add unwind information to mips epilogues

Submitted by Bernd Schmidt on Sept. 7, 2011, 3:45 p.m.

Details

Message ID 4E67919F.3090204@codesourcery.com
State New
Headers show

Commit Message

Bernd Schmidt Sept. 7, 2011, 3:45 p.m.
Testing with the shrink-wrapping patch added reveals a problem with the
mips16 "save" insn: sometimes we store registers that shouldn't be
considered saved registers; we have to clear RTX_FRAME_RELATED_P for
these. Testing in progress with mips-elf, "ips16/arch=mips32r2/abi=32"
and some other multilibs. Ok?


Bernd
* config/mips/mips.c (mips16e_build_save_restore): Clear
	RTX_FRAME_RELATED_P for argument stores stolen from the first
	block.

Patch hide | download patch | download mbox

Index: gcc/config/mips/mips.c
===================================================================
--- gcc/config/mips/mips.c	(revision 178135)
+++ gcc/config/mips/mips.c	(working copy)
@@ -8448,6 +8456,7 @@  mips16e_build_save_restore (bool restore
       offset = top_offset + i * UNITS_PER_WORD;
       set = mips16e_save_restore_reg (restore_p, offset, GP_ARG_FIRST + i);
       XVECEXP (pattern, 0, n++) = set;
+      RTX_FRAME_RELATED_P (set) = 0;
     }
 
   /* Then fill in the other register moves.  */