aboutsummaryrefslogtreecommitdiff
path: root/libbb/hash_md5_sha256_x86-64_shaNI.S
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2022-02-09 01:50:22 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2022-02-09 01:50:22 +0100
commitcaa9c4f707b661cf398f2c2d66f54f5b0d8adfe2 (patch)
tree409b19128aa7bc1a512fa126f22f1a3e9344d8ae /libbb/hash_md5_sha256_x86-64_shaNI.S
parent11bcea7ac0ac4b2156c1b2d53f926d789b9792b4 (diff)
downloadbusybox-w32-caa9c4f707b661cf398f2c2d66f54f5b0d8adfe2.tar.gz
busybox-w32-caa9c4f707b661cf398f2c2d66f54f5b0d8adfe2.tar.bz2
busybox-w32-caa9c4f707b661cf398f2c2d66f54f5b0d8adfe2.zip
libbb/sha256: code shrink in x86 assembly
function old new delta sha256_process_block64_shaNI 32-bit 676 673 -3 sha256_process_block64_shaNI 64-bit 680 677 -3 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to '')
-rw-r--r--libbb/hash_md5_sha256_x86-64_shaNI.S11
1 files changed, 5 insertions, 6 deletions
diff --git a/libbb/hash_md5_sha256_x86-64_shaNI.S b/libbb/hash_md5_sha256_x86-64_shaNI.S
index bc063b9cc..4663f750a 100644
--- a/libbb/hash_md5_sha256_x86-64_shaNI.S
+++ b/libbb/hash_md5_sha256_x86-64_shaNI.S
@@ -42,13 +42,12 @@
42 .balign 8 # allow decoders to fetch at least 2 first insns 42 .balign 8 # allow decoders to fetch at least 2 first insns
43sha256_process_block64_shaNI: 43sha256_process_block64_shaNI:
44 44
45 movu128 80+0*16(%rdi), STATE1 /* DCBA (msb-to-lsb: 3,2,1,0) */ 45 movu128 80+0*16(%rdi), XMMTMP /* DCBA (msb-to-lsb: 3,2,1,0) */
46 movu128 80+1*16(%rdi), STATE0 /* HGFE */ 46 movu128 80+1*16(%rdi), STATE1 /* HGFE */
47/* shufps takes dwords 0,1 from *2nd* operand, and dwords 2,3 from 1st one */ 47/* shufps takes dwords 0,1 from *2nd* operand, and dwords 2,3 from 1st one */
48 mova128 STATE0, XMMTMP 48 mova128 STATE1, STATE0
49 shufps SHUF(1,0,1,0), STATE1, STATE0 /* ABEF */ 49 shufps SHUF(1,0,1,0), XMMTMP, STATE0 /* ABEF */
50 shufps SHUF(3,2,3,2), STATE1, XMMTMP /* CDGH */ 50 shufps SHUF(3,2,3,2), XMMTMP, STATE1 /* CDGH */
51 mova128 XMMTMP, STATE1
52 51
53/* XMMTMP holds flip mask from here... */ 52/* XMMTMP holds flip mask from here... */
54 mova128 PSHUFFLE_BSWAP32_FLIP_MASK(%rip), XMMTMP 53 mova128 PSHUFFLE_BSWAP32_FLIP_MASK(%rip), XMMTMP