Skip to content

Commit 52fc482

Browse files
ardbiesheuvelherbertx
authored andcommitted
crypto: x86/aria - Use RIP-relative addressing
Prefer RIP-relative addressing where possible, which removes the need for boot time relocation fixups. Signed-off-by: Ard Biesheuvel <[email protected]> Signed-off-by: Herbert Xu <[email protected]>
1 parent c75962f commit 52fc482

File tree

3 files changed

+40
-40
lines changed

3 files changed

+40
-40
lines changed

arch/x86/crypto/aria-aesni-avx-asm_64.S

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
transpose_4x4(c0, c1, c2, c3, a0, a1); \
8181
transpose_4x4(d0, d1, d2, d3, a0, a1); \
8282
\
83-
vmovdqu .Lshufb_16x16b, a0; \
83+
vmovdqu .Lshufb_16x16b(%rip), a0; \
8484
vmovdqu st1, a1; \
8585
vpshufb a0, a2, a2; \
8686
vpshufb a0, a3, a3; \
@@ -132,7 +132,7 @@
132132
transpose_4x4(c0, c1, c2, c3, a0, a1); \
133133
transpose_4x4(d0, d1, d2, d3, a0, a1); \
134134
\
135-
vmovdqu .Lshufb_16x16b, a0; \
135+
vmovdqu .Lshufb_16x16b(%rip), a0; \
136136
vmovdqu st1, a1; \
137137
vpshufb a0, a2, a2; \
138138
vpshufb a0, a3, a3; \
@@ -300,11 +300,11 @@
300300
x4, x5, x6, x7, \
301301
t0, t1, t2, t3, \
302302
t4, t5, t6, t7) \
303-
vmovdqa .Ltf_s2_bitmatrix, t0; \
304-
vmovdqa .Ltf_inv_bitmatrix, t1; \
305-
vmovdqa .Ltf_id_bitmatrix, t2; \
306-
vmovdqa .Ltf_aff_bitmatrix, t3; \
307-
vmovdqa .Ltf_x2_bitmatrix, t4; \
303+
vmovdqa .Ltf_s2_bitmatrix(%rip), t0; \
304+
vmovdqa .Ltf_inv_bitmatrix(%rip), t1; \
305+
vmovdqa .Ltf_id_bitmatrix(%rip), t2; \
306+
vmovdqa .Ltf_aff_bitmatrix(%rip), t3; \
307+
vmovdqa .Ltf_x2_bitmatrix(%rip), t4; \
308308
vgf2p8affineinvqb $(tf_s2_const), t0, x1, x1; \
309309
vgf2p8affineinvqb $(tf_s2_const), t0, x5, x5; \
310310
vgf2p8affineqb $(tf_inv_const), t1, x2, x2; \
@@ -324,13 +324,13 @@
324324
x4, x5, x6, x7, \
325325
t0, t1, t2, t3, \
326326
t4, t5, t6, t7) \
327-
vmovdqa .Linv_shift_row, t0; \
328-
vmovdqa .Lshift_row, t1; \
329-
vbroadcastss .L0f0f0f0f, t6; \
330-
vmovdqa .Ltf_lo__inv_aff__and__s2, t2; \
331-
vmovdqa .Ltf_hi__inv_aff__and__s2, t3; \
332-
vmovdqa .Ltf_lo__x2__and__fwd_aff, t4; \
333-
vmovdqa .Ltf_hi__x2__and__fwd_aff, t5; \
327+
vmovdqa .Linv_shift_row(%rip), t0; \
328+
vmovdqa .Lshift_row(%rip), t1; \
329+
vbroadcastss .L0f0f0f0f(%rip), t6; \
330+
vmovdqa .Ltf_lo__inv_aff__and__s2(%rip), t2; \
331+
vmovdqa .Ltf_hi__inv_aff__and__s2(%rip), t3; \
332+
vmovdqa .Ltf_lo__x2__and__fwd_aff(%rip), t4; \
333+
vmovdqa .Ltf_hi__x2__and__fwd_aff(%rip), t5; \
334334
\
335335
vaesenclast t7, x0, x0; \
336336
vaesenclast t7, x4, x4; \

