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 Add emacs cache files to .cvsignore. 2005-04-11 14:17:07 +00:00
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 Fix Intel assembler warnings. 2005-08-10 08:28:36 +00:00
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 This fixes "Spurious test failures on IRIX?" reported in April. Apparently 2001-06-22 19:17:42 +00:00
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-risc2.s was not PIC, see RT#426. I strip call to fprintf as it's 2003-01-03 10:52:40 +00:00
pa-risc2W.s A compiler warning removed. Thanks to the folks at HP! 2000-09-27 13:54:28 +00:00
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 Very few in the "README" is up-to-date 2000-12-15 10:42:11 +00:00
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 Unify sparcv9 assembler naming and build rules among 32- and 64-bit builds. 2005-12-16 17:39:57 +00:00
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 Finally, a bn_div_words() in VAX assembler that goes through all tests. 2002-12-23 11:25:51 +00:00
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>