aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/ia64/ia64.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f3ba578..1c218f0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-04-16 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR middle-end/20491
+ * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
+ falling through from SUBREG case to REG.
+
2005-04-15 Roger Sayle <roger@eyesopen.com>
* fold-const.c (fold_relational_hi_lo): Delete function and prototype.
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 55fde10..82dff03 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -5196,8 +5196,8 @@ rtx_needs_barrier (rtx x, struct reg_flags flags, int pred)
break;
case SUBREG:
- x = SUBREG_REG (x);
- /* FALLTHRU */
+ need_barrier |= rtx_needs_barrier (SUBREG_REG (x), flags, pred);
+ break;
case REG:
if (REGNO (x) == AR_UNAT_REGNUM)
{