Skip to content

Commit 4ac7959

Browse files
committed
ARMv7a SHA256: explicit size on vmov
For SHA256 using NEON on ARM32, change vmov instruction that is moving from scalar to general-purpose register to have explicit size (32 bits). May be needed by some compilers.
1 parent 1abaa94 commit 4ac7959

2 files changed

Lines changed: 64 additions & 64 deletions

File tree

wolfcrypt/src/port/arm/armv8-32-sha256-asm.S

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1897,7 +1897,7 @@ L_SHA256_transform_neon_len_begin:
18971897
# Start of 16 rounds
18981898
L_SHA256_transform_neon_len_start:
18991899
# Round 0
1900-
vmov r10, d0[0]
1900+
vmov.32 r10, d0[0]
19011901
ror r0, r6, #6
19021902
eor r1, r7, r8
19031903
eor r0, r0, r6, ror #11
@@ -1920,7 +1920,7 @@ L_SHA256_transform_neon_len_start:
19201920
add r9, r9, r0
19211921
add r9, r9, r1
19221922
# Round 1
1923-
vmov r10, d0[1]
1923+
vmov.32 r10, d0[1]
19241924
# Calc new W[0]-W[1]
19251925
vext.8 d10, d0, d1, #4
19261926
ror r0, r5, #6
@@ -1963,7 +1963,7 @@ L_SHA256_transform_neon_len_start:
19631963
add r8, r8, r0
19641964
add r8, r8, r1
19651965
# Round 2
1966-
vmov r10, d1[0]
1966+
vmov.32 r10, d1[0]
19671967
ror r0, r4, #6
19681968
eor r1, r5, r6
19691969
eor r0, r0, r4, ror #11
@@ -1986,7 +1986,7 @@ L_SHA256_transform_neon_len_start:
19861986
add r7, r7, r0
19871987
add r7, r7, r1
19881988
# Round 3
1989-
vmov r10, d1[1]
1989+
vmov.32 r10, d1[1]
19901990
# Calc new W[2]-W[3]
19911991
vext.8 d10, d1, d2, #4
19921992
ror r0, r3, #6
@@ -2029,7 +2029,7 @@ L_SHA256_transform_neon_len_start:
20292029
add r6, r6, r0
20302030
add r6, r6, r1
20312031
# Round 4
2032-
vmov r10, d2[0]
2032+
vmov.32 r10, d2[0]
20332033
ror r0, r2, #6
20342034
eor r1, r3, r4
20352035
eor r0, r0, r2, ror #11
@@ -2052,7 +2052,7 @@ L_SHA256_transform_neon_len_start:
20522052
add r5, r5, r0
20532053
add r5, r5, r1
20542054
# Round 5
2055-
vmov r10, d2[1]
2055+
vmov.32 r10, d2[1]
20562056
# Calc new W[4]-W[5]
20572057
vext.8 d10, d2, d3, #4
20582058
ror r0, r9, #6
@@ -2095,7 +2095,7 @@ L_SHA256_transform_neon_len_start:
20952095
add r4, r4, r0
20962096
add r4, r4, r1
20972097
# Round 6
2098-
vmov r10, d3[0]
2098+
vmov.32 r10, d3[0]
20992099
ror r0, r8, #6
21002100
eor r1, r9, r2
21012101
eor r0, r0, r8, ror #11
@@ -2118,7 +2118,7 @@ L_SHA256_transform_neon_len_start:
21182118
add r3, r3, r0
21192119
add r3, r3, r1
21202120
# Round 7
2121-
vmov r10, d3[1]
2121+
vmov.32 r10, d3[1]
21222122
# Calc new W[6]-W[7]
21232123
vext.8 d10, d3, d4, #4
21242124
ror r0, r7, #6
@@ -2161,7 +2161,7 @@ L_SHA256_transform_neon_len_start:
21612161
add r2, r2, r0
21622162
add r2, r2, r1
21632163
# Round 8
2164-
vmov r10, d4[0]
2164+
vmov.32 r10, d4[0]
21652165
ror r0, r6, #6
21662166
eor r1, r7, r8
21672167
eor r0, r0, r6, ror #11
@@ -2184,7 +2184,7 @@ L_SHA256_transform_neon_len_start:
21842184
add r9, r9, r0
21852185
add r9, r9, r1
21862186
# Round 9
2187-
vmov r10, d4[1]
2187+
vmov.32 r10, d4[1]
21882188
# Calc new W[8]-W[9]
21892189
vext.8 d10, d4, d5, #4
21902190
ror r0, r5, #6
@@ -2227,7 +2227,7 @@ L_SHA256_transform_neon_len_start:
22272227
add r8, r8, r0
22282228
add r8, r8, r1
22292229
# Round 10
2230-
vmov r10, d5[0]
2230+
vmov.32 r10, d5[0]
22312231
ror r0, r4, #6
22322232
eor r1, r5, r6
22332233
eor r0, r0, r4, ror #11
@@ -2250,7 +2250,7 @@ L_SHA256_transform_neon_len_start:
22502250
add r7, r7, r0
22512251
add r7, r7, r1
22522252
# Round 11
2253-
vmov r10, d5[1]
2253+
vmov.32 r10, d5[1]
22542254
# Calc new W[10]-W[11]
22552255
vext.8 d10, d5, d6, #4
22562256
ror r0, r3, #6
@@ -2293,7 +2293,7 @@ L_SHA256_transform_neon_len_start:
22932293
add r6, r6, r0
22942294
add r6, r6, r1
22952295
# Round 12
2296-
vmov r10, d6[0]
2296+
vmov.32 r10, d6[0]
22972297
ror r0, r2, #6
22982298
eor r1, r3, r4
22992299
eor r0, r0, r2, ror #11
@@ -2316,7 +2316,7 @@ L_SHA256_transform_neon_len_start:
23162316
add r5, r5, r0
23172317
add r5, r5, r1
23182318
# Round 13
2319-
vmov r10, d6[1]
2319+
vmov.32 r10, d6[1]
23202320
# Calc new W[12]-W[13]
23212321
vext.8 d10, d6, d7, #4
23222322
ror r0, r9, #6
@@ -2359,7 +2359,7 @@ L_SHA256_transform_neon_len_start:
23592359
add r4, r4, r0
23602360
add r4, r4, r1
23612361
# Round 14
2362-
vmov r10, d7[0]
2362+
vmov.32 r10, d7[0]
23632363
ror r0, r8, #6
23642364
eor r1, r9, r2
23652365
eor r0, r0, r8, ror #11
@@ -2382,7 +2382,7 @@ L_SHA256_transform_neon_len_start:
23822382
add r3, r3, r0
23832383
add r3, r3, r1
23842384
# Round 15
2385-
vmov r10, d7[1]
2385+
vmov.32 r10, d7[1]
23862386
# Calc new W[14]-W[15]
23872387
vext.8 d10, d7, d0, #4
23882388
ror r0, r7, #6
@@ -2428,7 +2428,7 @@ L_SHA256_transform_neon_len_start:
24282428
subs lr, lr, #1
24292429
bne L_SHA256_transform_neon_len_start
24302430
# Round 0
2431-
vmov r10, d0[0]
2431+
vmov.32 r10, d0[0]
24322432
ror r0, r6, #6
24332433
eor r1, r7, r8
24342434
eor r0, r0, r6, ror #11
@@ -2451,7 +2451,7 @@ L_SHA256_transform_neon_len_start:
24512451
add r9, r9, r0
24522452
add r9, r9, r1
24532453
# Round 1
2454-
vmov r10, d0[1]
2454+
vmov.32 r10, d0[1]
24552455
ror r0, r5, #6
24562456
eor r1, r6, r7
24572457
eor r0, r0, r5, ror #11
@@ -2474,7 +2474,7 @@ L_SHA256_transform_neon_len_start:
24742474
add r8, r8, r0
24752475
add r8, r8, r1
24762476
# Round 2
2477-
vmov r10, d1[0]
2477+
vmov.32 r10, d1[0]
24782478
ror r0, r4, #6
24792479
eor r1, r5, r6
24802480
eor r0, r0, r4, ror #11
@@ -2497,7 +2497,7 @@ L_SHA256_transform_neon_len_start:
24972497
add r7, r7, r0
24982498
add r7, r7, r1
24992499
# Round 3
2500-
vmov r10, d1[1]
2500+
vmov.32 r10, d1[1]
25012501
ror r0, r3, #6
25022502
eor r1, r4, r5
25032503
eor r0, r0, r3, ror #11
@@ -2520,7 +2520,7 @@ L_SHA256_transform_neon_len_start:
25202520
add r6, r6, r0
25212521
add r6, r6, r1
25222522
# Round 4
2523-
vmov r10, d2[0]
2523+
vmov.32 r10, d2[0]
25242524
ror r0, r2, #6
25252525
eor r1, r3, r4
25262526
eor r0, r0, r2, ror #11
@@ -2543,7 +2543,7 @@ L_SHA256_transform_neon_len_start:
25432543
add r5, r5, r0
25442544
add r5, r5, r1
25452545
# Round 5
2546-
vmov r10, d2[1]
2546+
vmov.32 r10, d2[1]
25472547
ror r0, r9, #6
25482548
eor r1, r2, r3
25492549
eor r0, r0, r9, ror #11
@@ -2566,7 +2566,7 @@ L_SHA256_transform_neon_len_start:
25662566
add r4, r4, r0
25672567
add r4, r4, r1
25682568
# Round 6
2569-
vmov r10, d3[0]
2569+
vmov.32 r10, d3[0]
25702570
ror r0, r8, #6
25712571
eor r1, r9, r2
25722572
eor r0, r0, r8, ror #11
@@ -2589,7 +2589,7 @@ L_SHA256_transform_neon_len_start:
25892589
add r3, r3, r0
25902590
add r3, r3, r1
25912591
# Round 7
2592-
vmov r10, d3[1]
2592+
vmov.32 r10, d3[1]
25932593
ror r0, r7, #6
25942594
eor r1, r8, r9
25952595
eor r0, r0, r7, ror #11
@@ -2612,7 +2612,7 @@ L_SHA256_transform_neon_len_start:
26122612
add r2, r2, r0
26132613
add r2, r2, r1
26142614
# Round 8
2615-
vmov r10, d4[0]
2615+
vmov.32 r10, d4[0]
26162616
ror r0, r6, #6
26172617
eor r1, r7, r8
26182618
eor r0, r0, r6, ror #11
@@ -2635,7 +2635,7 @@ L_SHA256_transform_neon_len_start:
26352635
add r9, r9, r0
26362636
add r9, r9, r1
26372637
# Round 9
2638-
vmov r10, d4[1]
2638+
vmov.32 r10, d4[1]
26392639
ror r0, r5, #6
26402640
eor r1, r6, r7
26412641
eor r0, r0, r5, ror #11
@@ -2658,7 +2658,7 @@ L_SHA256_transform_neon_len_start:
26582658
add r8, r8, r0
26592659
add r8, r8, r1
26602660
# Round 10
2661-
vmov r10, d5[0]
2661+
vmov.32 r10, d5[0]
26622662
ror r0, r4, #6
26632663
eor r1, r5, r6
26642664
eor r0, r0, r4, ror #11
@@ -2681,7 +2681,7 @@ L_SHA256_transform_neon_len_start:
26812681
add r7, r7, r0
26822682
add r7, r7, r1
26832683
# Round 11
2684-
vmov r10, d5[1]
2684+
vmov.32 r10, d5[1]
26852685
ror r0, r3, #6
26862686
eor r1, r4, r5
26872687
eor r0, r0, r3, ror #11
@@ -2704,7 +2704,7 @@ L_SHA256_transform_neon_len_start:
27042704
add r6, r6, r0
27052705
add r6, r6, r1
27062706
# Round 12
2707-
vmov r10, d6[0]
2707+
vmov.32 r10, d6[0]
27082708
ror r0, r2, #6
27092709
eor r1, r3, r4
27102710
eor r0, r0, r2, ror #11
@@ -2727,7 +2727,7 @@ L_SHA256_transform_neon_len_start:
27272727
add r5, r5, r0
27282728
add r5, r5, r1
27292729
# Round 13
2730-
vmov r10, d6[1]
2730+
vmov.32 r10, d6[1]
27312731
ror r0, r9, #6
27322732
eor r1, r2, r3
27332733
eor r0, r0, r9, ror #11
@@ -2750,7 +2750,7 @@ L_SHA256_transform_neon_len_start:
27502750
add r4, r4, r0
27512751
add r4, r4, r1
27522752
# Round 14
2753-
vmov r10, d7[0]
2753+
vmov.32 r10, d7[0]
27542754
ror r0, r8, #6
27552755
eor r1, r9, r2
27562756
eor r0, r0, r8, ror #11
@@ -2773,7 +2773,7 @@ L_SHA256_transform_neon_len_start:
27732773
add r3, r3, r0
27742774
add r3, r3, r1
27752775
# Round 15
2776-
vmov r10, d7[1]
2776+
vmov.32 r10, d7[1]
27772777
ror r0, r7, #6
27782778
eor r1, r8, r9
27792779
eor r0, r0, r7, ror #11

0 commit comments

Comments
 (0)