[U-Boot] [PATCH v2] arm: Switch to -mno-unaligned-access when supported by the compiler
Måns Rullgård
mans at mansr.com
Tue Feb 11 17:44:46 CET 2014
Albert ARIBAUD <albert.u.boot at aribaud.net> writes:
> Hi Måns,
>
> On Tue, 11 Feb 2014 15:33:09 +0000, Måns Rullgård <mans at 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.
>> 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.
--
Måns Rullgård
mans at mansr.com
More information about the U-Boot
mailing list