diff mbox

[testsuite] PATCH: Add -fno-pie to gcc.target/i386/pr54445-2.c

Message ID 20150115131524.GA19036@gmail.com
State New
Headers show

Commit Message

H.J. Lu Jan. 15, 2015, 1:15 p.m. UTC
On Thu, Jan 15, 2015 at 02:02:51PM +0100, Uros Bizjak wrote:
> On Thu, Jan 15, 2015 at 2:00 PM, H.J. Lu <hjl.tools@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.lu@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.
---
 gcc/testsuite/gcc.target/i386/pr54445-2.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Uros Bizjak Jan. 15, 2015, 1:20 p.m. UTC | #1
On Thu, Jan 15, 2015 at 2:15 PM, H.J. Lu <hjl.tools@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.lu@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.
diff mbox

Patch

diff --git a/gcc/testsuite/gcc.target/i386/pr54445-2.c b/gcc/testsuite/gcc.target/i386/pr54445-2.c
index 5151c13..f0ca9dc 100644
--- a/gcc/testsuite/gcc.target/i386/pr54445-2.c
+++ b/gcc/testsuite/gcc.target/i386/pr54445-2.c
@@ -8,4 +8,4 @@  tls_array_lookup_with_negative_constant(long long int position) {
   return tls_array[position - 1];
 }
 
-/* { dg-final { scan-assembler "mov(b|zbl)\[ \t\](%fs:)?tls_array@tpoff-1\\(%" } } */
+/* { dg-final { scan-assembler "mov(b|zbl)\[ \t\](%fs:)?(-1\\+)?tls_array@tpoff(-1)?\\(%" } } */