#include <wolfssl/wolfcrypt/libwolfssl_sources_asm.h>
#include <wolfssl/wolfcrypt/error-crypt.h>
#ifdef WOLFSSL_PPC32_ASM
#include <stdint.h>
#include <wolfssl/wolfcrypt/libwolfssl_sources.h>
#ifdef WOLFSSL_PPC32_ASM_INLINE
#ifdef __IAR_SYSTEMS_ICC__
#define __asm__ asm
#define __volatile__ volatile
#define WOLFSSL_NO_VAR_ASSIGN_REG
#endif
#ifdef __KEIL__
#define __asm__ __asm
#define __volatile__ volatile
#endif
#ifdef __ghs__
#define __asm__ __asm
#define __volatile__
#define WOLFSSL_NO_VAR_ASSIGN_REG
#endif
#ifndef NO_SHA256
#include <wolfssl/wolfcrypt/sha256.h>
#ifdef WOLFSSL_PPC32_ASM_SPE
static const word32 L_SHA256_transform_spe_len_k[] = {
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,
};
void Transform_Sha256_Len(wc_Sha256* sha256_p, const byte* data_p,
word32 len_p);
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
void Transform_Sha256_Len(wc_Sha256* sha256_p, const byte* data_p, word32 len_p)
#else
void Transform_Sha256_Len(wc_Sha256* sha256, const byte* data, word32 len)
#endif
{
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
register wc_Sha256* sha256 asm ("3") = (wc_Sha256*)sha256_p;
register const byte* data asm ("4") = (const byte*)data_p;
register word32 len asm ("5") = (word32)len_p;
register word32* L_SHA256_transform_spe_len_k_c asm ("6") =
(word32*)&L_SHA256_transform_spe_len_k;
#else
register word32* L_SHA256_transform_spe_len_k_c =
(word32*)&L_SHA256_transform_spe_len_k;
#endif
__asm__ __volatile__ (
"srwi %[len], %[len], 6\n\t"
"mr r30, %[L_SHA256_transform_spe_len_k]\n\t"
"lwz r14, 0(%[sha256])\n\t"
"lwz r15, 4(%[sha256])\n\t"
"lwz r16, 8(%[sha256])\n\t"
"lwz r17, 12(%[sha256])\n\t"
"lwz r18, 16(%[sha256])\n\t"
"lwz r19, 20(%[sha256])\n\t"
"lwz r20, 24(%[sha256])\n\t"
"lwz r21, 28(%[sha256])\n\t"
"\n"
"L_SHA256_transform_spe_len_begin_%=: \n\t"
"lwz r22, 0(%[data])\n\t"
"lwz r0, 4(%[data])\n\t"
"evmergelo r22, r0, r22\n\t"
"lwz r23, 8(%[data])\n\t"
"lwz r0, 12(%[data])\n\t"
"evmergelo r23, r0, r23\n\t"
"lwz r24, 16(%[data])\n\t"
"lwz r0, 20(%[data])\n\t"
"evmergelo r24, r0, r24\n\t"
"lwz r25, 24(%[data])\n\t"
"lwz r0, 28(%[data])\n\t"
"evmergelo r25, r0, r25\n\t"
"lwz r26, 32(%[data])\n\t"
"lwz r0, 36(%[data])\n\t"
"evmergelo r26, r0, r26\n\t"
"lwz r27, 40(%[data])\n\t"
"lwz r0, 44(%[data])\n\t"
"evmergelo r27, r0, r27\n\t"
"lwz r28, 48(%[data])\n\t"
"lwz r0, 52(%[data])\n\t"
"evmergelo r28, r0, r28\n\t"
"lwz r29, 56(%[data])\n\t"
"lwz r0, 60(%[data])\n\t"
"evmergelo r29, r0, r29\n\t"
"li r0, 3\n\t"
"mtctr r0\n\t"
"\n"
"L_SHA256_transform_spe_len_start_%=: \n\t"
"mr r9, r22\n\t"
"rotlwi r6, r18, 26\n\t"
"xor r7, r19, r20\n\t"
"rotlwi r8, r18, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r18\n\t"
"rotlwi r8, r18, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r20\n\t"
"add r21, r21, r6\n\t"
"add r21, r21, r7\n\t"
"lwz r6, 0(r30)\n\t"
"add r21, r21, r9\n\t"
"add r21, r21, r6\n\t"
"add r17, r17, r21\n\t"
"rotlwi r6, r14, 30\n\t"
"xor r7, r14, r15\n\t"
"rotlwi r8, r14, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r15, r16\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r14, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r15\n\t"
"add r21, r21, r6\n\t"
"add r21, r21, r7\n\t"
"evmergehi r9, r22, r22\n\t"
"evmergelohi r12, r23, r22\n\t"
"rotlwi r6, r17, 26\n\t"
"evrlwi r10, r29, 15\n\t"
"xor r7, r18, r19\n\t"
"evrlwi r11, r29, 13\n\t"
"rotlwi r8, r17, 21\n\t"
"evxor r11, r11, r10\n\t"
"xor r6, r6, r8\n\t"
"evsrwiu r10, r29, 10\n\t"
"and r7, r7, r17\n\t"
"evxor r11, r11, r10\n\t"
"rotlwi r8, r17, 7\n\t"
"evaddw r22, r22, r11\n\t"
"xor r6, r6, r8\n\t"
"evmergelohi r10, r27, r26\n\t"
"xor r7, r7, r19\n\t"
"evaddw r22, r22, r10\n\t"
"add r20, r20, r6\n\t"
"evrlwi r10, r12, 25\n\t"
"add r20, r20, r7\n\t"
"evrlwi r11, r12, 14\n\t"
"lwz r6, 4(r30)\n\t"
"evxor r11, r11, r10\n\t"
"add r20, r20, r9\n\t"
"evsrwiu r12, r12, 3\n\t"
"add r20, r20, r6\n\t"
"evxor r11, r11, r12\n\t"
"add r16, r16, r20\n\t"
"evaddw r22, r22, r11\n\t"
"rotlwi r6, r21, 30\n\t"
"xor r7, r21, r14\n\t"
"rotlwi r8, r21, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r14, r15\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r21, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r14\n\t"
"add r20, r20, r6\n\t"
"add r20, r20, r7\n\t"
"mr r9, r23\n\t"
"rotlwi r6, r16, 26\n\t"
"xor r7, r17, r18\n\t"
"rotlwi r8, r16, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r16\n\t"
"rotlwi r8, r16, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r18\n\t"
"add r19, r19, r6\n\t"
"add r19, r19, r7\n\t"
"lwz r6, 8(r30)\n\t"
"add r19, r19, r9\n\t"
"add r19, r19, r6\n\t"
"add r15, r15, r19\n\t"
"rotlwi r6, r20, 30\n\t"
"xor r7, r20, r21\n\t"
"rotlwi r8, r20, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r21, r14\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r20, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r21\n\t"
"add r19, r19, r6\n\t"
"add r19, r19, r7\n\t"
"evmergehi r9, r23, r23\n\t"
"evmergelohi r12, r24, r23\n\t"
"rotlwi r6, r15, 26\n\t"
"evrlwi r10, r22, 15\n\t"
"xor r7, r16, r17\n\t"
"evrlwi r11, r22, 13\n\t"
"rotlwi r8, r15, 21\n\t"
"evxor r11, r11, r10\n\t"
"xor r6, r6, r8\n\t"
"evsrwiu r10, r22, 10\n\t"
"and r7, r7, r15\n\t"
"evxor r11, r11, r10\n\t"
"rotlwi r8, r15, 7\n\t"
"evaddw r23, r23, r11\n\t"
"xor r6, r6, r8\n\t"
"evmergelohi r10, r28, r27\n\t"
"xor r7, r7, r17\n\t"
"evaddw r23, r23, r10\n\t"
"add r18, r18, r6\n\t"
"evrlwi r10, r12, 25\n\t"
"add r18, r18, r7\n\t"
"evrlwi r11, r12, 14\n\t"
"lwz r6, 12(r30)\n\t"
"evxor r11, r11, r10\n\t"
"add r18, r18, r9\n\t"
"evsrwiu r12, r12, 3\n\t"
"add r18, r18, r6\n\t"
"evxor r11, r11, r12\n\t"
"add r14, r14, r18\n\t"
"evaddw r23, r23, r11\n\t"
"rotlwi r6, r19, 30\n\t"
"xor r7, r19, r20\n\t"
"rotlwi r8, r19, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r20, r21\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r19, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r20\n\t"
"add r18, r18, r6\n\t"
"add r18, r18, r7\n\t"
"mr r9, r24\n\t"
"rotlwi r6, r14, 26\n\t"
"xor r7, r15, r16\n\t"
"rotlwi r8, r14, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r14\n\t"
"rotlwi r8, r14, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r16\n\t"
"add r17, r17, r6\n\t"
"add r17, r17, r7\n\t"
"lwz r6, 16(r30)\n\t"
"add r17, r17, r9\n\t"
"add r17, r17, r6\n\t"
"add r21, r21, r17\n\t"
"rotlwi r6, r18, 30\n\t"
"xor r7, r18, r19\n\t"
"rotlwi r8, r18, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r19, r20\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r18, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r19\n\t"
"add r17, r17, r6\n\t"
"add r17, r17, r7\n\t"
"evmergehi r9, r24, r24\n\t"
"evmergelohi r12, r25, r24\n\t"
"rotlwi r6, r21, 26\n\t"
"evrlwi r10, r23, 15\n\t"
"xor r7, r14, r15\n\t"
"evrlwi r11, r23, 13\n\t"
"rotlwi r8, r21, 21\n\t"
"evxor r11, r11, r10\n\t"
"xor r6, r6, r8\n\t"
"evsrwiu r10, r23, 10\n\t"
"and r7, r7, r21\n\t"
"evxor r11, r11, r10\n\t"
"rotlwi r8, r21, 7\n\t"
"evaddw r24, r24, r11\n\t"
"xor r6, r6, r8\n\t"
"evmergelohi r10, r29, r28\n\t"
"xor r7, r7, r15\n\t"
"evaddw r24, r24, r10\n\t"
"add r16, r16, r6\n\t"
"evrlwi r10, r12, 25\n\t"
"add r16, r16, r7\n\t"
"evrlwi r11, r12, 14\n\t"
"lwz r6, 20(r30)\n\t"
"evxor r11, r11, r10\n\t"
"add r16, r16, r9\n\t"
"evsrwiu r12, r12, 3\n\t"
"add r16, r16, r6\n\t"
"evxor r11, r11, r12\n\t"
"add r20, r20, r16\n\t"
"evaddw r24, r24, r11\n\t"
"rotlwi r6, r17, 30\n\t"
"xor r7, r17, r18\n\t"
"rotlwi r8, r17, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r18, r19\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r17, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r18\n\t"
"add r16, r16, r6\n\t"
"add r16, r16, r7\n\t"
"mr r9, r25\n\t"
"rotlwi r6, r20, 26\n\t"
"xor r7, r21, r14\n\t"
"rotlwi r8, r20, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r20\n\t"
"rotlwi r8, r20, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r14\n\t"
"add r15, r15, r6\n\t"
"add r15, r15, r7\n\t"
"lwz r6, 24(r30)\n\t"
"add r15, r15, r9\n\t"
"add r15, r15, r6\n\t"
"add r19, r19, r15\n\t"
"rotlwi r6, r16, 30\n\t"
"xor r7, r16, r17\n\t"
"rotlwi r8, r16, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r17, r18\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r16, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r17\n\t"
"add r15, r15, r6\n\t"
"add r15, r15, r7\n\t"
"evmergehi r9, r25, r25\n\t"
"evmergelohi r12, r26, r25\n\t"
"rotlwi r6, r19, 26\n\t"
"evrlwi r10, r24, 15\n\t"
"xor r7, r20, r21\n\t"
"evrlwi r11, r24, 13\n\t"
"rotlwi r8, r19, 21\n\t"
"evxor r11, r11, r10\n\t"
"xor r6, r6, r8\n\t"
"evsrwiu r10, r24, 10\n\t"
"and r7, r7, r19\n\t"
"evxor r11, r11, r10\n\t"
"rotlwi r8, r19, 7\n\t"
"evaddw r25, r25, r11\n\t"
"xor r6, r6, r8\n\t"
"evmergelohi r10, r22, r29\n\t"
"xor r7, r7, r21\n\t"
"evaddw r25, r25, r10\n\t"
"add r14, r14, r6\n\t"
"evrlwi r10, r12, 25\n\t"
"add r14, r14, r7\n\t"
"evrlwi r11, r12, 14\n\t"
"lwz r6, 28(r30)\n\t"
"evxor r11, r11, r10\n\t"
"add r14, r14, r9\n\t"
"evsrwiu r12, r12, 3\n\t"
"add r14, r14, r6\n\t"
"evxor r11, r11, r12\n\t"
"add r18, r18, r14\n\t"
"evaddw r25, r25, r11\n\t"
"rotlwi r6, r15, 30\n\t"
"xor r7, r15, r16\n\t"
"rotlwi r8, r15, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r16, r17\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r15, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r16\n\t"
"add r14, r14, r6\n\t"
"add r14, r14, r7\n\t"
"mr r9, r26\n\t"
"rotlwi r6, r18, 26\n\t"
"xor r7, r19, r20\n\t"
"rotlwi r8, r18, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r18\n\t"
"rotlwi r8, r18, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r20\n\t"
"add r21, r21, r6\n\t"
"add r21, r21, r7\n\t"
"lwz r6, 32(r30)\n\t"
"add r21, r21, r9\n\t"
"add r21, r21, r6\n\t"
"add r17, r17, r21\n\t"
"rotlwi r6, r14, 30\n\t"
"xor r7, r14, r15\n\t"
"rotlwi r8, r14, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r15, r16\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r14, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r15\n\t"
"add r21, r21, r6\n\t"
"add r21, r21, r7\n\t"
"evmergehi r9, r26, r26\n\t"
"evmergelohi r12, r27, r26\n\t"
"rotlwi r6, r17, 26\n\t"
"evrlwi r10, r25, 15\n\t"
"xor r7, r18, r19\n\t"
"evrlwi r11, r25, 13\n\t"
"rotlwi r8, r17, 21\n\t"
"evxor r11, r11, r10\n\t"
"xor r6, r6, r8\n\t"
"evsrwiu r10, r25, 10\n\t"
"and r7, r7, r17\n\t"
"evxor r11, r11, r10\n\t"
"rotlwi r8, r17, 7\n\t"
"evaddw r26, r26, r11\n\t"
"xor r6, r6, r8\n\t"
"evmergelohi r10, r23, r22\n\t"
"xor r7, r7, r19\n\t"
"evaddw r26, r26, r10\n\t"
"add r20, r20, r6\n\t"
"evrlwi r10, r12, 25\n\t"
"add r20, r20, r7\n\t"
"evrlwi r11, r12, 14\n\t"
"lwz r6, 36(r30)\n\t"
"evxor r11, r11, r10\n\t"
"add r20, r20, r9\n\t"
"evsrwiu r12, r12, 3\n\t"
"add r20, r20, r6\n\t"
"evxor r11, r11, r12\n\t"
"add r16, r16, r20\n\t"
"evaddw r26, r26, r11\n\t"
"rotlwi r6, r21, 30\n\t"
"xor r7, r21, r14\n\t"
"rotlwi r8, r21, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r14, r15\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r21, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r14\n\t"
"add r20, r20, r6\n\t"
"add r20, r20, r7\n\t"
"mr r9, r27\n\t"
"rotlwi r6, r16, 26\n\t"
"xor r7, r17, r18\n\t"
"rotlwi r8, r16, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r16\n\t"
"rotlwi r8, r16, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r18\n\t"
"add r19, r19, r6\n\t"
"add r19, r19, r7\n\t"
"lwz r6, 40(r30)\n\t"
"add r19, r19, r9\n\t"
"add r19, r19, r6\n\t"
"add r15, r15, r19\n\t"
"rotlwi r6, r20, 30\n\t"
"xor r7, r20, r21\n\t"
"rotlwi r8, r20, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r21, r14\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r20, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r21\n\t"
"add r19, r19, r6\n\t"
"add r19, r19, r7\n\t"
"evmergehi r9, r27, r27\n\t"
"evmergelohi r12, r28, r27\n\t"
"rotlwi r6, r15, 26\n\t"
"evrlwi r10, r26, 15\n\t"
"xor r7, r16, r17\n\t"
"evrlwi r11, r26, 13\n\t"
"rotlwi r8, r15, 21\n\t"
"evxor r11, r11, r10\n\t"
"xor r6, r6, r8\n\t"
"evsrwiu r10, r26, 10\n\t"
"and r7, r7, r15\n\t"
"evxor r11, r11, r10\n\t"
"rotlwi r8, r15, 7\n\t"
"evaddw r27, r27, r11\n\t"
"xor r6, r6, r8\n\t"
"evmergelohi r10, r24, r23\n\t"
"xor r7, r7, r17\n\t"
"evaddw r27, r27, r10\n\t"
"add r18, r18, r6\n\t"
"evrlwi r10, r12, 25\n\t"
"add r18, r18, r7\n\t"
"evrlwi r11, r12, 14\n\t"
"lwz r6, 44(r30)\n\t"
"evxor r11, r11, r10\n\t"
"add r18, r18, r9\n\t"
"evsrwiu r12, r12, 3\n\t"
"add r18, r18, r6\n\t"
"evxor r11, r11, r12\n\t"
"add r14, r14, r18\n\t"
"evaddw r27, r27, r11\n\t"
"rotlwi r6, r19, 30\n\t"
"xor r7, r19, r20\n\t"
"rotlwi r8, r19, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r20, r21\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r19, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r20\n\t"
"add r18, r18, r6\n\t"
"add r18, r18, r7\n\t"
"mr r9, r28\n\t"
"rotlwi r6, r14, 26\n\t"
"xor r7, r15, r16\n\t"
"rotlwi r8, r14, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r14\n\t"
"rotlwi r8, r14, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r16\n\t"
"add r17, r17, r6\n\t"
"add r17, r17, r7\n\t"
"lwz r6, 48(r30)\n\t"
"add r17, r17, r9\n\t"
"add r17, r17, r6\n\t"
"add r21, r21, r17\n\t"
"rotlwi r6, r18, 30\n\t"
"xor r7, r18, r19\n\t"
"rotlwi r8, r18, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r19, r20\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r18, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r19\n\t"
"add r17, r17, r6\n\t"
"add r17, r17, r7\n\t"
"evmergehi r9, r28, r28\n\t"
"evmergelohi r12, r29, r28\n\t"
"rotlwi r6, r21, 26\n\t"
"evrlwi r10, r27, 15\n\t"
"xor r7, r14, r15\n\t"
"evrlwi r11, r27, 13\n\t"
"rotlwi r8, r21, 21\n\t"
"evxor r11, r11, r10\n\t"
"xor r6, r6, r8\n\t"
"evsrwiu r10, r27, 10\n\t"
"and r7, r7, r21\n\t"
"evxor r11, r11, r10\n\t"
"rotlwi r8, r21, 7\n\t"
"evaddw r28, r28, r11\n\t"
"xor r6, r6, r8\n\t"
"evmergelohi r10, r25, r24\n\t"
"xor r7, r7, r15\n\t"
"evaddw r28, r28, r10\n\t"
"add r16, r16, r6\n\t"
"evrlwi r10, r12, 25\n\t"
"add r16, r16, r7\n\t"
"evrlwi r11, r12, 14\n\t"
"lwz r6, 52(r30)\n\t"
"evxor r11, r11, r10\n\t"
"add r16, r16, r9\n\t"
"evsrwiu r12, r12, 3\n\t"
"add r16, r16, r6\n\t"
"evxor r11, r11, r12\n\t"
"add r20, r20, r16\n\t"
"evaddw r28, r28, r11\n\t"
"rotlwi r6, r17, 30\n\t"
"xor r7, r17, r18\n\t"
"rotlwi r8, r17, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r18, r19\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r17, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r18\n\t"
"add r16, r16, r6\n\t"
"add r16, r16, r7\n\t"
"mr r9, r29\n\t"
"rotlwi r6, r20, 26\n\t"
"xor r7, r21, r14\n\t"
"rotlwi r8, r20, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r20\n\t"
"rotlwi r8, r20, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r14\n\t"
"add r15, r15, r6\n\t"
"add r15, r15, r7\n\t"
"lwz r6, 56(r30)\n\t"
"add r15, r15, r9\n\t"
"add r15, r15, r6\n\t"
"add r19, r19, r15\n\t"
"rotlwi r6, r16, 30\n\t"
"xor r7, r16, r17\n\t"
"rotlwi r8, r16, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r17, r18\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r16, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r17\n\t"
"add r15, r15, r6\n\t"
"add r15, r15, r7\n\t"
"evmergehi r9, r29, r29\n\t"
"evmergelohi r12, r22, r29\n\t"
"rotlwi r6, r19, 26\n\t"
"evrlwi r10, r28, 15\n\t"
"xor r7, r20, r21\n\t"
"evrlwi r11, r28, 13\n\t"
"rotlwi r8, r19, 21\n\t"
"evxor r11, r11, r10\n\t"
"xor r6, r6, r8\n\t"
"evsrwiu r10, r28, 10\n\t"
"and r7, r7, r19\n\t"
"evxor r11, r11, r10\n\t"
"rotlwi r8, r19, 7\n\t"
"evaddw r29, r29, r11\n\t"
"xor r6, r6, r8\n\t"
"evmergelohi r10, r26, r25\n\t"
"xor r7, r7, r21\n\t"
"evaddw r29, r29, r10\n\t"
"add r14, r14, r6\n\t"
"evrlwi r10, r12, 25\n\t"
"add r14, r14, r7\n\t"
"evrlwi r11, r12, 14\n\t"
"lwz r6, 60(r30)\n\t"
"evxor r11, r11, r10\n\t"
"add r14, r14, r9\n\t"
"evsrwiu r12, r12, 3\n\t"
"add r14, r14, r6\n\t"
"evxor r11, r11, r12\n\t"
"add r18, r18, r14\n\t"
"evaddw r29, r29, r11\n\t"
"rotlwi r6, r15, 30\n\t"
"xor r7, r15, r16\n\t"
"rotlwi r8, r15, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r16, r17\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r15, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r16\n\t"
"add r14, r14, r6\n\t"
"add r14, r14, r7\n\t"
"addi r30, r30, 0x40\n\t"
"bdnz L_SHA256_transform_spe_len_start_%=\n\t"
"mr r9, r22\n\t"
"rotlwi r6, r18, 26\n\t"
"xor r7, r19, r20\n\t"
"rotlwi r8, r18, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r18\n\t"
"rotlwi r8, r18, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r20\n\t"
"add r21, r21, r6\n\t"
"add r21, r21, r7\n\t"
"lwz r6, 0(r30)\n\t"
"add r21, r21, r9\n\t"
"add r21, r21, r6\n\t"
"add r17, r17, r21\n\t"
"rotlwi r6, r14, 30\n\t"
"xor r7, r14, r15\n\t"
"rotlwi r8, r14, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r15, r16\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r14, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r15\n\t"
"add r21, r21, r6\n\t"
"add r21, r21, r7\n\t"
"evmergehi r9, r22, r22\n\t"
"rotlwi r6, r17, 26\n\t"
"xor r7, r18, r19\n\t"
"rotlwi r8, r17, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r17\n\t"
"rotlwi r8, r17, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r19\n\t"
"add r20, r20, r6\n\t"
"add r20, r20, r7\n\t"
"lwz r6, 4(r30)\n\t"
"add r20, r20, r9\n\t"
"add r20, r20, r6\n\t"
"add r16, r16, r20\n\t"
"rotlwi r6, r21, 30\n\t"
"xor r7, r21, r14\n\t"
"rotlwi r8, r21, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r14, r15\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r21, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r14\n\t"
"add r20, r20, r6\n\t"
"add r20, r20, r7\n\t"
"mr r9, r23\n\t"
"rotlwi r6, r16, 26\n\t"
"xor r7, r17, r18\n\t"
"rotlwi r8, r16, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r16\n\t"
"rotlwi r8, r16, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r18\n\t"
"add r19, r19, r6\n\t"
"add r19, r19, r7\n\t"
"lwz r6, 8(r30)\n\t"
"add r19, r19, r9\n\t"
"add r19, r19, r6\n\t"
"add r15, r15, r19\n\t"
"rotlwi r6, r20, 30\n\t"
"xor r7, r20, r21\n\t"
"rotlwi r8, r20, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r21, r14\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r20, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r21\n\t"
"add r19, r19, r6\n\t"
"add r19, r19, r7\n\t"
"evmergehi r9, r23, r23\n\t"
"rotlwi r6, r15, 26\n\t"
"xor r7, r16, r17\n\t"
"rotlwi r8, r15, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r15\n\t"
"rotlwi r8, r15, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r17\n\t"
"add r18, r18, r6\n\t"
"add r18, r18, r7\n\t"
"lwz r6, 12(r30)\n\t"
"add r18, r18, r9\n\t"
"add r18, r18, r6\n\t"
"add r14, r14, r18\n\t"
"rotlwi r6, r19, 30\n\t"
"xor r7, r19, r20\n\t"
"rotlwi r8, r19, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r20, r21\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r19, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r20\n\t"
"add r18, r18, r6\n\t"
"add r18, r18, r7\n\t"
"mr r9, r24\n\t"
"rotlwi r6, r14, 26\n\t"
"xor r7, r15, r16\n\t"
"rotlwi r8, r14, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r14\n\t"
"rotlwi r8, r14, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r16\n\t"
"add r17, r17, r6\n\t"
"add r17, r17, r7\n\t"
"lwz r6, 16(r30)\n\t"
"add r17, r17, r9\n\t"
"add r17, r17, r6\n\t"
"add r21, r21, r17\n\t"
"rotlwi r6, r18, 30\n\t"
"xor r7, r18, r19\n\t"
"rotlwi r8, r18, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r19, r20\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r18, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r19\n\t"
"add r17, r17, r6\n\t"
"add r17, r17, r7\n\t"
"evmergehi r9, r24, r24\n\t"
"rotlwi r6, r21, 26\n\t"
"xor r7, r14, r15\n\t"
"rotlwi r8, r21, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r21\n\t"
"rotlwi r8, r21, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r15\n\t"
"add r16, r16, r6\n\t"
"add r16, r16, r7\n\t"
"lwz r6, 20(r30)\n\t"
"add r16, r16, r9\n\t"
"add r16, r16, r6\n\t"
"add r20, r20, r16\n\t"
"rotlwi r6, r17, 30\n\t"
"xor r7, r17, r18\n\t"
"rotlwi r8, r17, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r18, r19\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r17, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r18\n\t"
"add r16, r16, r6\n\t"
"add r16, r16, r7\n\t"
"mr r9, r25\n\t"
"rotlwi r6, r20, 26\n\t"
"xor r7, r21, r14\n\t"
"rotlwi r8, r20, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r20\n\t"
"rotlwi r8, r20, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r14\n\t"
"add r15, r15, r6\n\t"
"add r15, r15, r7\n\t"
"lwz r6, 24(r30)\n\t"
"add r15, r15, r9\n\t"
"add r15, r15, r6\n\t"
"add r19, r19, r15\n\t"
"rotlwi r6, r16, 30\n\t"
"xor r7, r16, r17\n\t"
"rotlwi r8, r16, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r17, r18\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r16, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r17\n\t"
"add r15, r15, r6\n\t"
"add r15, r15, r7\n\t"
"evmergehi r9, r25, r25\n\t"
"rotlwi r6, r19, 26\n\t"
"xor r7, r20, r21\n\t"
"rotlwi r8, r19, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r19\n\t"
"rotlwi r8, r19, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r21\n\t"
"add r14, r14, r6\n\t"
"add r14, r14, r7\n\t"
"lwz r6, 28(r30)\n\t"
"add r14, r14, r9\n\t"
"add r14, r14, r6\n\t"
"add r18, r18, r14\n\t"
"rotlwi r6, r15, 30\n\t"
"xor r7, r15, r16\n\t"
"rotlwi r8, r15, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r16, r17\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r15, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r16\n\t"
"add r14, r14, r6\n\t"
"add r14, r14, r7\n\t"
"mr r9, r26\n\t"
"rotlwi r6, r18, 26\n\t"
"xor r7, r19, r20\n\t"
"rotlwi r8, r18, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r18\n\t"
"rotlwi r8, r18, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r20\n\t"
"add r21, r21, r6\n\t"
"add r21, r21, r7\n\t"
"lwz r6, 32(r30)\n\t"
"add r21, r21, r9\n\t"
"add r21, r21, r6\n\t"
"add r17, r17, r21\n\t"
"rotlwi r6, r14, 30\n\t"
"xor r7, r14, r15\n\t"
"rotlwi r8, r14, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r15, r16\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r14, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r15\n\t"
"add r21, r21, r6\n\t"
"add r21, r21, r7\n\t"
"evmergehi r9, r26, r26\n\t"
"rotlwi r6, r17, 26\n\t"
"xor r7, r18, r19\n\t"
"rotlwi r8, r17, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r17\n\t"
"rotlwi r8, r17, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r19\n\t"
"add r20, r20, r6\n\t"
"add r20, r20, r7\n\t"
"lwz r6, 36(r30)\n\t"
"add r20, r20, r9\n\t"
"add r20, r20, r6\n\t"
"add r16, r16, r20\n\t"
"rotlwi r6, r21, 30\n\t"
"xor r7, r21, r14\n\t"
"rotlwi r8, r21, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r14, r15\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r21, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r14\n\t"
"add r20, r20, r6\n\t"
"add r20, r20, r7\n\t"
"mr r9, r27\n\t"
"rotlwi r6, r16, 26\n\t"
"xor r7, r17, r18\n\t"
"rotlwi r8, r16, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r16\n\t"
"rotlwi r8, r16, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r18\n\t"
"add r19, r19, r6\n\t"
"add r19, r19, r7\n\t"
"lwz r6, 40(r30)\n\t"
"add r19, r19, r9\n\t"
"add r19, r19, r6\n\t"
"add r15, r15, r19\n\t"
"rotlwi r6, r20, 30\n\t"
"xor r7, r20, r21\n\t"
"rotlwi r8, r20, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r21, r14\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r20, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r21\n\t"
"add r19, r19, r6\n\t"
"add r19, r19, r7\n\t"
"evmergehi r9, r27, r27\n\t"
"rotlwi r6, r15, 26\n\t"
"xor r7, r16, r17\n\t"
"rotlwi r8, r15, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r15\n\t"
"rotlwi r8, r15, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r17\n\t"
"add r18, r18, r6\n\t"
"add r18, r18, r7\n\t"
"lwz r6, 44(r30)\n\t"
"add r18, r18, r9\n\t"
"add r18, r18, r6\n\t"
"add r14, r14, r18\n\t"
"rotlwi r6, r19, 30\n\t"
"xor r7, r19, r20\n\t"
"rotlwi r8, r19, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r20, r21\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r19, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r20\n\t"
"add r18, r18, r6\n\t"
"add r18, r18, r7\n\t"
"mr r9, r28\n\t"
"rotlwi r6, r14, 26\n\t"
"xor r7, r15, r16\n\t"
"rotlwi r8, r14, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r14\n\t"
"rotlwi r8, r14, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r16\n\t"
"add r17, r17, r6\n\t"
"add r17, r17, r7\n\t"
"lwz r6, 48(r30)\n\t"
"add r17, r17, r9\n\t"
"add r17, r17, r6\n\t"
"add r21, r21, r17\n\t"
"rotlwi r6, r18, 30\n\t"
"xor r7, r18, r19\n\t"
"rotlwi r8, r18, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r19, r20\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r18, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r19\n\t"
"add r17, r17, r6\n\t"
"add r17, r17, r7\n\t"
"evmergehi r9, r28, r28\n\t"
"rotlwi r6, r21, 26\n\t"
"xor r7, r14, r15\n\t"
"rotlwi r8, r21, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r21\n\t"
"rotlwi r8, r21, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r15\n\t"
"add r16, r16, r6\n\t"
"add r16, r16, r7\n\t"
"lwz r6, 52(r30)\n\t"
"add r16, r16, r9\n\t"
"add r16, r16, r6\n\t"
"add r20, r20, r16\n\t"
"rotlwi r6, r17, 30\n\t"
"xor r7, r17, r18\n\t"
"rotlwi r8, r17, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r18, r19\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r17, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r18\n\t"
"add r16, r16, r6\n\t"
"add r16, r16, r7\n\t"
"mr r9, r29\n\t"
"rotlwi r6, r20, 26\n\t"
"xor r7, r21, r14\n\t"
"rotlwi r8, r20, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r20\n\t"
"rotlwi r8, r20, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r14\n\t"
"add r15, r15, r6\n\t"
"add r15, r15, r7\n\t"
"lwz r6, 56(r30)\n\t"
"add r15, r15, r9\n\t"
"add r15, r15, r6\n\t"
"add r19, r19, r15\n\t"
"rotlwi r6, r16, 30\n\t"
"xor r7, r16, r17\n\t"
"rotlwi r8, r16, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r17, r18\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r16, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r17\n\t"
"add r15, r15, r6\n\t"
"add r15, r15, r7\n\t"
"evmergehi r9, r29, r29\n\t"
"rotlwi r6, r19, 26\n\t"
"xor r7, r20, r21\n\t"
"rotlwi r8, r19, 21\n\t"
"xor r6, r6, r8\n\t"
"and r7, r7, r19\n\t"
"rotlwi r8, r19, 7\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r21\n\t"
"add r14, r14, r6\n\t"
"add r14, r14, r7\n\t"
"lwz r6, 60(r30)\n\t"
"add r14, r14, r9\n\t"
"add r14, r14, r6\n\t"
"add r18, r18, r14\n\t"
"rotlwi r6, r15, 30\n\t"
"xor r7, r15, r16\n\t"
"rotlwi r8, r15, 19\n\t"
"xor r6, r6, r8\n\t"
"xor r8, r16, r17\n\t"
"and r7, r7, r8\n\t"
"rotlwi r8, r15, 10\n\t"
"xor r6, r6, r8\n\t"
"xor r7, r7, r16\n\t"
"add r14, r14, r6\n\t"
"add r14, r14, r7\n\t"
"lwz r6, 0(%[sha256])\n\t"
"lwz r7, 4(%[sha256])\n\t"
"add r14, r14, r6\n\t"
"add r15, r15, r7\n\t"
"lwz r6, 8(%[sha256])\n\t"
"lwz r7, 12(%[sha256])\n\t"
"add r16, r16, r6\n\t"
"add r17, r17, r7\n\t"
"lwz r6, 16(%[sha256])\n\t"
"lwz r7, 20(%[sha256])\n\t"
"add r18, r18, r6\n\t"
"add r19, r19, r7\n\t"
"lwz r6, 24(%[sha256])\n\t"
"lwz r7, 28(%[sha256])\n\t"
"add r20, r20, r6\n\t"
"add r21, r21, r7\n\t"
"stw r14, 0(%[sha256])\n\t"
"stw r15, 4(%[sha256])\n\t"
"stw r16, 8(%[sha256])\n\t"
"stw r17, 12(%[sha256])\n\t"
"stw r18, 16(%[sha256])\n\t"
"stw r19, 20(%[sha256])\n\t"
"stw r20, 24(%[sha256])\n\t"
"stw r21, 28(%[sha256])\n\t"
"subi r30, r30, 0xc0\n\t"
"mtctr %[len]\n\t"
"addi %[data], %[data], 0x40\n\t"
"subi %[len], %[len], 1\n\t"
"bdnz L_SHA256_transform_spe_len_begin_%=\n\t"
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
: [sha256] "+r" (sha256), [data] "+r" (data), [len] "+r" (len),
[L_SHA256_transform_spe_len_k] "+r" (L_SHA256_transform_spe_len_k_c)
:
#else
:
: [sha256] "r" (sha256), [data] "r" (data), [len] "r" (len),
[L_SHA256_transform_spe_len_k] "r" (L_SHA256_transform_spe_len_k_c)
#endif
: "memory", "cc", "r0", "r7", "r8", "r9", "r10", "r11", "r12", "r14",
"r15", "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
"r24", "r25", "r26", "r27", "r28", "r29", "r30"
);
}
#endif
#ifndef WOLFSSL_PPC32_ASM_SPE
#include <wolfssl/wolfcrypt/sha256.h>
static const word32 L_SHA256_transform_len_k[] = {
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,
};
#ifndef __PIC__
void Transform_Sha256_Len(wc_Sha256* sha256_p, const byte* data_p,
word32 len_p);
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
void Transform_Sha256_Len(wc_Sha256* sha256_p, const byte* data_p, word32 len_p)
#else
void Transform_Sha256_Len(wc_Sha256* sha256, const byte* data, word32 len)
#endif
{
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
register wc_Sha256* sha256 asm ("3") = (wc_Sha256*)sha256_p;
register const byte* data asm ("4") = (const byte*)data_p;
register word32 len asm ("5") = (word32)len_p;
register word32* L_SHA256_transform_len_k_c asm ("6") =
(word32*)&L_SHA256_transform_len_k;
#else
register word32* L_SHA256_transform_len_k_c =
(word32*)&L_SHA256_transform_len_k;
#endif
__asm__ __volatile__ (
"srwi %[len], %[len], 6\n\t"
"mr r6, %[L_SHA256_transform_len_k]\n\t"
"lwz r7, 0(%[sha256])\n\t"
"lwz r8, 4(%[sha256])\n\t"
"lwz r9, 8(%[sha256])\n\t"
"lwz r10, 12(%[sha256])\n\t"
"lwz r11, 16(%[sha256])\n\t"
"lwz r12, 20(%[sha256])\n\t"
"lwz r14, 24(%[sha256])\n\t"
"lwz r15, 28(%[sha256])\n\t"
#ifndef WOLFSSL_PPC32_ASM_SMALL
"mtctr %[len]\n\t"
"\n"
"L_SHA256_transform_len_begin_%=: \n\t"
"lwz r16, 0(%[data])\n\t"
"lwz r17, 4(%[data])\n\t"
"lwz r18, 8(%[data])\n\t"
"lwz r19, 12(%[data])\n\t"
"lwz r20, 16(%[data])\n\t"
"lwz r21, 20(%[data])\n\t"
"lwz r22, 24(%[data])\n\t"
"lwz r23, 28(%[data])\n\t"
"lwz r24, 32(%[data])\n\t"
"lwz r25, 36(%[data])\n\t"
"lwz r26, 40(%[data])\n\t"
"lwz r27, 44(%[data])\n\t"
"lwz r28, 48(%[data])\n\t"
"lwz r29, 52(%[data])\n\t"
"lwz r30, 56(%[data])\n\t"
"lwz r31, 60(%[data])\n\t"
"rotlwi r0, r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, r11\n\t"
"xor r0, r0, r14\n\t"
"add r15, r15, r0\n\t"
"lwz r0, 0(r6)\n\t"
"add r15, r15, r16\n\t"
"add r15, r15, r0\n\t"
"add r10, r10, r15\n\t"
"rotlwi r0, r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor %[len], r7, r8\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r8\n\t"
"add r15, r15, r0\n\t"
"rotlwi r0, r17, 25\n\t"
"rotlwi %[len], r17, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r17, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r16, r16, r0\n\t"
"rotlwi r0, r30, 15\n\t"
"rotlwi %[len], r30, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r30, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r16, r16, r0\n\t"
"add r16, r16, r25\n\t"
"rotlwi r0, r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, r10\n\t"
"xor r0, r0, r12\n\t"
"add r14, r14, r0\n\t"
"lwz r0, 4(r6)\n\t"
"add r14, r14, r17\n\t"
"add r14, r14, r0\n\t"
"add r9, r9, r14\n\t"
"rotlwi r0, r15, 30\n\t"
"rotlwi %[len], r15, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor %[len], r15, r7\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r7\n\t"
"add r14, r14, r0\n\t"
"rotlwi r0, r18, 25\n\t"
"rotlwi %[len], r18, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r18, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r17, r17, r0\n\t"
"rotlwi r0, r31, 15\n\t"
"rotlwi %[len], r31, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r31, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r17, r17, r0\n\t"
"add r17, r17, r26\n\t"
"rotlwi r0, r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, r9\n\t"
"xor r0, r0, r11\n\t"
"add r12, r12, r0\n\t"
"lwz r0, 8(r6)\n\t"
"add r12, r12, r18\n\t"
"add r12, r12, r0\n\t"
"add r8, r8, r12\n\t"
"rotlwi r0, r14, 30\n\t"
"rotlwi %[len], r14, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor %[len], r14, r15\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r15\n\t"
"add r12, r12, r0\n\t"
"rotlwi r0, r19, 25\n\t"
"rotlwi %[len], r19, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r19, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r18, r18, r0\n\t"
"rotlwi r0, r16, 15\n\t"
"rotlwi %[len], r16, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r16, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r18, r18, r0\n\t"
"add r18, r18, r27\n\t"
"rotlwi r0, r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, r8\n\t"
"xor r0, r0, r10\n\t"
"add r11, r11, r0\n\t"
"lwz r0, 12(r6)\n\t"
"add r11, r11, r19\n\t"
"add r11, r11, r0\n\t"
"add r7, r7, r11\n\t"
"rotlwi r0, r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor %[len], r12, r14\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r14\n\t"
"add r11, r11, r0\n\t"
"rotlwi r0, r20, 25\n\t"
"rotlwi %[len], r20, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r20, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r19, r19, r0\n\t"
"rotlwi r0, r17, 15\n\t"
"rotlwi %[len], r17, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r17, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r19, r19, r0\n\t"
"add r19, r19, r28\n\t"
"rotlwi r0, r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, r7\n\t"
"xor r0, r0, r9\n\t"
"add r10, r10, r0\n\t"
"lwz r0, 16(r6)\n\t"
"add r10, r10, r20\n\t"
"add r10, r10, r0\n\t"
"add r15, r15, r10\n\t"
"rotlwi r0, r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor %[len], r11, r12\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r12\n\t"
"add r10, r10, r0\n\t"
"rotlwi r0, r21, 25\n\t"
"rotlwi %[len], r21, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r21, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r20, r20, r0\n\t"
"rotlwi r0, r18, 15\n\t"
"rotlwi %[len], r18, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r18, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r20, r20, r0\n\t"
"add r20, r20, r29\n\t"
"rotlwi r0, r15, 26\n\t"
"rotlwi %[len], r15, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, r15\n\t"
"xor r0, r0, r8\n\t"
"add r9, r9, r0\n\t"
"lwz r0, 20(r6)\n\t"
"add r9, r9, r21\n\t"
"add r9, r9, r0\n\t"
"add r14, r14, r9\n\t"
"rotlwi r0, r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor %[len], r10, r11\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r11\n\t"
"add r9, r9, r0\n\t"
"rotlwi r0, r22, 25\n\t"
"rotlwi %[len], r22, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r22, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r21, r21, r0\n\t"
"rotlwi r0, r19, 15\n\t"
"rotlwi %[len], r19, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r19, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r21, r21, r0\n\t"
"add r21, r21, r30\n\t"
"rotlwi r0, r14, 26\n\t"
"rotlwi %[len], r14, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, r14\n\t"
"xor r0, r0, r7\n\t"
"add r8, r8, r0\n\t"
"lwz r0, 24(r6)\n\t"
"add r8, r8, r22\n\t"
"add r8, r8, r0\n\t"
"add r12, r12, r8\n\t"
"rotlwi r0, r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor %[len], r9, r10\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r10\n\t"
"add r8, r8, r0\n\t"
"rotlwi r0, r23, 25\n\t"
"rotlwi %[len], r23, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r23, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r22, r22, r0\n\t"
"rotlwi r0, r20, 15\n\t"
"rotlwi %[len], r20, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r20, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r22, r22, r0\n\t"
"add r22, r22, r31\n\t"
"rotlwi r0, r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, r12\n\t"
"xor r0, r0, r15\n\t"
"add r7, r7, r0\n\t"
"lwz r0, 28(r6)\n\t"
"add r7, r7, r23\n\t"
"add r7, r7, r0\n\t"
"add r11, r11, r7\n\t"
"rotlwi r0, r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor %[len], r8, r9\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r9\n\t"
"add r7, r7, r0\n\t"
"rotlwi r0, r24, 25\n\t"
"rotlwi %[len], r24, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r24, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r23, r23, r0\n\t"
"rotlwi r0, r21, 15\n\t"
"rotlwi %[len], r21, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r21, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r23, r23, r0\n\t"
"add r23, r23, r16\n\t"
"rotlwi r0, r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, r11\n\t"
"xor r0, r0, r14\n\t"
"add r15, r15, r0\n\t"
"lwz r0, 32(r6)\n\t"
"add r15, r15, r24\n\t"
"add r15, r15, r0\n\t"
"add r10, r10, r15\n\t"
"rotlwi r0, r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor %[len], r7, r8\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r8\n\t"
"add r15, r15, r0\n\t"
"rotlwi r0, r25, 25\n\t"
"rotlwi %[len], r25, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r25, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r24, r24, r0\n\t"
"rotlwi r0, r22, 15\n\t"
"rotlwi %[len], r22, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r22, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r24, r24, r0\n\t"
"add r24, r24, r17\n\t"
"rotlwi r0, r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, r10\n\t"
"xor r0, r0, r12\n\t"
"add r14, r14, r0\n\t"
"lwz r0, 36(r6)\n\t"
"add r14, r14, r25\n\t"
"add r14, r14, r0\n\t"
"add r9, r9, r14\n\t"
"rotlwi r0, r15, 30\n\t"
"rotlwi %[len], r15, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor %[len], r15, r7\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r7\n\t"
"add r14, r14, r0\n\t"
"rotlwi r0, r26, 25\n\t"
"rotlwi %[len], r26, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r26, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r25, r25, r0\n\t"
"rotlwi r0, r23, 15\n\t"
"rotlwi %[len], r23, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r23, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r25, r25, r0\n\t"
"add r25, r25, r18\n\t"
"rotlwi r0, r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, r9\n\t"
"xor r0, r0, r11\n\t"
"add r12, r12, r0\n\t"
"lwz r0, 40(r6)\n\t"
"add r12, r12, r26\n\t"
"add r12, r12, r0\n\t"
"add r8, r8, r12\n\t"
"rotlwi r0, r14, 30\n\t"
"rotlwi %[len], r14, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor %[len], r14, r15\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r15\n\t"
"add r12, r12, r0\n\t"
"rotlwi r0, r27, 25\n\t"
"rotlwi %[len], r27, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r27, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r26, r26, r0\n\t"
"rotlwi r0, r24, 15\n\t"
"rotlwi %[len], r24, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r24, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r26, r26, r0\n\t"
"add r26, r26, r19\n\t"
"rotlwi r0, r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, r8\n\t"
"xor r0, r0, r10\n\t"
"add r11, r11, r0\n\t"
"lwz r0, 44(r6)\n\t"
"add r11, r11, r27\n\t"
"add r11, r11, r0\n\t"
"add r7, r7, r11\n\t"
"rotlwi r0, r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor %[len], r12, r14\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r14\n\t"
"add r11, r11, r0\n\t"
"rotlwi r0, r28, 25\n\t"
"rotlwi %[len], r28, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r28, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r27, r27, r0\n\t"
"rotlwi r0, r25, 15\n\t"
"rotlwi %[len], r25, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r25, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r27, r27, r0\n\t"
"add r27, r27, r20\n\t"
"rotlwi r0, r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, r7\n\t"
"xor r0, r0, r9\n\t"
"add r10, r10, r0\n\t"
"lwz r0, 48(r6)\n\t"
"add r10, r10, r28\n\t"
"add r10, r10, r0\n\t"
"add r15, r15, r10\n\t"
"rotlwi r0, r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor %[len], r11, r12\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r12\n\t"
"add r10, r10, r0\n\t"
"rotlwi r0, r29, 25\n\t"
"rotlwi %[len], r29, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r29, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r28, r28, r0\n\t"
"rotlwi r0, r26, 15\n\t"
"rotlwi %[len], r26, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r26, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r28, r28, r0\n\t"
"add r28, r28, r21\n\t"
"rotlwi r0, r15, 26\n\t"
"rotlwi %[len], r15, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, r15\n\t"
"xor r0, r0, r8\n\t"
"add r9, r9, r0\n\t"
"lwz r0, 52(r6)\n\t"
"add r9, r9, r29\n\t"
"add r9, r9, r0\n\t"
"add r14, r14, r9\n\t"
"rotlwi r0, r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor %[len], r10, r11\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r11\n\t"
"add r9, r9, r0\n\t"
"rotlwi r0, r30, 25\n\t"
"rotlwi %[len], r30, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r30, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r29, r29, r0\n\t"
"rotlwi r0, r27, 15\n\t"
"rotlwi %[len], r27, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r27, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r29, r29, r0\n\t"
"add r29, r29, r22\n\t"
"rotlwi r0, r14, 26\n\t"
"rotlwi %[len], r14, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, r14\n\t"
"xor r0, r0, r7\n\t"
"add r8, r8, r0\n\t"
"lwz r0, 56(r6)\n\t"
"add r8, r8, r30\n\t"
"add r8, r8, r0\n\t"
"add r12, r12, r8\n\t"
"rotlwi r0, r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor %[len], r9, r10\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r10\n\t"
"add r8, r8, r0\n\t"
"rotlwi r0, r31, 25\n\t"
"rotlwi %[len], r31, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r31, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r30, r30, r0\n\t"
"rotlwi r0, r28, 15\n\t"
"rotlwi %[len], r28, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r28, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r30, r30, r0\n\t"
"add r30, r30, r23\n\t"
"rotlwi r0, r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, r12\n\t"
"xor r0, r0, r15\n\t"
"add r7, r7, r0\n\t"
"lwz r0, 60(r6)\n\t"
"add r7, r7, r31\n\t"
"add r7, r7, r0\n\t"
"add r11, r11, r7\n\t"
"rotlwi r0, r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor %[len], r8, r9\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r9\n\t"
"add r7, r7, r0\n\t"
"rotlwi r0, r16, 25\n\t"
"rotlwi %[len], r16, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r16, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r31, r31, r0\n\t"
"rotlwi r0, r29, 15\n\t"
"rotlwi %[len], r29, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r29, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r31, r31, r0\n\t"
"add r31, r31, r24\n\t"
"addi r6, r6, 0x40\n\t"
"rotlwi r0, r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, r11\n\t"
"xor r0, r0, r14\n\t"
"add r15, r15, r0\n\t"
"lwz r0, 0(r6)\n\t"
"add r15, r15, r16\n\t"
"add r15, r15, r0\n\t"
"add r10, r10, r15\n\t"
"rotlwi r0, r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor %[len], r7, r8\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r8\n\t"
"add r15, r15, r0\n\t"
"rotlwi r0, r17, 25\n\t"
"rotlwi %[len], r17, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r17, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r16, r16, r0\n\t"
"rotlwi r0, r30, 15\n\t"
"rotlwi %[len], r30, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r30, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r16, r16, r0\n\t"
"add r16, r16, r25\n\t"
"rotlwi r0, r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, r10\n\t"
"xor r0, r0, r12\n\t"
"add r14, r14, r0\n\t"
"lwz r0, 4(r6)\n\t"
"add r14, r14, r17\n\t"
"add r14, r14, r0\n\t"
"add r9, r9, r14\n\t"
"rotlwi r0, r15, 30\n\t"
"rotlwi %[len], r15, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor %[len], r15, r7\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r7\n\t"
"add r14, r14, r0\n\t"
"rotlwi r0, r18, 25\n\t"
"rotlwi %[len], r18, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r18, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r17, r17, r0\n\t"
"rotlwi r0, r31, 15\n\t"
"rotlwi %[len], r31, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r31, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r17, r17, r0\n\t"
"add r17, r17, r26\n\t"
"rotlwi r0, r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, r9\n\t"
"xor r0, r0, r11\n\t"
"add r12, r12, r0\n\t"
"lwz r0, 8(r6)\n\t"
"add r12, r12, r18\n\t"
"add r12, r12, r0\n\t"
"add r8, r8, r12\n\t"
"rotlwi r0, r14, 30\n\t"
"rotlwi %[len], r14, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor %[len], r14, r15\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r15\n\t"
"add r12, r12, r0\n\t"
"rotlwi r0, r19, 25\n\t"
"rotlwi %[len], r19, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r19, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r18, r18, r0\n\t"
"rotlwi r0, r16, 15\n\t"
"rotlwi %[len], r16, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r16, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r18, r18, r0\n\t"
"add r18, r18, r27\n\t"
"rotlwi r0, r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, r8\n\t"
"xor r0, r0, r10\n\t"
"add r11, r11, r0\n\t"
"lwz r0, 12(r6)\n\t"
"add r11, r11, r19\n\t"
"add r11, r11, r0\n\t"
"add r7, r7, r11\n\t"
"rotlwi r0, r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor %[len], r12, r14\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r14\n\t"
"add r11, r11, r0\n\t"
"rotlwi r0, r20, 25\n\t"
"rotlwi %[len], r20, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r20, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r19, r19, r0\n\t"
"rotlwi r0, r17, 15\n\t"
"rotlwi %[len], r17, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r17, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r19, r19, r0\n\t"
"add r19, r19, r28\n\t"
"rotlwi r0, r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, r7\n\t"
"xor r0, r0, r9\n\t"
"add r10, r10, r0\n\t"
"lwz r0, 16(r6)\n\t"
"add r10, r10, r20\n\t"
"add r10, r10, r0\n\t"
"add r15, r15, r10\n\t"
"rotlwi r0, r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor %[len], r11, r12\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r12\n\t"
"add r10, r10, r0\n\t"
"rotlwi r0, r21, 25\n\t"
"rotlwi %[len], r21, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r21, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r20, r20, r0\n\t"
"rotlwi r0, r18, 15\n\t"
"rotlwi %[len], r18, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r18, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r20, r20, r0\n\t"
"add r20, r20, r29\n\t"
"rotlwi r0, r15, 26\n\t"
"rotlwi %[len], r15, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, r15\n\t"
"xor r0, r0, r8\n\t"
"add r9, r9, r0\n\t"
"lwz r0, 20(r6)\n\t"
"add r9, r9, r21\n\t"
"add r9, r9, r0\n\t"
"add r14, r14, r9\n\t"
"rotlwi r0, r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor %[len], r10, r11\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r11\n\t"
"add r9, r9, r0\n\t"
"rotlwi r0, r22, 25\n\t"
"rotlwi %[len], r22, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r22, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r21, r21, r0\n\t"
"rotlwi r0, r19, 15\n\t"
"rotlwi %[len], r19, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r19, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r21, r21, r0\n\t"
"add r21, r21, r30\n\t"
"rotlwi r0, r14, 26\n\t"
"rotlwi %[len], r14, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, r14\n\t"
"xor r0, r0, r7\n\t"
"add r8, r8, r0\n\t"
"lwz r0, 24(r6)\n\t"
"add r8, r8, r22\n\t"
"add r8, r8, r0\n\t"
"add r12, r12, r8\n\t"
"rotlwi r0, r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor %[len], r9, r10\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r10\n\t"
"add r8, r8, r0\n\t"
"rotlwi r0, r23, 25\n\t"
"rotlwi %[len], r23, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r23, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r22, r22, r0\n\t"
"rotlwi r0, r20, 15\n\t"
"rotlwi %[len], r20, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r20, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r22, r22, r0\n\t"
"add r22, r22, r31\n\t"
"rotlwi r0, r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, r12\n\t"
"xor r0, r0, r15\n\t"
"add r7, r7, r0\n\t"
"lwz r0, 28(r6)\n\t"
"add r7, r7, r23\n\t"
"add r7, r7, r0\n\t"
"add r11, r11, r7\n\t"
"rotlwi r0, r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor %[len], r8, r9\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r9\n\t"
"add r7, r7, r0\n\t"
"rotlwi r0, r24, 25\n\t"
"rotlwi %[len], r24, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r24, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r23, r23, r0\n\t"
"rotlwi r0, r21, 15\n\t"
"rotlwi %[len], r21, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r21, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r23, r23, r0\n\t"
"add r23, r23, r16\n\t"
"rotlwi r0, r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, r11\n\t"
"xor r0, r0, r14\n\t"
"add r15, r15, r0\n\t"
"lwz r0, 32(r6)\n\t"
"add r15, r15, r24\n\t"
"add r15, r15, r0\n\t"
"add r10, r10, r15\n\t"
"rotlwi r0, r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor %[len], r7, r8\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r8\n\t"
"add r15, r15, r0\n\t"
"rotlwi r0, r25, 25\n\t"
"rotlwi %[len], r25, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r25, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r24, r24, r0\n\t"
"rotlwi r0, r22, 15\n\t"
"rotlwi %[len], r22, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r22, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r24, r24, r0\n\t"
"add r24, r24, r17\n\t"
"rotlwi r0, r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, r10\n\t"
"xor r0, r0, r12\n\t"
"add r14, r14, r0\n\t"
"lwz r0, 36(r6)\n\t"
"add r14, r14, r25\n\t"
"add r14, r14, r0\n\t"
"add r9, r9, r14\n\t"
"rotlwi r0, r15, 30\n\t"
"rotlwi %[len], r15, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor %[len], r15, r7\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r7\n\t"
"add r14, r14, r0\n\t"
"rotlwi r0, r26, 25\n\t"
"rotlwi %[len], r26, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r26, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r25, r25, r0\n\t"
"rotlwi r0, r23, 15\n\t"
"rotlwi %[len], r23, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r23, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r25, r25, r0\n\t"
"add r25, r25, r18\n\t"
"rotlwi r0, r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, r9\n\t"
"xor r0, r0, r11\n\t"
"add r12, r12, r0\n\t"
"lwz r0, 40(r6)\n\t"
"add r12, r12, r26\n\t"
"add r12, r12, r0\n\t"
"add r8, r8, r12\n\t"
"rotlwi r0, r14, 30\n\t"
"rotlwi %[len], r14, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor %[len], r14, r15\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r15\n\t"
"add r12, r12, r0\n\t"
"rotlwi r0, r27, 25\n\t"
"rotlwi %[len], r27, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r27, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r26, r26, r0\n\t"
"rotlwi r0, r24, 15\n\t"
"rotlwi %[len], r24, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r24, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r26, r26, r0\n\t"
"add r26, r26, r19\n\t"
"rotlwi r0, r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, r8\n\t"
"xor r0, r0, r10\n\t"
"add r11, r11, r0\n\t"
"lwz r0, 44(r6)\n\t"
"add r11, r11, r27\n\t"
"add r11, r11, r0\n\t"
"add r7, r7, r11\n\t"
"rotlwi r0, r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor %[len], r12, r14\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r14\n\t"
"add r11, r11, r0\n\t"
"rotlwi r0, r28, 25\n\t"
"rotlwi %[len], r28, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r28, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r27, r27, r0\n\t"
"rotlwi r0, r25, 15\n\t"
"rotlwi %[len], r25, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r25, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r27, r27, r0\n\t"
"add r27, r27, r20\n\t"
"rotlwi r0, r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, r7\n\t"
"xor r0, r0, r9\n\t"
"add r10, r10, r0\n\t"
"lwz r0, 48(r6)\n\t"
"add r10, r10, r28\n\t"
"add r10, r10, r0\n\t"
"add r15, r15, r10\n\t"
"rotlwi r0, r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor %[len], r11, r12\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r12\n\t"
"add r10, r10, r0\n\t"
"rotlwi r0, r29, 25\n\t"
"rotlwi %[len], r29, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r29, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r28, r28, r0\n\t"
"rotlwi r0, r26, 15\n\t"
"rotlwi %[len], r26, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r26, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r28, r28, r0\n\t"
"add r28, r28, r21\n\t"
"rotlwi r0, r15, 26\n\t"
"rotlwi %[len], r15, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, r15\n\t"
"xor r0, r0, r8\n\t"
"add r9, r9, r0\n\t"
"lwz r0, 52(r6)\n\t"
"add r9, r9, r29\n\t"
"add r9, r9, r0\n\t"
"add r14, r14, r9\n\t"
"rotlwi r0, r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor %[len], r10, r11\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r11\n\t"
"add r9, r9, r0\n\t"
"rotlwi r0, r30, 25\n\t"
"rotlwi %[len], r30, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r30, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r29, r29, r0\n\t"
"rotlwi r0, r27, 15\n\t"
"rotlwi %[len], r27, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r27, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r29, r29, r0\n\t"
"add r29, r29, r22\n\t"
"rotlwi r0, r14, 26\n\t"
"rotlwi %[len], r14, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, r14\n\t"
"xor r0, r0, r7\n\t"
"add r8, r8, r0\n\t"
"lwz r0, 56(r6)\n\t"
"add r8, r8, r30\n\t"
"add r8, r8, r0\n\t"
"add r12, r12, r8\n\t"
"rotlwi r0, r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor %[len], r9, r10\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r10\n\t"
"add r8, r8, r0\n\t"
"rotlwi r0, r31, 25\n\t"
"rotlwi %[len], r31, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r31, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r30, r30, r0\n\t"
"rotlwi r0, r28, 15\n\t"
"rotlwi %[len], r28, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r28, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r30, r30, r0\n\t"
"add r30, r30, r23\n\t"
"rotlwi r0, r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, r12\n\t"
"xor r0, r0, r15\n\t"
"add r7, r7, r0\n\t"
"lwz r0, 60(r6)\n\t"
"add r7, r7, r31\n\t"
"add r7, r7, r0\n\t"
"add r11, r11, r7\n\t"
"rotlwi r0, r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor %[len], r8, r9\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r9\n\t"
"add r7, r7, r0\n\t"
"rotlwi r0, r16, 25\n\t"
"rotlwi %[len], r16, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r16, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r31, r31, r0\n\t"
"rotlwi r0, r29, 15\n\t"
"rotlwi %[len], r29, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r29, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r31, r31, r0\n\t"
"add r31, r31, r24\n\t"
"addi r6, r6, 0x40\n\t"
"rotlwi r0, r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, r11\n\t"
"xor r0, r0, r14\n\t"
"add r15, r15, r0\n\t"
"lwz r0, 0(r6)\n\t"
"add r15, r15, r16\n\t"
"add r15, r15, r0\n\t"
"add r10, r10, r15\n\t"
"rotlwi r0, r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor %[len], r7, r8\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r8\n\t"
"add r15, r15, r0\n\t"
"rotlwi r0, r17, 25\n\t"
"rotlwi %[len], r17, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r17, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r16, r16, r0\n\t"
"rotlwi r0, r30, 15\n\t"
"rotlwi %[len], r30, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r30, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r16, r16, r0\n\t"
"add r16, r16, r25\n\t"
"rotlwi r0, r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, r10\n\t"
"xor r0, r0, r12\n\t"
"add r14, r14, r0\n\t"
"lwz r0, 4(r6)\n\t"
"add r14, r14, r17\n\t"
"add r14, r14, r0\n\t"
"add r9, r9, r14\n\t"
"rotlwi r0, r15, 30\n\t"
"rotlwi %[len], r15, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor %[len], r15, r7\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r7\n\t"
"add r14, r14, r0\n\t"
"rotlwi r0, r18, 25\n\t"
"rotlwi %[len], r18, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r18, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r17, r17, r0\n\t"
"rotlwi r0, r31, 15\n\t"
"rotlwi %[len], r31, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r31, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r17, r17, r0\n\t"
"add r17, r17, r26\n\t"
"rotlwi r0, r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, r9\n\t"
"xor r0, r0, r11\n\t"
"add r12, r12, r0\n\t"
"lwz r0, 8(r6)\n\t"
"add r12, r12, r18\n\t"
"add r12, r12, r0\n\t"
"add r8, r8, r12\n\t"
"rotlwi r0, r14, 30\n\t"
"rotlwi %[len], r14, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor %[len], r14, r15\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r15\n\t"
"add r12, r12, r0\n\t"
"rotlwi r0, r19, 25\n\t"
"rotlwi %[len], r19, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r19, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r18, r18, r0\n\t"
"rotlwi r0, r16, 15\n\t"
"rotlwi %[len], r16, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r16, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r18, r18, r0\n\t"
"add r18, r18, r27\n\t"
"rotlwi r0, r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, r8\n\t"
"xor r0, r0, r10\n\t"
"add r11, r11, r0\n\t"
"lwz r0, 12(r6)\n\t"
"add r11, r11, r19\n\t"
"add r11, r11, r0\n\t"
"add r7, r7, r11\n\t"
"rotlwi r0, r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor %[len], r12, r14\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r14\n\t"
"add r11, r11, r0\n\t"
"rotlwi r0, r20, 25\n\t"
"rotlwi %[len], r20, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r20, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r19, r19, r0\n\t"
"rotlwi r0, r17, 15\n\t"
"rotlwi %[len], r17, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r17, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r19, r19, r0\n\t"
"add r19, r19, r28\n\t"
"rotlwi r0, r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, r7\n\t"
"xor r0, r0, r9\n\t"
"add r10, r10, r0\n\t"
"lwz r0, 16(r6)\n\t"
"add r10, r10, r20\n\t"
"add r10, r10, r0\n\t"
"add r15, r15, r10\n\t"
"rotlwi r0, r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor %[len], r11, r12\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r12\n\t"
"add r10, r10, r0\n\t"
"rotlwi r0, r21, 25\n\t"
"rotlwi %[len], r21, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r21, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r20, r20, r0\n\t"
"rotlwi r0, r18, 15\n\t"
"rotlwi %[len], r18, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r18, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r20, r20, r0\n\t"
"add r20, r20, r29\n\t"
"rotlwi r0, r15, 26\n\t"
"rotlwi %[len], r15, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, r15\n\t"
"xor r0, r0, r8\n\t"
"add r9, r9, r0\n\t"
"lwz r0, 20(r6)\n\t"
"add r9, r9, r21\n\t"
"add r9, r9, r0\n\t"
"add r14, r14, r9\n\t"
"rotlwi r0, r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor %[len], r10, r11\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r11\n\t"
"add r9, r9, r0\n\t"
"rotlwi r0, r22, 25\n\t"
"rotlwi %[len], r22, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r22, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r21, r21, r0\n\t"
"rotlwi r0, r19, 15\n\t"
"rotlwi %[len], r19, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r19, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r21, r21, r0\n\t"
"add r21, r21, r30\n\t"
"rotlwi r0, r14, 26\n\t"
"rotlwi %[len], r14, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, r14\n\t"
"xor r0, r0, r7\n\t"
"add r8, r8, r0\n\t"
"lwz r0, 24(r6)\n\t"
"add r8, r8, r22\n\t"
"add r8, r8, r0\n\t"
"add r12, r12, r8\n\t"
"rotlwi r0, r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor %[len], r9, r10\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r10\n\t"
"add r8, r8, r0\n\t"
"rotlwi r0, r23, 25\n\t"
"rotlwi %[len], r23, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r23, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r22, r22, r0\n\t"
"rotlwi r0, r20, 15\n\t"
"rotlwi %[len], r20, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r20, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r22, r22, r0\n\t"
"add r22, r22, r31\n\t"
"rotlwi r0, r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, r12\n\t"
"xor r0, r0, r15\n\t"
"add r7, r7, r0\n\t"
"lwz r0, 28(r6)\n\t"
"add r7, r7, r23\n\t"
"add r7, r7, r0\n\t"
"add r11, r11, r7\n\t"
"rotlwi r0, r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor %[len], r8, r9\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r9\n\t"
"add r7, r7, r0\n\t"
"rotlwi r0, r24, 25\n\t"
"rotlwi %[len], r24, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r24, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r23, r23, r0\n\t"
"rotlwi r0, r21, 15\n\t"
"rotlwi %[len], r21, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r21, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r23, r23, r0\n\t"
"add r23, r23, r16\n\t"
"rotlwi r0, r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, r11\n\t"
"xor r0, r0, r14\n\t"
"add r15, r15, r0\n\t"
"lwz r0, 32(r6)\n\t"
"add r15, r15, r24\n\t"
"add r15, r15, r0\n\t"
"add r10, r10, r15\n\t"
"rotlwi r0, r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor %[len], r7, r8\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r8\n\t"
"add r15, r15, r0\n\t"
"rotlwi r0, r25, 25\n\t"
"rotlwi %[len], r25, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r25, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r24, r24, r0\n\t"
"rotlwi r0, r22, 15\n\t"
"rotlwi %[len], r22, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r22, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r24, r24, r0\n\t"
"add r24, r24, r17\n\t"
"rotlwi r0, r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, r10\n\t"
"xor r0, r0, r12\n\t"
"add r14, r14, r0\n\t"
"lwz r0, 36(r6)\n\t"
"add r14, r14, r25\n\t"
"add r14, r14, r0\n\t"
"add r9, r9, r14\n\t"
"rotlwi r0, r15, 30\n\t"
"rotlwi %[len], r15, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor %[len], r15, r7\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r7\n\t"
"add r14, r14, r0\n\t"
"rotlwi r0, r26, 25\n\t"
"rotlwi %[len], r26, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r26, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r25, r25, r0\n\t"
"rotlwi r0, r23, 15\n\t"
"rotlwi %[len], r23, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r23, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r25, r25, r0\n\t"
"add r25, r25, r18\n\t"
"rotlwi r0, r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, r9\n\t"
"xor r0, r0, r11\n\t"
"add r12, r12, r0\n\t"
"lwz r0, 40(r6)\n\t"
"add r12, r12, r26\n\t"
"add r12, r12, r0\n\t"
"add r8, r8, r12\n\t"
"rotlwi r0, r14, 30\n\t"
"rotlwi %[len], r14, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor %[len], r14, r15\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r15\n\t"
"add r12, r12, r0\n\t"
"rotlwi r0, r27, 25\n\t"
"rotlwi %[len], r27, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r27, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r26, r26, r0\n\t"
"rotlwi r0, r24, 15\n\t"
"rotlwi %[len], r24, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r24, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r26, r26, r0\n\t"
"add r26, r26, r19\n\t"
"rotlwi r0, r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, r8\n\t"
"xor r0, r0, r10\n\t"
"add r11, r11, r0\n\t"
"lwz r0, 44(r6)\n\t"
"add r11, r11, r27\n\t"
"add r11, r11, r0\n\t"
"add r7, r7, r11\n\t"
"rotlwi r0, r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor %[len], r12, r14\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r14\n\t"
"add r11, r11, r0\n\t"
"rotlwi r0, r28, 25\n\t"
"rotlwi %[len], r28, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r28, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r27, r27, r0\n\t"
"rotlwi r0, r25, 15\n\t"
"rotlwi %[len], r25, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r25, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r27, r27, r0\n\t"
"add r27, r27, r20\n\t"
"rotlwi r0, r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, r7\n\t"
"xor r0, r0, r9\n\t"
"add r10, r10, r0\n\t"
"lwz r0, 48(r6)\n\t"
"add r10, r10, r28\n\t"
"add r10, r10, r0\n\t"
"add r15, r15, r10\n\t"
"rotlwi r0, r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor %[len], r11, r12\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r12\n\t"
"add r10, r10, r0\n\t"
"rotlwi r0, r29, 25\n\t"
"rotlwi %[len], r29, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r29, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r28, r28, r0\n\t"
"rotlwi r0, r26, 15\n\t"
"rotlwi %[len], r26, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r26, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r28, r28, r0\n\t"
"add r28, r28, r21\n\t"
"rotlwi r0, r15, 26\n\t"
"rotlwi %[len], r15, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, r15\n\t"
"xor r0, r0, r8\n\t"
"add r9, r9, r0\n\t"
"lwz r0, 52(r6)\n\t"
"add r9, r9, r29\n\t"
"add r9, r9, r0\n\t"
"add r14, r14, r9\n\t"
"rotlwi r0, r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor %[len], r10, r11\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r11\n\t"
"add r9, r9, r0\n\t"
"rotlwi r0, r30, 25\n\t"
"rotlwi %[len], r30, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r30, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r29, r29, r0\n\t"
"rotlwi r0, r27, 15\n\t"
"rotlwi %[len], r27, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r27, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r29, r29, r0\n\t"
"add r29, r29, r22\n\t"
"rotlwi r0, r14, 26\n\t"
"rotlwi %[len], r14, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, r14\n\t"
"xor r0, r0, r7\n\t"
"add r8, r8, r0\n\t"
"lwz r0, 56(r6)\n\t"
"add r8, r8, r30\n\t"
"add r8, r8, r0\n\t"
"add r12, r12, r8\n\t"
"rotlwi r0, r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor %[len], r9, r10\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r10\n\t"
"add r8, r8, r0\n\t"
"rotlwi r0, r31, 25\n\t"
"rotlwi %[len], r31, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r31, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r30, r30, r0\n\t"
"rotlwi r0, r28, 15\n\t"
"rotlwi %[len], r28, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r28, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r30, r30, r0\n\t"
"add r30, r30, r23\n\t"
"rotlwi r0, r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, r12\n\t"
"xor r0, r0, r15\n\t"
"add r7, r7, r0\n\t"
"lwz r0, 60(r6)\n\t"
"add r7, r7, r31\n\t"
"add r7, r7, r0\n\t"
"add r11, r11, r7\n\t"
"rotlwi r0, r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor %[len], r8, r9\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r9\n\t"
"add r7, r7, r0\n\t"
"rotlwi r0, r16, 25\n\t"
"rotlwi %[len], r16, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r16, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r31, r31, r0\n\t"
"rotlwi r0, r29, 15\n\t"
"rotlwi %[len], r29, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r29, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r31, r31, r0\n\t"
"add r31, r31, r24\n\t"
"addi r6, r6, 0x40\n\t"
"rotlwi r0, r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, r11\n\t"
"xor r0, r0, r14\n\t"
"add r15, r15, r0\n\t"
"lwz r0, 0(r6)\n\t"
"add r15, r15, r16\n\t"
"add r15, r15, r0\n\t"
"add r10, r10, r15\n\t"
"rotlwi r0, r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor %[len], r7, r8\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r8\n\t"
"add r15, r15, r0\n\t"
"rotlwi r0, r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, r10\n\t"
"xor r0, r0, r12\n\t"
"add r14, r14, r0\n\t"
"lwz r0, 4(r6)\n\t"
"add r14, r14, r17\n\t"
"add r14, r14, r0\n\t"
"add r9, r9, r14\n\t"
"rotlwi r0, r15, 30\n\t"
"rotlwi %[len], r15, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor %[len], r15, r7\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r7\n\t"
"add r14, r14, r0\n\t"
"rotlwi r0, r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, r9\n\t"
"xor r0, r0, r11\n\t"
"add r12, r12, r0\n\t"
"lwz r0, 8(r6)\n\t"
"add r12, r12, r18\n\t"
"add r12, r12, r0\n\t"
"add r8, r8, r12\n\t"
"rotlwi r0, r14, 30\n\t"
"rotlwi %[len], r14, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor %[len], r14, r15\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r15\n\t"
"add r12, r12, r0\n\t"
"rotlwi r0, r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, r8\n\t"
"xor r0, r0, r10\n\t"
"add r11, r11, r0\n\t"
"lwz r0, 12(r6)\n\t"
"add r11, r11, r19\n\t"
"add r11, r11, r0\n\t"
"add r7, r7, r11\n\t"
"rotlwi r0, r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor %[len], r12, r14\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r14\n\t"
"add r11, r11, r0\n\t"
"rotlwi r0, r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, r7\n\t"
"xor r0, r0, r9\n\t"
"add r10, r10, r0\n\t"
"lwz r0, 16(r6)\n\t"
"add r10, r10, r20\n\t"
"add r10, r10, r0\n\t"
"add r15, r15, r10\n\t"
"rotlwi r0, r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor %[len], r11, r12\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r12\n\t"
"add r10, r10, r0\n\t"
"rotlwi r0, r15, 26\n\t"
"rotlwi %[len], r15, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, r15\n\t"
"xor r0, r0, r8\n\t"
"add r9, r9, r0\n\t"
"lwz r0, 20(r6)\n\t"
"add r9, r9, r21\n\t"
"add r9, r9, r0\n\t"
"add r14, r14, r9\n\t"
"rotlwi r0, r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor %[len], r10, r11\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r11\n\t"
"add r9, r9, r0\n\t"
"rotlwi r0, r14, 26\n\t"
"rotlwi %[len], r14, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, r14\n\t"
"xor r0, r0, r7\n\t"
"add r8, r8, r0\n\t"
"lwz r0, 24(r6)\n\t"
"add r8, r8, r22\n\t"
"add r8, r8, r0\n\t"
"add r12, r12, r8\n\t"
"rotlwi r0, r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor %[len], r9, r10\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r10\n\t"
"add r8, r8, r0\n\t"
"rotlwi r0, r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, r12\n\t"
"xor r0, r0, r15\n\t"
"add r7, r7, r0\n\t"
"lwz r0, 28(r6)\n\t"
"add r7, r7, r23\n\t"
"add r7, r7, r0\n\t"
"add r11, r11, r7\n\t"
"rotlwi r0, r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor %[len], r8, r9\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r9\n\t"
"add r7, r7, r0\n\t"
"rotlwi r0, r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, r11\n\t"
"xor r0, r0, r14\n\t"
"add r15, r15, r0\n\t"
"lwz r0, 32(r6)\n\t"
"add r15, r15, r24\n\t"
"add r15, r15, r0\n\t"
"add r10, r10, r15\n\t"
"rotlwi r0, r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor %[len], r7, r8\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r8\n\t"
"add r15, r15, r0\n\t"
"rotlwi r0, r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, r10\n\t"
"xor r0, r0, r12\n\t"
"add r14, r14, r0\n\t"
"lwz r0, 36(r6)\n\t"
"add r14, r14, r25\n\t"
"add r14, r14, r0\n\t"
"add r9, r9, r14\n\t"
"rotlwi r0, r15, 30\n\t"
"rotlwi %[len], r15, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor %[len], r15, r7\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r7\n\t"
"add r14, r14, r0\n\t"
"rotlwi r0, r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, r9\n\t"
"xor r0, r0, r11\n\t"
"add r12, r12, r0\n\t"
"lwz r0, 40(r6)\n\t"
"add r12, r12, r26\n\t"
"add r12, r12, r0\n\t"
"add r8, r8, r12\n\t"
"rotlwi r0, r14, 30\n\t"
"rotlwi %[len], r14, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor %[len], r14, r15\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r15\n\t"
"add r12, r12, r0\n\t"
"rotlwi r0, r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, r8\n\t"
"xor r0, r0, r10\n\t"
"add r11, r11, r0\n\t"
"lwz r0, 44(r6)\n\t"
"add r11, r11, r27\n\t"
"add r11, r11, r0\n\t"
"add r7, r7, r11\n\t"
"rotlwi r0, r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor %[len], r12, r14\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r14\n\t"
"add r11, r11, r0\n\t"
"rotlwi r0, r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, r7\n\t"
"xor r0, r0, r9\n\t"
"add r10, r10, r0\n\t"
"lwz r0, 48(r6)\n\t"
"add r10, r10, r28\n\t"
"add r10, r10, r0\n\t"
"add r15, r15, r10\n\t"
"rotlwi r0, r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor %[len], r11, r12\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r12\n\t"
"add r10, r10, r0\n\t"
"rotlwi r0, r15, 26\n\t"
"rotlwi %[len], r15, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, r15\n\t"
"xor r0, r0, r8\n\t"
"add r9, r9, r0\n\t"
"lwz r0, 52(r6)\n\t"
"add r9, r9, r29\n\t"
"add r9, r9, r0\n\t"
"add r14, r14, r9\n\t"
"rotlwi r0, r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor %[len], r10, r11\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r11\n\t"
"add r9, r9, r0\n\t"
"rotlwi r0, r14, 26\n\t"
"rotlwi %[len], r14, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, r14\n\t"
"xor r0, r0, r7\n\t"
"add r8, r8, r0\n\t"
"lwz r0, 56(r6)\n\t"
"add r8, r8, r30\n\t"
"add r8, r8, r0\n\t"
"add r12, r12, r8\n\t"
"rotlwi r0, r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor %[len], r9, r10\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r10\n\t"
"add r8, r8, r0\n\t"
"rotlwi r0, r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, r12\n\t"
"xor r0, r0, r15\n\t"
"add r7, r7, r0\n\t"
"lwz r0, 60(r6)\n\t"
"add r7, r7, r31\n\t"
"add r7, r7, r0\n\t"
"add r11, r11, r7\n\t"
"rotlwi r0, r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor %[len], r8, r9\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r9\n\t"
"add r7, r7, r0\n\t"
"subi r6, r6, 0xc0\n\t"
"lwz r0, 0(%[sha256])\n\t"
"lwz %[len], 4(%[sha256])\n\t"
"add r7, r7, r0\n\t"
"add r8, r8, %[len]\n\t"
"lwz r0, 8(%[sha256])\n\t"
"lwz %[len], 12(%[sha256])\n\t"
"add r9, r9, r0\n\t"
"add r10, r10, %[len]\n\t"
"lwz r0, 16(%[sha256])\n\t"
"lwz %[len], 20(%[sha256])\n\t"
"add r11, r11, r0\n\t"
"add r12, r12, %[len]\n\t"
"lwz r0, 24(%[sha256])\n\t"
"lwz %[len], 28(%[sha256])\n\t"
"add r14, r14, r0\n\t"
"add r15, r15, %[len]\n\t"
"stw r7, 0(%[sha256])\n\t"
"stw r8, 4(%[sha256])\n\t"
"stw r9, 8(%[sha256])\n\t"
"stw r10, 12(%[sha256])\n\t"
"stw r11, 16(%[sha256])\n\t"
"stw r12, 20(%[sha256])\n\t"
"stw r14, 24(%[sha256])\n\t"
"stw r15, 28(%[sha256])\n\t"
"addi %[data], %[data], 0x40\n\t"
"bdnz L_SHA256_transform_len_begin_%=\n\t"
#else
"subi r1, r1, 4\n\t"
"stw %[len], 0(r1)\n\t"
"\n"
"L_SHA256_transform_len_begin_%=: \n\t"
"lwz r16, 0(%[data])\n\t"
"lwz r17, 4(%[data])\n\t"
"lwz r18, 8(%[data])\n\t"
"lwz r19, 12(%[data])\n\t"
"lwz r20, 16(%[data])\n\t"
"lwz r21, 20(%[data])\n\t"
"lwz r22, 24(%[data])\n\t"
"lwz r23, 28(%[data])\n\t"
"lwz r24, 32(%[data])\n\t"
"lwz r25, 36(%[data])\n\t"
"lwz r26, 40(%[data])\n\t"
"lwz r27, 44(%[data])\n\t"
"lwz r28, 48(%[data])\n\t"
"lwz r29, 52(%[data])\n\t"
"lwz r30, 56(%[data])\n\t"
"lwz r31, 60(%[data])\n\t"
"li r0, 4\n\t"
"mtctr r0\n\t"
"\n"
"L_SHA256_transform_len_start_%=: \n\t"
"rotlwi r0, r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, r11\n\t"
"xor r0, r0, r14\n\t"
"add r15, r15, r0\n\t"
"lwz r0, 0(r6)\n\t"
"add r15, r15, r16\n\t"
"add r15, r15, r0\n\t"
"add r10, r10, r15\n\t"
"rotlwi r0, r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor %[len], r7, r8\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r8\n\t"
"add r15, r15, r0\n\t"
"mfctr %[len]\n\t"
"cmpwi r0, %[len], 1\n\t"
"beq r0, L_SHA256_transform_len_after_blk_0_%=\n\t"
"rotlwi r0, r17, 25\n\t"
"rotlwi %[len], r17, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r17, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r16, r16, r0\n\t"
"rotlwi r0, r30, 15\n\t"
"rotlwi %[len], r30, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r30, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r16, r16, r0\n\t"
"add r16, r16, r25\n\t"
"\n"
"L_SHA256_transform_len_after_blk_0_%=: \n\t"
"rotlwi r0, r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, r10\n\t"
"xor r0, r0, r12\n\t"
"add r14, r14, r0\n\t"
"lwz r0, 4(r6)\n\t"
"add r14, r14, r17\n\t"
"add r14, r14, r0\n\t"
"add r9, r9, r14\n\t"
"rotlwi r0, r15, 30\n\t"
"rotlwi %[len], r15, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor %[len], r15, r7\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r7\n\t"
"add r14, r14, r0\n\t"
"mfctr %[len]\n\t"
"cmpwi r0, %[len], 1\n\t"
"beq r0, L_SHA256_transform_len_after_blk_1_%=\n\t"
"rotlwi r0, r18, 25\n\t"
"rotlwi %[len], r18, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r18, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r17, r17, r0\n\t"
"rotlwi r0, r31, 15\n\t"
"rotlwi %[len], r31, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r31, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r17, r17, r0\n\t"
"add r17, r17, r26\n\t"
"\n"
"L_SHA256_transform_len_after_blk_1_%=: \n\t"
"rotlwi r0, r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, r9\n\t"
"xor r0, r0, r11\n\t"
"add r12, r12, r0\n\t"
"lwz r0, 8(r6)\n\t"
"add r12, r12, r18\n\t"
"add r12, r12, r0\n\t"
"add r8, r8, r12\n\t"
"rotlwi r0, r14, 30\n\t"
"rotlwi %[len], r14, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor %[len], r14, r15\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r15\n\t"
"add r12, r12, r0\n\t"
"mfctr %[len]\n\t"
"cmpwi r0, %[len], 1\n\t"
"beq r0, L_SHA256_transform_len_after_blk_2_%=\n\t"
"rotlwi r0, r19, 25\n\t"
"rotlwi %[len], r19, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r19, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r18, r18, r0\n\t"
"rotlwi r0, r16, 15\n\t"
"rotlwi %[len], r16, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r16, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r18, r18, r0\n\t"
"add r18, r18, r27\n\t"
"\n"
"L_SHA256_transform_len_after_blk_2_%=: \n\t"
"rotlwi r0, r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, r8\n\t"
"xor r0, r0, r10\n\t"
"add r11, r11, r0\n\t"
"lwz r0, 12(r6)\n\t"
"add r11, r11, r19\n\t"
"add r11, r11, r0\n\t"
"add r7, r7, r11\n\t"
"rotlwi r0, r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor %[len], r12, r14\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r14\n\t"
"add r11, r11, r0\n\t"
"mfctr %[len]\n\t"
"cmpwi r0, %[len], 1\n\t"
"beq r0, L_SHA256_transform_len_after_blk_3_%=\n\t"
"rotlwi r0, r20, 25\n\t"
"rotlwi %[len], r20, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r20, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r19, r19, r0\n\t"
"rotlwi r0, r17, 15\n\t"
"rotlwi %[len], r17, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r17, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r19, r19, r0\n\t"
"add r19, r19, r28\n\t"
"\n"
"L_SHA256_transform_len_after_blk_3_%=: \n\t"
"rotlwi r0, r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, r7\n\t"
"xor r0, r0, r9\n\t"
"add r10, r10, r0\n\t"
"lwz r0, 16(r6)\n\t"
"add r10, r10, r20\n\t"
"add r10, r10, r0\n\t"
"add r15, r15, r10\n\t"
"rotlwi r0, r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor %[len], r11, r12\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r12\n\t"
"add r10, r10, r0\n\t"
"mfctr %[len]\n\t"
"cmpwi r0, %[len], 1\n\t"
"beq r0, L_SHA256_transform_len_after_blk_4_%=\n\t"
"rotlwi r0, r21, 25\n\t"
"rotlwi %[len], r21, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r21, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r20, r20, r0\n\t"
"rotlwi r0, r18, 15\n\t"
"rotlwi %[len], r18, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r18, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r20, r20, r0\n\t"
"add r20, r20, r29\n\t"
"\n"
"L_SHA256_transform_len_after_blk_4_%=: \n\t"
"rotlwi r0, r15, 26\n\t"
"rotlwi %[len], r15, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, r15\n\t"
"xor r0, r0, r8\n\t"
"add r9, r9, r0\n\t"
"lwz r0, 20(r6)\n\t"
"add r9, r9, r21\n\t"
"add r9, r9, r0\n\t"
"add r14, r14, r9\n\t"
"rotlwi r0, r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor %[len], r10, r11\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r11\n\t"
"add r9, r9, r0\n\t"
"mfctr %[len]\n\t"
"cmpwi r0, %[len], 1\n\t"
"beq r0, L_SHA256_transform_len_after_blk_5_%=\n\t"
"rotlwi r0, r22, 25\n\t"
"rotlwi %[len], r22, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r22, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r21, r21, r0\n\t"
"rotlwi r0, r19, 15\n\t"
"rotlwi %[len], r19, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r19, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r21, r21, r0\n\t"
"add r21, r21, r30\n\t"
"\n"
"L_SHA256_transform_len_after_blk_5_%=: \n\t"
"rotlwi r0, r14, 26\n\t"
"rotlwi %[len], r14, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, r14\n\t"
"xor r0, r0, r7\n\t"
"add r8, r8, r0\n\t"
"lwz r0, 24(r6)\n\t"
"add r8, r8, r22\n\t"
"add r8, r8, r0\n\t"
"add r12, r12, r8\n\t"
"rotlwi r0, r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor %[len], r9, r10\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r10\n\t"
"add r8, r8, r0\n\t"
"mfctr %[len]\n\t"
"cmpwi r0, %[len], 1\n\t"
"beq r0, L_SHA256_transform_len_after_blk_6_%=\n\t"
"rotlwi r0, r23, 25\n\t"
"rotlwi %[len], r23, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r23, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r22, r22, r0\n\t"
"rotlwi r0, r20, 15\n\t"
"rotlwi %[len], r20, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r20, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r22, r22, r0\n\t"
"add r22, r22, r31\n\t"
"\n"
"L_SHA256_transform_len_after_blk_6_%=: \n\t"
"rotlwi r0, r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, r12\n\t"
"xor r0, r0, r15\n\t"
"add r7, r7, r0\n\t"
"lwz r0, 28(r6)\n\t"
"add r7, r7, r23\n\t"
"add r7, r7, r0\n\t"
"add r11, r11, r7\n\t"
"rotlwi r0, r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor %[len], r8, r9\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r9\n\t"
"add r7, r7, r0\n\t"
"mfctr %[len]\n\t"
"cmpwi r0, %[len], 1\n\t"
"beq r0, L_SHA256_transform_len_after_blk_7_%=\n\t"
"rotlwi r0, r24, 25\n\t"
"rotlwi %[len], r24, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r24, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r23, r23, r0\n\t"
"rotlwi r0, r21, 15\n\t"
"rotlwi %[len], r21, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r21, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r23, r23, r0\n\t"
"add r23, r23, r16\n\t"
"\n"
"L_SHA256_transform_len_after_blk_7_%=: \n\t"
"rotlwi r0, r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, r11\n\t"
"xor r0, r0, r14\n\t"
"add r15, r15, r0\n\t"
"lwz r0, 32(r6)\n\t"
"add r15, r15, r24\n\t"
"add r15, r15, r0\n\t"
"add r10, r10, r15\n\t"
"rotlwi r0, r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r15, r15, r0\n\t"
"xor %[len], r7, r8\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r8\n\t"
"add r15, r15, r0\n\t"
"mfctr %[len]\n\t"
"cmpwi r0, %[len], 1\n\t"
"beq r0, L_SHA256_transform_len_after_blk_8_%=\n\t"
"rotlwi r0, r25, 25\n\t"
"rotlwi %[len], r25, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r25, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r24, r24, r0\n\t"
"rotlwi r0, r22, 15\n\t"
"rotlwi %[len], r22, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r22, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r24, r24, r0\n\t"
"add r24, r24, r17\n\t"
"\n"
"L_SHA256_transform_len_after_blk_8_%=: \n\t"
"rotlwi r0, r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, r10\n\t"
"xor r0, r0, r12\n\t"
"add r14, r14, r0\n\t"
"lwz r0, 36(r6)\n\t"
"add r14, r14, r25\n\t"
"add r14, r14, r0\n\t"
"add r9, r9, r14\n\t"
"rotlwi r0, r15, 30\n\t"
"rotlwi %[len], r15, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r14, r14, r0\n\t"
"xor %[len], r15, r7\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r7\n\t"
"add r14, r14, r0\n\t"
"mfctr %[len]\n\t"
"cmpwi r0, %[len], 1\n\t"
"beq r0, L_SHA256_transform_len_after_blk_9_%=\n\t"
"rotlwi r0, r26, 25\n\t"
"rotlwi %[len], r26, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r26, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r25, r25, r0\n\t"
"rotlwi r0, r23, 15\n\t"
"rotlwi %[len], r23, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r23, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r25, r25, r0\n\t"
"add r25, r25, r18\n\t"
"\n"
"L_SHA256_transform_len_after_blk_9_%=: \n\t"
"rotlwi r0, r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, r9\n\t"
"xor r0, r0, r11\n\t"
"add r12, r12, r0\n\t"
"lwz r0, 40(r6)\n\t"
"add r12, r12, r26\n\t"
"add r12, r12, r0\n\t"
"add r8, r8, r12\n\t"
"rotlwi r0, r14, 30\n\t"
"rotlwi %[len], r14, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r12, r12, r0\n\t"
"xor %[len], r14, r15\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r15\n\t"
"add r12, r12, r0\n\t"
"mfctr %[len]\n\t"
"cmpwi r0, %[len], 1\n\t"
"beq r0, L_SHA256_transform_len_after_blk_10_%=\n\t"
"rotlwi r0, r27, 25\n\t"
"rotlwi %[len], r27, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r27, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r26, r26, r0\n\t"
"rotlwi r0, r24, 15\n\t"
"rotlwi %[len], r24, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r24, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r26, r26, r0\n\t"
"add r26, r26, r19\n\t"
"\n"
"L_SHA256_transform_len_after_blk_10_%=: \n\t"
"rotlwi r0, r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, r8\n\t"
"xor r0, r0, r10\n\t"
"add r11, r11, r0\n\t"
"lwz r0, 44(r6)\n\t"
"add r11, r11, r27\n\t"
"add r11, r11, r0\n\t"
"add r7, r7, r11\n\t"
"rotlwi r0, r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r11, r11, r0\n\t"
"xor %[len], r12, r14\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r14\n\t"
"add r11, r11, r0\n\t"
"mfctr %[len]\n\t"
"cmpwi r0, %[len], 1\n\t"
"beq r0, L_SHA256_transform_len_after_blk_11_%=\n\t"
"rotlwi r0, r28, 25\n\t"
"rotlwi %[len], r28, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r28, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r27, r27, r0\n\t"
"rotlwi r0, r25, 15\n\t"
"rotlwi %[len], r25, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r25, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r27, r27, r0\n\t"
"add r27, r27, r20\n\t"
"\n"
"L_SHA256_transform_len_after_blk_11_%=: \n\t"
"rotlwi r0, r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor r0, r8, r9\n\t"
"and r0, r0, r7\n\t"
"xor r0, r0, r9\n\t"
"add r10, r10, r0\n\t"
"lwz r0, 48(r6)\n\t"
"add r10, r10, r28\n\t"
"add r10, r10, r0\n\t"
"add r15, r15, r10\n\t"
"rotlwi r0, r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r10, r10, r0\n\t"
"xor %[len], r11, r12\n\t"
"xor r0, r12, r14\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r12\n\t"
"add r10, r10, r0\n\t"
"mfctr %[len]\n\t"
"cmpwi r0, %[len], 1\n\t"
"beq r0, L_SHA256_transform_len_after_blk_12_%=\n\t"
"rotlwi r0, r29, 25\n\t"
"rotlwi %[len], r29, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r29, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r28, r28, r0\n\t"
"rotlwi r0, r26, 15\n\t"
"rotlwi %[len], r26, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r26, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r28, r28, r0\n\t"
"add r28, r28, r21\n\t"
"\n"
"L_SHA256_transform_len_after_blk_12_%=: \n\t"
"rotlwi r0, r15, 26\n\t"
"rotlwi %[len], r15, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r15, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor r0, r7, r8\n\t"
"and r0, r0, r15\n\t"
"xor r0, r0, r8\n\t"
"add r9, r9, r0\n\t"
"lwz r0, 52(r6)\n\t"
"add r9, r9, r29\n\t"
"add r9, r9, r0\n\t"
"add r14, r14, r9\n\t"
"rotlwi r0, r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r9, r9, r0\n\t"
"xor %[len], r10, r11\n\t"
"xor r0, r11, r12\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r11\n\t"
"add r9, r9, r0\n\t"
"mfctr %[len]\n\t"
"cmpwi r0, %[len], 1\n\t"
"beq r0, L_SHA256_transform_len_after_blk_13_%=\n\t"
"rotlwi r0, r30, 25\n\t"
"rotlwi %[len], r30, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r30, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r29, r29, r0\n\t"
"rotlwi r0, r27, 15\n\t"
"rotlwi %[len], r27, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r27, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r29, r29, r0\n\t"
"add r29, r29, r22\n\t"
"\n"
"L_SHA256_transform_len_after_blk_13_%=: \n\t"
"rotlwi r0, r14, 26\n\t"
"rotlwi %[len], r14, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r14, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor r0, r15, r7\n\t"
"and r0, r0, r14\n\t"
"xor r0, r0, r7\n\t"
"add r8, r8, r0\n\t"
"lwz r0, 56(r6)\n\t"
"add r8, r8, r30\n\t"
"add r8, r8, r0\n\t"
"add r12, r12, r8\n\t"
"rotlwi r0, r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r8, r8, r0\n\t"
"xor %[len], r9, r10\n\t"
"xor r0, r10, r11\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r10\n\t"
"add r8, r8, r0\n\t"
"mfctr %[len]\n\t"
"cmpwi r0, %[len], 1\n\t"
"beq r0, L_SHA256_transform_len_after_blk_14_%=\n\t"
"rotlwi r0, r31, 25\n\t"
"rotlwi %[len], r31, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r31, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r30, r30, r0\n\t"
"rotlwi r0, r28, 15\n\t"
"rotlwi %[len], r28, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r28, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r30, r30, r0\n\t"
"add r30, r30, r23\n\t"
"\n"
"L_SHA256_transform_len_after_blk_14_%=: \n\t"
"rotlwi r0, r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor r0, r14, r15\n\t"
"and r0, r0, r12\n\t"
"xor r0, r0, r15\n\t"
"add r7, r7, r0\n\t"
"lwz r0, 60(r6)\n\t"
"add r7, r7, r31\n\t"
"add r7, r7, r0\n\t"
"add r11, r11, r7\n\t"
"rotlwi r0, r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor r0, r0, %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r7, r7, r0\n\t"
"xor %[len], r8, r9\n\t"
"xor r0, r9, r10\n\t"
"and r0, r0, %[len]\n\t"
"xor r0, r0, r9\n\t"
"add r7, r7, r0\n\t"
"mfctr %[len]\n\t"
"cmpwi r0, %[len], 1\n\t"
"beq r0, L_SHA256_transform_len_after_blk_15_%=\n\t"
"rotlwi r0, r16, 25\n\t"
"rotlwi %[len], r16, 14\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r16, 3\n\t"
"xor r0, r0, %[len]\n\t"
"add r31, r31, r0\n\t"
"rotlwi r0, r29, 15\n\t"
"rotlwi %[len], r29, 13\n\t"
"xor r0, r0, %[len]\n\t"
"srwi %[len], r29, 10\n\t"
"xor r0, r0, %[len]\n\t"
"add r31, r31, r0\n\t"
"add r31, r31, r24\n\t"
"\n"
"L_SHA256_transform_len_after_blk_15_%=: \n\t"
"addi r6, r6, 0x40\n\t"
"bdnz L_SHA256_transform_len_start_%=\n\t"
"subi r6, r6, 0x100\n\t"
"lwz r0, 0(%[sha256])\n\t"
"lwz %[len], 4(%[sha256])\n\t"
"add r7, r7, r0\n\t"
"add r8, r8, %[len]\n\t"
"lwz r0, 8(%[sha256])\n\t"
"lwz %[len], 12(%[sha256])\n\t"
"add r9, r9, r0\n\t"
"add r10, r10, %[len]\n\t"
"lwz r0, 16(%[sha256])\n\t"
"lwz %[len], 20(%[sha256])\n\t"
"add r11, r11, r0\n\t"
"add r12, r12, %[len]\n\t"
"lwz r0, 24(%[sha256])\n\t"
"lwz %[len], 28(%[sha256])\n\t"
"add r14, r14, r0\n\t"
"add r15, r15, %[len]\n\t"
"stw r7, 0(%[sha256])\n\t"
"stw r8, 4(%[sha256])\n\t"
"stw r9, 8(%[sha256])\n\t"
"stw r10, 12(%[sha256])\n\t"
"stw r11, 16(%[sha256])\n\t"
"stw r12, 20(%[sha256])\n\t"
"stw r14, 24(%[sha256])\n\t"
"stw r15, 28(%[sha256])\n\t"
"lwz %[len], 0(r1)\n\t"
"mtctr %[len]\n\t"
"subi %[len], %[len], 1\n\t"
"addi %[data], %[data], 0x40\n\t"
"stw %[len], 0(r1)\n\t"
"bdnz L_SHA256_transform_len_begin_%=\n\t"
"addi r1, r1, 4\n\t"
#endif
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
: [sha256] "+r" (sha256), [data] "+r" (data), [len] "+r" (len),
[L_SHA256_transform_len_k] "+r" (L_SHA256_transform_len_k_c)
:
#else
:
: [sha256] "r" (sha256), [data] "r" (data), [len] "r" (len),
[L_SHA256_transform_len_k] "r" (L_SHA256_transform_len_k_c)
#endif
: "memory", "cc", "r0", "r7", "r8", "r9", "r10", "r11", "r12", "r14",
"r15", "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
"r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31"
);
}
#else
void Transform_Sha256_Len(wc_Sha256* sha256_p, const byte* data_p,
word32 len_p);
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
void Transform_Sha256_Len(wc_Sha256* sha256_p, const byte* data_p, word32 len_p)
#else
void Transform_Sha256_Len(wc_Sha256* sha256, const byte* data, word32 len)
#endif
{
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
register wc_Sha256* sha256 asm ("3") = (wc_Sha256*)sha256_p;
register const byte* data asm ("4") = (const byte*)data_p;
register word32 len asm ("5") = (word32)len_p;
register word32* L_SHA256_transform_len_k_c asm ("6") =
(word32*)&L_SHA256_transform_len_k;
#else
register word32* L_SHA256_transform_len_k_c =
(word32*)&L_SHA256_transform_len_k;
#endif
__asm__ __volatile__ (
"srwi %[len], %[len], 6\n\t"
"mr r6, %[L_SHA256_transform_len_k]\n\t"
#ifndef WOLFSSL_PPC32_ASM_SMALL
"subi r1, r1, 8\n\t"
"stw %[sha256], 0(r1)\n\t"
"stw %[data], 4(r1)\n\t"
"mtctr %[len]\n\t"
"lwz r0, 0(%[sha256])\n\t"
"lwz %[data], 4(%[sha256])\n\t"
"lwz r7, 8(%[sha256])\n\t"
"lwz r8, 12(%[sha256])\n\t"
"lwz r9, 16(%[sha256])\n\t"
"lwz r10, 20(%[sha256])\n\t"
"lwz r11, 24(%[sha256])\n\t"
"lwz r12, 28(%[sha256])\n\t"
"lwz %[sha256], 4(r1)\n\t"
"\n"
"L_SHA256_transform_len_begin_%=: \n\t"
"lwz r14, 0(%[sha256])\n\t"
"lwz r15, 4(%[sha256])\n\t"
"lwz r16, 8(%[sha256])\n\t"
"lwz r17, 12(%[sha256])\n\t"
"lwz r18, 16(%[sha256])\n\t"
"lwz r19, 20(%[sha256])\n\t"
"lwz r20, 24(%[sha256])\n\t"
"lwz r21, 28(%[sha256])\n\t"
"lwz r22, 32(%[sha256])\n\t"
"lwz r23, 36(%[sha256])\n\t"
"lwz r24, 40(%[sha256])\n\t"
"lwz r25, 44(%[sha256])\n\t"
"lwz r26, 48(%[sha256])\n\t"
"lwz r27, 52(%[sha256])\n\t"
"lwz r28, 56(%[sha256])\n\t"
"lwz r29, 60(%[sha256])\n\t"
"rotlwi %[sha256], r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], r9\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r12, r12, %[sha256]\n\t"
"lwz %[sha256], 0(r6)\n\t"
"add r12, r12, r14\n\t"
"add r12, r12, %[sha256]\n\t"
"add r8, r8, r12\n\t"
"rotlwi %[sha256], r0, 30\n\t"
"rotlwi %[len], r0, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[len], r0, %[data]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r12, r12, %[sha256]\n\t"
"rotlwi %[sha256], r15, 25\n\t"
"rotlwi %[len], r15, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r15, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r14, r14, %[sha256]\n\t"
"rotlwi %[sha256], r28, 15\n\t"
"rotlwi %[len], r28, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r28, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r14, r14, %[sha256]\n\t"
"add r14, r14, r23\n\t"
"rotlwi %[sha256], r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], r8\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r11, r11, %[sha256]\n\t"
"lwz %[sha256], 4(r6)\n\t"
"add r11, r11, r15\n\t"
"add r11, r11, %[sha256]\n\t"
"add r7, r7, r11\n\t"
"rotlwi %[sha256], r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[len], r12, r0\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add r11, r11, %[sha256]\n\t"
"rotlwi %[sha256], r16, 25\n\t"
"rotlwi %[len], r16, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r16, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r15, r15, %[sha256]\n\t"
"rotlwi %[sha256], r29, 15\n\t"
"rotlwi %[len], r29, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r29, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r15, r15, %[sha256]\n\t"
"add r15, r15, r24\n\t"
"rotlwi %[sha256], r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], r7\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r10, r10, %[sha256]\n\t"
"lwz %[sha256], 8(r6)\n\t"
"add r10, r10, r16\n\t"
"add r10, r10, %[sha256]\n\t"
"add %[data], %[data], r10\n\t"
"rotlwi %[sha256], r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[len], r11, r12\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r10, r10, %[sha256]\n\t"
"rotlwi %[sha256], r17, 25\n\t"
"rotlwi %[len], r17, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r17, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r16, r16, %[sha256]\n\t"
"rotlwi %[sha256], r14, 15\n\t"
"rotlwi %[len], r14, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r14, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r16, r16, %[sha256]\n\t"
"add r16, r16, r25\n\t"
"rotlwi %[sha256], %[data], 26\n\t"
"rotlwi %[len], %[data], 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[data]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add r9, r9, %[sha256]\n\t"
"lwz %[sha256], 12(r6)\n\t"
"add r9, r9, r17\n\t"
"add r9, r9, %[sha256]\n\t"
"add r0, r0, r9\n\t"
"rotlwi %[sha256], r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[len], r10, r11\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r9, r9, %[sha256]\n\t"
"rotlwi %[sha256], r18, 25\n\t"
"rotlwi %[len], r18, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r18, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r17, r17, %[sha256]\n\t"
"rotlwi %[sha256], r15, 15\n\t"
"rotlwi %[len], r15, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r15, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r17, r17, %[sha256]\n\t"
"add r17, r17, r26\n\t"
"rotlwi %[sha256], r0, 26\n\t"
"rotlwi %[len], r0, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], r0\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r8, r8, %[sha256]\n\t"
"lwz %[sha256], 16(r6)\n\t"
"add r8, r8, r18\n\t"
"add r8, r8, %[sha256]\n\t"
"add r12, r12, r8\n\t"
"rotlwi %[sha256], r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[len], r9, r10\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r8, r8, %[sha256]\n\t"
"rotlwi %[sha256], r19, 25\n\t"
"rotlwi %[len], r19, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r19, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r18, r18, %[sha256]\n\t"
"rotlwi %[sha256], r16, 15\n\t"
"rotlwi %[len], r16, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r16, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r18, r18, %[sha256]\n\t"
"add r18, r18, r27\n\t"
"rotlwi %[sha256], r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], r12\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r7, r7, %[sha256]\n\t"
"lwz %[sha256], 20(r6)\n\t"
"add r7, r7, r19\n\t"
"add r7, r7, %[sha256]\n\t"
"add r11, r11, r7\n\t"
"rotlwi %[sha256], r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[len], r8, r9\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r7, r7, %[sha256]\n\t"
"rotlwi %[sha256], r20, 25\n\t"
"rotlwi %[len], r20, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r20, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r19, r19, %[sha256]\n\t"
"rotlwi %[sha256], r17, 15\n\t"
"rotlwi %[len], r17, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r17, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r19, r19, %[sha256]\n\t"
"add r19, r19, r28\n\t"
"rotlwi %[sha256], r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], r11\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add %[data], %[data], %[sha256]\n\t"
"lwz %[sha256], 24(r6)\n\t"
"add %[data], %[data], r20\n\t"
"add %[data], %[data], %[sha256]\n\t"
"add r10, r10, %[data]\n\t"
"rotlwi %[sha256], r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[len], r7, r8\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add %[data], %[data], %[sha256]\n\t"
"rotlwi %[sha256], r21, 25\n\t"
"rotlwi %[len], r21, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r21, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r20, r20, %[sha256]\n\t"
"rotlwi %[sha256], r18, 15\n\t"
"rotlwi %[len], r18, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r18, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r20, r20, %[sha256]\n\t"
"add r20, r20, r29\n\t"
"rotlwi %[sha256], r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], r10\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r0, r0, %[sha256]\n\t"
"lwz %[sha256], 28(r6)\n\t"
"add r0, r0, r21\n\t"
"add r0, r0, %[sha256]\n\t"
"add r9, r9, r0\n\t"
"rotlwi %[sha256], %[data], 30\n\t"
"rotlwi %[len], %[data], 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[len], %[data], r7\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r0, r0, %[sha256]\n\t"
"rotlwi %[sha256], r22, 25\n\t"
"rotlwi %[len], r22, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r22, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r21, r21, %[sha256]\n\t"
"rotlwi %[sha256], r19, 15\n\t"
"rotlwi %[len], r19, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r19, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r21, r21, %[sha256]\n\t"
"add r21, r21, r14\n\t"
"rotlwi %[sha256], r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], r9\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r12, r12, %[sha256]\n\t"
"lwz %[sha256], 32(r6)\n\t"
"add r12, r12, r22\n\t"
"add r12, r12, %[sha256]\n\t"
"add r8, r8, r12\n\t"
"rotlwi %[sha256], r0, 30\n\t"
"rotlwi %[len], r0, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[len], r0, %[data]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r12, r12, %[sha256]\n\t"
"rotlwi %[sha256], r23, 25\n\t"
"rotlwi %[len], r23, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r23, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r22, r22, %[sha256]\n\t"
"rotlwi %[sha256], r20, 15\n\t"
"rotlwi %[len], r20, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r20, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r22, r22, %[sha256]\n\t"
"add r22, r22, r15\n\t"
"rotlwi %[sha256], r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], r8\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r11, r11, %[sha256]\n\t"
"lwz %[sha256], 36(r6)\n\t"
"add r11, r11, r23\n\t"
"add r11, r11, %[sha256]\n\t"
"add r7, r7, r11\n\t"
"rotlwi %[sha256], r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[len], r12, r0\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add r11, r11, %[sha256]\n\t"
"rotlwi %[sha256], r24, 25\n\t"
"rotlwi %[len], r24, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r24, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r23, r23, %[sha256]\n\t"
"rotlwi %[sha256], r21, 15\n\t"
"rotlwi %[len], r21, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r21, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r23, r23, %[sha256]\n\t"
"add r23, r23, r16\n\t"
"rotlwi %[sha256], r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], r7\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r10, r10, %[sha256]\n\t"
"lwz %[sha256], 40(r6)\n\t"
"add r10, r10, r24\n\t"
"add r10, r10, %[sha256]\n\t"
"add %[data], %[data], r10\n\t"
"rotlwi %[sha256], r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[len], r11, r12\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r10, r10, %[sha256]\n\t"
"rotlwi %[sha256], r25, 25\n\t"
"rotlwi %[len], r25, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r25, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r24, r24, %[sha256]\n\t"
"rotlwi %[sha256], r22, 15\n\t"
"rotlwi %[len], r22, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r22, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r24, r24, %[sha256]\n\t"
"add r24, r24, r17\n\t"
"rotlwi %[sha256], %[data], 26\n\t"
"rotlwi %[len], %[data], 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[data]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add r9, r9, %[sha256]\n\t"
"lwz %[sha256], 44(r6)\n\t"
"add r9, r9, r25\n\t"
"add r9, r9, %[sha256]\n\t"
"add r0, r0, r9\n\t"
"rotlwi %[sha256], r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[len], r10, r11\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r9, r9, %[sha256]\n\t"
"rotlwi %[sha256], r26, 25\n\t"
"rotlwi %[len], r26, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r26, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r25, r25, %[sha256]\n\t"
"rotlwi %[sha256], r23, 15\n\t"
"rotlwi %[len], r23, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r23, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r25, r25, %[sha256]\n\t"
"add r25, r25, r18\n\t"
"rotlwi %[sha256], r0, 26\n\t"
"rotlwi %[len], r0, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], r0\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r8, r8, %[sha256]\n\t"
"lwz %[sha256], 48(r6)\n\t"
"add r8, r8, r26\n\t"
"add r8, r8, %[sha256]\n\t"
"add r12, r12, r8\n\t"
"rotlwi %[sha256], r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[len], r9, r10\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r8, r8, %[sha256]\n\t"
"rotlwi %[sha256], r27, 25\n\t"
"rotlwi %[len], r27, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r27, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r26, r26, %[sha256]\n\t"
"rotlwi %[sha256], r24, 15\n\t"
"rotlwi %[len], r24, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r24, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r26, r26, %[sha256]\n\t"
"add r26, r26, r19\n\t"
"rotlwi %[sha256], r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], r12\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r7, r7, %[sha256]\n\t"
"lwz %[sha256], 52(r6)\n\t"
"add r7, r7, r27\n\t"
"add r7, r7, %[sha256]\n\t"
"add r11, r11, r7\n\t"
"rotlwi %[sha256], r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[len], r8, r9\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r7, r7, %[sha256]\n\t"
"rotlwi %[sha256], r28, 25\n\t"
"rotlwi %[len], r28, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r28, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r27, r27, %[sha256]\n\t"
"rotlwi %[sha256], r25, 15\n\t"
"rotlwi %[len], r25, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r25, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r27, r27, %[sha256]\n\t"
"add r27, r27, r20\n\t"
"rotlwi %[sha256], r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], r11\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add %[data], %[data], %[sha256]\n\t"
"lwz %[sha256], 56(r6)\n\t"
"add %[data], %[data], r28\n\t"
"add %[data], %[data], %[sha256]\n\t"
"add r10, r10, %[data]\n\t"
"rotlwi %[sha256], r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[len], r7, r8\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add %[data], %[data], %[sha256]\n\t"
"rotlwi %[sha256], r29, 25\n\t"
"rotlwi %[len], r29, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r29, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r28, r28, %[sha256]\n\t"
"rotlwi %[sha256], r26, 15\n\t"
"rotlwi %[len], r26, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r26, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r28, r28, %[sha256]\n\t"
"add r28, r28, r21\n\t"
"rotlwi %[sha256], r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], r10\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r0, r0, %[sha256]\n\t"
"lwz %[sha256], 60(r6)\n\t"
"add r0, r0, r29\n\t"
"add r0, r0, %[sha256]\n\t"
"add r9, r9, r0\n\t"
"rotlwi %[sha256], %[data], 30\n\t"
"rotlwi %[len], %[data], 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[len], %[data], r7\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r0, r0, %[sha256]\n\t"
"rotlwi %[sha256], r14, 25\n\t"
"rotlwi %[len], r14, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r14, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r29, r29, %[sha256]\n\t"
"rotlwi %[sha256], r27, 15\n\t"
"rotlwi %[len], r27, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r27, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r29, r29, %[sha256]\n\t"
"add r29, r29, r22\n\t"
"addi r6, r6, 0x40\n\t"
"rotlwi %[sha256], r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], r9\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r12, r12, %[sha256]\n\t"
"lwz %[sha256], 0(r6)\n\t"
"add r12, r12, r14\n\t"
"add r12, r12, %[sha256]\n\t"
"add r8, r8, r12\n\t"
"rotlwi %[sha256], r0, 30\n\t"
"rotlwi %[len], r0, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[len], r0, %[data]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r12, r12, %[sha256]\n\t"
"rotlwi %[sha256], r15, 25\n\t"
"rotlwi %[len], r15, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r15, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r14, r14, %[sha256]\n\t"
"rotlwi %[sha256], r28, 15\n\t"
"rotlwi %[len], r28, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r28, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r14, r14, %[sha256]\n\t"
"add r14, r14, r23\n\t"
"rotlwi %[sha256], r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], r8\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r11, r11, %[sha256]\n\t"
"lwz %[sha256], 4(r6)\n\t"
"add r11, r11, r15\n\t"
"add r11, r11, %[sha256]\n\t"
"add r7, r7, r11\n\t"
"rotlwi %[sha256], r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[len], r12, r0\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add r11, r11, %[sha256]\n\t"
"rotlwi %[sha256], r16, 25\n\t"
"rotlwi %[len], r16, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r16, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r15, r15, %[sha256]\n\t"
"rotlwi %[sha256], r29, 15\n\t"
"rotlwi %[len], r29, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r29, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r15, r15, %[sha256]\n\t"
"add r15, r15, r24\n\t"
"rotlwi %[sha256], r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], r7\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r10, r10, %[sha256]\n\t"
"lwz %[sha256], 8(r6)\n\t"
"add r10, r10, r16\n\t"
"add r10, r10, %[sha256]\n\t"
"add %[data], %[data], r10\n\t"
"rotlwi %[sha256], r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[len], r11, r12\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r10, r10, %[sha256]\n\t"
"rotlwi %[sha256], r17, 25\n\t"
"rotlwi %[len], r17, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r17, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r16, r16, %[sha256]\n\t"
"rotlwi %[sha256], r14, 15\n\t"
"rotlwi %[len], r14, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r14, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r16, r16, %[sha256]\n\t"
"add r16, r16, r25\n\t"
"rotlwi %[sha256], %[data], 26\n\t"
"rotlwi %[len], %[data], 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[data]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add r9, r9, %[sha256]\n\t"
"lwz %[sha256], 12(r6)\n\t"
"add r9, r9, r17\n\t"
"add r9, r9, %[sha256]\n\t"
"add r0, r0, r9\n\t"
"rotlwi %[sha256], r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[len], r10, r11\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r9, r9, %[sha256]\n\t"
"rotlwi %[sha256], r18, 25\n\t"
"rotlwi %[len], r18, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r18, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r17, r17, %[sha256]\n\t"
"rotlwi %[sha256], r15, 15\n\t"
"rotlwi %[len], r15, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r15, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r17, r17, %[sha256]\n\t"
"add r17, r17, r26\n\t"
"rotlwi %[sha256], r0, 26\n\t"
"rotlwi %[len], r0, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], r0\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r8, r8, %[sha256]\n\t"
"lwz %[sha256], 16(r6)\n\t"
"add r8, r8, r18\n\t"
"add r8, r8, %[sha256]\n\t"
"add r12, r12, r8\n\t"
"rotlwi %[sha256], r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[len], r9, r10\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r8, r8, %[sha256]\n\t"
"rotlwi %[sha256], r19, 25\n\t"
"rotlwi %[len], r19, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r19, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r18, r18, %[sha256]\n\t"
"rotlwi %[sha256], r16, 15\n\t"
"rotlwi %[len], r16, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r16, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r18, r18, %[sha256]\n\t"
"add r18, r18, r27\n\t"
"rotlwi %[sha256], r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], r12\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r7, r7, %[sha256]\n\t"
"lwz %[sha256], 20(r6)\n\t"
"add r7, r7, r19\n\t"
"add r7, r7, %[sha256]\n\t"
"add r11, r11, r7\n\t"
"rotlwi %[sha256], r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[len], r8, r9\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r7, r7, %[sha256]\n\t"
"rotlwi %[sha256], r20, 25\n\t"
"rotlwi %[len], r20, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r20, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r19, r19, %[sha256]\n\t"
"rotlwi %[sha256], r17, 15\n\t"
"rotlwi %[len], r17, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r17, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r19, r19, %[sha256]\n\t"
"add r19, r19, r28\n\t"
"rotlwi %[sha256], r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], r11\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add %[data], %[data], %[sha256]\n\t"
"lwz %[sha256], 24(r6)\n\t"
"add %[data], %[data], r20\n\t"
"add %[data], %[data], %[sha256]\n\t"
"add r10, r10, %[data]\n\t"
"rotlwi %[sha256], r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[len], r7, r8\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add %[data], %[data], %[sha256]\n\t"
"rotlwi %[sha256], r21, 25\n\t"
"rotlwi %[len], r21, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r21, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r20, r20, %[sha256]\n\t"
"rotlwi %[sha256], r18, 15\n\t"
"rotlwi %[len], r18, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r18, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r20, r20, %[sha256]\n\t"
"add r20, r20, r29\n\t"
"rotlwi %[sha256], r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], r10\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r0, r0, %[sha256]\n\t"
"lwz %[sha256], 28(r6)\n\t"
"add r0, r0, r21\n\t"
"add r0, r0, %[sha256]\n\t"
"add r9, r9, r0\n\t"
"rotlwi %[sha256], %[data], 30\n\t"
"rotlwi %[len], %[data], 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[len], %[data], r7\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r0, r0, %[sha256]\n\t"
"rotlwi %[sha256], r22, 25\n\t"
"rotlwi %[len], r22, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r22, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r21, r21, %[sha256]\n\t"
"rotlwi %[sha256], r19, 15\n\t"
"rotlwi %[len], r19, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r19, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r21, r21, %[sha256]\n\t"
"add r21, r21, r14\n\t"
"rotlwi %[sha256], r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], r9\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r12, r12, %[sha256]\n\t"
"lwz %[sha256], 32(r6)\n\t"
"add r12, r12, r22\n\t"
"add r12, r12, %[sha256]\n\t"
"add r8, r8, r12\n\t"
"rotlwi %[sha256], r0, 30\n\t"
"rotlwi %[len], r0, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[len], r0, %[data]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r12, r12, %[sha256]\n\t"
"rotlwi %[sha256], r23, 25\n\t"
"rotlwi %[len], r23, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r23, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r22, r22, %[sha256]\n\t"
"rotlwi %[sha256], r20, 15\n\t"
"rotlwi %[len], r20, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r20, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r22, r22, %[sha256]\n\t"
"add r22, r22, r15\n\t"
"rotlwi %[sha256], r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], r8\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r11, r11, %[sha256]\n\t"
"lwz %[sha256], 36(r6)\n\t"
"add r11, r11, r23\n\t"
"add r11, r11, %[sha256]\n\t"
"add r7, r7, r11\n\t"
"rotlwi %[sha256], r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[len], r12, r0\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add r11, r11, %[sha256]\n\t"
"rotlwi %[sha256], r24, 25\n\t"
"rotlwi %[len], r24, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r24, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r23, r23, %[sha256]\n\t"
"rotlwi %[sha256], r21, 15\n\t"
"rotlwi %[len], r21, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r21, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r23, r23, %[sha256]\n\t"
"add r23, r23, r16\n\t"
"rotlwi %[sha256], r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], r7\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r10, r10, %[sha256]\n\t"
"lwz %[sha256], 40(r6)\n\t"
"add r10, r10, r24\n\t"
"add r10, r10, %[sha256]\n\t"
"add %[data], %[data], r10\n\t"
"rotlwi %[sha256], r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[len], r11, r12\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r10, r10, %[sha256]\n\t"
"rotlwi %[sha256], r25, 25\n\t"
"rotlwi %[len], r25, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r25, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r24, r24, %[sha256]\n\t"
"rotlwi %[sha256], r22, 15\n\t"
"rotlwi %[len], r22, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r22, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r24, r24, %[sha256]\n\t"
"add r24, r24, r17\n\t"
"rotlwi %[sha256], %[data], 26\n\t"
"rotlwi %[len], %[data], 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[data]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add r9, r9, %[sha256]\n\t"
"lwz %[sha256], 44(r6)\n\t"
"add r9, r9, r25\n\t"
"add r9, r9, %[sha256]\n\t"
"add r0, r0, r9\n\t"
"rotlwi %[sha256], r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[len], r10, r11\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r9, r9, %[sha256]\n\t"
"rotlwi %[sha256], r26, 25\n\t"
"rotlwi %[len], r26, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r26, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r25, r25, %[sha256]\n\t"
"rotlwi %[sha256], r23, 15\n\t"
"rotlwi %[len], r23, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r23, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r25, r25, %[sha256]\n\t"
"add r25, r25, r18\n\t"
"rotlwi %[sha256], r0, 26\n\t"
"rotlwi %[len], r0, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], r0\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r8, r8, %[sha256]\n\t"
"lwz %[sha256], 48(r6)\n\t"
"add r8, r8, r26\n\t"
"add r8, r8, %[sha256]\n\t"
"add r12, r12, r8\n\t"
"rotlwi %[sha256], r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[len], r9, r10\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r8, r8, %[sha256]\n\t"
"rotlwi %[sha256], r27, 25\n\t"
"rotlwi %[len], r27, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r27, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r26, r26, %[sha256]\n\t"
"rotlwi %[sha256], r24, 15\n\t"
"rotlwi %[len], r24, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r24, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r26, r26, %[sha256]\n\t"
"add r26, r26, r19\n\t"
"rotlwi %[sha256], r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], r12\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r7, r7, %[sha256]\n\t"
"lwz %[sha256], 52(r6)\n\t"
"add r7, r7, r27\n\t"
"add r7, r7, %[sha256]\n\t"
"add r11, r11, r7\n\t"
"rotlwi %[sha256], r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[len], r8, r9\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r7, r7, %[sha256]\n\t"
"rotlwi %[sha256], r28, 25\n\t"
"rotlwi %[len], r28, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r28, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r27, r27, %[sha256]\n\t"
"rotlwi %[sha256], r25, 15\n\t"
"rotlwi %[len], r25, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r25, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r27, r27, %[sha256]\n\t"
"add r27, r27, r20\n\t"
"rotlwi %[sha256], r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], r11\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add %[data], %[data], %[sha256]\n\t"
"lwz %[sha256], 56(r6)\n\t"
"add %[data], %[data], r28\n\t"
"add %[data], %[data], %[sha256]\n\t"
"add r10, r10, %[data]\n\t"
"rotlwi %[sha256], r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[len], r7, r8\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add %[data], %[data], %[sha256]\n\t"
"rotlwi %[sha256], r29, 25\n\t"
"rotlwi %[len], r29, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r29, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r28, r28, %[sha256]\n\t"
"rotlwi %[sha256], r26, 15\n\t"
"rotlwi %[len], r26, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r26, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r28, r28, %[sha256]\n\t"
"add r28, r28, r21\n\t"
"rotlwi %[sha256], r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], r10\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r0, r0, %[sha256]\n\t"
"lwz %[sha256], 60(r6)\n\t"
"add r0, r0, r29\n\t"
"add r0, r0, %[sha256]\n\t"
"add r9, r9, r0\n\t"
"rotlwi %[sha256], %[data], 30\n\t"
"rotlwi %[len], %[data], 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[len], %[data], r7\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r0, r0, %[sha256]\n\t"
"rotlwi %[sha256], r14, 25\n\t"
"rotlwi %[len], r14, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r14, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r29, r29, %[sha256]\n\t"
"rotlwi %[sha256], r27, 15\n\t"
"rotlwi %[len], r27, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r27, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r29, r29, %[sha256]\n\t"
"add r29, r29, r22\n\t"
"addi r6, r6, 0x40\n\t"
"rotlwi %[sha256], r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], r9\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r12, r12, %[sha256]\n\t"
"lwz %[sha256], 0(r6)\n\t"
"add r12, r12, r14\n\t"
"add r12, r12, %[sha256]\n\t"
"add r8, r8, r12\n\t"
"rotlwi %[sha256], r0, 30\n\t"
"rotlwi %[len], r0, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[len], r0, %[data]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r12, r12, %[sha256]\n\t"
"rotlwi %[sha256], r15, 25\n\t"
"rotlwi %[len], r15, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r15, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r14, r14, %[sha256]\n\t"
"rotlwi %[sha256], r28, 15\n\t"
"rotlwi %[len], r28, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r28, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r14, r14, %[sha256]\n\t"
"add r14, r14, r23\n\t"
"rotlwi %[sha256], r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], r8\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r11, r11, %[sha256]\n\t"
"lwz %[sha256], 4(r6)\n\t"
"add r11, r11, r15\n\t"
"add r11, r11, %[sha256]\n\t"
"add r7, r7, r11\n\t"
"rotlwi %[sha256], r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[len], r12, r0\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add r11, r11, %[sha256]\n\t"
"rotlwi %[sha256], r16, 25\n\t"
"rotlwi %[len], r16, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r16, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r15, r15, %[sha256]\n\t"
"rotlwi %[sha256], r29, 15\n\t"
"rotlwi %[len], r29, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r29, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r15, r15, %[sha256]\n\t"
"add r15, r15, r24\n\t"
"rotlwi %[sha256], r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], r7\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r10, r10, %[sha256]\n\t"
"lwz %[sha256], 8(r6)\n\t"
"add r10, r10, r16\n\t"
"add r10, r10, %[sha256]\n\t"
"add %[data], %[data], r10\n\t"
"rotlwi %[sha256], r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[len], r11, r12\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r10, r10, %[sha256]\n\t"
"rotlwi %[sha256], r17, 25\n\t"
"rotlwi %[len], r17, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r17, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r16, r16, %[sha256]\n\t"
"rotlwi %[sha256], r14, 15\n\t"
"rotlwi %[len], r14, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r14, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r16, r16, %[sha256]\n\t"
"add r16, r16, r25\n\t"
"rotlwi %[sha256], %[data], 26\n\t"
"rotlwi %[len], %[data], 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[data]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add r9, r9, %[sha256]\n\t"
"lwz %[sha256], 12(r6)\n\t"
"add r9, r9, r17\n\t"
"add r9, r9, %[sha256]\n\t"
"add r0, r0, r9\n\t"
"rotlwi %[sha256], r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[len], r10, r11\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r9, r9, %[sha256]\n\t"
"rotlwi %[sha256], r18, 25\n\t"
"rotlwi %[len], r18, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r18, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r17, r17, %[sha256]\n\t"
"rotlwi %[sha256], r15, 15\n\t"
"rotlwi %[len], r15, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r15, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r17, r17, %[sha256]\n\t"
"add r17, r17, r26\n\t"
"rotlwi %[sha256], r0, 26\n\t"
"rotlwi %[len], r0, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], r0\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r8, r8, %[sha256]\n\t"
"lwz %[sha256], 16(r6)\n\t"
"add r8, r8, r18\n\t"
"add r8, r8, %[sha256]\n\t"
"add r12, r12, r8\n\t"
"rotlwi %[sha256], r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[len], r9, r10\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r8, r8, %[sha256]\n\t"
"rotlwi %[sha256], r19, 25\n\t"
"rotlwi %[len], r19, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r19, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r18, r18, %[sha256]\n\t"
"rotlwi %[sha256], r16, 15\n\t"
"rotlwi %[len], r16, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r16, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r18, r18, %[sha256]\n\t"
"add r18, r18, r27\n\t"
"rotlwi %[sha256], r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], r12\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r7, r7, %[sha256]\n\t"
"lwz %[sha256], 20(r6)\n\t"
"add r7, r7, r19\n\t"
"add r7, r7, %[sha256]\n\t"
"add r11, r11, r7\n\t"
"rotlwi %[sha256], r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[len], r8, r9\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r7, r7, %[sha256]\n\t"
"rotlwi %[sha256], r20, 25\n\t"
"rotlwi %[len], r20, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r20, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r19, r19, %[sha256]\n\t"
"rotlwi %[sha256], r17, 15\n\t"
"rotlwi %[len], r17, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r17, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r19, r19, %[sha256]\n\t"
"add r19, r19, r28\n\t"
"rotlwi %[sha256], r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], r11\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add %[data], %[data], %[sha256]\n\t"
"lwz %[sha256], 24(r6)\n\t"
"add %[data], %[data], r20\n\t"
"add %[data], %[data], %[sha256]\n\t"
"add r10, r10, %[data]\n\t"
"rotlwi %[sha256], r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[len], r7, r8\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add %[data], %[data], %[sha256]\n\t"
"rotlwi %[sha256], r21, 25\n\t"
"rotlwi %[len], r21, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r21, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r20, r20, %[sha256]\n\t"
"rotlwi %[sha256], r18, 15\n\t"
"rotlwi %[len], r18, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r18, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r20, r20, %[sha256]\n\t"
"add r20, r20, r29\n\t"
"rotlwi %[sha256], r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], r10\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r0, r0, %[sha256]\n\t"
"lwz %[sha256], 28(r6)\n\t"
"add r0, r0, r21\n\t"
"add r0, r0, %[sha256]\n\t"
"add r9, r9, r0\n\t"
"rotlwi %[sha256], %[data], 30\n\t"
"rotlwi %[len], %[data], 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[len], %[data], r7\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r0, r0, %[sha256]\n\t"
"rotlwi %[sha256], r22, 25\n\t"
"rotlwi %[len], r22, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r22, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r21, r21, %[sha256]\n\t"
"rotlwi %[sha256], r19, 15\n\t"
"rotlwi %[len], r19, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r19, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r21, r21, %[sha256]\n\t"
"add r21, r21, r14\n\t"
"rotlwi %[sha256], r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], r9\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r12, r12, %[sha256]\n\t"
"lwz %[sha256], 32(r6)\n\t"
"add r12, r12, r22\n\t"
"add r12, r12, %[sha256]\n\t"
"add r8, r8, r12\n\t"
"rotlwi %[sha256], r0, 30\n\t"
"rotlwi %[len], r0, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[len], r0, %[data]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r12, r12, %[sha256]\n\t"
"rotlwi %[sha256], r23, 25\n\t"
"rotlwi %[len], r23, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r23, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r22, r22, %[sha256]\n\t"
"rotlwi %[sha256], r20, 15\n\t"
"rotlwi %[len], r20, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r20, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r22, r22, %[sha256]\n\t"
"add r22, r22, r15\n\t"
"rotlwi %[sha256], r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], r8\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r11, r11, %[sha256]\n\t"
"lwz %[sha256], 36(r6)\n\t"
"add r11, r11, r23\n\t"
"add r11, r11, %[sha256]\n\t"
"add r7, r7, r11\n\t"
"rotlwi %[sha256], r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[len], r12, r0\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add r11, r11, %[sha256]\n\t"
"rotlwi %[sha256], r24, 25\n\t"
"rotlwi %[len], r24, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r24, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r23, r23, %[sha256]\n\t"
"rotlwi %[sha256], r21, 15\n\t"
"rotlwi %[len], r21, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r21, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r23, r23, %[sha256]\n\t"
"add r23, r23, r16\n\t"
"rotlwi %[sha256], r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], r7\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r10, r10, %[sha256]\n\t"
"lwz %[sha256], 40(r6)\n\t"
"add r10, r10, r24\n\t"
"add r10, r10, %[sha256]\n\t"
"add %[data], %[data], r10\n\t"
"rotlwi %[sha256], r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[len], r11, r12\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r10, r10, %[sha256]\n\t"
"rotlwi %[sha256], r25, 25\n\t"
"rotlwi %[len], r25, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r25, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r24, r24, %[sha256]\n\t"
"rotlwi %[sha256], r22, 15\n\t"
"rotlwi %[len], r22, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r22, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r24, r24, %[sha256]\n\t"
"add r24, r24, r17\n\t"
"rotlwi %[sha256], %[data], 26\n\t"
"rotlwi %[len], %[data], 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[data]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add r9, r9, %[sha256]\n\t"
"lwz %[sha256], 44(r6)\n\t"
"add r9, r9, r25\n\t"
"add r9, r9, %[sha256]\n\t"
"add r0, r0, r9\n\t"
"rotlwi %[sha256], r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[len], r10, r11\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r9, r9, %[sha256]\n\t"
"rotlwi %[sha256], r26, 25\n\t"
"rotlwi %[len], r26, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r26, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r25, r25, %[sha256]\n\t"
"rotlwi %[sha256], r23, 15\n\t"
"rotlwi %[len], r23, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r23, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r25, r25, %[sha256]\n\t"
"add r25, r25, r18\n\t"
"rotlwi %[sha256], r0, 26\n\t"
"rotlwi %[len], r0, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], r0\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r8, r8, %[sha256]\n\t"
"lwz %[sha256], 48(r6)\n\t"
"add r8, r8, r26\n\t"
"add r8, r8, %[sha256]\n\t"
"add r12, r12, r8\n\t"
"rotlwi %[sha256], r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[len], r9, r10\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r8, r8, %[sha256]\n\t"
"rotlwi %[sha256], r27, 25\n\t"
"rotlwi %[len], r27, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r27, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r26, r26, %[sha256]\n\t"
"rotlwi %[sha256], r24, 15\n\t"
"rotlwi %[len], r24, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r24, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r26, r26, %[sha256]\n\t"
"add r26, r26, r19\n\t"
"rotlwi %[sha256], r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], r12\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r7, r7, %[sha256]\n\t"
"lwz %[sha256], 52(r6)\n\t"
"add r7, r7, r27\n\t"
"add r7, r7, %[sha256]\n\t"
"add r11, r11, r7\n\t"
"rotlwi %[sha256], r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[len], r8, r9\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r7, r7, %[sha256]\n\t"
"rotlwi %[sha256], r28, 25\n\t"
"rotlwi %[len], r28, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r28, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r27, r27, %[sha256]\n\t"
"rotlwi %[sha256], r25, 15\n\t"
"rotlwi %[len], r25, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r25, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r27, r27, %[sha256]\n\t"
"add r27, r27, r20\n\t"
"rotlwi %[sha256], r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], r11\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add %[data], %[data], %[sha256]\n\t"
"lwz %[sha256], 56(r6)\n\t"
"add %[data], %[data], r28\n\t"
"add %[data], %[data], %[sha256]\n\t"
"add r10, r10, %[data]\n\t"
"rotlwi %[sha256], r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[len], r7, r8\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add %[data], %[data], %[sha256]\n\t"
"rotlwi %[sha256], r29, 25\n\t"
"rotlwi %[len], r29, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r29, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r28, r28, %[sha256]\n\t"
"rotlwi %[sha256], r26, 15\n\t"
"rotlwi %[len], r26, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r26, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r28, r28, %[sha256]\n\t"
"add r28, r28, r21\n\t"
"rotlwi %[sha256], r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], r10\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r0, r0, %[sha256]\n\t"
"lwz %[sha256], 60(r6)\n\t"
"add r0, r0, r29\n\t"
"add r0, r0, %[sha256]\n\t"
"add r9, r9, r0\n\t"
"rotlwi %[sha256], %[data], 30\n\t"
"rotlwi %[len], %[data], 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[len], %[data], r7\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r0, r0, %[sha256]\n\t"
"rotlwi %[sha256], r14, 25\n\t"
"rotlwi %[len], r14, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r14, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r29, r29, %[sha256]\n\t"
"rotlwi %[sha256], r27, 15\n\t"
"rotlwi %[len], r27, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r27, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r29, r29, %[sha256]\n\t"
"add r29, r29, r22\n\t"
"addi r6, r6, 0x40\n\t"
"rotlwi %[sha256], r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], r9\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r12, r12, %[sha256]\n\t"
"lwz %[sha256], 0(r6)\n\t"
"add r12, r12, r14\n\t"
"add r12, r12, %[sha256]\n\t"
"add r8, r8, r12\n\t"
"rotlwi %[sha256], r0, 30\n\t"
"rotlwi %[len], r0, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[len], r0, %[data]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r12, r12, %[sha256]\n\t"
"rotlwi %[sha256], r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], r8\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r11, r11, %[sha256]\n\t"
"lwz %[sha256], 4(r6)\n\t"
"add r11, r11, r15\n\t"
"add r11, r11, %[sha256]\n\t"
"add r7, r7, r11\n\t"
"rotlwi %[sha256], r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[len], r12, r0\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add r11, r11, %[sha256]\n\t"
"rotlwi %[sha256], r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], r7\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r10, r10, %[sha256]\n\t"
"lwz %[sha256], 8(r6)\n\t"
"add r10, r10, r16\n\t"
"add r10, r10, %[sha256]\n\t"
"add %[data], %[data], r10\n\t"
"rotlwi %[sha256], r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[len], r11, r12\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r10, r10, %[sha256]\n\t"
"rotlwi %[sha256], %[data], 26\n\t"
"rotlwi %[len], %[data], 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[data]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add r9, r9, %[sha256]\n\t"
"lwz %[sha256], 12(r6)\n\t"
"add r9, r9, r17\n\t"
"add r9, r9, %[sha256]\n\t"
"add r0, r0, r9\n\t"
"rotlwi %[sha256], r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[len], r10, r11\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r9, r9, %[sha256]\n\t"
"rotlwi %[sha256], r0, 26\n\t"
"rotlwi %[len], r0, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], r0\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r8, r8, %[sha256]\n\t"
"lwz %[sha256], 16(r6)\n\t"
"add r8, r8, r18\n\t"
"add r8, r8, %[sha256]\n\t"
"add r12, r12, r8\n\t"
"rotlwi %[sha256], r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[len], r9, r10\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r8, r8, %[sha256]\n\t"
"rotlwi %[sha256], r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], r12\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r7, r7, %[sha256]\n\t"
"lwz %[sha256], 20(r6)\n\t"
"add r7, r7, r19\n\t"
"add r7, r7, %[sha256]\n\t"
"add r11, r11, r7\n\t"
"rotlwi %[sha256], r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[len], r8, r9\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r7, r7, %[sha256]\n\t"
"rotlwi %[sha256], r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], r11\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add %[data], %[data], %[sha256]\n\t"
"lwz %[sha256], 24(r6)\n\t"
"add %[data], %[data], r20\n\t"
"add %[data], %[data], %[sha256]\n\t"
"add r10, r10, %[data]\n\t"
"rotlwi %[sha256], r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[len], r7, r8\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add %[data], %[data], %[sha256]\n\t"
"rotlwi %[sha256], r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], r10\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r0, r0, %[sha256]\n\t"
"lwz %[sha256], 28(r6)\n\t"
"add r0, r0, r21\n\t"
"add r0, r0, %[sha256]\n\t"
"add r9, r9, r0\n\t"
"rotlwi %[sha256], %[data], 30\n\t"
"rotlwi %[len], %[data], 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[len], %[data], r7\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r0, r0, %[sha256]\n\t"
"rotlwi %[sha256], r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], r9\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r12, r12, %[sha256]\n\t"
"lwz %[sha256], 32(r6)\n\t"
"add r12, r12, r22\n\t"
"add r12, r12, %[sha256]\n\t"
"add r8, r8, r12\n\t"
"rotlwi %[sha256], r0, 30\n\t"
"rotlwi %[len], r0, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[len], r0, %[data]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r12, r12, %[sha256]\n\t"
"rotlwi %[sha256], r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], r8\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r11, r11, %[sha256]\n\t"
"lwz %[sha256], 36(r6)\n\t"
"add r11, r11, r23\n\t"
"add r11, r11, %[sha256]\n\t"
"add r7, r7, r11\n\t"
"rotlwi %[sha256], r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[len], r12, r0\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add r11, r11, %[sha256]\n\t"
"rotlwi %[sha256], r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], r7\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r10, r10, %[sha256]\n\t"
"lwz %[sha256], 40(r6)\n\t"
"add r10, r10, r24\n\t"
"add r10, r10, %[sha256]\n\t"
"add %[data], %[data], r10\n\t"
"rotlwi %[sha256], r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[len], r11, r12\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r10, r10, %[sha256]\n\t"
"rotlwi %[sha256], %[data], 26\n\t"
"rotlwi %[len], %[data], 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[data]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add r9, r9, %[sha256]\n\t"
"lwz %[sha256], 44(r6)\n\t"
"add r9, r9, r25\n\t"
"add r9, r9, %[sha256]\n\t"
"add r0, r0, r9\n\t"
"rotlwi %[sha256], r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[len], r10, r11\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r9, r9, %[sha256]\n\t"
"rotlwi %[sha256], r0, 26\n\t"
"rotlwi %[len], r0, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], r0\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r8, r8, %[sha256]\n\t"
"lwz %[sha256], 48(r6)\n\t"
"add r8, r8, r26\n\t"
"add r8, r8, %[sha256]\n\t"
"add r12, r12, r8\n\t"
"rotlwi %[sha256], r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[len], r9, r10\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r8, r8, %[sha256]\n\t"
"rotlwi %[sha256], r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], r12\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r7, r7, %[sha256]\n\t"
"lwz %[sha256], 52(r6)\n\t"
"add r7, r7, r27\n\t"
"add r7, r7, %[sha256]\n\t"
"add r11, r11, r7\n\t"
"rotlwi %[sha256], r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[len], r8, r9\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r7, r7, %[sha256]\n\t"
"rotlwi %[sha256], r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], r11\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add %[data], %[data], %[sha256]\n\t"
"lwz %[sha256], 56(r6)\n\t"
"add %[data], %[data], r28\n\t"
"add %[data], %[data], %[sha256]\n\t"
"add r10, r10, %[data]\n\t"
"rotlwi %[sha256], r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[len], r7, r8\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add %[data], %[data], %[sha256]\n\t"
"rotlwi %[sha256], r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], r10\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r0, r0, %[sha256]\n\t"
"lwz %[sha256], 60(r6)\n\t"
"add r0, r0, r29\n\t"
"add r0, r0, %[sha256]\n\t"
"add r9, r9, r0\n\t"
"rotlwi %[sha256], %[data], 30\n\t"
"rotlwi %[len], %[data], 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[len], %[data], r7\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r0, r0, %[sha256]\n\t"
"subi r6, r6, 0xc0\n\t"
"lwz %[sha256], 0(r1)\n\t"
"lwz %[len], 0(%[sha256])\n\t"
"add r0, r0, %[len]\n\t"
"lwz %[len], 4(%[sha256])\n\t"
"add %[data], %[data], %[len]\n\t"
"lwz %[len], 8(%[sha256])\n\t"
"add r7, r7, %[len]\n\t"
"lwz %[len], 12(%[sha256])\n\t"
"add r8, r8, %[len]\n\t"
"lwz %[len], 16(%[sha256])\n\t"
"add r9, r9, %[len]\n\t"
"lwz %[len], 20(%[sha256])\n\t"
"add r10, r10, %[len]\n\t"
"lwz %[len], 24(%[sha256])\n\t"
"add r11, r11, %[len]\n\t"
"lwz %[len], 28(%[sha256])\n\t"
"add r12, r12, %[len]\n\t"
"stw r0, 0(%[sha256])\n\t"
"stw %[data], 4(%[sha256])\n\t"
"stw r7, 8(%[sha256])\n\t"
"stw r8, 12(%[sha256])\n\t"
"stw r9, 16(%[sha256])\n\t"
"stw r10, 20(%[sha256])\n\t"
"stw r11, 24(%[sha256])\n\t"
"stw r12, 28(%[sha256])\n\t"
"lwz %[sha256], 4(r1)\n\t"
"addi %[sha256], %[sha256], 0x40\n\t"
"stw %[sha256], 4(r1)\n\t"
"bdnz L_SHA256_transform_len_begin_%=\n\t"
"addi r1, r1, 8\n\t"
#else
"subi r1, r1, 12\n\t"
"stw %[sha256], 0(r1)\n\t"
"stw %[data], 4(r1)\n\t"
"stw %[len], 8(r1)\n\t"
"lwz r0, 0(%[sha256])\n\t"
"lwz %[data], 4(%[sha256])\n\t"
"lwz r7, 8(%[sha256])\n\t"
"lwz r8, 12(%[sha256])\n\t"
"lwz r9, 16(%[sha256])\n\t"
"lwz r10, 20(%[sha256])\n\t"
"lwz r11, 24(%[sha256])\n\t"
"lwz r12, 28(%[sha256])\n\t"
"lwz %[sha256], 4(r1)\n\t"
"\n"
"L_SHA256_transform_len_begin_%=: \n\t"
"lwz r14, 0(%[sha256])\n\t"
"lwz r15, 4(%[sha256])\n\t"
"lwz r16, 8(%[sha256])\n\t"
"lwz r17, 12(%[sha256])\n\t"
"lwz r18, 16(%[sha256])\n\t"
"lwz r19, 20(%[sha256])\n\t"
"lwz r20, 24(%[sha256])\n\t"
"lwz r21, 28(%[sha256])\n\t"
"lwz r22, 32(%[sha256])\n\t"
"lwz r23, 36(%[sha256])\n\t"
"lwz r24, 40(%[sha256])\n\t"
"lwz r25, 44(%[sha256])\n\t"
"lwz r26, 48(%[sha256])\n\t"
"lwz r27, 52(%[sha256])\n\t"
"lwz r28, 56(%[sha256])\n\t"
"lwz r29, 60(%[sha256])\n\t"
"li %[sha256], 4\n\t"
"mtctr %[sha256]\n\t"
"\n"
"L_SHA256_transform_len_start_%=: \n\t"
"rotlwi %[sha256], r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], r9\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r12, r12, %[sha256]\n\t"
"lwz %[sha256], 0(r6)\n\t"
"add r12, r12, r14\n\t"
"add r12, r12, %[sha256]\n\t"
"add r8, r8, r12\n\t"
"rotlwi %[sha256], r0, 30\n\t"
"rotlwi %[len], r0, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[len], r0, %[data]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r12, r12, %[sha256]\n\t"
"mfctr %[len]\n\t"
"cmpwi %[sha256], %[len], 1\n\t"
"beq %[sha256], L_SHA256_transform_len_after_blk_0_%=\n\t"
"rotlwi %[sha256], r15, 25\n\t"
"rotlwi %[len], r15, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r15, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r14, r14, %[sha256]\n\t"
"rotlwi %[sha256], r28, 15\n\t"
"rotlwi %[len], r28, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r28, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r14, r14, %[sha256]\n\t"
"add r14, r14, r23\n\t"
"\n"
"L_SHA256_transform_len_after_blk_0_%=: \n\t"
"rotlwi %[sha256], r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], r8\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r11, r11, %[sha256]\n\t"
"lwz %[sha256], 4(r6)\n\t"
"add r11, r11, r15\n\t"
"add r11, r11, %[sha256]\n\t"
"add r7, r7, r11\n\t"
"rotlwi %[sha256], r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[len], r12, r0\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add r11, r11, %[sha256]\n\t"
"mfctr %[len]\n\t"
"cmpwi %[sha256], %[len], 1\n\t"
"beq %[sha256], L_SHA256_transform_len_after_blk_1_%=\n\t"
"rotlwi %[sha256], r16, 25\n\t"
"rotlwi %[len], r16, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r16, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r15, r15, %[sha256]\n\t"
"rotlwi %[sha256], r29, 15\n\t"
"rotlwi %[len], r29, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r29, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r15, r15, %[sha256]\n\t"
"add r15, r15, r24\n\t"
"\n"
"L_SHA256_transform_len_after_blk_1_%=: \n\t"
"rotlwi %[sha256], r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], r7\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r10, r10, %[sha256]\n\t"
"lwz %[sha256], 8(r6)\n\t"
"add r10, r10, r16\n\t"
"add r10, r10, %[sha256]\n\t"
"add %[data], %[data], r10\n\t"
"rotlwi %[sha256], r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[len], r11, r12\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r10, r10, %[sha256]\n\t"
"mfctr %[len]\n\t"
"cmpwi %[sha256], %[len], 1\n\t"
"beq %[sha256], L_SHA256_transform_len_after_blk_2_%=\n\t"
"rotlwi %[sha256], r17, 25\n\t"
"rotlwi %[len], r17, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r17, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r16, r16, %[sha256]\n\t"
"rotlwi %[sha256], r14, 15\n\t"
"rotlwi %[len], r14, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r14, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r16, r16, %[sha256]\n\t"
"add r16, r16, r25\n\t"
"\n"
"L_SHA256_transform_len_after_blk_2_%=: \n\t"
"rotlwi %[sha256], %[data], 26\n\t"
"rotlwi %[len], %[data], 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[data]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add r9, r9, %[sha256]\n\t"
"lwz %[sha256], 12(r6)\n\t"
"add r9, r9, r17\n\t"
"add r9, r9, %[sha256]\n\t"
"add r0, r0, r9\n\t"
"rotlwi %[sha256], r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[len], r10, r11\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r9, r9, %[sha256]\n\t"
"mfctr %[len]\n\t"
"cmpwi %[sha256], %[len], 1\n\t"
"beq %[sha256], L_SHA256_transform_len_after_blk_3_%=\n\t"
"rotlwi %[sha256], r18, 25\n\t"
"rotlwi %[len], r18, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r18, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r17, r17, %[sha256]\n\t"
"rotlwi %[sha256], r15, 15\n\t"
"rotlwi %[len], r15, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r15, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r17, r17, %[sha256]\n\t"
"add r17, r17, r26\n\t"
"\n"
"L_SHA256_transform_len_after_blk_3_%=: \n\t"
"rotlwi %[sha256], r0, 26\n\t"
"rotlwi %[len], r0, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], r0\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r8, r8, %[sha256]\n\t"
"lwz %[sha256], 16(r6)\n\t"
"add r8, r8, r18\n\t"
"add r8, r8, %[sha256]\n\t"
"add r12, r12, r8\n\t"
"rotlwi %[sha256], r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[len], r9, r10\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r8, r8, %[sha256]\n\t"
"mfctr %[len]\n\t"
"cmpwi %[sha256], %[len], 1\n\t"
"beq %[sha256], L_SHA256_transform_len_after_blk_4_%=\n\t"
"rotlwi %[sha256], r19, 25\n\t"
"rotlwi %[len], r19, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r19, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r18, r18, %[sha256]\n\t"
"rotlwi %[sha256], r16, 15\n\t"
"rotlwi %[len], r16, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r16, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r18, r18, %[sha256]\n\t"
"add r18, r18, r27\n\t"
"\n"
"L_SHA256_transform_len_after_blk_4_%=: \n\t"
"rotlwi %[sha256], r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], r12\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r7, r7, %[sha256]\n\t"
"lwz %[sha256], 20(r6)\n\t"
"add r7, r7, r19\n\t"
"add r7, r7, %[sha256]\n\t"
"add r11, r11, r7\n\t"
"rotlwi %[sha256], r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[len], r8, r9\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r7, r7, %[sha256]\n\t"
"mfctr %[len]\n\t"
"cmpwi %[sha256], %[len], 1\n\t"
"beq %[sha256], L_SHA256_transform_len_after_blk_5_%=\n\t"
"rotlwi %[sha256], r20, 25\n\t"
"rotlwi %[len], r20, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r20, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r19, r19, %[sha256]\n\t"
"rotlwi %[sha256], r17, 15\n\t"
"rotlwi %[len], r17, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r17, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r19, r19, %[sha256]\n\t"
"add r19, r19, r28\n\t"
"\n"
"L_SHA256_transform_len_after_blk_5_%=: \n\t"
"rotlwi %[sha256], r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], r11\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add %[data], %[data], %[sha256]\n\t"
"lwz %[sha256], 24(r6)\n\t"
"add %[data], %[data], r20\n\t"
"add %[data], %[data], %[sha256]\n\t"
"add r10, r10, %[data]\n\t"
"rotlwi %[sha256], r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[len], r7, r8\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add %[data], %[data], %[sha256]\n\t"
"mfctr %[len]\n\t"
"cmpwi %[sha256], %[len], 1\n\t"
"beq %[sha256], L_SHA256_transform_len_after_blk_6_%=\n\t"
"rotlwi %[sha256], r21, 25\n\t"
"rotlwi %[len], r21, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r21, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r20, r20, %[sha256]\n\t"
"rotlwi %[sha256], r18, 15\n\t"
"rotlwi %[len], r18, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r18, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r20, r20, %[sha256]\n\t"
"add r20, r20, r29\n\t"
"\n"
"L_SHA256_transform_len_after_blk_6_%=: \n\t"
"rotlwi %[sha256], r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], r10\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r0, r0, %[sha256]\n\t"
"lwz %[sha256], 28(r6)\n\t"
"add r0, r0, r21\n\t"
"add r0, r0, %[sha256]\n\t"
"add r9, r9, r0\n\t"
"rotlwi %[sha256], %[data], 30\n\t"
"rotlwi %[len], %[data], 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[len], %[data], r7\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r0, r0, %[sha256]\n\t"
"mfctr %[len]\n\t"
"cmpwi %[sha256], %[len], 1\n\t"
"beq %[sha256], L_SHA256_transform_len_after_blk_7_%=\n\t"
"rotlwi %[sha256], r22, 25\n\t"
"rotlwi %[len], r22, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r22, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r21, r21, %[sha256]\n\t"
"rotlwi %[sha256], r19, 15\n\t"
"rotlwi %[len], r19, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r19, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r21, r21, %[sha256]\n\t"
"add r21, r21, r14\n\t"
"\n"
"L_SHA256_transform_len_after_blk_7_%=: \n\t"
"rotlwi %[sha256], r9, 26\n\t"
"rotlwi %[len], r9, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], r9\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r12, r12, %[sha256]\n\t"
"lwz %[sha256], 32(r6)\n\t"
"add r12, r12, r22\n\t"
"add r12, r12, %[sha256]\n\t"
"add r8, r8, r12\n\t"
"rotlwi %[sha256], r0, 30\n\t"
"rotlwi %[len], r0, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r12, r12, %[sha256]\n\t"
"xor %[len], r0, %[data]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r12, r12, %[sha256]\n\t"
"mfctr %[len]\n\t"
"cmpwi %[sha256], %[len], 1\n\t"
"beq %[sha256], L_SHA256_transform_len_after_blk_8_%=\n\t"
"rotlwi %[sha256], r23, 25\n\t"
"rotlwi %[len], r23, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r23, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r22, r22, %[sha256]\n\t"
"rotlwi %[sha256], r20, 15\n\t"
"rotlwi %[len], r20, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r20, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r22, r22, %[sha256]\n\t"
"add r22, r22, r15\n\t"
"\n"
"L_SHA256_transform_len_after_blk_8_%=: \n\t"
"rotlwi %[sha256], r8, 26\n\t"
"rotlwi %[len], r8, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], r8\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r11, r11, %[sha256]\n\t"
"lwz %[sha256], 36(r6)\n\t"
"add r11, r11, r23\n\t"
"add r11, r11, %[sha256]\n\t"
"add r7, r7, r11\n\t"
"rotlwi %[sha256], r12, 30\n\t"
"rotlwi %[len], r12, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r11, r11, %[sha256]\n\t"
"xor %[len], r12, r0\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add r11, r11, %[sha256]\n\t"
"mfctr %[len]\n\t"
"cmpwi %[sha256], %[len], 1\n\t"
"beq %[sha256], L_SHA256_transform_len_after_blk_9_%=\n\t"
"rotlwi %[sha256], r24, 25\n\t"
"rotlwi %[len], r24, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r24, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r23, r23, %[sha256]\n\t"
"rotlwi %[sha256], r21, 15\n\t"
"rotlwi %[len], r21, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r21, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r23, r23, %[sha256]\n\t"
"add r23, r23, r16\n\t"
"\n"
"L_SHA256_transform_len_after_blk_9_%=: \n\t"
"rotlwi %[sha256], r7, 26\n\t"
"rotlwi %[len], r7, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], r7\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r10, r10, %[sha256]\n\t"
"lwz %[sha256], 40(r6)\n\t"
"add r10, r10, r24\n\t"
"add r10, r10, %[sha256]\n\t"
"add %[data], %[data], r10\n\t"
"rotlwi %[sha256], r11, 30\n\t"
"rotlwi %[len], r11, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r10, r10, %[sha256]\n\t"
"xor %[len], r11, r12\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r10, r10, %[sha256]\n\t"
"mfctr %[len]\n\t"
"cmpwi %[sha256], %[len], 1\n\t"
"beq %[sha256], L_SHA256_transform_len_after_blk_10_%=\n\t"
"rotlwi %[sha256], r25, 25\n\t"
"rotlwi %[len], r25, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r25, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r24, r24, %[sha256]\n\t"
"rotlwi %[sha256], r22, 15\n\t"
"rotlwi %[len], r22, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r22, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r24, r24, %[sha256]\n\t"
"add r24, r24, r17\n\t"
"\n"
"L_SHA256_transform_len_after_blk_10_%=: \n\t"
"rotlwi %[sha256], %[data], 26\n\t"
"rotlwi %[len], %[data], 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[data]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add r9, r9, %[sha256]\n\t"
"lwz %[sha256], 44(r6)\n\t"
"add r9, r9, r25\n\t"
"add r9, r9, %[sha256]\n\t"
"add r0, r0, r9\n\t"
"rotlwi %[sha256], r10, 30\n\t"
"rotlwi %[len], r10, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r9, r9, %[sha256]\n\t"
"xor %[len], r10, r11\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r11\n\t"
"add r9, r9, %[sha256]\n\t"
"mfctr %[len]\n\t"
"cmpwi %[sha256], %[len], 1\n\t"
"beq %[sha256], L_SHA256_transform_len_after_blk_11_%=\n\t"
"rotlwi %[sha256], r26, 25\n\t"
"rotlwi %[len], r26, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r26, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r25, r25, %[sha256]\n\t"
"rotlwi %[sha256], r23, 15\n\t"
"rotlwi %[len], r23, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r23, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r25, r25, %[sha256]\n\t"
"add r25, r25, r18\n\t"
"\n"
"L_SHA256_transform_len_after_blk_11_%=: \n\t"
"rotlwi %[sha256], r0, 26\n\t"
"rotlwi %[len], r0, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r0, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[sha256], %[data], r7\n\t"
"and %[sha256], %[sha256], r0\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r8, r8, %[sha256]\n\t"
"lwz %[sha256], 48(r6)\n\t"
"add r8, r8, r26\n\t"
"add r8, r8, %[sha256]\n\t"
"add r12, r12, r8\n\t"
"rotlwi %[sha256], r9, 30\n\t"
"rotlwi %[len], r9, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r9, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r8, r8, %[sha256]\n\t"
"xor %[len], r9, r10\n\t"
"xor %[sha256], r10, r11\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r10\n\t"
"add r8, r8, %[sha256]\n\t"
"mfctr %[len]\n\t"
"cmpwi %[sha256], %[len], 1\n\t"
"beq %[sha256], L_SHA256_transform_len_after_blk_12_%=\n\t"
"rotlwi %[sha256], r27, 25\n\t"
"rotlwi %[len], r27, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r27, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r26, r26, %[sha256]\n\t"
"rotlwi %[sha256], r24, 15\n\t"
"rotlwi %[len], r24, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r24, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r26, r26, %[sha256]\n\t"
"add r26, r26, r19\n\t"
"\n"
"L_SHA256_transform_len_after_blk_12_%=: \n\t"
"rotlwi %[sha256], r12, 26\n\t"
"rotlwi %[len], r12, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r12, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[sha256], r0, %[data]\n\t"
"and %[sha256], %[sha256], r12\n\t"
"xor %[sha256], %[sha256], %[data]\n\t"
"add r7, r7, %[sha256]\n\t"
"lwz %[sha256], 52(r6)\n\t"
"add r7, r7, r27\n\t"
"add r7, r7, %[sha256]\n\t"
"add r11, r11, r7\n\t"
"rotlwi %[sha256], r8, 30\n\t"
"rotlwi %[len], r8, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r8, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r7, r7, %[sha256]\n\t"
"xor %[len], r8, r9\n\t"
"xor %[sha256], r9, r10\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r9\n\t"
"add r7, r7, %[sha256]\n\t"
"mfctr %[len]\n\t"
"cmpwi %[sha256], %[len], 1\n\t"
"beq %[sha256], L_SHA256_transform_len_after_blk_13_%=\n\t"
"rotlwi %[sha256], r28, 25\n\t"
"rotlwi %[len], r28, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r28, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r27, r27, %[sha256]\n\t"
"rotlwi %[sha256], r25, 15\n\t"
"rotlwi %[len], r25, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r25, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r27, r27, %[sha256]\n\t"
"add r27, r27, r20\n\t"
"\n"
"L_SHA256_transform_len_after_blk_13_%=: \n\t"
"rotlwi %[sha256], r11, 26\n\t"
"rotlwi %[len], r11, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r11, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[sha256], r12, r0\n\t"
"and %[sha256], %[sha256], r11\n\t"
"xor %[sha256], %[sha256], r0\n\t"
"add %[data], %[data], %[sha256]\n\t"
"lwz %[sha256], 56(r6)\n\t"
"add %[data], %[data], r28\n\t"
"add %[data], %[data], %[sha256]\n\t"
"add r10, r10, %[data]\n\t"
"rotlwi %[sha256], r7, 30\n\t"
"rotlwi %[len], r7, 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r7, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add %[data], %[data], %[sha256]\n\t"
"xor %[len], r7, r8\n\t"
"xor %[sha256], r8, r9\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r8\n\t"
"add %[data], %[data], %[sha256]\n\t"
"mfctr %[len]\n\t"
"cmpwi %[sha256], %[len], 1\n\t"
"beq %[sha256], L_SHA256_transform_len_after_blk_14_%=\n\t"
"rotlwi %[sha256], r29, 25\n\t"
"rotlwi %[len], r29, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r29, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r28, r28, %[sha256]\n\t"
"rotlwi %[sha256], r26, 15\n\t"
"rotlwi %[len], r26, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r26, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r28, r28, %[sha256]\n\t"
"add r28, r28, r21\n\t"
"\n"
"L_SHA256_transform_len_after_blk_14_%=: \n\t"
"rotlwi %[sha256], r10, 26\n\t"
"rotlwi %[len], r10, 21\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], r10, 7\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[sha256], r11, r12\n\t"
"and %[sha256], %[sha256], r10\n\t"
"xor %[sha256], %[sha256], r12\n\t"
"add r0, r0, %[sha256]\n\t"
"lwz %[sha256], 60(r6)\n\t"
"add r0, r0, r29\n\t"
"add r0, r0, %[sha256]\n\t"
"add r9, r9, r0\n\t"
"rotlwi %[sha256], %[data], 30\n\t"
"rotlwi %[len], %[data], 19\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"rotlwi %[len], %[data], 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r0, r0, %[sha256]\n\t"
"xor %[len], %[data], r7\n\t"
"xor %[sha256], r7, r8\n\t"
"and %[sha256], %[sha256], %[len]\n\t"
"xor %[sha256], %[sha256], r7\n\t"
"add r0, r0, %[sha256]\n\t"
"mfctr %[len]\n\t"
"cmpwi %[sha256], %[len], 1\n\t"
"beq %[sha256], L_SHA256_transform_len_after_blk_15_%=\n\t"
"rotlwi %[sha256], r14, 25\n\t"
"rotlwi %[len], r14, 14\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r14, 3\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r29, r29, %[sha256]\n\t"
"rotlwi %[sha256], r27, 15\n\t"
"rotlwi %[len], r27, 13\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"srwi %[len], r27, 10\n\t"
"xor %[sha256], %[sha256], %[len]\n\t"
"add r29, r29, %[sha256]\n\t"
"add r29, r29, r22\n\t"
"\n"
"L_SHA256_transform_len_after_blk_15_%=: \n\t"
"addi r6, r6, 0x40\n\t"
"bdnz L_SHA256_transform_len_start_%=\n\t"
"subi r6, r6, 0x100\n\t"
"lwz %[sha256], 0(r1)\n\t"
"lwz %[len], 0(%[sha256])\n\t"
"add r0, r0, %[len]\n\t"
"lwz %[len], 4(%[sha256])\n\t"
"add %[data], %[data], %[len]\n\t"
"lwz %[len], 8(%[sha256])\n\t"
"add r7, r7, %[len]\n\t"
"lwz %[len], 12(%[sha256])\n\t"
"add r8, r8, %[len]\n\t"
"lwz %[len], 16(%[sha256])\n\t"
"add r9, r9, %[len]\n\t"
"lwz %[len], 20(%[sha256])\n\t"
"add r10, r10, %[len]\n\t"
"lwz %[len], 24(%[sha256])\n\t"
"add r11, r11, %[len]\n\t"
"lwz %[len], 28(%[sha256])\n\t"
"add r12, r12, %[len]\n\t"
"stw r0, 0(%[sha256])\n\t"
"stw %[data], 4(%[sha256])\n\t"
"stw r7, 8(%[sha256])\n\t"
"stw r8, 12(%[sha256])\n\t"
"stw r9, 16(%[sha256])\n\t"
"stw r10, 20(%[sha256])\n\t"
"stw r11, 24(%[sha256])\n\t"
"stw r12, 28(%[sha256])\n\t"
"lwz %[sha256], 4(r1)\n\t"
"lwz %[len], 8(r1)\n\t"
"mtctr %[len]\n\t"
"subi %[len], %[len], 1\n\t"
"addi %[sha256], %[sha256], 0x40\n\t"
"stw %[sha256], 4(r1)\n\t"
"stw %[len], 8(r1)\n\t"
"bdnz L_SHA256_transform_len_begin_%=\n\t"
"addi r1, r1, 12\n\t"
#endif
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
: [sha256] "+r" (sha256), [data] "+r" (data), [len] "+r" (len),
[L_SHA256_transform_len_k] "+r" (L_SHA256_transform_len_k_c)
:
#else
:
: [sha256] "r" (sha256), [data] "r" (data), [len] "r" (len),
[L_SHA256_transform_len_k] "r" (L_SHA256_transform_len_k_c)
#endif
: "memory", "cc", "r0", "r7", "r8", "r9", "r10", "r11", "r12", "r14",
"r15", "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
"r24", "r25", "r26", "r27", "r28", "r29"
);
}
#endif
#endif
#endif
#endif
#endif