Disallow MS ABI in x32 mode.
authorH.J. Lu <hongjiu.lu@intel.com>
Fri, 22 Jul 2011 16:04:02 +0000 (16:04 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Fri, 22 Jul 2011 16:04:02 +0000 (09:04 -0700)
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

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/avx-vzeroupper-16.c
gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c
gcc/testsuite/gcc.target/i386/avx-vzeroupper-18.c
gcc/testsuite/gcc.target/i386/pr43662.c
gcc/testsuite/gcc.target/i386/pr43869.c
gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp

index decebb40749b96c1a82d1ca5e4f631be1a1d6f6e..6ec4ecd18ee0b2f527bc7b961b8c1a4b31d33280 100644 (file)
@@ -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
index 6517064299d04a0dca24acd039361a42d645ad9d..96263ed9835253b8d56904905e7fd55ce7550a74 100644 (file)
@@ -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);
index d4f641e486782ea5d51e4c55efa3e1db6e5e2459..61a244017ce6bc38e564730c3018a1730a32590c 100644 (file)
@@ -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
index 095640a5b9c52e4749e4d939470de38a0b25a2fe..bc6e0d23c7d19ed2fa9b6b384f06238f90d2f008 100644 (file)
@@ -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__));
index ef293b3d633ba6668d465e556c5572fe8e036f08..5d3aa48397c89ae89a91a0f6f11a2e344ad02b64 100644 (file)
@@ -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__));
index 046b7ef1f8ebe79cf9fa8587cd2b284eda75e38c..06307525d4614cf91816fb321aac7165f9f1f41c 100644 (file)
@@ -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__));
index 5e75dc541905f6cfa487fd1857007b3244d1f3ba..2896a1a52c37ed69055c17f5646f7cc881887dbe 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-do compile { target { ! { ia32 } } } } */
+/* { dg-do compile { target lp64 } } */
 /* { dg-options "-O2" } */
 
 void __attribute__ ((ms_abi)) foo (void)
index 5513b19f50e75324a63d1bfab63aecb200d92893..4157db1d16854248e0b3cb638e6c9d5283eeac6c 100644 (file)
@@ -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,
index b0cba178fa28bc859c6e93de46f0416b2500badd..e76d0c101508b9d2329da4b666e681a22699f855 100644 (file)
@@ -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
 }