Skip to content

Commit 6103c88

Browse files
committed
AES-NI asm: XTS - support non-aligned access requests
Signed-off-by: Stephan Mueller <smueller@chronox.de>
1 parent 6606bf2 commit 6103c88

File tree

1 file changed

+34
-34
lines changed

1 file changed

+34
-34
lines changed

sym/src/asm/AESNI_x86_64/aes_aesni_x86_64.S

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1674,7 +1674,7 @@ SYM_FUNC_ENTER(aesni_xts_encrypt)
16741674

16751675
movups 16(%rcx,%r10,1),%xmm1
16761676

1677-
movdqa .Lxts_magic(%rip),%xmm8
1677+
movdqu .Lxts_magic(%rip),%xmm8
16781678
movdqa %xmm2,%xmm15
16791679
pshufd $0x5f,%xmm2,%xmm9
16801680
pxor %xmm0,%xmm1
@@ -1716,7 +1716,7 @@ SYM_FUNC_ENTER(aesni_xts_encrypt)
17161716
pand %xmm8,%xmm9
17171717
pxor %xmm0,%xmm14
17181718
pxor %xmm9,%xmm15
1719-
movaps %xmm1,96(%rsp)
1719+
movups %xmm1,96(%rsp)
17201720

17211721
subq $96,%rdx
17221722
jc .Lxts_enc_short
@@ -1746,7 +1746,7 @@ SYM_FUNC_ENTER(aesni_xts_encrypt)
17461746
aesenc %xmm1,%xmm4
17471747
movdqu 80(%rdi),%xmm7
17481748
pxor %xmm15,%xmm8
1749-
movdqa 96(%rsp),%xmm9
1749+
movdqu 96(%rsp),%xmm9
17501750
pxor %xmm14,%xmm6
17511751
aesenc %xmm1,%xmm5
17521752
movups 32(%rbp),%xmm0
@@ -1756,25 +1756,25 @@ SYM_FUNC_ENTER(aesni_xts_encrypt)
17561756
pxor %xmm9,%xmm10
17571757
aesenc %xmm1,%xmm6
17581758
pxor %xmm9,%xmm11
1759-
movdqa %xmm10,0(%rsp)
1759+
movdqu %xmm10,0(%rsp)
17601760
aesenc %xmm1,%xmm7
17611761
movups 48(%rbp),%xmm1
17621762
pxor %xmm9,%xmm12
17631763

17641764
aesenc %xmm0,%xmm2
17651765
pxor %xmm9,%xmm13
1766-
movdqa %xmm11,16(%rsp)
1766+
movdqu %xmm11,16(%rsp)
17671767
aesenc %xmm0,%xmm3
17681768
pxor %xmm9,%xmm14
1769-
movdqa %xmm12,32(%rsp)
1769+
movdqu %xmm12,32(%rsp)
17701770
aesenc %xmm0,%xmm4
17711771
aesenc %xmm0,%xmm5
17721772
pxor %xmm9,%xmm8
1773-
movdqa %xmm14,64(%rsp)
1773+
movdqu %xmm14,64(%rsp)
17741774
aesenc %xmm0,%xmm6
17751775
aesenc %xmm0,%xmm7
17761776
movups 64(%rbp),%xmm0
1777-
movdqa %xmm8,80(%rsp)
1777+
movdqu %xmm8,80(%rsp)
17781778
pshufd $0x5f,%xmm15,%xmm9
17791779
jmp .Lxts_enc_loop6
17801780
.align 32
@@ -1797,7 +1797,7 @@ SYM_FUNC_ENTER(aesni_xts_encrypt)
17971797
movups -80(%rcx,%rax,1),%xmm0
17981798
jnz .Lxts_enc_loop6
17991799

1800-
movdqa (%r8),%xmm8
1800+
movdqu (%r8),%xmm8
18011801
movdqa %xmm9,%xmm14
18021802
paddd %xmm9,%xmm9
18031803
aesenc %xmm1,%xmm2
@@ -1840,7 +1840,7 @@ SYM_FUNC_ENTER(aesni_xts_encrypt)
18401840
pand %xmm8,%xmm14
18411841
aesenc %xmm1,%xmm4
18421842
aesenc %xmm1,%xmm5
1843-
movdqa %xmm13,48(%rsp)
1843+
movdqu %xmm13,48(%rsp)
18441844
pxor %xmm14,%xmm15
18451845
aesenc %xmm1,%xmm6
18461846
movaps %xmm12,%xmm13
@@ -2092,19 +2092,19 @@ SYM_FUNC_ENTER(aesni_xts_encrypt)
20922092
pxor %xmm5,%xmm5
20932093
pxor %xmm6,%xmm6
20942094
pxor %xmm7,%xmm7
2095-
movaps %xmm0,0(%rsp)
2095+
movups %xmm0,0(%rsp)
20962096
pxor %xmm8,%xmm8
2097-
movaps %xmm0,16(%rsp)
2097+
movups %xmm0,16(%rsp)
20982098
pxor %xmm9,%xmm9
2099-
movaps %xmm0,32(%rsp)
2099+
movups %xmm0,32(%rsp)
21002100
pxor %xmm10,%xmm10
2101-
movaps %xmm0,48(%rsp)
2101+
movups %xmm0,48(%rsp)
21022102
pxor %xmm11,%xmm11
2103-
movaps %xmm0,64(%rsp)
2103+
movups %xmm0,64(%rsp)
21042104
pxor %xmm12,%xmm12
2105-
movaps %xmm0,80(%rsp)
2105+
movups %xmm0,80(%rsp)
21062106
pxor %xmm13,%xmm13
2107-
movaps %xmm0,96(%rsp)
2107+
movups %xmm0,96(%rsp)
21082108
pxor %xmm14,%xmm14
21092109
pxor %xmm15,%xmm15
21102110
movq -8(%r11),%rbp
@@ -2169,7 +2169,7 @@ SYM_FUNC_ENTER(aesni_xts_decrypt)
21692169

