Re: alignment issues for sse

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Brian,

As I understand it (in this alignment situation), the __attribute__ is applicable to a variable, not to a type.

Also, the alignment of the variable is constrained by whatever alignment support is provided by the linker. For example, if you need 256 byte alignment for a PMMU page, many linkers may not support such a big alignment constraint and will only honor the request to the best of their ability.

So for certain things, such as PMMU swap pages, the alignment burden often falls on the shoulders of the software engineer handling PMMU swap pages. (It is MOST unfortunate that the malloc routine doesn't have an extra optional parameter for alignment requirements. Alas and alack.)

Let's hope that's not the issue you are running into.

I don't know if __mode__(__V4SF__) entails the alignment request. You'll have to double-check the documentation.

Regardless, I think you should replace your typedef with a struct.

struct __m128 { int m __attribute((__mode__(__V4SF__))); };

And if the __mode__(__V4SF__) doesn't entail the alignment constrained, add in the aligned(16) as well.

And if your linker doesn't honor the aligned(16) request, you'll have to take some extra-ordinary steps -- let's hope you don't have to go there.

HTH,
--Eljay


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux