summaryrefslogtreecommitdiffstats
path: root/crypto/x86_64cpuid.pl
AgeCommit message (Collapse)Author
2017-07-26Fix comment typo.David Benjamin
Reviewed-by: Ben Kaduk <kaduk@mit.edu> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4023) (cherry picked from commit d67e755418b62fb451ec221c126c9935a06ea63b)
2017-07-25x86_64 assembly pack: "optimize" for Knights Landing.Andy Polyakov
"Optimize" is in quotes because it's rather a "salvage operation" for now. Idea is to identify processor capability flags that drive Knights Landing to suboptimial code paths and mask them. Two flags were identified, XSAVE and ADCX/ADOX. Former affects choice of AES-NI code path specific for Silvermont (Knights Landing is of Silvermont "ancestry"). And 64-bit ADCX/ADOX instructions are effectively mishandled at decode time. In both cases we are looking at ~2x improvement. Hardware used for benchmarking courtesy of Atos, experiments run by Romain Dolbeau <romain.dolbeau@atos.net>. Kudos! This is minimalistic backpoint of 64d92d74985ebb3d0be58a9718f9e080a14a8e7f Thanks to David Benjamin for spotting typo in Knights Landing detection! Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4006)
2017-03-13crypto/x86*cpuid.pl: move extended feature detection.Andy Polyakov
Exteneded feature flags were not pulled on AMD processors, as result a number of extensions were effectively masked on Ryzen. Original fix for x86_64cpuid.pl addressed this problem, but messed up processor vendor detection. This fix moves extended feature detection past basic feature detection where it belongs. 32-bit counterpart is harmonized too. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (cherry picked from commit 1aed5e1ac28790cc915ad03e86e2d5e896a4ea13)
2017-03-07crypto/x86_64cpuid.pl: move extended feature detection upwards.Andy Polyakov
Exteneded feature flags were not pulled on AMD processors, as result a number of extensions were effectively masked on Ryzen. It should have been reported for Excavator since it implements AVX2 extension, but apparently nobody noticed or cared... Reviewed-by: Rich Salz <rsalz@openssl.org> (cherry picked from commit f8418d87e191e46b81e1b9548326ab2876fa0907)
2016-07-15crypto/x86[_64]cpuid.pl: add OPENSSL_ia32_rd[rand|seed]_bytes.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-29x86_64 assembly pack: tolerate spaces in source directory name.Andy Polyakov
[as it is now quoting $output is not required, but done just in case] Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-19Add assembly CRYPTO_memcmp.Andy Polyakov
GH: #102 Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-04-20Copyright consolidation: perl filesRich Salz
Add copyright to most .pl files This does NOT cover any .pl file that has other copyright in it. Most of those are Andy's but some are public domain. Fix typo's in some existing files. Reviewed-by: Richard Levitte <levitte@openssl.org>
2014-02-14x86[_64]cpuid.pl: add low-level RDSEED.Andy Polyakov
2013-01-22x86_64 assembly pack: make Windows build more robust.Andy Polyakov
PR: 2963 and a number of others
2012-11-17Extend OPENSSL_ia32cap_P with extra word to accomodate AVX2 capability.Andy Polyakov
2012-06-27x86_64 assembly pack: make it possible to compile with Perl located onAndy Polyakov
path with spaces. PR: 2835
2011-11-12cryptlib.c, etc.: fix linker warnings in 64-bit Darwin build.Andy Polyakov
2011-06-04x86_64cpuid.pl: fix typo.Andy Polyakov
2011-06-04x86[_64]cpuid.pl: add function accessing rdrand instruction.Andy Polyakov
2011-05-27x86[_64]cpuid.pl: harmonize usage of reserved bits #20 and #30.Andy Polyakov
2011-05-26x86_64cpuid.pl: get AVX masking right.Andy Polyakov
2011-05-18x86_64cpuid.pl: allow shared build to work without -Bsymbolic.Andy Polyakov
PR: 2466
2011-05-16x86[_64]cpuid.pl: handle new extensions.Andy Polyakov
2011-04-17Multiple assembler packs: add experimental memory bus instrumentation.Andy Polyakov
2010-05-05Revert previous Linux-specific/centric commit#19629. If it really has toAndy Polyakov
be done, it's definitely not the way to do it. So far answer to the question was to ./config -Wa,--noexecstack (adopted by RedHat).
2010-05-05Non-executable stack in asm.Ben Laurie
2010-04-14x86_64cpuid.pl: ml64 is allergic to db on label line.Andy Polyakov
2010-01-24OPENSSL_cleanse to accept zero length parameter [matching C implementation].Andy Polyakov
2009-05-14x86[_64]cpuid.pl: further refine shared cache detection.Andy Polyakov
2009-05-12x86_64cpuid.pl: refine shared cache detection logic.Andy Polyakov
2008-11-12x86_64 assembler pack to comply with updated styling x86_64-xlate.pl rules.Andy Polyakov
2008-07-15x86_64cpuid.pl cosmetics: harmonize $dir treatment with other modules.Andy Polyakov
2008-02-25Use default value for $dir if it is empty.Dr. Stephen Henson
2008-01-13Make all x86_64 modules independent on current working directory.Andy Polyakov
2007-08-23Make x86_64 modules work under Win64/x64.Andy Polyakov
2007-07-21x86*cpuid update.Andy Polyakov
2007-06-21Flush output in x86_64cpuid.pl.Andy Polyakov
2007-05-14Profiling revealed that OPENSSL_cleanse consumes *more* CPU time thanAndy Polyakov
sha1_block_data_order when hashing short messages. Move OPENSSL_cleanse to "cpuid" assembler module and gain 2x.
2007-05-14x86_64 assembler updates.Andy Polyakov
2007-04-02RC4_set_key for x86_64 and Core2 optimization.Andy Polyakov
PR: 1447
2005-06-20Solaris x86_64 /usr/ccs/bin/as support.Andy Polyakov
2005-05-03Rename amd64 modules to x86_64 and update RC4 implementation.Andy Polyakov