hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/arch/x86/crypto/aegis128-aesni-asm.S
....@@ -1,12 +1,9 @@
1
+/* SPDX-License-Identifier: GPL-2.0-only */
12 /*
23 * AES-NI + SSE2 implementation of AEGIS-128
34 *
45 * Copyright (c) 2017-2018 Ondrej Mosnacek <omosnacek@gmail.com>
56 * Copyright (C) 2017-2018 Red Hat, Inc. All rights reserved.
6
- *
7
- * This program is free software; you can redistribute it and/or modify it
8
- * under the terms of the GNU General Public License version 2 as published
9
- * by the Free Software Foundation.
107 */
118
129 #include <linux/linkage.h>
....@@ -74,7 +71,7 @@
7471 * %r8
7572 * %r9
7673 */
77
-__load_partial:
74
+SYM_FUNC_START_LOCAL(__load_partial)
7875 xor %r9d, %r9d
7976 pxor MSG, MSG
8077
....@@ -125,8 +122,8 @@
125122 pxor T0, MSG
126123
127124 .Lld_partial_8:
128
- ret
129
-ENDPROC(__load_partial)
125
+ RET
126
+SYM_FUNC_END(__load_partial)
130127
131128 /*
132129 * __store_partial: internal ABI
....@@ -140,7 +137,7 @@
140137 * %r9
141138 * %r10
142139 */
143
-__store_partial:
140
+SYM_FUNC_START_LOCAL(__store_partial)
144141 mov LEN, %r8
145142 mov DST, %r9
146143
....@@ -183,13 +180,13 @@
183180 mov %r10b, (%r9)
184181
185182 .Lst_partial_1:
186
- ret
187
-ENDPROC(__store_partial)
183
+ RET
184
+SYM_FUNC_END(__store_partial)
188185
189186 /*
190187 * void crypto_aegis128_aesni_init(void *state, const void *key, const void *iv);
191188 */
192
-ENTRY(crypto_aegis128_aesni_init)
189
+SYM_FUNC_START(crypto_aegis128_aesni_init)
193190 FRAME_BEGIN
194191
195192 /* load IV: */
....@@ -228,14 +225,14 @@
228225 movdqu STATE4, 0x40(STATEP)
229226
230227 FRAME_END
231
- ret
232
-ENDPROC(crypto_aegis128_aesni_init)
228
+ RET
229
+SYM_FUNC_END(crypto_aegis128_aesni_init)
233230
234231 /*
235232 * void crypto_aegis128_aesni_ad(void *state, unsigned int length,
236233 * const void *data);
237234 */
238
-ENTRY(crypto_aegis128_aesni_ad)
235
+SYM_FUNC_START(crypto_aegis128_aesni_ad)
239236 FRAME_BEGIN
240237
241238 cmp $0x10, LEN
....@@ -340,7 +337,7 @@
340337 movdqu STATE3, 0x30(STATEP)
341338 movdqu STATE4, 0x40(STATEP)
342339 FRAME_END
343
- ret
340
+ RET
344341
345342 .Lad_out_1:
346343 movdqu STATE4, 0x00(STATEP)
....@@ -349,7 +346,7 @@
349346 movdqu STATE2, 0x30(STATEP)
350347 movdqu STATE3, 0x40(STATEP)
351348 FRAME_END
352
- ret
349
+ RET
353350
354351 .Lad_out_2:
355352 movdqu STATE3, 0x00(STATEP)
....@@ -358,7 +355,7 @@
358355 movdqu STATE1, 0x30(STATEP)
359356 movdqu STATE2, 0x40(STATEP)
360357 FRAME_END
361
- ret
358
+ RET
362359
363360 .Lad_out_3:
364361 movdqu STATE2, 0x00(STATEP)
....@@ -367,7 +364,7 @@
367364 movdqu STATE0, 0x30(STATEP)
368365 movdqu STATE1, 0x40(STATEP)
369366 FRAME_END
370
- ret
367
+ RET
371368
372369 .Lad_out_4:
373370 movdqu STATE1, 0x00(STATEP)
....@@ -376,12 +373,12 @@
376373 movdqu STATE4, 0x30(STATEP)
377374 movdqu STATE0, 0x40(STATEP)
378375 FRAME_END
379
- ret
376
+ RET
380377
381378 .Lad_out:
382379 FRAME_END
383
- ret
384
-ENDPROC(crypto_aegis128_aesni_ad)
380
+ RET
381
+SYM_FUNC_END(crypto_aegis128_aesni_ad)
385382
386383 .macro encrypt_block a s0 s1 s2 s3 s4 i
387384 movdq\a (\i * 0x10)(SRC), MSG
....@@ -405,7 +402,7 @@
405402 * void crypto_aegis128_aesni_enc(void *state, unsigned int length,
406403 * const void *src, void *dst);
407404 */
408
-ENTRY(crypto_aegis128_aesni_enc)
405
+SYM_FUNC_START(crypto_aegis128_aesni_enc)
409406 FRAME_BEGIN
410407
411408 cmp $0x10, LEN
....@@ -455,7 +452,7 @@
455452 movdqu STATE2, 0x30(STATEP)
456453 movdqu STATE3, 0x40(STATEP)
457454 FRAME_END
458
- ret
455
+ RET
459456
460457 .Lenc_out_1:
461458 movdqu STATE3, 0x00(STATEP)
....@@ -464,7 +461,7 @@
464461 movdqu STATE1, 0x30(STATEP)
465462 movdqu STATE2, 0x40(STATEP)
466463 FRAME_END
467
- ret
464
+ RET
468465
469466 .Lenc_out_2:
470467 movdqu STATE2, 0x00(STATEP)
....@@ -473,7 +470,7 @@
473470 movdqu STATE0, 0x30(STATEP)
474471 movdqu STATE1, 0x40(STATEP)
475472 FRAME_END
476
- ret
473
+ RET
477474
478475 .Lenc_out_3:
479476 movdqu STATE1, 0x00(STATEP)
....@@ -482,7 +479,7 @@
482479 movdqu STATE4, 0x30(STATEP)
483480 movdqu STATE0, 0x40(STATEP)
484481 FRAME_END
485
- ret
482
+ RET
486483
487484 .Lenc_out_4:
488485 movdqu STATE0, 0x00(STATEP)
....@@ -491,18 +488,18 @@
491488 movdqu STATE3, 0x30(STATEP)
492489 movdqu STATE4, 0x40(STATEP)
493490 FRAME_END
494
- ret
491
+ RET
495492
496493 .Lenc_out:
497494 FRAME_END
498
- ret
499
-ENDPROC(crypto_aegis128_aesni_enc)
495
+ RET
496
+SYM_FUNC_END(crypto_aegis128_aesni_enc)
500497
501498 /*
502499 * void crypto_aegis128_aesni_enc_tail(void *state, unsigned int length,
503500 * const void *src, void *dst);
504501 */
505
-ENTRY(crypto_aegis128_aesni_enc_tail)
502
+SYM_FUNC_START(crypto_aegis128_aesni_enc_tail)
506503 FRAME_BEGIN
507504
508505 /* load the state: */
....@@ -535,8 +532,8 @@
535532 movdqu STATE3, 0x40(STATEP)
536533
537534 FRAME_END
538
- ret
539
-ENDPROC(crypto_aegis128_aesni_enc_tail)
535
+ RET
536
+SYM_FUNC_END(crypto_aegis128_aesni_enc_tail)
540537
541538 .macro decrypt_block a s0 s1 s2 s3 s4 i
542539 movdq\a (\i * 0x10)(SRC), MSG
....@@ -559,7 +556,7 @@
559556 * void crypto_aegis128_aesni_dec(void *state, unsigned int length,
560557 * const void *src, void *dst);
561558 */
562
-ENTRY(crypto_aegis128_aesni_dec)
559
+SYM_FUNC_START(crypto_aegis128_aesni_dec)
563560 FRAME_BEGIN
564561
565562 cmp $0x10, LEN
....@@ -609,7 +606,7 @@
609606 movdqu STATE2, 0x30(STATEP)
610607 movdqu STATE3, 0x40(STATEP)
611608 FRAME_END
612
- ret
609
+ RET
613610
614611 .Ldec_out_1:
615612 movdqu STATE3, 0x00(STATEP)
....@@ -618,7 +615,7 @@
618615 movdqu STATE1, 0x30(STATEP)
619616 movdqu STATE2, 0x40(STATEP)
620617 FRAME_END
621
- ret
618
+ RET
622619
623620 .Ldec_out_2:
624621 movdqu STATE2, 0x00(STATEP)
....@@ -627,7 +624,7 @@
627624 movdqu STATE0, 0x30(STATEP)
628625 movdqu STATE1, 0x40(STATEP)
629626 FRAME_END
630
- ret
627
+ RET
631628
632629 .Ldec_out_3:
633630 movdqu STATE1, 0x00(STATEP)
....@@ -636,7 +633,7 @@
636633 movdqu STATE4, 0x30(STATEP)
637634 movdqu STATE0, 0x40(STATEP)
638635 FRAME_END
639
- ret
636
+ RET
640637
641638 .Ldec_out_4:
642639 movdqu STATE0, 0x00(STATEP)
....@@ -645,18 +642,18 @@
645642 movdqu STATE3, 0x30(STATEP)
646643 movdqu STATE4, 0x40(STATEP)
647644 FRAME_END
648
- ret
645
+ RET
649646
650647 .Ldec_out:
651648 FRAME_END
652
- ret
653
-ENDPROC(crypto_aegis128_aesni_dec)
649
+ RET
650
+SYM_FUNC_END(crypto_aegis128_aesni_dec)
654651
655652 /*
656653 * void crypto_aegis128_aesni_dec_tail(void *state, unsigned int length,
657654 * const void *src, void *dst);
658655 */
659
-ENTRY(crypto_aegis128_aesni_dec_tail)
656
+SYM_FUNC_START(crypto_aegis128_aesni_dec_tail)
660657 FRAME_BEGIN
661658
662659 /* load the state: */
....@@ -699,14 +696,14 @@
699696 movdqu STATE3, 0x40(STATEP)
700697
701698 FRAME_END
702
- ret
703
-ENDPROC(crypto_aegis128_aesni_dec_tail)
699
+ RET
700
+SYM_FUNC_END(crypto_aegis128_aesni_dec_tail)
704701
705702 /*
706703 * void crypto_aegis128_aesni_final(void *state, void *tag_xor,
707704 * u64 assoclen, u64 cryptlen);
708705 */
709
-ENTRY(crypto_aegis128_aesni_final)
706
+SYM_FUNC_START(crypto_aegis128_aesni_final)
710707 FRAME_BEGIN
711708
712709 /* load the state: */
....@@ -746,5 +743,5 @@
746743 movdqu MSG, (%rsi)
747744
748745 FRAME_END
749
- ret
750
-ENDPROC(crypto_aegis128_aesni_final)
746
+ RET
747
+SYM_FUNC_END(crypto_aegis128_aesni_final)