From 499f32e8fa6c398878d8c52757ac87f444e18886 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Thu, 7 Feb 2013 23:19:27 +0000 Subject: Fix variable tracking for leaf functions on sparc. * dwarf2out.c (based_loc_descr): Perform leaf register remapping on 'reg'. * var-tracking.c (vt_add_function_parameter): Test the presence of HAVE_window_save properly and do not remap argument registers when we have a leaf function. From-SVN: r195869 --- gcc/dwarf2out.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'gcc/dwarf2out.c') diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 13c31ad..4e75407 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -10865,7 +10865,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)) -- cgit v1.1