> From: Nick Clifton <ni...@redhat.com>
> Date: Wed, 18 Jul 2012 08:51:16 +0200


> 2012-07-18  Nick Clifton  <ni...@redhat.com>
> 
>         * doc/invoke.texi (ARM Options): Document -munaligned-access.
> 
> Index: gcc/doc/invoke.texi
> ===================================================================
> --- gcc/doc/invoke.texi       (revision 189603)
> +++ gcc/doc/invoke.texi       (working copy)
> @@ -497,7 +497,8 @@
>  -mcaller-super-interworking  -mcallee-super-interworking @gol
>  -mtp=@var{name} -mtls-dialect=@var{dialect} @gol
>  -mword-relocations @gol
> --mfix-cortex-m3-ldrd}
> +-mfix-cortex-m3-ldrd @gol
> +-munaligned-access}
>  
>  @emph{AVR Options}
>  @gccoptlist{-mmcu=@var{mcu} -maccumulate-args -mbranch-cost=@var{cost} @gol
> @@ -11049,6 +11050,23 @@
>  generating these instructions.  This option is enabled by default when
>  @option{-mcpu=cortex-m3} is specified.
>  
> +@item -munaligned-access
> +@itemx -mno-unaligned-access
> +@opindex munaligned-access
> +@opindex mno-unaligned-access
> +Enables (or disables) reading and writing of 16- and 32- bit values
> +from addresses that are not 16- or 32- bit aligned.  By default
> +unaligned access is disabled for all pre-ARMv6 and all ARMv6-M
> +architectures, and enabled for all other architectures.

*cough*

Sounds like a call for a note in changes.html, to warn people
that they have to turn on the alignment feature in their startup
code (for whatever OS) for their ARMv6-or-later targets, if they
have not already done so.

Maybe something like:

> > Index: changes.html
> > ===================================================================
> > RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.7/changes.html,v
> > retrieving revision 1.113
> > diff -p -u -r1.113 changes.html
> > --- changes.html    5 Jun 2012 11:03:53 -0000       1.113
> > +++ changes.html    15 Jun 2012 02:04:46 -0000
> > @@ -43,6 +43,19 @@
> >  
> >      </li>
> >  
> > +    <li>On ARM, when compiling for ARMv6 (but not ARMv6-M), ARMv7-A,
> > +    ARMv7-R, or ARMv7-M, the new option
> > +    <code>-munaligned-access</code> is active by default, which for
> > +    some source codes generates code that accesses memory on unaligned
> > +    adresses.  This will require the kernel of those systems to enable
> > +    such accesses (controlled by CP15 register <code>c1</code>, refer
> > +    to ARM documentation).  Alternatively or for compatibility with
> > +    kernels where unaligned accesses are not supported, all code has
> > +    to be compiled with <code>-mno-unaligned-access</code>.
> > +    Linux/ARM in official releases has automatically and
> > +    unconditionally supported unaligned accesses as emitted by GCC due
> > +    to this option being active since Linux version 2.6.28.</li>
> > +
> >      <li>Support on ARM for the legacy floating-point accelerator (FPA) and
> >      the mixed-endian floating-point format that it used has been obsoleted.
> >      The ports that still use this format have been obsoleted as well.
> > 
> 

<http://gcc.gnu.org/ml/gcc-patches/2012-07/msg00282.html>

Sorry, but I couldn't miss the opportunity to ping this now that
the ARM maintainers have this issue in their L1-cache.  A simple
yes or no would do; I don't see what could possibly need any
contemplation regarding this note.

brgds, H-P

Reply via email to