21702170
movups 16(%rcx,%r10,1),%xmm1
21712171

2172-
movdqa .Lxts_magic(%rip),%xmm8
2172+
movdqu .Lxts_magic(%rip),%xmm8
21732173
movdqa %xmm2,%xmm15
21742174
pshufd $0x5f,%xmm2,%xmm9
21752175
pxor %xmm0,%xmm1
@@ -2211,7 +2211,7 @@ SYM_FUNC_ENTER(aesni_xts_decrypt)
22112211
pand %xmm8,%xmm9
22122212
pxor %xmm0,%xmm14
22132213
pxor %xmm9,%xmm15
2214-
movaps %xmm1,96(%rsp)
2214+
movups %xmm1,96(%rsp)
22152215

22162216
subq $96,%rdx
22172217
jc .Lxts_dec_short
@@ -2241,7 +2241,7 @@ SYM_FUNC_ENTER(aesni_xts_decrypt)
22412241
aesdec %xmm1,%xmm4
22422242
movdqu 80(%rdi),%xmm7
22432243
pxor %xmm15,%xmm8
2244-
movdqa 96(%rsp),%xmm9
2244+
movdqu 96(%rsp),%xmm9
22452245
pxor %xmm14,%xmm6
22462246
aesdec %xmm1,%xmm5
22472247
movups 32(%rbp),%xmm0
@@ -2251,25 +2251,25 @@ SYM_FUNC_ENTER(aesni_xts_decrypt)
22512251
pxor %xmm9,%xmm10
22522252
aesdec %xmm1,%xmm6
22532253
pxor %xmm9,%xmm11
2254-
movdqa %xmm10,0(%rsp)
2254+
movdqu %xmm10,0(%rsp)
22552255
aesdec %xmm1,%xmm7
22562256
movups 48(%rbp),%xmm1
22572257
pxor %xmm9,%xmm12
22582258

22592259
aesdec %xmm0,%xmm2
22602260
pxor %xmm9,%xmm13
2261-
movdqa %xmm11,16(%rsp)
2261+
movdqu %xmm11,16(%rsp)
22622262
aesdec %xmm0,%xmm3
22632263
pxor %xmm9,%xmm14
2264-
movdqa %xmm12,32(%rsp)
2264+
movdqu %xmm12,32(%rsp)
22652265
aesdec %xmm0,%xmm4
22662266
aesdec %xmm0,%xmm5
22672267
pxor %xmm9,%xmm8
2268-
movdqa %xmm14,64(%rsp)
2268+
movdqu %xmm14,64(%rsp)
22692269
aesdec %xmm0,%xmm6
22702270
aesdec %xmm0,%xmm7
22712271
movups 64(%rbp),%xmm0
2272-
movdqa %xmm8,80(%rsp)
2272+
movdqu %xmm8,80(%rsp)
22732273
pshufd $0x5f,%xmm15,%xmm9
22742274
jmp .Lxts_dec_loop6
22752275
.align 32
@@ -2292,7 +2292,7 @@ SYM_FUNC_ENTER(aesni_xts_decrypt)
22922292
movups -80(%rcx,%rax,1),%xmm0
22932293
jnz .Lxts_dec_loop6
22942294

2295-
movdqa (%r8),%xmm8
2295+
movdqu (%r8),%xmm8
22962296
movdqa %xmm9,%xmm14
22972297
paddd %xmm9,%xmm9
22982298
aesdec %xmm1,%xmm2
@@ -2335,7 +2335,7 @@ SYM_FUNC_ENTER(aesni_xts_decrypt)
23352335
pand %xmm8,%xmm14
23362336
aesdec %xmm1,%xmm4
23372337
aesdec %xmm1,%xmm5
2338-
movdqa %xmm13,48(%rsp)
2338+
movdqu %xmm13,48(%rsp)
23392339
pxor %xmm14,%xmm15
23402340
aesdec %xmm1,%xmm6
23412341
movaps %xmm12,%xmm13
@@ -2618,19 +2618,19 @@ SYM_FUNC_ENTER(aesni_xts_decrypt)
26182618
pxor %xmm5,%xmm5
26192619
pxor %xmm6,%xmm6
26202620
pxor %xmm7,%xmm7
2621-
movaps %xmm0,0(%rsp)
2621+
movups %xmm0,0(%rsp)
26222622
pxor %xmm8,%xmm8
2623-
movaps %xmm0,16(%rsp)
2623+
movups %xmm0,16(%rsp)
26242624
pxor %xmm9,%xmm9
2625-
movaps %xmm0,32(%rsp)
2625+
movups %xmm0,32(%rsp)
26262626
pxor %xmm10,%xmm10
2627-
movaps %xmm0,48(%rsp)
2627+
movups %xmm0,48(%rsp)
26282628
pxor %xmm11,%xmm11
2629-
movaps %xmm0,64(%rsp)
2629+
movups %xmm0,64(%rsp)
26302630
pxor %xmm12,%xmm12
2631-
movaps %xmm0,80(%rsp)
2631+
movups %xmm0,80(%rsp)
26322632
pxor %xmm13,%xmm13
2633-
movaps %xmm0,96(%rsp)
2633+
movups %xmm0,96(%rsp)
26342634
pxor %xmm14,%xmm14
26352635
pxor %xmm15,%xmm15
26362636
movq -8(%r11),%rbp

0 commit comments

Comments
 (0)