MOVHLPS

Mover valores en coma flotante de precisión simple empaquetados Alto a Bajo

estableVMJITAOTinstruccion

Codificaciones

OpcodeInstruccionOp/En64 bitsCompat/LegacyDescripcion
NP 0F 12 /rMOVHLPS xmm1, xmm2RMValidoValidoMueva dos valores en coma flotante de precisión simple empaquetados de alta cuádpalabra de xmm2 a baja cuádpalabra de xmm1.
VEX.128.0F.WIG 12 /rVMOVHLPS xmm1, xmm2, xmm3RVMValidoValidoCombina dos valores en coma flotante de precisión simple empaquetados de alta cuádpalabra de xmm3 y baja cuádpalabra de xmm2.
EVEX.128.0F.W0 12 /rVMOVHLPS xmm1, xmm2, xmm3 Op/En Oper RM ModRM RVM ModRMRVMValidoValido2.valores en coma flotante de precisión simple empaquetadosInstrucción OAVX10.1 operandoCodificación1 de alta cuadrículaxmm3y bajo quadword dexmm2. y 1operando 2 operando 3 operando4 :reg (w) Mo dRM:r/m (r) N/A N/A :reg (w)VEX.vvvv (r) / EVEX.vvvvr) ModRM:r/m (r) N/A

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.

RM

  1. modrm.reg escriturabyte ModRM, campo reg (bits 5-3)
  2. modrm.rm lecturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pide

RVM

  1. modrm.reg escriturabyte ModRM, campo reg (bits 5-3)
  2. VEX.vvvv (r) /
  3. modrm.rm lecturabyte 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

Esta instrucción no se puede utilizar para la memoria para registrar movimientos.

Forma de 128 bits de dos brazos:

Mueva dos valores en coma flotante de precisión simple empaquetados del alto cuádpago del segundo argumento XMM (segundo operando) al bajo cuádpago del primer registro XMM (primer argumento). El quadword en bits 127:64 del operando de destino se deja sin cambios. Bits (MAXVL-1:128) del registro de destino correspondiente no se modifican.

128-bit y EVEX forma de tres brazos:

Mueva dos valores en coma flotante de precisión simple empaquetados del alto cuádpago del tercer argumento XMM (tercer operando) al bajo cuádpago del destino (primer operando). Copie el alto cuadword del segundo argumento XMM (segundo operando) al alto cuadword del destino (primer operando). Bits (MAXVL-1:128) del registro de destino correspondiente se ponen a cero.

Si VMOVHLPS está codificado con VEX.L o EVEX.L'L= 1, un intento de ejecutar la instrucción codificada con VEX.L o EVEX.L'L= 1 causará una excepción #UD.

Operación

MOVHLPS (128-bit Two-Argument Form)
DEST[63:0] := SRC[127:64]
DEST[MAXVL-1:64] (Unmodified)

VMOVHLPS (128-bit Three-Argument Form - VEX & EVEX)
DEST[63:0] := SRC2[127:64]
DEST[127:64] := SRC1[127:64]
DEST[MAXVL-1:128] := 0

Intel C/C++ compilador intrínseco

MOVHLPS __m128 _mm_movehl_ps(__m128 a, __m128 b);

SIMD coma flotante Excepciones

None.

  1. ModRM.MOD = 011B required.

Otras excepciones

Instrucciones no codificadas en EVEX, ver Tabla 2-24, "Tipo 7 Condiciones de Excepción," adicionalmente:

#UD               If VEX.L = 1.

EVEX-encoded instruction, ver Excepciones Tipo E7NM.128 en la tabla 2-57, "Tipo E7NM Clase Condiciones de Excepción."

Fuentes