about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--NEWS3
-rw-r--r--sysdeps/x86_64/cacheinfo.c4
3 files changed, 9 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index d385cc937e..e3a1f0a974 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2014-08-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #17259]
+	* sysdeps/x86_64/cacheinfo.c (intel_check_word): Replace cpuid
+	asm statement with __cpuid_count.
+
 2014-08-12  Mike Frysinger  <vapier@gentoo.org>
 
 	* configure.ac: Change __ehdr_start code to dereference the struct.
diff --git a/NEWS b/NEWS
index ad337e8ab2..03132e2896 100644
--- a/NEWS
+++ b/NEWS
@@ -22,7 +22,8 @@ Version 2.20
   16918, 16922, 16927, 16928, 16932, 16943, 16958, 16965, 16966, 16967,
   16977, 16978, 16984, 16990, 16996, 17009, 17022, 17031, 17042, 17048,
   17050, 17058, 17061, 17062, 17069, 17075, 17078, 17079, 17084, 17086,
-  17088, 17092, 17097, 17125, 17135, 17137, 17150, 17153, 17213, 17261.
+  17088, 17092, 17097, 17125, 17135, 17137, 17150, 17153, 17213, 17259,
+  17261.
 
 * Reverted change of ABI data structures for s390 and s390x:
   On s390 and s390x the size of struct ucontext and jmp_buf was increased in
diff --git a/sysdeps/x86_64/cacheinfo.c b/sysdeps/x86_64/cacheinfo.c
index 163af2acbc..ca13a53f25 100644
--- a/sysdeps/x86_64/cacheinfo.c
+++ b/sysdeps/x86_64/cacheinfo.c
@@ -191,9 +191,7 @@ intel_check_word (int name, unsigned int value, bool *has_level_2,
 	  unsigned int round = 0;
 	  while (1)
 	    {
-	      asm volatile ("xchgl %%ebx, %1; cpuid; xchgl %%ebx, %1"
-			    : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)
-			    : "0" (4), "2" (round));
+	      __cpuid_count (4, round, eax, ebx, ecx, edx);
 
 	      enum { null = 0, data = 1, inst = 2, uni = 3 } type = eax & 0x1f;
 	      if (type == null)