r280826 - Add MS __nop intrinsic to intrin.h

Reid Kleckner via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 7 09:55:12 PDT 2016


Author: rnk
Date: Wed Sep  7 11:55:12 2016
New Revision: 280826

URL: http://llvm.org/viewvc/llvm-project?rev=280826&view=rev
Log:
Add MS __nop intrinsic to intrin.h

Summary: There was no definition for __nop function - added inline
assembly.

Patch by Albert Gutowski!

Reviewers: rnk, thakis

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D24286

Modified:
    cfe/trunk/lib/Headers/intrin.h
    cfe/trunk/test/Headers/ms-intrin.cpp

Modified: cfe/trunk/lib/Headers/intrin.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/intrin.h?rev=280826&r1=280825&r2=280826&view=diff
==============================================================================
--- cfe/trunk/lib/Headers/intrin.h (original)
+++ cfe/trunk/lib/Headers/intrin.h Wed Sep  7 11:55:12 2016
@@ -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_ATTR
 __halt(void) {
   __asm__ volatile ("hlt");
 }
+static __inline__ void __DEFAULT_FN_ATTRS
+__nop(void) {
+  __asm__ volatile ("nop");
+}
 #endif
 
 /*----------------------------------------------------------------------------*\

Modified: cfe/trunk/test/Headers/ms-intrin.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/ms-intrin.cpp?rev=280826&r1=280825&r2=280826&view=diff
==============================================================================
--- cfe/trunk/test/Headers/ms-intrin.cpp (original)
+++ cfe/trunk/test/Headers/ms-intrin.cpp Wed Sep  7 11:55:12 2016
@@ -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




More information about the cfe-commits mailing list