]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/spdk/intel-ipsec-mb/avx2/mb_mgr_hmac_md5_flush_avx2.asm
import 15.2.0 Octopus source
[ceph.git] / ceph / src / spdk / intel-ipsec-mb / avx2 / mb_mgr_hmac_md5_flush_avx2.asm
index a590ef2e061427ff61b95df5f119e136f7ae5c0f..2a8ce41a40553e7199daec81ed7480ff55cc7c67 100644 (file)
@@ -111,6 +111,7 @@ section .text
 %define p               arg2
 
 %define tmp4               r8
+%define tmp5               r9
 %define num_lanes_inuse     r12
 %define len_upper           r13
 %define idx_upper           r14
@@ -290,13 +291,20 @@ end_loop:
         ; copy 12 bytes
         mov    DWORD(tmp2), [state + _args_digest_md5 + MD5_DIGEST_WORD_SIZE*idx + 0*MD5_DIGEST_ROW_SIZE]
         mov    DWORD(tmp4), [state + _args_digest_md5 + MD5_DIGEST_WORD_SIZE*idx + 1*MD5_DIGEST_ROW_SIZE]
-        mov    DWORD(tmp3), [state + _args_digest_md5 + MD5_DIGEST_WORD_SIZE*idx + 2*MD5_DIGEST_ROW_SIZE]
+        mov    DWORD(tmp5), [state + _args_digest_md5 + MD5_DIGEST_WORD_SIZE*idx + 2*MD5_DIGEST_ROW_SIZE]
 ;      bswap   DWORD(tmp2)
 ;      bswap   DWORD(tmp4)
 ;      bswap   DWORD(tmp3)
         mov    [p + 0*4], DWORD(tmp2)
         mov    [p + 1*4], DWORD(tmp4)
-        mov    [p + 2*4], DWORD(tmp3)
+        mov    [p + 2*4], DWORD(tmp5)
+
+       cmp     DWORD [job_rax + _auth_tag_output_len_in_bytes], 12
+       je      return
+
+       ; copy 16 bytes
+       mov     DWORD(tmp5), [state + _args_digest_md5 + MD5_DIGEST_WORD_SIZE*idx + 3*MD5_DIGEST_ROW_SIZE]
+       mov     [p + 3*4], DWORD(tmp5)
 
 return:
         DBGPRINTL "---------- exit md5 flush -----------"