.. | .. |
---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-or-later */ |
---|
1 | 2 | /* |
---|
2 | 3 | * x86_64/AVX2 assembler optimized version of Serpent |
---|
3 | 4 | * |
---|
.. | .. |
---|
6 | 7 | * Based on AVX assembler implementation of Serpent by: |
---|
7 | 8 | * Copyright © 2012 Johannes Goetzfried |
---|
8 | 9 | * <Johannes.Goetzfried@informatik.stud.uni-erlangen.de> |
---|
9 | | - * |
---|
10 | | - * This program is free software; you can redistribute it and/or modify |
---|
11 | | - * it under the terms of the GNU General Public License as published by |
---|
12 | | - * the Free Software Foundation; either version 2 of the License, or |
---|
13 | | - * (at your option) any later version. |
---|
14 | | - * |
---|
15 | 10 | */ |
---|
16 | 11 | |
---|
17 | 12 | #include <linux/linkage.h> |
---|
.. | .. |
---|
566 | 561 | transpose_4x4(x0, x1, x2, x3, t0, t1, t2) |
---|
567 | 562 | |
---|
568 | 563 | .align 8 |
---|
569 | | -__serpent_enc_blk16: |
---|
| 564 | +SYM_FUNC_START_LOCAL(__serpent_enc_blk16) |
---|
570 | 565 | /* input: |
---|
571 | 566 | * %rdi: ctx, CTX |
---|
572 | 567 | * RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2: plaintext |
---|
.. | .. |
---|
616 | 611 | write_blocks(RA1, RB1, RC1, RD1, RK0, RK1, RK2); |
---|
617 | 612 | write_blocks(RA2, RB2, RC2, RD2, RK0, RK1, RK2); |
---|
618 | 613 | |
---|
619 | | - ret; |
---|
620 | | -ENDPROC(__serpent_enc_blk16) |
---|
| 614 | + RET; |
---|
| 615 | +SYM_FUNC_END(__serpent_enc_blk16) |
---|
621 | 616 | |
---|
622 | 617 | .align 8 |
---|
623 | | -__serpent_dec_blk16: |
---|
| 618 | +SYM_FUNC_START_LOCAL(__serpent_dec_blk16) |
---|
624 | 619 | /* input: |
---|
625 | 620 | * %rdi: ctx, CTX |
---|
626 | 621 | * RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2: ciphertext |
---|
.. | .. |
---|
670 | 665 | write_blocks(RC1, RD1, RB1, RE1, RK0, RK1, RK2); |
---|
671 | 666 | write_blocks(RC2, RD2, RB2, RE2, RK0, RK1, RK2); |
---|
672 | 667 | |
---|
673 | | - ret; |
---|
674 | | -ENDPROC(__serpent_dec_blk16) |
---|
| 668 | + RET; |
---|
| 669 | +SYM_FUNC_END(__serpent_dec_blk16) |
---|
675 | 670 | |
---|
676 | | -ENTRY(serpent_ecb_enc_16way) |
---|
| 671 | +SYM_FUNC_START(serpent_ecb_enc_16way) |
---|
677 | 672 | /* input: |
---|
678 | 673 | * %rdi: ctx, CTX |
---|
679 | 674 | * %rsi: dst |
---|
.. | .. |
---|
692 | 687 | vzeroupper; |
---|
693 | 688 | |
---|
694 | 689 | FRAME_END |
---|
695 | | - ret; |
---|
696 | | -ENDPROC(serpent_ecb_enc_16way) |
---|
| 690 | + RET; |
---|
| 691 | +SYM_FUNC_END(serpent_ecb_enc_16way) |
---|
697 | 692 | |
---|
698 | | -ENTRY(serpent_ecb_dec_16way) |
---|
| 693 | +SYM_FUNC_START(serpent_ecb_dec_16way) |
---|
699 | 694 | /* input: |
---|
700 | 695 | * %rdi: ctx, CTX |
---|
701 | 696 | * %rsi: dst |
---|
.. | .. |
---|
714 | 709 | vzeroupper; |
---|
715 | 710 | |
---|
716 | 711 | FRAME_END |
---|
717 | | - ret; |
---|
718 | | -ENDPROC(serpent_ecb_dec_16way) |
---|
| 712 | + RET; |
---|
| 713 | +SYM_FUNC_END(serpent_ecb_dec_16way) |
---|
719 | 714 | |
---|
720 | | -ENTRY(serpent_cbc_dec_16way) |
---|
| 715 | +SYM_FUNC_START(serpent_cbc_dec_16way) |
---|
721 | 716 | /* input: |
---|
722 | 717 | * %rdi: ctx, CTX |
---|
723 | 718 | * %rsi: dst |
---|
.. | .. |
---|
737 | 732 | vzeroupper; |
---|
738 | 733 | |
---|
739 | 734 | FRAME_END |
---|
740 | | - ret; |
---|
741 | | -ENDPROC(serpent_cbc_dec_16way) |
---|
| 735 | + RET; |
---|
| 736 | +SYM_FUNC_END(serpent_cbc_dec_16way) |
---|
742 | 737 | |
---|
743 | | -ENTRY(serpent_ctr_16way) |
---|
| 738 | +SYM_FUNC_START(serpent_ctr_16way) |
---|
744 | 739 | /* input: |
---|
745 | 740 | * %rdi: ctx, CTX |
---|
746 | 741 | * %rsi: dst (16 blocks) |
---|
.. | .. |
---|
762 | 757 | vzeroupper; |
---|
763 | 758 | |
---|
764 | 759 | FRAME_END |
---|
765 | | - ret; |
---|
766 | | -ENDPROC(serpent_ctr_16way) |
---|
| 760 | + RET; |
---|
| 761 | +SYM_FUNC_END(serpent_ctr_16way) |
---|
767 | 762 | |
---|
768 | | -ENTRY(serpent_xts_enc_16way) |
---|
| 763 | +SYM_FUNC_START(serpent_xts_enc_16way) |
---|
769 | 764 | /* input: |
---|
770 | 765 | * %rdi: ctx, CTX |
---|
771 | 766 | * %rsi: dst (16 blocks) |
---|
.. | .. |
---|
788 | 783 | vzeroupper; |
---|
789 | 784 | |
---|
790 | 785 | FRAME_END |
---|
791 | | - ret; |
---|
792 | | -ENDPROC(serpent_xts_enc_16way) |
---|
| 786 | + RET; |
---|
| 787 | +SYM_FUNC_END(serpent_xts_enc_16way) |
---|
793 | 788 | |
---|
794 | | -ENTRY(serpent_xts_dec_16way) |
---|
| 789 | +SYM_FUNC_START(serpent_xts_dec_16way) |
---|
795 | 790 | /* input: |
---|
796 | 791 | * %rdi: ctx, CTX |
---|
797 | 792 | * %rsi: dst (16 blocks) |
---|
.. | .. |
---|
814 | 809 | vzeroupper; |
---|
815 | 810 | |
---|
816 | 811 | FRAME_END |
---|
817 | | - ret; |
---|
818 | | -ENDPROC(serpent_xts_dec_16way) |
---|
| 812 | + RET; |
---|
| 813 | +SYM_FUNC_END(serpent_xts_dec_16way) |
---|