This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH: PR target/47715: [x32] TLS doesn't work
On Thu, Jul 28, 2011 at 7:42 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
> On Thu, Jul 28, 2011 at 3:47 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>
>>>>> TLS on X32 is almost identical to TLS on x86-64. ?The only difference is
>>>>> x32 address space is 32bit. ?That means TLS symbols can be in either
>>>>> SImode or DImode with upper 32bit zero. ?This patch updates
>>>>> tls_global_dynamic_64 to support x32. ?OK for trunk?
>>>
>>> Please also change 64bit GNU2_TLS patterns, so -mtls-dialect=gnu2 will
>>> also work. ?Please see attached patch.
>>>
>>
>> Yes, it works. ?Can you apply it?
>
> This is what I have committed:
>
> 2011-07-28 ?Uros Bizjak ?<ubizjak@gmail.com>
>
> ? ? ? ?PR target/47715
> ? ? ? ?* config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
> ? ? ? ?tls_symbolic_operand check. ?Update code sequence for TARGET_X32.
> ? ? ? ?(tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
> ? ? ? ?(tls_dynamic_gnu2_64): Ditto.
> ? ? ? ?(*tls_dynamic_gnu2_lea_64): Ditto.
> ? ? ? ?(*tls_dynamic_gnu2_call_64): Ditto.
> ? ? ? ?(*tls_dynamic_gnu2_combine_64): Ditto.
>
It looks good. I will check in
@@ -12341,15 +12345,16 @@
return "call\t%P2";
}
[(set_attr "type" "multi")
- (set_attr "length" "16")])
+ (set (attr "length")
+ (symbol_ref "TARGET_X32 ? 15 : 16"))])
since x32 is one byte shorter now.
Thanks.
--
H.J.