From 5b7d8ddbe0f0cea3199f27226c008182f46a354a Mon Sep 17 00:00:00 2001 From: Andreas Gal Date: Wed, 22 Oct 2008 19:08:28 -0700 Subject: [PATCH] Backed out changeset 82f5fed6d91a (Linux GCC doesn't seem to like clobbering ebx in inline assembly). --- js/src/jstracer.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/js/src/jstracer.cpp b/js/src/jstracer.cpp index 3dc6e0b5f5f..17c2e89766f 100644 --- a/js/src/jstracer.cpp +++ b/js/src/jstracer.cpp @@ -2986,11 +2986,15 @@ js_CheckForSSE2() popad } #elif defined __GNUC__ - asm("movl %1, %%eax; cpuid; movl %%edx, %0;" - : "m=" (features) /* output */ - : "r" (0x01) /* input */ - : "eax", "ebx", "ecx", "edx" /* clobber list */ - ); + asm("pusha\n" + "mov $0x01, %%eax\n" + "cpuid\n" + "mov %%edx, %0\n" + "popa\n" + : "=m" (features) + /* We have no inputs */ + /* We don't clobber anything */ + ); #elif defined __SUNPRO_C || defined __SUNPRO_CC asm("push %%ebx\n" "mov $0x01, %%eax\n"