This is the mail archive of the
mailing list for the GCC project.
Re: Bug in sh constant pool generation
- To: Bernd Schmidt <bernds at redhat dot co dot uk>
- Subject: Re: Bug in sh constant pool generation
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Mon, 18 Sep 2000 10:50:19 -0600
- cc: gcc-patches at gcc dot gnu dot org
- Reply-To: law at cygnus dot com
In message <Pine.LNX.email@example.com>you
> Large constants on the sh are placed in small in-line constant pools which
> are accessed through pc-relative addressing. This happens during
> machine_dependent_reorg. We walk the insns looking for constant moves that
> need to be converted to pc-relative loads. When placing the constant pools
> we need to ensure that the offset from the load to the pool is within the
> insn's range.
> There's a problem with this code; in machine_dependent_reorg we sometimes
> generate new insns, but we do not take this into account when computing the
> offsets in find_barrier. Thus we can end up with out-of-range accesses.
> * sh.c (find_barrier): Take into account that machine_dependent_reorg
> might add new insns.
Approved. Please install.