mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-28 03:49:38 +03:00
4c5fec01a4
The skeleton file module/icp/include/generic_impl.c can be used for iterating over different implementations of algorithms. It is used by SHA256, SHA512 and BLAKE3 currently. The Solaris SHA2 implementation got replaced with a version which is based on public domain code of cppcrypto v0.10. These assembly files are taken from current openssl master: - sha256-x86_64.S: x64, SSSE3, AVX, AVX2, SHA-NI (x86_64) - sha512-x86_64.S: x64, AVX, AVX2 (x86_64) - sha256-armv7.S: ARMv7, NEON, ARMv8-CE (arm) - sha512-armv7.S: ARMv7, NEON (arm) - sha256-armv8.S: ARMv7, NEON, ARMv8-CE (aarch64) - sha512-armv8.S: ARMv7, ARMv8-CE (aarch64) - sha256-ppc.S: Generic PPC64 LE/BE (ppc64) - sha512-ppc.S: Generic PPC64 LE/BE (ppc64) - sha256-p8.S: Power8 ISA Version 2.07 LE/BE (ppc64) - sha512-p8.S: Power8 ISA Version 2.07 LE/BE (ppc64) Tested-by: Rich Ercolani <rincebrain@gmail.com> Tested-by: Sebastian Gottschall <s.gottschall@dd-wrt.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Tino Reichardt <milky-zfs@mcmilk.de> Closes #13741
2713 lines
35 KiB
ArmAsm
2713 lines
35 KiB
ArmAsm
/*
|
|
* Copyright 2004-2022 The OpenSSL Project Authors. All Rights Reserved.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* https://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
/*
|
|
* Portions Copyright (c) 2022 Tino Reichardt <milky-zfs@mcmilk.de>
|
|
* - modified assembly to fit into OpenZFS
|
|
*/
|
|
|
|
#if (defined(__PPC64__) && defined(__BIG_ENDIAN__))
|
|
|
|
.text
|
|
|
|
.globl zfs_sha256_ppc
|
|
.globl .zfs_sha256_ppc
|
|
.type zfs_sha256_ppc,@function
|
|
.section ".opd","aw"
|
|
.align 3
|
|
zfs_sha256_ppc:
|
|
.quad .zfs_sha256_ppc,.TOC.@tocbase,0
|
|
.previous
|
|
.align 6
|
|
.zfs_sha256_ppc:
|
|
stdu 1,-320(1)
|
|
mflr 0
|
|
sldi 5,5,6
|
|
|
|
std 3,144(1)
|
|
|
|
std 14,176(1)
|
|
std 15,184(1)
|
|
std 16,192(1)
|
|
std 17,200(1)
|
|
std 18,208(1)
|
|
std 19,216(1)
|
|
std 20,224(1)
|
|
std 21,232(1)
|
|
std 22,240(1)
|
|
std 23,248(1)
|
|
std 24,256(1)
|
|
std 25,264(1)
|
|
std 26,272(1)
|
|
std 27,280(1)
|
|
std 28,288(1)
|
|
std 29,296(1)
|
|
std 30,304(1)
|
|
std 31,312(1)
|
|
std 0,336(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
|
|
std 5,128(1)
|
|
std 31,136(1)
|
|
bl .Lsha2_block_private
|
|
b .Ldone
|
|
|
|
.align 4
|
|
.Lunaligned:
|
|
subfic 0,31,4096
|
|
andi. 0,0,4032
|
|
beq .Lcross_page
|
|
cmpld 5,0
|
|
ble .Laligned
|
|
subfc 5,0,5
|
|
add 0,31,0
|
|
std 5,120(1)
|
|
std 0,128(1)
|
|
std 31,136(1)
|
|
bl .Lsha2_block_private
|
|
|
|
ld 5,120(1)
|
|
.Lcross_page:
|
|
li 0,16
|
|
mtctr 0
|
|
addi 20,1,48
|
|
.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
|
|
std 31,112(1)
|
|
addi 0,1,112
|
|
addi 31,1,48
|
|
std 5,120(1)
|
|
std 0,128(1)
|
|
std 31,136(1)
|
|
bl .Lsha2_block_private
|
|
ld 31,112(1)
|
|
ld 5,120(1)
|
|
addic. 5,5,-64
|
|
bne .Lunaligned
|
|
|
|
.Ldone:
|
|
ld 0,336(1)
|
|
ld 14,176(1)
|
|
ld 15,184(1)
|
|
ld 16,192(1)
|
|
ld 17,200(1)
|
|
ld 18,208(1)
|
|
ld 19,216(1)
|
|
ld 20,224(1)
|
|
ld 21,232(1)
|
|
ld 22,240(1)
|
|
ld 23,248(1)
|
|
ld 24,256(1)
|
|
ld 25,264(1)
|
|
ld 26,272(1)
|
|
ld 27,280(1)
|
|
ld 28,288(1)
|
|
ld 29,296(1)
|
|
ld 30,304(1)
|
|
ld 31,312(1)
|
|
mtlr 0
|
|
addi 1,1,320
|
|
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
|
|
|
|
ld 3,144(1)
|
|
ld 31,136(1)
|
|
ld 5,128(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
|
|
std 31,136(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)
|
|
cmpld 31,5
|
|
stw 15,28(3)
|
|
bne .Lsha2_block_private
|
|
blr
|
|
.long 0
|
|
.byte 0,12,0x14,0,0,0,0,0
|
|
.size .zfs_sha256_ppc,.-.zfs_sha256_ppc
|
|
.size zfs_sha256_ppc,.-.zfs_sha256_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
|
|
|
|
#elif (defined(__PPC64__) && defined(__LITTLE_ENDIAN__))
|
|
|
|
.abiversion 2
|
|
.text
|
|
|
|
.globl zfs_sha256_ppc
|
|
.type zfs_sha256_ppc,@function
|
|
.align 6
|
|
zfs_sha256_ppc:
|
|
.localentry zfs_sha256_ppc,0
|
|
|
|
stdu 1,-320(1)
|
|
mflr 0
|
|
sldi 5,5,6
|
|
|
|
std 3,144(1)
|
|
|
|
std 14,176(1)
|
|
std 15,184(1)
|
|
std 16,192(1)
|
|
std 17,200(1)
|
|
std 18,208(1)
|
|
std 19,216(1)
|
|
std 20,224(1)
|
|
std 21,232(1)
|
|
std 22,240(1)
|
|
std 23,248(1)
|
|
std 24,256(1)
|
|
std 25,264(1)
|
|
std 26,272(1)
|
|
std 27,280(1)
|
|
std 28,288(1)
|
|
std 29,296(1)
|
|
std 30,304(1)
|
|
std 31,312(1)
|
|
std 0,336(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
|
|
std 5,128(1)
|
|
std 31,136(1)
|
|
bl .Lsha2_block_private
|
|
b .Ldone
|
|
|
|
.align 4
|
|
.Lunaligned:
|
|
subfic 0,31,4096
|
|
andi. 0,0,4032
|
|
beq .Lcross_page
|
|
cmpld 5,0
|
|
ble .Laligned
|
|
subfc 5,0,5
|
|
add 0,31,0
|
|
std 5,120(1)
|
|
std 0,128(1)
|
|
std 31,136(1)
|
|
bl .Lsha2_block_private
|
|
|
|
ld 5,120(1)
|
|
.Lcross_page:
|
|
li 0,16
|
|
mtctr 0
|
|
addi 20,1,48
|
|
.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
|
|
std 31,112(1)
|
|
addi 0,1,112
|
|
addi 31,1,48
|
|
std 5,120(1)
|
|
std 0,128(1)
|
|
std 31,136(1)
|
|
bl .Lsha2_block_private
|
|
ld 31,112(1)
|
|
ld 5,120(1)
|
|
addic. 5,5,-64
|
|
bne .Lunaligned
|
|
|
|
.Ldone:
|
|
ld 0,336(1)
|
|
ld 14,176(1)
|
|
ld 15,184(1)
|
|
ld 16,192(1)
|
|
ld 17,200(1)
|
|
ld 18,208(1)
|
|
ld 19,216(1)
|
|
ld 20,224(1)
|
|
ld 21,232(1)
|
|
ld 22,240(1)
|
|
ld 23,248(1)
|
|
ld 24,256(1)
|
|
ld 25,264(1)
|
|
ld 26,272(1)
|
|
ld 27,280(1)
|
|
ld 28,288(1)
|
|
ld 29,296(1)
|
|
ld 30,304(1)
|
|
ld 31,312(1)
|
|
mtlr 0
|
|
addi 1,1,320
|
|
blr
|
|
.long 0
|
|
.byte 0,12,4,1,0x80,18,3,0
|
|
.long 0
|
|
.align 4
|
|
.Lsha2_block_private:
|
|
lwz 0,0(7)
|
|
lwz 3,0(31)
|
|
rotlwi 16,3,8
|
|
rlwimi 16,3,24,0,7
|
|
rlwimi 16,3,24,16,23
|
|
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 3,4(31)
|
|
rotlwi 17,3,8
|
|
rlwimi 17,3,24,0,7
|
|
rlwimi 17,3,24,16,23
|
|
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 3,8(31)
|
|
rotlwi 18,3,8
|
|
rlwimi 18,3,24,0,7
|
|
rlwimi 18,3,24,16,23
|
|
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 3,12(31)
|
|
rotlwi 19,3,8
|
|
rlwimi 19,3,24,0,7
|
|
rlwimi 19,3,24,16,23
|
|
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 3,16(31)
|
|
rotlwi 20,3,8
|
|
rlwimi 20,3,24,0,7
|
|
rlwimi 20,3,24,16,23
|
|
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 3,20(31)
|
|
rotlwi 21,3,8
|
|
rlwimi 21,3,24,0,7
|
|
rlwimi 21,3,24,16,23
|
|
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 3,24(31)
|
|
rotlwi 22,3,8
|
|
rlwimi 22,3,24,0,7
|
|
rlwimi 22,3,24,16,23
|
|
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 3,28(31)
|
|
rotlwi 23,3,8
|
|
rlwimi 23,3,24,0,7
|
|
rlwimi 23,3,24,16,23
|
|
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 3,32(31)
|
|
rotlwi 24,3,8
|
|
rlwimi 24,3,24,0,7
|
|
rlwimi 24,3,24,16,23
|
|
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 3,36(31)
|
|
rotlwi 25,3,8
|
|
rlwimi 25,3,24,0,7
|
|
rlwimi 25,3,24,16,23
|
|
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 3,40(31)
|
|
rotlwi 26,3,8
|
|
rlwimi 26,3,24,0,7
|
|
rlwimi 26,3,24,16,23
|
|
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 3,44(31)
|
|
rotlwi 27,3,8
|
|
rlwimi 27,3,24,0,7
|
|
rlwimi 27,3,24,16,23
|
|
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 3,48(31)
|
|
rotlwi 28,3,8
|
|
rlwimi 28,3,24,0,7
|
|
rlwimi 28,3,24,16,23
|
|
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 3,52(31)
|
|
rotlwi 29,3,8
|
|
rlwimi 29,3,24,0,7
|
|
rlwimi 29,3,24,16,23
|
|
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 3,56(31)
|
|
rotlwi 30,3,8
|
|
rlwimi 30,3,24,0,7
|
|
rlwimi 30,3,24,16,23
|
|
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 3,60(31)
|
|
rotlwi 31,3,8
|
|
rlwimi 31,3,24,0,7
|
|
rlwimi 31,3,24,16,23
|
|
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
|
|
|
|
ld 3,144(1)
|
|
ld 31,136(1)
|
|
ld 5,128(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
|
|
std 31,136(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)
|
|
cmpld 31,5
|
|
stw 15,28(3)
|
|
bne .Lsha2_block_private
|
|
blr
|
|
.long 0
|
|
.byte 0,12,0x14,0,0,0,0,0
|
|
.size zfs_sha256_ppc,.-zfs_sha256_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
|
|
|
|
#endif
|