diff options
author | Reid Kleckner <rnk@google.com> | 2018-11-06 20:45:26 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2018-11-06 20:45:26 +0000 |
commit | 78cdddc618372b8c0f6e3a679b7ee4c63ccdfbc1 (patch) | |
tree | 394cc7dc23d9143a270a372f543a124c9270060b /lib | |
parent | 63ac0c95c915b9a341cfe2520ea8273e952d6048 (diff) |
[MS] Zero out ECX in __cpuid in intrin.h
Summary:
Some CPUID leafs depend on the value of ECX as well as EAX, but we left
it uninitialized.
Originally reported as https://crbug.com/901547
Reviewers: craig.topper, hans
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D54171
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@346265 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Headers/intrin.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/Headers/intrin.h b/lib/Headers/intrin.h index c2517e03b8..e872ef10a9 100644 --- a/lib/Headers/intrin.h +++ b/lib/Headers/intrin.h @@ -535,7 +535,7 @@ __stosq(unsigned __int64 *__dst, unsigned __int64 __x, size_t __n) { static __inline__ void __DEFAULT_FN_ATTRS __cpuid(int __info[4], int __level) { __asm__ ("cpuid" : "=a"(__info[0]), "=b" (__info[1]), "=c"(__info[2]), "=d"(__info[3]) - : "a"(__level)); + : "a"(__level), "c"(0)); } static __inline__ void __DEFAULT_FN_ATTRS __cpuidex(int __info[4], int __level, int __ecx) { |