summaryrefslogtreecommitdiffstats
path: root/crypto/perlasm/x86asm.pl
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2011-06-04 12:20:45 +0000
committerAndy Polyakov <appro@openssl.org>2011-06-04 12:20:45 +0000
commit301799b803fc9f3e2adaad32b1ccace736bbe7cc (patch)
tree0edc73d8425ac47b5124104760cb0294c53b214f /crypto/perlasm/x86asm.pl
parent8d515259e2a4631a5b42f1a072b0ff6f8eba189c (diff)
x86[_64]cpuid.pl: add function accessing rdrand instruction.
Diffstat (limited to 'crypto/perlasm/x86asm.pl')
-rw-r--r--crypto/perlasm/x86asm.pl8
1 files changed, 8 insertions, 0 deletions
diff --git a/crypto/perlasm/x86asm.pl b/crypto/perlasm/x86asm.pl
index efa7b61ce8..b7ddb8137f 100644
--- a/crypto/perlasm/x86asm.pl
+++ b/crypto/perlasm/x86asm.pl
@@ -123,6 +123,14 @@ sub ::pclmulqdq
{ &::generic("pclmulqdq",@_); }
}
+sub ::rdrand
+{ my ($dst)=@_;
+ if ($dst =~ /(e[a-dsd][ixp])/)
+ { &::data_byte(0x0f,0xc7,0xf0|$regrm{$dst}); }
+ else
+ { &::generic("rdrand",@_); }
+}
+
# label management
$lbdecor="L"; # local label decoration, set by package
$label="000";