openssl/crypto/bn/asm
Adam Langley 45d010255f Add volatile qualifications to two blocks of inline asm to stop GCC from
eliminating them as dead code.

Both volatile and "memory" are used because of some concern that the compiler
may still cache values across the asm block without it, and because this was
such a painful debugging session that I wanted to ensure that it's never
repeated.
(cherry picked from commit 7753a3a684)
2014-02-01 22:01:46 +01:00
..
x86
.cvsignore
alpha-mont.pl Alpha assembler fixed from HEAD. 2011-08-12 12:31:08 +00:00
armv4-gf2m.pl ARM assembler pack update from HEAD. 2011-11-14 20:58:01 +00:00
armv4-mont.pl bn/asm/armv4-mont.pl: add NEON code path. 2013-12-09 22:46:29 +01:00
bn-586.pl Update perl asm scripts include paths for perlasm. 2008-01-05 22:28:38 +00:00
co-586.pl Update perl asm scripts include paths for perlasm. 2008-01-05 22:28:38 +00:00
ia64-mont.pl IA64 assembler pack update from HEAD. 2011-11-14 20:45:57 +00:00
ia64.S
mips-mont.pl MIPS assembly pack: get rid of deprecated instructions. 2013-10-13 13:18:21 +02:00
mips.pl MIPS assembly pack: get rid of deprecated instructions. 2013-10-13 13:18:21 +02:00
mips3-mont.pl Latest bn_mont.c modification broke ECDSA test. I've got math wrong, which 2007-06-29 13:10:19 +00:00
mips3.s
modexp512-x86_64.pl x86_64 assembly pack: make Windows build more robust [from master]. 2013-01-22 22:51:29 +01:00
pa-risc2.s
pa-risc2W.s
parisc-mont.pl PA-RISC assembler pack: switch to bve in 64-bit builds. 2013-06-30 23:13:23 +02:00
ppc-mont.pl PPC assembly pack: update from master branch. 2013-10-15 00:31:45 +02:00
ppc.pl PPC assembly pack: update from master branch. 2013-10-15 00:31:45 +02:00
ppc64-mont.pl PPC assembly pack: ppc64-mont update from master. 2014-02-01 21:51:51 +01:00
README
rsaz-avx2.pl crypto/bn/rsaz*: fix licensing note. 2013-12-03 22:17:55 +01:00
rsaz-x86_64.pl crypto/bn/asm/rsaz-x86_64.pl: make it work on Win64. 2013-12-03 22:30:00 +01:00
s390x-gf2m.pl s390x assembler pack update from HEAD. 2011-11-14 20:47:22 +00:00
s390x-mont.pl s390x assembler pack update from HEAD. 2011-11-14 20:47:22 +00:00
s390x.S s390x.S: fix typo in bn_mul_words [from HEAD]. 2010-11-22 21:57:29 +00:00
sparct4-mont.pl Optimize SPARC T4 MONTMUL support. 2013-06-18 11:07:16 +02:00
sparcv8.S
sparcv8plus.S
sparcv9-gf2m.pl Add BN support for SPARC VIS3 and T4 [from master]. 2013-05-20 15:48:13 +02: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 Latest bn_mont.c modification broke ECDSA test. I've got math wrong, which 2007-06-29 13:10:19 +00: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 Add BN support for SPARC VIS3 and T4 [from master]. 2013-05-20 15:48:13 +02:00
vms.mar
x86-gf2m.pl x86 assembler pack update from HEAD. 2011-11-14 21:06:50 +00:00
x86-mont.pl x86-mont.pl: fix bug in integer-only squaring path. 2011-12-09 14:26:28 +00:00
x86.pl
x86_64-gcc.c Add volatile qualifications to two blocks of inline asm to stop GCC from 2014-02-01 22:01:46 +01:00
x86_64-gf2m.pl x86_64-gf2m.pl: fix typo. 2013-03-01 22:37:53 +01:00
x86_64-mont.pl crypto/bn/asm/x86_64-mont*.pl: update from master. 2013-12-09 22:40:53 +01:00
x86_64-mont5.pl bn/asm/x86_64-mont5.pl: fix compilation error on Solaris. 2014-01-09 13:47:53 +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 origional 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>