Skip to content

RDSSPD_RDSSPQ

Henk-Jan Lebbink edited this page Jun 4, 2026 · 1 revision

RDSSPD / RDSSPQ — Read Shadow Stack Pointer

Opcode/ Instruction Op/ En 64/32 bit Mode Support CPUID Feature Flag Description
F3 0F 1E /1 (mod=11) RDSSPD r32 R V/V CET_SS Copy low 32 bits of shadow stack pointer (SSP) to r32.
F3 REX.W 0F 1E /1 (mod=11) RDSSPQ r64 R V/N.E. CET_SS Copies shadow stack pointer (SSP) to r64.

Instruction Operand Encoding

Op/En Operand 1 Operand 2 Operand 3 Operand 4
R ModRM:r/m (w) N/A N/A N/A

Description

Copies the current shadow stack pointer (SSP) register to the register destination. This opcode is a NOP when CET shadow stacks are not enabled and on processors that do not support CET.

Operation

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

Flags Affected

None.

C/C++ Compiler Intrinsic Equivalent

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

Exceptions (All Operating Modes)

#UD If the LOCK prefix is used.


Source: Intel® 64 and IA-32 Architectures Software Developer's Manual, Combined Volumes (Order Number 325462-091US, March 2026)
Generated: 7-6-2026

Clone this wiki locally