OSDN Git Service

2003-11-21 Daniel Berlin <dberlin@dberlin.org>
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 Nov 2003 21:18:45 +0000 (21:18 +0000)
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 Nov 2003 21:18:45 +0000 (21:18 +0000)
            David Edelsohn  <edelsohn@gnu.org>

        * dwarf2out.c (add_location_or_const_value_attribute): Add support
        for PARALLEL.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73817 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/dwarf2out.c

index 9d0e3ad..04758fb 100644 (file)
@@ -1,3 +1,9 @@
+2003-11-21  Daniel Berlin  <dberlin@dberlin.org>
+           David Edelsohn  <edelsohn@gnu.org>
+
+       * dwarf2out.c (add_location_or_const_value_attribute): Add support
+       for PARALLEL.
+
 2003-11-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 
        * config/mips/t-iris6 (CRTSTUFF_T_CFLAGS): Add -Wno-error.
index 972ad7c..78c6bdf 100644 (file)
@@ -9456,6 +9456,33 @@ add_location_or_const_value_attribute (dw_die_ref die, tree decl)
       add_AT_location_description (die, DW_AT_location, descr);
       break;
 
+    case PARALLEL:
+      {
+       rtvec par_elems = XVEC (rtl, 0);
+       int num_elem = GET_NUM_ELEM (par_elems);
+       enum machine_mode mode;
+       int i;
+
+       /* Create the first one, so we have something to add to.  */
+       descr = loc_descriptor (XEXP (RTVEC_ELT (par_elems, 0), 0));
+       mode = GET_MODE (XEXP (RTVEC_ELT (par_elems, 0), 0));
+       add_loc_descr (&descr,
+                      new_loc_descr (DW_OP_piece, GET_MODE_SIZE (mode), 0));
+       for (i = 1; i < num_elem; i++)
+         {
+           dw_loc_descr_ref temp;
+
+           temp = loc_descriptor (XEXP (RTVEC_ELT (par_elems, i), 0));
+           add_loc_descr (&descr, temp);
+           mode = GET_MODE (XEXP (RTVEC_ELT (par_elems, i), 0));
+           add_loc_descr (&descr,
+                          new_loc_descr (DW_OP_piece,
+                                         GET_MODE_SIZE (mode), 0));
+         }
+      }
+      add_AT_location_description (die, DW_AT_location, descr);
+      break;
+
     default:
       abort ();
     }