xsusldtrk

Suspend Tracking Load Addresses

XSUSLDTRK

Suspends tracking of load addresses in a TSX suspend-tracking region (resumed with XRESLDTRK).

Pseudocode Operation

if (in_transaction) {
  TSX_load_tracking_enabled ← !TSX_load_tracking_enabled
}

Encoding

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

Operands

Related

More in TSXLDTRK

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