25 #error "Never use <ia32intrin.h> directly; include <x86intrin.h> instead."
28 #ifndef __IA32INTRIN_H
29 #define __IA32INTRIN_H
32 static __inline__
unsigned long long __attribute__((__always_inline__, __nodebug__))
35 unsigned long long __res = 0;
36 __asm__ __volatile__ (
"pushf\n\t"
45 static __inline__
void __attribute__((__always_inline__, __nodebug__))
46 __writeeflags(
unsigned long long __f)
48 __asm__ __volatile__ (
"pushq %0\n\t"
57 static __inline__
unsigned int __attribute__((__always_inline__, __nodebug__))
60 unsigned int __res = 0;
61 __asm__ __volatile__ (
"pushf\n\t"
70 static __inline__
void __attribute__((__always_inline__, __nodebug__))
71 __writeeflags(
unsigned int __f)
73 __asm__ __volatile__ (
"pushl %0\n\t"
82 static __inline__
unsigned long long __attribute__((__always_inline__, __nodebug__))
84 return __builtin_ia32_rdpmc(__A);
88 static __inline__
unsigned long long __attribute__((__always_inline__, __nodebug__))
90 return __builtin_ia32_rdtsc();
94 static __inline__
unsigned long long __attribute__((__always_inline__, __nodebug__))
95 __rdtscp(
unsigned int *__A) {
96 return __builtin_ia32_rdtscp(__A);
99 #define _rdtsc() __rdtsc()
static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__)) __readeflags(void)