From: Andy Polyakov Date: Sat, 19 May 2007 17:52:51 +0000 (+0000) Subject: x86cpuid fixes. X-Git-Tag: OpenSSL_0_9_8k^2~825 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=b1e8b4e65d7a17e3c4c9293143a9535c51bb56c3;p=oweals%2Fopenssl.git x86cpuid fixes. PR: 1526 --- diff --git a/crypto/perlasm/x86unix.pl b/crypto/perlasm/x86unix.pl index e3f24f860b..2b9e96c8db 100644 --- a/crypto/perlasm/x86unix.pl +++ b/crypto/perlasm/x86unix.pl @@ -51,6 +51,7 @@ sub ::generic if ($#_==0) { &::emit($opcode); } elsif ($opcode =~ m/^j/o && $#_==1) { &::emit($opcode,@arg); } elsif ($opcode eq "call" && $#_==1) { &::emit($opcode,@arg); } + elsif ($opcode =~ m/^set/&& $#_==1) { &::emit($opcode,@arg); } else { &::emit($opcode.$suffix,@arg);} 1; diff --git a/crypto/x86cpuid.pl b/crypto/x86cpuid.pl index 13828d5633..ce9b8ea4dd 100644 --- a/crypto/x86cpuid.pl +++ b/crypto/x86cpuid.pl @@ -43,7 +43,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); } &shr ("ebx",16); &cmp (&LB("ebx"),1); # see if cache is shared(*) &ja (&label("nocpuid")); - &and ("edx",~(1<<28)); # clear hyper-threading bit if not + &and ("edx",0xefffffff); # clear hyper-threading bit if not &set_label("nocpuid"); &mov ("eax","edx"); &mov ("edx","ecx");