]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/crypto/isa-l/isa-l_crypto/aes/gcm_multibinary.asm
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / crypto / isa-l / isa-l_crypto / aes / gcm_multibinary.asm
index e46066ac57a76a3df2333c10ceaf5bc177957565..6f71e43fa37f403a216cce2e4f1670c18c9d2102 100644 (file)
@@ -2,7 +2,7 @@
 ;  Copyright(c) 2011-2016 Intel Corporation All rights reserved.
 ;
 ;  Redistribution and use in source and binary forms, with or without
-;  modification, are permitted provided that the following conditions 
+;  modification, are permitted provided that the following conditions
 ;  are met:
 ;    * Redistributions of source code must retain the above copyright
 ;      notice, this list of conditions and the following disclaimer.
 default rel
 [bits 64]
 
-%ifidn __OUTPUT_FORMAT__, elf64
-%define WRT_OPT         wrt ..plt
-%else
-%define WRT_OPT
-%endif
-
 %include "reg_sizes.asm"
 
-extern aesni_gcm128_init_sse
-extern aesni_gcm128_init_avx_gen4
-extern aesni_gcm128_init_avx_gen2
-
-extern aesni_gcm128_enc_sse
-extern aesni_gcm128_enc_avx_gen4
-extern aesni_gcm128_enc_avx_gen2
-extern aesni_gcm128_enc_update_sse
-extern aesni_gcm128_enc_update_avx_gen4
-extern aesni_gcm128_enc_update_avx_gen2
-extern aesni_gcm128_enc_finalize_sse
-extern aesni_gcm128_enc_finalize_avx_gen4
-extern aesni_gcm128_enc_finalize_avx_gen2
-
-extern aesni_gcm128_dec_sse
-extern aesni_gcm128_dec_avx_gen4
-extern aesni_gcm128_dec_avx_gen2
-extern aesni_gcm128_dec_update_sse
-extern aesni_gcm128_dec_update_avx_gen4
-extern aesni_gcm128_dec_update_avx_gen2
-extern aesni_gcm128_dec_finalize_sse
-extern aesni_gcm128_dec_finalize_avx_gen4
-extern aesni_gcm128_dec_finalize_avx_gen2
-
-extern aesni_gcm128_precomp_sse
-extern aesni_gcm128_precomp_avx_gen4
-extern aesni_gcm128_precomp_avx_gen2
-
-
-
-extern aesni_gcm256_init_sse
-extern aesni_gcm256_init_avx_gen4
-extern aesni_gcm256_init_avx_gen2
-
-extern aesni_gcm256_enc_sse
-extern aesni_gcm256_enc_avx_gen4
-extern aesni_gcm256_enc_avx_gen2
-extern aesni_gcm256_enc_update_sse
-extern aesni_gcm256_enc_update_avx_gen4
-extern aesni_gcm256_enc_update_avx_gen2
-extern aesni_gcm256_enc_finalize_sse
-extern aesni_gcm256_enc_finalize_avx_gen4
-extern aesni_gcm256_enc_finalize_avx_gen2
-
-extern aesni_gcm256_dec_sse
-extern aesni_gcm256_dec_avx_gen4
-extern aesni_gcm256_dec_avx_gen2
-extern aesni_gcm256_dec_update_sse
-extern aesni_gcm256_dec_update_avx_gen4
-extern aesni_gcm256_dec_update_avx_gen2
-extern aesni_gcm256_dec_finalize_sse
-extern aesni_gcm256_dec_finalize_avx_gen4
-extern aesni_gcm256_dec_finalize_avx_gen2
-
-extern aesni_gcm256_precomp_sse
-extern aesni_gcm256_precomp_avx_gen4
-extern aesni_gcm256_precomp_avx_gen2
+extern aes_gcm_init_128_sse
+extern aes_gcm_init_128_avx_gen4
+extern aes_gcm_init_128_avx_gen2
+
+extern aes_gcm_enc_128_sse
+extern aes_gcm_enc_128_avx_gen4
+extern aes_gcm_enc_128_avx_gen2
+extern aes_gcm_enc_128_update_sse
+extern aes_gcm_enc_128_update_avx_gen4
+extern aes_gcm_enc_128_update_avx_gen2
+extern aes_gcm_enc_128_finalize_sse
+extern aes_gcm_enc_128_finalize_avx_gen4
+extern aes_gcm_enc_128_finalize_avx_gen2
+
+extern aes_gcm_dec_128_sse
+extern aes_gcm_dec_128_avx_gen4
+extern aes_gcm_dec_128_avx_gen2
+extern aes_gcm_dec_128_update_sse
+extern aes_gcm_dec_128_update_avx_gen4
+extern aes_gcm_dec_128_update_avx_gen2
+extern aes_gcm_dec_128_finalize_sse
+extern aes_gcm_dec_128_finalize_avx_gen4
+extern aes_gcm_dec_128_finalize_avx_gen2
+
+extern aes_gcm_precomp_128_sse
+extern aes_gcm_precomp_128_avx_gen4
+extern aes_gcm_precomp_128_avx_gen2
+
+extern aes_gcm_init_256_sse
+extern aes_gcm_init_256_avx_gen4
+extern aes_gcm_init_256_avx_gen2
+
+extern aes_gcm_enc_256_sse
+extern aes_gcm_enc_256_avx_gen4
+extern aes_gcm_enc_256_avx_gen2
+extern aes_gcm_enc_256_update_sse
+extern aes_gcm_enc_256_update_avx_gen4
+extern aes_gcm_enc_256_update_avx_gen2
+extern aes_gcm_enc_256_finalize_sse
+extern aes_gcm_enc_256_finalize_avx_gen4
+extern aes_gcm_enc_256_finalize_avx_gen2
+
+extern aes_gcm_dec_256_sse
+extern aes_gcm_dec_256_avx_gen4
+extern aes_gcm_dec_256_avx_gen2
+extern aes_gcm_dec_256_update_sse
+extern aes_gcm_dec_256_update_avx_gen4
+extern aes_gcm_dec_256_update_avx_gen2
+extern aes_gcm_dec_256_finalize_sse
+extern aes_gcm_dec_256_finalize_avx_gen4
+extern aes_gcm_dec_256_finalize_avx_gen2
+
+extern aes_gcm_precomp_256_sse
+extern aes_gcm_precomp_256_avx_gen4
+extern aes_gcm_precomp_256_avx_gen2
+
+%if (AS_FEATURE_LEVEL) >= 10
+extern aes_gcm_precomp_128_vaes_avx512
+extern aes_gcm_init_128_vaes_avx512
+extern aes_gcm_enc_128_update_vaes_avx512
+extern aes_gcm_dec_128_update_vaes_avx512
+extern aes_gcm_enc_128_finalize_vaes_avx512
+extern aes_gcm_dec_128_finalize_vaes_avx512
+extern aes_gcm_enc_128_vaes_avx512
+extern aes_gcm_dec_128_vaes_avx512
+
+extern aes_gcm_precomp_256_vaes_avx512
+extern aes_gcm_init_256_vaes_avx512
+extern aes_gcm_enc_256_update_vaes_avx512
+extern aes_gcm_dec_256_update_vaes_avx512
+extern aes_gcm_enc_256_finalize_vaes_avx512
+extern aes_gcm_dec_256_finalize_vaes_avx512
+extern aes_gcm_enc_256_vaes_avx512
+extern aes_gcm_dec_256_vaes_avx512
+%endif
 
 section .text
 
