On Mon, Mar 12, 2012 at 12:39 PM, Uros Bizjak <ubiz...@gmail.com> wrote:
> On Sun, Mar 11, 2012 at 10:24 PM, H.J. Lu <hjl.to...@gmail.com> wrote:
>> Here is the patch which is equivalent to clearing MASK_TLS_DIRECT_SEG_REFS
>> when Pmode != word_mode. We need to keep
>> else if (Pmode == SImode)
>> /* Always generate
>> movl %fs:0, %reg32
>> addl xgottpoff(%rip), %reg32
>> to support linker IE->LE optimization and avoid
>> fs:(%reg32) as memory operand. */
>> dest = gen_reg_rtx (Pmode);
>> emit_insn (gen_tls_initial_exec_x32 (dest, x));
>> return dest;
>> to support linker IE->LE optimization. TARGET_TLS_DIRECT_SEG_REFS only
>> TLS LE access and fs:(%reg) is only generated by combine.
>> So the main impact of disabling TARGET_TLS_DIRECT_SEG_REFS is to disable
>> fs:immediate memory operand for TLS LE access, which doesn't have any
>> to begin with.
>> I would prefer to keep TARGET_TLS_DIRECT_SEG_REFS and disable only
>> fs:(%reg), which is generated by combine.
> Please try attached patch. It introduces TARGET_TLS_INDIRECT_SEG_REFS
> to block only indirect seg references.
I am testing it.