]> gcc.gnu.org Git - gcc.git/commitdiff
Fix struct rtx_const so veclo and vechi don't share storage.
authorDale Johannesen <dalej@apple.com>
Wed, 4 Sep 2002 23:59:56 +0000 (23:59 +0000)
committerDale Johannesen <dalej@gcc.gnu.org>
Wed, 4 Sep 2002 23:59:56 +0000 (23:59 +0000)
From-SVN: r56825

gcc/ChangeLog
gcc/varasm.c

index c9718d5a395a8ceaff16a1cce6423642b4fbca9e..d90988380656e51569b9038be61e14980a38d813 100644 (file)
@@ -1,3 +1,8 @@
+2002-09-04  Dale Johannesen  <dalej@apple.com>
+
+       * varasm.c (struct rtx_const, decode_rtx_const):
+       Make veclo and vechi fields not share storage.
+
 Thu Sep  5 00:34:33 2002  J"orn Rennecke <joern.rennecke@superh.com>
 
        * loop.c (scan_loop): Don't mark separate insns out of a libcall
index 02078a3ede173d06b65893ad938f01ad992f85b3..216e1441216d03657466bc0b5163c5ffacf8d1ca 100644 (file)
@@ -2167,8 +2167,10 @@ struct rtx_const GTY(())
     } GTY ((tag ("0"))) di;
 
     /* The max vector size we have is 8 wide.  This should be enough.  */
-    HOST_WIDE_INT veclo[16];
-    HOST_WIDE_INT vechi[16];
+    struct rtx_const_vec {
+      HOST_WIDE_INT veclo;
+      HOST_WIDE_INT vechi; 
+    } GTY ((tag ("2"))) vec[16];
   } GTY ((desc ("%1.kind >= RTX_INT"), descbits ("1"))) un;
 };
 
@@ -2980,13 +2982,13 @@ decode_rtx_const (mode, x, value)
            elt = CONST_VECTOR_ELT (x, i);
            if (GET_MODE_CLASS (mode) == MODE_VECTOR_INT)
              {
-               value->un.veclo[i] = (HOST_WIDE_INT) INTVAL (elt);
-               value->un.vechi[i] = 0;
+               value->un.vec[i].veclo = (HOST_WIDE_INT) INTVAL (elt);
+               value->un.vec[i].vechi = 0;
              }
            else if (GET_MODE_CLASS (mode) == MODE_VECTOR_FLOAT)
              {
-               value->un.veclo[i] = (HOST_WIDE_INT) CONST_DOUBLE_LOW (elt);
-               value->un.vechi[i] = (HOST_WIDE_INT) CONST_DOUBLE_HIGH (elt);
+               value->un.vec[i].veclo = (HOST_WIDE_INT) CONST_DOUBLE_LOW (elt);
+               value->un.vec[i].vechi = (HOST_WIDE_INT) CONST_DOUBLE_HIGH (elt);
              }
            else
              abort ();
This page took 0.102755 seconds and 5 git commands to generate.