endbr64
End Branch 64-bit
Marker instruction for Indirect Branch Tracking (IBT).
Details
End Branch 64-bit marker for Control Flow Enforcement Technology (CET) Indirect Branch Tracking. This is a NOP-like instruction that marks valid target points for indirect branches in 64-bit mode; it is consumed by hardware when CET-IBT is enabled and causes a control-flow exception (#CP) if an indirect branch lands on a non-ENDBR64/ENDBR32 location. No flags are affected. Requires CET-IBT capability.
Pseudocode Operation
// Marker instruction for Indirect Branch Tracking (IBT)
Example
Encoding
Operands
Reference (Intel® SDM)
Instruction Forms
| Opcode | Instruction | Op/En | 64/32-bit Mode | CPUID | Description |
|---|---|---|---|---|---|
| F3 0F 1E FA | ENDBR64 | ZO | V/V | CET_IBT | Terminate indirect branch in 64-bit mode. |
Description
Operation
IF EndbranchEnabled(CPL) & IA32_EFER.LMA = 1 & CS.L = 1 IF CPL = 3 THEN IA32_U_CET.TRACKER = IDLE IA32_U_CET.SUPPRESS = 0 ELSE IA32_S_CET.TRACKER = IDLE IA32_S_CET.SUPPRESS = 0 FI; FI;
Flags Affected
None. Exceptions #UD If the LOCK prefix is used. ENDBR64—Terminate an Indirect Branch in 64-bit Mode Vol. 2A 3-288