-
Notifications
You must be signed in to change notification settings - Fork 98
XABORT
Henk-Jan Lebbink edited this page Jun 5, 2018
·
12 revisions
XABORT — Transactional Abort
Opcode/Instruction | Op/ En | 64/32bit Mode Support | CPUID Feature Flag | Description |
C6 F8 ib XABORT imm8 | A | V/V | RTM | Causes an RTM abort if in RTM execution |
Op/En | Operand 1 | Operand2 | Operand3 | Operand4 |
A | imm8 | NA | NA | NA |
XABORT forces an RTM abort. Following an RTM abort, the logical processor resumes execution at the fallback address computed through the outermost XBEGIN instruction. The EAX register is updated to reflect an XABORT instruction caused the abort, and the imm8 argument will be provided in bits 31:24 of EAX.
IF RTM_ACTIVE = 0
THEN
Treat as NOP;
ELSE
GOTO RTM_ABORT_PROCESSING;
FI;
(* For any RTM abort condition encountered during RTM execution *)
RTM_ABORT_PROCESSING:
Restore architectural register state;
Discard memory updates performed in transaction;
Update EAX with status and XABORT argument;
RTM_NEST_COUNT ← 0;
RTM_ACTIVE ← 0;
IF 64-bit Mode
THEN
RIP ← fallbackRIP;
ELSE
EIP ← fallbackEIP;
FI;
END
None
XABORT:
void _xabort( unsigned int);
None
#UD CPUID.(EAX=7, ECX=0):EBX.RTM[bit 11] = 0. If LOCK prefix is used.
Source: Intel® Architecture Software Developer's Manual (May 2018)
Generated: 5-6-2018