diff options
author | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2015-05-08 18:07:51 +0300 |
---|---|---|
committer | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2015-05-14 09:28:33 +0300 |
commit | bac42c68b069f17abcca810a21439c7233815747 (patch) | |
tree | eb1379b4582447ca0e77e9bcf5db39c760927d32 /src/hwf-x86.c | |
parent | e15beb584a5ebdfc363e1ff15f87102508652d71 (diff) | |
download | libgcrypt-bac42c68b069f17abcca810a21439c7233815747.tar.gz |
hwf-x86: use edi for passing value to ebx for i386 cpuid
* src/hwf-x86.c [__i386__] (get_cpuid): Use '=D' for regs[1] instead
of '=r'.
--
On Win32, %ebx can be assigned for '=r' (regs[1]). This results invalid
assembly:
pushl %ebx
movl %ebx, %ebx
cpuid
movl %ebx, %ebx
popl %ebx
So use '=D' (%esi) for regs[1] instead.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Diffstat (limited to 'src/hwf-x86.c')
-rw-r--r-- | src/hwf-x86.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/hwf-x86.c b/src/hwf-x86.c index baef2df0..399952c4 100644 --- a/src/hwf-x86.c +++ b/src/hwf-x86.c @@ -81,7 +81,7 @@ get_cpuid(unsigned int in, unsigned int *eax, unsigned int *ebx, "cpuid\n\t" "movl %%ebx, %1\n\t" "popl %%ebx\n\t" /* Restore GOT register. */ - : "=a" (regs[0]), "=r" (regs[1]), "=c" (regs[2]), "=d" (regs[3]) + : "=a" (regs[0]), "=D" (regs[1]), "=c" (regs[2]), "=d" (regs[3]) : "0" (in), "1" (0), "2" (0), "3" (0) : "cc" ); |