aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/simplify-rtx.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0e11252..0e2f527 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index 39c3015..3450f7b1 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -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);
}