summaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2015-08-11 17:53:41 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2015-08-11 17:53:41 +0000
commitaca0ff163f3c0422c5b9ff4c2ed9fc87ddc0f399 (patch)
tree02e3ed75828606fc00f2a1cda3ed1a9d417d8cd9 /libgcc
parentb58b6104cb675cda90beb8c4e5c138d19951be70 (diff)
downloadgcc-aca0ff163f3c0422c5b9ff4c2ed9fc87ddc0f399.tar.gz
libgcc/ChangeLog:
PR target/66954 * config/i386/cpuinfo.c (enum processor_features): Add FEATURE_PCLMUL. (get_available_features): Handle FEATURE_PCLMUL. gcc/ChangeLog: PR target/66954 * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL to enum feature_priority and feature_list. (fold_builtin_cpu): Add F_PCLMUL to enum processor_features and isa_names_table. gcc/testsuite/ChangeLog: PR target/66954 * g++.dg/ext/mv25.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226784 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/ChangeLog6
-rw-r--r--libgcc/config/i386/cpuinfo.c5
2 files changed, 10 insertions, 1 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 95a10f22348..062bbe924dd 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,9 @@
+2015-08-11 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/66954
+ * config/i386/cpuinfo.c (enum processor_features): Add FEATURE_PCLMUL.
+ (get_available_features): Handle FEATURE_PCLMUL.
+
2015-08-10 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/cpuinfo.c (get_intel_cpu): Treat model == 0x4f as
diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
index 57711d01bea..25d85e4bedd 100644
--- a/libgcc/config/i386/cpuinfo.c
+++ b/libgcc/config/i386/cpuinfo.c
@@ -101,7 +101,8 @@ enum processor_features
FEATURE_AVX512F,
FEATURE_BMI,
FEATURE_BMI2,
- FEATURE_AES
+ FEATURE_AES,
+ FEATURE_PCLMUL
};
struct __processor_model
@@ -277,6 +278,8 @@ get_available_features (unsigned int ecx, unsigned int edx,
features |= (1 << FEATURE_POPCNT);
if (ecx & bit_AES)
features |= (1 << FEATURE_AES);
+ if (ecx & bit_PCLMUL)
+ features |= (1 << FEATURE_PCLMUL);
if (ecx & bit_SSE3)
features |= (1 << FEATURE_SSE3);
if (ecx & bit_SSSE3)