aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2011-07-22 16:04:02 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2011-07-22 09:04:02 -0700
commit3de69514c3f04c875510f9e3fbc2aeeccf80087c (patch)
tree84442df1d2fb6496750b81ecaf17b6160c110a8f
parent49f6f4f7e8aa947b360cd4e4574fc1becd494ce9 (diff)
downloadgcc-3de69514c3f04c875510f9e3fbc2aeeccf80087c.zip
gcc-3de69514c3f04c875510f9e3fbc2aeeccf80087c.tar.gz
gcc-3de69514c3f04c875510f9e3fbc2aeeccf80087c.tar.bz2
Disallow MS ABI in x32 mode.
gcc/ 2011-07-22 H.J. Lu <hongjiu.lu@intel.com> * config/i386/i386.c (ix86_option_override_internal): Disallow MS ABI in x32 mode. (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi only for TARGET_LP64. (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT. gcc/testsuite/ 2011-07-22 H.J. Lu <hongjiu.lu@intel.com> * gcc/testsuite/gcc.target/i386/avx-vzeroupper-16.c: Only run on lp64 targets. * gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c: Likewise. * gcc/testsuite/gcc.target/i386/avx-vzeroupper-18.c: Likewise. * gcc/testsuite/gcc.target/i386/pr43662.c: Likewise. * gcc/testsuite/gcc.target/i386/pr43869.c: Likewise. * gcc.target/x86_64/abi/callabi/callabi.exp: Check ilp32 instead of ia32. From-SVN: r176634
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/i386/i386.c7
-rw-r--r--gcc/testsuite/ChangeLog12
-rw-r--r--gcc/testsuite/gcc.target/i386/avx-vzeroupper-16.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/avx-vzeroupper-18.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/pr43662.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/pr43869.c2
-rw-r--r--gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp2
9 files changed, 32 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index decebb4..6ec4ecd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2011-07-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_option_override_internal): Disallow
+ MS ABI in x32 mode.
+ (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
+ only for TARGET_LP64.
+ (ix86_handle_abi_attribute): Check TARGET_LP64 instead of
+ TARGET_64BIT.
+
2011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 6517064..96263ed 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -3133,6 +3133,9 @@ ix86_option_override_internal (bool main_args_p)
if (!global_options_set.x_ix86_abi)
ix86_abi = DEFAULT_ABI;
+ if (ix86_abi == MS_ABI && TARGET_X32)
+ error ("MS ABI not supported in x32 mode");
+
if (global_options_set.x_ix86_cmodel)
{
switch (ix86_cmodel)
@@ -25493,7 +25496,7 @@ ix86_init_builtins (void)
ix86_init_mmx_sse_builtins ();
- if (TARGET_64BIT)
+ if (TARGET_LP64)
ix86_init_builtins_va_builtins_abi ();
#ifdef SUBTARGET_INIT_BUILTINS
@@ -29313,7 +29316,7 @@ ix86_handle_abi_attribute (tree *node, tree name,
*no_add_attrs = true;
return NULL_TREE;
}
- if (!TARGET_64BIT)
+ if (!TARGET_LP64)
{
warning (OPT_Wattributes, "%qE attribute only available for 64-bit",
name);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d4f641e..61a2440 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,15 @@
+2011-07-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcc/testsuite/gcc.target/i386/avx-vzeroupper-16.c: Only run
+ on lp64 targets.
+ * gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c: Likewise.
+ * gcc/testsuite/gcc.target/i386/avx-vzeroupper-18.c: Likewise.
+ * gcc/testsuite/gcc.target/i386/pr43662.c: Likewise.
+ * gcc/testsuite/gcc.target/i386/pr43869.c: Likewise.
+
+ * gcc.target/x86_64/abi/callabi/callabi.exp: Check ilp32
+ instead of ia32.
+
2011-07-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45819
diff --git a/gcc/testsuite/gcc.target/i386/avx-vzeroupper-16.c b/gcc/testsuite/gcc.target/i386/avx-vzeroupper-16.c
index 095640a..bc6e0d2 100644
--- a/gcc/testsuite/gcc.target/i386/avx-vzeroupper-16.c
+++ b/gcc/testsuite/gcc.target/i386/avx-vzeroupper-16.c
@@ -1,4 +1,4 @@
-/* { dg-do compile { target { ! { ia32 } } } } */
+/* { dg-do compile { target lp64 } } */
/* { dg-options "-O2 -mavx -mabi=ms -mtune=generic -dp" } */
typedef float __m256 __attribute__ ((__vector_size__ (32), __may_alias__));
diff --git a/gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c b/gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c
index ef293b3..5d3aa48 100644
--- a/gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c
+++ b/gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c
@@ -1,4 +1,4 @@
-/* { dg-do compile { target { ! { ia32 } } } } */
+/* { dg-do compile { target lp64 } } */
/* { dg-options "-O2 -mavx -mabi=ms -mtune=generic -dp" } */
typedef float __m256 __attribute__ ((__vector_size__ (32), __may_alias__));
diff --git a/gcc/testsuite/gcc.target/i386/avx-vzeroupper-18.c b/gcc/testsuite/gcc.target/i386/avx-vzeroupper-18.c
index 046b7ef..0630752 100644
--- a/gcc/testsuite/gcc.target/i386/avx-vzeroupper-18.c
+++ b/gcc/testsuite/gcc.target/i386/avx-vzeroupper-18.c
@@ -1,4 +1,4 @@
-/* { dg-do compile { target { ! { ia32 } } } } */
+/* { dg-do compile { target lp64 } } */
/* { dg-options "-O0 -mavx -mabi=ms -mtune=generic -dp" } */
typedef float __m256 __attribute__ ((__vector_size__ (32), __may_alias__));
diff --git a/gcc/testsuite/gcc.target/i386/pr43662.c b/gcc/testsuite/gcc.target/i386/pr43662.c
index 5e75dc5..2896a1a 100644
--- a/gcc/testsuite/gcc.target/i386/pr43662.c
+++ b/gcc/testsuite/gcc.target/i386/pr43662.c
@@ -1,4 +1,4 @@
-/* { dg-do compile { target { ! { ia32 } } } } */
+/* { dg-do compile { target lp64 } } */
/* { dg-options "-O2" } */
void __attribute__ ((ms_abi)) foo (void)
diff --git a/gcc/testsuite/gcc.target/i386/pr43869.c b/gcc/testsuite/gcc.target/i386/pr43869.c
index 5513b19..4157db1 100644
--- a/gcc/testsuite/gcc.target/i386/pr43869.c
+++ b/gcc/testsuite/gcc.target/i386/pr43869.c
@@ -1,4 +1,4 @@
-/* { dg-do compile { target { ! { ia32 } } } } */
+/* { dg-do compile { target lp64 } } */
int __attribute__((__noinline__))
bugged(float f1, float f2, float f3, float f4,
diff --git a/gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp b/gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp
index b0cba17..e76d0c1 100644
--- a/gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp
+++ b/gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp
@@ -20,7 +20,7 @@
load_lib gcc-dg.exp
if { (![istarget x86_64-*-*] && ![istarget i?86-*-*])
- || [is-effective-target ia32] } then {
+ || [is-effective-target ilp32] } then {
return
}