diff mbox series

x86: Properly check FEATURE_AESKLE

Message ID 20220321135628.382868-1-hjl.tools@gmail.com
State New
Headers show
Series x86: Properly check FEATURE_AESKLE | expand

Commit Message

H.J. Lu March 21, 2022, 1:56 p.m. UTC
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.
---
 gcc/common/config/i386/cpuinfo.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Uros Bizjak March 21, 2022, 9:29 p.m. UTC | #1
On Mon, Mar 21, 2022 at 2:56 PM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> 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.

LGTM.

Thanks,
Uros.

> ---
>  gcc/common/config/i386/cpuinfo.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/gcc/common/config/i386/cpuinfo.h b/gcc/common/config/i386/cpuinfo.h
> index 61b1a0f291c..239759dc766 100644
> --- a/gcc/common/config/i386/cpuinfo.h
> +++ b/gcc/common/config/i386/cpuinfo.h
> @@ -779,11 +779,11 @@ get_available_features (struct __processor_model *cpu_model,
>    /* Get Advanced Features at level 0x19 (eax = 0x19).  */
>    if (max_cpuid_level >= 0x19)
>      {
> -      set_feature (FEATURE_AESKLE);
> -      __cpuid (19, eax, ebx, ecx, edx);
> +      __cpuid (0x19, eax, ebx, ecx, edx);
>        /* Check if OS support keylocker.  */
>        if (ebx & bit_AESKLE)
>         {
> +         set_feature (FEATURE_AESKLE);
>           if (ebx & bit_WIDEKL)
>             set_feature (FEATURE_WIDEKL);
>           if (has_kl)
> --
> 2.35.1
>
H.J. Lu March 21, 2022, 9:51 p.m. UTC | #2
On Mon, Mar 21, 2022 at 2:29 PM Uros Bizjak <ubizjak@gmail.com> wrote:
>
> On Mon, Mar 21, 2022 at 2:56 PM H.J. Lu <hjl.tools@gmail.com> wrote:
> >
> > 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.
>
> LGTM.

OK for backport?

Thanks.

> Thanks,
> Uros.
>
> > ---
> >  gcc/common/config/i386/cpuinfo.h | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/gcc/common/config/i386/cpuinfo.h b/gcc/common/config/i386/cpuinfo.h
> > index 61b1a0f291c..239759dc766 100644
> > --- a/gcc/common/config/i386/cpuinfo.h
> > +++ b/gcc/common/config/i386/cpuinfo.h
> > @@ -779,11 +779,11 @@ get_available_features (struct __processor_model *cpu_model,
> >    /* Get Advanced Features at level 0x19 (eax = 0x19).  */
> >    if (max_cpuid_level >= 0x19)
> >      {
> > -      set_feature (FEATURE_AESKLE);
> > -      __cpuid (19, eax, ebx, ecx, edx);
> > +      __cpuid (0x19, eax, ebx, ecx, edx);
> >        /* Check if OS support keylocker.  */
> >        if (ebx & bit_AESKLE)
> >         {
> > +         set_feature (FEATURE_AESKLE);
> >           if (ebx & bit_WIDEKL)
> >             set_feature (FEATURE_WIDEKL);
> >           if (has_kl)
> > --
> > 2.35.1
> >
Uros Bizjak March 21, 2022, 10:05 p.m. UTC | #3
On Mon, Mar 21, 2022 at 10:51 PM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> On Mon, Mar 21, 2022 at 2:29 PM Uros Bizjak <ubizjak@gmail.com> wrote:
> >
> > On Mon, Mar 21, 2022 at 2:56 PM H.J. Lu <hjl.tools@gmail.com> wrote:
> > >
> > > 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.
> >
> > LGTM.
>
> OK for backport?

Looks safe, so OK.

Thanks,
Uros.

>
> Thanks.
>
> > Thanks,
> > Uros.
> >
> > > ---
> > >  gcc/common/config/i386/cpuinfo.h | 4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/gcc/common/config/i386/cpuinfo.h b/gcc/common/config/i386/cpuinfo.h
> > > index 61b1a0f291c..239759dc766 100644
> > > --- a/gcc/common/config/i386/cpuinfo.h
> > > +++ b/gcc/common/config/i386/cpuinfo.h
> > > @@ -779,11 +779,11 @@ get_available_features (struct __processor_model *cpu_model,
> > >    /* Get Advanced Features at level 0x19 (eax = 0x19).  */
> > >    if (max_cpuid_level >= 0x19)
> > >      {
> > > -      set_feature (FEATURE_AESKLE);
> > > -      __cpuid (19, eax, ebx, ecx, edx);
> > > +      __cpuid (0x19, eax, ebx, ecx, edx);
> > >        /* Check if OS support keylocker.  */
> > >        if (ebx & bit_AESKLE)
> > >         {
> > > +         set_feature (FEATURE_AESKLE);
> > >           if (ebx & bit_WIDEKL)
> > >             set_feature (FEATURE_WIDEKL);
> > >           if (has_kl)
> > > --
> > > 2.35.1
> > >
>
>
>
> --
> H.J.
diff mbox series

Patch

diff --git a/gcc/common/config/i386/cpuinfo.h b/gcc/common/config/i386/cpuinfo.h
index 61b1a0f291c..239759dc766 100644
--- a/gcc/common/config/i386/cpuinfo.h
+++ b/gcc/common/config/i386/cpuinfo.h
@@ -779,11 +779,11 @@  get_available_features (struct __processor_model *cpu_model,
   /* Get Advanced Features at level 0x19 (eax = 0x19).  */
   if (max_cpuid_level >= 0x19)
     {
-      set_feature (FEATURE_AESKLE);
-      __cpuid (19, eax, ebx, ecx, edx);
+      __cpuid (0x19, eax, ebx, ecx, edx);
       /* Check if OS support keylocker.  */
       if (ebx & bit_AESKLE)
 	{
+	  set_feature (FEATURE_AESKLE);
 	  if (ebx & bit_WIDEKL)
 	    set_feature (FEATURE_WIDEKL);
 	  if (has_kl)