@@ -103,70 +115,70 @@ section .text
 ;;;;
 ; instantiate aesni_gcm interfaces init, enc, enc_update, enc_finalize, dec, dec_update, dec_finalize and precomp
 ;;;;
-mbin_interface     aesni_gcm128_init
-mbin_dispatch_init aesni_gcm128_init, aesni_gcm128_init_sse, aesni_gcm128_init_avx_gen2, aesni_gcm128_init_avx_gen4
+mbin_interface     aes_gcm_init_128
+mbin_dispatch_init7 aes_gcm_init_128, aes_gcm_init_128_sse, aes_gcm_init_128_sse, aes_gcm_init_128_avx_gen2, aes_gcm_init_128_avx_gen4, aes_gcm_init_128_avx_gen4, aes_gcm_init_128_vaes_avx512
 
-mbin_interface     aesni_gcm128_enc
-mbin_dispatch_init aesni_gcm128_enc, aesni_gcm128_enc_sse, aesni_gcm128_enc_avx_gen2, aesni_gcm128_enc_avx_gen4
+mbin_interface     aes_gcm_enc_128
+mbin_dispatch_init7 aes_gcm_enc_128, aes_gcm_enc_128_sse, aes_gcm_enc_128_sse, aes_gcm_enc_128_avx_gen2, aes_gcm_enc_128_avx_gen4, aes_gcm_enc_128_avx_gen4, aes_gcm_enc_128_vaes_avx512
 
