[U-Boot] [PATCH v2] arm: Switch to -mno-unaligned-access when supported by the compiler

Albert ARIBAUD
2014-02-11T17:11:11Z

Hi M?ns,

On Tue, 11 Feb 2014 16:44:46 +0000, M?ns Rullg?rd <mans@mansr.com>
wrote:

> Albert ARIBAUD <albert.u.boot@aribaud.net> writes:
>
> > Hi M?ns,
> >
> > On Tue, 11 Feb 2014 15:33:09 +0000, M?ns Rullg?rd <mans@mansr.com>
> > wrote:
> >
> >> The problem is that the current settings do
> >> the exact opposite. By using -munaligned-access by default, you are
> >> asking the compiler to go ahead and do whatever it thinks is best, which
> >> is sometimes to perform an intentional unaligned access. Exactly when
> >> this will happen is largely impossible to predict.
> >
> > The -munaligned-access option does *not* "[ask] the compiler to go
> > ahead and do whatever it thinks is best", it tells it to use direct
> > native accesses when unaligned accesses are required, as opposed to
> > splitting unaligned accesses into smaller but aligned aligned native
> > accesses, which is what you get with -mno-unaligned-access.
>
> The flag does both of those things. It even gives the compiler
> permission to merge multiple adjacent accesses into a single wider one.

Both of which two things exactly?

Besides, the only place where we saw it merge adjacent accesses into a
wider one is in some cases of array initialization which are documented
in doc/README.arm-unaligned-accesses.

> >> To get the behaviour you desire, the code should be compiled with
> >> -mno-unaligned-access. This tells the compiler to _never_ automatically
> >> perform an unaligned memory access. If it thinks an address might be
> >> unaligned, it will split the access.
> >
> > This shows that you really have not read my argument, in which I *did*
> > explain why we tell the compiler *not* to split unaligned accesses into
> > smaller correctly aligned accesses, i.e., why -munaligned-access is
> > used.
>
> I have read what you call your argument. Unfortunately for you, it is
> based on false premises, and as such any conclusions you arrive at are
> incorrect.

(you have asked someone else not to be condescending. I, in turn, ask
you to stop being insulting.)

If you have read my argument, then I assume you have understood that the
point of it is to detect uncontrolled unaligned accesses; however, your
rebuttal apparently misses this point, as it proposes to *prevent*
detection of such unaligned accesses.

Amicalement,
--
Albert.