openssl/crypto/bn/asm
Andy Polyakov a159719440 bn/asm/x86[_64]-mont*.pl: complement alloca with page-walking.
Some OSes, *cough*-dows, insist on stack being "wired" to
physical memory in strictly sequential manner, i.e. if stack
allocation spans two pages, then reference to farmost one can
be punishable by SEGV. But page walking can do good even on
other OSes, because it guarantees that villain thread hits
the guard page before it can make damage to innocent one...

Reviewed-by: Rich Salz <rsalz@openssl.org>
(cherry picked from commit adc4f1fc25)

Resolved conflicts:
	crypto/bn/asm/x86_64-mont.pl
	crypto/bn/asm/x86_64-mont5.pl

Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-03-07 22:16:11 +01:00
..
x86
alpha-mont.pl Alpha assembler fixed from HEAD. 2011-08-12 12:31:08 +00:00
armv4-gf2m.pl Conversion to UTF-8 where needed 2015-07-14 01:18:57 +02:00
armv4-mont.pl ARM assembler pack update from HEAD. 2011-11-14 20:58:01 +00: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 typos 2015-10-23 20:41:17 +02:00
mips-mont.pl MIPS assembly pack: get rid of deprecated instructions. 2013-10-13 13:19:12 +02:00
mips.pl Fix for CVE-2014-3570. 2015-01-08 13:43:20 +00: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
modexp512-x86_64.pl Revert "Remove engine_rsax and its asm file." 2015-01-27 16:35:55 -05: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:15:53 +02:00
ppc-mont.pl PPC assembler pack update from HEAD. 2011-11-14 20:54:17 +00:00
ppc.pl PPC assembler pack update from HEAD. 2011-11-14 20:54:17 +00:00
ppc64-mont.pl PPC assembler pack update from HEAD. 2011-11-14 20:54:17 +00:00
README
s390x-gf2m.pl Conversion to UTF-8 where needed 2015-07-14 01:18:57 +02: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
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-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
vms.mar
x86-gf2m.pl Conversion to UTF-8 where needed 2015-07-14 01:18:57 +02:00
x86-mont.pl bn/asm/x86[_64]-mont*.pl: complement alloca with page-walking. 2016-03-07 22:16:11 +01:00
x86.pl
x86_64-gcc.c Conversion to UTF-8 where needed 2015-07-14 01:18:57 +02:00
x86_64-gf2m.pl Conversion to UTF-8 where needed 2015-07-14 01:18:57 +02:00
x86_64-mont.pl bn/asm/x86[_64]-mont*.pl: complement alloca with page-walking. 2016-03-07 22:16:11 +01:00
x86_64-mont5.pl bn/asm/x86[_64]-mont*.pl: complement alloca with page-walking. 2016-03-07 22:16:11 +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>