openssl/crypto/bn/asm
Adam Langley 7753a3a684 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.
2013-06-04 18:46:25 +01:00
..
x86
.cvsignore
alpha-mont.pl alphacpuid.pl: fix alignment bug. 2011-08-12 12:28:52 +00:00
armv4-gf2m.pl armv4cpuid.S, armv4-gf2m.pl: make newest code compilable by older assembler. 2011-11-05 13:07:18 +00:00
armv4-mont.pl armv4-mont.pl: profiler-assisted optimization gives 8%-14% improvement 2011-08-13 12:38:41 +00:00
bn-586.pl
bn-c64xplus.asm C64x+ assembly pack: improve EABI support. 2012-11-28 13:19:10 +00:00
c64xplus-gf2m.pl C64x+ assembly pack: improve EABI support. 2012-11-28 13:19:10 +00:00
co-586.pl
ia64-mont.pl
ia64.S
mips-mont.pl MIPS assembly pack: assign default value to $flavour. 2012-08-17 09:10:31 +00:00
mips.pl bn/asm/mips.pl: hardwire local call to bn_div_words. 2013-01-22 21:13:37 +01: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
ppc64-mont.pl
ppc-mont.pl
ppc.pl ppc.pl: fix bug in bn_mul_comba4. 2011-11-05 10:16:04 +00:00
README
s390x-gf2m.pl
s390x-mont.pl
s390x.S
sparct4-mont.pl Support for SPARC T4 MONT[MUL|SQR] instructions. 2012-11-17 10:34:11 +00:00
sparcv8.S
sparcv8plus.S SPARC assembler pack: fix FIPS linking errors. 2011-08-12 21:38:19 +00: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
sparcv9a-mont.pl
via-mont.pl
vis3-mont.pl Add VIS3 Montgomery multiplication. 2012-10-20 09:13:21 +00:00
vms.mar
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-mont5.pl x86_64 assembly pack: keep making Windows build more robust. 2013-02-02 19:54:59 +01:00
x86_64-mont.pl x86_64 assembly pack: keep making Windows build more robust. 2013-02-02 19:54:59 +01:00
x86-gf2m.pl
x86-mont.pl x86-mont.pl: fix bug in integer-only squaring path. 2011-12-09 14:21:25 +00:00
x86.pl

<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>