Forcing memory mode to some addresses

Ian Lance Taylor
Wed Nov 16 18:29:00 GMT 2011

Aurelien Buhrig <> 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.


More information about the Gcc-help mailing list