aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2010-05-23 21:57:13 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2010-05-23 14:57:13 -0700
commitcf5b989e821806bf74d6b9d5bc66b7bf1b3da3af (patch)
tree752c4e1a5b8bc2b102f36c18bf155b7ebdfc6208
parentdc5027f47440baef6b984b029fb5c3e5ee59e5ba (diff)
downloadgcc-cf5b989e821806bf74d6b9d5bc66b7bf1b3da3af.zip
gcc-cf5b989e821806bf74d6b9d5bc66b7bf1b3da3af.tar.gz
gcc-cf5b989e821806bf74d6b9d5bc66b7bf1b3da3af.tar.bz2
Properly check OPTION_MASK_ISA_64BIT.
gcc/ 2010-05-23 H.J. Lu <hongjiu.lu@intel.com> PR target/44245 * config/i386/i386.c (def_builtin): Properly check OPTION_MASK_ISA_64BIT. gcc/testsuite/ 2010-05-23 H.J. Lu <hongjiu.lu@intel.com> PR target/44245 * gcc.target/i386/crc32-3.c: New. * gcc.target/i386/crc32-4.c: Likewise. From-SVN: r159768
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/i386.c1
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.target/i386/crc32-3.c10
-rw-r--r--gcc/testsuite/gcc.target/i386/crc32-4.c9
5 files changed, 32 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index da66a28..eb18789 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2010-05-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/44245
+ * config/i386/i386.c (def_builtin): Properly check
+ OPTION_MASK_ISA_64BIT.
+
2010-05-23 Joseph Myers <joseph@codesourcery.com>
* c-decl.c (diagnose_mismatched_decls): Give error for duplicate
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index adcc256..bb9bb64 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -21582,6 +21582,7 @@ def_builtin (int mask, const char *name, enum ix86_builtin_func_type tcode,
{
ix86_builtins_isa[(int) code].isa = mask;
+ mask &= ~OPTION_MASK_ISA_64BIT;
if (mask == 0
|| (mask & ix86_isa_flags) != 0
|| (lang_hooks.builtin_function
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1e748af..4f8e6a2 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2010-05-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/44245
+ * gcc.target/i386/crc32-3.c: New.
+ * gcc.target/i386/crc32-4.c: Likewise.
+
2010-05-23 Joseph Myers <joseph@codesourcery.com>
* gcc.dg/c1x-typedef-1.c, gcc.dg/c1x-typedef-2.c,
diff --git a/gcc/testsuite/gcc.target/i386/crc32-3.c b/gcc/testsuite/gcc.target/i386/crc32-3.c
new file mode 100644
index 0000000..e77d7d9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/crc32-3.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target ilp32 } */
+/* { dg-options "-O2 -mcrc32" } */
+/* { dg-final { scan-assembler "__builtin_ia32_crc32di" } } */
+
+unsigned long long
+crc32d (unsigned long long x, unsigned long long y)
+{
+ return __builtin_ia32_crc32di (x, y);
+}
diff --git a/gcc/testsuite/gcc.target/i386/crc32-4.c b/gcc/testsuite/gcc.target/i386/crc32-4.c
new file mode 100644
index 0000000..65ef4aa
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/crc32-4.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -mno-sse4.2 -mno-crc32" } */
+/* { dg-final { scan-assembler "__builtin_ia32_crc32di" } } */
+
+unsigned long long
+crc32d (unsigned long long x, unsigned long long y)
+{
+ return __builtin_ia32_crc32di (x, y);
+}