This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 02/10] addr32: Output REX prefix for UNSPEC_GOTNTPOFF


On Fri, Mar 2, 2012 at 9:36 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:

> X86-64 linker optimizes TLS_MODEL_INITIAL_EXEC to TLS_MODEL_LOCAL_EXEC
> by checking
>
> ? ? ? ?movq foo@gottpoff(%rip), %reg
>
> and
>
> ? ? ? ?addq foo@gottpoff(%rip), %reg
>
> It uses the REX prefix to avoid the last byte of the previous
> instruction. ?With 32bit Pmode, we may not have the REX prefix and
> the last byte of the previous instruction may be an offset, which
> may look like a REX prefix. ?IE->LE optimization will generate corrupted
> binary. ?This patch makes sure we always output an REX pfrefix for
> UNSPEC_GOTNTPOFF. ?OK for trunk?

No, please implement this using UNSPEC in the same way as
tls_initial_exec_64_sun implements Sun linker quirk.

Uros.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]