mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-25 14:30:06 +00:00
Replace cpuid asm statement with __cpuid_count
The compiler doesn't know that the cpuid asm statement in intel_check_word will trash RBX. We are lucky that it doesn't cause any problems since RBX is also used by compiler for other purposes so that RBX is saved and restored. This patch replaces it with __cpuid_count. [BZ #17259] * sysdeps/x86_64/cacheinfo.c (intel_check_word): Replace cpuid asm statement with __cpuid_count.
This commit is contained in:
parent
61b1ef6e7c
commit
b4acef1ffe
@ -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.
|
||||
|
3
NEWS
3
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
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user