1 #ifndef _X86INTRIN_H_INCLUDED 2 #error "Never use <wbnoinvdintrin.h> directly; include <x86intrin.h> instead." 3 #endif 4 5 #ifndef _WBNOINVDINTRIN_H_INCLUDED 6 #define _WBNOINVDINTRIN_H_INCLUDED 7 8 #ifndef __WBNOINVD__ 9 #pragma GCC push_options 10 #pragma GCC target("wbnoinvd") 11 #define __DISABLE_WBNOINVD__ 12 #endif /* __WBNOINVD__ */ 13 14 extern __inline void 15 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 16 _wbnoinvd (void) 17 { 18 __builtin_ia32_wbnoinvd (); 19 } 20 21 #ifdef __DISABLE_WBNOINVD__ 22 #undef __DISABLE_WBNOINVD__ 23 #pragma GCC pop_options 24 #endif /* __DISABLE_WBNOINVD__ */ 25 26 #endif /* _WBNOINVDINTRIN_H_INCLUDED */ 27