aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarf2out.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2006-12-23 17:18:38 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2006-12-23 17:18:38 +0000
commitea049a41992eb3d97ab7da175f0a98fbbdf68f35 (patch)
treeae542fabe6398cb66c6beaeff640f2e49a7578a6 /gcc/dwarf2out.c
parent3c1dd4a3847fbfc884364df5909985f4fdfba1f2 (diff)
downloadgcc-ea049a41992eb3d97ab7da175f0a98fbbdf68f35.zip
gcc-ea049a41992eb3d97ab7da175f0a98fbbdf68f35.tar.gz
gcc-ea049a41992eb3d97ab7da175f0a98fbbdf68f35.tar.bz2
dwarf2out.c (dbx_reg_number): Do leaf register remapping only if the function is leaf.
* dwarf2out.c (dbx_reg_number): Do leaf register remapping only if the function is leaf. (multiple_reg_loc_descriptor): Likewise. From-SVN: r120170
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r--gcc/dwarf2out.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index a9f6308..54e2c33 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -8611,13 +8611,12 @@ dbx_reg_number (rtx rtl)
gcc_assert (regno < FIRST_PSEUDO_REGISTER);
#ifdef LEAF_REG_REMAP
- {
- int leaf_reg;
-
- leaf_reg = LEAF_REG_REMAP (regno);
- if (leaf_reg != -1)
- regno = (unsigned) leaf_reg;
- }
+ if (current_function_uses_only_leaf_regs)
+ {
+ int leaf_reg = LEAF_REG_REMAP (regno);
+ if (leaf_reg != -1)
+ regno = (unsigned) leaf_reg;
+ }
#endif
return DBX_REGISTER_NUMBER (regno);
@@ -8686,13 +8685,12 @@ multiple_reg_loc_descriptor (rtx rtl, rtx regs)
reg = REGNO (rtl);
#ifdef LEAF_REG_REMAP
- {
- int leaf_reg;
-
- leaf_reg = LEAF_REG_REMAP (reg);
- if (leaf_reg != -1)
- reg = (unsigned) leaf_reg;
- }
+ if (current_function_uses_only_leaf_regs)
+ {
+ int leaf_reg = LEAF_REG_REMAP (reg);
+ if (leaf_reg != -1)
+ reg = (unsigned) leaf_reg;
+ }
#endif
gcc_assert ((unsigned) DBX_REGISTER_NUMBER (reg) == dbx_reg_number (rtl));
nregs = hard_regno_nregs[REGNO (rtl)][GET_MODE (rtl)];