This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH: reorg branch displacement fix
- From: Jeff Law <law at porcupine dot cygnus dot com>
- To: tm <tm at mail dot kloo dot net>
- Cc: kkojima at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Fri, 01 Nov 2002 07:45:06 -0700
- Subject: Re: PATCH: reorg branch displacement fix
- Reply-to: law at redhat dot com
In message <Pine.LNX.4.21.0210311508160.3016-100000@mail.kloo.net>, tm writes:
>
>This fixes the problem mentioned in:
>
>http://gcc.gnu.org/ml/gcc-bugs/2002-06/msg00896.html
>
>When a conditional branch jumps to an unconditional branch, reorg will
>thread the branch without checking if the conditional branch has enough
>displacement bits to branch to the target.
>
>This patch uses MD_CAN_REDIRECT_BRANCH (as suggested by Joern in followup
>messages to original message) to implement the substitution checking.
>
>Please review and if correct, commit as I don't have CVS access.
>
>Toshi
>
>Thu Oct 31 Toshiyasu Morita <toshiyasu.morita@hsa.hitachi.com>
>
> * reorg.c (relax_delay_slots): Don't thread conditional jump
> through unconditional jump if the conditional jump can't reach
> the branch target on this processor target.
This is wrong. reorg does not and should not be checking branch displacements.
That is a problem for shorten-branches and the backend.
jeff