Add ia32 and x32 effective targets.
authorH.J. Lu <hongjiu.lu@intel.com>
Thu, 7 Jul 2011 18:11:18 +0000 (18:11 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Thu, 7 Jul 2011 18:11:18 +0000 (11:11 -0700)
2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>

* lib/target-supports.exp (check_effective_target_ia32): New.
(check_effective_target_x32): Likewise.
(check_effective_target_vect_cmdline_needed): Also check x32.

From-SVN: r176000

gcc/testsuite/ChangeLog
gcc/testsuite/lib/target-supports.exp

index 0ddca2a9f99ddec376f0425c0c18ed490b22f971..ff76bb04342f7b818f9ed3c72581b75c8a5185dd 100644 (file)
@@ -1,3 +1,9 @@
+2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * lib/target-supports.exp (check_effective_target_ia32): New.
+       (check_effective_target_x32): Likewise.
+       (check_effective_target_vect_cmdline_needed): Also check x32.
+
 2011-07-07  Janis Johnson  <janisjo@codesourcery.com>
 
        * gcc.target/arm/pr40657-2.c: Remove -march option and unneeded
index 476a2e660b3afafd8354878776ff5063c7ef8199..8b9c386f7a883a745a5b7d0bf28693d3ddbd4e7f 100644 (file)
@@ -1512,6 +1512,28 @@ proc check_effective_target_ilp32 { } {
     }]
 }
 
+# Return 1 if we're generating ia32 code using default options, 0
+# otherwise.
+
+proc check_effective_target_ia32 { } {
+    return [check_no_compiler_messages ia32 object {
+       int dummy[sizeof (int) == 4
+                 && sizeof (void *) == 4
+                 && sizeof (long) == 4 ? 1 : -1] = { __i386__ };
+    }]
+}
+
+# Return 1 if we're generating x32 code using default options, 0
+# otherwise.
+
+proc check_effective_target_x32 { } {
+    return [check_no_compiler_messages x32 object {
+       int dummy[sizeof (int) == 4
+                 && sizeof (void *) == 4
+                 && sizeof (long) == 4 ? 1 : -1] = { __x86_64__ };
+    }]
+}
+
 # Return 1 if we're generating 32-bit or larger integers using default
 # options, 0 otherwise.
 
@@ -1713,7 +1735,8 @@ proc check_effective_target_vect_cmdline_needed { } {
        if { [istarget alpha*-*-*]
             || [istarget ia64-*-*]
             || (([istarget x86_64-*-*] || [istarget i?86-*-*])
-                && [check_effective_target_lp64])
+                && ([check_effective_target_x32]
+                    || [check_effective_target_lp64]))
             || ([istarget powerpc*-*-*]
                 && ([check_effective_target_powerpc_spe]
                     || [check_effective_target_powerpc_altivec]))