This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Patch: Updates on mips testcases
> Date: Sat, 9 Jun 2001 20:43:55 -0700
> From: Daniel Jacobowitz <dmj+@andrew.cmu.edu>
> Cc: hjl@lucon.org, binutils@sourceware.cygnus.com
> Content-Disposition: inline
> User-Agent: Mutt/1.3.16i
>
> On Sat, Jun 09, 2001 at 04:14:39PM -0700, Geoff Keating wrote:
> > > 1. You may see it when compiling certain version of gcc with -O0.
> >
> > That's not supposed to happen. GCC is supposed to deal with this
> > by performing the substitution below. This often breaks, typically
> > because GCC is misinformed about the length of some instruction,
> > but it is also easily fixed.
>
> I've noticed that this problem also occurs if you try to compile the
> massive tan tables in glibc with -msoft-float. I spent a while
> checking into it, and the length of the soft-float instructions all
> seemed to be correct - could you elaborate where in GCC ought to be
> fixing this up?
The code to do the fixing is in mips_output_conditional_branch, in
mips.c, but the code that computes the lengths is in shorten_branches
in final.c. The actual lengths are attributes in the mips.md file.
Most likely, it is the lengths that are wrong or missing for some
instruction.
--
- Geoffrey Keating <geoffk@geoffk.org>