AESKEYGENASSIST
AES Ronda clave Asistencia de generación
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
66 0F 3A DF /r ib | AESKEYGENASSIST xmm1, xmm2/m128, imm8 | RMI | Valido | Valido | Asistencia en la generación AES redonda clave con 8 bits Round Constant (RCON) especificado en el byte inmediato, operando en 128 bits de datos especificados en xmm2/m128 y almacena el resultado en xmm1. |
VEX.128.66.0F3A.WIG DF /r ib | VAESKEYGENASSIST xmm1, xmm2/m128, imm8 | RMI | Valido | Valido | Asistencia en AES redondo clave generación con 8 y AVX banderas bits Round Constant (RCON) especificado en el byte inmediato, operando en 128 bits de datos especificados en xmm2/m128 y almacena el resultado en xmm1. |
Codificacion de operandos
Cada modo es un valor de la columna Op/En de arriba. Dice en que campo de la instruccion codificada va cada operando, en el orden en que se escriben, y si la instruccion lo lee, lo escribe o ambas cosas.
RMI
modrm.regescriturabyte ModRM, campo reg (bits 5-3)modrm.rmlecturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pideimm8byte inmediato que sigue a la instruccion
Coste medido
Cargando las mediciones de arch-data...
Descripción
Ayuda en la ampliación del Cifra AES clave, mediante pasos de cálculo hacia la generación de una ronda clave para el cifrado, utilizando datos de 128 bits especificados en el operando de origen y una constante de 8 bits redonda especificada como un inmediato, almacenar el resultado en el operando de destino.
El operando de destino es un registro XMM. El operando de origen puede ser un registro XMM o una ubicación de memoria de 128 bits.
128-bit Legacy SSE versión: Bits (MAXVL-1:128) del correspondiente registro de destino YMM no se modifican.
VEX.128 versión codificada: Bits (MAXVL-1:128) del destino YMM registro se ponen a cero.
Nota: En VEX-versiones codificadas, VEX.vvvv está reservado y debe ser 1111b, de lo contrario las instrucciones #UD.
Operación
AESKEYGENASSIST
X3[31:0] := SRC [127: 96];
X2[31:0] := SRC [95: 64];
X1[31:0] := SRC [63: 32];
X0[31:0] := SRC [31: 0];
RCON[31:0] := ZeroExtend(imm8[7:0]);
DEST[31:0] := SubWord(X1);
DEST[63:32 ] := RotWord( SubWord(X1) ) XOR RCON;
DEST[95:64] := SubWord(X3);
DEST[127:96] := RotWord( SubWord(X3) ) XOR RCON;
DEST[MAXVL-1:128] (Unmodified)
VAESKEYGENASSIST
X3[31:0] := SRC [127: 96];
X2[31:0] := SRC [95: 64];
X1[31:0] := SRC [63: 32];
X0[31:0] := SRC [31: 0];
RCON[31:0] := ZeroExtend(imm8[7:0]);
DEST[31:0] := SubWord(X1);
DEST[63:32 ] := RotWord( SubWord(X1) ) XOR RCON;
DEST[95:64] := SubWord(X3);
DEST[127:96] := RotWord( SubWord(X3) ) XOR RCON;
DEST[MAXVL-1:128] := 0;Intel C/C++ compilador intrínseco
(V)AESKEYGENASSIST __m128i _mm_aeskeygenassist (__m128i, const int);SIMD coma flotante Excepciones
None.
Otras excepciones
Ver Tabla 2-21, "Tipo 4 Condiciones de Excepción", además:
#UD If VEX.vvvv 1111B.