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: Properly generate X32 IE sequence


On Tue, Mar 20, 2012 at 4:52 PM, H.J. Lu <hjl.tools@gmail.com> wrote:

>>> Yeah, my bootstrap just failed the same. ?Will test:
>>>
>>> 2012-03-20 ?Jakub Jelinek ?<jakub@redhat.com>
>>>
>>> ? ? ? * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
>>> ? ? ? If operand isn't UNSPEC, return 0.
>>
>> Committed as obvious now that bootstrap/regtest finished on x86_64-linux
>> and i686-linux.
>>
>>> --- gcc/config/i386/i386.c.jj 2012-03-20 09:35:06.000000000 +0100
>>> +++ gcc/config/i386/i386.c ? ?2012-03-20 09:56:35.038835835 +0100
>>> @@ -11516,6 +11516,8 @@ ix86_decompose_address (rtx addr, struct
>>>
>>> ? ? ? ? ? case ZERO_EXTEND:
>>> ? ? ? ? ? ? op = XEXP (op, 0);
>>> + ? ? ? ? ? if (GET_CODE (op) != UNSPEC)
>>> + ? ? ? ? ? ? return 0;
>>> ? ? ? ? ? ? /* FALLTHRU */
>>>
>>> ? ? ? ? ? case UNSPEC:
>>
>
> Uros,
>
> I think use the OS provided instruction to load TP into DImode register
> could simplify the code.

Which OS provided instruction?

Please see how TP is defined in get_thread_pointer, it is in ptr_mode:

  rtx tp = gen_rtx_UNSPEC (ptr_mode, gen_rtvec (1, const0_rtx), UNSPEC_TP);

This says that TP is in SImode on X32.

Uros.


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