aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog2
-rw-r--r--gcc/config/sh/sh.c8
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 11ce53b..2a26741 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -9,6 +9,8 @@
* sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
input operand that needs to be in fpul.
(fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
+ * sh.c (find_barrier): Take into account that machine_dependent_reorg
+ might add new insns.
2000-09-18 Alexandre Oliva <aoliva@redhat.com>
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index bd2a382..afc0dca 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -2201,6 +2201,14 @@ find_barrier (num_mova, mova, from)
if (num_mova)
si_limit -= GET_MODE_SIZE (mode);
}
+
+ /* See the code in machine_dependent_reorg, which has a similar if
+ statement that generates new mova insn in many cases. */
+ if (GET_CODE (dst) == REG
+ && ((REGNO (dst) >= FIRST_FP_REG
+ && REGNO (dst) <= LAST_XD_REG)
+ || REGNO (dst) == FPUL_REG))
+ inc += 2;
}
if (mova_p (from))