On Thu, Feb 07, 2013 at 02:38:18PM -0500, David Miller wrote:
> The fix for this is trivial, just a missing leaf renumbering in dwarf2out.c:
>
> diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
> index 06cfb18..765d5c5 100644
> --- a/gcc/dwarf2out.c
> +++ b/gcc/dwarf2out.c
> @@ -10864,7 +10864,16 @@ based_loc_descr (rtx reg, HOST_WIDE_INT offset,
> }
> }
>
> - regno = DWARF_FRAME_REGNUM (REGNO (reg));
> + regno = REGNO (reg);
> +#ifdef LEAF_REG_REMAP
> + if (crtl->uses_only_leaf_regs)
> + {
> + int leaf_reg = LEAF_REG_REMAP (regno);
> + if (leaf_reg != -1)
> + regno = (unsigned) leaf_reg;
> + }
> +#endif
> + regno = DWARF_FRAME_REGNUM (regno);
>
> if (!optimize && fde
> && (fde->drap_reg == regno || fde->vdrap_reg == regno))
This and earlier patch are ok, if it bootstraps/regtests fine, and suitable
ChangeLog entry is provided.
Running gdb testsuite before and after wouldn't hurt though.
Jakub