[U-Boot] Query on CONFIG_SYS_THUMB_BUILD

Albert ARIBAUD
2014-11-20T12:04:25Z

Hello Bill,

On Wed, 19 Nov 2014 13:34:34 -0500, Bill Pringlemeir
<bpringlemeir@nbsps.com> wrote:
>
>
> >>> In message <20141119074214.3d414ce6@lilith> you^H^H^H Stefan wrote:
>
> >>>> For -mauto-it, it is not documented in the gas documentation online
> >>>> or in my current as' --target-help. I'll dig this deeper today, but
> >>>> barring any scream from me, the change above is fine globally in
> >>>> U-Boot.
>
> >> On 19 Nov 2014, wd at denx.de wrote:
>
> >>> Apparently this [1] is where it is coming from; no further
> >>> documentation there, though.
> >>
> >>> [1] https://sourceware.org/ml/binutils/2009-05/msg00132.html
>
> > On Wed, 19 Nov 2014 11:31:05 -0500, Bill Pringlemeir
>
> >> I would think that if this worked they would make it automatic and
> >> not an option. Probably this is only in certain binutils/as.
> >>
> >> With 4.6.3 and 4.9.1 I do not have this option,
>
>
> On 19 Nov 2014, albert.u.boot at aribaud.net wrote:
>
> > Which option do you mean? -mimplicit-it or -mauto-it?
>
> '-mauto-it' , which I think if it is working correctly would be rolled
> into '-mimplicit-it' as it generates better code (for an assembler :).
> I followed the thread above and the patch originator says he needs to
> fix section issues and the 'command line options' and he would follow up
> the proposed patch.

I am getting lost, even when reading (quickly, I admit) the patch that
adds it; I don't see what -mauto-it does exactly. Can you summarize
and clarify the effects of -mimplicit-it (I guess I know this one but
it's never a bad thing to get a second opinion), -mauto-it and their
interaction?

> I guess at some version each and every '<inst>xx' was converted to 'it
> xx\n<inst>' where <inst> is some conditional instruction. For the patch
> above, '-mauto-it' teaches the assembler to glob them together into
> 'itet...' type conditions. The Thumb2 supports up to four conditions
> (and negated condition) instructions.
>
> On my version of the tools (I think it is gcc; but maybe binutils), if I
> use '-mauto-it' it gives an unknown option error. I think that Linux
> does a probe of this feature and passes it (-mauto-it) if the assembler
> accepts it. So, if we add to u-boot we should probably take care that
> the ARM 'as' can take the option. I also see posts on the web of people
> complaining of this option in other code bases.

Are they complaining that the option is passed on to an as which does
not know it, or that the option is known but does something wrong?

(I'm still having a hard time understanding whether -mauto-it is an
accepted new feature that is slow to get integrated or the remnant of
an old proposal which did not make it.)

> Fwiw,
> Bill.

Amicalement,
--
Albert.