aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-10-21 18:20:06 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-10-21 18:20:06 -0400
commit00e94d6531c49dd28c277add21bc80831563f540 (patch)
treef0d04bda36f876c83b13e0fe142fe6a0f0d7fb38
parent2ad79487e408912111b97d99e23b4a43905c7ab4 (diff)
downloadgcc-00e94d6531c49dd28c277add21bc80831563f540.zip
gcc-00e94d6531c49dd28c277add21bc80831563f540.tar.gz
gcc-00e94d6531c49dd28c277add21bc80831563f540.tar.bz2
(find_barrier): When hi_const returns true, increment count_si by two
if found_si is true. From-SVN: r10495
-rw-r--r--gcc/config/sh/sh.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index f52ba43..8d29515 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -1226,7 +1226,15 @@ find_barrier (from)
rtx src = SET_SRC (PATTERN (from));
if (hi_const (src))
- found_hi = 1;
+ {
+ found_hi = 1;
+ /* We put the short constants before the long constants, so
+ we must count the length of short constants in the range
+ for the long constants. */
+ /* ??? This isn't optimal, but is easy to do. */
+ if (found_si)
+ count_si += 2;
+ }
else
found_si = 1;
inc = (GET_MODE_SIZE (GET_MODE (src)) > 4) ? 4 : 2;