mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	Sponsored-by: https://despairlabs.com/sponsor/ Signed-off-by: Rob Norris <robn@despairlabs.com> Reviewed-by: Tony Hutter <hutter2@llnl.gov> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
		
			
				
	
	
		
			2729 lines
		
	
	
		
			35 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			2729 lines
		
	
	
		
			35 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
// SPDX-License-Identifier: Apache-2.0
 | 
						|
/*
 | 
						|
 * 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__))
 | 
						|
 | 
						|
#if (!defined(_CALL_ELF) || _CALL_ELF == 1)
 | 
						|
.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:
 | 
						|
#else
 | 
						|
.abiversion	2
 | 
						|
.text
 | 
						|
 | 
						|
.globl	zfs_sha256_ppc
 | 
						|
.type	zfs_sha256_ppc,@function
 | 
						|
.align	6
 | 
						|
zfs_sha256_ppc:
 | 
						|
.localentry	zfs_sha256_ppc,0
 | 
						|
#endif
 | 
						|
	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
 | 
						|
#if (!defined(_CALL_ELF) || _CALL_ELF == 1)
 | 
						|
.size	.zfs_sha256_ppc,.-.zfs_sha256_ppc
 | 
						|
.size	zfs_sha256_ppc,.-.zfs_sha256_ppc
 | 
						|
#else
 | 
						|
.size	zfs_sha256_ppc,.-zfs_sha256_ppc
 | 
						|
#endif
 | 
						|
.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
 |