arch/x86/crypto/aria-aesni-avx2-asm_64.S

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@
9696
transpose_4x4(c0, c1, c2, c3, a0, a1); \
9797
transpose_4x4(d0, d1, d2, d3, a0, a1); \
9898
\
99-
vbroadcasti128 .Lshufb_16x16b, a0; \
99+
vbroadcasti128 .Lshufb_16x16b(%rip), a0; \
100100
vmovdqu st1, a1; \
101101
vpshufb a0, a2, a2; \
102102
vpshufb a0, a3, a3; \
@@ -148,7 +148,7 @@
148148
transpose_4x4(c0, c1, c2, c3, a0, a1); \
149149
transpose_4x4(d0, d1, d2, d3, a0, a1); \
150150
\
151-
vbroadcasti128 .Lshufb_16x16b, a0; \
151+
vbroadcasti128 .Lshufb_16x16b(%rip), a0; \
152152
vmovdqu st1, a1; \
153153
vpshufb a0, a2, a2; \
154154
vpshufb a0, a3, a3; \
@@ -307,11 +307,11 @@
307307
x4, x5, x6, x7, \
308308
t0, t1, t2, t3, \
309309
t4, t5, t6, t7) \
310-
vpbroadcastq .Ltf_s2_bitmatrix, t0; \
311-
vpbroadcastq .Ltf_inv_bitmatrix, t1; \
312-
vpbroadcastq .Ltf_id_bitmatrix, t2; \
313-
vpbroadcastq .Ltf_aff_bitmatrix, t3; \
314-
vpbroadcastq .Ltf_x2_bitmatrix, t4; \
310+
vpbroadcastq .Ltf_s2_bitmatrix(%rip), t0; \
311+
vpbroadcastq .Ltf_inv_bitmatrix(%rip), t1; \
312+
vpbroadcastq .Ltf_id_bitmatrix(%rip), t2; \
313+
vpbroadcastq .Ltf_aff_bitmatrix(%rip), t3; \
314+
vpbroadcastq .Ltf_x2_bitmatrix(%rip), t4; \
315315
vgf2p8affineinvqb $(tf_s2_const), t0, x1, x1; \
316316
vgf2p8affineinvqb $(tf_s2_const), t0, x5, x5; \
317317
vgf2p8affineqb $(tf_inv_const), t1, x2, x2; \
@@ -332,12 +332,12 @@
332332
t4, t5, t6, t7) \
333333
vpxor t7, t7, t7; \
334334
vpxor t6, t6, t6; \
335-
vbroadcasti128 .Linv_shift_row, t0; \
336-
vbroadcasti128 .Lshift_row, t1; \
337-
vbroadcasti128 .Ltf_lo__inv_aff__and__s2, t2; \
338-
vbroadcasti128 .Ltf_hi__inv_aff__and__s2, t3; \
339-
vbroadcasti128 .Ltf_lo__x2__and__fwd_aff, t4; \
340-
vbroadcasti128 .Ltf_hi__x2__and__fwd_aff, t5; \
335+
vbroadcasti128 .Linv_shift_row(%rip), t0; \
336+
vbroadcasti128 .Lshift_row(%rip), t1; \
337+
vbroadcasti128 .Ltf_lo__inv_aff__and__s2(%rip), t2; \
338+
vbroadcasti128 .Ltf_hi__inv_aff__and__s2(%rip), t3; \
339+
vbroadcasti128 .Ltf_lo__x2__and__fwd_aff(%rip), t4; \
340+
vbroadcasti128 .Ltf_hi__x2__and__fwd_aff(%rip), t5; \
341341
\
342342
vextracti128 $1, x0, t6##_x; \
343343
vaesenclast t7##_x, x0##_x, x0##_x; \
@@ -369,7 +369,7 @@
369369
vaesdeclast t7##_x, t6##_x, t6##_x; \
370370
vinserti128 $1, t6##_x, x6, x6; \
371371
\
372-
vpbroadcastd .L0f0f0f0f, t6; \
372+
vpbroadcastd .L0f0f0f0f(%rip), t6; \
373373
\
374374
/* AES inverse shift rows */ \
375375
vpshufb t0, x0, x0; \

