aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1996-03-05 15:28:32 -0800
committerJim Wilson <wilson@gcc.gnu.org>1996-03-05 15:28:32 -0800
commit3adbde603a190297ed93f9e0bd70ddb5538925ce (patch)
tree8b756656d534310f2b463c88f7e267c9eb7972b5
parent04e1602e072dcc0b7a27c82d80f6b36a3c9e7d4c (diff)
downloadgcc-3adbde603a190297ed93f9e0bd70ddb5538925ce.zip
gcc-3adbde603a190297ed93f9e0bd70ddb5538925ce.tar.gz
gcc-3adbde603a190297ed93f9e0bd70ddb5538925ce.tar.bz2
(find_barrier): Set si_limit to 1018 instead of 1020, and
hi_limit to 510 instead of 512. From-SVN: r11464
-rw-r--r--gcc/config/sh/sh.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index b561de7..144a5b0 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -1257,11 +1257,15 @@ find_barrier (from)
/* For HImode: range is 510, add 4 because pc counts from address of
second instruction after this one, subtract 2 for the jump instruction
- that we may need to emit before the table. This gives 512.
+ that we may need to emit before the table, subtract 2 for the instruction
+ that fills the jump delay slot (in very rare cases, reorg will take an
+ instruction from after the constant pool or will leave the delay slot
+ empty). This gives 510.
For SImode: range is 1020, add 4 because pc counts from address of
second instruction after this one, subtract 2 in case pc is 2 byte
aligned, subtract 2 for the jump instruction that we may need to emit
- before the table. This gives 1020. */
+ before the table, subtract 2 for the instruction that fills the jump
+ delay slot. This gives 1018. */
/* If not optimizing, then it is possible that the jump instruction we add
won't be shortened, and thus will have a length of 14 instead of 2.
@@ -1270,8 +1274,8 @@ find_barrier (from)
if (optimize)
{
- si_limit = 1020;
- hi_limit = 512;
+ si_limit = 1018;
+ hi_limit = 510;
}
else
{