@@ -281,7 +281,7 @@ static WC_INLINE void Sha256Transform(wc_Sha256* sha256, const byte* data,
281281 "CBZ w8, 2f \n"
282282
283283 "#load in message and schedule updates \n"
284- "LD1 {v0.2d -v3.2d }, [%[dataIn]], #64 \n"
284+ "LD1 {v0.16b -v3.16b }, [%[dataIn]], #64 \n"
285285 "MOV v14.16b, v12.16b \n"
286286 "MOV v15.16b, v13.16b \n"
287287 "REV32 v0.16b, v0.16b \n"
@@ -291,7 +291,7 @@ static WC_INLINE void Sha256Transform(wc_Sha256* sha256, const byte* data,
291291 "B 1b \n" /* do another block */
292292
293293 "2:\n"
294- "STP q12, q13 , %[out] \n"
294+ "ST1 {v12.2d-v13.2d} , %[out] \n"
295295
296296 : [out ] "=m" (sha256 -> digest ), "=m" (sha256 -> buffer ), "=r" (numBlocks ),
297297 "=r" (data ), "=r" (k )
@@ -378,7 +378,7 @@ static WC_INLINE int Sha256Final(wc_Sha256* sha256, byte* hash)
378378 "MOV v16.16b, v20.16b \n"
379379 "MOV v17.16b, v21.16b \n"
380380
381- "LD1 {v22.16b -v25.16b }, [%[k]], #64 \n"
381+ "LD1 {v22.4s -v25.4s }, [%[k]], #64 \n"
382382 "SHA256SU0 v4.4s, v1.4s \n"
383383 "ADD v0.4s, v0.4s, v22.4s \n"
384384 "MOV v6.16b, v2.16b \n"
@@ -411,7 +411,7 @@ static WC_INLINE int Sha256Final(wc_Sha256* sha256, byte* hash)
411411 "SHA256H q16, q17, v3.4s \n"
412412 "SHA256H2 q17, q18, v3.4s \n"
413413
414- "LD1 {v22.16b -v25.16b }, [%[k]], #64 \n"
414+ "LD1 {v22.4s -v25.4s }, [%[k]], #64 \n"
415415 "SHA256SU0 v8.4s, v5.4s \n"
416416 "ADD v4.4s, v4.4s, v22.4s \n"
417417 "MOV v18.16b, v16.16b \n"
@@ -444,7 +444,7 @@ static WC_INLINE int Sha256Final(wc_Sha256* sha256, byte* hash)
444444 "SHA256H q16, q17, v7.4s \n"
445445 "SHA256H2 q17, q18, v7.4s \n"
446446
447- "LD1 {v22.16b -v25.16b }, [%[k]], #64 \n"
447+ "LD1 {v22.4s -v25.4s }, [%[k]], #64 \n"
448448 "SHA256SU0 v12.4s, v9.4s \n"
449449 "ADD v8.4s, v8.4s, v22.4s \n"
450450 "MOV v18.16b, v16.16b \n"
@@ -475,7 +475,7 @@ static WC_INLINE int Sha256Final(wc_Sha256* sha256, byte* hash)
475475 "SHA256H q16, q17, v11.4s \n"
476476 "SHA256H2 q17, q18, v11.4s \n"
477477
478- "LD1 {v22.16b -v25.16b }, [%[k]] \n"
478+ "LD1 {v22.4s -v25.4s }, [%[k]] \n"
479479 "ADD v12.4s, v12.4s, v22.4s \n"
480480 "MOV v18.16b, v16.16b \n"
481481 "SHA256H q16, q17, v12.4s \n"
@@ -499,7 +499,7 @@ static WC_INLINE int Sha256Final(wc_Sha256* sha256, byte* hash)
499499 "#Add working vars back into digest state \n"
500500 "ADD v16.4s, v16.4s, v20.4s \n"
501501 "ADD v17.4s, v17.4s, v21.4s \n"
502- "STP q16, q17, %[out] \n"
502+ "ST1 {v16.2d-v17.2d}, %[out] \n"
503503
504504 : [out ] "=m" (sha256 -> digest ), [k ] "+r" (k )
505505 : [digest ] "m" (sha256 -> digest ),
@@ -549,7 +549,7 @@ static WC_INLINE int Sha256Final(wc_Sha256* sha256, byte* hash)
549549
550550 "MOV v16.16b, v20.16b \n"
551551 "MOV v17.16b, v21.16b \n"
552- "LD1 {v22.16b -v25.16b }, [%[k]], #64 \n"
552+ "LD1 {v22.4s -v25.4s }, [%[k]], #64 \n"
553553 "SHA256SU0 v4.4s, v1.4s \n"
554554 "ADD v0.4s, v0.4s, v22.4s \n"
555555 "MOV v6.16b, v2.16b \n"
@@ -582,7 +582,7 @@ static WC_INLINE int Sha256Final(wc_Sha256* sha256, byte* hash)
582582 "SHA256H q16, q17, v3.4s \n"
583583 "SHA256H2 q17, q18, v3.4s \n"
584584
585- "LD1 {v22.16b -v25.16b }, [%[k]], #64 \n"
585+ "LD1 {v22.4s -v25.4s }, [%[k]], #64 \n"
586586 "SHA256SU0 v8.4s, v5.4s \n"
587587 "ADD v4.4s, v4.4s, v22.4s \n"
588588 "MOV v18.16b, v16.16b \n"
@@ -615,7 +615,7 @@ static WC_INLINE int Sha256Final(wc_Sha256* sha256, byte* hash)
615615 "SHA256H q16, q17, v7.4s \n"
616616 "SHA256H2 q17, q18, v7.4s \n"
617617
618- "LD1 {v22.16b -v25.16b }, [%[k]], #64 \n"
618+ "LD1 {v22.4s -v25.4s }, [%[k]], #64 \n"
619619 "SHA256SU0 v12.4s, v9.4s \n"
620620 "ADD v8.4s, v8.4s, v22.4s \n"
621621 "MOV v18.16b, v16.16b \n"
@@ -646,7 +646,7 @@ static WC_INLINE int Sha256Final(wc_Sha256* sha256, byte* hash)
646646 "SHA256H q16, q17, v11.4s \n"
647647 "SHA256H2 q17, q18, v11.4s \n"
648648
649- "LD1 {v22.16b -v25.16b }, [%[k]] \n"
649+ "LD1 {v22.4s -v25.4s }, [%[k]] \n"
650650 "ADD v12.4s, v12.4s, v22.4s \n"
651651 "MOV v18.16b, v16.16b \n"
652652 "SHA256H q16, q17, v12.4s \n"
0 commit comments