Skip to content

Commit 0bfa77a

Browse files
authored
Merge pull request #562 from pq-code-package/cfify
Add CFI information to assembly
2 parents 03e125e + d2a146d commit 0bfa77a

33 files changed

+603
-95
lines changed

mldsa/fips202/native/aarch64/src/keccak_f1600_x1_scalar_asm.S

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,29 @@
2424
.global MLD_ASM_NAMESPACE(keccak_f1600_x1_scalar_asm)
2525
MLD_ASM_FN_SYMBOL(keccak_f1600_x1_scalar_asm)
2626

27+
.cfi_startproc
2728
sub sp, sp, #0x80
29+
.cfi_adjust_cfa_offset 0x80
2830
stp x19, x20, [sp, #0x20]
31+
.cfi_rel_offset x19, 0x20
32+
.cfi_rel_offset x20, 0x28
2933
stp x21, x22, [sp, #0x30]
34+
.cfi_rel_offset x21, 0x30
35+
.cfi_rel_offset x22, 0x38
3036
stp x23, x24, [sp, #0x40]
37+
.cfi_rel_offset x23, 0x40
38+
.cfi_rel_offset x24, 0x48
3139
stp x25, x26, [sp, #0x50]
40+
.cfi_rel_offset x25, 0x50
41+
.cfi_rel_offset x26, 0x58
3242
stp x27, x28, [sp, #0x60]
43+
.cfi_rel_offset x27, 0x60
44+
.cfi_rel_offset x28, 0x68
3345
stp x29, x30, [sp, #0x70]
46+
.cfi_rel_offset x29, 0x70
47+
.cfi_rel_offset x30, 0x78
3448

35-
keccak_f1600_x1_scalar_initial:
49+
Lkeccak_f1600_x1_scalar_initial:
3650
mov x26, x1
3751
str x1, [sp, #0x8]
3852
ldp x1, x6, [x0]
@@ -157,7 +171,7 @@ keccak_f1600_x1_scalar_initial:
157171
eor x14, x26, x6, ror #46
158172
eor x6, x27, x29, ror #41
159173

160-
keccak_f1600_x1_scalar_loop:
174+
Lkeccak_f1600_x1_scalar_loop:
161175
eor x0, x15, x11, ror #52
162176
eor x0, x0, x13, ror #48
163177
eor x26, x8, x9, ror #57
@@ -270,7 +284,7 @@ keccak_f1600_x1_scalar_loop:
270284
bic x3, x0, x30, ror #5
271285
eor x23, x3, x26, ror #52
272286
eor x3, x29, x30, ror #24
273-
b.le keccak_f1600_x1_scalar_loop
287+
b.le Lkeccak_f1600_x1_scalar_loop
274288
ror x6, x6, #0x2b
275289
ror x11, x11, #0x32
276290
ror x21, x21, #0x14
@@ -309,13 +323,27 @@ keccak_f1600_x1_scalar_loop:
309323
stp x15, x20, [x0, #0xb0]
310324
str x25, [x0, #0xc0]
311325
ldp x19, x20, [sp, #0x20]
326+
.cfi_restore x19
327+
.cfi_restore x20
312328
ldp x21, x22, [sp, #0x30]
329+
.cfi_restore x21
330+
.cfi_restore x22
313331
ldp x23, x24, [sp, #0x40]
332+
.cfi_restore x23
333+
.cfi_restore x24
314334
ldp x25, x26, [sp, #0x50]
335+
.cfi_restore x25
336+
.cfi_restore x26
315337
ldp x27, x28, [sp, #0x60]
338+
.cfi_restore x27
339+
.cfi_restore x28
316340
ldp x29, x30, [sp, #0x70]
341+
.cfi_restore x29
342+
.cfi_restore x30
317343
add sp, sp, #0x80
344+
.cfi_adjust_cfa_offset -0x80
318345
ret
346+
.cfi_endproc
319347

320348
#endif /* MLD_FIPS202_AARCH64_NEED_X1_SCALAR && \
321349
!MLD_CONFIG_MULTILEVEL_NO_SHARED */

mldsa/fips202/native/aarch64/src/keccak_f1600_x1_v84a_asm.S

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,21 @@
4141
.global MLD_ASM_NAMESPACE(keccak_f1600_x1_v84a_asm)
4242
MLD_ASM_FN_SYMBOL(keccak_f1600_x1_v84a_asm)
4343

44+
.cfi_startproc
4445
sub sp, sp, #0x40
46+
.cfi_adjust_cfa_offset 0x40
4547
stp d8, d9, [sp]
48+
.cfi_rel_offset d8, 0x0
49+
.cfi_rel_offset d9, 0x8
4650
stp d10, d11, [sp, #0x10]
51+
.cfi_rel_offset d10, 0x10
52+
.cfi_rel_offset d11, 0x18
4753
stp d12, d13, [sp, #0x20]
54+
.cfi_rel_offset d12, 0x20
55+
.cfi_rel_offset d13, 0x28
4856
stp d14, d15, [sp, #0x30]
57+
.cfi_rel_offset d14, 0x30
58+
.cfi_rel_offset d15, 0x38
4959
ldp d0, d1, [x0]
5060
ldp d2, d3, [x0, #0x10]
5161
ldp d4, d5, [x0, #0x20]
@@ -61,7 +71,7 @@ MLD_ASM_FN_SYMBOL(keccak_f1600_x1_v84a_asm)
6171
ldr d24, [x0, #0xc0]
6272
mov x2, #0x18 // =24
6373

64-
keccak_f1600_x1_v84a_loop:
74+
Lkeccak_f1600_x1_v84a_loop:
6575
eor3 v30.16b, v0.16b, v5.16b, v10.16b
6676
eor3 v29.16b, v1.16b, v6.16b, v11.16b
6777
eor3 v28.16b, v2.16b, v7.16b, v12.16b
@@ -130,7 +140,7 @@ keccak_f1600_x1_v84a_loop:
130140
bcax v4.16b, v4.16b, v27.16b, v30.16b
131141
eor v0.16b, v0.16b, v31.16b
132142
sub x2, x2, #0x1
133-
cbnz x2, keccak_f1600_x1_v84a_loop
143+
cbnz x2, Lkeccak_f1600_x1_v84a_loop
134144
stp d0, d1, [x0]
135145
stp d2, d3, [x0, #0x10]
136146
stp d4, d5, [x0, #0x20]
@@ -145,11 +155,21 @@ keccak_f1600_x1_v84a_loop:
145155
stp d22, d23, [x0, #0xb0]
146156
str d24, [x0, #0xc0]
147157
ldp d8, d9, [sp]
158+
.cfi_restore d8
159+
.cfi_restore d9
148160
ldp d10, d11, [sp, #0x10]
161+
.cfi_restore d10
162+
.cfi_restore d11
149163
ldp d12, d13, [sp, #0x20]
164+
.cfi_restore d12
165+
.cfi_restore d13
150166
ldp d14, d15, [sp, #0x30]
167+
.cfi_restore d14
168+
.cfi_restore d15
151169
add sp, sp, #0x40
170+
.cfi_adjust_cfa_offset -0x40
152171
ret
172+
.cfi_endproc
153173

154174
#endif /* __ARM_FEATURE_SHA3 */
155175

mldsa/fips202/native/aarch64/src/keccak_f1600_x2_v84a_asm.S

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,21 @@
4141
.global MLD_ASM_NAMESPACE(keccak_f1600_x2_v84a_asm)
4242
MLD_ASM_FN_SYMBOL(keccak_f1600_x2_v84a_asm)
4343

44+
.cfi_startproc
4445
sub sp, sp, #0x40
46+
.cfi_adjust_cfa_offset 0x40
4547
stp d8, d9, [sp]
48+
.cfi_rel_offset d8, 0x0
49+
.cfi_rel_offset d9, 0x8
4650
stp d10, d11, [sp, #0x10]
51+
.cfi_rel_offset d10, 0x10
52+
.cfi_rel_offset d11, 0x18
4753
stp d12, d13, [sp, #0x20]
54+
.cfi_rel_offset d12, 0x20
55+
.cfi_rel_offset d13, 0x28
4856
stp d14, d15, [sp, #0x30]
57+
.cfi_rel_offset d14, 0x30
58+
.cfi_rel_offset d15, 0x38
4959
add x2, x0, #0xc8
5060
ldp q25, q26, [x0]
5161
ldp q27, q28, [x2]
@@ -88,7 +98,7 @@ MLD_ASM_FN_SYMBOL(keccak_f1600_x2_v84a_asm)
8898
trn1 v24.2d, v25.2d, v27.2d
8999
mov x2, #0x18 // =24
90100

91-
keccak_f1600_x2_v84a_loop:
101+
Lkeccak_f1600_x2_v84a_loop:
92102
eor3 v30.16b, v0.16b, v5.16b, v10.16b
93103
eor3 v29.16b, v1.16b, v6.16b, v11.16b
94104
eor3 v28.16b, v2.16b, v7.16b, v12.16b
@@ -157,7 +167,7 @@ keccak_f1600_x2_v84a_loop:
157167
bcax v4.16b, v4.16b, v27.16b, v30.16b
158168
eor v0.16b, v0.16b, v31.16b
159169
sub x2, x2, #0x1
160-
cbnz x2, keccak_f1600_x2_v84a_loop
170+
cbnz x2, Lkeccak_f1600_x2_v84a_loop
161171
add x2, x0, #0xc8
162172
trn1 v25.2d, v0.2d, v1.2d
163173
trn1 v26.2d, v2.2d, v3.2d
@@ -199,11 +209,21 @@ keccak_f1600_x2_v84a_loop:
199209
trn2 v25.2d, v24.2d, v24.2d
200210
str d25, [x2, #0xc0]
201211
ldp d8, d9, [sp]
212+
.cfi_restore d8
213+
.cfi_restore d9
202214
ldp d10, d11, [sp, #0x10]
215+
.cfi_restore d10
216+
.cfi_restore d11
203217
ldp d12, d13, [sp, #0x20]
218+
.cfi_restore d12
219+
.cfi_restore d13
204220
ldp d14, d15, [sp, #0x30]
221+
.cfi_restore d14
222+
.cfi_restore d15
205223
add sp, sp, #0x40
224+
.cfi_adjust_cfa_offset -0x40
206225
ret
226+
.cfi_endproc
207227

208228
#endif /* __ARM_FEATURE_SHA3 */
209229

mldsa/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_asm.S

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,39 @@
2424
.global MLD_ASM_NAMESPACE(keccak_f1600_x4_scalar_v8a_hybrid_asm)
2525
MLD_ASM_FN_SYMBOL(keccak_f1600_x4_scalar_v8a_hybrid_asm)
2626

27+
.cfi_startproc
2728
sub sp, sp, #0xe0
29+
.cfi_adjust_cfa_offset 0xe0
2830
stp x19, x20, [sp, #0x30]
31+
.cfi_rel_offset x19, 0x30
32+
.cfi_rel_offset x20, 0x38
2933
stp x21, x22, [sp, #0x40]
34+
.cfi_rel_offset x21, 0x40
35+
.cfi_rel_offset x22, 0x48
3036
stp x23, x24, [sp, #0x50]
37+
.cfi_rel_offset x23, 0x50
38+
.cfi_rel_offset x24, 0x58
3139
stp x25, x26, [sp, #0x60]
40+
.cfi_rel_offset x25, 0x60
41+
.cfi_rel_offset x26, 0x68
3242
stp x27, x28, [sp, #0x70]
43+
.cfi_rel_offset x27, 0x70
44+
.cfi_rel_offset x28, 0x78
3345
stp x29, x30, [sp, #0x80]
46+
.cfi_rel_offset x29, 0x80
47+
.cfi_rel_offset x30, 0x88
3448
stp d8, d9, [sp, #0x90]
49+
.cfi_rel_offset d8, 0x90
50+
.cfi_rel_offset d9, 0x98
3551
stp d10, d11, [sp, #0xa0]
52+
.cfi_rel_offset d10, 0xa0
53+
.cfi_rel_offset d11, 0xa8
3654
stp d12, d13, [sp, #0xb0]
55+
.cfi_rel_offset d12, 0xb0
56+
.cfi_rel_offset d13, 0xb8
3757
stp d14, d15, [sp, #0xc0]
58+
.cfi_rel_offset d14, 0xc0
59+
.cfi_rel_offset d15, 0xc8
3860
mov x29, x1
3961
mov x30, #0x0 // =0
4062
str x30, [sp, #0x20]
@@ -97,7 +119,7 @@ MLD_ASM_FN_SYMBOL(keccak_f1600_x4_scalar_v8a_hybrid_asm)
97119
ldr x25, [x0, #0xc0]
98120
sub x0, x0, #0x190
99121

100-
keccak_f1600_x4_v8a_scalar_hybrid_initial:
122+
Lkeccak_f1600_x4_v8a_scalar_hybrid_initial:
101123
eor x30, x24, x25
102124
eor x27, x9, x10
103125
eor v30.16b, v0.16b, v5.16b
@@ -480,7 +502,7 @@ keccak_f1600_x4_v8a_scalar_hybrid_initial:
480502
str x30, [sp, #0x10]
481503
eor v0.16b, v0.16b, v28.16b
482504

483-
keccak_f1600_x4_v8a_scalar_hybrid_loop:
505+
Lkeccak_f1600_x4_v8a_scalar_hybrid_loop:
484506
eor x0, x15, x11, ror #52
485507
eor x0, x0, x13, ror #48
486508
eor v30.16b, v0.16b, v5.16b
@@ -868,8 +890,8 @@ keccak_f1600_x4_v8a_scalar_hybrid_loop:
868890
str x30, [sp, #0x10]
869891
eor v0.16b, v0.16b, v28.16b
870892

871-
keccak_f1600_x4_v8a_scalar_hybrid_loop_end:
872-
b.le keccak_f1600_x4_v8a_scalar_hybrid_loop
893+
Lkeccak_f1600_x4_v8a_scalar_hybrid_loop_end:
894+
b.le Lkeccak_f1600_x4_v8a_scalar_hybrid_loop
873895
ror x2, x2, #0x3d
874896
ror x3, x3, #0x27
875897
ror x4, x4, #0x36
@@ -895,7 +917,7 @@ keccak_f1600_x4_v8a_scalar_hybrid_loop_end:
895917
ror x25, x25, #0x9
896918
ldr x30, [sp, #0x20]
897919
cmp x30, #0x1
898-
b.eq keccak_f1600_x4_scalar_v8a_hybrid_done
920+
b.eq Lkeccak_f1600_x4_scalar_v8a_hybrid_done
899921
mov x30, #0x1 // =1
900922
str x30, [sp, #0x20]
901923
ldr x0, [sp]
@@ -929,9 +951,9 @@ keccak_f1600_x4_v8a_scalar_hybrid_loop_end:
929951
ldp x15, x20, [x0, #0xb0]
930952
ldr x25, [x0, #0xc0]
931953
sub x0, x0, #0x258
932-
b keccak_f1600_x4_v8a_scalar_hybrid_initial
954+
b Lkeccak_f1600_x4_v8a_scalar_hybrid_initial
933955

934-
keccak_f1600_x4_scalar_v8a_hybrid_done:
956+
Lkeccak_f1600_x4_scalar_v8a_hybrid_done:
935957
ldr x0, [sp]
936958
add x0, x0, #0x258
937959
stp x1, x6, [x0]
@@ -993,13 +1015,27 @@ keccak_f1600_x4_scalar_v8a_hybrid_done:
9931015
ldp d10, d11, [sp, #0xa0]
9941016
ldp d8, d9, [sp, #0x90]
9951017
ldp x19, x20, [sp, #0x30]
1018+
.cfi_restore x19
1019+
.cfi_restore x20
9961020
ldp x21, x22, [sp, #0x40]
1021+
.cfi_restore x21
1022+
.cfi_restore x22
9971023
ldp x23, x24, [sp, #0x50]
1024+
.cfi_restore x23
1025+
.cfi_restore x24
9981026
ldp x25, x26, [sp, #0x60]
1027+
.cfi_restore x25
1028+
.cfi_restore x26
9991029
ldp x27, x28, [sp, #0x70]
1030+
.cfi_restore x27
1031+
.cfi_restore x28
10001032
ldp x29, x30, [sp, #0x80]
1033+
.cfi_restore x29
1034+
.cfi_restore x30
10011035
add sp, sp, #0xe0
1036+
.cfi_adjust_cfa_offset -0xe0
10021037
ret
1038+
.cfi_endproc
10031039

10041040
#endif /* MLD_FIPS202_AARCH64_NEED_X4_V8A_SCALAR_HYBRID && \
10051041
!MLD_CONFIG_MULTILEVEL_NO_SHARED */

0 commit comments

Comments
 (0)