Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 05 Jan 2012 01:41:32 +0100
From: magnum <john.magnum@...hmail.com>
To: john-dev@...ts.openwall.com
Subject: Re: gcc versions

On 01/05/2012 12:11 AM, Solar Designer wrote:
> 4.0.0 - 383K c/s, 71879 bytes (this old version of gcc generates function calls for SSE2 intrinsics)

For 32-bit MD4/MD5/SHA1, we have -sse2 that only use asm, and -sse2i 
that use precompiled intrinsics. Perhaps the sse2 build targets should 
be altered to use Bartavelle's intrinsics code (but not precompiled) - 
and only switch to asm for gcc older than 4.1.

I actually tried building sse-intrinsics.o with a gcc-3.3 I found on an 
ancient Debian 32-bit system. It cowardly bailed out with "internal 
compiler error" :)

> To be fair, things are very different for some other hash/cipher types
> supported by JtR - e.g., for Blowfish-based hashing we went from 560 c/s
> for 4.1.0 to 700 c/s for 4.6.2.

There was a regression for Bartavelle's intrinsics in gcc 4.5 that was 
recovered in 4.6:

crypt-MD5 intrinsics (best PARA for each compiler, Q9550):
icc 12.1.0	PARA 3:	32058 real, 31994 virtual
gcc 4.4.6	PARA 3:	24996 real, 25147 virtual
gcc 4.5.4	PARA 2:	18528 real, 18528 virtual
gcc 4.6.1	PARA 4:	27445 real, 27554 virtual

And the same goes for SHA1. MD4 seems unaffected by this. BTW, would you 
be able to try my testpara make targets with all those versions of gcc?

magnum

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.