This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [AArch64/testsuite] Add more TLS local executable testcases
- From: Jiong Wang <jiong dot wang at arm dot com>
- To: Marcus Shawcroft <marcus dot shawcroft at gmail dot com>
- Cc: "gcc-patches\ at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 22 Sep 2015 17:49:25 +0100
- Subject: Re: [AArch64/testsuite] Add more TLS local executable testcases
- Authentication-results: sourceware.org; auth=none
- References: <n9937z6ywqr dot fsf at arm dot com> <CAFqB+PwKQ+vG+DJ5iyOn7dNOQj+U7khtvODFt=XL=TYjfTLmFg at mail dot gmail dot com>
Marcus Shawcroft writes:
> On 26 August 2015 at 14:58, Jiong Wang <jiong.wang@arm.com> wrote:
>>
>> This patch cover tlsle tiny model tests, tls size truncation for tiny &
>> small model included also.
>>
>> All testcases pass native test.
>>
>> OK for trunk?
>>
>> 2015-08-26 Jiong Wang <jiong.wang@arm.com>
>>
>> gcc/testsuite/
>> * gcc.target/aarch64/tlsle12_tiny_1.c: New testcase for tiny model.
>> * gcc.target/aarch64/tlsle24_tiny_1.c: Likewise.
>> * gcc.target/aarch64/tlsle_sizeadj_tiny_1.c: TLS size truncation test
>> for tiny model.
>> * gcc.target/aarch64/tlsle_sizeadj_small_1.c: TLS size truncation test
>> for small model.
>
> Hi Jiong
> These tests are fragile if the test suite is run with an explicit
> -mcmodel=* option. I think they need appropriate dg-skip-if
> directives to ensure they only run with the expected model.
> /Marcus
OK, how about the new one?
2015-09-22 Jiong Wang <jiong.wang@arm.com>
gcc/testsuite/
* gcc.target/aarch64/tlsle12_tiny_1.c: New testcase for tiny model.
* gcc.target/aarch64/tlsle24_tiny_1.c: Likewise.
* gcc.target/aarch64/tlsle_sizeadj_tiny_1.c: TLS size truncation test
for tiny model.
* gcc.target/aarch64/tlsle_sizeadj_small_1.c: TLS size truncation test
for small model.
diff --git a/gcc/testsuite/gcc.target/aarch64/tlsle12_tiny.c b/gcc/testsuite/gcc.target/aarch64/tlsle12_tiny.c
new file mode 100644
index 0000000..2f81793
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/tlsle12_tiny.c
@@ -0,0 +1,9 @@
+/* { dg-do run } */
+/* { dg-require-effective-target tls_native } */
+/* { dg-options "-O2 -fpic -ftls-model=local-exec -mtls-size=12 -mcmodel=tiny --save-temps" } */
+/* { dg-skip-if "TLS 12bit size for tiny" { aarch64*-*-* } { "-mcmodel=small" "-mcmodel=large" } { "" } } */
+
+#include "tlsle_1.x"
+
+/* { dg-final { scan-assembler-times "#:tprel_lo12" 2 } } */
+/* { dg-final { cleanup-saved-temps } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/tlsle24_tiny.c b/gcc/testsuite/gcc.target/aarch64/tlsle24_tiny.c
new file mode 100644
index 0000000..7d5df1b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/tlsle24_tiny.c
@@ -0,0 +1,10 @@
+/* { dg-do run } */
+/* { dg-require-effective-target tls_native } */
+/* { dg-options "-O2 -fpic -ftls-model=local-exec -mtls-size=24 -mcmodel=tiny --save-temps" } */
+/* { dg-skip-if "TLS 24bit size for tiny" { aarch64*-*-* } { "-mcmodel=small" "-mcmodel=large" } { "" } } */
+
+#include "tlsle_1.x"
+
+/* { dg-final { scan-assembler-times "#:tprel_lo12_nc" 2 } } */
+/* { dg-final { scan-assembler-times "#:tprel_hi12" 2 } } */
+/* { dg-final { cleanup-saved-temps } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_small.c b/gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_small.c
new file mode 100644
index 0000000..d1fa542
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_small.c
@@ -0,0 +1,11 @@
+/* { dg-do run } */
+/* { dg-require-effective-target tls_native } */
+/* { dg-require-effective-target aarch64_tlsle32 } */
+/* { dg-options "-O2 -fpic -ftls-model=local-exec -mtls-size=48 --save-temps" } */
+/* { dg-skip-if "TLS size trunc for small" { aarch64*-*-* } { "-mcmodel=tiny" "-mcmodel=large" } { "" } } */
+
+#include "tlsle_1.x"
+
+/* { dg-final { scan-assembler-times "#:tprel_g1" 2 } } */
+/* { dg-final { scan-assembler-times "#:tprel_g0_nc" 2 } } */
+/* { dg-final { cleanup-saved-temps } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_tiny.c b/gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_tiny.c
new file mode 100644
index 0000000..444854e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_tiny.c
@@ -0,0 +1,10 @@
+/* { dg-do run } */
+/* { dg-require-effective-target tls_native } */
+/* { dg-options "-O2 -fpic -ftls-model=local-exec -mtls-size=32 -mcmodel=tiny --save-temps" } */
+/* { dg-skip-if "TLS size trunc for tiny" { aarch64*-*-* } { "-mcmodel=small" "-mcmodel=large" } { "" } } */
+
+#include "tlsle_1.x"
+
+/* { dg-final { scan-assembler-times "#:tprel_lo12_nc" 2 } } */
+/* { dg-final { scan-assembler-times "#:tprel_hi12" 2 } } */
+/* { dg-final { cleanup-saved-temps } } */