summaryrefslogtreecommitdiffstats
path: root/linux-aarch64/crypto/sha
diff options
context:
space:
mode:
authorAdam Langley <agl@google.com>2015-05-11 17:20:37 -0700
committerKenny Root <kroot@google.com>2015-05-12 23:06:14 +0000
commite9ada863a7b3e81f5d2b1e3bdd2305da902a87f5 (patch)
tree6e43e34595ecf887c26c32b86d8ab097fe8cac64 /linux-aarch64/crypto/sha
parentb3106a0cc1493bbe0505c0ec0ce3da4ca90a29ae (diff)
downloadexternal_boringssl-e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5.zip
external_boringssl-e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5.tar.gz
external_boringssl-e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5.tar.bz2
external/boringssl: bump revision.
This change bumps the BoringSSL revision to the current tip-of-tree. Change-Id: I91d5bf467e16e8d86cb19a4de873985f524e5faa
Diffstat (limited to 'linux-aarch64/crypto/sha')
-rw-r--r--linux-aarch64/crypto/sha/sha1-armv8.S664
-rw-r--r--linux-aarch64/crypto/sha/sha256-armv8.S292
-rw-r--r--linux-aarch64/crypto/sha/sha512-armv8.S96
3 files changed, 529 insertions, 523 deletions
diff --git a/linux-aarch64/crypto/sha/sha1-armv8.S b/linux-aarch64/crypto/sha/sha1-armv8.S
index f9d1262..ab6aa98 100644
--- a/linux-aarch64/crypto/sha/sha1-armv8.S
+++ b/linux-aarch64/crypto/sha/sha1-armv8.S
@@ -2,6 +2,7 @@
.text
+
.globl sha1_block_data_order
.type sha1_block_data_order,%function
.align 6
@@ -213,826 +214,826 @@ sha1_block_data_order:
add w20,w20,w17 // future e+=X[i]
add w21,w21,w25 // e+=F(b,c,d)
lsr x19,x17,#32
- eor w3,w3,w5
+ eor w3,w3,w5
bic w25,w24,w22
and w26,w23,w22
ror w27,w21,#27
- eor w3,w3,w11
+ eor w3,w3,w11
add w24,w24,w28 // future e+=K
orr w25,w25,w26
add w20,w20,w27 // e+=rot(a,5)
- eor w3,w3,w16
+ eor w3,w3,w16
ror w22,w22,#2
add w24,w24,w19 // future e+=X[i]
add w20,w20,w25 // e+=F(b,c,d)
- ror w3,w3,#31
- eor w4,w4,w6
+ ror w3,w3,#31
+ eor w4,w4,w6
bic w25,w23,w21
and w26,w22,w21
ror w27,w20,#27
- eor w4,w4,w12
+ eor w4,w4,w12
add w23,w23,w28 // future e+=K
orr w25,w25,w26
add w24,w24,w27 // e+=rot(a,5)
- eor w4,w4,w17
+ eor w4,w4,w17
ror w21,w21,#2
add w23,w23,w3 // future e+=X[i]
add w24,w24,w25 // e+=F(b,c,d)
- ror w4,w4,#31
- eor w5,w5,w7
+ ror w4,w4,#31
+ eor w5,w5,w7
bic w25,w22,w20
and w26,w21,w20
ror w27,w24,#27
- eor w5,w5,w13
+ eor w5,w5,w13
add w22,w22,w28 // future e+=K
orr w25,w25,w26
add w23,w23,w27 // e+=rot(a,5)
- eor w5,w5,w19
+ eor w5,w5,w19
ror w20,w20,#2
add w22,w22,w4 // future e+=X[i]
add w23,w23,w25 // e+=F(b,c,d)
- ror w5,w5,#31
- eor w6,w6,w8
+ ror w5,w5,#31
+ eor w6,w6,w8
bic w25,w21,w24
and w26,w20,w24
ror w27,w23,#27
- eor w6,w6,w14
+ eor w6,w6,w14
add w21,w21,w28 // future e+=K
orr w25,w25,w26
add w22,w22,w27 // e+=rot(a,5)
- eor w6,w6,w3
+ eor w6,w6,w3
ror w24,w24,#2
add w21,w21,w5 // future e+=X[i]
add w22,w22,w25 // e+=F(b,c,d)
- ror w6,w6,#31
- eor w7,w7,w9
+ ror w6,w6,#31
+ eor w7,w7,w9
bic w25,w20,w23
and w26,w24,w23
ror w27,w22,#27
- eor w7,w7,w15
+ eor w7,w7,w15
add w20,w20,w28 // future e+=K
orr w25,w25,w26
add w21,w21,w27 // e+=rot(a,5)
- eor w7,w7,w4
+ eor w7,w7,w4
ror w23,w23,#2
add w20,w20,w6 // future e+=X[i]
add w21,w21,w25 // e+=F(b,c,d)
- ror w7,w7,#31
+ ror w7,w7,#31
movz w28,#0xeba1
movk w28,#0x6ed9,lsl#16
- eor w8,w8,w10
+ eor w8,w8,w10
bic w25,w24,w22
and w26,w23,w22
ror w27,w21,#27
- eor w8,w8,w16
+ eor w8,w8,w16
add w24,w24,w28 // future e+=K
orr w25,w25,w26
add w20,w20,w27 // e+=rot(a,5)
- eor w8,w8,w5
+ eor w8,w8,w5
ror w22,w22,#2
add w24,w24,w7 // future e+=X[i]
add w20,w20,w25 // e+=F(b,c,d)
- ror w8,w8,#31
- eor w9,w9,w11
+ ror w8,w8,#31
+ eor w9,w9,w11
eor w25,w23,w21
ror w27,w20,#27
add w23,w23,w28 // future e+=K
- eor w9,w9,w17
+ eor w9,w9,w17
eor w25,w25,w22
add w24,w24,w27 // e+=rot(a,5)
ror w21,w21,#2
- eor w9,w9,w6
+ eor w9,w9,w6
add w23,w23,w8 // future e+=X[i]
add w24,w24,w25 // e+=F(b,c,d)
- ror w9,w9,#31
- eor w10,w10,w12
+ ror w9,w9,#31
+ eor w10,w10,w12
eor w25,w22,w20
ror w27,w24,#27
add w22,w22,w28 // future e+=K
- eor w10,w10,w19
+ eor w10,w10,w19
eor w25,w25,w21
add w23,w23,w27 // e+=rot(a,5)
ror w20,w20,#2
- eor w10,w10,w7
+ eor w10,w10,w7
add w22,w22,w9 // future e+=X[i]
add w23,w23,w25 // e+=F(b,c,d)
- ror w10,w10,#31
- eor w11,w11,w13
+ ror w10,w10,#31
+ eor w11,w11,w13
eor w25,w21,w24
ror w27,w23,#27
add w21,w21,w28 // future e+=K
- eor w11,w11,w3
+ eor w11,w11,w3
eor w25,w25,w20
add w22,w22,w27 // e+=rot(a,5)
ror w24,w24,#2
- eor w11,w11,w8
+ eor w11,w11,w8
add w21,w21,w10 // future e+=X[i]
add w22,w22,w25 // e+=F(b,c,d)
- ror w11,w11,#31
- eor w12,w12,w14
+ ror w11,w11,#31
+ eor w12,w12,w14
eor w25,w20,w23
ror w27,w22,#27
add w20,w20,w28 // future e+=K
- eor w12,w12,w4
+ eor w12,w12,w4
eor w25,w25,w24
add w21,w21,w27 // e+=rot(a,5)
ror w23,w23,#2
- eor w12,w12,w9
+ eor w12,w12,w9
add w20,w20,w11 // future e+=X[i]
add w21,w21,w25 // e+=F(b,c,d)
- ror w12,w12,#31
- eor w13,w13,w15
+ ror w12,w12,#31
+ eor w13,w13,w15
eor w25,w24,w22
ror w27,w21,#27
add w24,w24,w28 // future e+=K
- eor w13,w13,w5
+ eor w13,w13,w5
eor w25,w25,w23
add w20,w20,w27 // e+=rot(a,5)
ror w22,w22,#2
- eor w13,w13,w10
+ eor w13,w13,w10
add w24,w24,w12 // future e+=X[i]
add w20,w20,w25 // e+=F(b,c,d)
- ror w13,w13,#31
- eor w14,w14,w16
+ ror w13,w13,#31
+ eor w14,w14,w16
eor w25,w23,w21
ror w27,w20,#27
add w23,w23,w28 // future e+=K
- eor w14,w14,w6
+ eor w14,w14,w6
eor w25,w25,w22
add w24,w24,w27 // e+=rot(a,5)
ror w21,w21,#2
- eor w14,w14,w11
+ eor w14,w14,w11
add w23,w23,w13 // future e+=X[i]
add w24,w24,w25 // e+=F(b,c,d)
- ror w14,w14,#31
- eor w15,w15,w17
+ ror w14,w14,#31
+ eor w15,w15,w17
eor w25,w22,w20
ror w27,w24,#27
add w22,w22,w28 // future e+=K
- eor w15,w15,w7
+ eor w15,w15,w7
eor w25,w25,w21
add w23,w23,w27 // e+=rot(a,5)
ror w20,w20,#2
- eor w15,w15,w12
+ eor w15,w15,w12
add w22,w22,w14 // future e+=X[i]
add w23,w23,w25 // e+=F(b,c,d)
- ror w15,w15,#31
- eor w16,w16,w19
+ ror w15,w15,#31
+ eor w16,w16,w19
eor w25,w21,w24
ror w27,w23,#27
add w21,w21,w28 // future e+=K
- eor w16,w16,w8
+ eor w16,w16,w8
eor w25,w25,w20
add w22,w22,w27 // e+=rot(a,5)
ror w24,w24,#2
- eor w16,w16,w13
+ eor w16,w16,w13
add w21,w21,w15 // future e+=X[i]
add w22,w22,w25 // e+=F(b,c,d)
- ror w16,w16,#31
- eor w17,w17,w3
+ ror w16,w16,#31
+ eor w17,w17,w3
eor w25,w20,w23
ror w27,w22,#27
add w20,w20,w28 // future e+=K
- eor w17,w17,w9
+ eor w17,w17,w9
eor w25,w25,w24
add w21,w21,w27 // e+=rot(a,5)
ror w23,w23,#2
- eor w17,w17,w14
+ eor w17,w17,w14
add w20,w20,w16 // future e+=X[i]
add w21,w21,w25 // e+=F(b,c,d)
- ror w17,w17,#31
- eor w19,w19,w4
+ ror w17,w17,#31
+ eor w19,w19,w4
eor w25,w24,w22
ror w27,w21,#27
add w24,w24,w28 // future e+=K
- eor w19,w19,w10
+ eor w19,w19,w10
eor w25,w25,w23
add w20,w20,w27 // e+=rot(a,5)
ror w22,w22,#2
- eor w19,w19,w15
+ eor w19,w19,w15
add w24,w24,w17 // future e+=X[i]
add w20,w20,w25 // e+=F(b,c,d)
- ror w19,w19,#31
- eor w3,w3,w5
+ ror w19,w19,#31
+ eor w3,w3,w5
eor w25,w23,w21
ror w27,w20,#27
add w23,w23,w28 // future e+=K
- eor w3,w3,w11
+ eor w3,w3,w11
eor w25,w25,w22
add w24,w24,w27 // e+=rot(a,5)
ror w21,w21,#2
- eor w3,w3,w16
+ eor w3,w3,w16
add w23,w23,w19 // future e+=X[i]
add w24,w24,w25 // e+=F(b,c,d)
- ror w3,w3,#31
- eor w4,w4,w6
+ ror w3,w3,#31
+ eor w4,w4,w6
eor w25,w22,w20
ror w27,w24,#27
add w22,w22,w28 // future e+=K
- eor w4,w4,w12
+ eor w4,w4,w12
eor w25,w25,w21
add w23,w23,w27 // e+=rot(a,5)
ror w20,w20,#2
- eor w4,w4,w17
+ eor w4,w4,w17
add w22,w22,w3 // future e+=X[i]
add w23,w23,w25 // e+=F(b,c,d)
- ror w4,w4,#31
- eor w5,w5,w7
+ ror w4,w4,#31
+ eor w5,w5,w7
eor w25,w21,w24
ror w27,w23,#27
add w21,w21,w28 // future e+=K
- eor w5,w5,w13
+ eor w5,w5,w13
eor w25,w25,w20
add w22,w22,w27 // e+=rot(a,5)
ror w24,w24,#2
- eor w5,w5,w19
+ eor w5,w5,w19
add w21,w21,w4 // future e+=X[i]
add w22,w22,w25 // e+=F(b,c,d)
- ror w5,w5,#31
- eor w6,w6,w8
+ ror w5,w5,#31
+ eor w6,w6,w8
eor w25,w20,w23
ror w27,w22,#27
add w20,w20,w28 // future e+=K
- eor w6,w6,w14
+ eor w6,w6,w14
eor w25,w25,w24
add w21,w21,w27 // e+=rot(a,5)
ror w23,w23,#2
- eor w6,w6,w3
+ eor w6,w6,w3
add w20,w20,w5 // future e+=X[i]
add w21,w21,w25 // e+=F(b,c,d)
- ror w6,w6,#31
- eor w7,w7,w9
+ ror w6,w6,#31
+ eor w7,w7,w9
eor w25,w24,w22
ror w27,w21,#27
add w24,w24,w28 // future e+=K
- eor w7,w7,w15
+ eor w7,w7,w15
eor w25,w25,w23
add w20,w20,w27 // e+=rot(a,5)
ror w22,w22,#2
- eor w7,w7,w4
+ eor w7,w7,w4
add w24,w24,w6 // future e+=X[i]
add w20,w20,w25 // e+=F(b,c,d)
- ror w7,w7,#31
- eor w8,w8,w10
+ ror w7,w7,#31
+ eor w8,w8,w10
eor w25,w23,w21
ror w27,w20,#27
add w23,w23,w28 // future e+=K
- eor w8,w8,w16
+ eor w8,w8,w16
eor w25,w25,w22
add w24,w24,w27 // e+=rot(a,5)
ror w21,w21,#2
- eor w8,w8,w5
+ eor w8,w8,w5
add w23,w23,w7 // future e+=X[i]
add w24,w24,w25 // e+=F(b,c,d)
- ror w8,w8,#31
- eor w9,w9,w11
+ ror w8,w8,#31
+ eor w9,w9,w11
eor w25,w22,w20
ror w27,w24,#27
add w22,w22,w28 // future e+=K
- eor w9,w9,w17
+ eor w9,w9,w17
eor w25,w25,w21
add w23,w23,w27 // e+=rot(a,5)
ror w20,w20,#2
- eor w9,w9,w6
+ eor w9,w9,w6
add w22,w22,w8 // future e+=X[i]
add w23,w23,w25 // e+=F(b,c,d)
- ror w9,w9,#31
- eor w10,w10,w12
+ ror w9,w9,#31
+ eor w10,w10,w12
eor w25,w21,w24
ror w27,w23,#27
add w21,w21,w28 // future e+=K
- eor w10,w10,w19
+ eor w10,w10,w19
eor w25,w25,w20
add w22,w22,w27 // e+=rot(a,5)
ror w24,w24,#2
- eor w10,w10,w7
+ eor w10,w10,w7
add w21,w21,w9 // future e+=X[i]
add w22,w22,w25 // e+=F(b,c,d)
- ror w10,w10,#31
- eor w11,w11,w13
+ ror w10,w10,#31
+ eor w11,w11,w13
eor w25,w20,w23
ror w27,w22,#27
add w20,w20,w28 // future e+=K
- eor w11,w11,w3
+ eor w11,w11,w3
eor w25,w25,w24
add w21,w21,w27 // e+=rot(a,5)
ror w23,w23,#2
- eor w11,w11,w8
+ eor w11,w11,w8
add w20,w20,w10 // future e+=X[i]
add w21,w21,w25 // e+=F(b,c,d)
- ror w11,w11,#31
+ ror w11,w11,#31
movz w28,#0xbcdc
movk w28,#0x8f1b,lsl#16
- eor w12,w12,w14
+ eor w12,w12,w14
eor w25,w24,w22
ror w27,w21,#27
add w24,w24,w28 // future e+=K
- eor w12,w12,w4
+ eor w12,w12,w4
eor w25,w25,w23
add w20,w20,w27 // e+=rot(a,5)
ror w22,w22,#2
- eor w12,w12,w9
+ eor w12,w12,w9
add w24,w24,w11 // future e+=X[i]
add w20,w20,w25 // e+=F(b,c,d)
- ror w12,w12,#31
+ ror w12,w12,#31
orr w25,w21,w22
and w26,w21,w22
- eor w13,w13,w15
+ eor w13,w13,w15
ror w27,w20,#27
and w25,w25,w23
add w23,w23,w28 // future e+=K
- eor w13,w13,w5
+ eor w13,w13,w5
add w24,w24,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w21,w21,#2
- eor w13,w13,w10
+ eor w13,w13,w10
add w23,w23,w12 // future e+=X[i]
add w24,w24,w25 // e+=F(b,c,d)
- ror w13,w13,#31
+ ror w13,w13,#31
orr w25,w20,w21
and w26,w20,w21
- eor w14,w14,w16
+ eor w14,w14,w16
ror w27,w24,#27
and w25,w25,w22
add w22,w22,w28 // future e+=K
- eor w14,w14,w6
+ eor w14,w14,w6
add w23,w23,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w20,w20,#2
- eor w14,w14,w11
+ eor w14,w14,w11
add w22,w22,w13 // future e+=X[i]
add w23,w23,w25 // e+=F(b,c,d)
- ror w14,w14,#31
+ ror w14,w14,#31
orr w25,w24,w20
and w26,w24,w20
- eor w15,w15,w17
+ eor w15,w15,w17
ror w27,w23,#27
and w25,w25,w21
add w21,w21,w28 // future e+=K
- eor w15,w15,w7
+ eor w15,w15,w7
add w22,w22,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w24,w24,#2
- eor w15,w15,w12
+ eor w15,w15,w12
add w21,w21,w14 // future e+=X[i]
add w22,w22,w25 // e+=F(b,c,d)
- ror w15,w15,#31
+ ror w15,w15,#31
orr w25,w23,w24
and w26,w23,w24
- eor w16,w16,w19
+ eor w16,w16,w19
ror w27,w22,#27
and w25,w25,w20
add w20,w20,w28 // future e+=K
- eor w16,w16,w8
+ eor w16,w16,w8
add w21,w21,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w23,w23,#2
- eor w16,w16,w13
+ eor w16,w16,w13
add w20,w20,w15 // future e+=X[i]
add w21,w21,w25 // e+=F(b,c,d)
- ror w16,w16,#31
+ ror w16,w16,#31
orr w25,w22,w23
and w26,w22,w23
- eor w17,w17,w3
+ eor w17,w17,w3
ror w27,w21,#27
and w25,w25,w24
add w24,w24,w28 // future e+=K
- eor w17,w17,w9
+ eor w17,w17,w9
add w20,w20,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w22,w22,#2
- eor w17,w17,w14
+ eor w17,w17,w14
add w24,w24,w16 // future e+=X[i]
add w20,w20,w25 // e+=F(b,c,d)
- ror w17,w17,#31
+ ror w17,w17,#31
orr w25,w21,w22
and w26,w21,w22
- eor w19,w19,w4
+ eor w19,w19,w4
ror w27,w20,#27
and w25,w25,w23
add w23,w23,w28 // future e+=K
- eor w19,w19,w10
+ eor w19,w19,w10
add w24,w24,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w21,w21,#2
- eor w19,w19,w15
+ eor w19,w19,w15
add w23,w23,w17 // future e+=X[i]
add w24,w24,w25 // e+=F(b,c,d)
- ror w19,w19,#31
+ ror w19,w19,#31
orr w25,w20,w21
and w26,w20,w21
- eor w3,w3,w5
+ eor w3,w3,w5
ror w27,w24,#27
and w25,w25,w22
add w22,w22,w28 // future e+=K
- eor w3,w3,w11
+ eor w3,w3,w11
add w23,w23,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w20,w20,#2
- eor w3,w3,w16
+ eor w3,w3,w16
add w22,w22,w19 // future e+=X[i]
add w23,w23,w25 // e+=F(b,c,d)
- ror w3,w3,#31
+ ror w3,w3,#31
orr w25,w24,w20
and w26,w24,w20
- eor w4,w4,w6
+ eor w4,w4,w6
ror w27,w23,#27
and w25,w25,w21
add w21,w21,w28 // future e+=K
- eor w4,w4,w12
+ eor w4,w4,w12
add w22,w22,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w24,w24,#2
- eor w4,w4,w17
+ eor w4,w4,w17
add w21,w21,w3 // future e+=X[i]
add w22,w22,w25 // e+=F(b,c,d)
- ror w4,w4,#31
+ ror w4,w4,#31
orr w25,w23,w24
and w26,w23,w24
- eor w5,w5,w7
+ eor w5,w5,w7
ror w27,w22,#27
and w25,w25,w20
add w20,w20,w28 // future e+=K
- eor w5,w5,w13
+ eor w5,w5,w13
add w21,w21,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w23,w23,#2
- eor w5,w5,w19
+ eor w5,w5,w19
add w20,w20,w4 // future e+=X[i]
add w21,w21,w25 // e+=F(b,c,d)
- ror w5,w5,#31
+ ror w5,w5,#31
orr w25,w22,w23
and w26,w22,w23
- eor w6,w6,w8
+ eor w6,w6,w8
ror w27,w21,#27
and w25,w25,w24
add w24,w24,w28 // future e+=K
- eor w6,w6,w14
+ eor w6,w6,w14
add w20,w20,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w22,w22,#2
- eor w6,w6,w3
+ eor w6,w6,w3
add w24,w24,w5 // future e+=X[i]
add w20,w20,w25 // e+=F(b,c,d)
- ror w6,w6,#31
+ ror w6,w6,#31
orr w25,w21,w22
and w26,w21,w22
- eor w7,w7,w9
+ eor w7,w7,w9
ror w27,w20,#27
and w25,w25,w23
add w23,w23,w28 // future e+=K
- eor w7,w7,w15
+ eor w7,w7,w15
add w24,w24,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w21,w21,#2
- eor w7,w7,w4
+ eor w7,w7,w4
add w23,w23,w6 // future e+=X[i]
add w24,w24,w25 // e+=F(b,c,d)
- ror w7,w7,#31
+ ror w7,w7,#31
orr w25,w20,w21
and w26,w20,w21
- eor w8,w8,w10
+ eor w8,w8,w10
ror w27,w24,#27
and w25,w25,w22
add w22,w22,w28 // future e+=K
- eor w8,w8,w16
+ eor w8,w8,w16
add w23,w23,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w20,w20,#2
- eor w8,w8,w5
+ eor w8,w8,w5
add w22,w22,w7 // future e+=X[i]
add w23,w23,w25 // e+=F(b,c,d)
- ror w8,w8,#31
+ ror w8,w8,#31
orr w25,w24,w20
and w26,w24,w20
- eor w9,w9,w11
+ eor w9,w9,w11
ror w27,w23,#27
and w25,w25,w21
add w21,w21,w28 // future e+=K
- eor w9,w9,w17
+ eor w9,w9,w17
add w22,w22,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w24,w24,#2
- eor w9,w9,w6
+ eor w9,w9,w6
add w21,w21,w8 // future e+=X[i]
add w22,w22,w25 // e+=F(b,c,d)
- ror w9,w9,#31
+ ror w9,w9,#31
orr w25,w23,w24
and w26,w23,w24
- eor w10,w10,w12
+ eor w10,w10,w12
ror w27,w22,#27
and w25,w25,w20
add w20,w20,w28 // future e+=K
- eor w10,w10,w19
+ eor w10,w10,w19
add w21,w21,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w23,w23,#2
- eor w10,w10,w7
+ eor w10,w10,w7
add w20,w20,w9 // future e+=X[i]
add w21,w21,w25 // e+=F(b,c,d)
- ror w10,w10,#31
+ ror w10,w10,#31
orr w25,w22,w23
and w26,w22,w23
- eor w11,w11,w13
+ eor w11,w11,w13
ror w27,w21,#27
and w25,w25,w24
add w24,w24,w28 // future e+=K
- eor w11,w11,w3
+ eor w11,w11,w3
add w20,w20,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w22,w22,#2
- eor w11,w11,w8
+ eor w11,w11,w8
add w24,w24,w10 // future e+=X[i]
add w20,w20,w25 // e+=F(b,c,d)
- ror w11,w11,#31
+ ror w11,w11,#31
orr w25,w21,w22
and w26,w21,w22
- eor w12,w12,w14
+ eor w12,w12,w14
ror w27,w20,#27
and w25,w25,w23
add w23,w23,w28 // future e+=K
- eor w12,w12,w4
+ eor w12,w12,w4
add w24,w24,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w21,w21,#2
- eor w12,w12,w9
+ eor w12,w12,w9
add w23,w23,w11 // future e+=X[i]
add w24,w24,w25 // e+=F(b,c,d)
- ror w12,w12,#31
+ ror w12,w12,#31
orr w25,w20,w21
and w26,w20,w21
- eor w13,w13,w15
+ eor w13,w13,w15
ror w27,w24,#27
and w25,w25,w22
add w22,w22,w28 // future e+=K
- eor w13,w13,w5
+ eor w13,w13,w5
add w23,w23,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w20,w20,#2
- eor w13,w13,w10
+ eor w13,w13,w10
add w22,w22,w12 // future e+=X[i]
add w23,w23,w25 // e+=F(b,c,d)
- ror w13,w13,#31
+ ror w13,w13,#31
orr w25,w24,w20
and w26,w24,w20
- eor w14,w14,w16
+ eor w14,w14,w16
ror w27,w23,#27
and w25,w25,w21
add w21,w21,w28 // future e+=K
- eor w14,w14,w6
+ eor w14,w14,w6
add w22,w22,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w24,w24,#2
- eor w14,w14,w11
+ eor w14,w14,w11
add w21,w21,w13 // future e+=X[i]
add w22,w22,w25 // e+=F(b,c,d)
- ror w14,w14,#31
+ ror w14,w14,#31
orr w25,w23,w24
and w26,w23,w24
- eor w15,w15,w17
+ eor w15,w15,w17
ror w27,w22,#27
and w25,w25,w20
add w20,w20,w28 // future e+=K
- eor w15,w15,w7
+ eor w15,w15,w7
add w21,w21,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w23,w23,#2
- eor w15,w15,w12
+ eor w15,w15,w12
add w20,w20,w14 // future e+=X[i]
add w21,w21,w25 // e+=F(b,c,d)
- ror w15,w15,#31
+ ror w15,w15,#31
movz w28,#0xc1d6
movk w28,#0xca62,lsl#16
orr w25,w22,w23
and w26,w22,w23
- eor w16,w16,w19
+ eor w16,w16,w19
ror w27,w21,#27
and w25,w25,w24
add w24,w24,w28 // future e+=K
- eor w16,w16,w8
+ eor w16,w16,w8
add w20,w20,w27 // e+=rot(a,5)
orr w25,w25,w26
ror w22,w22,#2
- eor w16,w16,w13
+ eor w16,w16,w13
add w24,w24,w15 // future e+=X[i]
add w20,w20,w25 // e+=F(b,c,d)
- ror w16,w16,#31
- eor w17,w17,w3
+ ror w16,w16,#31
+ eor w17,w17,w3
eor w25,w23,w21
ror w27,w20,#27
add w23,w23,w28 // future e+=K
- eor w17,w17,w9
+ eor w17,w17,w9
eor w25,w25,w22
add w24,w24,w27 // e+=rot(a,5)
ror w21,w21,#2
- eor w17,w17,w14
+ eor w17,w17,w14
add w23,w23,w16 // future e+=X[i]
add w24,w24,w25 // e+=F(b,c,d)
- ror w17,w17,#31
- eor w19,w19,w4
+ ror w17,w17,#31
+ eor w19,w19,w4
eor w25,w22,w20
ror w27,w24,#27
add w22,w22,w28 // future e+=K
- eor w19,w19,w10
+ eor w19,w19,w10
eor w25,w25,w21
add w23,w23,w27 // e+=rot(a,5)
ror w20,w20,#2
- eor w19,w19,w15
+ eor w19,w19,w15
add w22,w22,w17 // future e+=X[i]
add w23,w23,w25 // e+=F(b,c,d)
- ror w19,w19,#31
- eor w3,w3,w5
+ ror w19,w19,#31
+ eor w3,w3,w5
eor w25,w21,w24
ror w27,w23,#27
add w21,w21,w28 // future e+=K
- eor w3,w3,w11
+ eor w3,w3,w11
eor w25,w25,w20
add w22,w22,w27 // e+=rot(a,5)
ror w24,w24,#2
- eor w3,w3,w16
+ eor w3,w3,w16
add w21,w21,w19 // future e+=X[i]
add w22,w22,w25 // e+=F(b,c,d)
- ror w3,w3,#31
- eor w4,w4,w6
+ ror w3,w3,#31
+ eor w4,w4,w6
eor w25,w20,w23
ror w27,w22,#27
add w20,w20,w28 // future e+=K
- eor w4,w4,w12
+ eor w4,w4,w12
eor w25,w25,w24
add w21,w21,w27 // e+=rot(a,5)
ror w23,w23,#2
- eor w4,w4,w17
+ eor w4,w4,w17
add w20,w20,w3 // future e+=X[i]
add w21,w21,w25 // e+=F(b,c,d)
- ror w4,w4,#31
- eor w5,w5,w7
+ ror w4,w4,#31
+ eor w5,w5,w7
eor w25,w24,w22
ror w27,w21,#27
add w24,w24,w28 // future e+=K
- eor w5,w5,w13
+ eor w5,w5,w13
eor w25,w25,w23
add w20,w20,w27 // e+=rot(a,5)
ror w22,w22,#2
- eor w5,w5,w19
+ eor w5,w5,w19
add w24,w24,w4 // future e+=X[i]
add w20,w20,w25 // e+=F(b,c,d)
- ror w5,w5,#31
- eor w6,w6,w8
+ ror w5,w5,#31
+ eor w6,w6,w8
eor w25,w23,w21
ror w27,w20,#27
add w23,w23,w28 // future e+=K
- eor w6,w6,w14
+ eor w6,w6,w14
eor w25,w25,w22
add w24,w24,w27 // e+=rot(a,5)
ror w21,w21,#2
- eor w6,w6,w3
+ eor w6,w6,w3
add w23,w23,w5 // future e+=X[i]
add w24,w24,w25 // e+=F(b,c,d)
- ror w6,w6,#31
- eor w7,w7,w9
+ ror w6,w6,#31
+ eor w7,w7,w9
eor w25,w22,w20
ror w27,w24,#27
add w22,w22,w28 // future e+=K
- eor w7,w7,w15
+ eor w7,w7,w15
eor w25,w25,w21
add w23,w23,w27 // e+=rot(a,5)
ror w20,w20,#2
- eor w7,w7,w4
+ eor w7,w7,w4
add w22,w22,w6 // future e+=X[i]
add w23,w23,w25 // e+=F(b,c,d)
- ror w7,w7,#31
- eor w8,w8,w10
+ ror w7,w7,#31
+ eor w8,w8,w10
eor w25,w21,w24
ror w27,w23,#27
add w21,w21,w28 // future e+=K
- eor w8,w8,w16
+ eor w8,w8,w16
eor w25,w25,w20
add w22,w22,w27 // e+=rot(a,5)
ror w24,w24,#2
- eor w8,w8,w5
+ eor w8,w8,w5
add w21,w21,w7 // future e+=X[i]
add w22,w22,w25 // e+=F(b,c,d)
- ror w8,w8,#31
- eor w9,w9,w11
+ ror w8,w8,#31
+ eor w9,w9,w11
eor w25,w20,w23
ror w27,w22,#27
add w20,w20,w28 // future e+=K
- eor w9,w9,w17
+ eor w9,w9,w17
eor w25,w25,w24
add w21,w21,w27 // e+=rot(a,5)
ror w23,w23,#2
- eor w9,w9,w6
+ eor w9,w9,w6
add w20,w20,w8 // future e+=X[i]
add w21,w21,w25 // e+=F(b,c,d)
- ror w9,w9,#31
- eor w10,w10,w12
+ ror w9,w9,#31
+ eor w10,w10,w12
eor w25,w24,w22
ror w27,w21,#27
add w24,w24,w28 // future e+=K
- eor w10,w10,w19
+ eor w10,w10,w19
eor w25,w25,w23
add w20,w20,w27 // e+=rot(a,5)
ror w22,w22,#2
- eor w10,w10,w7
+ eor w10,w10,w7
add w24,w24,w9 // future e+=X[i]
add w20,w20,w25 // e+=F(b,c,d)
- ror w10,w10,#31
- eor w11,w11,w13
+ ror w10,w10,#31
+ eor w11,w11,w13
eor w25,w23,w21
ror w27,w20,#27
add w23,w23,w28 // future e+=K
- eor w11,w11,w3
+ eor w11,w11,w3
eor w25,w25,w22
add w24,w24,w27 // e+=rot(a,5)
ror w21,w21,#2
- eor w11,w11,w8
+ eor w11,w11,w8
add w23,w23,w10 // future e+=X[i]
add w24,w24,w25 // e+=F(b,c,d)
- ror w11,w11,#31
- eor w12,w12,w14
+ ror w11,w11,#31
+ eor w12,w12,w14
eor w25,w22,w20
ror w27,w24,#27
add w22,w22,w28 // future e+=K
- eor w12,w12,w4
+ eor w12,w12,w4
eor w25,w25,w21
add w23,w23,w27 // e+=rot(a,5)
ror w20,w20,#2
- eor w12,w12,w9
+ eor w12,w12,w9
add w22,w22,w11 // future e+=X[i]
add w23,w23,w25 // e+=F(b,c,d)
- ror w12,w12,#31
- eor w13,w13,w15
+ ror w12,w12,#31
+ eor w13,w13,w15
eor w25,w21,w24
ror w27,w23,#27
add w21,w21,w28 // future e+=K
- eor w13,w13,w5
+ eor w13,w13,w5
eor w25,w25,w20
add w22,w22,w27 // e+=rot(a,5)
ror w24,w24,#2
- eor w13,w13,w10
+ eor w13,w13,w10
add w21,w21,w12 // future e+=X[i]
add w22,w22,w25 // e+=F(b,c,d)
- ror w13,w13,#31
- eor w14,w14,w16
+ ror w13,w13,#31
+ eor w14,w14,w16
eor w25,w20,w23
ror w27,w22,#27
add w20,w20,w28 // future e+=K
- eor w14,w14,w6
+ eor w14,w14,w6
eor w25,w25,w24
add w21,w21,w27 // e+=rot(a,5)
ror w23,w23,#2
- eor w14,w14,w11
+ eor w14,w14,w11
add w20,w20,w13 // future e+=X[i]
add w21,w21,w25 // e+=F(b,c,d)
- ror w14,w14,#31
- eor w15,w15,w17
+ ror w14,w14,#31
+ eor w15,w15,w17
eor w25,w24,w22
ror w27,w21,#27
add w24,w24,w28 // future e+=K
- eor w15,w15,w7
+ eor w15,w15,w7
eor w25,w25,w23
add w20,w20,w27 // e+=rot(a,5)
ror w22,w22,#2
- eor w15,w15,w12
+ eor w15,w15,w12
add w24,w24,w14 // future e+=X[i]
add w20,w20,w25 // e+=F(b,c,d)
- ror w15,w15,#31
- eor w16,w16,w19
+ ror w15,w15,#31
+ eor w16,w16,w19
eor w25,w23,w21
ror w27,w20,#27
add w23,w23,w28 // future e+=K
- eor w16,w16,w8
+ eor w16,w16,w8
eor w25,w25,w22
add w24,w24,w27 // e+=rot(a,5)
ror w21,w21,#2
- eor w16,w16,w13
+ eor w16,w16,w13
add w23,w23,w15 // future e+=X[i]
add w24,w24,w25 // e+=F(b,c,d)
- ror w16,w16,#31
- eor w17,w17,w3
+ ror w16,w16,#31
+ eor w17,w17,w3
eor w25,w22,w20
ror w27,w24,#27
add w22,w22,w28 // future e+=K
- eor w17,w17,w9
+ eor w17,w17,w9
eor w25,w25,w21
add w23,w23,w27 // e+=rot(a,5)
ror w20,w20,#2
- eor w17,w17,w14
+ eor w17,w17,w14
add w22,w22,w16 // future e+=X[i]
add w23,w23,w25 // e+=F(b,c,d)
- ror w17,w17,#31
- eor w19,w19,w4
+ ror w17,w17,#31
+ eor w19,w19,w4
eor w25,w21,w24
ror w27,w23,#27
add w21,w21,w28 // future e+=K
- eor w19,w19,w10
+ eor w19,w19,w10
eor w25,w25,w20
add w22,w22,w27 // e+=rot(a,5)
ror w24,w24,#2
- eor w19,w19,w15
+ eor w19,w19,w15
add w21,w21,w17 // future e+=X[i]
add w22,w22,w25 // e+=F(b,c,d)
- ror w19,w19,#31
+ ror w19,w19,#31
ldp w4,w5,[x0]
eor w25,w20,w23
ror w27,w22,#27
@@ -1080,10 +1081,10 @@ sha1_block_armv8:
ld1 {v0.4s},[x0],#16
ld1 {v1.s}[0],[x0]
sub x0,x0,#16
- ld1 {v16.4s-v19.4s},[x4]
+ ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x4]
.Loop_hw:
- ld1 {v4.16b-v7.16b},[x1],#64
+ ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64
sub x2,x2,#1
rev32 v4.16b,v4.16b
rev32 v5.16b,v5.16b
@@ -1094,98 +1095,98 @@ sha1_block_armv8:
add v21.4s,v16.4s,v5.4s
rev32 v7.16b,v7.16b
- .inst 0x5e280803 //sha1h v3.16b,v0.16b
- .inst 0x5e140020 //sha1c v0.16b,v1.16b,v20.4s // 0
+.inst 0x5e280803 //sha1h v3.16b,v0.16b
+.inst 0x5e140020 //sha1c v0.16b,v1.16b,v20.4s // 0
add v20.4s,v16.4s,v6.4s
- .inst 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b
- .inst 0x5e280802 //sha1h v2.16b,v0.16b // 1
- .inst 0x5e150060 //sha1c v0.16b,v3.16b,v21.4s
+.inst 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b
+.inst 0x5e280802 //sha1h v2.16b,v0.16b // 1
+.inst 0x5e150060 //sha1c v0.16b,v3.16b,v21.4s
add v21.4s,v16.4s,v7.4s
- .inst 0x5e2818e4 //sha1su1 v4.16b,v7.16b
- .inst 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b
- .inst 0x5e280803 //sha1h v3.16b,v0.16b // 2
- .inst 0x5e140040 //sha1c v0.16b,v2.16b,v20.4s
+.inst 0x5e2818e4 //sha1su1 v4.16b,v7.16b
+.inst 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b
+.inst 0x5e280803 //sha1h v3.16b,v0.16b // 2
+.inst 0x5e140040 //sha1c v0.16b,v2.16b,v20.4s
add v20.4s,v16.4s,v4.4s
- .inst 0x5e281885 //sha1su1 v5.16b,v4.16b
- .inst 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b
- .inst 0x5e280802 //sha1h v2.16b,v0.16b // 3
- .inst 0x5e150060 //sha1c v0.16b,v3.16b,v21.4s
+.inst 0x5e281885 //sha1su1 v5.16b,v4.16b
+.inst 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b
+.inst 0x5e280802 //sha1h v2.16b,v0.16b // 3
+.inst 0x5e150060 //sha1c v0.16b,v3.16b,v21.4s
add v21.4s,v17.4s,v5.4s
- .inst 0x5e2818a6 //sha1su1 v6.16b,v5.16b
- .inst 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b
- .inst 0x5e280803 //sha1h v3.16b,v0.16b // 4
- .inst 0x5e140040 //sha1c v0.16b,v2.16b,v20.4s
+.inst 0x5e2818a6 //sha1su1 v6.16b,v5.16b
+.inst 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b
+.inst 0x5e280803 //sha1h v3.16b,v0.16b // 4
+.inst 0x5e140040 //sha1c v0.16b,v2.16b,v20.4s
add v20.4s,v17.4s,v6.4s
- .inst 0x5e2818c7 //sha1su1 v7.16b,v6.16b
- .inst 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b
- .inst 0x5e280802 //sha1h v2.16b,v0.16b // 5
- .inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
+.inst 0x5e2818c7 //sha1su1 v7.16b,v6.16b
+.inst 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b
+.inst 0x5e280802 //sha1h v2.16b,v0.16b // 5
+.inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
add v21.4s,v17.4s,v7.4s
- .inst 0x5e2818e4 //sha1su1 v4.16b,v7.16b
- .inst 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b
- .inst 0x5e280803 //sha1h v3.16b,v0.16b // 6
- .inst 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s
+.inst 0x5e2818e4 //sha1su1 v4.16b,v7.16b
+.inst 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b
+.inst 0x5e280803 //sha1h v3.16b,v0.16b // 6
+.inst 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s
add v20.4s,v17.4s,v4.4s
- .inst 0x5e281885 //sha1su1 v5.16b,v4.16b
- .inst 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b
- .inst 0x5e280802 //sha1h v2.16b,v0.16b // 7
- .inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
+.inst 0x5e281885 //sha1su1 v5.16b,v4.16b
+.inst 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b
+.inst 0x5e280802 //sha1h v2.16b,v0.16b // 7
+.inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
add v21.4s,v17.4s,v5.4s
- .inst 0x5e2818a6 //sha1su1 v6.16b,v5.16b
- .inst 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b
- .inst 0x5e280803 //sha1h v3.16b,v0.16b // 8
- .inst 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s
+.inst 0x5e2818a6 //sha1su1 v6.16b,v5.16b
+.inst 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b
+.inst 0x5e280803 //sha1h v3.16b,v0.16b // 8
+.inst 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s
add v20.4s,v18.4s,v6.4s
- .inst 0x5e2818c7 //sha1su1 v7.16b,v6.16b
- .inst 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b
- .inst 0x5e280802 //sha1h v2.16b,v0.16b // 9
- .inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
+.inst 0x5e2818c7 //sha1su1 v7.16b,v6.16b
+.inst 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b
+.inst 0x5e280802 //sha1h v2.16b,v0.16b // 9
+.inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
add v21.4s,v18.4s,v7.4s
- .inst 0x5e2818e4 //sha1su1 v4.16b,v7.16b
- .inst 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b
- .inst 0x5e280803 //sha1h v3.16b,v0.16b // 10
- .inst 0x5e142040 //sha1m v0.16b,v2.16b,v20.4s
+.inst 0x5e2818e4 //sha1su1 v4.16b,v7.16b
+.inst 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b
+.inst 0x5e280803 //sha1h v3.16b,v0.16b // 10
+.inst 0x5e142040 //sha1m v0.16b,v2.16b,v20.4s
add v20.4s,v18.4s,v4.4s
- .inst 0x5e281885 //sha1su1 v5.16b,v4.16b
- .inst 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b
- .inst 0x5e280802 //sha1h v2.16b,v0.16b // 11
- .inst 0x5e152060 //sha1m v0.16b,v3.16b,v21.4s
+.inst 0x5e281885 //sha1su1 v5.16b,v4.16b
+.inst 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b
+.inst 0x5e280802 //sha1h v2.16b,v0.16b // 11
+.inst 0x5e152060 //sha1m v0.16b,v3.16b,v21.4s
add v21.4s,v18.4s,v5.4s
- .inst 0x5e2818a6 //sha1su1 v6.16b,v5.16b
- .inst 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b
- .inst 0x5e280803 //sha1h v3.16b,v0.16b // 12
- .inst 0x5e142040 //sha1m v0.16b,v2.16b,v20.4s
+.inst 0x5e2818a6 //sha1su1 v6.16b,v5.16b
+.inst 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b
+.inst 0x5e280803 //sha1h v3.16b,v0.16b // 12
+.inst 0x5e142040 //sha1m v0.16b,v2.16b,v20.4s
add v20.4s,v18.4s,v6.4s
- .inst 0x5e2818c7 //sha1su1 v7.16b,v6.16b
- .inst 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b
- .inst 0x5e280802 //sha1h v2.16b,v0.16b // 13
- .inst 0x5e152060 //sha1m v0.16b,v3.16b,v21.4s
+.inst 0x5e2818c7 //sha1su1 v7.16b,v6.16b
+.inst 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b
+.inst 0x5e280802 //sha1h v2.16b,v0.16b // 13
+.inst 0x5e152060 //sha1m v0.16b,v3.16b,v21.4s
add v21.4s,v19.4s,v7.4s
- .inst 0x5e2818e4 //sha1su1 v4.16b,v7.16b
- .inst 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b
- .inst 0x5e280803 //sha1h v3.16b,v0.16b // 14
- .inst 0x5e142040 //sha1m v0.16b,v2.16b,v20.4s
+.inst 0x5e2818e4 //sha1su1 v4.16b,v7.16b
+.inst 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b
+.inst 0x5e280803 //sha1h v3.16b,v0.16b // 14
+.inst 0x5e142040 //sha1m v0.16b,v2.16b,v20.4s
add v20.4s,v19.4s,v4.4s
- .inst 0x5e281885 //sha1su1 v5.16b,v4.16b
- .inst 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b
- .inst 0x5e280802 //sha1h v2.16b,v0.16b // 15
- .inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
+.inst 0x5e281885 //sha1su1 v5.16b,v4.16b
+.inst 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b
+.inst 0x5e280802 //sha1h v2.16b,v0.16b // 15
+.inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
add v21.4s,v19.4s,v5.4s
- .inst 0x5e2818a6 //sha1su1 v6.16b,v5.16b
- .inst 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b
- .inst 0x5e280803 //sha1h v3.16b,v0.16b // 16
- .inst 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s
+.inst 0x5e2818a6 //sha1su1 v6.16b,v5.16b
+.inst 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b
+.inst 0x5e280803 //sha1h v3.16b,v0.16b // 16
+.inst 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s
add v20.4s,v19.4s,v6.4s
- .inst 0x5e2818c7 //sha1su1 v7.16b,v6.16b
- .inst 0x5e280802 //sha1h v2.16b,v0.16b // 17
- .inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
+.inst 0x5e2818c7 //sha1su1 v7.16b,v6.16b
+.inst 0x5e280802 //sha1h v2.16b,v0.16b // 17
+.inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
add v21.4s,v19.4s,v7.4s
- .inst 0x5e280803 //sha1h v3.16b,v0.16b // 18
- .inst 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s
+.inst 0x5e280803 //sha1h v3.16b,v0.16b // 18
+.inst 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s
- .inst 0x5e280802 //sha1h v2.16b,v0.16b // 19
- .inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
+.inst 0x5e280802 //sha1h v2.16b,v0.16b // 19
+.inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
add v1.4s,v1.4s,v2.4s
add v0.4s,v0.4s,v22.4s
@@ -1206,6 +1207,7 @@ sha1_block_armv8:
.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 //K_60_79
.LOPENSSL_armcap_P:
.quad OPENSSL_armcap_P-.
-.asciz "SHA1 block transform for ARMv8, CRYPTOGAMS by <appro@openssl.org>"
+.byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
+.align 2
.align 2
.comm OPENSSL_armcap_P,4,4
diff --git a/linux-aarch64/crypto/sha/sha256-armv8.S b/linux-aarch64/crypto/sha/sha256-armv8.S
index bd43b1f..ec572e9 100644
--- a/linux-aarch64/crypto/sha/sha256-armv8.S
+++ b/linux-aarch64/crypto/sha/sha256-armv8.S
@@ -2,6 +2,7 @@
.text
+
.globl sha256_block_data_order
.type sha256_block_data_order,%function
.align 6
@@ -27,7 +28,7 @@ sha256_block_data_order:
ldp w24,w25,[x0,#4*4]
add x2,x1,x2,lsl#6 // end of input
ldp w26,w27,[x0,#6*4]
- adr x30,K256
+ adr x30,.LK256
stp x0,x2,[x29,#96]
.Loop:
@@ -975,167 +976,168 @@ sha256_block_data_order:
.size sha256_block_data_order,.-sha256_block_data_order
.align 6
-.type K256,%object
-K256:
- .long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
- .long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
- .long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
- .long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
- .long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
- .long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
- .long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
- .long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
- .long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
- .long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
- .long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
- .long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
- .long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
- .long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
- .long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
- .long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
- .long 0 //terminator
-.size K256,.-K256
+.type .LK256,%object
+.LK256:
+.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
+.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
+.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
+.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
+.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
+.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
+.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
+.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
+.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
+.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
+.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
+.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
+.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
+.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
+.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
+.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
+.long 0 //terminator
+.size .LK256,.-.LK256
.align 3
.LOPENSSL_armcap_P:
- .quad OPENSSL_armcap_P-.
-.asciz "SHA256 block transform for ARMv8, CRYPTOGAMS by <appro@openssl.org>"
+.quad OPENSSL_armcap_P-.
+.byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
+.align 2
.align 2
.type sha256_block_armv8,%function
.align 6
sha256_block_armv8:
.Lv8_entry:
- stp x29,x30,[sp,#-16]!
- add x29,sp,#0
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
- ld1 {v0.4s,v1.4s},[x0]
- adr x3,K256
+ ld1 {v0.4s,v1.4s},[x0]
+ adr x3,.LK256
.Loop_hw:
- ld1 {v4.16b-v7.16b},[x1],#64
- sub x2,x2,#1
- ld1 {v16.4s},[x3],#16
- rev32 v4.16b,v4.16b
- rev32 v5.16b,v5.16b
- rev32 v6.16b,v6.16b
- rev32 v7.16b,v7.16b
- orr v18.16b,v0.16b,v0.16b // offload
- orr v19.16b,v1.16b,v1.16b
- ld1 {v17.4s},[x3],#16
- add v16.4s,v16.4s,v4.4s
- .inst 0x5e2828a4 //sha256su0 v4.16b,v5.16b
- orr v2.16b,v0.16b,v0.16b
- .inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
- .inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
- .inst 0x5e0760c4 //sha256su1 v4.16b,v6.16b,v7.16b
- ld1 {v16.4s},[x3],#16
- add v17.4s,v17.4s,v5.4s
- .inst 0x5e2828c5 //sha256su0 v5.16b,v6.16b
- orr v2.16b,v0.16b,v0.16b
- .inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
- .inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
- .inst 0x5e0460e5 //sha256su1 v5.16b,v7.16b,v4.16b
- ld1 {v17.4s},[x3],#16
- add v16.4s,v16.4s,v6.4s
- .inst 0x5e2828e6 //sha256su0 v6.16b,v7.16b
- orr v2.16b,v0.16b,v0.16b
- .inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
- .inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
- .inst 0x5e056086 //sha256su1 v6.16b,v4.16b,v5.16b
- ld1 {v16.4s},[x3],#16
- add v17.4s,v17.4s,v7.4s
- .inst 0x5e282887 //sha256su0 v7.16b,v4.16b
- orr v2.16b,v0.16b,v0.16b
- .inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
- .inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
- .inst 0x5e0660a7 //sha256su1 v7.16b,v5.16b,v6.16b
- ld1 {v17.4s},[x3],#16
- add v16.4s,v16.4s,v4.4s
- .inst 0x5e2828a4 //sha256su0 v4.16b,v5.16b
- orr v2.16b,v0.16b,v0.16b
- .inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
- .inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
- .inst 0x5e0760c4 //sha256su1 v4.16b,v6.16b,v7.16b
- ld1 {v16.4s},[x3],#16
- add v17.4s,v17.4s,v5.4s
- .inst 0x5e2828c5 //sha256su0 v5.16b,v6.16b
- orr v2.16b,v0.16b,v0.16b
- .inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
- .inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
- .inst 0x5e0460e5 //sha256su1 v5.16b,v7.16b,v4.16b
- ld1 {v17.4s},[x3],#16
- add v16.4s,v16.4s,v6.4s
- .inst 0x5e2828e6 //sha256su0 v6.16b,v7.16b
- orr v2.16b,v0.16b,v0.16b
- .inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
- .inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
- .inst 0x5e056086 //sha256su1 v6.16b,v4.16b,v5.16b
- ld1 {v16.4s},[x3],#16
- add v17.4s,v17.4s,v7.4s
- .inst 0x5e282887 //sha256su0 v7.16b,v4.16b
- orr v2.16b,v0.16b,v0.16b
- .inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
- .inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
- .inst 0x5e0660a7 //sha256su1 v7.16b,v5.16b,v6.16b
- ld1 {v17.4s},[x3],#16
- add v16.4s,v16.4s,v4.4s
- .inst 0x5e2828a4 //sha256su0 v4.16b,v5.16b
- orr v2.16b,v0.16b,v0.16b
- .inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
- .inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
- .inst 0x5e0760c4 //sha256su1 v4.16b,v6.16b,v7.16b
- ld1 {v16.4s},[x3],#16
- add v17.4s,v17.4s,v5.4s
- .inst 0x5e2828c5 //sha256su0 v5.16b,v6.16b
- orr v2.16b,v0.16b,v0.16b
- .inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
- .inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
- .inst 0x5e0460e5 //sha256su1 v5.16b,v7.16b,v4.16b
- ld1 {v17.4s},[x3],#16
- add v16.4s,v16.4s,v6.4s
- .inst 0x5e2828e6 //sha256su0 v6.16b,v7.16b
- orr v2.16b,v0.16b,v0.16b
- .inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
- .inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
- .inst 0x5e056086 //sha256su1 v6.16b,v4.16b,v5.16b
- ld1 {v16.4s},[x3],#16
- add v17.4s,v17.4s,v7.4s
- .inst 0x5e282887 //sha256su0 v7.16b,v4.16b
- orr v2.16b,v0.16b,v0.16b
- .inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
- .inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
- .inst 0x5e0660a7 //sha256su1 v7.16b,v5.16b,v6.16b
- ld1 {v17.4s},[x3],#16
- add v16.4s,v16.4s,v4.4s
- orr v2.16b,v0.16b,v0.16b
- .inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
- .inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
+ ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64
+ sub x2,x2,#1
+ ld1 {v16.4s},[x3],#16
+ rev32 v4.16b,v4.16b
+ rev32 v5.16b,v5.16b
+ rev32 v6.16b,v6.16b
+ rev32 v7.16b,v7.16b
+ orr v18.16b,v0.16b,v0.16b // offload
+ orr v19.16b,v1.16b,v1.16b
+ ld1 {v17.4s},[x3],#16
+ add v16.4s,v16.4s,v4.4s
+.inst 0x5e2828a4 //sha256su0 v4.16b,v5.16b
+ orr v2.16b,v0.16b,v0.16b
+.inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
+.inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
+.inst 0x5e0760c4 //sha256su1 v4.16b,v6.16b,v7.16b
+ ld1 {v16.4s},[x3],#16
+ add v17.4s,v17.4s,v5.4s
+.inst 0x5e2828c5 //sha256su0 v5.16b,v6.16b
+ orr v2.16b,v0.16b,v0.16b
+.inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
+.inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
+.inst 0x5e0460e5 //sha256su1 v5.16b,v7.16b,v4.16b
+ ld1 {v17.4s},[x3],#16
+ add v16.4s,v16.4s,v6.4s
+.inst 0x5e2828e6 //sha256su0 v6.16b,v7.16b
+ orr v2.16b,v0.16b,v0.16b
+.inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
+.inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
+.inst 0x5e056086 //sha256su1 v6.16b,v4.16b,v5.16b
+ ld1 {v16.4s},[x3],#16
+ add v17.4s,v17.4s,v7.4s
+.inst 0x5e282887 //sha256su0 v7.16b,v4.16b
+ orr v2.16b,v0.16b,v0.16b
+.inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
+.inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
+.inst 0x5e0660a7 //sha256su1 v7.16b,v5.16b,v6.16b
+ ld1 {v17.4s},[x3],#16
+ add v16.4s,v16.4s,v4.4s
+.inst 0x5e2828a4 //sha256su0 v4.16b,v5.16b
+ orr v2.16b,v0.16b,v0.16b
+.inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
+.inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
+.inst 0x5e0760c4 //sha256su1 v4.16b,v6.16b,v7.16b
+ ld1 {v16.4s},[x3],#16
+ add v17.4s,v17.4s,v5.4s
+.inst 0x5e2828c5 //sha256su0 v5.16b,v6.16b
+ orr v2.16b,v0.16b,v0.16b
+.inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
+.inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
+.inst 0x5e0460e5 //sha256su1 v5.16b,v7.16b,v4.16b
+ ld1 {v17.4s},[x3],#16
+ add v16.4s,v16.4s,v6.4s
+.inst 0x5e2828e6 //sha256su0 v6.16b,v7.16b
+ orr v2.16b,v0.16b,v0.16b
+.inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
+.inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
+.inst 0x5e056086 //sha256su1 v6.16b,v4.16b,v5.16b
+ ld1 {v16.4s},[x3],#16
+ add v17.4s,v17.4s,v7.4s
+.inst 0x5e282887 //sha256su0 v7.16b,v4.16b
+ orr v2.16b,v0.16b,v0.16b
+.inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
+.inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
+.inst 0x5e0660a7 //sha256su1 v7.16b,v5.16b,v6.16b
+ ld1 {v17.4s},[x3],#16
+ add v16.4s,v16.4s,v4.4s
+.inst 0x5e2828a4 //sha256su0 v4.16b,v5.16b
+ orr v2.16b,v0.16b,v0.16b
+.inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
+.inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
+.inst 0x5e0760c4 //sha256su1 v4.16b,v6.16b,v7.16b
+ ld1 {v16.4s},[x3],#16
+ add v17.4s,v17.4s,v5.4s
+.inst 0x5e2828c5 //sha256su0 v5.16b,v6.16b
+ orr v2.16b,v0.16b,v0.16b
+.inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
+.inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
+.inst 0x5e0460e5 //sha256su1 v5.16b,v7.16b,v4.16b
+ ld1 {v17.4s},[x3],#16
+ add v16.4s,v16.4s,v6.4s
+.inst 0x5e2828e6 //sha256su0 v6.16b,v7.16b
+ orr v2.16b,v0.16b,v0.16b
+.inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
+.inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
+.inst 0x5e056086 //sha256su1 v6.16b,v4.16b,v5.16b
+ ld1 {v16.4s},[x3],#16
+ add v17.4s,v17.4s,v7.4s
+.inst 0x5e282887 //sha256su0 v7.16b,v4.16b
+ orr v2.16b,v0.16b,v0.16b
+.inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
+.inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
+.inst 0x5e0660a7 //sha256su1 v7.16b,v5.16b,v6.16b
+ ld1 {v17.4s},[x3],#16
+ add v16.4s,v16.4s,v4.4s
+ orr v2.16b,v0.16b,v0.16b
+.inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
+.inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
- ld1 {v16.4s},[x3],#16
- add v17.4s,v17.4s,v5.4s
- orr v2.16b,v0.16b,v0.16b
- .inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
- .inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
+ ld1 {v16.4s},[x3],#16
+ add v17.4s,v17.4s,v5.4s
+ orr v2.16b,v0.16b,v0.16b
+.inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
+.inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
- ld1 {v17.4s},[x3]
- add v16.4s,v16.4s,v6.4s
- sub x3,x3,#64*4-16 // rewind
- orr v2.16b,v0.16b,v0.16b
- .inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
- .inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
+ ld1 {v17.4s},[x3]
+ add v16.4s,v16.4s,v6.4s
+ sub x3,x3,#64*4-16 // rewind
+ orr v2.16b,v0.16b,v0.16b
+.inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
+.inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
- add v17.4s,v17.4s,v7.4s
- orr v2.16b,v0.16b,v0.16b
- .inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
- .inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
+ add v17.4s,v17.4s,v7.4s
+ orr v2.16b,v0.16b,v0.16b
+.inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
+.inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
- add v0.4s,v0.4s,v18.4s
- add v1.4s,v1.4s,v19.4s
+ add v0.4s,v0.4s,v18.4s
+ add v1.4s,v1.4s,v19.4s
- cbnz x2,.Loop_hw
+ cbnz x2,.Loop_hw
- st1 {v0.4s,v1.4s},[x0]
+ st1 {v0.4s,v1.4s},[x0]
- ldr x29,[sp],#16
+ ldr x29,[sp],#16
ret
.size sha256_block_armv8,.-sha256_block_armv8
.comm OPENSSL_armcap_P,4,4
diff --git a/linux-aarch64/crypto/sha/sha512-armv8.S b/linux-aarch64/crypto/sha/sha512-armv8.S
index 6b0d194..8fc342a 100644
--- a/linux-aarch64/crypto/sha/sha512-armv8.S
+++ b/linux-aarch64/crypto/sha/sha512-armv8.S
@@ -2,6 +2,7 @@
.text
+
.globl sha512_block_data_order
.type sha512_block_data_order,%function
.align 6
@@ -21,7 +22,7 @@ sha512_block_data_order:
ldp x24,x25,[x0,#4*8]
add x2,x1,x2,lsl#7 // end of input
ldp x26,x27,[x0,#6*8]
- adr x30,K512
+ adr x30,.LK512
stp x0,x2,[x29,#96]
.Loop:
@@ -969,53 +970,54 @@ sha512_block_data_order:
.size sha512_block_data_order,.-sha512_block_data_order
.align 6
-.type K512,%object
-K512:
- .quad 0x428a2f98d728ae22,0x7137449123ef65cd
- .quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
- .quad 0x3956c25bf348b538,0x59f111f1b605d019
- .quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
- .quad 0xd807aa98a3030242,0x12835b0145706fbe
- .quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
- .quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
- .quad 0x9bdc06a725c71235,0xc19bf174cf692694
- .quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
- .quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
- .quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
- .quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
- .quad 0x983e5152ee66dfab,0xa831c66d2db43210
- .quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
- .quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
- .quad 0x06ca6351e003826f,0x142929670a0e6e70
- .quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
- .quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
- .quad 0x650a73548baf63de,0x766a0abb3c77b2a8
- .quad 0x81c2c92e47edaee6,0x92722c851482353b
- .quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
- .quad 0xc24b8b70d0f89791,0xc76c51a30654be30
- .quad 0xd192e819d6ef5218,0xd69906245565a910
- .quad 0xf40e35855771202a,0x106aa07032bbd1b8
- .quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
- .quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
- .quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
- .quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
- .quad 0x748f82ee5defb2fc,0x78a5636f43172f60
- .quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
- .quad 0x90befffa23631e28,0xa4506cebde82bde9
- .quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
- .quad 0xca273eceea26619c,0xd186b8c721c0c207
- .quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
- .quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
- .quad 0x113f9804bef90dae,0x1b710b35131c471b
- .quad 0x28db77f523047d84,0x32caab7b40c72493
- .quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
- .quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
- .quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817
- .quad 0 // terminator
-.size K512,.-K512
+.type .LK512,%object
+.LK512:
+.quad 0x428a2f98d728ae22,0x7137449123ef65cd
+.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
+.quad 0x3956c25bf348b538,0x59f111f1b605d019
+.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
+.quad 0xd807aa98a3030242,0x12835b0145706fbe
+.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
+.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
+.quad 0x9bdc06a725c71235,0xc19bf174cf692694
+.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
+.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
+.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
+.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
+.quad 0x983e5152ee66dfab,0xa831c66d2db43210
+.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
+.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
+.quad 0x06ca6351e003826f,0x142929670a0e6e70
+.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
+.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
+.quad 0x650a73548baf63de,0x766a0abb3c77b2a8
+.quad 0x81c2c92e47edaee6,0x92722c851482353b
+.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
+.quad 0xc24b8b70d0f89791,0xc76c51a30654be30
+.quad 0xd192e819d6ef5218,0xd69906245565a910
+.quad 0xf40e35855771202a,0x106aa07032bbd1b8
+.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
+.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
+.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
+.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
+.quad 0x748f82ee5defb2fc,0x78a5636f43172f60
+.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
+.quad 0x90befffa23631e28,0xa4506cebde82bde9
+.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
+.quad 0xca273eceea26619c,0xd186b8c721c0c207
+.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
+.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
+.quad 0x113f9804bef90dae,0x1b710b35131c471b
+.quad 0x28db77f523047d84,0x32caab7b40c72493
+.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
+.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
+.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817
+.quad 0 // terminator
+.size .LK512,.-.LK512
.align 3
.LOPENSSL_armcap_P:
- .quad OPENSSL_armcap_P-.
-.asciz "SHA512 block transform for ARMv8, CRYPTOGAMS by <appro@openssl.org>"
+.quad OPENSSL_armcap_P-.
+.byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
+.align 2
.align 2
.comm OPENSSL_armcap_P,4,4