projects
/
oweals
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Correct d2i/i2d typos.
[oweals/openssl.git]
/
crypto
/
x86cpuid.pl
diff --git
a/crypto/x86cpuid.pl
b/crypto/x86cpuid.pl
index 13828d5633160b34460311303b4fbfc60ff92707..c3291112032b3ff7b365830ecf123f3a4efc4df8 100644
(file)
--- a/
crypto/x86cpuid.pl
+++ b/
crypto/x86cpuid.pl
@@
-1,6
+1,7
@@
#!/usr/bin/env perl
#!/usr/bin/env perl
-push(@INC,"perlasm");
+$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
+push(@INC, "${dir}perlasm", "perlasm");
require "x86asm.pl";
&asm_init($ARGV[0],"x86cpuid");
require "x86asm.pl";
&asm_init($ARGV[0],"x86cpuid");
@@
-19,7
+20,7
@@
for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
&pop ("eax");
&xor ("ecx","eax");
&bt ("ecx",21);
&pop ("eax");
&xor ("ecx","eax");
&bt ("ecx",21);
- &jnc (&label("
nocpuid
"));
+ &jnc (&label("
done
"));
&xor ("eax","eax");
&cpuid ();
&xor ("eax","eax");
&xor ("eax","eax");
&cpuid ();
&xor ("eax","eax");
@@
-34,17
+35,20
@@
for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
&or ("ebp","eax");
&mov ("eax",1);
&cpuid ();
&or ("ebp","eax");
&mov ("eax",1);
&cpuid ();
- &bt ("edx",28); # test hyper-threading bit
- &jnc (&label("nocpuid"));
&cmp ("ebp",0);
&cmp ("ebp",0);
- &jne (&label("notintel"));
+ &jne (&label("notP4"));
+ &and (&HB("eax"),15); # familiy ID
+ &cmp (&HB("eax"),15); # P4?
+ &jne (&label("notP4"));
&or ("edx",1<<20); # use reserved bit to engage RC4_CHAR
&or ("edx",1<<20); # use reserved bit to engage RC4_CHAR
-&set_label("notintel");
+&set_label("notP4");
+ &bt ("edx",28); # test hyper-threading bit
+ &jnc (&label("done"));
&shr ("ebx",16);
&cmp (&LB("ebx"),1); # see if cache is shared(*)
&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
-&set_label("
nocpuid
");
+ &ja (&label("
done
"));
+ &and ("edx",
0xefffffff);
# clear hyper-threading bit if not
+&set_label("
done
");
&mov ("eax","edx");
&mov ("edx","ecx");
&function_end("OPENSSL_ia32_cpuid");
&mov ("eax","edx");
&mov ("edx","ecx");
&function_end("OPENSSL_ia32_cpuid");