johannes    02/09/03 16:41:59

  Modified:    gcc      varasm.c
  Log:
  Reenable vector-constant hashing, so compiler doesn't think all
  vector constants are the same.
  
  Revision  Changes    Path
  1.80      +7 -11     gcc3/gcc/varasm.c
  
  Index: varasm.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/varasm.c,v
  retrieving revision 1.79
  retrieving revision 1.80
  diff -u -r1.79 -r1.80
  --- varasm.c  2002/09/02 03:45:52     1.79
  +++ varasm.c  2002/09/03 23:41:59     1.80
  @@ -2254,15 +2254,15 @@
       } 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];
  +    /* APPLE LOCAL AltiVec */
  +    /* fix so store into vechi[] doesn't clobber veclo[].
  +       This is a union after all! */
  +    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;
   };
  -#if 0
  -/* APPLE LOCAL AltiVec */
  -/* fix so store into vechi[] doesn't clobber veclo[] */
  -    struct {HOST_WIDE_INT veclo, vechi; } vec[16];
  -#endif
   /* Uniquize all constants that appear in memory.
      Each constant in memory thus far output is recorded
      in `const_hash_table'.  */
  @@ -3145,19 +3145,15 @@
            elt = CONST_VECTOR_ELT (x, i);
            if (GET_MODE_CLASS (mode) == MODE_VECTOR_INT)
              {
  -#if 0 /* APPLE FIXME */              
                /* APPLE LOCAL AltiVec */
                value->un.vec[i].veclo = (HOST_WIDE_INT) INTVAL (elt);
                value->un.vec[i].vechi = 0;
  -#endif
              }
            else if (GET_MODE_CLASS (mode) == MODE_VECTOR_FLOAT)
              {
  -#if 0 /* APPLE FIXME */              
                /* APPLE LOCAL AltiVec */
                value->un.vec[i].veclo = (HOST_WIDE_INT) CONST_DOUBLE_LOW (elt);
                value->un.vec[i].vechi = (HOST_WIDE_INT) CONST_DOUBLE_HIGH (elt);
  -#endif
              }
            else
              abort ();
  
  
  


Reply via email to