1/*===------------- tsxldtrkintrin.h - tsxldtrk intrinsics ------------------=== 2 * 3 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 * See https://llvm.org/LICENSE.txt for license information. 5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 * 7 *===-----------------------------------------------------------------------=== 8 */ 9 10#ifndef __IMMINTRIN_H 11#error "Never use <tsxldtrkintrin.h> directly; include <immintrin.h> instead." 12#endif 13 14#ifndef __TSXLDTRKINTRIN_H 15#define __TSXLDTRKINTRIN_H 16 17/* Define the default attributes for the functions in this file */ 18#define _DEFAULT_FN_ATTRS \ 19 __attribute__((__always_inline__, __nodebug__, __target__("tsxldtrk"))) 20 21/// Marks the start of an TSX (RTM) suspend load address tracking region. If 22/// this intrinsic is used inside a transactional region, subsequent loads 23/// are not added to the read set of the transaction. If it's used inside a 24/// suspend load address tracking region it will cause transaction abort. 25/// If it's used outside of a transactional region it behaves like a NOP. 26/// 27/// \headerfile <x86intrin.h> 28/// 29/// This intrinsic corresponds to the \c XSUSLDTRK instruction. 30/// 31static __inline__ void _DEFAULT_FN_ATTRS 32_xsusldtrk (void) 33{ 34 __builtin_ia32_xsusldtrk(); 35} 36 37/// Marks the end of an TSX (RTM) suspend load address tracking region. If this 38/// intrinsic is used inside a suspend load address tracking region it will 39/// end the suspend region and all following load addresses will be added to 40/// the transaction read set. If it's used inside an active transaction but 41/// not in a suspend region it will cause transaction abort. If it's used 42/// outside of a transactional region it behaves like a NOP. 43/// 44/// \headerfile <x86intrin.h> 45/// 46/// This intrinsic corresponds to the \c XRESLDTRK instruction. 47/// 48static __inline__ void _DEFAULT_FN_ATTRS 49_xresldtrk (void) 50{ 51 __builtin_ia32_xresldtrk(); 52} 53 54#undef _DEFAULT_FN_ATTRS 55 56#endif /* __TSXLDTRKINTRIN_H */ 57