openssl/crypto/bn/asm
Andy Polyakov f3f620e1e0 bn_exp.c: move check for AD*X to rsaz-avx2.pl.
This ensures high performance is situations when assembler supports
AVX2, but not AD*X.
2014-06-27 00:07:15 +02:00
..
x86
.cvsignore
alpha-mont.pl alphacpuid.pl: fix alignment bug. 2011-08-12 12:28:52 +00:00
armv4-gf2m.pl ARM assembly pack: get ARMv7 instruction endianness right. 2014-06-06 21:27:18 +02:00
armv4-mont.pl ARM assembly pack: get ARMv7 instruction endianness right. 2014-06-06 21:27:18 +02:00
bn-586.pl Update perl asm scripts include paths for perlasm. 2008-01-05 22:28:38 +00:00
bn-c64xplus.asm C64x+ assembly pack: make it work with older toolchain. 2014-05-04 16:38:32 +02:00
c64xplus-gf2m.pl C64x+ assembly pack: make it work with older toolchain. 2014-05-04 16:38:32 +02:00
co-586.pl Update perl asm scripts include paths for perlasm. 2008-01-05 22:28:38 +00:00
ia64-mont.pl IA-64 assembler pack: fix typos and make it work on HP-UX. 2011-05-07 20:36:05 +00:00
ia64.S
mips-mont.pl MIPS assembly pack: get rid of deprecated instructions. 2013-10-13 13:14:52 +02:00
mips.pl MIPS assembly pack: get rid of deprecated instructions. 2013-10-13 13:14:52 +02:00
modexp512-x86_64.pl x86_64 assembly pack: make Windows build more robust. 2013-01-22 22:27:28 +01:00
pa-risc2.s
pa-risc2W.s
parisc-mont.pl PA-RISC assembler pack: switch to bve in 64-bit builds. 2013-06-18 10:37:00 +02:00
ppc-mont.pl PPC assembly pack: add .size directives. 2013-10-15 00:14:39 +02:00
ppc.pl PPC assembly pack: add .size directives. 2013-10-15 00:14:39 +02:00
ppc64-mont.pl ppc64-mont.pl: eliminate dependency on GPRs' upper halves. 2013-11-27 22:50:00 +01:00
README misspellings fixes by https://github.com/vlajos/misspell_fixer 2013-09-05 21:39:42 +01:00
rsaz-avx2.pl bn_exp.c: move check for AD*X to rsaz-avx2.pl. 2014-06-27 00:07:15 +02:00
rsaz-x86_64.pl crypto/bn/asm/rsaz-x86_64.pl: make it work on Win64. 2013-12-03 22:28:48 +01:00
s390x-gf2m.pl s390x-gf2m.pl: commentary update (final performance numbers turned to be 2011-07-04 11:20:33 +00:00
s390x-mont.pl s390x assembler pack: tune-up and support for new z196 hardware. 2011-03-04 13:09:16 +00:00
s390x.S s390x.S: fix typo in bn_mul_words. 2010-11-22 21:55:07 +00:00
sparct4-mont.pl Optimize SPARC T4 MONTMUL support. 2013-06-18 10:39:38 +02:00
sparcv8.S
sparcv8plus.S misspellings fixes by https://github.com/vlajos/misspell_fixer 2013-09-05 21:39:42 +01:00
sparcv9-gf2m.pl SPARCv9 assembly pack: harmonize ABI handling (so that it's handled in one 2012-10-25 12:07:32 +00:00
sparcv9-mont.pl Latest bn_mont.c modification broke ECDSA test. I've got math wrong, which 2007-06-29 13:10:19 +00:00
sparcv9a-mont.pl misspellings fixes by https://github.com/vlajos/misspell_fixer 2013-09-05 21:39:42 +01:00
via-mont.pl Latest bn_mont.c modification broke ECDSA test. I've got math wrong, which 2007-06-29 13:10:19 +00:00
vis3-mont.pl misspellings fixes by https://github.com/vlajos/misspell_fixer 2013-09-05 21:39:42 +01:00
vms.mar
x86-gf2m.pl x86gas.pl: add palignr and move pclmulqdq. 2011-05-16 18:07:00 +00:00
x86-mont.pl x86-mont.pl: fix bug in integer-only squaring path. 2011-12-09 14:21:25 +00:00
x86.pl
x86_64-gcc.c Add volatile qualifications to two blocks of inline asm to stop GCC from 2013-06-04 18:46:25 +01:00
x86_64-gf2m.pl x86_64-gf2m.pl: fix typo. 2013-03-01 22:36:36 +01:00
x86_64-mont.pl bn/asm/x86_64-mont5.pl: add MULX/AD*X code path. 2013-12-09 21:02:24 +01:00
x86_64-mont5.pl bn/asm/x86_64-mont5.pl: fix compilation error on Solaris. 2014-01-09 13:44:59 +01:00

<OBSOLETE>

All assember in this directory are just version of the file
crypto/bn/bn_asm.c.

Quite a few of these files are just the assember output from gcc since on 
quite a few machines they are 2 times faster than the system compiler.

For the x86, I have hand written assember because of the bad job all
compilers seem to do on it.  This normally gives a 2 time speed up in the RSA
routines.

For the DEC alpha, I also hand wrote the assember (except the division which
is just the output from the C compiler pasted on the end of the file).
On the 2 alpha C compilers I had access to, it was not possible to do
64b x 64b -> 128b calculations (both long and the long long data types
were 64 bits).  So the hand assember gives access to the 128 bit result and
a 2 times speedup :-).

There are 3 versions of assember for the HP PA-RISC.

pa-risc.s is the original one which works fine and generated using gcc :-)

pa-risc2W.s and pa-risc2.s are 64 and 32-bit PA-RISC 2.0 implementations
by Chris Ruemmler from HP (with some help from the HP C compiler).

</OBSOLETE>