This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: PATCH: Add x32 support to tcbhead_t
- From: Roland McGrath <roland at hack dot frob dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: GNU C Library <libc-alpha at sourceware dot org>
- Date: Mon, 14 May 2012 11:15:58 -0700 (PDT)
- Subject: Re: PATCH: Add x32 support to tcbhead_t
- References: <20120511134529.GA8159@intel.com>
> * 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".
> -# 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?
> /* 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".
> + 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?
Thanks,
Roland