diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1996-03-05 15:28:32 -0800 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1996-03-05 15:28:32 -0800 |
commit | 3adbde603a190297ed93f9e0bd70ddb5538925ce (patch) | |
tree | 8b756656d534310f2b463c88f7e267c9eb7972b5 | |
parent | 04e1602e072dcc0b7a27c82d80f6b36a3c9e7d4c (diff) | |
download | gcc-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.c | 12 |
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 { |