union/struct representations for MAS Registers

Kumar Gala galak at kernel.crashing.org
Thu Aug 11 03:48:05 EST 2011


On Aug 10, 2011, at 12:38 PM, David Laight wrote:

> 
>>> Bitfields are rather non-portable, the compiler has a lot of choice
>>> about how to align the bits in memory.
>> 
>> I'm ok with the masking stuff.
>> However, I'm actually surprised this is true given the 
>> maturity of our ABIs.
> 
> The C standard says nothing at all about how bitfields are implemented,
> I think the first bit might be 0x1, 0x80, 0x1000000 or 0x80000000
> when treated as a 32bit value, regardless of the endianness.
> 
> Different architectures can (and do) assign things in different ways.
> So code that is ok on ppc might fail on arm or x86 (etc).
> 
> 	David

I think PPCs a bit sane and what Jimi was proposing the union for is something that would never need to be portable (as it a PPC specific register).

Still, prefer the shifts, masks & macros as that's what I've been reading & using in ppc land forever ;)

- k


More information about the Linuxppc-dev mailing list