Skip to content

Commit 80c841a

Browse files
committed
Simplify vpsm4_cbc_encrypt encryption part.
1 parent 3f3d2f7 commit 80c841a

1 file changed

Lines changed: 4 additions & 86 deletions

File tree

crypto/sm4/asm/vpsm4-armv8.pl

Lines changed: 4 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -912,95 +912,12 @@ ()
912912
lsr $len,$len,4
913913
cbz $enc,.Ldec
914914
915-
// ABI Compliance: Save callee-saved registers x19, x20 to the stack
915+
// ABI Compliance: save some callee-saved registers to the stack
916916
stp x19, x20, [sp, #-16]!
917917
918918
ldp $iv_lo, $iv_hi, [$ivp]
919-
.Lcbc_4_blocks_enc:
920-
cmp $blocks,#4
921-
b.lt .Lcbc_cleanup_scalar
922-
923-
// Block 0
924-
ldp $data_lo, $data_hi, [$inp], #16
925-
eor $data_lo, $data_lo, $iv_lo
926-
eor $data_hi, $data_hi, $iv_hi
927-
rev32 $data_lo,$data_lo
928-
rev32 $data_hi,$data_hi
929-
lsr x13, x12, #32
930-
lsr x15, x14, #32
931-
___
932-
&encrypt_1blk_norev_scalar();
933-
$code.=<<___;
934-
orr x13, x13, x12, lsl #32
935-
orr x15, x15, x14, lsl #32
936-
rev32 x13,x13
937-
rev32 x15,x15
938-
stp x15, x13, [$outp], #16
939-
mov $iv_lo, x15
940-
mov $iv_hi, x13
941-
942-
// Block 1
943-
ldp $data_lo, $data_hi, [$inp], #16
944-
eor $data_lo, $data_lo, $iv_lo
945-
eor $data_hi, $data_hi, $iv_hi
946-
rev32 $data_lo,$data_lo
947-
rev32 $data_hi,$data_hi
948-
lsr x13, x12, #32
949-
lsr x15, x14, #32
950-
___
951-
&encrypt_1blk_norev_scalar();
952-
$code.=<<___;
953-
orr x13, x13, x12, lsl #32
954-
orr x15, x15, x14, lsl #32
955-
rev32 x13,x13
956-
rev32 x15,x15
957-
stp x15, x13, [$outp], #16
958-
mov $iv_lo, x15
959-
mov $iv_hi, x13
960-
961-
// Block 2
962-
ldp $data_lo, $data_hi, [$inp], #16
963-
eor $data_lo, $data_lo, $iv_lo
964-
eor $data_hi, $data_hi, $iv_hi
965-
rev32 $data_lo,$data_lo
966-
rev32 $data_hi,$data_hi
967-
lsr x13, x12, #32
968-
lsr x15, x14, #32
969-
___
970-
&encrypt_1blk_norev_scalar();
971-
$code.=<<___;
972-
orr x13, x13, x12, lsl #32
973-
orr x15, x15, x14, lsl #32
974-
rev32 x13,x13
975-
rev32 x15,x15
976-
stp x15, x13, [$outp], #16
977-
mov $iv_lo, x15
978-
mov $iv_hi, x13
979-
980-
// Block 3
981-
ldp $data_lo, $data_hi, [$inp], #16
982-
eor $data_lo, $data_lo, $iv_lo
983-
eor $data_hi, $data_hi, $iv_hi
984-
rev32 $data_lo,$data_lo
985-
rev32 $data_hi,$data_hi
986-
lsr x13, x12, #32
987-
lsr x15, x14, #32
988-
___
989-
&encrypt_1blk_norev_scalar();
990-
$code.=<<___;
991-
orr x13, x13, x12, lsl #32
992-
orr x15, x15, x14, lsl #32
993-
rev32 x13,x13
994-
rev32 x15,x15
995-
stp x15, x13, [$outp], #16
996-
mov $iv_lo, x15
997-
mov $iv_hi, x13
998-
999-
subs $blocks,$blocks,#4
1000-
b.ne .Lcbc_4_blocks_enc
1001-
.Lcbc_cleanup_scalar:
1002-
cbz $blocks, .Lcbc_done_scalar
1003919
.Lcbc_single_block_loop:
920+
cbz $blocks, .Lcbc_done_scalar
1004921
subs $blocks,$blocks,#1
1005922
ldp $data_lo, $data_hi, [$inp], #16
1006923
eor $data_lo, $data_lo, $iv_lo
@@ -1019,7 +936,8 @@ ()
1019936
stp x15, x13, [$outp], #16
1020937
mov $iv_lo, x15
1021938
mov $iv_hi, x13
1022-
cbnz $blocks, .Lcbc_single_block_loop
939+
b .Lcbc_single_block_loop
940+
1023941
.Lcbc_done_scalar:
1024942
stp $iv_lo, $iv_hi, [$ivp]
1025943
// ABI Compliance: Restore callee-saved registers

0 commit comments

Comments
 (0)