PATCH: Add x32 support to tcbhead_t
H.J. Lu
hjl.tools@gmail.com
Mon May 14 18:30:00 GMT 2012
On Mon, May 14, 2012 at 11:15 AM, Roland McGrath <roland@hack.frob.com> wrote:
>> * sysdeps/x86_64/tls.h: Don't include <bits/wordsize.h>.
>> Check __x86_64__ instead of __WORDSIZE.
>> (tcbhead_t): Pad rtld_savespace_sse to 32byte aligned.
>
> "32-byte alignment".
I will change it.
>> -# if __WORDSIZE == 64
>> +# ifdef __x86_64__
>> int rtld_must_xmm_save;
>> # endif
>
> I don't understand why this had the #if to being with. This is an
> internal header file and (before now) was only ever used for x86_64.
> Shouldn't we just remove this conditionalization altogether?
Yes, we can remove it.
>> /* Reservation of some values for the TM ABI. */
>> void *__private_tm[5];
>> -# if __WORDSIZE == 64
>> +# ifdef __x86_64__
>> +# ifdef __LP64__
>> long int __unused2;
>> +# else
>> + /* Pad rtld_savespace_sse to 32byte aligned. */
>
> "32-byte alignment".
I will change it.
>> + void *__padding1[5];
>> +# endif
>> /* Have space for the post-AVX register size. */
>> __m128 rtld_savespace_sse[8][4];
>
> Why can't you just use an __attribute__ ((aligned (32))) on the field
> instead of manual padding?
>
__attribute__ ((aligned (32))) doesn't work on field of
a struct. You have to either manually pad it or use
an aligned type.
Thanks.
--
H.J.
More information about the Libc-alpha
mailing list