CLRSSBSY—Clear Busy Flag in a Supervisor Shadow Stack TokenInstruction Operand EncodingDescriptionClear busy flag in supervisor shadow stack token reference by m64. Subsequent to marking the shadow stack as not busy the SSP is loaded with value 0.OperationIF (CR4.CET = 0)THEN #UD; FI;IF (IA32_S_CET.SH_STK_EN = 0)THEN #UD; FI;IF CPL > 0THEN GP(0); FI;SSP_LA = Linear_Address(mem operand)IF SSP_LA not aligned to 8 bytesTHEN #GP(0); FI;expected_token_value = SSP_LA | BUSY_BIT(* busy bit - bit position 0 - must be set *)new_token_value = SSP_LA (* Clear the busy bit *)IF shadow_stack_lock_cmpxchg8b(SSP_LA, new_token_value, expected_token_value) != expected_token_valueinvalid_token := 1; FI(* Set the CF if invalid token was detected *)RFLAGS.CF = (invalid_token == 1) ? 1 : 0;RFLAGS.ZF,PF,AF,OF,SF := 0;SSP := 0Flags AffectedCF is set if an invalid token was detected, else it is cleared. ZF, PF, AF, OF, and SF are cleared.Opcode/InstructionOp / En64/32 bit Mode SupportCPUID Feature FlagDescriptionF3 0F AE /6CLRSSBSY m64MV/VCET_SSClear busy flag in supervisor shadow stack token reference by m64.Op/EnTuple TypeOperand 1Operand 2Operand 3Operand 4MNAModRM:r/m (r, w)NANANA
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.