arch/x86/crypto/aria-gfni-avx512-asm_64.S

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
transpose_4x4(c0, c1, c2, c3, a0, a1); \
8181
transpose_4x4(d0, d1, d2, d3, a0, a1); \
8282
\
83-
vbroadcasti64x2 .Lshufb_16x16b, a0; \
83+
vbroadcasti64x2 .Lshufb_16x16b(%rip), a0; \
8484
vmovdqu64 st1, a1; \
8585
vpshufb a0, a2, a2; \
8686
vpshufb a0, a3, a3; \
@@ -132,7 +132,7 @@
132132
transpose_4x4(c0, c1, c2, c3, a0, a1); \
133133
transpose_4x4(d0, d1, d2, d3, a0, a1); \
134134
\
135-
vbroadcasti64x2 .Lshufb_16x16b, a0; \
135+
vbroadcasti64x2 .Lshufb_16x16b(%rip), a0; \
136136
vmovdqu64 st1, a1; \
137137
vpshufb a0, a2, a2; \
138138
vpshufb a0, a3, a3; \
@@ -308,11 +308,11 @@
308308
x4, x5, x6, x7, \
309309
t0, t1, t2, t3, \
310310
t4, t5, t6, t7) \
311-
vpbroadcastq .Ltf_s2_bitmatrix, t0; \
312-
vpbroadcastq .Ltf_inv_bitmatrix, t1; \
313-
vpbroadcastq .Ltf_id_bitmatrix, t2; \
314-
vpbroadcastq .Ltf_aff_bitmatrix, t3; \
315-
vpbroadcastq .Ltf_x2_bitmatrix, t4; \
311+
vpbroadcastq .Ltf_s2_bitmatrix(%rip), t0; \
312+
vpbroadcastq .Ltf_inv_bitmatrix(%rip), t1; \
313+
vpbroadcastq .Ltf_id_bitmatrix(%rip), t2; \
314+
vpbroadcastq .Ltf_aff_bitmatrix(%rip), t3; \
315+
vpbroadcastq .Ltf_x2_bitmatrix(%rip), t4; \
316316
vgf2p8affineinvqb $(tf_s2_const), t0, x1, x1; \
317317
vgf2p8affineinvqb $(tf_s2_const), t0, x5, x5; \
318318
vgf2p8affineqb $(tf_inv_const), t1, x2, x2; \
@@ -332,11 +332,11 @@
332332
y4, y5, y6, y7, \
333333
t0, t1, t2, t3, \
334334
t4, t5, t6, t7) \
335-
vpbroadcastq .Ltf_s2_bitmatrix, t0; \
336-
vpbroadcastq .Ltf_inv_bitmatrix, t1; \
337-
vpbroadcastq .Ltf_id_bitmatrix, t2; \
338-
vpbroadcastq .Ltf_aff_bitmatrix, t3; \
339-
vpbroadcastq .Ltf_x2_bitmatrix, t4; \
335+
vpbroadcastq .Ltf_s2_bitmatrix(%rip), t0; \
336+
vpbroadcastq .Ltf_inv_bitmatrix(%rip), t1; \
337+
vpbroadcastq .Ltf_id_bitmatrix(%rip), t2; \
338+
vpbroadcastq .Ltf_aff_bitmatrix(%rip), t3; \
339+
vpbroadcastq .Ltf_x2_bitmatrix(%rip), t4; \
340340
vgf2p8affineinvqb $(tf_s2_const), t0, x1, x1; \
341341
vgf2p8affineinvqb $(tf_s2_const), t0, x5, x5; \
342342
vgf2p8affineqb $(tf_inv_const), t1, x2, x2; \

0 commit comments

Comments
 (0)