diff options
author | Andy Polyakov <appro@openssl.org> | 2011-08-10 18:53:13 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2011-08-10 18:53:13 +0000 |
commit | 922ac25f6408919db3dc121d893aadc9e3ddfa8f (patch) | |
tree | 47f9b8734b591b43c72bb34a0d5643464c5d79ef /crypto/x86_64cpuid.pl | |
parent | aed53d6c5a8f7c823ab3363d7300892773a5f430 (diff) |
Add provisory support for RDRAND [from HEAD].
Diffstat (limited to 'crypto/x86_64cpuid.pl')
-rw-r--r-- | crypto/x86_64cpuid.pl | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/crypto/x86_64cpuid.pl b/crypto/x86_64cpuid.pl index 503ef019ee..9782dd61ac 100644 --- a/crypto/x86_64cpuid.pl +++ b/crypto/x86_64cpuid.pl @@ -263,4 +263,21 @@ OPENSSL_wipe_cpu: .size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu ___ +print<<___; +.globl OPENSSL_ia32_rdrand +.type OPENSSL_ia32_rdrand,\@abi-omnipotent +.align 16 +OPENSSL_ia32_rdrand: + mov \$8,%ecx +.Loop_rdrand: + rdrand %rax + jc .Lbreak_rdrand + loop .Loop_rdrand +.Lbreak_rdrand: + cmp \$0,%rax + cmove %rcx,%rax + ret +.size OPENSSL_ia32_rdrand,.-OPENSSL_ia32_rdrand +___ + close STDOUT; # flush |