diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2013-01-15 21:50:41 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2013-01-15 21:50:41 +0100 |
commit | 8e7312e12fb088ba99f4f875903926f2ef9ed235 (patch) | |
tree | 14463200a24f1f8d416f093c48ce9ffd4e05a92e | |
parent | 5b7f50f37210706c0f508788991de88244c7b29b (diff) | |
download | busybox-w32-8e7312e12fb088ba99f4f875903926f2ef9ed235.tar.gz busybox-w32-8e7312e12fb088ba99f4f875903926f2ef9ed235.tar.bz2 busybox-w32-8e7312e12fb088ba99f4f875903926f2ef9ed235.zip |
sha3: tweak choice of a fast code path for 64-bit
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | libbb/hash_md5_sha.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libbb/hash_md5_sha.c b/libbb/hash_md5_sha.c index 18e426079..7ae0b6385 100644 --- a/libbb/hash_md5_sha.c +++ b/libbb/hash_md5_sha.c | |||
@@ -1057,7 +1057,7 @@ static void KeccakF(uint64_t *state) | |||
1057 | 1057 | ||
1058 | /* Chi */ | 1058 | /* Chi */ |
1059 | for (y = 0; y <= 20; y += 5) { | 1059 | for (y = 0; y <= 20; y += 5) { |
1060 | if (SHA3_SMALL) { | 1060 | if (SHA3_SMALL && !ARCH_IS_64BIT) { |
1061 | uint64_t BC[5]; | 1061 | uint64_t BC[5]; |
1062 | BC[0] = state[y + 0]; | 1062 | BC[0] = state[y + 0]; |
1063 | BC[1] = state[y + 1]; | 1063 | BC[1] = state[y + 1]; |
@@ -1071,6 +1071,7 @@ static void KeccakF(uint64_t *state) | |||
1071 | } | 1071 | } |
1072 | } else { | 1072 | } else { |
1073 | /* 32-bit x86: +50 bytes code, 10% faster */ | 1073 | /* 32-bit x86: +50 bytes code, 10% faster */ |
1074 | /* 64-bit x86: ~same code size, 30% faster */ | ||
1074 | uint64_t BC0, BC1, BC2, BC3, BC4; | 1075 | uint64_t BC0, BC1, BC2, BC3, BC4; |
1075 | BC0 = state[y + 0]; | 1076 | BC0 = state[y + 0]; |
1076 | BC1 = state[y + 1]; | 1077 | BC1 = state[y + 1]; |