On Thu, Jan 15, 2015 at 2:15 PM, H.J. Lu <hjl.to...@gmail.com> wrote:

>> >>>  gcc/testsuite/gcc.target/i386/pr54445-2.c | 2 +-
>> >>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> >>>
>> >>> 2015-01-11  H.J. Lu  <hongjiu...@intel.com>
>> >>>
>> >>>         * gcc.target/i386/pr54445-2.c: Add -fno-pie.
>> >>>
>> >>> diff --git a/gcc/testsuite/gcc.target/i386/pr54445-2.c 
>> >>> b/gcc/testsuite/gcc.target/i386/pr54445-2.c
>> >>> index 5151c13..4d49816 100644
>> >>> --- a/gcc/testsuite/gcc.target/i386/pr54445-2.c
>> >>> +++ b/gcc/testsuite/gcc.target/i386/pr54445-2.c
>> >>> @@ -1,5 +1,5 @@
>> >>>  /* { dg-do compile { target { *-*-linux* && { ! { ia32 } } } } } */
>> >>> -/* { dg-options "-O2 -fno-pic" } */
>> >>> +/* { dg-options "-O2 -fno-pic -fno-pie" } */
>> >>>
>> >>>  __thread unsigned char tls_array[64];
>> >>
>> >> No. PI *executable* has nothing to do with the access to data.
>> >>
>> >> Can you rather investigate why -fpie is generating:
>> >>
>> >>     movzbl    %fs:-1+tls_array@tpoff(%rdi), %eax
>> >>
>> >> instead of (expected)
>> >>
>> >>     movzbl    %fs:tls_array@tpoff-1(%rdi), %eax
>> >>
>> >> Uros.
>> >
>> > They have the same encoding.  The differences are in the order of address
>> > in the first operand due to different output orders of PLUS between
>> > output_addr_const and output_pic_addr_const.
>>
>> Then we should improve scan string to accept both expressions.
>>
>
> The order of address in the first operand is different due to different
> output orders of PLUS between output_addr_const and output_pic_addr_const.
> This patch adjusts scan string for PIE in gcc.target/i386/pr54445-2.c.
> Tested on Linux/x86-64.  OK to install?
>
> Thanks.
>
>
> H.J.
> ---
>         * gcc.target/i386/pr54445-2.c: Adjust scan string for PIE.

OK.

Thanks,
Uros.

Reply via email to