tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: [TEST CASE] String offset errors on evbarm 8.99 [PR 54159]



Thank you for the background. I see now why Joerg Sonnenberger suspected
the ARM special symbols to have something to do with it.

I will try next week to find my way through the binutils sources.

On Thu, Aug 08, 2019 at 07:51:10AM +1000, matthew green wrote:
> Joerg Sonnenberger writes:
> > On Wed, Aug 07, 2019 at 08:35:09PM +0200, tlaronde%polynum.com@localhost wrote:
> > > At the very least, I would like to be pointed to some
> > > documentation, particularily about what are these special symbols '$a'
> > > '$d' (and '$t' and what else?) and what is special about the earmv7
> > > case.
> > 
> > Short background: ARM CPUs can generally operate in one of two modes:
> > ARM mode or Thumb mode. The former is more expressive by using 32bit
> > instructions, the latter is more compact due to using 16bit
> > instructions. In both modes, constants longer than 16bit are often
> > placed into so-called constant pools before or after a function.
> 
> it's even worse. :)
> 
> larger functions may have multiple constant pools in the code
> that are inserted immediately after unconditional branches if
> possible, or a branch placed before it no suitable location
> can be found in the attempted output.
> 
> 
> .mrg.
> 
> ps: xscale CPUs run slightly faster if constant pools are
> cache-line aligned (including the next constant -> text
> in the output) as well.  not sure that ever got implemented
> in GCC proper..

-- 
        Thierry Laronde <tlaronde +AT+ polynum +dot+ com>
                     http://www.kergis.com/
                       http://www.sbfa.fr/
Key fingerprint = 0FF7 E906 FBAF FE95 FD89  250D 52B1 AE95 6006 F40C


Home | Main Index | Thread Index | Old Index