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]
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..
Home |
Main Index |
Thread Index |
Old Index