crypto: sha512 - Avoid stack bloat on i386
authorHerbert Xu <herbert@gondor.apana.org.au>
Sun, 5 Feb 2012 04:09:28 +0000 (15:09 +1100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Feb 2012 20:48:12 +0000 (12:48 -0800)
commitc29e3ddfbd904f0b7cf600c04c4263c71c1f4830
treed4c1883696a75ede08765d3ec11f896aab1ccab3
parentd122aed32ad780e0c337551121c36a5d5e1c2ee0
crypto: sha512 - Avoid stack bloat on i386

commit 3a92d687c8015860a19213e3c102cad6b722f83c upstream.

Unfortunately in reducing W from 80 to 16 we ended up unrolling
the loop twice.  As gcc has issues dealing with 64-bit ops on
i386 this means that we end up using even more stack space (>1K).

This patch solves the W reduction by moving LOAD_OP/BLEND_OP
into the loop itself, thus avoiding the need to duplicate it.

While the stack space still isn't great (>0.5K) it is at least
in the same ball park as the amount of stack used for our C sha1
implementation.

Note that this patch basically reverts to the original code so
the diff looks bigger than it really is.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
crypto/sha512_generic.c