summaryrefslogtreecommitdiff
path: root/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha
diff options
context:
space:
mode:
Diffstat (limited to 'deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha')
-rw-r--r--deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha1-ppc.s1117
-rw-r--r--deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha256-ppc.s1320
-rw-r--r--deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha256p8-ppc.s734
-rw-r--r--deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha512-ppc.s3070
-rw-r--r--deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha512p8-ppc.s832
5 files changed, 7073 insertions, 0 deletions
diff --git a/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha1-ppc.s b/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha1-ppc.s
new file mode 100644
index 0000000000..71f8a24dba
--- /dev/null
+++ b/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha1-ppc.s
@@ -0,0 +1,1117 @@
+.machine "any"
+.text
+
+.globl sha1_block_data_order
+.type sha1_block_data_order,@function
+.align 4
+sha1_block_data_order:
+ stwu 1,-160(1)
+ mflr 0
+ stw 15,92(1)
+ stw 16,96(1)
+ stw 17,100(1)
+ stw 18,104(1)
+ stw 19,108(1)
+ stw 20,112(1)
+ stw 21,116(1)
+ stw 22,120(1)
+ stw 23,124(1)
+ stw 24,128(1)
+ stw 25,132(1)
+ stw 26,136(1)
+ stw 27,140(1)
+ stw 28,144(1)
+ stw 29,148(1)
+ stw 30,152(1)
+ stw 31,156(1)
+ stw 0,164(1)
+ lwz 7,0(3)
+ lwz 8,4(3)
+ lwz 9,8(3)
+ lwz 10,12(3)
+ lwz 11,16(3)
+ andi. 0,4,3
+ bne .Lunaligned
+.Laligned:
+ mtctr 5
+ bl .Lsha1_block_private
+ b .Ldone
+
+
+
+
+
+
+
+.align 4
+.Lunaligned:
+ subfic 6,4,4096
+ andi. 6,6,4095
+ srwi. 6,6,6
+ beq .Lcross_page
+ .long 0x7c053040
+ ble .Laligned
+ mtctr 6
+ subfc 5,6,5
+ bl .Lsha1_block_private
+.Lcross_page:
+ li 6,16
+ mtctr 6
+ addi 20,1,24
+.Lmemcpy:
+ lbz 16,0(4)
+ lbz 17,1(4)
+ lbz 18,2(4)
+ lbz 19,3(4)
+ addi 4,4,4
+ stb 16,0(20)
+ stb 17,1(20)
+ stb 18,2(20)
+ stb 19,3(20)
+ addi 20,20,4
+ bdnz .Lmemcpy
+
+ stw 4,88(1)
+ li 6,1
+ addi 4,1,24
+ mtctr 6
+ bl .Lsha1_block_private
+ lwz 4,88(1)
+ addic. 5,5,-1
+ bne .Lunaligned
+
+.Ldone:
+ lwz 0,164(1)
+ lwz 15,92(1)
+ lwz 16,96(1)
+ lwz 17,100(1)
+ lwz 18,104(1)
+ lwz 19,108(1)
+ lwz 20,112(1)
+ lwz 21,116(1)
+ lwz 22,120(1)
+ lwz 23,124(1)
+ lwz 24,128(1)
+ lwz 25,132(1)
+ lwz 26,136(1)
+ lwz 27,140(1)
+ lwz 28,144(1)
+ lwz 29,148(1)
+ lwz 30,152(1)
+ lwz 31,156(1)
+ mtlr 0
+ addi 1,1,160
+ blr
+.long 0
+.byte 0,12,4,1,0x80,18,3,0
+.long 0
+.align 4
+.Lsha1_block_private:
+ lis 0,0x5a82
+ ori 0,0,0x7999
+ lwz 16,0(4)
+ lwz 17,4(4)
+ add 12,0,11
+ rotlwi 11,7,5
+ add 12,12,16
+ and 15,9,8
+ add 12,12,11
+ andc 6,10,8
+ rotlwi 8,8,30
+ or 15,15,6
+ add 12,12,15
+ lwz 18,8(4)
+ add 11,0,10
+ rotlwi 10,12,5
+ add 11,11,17
+ and 15,8,7
+ add 11,11,10
+ andc 6,9,7
+ rotlwi 7,7,30
+ or 15,15,6
+ add 11,11,15
+ lwz 19,12(4)
+ add 10,0,9
+ rotlwi 9,11,5
+ add 10,10,18
+ and 15,7,12
+ add 10,10,9
+ andc 6,8,12
+ rotlwi 12,12,30
+ or 15,15,6
+ add 10,10,15
+ lwz 20,16(4)
+ add 9,0,8
+ rotlwi 8,10,5
+ add 9,9,19
+ and 15,12,11
+ add 9,9,8
+ andc 6,7,11
+ rotlwi 11,11,30
+ or 15,15,6
+ add 9,9,15
+ lwz 21,20(4)
+ add 8,0,7
+ rotlwi 7,9,5
+ add 8,8,20
+ and 15,11,10
+ add 8,8,7
+ andc 6,12,10
+ rotlwi 10,10,30
+ or 15,15,6
+ add 8,8,15
+ lwz 22,24(4)
+ add 7,0,12
+ rotlwi 12,8,5
+ add 7,7,21
+ and 15,10,9
+ add 7,7,12
+ andc 6,11,9
+ rotlwi 9,9,30
+ or 15,15,6
+ add 7,7,15
+ lwz 23,28(4)
+ add 12,0,11
+ rotlwi 11,7,5
+ add 12,12,22
+ and 15,9,8
+ add 12,12,11
+ andc 6,10,8
+ rotlwi 8,8,30
+ or 15,15,6
+ add 12,12,15
+ lwz 24,32(4)
+ add 11,0,10
+ rotlwi 10,12,5
+ add 11,11,23
+ and 15,8,7
+ add 11,11,10
+ andc 6,9,7
+ rotlwi 7,7,30
+ or 15,15,6
+ add 11,11,15
+ lwz 25,36(4)
+ add 10,0,9
+ rotlwi 9,11,5
+ add 10,10,24
+ and 15,7,12
+ add 10,10,9
+ andc 6,8,12
+ rotlwi 12,12,30
+ or 15,15,6
+ add 10,10,15
+ lwz 26,40(4)
+ add 9,0,8
+ rotlwi 8,10,5
+ add 9,9,25
+ and 15,12,11
+ add 9,9,8
+ andc 6,7,11
+ rotlwi 11,11,30
+ or 15,15,6
+ add 9,9,15
+ lwz 27,44(4)
+ add 8,0,7
+ rotlwi 7,9,5
+ add 8,8,26
+ and 15,11,10
+ add 8,8,7
+ andc 6,12,10
+ rotlwi 10,10,30
+ or 15,15,6
+ add 8,8,15
+ lwz 28,48(4)
+ add 7,0,12
+ rotlwi 12,8,5
+ add 7,7,27
+ and 15,10,9
+ add 7,7,12
+ andc 6,11,9
+ rotlwi 9,9,30
+ or 15,15,6
+ add 7,7,15
+ lwz 29,52(4)
+ add 12,0,11
+ rotlwi 11,7,5
+ add 12,12,28
+ and 15,9,8
+ add 12,12,11
+ andc 6,10,8
+ rotlwi 8,8,30
+ or 15,15,6
+ add 12,12,15
+ lwz 30,56(4)
+ add 11,0,10
+ rotlwi 10,12,5
+ add 11,11,29
+ and 15,8,7
+ add 11,11,10
+ andc 6,9,7
+ rotlwi 7,7,30
+ or 15,15,6
+ add 11,11,15
+ lwz 31,60(4)
+ add 10,0,9
+ rotlwi 9,11,5
+ add 10,10,30
+ and 15,7,12
+ add 10,10,9
+ andc 6,8,12
+ rotlwi 12,12,30
+ or 15,15,6
+ add 10,10,15
+ add 9,0,8
+ rotlwi 8,10,5
+ xor 16,16,18
+ add 9,9,31
+ and 15,12,11
+ xor 16,16,24
+ add 9,9,8
+ andc 6,7,11
+ rotlwi 11,11,30
+ or 15,15,6
+ xor 16,16,29
+ add 9,9,15
+ rotlwi 16,16,1
+ add 8,0,7
+ rotlwi 7,9,5
+ xor 17,17,19
+ add 8,8,16
+ and 15,11,10
+ xor 17,17,25
+ add 8,8,7
+ andc 6,12,10
+ rotlwi 10,10,30
+ or 15,15,6
+ xor 17,17,30
+ add 8,8,15
+ rotlwi 17,17,1
+ add 7,0,12
+ rotlwi 12,8,5
+ xor 18,18,20
+ add 7,7,17
+ and 15,10,9
+ xor 18,18,26
+ add 7,7,12
+ andc 6,11,9
+ rotlwi 9,9,30
+ or 15,15,6
+ xor 18,18,31
+ add 7,7,15
+ rotlwi 18,18,1
+ add 12,0,11
+ rotlwi 11,7,5
+ xor 19,19,21
+ add 12,12,18
+ and 15,9,8
+ xor 19,19,27
+ add 12,12,11
+ andc 6,10,8
+ rotlwi 8,8,30
+ or 15,15,6
+ xor 19,19,16
+ add 12,12,15
+ rotlwi 19,19,1
+ add 11,0,10
+ rotlwi 10,12,5
+ xor 20,20,22
+ add 11,11,19
+ and 15,8,7
+ xor 20,20,28
+ add 11,11,10
+ andc 6,9,7
+ rotlwi 7,7,30
+ or 15,15,6
+ xor 20,20,17
+ add 11,11,15
+ rotlwi 20,20,1
+ lis 0,0x6ed9
+ ori 0,0,0xeba1
+ add 10,0,9
+ xor 15,12,8
+ rotlwi 9,11,5
+ xor 21,21,23
+ add 10,10,20
+ xor 15,15,7
+ xor 21,21,29
+ add 10,10,15
+ rotlwi 12,12,30
+ xor 21,21,18
+ add 10,10,9
+ rotlwi 21,21,1
+ add 9,0,8
+ xor 15,11,7
+ rotlwi 8,10,5
+ xor 22,22,24
+ add 9,9,21
+ xor 15,15,12
+ xor 22,22,30
+ add 9,9,15
+ rotlwi 11,11,30
+ xor 22,22,19
+ add 9,9,8
+ rotlwi 22,22,1
+ add 8,0,7
+ xor 15,10,12
+ rotlwi 7,9,5
+ xor 23,23,25
+ add 8,8,22
+ xor 15,15,11
+ xor 23,23,31
+ add 8,8,15
+ rotlwi 10,10,30
+ xor 23,23,20
+ add 8,8,7
+ rotlwi 23,23,1
+ add 7,0,12
+ xor 15,9,11
+ rotlwi 12,8,5
+ xor 24,24,26
+ add 7,7,23
+ xor 15,15,10
+ xor 24,24,16
+ add 7,7,15
+ rotlwi 9,9,30
+ xor 24,24,21
+ add 7,7,12
+ rotlwi 24,24,1
+ add 12,0,11
+ xor 15,8,10
+ rotlwi 11,7,5
+ xor 25,25,27
+ add 12,12,24
+ xor 15,15,9
+ xor 25,25,17
+ add 12,12,15
+ rotlwi 8,8,30
+ xor 25,25,22
+ add 12,12,11
+ rotlwi 25,25,1
+ add 11,0,10
+ xor 15,7,9
+ rotlwi 10,12,5
+ xor 26,26,28
+ add 11,11,25
+ xor 15,15,8
+ xor 26,26,18
+ add 11,11,15
+ rotlwi 7,7,30
+ xor 26,26,23
+ add 11,11,10
+ rotlwi 26,26,1
+ add 10,0,9
+ xor 15,12,8
+ rotlwi 9,11,5
+ xor 27,27,29
+ add 10,10,26
+ xor 15,15,7
+ xor 27,27,19
+ add 10,10,15
+ rotlwi 12,12,30
+ xor 27,27,24
+ add 10,10,9
+ rotlwi 27,27,1
+ add 9,0,8
+ xor 15,11,7
+ rotlwi 8,10,5
+ xor 28,28,30
+ add 9,9,27
+ xor 15,15,12
+ xor 28,28,20
+ add 9,9,15
+ rotlwi 11,11,30
+ xor 28,28,25
+ add 9,9,8
+ rotlwi 28,28,1
+ add 8,0,7
+ xor 15,10,12
+ rotlwi 7,9,5
+ xor 29,29,31
+ add 8,8,28
+ xor 15,15,11
+ xor 29,29,21
+ add 8,8,15
+ rotlwi 10,10,30
+ xor 29,29,26
+ add 8,8,7
+ rotlwi 29,29,1
+ add 7,0,12
+ xor 15,9,11
+ rotlwi 12,8,5
+ xor 30,30,16
+ add 7,7,29
+ xor 15,15,10
+ xor 30,30,22
+ add 7,7,15
+ rotlwi 9,9,30
+ xor 30,30,27
+ add 7,7,12
+ rotlwi 30,30,1
+ add 12,0,11
+ xor 15,8,10
+ rotlwi 11,7,5
+ xor 31,31,17
+ add 12,12,30
+ xor 15,15,9
+ xor 31,31,23
+ add 12,12,15
+ rotlwi 8,8,30
+ xor 31,31,28
+ add 12,12,11
+ rotlwi 31,31,1
+ add 11,0,10
+ xor 15,7,9
+ rotlwi 10,12,5
+ xor 16,16,18
+ add 11,11,31
+ xor 15,15,8
+ xor 16,16,24
+ add 11,11,15
+ rotlwi 7,7,30
+ xor 16,16,29
+ add 11,11,10
+ rotlwi 16,16,1
+ add 10,0,9
+ xor 15,12,8
+ rotlwi 9,11,5
+ xor 17,17,19
+ add 10,10,16
+ xor 15,15,7
+ xor 17,17,25
+ add 10,10,15
+ rotlwi 12,12,30
+ xor 17,17,30
+ add 10,10,9
+ rotlwi 17,17,1
+ add 9,0,8
+ xor 15,11,7
+ rotlwi 8,10,5
+ xor 18,18,20
+ add 9,9,17
+ xor 15,15,12
+ xor 18,18,26
+ add 9,9,15
+ rotlwi 11,11,30
+ xor 18,18,31
+ add 9,9,8
+ rotlwi 18,18,1
+ add 8,0,7
+ xor 15,10,12
+ rotlwi 7,9,5
+ xor 19,19,21
+ add 8,8,18
+ xor 15,15,11
+ xor 19,19,27
+ add 8,8,15
+ rotlwi 10,10,30
+ xor 19,19,16
+ add 8,8,7
+ rotlwi 19,19,1
+ add 7,0,12
+ xor 15,9,11
+ rotlwi 12,8,5
+ xor 20,20,22
+ add 7,7,19
+ xor 15,15,10
+ xor 20,20,28
+ add 7,7,15
+ rotlwi 9,9,30
+ xor 20,20,17
+ add 7,7,12
+ rotlwi 20,20,1
+ add 12,0,11
+ xor 15,8,10
+ rotlwi 11,7,5
+ xor 21,21,23
+ add 12,12,20
+ xor 15,15,9
+ xor 21,21,29
+ add 12,12,15
+ rotlwi 8,8,30
+ xor 21,21,18
+ add 12,12,11
+ rotlwi 21,21,1
+ add 11,0,10
+ xor 15,7,9
+ rotlwi 10,12,5
+ xor 22,22,24
+ add 11,11,21
+ xor 15,15,8
+ xor 22,22,30
+ add 11,11,15
+ rotlwi 7,7,30
+ xor 22,22,19
+ add 11,11,10
+ rotlwi 22,22,1
+ add 10,0,9
+ xor 15,12,8
+ rotlwi 9,11,5
+ xor 23,23,25
+ add 10,10,22
+ xor 15,15,7
+ xor 23,23,31
+ add 10,10,15
+ rotlwi 12,12,30
+ xor 23,23,20
+ add 10,10,9
+ rotlwi 23,23,1
+ add 9,0,8
+ xor 15,11,7
+ rotlwi 8,10,5
+ xor 24,24,26
+ add 9,9,23
+ xor 15,15,12
+ xor 24,24,16
+ add 9,9,15
+ rotlwi 11,11,30
+ xor 24,24,21
+ add 9,9,8
+ rotlwi 24,24,1
+ lis 0,0x8f1b
+ ori 0,0,0xbcdc
+ add 8,0,7
+ rotlwi 7,9,5
+ xor 25,25,27
+ add 8,8,24
+ and 15,10,11
+ xor 25,25,17
+ add 8,8,7
+ or 6,10,11
+ rotlwi 10,10,30
+ xor 25,25,22
+ and 6,6,12
+ or 15,15,6
+ rotlwi 25,25,1
+ add 8,8,15
+ add 7,0,12
+ rotlwi 12,8,5
+ xor 26,26,28
+ add 7,7,25
+ and 15,9,10
+ xor 26,26,18
+ add 7,7,12
+ or 6,9,10
+ rotlwi 9,9,30
+ xor 26,26,23
+ and 6,6,11
+ or 15,15,6
+ rotlwi 26,26,1
+ add 7,7,15
+ add 12,0,11
+ rotlwi 11,7,5
+ xor 27,27,29
+ add 12,12,26
+ and 15,8,9
+ xor 27,27,19
+ add 12,12,11
+ or 6,8,9
+ rotlwi 8,8,30
+ xor 27,27,24
+ and 6,6,10
+ or 15,15,6
+ rotlwi 27,27,1
+ add 12,12,15
+ add 11,0,10
+ rotlwi 10,12,5
+ xor 28,28,30
+ add 11,11,27
+ and 15,7,8
+ xor 28,28,20
+ add 11,11,10
+ or 6,7,8
+ rotlwi 7,7,30
+ xor 28,28,25
+ and 6,6,9
+ or 15,15,6
+ rotlwi 28,28,1
+ add 11,11,15
+ add 10,0,9
+ rotlwi 9,11,5
+ xor 29,29,31
+ add 10,10,28
+ and 15,12,7
+ xor 29,29,21
+ add 10,10,9
+ or 6,12,7
+ rotlwi 12,12,30
+ xor 29,29,26
+ and 6,6,8
+ or 15,15,6
+ rotlwi 29,29,1
+ add 10,10,15
+ add 9,0,8
+ rotlwi 8,10,5
+ xor 30,30,16
+ add 9,9,29
+ and 15,11,12
+ xor 30,30,22
+ add 9,9,8
+ or 6,11,12
+ rotlwi 11,11,30
+ xor 30,30,27
+ and 6,6,7
+ or 15,15,6
+ rotlwi 30,30,1
+ add 9,9,15
+ add 8,0,7
+ rotlwi 7,9,5
+ xor 31,31,17
+ add 8,8,30
+ and 15,10,11
+ xor 31,31,23
+ add 8,8,7
+ or 6,10,11
+ rotlwi 10,10,30
+ xor 31,31,28
+ and 6,6,12
+ or 15,15,6
+ rotlwi 31,31,1
+ add 8,8,15
+ add 7,0,12
+ rotlwi 12,8,5
+ xor 16,16,18
+ add 7,7,31
+ and 15,9,10
+ xor 16,16,24
+ add 7,7,12
+ or 6,9,10
+ rotlwi 9,9,30
+ xor 16,16,29
+ and 6,6,11
+ or 15,15,6
+ rotlwi 16,16,1
+ add 7,7,15
+ add 12,0,11
+ rotlwi 11,7,5
+ xor 17,17,19
+ add 12,12,16
+ and 15,8,9
+ xor 17,17,25
+ add 12,12,11
+ or 6,8,9
+ rotlwi 8,8,30
+ xor 17,17,30
+ and 6,6,10
+ or 15,15,6
+ rotlwi 17,17,1
+ add 12,12,15
+ add 11,0,10
+ rotlwi 10,12,5
+ xor 18,18,20
+ add 11,11,17
+ and 15,7,8
+ xor 18,18,26
+ add 11,11,10
+ or 6,7,8
+ rotlwi 7,7,30
+ xor 18,18,31
+ and 6,6,9
+ or 15,15,6
+ rotlwi 18,18,1
+ add 11,11,15
+ add 10,0,9
+ rotlwi 9,11,5
+ xor 19,19,21
+ add 10,10,18
+ and 15,12,7
+ xor 19,19,27
+ add 10,10,9
+ or 6,12,7
+ rotlwi 12,12,30
+ xor 19,19,16
+ and 6,6,8
+ or 15,15,6
+ rotlwi 19,19,1
+ add 10,10,15
+ add 9,0,8
+ rotlwi 8,10,5
+ xor 20,20,22
+ add 9,9,19
+ and 15,11,12
+ xor 20,20,28
+ add 9,9,8
+ or 6,11,12
+ rotlwi 11,11,30
+ xor 20,20,17
+ and 6,6,7
+ or 15,15,6
+ rotlwi 20,20,1
+ add 9,9,15
+ add 8,0,7
+ rotlwi 7,9,5
+ xor 21,21,23
+ add 8,8,20
+ and 15,10,11
+ xor 21,21,29
+ add 8,8,7
+ or 6,10,11
+ rotlwi 10,10,30
+ xor 21,21,18
+ and 6,6,12
+ or 15,15,6
+ rotlwi 21,21,1
+ add 8,8,15
+ add 7,0,12
+ rotlwi 12,8,5
+ xor 22,22,24
+ add 7,7,21
+ and 15,9,10
+ xor 22,22,30
+ add 7,7,12
+ or 6,9,10
+ rotlwi 9,9,30
+ xor 22,22,19
+ and 6,6,11
+ or 15,15,6
+ rotlwi 22,22,1
+ add 7,7,15
+ add 12,0,11
+ rotlwi 11,7,5
+ xor 23,23,25
+ add 12,12,22
+ and 15,8,9
+ xor 23,23,31
+ add 12,12,11
+ or 6,8,9
+ rotlwi 8,8,30
+ xor 23,23,20
+ and 6,6,10
+ or 15,15,6
+ rotlwi 23,23,1
+ add 12,12,15
+ add 11,0,10
+ rotlwi 10,12,5
+ xor 24,24,26
+ add 11,11,23
+ and 15,7,8
+ xor 24,24,16
+ add 11,11,10
+ or 6,7,8
+ rotlwi 7,7,30
+ xor 24,24,21
+ and 6,6,9
+ or 15,15,6
+ rotlwi 24,24,1
+ add 11,11,15
+ add 10,0,9
+ rotlwi 9,11,5
+ xor 25,25,27
+ add 10,10,24
+ and 15,12,7
+ xor 25,25,17
+ add 10,10,9
+ or 6,12,7
+ rotlwi 12,12,30
+ xor 25,25,22
+ and 6,6,8
+ or 15,15,6
+ rotlwi 25,25,1
+ add 10,10,15
+ add 9,0,8
+ rotlwi 8,10,5
+ xor 26,26,28
+ add 9,9,25
+ and 15,11,12
+ xor 26,26,18
+ add 9,9,8
+ or 6,11,12
+ rotlwi 11,11,30
+ xor 26,26,23
+ and 6,6,7
+ or 15,15,6
+ rotlwi 26,26,1
+ add 9,9,15
+ add 8,0,7
+ rotlwi 7,9,5
+ xor 27,27,29
+ add 8,8,26
+ and 15,10,11
+ xor 27,27,19
+ add 8,8,7
+ or 6,10,11
+ rotlwi 10,10,30
+ xor 27,27,24
+ and 6,6,12
+ or 15,15,6
+ rotlwi 27,27,1
+ add 8,8,15
+ add 7,0,12
+ rotlwi 12,8,5
+ xor 28,28,30
+ add 7,7,27
+ and 15,9,10
+ xor 28,28,20
+ add 7,7,12
+ or 6,9,10
+ rotlwi 9,9,30
+ xor 28,28,25
+ and 6,6,11
+ or 15,15,6
+ rotlwi 28,28,1
+ add 7,7,15
+ lis 0,0xca62
+ ori 0,0,0xc1d6
+ add 12,0,11
+ xor 15,8,10
+ rotlwi 11,7,5
+ xor 29,29,31
+ add 12,12,28
+ xor 15,15,9
+ xor 29,29,21
+ add 12,12,15
+ rotlwi 8,8,30
+ xor 29,29,26
+ add 12,12,11
+ rotlwi 29,29,1
+ add 11,0,10
+ xor 15,7,9
+ rotlwi 10,12,5
+ xor 30,30,16
+ add 11,11,29
+ xor 15,15,8
+ xor 30,30,22
+ add 11,11,15
+ rotlwi 7,7,30
+ xor 30,30,27
+ add 11,11,10
+ rotlwi 30,30,1
+ add 10,0,9
+ xor 15,12,8
+ rotlwi 9,11,5
+ xor 31,31,17
+ add 10,10,30
+ xor 15,15,7
+ xor 31,31,23
+ add 10,10,15
+ rotlwi 12,12,30
+ xor 31,31,28
+ add 10,10,9
+ rotlwi 31,31,1
+ add 9,0,8
+ xor 15,11,7
+ rotlwi 8,10,5
+ xor 16,16,18
+ add 9,9,31
+ xor 15,15,12
+ xor 16,16,24
+ add 9,9,15
+ rotlwi 11,11,30
+ xor 16,16,29
+ add 9,9,8
+ rotlwi 16,16,1
+ add 8,0,7
+ xor 15,10,12
+ rotlwi 7,9,5
+ xor 17,17,19
+ add 8,8,16
+ xor 15,15,11
+ xor 17,17,25
+ add 8,8,15
+ rotlwi 10,10,30
+ xor 17,17,30
+ add 8,8,7
+ rotlwi 17,17,1
+ add 7,0,12
+ xor 15,9,11
+ rotlwi 12,8,5
+ xor 18,18,20
+ add 7,7,17
+ xor 15,15,10
+ xor 18,18,26
+ add 7,7,15
+ rotlwi 9,9,30
+ xor 18,18,31
+ add 7,7,12
+ rotlwi 18,18,1
+ add 12,0,11
+ xor 15,8,10
+ rotlwi 11,7,5
+ xor 19,19,21
+ add 12,12,18
+ xor 15,15,9
+ xor 19,19,27
+ add 12,12,15
+ rotlwi 8,8,30
+ xor 19,19,16
+ add 12,12,11
+ rotlwi 19,19,1
+ add 11,0,10
+ xor 15,7,9
+ rotlwi 10,12,5
+ xor 20,20,22
+ add 11,11,19
+ xor 15,15,8
+ xor 20,20,28
+ add 11,11,15
+ rotlwi 7,7,30
+ xor 20,20,17
+ add 11,11,10
+ rotlwi 20,20,1
+ add 10,0,9
+ xor 15,12,8
+ rotlwi 9,11,5
+ xor 21,21,23
+ add 10,10,20
+ xor 15,15,7
+ xor 21,21,29
+ add 10,10,15
+ rotlwi 12,12,30
+ xor 21,21,18
+ add 10,10,9
+ rotlwi 21,21,1
+ add 9,0,8
+ xor 15,11,7
+ rotlwi 8,10,5
+ xor 22,22,24
+ add 9,9,21
+ xor 15,15,12
+ xor 22,22,30
+ add 9,9,15
+ rotlwi 11,11,30
+ xor 22,22,19
+ add 9,9,8
+ rotlwi 22,22,1
+ add 8,0,7
+ xor 15,10,12
+ rotlwi 7,9,5
+ xor 23,23,25
+ add 8,8,22
+ xor 15,15,11
+ xor 23,23,31
+ add 8,8,15
+ rotlwi 10,10,30
+ xor 23,23,20
+ add 8,8,7
+ rotlwi 23,23,1
+ add 7,0,12
+ xor 15,9,11
+ rotlwi 12,8,5
+ xor 24,24,26
+ add 7,7,23
+ xor 15,15,10
+ xor 24,24,16
+ add 7,7,15
+ rotlwi 9,9,30
+ xor 24,24,21
+ add 7,7,12
+ rotlwi 24,24,1
+ add 12,0,11
+ xor 15,8,10
+ rotlwi 11,7,5
+ xor 25,25,27
+ add 12,12,24
+ xor 15,15,9
+ xor 25,25,17
+ add 12,12,15
+ rotlwi 8,8,30
+ xor 25,25,22
+ add 12,12,11
+ rotlwi 25,25,1
+ add 11,0,10
+ xor 15,7,9
+ rotlwi 10,12,5
+ xor 26,26,28
+ add 11,11,25
+ xor 15,15,8
+ xor 26,26,18
+ add 11,11,15
+ rotlwi 7,7,30
+ xor 26,26,23
+ add 11,11,10
+ rotlwi 26,26,1
+ add 10,0,9
+ xor 15,12,8
+ rotlwi 9,11,5
+ xor 27,27,29
+ add 10,10,26
+ xor 15,15,7
+ xor 27,27,19
+ add 10,10,15
+ rotlwi 12,12,30
+ xor 27,27,24
+ add 10,10,9
+ rotlwi 27,27,1
+ add 9,0,8
+ xor 15,11,7
+ rotlwi 8,10,5
+ xor 28,28,30
+ add 9,9,27
+ xor 15,15,12
+ xor 28,28,20
+ add 9,9,15
+ rotlwi 11,11,30
+ xor 28,28,25
+ add 9,9,8
+ rotlwi 28,28,1
+ add 8,0,7
+ xor 15,10,12
+ rotlwi 7,9,5
+ xor 29,29,31
+ add 8,8,28
+ xor 15,15,11
+ xor 29,29,21
+ add 8,8,15
+ rotlwi 10,10,30
+ xor 29,29,26
+ add 8,8,7
+ rotlwi 29,29,1
+ add 7,0,12
+ xor 15,9,11
+ rotlwi 12,8,5
+ xor 30,30,16
+ add 7,7,29
+ xor 15,15,10
+ xor 30,30,22
+ add 7,7,15
+ rotlwi 9,9,30
+ xor 30,30,27
+ add 7,7,12
+ rotlwi 30,30,1
+ add 12,0,11
+ xor 15,8,10
+ rotlwi 11,7,5
+ xor 31,31,17
+ add 12,12,30
+ xor 15,15,9
+ xor 31,31,23
+ add 12,12,15
+ rotlwi 8,8,30
+ xor 31,31,28
+ add 12,12,11
+ rotlwi 31,31,1
+ add 11,0,10
+ xor 15,7,9
+ rotlwi 10,12,5
+ lwz 16,0(3)
+ add 11,11,31
+ xor 15,15,8
+ lwz 17,4(3)
+ add 11,11,15
+ rotlwi 7,7,30
+ lwz 18,8(3)
+ lwz 19,12(3)
+ add 11,11,10
+ lwz 20,16(3)
+ add 16,16,11
+ add 17,17,12
+ add 18,18,7
+ add 19,19,8
+ add 20,20,9
+ stw 16,0(3)
+ mr 7,16
+ stw 17,4(3)
+ mr 8,17
+ stw 18,8(3)
+ mr 9,18
+ stw 19,12(3)
+ mr 10,19
+ stw 20,16(3)
+ mr 11,20
+ addi 4,4,64
+ bdnz .Lsha1_block_private
+ blr
+.long 0
+.byte 0,12,0x14,0,0,0,0,0
+.size sha1_block_data_order,.-sha1_block_data_order
+.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,80,80,67,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,102,121,46,99,104,97,108,109,101,114,115,46,115,101,62,0
+.align 2
diff --git a/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha256-ppc.s b/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha256-ppc.s
new file mode 100644
index 0000000000..83c86c17fa
--- /dev/null
+++ b/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha256-ppc.s
@@ -0,0 +1,1320 @@
+.machine "any"
+.text
+
+.globl sha256_block_ppc
+.type sha256_block_ppc,@function
+.align 6
+sha256_block_ppc:
+ stwu 1,-192(1)
+ mflr 0
+ slwi 5,5,6
+
+ stw 3,104(1)
+
+ stw 14,120(1)
+ stw 15,124(1)
+ stw 16,128(1)
+ stw 17,132(1)
+ stw 18,136(1)
+ stw 19,140(1)
+ stw 20,144(1)
+ stw 21,148(1)
+ stw 22,152(1)
+ stw 23,156(1)
+ stw 24,160(1)
+ stw 25,164(1)
+ stw 26,168(1)
+ stw 27,172(1)
+ stw 28,176(1)
+ stw 29,180(1)
+ stw 30,184(1)
+ stw 31,188(1)
+ stw 0,196(1)
+ lwz 8,0(3)
+ mr 31,4
+ lwz 9,4(3)
+ lwz 10,8(3)
+ lwz 11,12(3)
+ lwz 12,16(3)
+ lwz 6,20(3)
+ lwz 14,24(3)
+ lwz 15,28(3)
+ bl .LPICmeup
+.LPICedup:
+ andi. 0,31,3
+ bne .Lunaligned
+.Laligned:
+ add 5,31,5
+ stw 5,96(1)
+ stw 31,100(1)
+ bl .Lsha2_block_private
+ b .Ldone
+
+
+
+
+
+
+
+.align 4
+.Lunaligned:
+ subfic 0,31,4096
+ andi. 0,0,4032
+ beq .Lcross_page
+ .long 0x7c050040
+ ble .Laligned
+ subfc 5,0,5
+ add 0,31,0
+ stw 5,92(1)
+ stw 0,96(1)
+ stw 31,100(1)
+ bl .Lsha2_block_private
+
+ lwz 5,92(1)
+.Lcross_page:
+ li 0,16
+ mtctr 0
+ addi 20,1,24
+.Lmemcpy:
+ lbz 16,0(31)
+ lbz 17,1(31)
+ lbz 18,2(31)
+ lbz 19,3(31)
+ addi 31,31,4
+ stb 16,0(20)
+ stb 17,1(20)
+ stb 18,2(20)
+ stb 19,3(20)
+ addi 20,20,4
+ bdnz .Lmemcpy
+ stw 31,88(1)
+ addi 0,1,88
+ addi 31,1,24
+ stw 5,92(1)
+ stw 0,96(1)
+ stw 31,100(1)
+ bl .Lsha2_block_private
+ lwz 31,88(1)
+ lwz 5,92(1)
+ addic. 5,5,-64
+ bne .Lunaligned
+
+.Ldone:
+ lwz 0,196(1)
+ lwz 14,120(1)
+ lwz 15,124(1)
+ lwz 16,128(1)
+ lwz 17,132(1)
+ lwz 18,136(1)
+ lwz 19,140(1)
+ lwz 20,144(1)
+ lwz 21,148(1)
+ lwz 22,152(1)
+ lwz 23,156(1)
+ lwz 24,160(1)
+ lwz 25,164(1)
+ lwz 26,168(1)
+ lwz 27,172(1)
+ lwz 28,176(1)
+ lwz 29,180(1)
+ lwz 30,184(1)
+ lwz 31,188(1)
+ mtlr 0
+ addi 1,1,192
+ blr
+.long 0
+.byte 0,12,4,1,0x80,18,3,0
+.long 0
+.align 4
+.Lsha2_block_private:
+ lwz 0,0(7)
+ lwz 16,0(31)
+ rotrwi 3,12,6
+ rotrwi 4,12,11
+ and 5,6,12
+ xor 3,3,4
+ add 15,15,0
+ andc 0,14,12
+ rotrwi 4,4,14
+ or 5,5,0
+ add 15,15,16
+ xor 3,3,4
+ add 15,15,5
+ add 15,15,3
+
+ rotrwi 3,8,2
+ rotrwi 4,8,13
+ and 5,8,9
+ and 0,8,10
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,9,10
+ xor 3,3,4
+ add 11,11,15
+ xor 5,5,0
+ lwz 0,4(7)
+ add 15,15,3
+ add 15,15,5
+
+ lwz 17,4(31)
+ rotrwi 3,11,6
+ rotrwi 4,11,11
+ and 5,12,11
+ xor 3,3,4
+ add 14,14,0
+ andc 0,6,11
+ rotrwi 4,4,14
+ or 5,5,0
+ add 14,14,17
+ xor 3,3,4
+ add 14,14,5
+ add 14,14,3
+
+ rotrwi 3,15,2
+ rotrwi 4,15,13
+ and 5,15,8
+ and 0,15,9
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,8,9
+ xor 3,3,4
+ add 10,10,14
+ xor 5,5,0
+ lwz 0,8(7)
+ add 14,14,3
+ add 14,14,5
+
+ lwz 18,8(31)
+ rotrwi 3,10,6
+ rotrwi 4,10,11
+ and 5,11,10
+ xor 3,3,4
+ add 6,6,0
+ andc 0,12,10
+ rotrwi 4,4,14
+ or 5,5,0
+ add 6,6,18
+ xor 3,3,4
+ add 6,6,5
+ add 6,6,3
+
+ rotrwi 3,14,2
+ rotrwi 4,14,13
+ and 5,14,15
+ and 0,14,8
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,15,8
+ xor 3,3,4
+ add 9,9,6
+ xor 5,5,0
+ lwz 0,12(7)
+ add 6,6,3
+ add 6,6,5
+
+ lwz 19,12(31)
+ rotrwi 3,9,6
+ rotrwi 4,9,11
+ and 5,10,9
+ xor 3,3,4
+ add 12,12,0
+ andc 0,11,9
+ rotrwi 4,4,14
+ or 5,5,0
+ add 12,12,19
+ xor 3,3,4
+ add 12,12,5
+ add 12,12,3
+
+ rotrwi 3,6,2
+ rotrwi 4,6,13
+ and 5,6,14
+ and 0,6,15
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,14,15
+ xor 3,3,4
+ add 8,8,12
+ xor 5,5,0
+ lwz 0,16(7)
+ add 12,12,3
+ add 12,12,5
+
+ lwz 20,16(31)
+ rotrwi 3,8,6
+ rotrwi 4,8,11
+ and 5,9,8
+ xor 3,3,4
+ add 11,11,0
+ andc 0,10,8
+ rotrwi 4,4,14
+ or 5,5,0
+ add 11,11,20
+ xor 3,3,4
+ add 11,11,5
+ add 11,11,3
+
+ rotrwi 3,12,2
+ rotrwi 4,12,13
+ and 5,12,6
+ and 0,12,14
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,6,14
+ xor 3,3,4
+ add 15,15,11
+ xor 5,5,0
+ lwz 0,20(7)
+ add 11,11,3
+ add 11,11,5
+
+ lwz 21,20(31)
+ rotrwi 3,15,6
+ rotrwi 4,15,11
+ and 5,8,15
+ xor 3,3,4
+ add 10,10,0
+ andc 0,9,15
+ rotrwi 4,4,14
+ or 5,5,0
+ add 10,10,21
+ xor 3,3,4
+ add 10,10,5
+ add 10,10,3
+
+ rotrwi 3,11,2
+ rotrwi 4,11,13
+ and 5,11,12
+ and 0,11,6
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,12,6
+ xor 3,3,4
+ add 14,14,10
+ xor 5,5,0
+ lwz 0,24(7)
+ add 10,10,3
+ add 10,10,5
+
+ lwz 22,24(31)
+ rotrwi 3,14,6
+ rotrwi 4,14,11
+ and 5,15,14
+ xor 3,3,4
+ add 9,9,0
+ andc 0,8,14
+ rotrwi 4,4,14
+ or 5,5,0
+ add 9,9,22
+ xor 3,3,4
+ add 9,9,5
+ add 9,9,3
+
+ rotrwi 3,10,2
+ rotrwi 4,10,13
+ and 5,10,11
+ and 0,10,12
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,11,12
+ xor 3,3,4
+ add 6,6,9
+ xor 5,5,0
+ lwz 0,28(7)
+ add 9,9,3
+ add 9,9,5
+
+ lwz 23,28(31)
+ rotrwi 3,6,6
+ rotrwi 4,6,11
+ and 5,14,6
+ xor 3,3,4
+ add 8,8,0
+ andc 0,15,6
+ rotrwi 4,4,14
+ or 5,5,0
+ add 8,8,23
+ xor 3,3,4
+ add 8,8,5
+ add 8,8,3
+
+ rotrwi 3,9,2
+ rotrwi 4,9,13
+ and 5,9,10
+ and 0,9,11
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,10,11
+ xor 3,3,4
+ add 12,12,8
+ xor 5,5,0
+ lwz 0,32(7)
+ add 8,8,3
+ add 8,8,5
+
+ lwz 24,32(31)
+ rotrwi 3,12,6
+ rotrwi 4,12,11
+ and 5,6,12
+ xor 3,3,4
+ add 15,15,0
+ andc 0,14,12
+ rotrwi 4,4,14
+ or 5,5,0
+ add 15,15,24
+ xor 3,3,4
+ add 15,15,5
+ add 15,15,3
+
+ rotrwi 3,8,2
+ rotrwi 4,8,13
+ and 5,8,9
+ and 0,8,10
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,9,10
+ xor 3,3,4
+ add 11,11,15
+ xor 5,5,0
+ lwz 0,36(7)
+ add 15,15,3
+ add 15,15,5
+
+ lwz 25,36(31)
+ rotrwi 3,11,6
+ rotrwi 4,11,11
+ and 5,12,11
+ xor 3,3,4
+ add 14,14,0
+ andc 0,6,11
+ rotrwi 4,4,14
+ or 5,5,0
+ add 14,14,25
+ xor 3,3,4
+ add 14,14,5
+ add 14,14,3
+
+ rotrwi 3,15,2
+ rotrwi 4,15,13
+ and 5,15,8
+ and 0,15,9
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,8,9
+ xor 3,3,4
+ add 10,10,14
+ xor 5,5,0
+ lwz 0,40(7)
+ add 14,14,3
+ add 14,14,5
+
+ lwz 26,40(31)
+ rotrwi 3,10,6
+ rotrwi 4,10,11
+ and 5,11,10
+ xor 3,3,4
+ add 6,6,0
+ andc 0,12,10
+ rotrwi 4,4,14
+ or 5,5,0
+ add 6,6,26
+ xor 3,3,4
+ add 6,6,5
+ add 6,6,3
+
+ rotrwi 3,14,2
+ rotrwi 4,14,13
+ and 5,14,15
+ and 0,14,8
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,15,8
+ xor 3,3,4
+ add 9,9,6
+ xor 5,5,0
+ lwz 0,44(7)
+ add 6,6,3
+ add 6,6,5
+
+ lwz 27,44(31)
+ rotrwi 3,9,6
+ rotrwi 4,9,11
+ and 5,10,9
+ xor 3,3,4
+ add 12,12,0
+ andc 0,11,9
+ rotrwi 4,4,14
+ or 5,5,0
+ add 12,12,27
+ xor 3,3,4
+ add 12,12,5
+ add 12,12,3
+
+ rotrwi 3,6,2
+ rotrwi 4,6,13
+ and 5,6,14
+ and 0,6,15
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,14,15
+ xor 3,3,4
+ add 8,8,12
+ xor 5,5,0
+ lwz 0,48(7)
+ add 12,12,3
+ add 12,12,5
+
+ lwz 28,48(31)
+ rotrwi 3,8,6
+ rotrwi 4,8,11
+ and 5,9,8
+ xor 3,3,4
+ add 11,11,0
+ andc 0,10,8
+ rotrwi 4,4,14
+ or 5,5,0
+ add 11,11,28
+ xor 3,3,4
+ add 11,11,5
+ add 11,11,3
+
+ rotrwi 3,12,2
+ rotrwi 4,12,13
+ and 5,12,6
+ and 0,12,14
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,6,14
+ xor 3,3,4
+ add 15,15,11
+ xor 5,5,0
+ lwz 0,52(7)
+ add 11,11,3
+ add 11,11,5
+
+ lwz 29,52(31)
+ rotrwi 3,15,6
+ rotrwi 4,15,11
+ and 5,8,15
+ xor 3,3,4
+ add 10,10,0
+ andc 0,9,15
+ rotrwi 4,4,14
+ or 5,5,0
+ add 10,10,29
+ xor 3,3,4
+ add 10,10,5
+ add 10,10,3
+
+ rotrwi 3,11,2
+ rotrwi 4,11,13
+ and 5,11,12
+ and 0,11,6
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,12,6
+ xor 3,3,4
+ add 14,14,10
+ xor 5,5,0
+ lwz 0,56(7)
+ add 10,10,3
+ add 10,10,5
+
+ lwz 30,56(31)
+ rotrwi 3,14,6
+ rotrwi 4,14,11
+ and 5,15,14
+ xor 3,3,4
+ add 9,9,0
+ andc 0,8,14
+ rotrwi 4,4,14
+ or 5,5,0
+ add 9,9,30
+ xor 3,3,4
+ add 9,9,5
+ add 9,9,3
+
+ rotrwi 3,10,2
+ rotrwi 4,10,13
+ and 5,10,11
+ and 0,10,12
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,11,12
+ xor 3,3,4
+ add 6,6,9
+ xor 5,5,0
+ lwz 0,60(7)
+ add 9,9,3
+ add 9,9,5
+
+ lwz 31,60(31)
+ rotrwi 3,6,6
+ rotrwi 4,6,11
+ and 5,14,6
+ xor 3,3,4
+ add 8,8,0
+ andc 0,15,6
+ rotrwi 4,4,14
+ or 5,5,0
+ add 8,8,31
+ xor 3,3,4
+ add 8,8,5
+ add 8,8,3
+
+ rotrwi 3,9,2
+ rotrwi 4,9,13
+ and 5,9,10
+ and 0,9,11
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,10,11
+ xor 3,3,4
+ add 12,12,8
+ xor 5,5,0
+ add 8,8,3
+ add 8,8,5
+
+ li 5,3
+ mtctr 5
+.align 4
+.Lrounds:
+ addi 7,7,64
+ rotrwi 3,17,7
+ rotrwi 4,17,18
+ rotrwi 5,30,17
+ rotrwi 0,30,19
+ xor 3,3,4
+ srwi 4,17,3
+ xor 5,5,0
+ srwi 0,30,10
+ add 16,16,25
+ xor 3,3,4
+ xor 5,5,0
+ lwz 0,0(7)
+ add 16,16,3
+ add 16,16,5
+ rotrwi 3,12,6
+ rotrwi 4,12,11
+ and 5,6,12
+ xor 3,3,4
+ add 15,15,0
+ andc 0,14,12
+ rotrwi 4,4,14
+ or 5,5,0
+ add 15,15,16
+ xor 3,3,4
+ add 15,15,5
+ add 15,15,3
+
+ rotrwi 3,8,2
+ rotrwi 4,8,13
+ and 5,8,9
+ and 0,8,10
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,9,10
+ xor 3,3,4
+ add 11,11,15
+ xor 5,5,0
+ add 15,15,3
+ add 15,15,5
+
+ rotrwi 3,18,7
+ rotrwi 4,18,18
+ rotrwi 5,31,17
+ rotrwi 0,31,19
+ xor 3,3,4
+ srwi 4,18,3
+ xor 5,5,0
+ srwi 0,31,10
+ add 17,17,26
+ xor 3,3,4
+ xor 5,5,0
+ lwz 0,4(7)
+ add 17,17,3
+ add 17,17,5
+ rotrwi 3,11,6
+ rotrwi 4,11,11
+ and 5,12,11
+ xor 3,3,4
+ add 14,14,0
+ andc 0,6,11
+ rotrwi 4,4,14
+ or 5,5,0
+ add 14,14,17
+ xor 3,3,4
+ add 14,14,5
+ add 14,14,3
+
+ rotrwi 3,15,2
+ rotrwi 4,15,13
+ and 5,15,8
+ and 0,15,9
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,8,9
+ xor 3,3,4
+ add 10,10,14
+ xor 5,5,0
+ add 14,14,3
+ add 14,14,5
+
+ rotrwi 3,19,7
+ rotrwi 4,19,18
+ rotrwi 5,16,17
+ rotrwi 0,16,19
+ xor 3,3,4
+ srwi 4,19,3
+ xor 5,5,0
+ srwi 0,16,10
+ add 18,18,27
+ xor 3,3,4
+ xor 5,5,0
+ lwz 0,8(7)
+ add 18,18,3
+ add 18,18,5
+ rotrwi 3,10,6
+ rotrwi 4,10,11
+ and 5,11,10
+ xor 3,3,4
+ add 6,6,0
+ andc 0,12,10
+ rotrwi 4,4,14
+ or 5,5,0
+ add 6,6,18
+ xor 3,3,4
+ add 6,6,5
+ add 6,6,3
+
+ rotrwi 3,14,2
+ rotrwi 4,14,13
+ and 5,14,15
+ and 0,14,8
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,15,8
+ xor 3,3,4
+ add 9,9,6
+ xor 5,5,0
+ add 6,6,3
+ add 6,6,5
+
+ rotrwi 3,20,7
+ rotrwi 4,20,18
+ rotrwi 5,17,17
+ rotrwi 0,17,19
+ xor 3,3,4
+ srwi 4,20,3
+ xor 5,5,0
+ srwi 0,17,10
+ add 19,19,28
+ xor 3,3,4
+ xor 5,5,0
+ lwz 0,12(7)
+ add 19,19,3
+ add 19,19,5
+ rotrwi 3,9,6
+ rotrwi 4,9,11
+ and 5,10,9
+ xor 3,3,4
+ add 12,12,0
+ andc 0,11,9
+ rotrwi 4,4,14
+ or 5,5,0
+ add 12,12,19
+ xor 3,3,4
+ add 12,12,5
+ add 12,12,3
+
+ rotrwi 3,6,2
+ rotrwi 4,6,13
+ and 5,6,14
+ and 0,6,15
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,14,15
+ xor 3,3,4
+ add 8,8,12
+ xor 5,5,0
+ add 12,12,3
+ add 12,12,5
+
+ rotrwi 3,21,7
+ rotrwi 4,21,18
+ rotrwi 5,18,17
+ rotrwi 0,18,19
+ xor 3,3,4
+ srwi 4,21,3
+ xor 5,5,0
+ srwi 0,18,10
+ add 20,20,29
+ xor 3,3,4
+ xor 5,5,0
+ lwz 0,16(7)
+ add 20,20,3
+ add 20,20,5
+ rotrwi 3,8,6
+ rotrwi 4,8,11
+ and 5,9,8
+ xor 3,3,4
+ add 11,11,0
+ andc 0,10,8
+ rotrwi 4,4,14
+ or 5,5,0
+ add 11,11,20
+ xor 3,3,4
+ add 11,11,5
+ add 11,11,3
+
+ rotrwi 3,12,2
+ rotrwi 4,12,13
+ and 5,12,6
+ and 0,12,14
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,6,14
+ xor 3,3,4
+ add 15,15,11
+ xor 5,5,0
+ add 11,11,3
+ add 11,11,5
+
+ rotrwi 3,22,7
+ rotrwi 4,22,18
+ rotrwi 5,19,17
+ rotrwi 0,19,19
+ xor 3,3,4
+ srwi 4,22,3
+ xor 5,5,0
+ srwi 0,19,10
+ add 21,21,30
+ xor 3,3,4
+ xor 5,5,0
+ lwz 0,20(7)
+ add 21,21,3
+ add 21,21,5
+ rotrwi 3,15,6
+ rotrwi 4,15,11
+ and 5,8,15
+ xor 3,3,4
+ add 10,10,0
+ andc 0,9,15
+ rotrwi 4,4,14
+ or 5,5,0
+ add 10,10,21
+ xor 3,3,4
+ add 10,10,5
+ add 10,10,3
+
+ rotrwi 3,11,2
+ rotrwi 4,11,13
+ and 5,11,12
+ and 0,11,6
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,12,6
+ xor 3,3,4
+ add 14,14,10
+ xor 5,5,0
+ add 10,10,3
+ add 10,10,5
+
+ rotrwi 3,23,7
+ rotrwi 4,23,18
+ rotrwi 5,20,17
+ rotrwi 0,20,19
+ xor 3,3,4
+ srwi 4,23,3
+ xor 5,5,0
+ srwi 0,20,10
+ add 22,22,31
+ xor 3,3,4
+ xor 5,5,0
+ lwz 0,24(7)
+ add 22,22,3
+ add 22,22,5
+ rotrwi 3,14,6
+ rotrwi 4,14,11
+ and 5,15,14
+ xor 3,3,4
+ add 9,9,0
+ andc 0,8,14
+ rotrwi 4,4,14
+ or 5,5,0
+ add 9,9,22
+ xor 3,3,4
+ add 9,9,5
+ add 9,9,3
+
+ rotrwi 3,10,2
+ rotrwi 4,10,13
+ and 5,10,11
+ and 0,10,12
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,11,12
+ xor 3,3,4
+ add 6,6,9
+ xor 5,5,0
+ add 9,9,3
+ add 9,9,5
+
+ rotrwi 3,24,7
+ rotrwi 4,24,18
+ rotrwi 5,21,17
+ rotrwi 0,21,19
+ xor 3,3,4
+ srwi 4,24,3
+ xor 5,5,0
+ srwi 0,21,10
+ add 23,23,16
+ xor 3,3,4
+ xor 5,5,0
+ lwz 0,28(7)
+ add 23,23,3
+ add 23,23,5
+ rotrwi 3,6,6
+ rotrwi 4,6,11
+ and 5,14,6
+ xor 3,3,4
+ add 8,8,0
+ andc 0,15,6
+ rotrwi 4,4,14
+ or 5,5,0
+ add 8,8,23
+ xor 3,3,4
+ add 8,8,5
+ add 8,8,3
+
+ rotrwi 3,9,2
+ rotrwi 4,9,13
+ and 5,9,10
+ and 0,9,11
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,10,11
+ xor 3,3,4
+ add 12,12,8
+ xor 5,5,0
+ add 8,8,3
+ add 8,8,5
+
+ rotrwi 3,25,7
+ rotrwi 4,25,18
+ rotrwi 5,22,17
+ rotrwi 0,22,19
+ xor 3,3,4
+ srwi 4,25,3
+ xor 5,5,0
+ srwi 0,22,10
+ add 24,24,17
+ xor 3,3,4
+ xor 5,5,0
+ lwz 0,32(7)
+ add 24,24,3
+ add 24,24,5
+ rotrwi 3,12,6
+ rotrwi 4,12,11
+ and 5,6,12
+ xor 3,3,4
+ add 15,15,0
+ andc 0,14,12
+ rotrwi 4,4,14
+ or 5,5,0
+ add 15,15,24
+ xor 3,3,4
+ add 15,15,5
+ add 15,15,3
+
+ rotrwi 3,8,2
+ rotrwi 4,8,13
+ and 5,8,9
+ and 0,8,10
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,9,10
+ xor 3,3,4
+ add 11,11,15
+ xor 5,5,0
+ add 15,15,3
+ add 15,15,5
+
+ rotrwi 3,26,7
+ rotrwi 4,26,18
+ rotrwi 5,23,17
+ rotrwi 0,23,19
+ xor 3,3,4
+ srwi 4,26,3
+ xor 5,5,0
+ srwi 0,23,10
+ add 25,25,18
+ xor 3,3,4
+ xor 5,5,0
+ lwz 0,36(7)
+ add 25,25,3
+ add 25,25,5
+ rotrwi 3,11,6
+ rotrwi 4,11,11
+ and 5,12,11
+ xor 3,3,4
+ add 14,14,0
+ andc 0,6,11
+ rotrwi 4,4,14
+ or 5,5,0
+ add 14,14,25
+ xor 3,3,4
+ add 14,14,5
+ add 14,14,3
+
+ rotrwi 3,15,2
+ rotrwi 4,15,13
+ and 5,15,8
+ and 0,15,9
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,8,9
+ xor 3,3,4
+ add 10,10,14
+ xor 5,5,0
+ add 14,14,3
+ add 14,14,5
+
+ rotrwi 3,27,7
+ rotrwi 4,27,18
+ rotrwi 5,24,17
+ rotrwi 0,24,19
+ xor 3,3,4
+ srwi 4,27,3
+ xor 5,5,0
+ srwi 0,24,10
+ add 26,26,19
+ xor 3,3,4
+ xor 5,5,0
+ lwz 0,40(7)
+ add 26,26,3
+ add 26,26,5
+ rotrwi 3,10,6
+ rotrwi 4,10,11
+ and 5,11,10
+ xor 3,3,4
+ add 6,6,0
+ andc 0,12,10
+ rotrwi 4,4,14
+ or 5,5,0
+ add 6,6,26
+ xor 3,3,4
+ add 6,6,5
+ add 6,6,3
+
+ rotrwi 3,14,2
+ rotrwi 4,14,13
+ and 5,14,15
+ and 0,14,8
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,15,8
+ xor 3,3,4
+ add 9,9,6
+ xor 5,5,0
+ add 6,6,3
+ add 6,6,5
+
+ rotrwi 3,28,7
+ rotrwi 4,28,18
+ rotrwi 5,25,17
+ rotrwi 0,25,19
+ xor 3,3,4
+ srwi 4,28,3
+ xor 5,5,0
+ srwi 0,25,10
+ add 27,27,20
+ xor 3,3,4
+ xor 5,5,0
+ lwz 0,44(7)
+ add 27,27,3
+ add 27,27,5
+ rotrwi 3,9,6
+ rotrwi 4,9,11
+ and 5,10,9
+ xor 3,3,4
+ add 12,12,0
+ andc 0,11,9
+ rotrwi 4,4,14
+ or 5,5,0
+ add 12,12,27
+ xor 3,3,4
+ add 12,12,5
+ add 12,12,3
+
+ rotrwi 3,6,2
+ rotrwi 4,6,13
+ and 5,6,14
+ and 0,6,15
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,14,15
+ xor 3,3,4
+ add 8,8,12
+ xor 5,5,0
+ add 12,12,3
+ add 12,12,5
+
+ rotrwi 3,29,7
+ rotrwi 4,29,18
+ rotrwi 5,26,17
+ rotrwi 0,26,19
+ xor 3,3,4
+ srwi 4,29,3
+ xor 5,5,0
+ srwi 0,26,10
+ add 28,28,21
+ xor 3,3,4
+ xor 5,5,0
+ lwz 0,48(7)
+ add 28,28,3
+ add 28,28,5
+ rotrwi 3,8,6
+ rotrwi 4,8,11
+ and 5,9,8
+ xor 3,3,4
+ add 11,11,0
+ andc 0,10,8
+ rotrwi 4,4,14
+ or 5,5,0
+ add 11,11,28
+ xor 3,3,4
+ add 11,11,5
+ add 11,11,3
+
+ rotrwi 3,12,2
+ rotrwi 4,12,13
+ and 5,12,6
+ and 0,12,14
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,6,14
+ xor 3,3,4
+ add 15,15,11
+ xor 5,5,0
+ add 11,11,3
+ add 11,11,5
+
+ rotrwi 3,30,7
+ rotrwi 4,30,18
+ rotrwi 5,27,17
+ rotrwi 0,27,19
+ xor 3,3,4
+ srwi 4,30,3
+ xor 5,5,0
+ srwi 0,27,10
+ add 29,29,22
+ xor 3,3,4
+ xor 5,5,0
+ lwz 0,52(7)
+ add 29,29,3
+ add 29,29,5
+ rotrwi 3,15,6
+ rotrwi 4,15,11
+ and 5,8,15
+ xor 3,3,4
+ add 10,10,0
+ andc 0,9,15
+ rotrwi 4,4,14
+ or 5,5,0
+ add 10,10,29
+ xor 3,3,4
+ add 10,10,5
+ add 10,10,3
+
+ rotrwi 3,11,2
+ rotrwi 4,11,13
+ and 5,11,12
+ and 0,11,6
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,12,6
+ xor 3,3,4
+ add 14,14,10
+ xor 5,5,0
+ add 10,10,3
+ add 10,10,5
+
+ rotrwi 3,31,7
+ rotrwi 4,31,18
+ rotrwi 5,28,17
+ rotrwi 0,28,19
+ xor 3,3,4
+ srwi 4,31,3
+ xor 5,5,0
+ srwi 0,28,10
+ add 30,30,23
+ xor 3,3,4
+ xor 5,5,0
+ lwz 0,56(7)
+ add 30,30,3
+ add 30,30,5
+ rotrwi 3,14,6
+ rotrwi 4,14,11
+ and 5,15,14
+ xor 3,3,4
+ add 9,9,0
+ andc 0,8,14
+ rotrwi 4,4,14
+ or 5,5,0
+ add 9,9,30
+ xor 3,3,4
+ add 9,9,5
+ add 9,9,3
+
+ rotrwi 3,10,2
+ rotrwi 4,10,13
+ and 5,10,11
+ and 0,10,12
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,11,12
+ xor 3,3,4
+ add 6,6,9
+ xor 5,5,0
+ add 9,9,3
+ add 9,9,5
+
+ rotrwi 3,16,7
+ rotrwi 4,16,18
+ rotrwi 5,29,17
+ rotrwi 0,29,19
+ xor 3,3,4
+ srwi 4,16,3
+ xor 5,5,0
+ srwi 0,29,10
+ add 31,31,24
+ xor 3,3,4
+ xor 5,5,0
+ lwz 0,60(7)
+ add 31,31,3
+ add 31,31,5
+ rotrwi 3,6,6
+ rotrwi 4,6,11
+ and 5,14,6
+ xor 3,3,4
+ add 8,8,0
+ andc 0,15,6
+ rotrwi 4,4,14
+ or 5,5,0
+ add 8,8,31
+ xor 3,3,4
+ add 8,8,5
+ add 8,8,3
+
+ rotrwi 3,9,2
+ rotrwi 4,9,13
+ and 5,9,10
+ and 0,9,11
+ xor 3,3,4
+ rotrwi 4,4,9
+ xor 5,5,0
+ and 0,10,11
+ xor 3,3,4
+ add 12,12,8
+ xor 5,5,0
+ add 8,8,3
+ add 8,8,5
+
+ bdnz .Lrounds
+
+ lwz 3,104(1)
+ lwz 31,100(1)
+ lwz 5,96(1)
+ subi 7,7,192
+
+ lwz 16,0(3)
+ lwz 17,4(3)
+ lwz 18,8(3)
+ lwz 19,12(3)
+ lwz 20,16(3)
+ lwz 21,20(3)
+ lwz 22,24(3)
+ addi 31,31,64
+ lwz 23,28(3)
+ add 8,8,16
+ add 9,9,17
+ stw 31,100(1)
+ add 10,10,18
+ stw 8,0(3)
+ add 11,11,19
+ stw 9,4(3)
+ add 12,12,20
+ stw 10,8(3)
+ add 6,6,21
+ stw 11,12(3)
+ add 14,14,22
+ stw 12,16(3)
+ add 15,15,23
+ stw 6,20(3)
+ stw 14,24(3)
+ .long 0x7c1f2840
+ stw 15,28(3)
+ bne .Lsha2_block_private
+ blr
+.long 0
+.byte 0,12,0x14,0,0,0,0,0
+.size sha256_block_ppc,.-sha256_block_ppc
+.align 6
+.LPICmeup:
+ mflr 0
+ bcl 20,31,$+4
+ mflr 7
+ addi 7,7,56
+ mtlr 0
+ blr
+.long 0
+.byte 0,12,0x14,0,0,0,0,0
+.space 28
+.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
diff --git a/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha256p8-ppc.s b/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha256p8-ppc.s
new file mode 100644
index 0000000000..547656f624
--- /dev/null
+++ b/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha256p8-ppc.s
@@ -0,0 +1,734 @@
+.machine "any"
+.text
+
+.globl sha256_block_p8
+.type sha256_block_p8,@function
+.align 6
+sha256_block_p8:
+ stwu 1,-328(1)
+ mflr 8
+ li 10,175
+ li 11,191
+ stvx 24,10,1
+ addi 10,10,32
+ mfspr 12,256
+ stvx 25,11,1
+ addi 11,11,32
+ stvx 26,10,1
+ addi 10,10,32
+ stvx 27,11,1
+ addi 11,11,32
+ stvx 28,10,1
+ addi 10,10,32
+ stvx 29,11,1
+ addi 11,11,32
+ stvx 30,10,1
+ stvx 31,11,1
+ li 11,-4096+255
+ stw 12,300(1)
+ li 10,0x10
+ stw 26,304(1)
+ li 26,0x20
+ stw 27,308(1)
+ li 27,0x30
+ stw 28,312(1)
+ li 28,0x40
+ stw 29,316(1)
+ li 29,0x50
+ stw 30,320(1)
+ li 30,0x60
+ stw 31,324(1)
+ li 31,0x70
+ stw 8,332(1)
+ mtspr 256,11
+
+ bl .LPICmeup
+ addi 11,1,47
+ .long 0x7C001E19
+ .long 0x7C8A1E19
+ vsldoi 1,0,0,4
+ vsldoi 2,0,0,8
+ vsldoi 3,0,0,12
+ vsldoi 5,4,4,4
+ vsldoi 6,4,4,8
+ vsldoi 7,4,4,12
+ li 0,3
+ b .Loop
+.align 5
+.Loop:
+ lvx 28,0,6
+ .long 0x7D002699
+ addi 4,4,16
+ mr 7,6
+ stvx 0,0,11
+ stvx 1,10,11
+ stvx 2,26,11
+ stvx 3,27,11
+ stvx 4,28,11
+ stvx 5,29,11
+ stvx 6,30,11
+ stvx 7,31,11
+ vadduwm 7,7,28
+ lvx 28,10,6
+ vadduwm 7,7,8
+ vsel 29,6,5,4
+ vadduwm 6,6,28
+ vadduwm 7,7,29
+ .long 0x13C4FE82
+ vadduwm 7,7,30
+ vxor 29,0,1
+ vsel 29,1,2,29
+ vadduwm 3,3,7
+ .long 0x13C08682
+ vadduwm 30,30,29
+ vadduwm 7,7,30
+ lvx 28,26,7
+ vsldoi 9,8,8,4
+ vadduwm 6,6,9
+ vsel 29,5,4,3
+ vadduwm 5,5,28
+ vadduwm 6,6,29
+ .long 0x13C3FE82
+ vadduwm 6,6,30
+ vxor 29,7,0
+ vsel 29,0,1,29
+ vadduwm 2,2,6
+ .long 0x13C78682
+ vadduwm 30,30,29
+ vadduwm 6,6,30
+ lvx 28,27,7
+ vsldoi 10,9,9,4
+ vadduwm 5,5,10
+ vsel 29,4,3,2
+ vadduwm 4,4,28
+ vadduwm 5,5,29
+ .long 0x13C2FE82
+ vadduwm 5,5,30
+ vxor 29,6,7
+ vsel 29,7,0,29
+ vadduwm 1,1,5
+ .long 0x13C68682
+ vadduwm 30,30,29
+ vadduwm 5,5,30
+ lvx 28,28,7
+ .long 0x7D802699
+ addi 4,4,16
+ vsldoi 11,10,10,4
+ vadduwm 4,4,11
+ vsel 29,3,2,1
+ vadduwm 3,3,28
+ vadduwm 4,4,29
+ .long 0x13C1FE82
+ vadduwm 4,4,30
+ vxor 29,5,6
+ vsel 29,6,7,29
+ vadduwm 0,0,4
+ .long 0x13C58682
+ vadduwm 30,30,29
+ vadduwm 4,4,30
+ lvx 28,29,7
+ vadduwm 3,3,12
+ vsel 29,2,1,0
+ vadduwm 2,2,28
+ vadduwm 3,3,29
+ .long 0x13C0FE82
+ vadduwm 3,3,30
+ vxor 29,4,5
+ vsel 29,5,6,29
+ vadduwm 7,7,3
+ .long 0x13C48682
+ vadduwm 30,30,29
+ vadduwm 3,3,30
+ lvx 28,30,7
+ vsldoi 13,12,12,4
+ vadduwm 2,2,13
+ vsel 29,1,0,7
+ vadduwm 1,1,28
+ vadduwm 2,2,29
+ .long 0x13C7FE82
+ vadduwm 2,2,30
+ vxor 29,3,4
+ vsel 29,4,5,29
+ vadduwm 6,6,2
+ .long 0x13C38682
+ vadduwm 30,30,29
+ vadduwm 2,2,30
+ lvx 28,31,7
+ addi 7,7,0x80
+ vsldoi 14,13,13,4
+ vadduwm 1,1,14
+ vsel 29,0,7,6
+ vadduwm 0,0,28
+ vadduwm 1,1,29
+ .long 0x13C6FE82
+ vadduwm 1,1,30
+ vxor 29,2,3
+ vsel 29,3,4,29
+ vadduwm 5,5,1
+ .long 0x13C28682
+ vadduwm 30,30,29
+ vadduwm 1,1,30
+ lvx 28,0,7
+ .long 0x7E002699
+ addi 4,4,16
+ vsldoi 15,14,14,4
+ vadduwm 0,0,15
+ vsel 29,7,6,5
+ vadduwm 7,7,28
+ vadduwm 0,0,29
+ .long 0x13C5FE82
+ vadduwm 0,0,30
+ vxor 29,1,2
+ vsel 29,2,3,29
+ vadduwm 4,4,0
+ .long 0x13C18682
+ vadduwm 30,30,29
+ vadduwm 0,0,30
+ lvx 28,10,7
+ vadduwm 7,7,16
+ vsel 29,6,5,4
+ vadduwm 6,6,28
+ vadduwm 7,7,29
+ .long 0x13C4FE82
+ vadduwm 7,7,30
+ vxor 29,0,1
+ vsel 29,1,2,29
+ vadduwm 3,3,7
+ .long 0x13C08682
+ vadduwm 30,30,29
+ vadduwm 7,7,30
+ lvx 28,26,7
+ vsldoi 17,16,16,4
+ vadduwm 6,6,17
+ vsel 29,5,4,3
+ vadduwm 5,5,28
+ vadduwm 6,6,29
+ .long 0x13C3FE82
+ vadduwm 6,6,30
+ vxor 29,7,0
+ vsel 29,0,1,29
+ vadduwm 2,2,6
+ .long 0x13C78682
+ vadduwm 30,30,29
+ vadduwm 6,6,30
+ lvx 28,27,7
+ vsldoi 18,17,17,4
+ vadduwm 5,5,18
+ vsel 29,4,3,2
+ vadduwm 4,4,28
+ vadduwm 5,5,29
+ .long 0x13C2FE82
+ vadduwm 5,5,30
+ vxor 29,6,7
+ vsel 29,7,0,29
+ vadduwm 1,1,5
+ .long 0x13C68682
+ vadduwm 30,30,29
+ vadduwm 5,5,30
+ lvx 28,28,7
+ .long 0x7F002699
+ addi 4,4,16
+ vsldoi 19,18,18,4
+ vadduwm 4,4,19
+ vsel 29,3,2,1
+ vadduwm 3,3,28
+ vadduwm 4,4,29
+ .long 0x13C1FE82
+ vadduwm 4,4,30
+ vxor 29,5,6
+ vsel 29,6,7,29
+ vadduwm 0,0,4
+ .long 0x13C58682
+ vadduwm 30,30,29
+ vadduwm 4,4,30
+ lvx 28,29,7
+ vadduwm 3,3,24
+ vsel 29,2,1,0
+ vadduwm 2,2,28
+ vadduwm 3,3,29
+ .long 0x13C0FE82
+ vadduwm 3,3,30
+ vxor 29,4,5
+ vsel 29,5,6,29
+ vadduwm 7,7,3
+ .long 0x13C48682
+ vadduwm 30,30,29
+ vadduwm 3,3,30
+ lvx 28,30,7
+ vsldoi 25,24,24,4
+ vadduwm 2,2,25
+ vsel 29,1,0,7
+ vadduwm 1,1,28
+ vadduwm 2,2,29
+ .long 0x13C7FE82
+ vadduwm 2,2,30
+ vxor 29,3,4
+ vsel 29,4,5,29
+ vadduwm 6,6,2
+ .long 0x13C38682
+ vadduwm 30,30,29
+ vadduwm 2,2,30
+ lvx 28,31,7
+ addi 7,7,0x80
+ vsldoi 26,25,25,4
+ vadduwm 1,1,26
+ vsel 29,0,7,6
+ vadduwm 0,0,28
+ vadduwm 1,1,29
+ .long 0x13C6FE82
+ vadduwm 1,1,30
+ vxor 29,2,3
+ vsel 29,3,4,29
+ vadduwm 5,5,1
+ .long 0x13C28682
+ vadduwm 30,30,29
+ vadduwm 1,1,30
+ lvx 28,0,7
+ vsldoi 27,26,26,4
+ .long 0x13C90682
+ vadduwm 8,8,30
+ .long 0x13DA7E82
+ vadduwm 8,8,30
+ vadduwm 8,8,17
+ vadduwm 0,0,27
+ vsel 29,7,6,5
+ vadduwm 7,7,28
+ vadduwm 0,0,29
+ .long 0x13C5FE82
+ vadduwm 0,0,30
+ vxor 29,1,2
+ vsel 29,2,3,29
+ vadduwm 4,4,0
+ .long 0x13C18682
+ vadduwm 30,30,29
+ vadduwm 0,0,30
+ lvx 28,10,7
+ mtctr 0
+ b .L16_xx
+.align 5
+.L16_xx:
+ .long 0x13CA0682
+ vadduwm 9,9,30
+ .long 0x13DB7E82
+ vadduwm 9,9,30
+ vadduwm 9,9,18
+ vadduwm 7,7,8
+ vsel 29,6,5,4
+ vadduwm 6,6,28
+ vadduwm 7,7,29
+ .long 0x13C4FE82
+ vadduwm 7,7,30
+ vxor 29,0,1
+ vsel 29,1,2,29
+ vadduwm 3,3,7
+ .long 0x13C08682
+ vadduwm 30,30,29
+ vadduwm 7,7,30
+ lvx 28,26,7
+ .long 0x13CB0682
+ vadduwm 10,10,30
+ .long 0x13C87E82
+ vadduwm 10,10,30
+ vadduwm 10,10,19
+ vadduwm 6,6,9
+ vsel 29,5,4,3
+ vadduwm 5,5,28
+ vadduwm 6,6,29
+ .long 0x13C3FE82
+ vadduwm 6,6,30
+ vxor 29,7,0
+ vsel 29,0,1,29
+ vadduwm 2,2,6
+ .long 0x13C78682
+ vadduwm 30,30,29
+ vadduwm 6,6,30
+ lvx 28,27,7
+ .long 0x13CC0682
+ vadduwm 11,11,30
+ .long 0x13C97E82
+ vadduwm 11,11,30
+ vadduwm 11,11,24
+ vadduwm 5,5,10
+ vsel 29,4,3,2
+ vadduwm 4,4,28
+ vadduwm 5,5,29
+ .long 0x13C2FE82
+ vadduwm 5,5,30
+ vxor 29,6,7
+ vsel 29,7,0,29
+ vadduwm 1,1,5
+ .long 0x13C68682
+ vadduwm 30,30,29
+ vadduwm 5,5,30
+ lvx 28,28,7
+ .long 0x13CD0682
+ vadduwm 12,12,30
+ .long 0x13CA7E82
+ vadduwm 12,12,30
+ vadduwm 12,12,25
+ vadduwm 4,4,11
+ vsel 29,3,2,1
+ vadduwm 3,3,28
+ vadduwm 4,4,29
+ .long 0x13C1FE82
+ vadduwm 4,4,30
+ vxor 29,5,6
+ vsel 29,6,7,29
+ vadduwm 0,0,4
+ .long 0x13C58682
+ vadduwm 30,30,29
+ vadduwm 4,4,30
+ lvx 28,29,7
+ .long 0x13CE0682
+ vadduwm 13,13,30
+ .long 0x13CB7E82
+ vadduwm 13,13,30
+ vadduwm 13,13,26
+ vadduwm 3,3,12
+ vsel 29,2,1,0
+ vadduwm 2,2,28
+ vadduwm 3,3,29
+ .long 0x13C0FE82
+ vadduwm 3,3,30
+ vxor 29,4,5
+ vsel 29,5,6,29
+ vadduwm 7,7,3
+ .long 0x13C48682
+ vadduwm 30,30,29
+ vadduwm 3,3,30
+ lvx 28,30,7
+ .long 0x13CF0682
+ vadduwm 14,14,30
+ .long 0x13CC7E82
+ vadduwm 14,14,30
+ vadduwm 14,14,27
+ vadduwm 2,2,13
+ vsel 29,1,0,7
+ vadduwm 1,1,28
+ vadduwm 2,2,29
+ .long 0x13C7FE82
+ vadduwm 2,2,30
+ vxor 29,3,4
+ vsel 29,4,5,29
+ vadduwm 6,6,2
+ .long 0x13C38682
+ vadduwm 30,30,29
+ vadduwm 2,2,30
+ lvx 28,31,7
+ addi 7,7,0x80
+ .long 0x13D00682
+ vadduwm 15,15,30
+ .long 0x13CD7E82
+ vadduwm 15,15,30
+ vadduwm 15,15,8
+ vadduwm 1,1,14
+ vsel 29,0,7,6
+ vadduwm 0,0,28
+ vadduwm 1,1,29
+ .long 0x13C6FE82
+ vadduwm 1,1,30
+ vxor 29,2,3
+ vsel 29,3,4,29
+ vadduwm 5,5,1
+ .long 0x13C28682
+ vadduwm 30,30,29
+ vadduwm 1,1,30
+ lvx 28,0,7
+ .long 0x13D10682
+ vadduwm 16,16,30
+ .long 0x13CE7E82
+ vadduwm 16,16,30
+ vadduwm 16,16,9
+ vadduwm 0,0,15
+ vsel 29,7,6,5
+ vadduwm 7,7,28
+ vadduwm 0,0,29
+ .long 0x13C5FE82
+ vadduwm 0,0,30
+ vxor 29,1,2
+ vsel 29,2,3,29
+ vadduwm 4,4,0
+ .long 0x13C18682
+ vadduwm 30,30,29
+ vadduwm 0,0,30
+ lvx 28,10,7
+ .long 0x13D20682
+ vadduwm 17,17,30
+ .long 0x13CF7E82
+ vadduwm 17,17,30
+ vadduwm 17,17,10
+ vadduwm 7,7,16
+ vsel 29,6,5,4
+ vadduwm 6,6,28
+ vadduwm 7,7,29
+ .long 0x13C4FE82
+ vadduwm 7,7,30
+ vxor 29,0,1
+ vsel 29,1,2,29
+ vadduwm 3,3,7
+ .long 0x13C08682
+ vadduwm 30,30,29
+ vadduwm 7,7,30
+ lvx 28,26,7
+ .long 0x13D30682
+ vadduwm 18,18,30
+ .long 0x13D07E82
+ vadduwm 18,18,30
+ vadduwm 18,18,11
+ vadduwm 6,6,17
+ vsel 29,5,4,3
+ vadduwm 5,5,28
+ vadduwm 6,6,29
+ .long 0x13C3FE82
+ vadduwm 6,6,30
+ vxor 29,7,0
+ vsel 29,0,1,29
+ vadduwm 2,2,6
+ .long 0x13C78682
+ vadduwm 30,30,29
+ vadduwm 6,6,30
+ lvx 28,27,7
+ .long 0x13D80682
+ vadduwm 19,19,30
+ .long 0x13D17E82
+ vadduwm 19,19,30
+ vadduwm 19,19,12
+ vadduwm 5,5,18
+ vsel 29,4,3,2
+ vadduwm 4,4,28
+ vadduwm 5,5,29
+ .long 0x13C2FE82
+ vadduwm 5,5,30
+ vxor 29,6,7
+ vsel 29,7,0,29
+ vadduwm 1,1,5
+ .long 0x13C68682
+ vadduwm 30,30,29
+ vadduwm 5,5,30
+ lvx 28,28,7
+ .long 0x13D90682
+ vadduwm 24,24,30
+ .long 0x13D27E82
+ vadduwm 24,24,30
+ vadduwm 24,24,13
+ vadduwm 4,4,19
+ vsel 29,3,2,1
+ vadduwm 3,3,28
+ vadduwm 4,4,29
+ .long 0x13C1FE82
+ vadduwm 4,4,30
+ vxor 29,5,6
+ vsel 29,6,7,29
+ vadduwm 0,0,4
+ .long 0x13C58682
+ vadduwm 30,30,29
+ vadduwm 4,4,30
+ lvx 28,29,7
+ .long 0x13DA0682
+ vadduwm 25,25,30
+ .long 0x13D37E82
+ vadduwm 25,25,30
+ vadduwm 25,25,14
+ vadduwm 3,3,24
+ vsel 29,2,1,0
+ vadduwm 2,2,28
+ vadduwm 3,3,29
+ .long 0x13C0FE82
+ vadduwm 3,3,30
+ vxor 29,4,5
+ vsel 29,5,6,29
+ vadduwm 7,7,3
+ .long 0x13C48682
+ vadduwm 30,30,29
+ vadduwm 3,3,30
+ lvx 28,30,7
+ .long 0x13DB0682
+ vadduwm 26,26,30
+ .long 0x13D87E82
+ vadduwm 26,26,30
+ vadduwm 26,26,15
+ vadduwm 2,2,25
+ vsel 29,1,0,7
+ vadduwm 1,1,28
+ vadduwm 2,2,29
+ .long 0x13C7FE82
+ vadduwm 2,2,30
+ vxor 29,3,4
+ vsel 29,4,5,29
+ vadduwm 6,6,2
+ .long 0x13C38682
+ vadduwm 30,30,29
+ vadduwm 2,2,30
+ lvx 28,31,7
+ addi 7,7,0x80
+ .long 0x13C80682
+ vadduwm 27,27,30
+ .long 0x13D97E82
+ vadduwm 27,27,30
+ vadduwm 27,27,16
+ vadduwm 1,1,26
+ vsel 29,0,7,6
+ vadduwm 0,0,28
+ vadduwm 1,1,29
+ .long 0x13C6FE82
+ vadduwm 1,1,30
+ vxor 29,2,3
+ vsel 29,3,4,29
+ vadduwm 5,5,1
+ .long 0x13C28682
+ vadduwm 30,30,29
+ vadduwm 1,1,30
+ lvx 28,0,7
+ .long 0x13C90682
+ vadduwm 8,8,30
+ .long 0x13DA7E82
+ vadduwm 8,8,30
+ vadduwm 8,8,17
+ vadduwm 0,0,27
+ vsel 29,7,6,5
+ vadduwm 7,7,28
+ vadduwm 0,0,29
+ .long 0x13C5FE82
+ vadduwm 0,0,30
+ vxor 29,1,2
+ vsel 29,2,3,29
+ vadduwm 4,4,0
+ .long 0x13C18682
+ vadduwm 30,30,29
+ vadduwm 0,0,30
+ lvx 28,10,7
+ bdnz .L16_xx
+
+ lvx 10,0,11
+ subic. 5,5,1
+ lvx 11,10,11
+ vadduwm 0,0,10
+ lvx 12,26,11
+ vadduwm 1,1,11
+ lvx 13,27,11
+ vadduwm 2,2,12
+ lvx 14,28,11
+ vadduwm 3,3,13
+ lvx 15,29,11
+ vadduwm 4,4,14
+ lvx 16,30,11
+ vadduwm 5,5,15
+ lvx 17,31,11
+ vadduwm 6,6,16
+ vadduwm 7,7,17
+ bne .Loop
+ lvx 8,26,7
+ vperm 0,0,1,28
+ lvx 9,27,7
+ vperm 4,4,5,28
+ vperm 0,0,2,8
+ vperm 4,4,6,8
+ vperm 0,0,3,9
+ vperm 4,4,7,9
+ .long 0x7C001F19
+ .long 0x7C8A1F19
+ addi 11,1,175
+ mtlr 8
+ mtspr 256,12
+ lvx 24,0,11
+ lvx 25,10,11
+ lvx 26,26,11
+ lvx 27,27,11
+ lvx 28,28,11
+ lvx 29,29,11
+ lvx 30,30,11
+ lvx 31,31,11
+ lwz 26,304(1)
+ lwz 27,308(1)
+ lwz 28,312(1)
+ lwz 29,316(1)
+ lwz 30,320(1)
+ lwz 31,324(1)
+ addi 1,1,328
+ blr
+.long 0
+.byte 0,12,4,1,0x80,6,3,0
+.long 0
+.size sha256_block_p8,.-sha256_block_p8
+.align 6
+.LPICmeup:
+ mflr 0
+ bcl 20,31,$+4
+ mflr 6
+ addi 6,6,56
+ mtlr 0
+ blr
+.long 0
+.byte 0,12,0x14,0,0,0,0,0
+.space 28
+.long 0x428a2f98,0x428a2f98,0x428a2f98,0x428a2f98
+.long 0x71374491,0x71374491,0x71374491,0x71374491
+.long 0xb5c0fbcf,0xb5c0fbcf,0xb5c0fbcf,0xb5c0fbcf
+.long 0xe9b5dba5,0xe9b5dba5,0xe9b5dba5,0xe9b5dba5
+.long 0x3956c25b,0x3956c25b,0x3956c25b,0x3956c25b
+.long 0x59f111f1,0x59f111f1,0x59f111f1,0x59f111f1
+.long 0x923f82a4,0x923f82a4,0x923f82a4,0x923f82a4
+.long 0xab1c5ed5,0xab1c5ed5,0xab1c5ed5,0xab1c5ed5
+.long 0xd807aa98,0xd807aa98,0xd807aa98,0xd807aa98
+.long 0x12835b01,0x12835b01,0x12835b01,0x12835b01
+.long 0x243185be,0x243185be,0x243185be,0x243185be
+.long 0x550c7dc3,0x550c7dc3,0x550c7dc3,0x550c7dc3
+.long 0x72be5d74,0x72be5d74,0x72be5d74,0x72be5d74
+.long 0x80deb1fe,0x80deb1fe,0x80deb1fe,0x80deb1fe
+.long 0x9bdc06a7,0x9bdc06a7,0x9bdc06a7,0x9bdc06a7
+.long 0xc19bf174,0xc19bf174,0xc19bf174,0xc19bf174
+.long 0xe49b69c1,0xe49b69c1,0xe49b69c1,0xe49b69c1
+.long 0xefbe4786,0xefbe4786,0xefbe4786,0xefbe4786
+.long 0x0fc19dc6,0x0fc19dc6,0x0fc19dc6,0x0fc19dc6
+.long 0x240ca1cc,0x240ca1cc,0x240ca1cc,0x240ca1cc
+.long 0x2de92c6f,0x2de92c6f,0x2de92c6f,0x2de92c6f
+.long 0x4a7484aa,0x4a7484aa,0x4a7484aa,0x4a7484aa
+.long 0x5cb0a9dc,0x5cb0a9dc,0x5cb0a9dc,0x5cb0a9dc
+.long 0x76f988da,0x76f988da,0x76f988da,0x76f988da
+.long 0x983e5152,0x983e5152,0x983e5152,0x983e5152
+.long 0xa831c66d,0xa831c66d,0xa831c66d,0xa831c66d
+.long 0xb00327c8,0xb00327c8,0xb00327c8,0xb00327c8
+.long 0xbf597fc7,0xbf597fc7,0xbf597fc7,0xbf597fc7
+.long 0xc6e00bf3,0xc6e00bf3,0xc6e00bf3,0xc6e00bf3
+.long 0xd5a79147,0xd5a79147,0xd5a79147,0xd5a79147
+.long 0x06ca6351,0x06ca6351,0x06ca6351,0x06ca6351
+.long 0x14292967,0x14292967,0x14292967,0x14292967
+.long 0x27b70a85,0x27b70a85,0x27b70a85,0x27b70a85
+.long 0x2e1b2138,0x2e1b2138,0x2e1b2138,0x2e1b2138
+.long 0x4d2c6dfc,0x4d2c6dfc,0x4d2c6dfc,0x4d2c6dfc
+.long 0x53380d13,0x53380d13,0x53380d13,0x53380d13
+.long 0x650a7354,0x650a7354,0x650a7354,0x650a7354
+.long 0x766a0abb,0x766a0abb,0x766a0abb,0x766a0abb
+.long 0x81c2c92e,0x81c2c92e,0x81c2c92e,0x81c2c92e
+.long 0x92722c85,0x92722c85,0x92722c85,0x92722c85
+.long 0xa2bfe8a1,0xa2bfe8a1,0xa2bfe8a1,0xa2bfe8a1
+.long 0xa81a664b,0xa81a664b,0xa81a664b,0xa81a664b
+.long 0xc24b8b70,0xc24b8b70,0xc24b8b70,0xc24b8b70
+.long 0xc76c51a3,0xc76c51a3,0xc76c51a3,0xc76c51a3
+.long 0xd192e819,0xd192e819,0xd192e819,0xd192e819
+.long 0xd6990624,0xd6990624,0xd6990624,0xd6990624
+.long 0xf40e3585,0xf40e3585,0xf40e3585,0xf40e3585
+.long 0x106aa070,0x106aa070,0x106aa070,0x106aa070
+.long 0x19a4c116,0x19a4c116,0x19a4c116,0x19a4c116
+.long 0x1e376c08,0x1e376c08,0x1e376c08,0x1e376c08
+.long 0x2748774c,0x2748774c,0x2748774c,0x2748774c
+.long 0x34b0bcb5,0x34b0bcb5,0x34b0bcb5,0x34b0bcb5
+.long 0x391c0cb3,0x391c0cb3,0x391c0cb3,0x391c0cb3
+.long 0x4ed8aa4a,0x4ed8aa4a,0x4ed8aa4a,0x4ed8aa4a
+.long 0x5b9cca4f,0x5b9cca4f,0x5b9cca4f,0x5b9cca4f
+.long 0x682e6ff3,0x682e6ff3,0x682e6ff3,0x682e6ff3
+.long 0x748f82ee,0x748f82ee,0x748f82ee,0x748f82ee
+.long 0x78a5636f,0x78a5636f,0x78a5636f,0x78a5636f
+.long 0x84c87814,0x84c87814,0x84c87814,0x84c87814
+.long 0x8cc70208,0x8cc70208,0x8cc70208,0x8cc70208
+.long 0x90befffa,0x90befffa,0x90befffa,0x90befffa
+.long 0xa4506ceb,0xa4506ceb,0xa4506ceb,0xa4506ceb
+.long 0xbef9a3f7,0xbef9a3f7,0xbef9a3f7,0xbef9a3f7
+.long 0xc67178f2,0xc67178f2,0xc67178f2,0xc67178f2
+.long 0,0,0,0
+.long 0x00010203,0x10111213,0x10111213,0x10111213
+.long 0x00010203,0x04050607,0x10111213,0x10111213
+.long 0x00010203,0x04050607,0x08090a0b,0x10111213
+.byte 83,72,65,50,53,54,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,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
diff --git a/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha512-ppc.s b/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha512-ppc.s
new file mode 100644
index 0000000000..2ae1bd579f
--- /dev/null
+++ b/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha512-ppc.s
@@ -0,0 +1,3070 @@
+.machine "any"
+.text
+
+.globl sha512_block_ppc
+.type sha512_block_ppc,@function
+.align 6
+sha512_block_ppc:
+ stwu 1,-256(1)
+ mflr 0
+ slwi 5,5,7
+
+ stw 3,168(1)
+
+ stw 14,184(1)
+ stw 15,188(1)
+ stw 16,192(1)
+ stw 17,196(1)
+ stw 18,200(1)
+ stw 19,204(1)
+ stw 20,208(1)
+ stw 21,212(1)
+ stw 22,216(1)
+ stw 23,220(1)
+ stw 24,224(1)
+ stw 25,228(1)
+ stw 26,232(1)
+ stw 27,236(1)
+ stw 28,240(1)
+ stw 29,244(1)
+ stw 30,248(1)
+ stw 31,252(1)
+ stw 0,260(1)
+ lwz 16,0(3)
+ lwz 17,4(3)
+ lwz 18,8(3)
+ lwz 19,12(3)
+ lwz 20,16(3)
+ lwz 21,20(3)
+ lwz 22,24(3)
+ lwz 23,28(3)
+ lwz 24,32(3)
+ lwz 25,36(3)
+ lwz 26,40(3)
+ lwz 27,44(3)
+ lwz 28,48(3)
+ lwz 29,52(3)
+ lwz 30,56(3)
+ lwz 31,60(3)
+ bl .LPICmeup
+.LPICedup:
+ andi. 0,4,3
+ bne .Lunaligned
+.Laligned:
+ add 5,4,5
+ stw 5,160(1)
+ stw 4,164(1)
+ bl .Lsha2_block_private
+ b .Ldone
+
+
+
+
+
+
+
+.align 4
+.Lunaligned:
+ subfic 0,4,4096
+ andi. 0,0,3968
+ beq .Lcross_page
+ .long 0x7c050040
+ ble .Laligned
+ subfc 5,0,5
+ add 0,4,0
+ stw 5,156(1)
+ stw 0,160(1)
+ stw 4,164(1)
+ bl .Lsha2_block_private
+
+ lwz 5,156(1)
+.Lcross_page:
+ li 0,32
+ mtctr 0
+ addi 12,1,24
+.Lmemcpy:
+ lbz 8,0(4)
+ lbz 9,1(4)
+ lbz 10,2(4)
+ lbz 11,3(4)
+ addi 4,4,4
+ stb 8,0(12)
+ stb 9,1(12)
+ stb 10,2(12)
+ stb 11,3(12)
+ addi 12,12,4
+ bdnz .Lmemcpy
+ stw 4,152(1)
+ addi 0,1,152
+ addi 4,1,24
+ stw 5,156(1)
+ stw 0,160(1)
+ stw 4,164(1)
+ bl .Lsha2_block_private
+ lwz 4,152(1)
+ lwz 5,156(1)
+ addic. 5,5,-128
+ bne .Lunaligned
+
+.Ldone:
+ lwz 0,260(1)
+ lwz 14,184(1)
+ lwz 15,188(1)
+ lwz 16,192(1)
+ lwz 17,196(1)
+ lwz 18,200(1)
+ lwz 19,204(1)
+ lwz 20,208(1)
+ lwz 21,212(1)
+ lwz 22,216(1)
+ lwz 23,220(1)
+ lwz 24,224(1)
+ lwz 25,228(1)
+ lwz 26,232(1)
+ lwz 27,236(1)
+ lwz 28,240(1)
+ lwz 29,244(1)
+ lwz 30,248(1)
+ lwz 31,252(1)
+ mtlr 0
+ addi 1,1,256
+ blr
+.long 0
+.byte 0,12,4,1,0x80,18,3,0
+.long 0
+.align 4
+.Lsha2_block_private:
+ lwz 8,0(4)
+ xor 14,19,21
+ lwz 6,4(4)
+ xor 15,18,20
+ lwz 9,4(7)
+ xor 11,27,29
+ lwz 10,0(7)
+ xor 12,26,28
+ addc 31,31,6
+ stw 6,24(1)
+
+ srwi 0,25,14
+ srwi 5,24,14
+ and 11,11,25
+ adde 30,30,8
+ and 12,12,24
+ stw 8,28(1)
+ srwi 6,25,18
+ srwi 8,24,18
+ addc 31,31,9
+ insrwi 0,24,14,0
+ insrwi 5,25,14,0
+ xor 11,11,29
+ adde 30,30,10
+ xor 12,12,28
+ insrwi 6,24,18,0
+ insrwi 8,25,18,0
+ addc 31,31,11
+ srwi 9,24,41-32
+ srwi 10,25,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,25,41-32,0
+ insrwi 10,24,41-32,0
+ xor 11,17,19
+ adde 30,30,12
+ xor 12,16,18
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,17,28
+ and 14,14,11
+ addc 31,31,0
+ and 15,15,12
+ srwi 8,16,28
+ srwi 0,16,34-32
+ adde 30,30,5
+ srwi 5,17,34-32
+ insrwi 6,16,28,0
+ insrwi 8,17,28,0
+ xor 14,14,19
+ addc 23,23,31
+ xor 15,15,18
+ insrwi 0,17,34-32,0
+ insrwi 5,16,34-32,0
+ adde 22,22,30
+ srwi 9,16,39-32
+ srwi 10,17,39-32
+ xor 0,0,6
+ addc 31,31,14
+ xor 5,5,8
+ insrwi 9,17,39-32,0
+ insrwi 10,16,39-32,0
+ adde 30,30,15
+ lwz 8,8(4)
+ lwz 6,12(4)
+ xor 0,0,9
+ xor 5,5,10
+ addc 31,31,0
+ adde 30,30,5
+ lwz 9,12(7)
+ xor 14,25,27
+ lwz 10,8(7)
+ xor 15,24,26
+ addc 29,29,6
+ stw 6,32(1)
+
+ srwi 0,23,14
+ srwi 5,22,14
+ and 14,14,23
+ adde 28,28,8
+ and 15,15,22
+ stw 8,36(1)
+ srwi 6,23,18
+ srwi 8,22,18
+ addc 29,29,9
+ insrwi 0,22,14,0
+ insrwi 5,23,14,0
+ xor 14,14,27
+ adde 28,28,10
+ xor 15,15,26
+ insrwi 6,22,18,0
+ insrwi 8,23,18,0
+ addc 29,29,14
+ srwi 9,22,41-32
+ srwi 10,23,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,23,41-32,0
+ insrwi 10,22,41-32,0
+ xor 14,31,17
+ adde 28,28,15
+ xor 15,30,16
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,31,28
+ and 11,11,14
+ addc 29,29,0
+ and 12,12,15
+ srwi 8,30,28
+ srwi 0,30,34-32
+ adde 28,28,5
+ srwi 5,31,34-32
+ insrwi 6,30,28,0
+ insrwi 8,31,28,0
+ xor 11,11,17
+ addc 21,21,29
+ xor 12,12,16
+ insrwi 0,31,34-32,0
+ insrwi 5,30,34-32,0
+ adde 20,20,28
+ srwi 9,30,39-32
+ srwi 10,31,39-32
+ xor 0,0,6
+ addc 29,29,11
+ xor 5,5,8
+ insrwi 9,31,39-32,0
+ insrwi 10,30,39-32,0
+ adde 28,28,12
+ lwz 8,16(4)
+ lwz 6,20(4)
+ xor 0,0,9
+ xor 5,5,10
+ addc 29,29,0
+ adde 28,28,5
+ lwz 9,20(7)
+ xor 11,23,25
+ lwz 10,16(7)
+ xor 12,22,24
+ addc 27,27,6
+ stw 6,40(1)
+
+ srwi 0,21,14
+ srwi 5,20,14
+ and 11,11,21
+ adde 26,26,8
+ and 12,12,20
+ stw 8,44(1)
+ srwi 6,21,18
+ srwi 8,20,18
+ addc 27,27,9
+ insrwi 0,20,14,0
+ insrwi 5,21,14,0
+ xor 11,11,25
+ adde 26,26,10
+ xor 12,12,24
+ insrwi 6,20,18,0
+ insrwi 8,21,18,0
+ addc 27,27,11
+ srwi 9,20,41-32
+ srwi 10,21,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,21,41-32,0
+ insrwi 10,20,41-32,0
+ xor 11,29,31
+ adde 26,26,12
+ xor 12,28,30
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,29,28
+ and 14,14,11
+ addc 27,27,0
+ and 15,15,12
+ srwi 8,28,28
+ srwi 0,28,34-32
+ adde 26,26,5
+ srwi 5,29,34-32
+ insrwi 6,28,28,0
+ insrwi 8,29,28,0
+ xor 14,14,31
+ addc 19,19,27
+ xor 15,15,30
+ insrwi 0,29,34-32,0
+ insrwi 5,28,34-32,0
+ adde 18,18,26
+ srwi 9,28,39-32
+ srwi 10,29,39-32
+ xor 0,0,6
+ addc 27,27,14
+ xor 5,5,8
+ insrwi 9,29,39-32,0
+ insrwi 10,28,39-32,0
+ adde 26,26,15
+ lwz 8,24(4)
+ lwz 6,28(4)
+ xor 0,0,9
+ xor 5,5,10
+ addc 27,27,0
+ adde 26,26,5
+ lwz 9,28(7)
+ xor 14,21,23
+ lwz 10,24(7)
+ xor 15,20,22
+ addc 25,25,6
+ stw 6,48(1)
+
+ srwi 0,19,14
+ srwi 5,18,14
+ and 14,14,19
+ adde 24,24,8
+ and 15,15,18
+ stw 8,52(1)
+ srwi 6,19,18
+ srwi 8,18,18
+ addc 25,25,9
+ insrwi 0,18,14,0
+ insrwi 5,19,14,0
+ xor 14,14,23
+ adde 24,24,10
+ xor 15,15,22
+ insrwi 6,18,18,0
+ insrwi 8,19,18,0
+ addc 25,25,14
+ srwi 9,18,41-32
+ srwi 10,19,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,19,41-32,0
+ insrwi 10,18,41-32,0
+ xor 14,27,29
+ adde 24,24,15
+ xor 15,26,28
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,27,28
+ and 11,11,14
+ addc 25,25,0
+ and 12,12,15
+ srwi 8,26,28
+ srwi 0,26,34-32
+ adde 24,24,5
+ srwi 5,27,34-32
+ insrwi 6,26,28,0
+ insrwi 8,27,28,0
+ xor 11,11,29
+ addc 17,17,25
+ xor 12,12,28
+ insrwi 0,27,34-32,0
+ insrwi 5,26,34-32,0
+ adde 16,16,24
+ srwi 9,26,39-32
+ srwi 10,27,39-32
+ xor 0,0,6
+ addc 25,25,11
+ xor 5,5,8
+ insrwi 9,27,39-32,0
+ insrwi 10,26,39-32,0
+ adde 24,24,12
+ lwz 8,32(4)
+ lwz 6,36(4)
+ xor 0,0,9
+ xor 5,5,10
+ addc 25,25,0
+ adde 24,24,5
+ lwz 9,36(7)
+ xor 11,19,21
+ lwz 10,32(7)
+ xor 12,18,20
+ addc 23,23,6
+ stw 6,56(1)
+
+ srwi 0,17,14
+ srwi 5,16,14
+ and 11,11,17
+ adde 22,22,8
+ and 12,12,16
+ stw 8,60(1)
+ srwi 6,17,18
+ srwi 8,16,18
+ addc 23,23,9
+ insrwi 0,16,14,0
+ insrwi 5,17,14,0
+ xor 11,11,21
+ adde 22,22,10
+ xor 12,12,20
+ insrwi 6,16,18,0
+ insrwi 8,17,18,0
+ addc 23,23,11
+ srwi 9,16,41-32
+ srwi 10,17,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,17,41-32,0
+ insrwi 10,16,41-32,0
+ xor 11,25,27
+ adde 22,22,12
+ xor 12,24,26
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,25,28
+ and 14,14,11
+ addc 23,23,0
+ and 15,15,12
+ srwi 8,24,28
+ srwi 0,24,34-32
+ adde 22,22,5
+ srwi 5,25,34-32
+ insrwi 6,24,28,0
+ insrwi 8,25,28,0
+ xor 14,14,27
+ addc 31,31,23
+ xor 15,15,26
+ insrwi 0,25,34-32,0
+ insrwi 5,24,34-32,0
+ adde 30,30,22
+ srwi 9,24,39-32
+ srwi 10,25,39-32
+ xor 0,0,6
+ addc 23,23,14
+ xor 5,5,8
+ insrwi 9,25,39-32,0
+ insrwi 10,24,39-32,0
+ adde 22,22,15
+ lwz 8,40(4)
+ lwz 6,44(4)
+ xor 0,0,9
+ xor 5,5,10
+ addc 23,23,0
+ adde 22,22,5
+ lwz 9,44(7)
+ xor 14,17,19
+ lwz 10,40(7)
+ xor 15,16,18
+ addc 21,21,6
+ stw 6,64(1)
+
+ srwi 0,31,14
+ srwi 5,30,14
+ and 14,14,31
+ adde 20,20,8
+ and 15,15,30
+ stw 8,68(1)
+ srwi 6,31,18
+ srwi 8,30,18
+ addc 21,21,9
+ insrwi 0,30,14,0
+ insrwi 5,31,14,0
+ xor 14,14,19
+ adde 20,20,10
+ xor 15,15,18
+ insrwi 6,30,18,0
+ insrwi 8,31,18,0
+ addc 21,21,14
+ srwi 9,30,41-32
+ srwi 10,31,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,31,41-32,0
+ insrwi 10,30,41-32,0
+ xor 14,23,25
+ adde 20,20,15
+ xor 15,22,24
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,23,28
+ and 11,11,14
+ addc 21,21,0
+ and 12,12,15
+ srwi 8,22,28
+ srwi 0,22,34-32
+ adde 20,20,5
+ srwi 5,23,34-32
+ insrwi 6,22,28,0
+ insrwi 8,23,28,0
+ xor 11,11,25
+ addc 29,29,21
+ xor 12,12,24
+ insrwi 0,23,34-32,0
+ insrwi 5,22,34-32,0
+ adde 28,28,20
+ srwi 9,22,39-32
+ srwi 10,23,39-32
+ xor 0,0,6
+ addc 21,21,11
+ xor 5,5,8
+ insrwi 9,23,39-32,0
+ insrwi 10,22,39-32,0
+ adde 20,20,12
+ lwz 8,48(4)
+ lwz 6,52(4)
+ xor 0,0,9
+ xor 5,5,10
+ addc 21,21,0
+ adde 20,20,5
+ lwz 9,52(7)
+ xor 11,31,17
+ lwz 10,48(7)
+ xor 12,30,16
+ addc 19,19,6
+ stw 6,72(1)
+
+ srwi 0,29,14
+ srwi 5,28,14
+ and 11,11,29
+ adde 18,18,8
+ and 12,12,28
+ stw 8,76(1)
+ srwi 6,29,18
+ srwi 8,28,18
+ addc 19,19,9
+ insrwi 0,28,14,0
+ insrwi 5,29,14,0
+ xor 11,11,17
+ adde 18,18,10
+ xor 12,12,16
+ insrwi 6,28,18,0
+ insrwi 8,29,18,0
+ addc 19,19,11
+ srwi 9,28,41-32
+ srwi 10,29,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,29,41-32,0
+ insrwi 10,28,41-32,0
+ xor 11,21,23
+ adde 18,18,12
+ xor 12,20,22
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,21,28
+ and 14,14,11
+ addc 19,19,0
+ and 15,15,12
+ srwi 8,20,28
+ srwi 0,20,34-32
+ adde 18,18,5
+ srwi 5,21,34-32
+ insrwi 6,20,28,0
+ insrwi 8,21,28,0
+ xor 14,14,23
+ addc 27,27,19
+ xor 15,15,22
+ insrwi 0,21,34-32,0
+ insrwi 5,20,34-32,0
+ adde 26,26,18
+ srwi 9,20,39-32
+ srwi 10,21,39-32
+ xor 0,0,6
+ addc 19,19,14
+ xor 5,5,8
+ insrwi 9,21,39-32,0
+ insrwi 10,20,39-32,0
+ adde 18,18,15
+ lwz 8,56(4)
+ lwz 6,60(4)
+ xor 0,0,9
+ xor 5,5,10
+ addc 19,19,0
+ adde 18,18,5
+ lwz 9,60(7)
+ xor 14,29,31
+ lwz 10,56(7)
+ xor 15,28,30
+ addc 17,17,6
+ stw 6,80(1)
+
+ srwi 0,27,14
+ srwi 5,26,14
+ and 14,14,27
+ adde 16,16,8
+ and 15,15,26
+ stw 8,84(1)
+ srwi 6,27,18
+ srwi 8,26,18
+ addc 17,17,9
+ insrwi 0,26,14,0
+ insrwi 5,27,14,0
+ xor 14,14,31
+ adde 16,16,10
+ xor 15,15,30
+ insrwi 6,26,18,0
+ insrwi 8,27,18,0
+ addc 17,17,14
+ srwi 9,26,41-32
+ srwi 10,27,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,27,41-32,0
+ insrwi 10,26,41-32,0
+ xor 14,19,21
+ adde 16,16,15
+ xor 15,18,20
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,19,28
+ and 11,11,14
+ addc 17,17,0
+ and 12,12,15
+ srwi 8,18,28
+ srwi 0,18,34-32
+ adde 16,16,5
+ srwi 5,19,34-32
+ insrwi 6,18,28,0
+ insrwi 8,19,28,0
+ xor 11,11,21
+ addc 25,25,17
+ xor 12,12,20
+ insrwi 0,19,34-32,0
+ insrwi 5,18,34-32,0
+ adde 24,24,16
+ srwi 9,18,39-32
+ srwi 10,19,39-32
+ xor 0,0,6
+ addc 17,17,11
+ xor 5,5,8
+ insrwi 9,19,39-32,0
+ insrwi 10,18,39-32,0
+ adde 16,16,12
+ lwz 8,64(4)
+ lwz 6,68(4)
+ xor 0,0,9
+ xor 5,5,10
+ addc 17,17,0
+ adde 16,16,5
+ lwz 9,68(7)
+ xor 11,27,29
+ lwz 10,64(7)
+ xor 12,26,28
+ addc 31,31,6
+ stw 6,88(1)
+
+ srwi 0,25,14
+ srwi 5,24,14
+ and 11,11,25
+ adde 30,30,8
+ and 12,12,24
+ stw 8,92(1)
+ srwi 6,25,18
+ srwi 8,24,18
+ addc 31,31,9
+ insrwi 0,24,14,0
+ insrwi 5,25,14,0
+ xor 11,11,29
+ adde 30,30,10
+ xor 12,12,28
+ insrwi 6,24,18,0
+ insrwi 8,25,18,0
+ addc 31,31,11
+ srwi 9,24,41-32
+ srwi 10,25,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,25,41-32,0
+ insrwi 10,24,41-32,0
+ xor 11,17,19
+ adde 30,30,12
+ xor 12,16,18
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,17,28
+ and 14,14,11
+ addc 31,31,0
+ and 15,15,12
+ srwi 8,16,28
+ srwi 0,16,34-32
+ adde 30,30,5
+ srwi 5,17,34-32
+ insrwi 6,16,28,0
+ insrwi 8,17,28,0
+ xor 14,14,19
+ addc 23,23,31
+ xor 15,15,18
+ insrwi 0,17,34-32,0
+ insrwi 5,16,34-32,0
+ adde 22,22,30
+ srwi 9,16,39-32
+ srwi 10,17,39-32
+ xor 0,0,6
+ addc 31,31,14
+ xor 5,5,8
+ insrwi 9,17,39-32,0
+ insrwi 10,16,39-32,0
+ adde 30,30,15
+ lwz 8,72(4)
+ lwz 6,76(4)
+ xor 0,0,9
+ xor 5,5,10
+ addc 31,31,0
+ adde 30,30,5
+ lwz 9,76(7)
+ xor 14,25,27
+ lwz 10,72(7)
+ xor 15,24,26
+ addc 29,29,6
+ stw 6,96(1)
+
+ srwi 0,23,14
+ srwi 5,22,14
+ and 14,14,23
+ adde 28,28,8
+ and 15,15,22
+ stw 8,100(1)
+ srwi 6,23,18
+ srwi 8,22,18
+ addc 29,29,9
+ insrwi 0,22,14,0
+ insrwi 5,23,14,0
+ xor 14,14,27
+ adde 28,28,10
+ xor 15,15,26
+ insrwi 6,22,18,0
+ insrwi 8,23,18,0
+ addc 29,29,14
+ srwi 9,22,41-32
+ srwi 10,23,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,23,41-32,0
+ insrwi 10,22,41-32,0
+ xor 14,31,17
+ adde 28,28,15
+ xor 15,30,16
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,31,28
+ and 11,11,14
+ addc 29,29,0
+ and 12,12,15
+ srwi 8,30,28
+ srwi 0,30,34-32
+ adde 28,28,5
+ srwi 5,31,34-32
+ insrwi 6,30,28,0
+ insrwi 8,31,28,0
+ xor 11,11,17
+ addc 21,21,29
+ xor 12,12,16
+ insrwi 0,31,34-32,0
+ insrwi 5,30,34-32,0
+ adde 20,20,28
+ srwi 9,30,39-32
+ srwi 10,31,39-32
+ xor 0,0,6
+ addc 29,29,11
+ xor 5,5,8
+ insrwi 9,31,39-32,0
+ insrwi 10,30,39-32,0
+ adde 28,28,12
+ lwz 8,80(4)
+ lwz 6,84(4)
+ xor 0,0,9
+ xor 5,5,10
+ addc 29,29,0
+ adde 28,28,5
+ lwz 9,84(7)
+ xor 11,23,25
+ lwz 10,80(7)
+ xor 12,22,24
+ addc 27,27,6
+ stw 6,104(1)
+
+ srwi 0,21,14
+ srwi 5,20,14
+ and 11,11,21
+ adde 26,26,8
+ and 12,12,20
+ stw 8,108(1)
+ srwi 6,21,18
+ srwi 8,20,18
+ addc 27,27,9
+ insrwi 0,20,14,0
+ insrwi 5,21,14,0
+ xor 11,11,25
+ adde 26,26,10
+ xor 12,12,24
+ insrwi 6,20,18,0
+ insrwi 8,21,18,0
+ addc 27,27,11
+ srwi 9,20,41-32
+ srwi 10,21,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,21,41-32,0
+ insrwi 10,20,41-32,0
+ xor 11,29,31
+ adde 26,26,12
+ xor 12,28,30
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,29,28
+ and 14,14,11
+ addc 27,27,0
+ and 15,15,12
+ srwi 8,28,28
+ srwi 0,28,34-32
+ adde 26,26,5
+ srwi 5,29,34-32
+ insrwi 6,28,28,0
+ insrwi 8,29,28,0
+ xor 14,14,31
+ addc 19,19,27
+ xor 15,15,30
+ insrwi 0,29,34-32,0
+ insrwi 5,28,34-32,0
+ adde 18,18,26
+ srwi 9,28,39-32
+ srwi 10,29,39-32
+ xor 0,0,6
+ addc 27,27,14
+ xor 5,5,8
+ insrwi 9,29,39-32,0
+ insrwi 10,28,39-32,0
+ adde 26,26,15
+ lwz 8,88(4)
+ lwz 6,92(4)
+ xor 0,0,9
+ xor 5,5,10
+ addc 27,27,0
+ adde 26,26,5
+ lwz 9,92(7)
+ xor 14,21,23
+ lwz 10,88(7)
+ xor 15,20,22
+ addc 25,25,6
+ stw 6,112(1)
+
+ srwi 0,19,14
+ srwi 5,18,14
+ and 14,14,19
+ adde 24,24,8
+ and 15,15,18
+ stw 8,116(1)
+ srwi 6,19,18
+ srwi 8,18,18
+ addc 25,25,9
+ insrwi 0,18,14,0
+ insrwi 5,19,14,0
+ xor 14,14,23
+ adde 24,24,10
+ xor 15,15,22
+ insrwi 6,18,18,0
+ insrwi 8,19,18,0
+ addc 25,25,14
+ srwi 9,18,41-32
+ srwi 10,19,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,19,41-32,0
+ insrwi 10,18,41-32,0
+ xor 14,27,29
+ adde 24,24,15
+ xor 15,26,28
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,27,28
+ and 11,11,14
+ addc 25,25,0
+ and 12,12,15
+ srwi 8,26,28
+ srwi 0,26,34-32
+ adde 24,24,5
+ srwi 5,27,34-32
+ insrwi 6,26,28,0
+ insrwi 8,27,28,0
+ xor 11,11,29
+ addc 17,17,25
+ xor 12,12,28
+ insrwi 0,27,34-32,0
+ insrwi 5,26,34-32,0
+ adde 16,16,24
+ srwi 9,26,39-32
+ srwi 10,27,39-32
+ xor 0,0,6
+ addc 25,25,11
+ xor 5,5,8
+ insrwi 9,27,39-32,0
+ insrwi 10,26,39-32,0
+ adde 24,24,12
+ lwz 8,96(4)
+ lwz 6,100(4)
+ xor 0,0,9
+ xor 5,5,10
+ addc 25,25,0
+ adde 24,24,5
+ lwz 9,100(7)
+ xor 11,19,21
+ lwz 10,96(7)
+ xor 12,18,20
+ addc 23,23,6
+ stw 6,120(1)
+
+ srwi 0,17,14
+ srwi 5,16,14
+ and 11,11,17
+ adde 22,22,8
+ and 12,12,16
+ stw 8,124(1)
+ srwi 6,17,18
+ srwi 8,16,18
+ addc 23,23,9
+ insrwi 0,16,14,0
+ insrwi 5,17,14,0
+ xor 11,11,21
+ adde 22,22,10
+ xor 12,12,20
+ insrwi 6,16,18,0
+ insrwi 8,17,18,0
+ addc 23,23,11
+ srwi 9,16,41-32
+ srwi 10,17,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,17,41-32,0
+ insrwi 10,16,41-32,0
+ xor 11,25,27
+ adde 22,22,12
+ xor 12,24,26
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,25,28
+ and 14,14,11
+ addc 23,23,0
+ and 15,15,12
+ srwi 8,24,28
+ srwi 0,24,34-32
+ adde 22,22,5
+ srwi 5,25,34-32
+ insrwi 6,24,28,0
+ insrwi 8,25,28,0
+ xor 14,14,27
+ addc 31,31,23
+ xor 15,15,26
+ insrwi 0,25,34-32,0
+ insrwi 5,24,34-32,0
+ adde 30,30,22
+ srwi 9,24,39-32
+ srwi 10,25,39-32
+ xor 0,0,6
+ addc 23,23,14
+ xor 5,5,8
+ insrwi 9,25,39-32,0
+ insrwi 10,24,39-32,0
+ adde 22,22,15
+ lwz 8,104(4)
+ lwz 6,108(4)
+ xor 0,0,9
+ xor 5,5,10
+ addc 23,23,0
+ adde 22,22,5
+ lwz 9,108(7)
+ xor 14,17,19
+ lwz 10,104(7)
+ xor 15,16,18
+ addc 21,21,6
+ stw 6,128(1)
+
+ srwi 0,31,14
+ srwi 5,30,14
+ and 14,14,31
+ adde 20,20,8
+ and 15,15,30
+ stw 8,132(1)
+ srwi 6,31,18
+ srwi 8,30,18
+ addc 21,21,9
+ insrwi 0,30,14,0
+ insrwi 5,31,14,0
+ xor 14,14,19
+ adde 20,20,10
+ xor 15,15,18
+ insrwi 6,30,18,0
+ insrwi 8,31,18,0
+ addc 21,21,14
+ srwi 9,30,41-32
+ srwi 10,31,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,31,41-32,0
+ insrwi 10,30,41-32,0
+ xor 14,23,25
+ adde 20,20,15
+ xor 15,22,24
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,23,28
+ and 11,11,14
+ addc 21,21,0
+ and 12,12,15
+ srwi 8,22,28
+ srwi 0,22,34-32
+ adde 20,20,5
+ srwi 5,23,34-32
+ insrwi 6,22,28,0
+ insrwi 8,23,28,0
+ xor 11,11,25
+ addc 29,29,21
+ xor 12,12,24
+ insrwi 0,23,34-32,0
+ insrwi 5,22,34-32,0
+ adde 28,28,20
+ srwi 9,22,39-32
+ srwi 10,23,39-32
+ xor 0,0,6
+ addc 21,21,11
+ xor 5,5,8
+ insrwi 9,23,39-32,0
+ insrwi 10,22,39-32,0
+ adde 20,20,12
+ lwz 8,112(4)
+ lwz 6,116(4)
+ xor 0,0,9
+ xor 5,5,10
+ addc 21,21,0
+ adde 20,20,5
+ lwz 9,116(7)
+ xor 11,31,17
+ lwz 10,112(7)
+ xor 12,30,16
+ addc 19,19,6
+ stw 6,136(1)
+
+ srwi 0,29,14
+ srwi 5,28,14
+ and 11,11,29
+ adde 18,18,8
+ and 12,12,28
+ stw 8,140(1)
+ srwi 6,29,18
+ srwi 8,28,18
+ addc 19,19,9
+ insrwi 0,28,14,0
+ insrwi 5,29,14,0
+ xor 11,11,17
+ adde 18,18,10
+ xor 12,12,16
+ insrwi 6,28,18,0
+ insrwi 8,29,18,0
+ addc 19,19,11
+ srwi 9,28,41-32
+ srwi 10,29,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,29,41-32,0
+ insrwi 10,28,41-32,0
+ xor 11,21,23
+ adde 18,18,12
+ xor 12,20,22
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,21,28
+ and 14,14,11
+ addc 19,19,0
+ and 15,15,12
+ srwi 8,20,28
+ srwi 0,20,34-32
+ adde 18,18,5
+ srwi 5,21,34-32
+ insrwi 6,20,28,0
+ insrwi 8,21,28,0
+ xor 14,14,23
+ addc 27,27,19
+ xor 15,15,22
+ insrwi 0,21,34-32,0
+ insrwi 5,20,34-32,0
+ adde 26,26,18
+ srwi 9,20,39-32
+ srwi 10,21,39-32
+ xor 0,0,6
+ addc 19,19,14
+ xor 5,5,8
+ insrwi 9,21,39-32,0
+ insrwi 10,20,39-32,0
+ adde 18,18,15
+ lwz 8,120(4)
+ lwz 6,124(4)
+ xor 0,0,9
+ xor 5,5,10
+ addc 19,19,0
+ adde 18,18,5
+ lwz 9,124(7)
+ xor 14,29,31
+ lwz 10,120(7)
+ xor 15,28,30
+ addc 17,17,6
+ stw 6,144(1)
+
+ srwi 0,27,14
+ srwi 5,26,14
+ and 14,14,27
+ adde 16,16,8
+ and 15,15,26
+ stw 8,148(1)
+ srwi 6,27,18
+ srwi 8,26,18
+ addc 17,17,9
+ insrwi 0,26,14,0
+ insrwi 5,27,14,0
+ xor 14,14,31
+ adde 16,16,10
+ xor 15,15,30
+ insrwi 6,26,18,0
+ insrwi 8,27,18,0
+ addc 17,17,14
+ srwi 9,26,41-32
+ srwi 10,27,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,27,41-32,0
+ insrwi 10,26,41-32,0
+ xor 14,19,21
+ adde 16,16,15
+ xor 15,18,20
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,19,28
+ and 11,11,14
+ addc 17,17,0
+ and 12,12,15
+ srwi 8,18,28
+ srwi 0,18,34-32
+ adde 16,16,5
+ srwi 5,19,34-32
+ insrwi 6,18,28,0
+ insrwi 8,19,28,0
+ xor 11,11,21
+ addc 25,25,17
+ xor 12,12,20
+ insrwi 0,19,34-32,0
+ insrwi 5,18,34-32,0
+ adde 24,24,16
+ srwi 9,18,39-32
+ srwi 10,19,39-32
+ xor 0,0,6
+ addc 17,17,11
+ xor 5,5,8
+ insrwi 9,19,39-32,0
+ insrwi 10,18,39-32,0
+ adde 16,16,12
+ lwz 6,32(1)
+ lwz 8,36(1)
+ xor 0,0,9
+ xor 5,5,10
+ addc 17,17,0
+ adde 16,16,5
+ lwz 3,24(1)
+ lwz 4,28(1)
+ li 11,4
+ mtctr 11
+.align 4
+.Lrounds:
+ addi 7,7,128
+ srwi 0,6,1
+ srwi 5,8,1
+ srwi 9,6,8
+ srwi 10,8,8
+ insrwi 0,8,1,0
+ insrwi 5,6,1,0
+ srwi 11,6,7
+ insrwi 9,8,8,0
+ insrwi 10,6,8,0
+ insrwi 11,8,7,0
+ xor 0,0,9
+ lwz 9,136(1)
+ srwi 12,8,7
+ xor 5,5,10
+ lwz 10,140(1)
+ xor 11,11,0
+ srwi 0,9,19
+ xor 12,12,5
+ srwi 5,10,19
+ addc 3,3,11
+ srwi 11,10,61-32
+ insrwi 0,10,19,0
+ insrwi 5,9,19,0
+ adde 4,4,12
+ srwi 12,9,61-32
+
+ insrwi 11,9,61-32,0
+ srwi 9,9,6
+ insrwi 12,10,61-32,0
+ insrwi 9,10,6,0
+ xor 0,0,11
+ lwz 11,96(1)
+ srwi 10,10,6
+ xor 5,5,12
+ lwz 12,100(1)
+ xor 0,0,9
+ addc 3,3,11
+ xor 5,5,10
+ adde 4,4,12
+ addc 3,3,0
+ adde 4,4,5
+ lwz 9,4(7)
+ xor 11,27,29
+ lwz 10,0(7)
+ xor 12,26,28
+ addc 31,31,3
+ stw 3,24(1)
+
+ srwi 0,25,14
+ srwi 5,24,14
+ and 11,11,25
+ adde 30,30,4
+ and 12,12,24
+ stw 4,28(1)
+ srwi 3,25,18
+ srwi 4,24,18
+ addc 31,31,9
+ insrwi 0,24,14,0
+ insrwi 5,25,14,0
+ xor 11,11,29
+ adde 30,30,10
+ xor 12,12,28
+ insrwi 3,24,18,0
+ insrwi 4,25,18,0
+ addc 31,31,11
+ srwi 9,24,41-32
+ srwi 10,25,41-32
+ xor 0,0,3
+ xor 5,5,4
+ insrwi 9,25,41-32,0
+ insrwi 10,24,41-32,0
+ xor 11,17,19
+ adde 30,30,12
+ xor 12,16,18
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 3,17,28
+ and 14,14,11
+ addc 31,31,0
+ and 15,15,12
+ srwi 4,16,28
+ srwi 0,16,34-32
+ adde 30,30,5
+ srwi 5,17,34-32
+ insrwi 3,16,28,0
+ insrwi 4,17,28,0
+ xor 14,14,19
+ addc 23,23,31
+ xor 15,15,18
+ insrwi 0,17,34-32,0
+ insrwi 5,16,34-32,0
+ adde 22,22,30
+ srwi 9,16,39-32
+ srwi 10,17,39-32
+ xor 0,0,3
+ addc 31,31,14
+ xor 5,5,4
+ insrwi 9,17,39-32,0
+ insrwi 10,16,39-32,0
+ adde 30,30,15
+ lwz 3,40(1)
+ lwz 4,44(1)
+ xor 0,0,9
+ xor 5,5,10
+ addc 31,31,0
+ adde 30,30,5
+ srwi 0,3,1
+ srwi 5,4,1
+ srwi 9,3,8
+ srwi 10,4,8
+ insrwi 0,4,1,0
+ insrwi 5,3,1,0
+ srwi 14,3,7
+ insrwi 9,4,8,0
+ insrwi 10,3,8,0
+ insrwi 14,4,7,0
+ xor 0,0,9
+ lwz 9,144(1)
+ srwi 15,4,7
+ xor 5,5,10
+ lwz 10,148(1)
+ xor 14,14,0
+ srwi 0,9,19
+ xor 15,15,5
+ srwi 5,10,19
+ addc 6,6,14
+ srwi 14,10,61-32
+ insrwi 0,10,19,0
+ insrwi 5,9,19,0
+ adde 8,8,15
+ srwi 15,9,61-32
+
+ insrwi 14,9,61-32,0
+ srwi 9,9,6
+ insrwi 15,10,61-32,0
+ insrwi 9,10,6,0
+ xor 0,0,14
+ lwz 14,104(1)
+ srwi 10,10,6
+ xor 5,5,15
+ lwz 15,108(1)
+ xor 0,0,9
+ addc 6,6,14
+ xor 5,5,10
+ adde 8,8,15
+ addc 6,6,0
+ adde 8,8,5
+ lwz 9,12(7)
+ xor 14,25,27
+ lwz 10,8(7)
+ xor 15,24,26
+ addc 29,29,6
+ stw 6,32(1)
+
+ srwi 0,23,14
+ srwi 5,22,14
+ and 14,14,23
+ adde 28,28,8
+ and 15,15,22
+ stw 8,36(1)
+ srwi 6,23,18
+ srwi 8,22,18
+ addc 29,29,9
+ insrwi 0,22,14,0
+ insrwi 5,23,14,0
+ xor 14,14,27
+ adde 28,28,10
+ xor 15,15,26
+ insrwi 6,22,18,0
+ insrwi 8,23,18,0
+ addc 29,29,14
+ srwi 9,22,41-32
+ srwi 10,23,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,23,41-32,0
+ insrwi 10,22,41-32,0
+ xor 14,31,17
+ adde 28,28,15
+ xor 15,30,16
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,31,28
+ and 11,11,14
+ addc 29,29,0
+ and 12,12,15
+ srwi 8,30,28
+ srwi 0,30,34-32
+ adde 28,28,5
+ srwi 5,31,34-32
+ insrwi 6,30,28,0
+ insrwi 8,31,28,0
+ xor 11,11,17
+ addc 21,21,29
+ xor 12,12,16
+ insrwi 0,31,34-32,0
+ insrwi 5,30,34-32,0
+ adde 20,20,28
+ srwi 9,30,39-32
+ srwi 10,31,39-32
+ xor 0,0,6
+ addc 29,29,11
+ xor 5,5,8
+ insrwi 9,31,39-32,0
+ insrwi 10,30,39-32,0
+ adde 28,28,12
+ lwz 6,48(1)
+ lwz 8,52(1)
+ xor 0,0,9
+ xor 5,5,10
+ addc 29,29,0
+ adde 28,28,5
+ srwi 0,6,1
+ srwi 5,8,1
+ srwi 9,6,8
+ srwi 10,8,8
+ insrwi 0,8,1,0
+ insrwi 5,6,1,0
+ srwi 11,6,7
+ insrwi 9,8,8,0
+ insrwi 10,6,8,0
+ insrwi 11,8,7,0
+ xor 0,0,9
+ lwz 9,24(1)
+ srwi 12,8,7
+ xor 5,5,10
+ lwz 10,28(1)
+ xor 11,11,0
+ srwi 0,9,19
+ xor 12,12,5
+ srwi 5,10,19
+ addc 3,3,11
+ srwi 11,10,61-32
+ insrwi 0,10,19,0
+ insrwi 5,9,19,0
+ adde 4,4,12
+ srwi 12,9,61-32
+
+ insrwi 11,9,61-32,0
+ srwi 9,9,6
+ insrwi 12,10,61-32,0
+ insrwi 9,10,6,0
+ xor 0,0,11
+ lwz 11,112(1)
+ srwi 10,10,6
+ xor 5,5,12
+ lwz 12,116(1)
+ xor 0,0,9
+ addc 3,3,11
+ xor 5,5,10
+ adde 4,4,12
+ addc 3,3,0
+ adde 4,4,5
+ lwz 9,20(7)
+ xor 11,23,25
+ lwz 10,16(7)
+ xor 12,22,24
+ addc 27,27,3
+ stw 3,40(1)
+
+ srwi 0,21,14
+ srwi 5,20,14
+ and 11,11,21
+ adde 26,26,4
+ and 12,12,20
+ stw 4,44(1)
+ srwi 3,21,18
+ srwi 4,20,18
+ addc 27,27,9
+ insrwi 0,20,14,0
+ insrwi 5,21,14,0
+ xor 11,11,25
+ adde 26,26,10
+ xor 12,12,24
+ insrwi 3,20,18,0
+ insrwi 4,21,18,0
+ addc 27,27,11
+ srwi 9,20,41-32
+ srwi 10,21,41-32
+ xor 0,0,3
+ xor 5,5,4
+ insrwi 9,21,41-32,0
+ insrwi 10,20,41-32,0
+ xor 11,29,31
+ adde 26,26,12
+ xor 12,28,30
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 3,29,28
+ and 14,14,11
+ addc 27,27,0
+ and 15,15,12
+ srwi 4,28,28
+ srwi 0,28,34-32
+ adde 26,26,5
+ srwi 5,29,34-32
+ insrwi 3,28,28,0
+ insrwi 4,29,28,0
+ xor 14,14,31
+ addc 19,19,27
+ xor 15,15,30
+ insrwi 0,29,34-32,0
+ insrwi 5,28,34-32,0
+ adde 18,18,26
+ srwi 9,28,39-32
+ srwi 10,29,39-32
+ xor 0,0,3
+ addc 27,27,14
+ xor 5,5,4
+ insrwi 9,29,39-32,0
+ insrwi 10,28,39-32,0
+ adde 26,26,15
+ lwz 3,56(1)
+ lwz 4,60(1)
+ xor 0,0,9
+ xor 5,5,10
+ addc 27,27,0
+ adde 26,26,5
+ srwi 0,3,1
+ srwi 5,4,1
+ srwi 9,3,8
+ srwi 10,4,8
+ insrwi 0,4,1,0
+ insrwi 5,3,1,0
+ srwi 14,3,7
+ insrwi 9,4,8,0
+ insrwi 10,3,8,0
+ insrwi 14,4,7,0
+ xor 0,0,9
+ lwz 9,32(1)
+ srwi 15,4,7
+ xor 5,5,10
+ lwz 10,36(1)
+ xor 14,14,0
+ srwi 0,9,19
+ xor 15,15,5
+ srwi 5,10,19
+ addc 6,6,14
+ srwi 14,10,61-32
+ insrwi 0,10,19,0
+ insrwi 5,9,19,0
+ adde 8,8,15
+ srwi 15,9,61-32
+
+ insrwi 14,9,61-32,0
+ srwi 9,9,6
+ insrwi 15,10,61-32,0
+ insrwi 9,10,6,0
+ xor 0,0,14
+ lwz 14,120(1)
+ srwi 10,10,6
+ xor 5,5,15
+ lwz 15,124(1)
+ xor 0,0,9
+ addc 6,6,14
+ xor 5,5,10
+ adde 8,8,15
+ addc 6,6,0
+ adde 8,8,5
+ lwz 9,28(7)
+ xor 14,21,23
+ lwz 10,24(7)
+ xor 15,20,22
+ addc 25,25,6
+ stw 6,48(1)
+
+ srwi 0,19,14
+ srwi 5,18,14
+ and 14,14,19
+ adde 24,24,8
+ and 15,15,18
+ stw 8,52(1)
+ srwi 6,19,18
+ srwi 8,18,18
+ addc 25,25,9
+ insrwi 0,18,14,0
+ insrwi 5,19,14,0
+ xor 14,14,23
+ adde 24,24,10
+ xor 15,15,22
+ insrwi 6,18,18,0
+ insrwi 8,19,18,0
+ addc 25,25,14
+ srwi 9,18,41-32
+ srwi 10,19,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,19,41-32,0
+ insrwi 10,18,41-32,0
+ xor 14,27,29
+ adde 24,24,15
+ xor 15,26,28
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,27,28
+ and 11,11,14
+ addc 25,25,0
+ and 12,12,15
+ srwi 8,26,28
+ srwi 0,26,34-32
+ adde 24,24,5
+ srwi 5,27,34-32
+ insrwi 6,26,28,0
+ insrwi 8,27,28,0
+ xor 11,11,29
+ addc 17,17,25
+ xor 12,12,28
+ insrwi 0,27,34-32,0
+ insrwi 5,26,34-32,0
+ adde 16,16,24
+ srwi 9,26,39-32
+ srwi 10,27,39-32
+ xor 0,0,6
+ addc 25,25,11
+ xor 5,5,8
+ insrwi 9,27,39-32,0
+ insrwi 10,26,39-32,0
+ adde 24,24,12
+ lwz 6,64(1)
+ lwz 8,68(1)
+ xor 0,0,9
+ xor 5,5,10
+ addc 25,25,0
+ adde 24,24,5
+ srwi 0,6,1
+ srwi 5,8,1
+ srwi 9,6,8
+ srwi 10,8,8
+ insrwi 0,8,1,0
+ insrwi 5,6,1,0
+ srwi 11,6,7
+ insrwi 9,8,8,0
+ insrwi 10,6,8,0
+ insrwi 11,8,7,0
+ xor 0,0,9
+ lwz 9,40(1)
+ srwi 12,8,7
+ xor 5,5,10
+ lwz 10,44(1)
+ xor 11,11,0
+ srwi 0,9,19
+ xor 12,12,5
+ srwi 5,10,19
+ addc 3,3,11
+ srwi 11,10,61-32
+ insrwi 0,10,19,0
+ insrwi 5,9,19,0
+ adde 4,4,12
+ srwi 12,9,61-32
+
+ insrwi 11,9,61-32,0
+ srwi 9,9,6
+ insrwi 12,10,61-32,0
+ insrwi 9,10,6,0
+ xor 0,0,11
+ lwz 11,128(1)
+ srwi 10,10,6
+ xor 5,5,12
+ lwz 12,132(1)
+ xor 0,0,9
+ addc 3,3,11
+ xor 5,5,10
+ adde 4,4,12
+ addc 3,3,0
+ adde 4,4,5
+ lwz 9,36(7)
+ xor 11,19,21
+ lwz 10,32(7)
+ xor 12,18,20
+ addc 23,23,3
+ stw 3,56(1)
+
+ srwi 0,17,14
+ srwi 5,16,14
+ and 11,11,17
+ adde 22,22,4
+ and 12,12,16
+ stw 4,60(1)
+ srwi 3,17,18
+ srwi 4,16,18
+ addc 23,23,9
+ insrwi 0,16,14,0
+ insrwi 5,17,14,0
+ xor 11,11,21
+ adde 22,22,10
+ xor 12,12,20
+ insrwi 3,16,18,0
+ insrwi 4,17,18,0
+ addc 23,23,11
+ srwi 9,16,41-32
+ srwi 10,17,41-32
+ xor 0,0,3
+ xor 5,5,4
+ insrwi 9,17,41-32,0
+ insrwi 10,16,41-32,0
+ xor 11,25,27
+ adde 22,22,12
+ xor 12,24,26
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 3,25,28
+ and 14,14,11
+ addc 23,23,0
+ and 15,15,12
+ srwi 4,24,28
+ srwi 0,24,34-32
+ adde 22,22,5
+ srwi 5,25,34-32
+ insrwi 3,24,28,0
+ insrwi 4,25,28,0
+ xor 14,14,27
+ addc 31,31,23
+ xor 15,15,26
+ insrwi 0,25,34-32,0
+ insrwi 5,24,34-32,0
+ adde 30,30,22
+ srwi 9,24,39-32
+ srwi 10,25,39-32
+ xor 0,0,3
+ addc 23,23,14
+ xor 5,5,4
+ insrwi 9,25,39-32,0
+ insrwi 10,24,39-32,0
+ adde 22,22,15
+ lwz 3,72(1)
+ lwz 4,76(1)
+ xor 0,0,9
+ xor 5,5,10
+ addc 23,23,0
+ adde 22,22,5
+ srwi 0,3,1
+ srwi 5,4,1
+ srwi 9,3,8
+ srwi 10,4,8
+ insrwi 0,4,1,0
+ insrwi 5,3,1,0
+ srwi 14,3,7
+ insrwi 9,4,8,0
+ insrwi 10,3,8,0
+ insrwi 14,4,7,0
+ xor 0,0,9
+ lwz 9,48(1)
+ srwi 15,4,7
+ xor 5,5,10
+ lwz 10,52(1)
+ xor 14,14,0
+ srwi 0,9,19
+ xor 15,15,5
+ srwi 5,10,19
+ addc 6,6,14
+ srwi 14,10,61-32
+ insrwi 0,10,19,0
+ insrwi 5,9,19,0
+ adde 8,8,15
+ srwi 15,9,61-32
+
+ insrwi 14,9,61-32,0
+ srwi 9,9,6
+ insrwi 15,10,61-32,0
+ insrwi 9,10,6,0
+ xor 0,0,14
+ lwz 14,136(1)
+ srwi 10,10,6
+ xor 5,5,15
+ lwz 15,140(1)
+ xor 0,0,9
+ addc 6,6,14
+ xor 5,5,10
+ adde 8,8,15
+ addc 6,6,0
+ adde 8,8,5
+ lwz 9,44(7)
+ xor 14,17,19
+ lwz 10,40(7)
+ xor 15,16,18
+ addc 21,21,6
+ stw 6,64(1)
+
+ srwi 0,31,14
+ srwi 5,30,14
+ and 14,14,31
+ adde 20,20,8
+ and 15,15,30
+ stw 8,68(1)
+ srwi 6,31,18
+ srwi 8,30,18
+ addc 21,21,9
+ insrwi 0,30,14,0
+ insrwi 5,31,14,0
+ xor 14,14,19
+ adde 20,20,10
+ xor 15,15,18
+ insrwi 6,30,18,0
+ insrwi 8,31,18,0
+ addc 21,21,14
+ srwi 9,30,41-32
+ srwi 10,31,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,31,41-32,0
+ insrwi 10,30,41-32,0
+ xor 14,23,25
+ adde 20,20,15
+ xor 15,22,24
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,23,28
+ and 11,11,14
+ addc 21,21,0
+ and 12,12,15
+ srwi 8,22,28
+ srwi 0,22,34-32
+ adde 20,20,5
+ srwi 5,23,34-32
+ insrwi 6,22,28,0
+ insrwi 8,23,28,0
+ xor 11,11,25
+ addc 29,29,21
+ xor 12,12,24
+ insrwi 0,23,34-32,0
+ insrwi 5,22,34-32,0
+ adde 28,28,20
+ srwi 9,22,39-32
+ srwi 10,23,39-32
+ xor 0,0,6
+ addc 21,21,11
+ xor 5,5,8
+ insrwi 9,23,39-32,0
+ insrwi 10,22,39-32,0
+ adde 20,20,12
+ lwz 6,80(1)
+ lwz 8,84(1)
+ xor 0,0,9
+ xor 5,5,10
+ addc 21,21,0
+ adde 20,20,5
+ srwi 0,6,1
+ srwi 5,8,1
+ srwi 9,6,8
+ srwi 10,8,8
+ insrwi 0,8,1,0
+ insrwi 5,6,1,0
+ srwi 11,6,7
+ insrwi 9,8,8,0
+ insrwi 10,6,8,0
+ insrwi 11,8,7,0
+ xor 0,0,9
+ lwz 9,56(1)
+ srwi 12,8,7
+ xor 5,5,10
+ lwz 10,60(1)
+ xor 11,11,0
+ srwi 0,9,19
+ xor 12,12,5
+ srwi 5,10,19
+ addc 3,3,11
+ srwi 11,10,61-32
+ insrwi 0,10,19,0
+ insrwi 5,9,19,0
+ adde 4,4,12
+ srwi 12,9,61-32
+
+ insrwi 11,9,61-32,0
+ srwi 9,9,6
+ insrwi 12,10,61-32,0
+ insrwi 9,10,6,0
+ xor 0,0,11
+ lwz 11,144(1)
+ srwi 10,10,6
+ xor 5,5,12
+ lwz 12,148(1)
+ xor 0,0,9
+ addc 3,3,11
+ xor 5,5,10
+ adde 4,4,12
+ addc 3,3,0
+ adde 4,4,5
+ lwz 9,52(7)
+ xor 11,31,17
+ lwz 10,48(7)
+ xor 12,30,16
+ addc 19,19,3
+ stw 3,72(1)
+
+ srwi 0,29,14
+ srwi 5,28,14
+ and 11,11,29
+ adde 18,18,4
+ and 12,12,28
+ stw 4,76(1)
+ srwi 3,29,18
+ srwi 4,28,18
+ addc 19,19,9
+ insrwi 0,28,14,0
+ insrwi 5,29,14,0
+ xor 11,11,17
+ adde 18,18,10
+ xor 12,12,16
+ insrwi 3,28,18,0
+ insrwi 4,29,18,0
+ addc 19,19,11
+ srwi 9,28,41-32
+ srwi 10,29,41-32
+ xor 0,0,3
+ xor 5,5,4
+ insrwi 9,29,41-32,0
+ insrwi 10,28,41-32,0
+ xor 11,21,23
+ adde 18,18,12
+ xor 12,20,22
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 3,21,28
+ and 14,14,11
+ addc 19,19,0
+ and 15,15,12
+ srwi 4,20,28
+ srwi 0,20,34-32
+ adde 18,18,5
+ srwi 5,21,34-32
+ insrwi 3,20,28,0
+ insrwi 4,21,28,0
+ xor 14,14,23
+ addc 27,27,19
+ xor 15,15,22
+ insrwi 0,21,34-32,0
+ insrwi 5,20,34-32,0
+ adde 26,26,18
+ srwi 9,20,39-32
+ srwi 10,21,39-32
+ xor 0,0,3
+ addc 19,19,14
+ xor 5,5,4
+ insrwi 9,21,39-32,0
+ insrwi 10,20,39-32,0
+ adde 18,18,15
+ lwz 3,88(1)
+ lwz 4,92(1)
+ xor 0,0,9
+ xor 5,5,10
+ addc 19,19,0
+ adde 18,18,5
+ srwi 0,3,1
+ srwi 5,4,1
+ srwi 9,3,8
+ srwi 10,4,8
+ insrwi 0,4,1,0
+ insrwi 5,3,1,0
+ srwi 14,3,7
+ insrwi 9,4,8,0
+ insrwi 10,3,8,0
+ insrwi 14,4,7,0
+ xor 0,0,9
+ lwz 9,64(1)
+ srwi 15,4,7
+ xor 5,5,10
+ lwz 10,68(1)
+ xor 14,14,0
+ srwi 0,9,19
+ xor 15,15,5
+ srwi 5,10,19
+ addc 6,6,14
+ srwi 14,10,61-32
+ insrwi 0,10,19,0
+ insrwi 5,9,19,0
+ adde 8,8,15
+ srwi 15,9,61-32
+
+ insrwi 14,9,61-32,0
+ srwi 9,9,6
+ insrwi 15,10,61-32,0
+ insrwi 9,10,6,0
+ xor 0,0,14
+ lwz 14,24(1)
+ srwi 10,10,6
+ xor 5,5,15
+ lwz 15,28(1)
+ xor 0,0,9
+ addc 6,6,14
+ xor 5,5,10
+ adde 8,8,15
+ addc 6,6,0
+ adde 8,8,5
+ lwz 9,60(7)
+ xor 14,29,31
+ lwz 10,56(7)
+ xor 15,28,30
+ addc 17,17,6
+ stw 6,80(1)
+
+ srwi 0,27,14
+ srwi 5,26,14
+ and 14,14,27
+ adde 16,16,8
+ and 15,15,26
+ stw 8,84(1)
+ srwi 6,27,18
+ srwi 8,26,18
+ addc 17,17,9
+ insrwi 0,26,14,0
+ insrwi 5,27,14,0
+ xor 14,14,31
+ adde 16,16,10
+ xor 15,15,30
+ insrwi 6,26,18,0
+ insrwi 8,27,18,0
+ addc 17,17,14
+ srwi 9,26,41-32
+ srwi 10,27,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,27,41-32,0
+ insrwi 10,26,41-32,0
+ xor 14,19,21
+ adde 16,16,15
+ xor 15,18,20
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,19,28
+ and 11,11,14
+ addc 17,17,0
+ and 12,12,15
+ srwi 8,18,28
+ srwi 0,18,34-32
+ adde 16,16,5
+ srwi 5,19,34-32
+ insrwi 6,18,28,0
+ insrwi 8,19,28,0
+ xor 11,11,21
+ addc 25,25,17
+ xor 12,12,20
+ insrwi 0,19,34-32,0
+ insrwi 5,18,34-32,0
+ adde 24,24,16
+ srwi 9,18,39-32
+ srwi 10,19,39-32
+ xor 0,0,6
+ addc 17,17,11
+ xor 5,5,8
+ insrwi 9,19,39-32,0
+ insrwi 10,18,39-32,0
+ adde 16,16,12
+ lwz 6,96(1)
+ lwz 8,100(1)
+ xor 0,0,9
+ xor 5,5,10
+ addc 17,17,0
+ adde 16,16,5
+ srwi 0,6,1
+ srwi 5,8,1
+ srwi 9,6,8
+ srwi 10,8,8
+ insrwi 0,8,1,0
+ insrwi 5,6,1,0
+ srwi 11,6,7
+ insrwi 9,8,8,0
+ insrwi 10,6,8,0
+ insrwi 11,8,7,0
+ xor 0,0,9
+ lwz 9,72(1)
+ srwi 12,8,7
+ xor 5,5,10
+ lwz 10,76(1)
+ xor 11,11,0
+ srwi 0,9,19
+ xor 12,12,5
+ srwi 5,10,19
+ addc 3,3,11
+ srwi 11,10,61-32
+ insrwi 0,10,19,0
+ insrwi 5,9,19,0
+ adde 4,4,12
+ srwi 12,9,61-32
+
+ insrwi 11,9,61-32,0
+ srwi 9,9,6
+ insrwi 12,10,61-32,0
+ insrwi 9,10,6,0
+ xor 0,0,11
+ lwz 11,32(1)
+ srwi 10,10,6
+ xor 5,5,12
+ lwz 12,36(1)
+ xor 0,0,9
+ addc 3,3,11
+ xor 5,5,10
+ adde 4,4,12
+ addc 3,3,0
+ adde 4,4,5
+ lwz 9,68(7)
+ xor 11,27,29
+ lwz 10,64(7)
+ xor 12,26,28
+ addc 31,31,3
+ stw 3,88(1)
+
+ srwi 0,25,14
+ srwi 5,24,14
+ and 11,11,25
+ adde 30,30,4
+ and 12,12,24
+ stw 4,92(1)
+ srwi 3,25,18
+ srwi 4,24,18
+ addc 31,31,9
+ insrwi 0,24,14,0
+ insrwi 5,25,14,0
+ xor 11,11,29
+ adde 30,30,10
+ xor 12,12,28
+ insrwi 3,24,18,0
+ insrwi 4,25,18,0
+ addc 31,31,11
+ srwi 9,24,41-32
+ srwi 10,25,41-32
+ xor 0,0,3
+ xor 5,5,4
+ insrwi 9,25,41-32,0
+ insrwi 10,24,41-32,0
+ xor 11,17,19
+ adde 30,30,12
+ xor 12,16,18
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 3,17,28
+ and 14,14,11
+ addc 31,31,0
+ and 15,15,12
+ srwi 4,16,28
+ srwi 0,16,34-32
+ adde 30,30,5
+ srwi 5,17,34-32
+ insrwi 3,16,28,0
+ insrwi 4,17,28,0
+ xor 14,14,19
+ addc 23,23,31
+ xor 15,15,18
+ insrwi 0,17,34-32,0
+ insrwi 5,16,34-32,0
+ adde 22,22,30
+ srwi 9,16,39-32
+ srwi 10,17,39-32
+ xor 0,0,3
+ addc 31,31,14
+ xor 5,5,4
+ insrwi 9,17,39-32,0
+ insrwi 10,16,39-32,0
+ adde 30,30,15
+ lwz 3,104(1)
+ lwz 4,108(1)
+ xor 0,0,9
+ xor 5,5,10
+ addc 31,31,0
+ adde 30,30,5
+ srwi 0,3,1
+ srwi 5,4,1
+ srwi 9,3,8
+ srwi 10,4,8
+ insrwi 0,4,1,0
+ insrwi 5,3,1,0
+ srwi 14,3,7
+ insrwi 9,4,8,0
+ insrwi 10,3,8,0
+ insrwi 14,4,7,0
+ xor 0,0,9
+ lwz 9,80(1)
+ srwi 15,4,7
+ xor 5,5,10
+ lwz 10,84(1)
+ xor 14,14,0
+ srwi 0,9,19
+ xor 15,15,5
+ srwi 5,10,19
+ addc 6,6,14
+ srwi 14,10,61-32
+ insrwi 0,10,19,0
+ insrwi 5,9,19,0
+ adde 8,8,15
+ srwi 15,9,61-32
+
+ insrwi 14,9,61-32,0
+ srwi 9,9,6
+ insrwi 15,10,61-32,0
+ insrwi 9,10,6,0
+ xor 0,0,14
+ lwz 14,40(1)
+ srwi 10,10,6
+ xor 5,5,15
+ lwz 15,44(1)
+ xor 0,0,9
+ addc 6,6,14
+ xor 5,5,10
+ adde 8,8,15
+ addc 6,6,0
+ adde 8,8,5
+ lwz 9,76(7)
+ xor 14,25,27
+ lwz 10,72(7)
+ xor 15,24,26
+ addc 29,29,6
+ stw 6,96(1)
+
+ srwi 0,23,14
+ srwi 5,22,14
+ and 14,14,23
+ adde 28,28,8
+ and 15,15,22
+ stw 8,100(1)
+ srwi 6,23,18
+ srwi 8,22,18
+ addc 29,29,9
+ insrwi 0,22,14,0
+ insrwi 5,23,14,0
+ xor 14,14,27
+ adde 28,28,10
+ xor 15,15,26
+ insrwi 6,22,18,0
+ insrwi 8,23,18,0
+ addc 29,29,14
+ srwi 9,22,41-32
+ srwi 10,23,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,23,41-32,0
+ insrwi 10,22,41-32,0
+ xor 14,31,17
+ adde 28,28,15
+ xor 15,30,16
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,31,28
+ and 11,11,14
+ addc 29,29,0
+ and 12,12,15
+ srwi 8,30,28
+ srwi 0,30,34-32
+ adde 28,28,5
+ srwi 5,31,34-32
+ insrwi 6,30,28,0
+ insrwi 8,31,28,0
+ xor 11,11,17
+ addc 21,21,29
+ xor 12,12,16
+ insrwi 0,31,34-32,0
+ insrwi 5,30,34-32,0
+ adde 20,20,28
+ srwi 9,30,39-32
+ srwi 10,31,39-32
+ xor 0,0,6
+ addc 29,29,11
+ xor 5,5,8
+ insrwi 9,31,39-32,0
+ insrwi 10,30,39-32,0
+ adde 28,28,12
+ lwz 6,112(1)
+ lwz 8,116(1)
+ xor 0,0,9
+ xor 5,5,10
+ addc 29,29,0
+ adde 28,28,5
+ srwi 0,6,1
+ srwi 5,8,1
+ srwi 9,6,8
+ srwi 10,8,8
+ insrwi 0,8,1,0
+ insrwi 5,6,1,0
+ srwi 11,6,7
+ insrwi 9,8,8,0
+ insrwi 10,6,8,0
+ insrwi 11,8,7,0
+ xor 0,0,9
+ lwz 9,88(1)
+ srwi 12,8,7
+ xor 5,5,10
+ lwz 10,92(1)
+ xor 11,11,0
+ srwi 0,9,19
+ xor 12,12,5
+ srwi 5,10,19
+ addc 3,3,11
+ srwi 11,10,61-32
+ insrwi 0,10,19,0
+ insrwi 5,9,19,0
+ adde 4,4,12
+ srwi 12,9,61-32
+
+ insrwi 11,9,61-32,0
+ srwi 9,9,6
+ insrwi 12,10,61-32,0
+ insrwi 9,10,6,0
+ xor 0,0,11
+ lwz 11,48(1)
+ srwi 10,10,6
+ xor 5,5,12
+ lwz 12,52(1)
+ xor 0,0,9
+ addc 3,3,11
+ xor 5,5,10
+ adde 4,4,12
+ addc 3,3,0
+ adde 4,4,5
+ lwz 9,84(7)
+ xor 11,23,25
+ lwz 10,80(7)
+ xor 12,22,24
+ addc 27,27,3
+ stw 3,104(1)
+
+ srwi 0,21,14
+ srwi 5,20,14
+ and 11,11,21
+ adde 26,26,4
+ and 12,12,20
+ stw 4,108(1)
+ srwi 3,21,18
+ srwi 4,20,18
+ addc 27,27,9
+ insrwi 0,20,14,0
+ insrwi 5,21,14,0
+ xor 11,11,25
+ adde 26,26,10
+ xor 12,12,24
+ insrwi 3,20,18,0
+ insrwi 4,21,18,0
+ addc 27,27,11
+ srwi 9,20,41-32
+ srwi 10,21,41-32
+ xor 0,0,3
+ xor 5,5,4
+ insrwi 9,21,41-32,0
+ insrwi 10,20,41-32,0
+ xor 11,29,31
+ adde 26,26,12
+ xor 12,28,30
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 3,29,28
+ and 14,14,11
+ addc 27,27,0
+ and 15,15,12
+ srwi 4,28,28
+ srwi 0,28,34-32
+ adde 26,26,5
+ srwi 5,29,34-32
+ insrwi 3,28,28,0
+ insrwi 4,29,28,0
+ xor 14,14,31
+ addc 19,19,27
+ xor 15,15,30
+ insrwi 0,29,34-32,0
+ insrwi 5,28,34-32,0
+ adde 18,18,26
+ srwi 9,28,39-32
+ srwi 10,29,39-32
+ xor 0,0,3
+ addc 27,27,14
+ xor 5,5,4
+ insrwi 9,29,39-32,0
+ insrwi 10,28,39-32,0
+ adde 26,26,15
+ lwz 3,120(1)
+ lwz 4,124(1)
+ xor 0,0,9
+ xor 5,5,10
+ addc 27,27,0
+ adde 26,26,5
+ srwi 0,3,1
+ srwi 5,4,1
+ srwi 9,3,8
+ srwi 10,4,8
+ insrwi 0,4,1,0
+ insrwi 5,3,1,0
+ srwi 14,3,7
+ insrwi 9,4,8,0
+ insrwi 10,3,8,0
+ insrwi 14,4,7,0
+ xor 0,0,9
+ lwz 9,96(1)
+ srwi 15,4,7
+ xor 5,5,10
+ lwz 10,100(1)
+ xor 14,14,0
+ srwi 0,9,19
+ xor 15,15,5
+ srwi 5,10,19
+ addc 6,6,14
+ srwi 14,10,61-32
+ insrwi 0,10,19,0
+ insrwi 5,9,19,0
+ adde 8,8,15
+ srwi 15,9,61-32
+
+ insrwi 14,9,61-32,0
+ srwi 9,9,6
+ insrwi 15,10,61-32,0
+ insrwi 9,10,6,0
+ xor 0,0,14
+ lwz 14,56(1)
+ srwi 10,10,6
+ xor 5,5,15
+ lwz 15,60(1)
+ xor 0,0,9
+ addc 6,6,14
+ xor 5,5,10
+ adde 8,8,15
+ addc 6,6,0
+ adde 8,8,5
+ lwz 9,92(7)
+ xor 14,21,23
+ lwz 10,88(7)
+ xor 15,20,22
+ addc 25,25,6
+ stw 6,112(1)
+
+ srwi 0,19,14
+ srwi 5,18,14
+ and 14,14,19
+ adde 24,24,8
+ and 15,15,18
+ stw 8,116(1)
+ srwi 6,19,18
+ srwi 8,18,18
+ addc 25,25,9
+ insrwi 0,18,14,0
+ insrwi 5,19,14,0
+ xor 14,14,23
+ adde 24,24,10
+ xor 15,15,22
+ insrwi 6,18,18,0
+ insrwi 8,19,18,0
+ addc 25,25,14
+ srwi 9,18,41-32
+ srwi 10,19,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,19,41-32,0
+ insrwi 10,18,41-32,0
+ xor 14,27,29
+ adde 24,24,15
+ xor 15,26,28
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,27,28
+ and 11,11,14
+ addc 25,25,0
+ and 12,12,15
+ srwi 8,26,28
+ srwi 0,26,34-32
+ adde 24,24,5
+ srwi 5,27,34-32
+ insrwi 6,26,28,0
+ insrwi 8,27,28,0
+ xor 11,11,29
+ addc 17,17,25
+ xor 12,12,28
+ insrwi 0,27,34-32,0
+ insrwi 5,26,34-32,0
+ adde 16,16,24
+ srwi 9,26,39-32
+ srwi 10,27,39-32
+ xor 0,0,6
+ addc 25,25,11
+ xor 5,5,8
+ insrwi 9,27,39-32,0
+ insrwi 10,26,39-32,0
+ adde 24,24,12
+ lwz 6,128(1)
+ lwz 8,132(1)
+ xor 0,0,9
+ xor 5,5,10
+ addc 25,25,0
+ adde 24,24,5
+ srwi 0,6,1
+ srwi 5,8,1
+ srwi 9,6,8
+ srwi 10,8,8
+ insrwi 0,8,1,0
+ insrwi 5,6,1,0
+ srwi 11,6,7
+ insrwi 9,8,8,0
+ insrwi 10,6,8,0
+ insrwi 11,8,7,0
+ xor 0,0,9
+ lwz 9,104(1)
+ srwi 12,8,7
+ xor 5,5,10
+ lwz 10,108(1)
+ xor 11,11,0
+ srwi 0,9,19
+ xor 12,12,5
+ srwi 5,10,19
+ addc 3,3,11
+ srwi 11,10,61-32
+ insrwi 0,10,19,0
+ insrwi 5,9,19,0
+ adde 4,4,12
+ srwi 12,9,61-32
+
+ insrwi 11,9,61-32,0
+ srwi 9,9,6
+ insrwi 12,10,61-32,0
+ insrwi 9,10,6,0
+ xor 0,0,11
+ lwz 11,64(1)
+ srwi 10,10,6
+ xor 5,5,12
+ lwz 12,68(1)
+ xor 0,0,9
+ addc 3,3,11
+ xor 5,5,10
+ adde 4,4,12
+ addc 3,3,0
+ adde 4,4,5
+ lwz 9,100(7)
+ xor 11,19,21
+ lwz 10,96(7)
+ xor 12,18,20
+ addc 23,23,3
+ stw 3,120(1)
+
+ srwi 0,17,14
+ srwi 5,16,14
+ and 11,11,17
+ adde 22,22,4
+ and 12,12,16
+ stw 4,124(1)
+ srwi 3,17,18
+ srwi 4,16,18
+ addc 23,23,9
+ insrwi 0,16,14,0
+ insrwi 5,17,14,0
+ xor 11,11,21
+ adde 22,22,10
+ xor 12,12,20
+ insrwi 3,16,18,0
+ insrwi 4,17,18,0
+ addc 23,23,11
+ srwi 9,16,41-32
+ srwi 10,17,41-32
+ xor 0,0,3
+ xor 5,5,4
+ insrwi 9,17,41-32,0
+ insrwi 10,16,41-32,0
+ xor 11,25,27
+ adde 22,22,12
+ xor 12,24,26
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 3,25,28
+ and 14,14,11
+ addc 23,23,0
+ and 15,15,12
+ srwi 4,24,28
+ srwi 0,24,34-32
+ adde 22,22,5
+ srwi 5,25,34-32
+ insrwi 3,24,28,0
+ insrwi 4,25,28,0
+ xor 14,14,27
+ addc 31,31,23
+ xor 15,15,26
+ insrwi 0,25,34-32,0
+ insrwi 5,24,34-32,0
+ adde 30,30,22
+ srwi 9,24,39-32
+ srwi 10,25,39-32
+ xor 0,0,3
+ addc 23,23,14
+ xor 5,5,4
+ insrwi 9,25,39-32,0
+ insrwi 10,24,39-32,0
+ adde 22,22,15
+ lwz 3,136(1)
+ lwz 4,140(1)
+ xor 0,0,9
+ xor 5,5,10
+ addc 23,23,0
+ adde 22,22,5
+ srwi 0,3,1
+ srwi 5,4,1
+ srwi 9,3,8
+ srwi 10,4,8
+ insrwi 0,4,1,0
+ insrwi 5,3,1,0
+ srwi 14,3,7
+ insrwi 9,4,8,0
+ insrwi 10,3,8,0
+ insrwi 14,4,7,0
+ xor 0,0,9
+ lwz 9,112(1)
+ srwi 15,4,7
+ xor 5,5,10
+ lwz 10,116(1)
+ xor 14,14,0
+ srwi 0,9,19
+ xor 15,15,5
+ srwi 5,10,19
+ addc 6,6,14
+ srwi 14,10,61-32
+ insrwi 0,10,19,0
+ insrwi 5,9,19,0
+ adde 8,8,15
+ srwi 15,9,61-32
+
+ insrwi 14,9,61-32,0
+ srwi 9,9,6
+ insrwi 15,10,61-32,0
+ insrwi 9,10,6,0
+ xor 0,0,14
+ lwz 14,72(1)
+ srwi 10,10,6
+ xor 5,5,15
+ lwz 15,76(1)
+ xor 0,0,9
+ addc 6,6,14
+ xor 5,5,10
+ adde 8,8,15
+ addc 6,6,0
+ adde 8,8,5
+ lwz 9,108(7)
+ xor 14,17,19
+ lwz 10,104(7)
+ xor 15,16,18
+ addc 21,21,6
+ stw 6,128(1)
+
+ srwi 0,31,14
+ srwi 5,30,14
+ and 14,14,31
+ adde 20,20,8
+ and 15,15,30
+ stw 8,132(1)
+ srwi 6,31,18
+ srwi 8,30,18
+ addc 21,21,9
+ insrwi 0,30,14,0
+ insrwi 5,31,14,0
+ xor 14,14,19
+ adde 20,20,10
+ xor 15,15,18
+ insrwi 6,30,18,0
+ insrwi 8,31,18,0
+ addc 21,21,14
+ srwi 9,30,41-32
+ srwi 10,31,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,31,41-32,0
+ insrwi 10,30,41-32,0
+ xor 14,23,25
+ adde 20,20,15
+ xor 15,22,24
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,23,28
+ and 11,11,14
+ addc 21,21,0
+ and 12,12,15
+ srwi 8,22,28
+ srwi 0,22,34-32
+ adde 20,20,5
+ srwi 5,23,34-32
+ insrwi 6,22,28,0
+ insrwi 8,23,28,0
+ xor 11,11,25
+ addc 29,29,21
+ xor 12,12,24
+ insrwi 0,23,34-32,0
+ insrwi 5,22,34-32,0
+ adde 28,28,20
+ srwi 9,22,39-32
+ srwi 10,23,39-32
+ xor 0,0,6
+ addc 21,21,11
+ xor 5,5,8
+ insrwi 9,23,39-32,0
+ insrwi 10,22,39-32,0
+ adde 20,20,12
+ lwz 6,144(1)
+ lwz 8,148(1)
+ xor 0,0,9
+ xor 5,5,10
+ addc 21,21,0
+ adde 20,20,5
+ srwi 0,6,1
+ srwi 5,8,1
+ srwi 9,6,8
+ srwi 10,8,8
+ insrwi 0,8,1,0
+ insrwi 5,6,1,0
+ srwi 11,6,7
+ insrwi 9,8,8,0
+ insrwi 10,6,8,0
+ insrwi 11,8,7,0
+ xor 0,0,9
+ lwz 9,120(1)
+ srwi 12,8,7
+ xor 5,5,10
+ lwz 10,124(1)
+ xor 11,11,0
+ srwi 0,9,19
+ xor 12,12,5
+ srwi 5,10,19
+ addc 3,3,11
+ srwi 11,10,61-32
+ insrwi 0,10,19,0
+ insrwi 5,9,19,0
+ adde 4,4,12
+ srwi 12,9,61-32
+
+ insrwi 11,9,61-32,0
+ srwi 9,9,6
+ insrwi 12,10,61-32,0
+ insrwi 9,10,6,0
+ xor 0,0,11
+ lwz 11,80(1)
+ srwi 10,10,6
+ xor 5,5,12
+ lwz 12,84(1)
+ xor 0,0,9
+ addc 3,3,11
+ xor 5,5,10
+ adde 4,4,12
+ addc 3,3,0
+ adde 4,4,5
+ lwz 9,116(7)
+ xor 11,31,17
+ lwz 10,112(7)
+ xor 12,30,16
+ addc 19,19,3
+ stw 3,136(1)
+
+ srwi 0,29,14
+ srwi 5,28,14
+ and 11,11,29
+ adde 18,18,4
+ and 12,12,28
+ stw 4,140(1)
+ srwi 3,29,18
+ srwi 4,28,18
+ addc 19,19,9
+ insrwi 0,28,14,0
+ insrwi 5,29,14,0
+ xor 11,11,17
+ adde 18,18,10
+ xor 12,12,16
+ insrwi 3,28,18,0
+ insrwi 4,29,18,0
+ addc 19,19,11
+ srwi 9,28,41-32
+ srwi 10,29,41-32
+ xor 0,0,3
+ xor 5,5,4
+ insrwi 9,29,41-32,0
+ insrwi 10,28,41-32,0
+ xor 11,21,23
+ adde 18,18,12
+ xor 12,20,22
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 3,21,28
+ and 14,14,11
+ addc 19,19,0
+ and 15,15,12
+ srwi 4,20,28
+ srwi 0,20,34-32
+ adde 18,18,5
+ srwi 5,21,34-32
+ insrwi 3,20,28,0
+ insrwi 4,21,28,0
+ xor 14,14,23
+ addc 27,27,19
+ xor 15,15,22
+ insrwi 0,21,34-32,0
+ insrwi 5,20,34-32,0
+ adde 26,26,18
+ srwi 9,20,39-32
+ srwi 10,21,39-32
+ xor 0,0,3
+ addc 19,19,14
+ xor 5,5,4
+ insrwi 9,21,39-32,0
+ insrwi 10,20,39-32,0
+ adde 18,18,15
+ lwz 3,24(1)
+ lwz 4,28(1)
+ xor 0,0,9
+ xor 5,5,10
+ addc 19,19,0
+ adde 18,18,5
+ srwi 0,3,1
+ srwi 5,4,1
+ srwi 9,3,8
+ srwi 10,4,8
+ insrwi 0,4,1,0
+ insrwi 5,3,1,0
+ srwi 14,3,7
+ insrwi 9,4,8,0
+ insrwi 10,3,8,0
+ insrwi 14,4,7,0
+ xor 0,0,9
+ lwz 9,128(1)
+ srwi 15,4,7
+ xor 5,5,10
+ lwz 10,132(1)
+ xor 14,14,0
+ srwi 0,9,19
+ xor 15,15,5
+ srwi 5,10,19
+ addc 6,6,14
+ srwi 14,10,61-32
+ insrwi 0,10,19,0
+ insrwi 5,9,19,0
+ adde 8,8,15
+ srwi 15,9,61-32
+
+ insrwi 14,9,61-32,0
+ srwi 9,9,6
+ insrwi 15,10,61-32,0
+ insrwi 9,10,6,0
+ xor 0,0,14
+ lwz 14,88(1)
+ srwi 10,10,6
+ xor 5,5,15
+ lwz 15,92(1)
+ xor 0,0,9
+ addc 6,6,14
+ xor 5,5,10
+ adde 8,8,15
+ addc 6,6,0
+ adde 8,8,5
+ lwz 9,124(7)
+ xor 14,29,31
+ lwz 10,120(7)
+ xor 15,28,30
+ addc 17,17,6
+ stw 6,144(1)
+
+ srwi 0,27,14
+ srwi 5,26,14
+ and 14,14,27
+ adde 16,16,8
+ and 15,15,26
+ stw 8,148(1)
+ srwi 6,27,18
+ srwi 8,26,18
+ addc 17,17,9
+ insrwi 0,26,14,0
+ insrwi 5,27,14,0
+ xor 14,14,31
+ adde 16,16,10
+ xor 15,15,30
+ insrwi 6,26,18,0
+ insrwi 8,27,18,0
+ addc 17,17,14
+ srwi 9,26,41-32
+ srwi 10,27,41-32
+ xor 0,0,6
+ xor 5,5,8
+ insrwi 9,27,41-32,0
+ insrwi 10,26,41-32,0
+ xor 14,19,21
+ adde 16,16,15
+ xor 15,18,20
+ xor 0,0,9
+ xor 5,5,10
+
+ srwi 6,19,28
+ and 11,11,14
+ addc 17,17,0
+ and 12,12,15
+ srwi 8,18,28
+ srwi 0,18,34-32
+ adde 16,16,5
+ srwi 5,19,34-32
+ insrwi 6,18,28,0
+ insrwi 8,19,28,0
+ xor 11,11,21
+ addc 25,25,17
+ xor 12,12,20
+ insrwi 0,19,34-32,0
+ insrwi 5,18,34-32,0
+ adde 24,24,16
+ srwi 9,18,39-32
+ srwi 10,19,39-32
+ xor 0,0,6
+ addc 17,17,11
+ xor 5,5,8
+ insrwi 9,19,39-32,0
+ insrwi 10,18,39-32,0
+ adde 16,16,12
+ lwz 6,32(1)
+ lwz 8,36(1)
+ xor 0,0,9
+ xor 5,5,10
+ addc 17,17,0
+ adde 16,16,5
+ bdnz .Lrounds
+
+ lwz 3,168(1)
+ lwz 4,164(1)
+ lwz 5,160(1)
+ subi 7,7,512
+
+ lwz 6,0(3)
+ lwz 8,4(3)
+ lwz 9,8(3)
+ lwz 10,12(3)
+ lwz 11,16(3)
+ lwz 12,20(3)
+ lwz 14,24(3)
+ addc 17,17,8
+ lwz 15,28(3)
+ adde 16,16,6
+ lwz 6,32(3)
+ addc 19,19,10
+ lwz 8,36(3)
+ adde 18,18,9
+ lwz 9,40(3)
+ addc 21,21,12
+ lwz 10,44(3)
+ adde 20,20,11
+ lwz 11,48(3)
+ addc 23,23,15
+ lwz 12,52(3)
+ adde 22,22,14
+ lwz 14,56(3)
+ addc 25,25,8
+ lwz 15,60(3)
+ adde 24,24,6
+ stw 16,0(3)
+ stw 17,4(3)
+ addc 27,27,10
+ stw 18,8(3)
+ stw 19,12(3)
+ adde 26,26,9
+ stw 20,16(3)
+ stw 21,20(3)
+ addc 29,29,12
+ stw 22,24(3)
+ stw 23,28(3)
+ adde 28,28,11
+ stw 24,32(3)
+ stw 25,36(3)
+ addc 31,31,15
+ stw 26,40(3)
+ stw 27,44(3)
+ adde 30,30,14
+ stw 28,48(3)
+ stw 29,52(3)
+ stw 30,56(3)
+ stw 31,60(3)
+
+ addi 4,4,128
+ stw 4,164(1)
+ .long 0x7c042840
+ bne .Lsha2_block_private
+ blr
+.long 0
+.byte 0,12,0x14,0,0,0,0,0
+.size sha512_block_ppc,.-sha512_block_ppc
+.align 6
+.LPICmeup:
+ mflr 0
+ bcl 20,31,$+4
+ mflr 7
+ addi 7,7,56
+ mtlr 0
+ blr
+.long 0
+.byte 0,12,0x14,0,0,0,0,0
+.space 28
+.long 0x428a2f98,0xd728ae22
+.long 0x71374491,0x23ef65cd
+.long 0xb5c0fbcf,0xec4d3b2f
+.long 0xe9b5dba5,0x8189dbbc
+.long 0x3956c25b,0xf348b538
+.long 0x59f111f1,0xb605d019
+.long 0x923f82a4,0xaf194f9b
+.long 0xab1c5ed5,0xda6d8118
+.long 0xd807aa98,0xa3030242
+.long 0x12835b01,0x45706fbe
+.long 0x243185be,0x4ee4b28c
+.long 0x550c7dc3,0xd5ffb4e2
+.long 0x72be5d74,0xf27b896f
+.long 0x80deb1fe,0x3b1696b1
+.long 0x9bdc06a7,0x25c71235
+.long 0xc19bf174,0xcf692694
+.long 0xe49b69c1,0x9ef14ad2
+.long 0xefbe4786,0x384f25e3
+.long 0x0fc19dc6,0x8b8cd5b5
+.long 0x240ca1cc,0x77ac9c65
+.long 0x2de92c6f,0x592b0275
+.long 0x4a7484aa,0x6ea6e483
+.long 0x5cb0a9dc,0xbd41fbd4
+.long 0x76f988da,0x831153b5
+.long 0x983e5152,0xee66dfab
+.long 0xa831c66d,0x2db43210
+.long 0xb00327c8,0x98fb213f
+.long 0xbf597fc7,0xbeef0ee4
+.long 0xc6e00bf3,0x3da88fc2
+.long 0xd5a79147,0x930aa725
+.long 0x06ca6351,0xe003826f
+.long 0x14292967,0x0a0e6e70
+.long 0x27b70a85,0x46d22ffc
+.long 0x2e1b2138,0x5c26c926
+.long 0x4d2c6dfc,0x5ac42aed
+.long 0x53380d13,0x9d95b3df
+.long 0x650a7354,0x8baf63de
+.long 0x766a0abb,0x3c77b2a8
+.long 0x81c2c92e,0x47edaee6
+.long 0x92722c85,0x1482353b
+.long 0xa2bfe8a1,0x4cf10364
+.long 0xa81a664b,0xbc423001
+.long 0xc24b8b70,0xd0f89791
+.long 0xc76c51a3,0x0654be30
+.long 0xd192e819,0xd6ef5218
+.long 0xd6990624,0x5565a910
+.long 0xf40e3585,0x5771202a
+.long 0x106aa070,0x32bbd1b8
+.long 0x19a4c116,0xb8d2d0c8
+.long 0x1e376c08,0x5141ab53
+.long 0x2748774c,0xdf8eeb99
+.long 0x34b0bcb5,0xe19b48a8
+.long 0x391c0cb3,0xc5c95a63
+.long 0x4ed8aa4a,0xe3418acb
+.long 0x5b9cca4f,0x7763e373
+.long 0x682e6ff3,0xd6b2b8a3
+.long 0x748f82ee,0x5defb2fc
+.long 0x78a5636f,0x43172f60
+.long 0x84c87814,0xa1f0ab72
+.long 0x8cc70208,0x1a6439ec
+.long 0x90befffa,0x23631e28
+.long 0xa4506ceb,0xde82bde9
+.long 0xbef9a3f7,0xb2c67915
+.long 0xc67178f2,0xe372532b
+.long 0xca273ece,0xea26619c
+.long 0xd186b8c7,0x21c0c207
+.long 0xeada7dd6,0xcde0eb1e
+.long 0xf57d4f7f,0xee6ed178
+.long 0x06f067aa,0x72176fba
+.long 0x0a637dc5,0xa2c898a6
+.long 0x113f9804,0xbef90dae
+.long 0x1b710b35,0x131c471b
+.long 0x28db77f5,0x23047d84
+.long 0x32caab7b,0x40c72493
+.long 0x3c9ebe0a,0x15c9bebc
+.long 0x431d67c4,0x9c100d4c
+.long 0x4cc5d4be,0xcb3e42b6
+.long 0x597f299c,0xfc657e2a
+.long 0x5fcb6fab,0x3ad6faec
+.long 0x6c44198c,0x4a475817
diff --git a/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha512p8-ppc.s b/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha512p8-ppc.s
new file mode 100644
index 0000000000..ae7a6ba636
--- /dev/null
+++ b/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/sha/sha512p8-ppc.s
@@ -0,0 +1,832 @@
+.machine "any"
+.text
+
+.globl sha512_block_p8
+.type sha512_block_p8,@function
+.align 6
+sha512_block_p8:
+ stwu 1,-328(1)
+ mflr 8
+ li 10,175
+ li 11,191
+ stvx 24,10,1
+ addi 10,10,32
+ mfspr 12,256
+ stvx 25,11,1
+ addi 11,11,32
+ stvx 26,10,1
+ addi 10,10,32
+ stvx 27,11,1
+ addi 11,11,32
+ stvx 28,10,1
+ addi 10,10,32
+ stvx 29,11,1
+ addi 11,11,32
+ stvx 30,10,1
+ stvx 31,11,1
+ li 11,-4096+255
+ stw 12,300(1)
+ li 10,0x10
+ stw 26,304(1)
+ li 26,0x20
+ stw 27,308(1)
+ li 27,0x30
+ stw 28,312(1)
+ li 28,0x40
+ stw 29,316(1)
+ li 29,0x50
+ stw 30,320(1)
+ li 30,0x60
+ stw 31,324(1)
+ li 31,0x70
+ stw 8,332(1)
+ mtspr 256,11
+
+ bl .LPICmeup
+ addi 11,1,47
+ .long 0x7C001E99
+ .long 0x7C4A1E99
+ .long 0x7C9A1E99
+ vsldoi 1,0,0,8
+ .long 0x7CDB1E99
+ vsldoi 3,2,2,8
+ vsldoi 5,4,4,8
+ vsldoi 7,6,6,8
+ li 0,4
+ b .Loop
+.align 5
+.Loop:
+ lvx 28,0,6
+ .long 0x7D002699
+ addi 4,4,16
+ mr 7,6
+ stvx 0,0,11
+ stvx 1,10,11
+ stvx 2,26,11
+ stvx 3,27,11
+ stvx 4,28,11
+ stvx 5,29,11
+ stvx 6,30,11
+ stvx 7,31,11
+ .long 0x10E7E0C0
+ lvx 28,10,6
+ .long 0x10E740C0
+ vsel 29,6,5,4
+ .long 0x10C6E0C0
+ .long 0x10E7E8C0
+ .long 0x13C4FEC2
+ .long 0x10E7F0C0
+ vxor 29,0,1
+ vsel 29,1,2,29
+ .long 0x106338C0
+ .long 0x13C086C2
+ .long 0x13DEE8C0
+ .long 0x10E7F0C0
+ lvx 28,26,7
+ .long 0x7D402699
+ addi 4,4,16
+ vsldoi 9,8,8,8
+ .long 0x10C648C0
+ vsel 29,5,4,3
+ .long 0x10A5E0C0
+ .long 0x10C6E8C0
+ .long 0x13C3FEC2
+ .long 0x10C6F0C0
+ vxor 29,7,0
+ vsel 29,0,1,29
+ .long 0x104230C0
+ .long 0x13C786C2
+ .long 0x13DEE8C0
+ .long 0x10C6F0C0
+ lvx 28,27,7
+ .long 0x10A550C0
+ vsel 29,4,3,2
+ .long 0x1084E0C0
+ .long 0x10A5E8C0
+ .long 0x13C2FEC2
+ .long 0x10A5F0C0
+ vxor 29,6,7
+ vsel 29,7,0,29
+ .long 0x102128C0
+ .long 0x13C686C2
+ .long 0x13DEE8C0
+ .long 0x10A5F0C0
+ lvx 28,28,7
+ .long 0x7D802699
+ addi 4,4,16
+ vsldoi 11,10,10,8
+ .long 0x108458C0
+ vsel 29,3,2,1
+ .long 0x1063E0C0
+ .long 0x1084E8C0
+ .long 0x13C1FEC2
+ .long 0x1084F0C0
+ vxor 29,5,6
+ vsel 29,6,7,29
+ .long 0x100020C0
+ .long 0x13C586C2
+ .long 0x13DEE8C0
+ .long 0x1084F0C0
+ lvx 28,29,7
+ .long 0x106360C0
+ vsel 29,2,1,0
+ .long 0x1042E0C0
+ .long 0x1063E8C0
+ .long 0x13C0FEC2
+ .long 0x1063F0C0
+ vxor 29,4,5
+ vsel 29,5,6,29
+ .long 0x10E718C0
+ .long 0x13C486C2
+ .long 0x13DEE8C0
+ .long 0x1063F0C0
+ lvx 28,30,7
+ .long 0x7DC02699
+ addi 4,4,16
+ vsldoi 13,12,12,8
+ .long 0x104268C0
+ vsel 29,1,0,7
+ .long 0x1021E0C0
+ .long 0x1042E8C0
+ .long 0x13C7FEC2
+ .long 0x1042F0C0
+ vxor 29,3,4
+ vsel 29,4,5,29
+ .long 0x10C610C0
+ .long 0x13C386C2
+ .long 0x13DEE8C0
+ .long 0x1042F0C0
+ lvx 28,31,7
+ addi 7,7,0x80
+ .long 0x102170C0
+ vsel 29,0,7,6
+ .long 0x1000E0C0
+ .long 0x1021E8C0
+ .long 0x13C6FEC2
+ .long 0x1021F0C0
+ vxor 29,2,3
+ vsel 29,3,4,29
+ .long 0x10A508C0
+ .long 0x13C286C2
+ .long 0x13DEE8C0
+ .long 0x1021F0C0
+ lvx 28,0,7
+ .long 0x7E002699
+ addi 4,4,16
+ vsldoi 15,14,14,8
+ .long 0x100078C0
+ vsel 29,7,6,5
+ .long 0x10E7E0C0
+ .long 0x1000E8C0
+ .long 0x13C5FEC2
+ .long 0x1000F0C0
+ vxor 29,1,2
+ vsel 29,2,3,29
+ .long 0x108400C0
+ .long 0x13C186C2
+ .long 0x13DEE8C0
+ .long 0x1000F0C0
+ lvx 28,10,7
+ .long 0x10E780C0
+ vsel 29,6,5,4
+ .long 0x10C6E0C0
+ .long 0x10E7E8C0
+ .long 0x13C4FEC2
+ .long 0x10E7F0C0
+ vxor 29,0,1
+ vsel 29,1,2,29
+ .long 0x106338C0
+ .long 0x13C086C2
+ .long 0x13DEE8C0
+ .long 0x10E7F0C0
+ lvx 28,26,7
+ .long 0x7E402699
+ addi 4,4,16
+ vsldoi 17,16,16,8
+ .long 0x10C688C0
+ vsel 29,5,4,3
+ .long 0x10A5E0C0
+ .long 0x10C6E8C0
+ .long 0x13C3FEC2
+ .long 0x10C6F0C0
+ vxor 29,7,0
+ vsel 29,0,1,29
+ .long 0x104230C0
+ .long 0x13C786C2
+ .long 0x13DEE8C0
+ .long 0x10C6F0C0
+ lvx 28,27,7
+ .long 0x10A590C0
+ vsel 29,4,3,2
+ .long 0x1084E0C0
+ .long 0x10A5E8C0
+ .long 0x13C2FEC2
+ .long 0x10A5F0C0
+ vxor 29,6,7
+ vsel 29,7,0,29
+ .long 0x102128C0
+ .long 0x13C686C2
+ .long 0x13DEE8C0
+ .long 0x10A5F0C0
+ lvx 28,28,7
+ .long 0x7F002699
+ addi 4,4,16
+ vsldoi 19,18,18,8
+ .long 0x108498C0
+ vsel 29,3,2,1
+ .long 0x1063E0C0
+ .long 0x1084E8C0
+ .long 0x13C1FEC2
+ .long 0x1084F0C0
+ vxor 29,5,6
+ vsel 29,6,7,29
+ .long 0x100020C0
+ .long 0x13C586C2
+ .long 0x13DEE8C0
+ .long 0x1084F0C0
+ lvx 28,29,7
+ .long 0x1063C0C0
+ vsel 29,2,1,0
+ .long 0x1042E0C0
+ .long 0x1063E8C0
+ .long 0x13C0FEC2
+ .long 0x1063F0C0
+ vxor 29,4,5
+ vsel 29,5,6,29
+ .long 0x10E718C0
+ .long 0x13C486C2
+ .long 0x13DEE8C0
+ .long 0x1063F0C0
+ lvx 28,30,7
+ .long 0x7F402699
+ addi 4,4,16
+ vsldoi 25,24,24,8
+ .long 0x1042C8C0
+ vsel 29,1,0,7
+ .long 0x1021E0C0
+ .long 0x1042E8C0
+ .long 0x13C7FEC2
+ .long 0x1042F0C0
+ vxor 29,3,4
+ vsel 29,4,5,29
+ .long 0x10C610C0
+ .long 0x13C386C2
+ .long 0x13DEE8C0
+ .long 0x1042F0C0
+ lvx 28,31,7
+ addi 7,7,0x80
+ .long 0x1021D0C0
+ vsel 29,0,7,6
+ .long 0x1000E0C0
+ .long 0x1021E8C0
+ .long 0x13C6FEC2
+ .long 0x1021F0C0
+ vxor 29,2,3
+ vsel 29,3,4,29
+ .long 0x10A508C0
+ .long 0x13C286C2
+ .long 0x13DEE8C0
+ .long 0x1021F0C0
+ lvx 28,0,7
+ vsldoi 27,26,26,8
+ .long 0x13C906C2
+ .long 0x1108F0C0
+ .long 0x13DA7EC2
+ .long 0x1108F0C0
+ .long 0x110888C0
+ .long 0x1000D8C0
+ vsel 29,7,6,5
+ .long 0x10E7E0C0
+ .long 0x1000E8C0
+ .long 0x13C5FEC2
+ .long 0x1000F0C0
+ vxor 29,1,2
+ vsel 29,2,3,29
+ .long 0x108400C0
+ .long 0x13C186C2
+ .long 0x13DEE8C0
+ .long 0x1000F0C0
+ lvx 28,10,7
+ mtctr 0
+ b .L16_xx
+.align 5
+.L16_xx:
+ .long 0x13CA06C2
+ .long 0x1129F0C0
+ .long 0x13DB7EC2
+ .long 0x1129F0C0
+ .long 0x112990C0
+ .long 0x10E740C0
+ vsel 29,6,5,4
+ .long 0x10C6E0C0
+ .long 0x10E7E8C0
+ .long 0x13C4FEC2
+ .long 0x10E7F0C0
+ vxor 29,0,1
+ vsel 29,1,2,29
+ .long 0x106338C0
+ .long 0x13C086C2
+ .long 0x13DEE8C0
+ .long 0x10E7F0C0
+ lvx 28,26,7
+ .long 0x13CB06C2
+ .long 0x114AF0C0
+ .long 0x13C87EC2
+ .long 0x114AF0C0
+ .long 0x114A98C0
+ .long 0x10C648C0
+ vsel 29,5,4,3
+ .long 0x10A5E0C0
+ .long 0x10C6E8C0
+ .long 0x13C3FEC2
+ .long 0x10C6F0C0
+ vxor 29,7,0
+ vsel 29,0,1,29
+ .long 0x104230C0
+ .long 0x13C786C2
+ .long 0x13DEE8C0
+ .long 0x10C6F0C0
+ lvx 28,27,7
+ .long 0x13CC06C2
+ .long 0x116BF0C0
+ .long 0x13C97EC2
+ .long 0x116BF0C0
+ .long 0x116BC0C0
+ .long 0x10A550C0
+ vsel 29,4,3,2
+ .long 0x1084E0C0
+ .long 0x10A5E8C0
+ .long 0x13C2FEC2
+ .long 0x10A5F0C0
+ vxor 29,6,7
+ vsel 29,7,0,29
+ .long 0x102128C0
+ .long 0x13C686C2
+ .long 0x13DEE8C0
+ .long 0x10A5F0C0
+ lvx 28,28,7
+ .long 0x13CD06C2
+ .long 0x118CF0C0
+ .long 0x13CA7EC2
+ .long 0x118CF0C0
+ .long 0x118CC8C0
+ .long 0x108458C0
+ vsel 29,3,2,1
+ .long 0x1063E0C0
+ .long 0x1084E8C0
+ .long 0x13C1FEC2
+ .long 0x1084F0C0
+ vxor 29,5,6
+ vsel 29,6,7,29
+ .long 0x100020C0
+ .long 0x13C586C2
+ .long 0x13DEE8C0
+ .long 0x1084F0C0
+ lvx 28,29,7
+ .long 0x13CE06C2
+ .long 0x11ADF0C0
+ .long 0x13CB7EC2
+ .long 0x11ADF0C0
+ .long 0x11ADD0C0
+ .long 0x106360C0
+ vsel 29,2,1,0
+ .long 0x1042E0C0
+ .long 0x1063E8C0
+ .long 0x13C0FEC2
+ .long 0x1063F0C0
+ vxor 29,4,5
+ vsel 29,5,6,29
+ .long 0x10E718C0
+ .long 0x13C486C2
+ .long 0x13DEE8C0
+ .long 0x1063F0C0
+ lvx 28,30,7
+ .long 0x13CF06C2
+ .long 0x11CEF0C0
+ .long 0x13CC7EC2
+ .long 0x11CEF0C0
+ .long 0x11CED8C0
+ .long 0x104268C0
+ vsel 29,1,0,7
+ .long 0x1021E0C0
+ .long 0x1042E8C0
+ .long 0x13C7FEC2
+ .long 0x1042F0C0
+ vxor 29,3,4
+ vsel 29,4,5,29
+ .long 0x10C610C0
+ .long 0x13C386C2
+ .long 0x13DEE8C0
+ .long 0x1042F0C0
+ lvx 28,31,7
+ addi 7,7,0x80
+ .long 0x13D006C2
+ .long 0x11EFF0C0
+ .long 0x13CD7EC2
+ .long 0x11EFF0C0
+ .long 0x11EF40C0
+ .long 0x102170C0
+ vsel 29,0,7,6
+ .long 0x1000E0C0
+ .long 0x1021E8C0
+ .long 0x13C6FEC2
+ .long 0x1021F0C0
+ vxor 29,2,3
+ vsel 29,3,4,29
+ .long 0x10A508C0
+ .long 0x13C286C2
+ .long 0x13DEE8C0
+ .long 0x1021F0C0
+ lvx 28,0,7
+ .long 0x13D106C2
+ .long 0x1210F0C0
+ .long 0x13CE7EC2
+ .long 0x1210F0C0
+ .long 0x121048C0
+ .long 0x100078C0
+ vsel 29,7,6,5
+ .long 0x10E7E0C0
+ .long 0x1000E8C0
+ .long 0x13C5FEC2
+ .long 0x1000F0C0
+ vxor 29,1,2
+ vsel 29,2,3,29
+ .long 0x108400C0
+ .long 0x13C186C2
+ .long 0x13DEE8C0
+ .long 0x1000F0C0
+ lvx 28,10,7
+ .long 0x13D206C2
+ .long 0x1231F0C0
+ .long 0x13CF7EC2
+ .long 0x1231F0C0
+ .long 0x123150C0
+ .long 0x10E780C0
+ vsel 29,6,5,4
+ .long 0x10C6E0C0
+ .long 0x10E7E8C0
+ .long 0x13C4FEC2
+ .long 0x10E7F0C0
+ vxor 29,0,1
+ vsel 29,1,2,29
+ .long 0x106338C0
+ .long 0x13C086C2
+ .long 0x13DEE8C0
+ .long 0x10E7F0C0
+ lvx 28,26,7
+ .long 0x13D306C2
+ .long 0x1252F0C0
+ .long 0x13D07EC2
+ .long 0x1252F0C0
+ .long 0x125258C0
+ .long 0x10C688C0
+ vsel 29,5,4,3
+ .long 0x10A5E0C0
+ .long 0x10C6E8C0
+ .long 0x13C3FEC2
+ .long 0x10C6F0C0
+ vxor 29,7,0
+ vsel 29,0,1,29
+ .long 0x104230C0
+ .long 0x13C786C2
+ .long 0x13DEE8C0
+ .long 0x10C6F0C0
+ lvx 28,27,7
+ .long 0x13D806C2
+ .long 0x1273F0C0
+ .long 0x13D17EC2
+ .long 0x1273F0C0
+ .long 0x127360C0
+ .long 0x10A590C0
+ vsel 29,4,3,2
+ .long 0x1084E0C0
+ .long 0x10A5E8C0
+ .long 0x13C2FEC2
+ .long 0x10A5F0C0
+ vxor 29,6,7
+ vsel 29,7,0,29
+ .long 0x102128C0
+ .long 0x13C686C2
+ .long 0x13DEE8C0
+ .long 0x10A5F0C0
+ lvx 28,28,7
+ .long 0x13D906C2
+ .long 0x1318F0C0
+ .long 0x13D27EC2
+ .long 0x1318F0C0
+ .long 0x131868C0
+ .long 0x108498C0
+ vsel 29,3,2,1
+ .long 0x1063E0C0
+ .long 0x1084E8C0
+ .long 0x13C1FEC2
+ .long 0x1084F0C0
+ vxor 29,5,6
+ vsel 29,6,7,29
+ .long 0x100020C0
+ .long 0x13C586C2
+ .long 0x13DEE8C0
+ .long 0x1084F0C0
+ lvx 28,29,7
+ .long 0x13DA06C2
+ .long 0x1339F0C0
+ .long 0x13D37EC2
+ .long 0x1339F0C0
+ .long 0x133970C0
+ .long 0x1063C0C0
+ vsel 29,2,1,0
+ .long 0x1042E0C0
+ .long 0x1063E8C0
+ .long 0x13C0FEC2
+ .long 0x1063F0C0
+ vxor 29,4,5
+ vsel 29,5,6,29
+ .long 0x10E718C0
+ .long 0x13C486C2
+ .long 0x13DEE8C0
+ .long 0x1063F0C0
+ lvx 28,30,7
+ .long 0x13DB06C2
+ .long 0x135AF0C0
+ .long 0x13D87EC2
+ .long 0x135AF0C0
+ .long 0x135A78C0
+ .long 0x1042C8C0
+ vsel 29,1,0,7
+ .long 0x1021E0C0
+ .long 0x1042E8C0
+ .long 0x13C7FEC2
+ .long 0x1042F0C0
+ vxor 29,3,4
+ vsel 29,4,5,29
+ .long 0x10C610C0
+ .long 0x13C386C2
+ .long 0x13DEE8C0
+ .long 0x1042F0C0
+ lvx 28,31,7
+ addi 7,7,0x80
+ .long 0x13C806C2
+ .long 0x137BF0C0
+ .long 0x13D97EC2
+ .long 0x137BF0C0
+ .long 0x137B80C0
+ .long 0x1021D0C0
+ vsel 29,0,7,6
+ .long 0x1000E0C0
+ .long 0x1021E8C0
+ .long 0x13C6FEC2
+ .long 0x1021F0C0
+ vxor 29,2,3
+ vsel 29,3,4,29
+ .long 0x10A508C0
+ .long 0x13C286C2
+ .long 0x13DEE8C0
+ .long 0x1021F0C0
+ lvx 28,0,7
+ .long 0x13C906C2
+ .long 0x1108F0C0
+ .long 0x13DA7EC2
+ .long 0x1108F0C0
+ .long 0x110888C0
+ .long 0x1000D8C0
+ vsel 29,7,6,5
+ .long 0x10E7E0C0
+ .long 0x1000E8C0
+ .long 0x13C5FEC2
+ .long 0x1000F0C0
+ vxor 29,1,2
+ vsel 29,2,3,29
+ .long 0x108400C0
+ .long 0x13C186C2
+ .long 0x13DEE8C0
+ .long 0x1000F0C0
+ lvx 28,10,7
+ bdnz .L16_xx
+
+ lvx 10,0,11
+ subic. 5,5,1
+ lvx 11,10,11
+ .long 0x100050C0
+ lvx 12,26,11
+ .long 0x102158C0
+ lvx 13,27,11
+ .long 0x104260C0
+ lvx 14,28,11
+ .long 0x106368C0
+ lvx 15,29,11
+ .long 0x108470C0
+ lvx 16,30,11
+ .long 0x10A578C0
+ lvx 17,31,11
+ .long 0x10C680C0
+ .long 0x10E788C0
+ bne .Loop
+ vperm 0,0,1,28
+ vperm 2,2,3,28
+ vperm 4,4,5,28
+ vperm 6,6,7,28
+ .long 0x7C001F99
+ .long 0x7C4A1F99
+ .long 0x7C9A1F99
+ .long 0x7CDB1F99
+ addi 11,1,175
+ mtlr 8
+ mtspr 256,12
+ lvx 24,0,11
+ lvx 25,10,11
+ lvx 26,26,11
+ lvx 27,27,11
+ lvx 28,28,11
+ lvx 29,29,11
+ lvx 30,30,11
+ lvx 31,31,11
+ lwz 26,304(1)
+ lwz 27,308(1)
+ lwz 28,312(1)
+ lwz 29,316(1)
+ lwz 30,320(1)
+ lwz 31,324(1)
+ addi 1,1,328
+ blr
+.long 0
+.byte 0,12,4,1,0x80,6,3,0
+.long 0
+.size sha512_block_p8,.-sha512_block_p8
+.align 6
+.LPICmeup:
+ mflr 0
+ bcl 20,31,$+4
+ mflr 6
+ addi 6,6,56
+ mtlr 0
+ blr
+.long 0
+.byte 0,12,0x14,0,0,0,0,0
+.space 28
+.long 0x428a2f98,0xd728ae22
+.long 0x428a2f98,0xd728ae22
+.long 0x71374491,0x23ef65cd
+.long 0x71374491,0x23ef65cd
+.long 0xb5c0fbcf,0xec4d3b2f
+.long 0xb5c0fbcf,0xec4d3b2f
+.long 0xe9b5dba5,0x8189dbbc
+.long 0xe9b5dba5,0x8189dbbc
+.long 0x3956c25b,0xf348b538
+.long 0x3956c25b,0xf348b538
+.long 0x59f111f1,0xb605d019
+.long 0x59f111f1,0xb605d019
+.long 0x923f82a4,0xaf194f9b
+.long 0x923f82a4,0xaf194f9b
+.long 0xab1c5ed5,0xda6d8118
+.long 0xab1c5ed5,0xda6d8118
+.long 0xd807aa98,0xa3030242
+.long 0xd807aa98,0xa3030242
+.long 0x12835b01,0x45706fbe
+.long 0x12835b01,0x45706fbe
+.long 0x243185be,0x4ee4b28c
+.long 0x243185be,0x4ee4b28c
+.long 0x550c7dc3,0xd5ffb4e2
+.long 0x550c7dc3,0xd5ffb4e2
+.long 0x72be5d74,0xf27b896f
+.long 0x72be5d74,0xf27b896f
+.long 0x80deb1fe,0x3b1696b1
+.long 0x80deb1fe,0x3b1696b1
+.long 0x9bdc06a7,0x25c71235
+.long 0x9bdc06a7,0x25c71235
+.long 0xc19bf174,0xcf692694
+.long 0xc19bf174,0xcf692694
+.long 0xe49b69c1,0x9ef14ad2
+.long 0xe49b69c1,0x9ef14ad2
+.long 0xefbe4786,0x384f25e3
+.long 0xefbe4786,0x384f25e3
+.long 0x0fc19dc6,0x8b8cd5b5
+.long 0x0fc19dc6,0x8b8cd5b5
+.long 0x240ca1cc,0x77ac9c65
+.long 0x240ca1cc,0x77ac9c65
+.long 0x2de92c6f,0x592b0275
+.long 0x2de92c6f,0x592b0275
+.long 0x4a7484aa,0x6ea6e483
+.long 0x4a7484aa,0x6ea6e483
+.long 0x5cb0a9dc,0xbd41fbd4
+.long 0x5cb0a9dc,0xbd41fbd4
+.long 0x76f988da,0x831153b5
+.long 0x76f988da,0x831153b5
+.long 0x983e5152,0xee66dfab
+.long 0x983e5152,0xee66dfab
+.long 0xa831c66d,0x2db43210
+.long 0xa831c66d,0x2db43210
+.long 0xb00327c8,0x98fb213f
+.long 0xb00327c8,0x98fb213f
+.long 0xbf597fc7,0xbeef0ee4
+.long 0xbf597fc7,0xbeef0ee4
+.long 0xc6e00bf3,0x3da88fc2
+.long 0xc6e00bf3,0x3da88fc2
+.long 0xd5a79147,0x930aa725
+.long 0xd5a79147,0x930aa725
+.long 0x06ca6351,0xe003826f
+.long 0x06ca6351,0xe003826f
+.long 0x14292967,0x0a0e6e70
+.long 0x14292967,0x0a0e6e70
+.long 0x27b70a85,0x46d22ffc
+.long 0x27b70a85,0x46d22ffc
+.long 0x2e1b2138,0x5c26c926
+.long 0x2e1b2138,0x5c26c926
+.long 0x4d2c6dfc,0x5ac42aed
+.long 0x4d2c6dfc,0x5ac42aed
+.long 0x53380d13,0x9d95b3df
+.long 0x53380d13,0x9d95b3df
+.long 0x650a7354,0x8baf63de
+.long 0x650a7354,0x8baf63de
+.long 0x766a0abb,0x3c77b2a8
+.long 0x766a0abb,0x3c77b2a8
+.long 0x81c2c92e,0x47edaee6
+.long 0x81c2c92e,0x47edaee6
+.long 0x92722c85,0x1482353b
+.long 0x92722c85,0x1482353b
+.long 0xa2bfe8a1,0x4cf10364
+.long 0xa2bfe8a1,0x4cf10364
+.long 0xa81a664b,0xbc423001
+.long 0xa81a664b,0xbc423001
+.long 0xc24b8b70,0xd0f89791
+.long 0xc24b8b70,0xd0f89791
+.long 0xc76c51a3,0x0654be30
+.long 0xc76c51a3,0x0654be30
+.long 0xd192e819,0xd6ef5218
+.long 0xd192e819,0xd6ef5218
+.long 0xd6990624,0x5565a910
+.long 0xd6990624,0x5565a910
+.long 0xf40e3585,0x5771202a
+.long 0xf40e3585,0x5771202a
+.long 0x106aa070,0x32bbd1b8
+.long 0x106aa070,0x32bbd1b8
+.long 0x19a4c116,0xb8d2d0c8
+.long 0x19a4c116,0xb8d2d0c8
+.long 0x1e376c08,0x5141ab53
+.long 0x1e376c08,0x5141ab53
+.long 0x2748774c,0xdf8eeb99
+.long 0x2748774c,0xdf8eeb99
+.long 0x34b0bcb5,0xe19b48a8
+.long 0x34b0bcb5,0xe19b48a8
+.long 0x391c0cb3,0xc5c95a63
+.long 0x391c0cb3,0xc5c95a63
+.long 0x4ed8aa4a,0xe3418acb
+.long 0x4ed8aa4a,0xe3418acb
+.long 0x5b9cca4f,0x7763e373
+.long 0x5b9cca4f,0x7763e373
+.long 0x682e6ff3,0xd6b2b8a3
+.long 0x682e6ff3,0xd6b2b8a3
+.long 0x748f82ee,0x5defb2fc
+.long 0x748f82ee,0x5defb2fc
+.long 0x78a5636f,0x43172f60
+.long 0x78a5636f,0x43172f60
+.long 0x84c87814,0xa1f0ab72
+.long 0x84c87814,0xa1f0ab72
+.long 0x8cc70208,0x1a6439ec
+.long 0x8cc70208,0x1a6439ec
+.long 0x90befffa,0x23631e28
+.long 0x90befffa,0x23631e28
+.long 0xa4506ceb,0xde82bde9
+.long 0xa4506ceb,0xde82bde9
+.long 0xbef9a3f7,0xb2c67915
+.long 0xbef9a3f7,0xb2c67915
+.long 0xc67178f2,0xe372532b
+.long 0xc67178f2,0xe372532b
+.long 0xca273ece,0xea26619c
+.long 0xca273ece,0xea26619c
+.long 0xd186b8c7,0x21c0c207
+.long 0xd186b8c7,0x21c0c207
+.long 0xeada7dd6,0xcde0eb1e
+.long 0xeada7dd6,0xcde0eb1e
+.long 0xf57d4f7f,0xee6ed178
+.long 0xf57d4f7f,0xee6ed178
+.long 0x06f067aa,0x72176fba
+.long 0x06f067aa,0x72176fba
+.long 0x0a637dc5,0xa2c898a6
+.long 0x0a637dc5,0xa2c898a6
+.long 0x113f9804,0xbef90dae
+.long 0x113f9804,0xbef90dae
+.long 0x1b710b35,0x131c471b
+.long 0x1b710b35,0x131c471b
+.long 0x28db77f5,0x23047d84
+.long 0x28db77f5,0x23047d84
+.long 0x32caab7b,0x40c72493
+.long 0x32caab7b,0x40c72493
+.long 0x3c9ebe0a,0x15c9bebc
+.long 0x3c9ebe0a,0x15c9bebc
+.long 0x431d67c4,0x9c100d4c
+.long 0x431d67c4,0x9c100d4c
+.long 0x4cc5d4be,0xcb3e42b6
+.long 0x4cc5d4be,0xcb3e42b6
+.long 0x597f299c,0xfc657e2a
+.long 0x597f299c,0xfc657e2a
+.long 0x5fcb6fab,0x3ad6faec
+.long 0x5fcb6fab,0x3ad6faec
+.long 0x6c44198c,0x4a475817
+.long 0x6c44198c,0x4a475817
+.long 0,0
+.long 0,0
+.long 0x00010203,0x04050607
+.long 0x10111213,0x14151617
+.byte 83,72,65,53,49,50,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,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