diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2020-09-09 10:29:47 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2020-09-09 10:42:27 -0700 |
commit | bf69edf8ce47ca618eff30df2308279a40b22096 (patch) | |
tree | 0310ee372fb7395b9c8aca04d7fccc6f6ae21c31 /gcc | |
parent | c6632dc9a8ee77ad66a8d62d736a9112de9e41c7 (diff) | |
download | gcc-bf69edf8ce47ca618eff30df2308279a40b22096.zip gcc-bf69edf8ce47ca618eff30df2308279a40b22096.tar.gz gcc-bf69edf8ce47ca618eff30df2308279a40b22096.tar.bz2 |
x32: Update gcc.target/i386/builtin_thread_pointer.c
Update gcc.target/i386/builtin_thread_pointer.c for x32. For
int
foo3 (int i)
{
int* p = (int*) __builtin_thread_pointer ();
return p[i];
}
we can't generate:
movl %fs:0(,%edi,4), %eax
ret
for x32 since the address of %fs:0(,%edi,4) is %fs + zero-extended to 64
bits of 0(,%edi,4). Instead, we generate:
movl %fs:0, %eax
movl (%eax,%edi,4), %eax
PR target/96955
* gcc.target/i386/builtin_thread_pointer.c: Update scan-assembler
for x32.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/gcc.target/i386/builtin_thread_pointer.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/testsuite/gcc.target/i386/builtin_thread_pointer.c b/gcc/testsuite/gcc.target/i386/builtin_thread_pointer.c index dce3148..16a7ca4 100644 --- a/gcc/testsuite/gcc.target/i386/builtin_thread_pointer.c +++ b/gcc/testsuite/gcc.target/i386/builtin_thread_pointer.c @@ -25,4 +25,6 @@ foo3 (int i) return p[i]; } -/* { dg-final { scan-assembler "movl\[ \t\]*%\[fg\]s:0\\(,%\[a-z0-9\]*,4\\), %eax" } } */ +/* { dg-final { scan-assembler "movl\[ \t\]*%\[fg\]s:0\\(,%\[a-z0-9\]*,4\\), %eax" { target { ! x32 } } } } */ +/* { dg-final { scan-assembler-not "movl\[ \t\]*%fs:0\\(,%\[a-z0-9\]*,4\\), %eax" { target x32 } } } */ +/* { dg-final { scan-assembler "movl\[ \t\]*\\(%eax,%edi,4\\), %eax" { target x32 } } } */ |