summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Kivilinna <jussi.kivilinna@iki.fi>2015-05-08 18:07:51 +0300
committerJussi Kivilinna <jussi.kivilinna@iki.fi>2015-05-14 09:28:33 +0300
commitbac42c68b069f17abcca810a21439c7233815747 (patch)
treeeb1379b4582447ca0e77e9bcf5db39c760927d32
parente15beb584a5ebdfc363e1ff15f87102508652d71 (diff)
downloadlibgcrypt-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>
-rw-r--r--src/hwf-x86.c2
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"
);