diff options
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/simplify-rtx.c | 4 |
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); } |
