crypto: sha1-powerpc - little-endian support
The driver does not handle endianness properly when loading the input data. Signed-off-by: Marcelo Cerri <marcelo.cerri@canonical.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
50d2e6dc1f
commit
74ff6cb3aa
|
@ -7,6 +7,15 @@
|
|||
#include <asm/ppc_asm.h>
|
||||
#include <asm/asm-offsets.h>
|
||||
|
||||
#ifdef __BIG_ENDIAN__
|
||||
#define LWZ(rt, d, ra) \
|
||||
lwz rt,d(ra)
|
||||
#else
|
||||
#define LWZ(rt, d, ra) \
|
||||
li rt,d; \
|
||||
lwbrx rt,rt,ra
|
||||
#endif
|
||||
|
||||
/*
|
||||
* We roll the registers for T, A, B, C, D, E around on each
|
||||
* iteration; T on iteration t is A on iteration t+1, and so on.
|
||||
|
@ -23,7 +32,7 @@
|
|||
#define W(t) (((t)%16)+16)
|
||||
|
||||
#define LOADW(t) \
|
||||
lwz W(t),(t)*4(r4)
|
||||
LWZ(W(t),(t)*4,r4)
|
||||
|
||||
#define STEPD0_LOAD(t) \
|
||||
andc r0,RD(t),RB(t); \
|
||||
|
@ -33,7 +42,7 @@
|
|||
add r0,RE(t),r15; \
|
||||
add RT(t),RT(t),r6; \
|
||||
add r14,r0,W(t); \
|
||||
lwz W((t)+4),((t)+4)*4(r4); \
|
||||
LWZ(W((t)+4),((t)+4)*4,r4); \
|
||||
rotlwi RB(t),RB(t),30; \
|
||||
add RT(t),RT(t),r14
|
||||
|
||||
|
|
Loading…
Reference in New Issue