PINSRW

Insertar Word

estableVMJITAOTinstruccion

Codificaciones

OpcodeInstruccionOp/En64 bitsCompat/LegacyDescripcion
NP 0F C4 /r ib1PINSRW mm, r32/m16, imm8AValidoValidoInsertar la palabra baja de r3 o de m16 a mm en la posición de la palabra especificada por imm8.
66 0F C4 /r ibPINSRW xmm, r32/m16, imm8AValidoValidoMueva la palabra baja de r3 o de m16 a xmm en la posición de la palabra especificada por imm8.
VEX.128.66.0F.W0 C4 /r ibVPINSRW xmm1, xmm2, r32/m16, imm8Bv2ValidoInsertar la palabra de r32/m16 en el offset indicado por imm8 en el valor de xmm2 y el resultado de la tienda en xmm1.
EVEX.128.66.0F.WIG C4 /r ibVPINSRW xmm1, xmm2, r32/m16, imm8CValidoValidoInsertar la palabra de r32/m16 en el AVX10.1 offset indicado por imm8 en el valor de xmm2 y el resultado de la tienda 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.

A

  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
  3. imm8byte inmediato que sigue a la instruccion

B

  1. modrm.reg escriturabyte ModRM, campo reg (bits 5-3)
  2. vex.vvvv lecturaprefijo VEX, campo vvvv (invertido)
  3. modrm.rm lecturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pide
  4. imm8byte inmediato que sigue a la instruccion

C

  1. modrm.reg escriturabyte ModRM, campo reg (bits 5-3)
  2. evex.vvvv lecturaprefijo EVEX, campo vvvv (invertido)
  3. modrm.rm lecturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pide
  4. imm8byte inmediato que sigue a la instruccion

Tupla: Tuple1 Scalar

Coste medido

Cargando las mediciones de arch-data...

Descripción

Tres instrucciones operando MMX y SSE:

Copia una palabra del operando de origen e inserta en el operando de destino en el lugar especificado con el conteo operando. (Las otras palabras en el registro de destino se quedan sin tocar.) el operando de origen puede ser un registro de proposito general o una ubicación de memoria de 16 bits. (Cuando el operando de origen es un registro de proposito general, se copia la palabra baja del registro.) el operando de destino puede ser un registro de tecnología MMX o un registro XMM. El conteo operando es un inmediato de 8 bits. Al especificar una ubicación de palabras en un registro de tecnología MMX, los 2 bits menos significativos del recuento operando especifican la ubicación; para un registro XMM, los 3 bits menos significativos especifican la ubicación.

Bits (MAXVL-1:128) del correspondiente registro de destino YMM no se modifican.

Cuatro instrucciones operando AVX y AVX-512:

Combina una palabra del primer operando de origen con el segundo operando de origen, e inserta en el operando de destino en la ubicación especificada con el conteo operando. El segundo operando de origen puede ser un registro de proposito general o una ubicación de memoria de 16 bits. (Cuando el operando de origen es un registro de proposito general, se copia la palabra baja del registro.) La primera fuente y operandos de destino son los registros XMM. El conteo operando es un inmediato de 8 bits. Al especificar una ubicación de la palabra, los 3 bits menos significativos especifican la ubicación.

Bits (MAXVL-1:128) del destino YMM registro se ponen a cero. VEX.L/EVEX.L'L debe ser 0, de lo contrario la instrucción será #UD.

Operación

PINSRW dest, src, imm8 (MMX)
    SEL := imm8[1:0]
    DEST.word[SEL] := src.word[0]

PINSRW dest, src, imm8 (SSE)
    SEL := imm8[2:0]
    DEST.word[SEL] := src.word[0]

VPINSRW dest, src1, src2, imm8 (AVX/AVX512)
    SEL := imm8[2:0]
    DEST := src1
    DEST.word[SEL] := src2.word[0]
    DEST[MAXVL-1:128] := 0

Intel C/C++ compilador intrínseco

PINSRW __m64 _mm_insert_pi16 (__m64 a, int d, int n) PINSRW __m128i _mm_insert_epi16 ( __m128i a, int b, int imm);

Banderas afectadas

None.

Excepciones numéricas

None.

Otras excepciones

Instrucciones codificadas por EVEX, ver Tabla 2-22, "Tipo 5 Condiciones de Excepción".

Instrucciones codificadas por EVEX, ver Tabla 2-59, "Tipo E9NF Clase Condiciones de Excepción."

Additionally:

#UD                  If VEX.L = 1 or EVEX.L'L > 0.

Fuentes