KSHIFTRW, KSHIFTRB, KSHIFTRQ, KSHIFTRD

Registros de máscaras de derechas

estableVMJITAOTinstruccion

Codificaciones

OpcodeInstruccionOp/En64 bitsCompat/LegacyDescripcion
VEX.L0.66.0F3A.W1 30 /rKSHIFTRW k1, k2, imm8RRIValidoValidoCambio derecho 16 bits en k2 por resultado inmediato y escriba en k1. OR AVX10.1
VEX.L0.66.0F3A.W0 30 /rKSHIFTRB k1, k2, imm8RRIValidoValidoShift right 8 bits en k2 por resultado inmediato y escribir en k1. OR AVX10.1
VEX.L0.66.0F3A.W1 31 /rKSHIFTRQ k1, k2, imm8RRIValidoValidoShift right 64 bits en k2 por resultado inmediato y escribir en k1. OR AVX10.1
VEX.L0.66.0F3A.W0 31 /rKSHIFTRD k1, k2, imm8RRIValidoValidoShift right 32 bits en k2 por resultado inmediato y escribir en k1. OR AVX10.1

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.

RRI

  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

Coste medido

Cargando las mediciones de arch-data...

Descripción

Cambios 8/16/32/64 bits en el segundo operand (source operand) derecho por el conteo especificado en inmediata y coloque los menos significativos 8/16/32/64 bits del resultado en el operado de destino. Los bits más altos del destino son cero-extended. El destino está fijado a cero si el valor de cuenta es mayor que 7 (para el cambio de byte), 15 (para el cambio de palabra), 31 (para el cambio de doble palabra) o 63 (para el cambio de cuadrilátero).

Operación

KSHIFTRW
COUNT := imm8[7:0]
DEST[MAX_KL-1:0] := 0
IF COUNT <=15

    THEN DEST[15:0] := SRC1[15:0] >> COUNT;
FI;

KSHIFTRB

COUNT := imm8[7:0]
DEST[MAX_KL-1:0] := 0
IF COUNT <=7

            THEN DEST[7:0] := SRC1[7:0] >> COUNT;
FI;

KSHIFTRQ

COUNT := imm8[7:0]
DEST[MAX_KL-1:0] := 0
IF COUNT <=63

            THEN DEST[63:0] := SRC1[63:0] >> COUNT;
FI;


KSHIFTRD
COUNT := imm8[7:0]
DEST[MAX_KL-1:0] := 0
IF COUNT <=31

            THEN DEST[31:0] := SRC1[31:0] >> COUNT;
FI;

Banderas afectadas

None.

SIMD coma flotante Excepciones

None.

Otras excepciones

Ver Tabla 2-65, "TYPE K20 Excepción Definición (VEX-Encoded OpMask Instrucciones w/o Memoria Arg)."

Fuentes