diff --git a/clang/lib/Headers/intrin.h b/clang/lib/Headers/intrin.h index 268ac4a17b85..d68fdfc7a395 100644 --- a/clang/lib/Headers/intrin.h +++ b/clang/lib/Headers/intrin.h @@ -97,6 +97,7 @@ static __inline__ void __movsd(unsigned long *, unsigned long const *, size_t); static __inline__ void __movsw(unsigned short *, unsigned short const *, size_t); +static __inline__ void __nop(void); void __nvreg_restore_fence(void); void __nvreg_save_fence(void); @@ -918,6 +919,10 @@ static __inline__ void __DEFAULT_FN_ATTRS __halt(void) { __asm__ volatile ("hlt"); } +static __inline__ void __DEFAULT_FN_ATTRS +__nop(void) { + __asm__ volatile ("nop"); +} #endif /*----------------------------------------------------------------------------*\ diff --git a/clang/test/Headers/ms-intrin.cpp b/clang/test/Headers/ms-intrin.cpp index 25c5531c41f4..4d6803a08186 100644 --- a/clang/test/Headers/ms-intrin.cpp +++ b/clang/test/Headers/ms-intrin.cpp @@ -52,6 +52,7 @@ void f() { __cpuidex(info, 0, 0); _xgetbv(0); __halt(); + __nop(); __readmsr(0); // FIXME: Call these in 64-bit too once the intrinsics have been fixed to