sh.c (max_labelno_before_reorg): New variable.
authorJ"orn Rennecke <joern.rennecke@st.com>
Fri, 17 Mar 2006 14:29:08 +0000 (14:29 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Fri, 17 Mar 2006 14:29:08 +0000 (14:29 +0000)
commit4241ecb0023443edeae332690c48851e140ef10b
tree73548bcee7edd1013d549e4ff8be4ab5cde012b4
parent79252435187c7a7183ae23ea76ec2c027074946c
sh.c (max_labelno_before_reorg): New variable.

* sh.c (max_labelno_before_reorg): New variable.
(sh_reorg): Initialize it.
(find_barrier): Check max_labelno_before_reorg before using
label_to_alignment.  Take length of explicit alignment insns
into account.  When seeing a UNSPECV_CONST_END, return it.

* sh.c (fixup_mova): Set mode of affected label to QImode.
(untangle_mova): New function.
(find_barrier): Use it.  Check mode of label before decrementing
num_mova.
(sh_reorg): Likewise.
Set mode of all insns back to VOIDmode.

* sh.c (MOVA_LABELREF): New macro.
(mova_p, fixup_mova, sh_reorg): Use it.
(find_barrier, sh_reorg): Don't count num_mova back to 0 unless
ADDR_DIFF_VEC matches mova.

From-SVN: r112173
gcc/ChangeLog
gcc/config/sh/sh.c