diff options
| -rw-r--r-- | clang/lib/Headers/Intrin.h | 14 | 
1 files changed, 7 insertions, 7 deletions
diff --git a/clang/lib/Headers/Intrin.h b/clang/lib/Headers/Intrin.h index 6fd1eeb3739..3bb304a3115 100644 --- a/clang/lib/Headers/Intrin.h +++ b/clang/lib/Headers/Intrin.h @@ -53,6 +53,7 @@ void __addfsword(unsigned long, unsigned short);  void __code_seg(const char *);  static __inline__  void __cpuid(int[4], int); +static __inline__  void __cpuidex(int[4], int, int);  void __debugbreak(void);  __int64 __emul(int, int); @@ -876,14 +877,13 @@ _ReturnAddress(void) {  }  static __inline__ void __attribute__((__always_inline__, __nodebug__))  __cpuid(int __info[4], int __level) { -#if __i386__ -  __asm__ ("cpuid" -         : "=a"(__info[0]), "=b" (__info[1]), "=c"(__info[2]), "=d"(__info[3]) -         : "0"(__level)); -#else    __asm__ ("cpuid" : "=a"(__info[0]), "=b" (__info[1]), "=c"(__info[2]), "=d"(__info[3]) -                   : "0"(__level)); -#endif +                   : "a"(__level)); +} +static __inline__ void __attribute__((__always_inline__, __nodebug__)) +__cpuidex(int __info[4], int __level, int __ecx) { +  __asm__ ("cpuid" : "=a"(__info[0]), "=b" (__info[1]), "=c"(__info[2]), "=d"(__info[3]) +                   : "a"(__level), "c"(__ecx));  }  static __inline__ unsigned __int64 __cdecl __attribute__((__always_inline__, __nodebug__))  _xgetbv(unsigned int __xcr_no) {  | 

