summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Brinkmann <mb@g10code.com>2008-01-21 17:17:54 +0000
committerMarcus Brinkmann <mb@g10code.com>2008-01-21 17:17:54 +0000
commit5f9d1ded665b772dd99b475a90dcda3f8aa6664e (patch)
tree853b06a322fcb1f36bb22c5c1d6be6a1f583b892
parentc71284a3694dd9396ecbaf98365234549d06bb48 (diff)
downloadlibgcrypt-5f9d1ded665b772dd99b475a90dcda3f8aa6664e.tar.gz
2008-01-21 Marcus Brinkmann <marcus@g10code.de>
* hwfeatures.c (detect_ia32_gnuc): Fix inline asm.
-rw-r--r--src/ChangeLog4
-rw-r--r--src/hwfeatures.c9
2 files changed, 8 insertions, 5 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index c9d56fd0..c6e08de8 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
+2008-01-21 Marcus Brinkmann <marcus@g10code.de>
+
+ * hwfeatures.c (detect_ia32_gnuc): Fix inline asm.
+
2007-12-11 Werner Koch <wk@g10code.com>
* visibility.c (gcry_md_hash_buffer): Don't use return vor a void
diff --git a/src/hwfeatures.c b/src/hwfeatures.c
index 200da2c2..4dd4e4f4 100644
--- a/src/hwfeatures.c
+++ b/src/hwfeatures.c
@@ -79,13 +79,12 @@ detect_ia32_gnuc (void)
("pushl %%ebx\n\t" /* Save GOT register. */
"xorl %%eax, %%eax\n\t" /* 0 -> EAX. */
"cpuid\n\t" /* Get vendor ID. */
- "leal %0, %%eax\n\t" /* EBX,EDX,ECX -> VENDOR_ID. */
- "movl %%ebx, (%%eax)\n\t"
- "movl %%edx, 4(%%eax)\n\t"
- "movl %%ecx, 8(%%eax)\n\t"
+ "movl %%ebx, (%0)\n\t" /* EBX,EDX,ECX -> VENDOR_ID. */
+ "movl %%edx, 4(%0)\n\t"
+ "movl %%ecx, 8(%0)\n\t"
"popl %%ebx\n"
- : "=m" (vendor_id)
:
+ : "S" (&vendor_id[0])
: "%eax", "%ecx", "%edx", "cc"
);
vendor_id[12] = 0;