From 2599dcc74ab14923fef52293afad9f5fe2d30e9c Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Sun, 31 Aug 1997 05:57:40 +0000 Subject: [PATCH] Fix alpha loop unrolling abort. * unroll.c (calculate_giv_inc): Handle increment with code PLUS. From-SVN: r15004 --- gcc/ChangeLog | 4 ++++ gcc/unroll.c | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 058eb9ef0fd..a3373773329 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Sat Aug 30 22:54:26 1997 Jim Wilson + + * unroll.c (calculate_giv_inc): Handle increment with code PLUS. + Sat Aug 30 10:49:46 1997 David Edelsohn * rs6000.md: Make DF fused-add operations pay attention to diff --git a/gcc/unroll.c b/gcc/unroll.c index 2fb1f9a8415..ce6623c37cd 100644 --- a/gcc/unroll.c +++ b/gcc/unroll.c @@ -1495,10 +1495,11 @@ calculate_giv_inc (pattern, src_insn, regno) if (GET_CODE (increment) == LO_SUM) increment = XEXP (increment, 1); else if (GET_CODE (increment) == IOR - || GET_CODE (increment) == ASHIFT) + || GET_CODE (increment) == ASHIFT + || GET_CODE (increment) == PLUS) { /* The rs6000 port loads some constants with IOR. - The alpha port loads some constants with ASHIFT. */ + The alpha port loads some constants with ASHIFT and PLUS. */ rtx second_part = XEXP (increment, 1); enum rtx_code code = GET_CODE (increment); @@ -1513,6 +1514,8 @@ calculate_giv_inc (pattern, src_insn, regno) if (code == IOR) increment = GEN_INT (INTVAL (increment) | INTVAL (second_part)); + else if (code == PLUS) + increment = GEN_INT (INTVAL (increment) + INTVAL (second_part)); else increment = GEN_INT (INTVAL (increment) << INTVAL (second_part)); } -- 2.30.2