Forcing memory mode to some addresses

Ian Lance Taylor iant@google.com
Wed Nov 16 18:29:00 GMT 2011


Aurelien Buhrig <aurelien.buhrig.gcc@gmail.com> writes:

> I would like to force accesses to some memory variables in a specific mode.
> For example, I would like GCC to access a 16-bit wide hardware
> register always in HImode when using a 16bit wide bitfield struct...
> Currently, GCC can accesses part of this memory structure using
> QImode, which is not always permitted.
> Is there a way to do it using an attribute ? Or perhaps another way ?
>
> If a target specific attribute must be defined, what should it
> control, and how to recognized it in my backend ?

You should always use a volatile qualified pointer when accessing a
hardware register.  When you do that, gcc should always use the
appropriate mode.

Ian



More information about the Gcc-help mailing list