summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2016-06-08 15:55:35 +0200
committerAndy Polyakov <appro@openssl.org>2016-06-14 22:50:47 +0200
commit1eb12c437bbeb2c748291bcd23733d4a59d5d1ca (patch)
tree39b2396d4c90fbc5d72d2255859fabc2eca8430a
parent6a4ea0022c475bbc2c7ad98a6f05f6e2e850575b (diff)
downloadopenssl-new-1eb12c437bbeb2c748291bcd23733d4a59d5d1ca.tar.gz
perlasm/x86_64-xlate.pl: add commentary.
Reviewed-by: Rich Salz <rsalz@openssl.org>
-rwxr-xr-xcrypto/perlasm/x86_64-xlate.pl8
1 files changed, 7 insertions, 1 deletions
diff --git a/crypto/perlasm/x86_64-xlate.pl b/crypto/perlasm/x86_64-xlate.pl
index f050b23f00..391362d46e 100755
--- a/crypto/perlasm/x86_64-xlate.pl
+++ b/crypto/perlasm/x86_64-xlate.pl
@@ -692,7 +692,13 @@ sub rex {
push @$opcode,($rex|0x40) if ($rex);
}
-# older gas and ml64 don't handle SSE>2 instructions
+# Upon initial x86_64 introduction SSE>2 extensions were not introduced
+# yet. In order not to be bothered by tracing exact assembler versions,
+# but at the same time to provide a bare security minimum of AES-NI, we
+# hard-code some instructions. Extensions past AES-NI on the other hand
+# are traced by examining assembler version in individual perlasm
+# modules...
+
my %regrm = ( "%eax"=>0, "%ecx"=>1, "%edx"=>2, "%ebx"=>3,
"%esp"=>4, "%ebp"=>5, "%esi"=>6, "%edi"=>7 );