summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>2014-06-30 18:23:58 +0000
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>2014-06-30 18:23:58 +0000
commiteb606a3c279cc2dba8cdd1084405652013c4b9db (patch)
tree08e7b81a075f1aceca9342835ec906100c777cea /clang/lib
parentd0e0f0aea060e5bc655b3f739df7045fb540fb49 (diff)
downloadbcm5719-llvm-eb606a3c279cc2dba8cdd1084405652013c4b9db.tar.gz
bcm5719-llvm-eb606a3c279cc2dba8cdd1084405652013c4b9db.zip
[x86] Add Clang support for intrinsic __rdpmc.
This patch adds intrinsic __rdpmc to header file 'ia32intrin.h'. Intrinsic __rdmpc can be used to read performance monitoring counters. It is implemented as a direct call to __builtin_ia32_rdpmc. It takes as input a value representing the index of the performance counter to read. The value of the performance counter is then returned as a unsigned 64-bit quantity. llvm-svn: 212053
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Headers/ia32intrin.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Headers/ia32intrin.h b/clang/lib/Headers/ia32intrin.h
index 55c22473ba7..5adf3f1f5d8 100644
--- a/clang/lib/Headers/ia32intrin.h
+++ b/clang/lib/Headers/ia32intrin.h
@@ -79,6 +79,11 @@ __writeeflags(unsigned int __f)
}
#endif /* !__x86_64__ */
+static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
+__rdpmc(int __A) {
+ return __builtin_ia32_rdpmc(__A);
+}
+
/* __rdtsc */
static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
__rdtsc(void) {
OpenPOWER on IntegriCloud