WRUSSD/WRUSSQ—Write to User Shadow StackInstruction Operand EncodingDescriptionWrites bytes in register source to a user shadow stack page. The WRUSS instruction can be executed only if CPL = 0, however the processor treats its shadow-stack accesses as user accesses.OperationIF CR4.CET = 0THEN #UD; FI;IF CPL > 0THEN #GP(0); FI;DEST_LA = Linear_Address(mem operand)IF (operand size is 64 bit)THEN(* Destination not 8B aligned *)IF DEST_LA[2:0]THEN GP(0); FI;Shadow_stack_store 8 bytes of SRC to DEST_LA as user-mode access;ELSE(* Destination not 4B aligned *)IF DEST_LA[1:0]THEN GP(0); FI;Shadow_stack_store 4 bytes of SRC[31:0] to DEST_LA as user-mode access;FI;Flags AffectedNone.C/C++ Compiler Intrinsic EquivalentWRUSSDvoid _wrussd(__int32, void *);WRUSSQvoid _wrussq(__int64, void *);Opcode/InstructionOp/ En64/32 bit Mode SupportCPUID Feature FlagDescription66 0F 38 F5 !(11):rrr:bbbWRUSSD m32, r32MRV/VCET_SSWrite 4 bytes to shadow stack.66 REX.W 0F 38 F5 !(11):rrr:bbbWRUSSQ m64, r64MRV/N.E.CET_SSWrite 8 bytes to shadow stack.Op/EnOperand 1Operand 2Operand 3Operand 4MRModRM:r/m (w)ModRM:reg (r)NANA
This UNOFFICIAL reference was generated from the official Intel® 64 and IA-32 Architectures Software Developer’s Manual by a dumb script. There is no guarantee that some parts aren't mangled or broken and is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.