VSHA512MSG1
Realizar un cálculo intermedio para el siguiente mensaje de cuatro SHA512
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
VEX.256.F2.0F38.W0 CC 11:rrr:bbb | VSHA512MSG1 ymm1, xmm2 | A | Valido | Valido | Realiza un cálculo intermedio para el mensaje SHA512 siguiente cuatro SHA512 qwords usando el mensaje anterior qwords de ymm1 y xmm2, almacenando el resultado en ymm1. |
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.
A
modrm.reglectura y escriturabyte 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 pide
Coste medido
Cargando las mediciones de arch-data...
Descripción
La instrucción VSHA512MSG1 es una de las dos instrucciones de programación del mensaje SHA512. La instrucción realiza un cálculo intermedio para los siguientes cuatro qwords de mensaje SHA512.
See https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf for more information on the SHA512 standard.
Operación
define ROR64(qword, n):
count := n % 64
dest := (qword >> count) | (qword << (64-count))
return dest
define SHR64(qword, n):
return qword >> n
define s0(qword):
return ROR64(qword,1) ^ ROR64(qword, 8) ^ SHR64(qword, 7)
VSHA512MSG1 SRCDEST, SRC1
W[4] := SRC1.qword[0]
W[3] := SRCDEST.qword[3]
W[2] := SRCDEST.qword[2]
W[1] := SRCDEST.qword[1]
W[0] := SRCDEST.qword[0]
SRCDEST.qword[3] := W[3] + s0(W[4])
SRCDEST.qword[2] := W[2] + s0(W[3])
SRCDEST.qword[1] := W[1] + s0(W[2])
SRCDEST.qword[0] := W[0] + s0(W[1])Banderas afectadas
None.
Intel C/C++ compilador intrínseco
VSHA512MSG1 __m256i _mm256_sha512msg1_epi64 (__m256i __A, __m128i __B);SIMD coma flotante Excepciones
None.
Otras excepciones
Ver Tabla 2-23, "Tipo 6 Condiciones de Excepción de Clase".