simplify-rtx.c (simplify_subreg): Fix offset calculation for complex values within...
authorMichael Hayes <m.hayes@elec.canterbury.ac.nz>
Mon, 11 Jun 2001 09:30:50 +0000 (09:30 +0000)
committerMichael Hayes <m.hayes@gcc.gnu.org>
Mon, 11 Jun 2001 09:30:50 +0000 (09:30 +0000)
* simplify-rtx.c (simplify_subreg): Fix offset calculation
for complex values within a CONCAT.

From-SVN: r43177

gcc/ChangeLog
gcc/simplify-rtx.c

index 0e11252037edeb86b92b82a21d62e62ef020d03f..0e2f5272f8bcb2aeef4d884bf6fe8e1788caf102 100644 (file)
@@ -1,3 +1,8 @@
+2001-06-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * simplify-rtx.c (simplify_subreg): Fix offset calculation
+       for complex values within a CONCAT.
+
 2001-06-11  Joseph S. Myers  <jsm28@cam.ac.uk>
 
        * doc/install.texi: Update details of what components are included
index 39c30154d39f4edf1e6eb8e6a839392e080ae723..3450f7b168b5598c206fbd67f080e3553dd0fee9 100644 (file)
@@ -2423,11 +2423,11 @@ simplify_subreg (outermode, op, innermode, byte)
      of real and imaginary part.  */
   if (GET_CODE (op) == CONCAT)
     {
-      int is_realpart = byte < GET_MODE_UNIT_SIZE (innermode) / 2;
+      int is_realpart = byte < GET_MODE_UNIT_SIZE (innermode);
       rtx part = is_realpart ? XEXP (op, 0) : XEXP (op, 1);
       unsigned int final_offset;
 
-      final_offset = byte % (GET_MODE_UNIT_SIZE (innermode) / 2);
+      final_offset = byte % (GET_MODE_UNIT_SIZE (innermode));
       return simplify_subreg (outermode, part, GET_MODE (part), final_offset);
     }