diff options
author | lloyd <[email protected]> | 2009-10-29 17:34:52 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2009-10-29 17:34:52 +0000 |
commit | 7462977b8e5eb95a81a6253dc6e6224334ad6ae9 (patch) | |
tree | d14b468f7a04b02635b11bda017cca56259275b5 /src/hash/rmd160 | |
parent | 5553c5cf54563280a4ffc94baab7b94a83cb0000 (diff) |
Add a new looping load_be / load_le for loading large arrays at once, and
change some of the hash functions to use it as low hanging fruit.
Probably could use further optimization (just unrolls x4 currently), but
merely having it as syntax is good as it allows optimizing many functions
at once (eg using SSE2 to do 4-way byteswaps).
Diffstat (limited to 'src/hash/rmd160')
-rw-r--r-- | src/hash/rmd160/rmd160.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/hash/rmd160/rmd160.cpp b/src/hash/rmd160/rmd160.cpp index 2baf5ab08..5237f1e12 100644 --- a/src/hash/rmd160/rmd160.cpp +++ b/src/hash/rmd160/rmd160.cpp @@ -82,9 +82,7 @@ void RIPEMD_160::compress_n(const byte input[], u32bit blocks) for(u32bit i = 0; i != blocks; ++i) { - for(u32bit j = 0; j != 16; ++j) - M[j] = load_le<u32bit>(input, j); - input += HASH_BLOCK_SIZE; + load_le(M.begin(), input, M.size()); u32bit A1 = digest[0], A2 = A1, B1 = digest[1], B2 = B1, C1 = digest[2], C2 = C1, D1 = digest[3], D2 = D1, @@ -181,6 +179,8 @@ void RIPEMD_160::compress_n(const byte input[], u32bit blocks) digest[3] = digest[4] + A1 + B2; digest[4] = digest[0] + B1 + C2; digest[0] = C1; + + input += HASH_BLOCK_SIZE; } } |