-mbin_interface     aesni_gcm128_enc_update
-mbin_dispatch_init aesni_gcm128_enc_update, aesni_gcm128_enc_update_sse, aesni_gcm128_enc_update_avx_gen2, aesni_gcm128_enc_update_avx_gen4
+mbin_interface     aes_gcm_enc_128_update
+mbin_dispatch_init7 aes_gcm_enc_128_update, aes_gcm_enc_128_update_sse, aes_gcm_enc_128_update_sse, aes_gcm_enc_128_update_avx_gen2, aes_gcm_enc_128_update_avx_gen4, aes_gcm_enc_128_update_avx_gen4, aes_gcm_enc_128_update_vaes_avx512
 
-mbin_interface     aesni_gcm128_enc_finalize
-mbin_dispatch_init aesni_gcm128_enc_finalize, aesni_gcm128_enc_finalize_sse, aesni_gcm128_enc_finalize_avx_gen2, aesni_gcm128_enc_finalize_avx_gen4
+mbin_interface     aes_gcm_enc_128_finalize
+mbin_dispatch_init7 aes_gcm_enc_128_finalize, aes_gcm_enc_128_finalize_sse, aes_gcm_enc_128_finalize_sse, aes_gcm_enc_128_finalize_avx_gen2, aes_gcm_enc_128_finalize_avx_gen4, aes_gcm_enc_128_finalize_avx_gen4, aes_gcm_enc_128_finalize_vaes_avx512
 
-mbin_interface     aesni_gcm128_dec
-mbin_dispatch_init aesni_gcm128_dec, aesni_gcm128_dec_sse, aesni_gcm128_dec_avx_gen2, aesni_gcm128_dec_avx_gen4
+mbin_interface     aes_gcm_dec_128
+mbin_dispatch_init7 aes_gcm_dec_128, aes_gcm_dec_128_sse, aes_gcm_dec_128_sse, aes_gcm_dec_128_avx_gen2, aes_gcm_dec_128_avx_gen4, aes_gcm_dec_128_avx_gen4, aes_gcm_dec_128_vaes_avx512
 
-mbin_interface     aesni_gcm128_dec_update
-mbin_dispatch_init aesni_gcm128_dec_update, aesni_gcm128_dec_update_sse, aesni_gcm128_dec_update_avx_gen2, aesni_gcm128_dec_update_avx_gen4
+mbin_interface     aes_gcm_dec_128_update
+mbin_dispatch_init7 aes_gcm_dec_128_update, aes_gcm_dec_128_update_sse, aes_gcm_dec_128_update_sse, aes_gcm_dec_128_update_avx_gen2, aes_gcm_dec_128_update_avx_gen4, aes_gcm_dec_128_update_avx_gen4, aes_gcm_dec_128_update_vaes_avx512
 
-mbin_interface     aesni_gcm128_dec_finalize
-mbin_dispatch_init aesni_gcm128_dec_finalize, aesni_gcm128_dec_finalize_sse, aesni_gcm128_dec_finalize_avx_gen2, aesni_gcm128_dec_finalize_avx_gen4
+mbin_interface     aes_gcm_dec_128_finalize
+mbin_dispatch_init7 aes_gcm_dec_128_finalize, aes_gcm_dec_128_finalize_sse, aes_gcm_dec_128_finalize_sse, aes_gcm_dec_128_finalize_avx_gen2, aes_gcm_dec_128_finalize_avx_gen4, aes_gcm_dec_128_finalize_avx_gen4, aes_gcm_dec_128_finalize_vaes_avx512
 
