openssl/crypto/bn/asm
Adam Langley fee8d86d7a 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)

Conflicts:
	crypto/bn/asm/x86_64-gcc.c

Reviewed-by: Rich Salz <rsalz@openssl.org>
(cherry picked from commit a90b1e32d2)
2014-08-19 17:12:08 +02:00
..
x86 Import of old SSLeay release: SSLeay 0.9.1b (unreleased) 1998-12-21 11:00:56 +00:00
.cvsignore Add emacs cache files to .cvsignore. 2005-04-11 14:17:07 +00:00
bn-586.pl OPENSSL_ia32cap final touches. Note that OPENSSL_ia32cap is no longer a 2004-08-29 16:36:05 +00:00
co-586.pl Tidy up asm stuff. 1999-02-12 19:05:10 +00:00
ia64.S Copy bn/asm/ia64.S from HEAD. 2007-10-13 11:02:17 +00:00
mips3.s This fixes "Spurious test failures on IRIX?" reported in April. Apparently 2001-06-22 19:17:42 +00:00
mo-586.pl x86-mont.pl: fix bug in integer-only squaring path [from HEAD]. 2011-12-09 14:28:48 +00: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
ppc.pl ppc.pl: fix bug in bn_mul_comba4 [from HEAD]. 2011-11-05 10:17:06 +00:00
README Very few in the "README" is up-to-date 2000-12-15 10:42:11 +00:00
sparcv8.S - performance retunes, v8plus bn_*_comba routines are reimplemented; 1999-07-25 12:34:30 +00:00
sparcv8plus.S crypto/bn/asm/sparcv8plus.S update from HEAD. 2005-11-15 08:05:19 +00: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.pl Tidy up asm stuff. 1999-02-12 19:05:10 +00:00
x86_64-gcc.c Add volatile qualifications to two blocks of inline asm to stop GCC from 2014-08-19 17:12:08 +02:00
x86_64-mont.pl Make x86_64-mont.pl work with debug Win64 build [from HEAD]. 2008-02-27 20:14:46 +00: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>