Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 1 | Upstream-Status: Pending |
| 2 | |
| 3 | From cb9b1c041b634a4c128896e3d3eed4082608c797 Mon Sep 17 00:00:00 2001 |
| 4 | From: Khem Raj <raj.khem@gmail.com> |
| 5 | Date: Sat, 3 May 2014 19:25:17 -0700 |
| 6 | Subject: [PATCH] Revert "2013-05-21 Christian Bruel |
| 7 | <christian.bruel@st.com>" |
| 8 | |
| 9 | This reverts commit 3983036a8b6b2710c57777194f21507819a73553. |
| 10 | |
| 11 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 12 | |
| 13 | Conflicts: |
| 14 | gcc/ChangeLog |
| 15 | --- |
| 16 | gcc/ChangeLog | 219 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- |
| 17 | gcc/dwarf2out.c | 33 +++++---- |
| 18 | 2 files changed, 234 insertions(+), 18 deletions(-) |
| 19 | |
| 20 | diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c |
| 21 | index 1272326..6ac2b28 100644 |
| 22 | --- a/gcc/dwarf2out.c |
| 23 | +++ b/gcc/dwarf2out.c |
| 24 | @@ -10870,27 +10870,25 @@ static dw_loc_descr_ref |
| 25 | multiple_reg_loc_descriptor (rtx rtl, rtx regs, |
| 26 | enum var_init_status initialized) |
| 27 | { |
| 28 | - int size, i; |
| 29 | + int nregs, size, i; |
| 30 | + unsigned reg; |
| 31 | dw_loc_descr_ref loc_result = NULL; |
| 32 | |
| 33 | - /* Simple, contiguous registers. */ |
| 34 | - if (regs == NULL_RTX) |
| 35 | - { |
| 36 | - unsigned reg = REGNO (rtl); |
| 37 | - int nregs; |
| 38 | - |
| 39 | + reg = REGNO (rtl); |
| 40 | #ifdef LEAF_REG_REMAP |
| 41 | - if (crtl->uses_only_leaf_regs) |
| 42 | - { |
| 43 | - int leaf_reg = LEAF_REG_REMAP (reg); |
| 44 | - if (leaf_reg != -1) |
| 45 | - reg = (unsigned) leaf_reg; |
| 46 | - } |
| 47 | + if (crtl->uses_only_leaf_regs) |
| 48 | + { |
| 49 | + int leaf_reg = LEAF_REG_REMAP (reg); |
| 50 | + if (leaf_reg != -1) |
| 51 | + reg = (unsigned) leaf_reg; |
| 52 | + } |
| 53 | #endif |
| 54 | + gcc_assert ((unsigned) DBX_REGISTER_NUMBER (reg) == dbx_reg_number (rtl)); |
| 55 | + nregs = hard_regno_nregs[REGNO (rtl)][GET_MODE (rtl)]; |
| 56 | |
| 57 | - gcc_assert ((unsigned) DBX_REGISTER_NUMBER (reg) == dbx_reg_number (rtl)); |
| 58 | - nregs = hard_regno_nregs[REGNO (rtl)][GET_MODE (rtl)]; |
| 59 | - |
| 60 | + /* Simple, contiguous registers. */ |
| 61 | + if (regs == NULL_RTX) |
| 62 | + { |
| 63 | size = GET_MODE_SIZE (GET_MODE (rtl)) / nregs; |
| 64 | |
| 65 | loc_result = NULL; |
| 66 | @@ -10918,9 +10916,10 @@ multiple_reg_loc_descriptor (rtx rtl, rtx regs, |
| 67 | { |
| 68 | dw_loc_descr_ref t; |
| 69 | |
| 70 | - t = one_reg_loc_descriptor (dbx_reg_number (XVECEXP (regs, 0, i)), |
| 71 | + t = one_reg_loc_descriptor (REGNO (XVECEXP (regs, 0, i)), |
| 72 | VAR_INIT_STATUS_INITIALIZED); |
| 73 | add_loc_descr (&loc_result, t); |
| 74 | + size = GET_MODE_SIZE (GET_MODE (XVECEXP (regs, 0, 0))); |
| 75 | add_loc_descr_op_piece (&loc_result, size); |
| 76 | } |
| 77 | |
| 78 | -- |
| 79 | 1.9.2 |
| 80 | |