RDSSPD, RDSSPQ

Read Shadow puntero de pila

estableVMJITAOTinstruccion

Codificaciones

OpcodeInstruccionOp/En64 bitsCompat/LegacyDescripcion
F3 0F 1E /1 (mod=11)RDSSPD r32RValidoValidoCopie 32 bits de sombra puntero de pila (SSP) a r32.
F3 REX.W 0F 1E /1 (mod=11)RDSSPQ r64RValidoNo codificableCopia sombra puntero de pila (SSP) a r64.

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.

R

  1. modrm.rm escriturabyte 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

Copia el registro de la sombra actual puntero de pila (SSP) al destino de registro. Este código de operación es un NOP cuando las pilas de sombra CET no están habilitadas y en los procesadores que no soportan CET.

Operación

IF CPL = 3
    IF CR4.CET & IA32_U_CET.SH_STK_EN
          IF (operand size is 64 bit)
                THEN
                      Dest := SSP;
                ELSE
                      Dest := SSP[31:0];
          FI;
    FI;

ELSE
    IF CR4.CET & IA32_S_CET.SH_STK_EN
          IF (operand size is 64 bit)
                THEN
                      Dest := SSP;
                ELSE
                      Dest := SSP[31:0];
          FI;
    FI;

FI;

Banderas afectadas

None.

C/C++ Compilador Equivalente Intrínseco

RDSSPD__int32 _rdsspd_i32(void); RDSSPQ__int64 _rdsspq_i64(void);

Excepciones

Modo real
#UDSi se utiliza el prefijo LOCK.
Modo protegido
#UDSi se utiliza el prefijo LOCK.
Modo virtual-8086
#UDSi se utiliza el prefijo LOCK.
Modo de compatibilidad
#UDSi se utiliza el prefijo LOCK.
Modo de 64 bits
#UDSi se utiliza el prefijo LOCK.

Fuentes