diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2006-12-23 17:18:38 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2006-12-23 17:18:38 +0000 |
commit | ea049a41992eb3d97ab7da175f0a98fbbdf68f35 (patch) | |
tree | ae542fabe6398cb66c6beaeff640f2e49a7578a6 | |
parent | 3c1dd4a3847fbfc884364df5909985f4fdfba1f2 (diff) | |
download | gcc-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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 26 |
2 files changed, 18 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 56ca96d..91255aa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-12-23 Eric Botcazou <ebotcazou@adacore.com> + + * dwarf2out.c (dbx_reg_number): Do leaf register remapping + only if the function is leaf. + (multiple_reg_loc_descriptor): Likewise. + 2006-12-23 Kazu Hirata <kazu@codesourcery.com> * rtl.h (NOTE_EXPECTED_VALUE): Remove. 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)]; |