diff options
author | Pavel Chupin <pavel.v.chupin@intel.com> | 2012-11-27 14:09:50 +0400 |
---|---|---|
committer | Pavel Chupin <pavel.v.chupin@intel.com> | 2013-04-18 16:50:12 +0400 |
commit | 9e1f9b3eacb51a67e675cd1195c472215fb16373 (patch) | |
tree | af3f97ee1874e13a5fe5ba61058aba045bbad279 /gcc-4.7/gcc/testsuite | |
parent | 5d65342898686feb3faceb3beb10529501d67b48 (diff) | |
download | toolchain_gcc-9e1f9b3eacb51a67e675cd1195c472215fb16373.tar.gz toolchain_gcc-9e1f9b3eacb51a67e675cd1195c472215fb16373.tar.bz2 toolchain_gcc-9e1f9b3eacb51a67e675cd1195c472215fb16373.zip |
[4.7] x32: Backport x32 support into 4.7
This patch contains all gcc changes required to build x32 compiler.
They are backported from 4.8/trunk.
Change-Id: I923f639c1f0cee5812b0f555a39bab0bd0723865
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
Diffstat (limited to 'gcc-4.7/gcc/testsuite')
-rw-r--r-- | gcc-4.7/gcc/testsuite/ChangeLog.x32 | 34 | ||||
-rw-r--r-- | gcc-4.7/gcc/testsuite/gcc.dg/torture/pr52530.c | 30 | ||||
-rw-r--r-- | gcc-4.7/gcc/testsuite/gcc.target/i386/pr52146.c | 2 | ||||
-rw-r--r-- | gcc-4.7/gcc/testsuite/gcc.target/i386/pr52857-1.c | 10 | ||||
-rw-r--r-- | gcc-4.7/gcc/testsuite/gcc.target/i386/pr52857-2.c | 8 | ||||
-rw-r--r-- | gcc-4.7/gcc/testsuite/gcc.target/i386/pr52876.c | 25 | ||||
-rw-r--r-- | gcc-4.7/gcc/testsuite/gcc.target/i386/pr52882.c | 19 | ||||
-rw-r--r-- | gcc-4.7/gcc/testsuite/gcc.target/i386/pr52883.c | 25 | ||||
-rw-r--r-- | gcc-4.7/gcc/testsuite/gcc.target/i386/pr54157.c | 2 |
9 files changed, 153 insertions, 2 deletions
diff --git a/gcc-4.7/gcc/testsuite/ChangeLog.x32 b/gcc-4.7/gcc/testsuite/ChangeLog.x32 new file mode 100644 index 000000000..acae4a8e8 --- /dev/null +++ b/gcc-4.7/gcc/testsuite/ChangeLog.x32 @@ -0,0 +1,34 @@ +2012-08-24 H.J. Lu <hongjiu.lu@intel.com> + + PR debug/52857 + * gcc.target/i386/pr52857-1.c: New. + * gcc.target/i386/pr52857-2.c: Likewise. + +2012-08-10 H.J. Lu <hongjiu.lu@intel.com> + + * gcc.target/i386/pr54157.c (dg-options): Add -maddress-mode=long. + +2012-04-11 H.J. Lu <hongjiu.lu@intel.com> + + PR rtl-optimization/52876 + * gcc.target/i386/pr52876.c: New. + +2012-04-09 Uros Bizjak <ubizjak@gmail.com> + + PR target/52883 + * gcc.target/i386/pr52883.c: New testcase. + +2012-04-05 Uros Bizjak <ubizjak@gmail.com> + + PR target/52882 + * gcc.target/i386/pr52882.c: New test. + +2012-03-11 Uros Bizjak <ubizjak@gmail.com> + + PR target/52530 + * gcc.dg/torture/pr52530.c: New test. + +2012-03-04 H.J. Lu <hongjiu.lu@intel.com> + + PR target/52146 + * gcc.target/i386/pr52146.c: Update final-scan to allow $-18874240. diff --git a/gcc-4.7/gcc/testsuite/gcc.dg/torture/pr52530.c b/gcc-4.7/gcc/testsuite/gcc.dg/torture/pr52530.c new file mode 100644 index 000000000..d32ea828c --- /dev/null +++ b/gcc-4.7/gcc/testsuite/gcc.dg/torture/pr52530.c @@ -0,0 +1,30 @@ +/* { dg-do run } */ + +extern void abort (void); + +struct foo +{ + int *f; + int i; +}; + +int baz; + +void __attribute__ ((noinline)) +bar (struct foo x) +{ + *(x.f) = x.i; +} + +int +main () +{ + struct foo x = { &baz, 0xdeadbeef }; + + bar (x); + + if (baz != 0xdeadbeef) + abort (); + + return 0; +} diff --git a/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52146.c b/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52146.c index a4804e677..4eb91c06d 100644 --- a/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52146.c +++ b/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52146.c @@ -15,4 +15,4 @@ test2 (void) *apic_tpr_addr = 0; } -/* { dg-final { scan-assembler-not "-18874240" } } */ +/* { dg-final { scan-assembler-not "\[,\\t \]+-18874240" } } */ diff --git a/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52857-1.c b/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52857-1.c new file mode 100644 index 000000000..16fd78f96 --- /dev/null +++ b/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52857-1.c @@ -0,0 +1,10 @@ +/* { dg-do compile { target { ! { ia32 } } } } */ +/* { dg-options "-g -O -mx32 -maddress-mode=long" } */ + +extern void get_BID128 (int *); +void +__bid128_div (void) +{ + int res; + get_BID128 (&res); +} diff --git a/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52857-2.c b/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52857-2.c new file mode 100644 index 000000000..879240a75 --- /dev/null +++ b/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52857-2.c @@ -0,0 +1,8 @@ +/* { dg-do compile { target { ! { ia32 } } } } */ +/* { dg-options "-g -O -mx32 -maddress-mode=long" } */ + +void uw_init_context_1 (void *); +void _Unwind_ForcedUnwind (void) +{ + uw_init_context_1 (__builtin_dwarf_cfa ()); +} diff --git a/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52876.c b/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52876.c new file mode 100644 index 000000000..6d5e47a94 --- /dev/null +++ b/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52876.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { x32 } } } */ +/* { dg-options "-O2 -mx32 -maddress-mode=long" } */ + +extern void abort (void); + +long long li; + +long long +__attribute__ ((noinline)) +testfunc (void* addr) +{ + li = (long long)(int)addr; + li &= 0xffffffff; + return li; +} + +int main (void) +{ + volatile long long rv_test; + rv_test = testfunc((void*)0x87651234); + if (rv_test != 0x87651234ULL) + abort (); + + return 0; +} diff --git a/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52882.c b/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52882.c new file mode 100644 index 000000000..5f0f12a72 --- /dev/null +++ b/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52882.c @@ -0,0 +1,19 @@ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct S1 { + int f0; + int f1; +}; + +int fn1 (); +void fn2 (struct S1); + +void +fn3 () { + struct S1 a = { 1, 0 }; + if (fn1 ()) + fn2 (a); + for (; a.f1;) { + } +} diff --git a/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52883.c b/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52883.c new file mode 100644 index 000000000..766e87ee1 --- /dev/null +++ b/gcc-4.7/gcc/testsuite/gcc.target/i386/pr52883.c @@ -0,0 +1,25 @@ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +int a, b, d, e, f, i, j, k, l, m; +unsigned c; +int g[] = { }, h[0]; + +int +fn1 () { + return 0; +} + +void +fn2 () { + c = 0; + e = 0; + for (;; e = 0) + if (f > j) { + k = fn1 (); + l = (d || k) * b; + m = l * a; + h[0] = m <= i; + } else + i = g[c]; +} diff --git a/gcc-4.7/gcc/testsuite/gcc.target/i386/pr54157.c b/gcc-4.7/gcc/testsuite/gcc.target/i386/pr54157.c index 59fcd792b..b5c4528b8 100644 --- a/gcc-4.7/gcc/testsuite/gcc.target/i386/pr54157.c +++ b/gcc-4.7/gcc/testsuite/gcc.target/i386/pr54157.c @@ -1,5 +1,5 @@ /* { dg-do compile { target { ! { ia32 } } } } */ -/* { dg-options "-O2 -mx32 -ftree-vectorize" } */ +/* { dg-options "-O2 -mx32 -maddress-mode=long -ftree-vectorize" } */ struct s2{ int n[24 -1][24 -1][24 -1]; |