-mbin_interface     aesni_gcm128_precomp
-mbin_dispatch_init aesni_gcm128_precomp, aesni_gcm128_precomp_sse, aesni_gcm128_precomp_avx_gen2, aesni_gcm128_precomp_avx_gen4
+mbin_interface     aes_gcm_precomp_128
+mbin_dispatch_init7 aes_gcm_precomp_128, aes_gcm_precomp_128_sse, aes_gcm_precomp_128_sse, aes_gcm_precomp_128_avx_gen2, aes_gcm_precomp_128_avx_gen4, aes_gcm_precomp_128_avx_gen4, aes_gcm_precomp_128_vaes_avx512
 
 ;;;;
 ; instantiate aesni_gcm interfaces init, enc, enc_update, enc_finalize, dec, dec_update, dec_finalize and precomp
 ;;;;
-mbin_interface     aesni_gcm256_init
-mbin_dispatch_init aesni_gcm256_init, aesni_gcm256_init_sse, aesni_gcm256_init_avx_gen2, aesni_gcm256_init_avx_gen4
+mbin_interface     aes_gcm_init_256
+mbin_dispatch_init7 aes_gcm_init_256, aes_gcm_init_256_sse, aes_gcm_init_256_sse, aes_gcm_init_256_avx_gen2, aes_gcm_init_256_avx_gen4, aes_gcm_init_256_avx_gen4, aes_gcm_init_256_vaes_avx512
 
-mbin_interface     aesni_gcm256_enc
-mbin_dispatch_init aesni_gcm256_enc, aesni_gcm256_enc_sse, aesni_gcm256_enc_avx_gen2, aesni_gcm256_enc_avx_gen4
+mbin_interface     aes_gcm_enc_256
+mbin_dispatch_init7 aes_gcm_enc_256, aes_gcm_enc_256_sse, aes_gcm_enc_256_sse, aes_gcm_enc_256_avx_gen2, aes_gcm_enc_256_avx_gen4, aes_gcm_enc_256_avx_gen4, aes_gcm_enc_256_vaes_avx512
 
-mbin_interface     aesni_gcm256_enc_update
-mbin_dispatch_init aesni_gcm256_enc_update, aesni_gcm256_enc_update_sse, aesni_gcm256_enc_update_avx_gen2, aesni_gcm256_enc_update_avx_gen4
+mbin_interface     aes_gcm_enc_256_update
+mbin_dispatch_init7 aes_gcm_enc_256_update, aes_gcm_enc_256_update_sse, aes_gcm_enc_256_update_sse, aes_gcm_enc_256_update_avx_gen2, aes_gcm_enc_256_update_avx_gen4, aes_gcm_enc_256_update_avx_gen4, aes_gcm_enc_256_update_vaes_avx512
 
-mbin_interface     aesni_gcm256_enc_finalize
-mbin_dispatch_init aesni_gcm256_enc_finalize, aesni_gcm256_enc_finalize_sse, aesni_gcm256_enc_finalize_avx_gen2, aesni_gcm256_enc_finalize_avx_gen4
+mbin_interface     aes_gcm_enc_256_finalize
+mbin_dispatch_init7 aes_gcm_enc_256_finalize, aes_gcm_enc_256_finalize_sse, aes_gcm_enc_256_finalize_sse, aes_gcm_enc_256_finalize_avx_gen2, aes_gcm_enc_256_finalize_avx_gen4, aes_gcm_enc_256_finalize_avx_gen4, aes_gcm_enc_256_finalize_vaes_avx512
 
-mbin_interface     aesni_gcm256_dec
-mbin_dispatch_init aesni_gcm256_dec, aesni_gcm256_dec_sse, aesni_gcm256_dec_avx_gen2, aesni_gcm256_dec_avx_gen4
+mbin_interface     aes_gcm_dec_256
+mbin_dispatch_init7 aes_gcm_dec_256, aes_gcm_dec_256_sse, aes_gcm_dec_256_sse, aes_gcm_dec_256_avx_gen2, aes_gcm_dec_256_avx_gen4, aes_gcm_dec_256_avx_gen4, aes_gcm_dec_256_vaes_avx512
 
