get_available_features has /* Get Advanced Features at level 0x19 (eax = 0x19). */ if (max_cpuid_level >= 0x19) { set_feature (FEATURE_AESKLE); __cpuid (19, eax, ebx, ecx, edx); ^^^ Should be 0x19. /* Check if OS support keylocker. */ if (ebx & bit_AESKLE) { if (ebx & bit_WIDEKL) set_feature (FEATURE_WIDEKL); if (has_kl) set_feature (FEATURE_KL); } }
The master branch has been updated by H.J. Lu <hjl@gcc.gnu.org>: https://gcc.gnu.org/g:d0363a80690a299179d010c1d8a6d6430e7eb73f commit r12-7742-gd0363a80690a299179d010c1d8a6d6430e7eb73f Author: H.J. Lu <hjl.tools@gmail.com> Date: Mon Mar 21 06:50:14 2022 -0700 x86: Properly check FEATURE_AESKLE 1. Pass 0x19 to __cpuid for bit_AESKLE. 2. Enable FEATURE_AESKLE only if bit_AESKLE is set. PR target/104998 * common/config/i386/cpuinfo.h (get_available_features): Pass 0x19 to __cpuid for bit_AESKLE. Enable FEATURE_AESKLE only if bit_AESKLE is set.
The releases/gcc-11 branch has been updated by H.J. Lu <hjl@gcc.gnu.org>: https://gcc.gnu.org/g:d5a493bd996e79ef175467f4b6cbcc4da119b0a1 commit r11-9675-gd5a493bd996e79ef175467f4b6cbcc4da119b0a1 Author: H.J. Lu <hjl.tools@gmail.com> Date: Mon Mar 21 06:50:14 2022 -0700 x86: Properly check FEATURE_AESKLE 1. Pass 0x19 to __cpuid for bit_AESKLE. 2. Enable FEATURE_AESKLE only if bit_AESKLE is set. PR target/104998 * common/config/i386/cpuinfo.h (get_available_features): Pass 0x19 to __cpuid for bit_AESKLE. Enable FEATURE_AESKLE only if bit_AESKLE is set. (cherry picked from commit d0363a80690a299179d010c1d8a6d6430e7eb73f)
Fixed for GCC 12 and GCC 11.3.