xsusldtrk

TSX Load Tracking

TSXLDTRK

Suspends/Resumes tracking of load operations in TSX.

Details

Suspends or resumes tracking of load operations within a TSX (Transactional Synchronization Extensions) transaction. Requires TSX support and TSX_LDTRK feature flag. Does not modify any flags. This instruction helps fine-tune transaction conflict detection by toggling whether loads are monitored for abort conditions.

Pseudocode Operation

if (in_transaction) {
  TSX_load_tracking_enabled ← !TSX_load_tracking_enabled
}

Example

TSXLDTRK

Encoding

Binary Layout
F2
+0
0F
+1
01
+2
E8
+3
 
Format Legacy
Opcode F2 0F 01 E8
Extension TSXLDTRK

Operands

Reference (Intel® SDM)

Instruction Forms

Opcode Instruction Op/En 64/32-bit Mode CPUID Description
F2 0F 01 E8 XSUSLDTRK ZO V/V TSXLDTRK Specifies the start of an Intel TSX suspend read address tracking region.

Description

The instruction marks the start of an Intel TSX (RTM) suspend load address tracking region. If the instruction is used inside a transactional region, subsequent loads are not added to the read set of the transaction. If the instruction is used inside a suspend load address tracking region it will cause transaction abort. If the instruction is used outside of a transactional region it behaves like a NOP. Chapter 16, “Programming with Intel® Transactional Synchronization Extensions‚” in the Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 1 provides additional information on Intel® TSX Suspend Load Address Tracking.

Operation

XSUSLDTRK
IF RTM_ACTIVE = 1:
IF SUSLDTRK_ACTIVE = 0:
SUSLDTRK_ACTIVE := 1
ELSE:
RTM_ABORT
ELSE:
NOP

Intel C/C++ Compiler Intrinsic Equivalent

XSUSLDTRK void _xsusldtrk(void);

Flags Affected

None.

Exceptions

SIMD Floating-Point Exceptions

None.

Other Exceptions

#UD If CPUID.07H.00H:EDX.TSXLDTRK[16] = 0. If the LOCK prefix is used. XSUSLDTRK—Suspend Tracking Load Addresses Vol. 2D 6-71