|
|
Message-ID: <20130731023701.GA23102@openwall.com>
Date: Wed, 31 Jul 2013 06:37:01 +0400
From: Solar Designer <solar@...nwall.com>
To: john-dev@...ts.openwall.com
Subject: Re: Parallella: bcrypt
Katja,
On Wed, Jul 31, 2013 at 06:19:08AM +0400, Solar Designer wrote:
> Another thing I noticed is that you're not yet using LDRD to preload P's
> (instead, you preload the elements one by one). I think you should.
You may need to adjust the alignment of P for that, to make P[1] rather
than P[0] quadword aligned.
Also, you may use STRD and likely its form with post-increment in these
pieces of code:
str r22, [r2]
str r48, [r2, +0x1]
str r23, [r2, +r52]
str r12, [r2, +r53]
iadd r2, r2, r59
str r22, [r2]
str r48, [r2, +0x1]
str r23, [r52]
str r12, [r52, +0x1]
add r2, r2, 8
add r52, r52, 8
You just need to allocate adjacent registers (with the first of them
being even-numbered). Instead of your current use of r52 and r53,
you'll need just one of them (the instruction will increment it).
The IADD and the ADDs will be gone.
Or am I missing something?
To make maintenance of this code easier, I suggest that you move to .S
and cpp macros, and add plenty of #define's with descriptive names for
the registers.
Alexander
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.