1*e038c9c4Sjoerg /*===--------------- serializeintrin.h - serialize intrinsics --------------=== 2*e038c9c4Sjoerg * 3*e038c9c4Sjoerg * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*e038c9c4Sjoerg * See https://llvm.org/LICENSE.txt for license information. 5*e038c9c4Sjoerg * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*e038c9c4Sjoerg * 7*e038c9c4Sjoerg *===-----------------------------------------------------------------------=== 8*e038c9c4Sjoerg */ 9*e038c9c4Sjoerg 10*e038c9c4Sjoerg #ifndef __IMMINTRIN_H 11*e038c9c4Sjoerg #error "Never use <serializeintrin.h> directly; include <immintrin.h> instead." 12*e038c9c4Sjoerg #endif 13*e038c9c4Sjoerg 14*e038c9c4Sjoerg #ifndef __SERIALIZEINTRIN_H 15*e038c9c4Sjoerg #define __SERIALIZEINTRIN_H 16*e038c9c4Sjoerg 17*e038c9c4Sjoerg /// Serialize instruction fetch and execution. 18*e038c9c4Sjoerg /// 19*e038c9c4Sjoerg /// \headerfile <x86intrin.h> 20*e038c9c4Sjoerg /// 21*e038c9c4Sjoerg /// This intrinsic corresponds to the <c> SERIALIZE </c> instruction. 22*e038c9c4Sjoerg /// 23*e038c9c4Sjoerg static __inline__ void 24*e038c9c4Sjoerg __attribute__((__always_inline__, __nodebug__, __target__("serialize"))) _serialize(void)25*e038c9c4Sjoerg_serialize (void) 26*e038c9c4Sjoerg { 27*e038c9c4Sjoerg __builtin_ia32_serialize (); 28*e038c9c4Sjoerg } 29*e038c9c4Sjoerg 30*e038c9c4Sjoerg #endif /* __SERIALIZEINTRIN_H */ 31