From snapshot in May with SSE2 enabled:
  type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
  sha-512           3171.75k    12757.93k    22761.88k    34514.56k    40059.42k

But now it's back to non-SSE2 speed:
  type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
  sha512             989.46k     4050.75k     5940.56k     8041.45k     9160.15k  << !!

All this using djgpp under a Win-XP DOS box on a 2.1GHz P4. What did I do wrong?

Latest relevant update is more picky and requires yet another assembler module compiled and linked in.


Built with gcc 3.3.1 and as 2.13. These are some of my CFLAGS as reported by "openssl speed sha512":
-O2 -fno-strength-reduce -fomit-frame-pointer
-DOPENSSL_NO_HW=1 -DMD5_ASM=1 -DSHA1_ASM=1 -DOPENSSL_BN_ASM_PART_WORDS=1 -DTHIRTY_TWO_BIT
-DOPENSSL_IA32_SSE2 -DOPENSSL_CPUID_OBJ


And $OPENSSL_ia32cap=0x4000000. Shouldn't this be okay? I'm using my own makefile that's been working fine for years.

I'd rather discuss proper and complete support for assembler modules in DJGPP than trying to figure out what went wrong with your custom setup:-) Note that assembler modules were recently thrown into DJGPP config line. Try it out and tell what went wrong (and preferably how to make it work:-)


perl.exe -I./crypto/perlasm -I./crypto/bn/asm -I./crypto/des/asm \
  crypto/sha/asm/sha512-sse2.pl cpp 386 > ./obj/tmp.c
  gcc.exe -E -DOUT -Wall <more CFLAGS> ./obj/tmp.c | as.exe -o obj/sha512-sse2.o
{standard input}: Assembler messages:
{standard input}:306: Warning: alignment too large: 15 assumed

Disassembling the 3MByte (!) sha512-sse2.o show *huge* blocks of "nop"s
caused by the "&align(16);" (?). Doesn't "as" interpret that as align 2^16?

It surely does. Fix for that was recently added too. Well, "fix" is probably not totally appropriate here, because the suggestion is to switch from 'perl whatever.pl cpp' to 'perl *.pl a.out'. It's a.out output which should generate appropriate .align directives and should be used instead. A.


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

Reply via email to