aboutsummaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1995-03-29 14:34:41 -0800
committerJim Wilson <wilson@gcc.gnu.org>1995-03-29 14:34:41 -0800
commitce79abf32c694488933ef4594f8adfe6317236d7 (patch)
treed5aada273c05f1a3442bea939fd032cf3ee2e041 /gcc/flow.c
parentb88277f9f40e1f5b92861d1b3fcf76c5bc8f87f8 (diff)
downloadgcc-ce79abf32c694488933ef4594f8adfe6317236d7.zip
gcc-ce79abf32c694488933ef4594f8adfe6317236d7.tar.gz
gcc-ce79abf32c694488933ef4594f8adfe6317236d7.tar.bz2
(mark_used_regs, case SUBREG): Only fall through to REG case
if operand is a REG. From-SVN: r9247
Diffstat (limited to 'gcc/flow.c')
-rw-r--r--gcc/flow.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 585d240..5ebaf25 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -2385,6 +2385,11 @@ mark_used_regs (needed, live, x, final, insn)
/* While we're here, optimize this case. */
x = SUBREG_REG (x);
+ /* Must verify that it is a register, since the RS/6000 port has
+ (subreg:QI (lshift:SI ...)). */
+ if (GET_CODE (x) != REG)
+ goto retry;
+
/* ... fall through ... */
case REG: