OSDN Git Service

* sh.c (max_labelno_before_reorg): New variable.
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 17 Mar 2006 14:29:08 +0000 (14:29 +0000)
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 17 Mar 2006 14:29:08 +0000 (14:29 +0000)
commitbe7f594716c65d20dac157b9d09db687f72e6c6c
tree73548bcee7edd1013d549e4ff8be4ab5cde012b4
parente056afd24a43db071503d12ece15504eb210e936
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112173 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/sh/sh.c