Hi,

As we all know (by now) crypto/bn/asm/alpha.s appears to be broken. The
question everybody asking him/herself is "do we fix it or do we skip
it?" I just want to remind you about the inline assembler codelet I
implemented about a year ago dubbed as BN_UMULT_HIGH:

> If compiled with DEC C the C implementation exhibits 12% performance
> improvement over the crypto/bn/asm/alpha.s (on EV56 box running
> AlphaLinux). GNU C is (unfortunately) 8% behind the assembler
> implementation.

The keyword is that if crafted with inline assembler the C
implementation is perfectly competitive performance wise. And it
works:-) The code gets engaged automatically as soon as you get rid of
asm/alpha.o in ./Configure lines (as it's already done in snapshots as
well as upcoming 0.9.6a-beta3). Mind the fact that no-asm command-line
option disables *all* inline assembler gizmos which (in case you wonder)
in this context results in about 2-times performance loss.

And something for VMS for Alpha users to think about:

> 'apps/openssl speed rsa' exhibits 6 (six) times performance
> improvement over the original VMS bignum implementation.

The "original VMS bignum" is 32-bit VAX code which gets compiled by
Alpha macro-assembler.
The code gets engaged by #defining SIXTY_FOUR_BIT *and* skipping the
crypto/bn/asm/vms.mar.

Cheers. Andy.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to