INCSSPD, INCSSPQ

Incremento Shadow puntero de pila

estableVMJITAOTinstruccion

Codificaciones

OpcodeInstruccionOp/En64 bitsCompat/LegacyDescripcion
F3 0F AE /5INCSSPD r32RValidoValidoIncremento SSP por 4 * r32[7:0].
F3 REX.W 0F AE /5INCSSPQ r64RValidoNo codificableIncremento SSP por 8 * r64[7:0].

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 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 se puede utilizar para aumentar la sombra actual puntero de pila por el tamaño de operando de los tiempos de instrucción el valor de 8 bits no firmado especificado por los bits 7:0 en el operando de origen. La instrucción realiza un pop y descarte del primer y último elemento en la pila de sombras en el rango especificado por el valor de 8 bits no firmado en los bits 7:0 del operando de origen.

Operación

IF CPL = 3
    IF (CR4.CET & IA32_U_CET.SH_STK_EN) = 0
          THEN #UD; FI;

ELSE
    IF (CR4.CET & IA32_S_CET.SH_STK_EN) = 0
          THEN #UD; FI;

FI;

IF (operand size is 64-bit)
    THEN
          Range := R64[7:0];
          shadow_stack_load 8 bytes from SSP;
          IF Range > 0
                THEN shadow_stack_load 8 bytes from SSP + 8 * (Range - 1);
          FI;
          SSP := SSP + Range * 8;
    ELSE
          Range := R32[7:0];
          shadow_stack_load 4 bytes from SSP;
          IF Range > 0
                THEN shadow_stack_load 4 bytes from SSP + 4 * (Range - 1);
          FI;
          SSP := SSP + Range * 4;

FI;

Banderas afectadas

None.

Intel C/C++ compilador intrínseco

INCSSPD void _incsspd(int);
INCSSPQ void _incsspq(int);

Excepciones

Modo protegido
#UDSi se utiliza el prefijo LOCK. Si CR4.CET = 0. IF CPL = 3 y IA32_U_CET.SH_STK_EN = 0. IF CPL < 3 y IA32_S_CET.SH_STK_EN = 0. #PF(fault-code) Si ocurre un fallo de pagina.
Modo real
#UDLa instrucción INCSSP no se reconoce en modo de direccion real.
Modo virtual-8086
#UDLa instrucción INCSSP no se reconoce en modo virtual-8086.
Modo de compatibilidad
Las mismas excepciones que en modo protegido.
Modo de 64 bits
Las mismas excepciones que en modo protegido.

Fuentes