Hello!

> This patch is about to support Intel Key Locker extension.
>
> Key Locker provides a mechanism to encrypt and decrypt data with an AES
key without having access to the raw key value.
>
> For more details, please refer to
https://software.intel.com/content/dam/develop/external/us/en/documents/343965-intel-key-locker-specification.pdf
.
>
> Bootstrap ok, regression test on i386/x86 backend is ok.
>
> OK for master?

@@ -1414,6 +1418,13 @@ enum reg_class
   FP_TOP_REG, FP_SECOND_REG, /* %st(0) %st(1) */
   FLOAT_REGS,
   SSE_FIRST_REG,
+  SSE_SECOND_REG,
+  SSE_THIRD_REG,
+  SSE_FOURTH_REG,
+  SSE_FIFTH_REG,
+  SSE_SIXTH_REG,
+  SSE_SEVENTH_REG,
+  SSE_EIGHTH_REG,
   NO_REX_SSE_REGS,
   SSE_REGS,
   ALL_SSE_REGS,
@@ -1474,6 +1485,13 @@ enum reg_class
    "FP_TOP_REG", "FP_SECOND_REG", \
    "FLOAT_REGS", \
    "SSE_FIRST_REG", \
+   "SSE_SECOND_REG", \
+   "SSE_THIRD_REG", \
+   "SSE_FOURTH_REG", \
+   "SSE_FIFTH_REG", \
+   "SSE_SIXTH_REG", \
+   "SSE_SEVENTH_REG", \
+   "SSE_EIGHTH_REG", \
    "NO_REX_SSE_REGS", \
    "SSE_REGS", \
    "ALL_SSE_REGS", \
@@ -1513,6 +1531,13 @@ enum reg_class
      { 0x200,        0x0,   0x0 }, /* FP_SECOND_REG */ \
     { 0xff00,        0x0,   0x0 }, /* FLOAT_REGS */ \
   { 0x100000,        0x0,   0x0 }, /* SSE_FIRST_REG */ \
+  { 0x200000,        0x0,   0x0 }, /* SSE_SECOND_REG */ \
+  { 0x400000,        0x0,   0x0 }, /* SSE_THIRD_REG */ \
+  { 0x800000,        0x0,   0x0 }, /* SSE_FOURTH_REG */ \
+ { 0x1000000,        0x0,   0x0 }, /* SSE_FIFTH_REG */ \
+ { 0x2000000,        0x0,   0x0 }, /* SSE_SIXTH_REG*/ \
+ { 0x4000000,        0x0,   0x0 }, /* SSE_SEVENTH_REG */ \
+ { 0x8000000,        0x0,   0x0 }, /* SSE_EIGHTH_REG */ \
  { 0xff00000,        0x0,   0x0 }, /* NO_REX_SSE_REGS */ \
  { 0xff00000,    0xff000,   0x0 }, /* SSE_REGS */ \
  { 0xff00000, 0xfffff000,   0xf }, /* ALL_SSE_REGS */ \

IIRC, adding a new regclass is O(n^2), so it should be avoided. I
think that the new patterns should follow the same path as vzeroall
and vzeroupper patterns, where we emit the pattern with explicit hard
regs.

BTW: We do have SSE_FIRST_REG class, but this class was added to solve
some reload problems in the past by marking %xmm0 as likely spilled.

Uros.

Reply via email to