-mbin_interface     aesni_gcm256_dec_update
-mbin_dispatch_init aesni_gcm256_dec_update, aesni_gcm256_dec_update_sse, aesni_gcm256_dec_update_avx_gen2, aesni_gcm256_dec_update_avx_gen4
+mbin_interface     aes_gcm_dec_256_update
+mbin_dispatch_init7 aes_gcm_dec_256_update, aes_gcm_dec_256_update_sse, aes_gcm_dec_256_update_sse, aes_gcm_dec_256_update_avx_gen2, aes_gcm_dec_256_update_avx_gen4, aes_gcm_dec_256_update_avx_gen4, aes_gcm_dec_256_update_vaes_avx512
 
-mbin_interface     aesni_gcm256_dec_finalize
-mbin_dispatch_init aesni_gcm256_dec_finalize, aesni_gcm256_dec_finalize_sse, aesni_gcm256_dec_finalize_avx_gen2, aesni_gcm256_dec_finalize_avx_gen4
+mbin_interface     aes_gcm_dec_256_finalize
+mbin_dispatch_init7 aes_gcm_dec_256_finalize, aes_gcm_dec_256_finalize_sse, aes_gcm_dec_256_finalize_sse, aes_gcm_dec_256_finalize_avx_gen2, aes_gcm_dec_256_finalize_avx_gen4, aes_gcm_dec_256_finalize_avx_gen4, aes_gcm_dec_256_finalize_vaes_avx512
 
-mbin_interface     aesni_gcm256_precomp
-mbin_dispatch_init aesni_gcm256_precomp, aesni_gcm256_precomp_sse, aesni_gcm256_precomp_avx_gen2, aesni_gcm256_precomp_avx_gen4
+mbin_interface     aes_gcm_precomp_256
+mbin_dispatch_init7 aes_gcm_precomp_256, aes_gcm_precomp_256_sse, aes_gcm_precomp_256_sse, aes_gcm_precomp_256_avx_gen2, aes_gcm_precomp_256_avx_gen4, aes_gcm_precomp_256_avx_gen4, aes_gcm_precomp_256_vaes_avx512
 
 
 ;;;       func                         core, ver, snum
-slversion aesni_gcm128_enc,            00,   00,  0280
-slversion aesni_gcm128_dec,            00,   00,  0281
-slversion aesni_gcm128_init,           00,   00,  0282
-slversion aesni_gcm128_enc_update,     00,   00,  0283
-slversion aesni_gcm128_dec_update,     00,   00,  0284
-slversion aesni_gcm128_enc_finalize,   00,   00,  0285
-slversion aesni_gcm128_dec_finalize,   00,   00,  0286
-slversion aesni_gcm256_enc,            00,   00,  0288
-slversion aesni_gcm256_dec,            00,   00,  0289
-slversion aesni_gcm256_init,           00,   00,  028a
-slversion aesni_gcm256_enc_update,     00,   00,  028b
-slversion aesni_gcm256_dec_update,     00,   00,  028c
-slversion aesni_gcm256_enc_finalize,   00,   00,  028d
-slversion aesni_gcm256_dec_finalize,   00,   00,  028e
+slversion aes_gcm_enc_128,             00,   00,  02c0
+slversion aes_gcm_dec_128,             00,   00,  02c1
+slversion aes_gcm_init_128,            00,   00,  02c2
+slversion aes_gcm_enc_128_update,      00,   00,  02c3
+slversion aes_gcm_dec_128_update,      00,   00,  02c4
+slversion aes_gcm_enc_128_finalize,    00,   00,  02c5
+slversion aes_gcm_dec_128_finalize,    00,   00,  02c6
+slversion aes_gcm_enc_256,             00,   00,  02d0
+slversion aes_gcm_dec_256,             00,   00,  02d1
+slversion aes_gcm_init_256,            00,   00,  02d2
+slversion aes_gcm_enc_256_update,      00,   00,  02d3
+slversion aes_gcm_dec_256_update,      00,   00,  02d4
+slversion aes_gcm_enc_256_finalize,    00,   00,  02d5
+slversion aes_gcm_dec_256_finalize,    00,   00,  02d6