diff -urN a/deps/openssl/config/archs/linux-mips/asm/crypto/aes/aes-mips.S b/deps/openssl/config/archs/linux-mips/asm/crypto/aes/aes-mips.S --- a/deps/openssl/config/archs/linux-mips/asm/crypto/aes/aes-mips.S 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mips/asm/crypto/aes/aes-mips.S 2019-12-25 13:49:19.976298828 +0900 @@ -0,0 +1,1870 @@ +#include "mips_arch.h" + +.text +#if !defined(__mips_eabi) && (!defined(__vxworks) || defined(__pic__)) +.option pic2 +#endif +.set noat +.align 5 +.ent _mips_AES_encrypt +_mips_AES_encrypt: + .frame $29,0,$31 + .set reorder + lw $12,0($6) + lw $13,4($6) + lw $14,8($6) + lw $15,12($6) + lw $30,240($6) + addu $3,$6,16 + + xor $8,$12 + xor $9,$13 + xor $10,$14 + xor $11,$15 + + subu $30,1 +#if defined(__mips_smartmips) + ext $1,$9,16,8 +.Loop_enc: + ext $2,$10,16,8 + ext $24,$11,16,8 + ext $25,$8,16,8 + lwxs $12,$1($7) # Te1[s1>>16] + ext $1,$10,8,8 + lwxs $13,$2($7) # Te1[s2>>16] + ext $2,$11,8,8 + lwxs $14,$24($7) # Te1[s3>>16] + ext $24,$8,8,8 + lwxs $15,$25($7) # Te1[s0>>16] + ext $25,$9,8,8 + + lwxs $16,$1($7) # Te2[s2>>8] + ext $1,$11,0,8 + lwxs $17,$2($7) # Te2[s3>>8] + ext $2,$8,0,8 + lwxs $18,$24($7) # Te2[s0>>8] + ext $24,$9,0,8 + lwxs $19,$25($7) # Te2[s1>>8] + ext $25,$10,0,8 + + lwxs $20,$1($7) # Te3[s3] + ext $1,$8,24,8 + lwxs $21,$2($7) # Te3[s0] + ext $2,$9,24,8 + lwxs $22,$24($7) # Te3[s1] + ext $24,$10,24,8 + lwxs $23,$25($7) # Te3[s2] + ext $25,$11,24,8 + + rotr $12,$12,8 + rotr $13,$13,8 + rotr $14,$14,8 + rotr $15,$15,8 + + rotr $16,$16,16 + rotr $17,$17,16 + rotr $18,$18,16 + rotr $19,$19,16 + + xor $12,$16 + lwxs $16,$1($7) # Te0[s0>>24] + xor $13,$17 + lwxs $17,$2($7) # Te0[s1>>24] + xor $14,$18 + lwxs $18,$24($7) # Te0[s2>>24] + xor $15,$19 + lwxs $19,$25($7) # Te0[s3>>24] + + rotr $20,$20,24 + lw $8,0($3) + rotr $21,$21,24 + lw $9,4($3) + rotr $22,$22,24 + lw $10,8($3) + rotr $23,$23,24 + lw $11,12($3) + + xor $12,$20 + xor $13,$21 + xor $14,$22 + xor $15,$23 + + xor $12,$16 + xor $13,$17 + xor $14,$18 + xor $15,$19 + + subu $30,1 + addu $3,16 + xor $8,$12 + xor $9,$13 + xor $10,$14 + xor $11,$15 + .set noreorder + bnez $30,.Loop_enc + ext $1,$9,16,8 + + srl $1,$9,14 +#else + srl $1,$9,14 +.Loop_enc: + srl $2,$10,14 + srl $24,$11,14 + srl $25,$8,14 + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + lw $12,0($1) # Te1[s1>>16] + srl $1,$10,6 + lw $13,0($2) # Te1[s2>>16] + srl $2,$11,6 + lw $14,0($24) # Te1[s3>>16] + srl $24,$8,6 + lw $15,0($25) # Te1[s0>>16] + srl $25,$9,6 +#else + lwl $12,3($1) # Te1[s1>>16] + lwl $13,3($2) # Te1[s2>>16] + lwl $14,3($24) # Te1[s3>>16] + lwl $15,3($25) # Te1[s0>>16] + lwr $12,2($1) # Te1[s1>>16] + srl $1,$10,6 + lwr $13,2($2) # Te1[s2>>16] + srl $2,$11,6 + lwr $14,2($24) # Te1[s3>>16] + srl $24,$8,6 + lwr $15,2($25) # Te1[s0>>16] + srl $25,$9,6 +#endif + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + rotr $12,$12,8 + rotr $13,$13,8 + rotr $14,$14,8 + rotr $15,$15,8 +# if defined(_MIPSEL) + lw $16,0($1) # Te2[s2>>8] + sll $1,$11,2 + lw $17,0($2) # Te2[s3>>8] + sll $2,$8,2 + lw $18,0($24) # Te2[s0>>8] + sll $24,$9,2 + lw $19,0($25) # Te2[s1>>8] + sll $25,$10,2 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lw $20,0($1) # Te3[s3] + ins $1,$8,2,8 + lw $21,0($2) # Te3[s0] + ins $2,$9,2,8 + lw $22,0($24) # Te3[s1] + ins $24,$10,2,8 + lw $23,0($25) # Te3[s2] + ins $25,$11,2,8 +# else + lw $16,0($1) # Te2[s2>>8] + ins $1,$11,2,8 + lw $17,0($2) # Te2[s3>>8] + ins $2,$8,2,8 + lw $18,0($24) # Te2[s0>>8] + ins $24,$9,2,8 + lw $19,0($25) # Te2[s1>>8] + ins $25,$10,2,8 + + lw $20,0($1) # Te3[s3] + srl $1,$8,22 + lw $21,0($2) # Te3[s0] + srl $2,$9,22 + lw $22,0($24) # Te3[s1] + srl $24,$10,22 + lw $23,0($25) # Te3[s2] + srl $25,$11,22 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +# endif + rotr $16,$16,16 + rotr $17,$17,16 + rotr $18,$18,16 + rotr $19,$19,16 + + rotr $20,$20,24 + rotr $21,$21,24 + rotr $22,$22,24 + rotr $23,$23,24 +#else + lwl $16,2($1) # Te2[s2>>8] + lwl $17,2($2) # Te2[s3>>8] + lwl $18,2($24) # Te2[s0>>8] + lwl $19,2($25) # Te2[s1>>8] + lwr $16,1($1) # Te2[s2>>8] + sll $1,$11,2 + lwr $17,1($2) # Te2[s3>>8] + sll $2,$8,2 + lwr $18,1($24) # Te2[s0>>8] + sll $24,$9,2 + lwr $19,1($25) # Te2[s1>>8] + sll $25,$10,2 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lwl $20,1($1) # Te3[s3] + lwl $21,1($2) # Te3[s0] + lwl $22,1($24) # Te3[s1] + lwl $23,1($25) # Te3[s2] + lwr $20,0($1) # Te3[s3] + srl $1,$8,22 + lwr $21,0($2) # Te3[s0] + srl $2,$9,22 + lwr $22,0($24) # Te3[s1] + srl $24,$10,22 + lwr $23,0($25) # Te3[s2] + srl $25,$11,22 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +#endif + xor $12,$16 + lw $16,0($1) # Te0[s0>>24] + xor $13,$17 + lw $17,0($2) # Te0[s1>>24] + xor $14,$18 + lw $18,0($24) # Te0[s2>>24] + xor $15,$19 + lw $19,0($25) # Te0[s3>>24] + + xor $12,$20 + lw $8,0($3) + xor $13,$21 + lw $9,4($3) + xor $14,$22 + lw $10,8($3) + xor $15,$23 + lw $11,12($3) + + xor $12,$16 + xor $13,$17 + xor $14,$18 + xor $15,$19 + + subu $30,1 + addu $3,16 + xor $8,$12 + xor $9,$13 + xor $10,$14 + xor $11,$15 + .set noreorder + bnez $30,.Loop_enc + srl $1,$9,14 +#endif + + .set reorder + srl $2,$10,14 + srl $24,$11,14 + srl $25,$8,14 + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $12,2($1) # Te4[s1>>16] + srl $1,$10,6 + lbu $13,2($2) # Te4[s2>>16] + srl $2,$11,6 + lbu $14,2($24) # Te4[s3>>16] + srl $24,$8,6 + lbu $15,2($25) # Te4[s0>>16] + srl $25,$9,6 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) +# if defined(_MIPSEL) + lbu $16,2($1) # Te4[s2>>8] + ins $1,$8,2,8 + lbu $17,2($2) # Te4[s3>>8] + ins $2,$9,2,8 + lbu $18,2($24) # Te4[s0>>8] + ins $24,$10,2,8 + lbu $19,2($25) # Te4[s1>>8] + ins $25,$11,2,8 + + lbu $20,2($1) # Te4[s0>>24] + sll $1,$11,2 + lbu $21,2($2) # Te4[s1>>24] + sll $2,$8,2 + lbu $22,2($24) # Te4[s2>>24] + sll $24,$9,2 + lbu $23,2($25) # Te4[s3>>24] + sll $25,$10,2 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +# else + lbu $16,2($1) # Te4[s2>>8] + srl $1,$8,22 + lbu $17,2($2) # Te4[s3>>8] + srl $2,$9,22 + lbu $18,2($24) # Te4[s0>>8] + srl $24,$10,22 + lbu $19,2($25) # Te4[s1>>8] + srl $25,$11,22 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $20,2($1) # Te4[s0>>24] + ins $1,$11,2,8 + lbu $21,2($2) # Te4[s1>>24] + ins $2,$8,2,8 + lbu $22,2($24) # Te4[s2>>24] + ins $24,$9,2,8 + lbu $23,2($25) # Te4[s3>>24] + ins $25,$10,2,8 +# endif + sll $12,$12,16 + sll $13,$13,16 + sll $14,$14,16 + sll $15,$15,16 + + ins $12,$16,8,8 + lbu $16,2($1) # Te4[s3] + ins $13,$17,8,8 + lbu $17,2($2) # Te4[s0] + ins $14,$18,8,8 + lbu $18,2($24) # Te4[s1] + ins $15,$19,8,8 + lbu $19,2($25) # Te4[s2] + + ins $12,$20,24,8 + lw $8,0($3) + ins $13,$21,24,8 + lw $9,4($3) + ins $14,$22,24,8 + lw $10,8($3) + ins $15,$23,24,8 + lw $11,12($3) + + ins $12,$16,0,8 + ins $13,$17,0,8 + ins $14,$18,0,8 + ins $15,$19,0,8 +#else + lbu $16,2($1) # Te4[s2>>8] + srl $1,$8,22 + lbu $17,2($2) # Te4[s3>>8] + srl $2,$9,22 + lbu $18,2($24) # Te4[s0>>8] + srl $24,$10,22 + lbu $19,2($25) # Te4[s1>>8] + srl $25,$11,22 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $20,2($1) # Te4[s0>>24] + sll $1,$11,2 + lbu $21,2($2) # Te4[s1>>24] + sll $2,$8,2 + lbu $22,2($24) # Te4[s2>>24] + sll $24,$9,2 + lbu $23,2($25) # Te4[s3>>24] + sll $25,$10,2 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + + sll $12,$12,16 + sll $13,$13,16 + sll $14,$14,16 + sll $15,$15,16 + + sll $16,$16,8 + sll $17,$17,8 + sll $18,$18,8 + sll $19,$19,8 + + xor $12,$16 + lbu $16,2($1) # Te4[s3] + xor $13,$17 + lbu $17,2($2) # Te4[s0] + xor $14,$18 + lbu $18,2($24) # Te4[s1] + xor $15,$19 + lbu $19,2($25) # Te4[s2] + + sll $20,$20,24 + lw $8,0($3) + sll $21,$21,24 + lw $9,4($3) + sll $22,$22,24 + lw $10,8($3) + sll $23,$23,24 + lw $11,12($3) + + xor $12,$20 + xor $13,$21 + xor $14,$22 + xor $15,$23 + + #sll $16,$16,0 + #sll $17,$17,0 + #sll $18,$18,0 + #sll $19,$19,0 + + xor $12,$16 + xor $13,$17 + xor $14,$18 + xor $15,$19 +#endif + xor $8,$12 + xor $9,$13 + xor $10,$14 + xor $11,$15 + + jr $31 +.end _mips_AES_encrypt + +.align 5 +.globl AES_encrypt +.ent AES_encrypt +AES_encrypt: + .frame $29,64,$31 + .mask 0xc0ff0000,-4 + .set noreorder + .cpload $25 + subu $29,64 + sw $31,64-1*4($29) + sw $30,64-2*4($29) + sw $23,64-3*4($29) + sw $22,64-4*4($29) + sw $21,64-5*4($29) + sw $20,64-6*4($29) + sw $19,64-7*4($29) + sw $18,64-8*4($29) + sw $17,64-9*4($29) + sw $16,64-10*4($29) + .set reorder + la $7,AES_Te # PIC-ified 'load address' + +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $8,0($4) + lw $9,4($4) + lw $10,8($4) + lw $11,12($4) +#else + lwl $8,0+0($4) + lwl $9,4+0($4) + lwl $10,8+0($4) + lwl $11,12+0($4) + lwr $8,0+3($4) + lwr $9,4+3($4) + lwr $10,8+3($4) + lwr $11,12+3($4) +#endif + + bal _mips_AES_encrypt + +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + sw $8,0($5) + sw $9,4($5) + sw $10,8($5) + sw $11,12($5) +#else + swr $8,0+3($5) + swr $9,4+3($5) + swr $10,8+3($5) + swr $11,12+3($5) + swl $8,0+0($5) + swl $9,4+0($5) + swl $10,8+0($5) + swl $11,12+0($5) +#endif + + .set noreorder + lw $31,64-1*4($29) + lw $30,64-2*4($29) + lw $23,64-3*4($29) + lw $22,64-4*4($29) + lw $21,64-5*4($29) + lw $20,64-6*4($29) + lw $19,64-7*4($29) + lw $18,64-8*4($29) + lw $17,64-9*4($29) + lw $16,64-10*4($29) + jr $31 + addu $29,64 +.end AES_encrypt +.align 5 +.ent _mips_AES_decrypt +_mips_AES_decrypt: + .frame $29,0,$31 + .set reorder + lw $12,0($6) + lw $13,4($6) + lw $14,8($6) + lw $15,12($6) + lw $30,240($6) + addu $3,$6,16 + + xor $8,$12 + xor $9,$13 + xor $10,$14 + xor $11,$15 + + subu $30,1 +#if defined(__mips_smartmips) + ext $1,$11,16,8 +.Loop_dec: + ext $2,$8,16,8 + ext $24,$9,16,8 + ext $25,$10,16,8 + lwxs $12,$1($7) # Td1[s3>>16] + ext $1,$10,8,8 + lwxs $13,$2($7) # Td1[s0>>16] + ext $2,$11,8,8 + lwxs $14,$24($7) # Td1[s1>>16] + ext $24,$8,8,8 + lwxs $15,$25($7) # Td1[s2>>16] + ext $25,$9,8,8 + + lwxs $16,$1($7) # Td2[s2>>8] + ext $1,$9,0,8 + lwxs $17,$2($7) # Td2[s3>>8] + ext $2,$10,0,8 + lwxs $18,$24($7) # Td2[s0>>8] + ext $24,$11,0,8 + lwxs $19,$25($7) # Td2[s1>>8] + ext $25,$8,0,8 + + lwxs $20,$1($7) # Td3[s1] + ext $1,$8,24,8 + lwxs $21,$2($7) # Td3[s2] + ext $2,$9,24,8 + lwxs $22,$24($7) # Td3[s3] + ext $24,$10,24,8 + lwxs $23,$25($7) # Td3[s0] + ext $25,$11,24,8 + + rotr $12,$12,8 + rotr $13,$13,8 + rotr $14,$14,8 + rotr $15,$15,8 + + rotr $16,$16,16 + rotr $17,$17,16 + rotr $18,$18,16 + rotr $19,$19,16 + + xor $12,$16 + lwxs $16,$1($7) # Td0[s0>>24] + xor $13,$17 + lwxs $17,$2($7) # Td0[s1>>24] + xor $14,$18 + lwxs $18,$24($7) # Td0[s2>>24] + xor $15,$19 + lwxs $19,$25($7) # Td0[s3>>24] + + rotr $20,$20,24 + lw $8,0($3) + rotr $21,$21,24 + lw $9,4($3) + rotr $22,$22,24 + lw $10,8($3) + rotr $23,$23,24 + lw $11,12($3) + + xor $12,$20 + xor $13,$21 + xor $14,$22 + xor $15,$23 + + xor $12,$16 + xor $13,$17 + xor $14,$18 + xor $15,$19 + + subu $30,1 + addu $3,16 + xor $8,$12 + xor $9,$13 + xor $10,$14 + xor $11,$15 + .set noreorder + bnez $30,.Loop_dec + ext $1,$11,16,8 + + srl $1,$11,14 +#else + srl $1,$11,14 +.Loop_dec: + srl $2,$8,14 + srl $24,$9,14 + srl $25,$10,14 + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + lw $12,0($1) # Td1[s3>>16] + srl $1,$10,6 + lw $13,0($2) # Td1[s0>>16] + srl $2,$11,6 + lw $14,0($24) # Td1[s1>>16] + srl $24,$8,6 + lw $15,0($25) # Td1[s2>>16] + srl $25,$9,6 +#else + lwl $12,3($1) # Td1[s3>>16] + lwl $13,3($2) # Td1[s0>>16] + lwl $14,3($24) # Td1[s1>>16] + lwl $15,3($25) # Td1[s2>>16] + lwr $12,2($1) # Td1[s3>>16] + srl $1,$10,6 + lwr $13,2($2) # Td1[s0>>16] + srl $2,$11,6 + lwr $14,2($24) # Td1[s1>>16] + srl $24,$8,6 + lwr $15,2($25) # Td1[s2>>16] + srl $25,$9,6 +#endif + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + rotr $12,$12,8 + rotr $13,$13,8 + rotr $14,$14,8 + rotr $15,$15,8 +# if defined(_MIPSEL) + lw $16,0($1) # Td2[s2>>8] + sll $1,$9,2 + lw $17,0($2) # Td2[s3>>8] + sll $2,$10,2 + lw $18,0($24) # Td2[s0>>8] + sll $24,$11,2 + lw $19,0($25) # Td2[s1>>8] + sll $25,$8,2 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lw $20,0($1) # Td3[s1] + ins $1,$8,2,8 + lw $21,0($2) # Td3[s2] + ins $2,$9,2,8 + lw $22,0($24) # Td3[s3] + ins $24,$10,2,8 + lw $23,0($25) # Td3[s0] + ins $25,$11,2,8 +#else + lw $16,0($1) # Td2[s2>>8] + ins $1,$9,2,8 + lw $17,0($2) # Td2[s3>>8] + ins $2,$10,2,8 + lw $18,0($24) # Td2[s0>>8] + ins $24,$11,2,8 + lw $19,0($25) # Td2[s1>>8] + ins $25,$8,2,8 + + lw $20,0($1) # Td3[s1] + srl $1,$8,22 + lw $21,0($2) # Td3[s2] + srl $2,$9,22 + lw $22,0($24) # Td3[s3] + srl $24,$10,22 + lw $23,0($25) # Td3[s0] + srl $25,$11,22 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +#endif + rotr $16,$16,16 + rotr $17,$17,16 + rotr $18,$18,16 + rotr $19,$19,16 + + rotr $20,$20,24 + rotr $21,$21,24 + rotr $22,$22,24 + rotr $23,$23,24 +#else + lwl $16,2($1) # Td2[s2>>8] + lwl $17,2($2) # Td2[s3>>8] + lwl $18,2($24) # Td2[s0>>8] + lwl $19,2($25) # Td2[s1>>8] + lwr $16,1($1) # Td2[s2>>8] + sll $1,$9,2 + lwr $17,1($2) # Td2[s3>>8] + sll $2,$10,2 + lwr $18,1($24) # Td2[s0>>8] + sll $24,$11,2 + lwr $19,1($25) # Td2[s1>>8] + sll $25,$8,2 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lwl $20,1($1) # Td3[s1] + lwl $21,1($2) # Td3[s2] + lwl $22,1($24) # Td3[s3] + lwl $23,1($25) # Td3[s0] + lwr $20,0($1) # Td3[s1] + srl $1,$8,22 + lwr $21,0($2) # Td3[s2] + srl $2,$9,22 + lwr $22,0($24) # Td3[s3] + srl $24,$10,22 + lwr $23,0($25) # Td3[s0] + srl $25,$11,22 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +#endif + + xor $12,$16 + lw $16,0($1) # Td0[s0>>24] + xor $13,$17 + lw $17,0($2) # Td0[s1>>24] + xor $14,$18 + lw $18,0($24) # Td0[s2>>24] + xor $15,$19 + lw $19,0($25) # Td0[s3>>24] + + xor $12,$20 + lw $8,0($3) + xor $13,$21 + lw $9,4($3) + xor $14,$22 + lw $10,8($3) + xor $15,$23 + lw $11,12($3) + + xor $12,$16 + xor $13,$17 + xor $14,$18 + xor $15,$19 + + subu $30,1 + addu $3,16 + xor $8,$12 + xor $9,$13 + xor $10,$14 + xor $11,$15 + .set noreorder + bnez $30,.Loop_dec + srl $1,$11,14 +#endif + + .set reorder + lw $16,1024($7) # prefetch Td4 + srl $1,$11,16 + lw $17,1024+32($7) + srl $2,$8,16 + lw $18,1024+64($7) + srl $24,$9,16 + lw $19,1024+96($7) + srl $25,$10,16 + lw $20,1024+128($7) + and $1,0xff + lw $21,1024+160($7) + and $2,0xff + lw $22,1024+192($7) + and $24,0xff + lw $23,1024+224($7) + and $25,0xff + + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $12,1024($1) # Td4[s3>>16] + srl $1,$10,8 + lbu $13,1024($2) # Td4[s0>>16] + srl $2,$11,8 + lbu $14,1024($24) # Td4[s1>>16] + srl $24,$8,8 + lbu $15,1024($25) # Td4[s2>>16] + srl $25,$9,8 + + and $1,0xff + and $2,0xff + and $24,0xff + and $25,0xff + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) +# if defined(_MIPSEL) + lbu $16,1024($1) # Td4[s2>>8] + ins $1,$8,0,8 + lbu $17,1024($2) # Td4[s3>>8] + ins $2,$9,0,8 + lbu $18,1024($24) # Td4[s0>>8] + ins $24,$10,0,8 + lbu $19,1024($25) # Td4[s1>>8] + ins $25,$11,0,8 + + lbu $20,1024($1) # Td4[s0>>24] + and $1,$9,0xff + lbu $21,1024($2) # Td4[s1>>24] + and $2,$10,0xff + lbu $22,1024($24) # Td4[s2>>24] + and $24,$11,0xff + lbu $23,1024($25) # Td4[s3>>24] + and $25,$8,0xff + + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +# else + lbu $16,1024($1) # Td4[s2>>8] + srl $1,$8,24 + lbu $17,1024($2) # Td4[s3>>8] + srl $2,$9,24 + lbu $18,1024($24) # Td4[s0>>8] + srl $24,$10,24 + lbu $19,1024($25) # Td4[s1>>8] + srl $25,$11,24 + + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $20,1024($1) # Td4[s0>>24] + ins $1,$9,0,8 + lbu $21,1024($2) # Td4[s1>>24] + ins $2,$10,0,8 + lbu $22,1024($24) # Td4[s2>>24] + ins $24,$11,0,8 + lbu $23,1024($25) # Td4[s3>>24] + ins $25,$8,0,8 +# endif + sll $12,$12,16 + sll $13,$13,16 + sll $14,$14,16 + sll $15,$15,16 + + ins $12,$16,8,8 + lbu $16,1024($1) # Td4[s1] + ins $13,$17,8,8 + lbu $17,1024($2) # Td4[s2] + ins $14,$18,8,8 + lbu $18,1024($24) # Td4[s3] + ins $15,$19,8,8 + lbu $19,1024($25) # Td4[s0] + + ins $12,$20,24,8 + lw $8,0($3) + ins $13,$21,24,8 + lw $9,4($3) + ins $14,$22,24,8 + lw $10,8($3) + ins $15,$23,24,8 + lw $11,12($3) + + ins $12,$16,0,8 + ins $13,$17,0,8 + ins $14,$18,0,8 + ins $15,$19,0,8 +#else + lbu $16,1024($1) # Td4[s2>>8] + srl $1,$8,24 + lbu $17,1024($2) # Td4[s3>>8] + srl $2,$9,24 + lbu $18,1024($24) # Td4[s0>>8] + srl $24,$10,24 + lbu $19,1024($25) # Td4[s1>>8] + srl $25,$11,24 + + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $20,1024($1) # Td4[s0>>24] + and $1,$9,0xff + lbu $21,1024($2) # Td4[s1>>24] + and $2,$10,0xff + lbu $22,1024($24) # Td4[s2>>24] + and $24,$11,0xff + lbu $23,1024($25) # Td4[s3>>24] + and $25,$8,0xff + + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + + sll $12,$12,16 + sll $13,$13,16 + sll $14,$14,16 + sll $15,$15,16 + + sll $16,$16,8 + sll $17,$17,8 + sll $18,$18,8 + sll $19,$19,8 + + xor $12,$16 + lbu $16,1024($1) # Td4[s1] + xor $13,$17 + lbu $17,1024($2) # Td4[s2] + xor $14,$18 + lbu $18,1024($24) # Td4[s3] + xor $15,$19 + lbu $19,1024($25) # Td4[s0] + + sll $20,$20,24 + lw $8,0($3) + sll $21,$21,24 + lw $9,4($3) + sll $22,$22,24 + lw $10,8($3) + sll $23,$23,24 + lw $11,12($3) + + xor $12,$20 + xor $13,$21 + xor $14,$22 + xor $15,$23 + + #sll $16,$16,0 + #sll $17,$17,0 + #sll $18,$18,0 + #sll $19,$19,0 + + xor $12,$16 + xor $13,$17 + xor $14,$18 + xor $15,$19 +#endif + + xor $8,$12 + xor $9,$13 + xor $10,$14 + xor $11,$15 + + jr $31 +.end _mips_AES_decrypt + +.align 5 +.globl AES_decrypt +.ent AES_decrypt +AES_decrypt: + .frame $29,64,$31 + .mask 0xc0ff0000,-4 + .set noreorder + .cpload $25 + subu $29,64 + sw $31,64-1*4($29) + sw $30,64-2*4($29) + sw $23,64-3*4($29) + sw $22,64-4*4($29) + sw $21,64-5*4($29) + sw $20,64-6*4($29) + sw $19,64-7*4($29) + sw $18,64-8*4($29) + sw $17,64-9*4($29) + sw $16,64-10*4($29) + .set reorder + la $7,AES_Td # PIC-ified 'load address' + +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $8,0($4) + lw $9,4($4) + lw $10,8($4) + lw $11,12($4) +#else + lwl $8,0+0($4) + lwl $9,4+0($4) + lwl $10,8+0($4) + lwl $11,12+0($4) + lwr $8,0+3($4) + lwr $9,4+3($4) + lwr $10,8+3($4) + lwr $11,12+3($4) +#endif + + bal _mips_AES_decrypt + +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + sw $8,0($5) + sw $9,4($5) + sw $10,8($5) + sw $11,12($5) +#else + swr $8,0+3($5) + swr $9,4+3($5) + swr $10,8+3($5) + swr $11,12+3($5) + swl $8,0+0($5) + swl $9,4+0($5) + swl $10,8+0($5) + swl $11,12+0($5) +#endif + + .set noreorder + lw $31,64-1*4($29) + lw $30,64-2*4($29) + lw $23,64-3*4($29) + lw $22,64-4*4($29) + lw $21,64-5*4($29) + lw $20,64-6*4($29) + lw $19,64-7*4($29) + lw $18,64-8*4($29) + lw $17,64-9*4($29) + lw $16,64-10*4($29) + jr $31 + addu $29,64 +.end AES_decrypt +.align 5 +.ent _mips_AES_set_encrypt_key +_mips_AES_set_encrypt_key: + .frame $29,0,$31 + .set noreorder + beqz $4,.Lekey_done + li $2,-1 + beqz $6,.Lekey_done + addu $3,$7,256 + + .set reorder +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $8,0($4) # load 128 bits + lw $9,4($4) + lw $10,8($4) + lw $11,12($4) +#else + lwl $8,0+0($4) # load 128 bits + lwl $9,4+0($4) + lwl $10,8+0($4) + lwl $11,12+0($4) + lwr $8,0+3($4) + lwr $9,4+3($4) + lwr $10,8+3($4) + lwr $11,12+3($4) +#endif + li $1,128 + .set noreorder + beq $5,$1,.L128bits + li $30,10 + + .set reorder +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $12,16($4) # load 192 bits + lw $13,20($4) +#else + lwl $12,16+0($4) # load 192 bits + lwl $13,20+0($4) + lwr $12,16+3($4) + lwr $13,20+3($4) +#endif + li $1,192 + .set noreorder + beq $5,$1,.L192bits + li $30,8 + + .set reorder +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $14,24($4) # load 256 bits + lw $15,28($4) +#else + lwl $14,24+0($4) # load 256 bits + lwl $15,28+0($4) + lwr $14,24+3($4) + lwr $15,28+3($4) +#endif + li $1,256 + .set noreorder + beq $5,$1,.L256bits + li $30,7 + + b .Lekey_done + li $2,-2 + +.align 4 +.L128bits: + .set reorder + srl $1,$11,16 + srl $2,$11,8 + and $1,0xff + and $2,0xff + and $24,$11,0xff + srl $25,$11,24 + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $1,0($1) + lbu $2,0($2) + lbu $24,0($24) + lbu $25,0($25) + + sw $8,0($6) + sw $9,4($6) + sw $10,8($6) + sw $11,12($6) + subu $30,1 + addu $6,16 + + sll $1,$1,24 + sll $2,$2,16 + sll $24,$24,8 + #sll $25,$25,0 + + xor $8,$1 + lw $1,0($3) + xor $8,$2 + xor $8,$24 + xor $8,$25 + xor $8,$1 + + xor $9,$8 + xor $10,$9 + xor $11,$10 + + .set noreorder + bnez $30,.L128bits + addu $3,4 + + sw $8,0($6) + sw $9,4($6) + sw $10,8($6) + li $30,10 + sw $11,12($6) + li $2,0 + sw $30,80($6) + b .Lekey_done + subu $6,10*16 + +.align 4 +.L192bits: + .set reorder + srl $1,$13,16 + srl $2,$13,8 + and $1,0xff + and $2,0xff + and $24,$13,0xff + srl $25,$13,24 + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $1,0($1) + lbu $2,0($2) + lbu $24,0($24) + lbu $25,0($25) + + sw $8,0($6) + sw $9,4($6) + sw $10,8($6) + sw $11,12($6) + sw $12,16($6) + sw $13,20($6) + subu $30,1 + addu $6,24 + + sll $1,$1,24 + sll $2,$2,16 + sll $24,$24,8 + #sll $25,$25,0 + + xor $8,$1 + lw $1,0($3) + xor $8,$2 + xor $8,$24 + xor $8,$25 + xor $8,$1 + + xor $9,$8 + xor $10,$9 + xor $11,$10 + xor $12,$11 + xor $13,$12 + + .set noreorder + bnez $30,.L192bits + addu $3,4 + + sw $8,0($6) + sw $9,4($6) + sw $10,8($6) + li $30,12 + sw $11,12($6) + li $2,0 + sw $30,48($6) + b .Lekey_done + subu $6,12*16 + +.align 4 +.L256bits: + .set reorder + srl $1,$15,16 + srl $2,$15,8 + and $1,0xff + and $2,0xff + and $24,$15,0xff + srl $25,$15,24 + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $1,0($1) + lbu $2,0($2) + lbu $24,0($24) + lbu $25,0($25) + + sw $8,0($6) + sw $9,4($6) + sw $10,8($6) + sw $11,12($6) + sw $12,16($6) + sw $13,20($6) + sw $14,24($6) + sw $15,28($6) + subu $30,1 + + sll $1,$1,24 + sll $2,$2,16 + sll $24,$24,8 + #sll $25,$25,0 + + xor $8,$1 + lw $1,0($3) + xor $8,$2 + xor $8,$24 + xor $8,$25 + xor $8,$1 + + xor $9,$8 + xor $10,$9 + xor $11,$10 + beqz $30,.L256bits_done + + srl $1,$11,24 + srl $2,$11,16 + srl $24,$11,8 + and $25,$11,0xff + and $2,0xff + and $24,0xff + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $1,0($1) + lbu $2,0($2) + lbu $24,0($24) + lbu $25,0($25) + sll $1,24 + sll $2,16 + sll $24,8 + + xor $12,$1 + xor $12,$2 + xor $12,$24 + xor $12,$25 + + xor $13,$12 + xor $14,$13 + xor $15,$14 + + addu $6,32 + .set noreorder + b .L256bits + addu $3,4 + +.L256bits_done: + sw $8,32($6) + sw $9,36($6) + sw $10,40($6) + li $30,14 + sw $11,44($6) + li $2,0 + sw $30,48($6) + subu $6,12*16 + +.Lekey_done: + jr $31 + nop +.end _mips_AES_set_encrypt_key + +.globl AES_set_encrypt_key +.ent AES_set_encrypt_key +AES_set_encrypt_key: + .frame $29,32,$31 + .mask 0xc0000000,-4 + .set noreorder + .cpload $25 + subu $29,32 + sw $31,32-1*4($29) + sw $30,32-2*4($29) + .set reorder + la $7,AES_Te4 # PIC-ified 'load address' + + bal _mips_AES_set_encrypt_key + + .set noreorder + move $4,$2 + lw $31,32-1*4($29) + lw $30,32-2*4($29) + jr $31 + addu $29,32 +.end AES_set_encrypt_key +.align 5 +.globl AES_set_decrypt_key +.ent AES_set_decrypt_key +AES_set_decrypt_key: + .frame $29,32,$31 + .mask 0xc0000000,-4 + .set noreorder + .cpload $25 + subu $29,32 + sw $31,32-1*4($29) + sw $30,32-2*4($29) + .set reorder + la $7,AES_Te4 # PIC-ified 'load address' + + bal _mips_AES_set_encrypt_key + + bltz $2,.Ldkey_done + + sll $1,$30,4 + addu $4,$6,0 + addu $5,$6,$1 +.align 4 +.Lswap: + lw $8,0($4) + lw $9,4($4) + lw $10,8($4) + lw $11,12($4) + lw $12,0($5) + lw $13,4($5) + lw $14,8($5) + lw $15,12($5) + sw $8,0($5) + sw $9,4($5) + sw $10,8($5) + sw $11,12($5) + addu $4,16 + subu $5,16 + sw $12,-16($4) + sw $13,-12($4) + sw $14,-8($4) + sw $15,-4($4) + bne $4,$5,.Lswap + + lw $8,16($6) # modulo-scheduled + lui $2,0x8080 + subu $30,1 + or $2,0x8080 + sll $30,2 + addu $6,16 + lui $25,0x1b1b + nor $24,$0,$2 + or $25,0x1b1b +.align 4 +.Lmix: + and $1,$8,$2 + and $9,$8,$24 + srl $10,$1,7 + addu $9,$9 # tp2<<1 + subu $1,$10 + and $1,$25 + xor $9,$1 + + and $1,$9,$2 + and $10,$9,$24 + srl $11,$1,7 + addu $10,$10 # tp4<<1 + subu $1,$11 + and $1,$25 + xor $10,$1 + + and $1,$10,$2 + and $11,$10,$24 + srl $12,$1,7 + addu $11,$11 # tp8<<1 + subu $1,$12 + and $1,$25 + xor $11,$1 + + xor $12,$11,$8 + xor $15,$11,$10 + xor $13,$12,$9 + xor $14,$12,$10 + +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + rotr $8,$14,16 + xor $15,$9 + rotr $9,$12,8 + xor $15,$8 + rotr $10,$13,24 + xor $15,$9 + lw $8,4($6) # modulo-scheduled + xor $15,$10 +#else + srl $8,$14,16 + xor $15,$9 + sll $9,$14,16 + xor $15,$8 + srl $8,$12,8 + xor $15,$9 + sll $9,$12,24 + xor $15,$8 + srl $8,$13,24 + xor $15,$9 + sll $9,$13,8 + xor $15,$8 + lw $8,4($6) # modulo-scheduled + xor $15,$9 +#endif + subu $30,1 + sw $15,0($6) + addu $6,4 + bnez $30,.Lmix + + li $2,0 +.Ldkey_done: + .set noreorder + move $4,$2 + lw $31,32-1*4($29) + lw $30,32-2*4($29) + jr $31 + addu $29,32 +.end AES_set_decrypt_key +.rdata +.align 10 +AES_Te: +.byte 0xc6,0x63,0x63,0xa5, 0xf8,0x7c,0x7c,0x84 # Te0 +.byte 0xee,0x77,0x77,0x99, 0xf6,0x7b,0x7b,0x8d +.byte 0xff,0xf2,0xf2,0x0d, 0xd6,0x6b,0x6b,0xbd +.byte 0xde,0x6f,0x6f,0xb1, 0x91,0xc5,0xc5,0x54 +.byte 0x60,0x30,0x30,0x50, 0x02,0x01,0x01,0x03 +.byte 0xce,0x67,0x67,0xa9, 0x56,0x2b,0x2b,0x7d +.byte 0xe7,0xfe,0xfe,0x19, 0xb5,0xd7,0xd7,0x62 +.byte 0x4d,0xab,0xab,0xe6, 0xec,0x76,0x76,0x9a +.byte 0x8f,0xca,0xca,0x45, 0x1f,0x82,0x82,0x9d +.byte 0x89,0xc9,0xc9,0x40, 0xfa,0x7d,0x7d,0x87 +.byte 0xef,0xfa,0xfa,0x15, 0xb2,0x59,0x59,0xeb +.byte 0x8e,0x47,0x47,0xc9, 0xfb,0xf0,0xf0,0x0b +.byte 0x41,0xad,0xad,0xec, 0xb3,0xd4,0xd4,0x67 +.byte 0x5f,0xa2,0xa2,0xfd, 0x45,0xaf,0xaf,0xea +.byte 0x23,0x9c,0x9c,0xbf, 0x53,0xa4,0xa4,0xf7 +.byte 0xe4,0x72,0x72,0x96, 0x9b,0xc0,0xc0,0x5b +.byte 0x75,0xb7,0xb7,0xc2, 0xe1,0xfd,0xfd,0x1c +.byte 0x3d,0x93,0x93,0xae, 0x4c,0x26,0x26,0x6a +.byte 0x6c,0x36,0x36,0x5a, 0x7e,0x3f,0x3f,0x41 +.byte 0xf5,0xf7,0xf7,0x02, 0x83,0xcc,0xcc,0x4f +.byte 0x68,0x34,0x34,0x5c, 0x51,0xa5,0xa5,0xf4 +.byte 0xd1,0xe5,0xe5,0x34, 0xf9,0xf1,0xf1,0x08 +.byte 0xe2,0x71,0x71,0x93, 0xab,0xd8,0xd8,0x73 +.byte 0x62,0x31,0x31,0x53, 0x2a,0x15,0x15,0x3f +.byte 0x08,0x04,0x04,0x0c, 0x95,0xc7,0xc7,0x52 +.byte 0x46,0x23,0x23,0x65, 0x9d,0xc3,0xc3,0x5e +.byte 0x30,0x18,0x18,0x28, 0x37,0x96,0x96,0xa1 +.byte 0x0a,0x05,0x05,0x0f, 0x2f,0x9a,0x9a,0xb5 +.byte 0x0e,0x07,0x07,0x09, 0x24,0x12,0x12,0x36 +.byte 0x1b,0x80,0x80,0x9b, 0xdf,0xe2,0xe2,0x3d +.byte 0xcd,0xeb,0xeb,0x26, 0x4e,0x27,0x27,0x69 +.byte 0x7f,0xb2,0xb2,0xcd, 0xea,0x75,0x75,0x9f +.byte 0x12,0x09,0x09,0x1b, 0x1d,0x83,0x83,0x9e +.byte 0x58,0x2c,0x2c,0x74, 0x34,0x1a,0x1a,0x2e +.byte 0x36,0x1b,0x1b,0x2d, 0xdc,0x6e,0x6e,0xb2 +.byte 0xb4,0x5a,0x5a,0xee, 0x5b,0xa0,0xa0,0xfb +.byte 0xa4,0x52,0x52,0xf6, 0x76,0x3b,0x3b,0x4d +.byte 0xb7,0xd6,0xd6,0x61, 0x7d,0xb3,0xb3,0xce +.byte 0x52,0x29,0x29,0x7b, 0xdd,0xe3,0xe3,0x3e +.byte 0x5e,0x2f,0x2f,0x71, 0x13,0x84,0x84,0x97 +.byte 0xa6,0x53,0x53,0xf5, 0xb9,0xd1,0xd1,0x68 +.byte 0x00,0x00,0x00,0x00, 0xc1,0xed,0xed,0x2c +.byte 0x40,0x20,0x20,0x60, 0xe3,0xfc,0xfc,0x1f +.byte 0x79,0xb1,0xb1,0xc8, 0xb6,0x5b,0x5b,0xed +.byte 0xd4,0x6a,0x6a,0xbe, 0x8d,0xcb,0xcb,0x46 +.byte 0x67,0xbe,0xbe,0xd9, 0x72,0x39,0x39,0x4b +.byte 0x94,0x4a,0x4a,0xde, 0x98,0x4c,0x4c,0xd4 +.byte 0xb0,0x58,0x58,0xe8, 0x85,0xcf,0xcf,0x4a +.byte 0xbb,0xd0,0xd0,0x6b, 0xc5,0xef,0xef,0x2a +.byte 0x4f,0xaa,0xaa,0xe5, 0xed,0xfb,0xfb,0x16 +.byte 0x86,0x43,0x43,0xc5, 0x9a,0x4d,0x4d,0xd7 +.byte 0x66,0x33,0x33,0x55, 0x11,0x85,0x85,0x94 +.byte 0x8a,0x45,0x45,0xcf, 0xe9,0xf9,0xf9,0x10 +.byte 0x04,0x02,0x02,0x06, 0xfe,0x7f,0x7f,0x81 +.byte 0xa0,0x50,0x50,0xf0, 0x78,0x3c,0x3c,0x44 +.byte 0x25,0x9f,0x9f,0xba, 0x4b,0xa8,0xa8,0xe3 +.byte 0xa2,0x51,0x51,0xf3, 0x5d,0xa3,0xa3,0xfe +.byte 0x80,0x40,0x40,0xc0, 0x05,0x8f,0x8f,0x8a +.byte 0x3f,0x92,0x92,0xad, 0x21,0x9d,0x9d,0xbc +.byte 0x70,0x38,0x38,0x48, 0xf1,0xf5,0xf5,0x04 +.byte 0x63,0xbc,0xbc,0xdf, 0x77,0xb6,0xb6,0xc1 +.byte 0xaf,0xda,0xda,0x75, 0x42,0x21,0x21,0x63 +.byte 0x20,0x10,0x10,0x30, 0xe5,0xff,0xff,0x1a +.byte 0xfd,0xf3,0xf3,0x0e, 0xbf,0xd2,0xd2,0x6d +.byte 0x81,0xcd,0xcd,0x4c, 0x18,0x0c,0x0c,0x14 +.byte 0x26,0x13,0x13,0x35, 0xc3,0xec,0xec,0x2f +.byte 0xbe,0x5f,0x5f,0xe1, 0x35,0x97,0x97,0xa2 +.byte 0x88,0x44,0x44,0xcc, 0x2e,0x17,0x17,0x39 +.byte 0x93,0xc4,0xc4,0x57, 0x55,0xa7,0xa7,0xf2 +.byte 0xfc,0x7e,0x7e,0x82, 0x7a,0x3d,0x3d,0x47 +.byte 0xc8,0x64,0x64,0xac, 0xba,0x5d,0x5d,0xe7 +.byte 0x32,0x19,0x19,0x2b, 0xe6,0x73,0x73,0x95 +.byte 0xc0,0x60,0x60,0xa0, 0x19,0x81,0x81,0x98 +.byte 0x9e,0x4f,0x4f,0xd1, 0xa3,0xdc,0xdc,0x7f +.byte 0x44,0x22,0x22,0x66, 0x54,0x2a,0x2a,0x7e +.byte 0x3b,0x90,0x90,0xab, 0x0b,0x88,0x88,0x83 +.byte 0x8c,0x46,0x46,0xca, 0xc7,0xee,0xee,0x29 +.byte 0x6b,0xb8,0xb8,0xd3, 0x28,0x14,0x14,0x3c +.byte 0xa7,0xde,0xde,0x79, 0xbc,0x5e,0x5e,0xe2 +.byte 0x16,0x0b,0x0b,0x1d, 0xad,0xdb,0xdb,0x76 +.byte 0xdb,0xe0,0xe0,0x3b, 0x64,0x32,0x32,0x56 +.byte 0x74,0x3a,0x3a,0x4e, 0x14,0x0a,0x0a,0x1e +.byte 0x92,0x49,0x49,0xdb, 0x0c,0x06,0x06,0x0a +.byte 0x48,0x24,0x24,0x6c, 0xb8,0x5c,0x5c,0xe4 +.byte 0x9f,0xc2,0xc2,0x5d, 0xbd,0xd3,0xd3,0x6e +.byte 0x43,0xac,0xac,0xef, 0xc4,0x62,0x62,0xa6 +.byte 0x39,0x91,0x91,0xa8, 0x31,0x95,0x95,0xa4 +.byte 0xd3,0xe4,0xe4,0x37, 0xf2,0x79,0x79,0x8b +.byte 0xd5,0xe7,0xe7,0x32, 0x8b,0xc8,0xc8,0x43 +.byte 0x6e,0x37,0x37,0x59, 0xda,0x6d,0x6d,0xb7 +.byte 0x01,0x8d,0x8d,0x8c, 0xb1,0xd5,0xd5,0x64 +.byte 0x9c,0x4e,0x4e,0xd2, 0x49,0xa9,0xa9,0xe0 +.byte 0xd8,0x6c,0x6c,0xb4, 0xac,0x56,0x56,0xfa +.byte 0xf3,0xf4,0xf4,0x07, 0xcf,0xea,0xea,0x25 +.byte 0xca,0x65,0x65,0xaf, 0xf4,0x7a,0x7a,0x8e +.byte 0x47,0xae,0xae,0xe9, 0x10,0x08,0x08,0x18 +.byte 0x6f,0xba,0xba,0xd5, 0xf0,0x78,0x78,0x88 +.byte 0x4a,0x25,0x25,0x6f, 0x5c,0x2e,0x2e,0x72 +.byte 0x38,0x1c,0x1c,0x24, 0x57,0xa6,0xa6,0xf1 +.byte 0x73,0xb4,0xb4,0xc7, 0x97,0xc6,0xc6,0x51 +.byte 0xcb,0xe8,0xe8,0x23, 0xa1,0xdd,0xdd,0x7c +.byte 0xe8,0x74,0x74,0x9c, 0x3e,0x1f,0x1f,0x21 +.byte 0x96,0x4b,0x4b,0xdd, 0x61,0xbd,0xbd,0xdc +.byte 0x0d,0x8b,0x8b,0x86, 0x0f,0x8a,0x8a,0x85 +.byte 0xe0,0x70,0x70,0x90, 0x7c,0x3e,0x3e,0x42 +.byte 0x71,0xb5,0xb5,0xc4, 0xcc,0x66,0x66,0xaa +.byte 0x90,0x48,0x48,0xd8, 0x06,0x03,0x03,0x05 +.byte 0xf7,0xf6,0xf6,0x01, 0x1c,0x0e,0x0e,0x12 +.byte 0xc2,0x61,0x61,0xa3, 0x6a,0x35,0x35,0x5f +.byte 0xae,0x57,0x57,0xf9, 0x69,0xb9,0xb9,0xd0 +.byte 0x17,0x86,0x86,0x91, 0x99,0xc1,0xc1,0x58 +.byte 0x3a,0x1d,0x1d,0x27, 0x27,0x9e,0x9e,0xb9 +.byte 0xd9,0xe1,0xe1,0x38, 0xeb,0xf8,0xf8,0x13 +.byte 0x2b,0x98,0x98,0xb3, 0x22,0x11,0x11,0x33 +.byte 0xd2,0x69,0x69,0xbb, 0xa9,0xd9,0xd9,0x70 +.byte 0x07,0x8e,0x8e,0x89, 0x33,0x94,0x94,0xa7 +.byte 0x2d,0x9b,0x9b,0xb6, 0x3c,0x1e,0x1e,0x22 +.byte 0x15,0x87,0x87,0x92, 0xc9,0xe9,0xe9,0x20 +.byte 0x87,0xce,0xce,0x49, 0xaa,0x55,0x55,0xff +.byte 0x50,0x28,0x28,0x78, 0xa5,0xdf,0xdf,0x7a +.byte 0x03,0x8c,0x8c,0x8f, 0x59,0xa1,0xa1,0xf8 +.byte 0x09,0x89,0x89,0x80, 0x1a,0x0d,0x0d,0x17 +.byte 0x65,0xbf,0xbf,0xda, 0xd7,0xe6,0xe6,0x31 +.byte 0x84,0x42,0x42,0xc6, 0xd0,0x68,0x68,0xb8 +.byte 0x82,0x41,0x41,0xc3, 0x29,0x99,0x99,0xb0 +.byte 0x5a,0x2d,0x2d,0x77, 0x1e,0x0f,0x0f,0x11 +.byte 0x7b,0xb0,0xb0,0xcb, 0xa8,0x54,0x54,0xfc +.byte 0x6d,0xbb,0xbb,0xd6, 0x2c,0x16,0x16,0x3a + +AES_Td: +.byte 0x51,0xf4,0xa7,0x50, 0x7e,0x41,0x65,0x53 # Td0 +.byte 0x1a,0x17,0xa4,0xc3, 0x3a,0x27,0x5e,0x96 +.byte 0x3b,0xab,0x6b,0xcb, 0x1f,0x9d,0x45,0xf1 +.byte 0xac,0xfa,0x58,0xab, 0x4b,0xe3,0x03,0x93 +.byte 0x20,0x30,0xfa,0x55, 0xad,0x76,0x6d,0xf6 +.byte 0x88,0xcc,0x76,0x91, 0xf5,0x02,0x4c,0x25 +.byte 0x4f,0xe5,0xd7,0xfc, 0xc5,0x2a,0xcb,0xd7 +.byte 0x26,0x35,0x44,0x80, 0xb5,0x62,0xa3,0x8f +.byte 0xde,0xb1,0x5a,0x49, 0x25,0xba,0x1b,0x67 +.byte 0x45,0xea,0x0e,0x98, 0x5d,0xfe,0xc0,0xe1 +.byte 0xc3,0x2f,0x75,0x02, 0x81,0x4c,0xf0,0x12 +.byte 0x8d,0x46,0x97,0xa3, 0x6b,0xd3,0xf9,0xc6 +.byte 0x03,0x8f,0x5f,0xe7, 0x15,0x92,0x9c,0x95 +.byte 0xbf,0x6d,0x7a,0xeb, 0x95,0x52,0x59,0xda +.byte 0xd4,0xbe,0x83,0x2d, 0x58,0x74,0x21,0xd3 +.byte 0x49,0xe0,0x69,0x29, 0x8e,0xc9,0xc8,0x44 +.byte 0x75,0xc2,0x89,0x6a, 0xf4,0x8e,0x79,0x78 +.byte 0x99,0x58,0x3e,0x6b, 0x27,0xb9,0x71,0xdd +.byte 0xbe,0xe1,0x4f,0xb6, 0xf0,0x88,0xad,0x17 +.byte 0xc9,0x20,0xac,0x66, 0x7d,0xce,0x3a,0xb4 +.byte 0x63,0xdf,0x4a,0x18, 0xe5,0x1a,0x31,0x82 +.byte 0x97,0x51,0x33,0x60, 0x62,0x53,0x7f,0x45 +.byte 0xb1,0x64,0x77,0xe0, 0xbb,0x6b,0xae,0x84 +.byte 0xfe,0x81,0xa0,0x1c, 0xf9,0x08,0x2b,0x94 +.byte 0x70,0x48,0x68,0x58, 0x8f,0x45,0xfd,0x19 +.byte 0x94,0xde,0x6c,0x87, 0x52,0x7b,0xf8,0xb7 +.byte 0xab,0x73,0xd3,0x23, 0x72,0x4b,0x02,0xe2 +.byte 0xe3,0x1f,0x8f,0x57, 0x66,0x55,0xab,0x2a +.byte 0xb2,0xeb,0x28,0x07, 0x2f,0xb5,0xc2,0x03 +.byte 0x86,0xc5,0x7b,0x9a, 0xd3,0x37,0x08,0xa5 +.byte 0x30,0x28,0x87,0xf2, 0x23,0xbf,0xa5,0xb2 +.byte 0x02,0x03,0x6a,0xba, 0xed,0x16,0x82,0x5c +.byte 0x8a,0xcf,0x1c,0x2b, 0xa7,0x79,0xb4,0x92 +.byte 0xf3,0x07,0xf2,0xf0, 0x4e,0x69,0xe2,0xa1 +.byte 0x65,0xda,0xf4,0xcd, 0x06,0x05,0xbe,0xd5 +.byte 0xd1,0x34,0x62,0x1f, 0xc4,0xa6,0xfe,0x8a +.byte 0x34,0x2e,0x53,0x9d, 0xa2,0xf3,0x55,0xa0 +.byte 0x05,0x8a,0xe1,0x32, 0xa4,0xf6,0xeb,0x75 +.byte 0x0b,0x83,0xec,0x39, 0x40,0x60,0xef,0xaa +.byte 0x5e,0x71,0x9f,0x06, 0xbd,0x6e,0x10,0x51 +.byte 0x3e,0x21,0x8a,0xf9, 0x96,0xdd,0x06,0x3d +.byte 0xdd,0x3e,0x05,0xae, 0x4d,0xe6,0xbd,0x46 +.byte 0x91,0x54,0x8d,0xb5, 0x71,0xc4,0x5d,0x05 +.byte 0x04,0x06,0xd4,0x6f, 0x60,0x50,0x15,0xff +.byte 0x19,0x98,0xfb,0x24, 0xd6,0xbd,0xe9,0x97 +.byte 0x89,0x40,0x43,0xcc, 0x67,0xd9,0x9e,0x77 +.byte 0xb0,0xe8,0x42,0xbd, 0x07,0x89,0x8b,0x88 +.byte 0xe7,0x19,0x5b,0x38, 0x79,0xc8,0xee,0xdb +.byte 0xa1,0x7c,0x0a,0x47, 0x7c,0x42,0x0f,0xe9 +.byte 0xf8,0x84,0x1e,0xc9, 0x00,0x00,0x00,0x00 +.byte 0x09,0x80,0x86,0x83, 0x32,0x2b,0xed,0x48 +.byte 0x1e,0x11,0x70,0xac, 0x6c,0x5a,0x72,0x4e +.byte 0xfd,0x0e,0xff,0xfb, 0x0f,0x85,0x38,0x56 +.byte 0x3d,0xae,0xd5,0x1e, 0x36,0x2d,0x39,0x27 +.byte 0x0a,0x0f,0xd9,0x64, 0x68,0x5c,0xa6,0x21 +.byte 0x9b,0x5b,0x54,0xd1, 0x24,0x36,0x2e,0x3a +.byte 0x0c,0x0a,0x67,0xb1, 0x93,0x57,0xe7,0x0f +.byte 0xb4,0xee,0x96,0xd2, 0x1b,0x9b,0x91,0x9e +.byte 0x80,0xc0,0xc5,0x4f, 0x61,0xdc,0x20,0xa2 +.byte 0x5a,0x77,0x4b,0x69, 0x1c,0x12,0x1a,0x16 +.byte 0xe2,0x93,0xba,0x0a, 0xc0,0xa0,0x2a,0xe5 +.byte 0x3c,0x22,0xe0,0x43, 0x12,0x1b,0x17,0x1d +.byte 0x0e,0x09,0x0d,0x0b, 0xf2,0x8b,0xc7,0xad +.byte 0x2d,0xb6,0xa8,0xb9, 0x14,0x1e,0xa9,0xc8 +.byte 0x57,0xf1,0x19,0x85, 0xaf,0x75,0x07,0x4c +.byte 0xee,0x99,0xdd,0xbb, 0xa3,0x7f,0x60,0xfd +.byte 0xf7,0x01,0x26,0x9f, 0x5c,0x72,0xf5,0xbc +.byte 0x44,0x66,0x3b,0xc5, 0x5b,0xfb,0x7e,0x34 +.byte 0x8b,0x43,0x29,0x76, 0xcb,0x23,0xc6,0xdc +.byte 0xb6,0xed,0xfc,0x68, 0xb8,0xe4,0xf1,0x63 +.byte 0xd7,0x31,0xdc,0xca, 0x42,0x63,0x85,0x10 +.byte 0x13,0x97,0x22,0x40, 0x84,0xc6,0x11,0x20 +.byte 0x85,0x4a,0x24,0x7d, 0xd2,0xbb,0x3d,0xf8 +.byte 0xae,0xf9,0x32,0x11, 0xc7,0x29,0xa1,0x6d +.byte 0x1d,0x9e,0x2f,0x4b, 0xdc,0xb2,0x30,0xf3 +.byte 0x0d,0x86,0x52,0xec, 0x77,0xc1,0xe3,0xd0 +.byte 0x2b,0xb3,0x16,0x6c, 0xa9,0x70,0xb9,0x99 +.byte 0x11,0x94,0x48,0xfa, 0x47,0xe9,0x64,0x22 +.byte 0xa8,0xfc,0x8c,0xc4, 0xa0,0xf0,0x3f,0x1a +.byte 0x56,0x7d,0x2c,0xd8, 0x22,0x33,0x90,0xef +.byte 0x87,0x49,0x4e,0xc7, 0xd9,0x38,0xd1,0xc1 +.byte 0x8c,0xca,0xa2,0xfe, 0x98,0xd4,0x0b,0x36 +.byte 0xa6,0xf5,0x81,0xcf, 0xa5,0x7a,0xde,0x28 +.byte 0xda,0xb7,0x8e,0x26, 0x3f,0xad,0xbf,0xa4 +.byte 0x2c,0x3a,0x9d,0xe4, 0x50,0x78,0x92,0x0d +.byte 0x6a,0x5f,0xcc,0x9b, 0x54,0x7e,0x46,0x62 +.byte 0xf6,0x8d,0x13,0xc2, 0x90,0xd8,0xb8,0xe8 +.byte 0x2e,0x39,0xf7,0x5e, 0x82,0xc3,0xaf,0xf5 +.byte 0x9f,0x5d,0x80,0xbe, 0x69,0xd0,0x93,0x7c +.byte 0x6f,0xd5,0x2d,0xa9, 0xcf,0x25,0x12,0xb3 +.byte 0xc8,0xac,0x99,0x3b, 0x10,0x18,0x7d,0xa7 +.byte 0xe8,0x9c,0x63,0x6e, 0xdb,0x3b,0xbb,0x7b +.byte 0xcd,0x26,0x78,0x09, 0x6e,0x59,0x18,0xf4 +.byte 0xec,0x9a,0xb7,0x01, 0x83,0x4f,0x9a,0xa8 +.byte 0xe6,0x95,0x6e,0x65, 0xaa,0xff,0xe6,0x7e +.byte 0x21,0xbc,0xcf,0x08, 0xef,0x15,0xe8,0xe6 +.byte 0xba,0xe7,0x9b,0xd9, 0x4a,0x6f,0x36,0xce +.byte 0xea,0x9f,0x09,0xd4, 0x29,0xb0,0x7c,0xd6 +.byte 0x31,0xa4,0xb2,0xaf, 0x2a,0x3f,0x23,0x31 +.byte 0xc6,0xa5,0x94,0x30, 0x35,0xa2,0x66,0xc0 +.byte 0x74,0x4e,0xbc,0x37, 0xfc,0x82,0xca,0xa6 +.byte 0xe0,0x90,0xd0,0xb0, 0x33,0xa7,0xd8,0x15 +.byte 0xf1,0x04,0x98,0x4a, 0x41,0xec,0xda,0xf7 +.byte 0x7f,0xcd,0x50,0x0e, 0x17,0x91,0xf6,0x2f +.byte 0x76,0x4d,0xd6,0x8d, 0x43,0xef,0xb0,0x4d +.byte 0xcc,0xaa,0x4d,0x54, 0xe4,0x96,0x04,0xdf +.byte 0x9e,0xd1,0xb5,0xe3, 0x4c,0x6a,0x88,0x1b +.byte 0xc1,0x2c,0x1f,0xb8, 0x46,0x65,0x51,0x7f +.byte 0x9d,0x5e,0xea,0x04, 0x01,0x8c,0x35,0x5d +.byte 0xfa,0x87,0x74,0x73, 0xfb,0x0b,0x41,0x2e +.byte 0xb3,0x67,0x1d,0x5a, 0x92,0xdb,0xd2,0x52 +.byte 0xe9,0x10,0x56,0x33, 0x6d,0xd6,0x47,0x13 +.byte 0x9a,0xd7,0x61,0x8c, 0x37,0xa1,0x0c,0x7a +.byte 0x59,0xf8,0x14,0x8e, 0xeb,0x13,0x3c,0x89 +.byte 0xce,0xa9,0x27,0xee, 0xb7,0x61,0xc9,0x35 +.byte 0xe1,0x1c,0xe5,0xed, 0x7a,0x47,0xb1,0x3c +.byte 0x9c,0xd2,0xdf,0x59, 0x55,0xf2,0x73,0x3f +.byte 0x18,0x14,0xce,0x79, 0x73,0xc7,0x37,0xbf +.byte 0x53,0xf7,0xcd,0xea, 0x5f,0xfd,0xaa,0x5b +.byte 0xdf,0x3d,0x6f,0x14, 0x78,0x44,0xdb,0x86 +.byte 0xca,0xaf,0xf3,0x81, 0xb9,0x68,0xc4,0x3e +.byte 0x38,0x24,0x34,0x2c, 0xc2,0xa3,0x40,0x5f +.byte 0x16,0x1d,0xc3,0x72, 0xbc,0xe2,0x25,0x0c +.byte 0x28,0x3c,0x49,0x8b, 0xff,0x0d,0x95,0x41 +.byte 0x39,0xa8,0x01,0x71, 0x08,0x0c,0xb3,0xde +.byte 0xd8,0xb4,0xe4,0x9c, 0x64,0x56,0xc1,0x90 +.byte 0x7b,0xcb,0x84,0x61, 0xd5,0x32,0xb6,0x70 +.byte 0x48,0x6c,0x5c,0x74, 0xd0,0xb8,0x57,0x42 + +.byte 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38 # Td4 +.byte 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb +.byte 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87 +.byte 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb +.byte 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d +.byte 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e +.byte 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2 +.byte 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25 +.byte 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16 +.byte 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92 +.byte 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda +.byte 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84 +.byte 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a +.byte 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06 +.byte 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02 +.byte 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b +.byte 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea +.byte 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73 +.byte 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85 +.byte 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e +.byte 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89 +.byte 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b +.byte 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20 +.byte 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4 +.byte 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31 +.byte 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f +.byte 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d +.byte 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef +.byte 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0 +.byte 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61 +.byte 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26 +.byte 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d + +AES_Te4: +.byte 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5 # Te4 +.byte 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76 +.byte 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0 +.byte 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0 +.byte 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc +.byte 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15 +.byte 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a +.byte 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75 +.byte 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0 +.byte 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84 +.byte 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b +.byte 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf +.byte 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85 +.byte 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8 +.byte 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5 +.byte 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2 +.byte 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17 +.byte 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73 +.byte 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88 +.byte 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb +.byte 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c +.byte 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79 +.byte 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9 +.byte 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08 +.byte 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6 +.byte 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a +.byte 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e +.byte 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e +.byte 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94 +.byte 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf +.byte 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68 +.byte 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 + +.byte 0x01,0x00,0x00,0x00, 0x02,0x00,0x00,0x00 # rcon +.byte 0x04,0x00,0x00,0x00, 0x08,0x00,0x00,0x00 +.byte 0x10,0x00,0x00,0x00, 0x20,0x00,0x00,0x00 +.byte 0x40,0x00,0x00,0x00, 0x80,0x00,0x00,0x00 +.byte 0x1B,0x00,0x00,0x00, 0x36,0x00,0x00,0x00 diff -urN a/deps/openssl/config/archs/linux-mips/asm/crypto/bn/bn-mips.S b/deps/openssl/config/archs/linux-mips/asm/crypto/bn/bn-mips.S --- a/deps/openssl/config/archs/linux-mips/asm/crypto/bn/bn-mips.S 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mips/asm/crypto/bn/bn-mips.S 2019-12-25 13:49:19.980298817 +0900 @@ -0,0 +1,2183 @@ +#if !(defined (__mips_isa_rev) && (__mips_isa_rev >= 6)) +.set mips2 +#endif +#include "mips_arch.h" + +#if defined(_MIPS_ARCH_MIPS64R6) +# define ddivu(rs,rt) +# define mfqt(rd,rs,rt) ddivu rd,rs,rt +# define mfrm(rd,rs,rt) dmodu rd,rs,rt +#elif defined(_MIPS_ARCH_MIPS32R6) +# define divu(rs,rt) +# define mfqt(rd,rs,rt) divu rd,rs,rt +# define mfrm(rd,rs,rt) modu rd,rs,rt +#else +# define divu(rs,rt) divu $0,rs,rt +# define mfqt(rd,rs,rt) mflo rd +# define mfrm(rd,rs,rt) mfhi rd +#endif + +.rdata +.asciiz "mips3.s, Version 1.2" +.asciiz "MIPS II/III/IV ISA artwork by Andy Polyakov " + +.text +.set noat + +.align 5 +.globl bn_mul_add_words +.ent bn_mul_add_words +bn_mul_add_words: + .set noreorder + bgtz $6,bn_mul_add_words_internal + move $2,$0 + jr $31 + move $4,$2 +.end bn_mul_add_words + +.align 5 +.ent bn_mul_add_words_internal +bn_mul_add_words_internal: + .set reorder + li $3,-4 + and $8,$6,$3 + beqz $8,.L_bn_mul_add_words_tail + +.L_bn_mul_add_words_loop: + lw $12,0($5) + multu ($12,$7) + lw $13,0($4) + lw $14,4($5) + lw $15,4($4) + lw $8,2*4($5) + lw $9,2*4($4) + addu $13,$2 + sltu $2,$13,$2 # All manuals say it "compares 32-bit + # values", but it seems to work fine + # even on 64-bit registers. + mflo ($1,$12,$7) + mfhi ($12,$12,$7) + addu $13,$1 + addu $2,$12 + multu ($14,$7) + sltu $1,$13,$1 + sw $13,0($4) + addu $2,$1 + + lw $10,3*4($5) + lw $11,3*4($4) + addu $15,$2 + sltu $2,$15,$2 + mflo ($1,$14,$7) + mfhi ($14,$14,$7) + addu $15,$1 + addu $2,$14 + multu ($8,$7) + sltu $1,$15,$1 + sw $15,4($4) + addu $2,$1 + + subu $6,4 + addu $4,4*4 + addu $5,4*4 + addu $9,$2 + sltu $2,$9,$2 + mflo ($1,$8,$7) + mfhi ($8,$8,$7) + addu $9,$1 + addu $2,$8 + multu ($10,$7) + sltu $1,$9,$1 + sw $9,-2*4($4) + addu $2,$1 + + + and $8,$6,$3 + addu $11,$2 + sltu $2,$11,$2 + mflo ($1,$10,$7) + mfhi ($10,$10,$7) + addu $11,$1 + addu $2,$10 + sltu $1,$11,$1 + sw $11,-4($4) + .set noreorder + bgtz $8,.L_bn_mul_add_words_loop + addu $2,$1 + + beqz $6,.L_bn_mul_add_words_return + nop + +.L_bn_mul_add_words_tail: + .set reorder + lw $12,0($5) + multu ($12,$7) + lw $13,0($4) + subu $6,1 + addu $13,$2 + sltu $2,$13,$2 + mflo ($1,$12,$7) + mfhi ($12,$12,$7) + addu $13,$1 + addu $2,$12 + sltu $1,$13,$1 + sw $13,0($4) + addu $2,$1 + beqz $6,.L_bn_mul_add_words_return + + lw $12,4($5) + multu ($12,$7) + lw $13,4($4) + subu $6,1 + addu $13,$2 + sltu $2,$13,$2 + mflo ($1,$12,$7) + mfhi ($12,$12,$7) + addu $13,$1 + addu $2,$12 + sltu $1,$13,$1 + sw $13,4($4) + addu $2,$1 + beqz $6,.L_bn_mul_add_words_return + + lw $12,2*4($5) + multu ($12,$7) + lw $13,2*4($4) + addu $13,$2 + sltu $2,$13,$2 + mflo ($1,$12,$7) + mfhi ($12,$12,$7) + addu $13,$1 + addu $2,$12 + sltu $1,$13,$1 + sw $13,2*4($4) + addu $2,$1 + +.L_bn_mul_add_words_return: + .set noreorder + jr $31 + move $4,$2 +.end bn_mul_add_words_internal + +.align 5 +.globl bn_mul_words +.ent bn_mul_words +bn_mul_words: + .set noreorder + bgtz $6,bn_mul_words_internal + move $2,$0 + jr $31 + move $4,$2 +.end bn_mul_words + +.align 5 +.ent bn_mul_words_internal +bn_mul_words_internal: + .set reorder + li $3,-4 + and $8,$6,$3 + beqz $8,.L_bn_mul_words_tail + +.L_bn_mul_words_loop: + lw $12,0($5) + multu ($12,$7) + lw $14,4($5) + lw $8,2*4($5) + lw $10,3*4($5) + mflo ($1,$12,$7) + mfhi ($12,$12,$7) + addu $2,$1 + sltu $13,$2,$1 + multu ($14,$7) + sw $2,0($4) + addu $2,$13,$12 + + subu $6,4 + addu $4,4*4 + addu $5,4*4 + mflo ($1,$14,$7) + mfhi ($14,$14,$7) + addu $2,$1 + sltu $15,$2,$1 + multu ($8,$7) + sw $2,-3*4($4) + addu $2,$15,$14 + + mflo ($1,$8,$7) + mfhi ($8,$8,$7) + addu $2,$1 + sltu $9,$2,$1 + multu ($10,$7) + sw $2,-2*4($4) + addu $2,$9,$8 + + and $8,$6,$3 + mflo ($1,$10,$7) + mfhi ($10,$10,$7) + addu $2,$1 + sltu $11,$2,$1 + sw $2,-4($4) + .set noreorder + bgtz $8,.L_bn_mul_words_loop + addu $2,$11,$10 + + beqz $6,.L_bn_mul_words_return + nop + +.L_bn_mul_words_tail: + .set reorder + lw $12,0($5) + multu ($12,$7) + subu $6,1 + mflo ($1,$12,$7) + mfhi ($12,$12,$7) + addu $2,$1 + sltu $13,$2,$1 + sw $2,0($4) + addu $2,$13,$12 + beqz $6,.L_bn_mul_words_return + + lw $12,4($5) + multu ($12,$7) + subu $6,1 + mflo ($1,$12,$7) + mfhi ($12,$12,$7) + addu $2,$1 + sltu $13,$2,$1 + sw $2,4($4) + addu $2,$13,$12 + beqz $6,.L_bn_mul_words_return + + lw $12,2*4($5) + multu ($12,$7) + mflo ($1,$12,$7) + mfhi ($12,$12,$7) + addu $2,$1 + sltu $13,$2,$1 + sw $2,2*4($4) + addu $2,$13,$12 + +.L_bn_mul_words_return: + .set noreorder + jr $31 + move $4,$2 +.end bn_mul_words_internal + +.align 5 +.globl bn_sqr_words +.ent bn_sqr_words +bn_sqr_words: + .set noreorder + bgtz $6,bn_sqr_words_internal + move $2,$0 + jr $31 + move $4,$2 +.end bn_sqr_words + +.align 5 +.ent bn_sqr_words_internal +bn_sqr_words_internal: + .set reorder + li $3,-4 + and $8,$6,$3 + beqz $8,.L_bn_sqr_words_tail + +.L_bn_sqr_words_loop: + lw $12,0($5) + multu ($12,$12) + lw $14,4($5) + lw $8,2*4($5) + lw $10,3*4($5) + mflo ($13,$12,$12) + mfhi ($12,$12,$12) + sw $13,0($4) + sw $12,4($4) + + multu ($14,$14) + subu $6,4 + addu $4,8*4 + addu $5,4*4 + mflo ($15,$14,$14) + mfhi ($14,$14,$14) + sw $15,-6*4($4) + sw $14,-5*4($4) + + multu ($8,$8) + mflo ($9,$8,$8) + mfhi ($8,$8,$8) + sw $9,-4*4($4) + sw $8,-3*4($4) + + + multu ($10,$10) + and $8,$6,$3 + mflo ($11,$10,$10) + mfhi ($10,$10,$10) + sw $11,-2*4($4) + + .set noreorder + bgtz $8,.L_bn_sqr_words_loop + sw $10,-4($4) + + beqz $6,.L_bn_sqr_words_return + nop + +.L_bn_sqr_words_tail: + .set reorder + lw $12,0($5) + multu ($12,$12) + subu $6,1 + mflo ($13,$12,$12) + mfhi ($12,$12,$12) + sw $13,0($4) + sw $12,4($4) + beqz $6,.L_bn_sqr_words_return + + lw $12,4($5) + multu ($12,$12) + subu $6,1 + mflo ($13,$12,$12) + mfhi ($12,$12,$12) + sw $13,2*4($4) + sw $12,3*4($4) + beqz $6,.L_bn_sqr_words_return + + lw $12,2*4($5) + multu ($12,$12) + mflo ($13,$12,$12) + mfhi ($12,$12,$12) + sw $13,4*4($4) + sw $12,5*4($4) + +.L_bn_sqr_words_return: + .set noreorder + jr $31 + move $4,$2 + +.end bn_sqr_words_internal + +.align 5 +.globl bn_add_words +.ent bn_add_words +bn_add_words: + .set noreorder + bgtz $7,bn_add_words_internal + move $2,$0 + jr $31 + move $4,$2 +.end bn_add_words + +.align 5 +.ent bn_add_words_internal +bn_add_words_internal: + .set reorder + li $3,-4 + and $1,$7,$3 + beqz $1,.L_bn_add_words_tail + +.L_bn_add_words_loop: + lw $12,0($5) + lw $8,0($6) + subu $7,4 + lw $13,4($5) + and $1,$7,$3 + lw $14,2*4($5) + addu $6,4*4 + lw $15,3*4($5) + addu $4,4*4 + lw $9,-3*4($6) + addu $5,4*4 + lw $10,-2*4($6) + lw $11,-4($6) + addu $8,$12 + sltu $24,$8,$12 + addu $12,$8,$2 + sltu $2,$12,$8 + sw $12,-4*4($4) + addu $2,$24 + + addu $9,$13 + sltu $25,$9,$13 + addu $13,$9,$2 + sltu $2,$13,$9 + sw $13,-3*4($4) + addu $2,$25 + + addu $10,$14 + sltu $24,$10,$14 + addu $14,$10,$2 + sltu $2,$14,$10 + sw $14,-2*4($4) + addu $2,$24 + + addu $11,$15 + sltu $25,$11,$15 + addu $15,$11,$2 + sltu $2,$15,$11 + sw $15,-4($4) + + .set noreorder + bgtz $1,.L_bn_add_words_loop + addu $2,$25 + + beqz $7,.L_bn_add_words_return + nop + +.L_bn_add_words_tail: + .set reorder + lw $12,0($5) + lw $8,0($6) + addu $8,$12 + subu $7,1 + sltu $24,$8,$12 + addu $12,$8,$2 + sltu $2,$12,$8 + sw $12,0($4) + addu $2,$24 + beqz $7,.L_bn_add_words_return + + lw $13,4($5) + lw $9,4($6) + addu $9,$13 + subu $7,1 + sltu $25,$9,$13 + addu $13,$9,$2 + sltu $2,$13,$9 + sw $13,4($4) + addu $2,$25 + beqz $7,.L_bn_add_words_return + + lw $14,2*4($5) + lw $10,2*4($6) + addu $10,$14 + sltu $24,$10,$14 + addu $14,$10,$2 + sltu $2,$14,$10 + sw $14,2*4($4) + addu $2,$24 + +.L_bn_add_words_return: + .set noreorder + jr $31 + move $4,$2 + +.end bn_add_words_internal + +.align 5 +.globl bn_sub_words +.ent bn_sub_words +bn_sub_words: + .set noreorder + bgtz $7,bn_sub_words_internal + move $2,$0 + jr $31 + move $4,$0 +.end bn_sub_words + +.align 5 +.ent bn_sub_words_internal +bn_sub_words_internal: + .set reorder + li $3,-4 + and $1,$7,$3 + beqz $1,.L_bn_sub_words_tail + +.L_bn_sub_words_loop: + lw $12,0($5) + lw $8,0($6) + subu $7,4 + lw $13,4($5) + and $1,$7,$3 + lw $14,2*4($5) + addu $6,4*4 + lw $15,3*4($5) + addu $4,4*4 + lw $9,-3*4($6) + addu $5,4*4 + lw $10,-2*4($6) + lw $11,-4($6) + sltu $24,$12,$8 + subu $8,$12,$8 + subu $12,$8,$2 + sgtu $2,$12,$8 + sw $12,-4*4($4) + addu $2,$24 + + sltu $25,$13,$9 + subu $9,$13,$9 + subu $13,$9,$2 + sgtu $2,$13,$9 + sw $13,-3*4($4) + addu $2,$25 + + + sltu $24,$14,$10 + subu $10,$14,$10 + subu $14,$10,$2 + sgtu $2,$14,$10 + sw $14,-2*4($4) + addu $2,$24 + + sltu $25,$15,$11 + subu $11,$15,$11 + subu $15,$11,$2 + sgtu $2,$15,$11 + sw $15,-4($4) + + .set noreorder + bgtz $1,.L_bn_sub_words_loop + addu $2,$25 + + beqz $7,.L_bn_sub_words_return + nop + +.L_bn_sub_words_tail: + .set reorder + lw $12,0($5) + lw $8,0($6) + subu $7,1 + sltu $24,$12,$8 + subu $8,$12,$8 + subu $12,$8,$2 + sgtu $2,$12,$8 + sw $12,0($4) + addu $2,$24 + beqz $7,.L_bn_sub_words_return + + lw $13,4($5) + subu $7,1 + lw $9,4($6) + sltu $25,$13,$9 + subu $9,$13,$9 + subu $13,$9,$2 + sgtu $2,$13,$9 + sw $13,4($4) + addu $2,$25 + beqz $7,.L_bn_sub_words_return + + lw $14,2*4($5) + lw $10,2*4($6) + sltu $24,$14,$10 + subu $10,$14,$10 + subu $14,$10,$2 + sgtu $2,$14,$10 + sw $14,2*4($4) + addu $2,$24 + +.L_bn_sub_words_return: + .set noreorder + jr $31 + move $4,$2 +.end bn_sub_words_internal + +#if 0 +/* + * The bn_div_3_words entry point is re-used for constant-time interface. + * Implementation is retained as historical reference. + */ +.align 5 +.globl bn_div_3_words +.ent bn_div_3_words +bn_div_3_words: + .set noreorder + move $7,$4 # we know that bn_div_words does not + # touch $7, $10, $11 and preserves $6 + # so that we can save two arguments + # and return address in registers + # instead of stack:-) + + lw $4,($7) + move $10,$5 + bne $4,$6,bn_div_3_words_internal + lw $5,-4($7) + li $2,-1 + jr $31 + move $4,$2 +.end bn_div_3_words + +.align 5 +.ent bn_div_3_words_internal +bn_div_3_words_internal: + .set reorder + move $11,$31 + bal bn_div_words_internal + move $31,$11 + multu ($10,$2) + lw $14,-2*4($7) + move $8,$0 + mfhi ($13,$10,$2) + mflo ($12,$10,$2) + sltu $24,$13,$5 +.L_bn_div_3_words_inner_loop: + bnez $24,.L_bn_div_3_words_inner_loop_done + sgeu $1,$14,$12 + seq $25,$13,$5 + and $1,$25 + sltu $15,$12,$10 + addu $5,$6 + subu $13,$15 + subu $12,$10 + sltu $24,$13,$5 + sltu $8,$5,$6 + or $24,$8 + .set noreorder + beqz $1,.L_bn_div_3_words_inner_loop + subu $2,1 + addu $2,1 + .set reorder +.L_bn_div_3_words_inner_loop_done: + .set noreorder + jr $31 + move $4,$2 +.end bn_div_3_words_internal +#endif + +.align 5 +.globl bn_div_words +.ent bn_div_words +bn_div_words: + .set noreorder + bnez $6,bn_div_words_internal + li $2,-1 # I would rather signal div-by-zero + # which can be done with 'break 7' + jr $31 + move $4,$2 +.end bn_div_words + +.align 5 +.ent bn_div_words_internal +bn_div_words_internal: + move $3,$0 + bltz $6,.L_bn_div_words_body + move $25,$3 + sll $6,1 + bgtz $6,.-4 + addu $25,1 + + .set reorder + negu $13,$25 + li $14,-1 + sll $14,$13 + and $14,$4 + srl $1,$5,$13 + .set noreorder + beqz $14,.+12 + nop + break 6 # signal overflow + .set reorder + sll $4,$25 + sll $5,$25 + or $4,$1 +.L_bn_div_words_body: + srl $3,$6,4*4 # bits + sgeu $1,$4,$6 + .set noreorder + beqz $1,.+12 + nop + subu $4,$6 + .set reorder + + li $8,-1 + srl $9,$4,4*4 # bits + srl $8,4*4 # q=0xffffffff + beq $3,$9,.L_bn_div_words_skip_div1 + divu ($4,$3) + mfqt ($8,$4,$3) +.L_bn_div_words_skip_div1: + multu ($6,$8) + sll $15,$4,4*4 # bits + srl $1,$5,4*4 # bits + or $15,$1 + mflo ($12,$6,$8) + mfhi ($13,$6,$8) +.L_bn_div_words_inner_loop1: + sltu $14,$15,$12 + seq $24,$9,$13 + sltu $1,$9,$13 + and $14,$24 + sltu $2,$12,$6 + or $1,$14 + .set noreorder + beqz $1,.L_bn_div_words_inner_loop1_done + subu $13,$2 + subu $12,$6 + b .L_bn_div_words_inner_loop1 + subu $8,1 + .set reorder +.L_bn_div_words_inner_loop1_done: + + sll $5,4*4 # bits + subu $4,$15,$12 + sll $2,$8,4*4 # bits + + li $8,-1 + srl $9,$4,4*4 # bits + srl $8,4*4 # q=0xffffffff + beq $3,$9,.L_bn_div_words_skip_div2 + divu ($4,$3) + mfqt ($8,$4,$3) +.L_bn_div_words_skip_div2: + multu ($6,$8) + sll $15,$4,4*4 # bits + srl $1,$5,4*4 # bits + or $15,$1 + mflo ($12,$6,$8) + mfhi ($13,$6,$8) +.L_bn_div_words_inner_loop2: + sltu $14,$15,$12 + seq $24,$9,$13 + sltu $1,$9,$13 + and $14,$24 + sltu $3,$12,$6 + or $1,$14 + .set noreorder + beqz $1,.L_bn_div_words_inner_loop2_done + subu $13,$3 + subu $12,$6 + b .L_bn_div_words_inner_loop2 + subu $8,1 + .set reorder +.L_bn_div_words_inner_loop2_done: + + subu $4,$15,$12 + or $2,$8 + srl $3,$4,$25 # $3 contains remainder if anybody wants it + srl $6,$25 # restore $6 + + .set noreorder + move $5,$3 + jr $31 + move $4,$2 +.end bn_div_words_internal + +.align 5 +.globl bn_mul_comba8 +.ent bn_mul_comba8 +bn_mul_comba8: + .set noreorder + .frame $29,6*4,$31 + .mask 0x003f0000,-4 + subu $29,6*4 + sw $21,5*4($29) + sw $20,4*4($29) + sw $19,3*4($29) + sw $18,2*4($29) + sw $17,1*4($29) + sw $16,0*4($29) + + .set reorder + lw $12,0($5) # If compiled with -mips3 option on + # R5000 box assembler barks on this + # 1ine with "should not have mult/div + # as last instruction in bb (R10K + # bug)" warning. If anybody out there + # has a clue about how to circumvent + # this do send me a note. + # + + lw $8,0($6) + lw $13,4($5) + lw $14,2*4($5) + multu ($12,$8) # mul_add_c(a[0],b[0],c1,c2,c3); + lw $15,3*4($5) + lw $9,4($6) + lw $10,2*4($6) + lw $11,3*4($6) + mflo ($2,$12,$8) + mfhi ($3,$12,$8) + + lw $16,4*4($5) + lw $18,5*4($5) + multu ($12,$9) # mul_add_c(a[0],b[1],c2,c3,c1); + lw $20,6*4($5) + lw $5,7*4($5) + lw $17,4*4($6) + lw $19,5*4($6) + mflo ($24,$12,$9) + mfhi ($25,$12,$9) + addu $3,$24 + sltu $1,$3,$24 + multu ($13,$8) # mul_add_c(a[1],b[0],c2,c3,c1); + addu $7,$25,$1 + lw $21,6*4($6) + lw $6,7*4($6) + sw $2,0($4) # r[0]=c1; + mflo ($24,$13,$8) + mfhi ($25,$13,$8) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$8) # mul_add_c(a[2],b[0],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $2,$7,$25 + sw $3,4($4) # r[1]=c2; + + mflo ($24,$14,$8) + mfhi ($25,$14,$8) + addu $7,$24 + sltu $1,$7,$24 + multu ($13,$9) # mul_add_c(a[1],b[1],c3,c1,c2); + addu $25,$1 + addu $2,$25 + mflo ($24,$13,$9) + mfhi ($25,$13,$9) + addu $7,$24 + sltu $1,$7,$24 + multu ($12,$10) # mul_add_c(a[0],b[2],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $3,$2,$25 + mflo ($24,$12,$10) + mfhi ($25,$12,$10) + addu $7,$24 + sltu $1,$7,$24 + multu ($12,$11) # mul_add_c(a[0],b[3],c1,c2,c3); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + sw $7,2*4($4) # r[2]=c3; + + mflo ($24,$12,$11) + mfhi ($25,$12,$11) + addu $2,$24 + sltu $1,$2,$24 + multu ($13,$10) # mul_add_c(a[1],b[2],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $7,$3,$25 + mflo ($24,$13,$10) + mfhi ($25,$13,$10) + addu $2,$24 + sltu $1,$2,$24 + multu ($14,$9) # mul_add_c(a[2],b[1],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$14,$9) + mfhi ($25,$14,$9) + addu $2,$24 + sltu $1,$2,$24 + multu ($15,$8) # mul_add_c(a[3],b[0],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$15,$8) + mfhi ($25,$15,$8) + addu $2,$24 + sltu $1,$2,$24 + multu ($16,$8) # mul_add_c(a[4],b[0],c2,c3,c1); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + sw $2,3*4($4) # r[3]=c1; + + mflo ($24,$16,$8) + mfhi ($25,$16,$8) + addu $3,$24 + sltu $1,$3,$24 + multu ($15,$9) # mul_add_c(a[3],b[1],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $2,$7,$25 + mflo ($24,$15,$9) + mfhi ($25,$15,$9) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$10) # mul_add_c(a[2],b[2],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$14,$10) + mfhi ($25,$14,$10) + addu $3,$24 + sltu $1,$3,$24 + multu ($13,$11) # mul_add_c(a[1],b[3],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$13,$11) + mfhi ($25,$13,$11) + addu $3,$24 + sltu $1,$3,$24 + multu ($12,$17) # mul_add_c(a[0],b[4],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$12,$17) + mfhi ($25,$12,$17) + addu $3,$24 + sltu $1,$3,$24 + multu ($12,$19) # mul_add_c(a[0],b[5],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + sw $3,4*4($4) # r[4]=c2; + + mflo ($24,$12,$19) + mfhi ($25,$12,$19) + addu $7,$24 + sltu $1,$7,$24 + multu ($13,$17) # mul_add_c(a[1],b[4],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $3,$2,$25 + mflo ($24,$13,$17) + mfhi ($25,$13,$17) + addu $7,$24 + sltu $1,$7,$24 + multu ($14,$11) # mul_add_c(a[2],b[3],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$14,$11) + mfhi ($25,$14,$11) + addu $7,$24 + sltu $1,$7,$24 + multu ($15,$10) # mul_add_c(a[3],b[2],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$15,$10) + mfhi ($25,$15,$10) + addu $7,$24 + sltu $1,$7,$24 + multu ($16,$9) # mul_add_c(a[4],b[1],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$16,$9) + mfhi ($25,$16,$9) + addu $7,$24 + sltu $1,$7,$24 + multu ($18,$8) # mul_add_c(a[5],b[0],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$18,$8) + mfhi ($25,$18,$8) + addu $7,$24 + sltu $1,$7,$24 + multu ($20,$8) # mul_add_c(a[6],b[0],c1,c2,c3); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + sw $7,5*4($4) # r[5]=c3; + + mflo ($24,$20,$8) + mfhi ($25,$20,$8) + addu $2,$24 + sltu $1,$2,$24 + multu ($18,$9) # mul_add_c(a[5],b[1],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $7,$3,$25 + mflo ($24,$18,$9) + mfhi ($25,$18,$9) + addu $2,$24 + sltu $1,$2,$24 + multu ($16,$10) # mul_add_c(a[4],b[2],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$16,$10) + mfhi ($25,$16,$10) + addu $2,$24 + sltu $1,$2,$24 + multu ($15,$11) # mul_add_c(a[3],b[3],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$15,$11) + mfhi ($25,$15,$11) + addu $2,$24 + sltu $1,$2,$24 + multu ($14,$17) # mul_add_c(a[2],b[4],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$14,$17) + mfhi ($25,$14,$17) + addu $2,$24 + sltu $1,$2,$24 + multu ($13,$19) # mul_add_c(a[1],b[5],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$13,$19) + mfhi ($25,$13,$19) + addu $2,$24 + sltu $1,$2,$24 + multu ($12,$21) # mul_add_c(a[0],b[6],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$12,$21) + mfhi ($25,$12,$21) + addu $2,$24 + sltu $1,$2,$24 + multu ($12,$6) # mul_add_c(a[0],b[7],c2,c3,c1); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + sw $2,6*4($4) # r[6]=c1; + + mflo ($24,$12,$6) + mfhi ($25,$12,$6) + addu $3,$24 + sltu $1,$3,$24 + multu ($13,$21) # mul_add_c(a[1],b[6],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $2,$7,$25 + mflo ($24,$13,$21) + mfhi ($25,$13,$21) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$19) # mul_add_c(a[2],b[5],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$14,$19) + mfhi ($25,$14,$19) + addu $3,$24 + sltu $1,$3,$24 + multu ($15,$17) # mul_add_c(a[3],b[4],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$15,$17) + mfhi ($25,$15,$17) + addu $3,$24 + sltu $1,$3,$24 + multu ($16,$11) # mul_add_c(a[4],b[3],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$16,$11) + mfhi ($25,$16,$11) + addu $3,$24 + sltu $1,$3,$24 + multu ($18,$10) # mul_add_c(a[5],b[2],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$18,$10) + mfhi ($25,$18,$10) + addu $3,$24 + sltu $1,$3,$24 + multu ($20,$9) # mul_add_c(a[6],b[1],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$20,$9) + mfhi ($25,$20,$9) + addu $3,$24 + sltu $1,$3,$24 + multu ($5,$8) # mul_add_c(a[7],b[0],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$5,$8) + mfhi ($25,$5,$8) + addu $3,$24 + sltu $1,$3,$24 + multu ($5,$9) # mul_add_c(a[7],b[1],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + sw $3,7*4($4) # r[7]=c2; + + mflo ($24,$5,$9) + mfhi ($25,$5,$9) + addu $7,$24 + sltu $1,$7,$24 + multu ($20,$10) # mul_add_c(a[6],b[2],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $3,$2,$25 + mflo ($24,$20,$10) + mfhi ($25,$20,$10) + addu $7,$24 + sltu $1,$7,$24 + multu ($18,$11) # mul_add_c(a[5],b[3],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$18,$11) + mfhi ($25,$18,$11) + addu $7,$24 + sltu $1,$7,$24 + multu ($16,$17) # mul_add_c(a[4],b[4],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$16,$17) + mfhi ($25,$16,$17) + addu $7,$24 + sltu $1,$7,$24 + multu ($15,$19) # mul_add_c(a[3],b[5],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$15,$19) + mfhi ($25,$15,$19) + addu $7,$24 + sltu $1,$7,$24 + multu ($14,$21) # mul_add_c(a[2],b[6],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$14,$21) + mfhi ($25,$14,$21) + addu $7,$24 + sltu $1,$7,$24 + multu ($13,$6) # mul_add_c(a[1],b[7],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$13,$6) + mfhi ($25,$13,$6) + addu $7,$24 + sltu $1,$7,$24 + multu ($14,$6) # mul_add_c(a[2],b[7],c1,c2,c3); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + sw $7,8*4($4) # r[8]=c3; + + mflo ($24,$14,$6) + mfhi ($25,$14,$6) + addu $2,$24 + sltu $1,$2,$24 + multu ($15,$21) # mul_add_c(a[3],b[6],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $7,$3,$25 + mflo ($24,$15,$21) + mfhi ($25,$15,$21) + addu $2,$24 + sltu $1,$2,$24 + multu ($16,$19) # mul_add_c(a[4],b[5],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$16,$19) + mfhi ($25,$16,$19) + addu $2,$24 + sltu $1,$2,$24 + multu ($18,$17) # mul_add_c(a[5],b[4],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$18,$17) + mfhi ($25,$18,$17) + addu $2,$24 + sltu $1,$2,$24 + multu ($20,$11) # mul_add_c(a[6],b[3],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$20,$11) + mfhi ($25,$20,$11) + addu $2,$24 + sltu $1,$2,$24 + multu ($5,$10) # mul_add_c(a[7],b[2],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$5,$10) + mfhi ($25,$5,$10) + addu $2,$24 + sltu $1,$2,$24 + multu ($5,$11) # mul_add_c(a[7],b[3],c2,c3,c1); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + sw $2,9*4($4) # r[9]=c1; + + mflo ($24,$5,$11) + mfhi ($25,$5,$11) + addu $3,$24 + sltu $1,$3,$24 + multu ($20,$17) # mul_add_c(a[6],b[4],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $2,$7,$25 + mflo ($24,$20,$17) + mfhi ($25,$20,$17) + addu $3,$24 + sltu $1,$3,$24 + multu ($18,$19) # mul_add_c(a[5],b[5],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$18,$19) + mfhi ($25,$18,$19) + addu $3,$24 + sltu $1,$3,$24 + multu ($16,$21) # mul_add_c(a[4],b[6],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$16,$21) + mfhi ($25,$16,$21) + addu $3,$24 + sltu $1,$3,$24 + multu ($15,$6) # mul_add_c(a[3],b[7],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$15,$6) + mfhi ($25,$15,$6) + addu $3,$24 + sltu $1,$3,$24 + multu ($16,$6) # mul_add_c(a[4],b[7],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + sw $3,10*4($4) # r[10]=c2; + + mflo ($24,$16,$6) + mfhi ($25,$16,$6) + addu $7,$24 + sltu $1,$7,$24 + multu ($18,$21) # mul_add_c(a[5],b[6],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $3,$2,$25 + mflo ($24,$18,$21) + mfhi ($25,$18,$21) + addu $7,$24 + sltu $1,$7,$24 + multu ($20,$19) # mul_add_c(a[6],b[5],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$20,$19) + mfhi ($25,$20,$19) + addu $7,$24 + sltu $1,$7,$24 + multu ($5,$17) # mul_add_c(a[7],b[4],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$5,$17) + mfhi ($25,$5,$17) + addu $7,$24 + sltu $1,$7,$24 + multu ($5,$19) # mul_add_c(a[7],b[5],c1,c2,c3); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + sw $7,11*4($4) # r[11]=c3; + + mflo ($24,$5,$19) + mfhi ($25,$5,$19) + addu $2,$24 + sltu $1,$2,$24 + multu ($20,$21) # mul_add_c(a[6],b[6],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $7,$3,$25 + mflo ($24,$20,$21) + mfhi ($25,$20,$21) + addu $2,$24 + sltu $1,$2,$24 + multu ($18,$6) # mul_add_c(a[5],b[7],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$18,$6) + mfhi ($25,$18,$6) + addu $2,$24 + sltu $1,$2,$24 + multu ($20,$6) # mul_add_c(a[6],b[7],c2,c3,c1); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + sw $2,12*4($4) # r[12]=c1; + + mflo ($24,$20,$6) + mfhi ($25,$20,$6) + addu $3,$24 + sltu $1,$3,$24 + multu ($5,$21) # mul_add_c(a[7],b[6],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $2,$7,$25 + mflo ($24,$5,$21) + mfhi ($25,$5,$21) + addu $3,$24 + sltu $1,$3,$24 + multu ($5,$6) # mul_add_c(a[7],b[7],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + sw $3,13*4($4) # r[13]=c2; + + mflo ($24,$5,$6) + mfhi ($25,$5,$6) + addu $7,$24 + sltu $1,$7,$24 + addu $25,$1 + addu $2,$25 + sw $7,14*4($4) # r[14]=c3; + sw $2,15*4($4) # r[15]=c1; + + .set noreorder + lw $21,5*4($29) + lw $20,4*4($29) + lw $19,3*4($29) + lw $18,2*4($29) + lw $17,1*4($29) + lw $16,0*4($29) + jr $31 + addu $29,6*4 +.end bn_mul_comba8 + +.align 5 +.globl bn_mul_comba4 +.ent bn_mul_comba4 +bn_mul_comba4: + .set reorder + lw $12,0($5) + lw $8,0($6) + lw $13,4($5) + lw $14,2*4($5) + multu ($12,$8) # mul_add_c(a[0],b[0],c1,c2,c3); + lw $15,3*4($5) + lw $9,4($6) + lw $10,2*4($6) + lw $11,3*4($6) + mflo ($2,$12,$8) + mfhi ($3,$12,$8) + sw $2,0($4) + + multu ($12,$9) # mul_add_c(a[0],b[1],c2,c3,c1); + mflo ($24,$12,$9) + mfhi ($25,$12,$9) + addu $3,$24 + sltu $1,$3,$24 + multu ($13,$8) # mul_add_c(a[1],b[0],c2,c3,c1); + addu $7,$25,$1 + mflo ($24,$13,$8) + mfhi ($25,$13,$8) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$8) # mul_add_c(a[2],b[0],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $2,$7,$25 + sw $3,4($4) + + mflo ($24,$14,$8) + mfhi ($25,$14,$8) + addu $7,$24 + sltu $1,$7,$24 + multu ($13,$9) # mul_add_c(a[1],b[1],c3,c1,c2); + addu $25,$1 + addu $2,$25 + mflo ($24,$13,$9) + mfhi ($25,$13,$9) + addu $7,$24 + sltu $1,$7,$24 + multu ($12,$10) # mul_add_c(a[0],b[2],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $3,$2,$25 + mflo ($24,$12,$10) + mfhi ($25,$12,$10) + addu $7,$24 + sltu $1,$7,$24 + multu ($12,$11) # mul_add_c(a[0],b[3],c1,c2,c3); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + sw $7,2*4($4) + + mflo ($24,$12,$11) + mfhi ($25,$12,$11) + addu $2,$24 + sltu $1,$2,$24 + multu ($13,$10) # mul_add_c(a[1],b[2],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $7,$3,$25 + mflo ($24,$13,$10) + mfhi ($25,$13,$10) + addu $2,$24 + sltu $1,$2,$24 + multu ($14,$9) # mul_add_c(a[2],b[1],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$14,$9) + mfhi ($25,$14,$9) + addu $2,$24 + sltu $1,$2,$24 + multu ($15,$8) # mul_add_c(a[3],b[0],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$15,$8) + mfhi ($25,$15,$8) + addu $2,$24 + sltu $1,$2,$24 + multu ($15,$9) # mul_add_c(a[3],b[1],c2,c3,c1); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + sw $2,3*4($4) + + mflo ($24,$15,$9) + mfhi ($25,$15,$9) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$10) # mul_add_c(a[2],b[2],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $2,$7,$25 + mflo ($24,$14,$10) + mfhi ($25,$14,$10) + addu $3,$24 + sltu $1,$3,$24 + multu ($13,$11) # mul_add_c(a[1],b[3],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$13,$11) + mfhi ($25,$13,$11) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$11) # mul_add_c(a[2],b[3],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + sw $3,4*4($4) + + mflo ($24,$14,$11) + mfhi ($25,$14,$11) + addu $7,$24 + sltu $1,$7,$24 + multu ($15,$10) # mul_add_c(a[3],b[2],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $3,$2,$25 + mflo ($24,$15,$10) + mfhi ($25,$15,$10) + addu $7,$24 + sltu $1,$7,$24 + multu ($15,$11) # mul_add_c(a[3],b[3],c1,c2,c3); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + sw $7,5*4($4) + + mflo ($24,$15,$11) + mfhi ($25,$15,$11) + addu $2,$24 + sltu $1,$2,$24 + addu $25,$1 + addu $3,$25 + sw $2,6*4($4) + sw $3,7*4($4) + + .set noreorder + jr $31 + nop +.end bn_mul_comba4 + +.align 5 +.globl bn_sqr_comba8 +.ent bn_sqr_comba8 +bn_sqr_comba8: + .set reorder + lw $12,0($5) + lw $13,4($5) + lw $14,2*4($5) + lw $15,3*4($5) + + multu ($12,$12) # mul_add_c(a[0],b[0],c1,c2,c3); + lw $8,4*4($5) + lw $9,5*4($5) + lw $10,6*4($5) + lw $11,7*4($5) + mflo ($2,$12,$12) + mfhi ($3,$12,$12) + sw $2,0($4) + + multu ($12,$13) # mul_add_c2(a[0],b[1],c2,c3,c1); + mflo ($24,$12,$13) + mfhi ($25,$12,$13) + slt $2,$25,$0 + sll $25,1 + multu ($14,$12) # mul_add_c2(a[2],b[0],c3,c1,c2); + slt $6,$24,$0 + addu $25,$6 + sll $24,1 + addu $3,$24 + sltu $1,$3,$24 + addu $7,$25,$1 + sw $3,4($4) + mflo ($24,$14,$12) + mfhi ($25,$14,$12) + addu $7,$24 + sltu $1,$7,$24 + multu ($13,$13) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $3,$2,$1 + addu $2,$25 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$13,$13) + mfhi ($25,$13,$13) + addu $7,$24 + sltu $1,$7,$24 + multu ($12,$15) # mul_add_c2(a[0],b[3],c1,c2,c3); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + sw $7,2*4($4) + mflo ($24,$12,$15) + mfhi ($25,$12,$15) + addu $2,$24 + sltu $1,$2,$24 + multu ($13,$14) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $7,$3,$1 + addu $3,$25 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$13,$14) + mfhi ($25,$13,$14) + addu $2,$24 + sltu $1,$2,$24 + multu ($8,$12) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $1,$3,$1 + addu $3,$25 + addu $7,$1 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$8,$12) + mfhi ($25,$8,$12) + sw $2,3*4($4) + addu $3,$24 + sltu $1,$3,$24 + multu ($15,$13) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $2,$7,$1 + addu $7,$25 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$15,$13) + mfhi ($25,$15,$13) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$14) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $1,$7,$1 + addu $7,$25 + addu $2,$1 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$14,$14) + mfhi ($25,$14,$14) + addu $3,$24 + sltu $1,$3,$24 + multu ($12,$9) # mul_add_c2(a[0],b[5],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + sw $3,4*4($4) + mflo ($24,$12,$9) + mfhi ($25,$12,$9) + addu $7,$24 + sltu $1,$7,$24 + multu ($13,$8) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $3,$2,$1 + addu $2,$25 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$13,$8) + mfhi ($25,$13,$8) + addu $7,$24 + sltu $1,$7,$24 + multu ($14,$15) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $1,$2,$1 + addu $2,$25 + addu $3,$1 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$14,$15) + mfhi ($25,$14,$15) + addu $7,$24 + sltu $1,$7,$24 + multu ($10,$12) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $1,$2,$1 + addu $2,$25 + addu $3,$1 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$10,$12) + mfhi ($25,$10,$12) + sw $7,5*4($4) + addu $2,$24 + sltu $1,$2,$24 + multu ($9,$13) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $7,$3,$1 + addu $3,$25 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$9,$13) + mfhi ($25,$9,$13) + addu $2,$24 + sltu $1,$2,$24 + multu ($8,$14) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $1,$3,$1 + addu $3,$25 + addu $7,$1 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$8,$14) + mfhi ($25,$8,$14) + addu $2,$24 + sltu $1,$2,$24 + multu ($15,$15) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $1,$3,$1 + addu $3,$25 + addu $7,$1 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$15,$15) + mfhi ($25,$15,$15) + addu $2,$24 + sltu $1,$2,$24 + multu ($12,$11) # mul_add_c2(a[0],b[7],c2,c3,c1); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + sw $2,6*4($4) + mflo ($24,$12,$11) + mfhi ($25,$12,$11) + addu $3,$24 + sltu $1,$3,$24 + multu ($13,$10) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $2,$7,$1 + addu $7,$25 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$13,$10) + mfhi ($25,$13,$10) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$9) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $1,$7,$1 + addu $7,$25 + addu $2,$1 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$14,$9) + mfhi ($25,$14,$9) + addu $3,$24 + sltu $1,$3,$24 + multu ($15,$8) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $1,$7,$1 + addu $7,$25 + addu $2,$1 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$15,$8) + mfhi ($25,$15,$8) + addu $3,$24 + sltu $1,$3,$24 + multu ($11,$13) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $1,$7,$1 + addu $7,$25 + addu $2,$1 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$11,$13) + mfhi ($25,$11,$13) + sw $3,7*4($4) + addu $7,$24 + sltu $1,$7,$24 + multu ($10,$14) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $3,$2,$1 + addu $2,$25 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$10,$14) + mfhi ($25,$10,$14) + addu $7,$24 + sltu $1,$7,$24 + multu ($9,$15) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $1,$2,$1 + addu $2,$25 + addu $3,$1 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$9,$15) + mfhi ($25,$9,$15) + addu $7,$24 + sltu $1,$7,$24 + multu ($8,$8) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $1,$2,$1 + addu $2,$25 + addu $3,$1 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$8,$8) + mfhi ($25,$8,$8) + addu $7,$24 + sltu $1,$7,$24 + multu ($14,$11) # mul_add_c2(a[2],b[7],c1,c2,c3); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + sw $7,8*4($4) + mflo ($24,$14,$11) + mfhi ($25,$14,$11) + addu $2,$24 + sltu $1,$2,$24 + multu ($15,$10) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $7,$3,$1 + addu $3,$25 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$15,$10) + mfhi ($25,$15,$10) + addu $2,$24 + sltu $1,$2,$24 + multu ($8,$9) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $1,$3,$1 + addu $3,$25 + addu $7,$1 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$8,$9) + mfhi ($25,$8,$9) + addu $2,$24 + sltu $1,$2,$24 + multu ($11,$15) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $1,$3,$1 + addu $3,$25 + addu $7,$1 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$11,$15) + mfhi ($25,$11,$15) + sw $2,9*4($4) + addu $3,$24 + sltu $1,$3,$24 + multu ($10,$8) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $2,$7,$1 + addu $7,$25 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$10,$8) + mfhi ($25,$10,$8) + addu $3,$24 + sltu $1,$3,$24 + multu ($9,$9) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $1,$7,$1 + addu $7,$25 + addu $2,$1 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$9,$9) + mfhi ($25,$9,$9) + addu $3,$24 + sltu $1,$3,$24 + multu ($8,$11) # mul_add_c2(a[4],b[7],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + sw $3,10*4($4) + mflo ($24,$8,$11) + mfhi ($25,$8,$11) + addu $7,$24 + sltu $1,$7,$24 + multu ($9,$10) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $3,$2,$1 + addu $2,$25 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$9,$10) + mfhi ($25,$9,$10) + addu $7,$24 + sltu $1,$7,$24 + multu ($11,$9) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $1,$2,$1 + addu $2,$25 + addu $3,$1 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$11,$9) + mfhi ($25,$11,$9) + sw $7,11*4($4) + addu $2,$24 + sltu $1,$2,$24 + multu ($10,$10) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $7,$3,$1 + addu $3,$25 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$10,$10) + mfhi ($25,$10,$10) + addu $2,$24 + sltu $1,$2,$24 + multu ($10,$11) # mul_add_c2(a[6],b[7],c2,c3,c1); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + sw $2,12*4($4) + mflo ($24,$10,$11) + mfhi ($25,$10,$11) + addu $3,$24 + sltu $1,$3,$24 + multu ($11,$11) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $2,$7,$1 + addu $7,$25 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$11,$11) + mfhi ($25,$11,$11) + sw $3,13*4($4) + + addu $7,$24 + sltu $1,$7,$24 + addu $25,$1 + addu $2,$25 + sw $7,14*4($4) + sw $2,15*4($4) + + .set noreorder + jr $31 + nop +.end bn_sqr_comba8 + +.align 5 +.globl bn_sqr_comba4 +.ent bn_sqr_comba4 +bn_sqr_comba4: + .set reorder + lw $12,0($5) + lw $13,4($5) + multu ($12,$12) # mul_add_c(a[0],b[0],c1,c2,c3); + lw $14,2*4($5) + lw $15,3*4($5) + mflo ($2,$12,$12) + mfhi ($3,$12,$12) + sw $2,0($4) + + multu ($12,$13) # mul_add_c2(a[0],b[1],c2,c3,c1); + mflo ($24,$12,$13) + mfhi ($25,$12,$13) + slt $2,$25,$0 + sll $25,1 + multu ($14,$12) # mul_add_c2(a[2],b[0],c3,c1,c2); + slt $6,$24,$0 + addu $25,$6 + sll $24,1 + addu $3,$24 + sltu $1,$3,$24 + addu $7,$25,$1 + sw $3,4($4) + mflo ($24,$14,$12) + mfhi ($25,$14,$12) + addu $7,$24 + sltu $1,$7,$24 + multu ($13,$13) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $3,$2,$1 + addu $2,$25 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$13,$13) + mfhi ($25,$13,$13) + addu $7,$24 + sltu $1,$7,$24 + multu ($12,$15) # mul_add_c2(a[0],b[3],c1,c2,c3); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + sw $7,2*4($4) + mflo ($24,$12,$15) + mfhi ($25,$12,$15) + addu $2,$24 + sltu $1,$2,$24 + multu ($13,$14) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $7,$3,$1 + addu $3,$25 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$13,$14) + mfhi ($25,$13,$14) + addu $2,$24 + sltu $1,$2,$24 + multu ($15,$13) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $1,$3,$1 + addu $3,$25 + addu $7,$1 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$15,$13) + mfhi ($25,$15,$13) + sw $2,3*4($4) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$14) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $2,$7,$1 + addu $7,$25 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$14,$14) + mfhi ($25,$14,$14) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$15) # mul_add_c2(a[2],b[3],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + sw $3,4*4($4) + mflo ($24,$14,$15) + mfhi ($25,$14,$15) + addu $7,$24 + sltu $1,$7,$24 + multu ($15,$15) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $3,$2,$1 + addu $2,$25 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$15,$15) + mfhi ($25,$15,$15) + sw $7,5*4($4) + + addu $2,$24 + sltu $1,$2,$24 + addu $25,$1 + addu $3,$25 + sw $2,6*4($4) + sw $3,7*4($4) + + .set noreorder + jr $31 + nop +.end bn_sqr_comba4 diff -urN a/deps/openssl/config/archs/linux-mips/asm/crypto/bn/mips-mont.S b/deps/openssl/config/archs/linux-mips/asm/crypto/bn/mips-mont.S --- a/deps/openssl/config/archs/linux-mips/asm/crypto/bn/mips-mont.S 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mips/asm/crypto/bn/mips-mont.S 2019-12-25 13:49:19.980298817 +0900 @@ -0,0 +1,284 @@ +#include "mips_arch.h" + +.text + +.set noat +.set noreorder + +.align 5 +.globl bn_mul_mont +.ent bn_mul_mont +bn_mul_mont: + lw $8,16($29) + lw $9,20($29) + slt $1,$9,4 + bnez $1,1f + li $2,0 + slt $1,$9,17 # on in-order CPU + bnez $1,bn_mul_mont_internal + nop +1: jr $31 + li $4,0 +.end bn_mul_mont + +.align 5 +.ent bn_mul_mont_internal +bn_mul_mont_internal: + .frame $30,14*4,$31 + .mask 0x40000000|16711680,-4 + subu $29,14*4 + sw $30,(14-1)*4($29) + sw $23,(14-2)*4($29) + sw $22,(14-3)*4($29) + sw $21,(14-4)*4($29) + sw $20,(14-5)*4($29) + sw $19,(14-6)*4($29) + sw $18,(14-7)*4($29) + sw $17,(14-8)*4($29) + sw $16,(14-9)*4($29) + move $30,$29 + + .set reorder + lw $8,0($8) + lw $13,0($6) # bp[0] + lw $12,0($5) # ap[0] + lw $14,0($7) # np[0] + + subu $29,2*4 # place for two extra words + sll $9,2 + li $1,-4096 + subu $29,$9 + and $29,$1 + + multu ($12,$13) + lw $17,4($5) + lw $19,4($7) + mflo ($10,$12,$13) + mfhi ($11,$12,$13) + multu ($10,$8) + mflo ($23,$10,$8) + + multu ($17,$13) + mflo ($16,$17,$13) + mfhi ($17,$17,$13) + + multu ($14,$23) + mflo ($24,$14,$23) + mfhi ($25,$14,$23) + multu ($19,$23) + addu $24,$10 + sltu $1,$24,$10 + addu $25,$1 + mflo ($18,$19,$23) + mfhi ($19,$19,$23) + + move $15,$29 + li $22,2*4 +.align 4 +.L1st: + .set noreorder + addu $12,$5,$22 + addu $14,$7,$22 + lw $12,($12) + lw $14,($14) + + multu ($12,$13) + addu $10,$16,$11 + addu $24,$18,$25 + sltu $1,$10,$11 + sltu $2,$24,$25 + addu $11,$17,$1 + addu $25,$19,$2 + mflo ($16,$12,$13) + mfhi ($17,$12,$13) + + addu $24,$10 + sltu $1,$24,$10 + multu ($14,$23) + addu $25,$1 + addu $22,4 + sw $24,($15) + sltu $2,$22,$9 + mflo ($18,$14,$23) + mfhi ($19,$14,$23) + + bnez $2,.L1st + addu $15,4 + .set reorder + + addu $10,$16,$11 + sltu $1,$10,$11 + addu $11,$17,$1 + + addu $24,$18,$25 + sltu $2,$24,$25 + addu $25,$19,$2 + addu $24,$10 + sltu $1,$24,$10 + addu $25,$1 + + sw $24,($15) + + addu $25,$11 + sltu $1,$25,$11 + sw $25,4($15) + sw $1,2*4($15) + + li $21,4 +.align 4 +.Louter: + addu $13,$6,$21 + lw $13,($13) + lw $12,($5) + lw $17,4($5) + lw $20,($29) + + multu ($12,$13) + lw $14,($7) + lw $19,4($7) + mflo ($10,$12,$13) + mfhi ($11,$12,$13) + addu $10,$20 + multu ($10,$8) + sltu $1,$10,$20 + addu $11,$1 + mflo ($23,$10,$8) + + multu ($17,$13) + mflo ($16,$17,$13) + mfhi ($17,$17,$13) + + multu ($14,$23) + mflo ($24,$14,$23) + mfhi ($25,$14,$23) + + multu ($19,$23) + addu $24,$10 + sltu $1,$24,$10 + addu $25,$1 + mflo ($18,$19,$23) + mfhi ($19,$19,$23) + + move $15,$29 + li $22,2*4 + lw $20,4($15) +.align 4 +.Linner: + .set noreorder + addu $12,$5,$22 + addu $14,$7,$22 + lw $12,($12) + lw $14,($14) + + multu ($12,$13) + addu $10,$16,$11 + addu $24,$18,$25 + sltu $1,$10,$11 + sltu $2,$24,$25 + addu $11,$17,$1 + addu $25,$19,$2 + mflo ($16,$12,$13) + mfhi ($17,$12,$13) + + addu $10,$20 + addu $22,4 + multu ($14,$23) + sltu $1,$10,$20 + addu $24,$10 + addu $11,$1 + sltu $2,$24,$10 + lw $20,2*4($15) + addu $25,$2 + sltu $1,$22,$9 + mflo ($18,$14,$23) + mfhi ($19,$14,$23) + sw $24,($15) + bnez $1,.Linner + addu $15,4 + .set reorder + + addu $10,$16,$11 + sltu $1,$10,$11 + addu $11,$17,$1 + addu $10,$20 + sltu $2,$10,$20 + addu $11,$2 + + lw $20,2*4($15) + addu $24,$18,$25 + sltu $1,$24,$25 + addu $25,$19,$1 + addu $24,$10 + sltu $2,$24,$10 + addu $25,$2 + sw $24,($15) + + addu $24,$25,$11 + sltu $25,$24,$11 + addu $24,$20 + sltu $1,$24,$20 + addu $25,$1 + sw $24,4($15) + sw $25,2*4($15) + + addu $21,4 + sltu $2,$21,$9 + bnez $2,.Louter + + .set noreorder + addu $20,$29,$9 # &tp[num] + move $15,$29 + move $5,$29 + li $11,0 # clear borrow bit + +.align 4 +.Lsub: lw $10,($15) + lw $24,($7) + addu $15,4 + addu $7,4 + subu $24,$10,$24 # tp[i]-np[i] + sgtu $1,$24,$10 + subu $10,$24,$11 + sgtu $11,$10,$24 + sw $10,($4) + or $11,$1 + sltu $1,$15,$20 + bnez $1,.Lsub + addu $4,4 + + subu $11,$25,$11 # handle upmost overflow bit + move $15,$29 + subu $4,$9 # restore rp + not $25,$11 + +.Lcopy: lw $14,($15) # conditional move + lw $12,($4) + sw $0,($15) + addu $15,4 + and $14,$11 + and $12,$25 + or $12,$14 + sltu $1,$15,$20 + sw $12,($4) + bnez $1,.Lcopy + addu $4,4 + + li $4,1 + li $2,1 + + .set noreorder + move $29,$30 + lw $30,(14-1)*4($29) + lw $23,(14-2)*4($29) + lw $22,(14-3)*4($29) + lw $21,(14-4)*4($29) + lw $20,(14-5)*4($29) + lw $19,(14-6)*4($29) + lw $18,(14-7)*4($29) + lw $17,(14-8)*4($29) + lw $16,(14-9)*4($29) + jr $31 + addu $29,14*4 +.end bn_mul_mont_internal +.rdata +.asciiz "Montgomery Multiplication for MIPS, CRYPTOGAMS by " diff -urN a/deps/openssl/config/archs/linux-mips/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-mips/asm/crypto/buildinf.h --- a/deps/openssl/config/archs/linux-mips/asm/crypto/buildinf.h 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mips/asm/crypto/buildinf.h 2019-12-25 13:49:19.980298817 +0900 @@ -0,0 +1,33 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-mips32" +#define DATE "built on: Thu Feb 28 07:47:22 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','m','a', + 'b','i','=','3','2',' ','-','m','i','p','s','2',' ','-','W','a', + ',','-','-','n','o','e','x','e','c','s','t','a','c','k',' ','-', + 'W','a','l','l',' ','-','O','3',' ','-','D','O','P','E','N','S', + 'S','L','_','U','S','E','_','N','O','D','E','L','E','T','E',' ', + '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', + 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','M', + 'O','N','T',' ','-','D','S','H','A','1','_','A','S','M',' ','-', + 'D','S','H','A','2','5','6','_','A','S','M',' ','-','D','A','E', + 'S','_','A','S','M',' ','-','D','N','D','E','B','U','G','\0' +}; diff -urN a/deps/openssl/config/archs/linux-mips/asm/crypto/include/internal/bn_conf.h b/deps/openssl/config/archs/linux-mips/asm/crypto/include/internal/bn_conf.h --- a/deps/openssl/config/archs/linux-mips/asm/crypto/include/internal/bn_conf.h 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mips/asm/crypto/include/internal/bn_conf.h 2019-12-25 13:49:19.980298817 +0900 @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#undef SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#define THIRTY_TWO_BIT + +#endif diff -urN a/deps/openssl/config/archs/linux-mips/asm/crypto/include/internal/dso_conf.h b/deps/openssl/config/archs/linux-mips/asm/crypto/include/internal/dso_conf.h --- a/deps/openssl/config/archs/linux-mips/asm/crypto/include/internal/dso_conf.h 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mips/asm/crypto/include/internal/dso_conf.h 2019-12-25 13:49:19.980298817 +0900 @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff -urN a/deps/openssl/config/archs/linux-mips/asm/crypto/sha/sha1-mips.S b/deps/openssl/config/archs/linux-mips/asm/crypto/sha/sha1-mips.S --- a/deps/openssl/config/archs/linux-mips/asm/crypto/sha/sha1-mips.S 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mips/asm/crypto/sha/sha1-mips.S 2019-12-25 13:49:19.980298817 +0900 @@ -0,0 +1,2815 @@ +#include "mips_arch.h" + +.text + +.set noat +.set noreorder +.align 5 +.globl sha1_block_data_order +.ent sha1_block_data_order +sha1_block_data_order: + .frame $29,16*4,$31 + .mask 0xc0ff0000,-4 + .set noreorder + subu $29,16*4 + sw $31,(16-1)*4($29) + sw $30,(16-2)*4($29) + sw $23,(16-3)*4($29) + sw $22,(16-4)*4($29) + sw $21,(16-5)*4($29) + sw $20,(16-6)*4($29) + sw $19,(16-7)*4($29) + sw $18,(16-8)*4($29) + sw $17,(16-9)*4($29) + sw $16,(16-10)*4($29) + sll $6,6 + addu $6,$5 + sw $6,0($29) + lw $1,0($4) + lw $2,4($4) + lw $3,8($4) + lw $7,12($4) + b .Loop + lw $24,16($4) +.align 4 +.Loop: + .set reorder +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lui $31,0x5a82 + lw $8,($5) + ori $31,0x7999 # K_00_19 +#else + lwl $8,0($5) + lui $31,0x5a82 + lwr $8,3($5) + ori $31,0x7999 # K_00_19 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $24,$31 # 0 + xor $25,$3,$7 + rotr $6,$1,27 + and $25,$2 + addu $24,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $9,1*4($5) +#else + lwl $9,1*4+0($5) + lwr $9,1*4+3($5) +#endif + xor $25,$7 + addu $24,$8 + rotr $2,$2,2 + addu $24,$25 +#else + lwl $9,1*4+0($5) + sll $25,$1,5 # 0 + addu $24,$31 + lwr $9,1*4+3($5) + srl $6,$1,27 + addu $24,$25 + xor $25,$3,$7 + addu $24,$6 + sll $30,$2,30 + and $25,$2 + srl $2,$2,2 + xor $25,$7 + addu $24,$8 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $7,$31 # 1 + xor $25,$2,$3 + rotr $6,$24,27 + and $25,$1 + addu $7,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $10,2*4($5) +#else + lwl $10,2*4+0($5) + lwr $10,2*4+3($5) +#endif + xor $25,$3 + addu $7,$9 + rotr $1,$1,2 + addu $7,$25 +#else + lwl $10,2*4+0($5) + sll $25,$24,5 # 1 + addu $7,$31 + lwr $10,2*4+3($5) + srl $6,$24,27 + addu $7,$25 + xor $25,$2,$3 + addu $7,$6 + sll $30,$1,30 + and $25,$1 + srl $1,$1,2 + xor $25,$3 + addu $7,$9 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $3,$31 # 2 + xor $25,$1,$2 + rotr $6,$7,27 + and $25,$24 + addu $3,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $11,3*4($5) +#else + lwl $11,3*4+0($5) + lwr $11,3*4+3($5) +#endif + xor $25,$2 + addu $3,$10 + rotr $24,$24,2 + addu $3,$25 +#else + lwl $11,3*4+0($5) + sll $25,$7,5 # 2 + addu $3,$31 + lwr $11,3*4+3($5) + srl $6,$7,27 + addu $3,$25 + xor $25,$1,$2 + addu $3,$6 + sll $30,$24,30 + and $25,$24 + srl $24,$24,2 + xor $25,$2 + addu $3,$10 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $2,$31 # 3 + xor $25,$24,$1 + rotr $6,$3,27 + and $25,$7 + addu $2,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $12,4*4($5) +#else + lwl $12,4*4+0($5) + lwr $12,4*4+3($5) +#endif + xor $25,$1 + addu $2,$11 + rotr $7,$7,2 + addu $2,$25 +#else + lwl $12,4*4+0($5) + sll $25,$3,5 # 3 + addu $2,$31 + lwr $12,4*4+3($5) + srl $6,$3,27 + addu $2,$25 + xor $25,$24,$1 + addu $2,$6 + sll $30,$7,30 + and $25,$7 + srl $7,$7,2 + xor $25,$1 + addu $2,$11 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $1,$31 # 4 + xor $25,$7,$24 + rotr $6,$2,27 + and $25,$3 + addu $1,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $13,5*4($5) +#else + lwl $13,5*4+0($5) + lwr $13,5*4+3($5) +#endif + xor $25,$24 + addu $1,$12 + rotr $3,$3,2 + addu $1,$25 +#else + lwl $13,5*4+0($5) + sll $25,$2,5 # 4 + addu $1,$31 + lwr $13,5*4+3($5) + srl $6,$2,27 + addu $1,$25 + xor $25,$7,$24 + addu $1,$6 + sll $30,$3,30 + and $25,$3 + srl $3,$3,2 + xor $25,$24 + addu $1,$12 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $24,$31 # 5 + xor $25,$3,$7 + rotr $6,$1,27 + and $25,$2 + addu $24,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $14,6*4($5) +#else + lwl $14,6*4+0($5) + lwr $14,6*4+3($5) +#endif + xor $25,$7 + addu $24,$13 + rotr $2,$2,2 + addu $24,$25 +#else + lwl $14,6*4+0($5) + sll $25,$1,5 # 5 + addu $24,$31 + lwr $14,6*4+3($5) + srl $6,$1,27 + addu $24,$25 + xor $25,$3,$7 + addu $24,$6 + sll $30,$2,30 + and $25,$2 + srl $2,$2,2 + xor $25,$7 + addu $24,$13 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $7,$31 # 6 + xor $25,$2,$3 + rotr $6,$24,27 + and $25,$1 + addu $7,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $15,7*4($5) +#else + lwl $15,7*4+0($5) + lwr $15,7*4+3($5) +#endif + xor $25,$3 + addu $7,$14 + rotr $1,$1,2 + addu $7,$25 +#else + lwl $15,7*4+0($5) + sll $25,$24,5 # 6 + addu $7,$31 + lwr $15,7*4+3($5) + srl $6,$24,27 + addu $7,$25 + xor $25,$2,$3 + addu $7,$6 + sll $30,$1,30 + and $25,$1 + srl $1,$1,2 + xor $25,$3 + addu $7,$14 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $3,$31 # 7 + xor $25,$1,$2 + rotr $6,$7,27 + and $25,$24 + addu $3,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $16,8*4($5) +#else + lwl $16,8*4+0($5) + lwr $16,8*4+3($5) +#endif + xor $25,$2 + addu $3,$15 + rotr $24,$24,2 + addu $3,$25 +#else + lwl $16,8*4+0($5) + sll $25,$7,5 # 7 + addu $3,$31 + lwr $16,8*4+3($5) + srl $6,$7,27 + addu $3,$25 + xor $25,$1,$2 + addu $3,$6 + sll $30,$24,30 + and $25,$24 + srl $24,$24,2 + xor $25,$2 + addu $3,$15 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $2,$31 # 8 + xor $25,$24,$1 + rotr $6,$3,27 + and $25,$7 + addu $2,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $17,9*4($5) +#else + lwl $17,9*4+0($5) + lwr $17,9*4+3($5) +#endif + xor $25,$1 + addu $2,$16 + rotr $7,$7,2 + addu $2,$25 +#else + lwl $17,9*4+0($5) + sll $25,$3,5 # 8 + addu $2,$31 + lwr $17,9*4+3($5) + srl $6,$3,27 + addu $2,$25 + xor $25,$24,$1 + addu $2,$6 + sll $30,$7,30 + and $25,$7 + srl $7,$7,2 + xor $25,$1 + addu $2,$16 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $1,$31 # 9 + xor $25,$7,$24 + rotr $6,$2,27 + and $25,$3 + addu $1,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $18,10*4($5) +#else + lwl $18,10*4+0($5) + lwr $18,10*4+3($5) +#endif + xor $25,$24 + addu $1,$17 + rotr $3,$3,2 + addu $1,$25 +#else + lwl $18,10*4+0($5) + sll $25,$2,5 # 9 + addu $1,$31 + lwr $18,10*4+3($5) + srl $6,$2,27 + addu $1,$25 + xor $25,$7,$24 + addu $1,$6 + sll $30,$3,30 + and $25,$3 + srl $3,$3,2 + xor $25,$24 + addu $1,$17 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $24,$31 # 10 + xor $25,$3,$7 + rotr $6,$1,27 + and $25,$2 + addu $24,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $19,11*4($5) +#else + lwl $19,11*4+0($5) + lwr $19,11*4+3($5) +#endif + xor $25,$7 + addu $24,$18 + rotr $2,$2,2 + addu $24,$25 +#else + lwl $19,11*4+0($5) + sll $25,$1,5 # 10 + addu $24,$31 + lwr $19,11*4+3($5) + srl $6,$1,27 + addu $24,$25 + xor $25,$3,$7 + addu $24,$6 + sll $30,$2,30 + and $25,$2 + srl $2,$2,2 + xor $25,$7 + addu $24,$18 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $7,$31 # 11 + xor $25,$2,$3 + rotr $6,$24,27 + and $25,$1 + addu $7,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $20,12*4($5) +#else + lwl $20,12*4+0($5) + lwr $20,12*4+3($5) +#endif + xor $25,$3 + addu $7,$19 + rotr $1,$1,2 + addu $7,$25 +#else + lwl $20,12*4+0($5) + sll $25,$24,5 # 11 + addu $7,$31 + lwr $20,12*4+3($5) + srl $6,$24,27 + addu $7,$25 + xor $25,$2,$3 + addu $7,$6 + sll $30,$1,30 + and $25,$1 + srl $1,$1,2 + xor $25,$3 + addu $7,$19 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $3,$31 # 12 + xor $25,$1,$2 + rotr $6,$7,27 + and $25,$24 + addu $3,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $21,13*4($5) +#else + lwl $21,13*4+0($5) + lwr $21,13*4+3($5) +#endif + xor $25,$2 + addu $3,$20 + rotr $24,$24,2 + addu $3,$25 +#else + lwl $21,13*4+0($5) + sll $25,$7,5 # 12 + addu $3,$31 + lwr $21,13*4+3($5) + srl $6,$7,27 + addu $3,$25 + xor $25,$1,$2 + addu $3,$6 + sll $30,$24,30 + and $25,$24 + srl $24,$24,2 + xor $25,$2 + addu $3,$20 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $2,$31 # 13 + xor $25,$24,$1 + rotr $6,$3,27 + and $25,$7 + addu $2,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $22,14*4($5) +#else + lwl $22,14*4+0($5) + lwr $22,14*4+3($5) +#endif + xor $25,$1 + addu $2,$21 + rotr $7,$7,2 + addu $2,$25 +#else + lwl $22,14*4+0($5) + sll $25,$3,5 # 13 + addu $2,$31 + lwr $22,14*4+3($5) + srl $6,$3,27 + addu $2,$25 + xor $25,$24,$1 + addu $2,$6 + sll $30,$7,30 + and $25,$7 + srl $7,$7,2 + xor $25,$1 + addu $2,$21 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $1,$31 # 14 + xor $25,$7,$24 + rotr $6,$2,27 + and $25,$3 + addu $1,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $23,15*4($5) +#else + lwl $23,15*4+0($5) + lwr $23,15*4+3($5) +#endif + xor $25,$24 + addu $1,$22 + rotr $3,$3,2 + addu $1,$25 +#else + lwl $23,15*4+0($5) + sll $25,$2,5 # 14 + addu $1,$31 + lwr $23,15*4+3($5) + srl $6,$2,27 + addu $1,$25 + xor $25,$7,$24 + addu $1,$6 + sll $30,$3,30 + and $25,$3 + srl $3,$3,2 + xor $25,$24 + addu $1,$22 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $24,$31 # 15 + xor $8,$10 + xor $25,$3,$7 + rotr $6,$1,27 + xor $8,$16 + and $25,$2 + addu $24,$6 + xor $8,$21 + xor $25,$7 + addu $24,$23 + rotr $8,$8,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $8,$10 + sll $25,$1,5 # 15 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $8,$16 + xor $25,$3,$7 + addu $24,$6 + xor $8,$21 + sll $30,$2,30 + and $25,$2 + srl $6,$8,31 + addu $8,$8 + srl $2,$2,2 + xor $25,$7 + or $8,$6 + addu $24,$23 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $7,$31 # 16 + xor $9,$11 + xor $25,$2,$3 + rotr $6,$24,27 + xor $9,$17 + and $25,$1 + addu $7,$6 + xor $9,$22 + xor $25,$3 + addu $7,$8 + rotr $9,$9,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $9,$11 + sll $25,$24,5 # 16 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $9,$17 + xor $25,$2,$3 + addu $7,$6 + xor $9,$22 + sll $30,$1,30 + and $25,$1 + srl $6,$9,31 + addu $9,$9 + srl $1,$1,2 + xor $25,$3 + or $9,$6 + addu $7,$8 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $3,$31 # 17 + xor $10,$12 + xor $25,$1,$2 + rotr $6,$7,27 + xor $10,$18 + and $25,$24 + addu $3,$6 + xor $10,$23 + xor $25,$2 + addu $3,$9 + rotr $10,$10,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $10,$12 + sll $25,$7,5 # 17 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $10,$18 + xor $25,$1,$2 + addu $3,$6 + xor $10,$23 + sll $30,$24,30 + and $25,$24 + srl $6,$10,31 + addu $10,$10 + srl $24,$24,2 + xor $25,$2 + or $10,$6 + addu $3,$9 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $2,$31 # 18 + xor $11,$13 + xor $25,$24,$1 + rotr $6,$3,27 + xor $11,$19 + and $25,$7 + addu $2,$6 + xor $11,$8 + xor $25,$1 + addu $2,$10 + rotr $11,$11,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $11,$13 + sll $25,$3,5 # 18 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $11,$19 + xor $25,$24,$1 + addu $2,$6 + xor $11,$8 + sll $30,$7,30 + and $25,$7 + srl $6,$11,31 + addu $11,$11 + srl $7,$7,2 + xor $25,$1 + or $11,$6 + addu $2,$10 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $1,$31 # 19 + xor $12,$14 + xor $25,$7,$24 + rotr $6,$2,27 + xor $12,$20 + and $25,$3 + addu $1,$6 + xor $12,$9 + xor $25,$24 + addu $1,$11 + rotr $12,$12,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $12,$14 + sll $25,$2,5 # 19 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $12,$20 + xor $25,$7,$24 + addu $1,$6 + xor $12,$9 + sll $30,$3,30 + and $25,$3 + srl $6,$12,31 + addu $12,$12 + srl $3,$3,2 + xor $25,$24 + or $12,$6 + addu $1,$11 + or $3,$30 + addu $1,$25 +#endif + lui $31,0x6ed9 + ori $31,0xeba1 # K_20_39 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $13,$15 + addu $24,$31 # 20 + rotr $6,$1,27 + xor $13,$21 + xor $25,$3,$7 + addu $24,$6 + xor $13,$10 + xor $25,$2 + addu $24,$12 + rotr $13,$13,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $13,$15 + sll $25,$1,5 # 20 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $13,$21 + xor $25,$3,$7 + addu $24,$6 + xor $13,$10 + sll $30,$2,30 + xor $25,$2 + srl $6,$13,31 + addu $13,$13 + srl $2,$2,2 + addu $24,$12 + or $13,$6 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $14,$16 + addu $7,$31 # 21 + rotr $6,$24,27 + xor $14,$22 + xor $25,$2,$3 + addu $7,$6 + xor $14,$11 + xor $25,$1 + addu $7,$13 + rotr $14,$14,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $14,$16 + sll $25,$24,5 # 21 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $14,$22 + xor $25,$2,$3 + addu $7,$6 + xor $14,$11 + sll $30,$1,30 + xor $25,$1 + srl $6,$14,31 + addu $14,$14 + srl $1,$1,2 + addu $7,$13 + or $14,$6 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $15,$17 + addu $3,$31 # 22 + rotr $6,$7,27 + xor $15,$23 + xor $25,$1,$2 + addu $3,$6 + xor $15,$12 + xor $25,$24 + addu $3,$14 + rotr $15,$15,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $15,$17 + sll $25,$7,5 # 22 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $15,$23 + xor $25,$1,$2 + addu $3,$6 + xor $15,$12 + sll $30,$24,30 + xor $25,$24 + srl $6,$15,31 + addu $15,$15 + srl $24,$24,2 + addu $3,$14 + or $15,$6 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $16,$18 + addu $2,$31 # 23 + rotr $6,$3,27 + xor $16,$8 + xor $25,$24,$1 + addu $2,$6 + xor $16,$13 + xor $25,$7 + addu $2,$15 + rotr $16,$16,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $16,$18 + sll $25,$3,5 # 23 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $16,$8 + xor $25,$24,$1 + addu $2,$6 + xor $16,$13 + sll $30,$7,30 + xor $25,$7 + srl $6,$16,31 + addu $16,$16 + srl $7,$7,2 + addu $2,$15 + or $16,$6 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $17,$19 + addu $1,$31 # 24 + rotr $6,$2,27 + xor $17,$9 + xor $25,$7,$24 + addu $1,$6 + xor $17,$14 + xor $25,$3 + addu $1,$16 + rotr $17,$17,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $17,$19 + sll $25,$2,5 # 24 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $17,$9 + xor $25,$7,$24 + addu $1,$6 + xor $17,$14 + sll $30,$3,30 + xor $25,$3 + srl $6,$17,31 + addu $17,$17 + srl $3,$3,2 + addu $1,$16 + or $17,$6 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $18,$20 + addu $24,$31 # 25 + rotr $6,$1,27 + xor $18,$10 + xor $25,$3,$7 + addu $24,$6 + xor $18,$15 + xor $25,$2 + addu $24,$17 + rotr $18,$18,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $18,$20 + sll $25,$1,5 # 25 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $18,$10 + xor $25,$3,$7 + addu $24,$6 + xor $18,$15 + sll $30,$2,30 + xor $25,$2 + srl $6,$18,31 + addu $18,$18 + srl $2,$2,2 + addu $24,$17 + or $18,$6 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $19,$21 + addu $7,$31 # 26 + rotr $6,$24,27 + xor $19,$11 + xor $25,$2,$3 + addu $7,$6 + xor $19,$16 + xor $25,$1 + addu $7,$18 + rotr $19,$19,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $19,$21 + sll $25,$24,5 # 26 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $19,$11 + xor $25,$2,$3 + addu $7,$6 + xor $19,$16 + sll $30,$1,30 + xor $25,$1 + srl $6,$19,31 + addu $19,$19 + srl $1,$1,2 + addu $7,$18 + or $19,$6 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $20,$22 + addu $3,$31 # 27 + rotr $6,$7,27 + xor $20,$12 + xor $25,$1,$2 + addu $3,$6 + xor $20,$17 + xor $25,$24 + addu $3,$19 + rotr $20,$20,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $20,$22 + sll $25,$7,5 # 27 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $20,$12 + xor $25,$1,$2 + addu $3,$6 + xor $20,$17 + sll $30,$24,30 + xor $25,$24 + srl $6,$20,31 + addu $20,$20 + srl $24,$24,2 + addu $3,$19 + or $20,$6 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $21,$23 + addu $2,$31 # 28 + rotr $6,$3,27 + xor $21,$13 + xor $25,$24,$1 + addu $2,$6 + xor $21,$18 + xor $25,$7 + addu $2,$20 + rotr $21,$21,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $21,$23 + sll $25,$3,5 # 28 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $21,$13 + xor $25,$24,$1 + addu $2,$6 + xor $21,$18 + sll $30,$7,30 + xor $25,$7 + srl $6,$21,31 + addu $21,$21 + srl $7,$7,2 + addu $2,$20 + or $21,$6 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $22,$8 + addu $1,$31 # 29 + rotr $6,$2,27 + xor $22,$14 + xor $25,$7,$24 + addu $1,$6 + xor $22,$19 + xor $25,$3 + addu $1,$21 + rotr $22,$22,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $22,$8 + sll $25,$2,5 # 29 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $22,$14 + xor $25,$7,$24 + addu $1,$6 + xor $22,$19 + sll $30,$3,30 + xor $25,$3 + srl $6,$22,31 + addu $22,$22 + srl $3,$3,2 + addu $1,$21 + or $22,$6 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $23,$9 + addu $24,$31 # 30 + rotr $6,$1,27 + xor $23,$15 + xor $25,$3,$7 + addu $24,$6 + xor $23,$20 + xor $25,$2 + addu $24,$22 + rotr $23,$23,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $23,$9 + sll $25,$1,5 # 30 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $23,$15 + xor $25,$3,$7 + addu $24,$6 + xor $23,$20 + sll $30,$2,30 + xor $25,$2 + srl $6,$23,31 + addu $23,$23 + srl $2,$2,2 + addu $24,$22 + or $23,$6 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $8,$10 + addu $7,$31 # 31 + rotr $6,$24,27 + xor $8,$16 + xor $25,$2,$3 + addu $7,$6 + xor $8,$21 + xor $25,$1 + addu $7,$23 + rotr $8,$8,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $8,$10 + sll $25,$24,5 # 31 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $8,$16 + xor $25,$2,$3 + addu $7,$6 + xor $8,$21 + sll $30,$1,30 + xor $25,$1 + srl $6,$8,31 + addu $8,$8 + srl $1,$1,2 + addu $7,$23 + or $8,$6 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $9,$11 + addu $3,$31 # 32 + rotr $6,$7,27 + xor $9,$17 + xor $25,$1,$2 + addu $3,$6 + xor $9,$22 + xor $25,$24 + addu $3,$8 + rotr $9,$9,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $9,$11 + sll $25,$7,5 # 32 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $9,$17 + xor $25,$1,$2 + addu $3,$6 + xor $9,$22 + sll $30,$24,30 + xor $25,$24 + srl $6,$9,31 + addu $9,$9 + srl $24,$24,2 + addu $3,$8 + or $9,$6 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $10,$12 + addu $2,$31 # 33 + rotr $6,$3,27 + xor $10,$18 + xor $25,$24,$1 + addu $2,$6 + xor $10,$23 + xor $25,$7 + addu $2,$9 + rotr $10,$10,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $10,$12 + sll $25,$3,5 # 33 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $10,$18 + xor $25,$24,$1 + addu $2,$6 + xor $10,$23 + sll $30,$7,30 + xor $25,$7 + srl $6,$10,31 + addu $10,$10 + srl $7,$7,2 + addu $2,$9 + or $10,$6 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $11,$13 + addu $1,$31 # 34 + rotr $6,$2,27 + xor $11,$19 + xor $25,$7,$24 + addu $1,$6 + xor $11,$8 + xor $25,$3 + addu $1,$10 + rotr $11,$11,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $11,$13 + sll $25,$2,5 # 34 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $11,$19 + xor $25,$7,$24 + addu $1,$6 + xor $11,$8 + sll $30,$3,30 + xor $25,$3 + srl $6,$11,31 + addu $11,$11 + srl $3,$3,2 + addu $1,$10 + or $11,$6 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $12,$14 + addu $24,$31 # 35 + rotr $6,$1,27 + xor $12,$20 + xor $25,$3,$7 + addu $24,$6 + xor $12,$9 + xor $25,$2 + addu $24,$11 + rotr $12,$12,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $12,$14 + sll $25,$1,5 # 35 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $12,$20 + xor $25,$3,$7 + addu $24,$6 + xor $12,$9 + sll $30,$2,30 + xor $25,$2 + srl $6,$12,31 + addu $12,$12 + srl $2,$2,2 + addu $24,$11 + or $12,$6 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $13,$15 + addu $7,$31 # 36 + rotr $6,$24,27 + xor $13,$21 + xor $25,$2,$3 + addu $7,$6 + xor $13,$10 + xor $25,$1 + addu $7,$12 + rotr $13,$13,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $13,$15 + sll $25,$24,5 # 36 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $13,$21 + xor $25,$2,$3 + addu $7,$6 + xor $13,$10 + sll $30,$1,30 + xor $25,$1 + srl $6,$13,31 + addu $13,$13 + srl $1,$1,2 + addu $7,$12 + or $13,$6 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $14,$16 + addu $3,$31 # 37 + rotr $6,$7,27 + xor $14,$22 + xor $25,$1,$2 + addu $3,$6 + xor $14,$11 + xor $25,$24 + addu $3,$13 + rotr $14,$14,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $14,$16 + sll $25,$7,5 # 37 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $14,$22 + xor $25,$1,$2 + addu $3,$6 + xor $14,$11 + sll $30,$24,30 + xor $25,$24 + srl $6,$14,31 + addu $14,$14 + srl $24,$24,2 + addu $3,$13 + or $14,$6 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $15,$17 + addu $2,$31 # 38 + rotr $6,$3,27 + xor $15,$23 + xor $25,$24,$1 + addu $2,$6 + xor $15,$12 + xor $25,$7 + addu $2,$14 + rotr $15,$15,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $15,$17 + sll $25,$3,5 # 38 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $15,$23 + xor $25,$24,$1 + addu $2,$6 + xor $15,$12 + sll $30,$7,30 + xor $25,$7 + srl $6,$15,31 + addu $15,$15 + srl $7,$7,2 + addu $2,$14 + or $15,$6 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $16,$18 + addu $1,$31 # 39 + rotr $6,$2,27 + xor $16,$8 + xor $25,$7,$24 + addu $1,$6 + xor $16,$13 + xor $25,$3 + addu $1,$15 + rotr $16,$16,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $16,$18 + sll $25,$2,5 # 39 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $16,$8 + xor $25,$7,$24 + addu $1,$6 + xor $16,$13 + sll $30,$3,30 + xor $25,$3 + srl $6,$16,31 + addu $16,$16 + srl $3,$3,2 + addu $1,$15 + or $16,$6 + or $3,$30 + addu $1,$25 +#endif + lui $31,0x8f1b + ori $31,0xbcdc # K_40_59 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $24,$31 # 40 + and $25,$3,$7 + xor $17,$19 + rotr $6,$1,27 + addu $24,$25 + xor $17,$9 + xor $25,$3,$7 + addu $24,$6 + xor $17,$14 + and $25,$2 + addu $24,$16 + rotr $17,$17,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $17,$19 + sll $25,$1,5 # 40 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $17,$9 + and $25,$3,$7 + addu $24,$6 + xor $17,$14 + sll $30,$2,30 + addu $24,$25 + srl $6,$17,31 + xor $25,$3,$7 + addu $17,$17 + and $25,$2 + srl $2,$2,2 + or $17,$6 + addu $24,$16 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $7,$31 # 41 + and $25,$2,$3 + xor $18,$20 + rotr $6,$24,27 + addu $7,$25 + xor $18,$10 + xor $25,$2,$3 + addu $7,$6 + xor $18,$15 + and $25,$1 + addu $7,$17 + rotr $18,$18,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $18,$20 + sll $25,$24,5 # 41 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $18,$10 + and $25,$2,$3 + addu $7,$6 + xor $18,$15 + sll $30,$1,30 + addu $7,$25 + srl $6,$18,31 + xor $25,$2,$3 + addu $18,$18 + and $25,$1 + srl $1,$1,2 + or $18,$6 + addu $7,$17 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $3,$31 # 42 + and $25,$1,$2 + xor $19,$21 + rotr $6,$7,27 + addu $3,$25 + xor $19,$11 + xor $25,$1,$2 + addu $3,$6 + xor $19,$16 + and $25,$24 + addu $3,$18 + rotr $19,$19,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $19,$21 + sll $25,$7,5 # 42 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $19,$11 + and $25,$1,$2 + addu $3,$6 + xor $19,$16 + sll $30,$24,30 + addu $3,$25 + srl $6,$19,31 + xor $25,$1,$2 + addu $19,$19 + and $25,$24 + srl $24,$24,2 + or $19,$6 + addu $3,$18 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $2,$31 # 43 + and $25,$24,$1 + xor $20,$22 + rotr $6,$3,27 + addu $2,$25 + xor $20,$12 + xor $25,$24,$1 + addu $2,$6 + xor $20,$17 + and $25,$7 + addu $2,$19 + rotr $20,$20,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $20,$22 + sll $25,$3,5 # 43 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $20,$12 + and $25,$24,$1 + addu $2,$6 + xor $20,$17 + sll $30,$7,30 + addu $2,$25 + srl $6,$20,31 + xor $25,$24,$1 + addu $20,$20 + and $25,$7 + srl $7,$7,2 + or $20,$6 + addu $2,$19 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $1,$31 # 44 + and $25,$7,$24 + xor $21,$23 + rotr $6,$2,27 + addu $1,$25 + xor $21,$13 + xor $25,$7,$24 + addu $1,$6 + xor $21,$18 + and $25,$3 + addu $1,$20 + rotr $21,$21,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $21,$23 + sll $25,$2,5 # 44 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $21,$13 + and $25,$7,$24 + addu $1,$6 + xor $21,$18 + sll $30,$3,30 + addu $1,$25 + srl $6,$21,31 + xor $25,$7,$24 + addu $21,$21 + and $25,$3 + srl $3,$3,2 + or $21,$6 + addu $1,$20 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $24,$31 # 45 + and $25,$3,$7 + xor $22,$8 + rotr $6,$1,27 + addu $24,$25 + xor $22,$14 + xor $25,$3,$7 + addu $24,$6 + xor $22,$19 + and $25,$2 + addu $24,$21 + rotr $22,$22,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $22,$8 + sll $25,$1,5 # 45 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $22,$14 + and $25,$3,$7 + addu $24,$6 + xor $22,$19 + sll $30,$2,30 + addu $24,$25 + srl $6,$22,31 + xor $25,$3,$7 + addu $22,$22 + and $25,$2 + srl $2,$2,2 + or $22,$6 + addu $24,$21 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $7,$31 # 46 + and $25,$2,$3 + xor $23,$9 + rotr $6,$24,27 + addu $7,$25 + xor $23,$15 + xor $25,$2,$3 + addu $7,$6 + xor $23,$20 + and $25,$1 + addu $7,$22 + rotr $23,$23,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $23,$9 + sll $25,$24,5 # 46 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $23,$15 + and $25,$2,$3 + addu $7,$6 + xor $23,$20 + sll $30,$1,30 + addu $7,$25 + srl $6,$23,31 + xor $25,$2,$3 + addu $23,$23 + and $25,$1 + srl $1,$1,2 + or $23,$6 + addu $7,$22 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $3,$31 # 47 + and $25,$1,$2 + xor $8,$10 + rotr $6,$7,27 + addu $3,$25 + xor $8,$16 + xor $25,$1,$2 + addu $3,$6 + xor $8,$21 + and $25,$24 + addu $3,$23 + rotr $8,$8,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $8,$10 + sll $25,$7,5 # 47 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $8,$16 + and $25,$1,$2 + addu $3,$6 + xor $8,$21 + sll $30,$24,30 + addu $3,$25 + srl $6,$8,31 + xor $25,$1,$2 + addu $8,$8 + and $25,$24 + srl $24,$24,2 + or $8,$6 + addu $3,$23 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $2,$31 # 48 + and $25,$24,$1 + xor $9,$11 + rotr $6,$3,27 + addu $2,$25 + xor $9,$17 + xor $25,$24,$1 + addu $2,$6 + xor $9,$22 + and $25,$7 + addu $2,$8 + rotr $9,$9,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $9,$11 + sll $25,$3,5 # 48 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $9,$17 + and $25,$24,$1 + addu $2,$6 + xor $9,$22 + sll $30,$7,30 + addu $2,$25 + srl $6,$9,31 + xor $25,$24,$1 + addu $9,$9 + and $25,$7 + srl $7,$7,2 + or $9,$6 + addu $2,$8 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $1,$31 # 49 + and $25,$7,$24 + xor $10,$12 + rotr $6,$2,27 + addu $1,$25 + xor $10,$18 + xor $25,$7,$24 + addu $1,$6 + xor $10,$23 + and $25,$3 + addu $1,$9 + rotr $10,$10,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $10,$12 + sll $25,$2,5 # 49 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $10,$18 + and $25,$7,$24 + addu $1,$6 + xor $10,$23 + sll $30,$3,30 + addu $1,$25 + srl $6,$10,31 + xor $25,$7,$24 + addu $10,$10 + and $25,$3 + srl $3,$3,2 + or $10,$6 + addu $1,$9 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $24,$31 # 50 + and $25,$3,$7 + xor $11,$13 + rotr $6,$1,27 + addu $24,$25 + xor $11,$19 + xor $25,$3,$7 + addu $24,$6 + xor $11,$8 + and $25,$2 + addu $24,$10 + rotr $11,$11,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $11,$13 + sll $25,$1,5 # 50 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $11,$19 + and $25,$3,$7 + addu $24,$6 + xor $11,$8 + sll $30,$2,30 + addu $24,$25 + srl $6,$11,31 + xor $25,$3,$7 + addu $11,$11 + and $25,$2 + srl $2,$2,2 + or $11,$6 + addu $24,$10 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $7,$31 # 51 + and $25,$2,$3 + xor $12,$14 + rotr $6,$24,27 + addu $7,$25 + xor $12,$20 + xor $25,$2,$3 + addu $7,$6 + xor $12,$9 + and $25,$1 + addu $7,$11 + rotr $12,$12,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $12,$14 + sll $25,$24,5 # 51 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $12,$20 + and $25,$2,$3 + addu $7,$6 + xor $12,$9 + sll $30,$1,30 + addu $7,$25 + srl $6,$12,31 + xor $25,$2,$3 + addu $12,$12 + and $25,$1 + srl $1,$1,2 + or $12,$6 + addu $7,$11 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $3,$31 # 52 + and $25,$1,$2 + xor $13,$15 + rotr $6,$7,27 + addu $3,$25 + xor $13,$21 + xor $25,$1,$2 + addu $3,$6 + xor $13,$10 + and $25,$24 + addu $3,$12 + rotr $13,$13,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $13,$15 + sll $25,$7,5 # 52 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $13,$21 + and $25,$1,$2 + addu $3,$6 + xor $13,$10 + sll $30,$24,30 + addu $3,$25 + srl $6,$13,31 + xor $25,$1,$2 + addu $13,$13 + and $25,$24 + srl $24,$24,2 + or $13,$6 + addu $3,$12 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $2,$31 # 53 + and $25,$24,$1 + xor $14,$16 + rotr $6,$3,27 + addu $2,$25 + xor $14,$22 + xor $25,$24,$1 + addu $2,$6 + xor $14,$11 + and $25,$7 + addu $2,$13 + rotr $14,$14,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $14,$16 + sll $25,$3,5 # 53 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $14,$22 + and $25,$24,$1 + addu $2,$6 + xor $14,$11 + sll $30,$7,30 + addu $2,$25 + srl $6,$14,31 + xor $25,$24,$1 + addu $14,$14 + and $25,$7 + srl $7,$7,2 + or $14,$6 + addu $2,$13 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $1,$31 # 54 + and $25,$7,$24 + xor $15,$17 + rotr $6,$2,27 + addu $1,$25 + xor $15,$23 + xor $25,$7,$24 + addu $1,$6 + xor $15,$12 + and $25,$3 + addu $1,$14 + rotr $15,$15,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $15,$17 + sll $25,$2,5 # 54 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $15,$23 + and $25,$7,$24 + addu $1,$6 + xor $15,$12 + sll $30,$3,30 + addu $1,$25 + srl $6,$15,31 + xor $25,$7,$24 + addu $15,$15 + and $25,$3 + srl $3,$3,2 + or $15,$6 + addu $1,$14 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $24,$31 # 55 + and $25,$3,$7 + xor $16,$18 + rotr $6,$1,27 + addu $24,$25 + xor $16,$8 + xor $25,$3,$7 + addu $24,$6 + xor $16,$13 + and $25,$2 + addu $24,$15 + rotr $16,$16,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $16,$18 + sll $25,$1,5 # 55 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $16,$8 + and $25,$3,$7 + addu $24,$6 + xor $16,$13 + sll $30,$2,30 + addu $24,$25 + srl $6,$16,31 + xor $25,$3,$7 + addu $16,$16 + and $25,$2 + srl $2,$2,2 + or $16,$6 + addu $24,$15 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $7,$31 # 56 + and $25,$2,$3 + xor $17,$19 + rotr $6,$24,27 + addu $7,$25 + xor $17,$9 + xor $25,$2,$3 + addu $7,$6 + xor $17,$14 + and $25,$1 + addu $7,$16 + rotr $17,$17,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $17,$19 + sll $25,$24,5 # 56 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $17,$9 + and $25,$2,$3 + addu $7,$6 + xor $17,$14 + sll $30,$1,30 + addu $7,$25 + srl $6,$17,31 + xor $25,$2,$3 + addu $17,$17 + and $25,$1 + srl $1,$1,2 + or $17,$6 + addu $7,$16 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $3,$31 # 57 + and $25,$1,$2 + xor $18,$20 + rotr $6,$7,27 + addu $3,$25 + xor $18,$10 + xor $25,$1,$2 + addu $3,$6 + xor $18,$15 + and $25,$24 + addu $3,$17 + rotr $18,$18,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $18,$20 + sll $25,$7,5 # 57 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $18,$10 + and $25,$1,$2 + addu $3,$6 + xor $18,$15 + sll $30,$24,30 + addu $3,$25 + srl $6,$18,31 + xor $25,$1,$2 + addu $18,$18 + and $25,$24 + srl $24,$24,2 + or $18,$6 + addu $3,$17 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $2,$31 # 58 + and $25,$24,$1 + xor $19,$21 + rotr $6,$3,27 + addu $2,$25 + xor $19,$11 + xor $25,$24,$1 + addu $2,$6 + xor $19,$16 + and $25,$7 + addu $2,$18 + rotr $19,$19,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $19,$21 + sll $25,$3,5 # 58 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $19,$11 + and $25,$24,$1 + addu $2,$6 + xor $19,$16 + sll $30,$7,30 + addu $2,$25 + srl $6,$19,31 + xor $25,$24,$1 + addu $19,$19 + and $25,$7 + srl $7,$7,2 + or $19,$6 + addu $2,$18 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $1,$31 # 59 + and $25,$7,$24 + xor $20,$22 + rotr $6,$2,27 + addu $1,$25 + xor $20,$12 + xor $25,$7,$24 + addu $1,$6 + xor $20,$17 + and $25,$3 + addu $1,$19 + rotr $20,$20,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $20,$22 + sll $25,$2,5 # 59 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $20,$12 + and $25,$7,$24 + addu $1,$6 + xor $20,$17 + sll $30,$3,30 + addu $1,$25 + srl $6,$20,31 + xor $25,$7,$24 + addu $20,$20 + and $25,$3 + srl $3,$3,2 + or $20,$6 + addu $1,$19 + or $3,$30 + addu $1,$25 +#endif + lui $31,0xca62 + ori $31,0xc1d6 # K_60_79 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $21,$23 + addu $24,$31 # 60 + rotr $6,$1,27 + xor $21,$13 + xor $25,$3,$7 + addu $24,$6 + xor $21,$18 + xor $25,$2 + addu $24,$20 + rotr $21,$21,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $21,$23 + sll $25,$1,5 # 60 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $21,$13 + xor $25,$3,$7 + addu $24,$6 + xor $21,$18 + sll $30,$2,30 + xor $25,$2 + srl $6,$21,31 + addu $21,$21 + srl $2,$2,2 + addu $24,$20 + or $21,$6 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $22,$8 + addu $7,$31 # 61 + rotr $6,$24,27 + xor $22,$14 + xor $25,$2,$3 + addu $7,$6 + xor $22,$19 + xor $25,$1 + addu $7,$21 + rotr $22,$22,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $22,$8 + sll $25,$24,5 # 61 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $22,$14 + xor $25,$2,$3 + addu $7,$6 + xor $22,$19 + sll $30,$1,30 + xor $25,$1 + srl $6,$22,31 + addu $22,$22 + srl $1,$1,2 + addu $7,$21 + or $22,$6 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $23,$9 + addu $3,$31 # 62 + rotr $6,$7,27 + xor $23,$15 + xor $25,$1,$2 + addu $3,$6 + xor $23,$20 + xor $25,$24 + addu $3,$22 + rotr $23,$23,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $23,$9 + sll $25,$7,5 # 62 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $23,$15 + xor $25,$1,$2 + addu $3,$6 + xor $23,$20 + sll $30,$24,30 + xor $25,$24 + srl $6,$23,31 + addu $23,$23 + srl $24,$24,2 + addu $3,$22 + or $23,$6 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $8,$10 + addu $2,$31 # 63 + rotr $6,$3,27 + xor $8,$16 + xor $25,$24,$1 + addu $2,$6 + xor $8,$21 + xor $25,$7 + addu $2,$23 + rotr $8,$8,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $8,$10 + sll $25,$3,5 # 63 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $8,$16 + xor $25,$24,$1 + addu $2,$6 + xor $8,$21 + sll $30,$7,30 + xor $25,$7 + srl $6,$8,31 + addu $8,$8 + srl $7,$7,2 + addu $2,$23 + or $8,$6 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $9,$11 + addu $1,$31 # 64 + rotr $6,$2,27 + xor $9,$17 + xor $25,$7,$24 + addu $1,$6 + xor $9,$22 + xor $25,$3 + addu $1,$8 + rotr $9,$9,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $9,$11 + sll $25,$2,5 # 64 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $9,$17 + xor $25,$7,$24 + addu $1,$6 + xor $9,$22 + sll $30,$3,30 + xor $25,$3 + srl $6,$9,31 + addu $9,$9 + srl $3,$3,2 + addu $1,$8 + or $9,$6 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $10,$12 + addu $24,$31 # 65 + rotr $6,$1,27 + xor $10,$18 + xor $25,$3,$7 + addu $24,$6 + xor $10,$23 + xor $25,$2 + addu $24,$9 + rotr $10,$10,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $10,$12 + sll $25,$1,5 # 65 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $10,$18 + xor $25,$3,$7 + addu $24,$6 + xor $10,$23 + sll $30,$2,30 + xor $25,$2 + srl $6,$10,31 + addu $10,$10 + srl $2,$2,2 + addu $24,$9 + or $10,$6 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $11,$13 + addu $7,$31 # 66 + rotr $6,$24,27 + xor $11,$19 + xor $25,$2,$3 + addu $7,$6 + xor $11,$8 + xor $25,$1 + addu $7,$10 + rotr $11,$11,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $11,$13 + sll $25,$24,5 # 66 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $11,$19 + xor $25,$2,$3 + addu $7,$6 + xor $11,$8 + sll $30,$1,30 + xor $25,$1 + srl $6,$11,31 + addu $11,$11 + srl $1,$1,2 + addu $7,$10 + or $11,$6 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $12,$14 + addu $3,$31 # 67 + rotr $6,$7,27 + xor $12,$20 + xor $25,$1,$2 + addu $3,$6 + xor $12,$9 + xor $25,$24 + addu $3,$11 + rotr $12,$12,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $12,$14 + sll $25,$7,5 # 67 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $12,$20 + xor $25,$1,$2 + addu $3,$6 + xor $12,$9 + sll $30,$24,30 + xor $25,$24 + srl $6,$12,31 + addu $12,$12 + srl $24,$24,2 + addu $3,$11 + or $12,$6 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $13,$15 + addu $2,$31 # 68 + rotr $6,$3,27 + xor $13,$21 + xor $25,$24,$1 + addu $2,$6 + xor $13,$10 + xor $25,$7 + addu $2,$12 + rotr $13,$13,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $13,$15 + sll $25,$3,5 # 68 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $13,$21 + xor $25,$24,$1 + addu $2,$6 + xor $13,$10 + sll $30,$7,30 + xor $25,$7 + srl $6,$13,31 + addu $13,$13 + srl $7,$7,2 + addu $2,$12 + or $13,$6 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $14,$16 + addu $1,$31 # 69 + rotr $6,$2,27 + xor $14,$22 + xor $25,$7,$24 + addu $1,$6 + xor $14,$11 + xor $25,$3 + addu $1,$13 + rotr $14,$14,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $14,$16 + sll $25,$2,5 # 69 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $14,$22 + xor $25,$7,$24 + addu $1,$6 + xor $14,$11 + sll $30,$3,30 + xor $25,$3 + srl $6,$14,31 + addu $14,$14 + srl $3,$3,2 + addu $1,$13 + or $14,$6 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $15,$17 + addu $24,$31 # 70 + rotr $6,$1,27 + xor $15,$23 + xor $25,$3,$7 + addu $24,$6 + xor $15,$12 + xor $25,$2 + addu $24,$14 + rotr $15,$15,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $15,$17 + sll $25,$1,5 # 70 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $15,$23 + xor $25,$3,$7 + addu $24,$6 + xor $15,$12 + sll $30,$2,30 + xor $25,$2 + srl $6,$15,31 + addu $15,$15 + srl $2,$2,2 + addu $24,$14 + or $15,$6 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $16,$18 + addu $7,$31 # 71 + rotr $6,$24,27 + xor $16,$8 + xor $25,$2,$3 + addu $7,$6 + xor $16,$13 + xor $25,$1 + addu $7,$15 + rotr $16,$16,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $16,$18 + sll $25,$24,5 # 71 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $16,$8 + xor $25,$2,$3 + addu $7,$6 + xor $16,$13 + sll $30,$1,30 + xor $25,$1 + srl $6,$16,31 + addu $16,$16 + srl $1,$1,2 + addu $7,$15 + or $16,$6 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $17,$19 + addu $3,$31 # 72 + rotr $6,$7,27 + xor $17,$9 + xor $25,$1,$2 + addu $3,$6 + xor $17,$14 + xor $25,$24 + addu $3,$16 + rotr $17,$17,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $17,$19 + sll $25,$7,5 # 72 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $17,$9 + xor $25,$1,$2 + addu $3,$6 + xor $17,$14 + sll $30,$24,30 + xor $25,$24 + srl $6,$17,31 + addu $17,$17 + srl $24,$24,2 + addu $3,$16 + or $17,$6 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $18,$20 + addu $2,$31 # 73 + rotr $6,$3,27 + xor $18,$10 + xor $25,$24,$1 + addu $2,$6 + xor $18,$15 + xor $25,$7 + addu $2,$17 + rotr $18,$18,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $18,$20 + sll $25,$3,5 # 73 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $18,$10 + xor $25,$24,$1 + addu $2,$6 + xor $18,$15 + sll $30,$7,30 + xor $25,$7 + srl $6,$18,31 + addu $18,$18 + srl $7,$7,2 + addu $2,$17 + or $18,$6 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $19,$21 + addu $1,$31 # 74 + rotr $6,$2,27 + xor $19,$11 + xor $25,$7,$24 + addu $1,$6 + xor $19,$16 + xor $25,$3 + addu $1,$18 + rotr $19,$19,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $19,$21 + sll $25,$2,5 # 74 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $19,$11 + xor $25,$7,$24 + addu $1,$6 + xor $19,$16 + sll $30,$3,30 + xor $25,$3 + srl $6,$19,31 + addu $19,$19 + srl $3,$3,2 + addu $1,$18 + or $19,$6 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $20,$22 + addu $24,$31 # 75 + rotr $6,$1,27 + xor $20,$12 + xor $25,$3,$7 + addu $24,$6 + xor $20,$17 + xor $25,$2 + addu $24,$19 + rotr $20,$20,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $20,$22 + sll $25,$1,5 # 75 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $20,$12 + xor $25,$3,$7 + addu $24,$6 + xor $20,$17 + sll $30,$2,30 + xor $25,$2 + srl $6,$20,31 + addu $20,$20 + srl $2,$2,2 + addu $24,$19 + or $20,$6 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $21,$23 + addu $7,$31 # 76 + rotr $6,$24,27 + xor $21,$13 + xor $25,$2,$3 + addu $7,$6 + xor $21,$18 + xor $25,$1 + addu $7,$20 + rotr $21,$21,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $21,$23 + sll $25,$24,5 # 76 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $21,$13 + xor $25,$2,$3 + addu $7,$6 + xor $21,$18 + sll $30,$1,30 + xor $25,$1 + srl $6,$21,31 + addu $21,$21 + srl $1,$1,2 + addu $7,$20 + or $21,$6 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $22,$8 + addu $3,$31 # 77 + rotr $6,$7,27 + xor $22,$14 + xor $25,$1,$2 + addu $3,$6 + xor $22,$19 + xor $25,$24 + addu $3,$21 + rotr $22,$22,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $22,$8 + sll $25,$7,5 # 77 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $22,$14 + xor $25,$1,$2 + addu $3,$6 + xor $22,$19 + sll $30,$24,30 + xor $25,$24 + srl $6,$22,31 + addu $22,$22 + srl $24,$24,2 + addu $3,$21 + or $22,$6 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $23,$9 + addu $2,$31 # 78 + rotr $6,$3,27 + xor $23,$15 + xor $25,$24,$1 + addu $2,$6 + xor $23,$20 + xor $25,$7 + addu $2,$22 + rotr $23,$23,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $23,$9 + sll $25,$3,5 # 78 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $23,$15 + xor $25,$24,$1 + addu $2,$6 + xor $23,$20 + sll $30,$7,30 + xor $25,$7 + srl $6,$23,31 + addu $23,$23 + srl $7,$7,2 + addu $2,$22 + or $23,$6 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + lw $8,0($4) + addu $1,$31 # 79 + lw $9,4($4) + rotr $6,$2,27 + lw $10,8($4) + xor $25,$7,$24 + addu $1,$6 + lw $11,12($4) + xor $25,$3 + addu $1,$23 + lw $12,16($4) + rotr $3,$3,2 + addu $1,$25 +#else + lw $8,0($4) + sll $25,$2,5 # 79 + addu $1,$31 + lw $9,4($4) + srl $6,$2,27 + addu $1,$25 + lw $10,8($4) + xor $25,$7,$24 + addu $1,$6 + lw $11,12($4) + sll $30,$3,30 + xor $25,$3 + lw $12,16($4) + srl $3,$3,2 + addu $1,$23 + or $3,$30 + addu $1,$25 +#endif + addu $5,64 + lw $6,0($29) + + addu $1,$8 + addu $2,$9 + sw $1,0($4) + addu $3,$10 + addu $7,$11 + sw $2,4($4) + addu $24,$12 + sw $3,8($4) + sw $7,12($4) + sw $24,16($4) + .set noreorder + bne $5,$6,.Loop + nop + + .set noreorder + lw $31,(16-1)*4($29) + lw $30,(16-2)*4($29) + lw $23,(16-3)*4($29) + lw $22,(16-4)*4($29) + lw $21,(16-5)*4($29) + lw $20,(16-6)*4($29) + lw $19,(16-7)*4($29) + lw $18,(16-8)*4($29) + lw $17,(16-9)*4($29) + lw $16,(16-10)*4($29) + jr $31 + addu $29,16*4 +.end sha1_block_data_order +.rdata +.asciiz "SHA1 for MIPS, CRYPTOGAMS by " diff -urN a/deps/openssl/config/archs/linux-mips/asm/crypto/sha/sha256-mips.S b/deps/openssl/config/archs/linux-mips/asm/crypto/sha/sha256-mips.S --- a/deps/openssl/config/archs/linux-mips/asm/crypto/sha/sha256-mips.S 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mips/asm/crypto/sha/sha256-mips.S 2019-12-25 13:49:19.984298806 +0900 @@ -0,0 +1,2812 @@ +#include "mips_arch.h" + +.text +.set noat +#if !defined(__mips_eabi) && (!defined(__vxworks) || defined(__pic__)) +.option pic2 +#endif + +.align 5 +.globl sha256_block_data_order +.ent sha256_block_data_order +sha256_block_data_order: + .frame $29,128,$31 + .mask 0xc0ff0000,-4 + .set noreorder + .cpload $25 + subu $29,128 + sw $31,128-1*4($29) + sw $30,128-2*4($29) + sw $23,128-3*4($29) + sw $22,128-4*4($29) + sw $21,128-5*4($29) + sw $20,128-6*4($29) + sw $19,128-7*4($29) + sw $18,128-8*4($29) + sw $17,128-9*4($29) + sw $16,128-10*4($29) + sll $23,$6,6 + .set reorder + la $6,K256 # PIC-ified 'load address' + + lw $1,0*4($4) # load context + lw $2,1*4($4) + lw $3,2*4($4) + lw $7,3*4($4) + lw $24,4*4($4) + lw $25,5*4($4) + lw $30,6*4($4) + lw $31,7*4($4) + + addu $23,$5 # pointer to the end of input + sw $23,16*4($29) + b .Loop + +.align 5 +.Loop: +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $8,($5) +#else + lwl $8,0($5) + lwr $8,3($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $9,4($5) +#else + lwl $9,4($5) + lwr $9,7($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $15,$25,$30 # 0 + rotr $13,$24,6 + addu $12,$8,$31 + rotr $14,$24,11 + and $15,$24 + rotr $31,$24,25 + xor $13,$14 + rotr $14,$1,2 + xor $15,$30 # Ch(e,f,g) + xor $13,$31 # Sigma1(e) + + rotr $31,$1,13 + addu $12,$15 + lw $15,0($6) # K[0] + xor $31,$14 + rotr $14,$1,22 + addu $12,$13 + and $13,$2,$3 + xor $31,$14 # Sigma0(a) + xor $14,$2,$3 +#else + addu $12,$8,$31 # 0 + srl $31,$24,6 + xor $15,$25,$30 + sll $14,$24,7 + and $15,$24 + srl $13,$24,11 + xor $31,$14 + sll $14,$24,21 + xor $31,$13 + srl $13,$24,25 + xor $31,$14 + sll $14,$24,26 + xor $31,$13 + xor $15,$30 # Ch(e,f,g) + xor $13,$14,$31 # Sigma1(e) + + srl $31,$1,2 + addu $12,$15 + lw $15,0($6) # K[0] + sll $14,$1,10 + addu $12,$13 + srl $13,$1,13 + xor $31,$14 + sll $14,$1,19 + xor $31,$13 + srl $13,$1,22 + xor $31,$14 + sll $14,$1,30 + xor $31,$13 + and $13,$2,$3 + xor $31,$14 # Sigma0(a) + xor $14,$2,$3 +#endif + sw $8,0($29) # offload to ring buffer + addu $31,$13 + and $14,$1 + addu $12,$15 # +=K[0] + addu $31,$14 # +=Maj(a,b,c) + addu $7,$12 + addu $31,$12 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $10,8($5) +#else + lwl $10,8($5) + lwr $10,11($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $16,$24,$25 # 1 + rotr $14,$7,6 + addu $13,$9,$30 + rotr $15,$7,11 + and $16,$7 + rotr $30,$7,25 + xor $14,$15 + rotr $15,$31,2 + xor $16,$25 # Ch(e,f,g) + xor $14,$30 # Sigma1(e) + + rotr $30,$31,13 + addu $13,$16 + lw $16,4($6) # K[1] + xor $30,$15 + rotr $15,$31,22 + addu $13,$14 + and $14,$1,$2 + xor $30,$15 # Sigma0(a) + xor $15,$1,$2 +#else + addu $13,$9,$30 # 1 + srl $30,$7,6 + xor $16,$24,$25 + sll $15,$7,7 + and $16,$7 + srl $14,$7,11 + xor $30,$15 + sll $15,$7,21 + xor $30,$14 + srl $14,$7,25 + xor $30,$15 + sll $15,$7,26 + xor $30,$14 + xor $16,$25 # Ch(e,f,g) + xor $14,$15,$30 # Sigma1(e) + + srl $30,$31,2 + addu $13,$16 + lw $16,4($6) # K[1] + sll $15,$31,10 + addu $13,$14 + srl $14,$31,13 + xor $30,$15 + sll $15,$31,19 + xor $30,$14 + srl $14,$31,22 + xor $30,$15 + sll $15,$31,30 + xor $30,$14 + and $14,$1,$2 + xor $30,$15 # Sigma0(a) + xor $15,$1,$2 +#endif + sw $9,4($29) # offload to ring buffer + addu $30,$14 + and $15,$31 + addu $13,$16 # +=K[1] + addu $30,$15 # +=Maj(a,b,c) + addu $3,$13 + addu $30,$13 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $11,12($5) +#else + lwl $11,12($5) + lwr $11,15($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $17,$7,$24 # 2 + rotr $15,$3,6 + addu $14,$10,$25 + rotr $16,$3,11 + and $17,$3 + rotr $25,$3,25 + xor $15,$16 + rotr $16,$30,2 + xor $17,$24 # Ch(e,f,g) + xor $15,$25 # Sigma1(e) + + rotr $25,$30,13 + addu $14,$17 + lw $17,8($6) # K[2] + xor $25,$16 + rotr $16,$30,22 + addu $14,$15 + and $15,$31,$1 + xor $25,$16 # Sigma0(a) + xor $16,$31,$1 +#else + addu $14,$10,$25 # 2 + srl $25,$3,6 + xor $17,$7,$24 + sll $16,$3,7 + and $17,$3 + srl $15,$3,11 + xor $25,$16 + sll $16,$3,21 + xor $25,$15 + srl $15,$3,25 + xor $25,$16 + sll $16,$3,26 + xor $25,$15 + xor $17,$24 # Ch(e,f,g) + xor $15,$16,$25 # Sigma1(e) + + srl $25,$30,2 + addu $14,$17 + lw $17,8($6) # K[2] + sll $16,$30,10 + addu $14,$15 + srl $15,$30,13 + xor $25,$16 + sll $16,$30,19 + xor $25,$15 + srl $15,$30,22 + xor $25,$16 + sll $16,$30,30 + xor $25,$15 + and $15,$31,$1 + xor $25,$16 # Sigma0(a) + xor $16,$31,$1 +#endif + sw $10,8($29) # offload to ring buffer + addu $25,$15 + and $16,$30 + addu $14,$17 # +=K[2] + addu $25,$16 # +=Maj(a,b,c) + addu $2,$14 + addu $25,$14 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $12,16($5) +#else + lwl $12,16($5) + lwr $12,19($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $18,$3,$7 # 3 + rotr $16,$2,6 + addu $15,$11,$24 + rotr $17,$2,11 + and $18,$2 + rotr $24,$2,25 + xor $16,$17 + rotr $17,$25,2 + xor $18,$7 # Ch(e,f,g) + xor $16,$24 # Sigma1(e) + + rotr $24,$25,13 + addu $15,$18 + lw $18,12($6) # K[3] + xor $24,$17 + rotr $17,$25,22 + addu $15,$16 + and $16,$30,$31 + xor $24,$17 # Sigma0(a) + xor $17,$30,$31 +#else + addu $15,$11,$24 # 3 + srl $24,$2,6 + xor $18,$3,$7 + sll $17,$2,7 + and $18,$2 + srl $16,$2,11 + xor $24,$17 + sll $17,$2,21 + xor $24,$16 + srl $16,$2,25 + xor $24,$17 + sll $17,$2,26 + xor $24,$16 + xor $18,$7 # Ch(e,f,g) + xor $16,$17,$24 # Sigma1(e) + + srl $24,$25,2 + addu $15,$18 + lw $18,12($6) # K[3] + sll $17,$25,10 + addu $15,$16 + srl $16,$25,13 + xor $24,$17 + sll $17,$25,19 + xor $24,$16 + srl $16,$25,22 + xor $24,$17 + sll $17,$25,30 + xor $24,$16 + and $16,$30,$31 + xor $24,$17 # Sigma0(a) + xor $17,$30,$31 +#endif + sw $11,12($29) # offload to ring buffer + addu $24,$16 + and $17,$25 + addu $15,$18 # +=K[3] + addu $24,$17 # +=Maj(a,b,c) + addu $1,$15 + addu $24,$15 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $13,20($5) +#else + lwl $13,20($5) + lwr $13,23($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $19,$2,$3 # 4 + rotr $17,$1,6 + addu $16,$12,$7 + rotr $18,$1,11 + and $19,$1 + rotr $7,$1,25 + xor $17,$18 + rotr $18,$24,2 + xor $19,$3 # Ch(e,f,g) + xor $17,$7 # Sigma1(e) + + rotr $7,$24,13 + addu $16,$19 + lw $19,16($6) # K[4] + xor $7,$18 + rotr $18,$24,22 + addu $16,$17 + and $17,$25,$30 + xor $7,$18 # Sigma0(a) + xor $18,$25,$30 +#else + addu $16,$12,$7 # 4 + srl $7,$1,6 + xor $19,$2,$3 + sll $18,$1,7 + and $19,$1 + srl $17,$1,11 + xor $7,$18 + sll $18,$1,21 + xor $7,$17 + srl $17,$1,25 + xor $7,$18 + sll $18,$1,26 + xor $7,$17 + xor $19,$3 # Ch(e,f,g) + xor $17,$18,$7 # Sigma1(e) + + srl $7,$24,2 + addu $16,$19 + lw $19,16($6) # K[4] + sll $18,$24,10 + addu $16,$17 + srl $17,$24,13 + xor $7,$18 + sll $18,$24,19 + xor $7,$17 + srl $17,$24,22 + xor $7,$18 + sll $18,$24,30 + xor $7,$17 + and $17,$25,$30 + xor $7,$18 # Sigma0(a) + xor $18,$25,$30 +#endif + sw $12,16($29) # offload to ring buffer + addu $7,$17 + and $18,$24 + addu $16,$19 # +=K[4] + addu $7,$18 # +=Maj(a,b,c) + addu $31,$16 + addu $7,$16 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $14,24($5) +#else + lwl $14,24($5) + lwr $14,27($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $20,$1,$2 # 5 + rotr $18,$31,6 + addu $17,$13,$3 + rotr $19,$31,11 + and $20,$31 + rotr $3,$31,25 + xor $18,$19 + rotr $19,$7,2 + xor $20,$2 # Ch(e,f,g) + xor $18,$3 # Sigma1(e) + + rotr $3,$7,13 + addu $17,$20 + lw $20,20($6) # K[5] + xor $3,$19 + rotr $19,$7,22 + addu $17,$18 + and $18,$24,$25 + xor $3,$19 # Sigma0(a) + xor $19,$24,$25 +#else + addu $17,$13,$3 # 5 + srl $3,$31,6 + xor $20,$1,$2 + sll $19,$31,7 + and $20,$31 + srl $18,$31,11 + xor $3,$19 + sll $19,$31,21 + xor $3,$18 + srl $18,$31,25 + xor $3,$19 + sll $19,$31,26 + xor $3,$18 + xor $20,$2 # Ch(e,f,g) + xor $18,$19,$3 # Sigma1(e) + + srl $3,$7,2 + addu $17,$20 + lw $20,20($6) # K[5] + sll $19,$7,10 + addu $17,$18 + srl $18,$7,13 + xor $3,$19 + sll $19,$7,19 + xor $3,$18 + srl $18,$7,22 + xor $3,$19 + sll $19,$7,30 + xor $3,$18 + and $18,$24,$25 + xor $3,$19 # Sigma0(a) + xor $19,$24,$25 +#endif + sw $13,20($29) # offload to ring buffer + addu $3,$18 + and $19,$7 + addu $17,$20 # +=K[5] + addu $3,$19 # +=Maj(a,b,c) + addu $30,$17 + addu $3,$17 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $15,28($5) +#else + lwl $15,28($5) + lwr $15,31($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $21,$31,$1 # 6 + rotr $19,$30,6 + addu $18,$14,$2 + rotr $20,$30,11 + and $21,$30 + rotr $2,$30,25 + xor $19,$20 + rotr $20,$3,2 + xor $21,$1 # Ch(e,f,g) + xor $19,$2 # Sigma1(e) + + rotr $2,$3,13 + addu $18,$21 + lw $21,24($6) # K[6] + xor $2,$20 + rotr $20,$3,22 + addu $18,$19 + and $19,$7,$24 + xor $2,$20 # Sigma0(a) + xor $20,$7,$24 +#else + addu $18,$14,$2 # 6 + srl $2,$30,6 + xor $21,$31,$1 + sll $20,$30,7 + and $21,$30 + srl $19,$30,11 + xor $2,$20 + sll $20,$30,21 + xor $2,$19 + srl $19,$30,25 + xor $2,$20 + sll $20,$30,26 + xor $2,$19 + xor $21,$1 # Ch(e,f,g) + xor $19,$20,$2 # Sigma1(e) + + srl $2,$3,2 + addu $18,$21 + lw $21,24($6) # K[6] + sll $20,$3,10 + addu $18,$19 + srl $19,$3,13 + xor $2,$20 + sll $20,$3,19 + xor $2,$19 + srl $19,$3,22 + xor $2,$20 + sll $20,$3,30 + xor $2,$19 + and $19,$7,$24 + xor $2,$20 # Sigma0(a) + xor $20,$7,$24 +#endif + sw $14,24($29) # offload to ring buffer + addu $2,$19 + and $20,$3 + addu $18,$21 # +=K[6] + addu $2,$20 # +=Maj(a,b,c) + addu $25,$18 + addu $2,$18 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $16,32($5) +#else + lwl $16,32($5) + lwr $16,35($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $22,$30,$31 # 7 + rotr $20,$25,6 + addu $19,$15,$1 + rotr $21,$25,11 + and $22,$25 + rotr $1,$25,25 + xor $20,$21 + rotr $21,$2,2 + xor $22,$31 # Ch(e,f,g) + xor $20,$1 # Sigma1(e) + + rotr $1,$2,13 + addu $19,$22 + lw $22,28($6) # K[7] + xor $1,$21 + rotr $21,$2,22 + addu $19,$20 + and $20,$3,$7 + xor $1,$21 # Sigma0(a) + xor $21,$3,$7 +#else + addu $19,$15,$1 # 7 + srl $1,$25,6 + xor $22,$30,$31 + sll $21,$25,7 + and $22,$25 + srl $20,$25,11 + xor $1,$21 + sll $21,$25,21 + xor $1,$20 + srl $20,$25,25 + xor $1,$21 + sll $21,$25,26 + xor $1,$20 + xor $22,$31 # Ch(e,f,g) + xor $20,$21,$1 # Sigma1(e) + + srl $1,$2,2 + addu $19,$22 + lw $22,28($6) # K[7] + sll $21,$2,10 + addu $19,$20 + srl $20,$2,13 + xor $1,$21 + sll $21,$2,19 + xor $1,$20 + srl $20,$2,22 + xor $1,$21 + sll $21,$2,30 + xor $1,$20 + and $20,$3,$7 + xor $1,$21 # Sigma0(a) + xor $21,$3,$7 +#endif + sw $15,28($29) # offload to ring buffer + addu $1,$20 + and $21,$2 + addu $19,$22 # +=K[7] + addu $1,$21 # +=Maj(a,b,c) + addu $24,$19 + addu $1,$19 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $17,36($5) +#else + lwl $17,36($5) + lwr $17,39($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $23,$25,$30 # 8 + rotr $21,$24,6 + addu $20,$16,$31 + rotr $22,$24,11 + and $23,$24 + rotr $31,$24,25 + xor $21,$22 + rotr $22,$1,2 + xor $23,$30 # Ch(e,f,g) + xor $21,$31 # Sigma1(e) + + rotr $31,$1,13 + addu $20,$23 + lw $23,32($6) # K[8] + xor $31,$22 + rotr $22,$1,22 + addu $20,$21 + and $21,$2,$3 + xor $31,$22 # Sigma0(a) + xor $22,$2,$3 +#else + addu $20,$16,$31 # 8 + srl $31,$24,6 + xor $23,$25,$30 + sll $22,$24,7 + and $23,$24 + srl $21,$24,11 + xor $31,$22 + sll $22,$24,21 + xor $31,$21 + srl $21,$24,25 + xor $31,$22 + sll $22,$24,26 + xor $31,$21 + xor $23,$30 # Ch(e,f,g) + xor $21,$22,$31 # Sigma1(e) + + srl $31,$1,2 + addu $20,$23 + lw $23,32($6) # K[8] + sll $22,$1,10 + addu $20,$21 + srl $21,$1,13 + xor $31,$22 + sll $22,$1,19 + xor $31,$21 + srl $21,$1,22 + xor $31,$22 + sll $22,$1,30 + xor $31,$21 + and $21,$2,$3 + xor $31,$22 # Sigma0(a) + xor $22,$2,$3 +#endif + sw $16,32($29) # offload to ring buffer + addu $31,$21 + and $22,$1 + addu $20,$23 # +=K[8] + addu $31,$22 # +=Maj(a,b,c) + addu $7,$20 + addu $31,$20 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $18,40($5) +#else + lwl $18,40($5) + lwr $18,43($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $8,$24,$25 # 9 + rotr $22,$7,6 + addu $21,$17,$30 + rotr $23,$7,11 + and $8,$7 + rotr $30,$7,25 + xor $22,$23 + rotr $23,$31,2 + xor $8,$25 # Ch(e,f,g) + xor $22,$30 # Sigma1(e) + + rotr $30,$31,13 + addu $21,$8 + lw $8,36($6) # K[9] + xor $30,$23 + rotr $23,$31,22 + addu $21,$22 + and $22,$1,$2 + xor $30,$23 # Sigma0(a) + xor $23,$1,$2 +#else + addu $21,$17,$30 # 9 + srl $30,$7,6 + xor $8,$24,$25 + sll $23,$7,7 + and $8,$7 + srl $22,$7,11 + xor $30,$23 + sll $23,$7,21 + xor $30,$22 + srl $22,$7,25 + xor $30,$23 + sll $23,$7,26 + xor $30,$22 + xor $8,$25 # Ch(e,f,g) + xor $22,$23,$30 # Sigma1(e) + + srl $30,$31,2 + addu $21,$8 + lw $8,36($6) # K[9] + sll $23,$31,10 + addu $21,$22 + srl $22,$31,13 + xor $30,$23 + sll $23,$31,19 + xor $30,$22 + srl $22,$31,22 + xor $30,$23 + sll $23,$31,30 + xor $30,$22 + and $22,$1,$2 + xor $30,$23 # Sigma0(a) + xor $23,$1,$2 +#endif + sw $17,36($29) # offload to ring buffer + addu $30,$22 + and $23,$31 + addu $21,$8 # +=K[9] + addu $30,$23 # +=Maj(a,b,c) + addu $3,$21 + addu $30,$21 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $19,44($5) +#else + lwl $19,44($5) + lwr $19,47($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $9,$7,$24 # 10 + rotr $23,$3,6 + addu $22,$18,$25 + rotr $8,$3,11 + and $9,$3 + rotr $25,$3,25 + xor $23,$8 + rotr $8,$30,2 + xor $9,$24 # Ch(e,f,g) + xor $23,$25 # Sigma1(e) + + rotr $25,$30,13 + addu $22,$9 + lw $9,40($6) # K[10] + xor $25,$8 + rotr $8,$30,22 + addu $22,$23 + and $23,$31,$1 + xor $25,$8 # Sigma0(a) + xor $8,$31,$1 +#else + addu $22,$18,$25 # 10 + srl $25,$3,6 + xor $9,$7,$24 + sll $8,$3,7 + and $9,$3 + srl $23,$3,11 + xor $25,$8 + sll $8,$3,21 + xor $25,$23 + srl $23,$3,25 + xor $25,$8 + sll $8,$3,26 + xor $25,$23 + xor $9,$24 # Ch(e,f,g) + xor $23,$8,$25 # Sigma1(e) + + srl $25,$30,2 + addu $22,$9 + lw $9,40($6) # K[10] + sll $8,$30,10 + addu $22,$23 + srl $23,$30,13 + xor $25,$8 + sll $8,$30,19 + xor $25,$23 + srl $23,$30,22 + xor $25,$8 + sll $8,$30,30 + xor $25,$23 + and $23,$31,$1 + xor $25,$8 # Sigma0(a) + xor $8,$31,$1 +#endif + sw $18,40($29) # offload to ring buffer + addu $25,$23 + and $8,$30 + addu $22,$9 # +=K[10] + addu $25,$8 # +=Maj(a,b,c) + addu $2,$22 + addu $25,$22 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $20,48($5) +#else + lwl $20,48($5) + lwr $20,51($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $10,$3,$7 # 11 + rotr $8,$2,6 + addu $23,$19,$24 + rotr $9,$2,11 + and $10,$2 + rotr $24,$2,25 + xor $8,$9 + rotr $9,$25,2 + xor $10,$7 # Ch(e,f,g) + xor $8,$24 # Sigma1(e) + + rotr $24,$25,13 + addu $23,$10 + lw $10,44($6) # K[11] + xor $24,$9 + rotr $9,$25,22 + addu $23,$8 + and $8,$30,$31 + xor $24,$9 # Sigma0(a) + xor $9,$30,$31 +#else + addu $23,$19,$24 # 11 + srl $24,$2,6 + xor $10,$3,$7 + sll $9,$2,7 + and $10,$2 + srl $8,$2,11 + xor $24,$9 + sll $9,$2,21 + xor $24,$8 + srl $8,$2,25 + xor $24,$9 + sll $9,$2,26 + xor $24,$8 + xor $10,$7 # Ch(e,f,g) + xor $8,$9,$24 # Sigma1(e) + + srl $24,$25,2 + addu $23,$10 + lw $10,44($6) # K[11] + sll $9,$25,10 + addu $23,$8 + srl $8,$25,13 + xor $24,$9 + sll $9,$25,19 + xor $24,$8 + srl $8,$25,22 + xor $24,$9 + sll $9,$25,30 + xor $24,$8 + and $8,$30,$31 + xor $24,$9 # Sigma0(a) + xor $9,$30,$31 +#endif + sw $19,44($29) # offload to ring buffer + addu $24,$8 + and $9,$25 + addu $23,$10 # +=K[11] + addu $24,$9 # +=Maj(a,b,c) + addu $1,$23 + addu $24,$23 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $21,52($5) +#else + lwl $21,52($5) + lwr $21,55($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $11,$2,$3 # 12 + rotr $9,$1,6 + addu $8,$20,$7 + rotr $10,$1,11 + and $11,$1 + rotr $7,$1,25 + xor $9,$10 + rotr $10,$24,2 + xor $11,$3 # Ch(e,f,g) + xor $9,$7 # Sigma1(e) + + rotr $7,$24,13 + addu $8,$11 + lw $11,48($6) # K[12] + xor $7,$10 + rotr $10,$24,22 + addu $8,$9 + and $9,$25,$30 + xor $7,$10 # Sigma0(a) + xor $10,$25,$30 +#else + addu $8,$20,$7 # 12 + srl $7,$1,6 + xor $11,$2,$3 + sll $10,$1,7 + and $11,$1 + srl $9,$1,11 + xor $7,$10 + sll $10,$1,21 + xor $7,$9 + srl $9,$1,25 + xor $7,$10 + sll $10,$1,26 + xor $7,$9 + xor $11,$3 # Ch(e,f,g) + xor $9,$10,$7 # Sigma1(e) + + srl $7,$24,2 + addu $8,$11 + lw $11,48($6) # K[12] + sll $10,$24,10 + addu $8,$9 + srl $9,$24,13 + xor $7,$10 + sll $10,$24,19 + xor $7,$9 + srl $9,$24,22 + xor $7,$10 + sll $10,$24,30 + xor $7,$9 + and $9,$25,$30 + xor $7,$10 # Sigma0(a) + xor $10,$25,$30 +#endif + sw $20,48($29) # offload to ring buffer + addu $7,$9 + and $10,$24 + addu $8,$11 # +=K[12] + addu $7,$10 # +=Maj(a,b,c) + addu $31,$8 + addu $7,$8 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $22,56($5) +#else + lwl $22,56($5) + lwr $22,59($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $12,$1,$2 # 13 + rotr $10,$31,6 + addu $9,$21,$3 + rotr $11,$31,11 + and $12,$31 + rotr $3,$31,25 + xor $10,$11 + rotr $11,$7,2 + xor $12,$2 # Ch(e,f,g) + xor $10,$3 # Sigma1(e) + + rotr $3,$7,13 + addu $9,$12 + lw $12,52($6) # K[13] + xor $3,$11 + rotr $11,$7,22 + addu $9,$10 + and $10,$24,$25 + xor $3,$11 # Sigma0(a) + xor $11,$24,$25 +#else + addu $9,$21,$3 # 13 + srl $3,$31,6 + xor $12,$1,$2 + sll $11,$31,7 + and $12,$31 + srl $10,$31,11 + xor $3,$11 + sll $11,$31,21 + xor $3,$10 + srl $10,$31,25 + xor $3,$11 + sll $11,$31,26 + xor $3,$10 + xor $12,$2 # Ch(e,f,g) + xor $10,$11,$3 # Sigma1(e) + + srl $3,$7,2 + addu $9,$12 + lw $12,52($6) # K[13] + sll $11,$7,10 + addu $9,$10 + srl $10,$7,13 + xor $3,$11 + sll $11,$7,19 + xor $3,$10 + srl $10,$7,22 + xor $3,$11 + sll $11,$7,30 + xor $3,$10 + and $10,$24,$25 + xor $3,$11 # Sigma0(a) + xor $11,$24,$25 +#endif + sw $21,52($29) # offload to ring buffer + addu $3,$10 + and $11,$7 + addu $9,$12 # +=K[13] + addu $3,$11 # +=Maj(a,b,c) + addu $30,$9 + addu $3,$9 + lw $8,0($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $23,60($5) +#else + lwl $23,60($5) + lwr $23,63($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $13,$31,$1 # 14 + rotr $11,$30,6 + addu $10,$22,$2 + rotr $12,$30,11 + and $13,$30 + rotr $2,$30,25 + xor $11,$12 + rotr $12,$3,2 + xor $13,$1 # Ch(e,f,g) + xor $11,$2 # Sigma1(e) + + rotr $2,$3,13 + addu $10,$13 + lw $13,56($6) # K[14] + xor $2,$12 + rotr $12,$3,22 + addu $10,$11 + and $11,$7,$24 + xor $2,$12 # Sigma0(a) + xor $12,$7,$24 +#else + addu $10,$22,$2 # 14 + srl $2,$30,6 + xor $13,$31,$1 + sll $12,$30,7 + and $13,$30 + srl $11,$30,11 + xor $2,$12 + sll $12,$30,21 + xor $2,$11 + srl $11,$30,25 + xor $2,$12 + sll $12,$30,26 + xor $2,$11 + xor $13,$1 # Ch(e,f,g) + xor $11,$12,$2 # Sigma1(e) + + srl $2,$3,2 + addu $10,$13 + lw $13,56($6) # K[14] + sll $12,$3,10 + addu $10,$11 + srl $11,$3,13 + xor $2,$12 + sll $12,$3,19 + xor $2,$11 + srl $11,$3,22 + xor $2,$12 + sll $12,$3,30 + xor $2,$11 + and $11,$7,$24 + xor $2,$12 # Sigma0(a) + xor $12,$7,$24 +#endif + sw $22,56($29) # offload to ring buffer + addu $2,$11 + and $12,$3 + addu $10,$13 # +=K[14] + addu $2,$12 # +=Maj(a,b,c) + addu $25,$10 + addu $2,$10 + lw $9,4($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $14,$30,$31 # 15 + rotr $12,$25,6 + addu $11,$23,$1 + rotr $13,$25,11 + and $14,$25 + rotr $1,$25,25 + xor $12,$13 + rotr $13,$2,2 + xor $14,$31 # Ch(e,f,g) + xor $12,$1 # Sigma1(e) + + rotr $1,$2,13 + addu $11,$14 + lw $14,60($6) # K[15] + xor $1,$13 + rotr $13,$2,22 + addu $11,$12 + and $12,$3,$7 + xor $1,$13 # Sigma0(a) + xor $13,$3,$7 +#else + addu $11,$23,$1 # 15 + srl $1,$25,6 + xor $14,$30,$31 + sll $13,$25,7 + and $14,$25 + srl $12,$25,11 + xor $1,$13 + sll $13,$25,21 + xor $1,$12 + srl $12,$25,25 + xor $1,$13 + sll $13,$25,26 + xor $1,$12 + xor $14,$31 # Ch(e,f,g) + xor $12,$13,$1 # Sigma1(e) + + srl $1,$2,2 + addu $11,$14 + lw $14,60($6) # K[15] + sll $13,$2,10 + addu $11,$12 + srl $12,$2,13 + xor $1,$13 + sll $13,$2,19 + xor $1,$12 + srl $12,$2,22 + xor $1,$13 + sll $13,$2,30 + xor $1,$12 + and $12,$3,$7 + xor $1,$13 # Sigma0(a) + xor $13,$3,$7 +#endif + sw $23,60($29) # offload to ring buffer + addu $1,$12 + and $13,$2 + addu $11,$14 # +=K[15] + addu $1,$13 # +=Maj(a,b,c) + addu $24,$11 + addu $1,$11 + lw $10,8($29) # prefetch from ring buffer + b .L16_xx +.align 4 +.L16_xx: +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $14,$9,3 # Xupdate(16) + rotr $12,$9,7 + addu $8,$17 # +=X[i+9] + xor $14,$12 + rotr $12,$9,18 + + srl $15,$22,10 + rotr $13,$22,17 + xor $14,$12 # sigma0(X[i+1]) + rotr $12,$22,19 + xor $15,$13 + addu $8,$14 +#else + srl $14,$9,3 # Xupdate(16) + addu $8,$17 # +=X[i+9] + sll $13,$9,14 + srl $12,$9,7 + xor $14,$13 + sll $13,11 + xor $14,$12 + srl $12,$9,18 + xor $14,$13 + + srl $15,$22,10 + xor $14,$12 # sigma0(X[i+1]) + sll $13,$22,13 + addu $8,$14 + srl $12,$22,17 + xor $15,$13 + sll $13,2 + xor $15,$12 + srl $12,$22,19 + xor $15,$13 +#endif + xor $15,$12 # sigma1(X[i+14]) + addu $8,$15 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $15,$25,$30 # 16 + rotr $13,$24,6 + addu $12,$8,$31 + rotr $14,$24,11 + and $15,$24 + rotr $31,$24,25 + xor $13,$14 + rotr $14,$1,2 + xor $15,$30 # Ch(e,f,g) + xor $13,$31 # Sigma1(e) + + rotr $31,$1,13 + addu $12,$15 + lw $15,64($6) # K[16] + xor $31,$14 + rotr $14,$1,22 + addu $12,$13 + and $13,$2,$3 + xor $31,$14 # Sigma0(a) + xor $14,$2,$3 +#else + addu $12,$8,$31 # 16 + srl $31,$24,6 + xor $15,$25,$30 + sll $14,$24,7 + and $15,$24 + srl $13,$24,11 + xor $31,$14 + sll $14,$24,21 + xor $31,$13 + srl $13,$24,25 + xor $31,$14 + sll $14,$24,26 + xor $31,$13 + xor $15,$30 # Ch(e,f,g) + xor $13,$14,$31 # Sigma1(e) + + srl $31,$1,2 + addu $12,$15 + lw $15,64($6) # K[16] + sll $14,$1,10 + addu $12,$13 + srl $13,$1,13 + xor $31,$14 + sll $14,$1,19 + xor $31,$13 + srl $13,$1,22 + xor $31,$14 + sll $14,$1,30 + xor $31,$13 + and $13,$2,$3 + xor $31,$14 # Sigma0(a) + xor $14,$2,$3 +#endif + sw $8,0($29) # offload to ring buffer + addu $31,$13 + and $14,$1 + addu $12,$15 # +=K[16] + addu $31,$14 # +=Maj(a,b,c) + addu $7,$12 + addu $31,$12 + lw $11,12($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $15,$10,3 # Xupdate(17) + rotr $13,$10,7 + addu $9,$18 # +=X[i+9] + xor $15,$13 + rotr $13,$10,18 + + srl $16,$23,10 + rotr $14,$23,17 + xor $15,$13 # sigma0(X[i+1]) + rotr $13,$23,19 + xor $16,$14 + addu $9,$15 +#else + srl $15,$10,3 # Xupdate(17) + addu $9,$18 # +=X[i+9] + sll $14,$10,14 + srl $13,$10,7 + xor $15,$14 + sll $14,11 + xor $15,$13 + srl $13,$10,18 + xor $15,$14 + + srl $16,$23,10 + xor $15,$13 # sigma0(X[i+1]) + sll $14,$23,13 + addu $9,$15 + srl $13,$23,17 + xor $16,$14 + sll $14,2 + xor $16,$13 + srl $13,$23,19 + xor $16,$14 +#endif + xor $16,$13 # sigma1(X[i+14]) + addu $9,$16 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $16,$24,$25 # 17 + rotr $14,$7,6 + addu $13,$9,$30 + rotr $15,$7,11 + and $16,$7 + rotr $30,$7,25 + xor $14,$15 + rotr $15,$31,2 + xor $16,$25 # Ch(e,f,g) + xor $14,$30 # Sigma1(e) + + rotr $30,$31,13 + addu $13,$16 + lw $16,68($6) # K[17] + xor $30,$15 + rotr $15,$31,22 + addu $13,$14 + and $14,$1,$2 + xor $30,$15 # Sigma0(a) + xor $15,$1,$2 +#else + addu $13,$9,$30 # 17 + srl $30,$7,6 + xor $16,$24,$25 + sll $15,$7,7 + and $16,$7 + srl $14,$7,11 + xor $30,$15 + sll $15,$7,21 + xor $30,$14 + srl $14,$7,25 + xor $30,$15 + sll $15,$7,26 + xor $30,$14 + xor $16,$25 # Ch(e,f,g) + xor $14,$15,$30 # Sigma1(e) + + srl $30,$31,2 + addu $13,$16 + lw $16,68($6) # K[17] + sll $15,$31,10 + addu $13,$14 + srl $14,$31,13 + xor $30,$15 + sll $15,$31,19 + xor $30,$14 + srl $14,$31,22 + xor $30,$15 + sll $15,$31,30 + xor $30,$14 + and $14,$1,$2 + xor $30,$15 # Sigma0(a) + xor $15,$1,$2 +#endif + sw $9,4($29) # offload to ring buffer + addu $30,$14 + and $15,$31 + addu $13,$16 # +=K[17] + addu $30,$15 # +=Maj(a,b,c) + addu $3,$13 + addu $30,$13 + lw $12,16($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $16,$11,3 # Xupdate(18) + rotr $14,$11,7 + addu $10,$19 # +=X[i+9] + xor $16,$14 + rotr $14,$11,18 + + srl $17,$8,10 + rotr $15,$8,17 + xor $16,$14 # sigma0(X[i+1]) + rotr $14,$8,19 + xor $17,$15 + addu $10,$16 +#else + srl $16,$11,3 # Xupdate(18) + addu $10,$19 # +=X[i+9] + sll $15,$11,14 + srl $14,$11,7 + xor $16,$15 + sll $15,11 + xor $16,$14 + srl $14,$11,18 + xor $16,$15 + + srl $17,$8,10 + xor $16,$14 # sigma0(X[i+1]) + sll $15,$8,13 + addu $10,$16 + srl $14,$8,17 + xor $17,$15 + sll $15,2 + xor $17,$14 + srl $14,$8,19 + xor $17,$15 +#endif + xor $17,$14 # sigma1(X[i+14]) + addu $10,$17 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $17,$7,$24 # 18 + rotr $15,$3,6 + addu $14,$10,$25 + rotr $16,$3,11 + and $17,$3 + rotr $25,$3,25 + xor $15,$16 + rotr $16,$30,2 + xor $17,$24 # Ch(e,f,g) + xor $15,$25 # Sigma1(e) + + rotr $25,$30,13 + addu $14,$17 + lw $17,72($6) # K[18] + xor $25,$16 + rotr $16,$30,22 + addu $14,$15 + and $15,$31,$1 + xor $25,$16 # Sigma0(a) + xor $16,$31,$1 +#else + addu $14,$10,$25 # 18 + srl $25,$3,6 + xor $17,$7,$24 + sll $16,$3,7 + and $17,$3 + srl $15,$3,11 + xor $25,$16 + sll $16,$3,21 + xor $25,$15 + srl $15,$3,25 + xor $25,$16 + sll $16,$3,26 + xor $25,$15 + xor $17,$24 # Ch(e,f,g) + xor $15,$16,$25 # Sigma1(e) + + srl $25,$30,2 + addu $14,$17 + lw $17,72($6) # K[18] + sll $16,$30,10 + addu $14,$15 + srl $15,$30,13 + xor $25,$16 + sll $16,$30,19 + xor $25,$15 + srl $15,$30,22 + xor $25,$16 + sll $16,$30,30 + xor $25,$15 + and $15,$31,$1 + xor $25,$16 # Sigma0(a) + xor $16,$31,$1 +#endif + sw $10,8($29) # offload to ring buffer + addu $25,$15 + and $16,$30 + addu $14,$17 # +=K[18] + addu $25,$16 # +=Maj(a,b,c) + addu $2,$14 + addu $25,$14 + lw $13,20($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $17,$12,3 # Xupdate(19) + rotr $15,$12,7 + addu $11,$20 # +=X[i+9] + xor $17,$15 + rotr $15,$12,18 + + srl $18,$9,10 + rotr $16,$9,17 + xor $17,$15 # sigma0(X[i+1]) + rotr $15,$9,19 + xor $18,$16 + addu $11,$17 +#else + srl $17,$12,3 # Xupdate(19) + addu $11,$20 # +=X[i+9] + sll $16,$12,14 + srl $15,$12,7 + xor $17,$16 + sll $16,11 + xor $17,$15 + srl $15,$12,18 + xor $17,$16 + + srl $18,$9,10 + xor $17,$15 # sigma0(X[i+1]) + sll $16,$9,13 + addu $11,$17 + srl $15,$9,17 + xor $18,$16 + sll $16,2 + xor $18,$15 + srl $15,$9,19 + xor $18,$16 +#endif + xor $18,$15 # sigma1(X[i+14]) + addu $11,$18 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $18,$3,$7 # 19 + rotr $16,$2,6 + addu $15,$11,$24 + rotr $17,$2,11 + and $18,$2 + rotr $24,$2,25 + xor $16,$17 + rotr $17,$25,2 + xor $18,$7 # Ch(e,f,g) + xor $16,$24 # Sigma1(e) + + rotr $24,$25,13 + addu $15,$18 + lw $18,76($6) # K[19] + xor $24,$17 + rotr $17,$25,22 + addu $15,$16 + and $16,$30,$31 + xor $24,$17 # Sigma0(a) + xor $17,$30,$31 +#else + addu $15,$11,$24 # 19 + srl $24,$2,6 + xor $18,$3,$7 + sll $17,$2,7 + and $18,$2 + srl $16,$2,11 + xor $24,$17 + sll $17,$2,21 + xor $24,$16 + srl $16,$2,25 + xor $24,$17 + sll $17,$2,26 + xor $24,$16 + xor $18,$7 # Ch(e,f,g) + xor $16,$17,$24 # Sigma1(e) + + srl $24,$25,2 + addu $15,$18 + lw $18,76($6) # K[19] + sll $17,$25,10 + addu $15,$16 + srl $16,$25,13 + xor $24,$17 + sll $17,$25,19 + xor $24,$16 + srl $16,$25,22 + xor $24,$17 + sll $17,$25,30 + xor $24,$16 + and $16,$30,$31 + xor $24,$17 # Sigma0(a) + xor $17,$30,$31 +#endif + sw $11,12($29) # offload to ring buffer + addu $24,$16 + and $17,$25 + addu $15,$18 # +=K[19] + addu $24,$17 # +=Maj(a,b,c) + addu $1,$15 + addu $24,$15 + lw $14,24($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $18,$13,3 # Xupdate(20) + rotr $16,$13,7 + addu $12,$21 # +=X[i+9] + xor $18,$16 + rotr $16,$13,18 + + srl $19,$10,10 + rotr $17,$10,17 + xor $18,$16 # sigma0(X[i+1]) + rotr $16,$10,19 + xor $19,$17 + addu $12,$18 +#else + srl $18,$13,3 # Xupdate(20) + addu $12,$21 # +=X[i+9] + sll $17,$13,14 + srl $16,$13,7 + xor $18,$17 + sll $17,11 + xor $18,$16 + srl $16,$13,18 + xor $18,$17 + + srl $19,$10,10 + xor $18,$16 # sigma0(X[i+1]) + sll $17,$10,13 + addu $12,$18 + srl $16,$10,17 + xor $19,$17 + sll $17,2 + xor $19,$16 + srl $16,$10,19 + xor $19,$17 +#endif + xor $19,$16 # sigma1(X[i+14]) + addu $12,$19 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $19,$2,$3 # 20 + rotr $17,$1,6 + addu $16,$12,$7 + rotr $18,$1,11 + and $19,$1 + rotr $7,$1,25 + xor $17,$18 + rotr $18,$24,2 + xor $19,$3 # Ch(e,f,g) + xor $17,$7 # Sigma1(e) + + rotr $7,$24,13 + addu $16,$19 + lw $19,80($6) # K[20] + xor $7,$18 + rotr $18,$24,22 + addu $16,$17 + and $17,$25,$30 + xor $7,$18 # Sigma0(a) + xor $18,$25,$30 +#else + addu $16,$12,$7 # 20 + srl $7,$1,6 + xor $19,$2,$3 + sll $18,$1,7 + and $19,$1 + srl $17,$1,11 + xor $7,$18 + sll $18,$1,21 + xor $7,$17 + srl $17,$1,25 + xor $7,$18 + sll $18,$1,26 + xor $7,$17 + xor $19,$3 # Ch(e,f,g) + xor $17,$18,$7 # Sigma1(e) + + srl $7,$24,2 + addu $16,$19 + lw $19,80($6) # K[20] + sll $18,$24,10 + addu $16,$17 + srl $17,$24,13 + xor $7,$18 + sll $18,$24,19 + xor $7,$17 + srl $17,$24,22 + xor $7,$18 + sll $18,$24,30 + xor $7,$17 + and $17,$25,$30 + xor $7,$18 # Sigma0(a) + xor $18,$25,$30 +#endif + sw $12,16($29) # offload to ring buffer + addu $7,$17 + and $18,$24 + addu $16,$19 # +=K[20] + addu $7,$18 # +=Maj(a,b,c) + addu $31,$16 + addu $7,$16 + lw $15,28($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $19,$14,3 # Xupdate(21) + rotr $17,$14,7 + addu $13,$22 # +=X[i+9] + xor $19,$17 + rotr $17,$14,18 + + srl $20,$11,10 + rotr $18,$11,17 + xor $19,$17 # sigma0(X[i+1]) + rotr $17,$11,19 + xor $20,$18 + addu $13,$19 +#else + srl $19,$14,3 # Xupdate(21) + addu $13,$22 # +=X[i+9] + sll $18,$14,14 + srl $17,$14,7 + xor $19,$18 + sll $18,11 + xor $19,$17 + srl $17,$14,18 + xor $19,$18 + + srl $20,$11,10 + xor $19,$17 # sigma0(X[i+1]) + sll $18,$11,13 + addu $13,$19 + srl $17,$11,17 + xor $20,$18 + sll $18,2 + xor $20,$17 + srl $17,$11,19 + xor $20,$18 +#endif + xor $20,$17 # sigma1(X[i+14]) + addu $13,$20 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $20,$1,$2 # 21 + rotr $18,$31,6 + addu $17,$13,$3 + rotr $19,$31,11 + and $20,$31 + rotr $3,$31,25 + xor $18,$19 + rotr $19,$7,2 + xor $20,$2 # Ch(e,f,g) + xor $18,$3 # Sigma1(e) + + rotr $3,$7,13 + addu $17,$20 + lw $20,84($6) # K[21] + xor $3,$19 + rotr $19,$7,22 + addu $17,$18 + and $18,$24,$25 + xor $3,$19 # Sigma0(a) + xor $19,$24,$25 +#else + addu $17,$13,$3 # 21 + srl $3,$31,6 + xor $20,$1,$2 + sll $19,$31,7 + and $20,$31 + srl $18,$31,11 + xor $3,$19 + sll $19,$31,21 + xor $3,$18 + srl $18,$31,25 + xor $3,$19 + sll $19,$31,26 + xor $3,$18 + xor $20,$2 # Ch(e,f,g) + xor $18,$19,$3 # Sigma1(e) + + srl $3,$7,2 + addu $17,$20 + lw $20,84($6) # K[21] + sll $19,$7,10 + addu $17,$18 + srl $18,$7,13 + xor $3,$19 + sll $19,$7,19 + xor $3,$18 + srl $18,$7,22 + xor $3,$19 + sll $19,$7,30 + xor $3,$18 + and $18,$24,$25 + xor $3,$19 # Sigma0(a) + xor $19,$24,$25 +#endif + sw $13,20($29) # offload to ring buffer + addu $3,$18 + and $19,$7 + addu $17,$20 # +=K[21] + addu $3,$19 # +=Maj(a,b,c) + addu $30,$17 + addu $3,$17 + lw $16,32($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $20,$15,3 # Xupdate(22) + rotr $18,$15,7 + addu $14,$23 # +=X[i+9] + xor $20,$18 + rotr $18,$15,18 + + srl $21,$12,10 + rotr $19,$12,17 + xor $20,$18 # sigma0(X[i+1]) + rotr $18,$12,19 + xor $21,$19 + addu $14,$20 +#else + srl $20,$15,3 # Xupdate(22) + addu $14,$23 # +=X[i+9] + sll $19,$15,14 + srl $18,$15,7 + xor $20,$19 + sll $19,11 + xor $20,$18 + srl $18,$15,18 + xor $20,$19 + + srl $21,$12,10 + xor $20,$18 # sigma0(X[i+1]) + sll $19,$12,13 + addu $14,$20 + srl $18,$12,17 + xor $21,$19 + sll $19,2 + xor $21,$18 + srl $18,$12,19 + xor $21,$19 +#endif + xor $21,$18 # sigma1(X[i+14]) + addu $14,$21 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $21,$31,$1 # 22 + rotr $19,$30,6 + addu $18,$14,$2 + rotr $20,$30,11 + and $21,$30 + rotr $2,$30,25 + xor $19,$20 + rotr $20,$3,2 + xor $21,$1 # Ch(e,f,g) + xor $19,$2 # Sigma1(e) + + rotr $2,$3,13 + addu $18,$21 + lw $21,88($6) # K[22] + xor $2,$20 + rotr $20,$3,22 + addu $18,$19 + and $19,$7,$24 + xor $2,$20 # Sigma0(a) + xor $20,$7,$24 +#else + addu $18,$14,$2 # 22 + srl $2,$30,6 + xor $21,$31,$1 + sll $20,$30,7 + and $21,$30 + srl $19,$30,11 + xor $2,$20 + sll $20,$30,21 + xor $2,$19 + srl $19,$30,25 + xor $2,$20 + sll $20,$30,26 + xor $2,$19 + xor $21,$1 # Ch(e,f,g) + xor $19,$20,$2 # Sigma1(e) + + srl $2,$3,2 + addu $18,$21 + lw $21,88($6) # K[22] + sll $20,$3,10 + addu $18,$19 + srl $19,$3,13 + xor $2,$20 + sll $20,$3,19 + xor $2,$19 + srl $19,$3,22 + xor $2,$20 + sll $20,$3,30 + xor $2,$19 + and $19,$7,$24 + xor $2,$20 # Sigma0(a) + xor $20,$7,$24 +#endif + sw $14,24($29) # offload to ring buffer + addu $2,$19 + and $20,$3 + addu $18,$21 # +=K[22] + addu $2,$20 # +=Maj(a,b,c) + addu $25,$18 + addu $2,$18 + lw $17,36($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $21,$16,3 # Xupdate(23) + rotr $19,$16,7 + addu $15,$8 # +=X[i+9] + xor $21,$19 + rotr $19,$16,18 + + srl $22,$13,10 + rotr $20,$13,17 + xor $21,$19 # sigma0(X[i+1]) + rotr $19,$13,19 + xor $22,$20 + addu $15,$21 +#else + srl $21,$16,3 # Xupdate(23) + addu $15,$8 # +=X[i+9] + sll $20,$16,14 + srl $19,$16,7 + xor $21,$20 + sll $20,11 + xor $21,$19 + srl $19,$16,18 + xor $21,$20 + + srl $22,$13,10 + xor $21,$19 # sigma0(X[i+1]) + sll $20,$13,13 + addu $15,$21 + srl $19,$13,17 + xor $22,$20 + sll $20,2 + xor $22,$19 + srl $19,$13,19 + xor $22,$20 +#endif + xor $22,$19 # sigma1(X[i+14]) + addu $15,$22 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $22,$30,$31 # 23 + rotr $20,$25,6 + addu $19,$15,$1 + rotr $21,$25,11 + and $22,$25 + rotr $1,$25,25 + xor $20,$21 + rotr $21,$2,2 + xor $22,$31 # Ch(e,f,g) + xor $20,$1 # Sigma1(e) + + rotr $1,$2,13 + addu $19,$22 + lw $22,92($6) # K[23] + xor $1,$21 + rotr $21,$2,22 + addu $19,$20 + and $20,$3,$7 + xor $1,$21 # Sigma0(a) + xor $21,$3,$7 +#else + addu $19,$15,$1 # 23 + srl $1,$25,6 + xor $22,$30,$31 + sll $21,$25,7 + and $22,$25 + srl $20,$25,11 + xor $1,$21 + sll $21,$25,21 + xor $1,$20 + srl $20,$25,25 + xor $1,$21 + sll $21,$25,26 + xor $1,$20 + xor $22,$31 # Ch(e,f,g) + xor $20,$21,$1 # Sigma1(e) + + srl $1,$2,2 + addu $19,$22 + lw $22,92($6) # K[23] + sll $21,$2,10 + addu $19,$20 + srl $20,$2,13 + xor $1,$21 + sll $21,$2,19 + xor $1,$20 + srl $20,$2,22 + xor $1,$21 + sll $21,$2,30 + xor $1,$20 + and $20,$3,$7 + xor $1,$21 # Sigma0(a) + xor $21,$3,$7 +#endif + sw $15,28($29) # offload to ring buffer + addu $1,$20 + and $21,$2 + addu $19,$22 # +=K[23] + addu $1,$21 # +=Maj(a,b,c) + addu $24,$19 + addu $1,$19 + lw $18,40($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $22,$17,3 # Xupdate(24) + rotr $20,$17,7 + addu $16,$9 # +=X[i+9] + xor $22,$20 + rotr $20,$17,18 + + srl $23,$14,10 + rotr $21,$14,17 + xor $22,$20 # sigma0(X[i+1]) + rotr $20,$14,19 + xor $23,$21 + addu $16,$22 +#else + srl $22,$17,3 # Xupdate(24) + addu $16,$9 # +=X[i+9] + sll $21,$17,14 + srl $20,$17,7 + xor $22,$21 + sll $21,11 + xor $22,$20 + srl $20,$17,18 + xor $22,$21 + + srl $23,$14,10 + xor $22,$20 # sigma0(X[i+1]) + sll $21,$14,13 + addu $16,$22 + srl $20,$14,17 + xor $23,$21 + sll $21,2 + xor $23,$20 + srl $20,$14,19 + xor $23,$21 +#endif + xor $23,$20 # sigma1(X[i+14]) + addu $16,$23 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $23,$25,$30 # 24 + rotr $21,$24,6 + addu $20,$16,$31 + rotr $22,$24,11 + and $23,$24 + rotr $31,$24,25 + xor $21,$22 + rotr $22,$1,2 + xor $23,$30 # Ch(e,f,g) + xor $21,$31 # Sigma1(e) + + rotr $31,$1,13 + addu $20,$23 + lw $23,96($6) # K[24] + xor $31,$22 + rotr $22,$1,22 + addu $20,$21 + and $21,$2,$3 + xor $31,$22 # Sigma0(a) + xor $22,$2,$3 +#else + addu $20,$16,$31 # 24 + srl $31,$24,6 + xor $23,$25,$30 + sll $22,$24,7 + and $23,$24 + srl $21,$24,11 + xor $31,$22 + sll $22,$24,21 + xor $31,$21 + srl $21,$24,25 + xor $31,$22 + sll $22,$24,26 + xor $31,$21 + xor $23,$30 # Ch(e,f,g) + xor $21,$22,$31 # Sigma1(e) + + srl $31,$1,2 + addu $20,$23 + lw $23,96($6) # K[24] + sll $22,$1,10 + addu $20,$21 + srl $21,$1,13 + xor $31,$22 + sll $22,$1,19 + xor $31,$21 + srl $21,$1,22 + xor $31,$22 + sll $22,$1,30 + xor $31,$21 + and $21,$2,$3 + xor $31,$22 # Sigma0(a) + xor $22,$2,$3 +#endif + sw $16,32($29) # offload to ring buffer + addu $31,$21 + and $22,$1 + addu $20,$23 # +=K[24] + addu $31,$22 # +=Maj(a,b,c) + addu $7,$20 + addu $31,$20 + lw $19,44($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $23,$18,3 # Xupdate(25) + rotr $21,$18,7 + addu $17,$10 # +=X[i+9] + xor $23,$21 + rotr $21,$18,18 + + srl $8,$15,10 + rotr $22,$15,17 + xor $23,$21 # sigma0(X[i+1]) + rotr $21,$15,19 + xor $8,$22 + addu $17,$23 +#else + srl $23,$18,3 # Xupdate(25) + addu $17,$10 # +=X[i+9] + sll $22,$18,14 + srl $21,$18,7 + xor $23,$22 + sll $22,11 + xor $23,$21 + srl $21,$18,18 + xor $23,$22 + + srl $8,$15,10 + xor $23,$21 # sigma0(X[i+1]) + sll $22,$15,13 + addu $17,$23 + srl $21,$15,17 + xor $8,$22 + sll $22,2 + xor $8,$21 + srl $21,$15,19 + xor $8,$22 +#endif + xor $8,$21 # sigma1(X[i+14]) + addu $17,$8 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $8,$24,$25 # 25 + rotr $22,$7,6 + addu $21,$17,$30 + rotr $23,$7,11 + and $8,$7 + rotr $30,$7,25 + xor $22,$23 + rotr $23,$31,2 + xor $8,$25 # Ch(e,f,g) + xor $22,$30 # Sigma1(e) + + rotr $30,$31,13 + addu $21,$8 + lw $8,100($6) # K[25] + xor $30,$23 + rotr $23,$31,22 + addu $21,$22 + and $22,$1,$2 + xor $30,$23 # Sigma0(a) + xor $23,$1,$2 +#else + addu $21,$17,$30 # 25 + srl $30,$7,6 + xor $8,$24,$25 + sll $23,$7,7 + and $8,$7 + srl $22,$7,11 + xor $30,$23 + sll $23,$7,21 + xor $30,$22 + srl $22,$7,25 + xor $30,$23 + sll $23,$7,26 + xor $30,$22 + xor $8,$25 # Ch(e,f,g) + xor $22,$23,$30 # Sigma1(e) + + srl $30,$31,2 + addu $21,$8 + lw $8,100($6) # K[25] + sll $23,$31,10 + addu $21,$22 + srl $22,$31,13 + xor $30,$23 + sll $23,$31,19 + xor $30,$22 + srl $22,$31,22 + xor $30,$23 + sll $23,$31,30 + xor $30,$22 + and $22,$1,$2 + xor $30,$23 # Sigma0(a) + xor $23,$1,$2 +#endif + sw $17,36($29) # offload to ring buffer + addu $30,$22 + and $23,$31 + addu $21,$8 # +=K[25] + addu $30,$23 # +=Maj(a,b,c) + addu $3,$21 + addu $30,$21 + lw $20,48($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $8,$19,3 # Xupdate(26) + rotr $22,$19,7 + addu $18,$11 # +=X[i+9] + xor $8,$22 + rotr $22,$19,18 + + srl $9,$16,10 + rotr $23,$16,17 + xor $8,$22 # sigma0(X[i+1]) + rotr $22,$16,19 + xor $9,$23 + addu $18,$8 +#else + srl $8,$19,3 # Xupdate(26) + addu $18,$11 # +=X[i+9] + sll $23,$19,14 + srl $22,$19,7 + xor $8,$23 + sll $23,11 + xor $8,$22 + srl $22,$19,18 + xor $8,$23 + + srl $9,$16,10 + xor $8,$22 # sigma0(X[i+1]) + sll $23,$16,13 + addu $18,$8 + srl $22,$16,17 + xor $9,$23 + sll $23,2 + xor $9,$22 + srl $22,$16,19 + xor $9,$23 +#endif + xor $9,$22 # sigma1(X[i+14]) + addu $18,$9 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $9,$7,$24 # 26 + rotr $23,$3,6 + addu $22,$18,$25 + rotr $8,$3,11 + and $9,$3 + rotr $25,$3,25 + xor $23,$8 + rotr $8,$30,2 + xor $9,$24 # Ch(e,f,g) + xor $23,$25 # Sigma1(e) + + rotr $25,$30,13 + addu $22,$9 + lw $9,104($6) # K[26] + xor $25,$8 + rotr $8,$30,22 + addu $22,$23 + and $23,$31,$1 + xor $25,$8 # Sigma0(a) + xor $8,$31,$1 +#else + addu $22,$18,$25 # 26 + srl $25,$3,6 + xor $9,$7,$24 + sll $8,$3,7 + and $9,$3 + srl $23,$3,11 + xor $25,$8 + sll $8,$3,21 + xor $25,$23 + srl $23,$3,25 + xor $25,$8 + sll $8,$3,26 + xor $25,$23 + xor $9,$24 # Ch(e,f,g) + xor $23,$8,$25 # Sigma1(e) + + srl $25,$30,2 + addu $22,$9 + lw $9,104($6) # K[26] + sll $8,$30,10 + addu $22,$23 + srl $23,$30,13 + xor $25,$8 + sll $8,$30,19 + xor $25,$23 + srl $23,$30,22 + xor $25,$8 + sll $8,$30,30 + xor $25,$23 + and $23,$31,$1 + xor $25,$8 # Sigma0(a) + xor $8,$31,$1 +#endif + sw $18,40($29) # offload to ring buffer + addu $25,$23 + and $8,$30 + addu $22,$9 # +=K[26] + addu $25,$8 # +=Maj(a,b,c) + addu $2,$22 + addu $25,$22 + lw $21,52($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $9,$20,3 # Xupdate(27) + rotr $23,$20,7 + addu $19,$12 # +=X[i+9] + xor $9,$23 + rotr $23,$20,18 + + srl $10,$17,10 + rotr $8,$17,17 + xor $9,$23 # sigma0(X[i+1]) + rotr $23,$17,19 + xor $10,$8 + addu $19,$9 +#else + srl $9,$20,3 # Xupdate(27) + addu $19,$12 # +=X[i+9] + sll $8,$20,14 + srl $23,$20,7 + xor $9,$8 + sll $8,11 + xor $9,$23 + srl $23,$20,18 + xor $9,$8 + + srl $10,$17,10 + xor $9,$23 # sigma0(X[i+1]) + sll $8,$17,13 + addu $19,$9 + srl $23,$17,17 + xor $10,$8 + sll $8,2 + xor $10,$23 + srl $23,$17,19 + xor $10,$8 +#endif + xor $10,$23 # sigma1(X[i+14]) + addu $19,$10 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $10,$3,$7 # 27 + rotr $8,$2,6 + addu $23,$19,$24 + rotr $9,$2,11 + and $10,$2 + rotr $24,$2,25 + xor $8,$9 + rotr $9,$25,2 + xor $10,$7 # Ch(e,f,g) + xor $8,$24 # Sigma1(e) + + rotr $24,$25,13 + addu $23,$10 + lw $10,108($6) # K[27] + xor $24,$9 + rotr $9,$25,22 + addu $23,$8 + and $8,$30,$31 + xor $24,$9 # Sigma0(a) + xor $9,$30,$31 +#else + addu $23,$19,$24 # 27 + srl $24,$2,6 + xor $10,$3,$7 + sll $9,$2,7 + and $10,$2 + srl $8,$2,11 + xor $24,$9 + sll $9,$2,21 + xor $24,$8 + srl $8,$2,25 + xor $24,$9 + sll $9,$2,26 + xor $24,$8 + xor $10,$7 # Ch(e,f,g) + xor $8,$9,$24 # Sigma1(e) + + srl $24,$25,2 + addu $23,$10 + lw $10,108($6) # K[27] + sll $9,$25,10 + addu $23,$8 + srl $8,$25,13 + xor $24,$9 + sll $9,$25,19 + xor $24,$8 + srl $8,$25,22 + xor $24,$9 + sll $9,$25,30 + xor $24,$8 + and $8,$30,$31 + xor $24,$9 # Sigma0(a) + xor $9,$30,$31 +#endif + sw $19,44($29) # offload to ring buffer + addu $24,$8 + and $9,$25 + addu $23,$10 # +=K[27] + addu $24,$9 # +=Maj(a,b,c) + addu $1,$23 + addu $24,$23 + lw $22,56($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $10,$21,3 # Xupdate(28) + rotr $8,$21,7 + addu $20,$13 # +=X[i+9] + xor $10,$8 + rotr $8,$21,18 + + srl $11,$18,10 + rotr $9,$18,17 + xor $10,$8 # sigma0(X[i+1]) + rotr $8,$18,19 + xor $11,$9 + addu $20,$10 +#else + srl $10,$21,3 # Xupdate(28) + addu $20,$13 # +=X[i+9] + sll $9,$21,14 + srl $8,$21,7 + xor $10,$9 + sll $9,11 + xor $10,$8 + srl $8,$21,18 + xor $10,$9 + + srl $11,$18,10 + xor $10,$8 # sigma0(X[i+1]) + sll $9,$18,13 + addu $20,$10 + srl $8,$18,17 + xor $11,$9 + sll $9,2 + xor $11,$8 + srl $8,$18,19 + xor $11,$9 +#endif + xor $11,$8 # sigma1(X[i+14]) + addu $20,$11 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $11,$2,$3 # 28 + rotr $9,$1,6 + addu $8,$20,$7 + rotr $10,$1,11 + and $11,$1 + rotr $7,$1,25 + xor $9,$10 + rotr $10,$24,2 + xor $11,$3 # Ch(e,f,g) + xor $9,$7 # Sigma1(e) + + rotr $7,$24,13 + addu $8,$11 + lw $11,112($6) # K[28] + xor $7,$10 + rotr $10,$24,22 + addu $8,$9 + and $9,$25,$30 + xor $7,$10 # Sigma0(a) + xor $10,$25,$30 +#else + addu $8,$20,$7 # 28 + srl $7,$1,6 + xor $11,$2,$3 + sll $10,$1,7 + and $11,$1 + srl $9,$1,11 + xor $7,$10 + sll $10,$1,21 + xor $7,$9 + srl $9,$1,25 + xor $7,$10 + sll $10,$1,26 + xor $7,$9 + xor $11,$3 # Ch(e,f,g) + xor $9,$10,$7 # Sigma1(e) + + srl $7,$24,2 + addu $8,$11 + lw $11,112($6) # K[28] + sll $10,$24,10 + addu $8,$9 + srl $9,$24,13 + xor $7,$10 + sll $10,$24,19 + xor $7,$9 + srl $9,$24,22 + xor $7,$10 + sll $10,$24,30 + xor $7,$9 + and $9,$25,$30 + xor $7,$10 # Sigma0(a) + xor $10,$25,$30 +#endif + sw $20,48($29) # offload to ring buffer + addu $7,$9 + and $10,$24 + addu $8,$11 # +=K[28] + addu $7,$10 # +=Maj(a,b,c) + addu $31,$8 + addu $7,$8 + lw $23,60($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $11,$22,3 # Xupdate(29) + rotr $9,$22,7 + addu $21,$14 # +=X[i+9] + xor $11,$9 + rotr $9,$22,18 + + srl $12,$19,10 + rotr $10,$19,17 + xor $11,$9 # sigma0(X[i+1]) + rotr $9,$19,19 + xor $12,$10 + addu $21,$11 +#else + srl $11,$22,3 # Xupdate(29) + addu $21,$14 # +=X[i+9] + sll $10,$22,14 + srl $9,$22,7 + xor $11,$10 + sll $10,11 + xor $11,$9 + srl $9,$22,18 + xor $11,$10 + + srl $12,$19,10 + xor $11,$9 # sigma0(X[i+1]) + sll $10,$19,13 + addu $21,$11 + srl $9,$19,17 + xor $12,$10 + sll $10,2 + xor $12,$9 + srl $9,$19,19 + xor $12,$10 +#endif + xor $12,$9 # sigma1(X[i+14]) + addu $21,$12 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $12,$1,$2 # 29 + rotr $10,$31,6 + addu $9,$21,$3 + rotr $11,$31,11 + and $12,$31 + rotr $3,$31,25 + xor $10,$11 + rotr $11,$7,2 + xor $12,$2 # Ch(e,f,g) + xor $10,$3 # Sigma1(e) + + rotr $3,$7,13 + addu $9,$12 + lw $12,116($6) # K[29] + xor $3,$11 + rotr $11,$7,22 + addu $9,$10 + and $10,$24,$25 + xor $3,$11 # Sigma0(a) + xor $11,$24,$25 +#else + addu $9,$21,$3 # 29 + srl $3,$31,6 + xor $12,$1,$2 + sll $11,$31,7 + and $12,$31 + srl $10,$31,11 + xor $3,$11 + sll $11,$31,21 + xor $3,$10 + srl $10,$31,25 + xor $3,$11 + sll $11,$31,26 + xor $3,$10 + xor $12,$2 # Ch(e,f,g) + xor $10,$11,$3 # Sigma1(e) + + srl $3,$7,2 + addu $9,$12 + lw $12,116($6) # K[29] + sll $11,$7,10 + addu $9,$10 + srl $10,$7,13 + xor $3,$11 + sll $11,$7,19 + xor $3,$10 + srl $10,$7,22 + xor $3,$11 + sll $11,$7,30 + xor $3,$10 + and $10,$24,$25 + xor $3,$11 # Sigma0(a) + xor $11,$24,$25 +#endif + sw $21,52($29) # offload to ring buffer + addu $3,$10 + and $11,$7 + addu $9,$12 # +=K[29] + addu $3,$11 # +=Maj(a,b,c) + addu $30,$9 + addu $3,$9 + lw $8,0($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $12,$23,3 # Xupdate(30) + rotr $10,$23,7 + addu $22,$15 # +=X[i+9] + xor $12,$10 + rotr $10,$23,18 + + srl $13,$20,10 + rotr $11,$20,17 + xor $12,$10 # sigma0(X[i+1]) + rotr $10,$20,19 + xor $13,$11 + addu $22,$12 +#else + srl $12,$23,3 # Xupdate(30) + addu $22,$15 # +=X[i+9] + sll $11,$23,14 + srl $10,$23,7 + xor $12,$11 + sll $11,11 + xor $12,$10 + srl $10,$23,18 + xor $12,$11 + + srl $13,$20,10 + xor $12,$10 # sigma0(X[i+1]) + sll $11,$20,13 + addu $22,$12 + srl $10,$20,17 + xor $13,$11 + sll $11,2 + xor $13,$10 + srl $10,$20,19 + xor $13,$11 +#endif + xor $13,$10 # sigma1(X[i+14]) + addu $22,$13 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $13,$31,$1 # 30 + rotr $11,$30,6 + addu $10,$22,$2 + rotr $12,$30,11 + and $13,$30 + rotr $2,$30,25 + xor $11,$12 + rotr $12,$3,2 + xor $13,$1 # Ch(e,f,g) + xor $11,$2 # Sigma1(e) + + rotr $2,$3,13 + addu $10,$13 + lw $13,120($6) # K[30] + xor $2,$12 + rotr $12,$3,22 + addu $10,$11 + and $11,$7,$24 + xor $2,$12 # Sigma0(a) + xor $12,$7,$24 +#else + addu $10,$22,$2 # 30 + srl $2,$30,6 + xor $13,$31,$1 + sll $12,$30,7 + and $13,$30 + srl $11,$30,11 + xor $2,$12 + sll $12,$30,21 + xor $2,$11 + srl $11,$30,25 + xor $2,$12 + sll $12,$30,26 + xor $2,$11 + xor $13,$1 # Ch(e,f,g) + xor $11,$12,$2 # Sigma1(e) + + srl $2,$3,2 + addu $10,$13 + lw $13,120($6) # K[30] + sll $12,$3,10 + addu $10,$11 + srl $11,$3,13 + xor $2,$12 + sll $12,$3,19 + xor $2,$11 + srl $11,$3,22 + xor $2,$12 + sll $12,$3,30 + xor $2,$11 + and $11,$7,$24 + xor $2,$12 # Sigma0(a) + xor $12,$7,$24 +#endif + sw $22,56($29) # offload to ring buffer + addu $2,$11 + and $12,$3 + addu $10,$13 # +=K[30] + addu $2,$12 # +=Maj(a,b,c) + addu $25,$10 + addu $2,$10 + lw $9,4($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $13,$8,3 # Xupdate(31) + rotr $11,$8,7 + addu $23,$16 # +=X[i+9] + xor $13,$11 + rotr $11,$8,18 + + srl $14,$21,10 + rotr $12,$21,17 + xor $13,$11 # sigma0(X[i+1]) + rotr $11,$21,19 + xor $14,$12 + addu $23,$13 +#else + srl $13,$8,3 # Xupdate(31) + addu $23,$16 # +=X[i+9] + sll $12,$8,14 + srl $11,$8,7 + xor $13,$12 + sll $12,11 + xor $13,$11 + srl $11,$8,18 + xor $13,$12 + + srl $14,$21,10 + xor $13,$11 # sigma0(X[i+1]) + sll $12,$21,13 + addu $23,$13 + srl $11,$21,17 + xor $14,$12 + sll $12,2 + xor $14,$11 + srl $11,$21,19 + xor $14,$12 +#endif + xor $14,$11 # sigma1(X[i+14]) + addu $23,$14 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $14,$30,$31 # 31 + rotr $12,$25,6 + addu $11,$23,$1 + rotr $13,$25,11 + and $14,$25 + rotr $1,$25,25 + xor $12,$13 + rotr $13,$2,2 + xor $14,$31 # Ch(e,f,g) + xor $12,$1 # Sigma1(e) + + rotr $1,$2,13 + addu $11,$14 + lw $14,124($6) # K[31] + xor $1,$13 + rotr $13,$2,22 + addu $11,$12 + and $12,$3,$7 + xor $1,$13 # Sigma0(a) + xor $13,$3,$7 +#else + addu $11,$23,$1 # 31 + srl $1,$25,6 + xor $14,$30,$31 + sll $13,$25,7 + and $14,$25 + srl $12,$25,11 + xor $1,$13 + sll $13,$25,21 + xor $1,$12 + srl $12,$25,25 + xor $1,$13 + sll $13,$25,26 + xor $1,$12 + xor $14,$31 # Ch(e,f,g) + xor $12,$13,$1 # Sigma1(e) + + srl $1,$2,2 + addu $11,$14 + lw $14,124($6) # K[31] + sll $13,$2,10 + addu $11,$12 + srl $12,$2,13 + xor $1,$13 + sll $13,$2,19 + xor $1,$12 + srl $12,$2,22 + xor $1,$13 + sll $13,$2,30 + xor $1,$12 + and $12,$3,$7 + xor $1,$13 # Sigma0(a) + xor $13,$3,$7 +#endif + sw $23,60($29) # offload to ring buffer + addu $1,$12 + and $13,$2 + addu $11,$14 # +=K[31] + addu $1,$13 # +=Maj(a,b,c) + addu $24,$11 + addu $1,$11 + lw $10,8($29) # prefetch from ring buffer + and $14,0xfff + li $15,2290 + .set noreorder + bne $14,$15,.L16_xx + addu $6,16*4 # Ktbl+=16 + + lw $23,16*4($29) # restore pointer to the end of input + lw $8,0*4($4) + lw $9,1*4($4) + lw $10,2*4($4) + addu $5,16*4 + lw $11,3*4($4) + addu $1,$8 + lw $12,4*4($4) + addu $2,$9 + lw $13,5*4($4) + addu $3,$10 + lw $14,6*4($4) + addu $7,$11 + lw $15,7*4($4) + addu $24,$12 + sw $1,0*4($4) + addu $25,$13 + sw $2,1*4($4) + addu $30,$14 + sw $3,2*4($4) + addu $31,$15 + sw $7,3*4($4) + sw $24,4*4($4) + sw $25,5*4($4) + sw $30,6*4($4) + sw $31,7*4($4) + + bne $5,$23,.Loop + subu $6,192 # rewind $6 + + lw $31,128-1*4($29) + lw $30,128-2*4($29) + lw $23,128-3*4($29) + lw $22,128-4*4($29) + lw $21,128-5*4($29) + lw $20,128-6*4($29) + lw $19,128-7*4($29) + lw $18,128-8*4($29) + lw $17,128-9*4($29) + lw $16,128-10*4($29) + jr $31 + addu $29,128 +.end sha256_block_data_order + +.rdata +.align 5 +K256: + .word 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5 + .word 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5 + .word 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3 + .word 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174 + .word 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc + .word 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da + .word 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7 + .word 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967 + .word 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13 + .word 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85 + .word 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3 + .word 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070 + .word 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5 + .word 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3 + .word 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208 + .word 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 +.asciiz "SHA256 for MIPS, CRYPTOGAMS by " +.align 5 + diff -urN a/deps/openssl/config/archs/linux-mips/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux-mips/asm/include/openssl/opensslconf.h --- a/deps/openssl/config/archs/linux-mips/asm/include/openssl/opensslconf.h 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mips/asm/include/openssl/opensslconf.h 2019-12-25 13:49:19.984298806 +0900 @@ -0,0 +1,201 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# define BN_LLONG +/* Only one for the following should be defined */ +# undef SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# define THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned char + +#ifdef __cplusplus +} +#endif diff -urN a/deps/openssl/config/archs/linux-mips/asm/include/progs.h b/deps/openssl/config/archs/linux-mips/asm/include/progs.h --- a/deps/openssl/config/archs/linux-mips/asm/include/progs.h 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mips/asm/include/progs.h 2019-12-25 13:49:19.984298806 +0900 @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff -urN a/deps/openssl/config/archs/linux-mips/asm/openssl-cl.gypi b/deps/openssl/config/archs/linux-mips/asm/openssl-cl.gypi --- a/deps/openssl/config/archs/linux-mips/asm/openssl-cl.gypi 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mips/asm/openssl-cl.gypi 2019-12-25 13:49:19.984298806 +0900 @@ -0,0 +1,81 @@ +{ + 'variables': { + 'openssl_defines_linux-mips': [ + 'NDEBUG', + 'OPENSSL_USE_NODELETE', + 'OPENSSL_PIC', + 'OPENSSL_BN_ASM_MONT', + 'SHA1_ASM', + 'SHA256_ASM', + 'AES_ASM', + ], + 'openssl_cflags_linux-mips': [ + '-Wall -O3 -pthread', + ], + 'openssl_ex_libs_linux-mips': [ + '-ldl -pthread', + ], + 'openssl_cli_srcs_linux-mips': [ + 'openssl/apps/asn1pars.c', + 'openssl/apps/ca.c', + 'openssl/apps/ciphers.c', + 'openssl/apps/cms.c', + 'openssl/apps/crl.c', + 'openssl/apps/crl2p7.c', + 'openssl/apps/dgst.c', + 'openssl/apps/dhparam.c', + 'openssl/apps/dsa.c', + 'openssl/apps/dsaparam.c', + 'openssl/apps/ec.c', + 'openssl/apps/ecparam.c', + 'openssl/apps/enc.c', + 'openssl/apps/engine.c', + 'openssl/apps/errstr.c', + 'openssl/apps/gendsa.c', + 'openssl/apps/genpkey.c', + 'openssl/apps/genrsa.c', + 'openssl/apps/nseq.c', + 'openssl/apps/ocsp.c', + 'openssl/apps/openssl.c', + 'openssl/apps/passwd.c', + 'openssl/apps/pkcs12.c', + 'openssl/apps/pkcs7.c', + 'openssl/apps/pkcs8.c', + 'openssl/apps/pkey.c', + 'openssl/apps/pkeyparam.c', + 'openssl/apps/pkeyutl.c', + 'openssl/apps/prime.c', + 'openssl/apps/rand.c', + 'openssl/apps/rehash.c', + 'openssl/apps/req.c', + 'openssl/apps/rsa.c', + 'openssl/apps/rsautl.c', + 'openssl/apps/s_client.c', + 'openssl/apps/s_server.c', + 'openssl/apps/s_time.c', + 'openssl/apps/sess_id.c', + 'openssl/apps/smime.c', + 'openssl/apps/speed.c', + 'openssl/apps/spkac.c', + 'openssl/apps/srp.c', + 'openssl/apps/storeutl.c', + 'openssl/apps/ts.c', + 'openssl/apps/verify.c', + 'openssl/apps/version.c', + 'openssl/apps/x509.c', + 'openssl/apps/app_rand.c', + 'openssl/apps/apps.c', + 'openssl/apps/bf_prefix.c', + 'openssl/apps/opt.c', + 'openssl/apps/s_cb.c', + 'openssl/apps/s_socket.c', + ], + }, + 'defines': ['<@(openssl_defines_linux-mips)'], + 'include_dirs': [ + './include', + ], + 'cflags' : ['<@(openssl_cflags_linux-mips)'], + 'libraries': ['<@(openssl_ex_libs_linux-mips)'], + 'sources': ['<@(openssl_cli_srcs_linux-mips)'], +} diff -urN a/deps/openssl/config/archs/linux-mips/asm/openssl.gypi b/deps/openssl/config/archs/linux-mips/asm/openssl.gypi --- a/deps/openssl/config/archs/linux-mips/asm/openssl.gypi 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mips/asm/openssl.gypi 2019-12-25 13:49:19.984298806 +0900 @@ -0,0 +1,716 @@ +{ + 'variables': { + 'openssl_sources': [ + 'openssl/ssl/bio_ssl.c', + 'openssl/ssl/d1_lib.c', + 'openssl/ssl/d1_msg.c', + 'openssl/ssl/d1_srtp.c', + 'openssl/ssl/methods.c', + 'openssl/ssl/packet.c', + 'openssl/ssl/pqueue.c', + 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/record/rec_layer_d1.c', + 'openssl/ssl/record/rec_layer_s3.c', + 'openssl/ssl/record/ssl3_buffer.c', + 'openssl/ssl/record/ssl3_record.c', + 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/s3_enc.c', + 'openssl/ssl/s3_lib.c', + 'openssl/ssl/s3_msg.c', + 'openssl/ssl/ssl_asn1.c', + 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_ciph.c', + 'openssl/ssl/ssl_conf.c', + 'openssl/ssl/ssl_err.c', + 'openssl/ssl/ssl_init.c', + 'openssl/ssl/ssl_lib.c', + 'openssl/ssl/ssl_mcnf.c', + 'openssl/ssl/ssl_rsa.c', + 'openssl/ssl/ssl_sess.c', + 'openssl/ssl/ssl_stat.c', + 'openssl/ssl/ssl_txt.c', + 'openssl/ssl/ssl_utst.c', + 'openssl/ssl/statem/extensions.c', + 'openssl/ssl/statem/extensions_clnt.c', + 'openssl/ssl/statem/extensions_cust.c', + 'openssl/ssl/statem/extensions_srvr.c', + 'openssl/ssl/statem/statem.c', + 'openssl/ssl/statem/statem_clnt.c', + 'openssl/ssl/statem/statem_dtls.c', + 'openssl/ssl/statem/statem_lib.c', + 'openssl/ssl/statem/statem_srvr.c', + 'openssl/ssl/t1_enc.c', + 'openssl/ssl/t1_lib.c', + 'openssl/ssl/t1_trce.c', + 'openssl/ssl/tls13_enc.c', + 'openssl/ssl/tls_srp.c', + 'openssl/crypto/aes/aes_cbc.c', + 'openssl/crypto/aes/aes_cfb.c', + 'openssl/crypto/aes/aes_ecb.c', + 'openssl/crypto/aes/aes_ige.c', + 'openssl/crypto/aes/aes_misc.c', + 'openssl/crypto/aes/aes_ofb.c', + 'openssl/crypto/aes/aes_wrap.c', + 'openssl/crypto/aria/aria.c', + 'openssl/crypto/asn1/a_bitstr.c', + 'openssl/crypto/asn1/a_d2i_fp.c', + 'openssl/crypto/asn1/a_digest.c', + 'openssl/crypto/asn1/a_dup.c', + 'openssl/crypto/asn1/a_gentm.c', + 'openssl/crypto/asn1/a_i2d_fp.c', + 'openssl/crypto/asn1/a_int.c', + 'openssl/crypto/asn1/a_mbstr.c', + 'openssl/crypto/asn1/a_object.c', + 'openssl/crypto/asn1/a_octet.c', + 'openssl/crypto/asn1/a_print.c', + 'openssl/crypto/asn1/a_sign.c', + 'openssl/crypto/asn1/a_strex.c', + 'openssl/crypto/asn1/a_strnid.c', + 'openssl/crypto/asn1/a_time.c', + 'openssl/crypto/asn1/a_type.c', + 'openssl/crypto/asn1/a_utctm.c', + 'openssl/crypto/asn1/a_utf8.c', + 'openssl/crypto/asn1/a_verify.c', + 'openssl/crypto/asn1/ameth_lib.c', + 'openssl/crypto/asn1/asn1_err.c', + 'openssl/crypto/asn1/asn1_gen.c', + 'openssl/crypto/asn1/asn1_item_list.c', + 'openssl/crypto/asn1/asn1_lib.c', + 'openssl/crypto/asn1/asn1_par.c', + 'openssl/crypto/asn1/asn_mime.c', + 'openssl/crypto/asn1/asn_moid.c', + 'openssl/crypto/asn1/asn_mstbl.c', + 'openssl/crypto/asn1/asn_pack.c', + 'openssl/crypto/asn1/bio_asn1.c', + 'openssl/crypto/asn1/bio_ndef.c', + 'openssl/crypto/asn1/d2i_pr.c', + 'openssl/crypto/asn1/d2i_pu.c', + 'openssl/crypto/asn1/evp_asn1.c', + 'openssl/crypto/asn1/f_int.c', + 'openssl/crypto/asn1/f_string.c', + 'openssl/crypto/asn1/i2d_pr.c', + 'openssl/crypto/asn1/i2d_pu.c', + 'openssl/crypto/asn1/n_pkey.c', + 'openssl/crypto/asn1/nsseq.c', + 'openssl/crypto/asn1/p5_pbe.c', + 'openssl/crypto/asn1/p5_pbev2.c', + 'openssl/crypto/asn1/p5_scrypt.c', + 'openssl/crypto/asn1/p8_pkey.c', + 'openssl/crypto/asn1/t_bitst.c', + 'openssl/crypto/asn1/t_pkey.c', + 'openssl/crypto/asn1/t_spki.c', + 'openssl/crypto/asn1/tasn_dec.c', + 'openssl/crypto/asn1/tasn_enc.c', + 'openssl/crypto/asn1/tasn_fre.c', + 'openssl/crypto/asn1/tasn_new.c', + 'openssl/crypto/asn1/tasn_prn.c', + 'openssl/crypto/asn1/tasn_scn.c', + 'openssl/crypto/asn1/tasn_typ.c', + 'openssl/crypto/asn1/tasn_utl.c', + 'openssl/crypto/asn1/x_algor.c', + 'openssl/crypto/asn1/x_bignum.c', + 'openssl/crypto/asn1/x_info.c', + 'openssl/crypto/asn1/x_int64.c', + 'openssl/crypto/asn1/x_long.c', + 'openssl/crypto/asn1/x_pkey.c', + 'openssl/crypto/asn1/x_sig.c', + 'openssl/crypto/asn1/x_spki.c', + 'openssl/crypto/asn1/x_val.c', + 'openssl/crypto/async/arch/async_null.c', + 'openssl/crypto/async/arch/async_posix.c', + 'openssl/crypto/async/arch/async_win.c', + 'openssl/crypto/async/async.c', + 'openssl/crypto/async/async_err.c', + 'openssl/crypto/async/async_wait.c', + 'openssl/crypto/bf/bf_cfb64.c', + 'openssl/crypto/bf/bf_ecb.c', + 'openssl/crypto/bf/bf_enc.c', + 'openssl/crypto/bf/bf_ofb64.c', + 'openssl/crypto/bf/bf_skey.c', + 'openssl/crypto/bio/b_addr.c', + 'openssl/crypto/bio/b_dump.c', + 'openssl/crypto/bio/b_print.c', + 'openssl/crypto/bio/b_sock.c', + 'openssl/crypto/bio/b_sock2.c', + 'openssl/crypto/bio/bf_buff.c', + 'openssl/crypto/bio/bf_lbuf.c', + 'openssl/crypto/bio/bf_nbio.c', + 'openssl/crypto/bio/bf_null.c', + 'openssl/crypto/bio/bio_cb.c', + 'openssl/crypto/bio/bio_err.c', + 'openssl/crypto/bio/bio_lib.c', + 'openssl/crypto/bio/bio_meth.c', + 'openssl/crypto/bio/bss_acpt.c', + 'openssl/crypto/bio/bss_bio.c', + 'openssl/crypto/bio/bss_conn.c', + 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_fd.c', + 'openssl/crypto/bio/bss_file.c', + 'openssl/crypto/bio/bss_log.c', + 'openssl/crypto/bio/bss_mem.c', + 'openssl/crypto/bio/bss_null.c', + 'openssl/crypto/bio/bss_sock.c', + 'openssl/crypto/blake2/blake2b.c', + 'openssl/crypto/blake2/blake2s.c', + 'openssl/crypto/blake2/m_blake2b.c', + 'openssl/crypto/blake2/m_blake2s.c', + 'openssl/crypto/bn/bn_add.c', + 'openssl/crypto/bn/bn_blind.c', + 'openssl/crypto/bn/bn_const.c', + 'openssl/crypto/bn/bn_ctx.c', + 'openssl/crypto/bn/bn_depr.c', + 'openssl/crypto/bn/bn_dh.c', + 'openssl/crypto/bn/bn_div.c', + 'openssl/crypto/bn/bn_err.c', + 'openssl/crypto/bn/bn_exp.c', + 'openssl/crypto/bn/bn_exp2.c', + 'openssl/crypto/bn/bn_gcd.c', + 'openssl/crypto/bn/bn_gf2m.c', + 'openssl/crypto/bn/bn_intern.c', + 'openssl/crypto/bn/bn_kron.c', + 'openssl/crypto/bn/bn_lib.c', + 'openssl/crypto/bn/bn_mod.c', + 'openssl/crypto/bn/bn_mont.c', + 'openssl/crypto/bn/bn_mpi.c', + 'openssl/crypto/bn/bn_mul.c', + 'openssl/crypto/bn/bn_nist.c', + 'openssl/crypto/bn/bn_prime.c', + 'openssl/crypto/bn/bn_print.c', + 'openssl/crypto/bn/bn_rand.c', + 'openssl/crypto/bn/bn_recp.c', + 'openssl/crypto/bn/bn_shift.c', + 'openssl/crypto/bn/bn_sqr.c', + 'openssl/crypto/bn/bn_sqrt.c', + 'openssl/crypto/bn/bn_srp.c', + 'openssl/crypto/bn/bn_word.c', + 'openssl/crypto/bn/bn_x931p.c', + 'openssl/crypto/buffer/buf_err.c', + 'openssl/crypto/buffer/buffer.c', + 'openssl/crypto/camellia/camellia.c', + 'openssl/crypto/camellia/cmll_cbc.c', + 'openssl/crypto/camellia/cmll_cfb.c', + 'openssl/crypto/camellia/cmll_ctr.c', + 'openssl/crypto/camellia/cmll_ecb.c', + 'openssl/crypto/camellia/cmll_misc.c', + 'openssl/crypto/camellia/cmll_ofb.c', + 'openssl/crypto/cast/c_cfb64.c', + 'openssl/crypto/cast/c_ecb.c', + 'openssl/crypto/cast/c_enc.c', + 'openssl/crypto/cast/c_ofb64.c', + 'openssl/crypto/cast/c_skey.c', + 'openssl/crypto/chacha/chacha_enc.c', + 'openssl/crypto/cmac/cm_ameth.c', + 'openssl/crypto/cmac/cm_pmeth.c', + 'openssl/crypto/cmac/cmac.c', + 'openssl/crypto/cms/cms_asn1.c', + 'openssl/crypto/cms/cms_att.c', + 'openssl/crypto/cms/cms_cd.c', + 'openssl/crypto/cms/cms_dd.c', + 'openssl/crypto/cms/cms_enc.c', + 'openssl/crypto/cms/cms_env.c', + 'openssl/crypto/cms/cms_err.c', + 'openssl/crypto/cms/cms_ess.c', + 'openssl/crypto/cms/cms_io.c', + 'openssl/crypto/cms/cms_kari.c', + 'openssl/crypto/cms/cms_lib.c', + 'openssl/crypto/cms/cms_pwri.c', + 'openssl/crypto/cms/cms_sd.c', + 'openssl/crypto/cms/cms_smime.c', + 'openssl/crypto/conf/conf_api.c', + 'openssl/crypto/conf/conf_def.c', + 'openssl/crypto/conf/conf_err.c', + 'openssl/crypto/conf/conf_lib.c', + 'openssl/crypto/conf/conf_mall.c', + 'openssl/crypto/conf/conf_mod.c', + 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', + 'openssl/crypto/cpt_err.c', + 'openssl/crypto/cryptlib.c', + 'openssl/crypto/ct/ct_b64.c', + 'openssl/crypto/ct/ct_err.c', + 'openssl/crypto/ct/ct_log.c', + 'openssl/crypto/ct/ct_oct.c', + 'openssl/crypto/ct/ct_policy.c', + 'openssl/crypto/ct/ct_prn.c', + 'openssl/crypto/ct/ct_sct.c', + 'openssl/crypto/ct/ct_sct_ctx.c', + 'openssl/crypto/ct/ct_vfy.c', + 'openssl/crypto/ct/ct_x509v3.c', + 'openssl/crypto/ctype.c', + 'openssl/crypto/cversion.c', + 'openssl/crypto/des/cbc_cksm.c', + 'openssl/crypto/des/cbc_enc.c', + 'openssl/crypto/des/cfb64ede.c', + 'openssl/crypto/des/cfb64enc.c', + 'openssl/crypto/des/cfb_enc.c', + 'openssl/crypto/des/des_enc.c', + 'openssl/crypto/des/ecb3_enc.c', + 'openssl/crypto/des/ecb_enc.c', + 'openssl/crypto/des/fcrypt.c', + 'openssl/crypto/des/fcrypt_b.c', + 'openssl/crypto/des/ofb64ede.c', + 'openssl/crypto/des/ofb64enc.c', + 'openssl/crypto/des/ofb_enc.c', + 'openssl/crypto/des/pcbc_enc.c', + 'openssl/crypto/des/qud_cksm.c', + 'openssl/crypto/des/rand_key.c', + 'openssl/crypto/des/set_key.c', + 'openssl/crypto/des/str2key.c', + 'openssl/crypto/des/xcbc_enc.c', + 'openssl/crypto/dh/dh_ameth.c', + 'openssl/crypto/dh/dh_asn1.c', + 'openssl/crypto/dh/dh_check.c', + 'openssl/crypto/dh/dh_depr.c', + 'openssl/crypto/dh/dh_err.c', + 'openssl/crypto/dh/dh_gen.c', + 'openssl/crypto/dh/dh_kdf.c', + 'openssl/crypto/dh/dh_key.c', + 'openssl/crypto/dh/dh_lib.c', + 'openssl/crypto/dh/dh_meth.c', + 'openssl/crypto/dh/dh_pmeth.c', + 'openssl/crypto/dh/dh_prn.c', + 'openssl/crypto/dh/dh_rfc5114.c', + 'openssl/crypto/dh/dh_rfc7919.c', + 'openssl/crypto/dsa/dsa_ameth.c', + 'openssl/crypto/dsa/dsa_asn1.c', + 'openssl/crypto/dsa/dsa_depr.c', + 'openssl/crypto/dsa/dsa_err.c', + 'openssl/crypto/dsa/dsa_gen.c', + 'openssl/crypto/dsa/dsa_key.c', + 'openssl/crypto/dsa/dsa_lib.c', + 'openssl/crypto/dsa/dsa_meth.c', + 'openssl/crypto/dsa/dsa_ossl.c', + 'openssl/crypto/dsa/dsa_pmeth.c', + 'openssl/crypto/dsa/dsa_prn.c', + 'openssl/crypto/dsa/dsa_sign.c', + 'openssl/crypto/dsa/dsa_vrf.c', + 'openssl/crypto/dso/dso_dl.c', + 'openssl/crypto/dso/dso_dlfcn.c', + 'openssl/crypto/dso/dso_err.c', + 'openssl/crypto/dso/dso_lib.c', + 'openssl/crypto/dso/dso_openssl.c', + 'openssl/crypto/dso/dso_vms.c', + 'openssl/crypto/dso/dso_win32.c', + 'openssl/crypto/ebcdic.c', + 'openssl/crypto/ec/curve25519.c', + 'openssl/crypto/ec/curve448/arch_32/f_impl.c', + 'openssl/crypto/ec/curve448/curve448.c', + 'openssl/crypto/ec/curve448/curve448_tables.c', + 'openssl/crypto/ec/curve448/eddsa.c', + 'openssl/crypto/ec/curve448/f_generic.c', + 'openssl/crypto/ec/curve448/scalar.c', + 'openssl/crypto/ec/ec2_oct.c', + 'openssl/crypto/ec/ec2_smpl.c', + 'openssl/crypto/ec/ec_ameth.c', + 'openssl/crypto/ec/ec_asn1.c', + 'openssl/crypto/ec/ec_check.c', + 'openssl/crypto/ec/ec_curve.c', + 'openssl/crypto/ec/ec_cvt.c', + 'openssl/crypto/ec/ec_err.c', + 'openssl/crypto/ec/ec_key.c', + 'openssl/crypto/ec/ec_kmeth.c', + 'openssl/crypto/ec/ec_lib.c', + 'openssl/crypto/ec/ec_mult.c', + 'openssl/crypto/ec/ec_oct.c', + 'openssl/crypto/ec/ec_pmeth.c', + 'openssl/crypto/ec/ec_print.c', + 'openssl/crypto/ec/ecdh_kdf.c', + 'openssl/crypto/ec/ecdh_ossl.c', + 'openssl/crypto/ec/ecdsa_ossl.c', + 'openssl/crypto/ec/ecdsa_sign.c', + 'openssl/crypto/ec/ecdsa_vrf.c', + 'openssl/crypto/ec/eck_prn.c', + 'openssl/crypto/ec/ecp_mont.c', + 'openssl/crypto/ec/ecp_nist.c', + 'openssl/crypto/ec/ecp_nistp224.c', + 'openssl/crypto/ec/ecp_nistp256.c', + 'openssl/crypto/ec/ecp_nistp521.c', + 'openssl/crypto/ec/ecp_nistputil.c', + 'openssl/crypto/ec/ecp_oct.c', + 'openssl/crypto/ec/ecp_smpl.c', + 'openssl/crypto/ec/ecx_meth.c', + 'openssl/crypto/engine/eng_all.c', + 'openssl/crypto/engine/eng_cnf.c', + 'openssl/crypto/engine/eng_ctrl.c', + 'openssl/crypto/engine/eng_dyn.c', + 'openssl/crypto/engine/eng_err.c', + 'openssl/crypto/engine/eng_fat.c', + 'openssl/crypto/engine/eng_init.c', + 'openssl/crypto/engine/eng_lib.c', + 'openssl/crypto/engine/eng_list.c', + 'openssl/crypto/engine/eng_openssl.c', + 'openssl/crypto/engine/eng_pkey.c', + 'openssl/crypto/engine/eng_rdrand.c', + 'openssl/crypto/engine/eng_table.c', + 'openssl/crypto/engine/tb_asnmth.c', + 'openssl/crypto/engine/tb_cipher.c', + 'openssl/crypto/engine/tb_dh.c', + 'openssl/crypto/engine/tb_digest.c', + 'openssl/crypto/engine/tb_dsa.c', + 'openssl/crypto/engine/tb_eckey.c', + 'openssl/crypto/engine/tb_pkmeth.c', + 'openssl/crypto/engine/tb_rand.c', + 'openssl/crypto/engine/tb_rsa.c', + 'openssl/crypto/err/err.c', + 'openssl/crypto/err/err_all.c', + 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/evp/bio_b64.c', + 'openssl/crypto/evp/bio_enc.c', + 'openssl/crypto/evp/bio_md.c', + 'openssl/crypto/evp/bio_ok.c', + 'openssl/crypto/evp/c_allc.c', + 'openssl/crypto/evp/c_alld.c', + 'openssl/crypto/evp/cmeth_lib.c', + 'openssl/crypto/evp/digest.c', + 'openssl/crypto/evp/e_aes.c', + 'openssl/crypto/evp/e_aes_cbc_hmac_sha1.c', + 'openssl/crypto/evp/e_aes_cbc_hmac_sha256.c', + 'openssl/crypto/evp/e_aria.c', + 'openssl/crypto/evp/e_bf.c', + 'openssl/crypto/evp/e_camellia.c', + 'openssl/crypto/evp/e_cast.c', + 'openssl/crypto/evp/e_chacha20_poly1305.c', + 'openssl/crypto/evp/e_des.c', + 'openssl/crypto/evp/e_des3.c', + 'openssl/crypto/evp/e_idea.c', + 'openssl/crypto/evp/e_null.c', + 'openssl/crypto/evp/e_old.c', + 'openssl/crypto/evp/e_rc2.c', + 'openssl/crypto/evp/e_rc4.c', + 'openssl/crypto/evp/e_rc4_hmac_md5.c', + 'openssl/crypto/evp/e_rc5.c', + 'openssl/crypto/evp/e_seed.c', + 'openssl/crypto/evp/e_sm4.c', + 'openssl/crypto/evp/e_xcbc_d.c', + 'openssl/crypto/evp/encode.c', + 'openssl/crypto/evp/evp_cnf.c', + 'openssl/crypto/evp/evp_enc.c', + 'openssl/crypto/evp/evp_err.c', + 'openssl/crypto/evp/evp_key.c', + 'openssl/crypto/evp/evp_lib.c', + 'openssl/crypto/evp/evp_pbe.c', + 'openssl/crypto/evp/evp_pkey.c', + 'openssl/crypto/evp/m_md2.c', + 'openssl/crypto/evp/m_md4.c', + 'openssl/crypto/evp/m_md5.c', + 'openssl/crypto/evp/m_md5_sha1.c', + 'openssl/crypto/evp/m_mdc2.c', + 'openssl/crypto/evp/m_null.c', + 'openssl/crypto/evp/m_ripemd.c', + 'openssl/crypto/evp/m_sha1.c', + 'openssl/crypto/evp/m_sha3.c', + 'openssl/crypto/evp/m_sigver.c', + 'openssl/crypto/evp/m_wp.c', + 'openssl/crypto/evp/names.c', + 'openssl/crypto/evp/p5_crpt.c', + 'openssl/crypto/evp/p5_crpt2.c', + 'openssl/crypto/evp/p_dec.c', + 'openssl/crypto/evp/p_enc.c', + 'openssl/crypto/evp/p_lib.c', + 'openssl/crypto/evp/p_open.c', + 'openssl/crypto/evp/p_seal.c', + 'openssl/crypto/evp/p_sign.c', + 'openssl/crypto/evp/p_verify.c', + 'openssl/crypto/evp/pbe_scrypt.c', + 'openssl/crypto/evp/pmeth_fn.c', + 'openssl/crypto/evp/pmeth_gn.c', + 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/ex_data.c', + 'openssl/crypto/getenv.c', + 'openssl/crypto/hmac/hm_ameth.c', + 'openssl/crypto/hmac/hm_pmeth.c', + 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/idea/i_cbc.c', + 'openssl/crypto/idea/i_cfb64.c', + 'openssl/crypto/idea/i_ecb.c', + 'openssl/crypto/idea/i_ofb64.c', + 'openssl/crypto/idea/i_skey.c', + 'openssl/crypto/init.c', + 'openssl/crypto/kdf/hkdf.c', + 'openssl/crypto/kdf/kdf_err.c', + 'openssl/crypto/kdf/scrypt.c', + 'openssl/crypto/kdf/tls1_prf.c', + 'openssl/crypto/lhash/lh_stats.c', + 'openssl/crypto/lhash/lhash.c', + 'openssl/crypto/md4/md4_dgst.c', + 'openssl/crypto/md4/md4_one.c', + 'openssl/crypto/md5/md5_dgst.c', + 'openssl/crypto/md5/md5_one.c', + 'openssl/crypto/mdc2/mdc2_one.c', + 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/mem.c', + 'openssl/crypto/mem_clr.c', + 'openssl/crypto/mem_dbg.c', + 'openssl/crypto/mem_sec.c', + 'openssl/crypto/modes/cbc128.c', + 'openssl/crypto/modes/ccm128.c', + 'openssl/crypto/modes/cfb128.c', + 'openssl/crypto/modes/ctr128.c', + 'openssl/crypto/modes/cts128.c', + 'openssl/crypto/modes/gcm128.c', + 'openssl/crypto/modes/ocb128.c', + 'openssl/crypto/modes/ofb128.c', + 'openssl/crypto/modes/wrap128.c', + 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/o_dir.c', + 'openssl/crypto/o_fips.c', + 'openssl/crypto/o_fopen.c', + 'openssl/crypto/o_init.c', + 'openssl/crypto/o_str.c', + 'openssl/crypto/o_time.c', + 'openssl/crypto/objects/o_names.c', + 'openssl/crypto/objects/obj_dat.c', + 'openssl/crypto/objects/obj_err.c', + 'openssl/crypto/objects/obj_lib.c', + 'openssl/crypto/objects/obj_xref.c', + 'openssl/crypto/ocsp/ocsp_asn.c', + 'openssl/crypto/ocsp/ocsp_cl.c', + 'openssl/crypto/ocsp/ocsp_err.c', + 'openssl/crypto/ocsp/ocsp_ext.c', + 'openssl/crypto/ocsp/ocsp_ht.c', + 'openssl/crypto/ocsp/ocsp_lib.c', + 'openssl/crypto/ocsp/ocsp_prn.c', + 'openssl/crypto/ocsp/ocsp_srv.c', + 'openssl/crypto/ocsp/ocsp_vfy.c', + 'openssl/crypto/ocsp/v3_ocsp.c', + 'openssl/crypto/pem/pem_all.c', + 'openssl/crypto/pem/pem_err.c', + 'openssl/crypto/pem/pem_info.c', + 'openssl/crypto/pem/pem_lib.c', + 'openssl/crypto/pem/pem_oth.c', + 'openssl/crypto/pem/pem_pk8.c', + 'openssl/crypto/pem/pem_pkey.c', + 'openssl/crypto/pem/pem_sign.c', + 'openssl/crypto/pem/pem_x509.c', + 'openssl/crypto/pem/pem_xaux.c', + 'openssl/crypto/pem/pvkfmt.c', + 'openssl/crypto/pkcs12/p12_add.c', + 'openssl/crypto/pkcs12/p12_asn.c', + 'openssl/crypto/pkcs12/p12_attr.c', + 'openssl/crypto/pkcs12/p12_crpt.c', + 'openssl/crypto/pkcs12/p12_crt.c', + 'openssl/crypto/pkcs12/p12_decr.c', + 'openssl/crypto/pkcs12/p12_init.c', + 'openssl/crypto/pkcs12/p12_key.c', + 'openssl/crypto/pkcs12/p12_kiss.c', + 'openssl/crypto/pkcs12/p12_mutl.c', + 'openssl/crypto/pkcs12/p12_npas.c', + 'openssl/crypto/pkcs12/p12_p8d.c', + 'openssl/crypto/pkcs12/p12_p8e.c', + 'openssl/crypto/pkcs12/p12_sbag.c', + 'openssl/crypto/pkcs12/p12_utl.c', + 'openssl/crypto/pkcs12/pk12err.c', + 'openssl/crypto/pkcs7/bio_pk7.c', + 'openssl/crypto/pkcs7/pk7_asn1.c', + 'openssl/crypto/pkcs7/pk7_attr.c', + 'openssl/crypto/pkcs7/pk7_doit.c', + 'openssl/crypto/pkcs7/pk7_lib.c', + 'openssl/crypto/pkcs7/pk7_mime.c', + 'openssl/crypto/pkcs7/pk7_smime.c', + 'openssl/crypto/pkcs7/pkcs7err.c', + 'openssl/crypto/poly1305/poly1305.c', + 'openssl/crypto/poly1305/poly1305_ameth.c', + 'openssl/crypto/poly1305/poly1305_pmeth.c', + 'openssl/crypto/rand/drbg_ctr.c', + 'openssl/crypto/rand/drbg_lib.c', + 'openssl/crypto/rand/rand_egd.c', + 'openssl/crypto/rand/rand_err.c', + 'openssl/crypto/rand/rand_lib.c', + 'openssl/crypto/rand/rand_unix.c', + 'openssl/crypto/rand/rand_vms.c', + 'openssl/crypto/rand/rand_win.c', + 'openssl/crypto/rand/randfile.c', + 'openssl/crypto/rc2/rc2_cbc.c', + 'openssl/crypto/rc2/rc2_ecb.c', + 'openssl/crypto/rc2/rc2_skey.c', + 'openssl/crypto/rc2/rc2cfb64.c', + 'openssl/crypto/rc2/rc2ofb64.c', + 'openssl/crypto/rc4/rc4_enc.c', + 'openssl/crypto/rc4/rc4_skey.c', + 'openssl/crypto/ripemd/rmd_dgst.c', + 'openssl/crypto/ripemd/rmd_one.c', + 'openssl/crypto/rsa/rsa_ameth.c', + 'openssl/crypto/rsa/rsa_asn1.c', + 'openssl/crypto/rsa/rsa_chk.c', + 'openssl/crypto/rsa/rsa_crpt.c', + 'openssl/crypto/rsa/rsa_depr.c', + 'openssl/crypto/rsa/rsa_err.c', + 'openssl/crypto/rsa/rsa_gen.c', + 'openssl/crypto/rsa/rsa_lib.c', + 'openssl/crypto/rsa/rsa_meth.c', + 'openssl/crypto/rsa/rsa_mp.c', + 'openssl/crypto/rsa/rsa_none.c', + 'openssl/crypto/rsa/rsa_oaep.c', + 'openssl/crypto/rsa/rsa_ossl.c', + 'openssl/crypto/rsa/rsa_pk1.c', + 'openssl/crypto/rsa/rsa_pmeth.c', + 'openssl/crypto/rsa/rsa_prn.c', + 'openssl/crypto/rsa/rsa_pss.c', + 'openssl/crypto/rsa/rsa_saos.c', + 'openssl/crypto/rsa/rsa_sign.c', + 'openssl/crypto/rsa/rsa_ssl.c', + 'openssl/crypto/rsa/rsa_x931.c', + 'openssl/crypto/rsa/rsa_x931g.c', + 'openssl/crypto/seed/seed.c', + 'openssl/crypto/seed/seed_cbc.c', + 'openssl/crypto/seed/seed_cfb.c', + 'openssl/crypto/seed/seed_ecb.c', + 'openssl/crypto/seed/seed_ofb.c', + 'openssl/crypto/sha/keccak1600.c', + 'openssl/crypto/sha/sha1_one.c', + 'openssl/crypto/sha/sha1dgst.c', + 'openssl/crypto/sha/sha256.c', + 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/siphash/siphash_ameth.c', + 'openssl/crypto/siphash/siphash_pmeth.c', + 'openssl/crypto/sm2/sm2_crypt.c', + 'openssl/crypto/sm2/sm2_err.c', + 'openssl/crypto/sm2/sm2_pmeth.c', + 'openssl/crypto/sm2/sm2_sign.c', + 'openssl/crypto/sm3/m_sm3.c', + 'openssl/crypto/sm3/sm3.c', + 'openssl/crypto/sm4/sm4.c', + 'openssl/crypto/srp/srp_lib.c', + 'openssl/crypto/srp/srp_vfy.c', + 'openssl/crypto/stack/stack.c', + 'openssl/crypto/store/loader_file.c', + 'openssl/crypto/store/store_err.c', + 'openssl/crypto/store/store_init.c', + 'openssl/crypto/store/store_lib.c', + 'openssl/crypto/store/store_register.c', + 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/threads_none.c', + 'openssl/crypto/threads_pthread.c', + 'openssl/crypto/threads_win.c', + 'openssl/crypto/ts/ts_asn1.c', + 'openssl/crypto/ts/ts_conf.c', + 'openssl/crypto/ts/ts_err.c', + 'openssl/crypto/ts/ts_lib.c', + 'openssl/crypto/ts/ts_req_print.c', + 'openssl/crypto/ts/ts_req_utils.c', + 'openssl/crypto/ts/ts_rsp_print.c', + 'openssl/crypto/ts/ts_rsp_sign.c', + 'openssl/crypto/ts/ts_rsp_utils.c', + 'openssl/crypto/ts/ts_rsp_verify.c', + 'openssl/crypto/ts/ts_verify_ctx.c', + 'openssl/crypto/txt_db/txt_db.c', + 'openssl/crypto/ui/ui_err.c', + 'openssl/crypto/ui/ui_lib.c', + 'openssl/crypto/ui/ui_null.c', + 'openssl/crypto/ui/ui_openssl.c', + 'openssl/crypto/ui/ui_util.c', + 'openssl/crypto/uid.c', + 'openssl/crypto/whrlpool/wp_block.c', + 'openssl/crypto/whrlpool/wp_dgst.c', + 'openssl/crypto/x509/by_dir.c', + 'openssl/crypto/x509/by_file.c', + 'openssl/crypto/x509/t_crl.c', + 'openssl/crypto/x509/t_req.c', + 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/x509_att.c', + 'openssl/crypto/x509/x509_cmp.c', + 'openssl/crypto/x509/x509_d2.c', + 'openssl/crypto/x509/x509_def.c', + 'openssl/crypto/x509/x509_err.c', + 'openssl/crypto/x509/x509_ext.c', + 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', + 'openssl/crypto/x509/x509_obj.c', + 'openssl/crypto/x509/x509_r2x.c', + 'openssl/crypto/x509/x509_req.c', + 'openssl/crypto/x509/x509_set.c', + 'openssl/crypto/x509/x509_trs.c', + 'openssl/crypto/x509/x509_txt.c', + 'openssl/crypto/x509/x509_v3.c', + 'openssl/crypto/x509/x509_vfy.c', + 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509cset.c', + 'openssl/crypto/x509/x509name.c', + 'openssl/crypto/x509/x509rset.c', + 'openssl/crypto/x509/x509spki.c', + 'openssl/crypto/x509/x509type.c', + 'openssl/crypto/x509/x_all.c', + 'openssl/crypto/x509/x_attrib.c', + 'openssl/crypto/x509/x_crl.c', + 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_name.c', + 'openssl/crypto/x509/x_pubkey.c', + 'openssl/crypto/x509/x_req.c', + 'openssl/crypto/x509/x_x509.c', + 'openssl/crypto/x509/x_x509a.c', + 'openssl/crypto/x509v3/pcy_cache.c', + 'openssl/crypto/x509v3/pcy_data.c', + 'openssl/crypto/x509v3/pcy_lib.c', + 'openssl/crypto/x509v3/pcy_map.c', + 'openssl/crypto/x509v3/pcy_node.c', + 'openssl/crypto/x509v3/pcy_tree.c', + 'openssl/crypto/x509v3/v3_addr.c', + 'openssl/crypto/x509v3/v3_admis.c', + 'openssl/crypto/x509v3/v3_akey.c', + 'openssl/crypto/x509v3/v3_akeya.c', + 'openssl/crypto/x509v3/v3_alt.c', + 'openssl/crypto/x509v3/v3_asid.c', + 'openssl/crypto/x509v3/v3_bcons.c', + 'openssl/crypto/x509v3/v3_bitst.c', + 'openssl/crypto/x509v3/v3_conf.c', + 'openssl/crypto/x509v3/v3_cpols.c', + 'openssl/crypto/x509v3/v3_crld.c', + 'openssl/crypto/x509v3/v3_enum.c', + 'openssl/crypto/x509v3/v3_extku.c', + 'openssl/crypto/x509v3/v3_genn.c', + 'openssl/crypto/x509v3/v3_ia5.c', + 'openssl/crypto/x509v3/v3_info.c', + 'openssl/crypto/x509v3/v3_int.c', + 'openssl/crypto/x509v3/v3_lib.c', + 'openssl/crypto/x509v3/v3_ncons.c', + 'openssl/crypto/x509v3/v3_pci.c', + 'openssl/crypto/x509v3/v3_pcia.c', + 'openssl/crypto/x509v3/v3_pcons.c', + 'openssl/crypto/x509v3/v3_pku.c', + 'openssl/crypto/x509v3/v3_pmaps.c', + 'openssl/crypto/x509v3/v3_prn.c', + 'openssl/crypto/x509v3/v3_purp.c', + 'openssl/crypto/x509v3/v3_skey.c', + 'openssl/crypto/x509v3/v3_sxnet.c', + 'openssl/crypto/x509v3/v3_tlsf.c', + 'openssl/crypto/x509v3/v3_utl.c', + 'openssl/crypto/x509v3/v3err.c', + 'openssl/engines/e_capi.c', + 'openssl/engines/e_padlock.c', + ], + 'openssl_sources_linux-mips': [ + './config/archs/linux-mips/asm/crypto/aes/aes-mips.S', + './config/archs/linux-mips/asm/crypto/bn/bn-mips.S', + './config/archs/linux-mips/asm/crypto/bn/mips-mont.S', + './config/archs/linux-mips/asm/crypto/sha/sha1-mips.S', + './config/archs/linux-mips/asm/crypto/sha/sha256-mips.S', + ], + 'openssl_defines_linux-mips': [ + 'NDEBUG', + 'OPENSSL_USE_NODELETE', + 'OPENSSL_PIC', + 'OPENSSL_BN_ASM_MONT', + 'SHA1_ASM', + 'SHA256_ASM', + 'AES_ASM', + ], + 'openssl_cflags_linux-mips': [ + '-Wall -O3 -pthread', + ], + 'openssl_ex_libs_linux-mips': [ + '-ldl -pthread', + ], + }, + 'include_dirs': [ + '.', + './include', + './crypto', + './crypto/include/internal', + ], + 'defines': ['<@(openssl_defines_linux-mips)'], + 'cflags' : ['<@(openssl_cflags_linux-mips)'], + 'libraries': ['<@(openssl_ex_libs_linux-mips)'], + 'sources': ['<@(openssl_sources)', '<@(openssl_sources_linux-mips)'], +} diff -urN a/deps/openssl/config/archs/linux-mipsel/asm/crypto/aes/aes-mips.S b/deps/openssl/config/archs/linux-mipsel/asm/crypto/aes/aes-mips.S --- a/deps/openssl/config/archs/linux-mipsel/asm/crypto/aes/aes-mips.S 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mipsel/asm/crypto/aes/aes-mips.S 2019-12-25 13:49:19.984298806 +0900 @@ -0,0 +1,1870 @@ +#include "mips_arch.h" + +.text +#if !defined(__mips_eabi) && (!defined(__vxworks) || defined(__pic__)) +.option pic2 +#endif +.set noat +.align 5 +.ent _mips_AES_encrypt +_mips_AES_encrypt: + .frame $29,0,$31 + .set reorder + lw $12,0($6) + lw $13,4($6) + lw $14,8($6) + lw $15,12($6) + lw $30,240($6) + addu $3,$6,16 + + xor $8,$12 + xor $9,$13 + xor $10,$14 + xor $11,$15 + + subu $30,1 +#if defined(__mips_smartmips) + ext $1,$9,8,8 +.Loop_enc: + ext $2,$10,8,8 + ext $24,$11,8,8 + ext $25,$8,8,8 + lwxs $12,$1($7) # Te1[s1>>16] + ext $1,$10,16,8 + lwxs $13,$2($7) # Te1[s2>>16] + ext $2,$11,16,8 + lwxs $14,$24($7) # Te1[s3>>16] + ext $24,$8,16,8 + lwxs $15,$25($7) # Te1[s0>>16] + ext $25,$9,16,8 + + lwxs $16,$1($7) # Te2[s2>>8] + ext $1,$11,24,8 + lwxs $17,$2($7) # Te2[s3>>8] + ext $2,$8,24,8 + lwxs $18,$24($7) # Te2[s0>>8] + ext $24,$9,24,8 + lwxs $19,$25($7) # Te2[s1>>8] + ext $25,$10,24,8 + + lwxs $20,$1($7) # Te3[s3] + ext $1,$8,0,8 + lwxs $21,$2($7) # Te3[s0] + ext $2,$9,0,8 + lwxs $22,$24($7) # Te3[s1] + ext $24,$10,0,8 + lwxs $23,$25($7) # Te3[s2] + ext $25,$11,0,8 + + rotr $12,$12,24 + rotr $13,$13,24 + rotr $14,$14,24 + rotr $15,$15,24 + + rotr $16,$16,16 + rotr $17,$17,16 + rotr $18,$18,16 + rotr $19,$19,16 + + xor $12,$16 + lwxs $16,$1($7) # Te0[s0>>24] + xor $13,$17 + lwxs $17,$2($7) # Te0[s1>>24] + xor $14,$18 + lwxs $18,$24($7) # Te0[s2>>24] + xor $15,$19 + lwxs $19,$25($7) # Te0[s3>>24] + + rotr $20,$20,8 + lw $8,0($3) + rotr $21,$21,8 + lw $9,4($3) + rotr $22,$22,8 + lw $10,8($3) + rotr $23,$23,8 + lw $11,12($3) + + xor $12,$20 + xor $13,$21 + xor $14,$22 + xor $15,$23 + + xor $12,$16 + xor $13,$17 + xor $14,$18 + xor $15,$19 + + subu $30,1 + addu $3,16 + xor $8,$12 + xor $9,$13 + xor $10,$14 + xor $11,$15 + .set noreorder + bnez $30,.Loop_enc + ext $1,$9,8,8 + + srl $1,$9,6 +#else + srl $1,$9,6 +.Loop_enc: + srl $2,$10,6 + srl $24,$11,6 + srl $25,$8,6 + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + lw $12,0($1) # Te1[s1>>16] + srl $1,$10,14 + lw $13,0($2) # Te1[s2>>16] + srl $2,$11,14 + lw $14,0($24) # Te1[s3>>16] + srl $24,$8,14 + lw $15,0($25) # Te1[s0>>16] + srl $25,$9,14 +#else + lwl $12,2($1) # Te1[s1>>16] + lwl $13,2($2) # Te1[s2>>16] + lwl $14,2($24) # Te1[s3>>16] + lwl $15,2($25) # Te1[s0>>16] + lwr $12,3($1) # Te1[s1>>16] + srl $1,$10,14 + lwr $13,3($2) # Te1[s2>>16] + srl $2,$11,14 + lwr $14,3($24) # Te1[s3>>16] + srl $24,$8,14 + lwr $15,3($25) # Te1[s0>>16] + srl $25,$9,14 +#endif + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + rotr $12,$12,24 + rotr $13,$13,24 + rotr $14,$14,24 + rotr $15,$15,24 +# if defined(_MIPSEL) + lw $16,0($1) # Te2[s2>>8] + srl $1,$11,22 + lw $17,0($2) # Te2[s3>>8] + srl $2,$8,22 + lw $18,0($24) # Te2[s0>>8] + srl $24,$9,22 + lw $19,0($25) # Te2[s1>>8] + srl $25,$10,22 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lw $20,0($1) # Te3[s3] + ins $1,$8,2,8 + lw $21,0($2) # Te3[s0] + ins $2,$9,2,8 + lw $22,0($24) # Te3[s1] + ins $24,$10,2,8 + lw $23,0($25) # Te3[s2] + ins $25,$11,2,8 +# else + lw $16,0($1) # Te2[s2>>8] + ins $1,$11,2,8 + lw $17,0($2) # Te2[s3>>8] + ins $2,$8,2,8 + lw $18,0($24) # Te2[s0>>8] + ins $24,$9,2,8 + lw $19,0($25) # Te2[s1>>8] + ins $25,$10,2,8 + + lw $20,0($1) # Te3[s3] + sll $1,$8,2 + lw $21,0($2) # Te3[s0] + sll $2,$9,2 + lw $22,0($24) # Te3[s1] + sll $24,$10,2 + lw $23,0($25) # Te3[s2] + sll $25,$11,2 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +# endif + rotr $16,$16,16 + rotr $17,$17,16 + rotr $18,$18,16 + rotr $19,$19,16 + + rotr $20,$20,8 + rotr $21,$21,8 + rotr $22,$22,8 + rotr $23,$23,8 +#else + lwl $16,1($1) # Te2[s2>>8] + lwl $17,1($2) # Te2[s3>>8] + lwl $18,1($24) # Te2[s0>>8] + lwl $19,1($25) # Te2[s1>>8] + lwr $16,2($1) # Te2[s2>>8] + srl $1,$11,22 + lwr $17,2($2) # Te2[s3>>8] + srl $2,$8,22 + lwr $18,2($24) # Te2[s0>>8] + srl $24,$9,22 + lwr $19,2($25) # Te2[s1>>8] + srl $25,$10,22 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lwl $20,0($1) # Te3[s3] + lwl $21,0($2) # Te3[s0] + lwl $22,0($24) # Te3[s1] + lwl $23,0($25) # Te3[s2] + lwr $20,1($1) # Te3[s3] + sll $1,$8,2 + lwr $21,1($2) # Te3[s0] + sll $2,$9,2 + lwr $22,1($24) # Te3[s1] + sll $24,$10,2 + lwr $23,1($25) # Te3[s2] + sll $25,$11,2 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +#endif + xor $12,$16 + lw $16,0($1) # Te0[s0>>24] + xor $13,$17 + lw $17,0($2) # Te0[s1>>24] + xor $14,$18 + lw $18,0($24) # Te0[s2>>24] + xor $15,$19 + lw $19,0($25) # Te0[s3>>24] + + xor $12,$20 + lw $8,0($3) + xor $13,$21 + lw $9,4($3) + xor $14,$22 + lw $10,8($3) + xor $15,$23 + lw $11,12($3) + + xor $12,$16 + xor $13,$17 + xor $14,$18 + xor $15,$19 + + subu $30,1 + addu $3,16 + xor $8,$12 + xor $9,$13 + xor $10,$14 + xor $11,$15 + .set noreorder + bnez $30,.Loop_enc + srl $1,$9,6 +#endif + + .set reorder + srl $2,$10,6 + srl $24,$11,6 + srl $25,$8,6 + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $12,2($1) # Te4[s1>>16] + srl $1,$10,14 + lbu $13,2($2) # Te4[s2>>16] + srl $2,$11,14 + lbu $14,2($24) # Te4[s3>>16] + srl $24,$8,14 + lbu $15,2($25) # Te4[s0>>16] + srl $25,$9,14 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) +# if defined(_MIPSEL) + lbu $16,2($1) # Te4[s2>>8] + ins $1,$8,2,8 + lbu $17,2($2) # Te4[s3>>8] + ins $2,$9,2,8 + lbu $18,2($24) # Te4[s0>>8] + ins $24,$10,2,8 + lbu $19,2($25) # Te4[s1>>8] + ins $25,$11,2,8 + + lbu $20,2($1) # Te4[s0>>24] + srl $1,$11,22 + lbu $21,2($2) # Te4[s1>>24] + srl $2,$8,22 + lbu $22,2($24) # Te4[s2>>24] + srl $24,$9,22 + lbu $23,2($25) # Te4[s3>>24] + srl $25,$10,22 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +# else + lbu $16,2($1) # Te4[s2>>8] + sll $1,$8,2 + lbu $17,2($2) # Te4[s3>>8] + sll $2,$9,2 + lbu $18,2($24) # Te4[s0>>8] + sll $24,$10,2 + lbu $19,2($25) # Te4[s1>>8] + sll $25,$11,2 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $20,2($1) # Te4[s0>>24] + ins $1,$11,2,8 + lbu $21,2($2) # Te4[s1>>24] + ins $2,$8,2,8 + lbu $22,2($24) # Te4[s2>>24] + ins $24,$9,2,8 + lbu $23,2($25) # Te4[s3>>24] + ins $25,$10,2,8 +# endif + sll $12,$12,8 + sll $13,$13,8 + sll $14,$14,8 + sll $15,$15,8 + + ins $12,$16,16,8 + lbu $16,2($1) # Te4[s3] + ins $13,$17,16,8 + lbu $17,2($2) # Te4[s0] + ins $14,$18,16,8 + lbu $18,2($24) # Te4[s1] + ins $15,$19,16,8 + lbu $19,2($25) # Te4[s2] + + ins $12,$20,0,8 + lw $8,0($3) + ins $13,$21,0,8 + lw $9,4($3) + ins $14,$22,0,8 + lw $10,8($3) + ins $15,$23,0,8 + lw $11,12($3) + + ins $12,$16,24,8 + ins $13,$17,24,8 + ins $14,$18,24,8 + ins $15,$19,24,8 +#else + lbu $16,2($1) # Te4[s2>>8] + sll $1,$8,2 + lbu $17,2($2) # Te4[s3>>8] + sll $2,$9,2 + lbu $18,2($24) # Te4[s0>>8] + sll $24,$10,2 + lbu $19,2($25) # Te4[s1>>8] + sll $25,$11,2 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $20,2($1) # Te4[s0>>24] + srl $1,$11,22 + lbu $21,2($2) # Te4[s1>>24] + srl $2,$8,22 + lbu $22,2($24) # Te4[s2>>24] + srl $24,$9,22 + lbu $23,2($25) # Te4[s3>>24] + srl $25,$10,22 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + + sll $12,$12,8 + sll $13,$13,8 + sll $14,$14,8 + sll $15,$15,8 + + sll $16,$16,16 + sll $17,$17,16 + sll $18,$18,16 + sll $19,$19,16 + + xor $12,$16 + lbu $16,2($1) # Te4[s3] + xor $13,$17 + lbu $17,2($2) # Te4[s0] + xor $14,$18 + lbu $18,2($24) # Te4[s1] + xor $15,$19 + lbu $19,2($25) # Te4[s2] + + #sll $20,$20,0 + lw $8,0($3) + #sll $21,$21,0 + lw $9,4($3) + #sll $22,$22,0 + lw $10,8($3) + #sll $23,$23,0 + lw $11,12($3) + + xor $12,$20 + xor $13,$21 + xor $14,$22 + xor $15,$23 + + sll $16,$16,24 + sll $17,$17,24 + sll $18,$18,24 + sll $19,$19,24 + + xor $12,$16 + xor $13,$17 + xor $14,$18 + xor $15,$19 +#endif + xor $8,$12 + xor $9,$13 + xor $10,$14 + xor $11,$15 + + jr $31 +.end _mips_AES_encrypt + +.align 5 +.globl AES_encrypt +.ent AES_encrypt +AES_encrypt: + .frame $29,64,$31 + .mask 0xc0ff0000,-4 + .set noreorder + .cpload $25 + subu $29,64 + sw $31,64-1*4($29) + sw $30,64-2*4($29) + sw $23,64-3*4($29) + sw $22,64-4*4($29) + sw $21,64-5*4($29) + sw $20,64-6*4($29) + sw $19,64-7*4($29) + sw $18,64-8*4($29) + sw $17,64-9*4($29) + sw $16,64-10*4($29) + .set reorder + la $7,AES_Te # PIC-ified 'load address' + +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $8,0($4) + lw $9,4($4) + lw $10,8($4) + lw $11,12($4) +#else + lwl $8,0+3($4) + lwl $9,4+3($4) + lwl $10,8+3($4) + lwl $11,12+3($4) + lwr $8,0+0($4) + lwr $9,4+0($4) + lwr $10,8+0($4) + lwr $11,12+0($4) +#endif + + bal _mips_AES_encrypt + +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + sw $8,0($5) + sw $9,4($5) + sw $10,8($5) + sw $11,12($5) +#else + swr $8,0+0($5) + swr $9,4+0($5) + swr $10,8+0($5) + swr $11,12+0($5) + swl $8,0+3($5) + swl $9,4+3($5) + swl $10,8+3($5) + swl $11,12+3($5) +#endif + + .set noreorder + lw $31,64-1*4($29) + lw $30,64-2*4($29) + lw $23,64-3*4($29) + lw $22,64-4*4($29) + lw $21,64-5*4($29) + lw $20,64-6*4($29) + lw $19,64-7*4($29) + lw $18,64-8*4($29) + lw $17,64-9*4($29) + lw $16,64-10*4($29) + jr $31 + addu $29,64 +.end AES_encrypt +.align 5 +.ent _mips_AES_decrypt +_mips_AES_decrypt: + .frame $29,0,$31 + .set reorder + lw $12,0($6) + lw $13,4($6) + lw $14,8($6) + lw $15,12($6) + lw $30,240($6) + addu $3,$6,16 + + xor $8,$12 + xor $9,$13 + xor $10,$14 + xor $11,$15 + + subu $30,1 +#if defined(__mips_smartmips) + ext $1,$11,8,8 +.Loop_dec: + ext $2,$8,8,8 + ext $24,$9,8,8 + ext $25,$10,8,8 + lwxs $12,$1($7) # Td1[s3>>16] + ext $1,$10,16,8 + lwxs $13,$2($7) # Td1[s0>>16] + ext $2,$11,16,8 + lwxs $14,$24($7) # Td1[s1>>16] + ext $24,$8,16,8 + lwxs $15,$25($7) # Td1[s2>>16] + ext $25,$9,16,8 + + lwxs $16,$1($7) # Td2[s2>>8] + ext $1,$9,24,8 + lwxs $17,$2($7) # Td2[s3>>8] + ext $2,$10,24,8 + lwxs $18,$24($7) # Td2[s0>>8] + ext $24,$11,24,8 + lwxs $19,$25($7) # Td2[s1>>8] + ext $25,$8,24,8 + + lwxs $20,$1($7) # Td3[s1] + ext $1,$8,0,8 + lwxs $21,$2($7) # Td3[s2] + ext $2,$9,0,8 + lwxs $22,$24($7) # Td3[s3] + ext $24,$10,0,8 + lwxs $23,$25($7) # Td3[s0] + ext $25,$11,0,8 + + rotr $12,$12,24 + rotr $13,$13,24 + rotr $14,$14,24 + rotr $15,$15,24 + + rotr $16,$16,16 + rotr $17,$17,16 + rotr $18,$18,16 + rotr $19,$19,16 + + xor $12,$16 + lwxs $16,$1($7) # Td0[s0>>24] + xor $13,$17 + lwxs $17,$2($7) # Td0[s1>>24] + xor $14,$18 + lwxs $18,$24($7) # Td0[s2>>24] + xor $15,$19 + lwxs $19,$25($7) # Td0[s3>>24] + + rotr $20,$20,8 + lw $8,0($3) + rotr $21,$21,8 + lw $9,4($3) + rotr $22,$22,8 + lw $10,8($3) + rotr $23,$23,8 + lw $11,12($3) + + xor $12,$20 + xor $13,$21 + xor $14,$22 + xor $15,$23 + + xor $12,$16 + xor $13,$17 + xor $14,$18 + xor $15,$19 + + subu $30,1 + addu $3,16 + xor $8,$12 + xor $9,$13 + xor $10,$14 + xor $11,$15 + .set noreorder + bnez $30,.Loop_dec + ext $1,$11,8,8 + + srl $1,$11,6 +#else + srl $1,$11,6 +.Loop_dec: + srl $2,$8,6 + srl $24,$9,6 + srl $25,$10,6 + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + lw $12,0($1) # Td1[s3>>16] + srl $1,$10,14 + lw $13,0($2) # Td1[s0>>16] + srl $2,$11,14 + lw $14,0($24) # Td1[s1>>16] + srl $24,$8,14 + lw $15,0($25) # Td1[s2>>16] + srl $25,$9,14 +#else + lwl $12,2($1) # Td1[s3>>16] + lwl $13,2($2) # Td1[s0>>16] + lwl $14,2($24) # Td1[s1>>16] + lwl $15,2($25) # Td1[s2>>16] + lwr $12,3($1) # Td1[s3>>16] + srl $1,$10,14 + lwr $13,3($2) # Td1[s0>>16] + srl $2,$11,14 + lwr $14,3($24) # Td1[s1>>16] + srl $24,$8,14 + lwr $15,3($25) # Td1[s2>>16] + srl $25,$9,14 +#endif + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + rotr $12,$12,24 + rotr $13,$13,24 + rotr $14,$14,24 + rotr $15,$15,24 +# if defined(_MIPSEL) + lw $16,0($1) # Td2[s2>>8] + srl $1,$9,22 + lw $17,0($2) # Td2[s3>>8] + srl $2,$10,22 + lw $18,0($24) # Td2[s0>>8] + srl $24,$11,22 + lw $19,0($25) # Td2[s1>>8] + srl $25,$8,22 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lw $20,0($1) # Td3[s1] + ins $1,$8,2,8 + lw $21,0($2) # Td3[s2] + ins $2,$9,2,8 + lw $22,0($24) # Td3[s3] + ins $24,$10,2,8 + lw $23,0($25) # Td3[s0] + ins $25,$11,2,8 +#else + lw $16,0($1) # Td2[s2>>8] + ins $1,$9,2,8 + lw $17,0($2) # Td2[s3>>8] + ins $2,$10,2,8 + lw $18,0($24) # Td2[s0>>8] + ins $24,$11,2,8 + lw $19,0($25) # Td2[s1>>8] + ins $25,$8,2,8 + + lw $20,0($1) # Td3[s1] + sll $1,$8,2 + lw $21,0($2) # Td3[s2] + sll $2,$9,2 + lw $22,0($24) # Td3[s3] + sll $24,$10,2 + lw $23,0($25) # Td3[s0] + sll $25,$11,2 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +#endif + rotr $16,$16,16 + rotr $17,$17,16 + rotr $18,$18,16 + rotr $19,$19,16 + + rotr $20,$20,8 + rotr $21,$21,8 + rotr $22,$22,8 + rotr $23,$23,8 +#else + lwl $16,1($1) # Td2[s2>>8] + lwl $17,1($2) # Td2[s3>>8] + lwl $18,1($24) # Td2[s0>>8] + lwl $19,1($25) # Td2[s1>>8] + lwr $16,2($1) # Td2[s2>>8] + srl $1,$9,22 + lwr $17,2($2) # Td2[s3>>8] + srl $2,$10,22 + lwr $18,2($24) # Td2[s0>>8] + srl $24,$11,22 + lwr $19,2($25) # Td2[s1>>8] + srl $25,$8,22 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lwl $20,0($1) # Td3[s1] + lwl $21,0($2) # Td3[s2] + lwl $22,0($24) # Td3[s3] + lwl $23,0($25) # Td3[s0] + lwr $20,1($1) # Td3[s1] + sll $1,$8,2 + lwr $21,1($2) # Td3[s2] + sll $2,$9,2 + lwr $22,1($24) # Td3[s3] + sll $24,$10,2 + lwr $23,1($25) # Td3[s0] + sll $25,$11,2 + + and $1,0x3fc + and $2,0x3fc + and $24,0x3fc + and $25,0x3fc + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +#endif + + xor $12,$16 + lw $16,0($1) # Td0[s0>>24] + xor $13,$17 + lw $17,0($2) # Td0[s1>>24] + xor $14,$18 + lw $18,0($24) # Td0[s2>>24] + xor $15,$19 + lw $19,0($25) # Td0[s3>>24] + + xor $12,$20 + lw $8,0($3) + xor $13,$21 + lw $9,4($3) + xor $14,$22 + lw $10,8($3) + xor $15,$23 + lw $11,12($3) + + xor $12,$16 + xor $13,$17 + xor $14,$18 + xor $15,$19 + + subu $30,1 + addu $3,16 + xor $8,$12 + xor $9,$13 + xor $10,$14 + xor $11,$15 + .set noreorder + bnez $30,.Loop_dec + srl $1,$11,6 +#endif + + .set reorder + lw $16,1024($7) # prefetch Td4 + srl $1,$11,8 + lw $17,1024+32($7) + srl $2,$8,8 + lw $18,1024+64($7) + srl $24,$9,8 + lw $19,1024+96($7) + srl $25,$10,8 + lw $20,1024+128($7) + and $1,0xff + lw $21,1024+160($7) + and $2,0xff + lw $22,1024+192($7) + and $24,0xff + lw $23,1024+224($7) + and $25,0xff + + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $12,1024($1) # Td4[s3>>16] + srl $1,$10,16 + lbu $13,1024($2) # Td4[s0>>16] + srl $2,$11,16 + lbu $14,1024($24) # Td4[s1>>16] + srl $24,$8,16 + lbu $15,1024($25) # Td4[s2>>16] + srl $25,$9,16 + + and $1,0xff + and $2,0xff + and $24,0xff + and $25,0xff + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) +# if defined(_MIPSEL) + lbu $16,1024($1) # Td4[s2>>8] + ins $1,$8,0,8 + lbu $17,1024($2) # Td4[s3>>8] + ins $2,$9,0,8 + lbu $18,1024($24) # Td4[s0>>8] + ins $24,$10,0,8 + lbu $19,1024($25) # Td4[s1>>8] + ins $25,$11,0,8 + + lbu $20,1024($1) # Td4[s0>>24] + srl $1,$9,24 + lbu $21,1024($2) # Td4[s1>>24] + srl $2,$10,24 + lbu $22,1024($24) # Td4[s2>>24] + srl $24,$11,24 + lbu $23,1024($25) # Td4[s3>>24] + srl $25,$8,24 + + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 +# else + lbu $16,1024($1) # Td4[s2>>8] + and $1,$8,0xff + lbu $17,1024($2) # Td4[s3>>8] + and $2,$9,0xff + lbu $18,1024($24) # Td4[s0>>8] + and $24,$10,0xff + lbu $19,1024($25) # Td4[s1>>8] + and $25,$11,0xff + + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $20,1024($1) # Td4[s0>>24] + ins $1,$9,0,8 + lbu $21,1024($2) # Td4[s1>>24] + ins $2,$10,0,8 + lbu $22,1024($24) # Td4[s2>>24] + ins $24,$11,0,8 + lbu $23,1024($25) # Td4[s3>>24] + ins $25,$8,0,8 +# endif + sll $12,$12,8 + sll $13,$13,8 + sll $14,$14,8 + sll $15,$15,8 + + ins $12,$16,16,8 + lbu $16,1024($1) # Td4[s1] + ins $13,$17,16,8 + lbu $17,1024($2) # Td4[s2] + ins $14,$18,16,8 + lbu $18,1024($24) # Td4[s3] + ins $15,$19,16,8 + lbu $19,1024($25) # Td4[s0] + + ins $12,$20,0,8 + lw $8,0($3) + ins $13,$21,0,8 + lw $9,4($3) + ins $14,$22,0,8 + lw $10,8($3) + ins $15,$23,0,8 + lw $11,12($3) + + ins $12,$16,24,8 + ins $13,$17,24,8 + ins $14,$18,24,8 + ins $15,$19,24,8 +#else + lbu $16,1024($1) # Td4[s2>>8] + and $1,$8,0xff + lbu $17,1024($2) # Td4[s3>>8] + and $2,$9,0xff + lbu $18,1024($24) # Td4[s0>>8] + and $24,$10,0xff + lbu $19,1024($25) # Td4[s1>>8] + and $25,$11,0xff + + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $20,1024($1) # Td4[s0>>24] + srl $1,$9,24 + lbu $21,1024($2) # Td4[s1>>24] + srl $2,$10,24 + lbu $22,1024($24) # Td4[s2>>24] + srl $24,$11,24 + lbu $23,1024($25) # Td4[s3>>24] + srl $25,$8,24 + + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + + sll $12,$12,8 + sll $13,$13,8 + sll $14,$14,8 + sll $15,$15,8 + + sll $16,$16,16 + sll $17,$17,16 + sll $18,$18,16 + sll $19,$19,16 + + xor $12,$16 + lbu $16,1024($1) # Td4[s1] + xor $13,$17 + lbu $17,1024($2) # Td4[s2] + xor $14,$18 + lbu $18,1024($24) # Td4[s3] + xor $15,$19 + lbu $19,1024($25) # Td4[s0] + + #sll $20,$20,0 + lw $8,0($3) + #sll $21,$21,0 + lw $9,4($3) + #sll $22,$22,0 + lw $10,8($3) + #sll $23,$23,0 + lw $11,12($3) + + xor $12,$20 + xor $13,$21 + xor $14,$22 + xor $15,$23 + + sll $16,$16,24 + sll $17,$17,24 + sll $18,$18,24 + sll $19,$19,24 + + xor $12,$16 + xor $13,$17 + xor $14,$18 + xor $15,$19 +#endif + + xor $8,$12 + xor $9,$13 + xor $10,$14 + xor $11,$15 + + jr $31 +.end _mips_AES_decrypt + +.align 5 +.globl AES_decrypt +.ent AES_decrypt +AES_decrypt: + .frame $29,64,$31 + .mask 0xc0ff0000,-4 + .set noreorder + .cpload $25 + subu $29,64 + sw $31,64-1*4($29) + sw $30,64-2*4($29) + sw $23,64-3*4($29) + sw $22,64-4*4($29) + sw $21,64-5*4($29) + sw $20,64-6*4($29) + sw $19,64-7*4($29) + sw $18,64-8*4($29) + sw $17,64-9*4($29) + sw $16,64-10*4($29) + .set reorder + la $7,AES_Td # PIC-ified 'load address' + +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $8,0($4) + lw $9,4($4) + lw $10,8($4) + lw $11,12($4) +#else + lwl $8,0+3($4) + lwl $9,4+3($4) + lwl $10,8+3($4) + lwl $11,12+3($4) + lwr $8,0+0($4) + lwr $9,4+0($4) + lwr $10,8+0($4) + lwr $11,12+0($4) +#endif + + bal _mips_AES_decrypt + +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + sw $8,0($5) + sw $9,4($5) + sw $10,8($5) + sw $11,12($5) +#else + swr $8,0+0($5) + swr $9,4+0($5) + swr $10,8+0($5) + swr $11,12+0($5) + swl $8,0+3($5) + swl $9,4+3($5) + swl $10,8+3($5) + swl $11,12+3($5) +#endif + + .set noreorder + lw $31,64-1*4($29) + lw $30,64-2*4($29) + lw $23,64-3*4($29) + lw $22,64-4*4($29) + lw $21,64-5*4($29) + lw $20,64-6*4($29) + lw $19,64-7*4($29) + lw $18,64-8*4($29) + lw $17,64-9*4($29) + lw $16,64-10*4($29) + jr $31 + addu $29,64 +.end AES_decrypt +.align 5 +.ent _mips_AES_set_encrypt_key +_mips_AES_set_encrypt_key: + .frame $29,0,$31 + .set noreorder + beqz $4,.Lekey_done + li $2,-1 + beqz $6,.Lekey_done + addu $3,$7,256 + + .set reorder +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $8,0($4) # load 128 bits + lw $9,4($4) + lw $10,8($4) + lw $11,12($4) +#else + lwl $8,0+3($4) # load 128 bits + lwl $9,4+3($4) + lwl $10,8+3($4) + lwl $11,12+3($4) + lwr $8,0+0($4) + lwr $9,4+0($4) + lwr $10,8+0($4) + lwr $11,12+0($4) +#endif + li $1,128 + .set noreorder + beq $5,$1,.L128bits + li $30,10 + + .set reorder +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $12,16($4) # load 192 bits + lw $13,20($4) +#else + lwl $12,16+3($4) # load 192 bits + lwl $13,20+3($4) + lwr $12,16+0($4) + lwr $13,20+0($4) +#endif + li $1,192 + .set noreorder + beq $5,$1,.L192bits + li $30,8 + + .set reorder +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $14,24($4) # load 256 bits + lw $15,28($4) +#else + lwl $14,24+3($4) # load 256 bits + lwl $15,28+3($4) + lwr $14,24+0($4) + lwr $15,28+0($4) +#endif + li $1,256 + .set noreorder + beq $5,$1,.L256bits + li $30,7 + + b .Lekey_done + li $2,-2 + +.align 4 +.L128bits: + .set reorder + srl $1,$11,16 + srl $2,$11,8 + and $1,0xff + and $2,0xff + and $24,$11,0xff + srl $25,$11,24 + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $1,0($1) + lbu $2,0($2) + lbu $24,0($24) + lbu $25,0($25) + + sw $8,0($6) + sw $9,4($6) + sw $10,8($6) + sw $11,12($6) + subu $30,1 + addu $6,16 + + sll $1,$1,8 + #sll $2,$2,0 + sll $24,$24,24 + sll $25,$25,16 + + xor $8,$1 + lw $1,0($3) + xor $8,$2 + xor $8,$24 + xor $8,$25 + xor $8,$1 + + xor $9,$8 + xor $10,$9 + xor $11,$10 + + .set noreorder + bnez $30,.L128bits + addu $3,4 + + sw $8,0($6) + sw $9,4($6) + sw $10,8($6) + li $30,10 + sw $11,12($6) + li $2,0 + sw $30,80($6) + b .Lekey_done + subu $6,10*16 + +.align 4 +.L192bits: + .set reorder + srl $1,$13,16 + srl $2,$13,8 + and $1,0xff + and $2,0xff + and $24,$13,0xff + srl $25,$13,24 + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $1,0($1) + lbu $2,0($2) + lbu $24,0($24) + lbu $25,0($25) + + sw $8,0($6) + sw $9,4($6) + sw $10,8($6) + sw $11,12($6) + sw $12,16($6) + sw $13,20($6) + subu $30,1 + addu $6,24 + + sll $1,$1,8 + #sll $2,$2,0 + sll $24,$24,24 + sll $25,$25,16 + + xor $8,$1 + lw $1,0($3) + xor $8,$2 + xor $8,$24 + xor $8,$25 + xor $8,$1 + + xor $9,$8 + xor $10,$9 + xor $11,$10 + xor $12,$11 + xor $13,$12 + + .set noreorder + bnez $30,.L192bits + addu $3,4 + + sw $8,0($6) + sw $9,4($6) + sw $10,8($6) + li $30,12 + sw $11,12($6) + li $2,0 + sw $30,48($6) + b .Lekey_done + subu $6,12*16 + +.align 4 +.L256bits: + .set reorder + srl $1,$15,16 + srl $2,$15,8 + and $1,0xff + and $2,0xff + and $24,$15,0xff + srl $25,$15,24 + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $1,0($1) + lbu $2,0($2) + lbu $24,0($24) + lbu $25,0($25) + + sw $8,0($6) + sw $9,4($6) + sw $10,8($6) + sw $11,12($6) + sw $12,16($6) + sw $13,20($6) + sw $14,24($6) + sw $15,28($6) + subu $30,1 + + sll $1,$1,8 + #sll $2,$2,0 + sll $24,$24,24 + sll $25,$25,16 + + xor $8,$1 + lw $1,0($3) + xor $8,$2 + xor $8,$24 + xor $8,$25 + xor $8,$1 + + xor $9,$8 + xor $10,$9 + xor $11,$10 + beqz $30,.L256bits_done + + srl $1,$11,24 + srl $2,$11,16 + srl $24,$11,8 + and $25,$11,0xff + and $2,0xff + and $24,0xff + addu $1,$7 + addu $2,$7 + addu $24,$7 + addu $25,$7 + lbu $1,0($1) + lbu $2,0($2) + lbu $24,0($24) + lbu $25,0($25) + sll $1,24 + sll $2,16 + sll $24,8 + + xor $12,$1 + xor $12,$2 + xor $12,$24 + xor $12,$25 + + xor $13,$12 + xor $14,$13 + xor $15,$14 + + addu $6,32 + .set noreorder + b .L256bits + addu $3,4 + +.L256bits_done: + sw $8,32($6) + sw $9,36($6) + sw $10,40($6) + li $30,14 + sw $11,44($6) + li $2,0 + sw $30,48($6) + subu $6,12*16 + +.Lekey_done: + jr $31 + nop +.end _mips_AES_set_encrypt_key + +.globl AES_set_encrypt_key +.ent AES_set_encrypt_key +AES_set_encrypt_key: + .frame $29,32,$31 + .mask 0xc0000000,-4 + .set noreorder + .cpload $25 + subu $29,32 + sw $31,32-1*4($29) + sw $30,32-2*4($29) + .set reorder + la $7,AES_Te4 # PIC-ified 'load address' + + bal _mips_AES_set_encrypt_key + + .set noreorder + move $4,$2 + lw $31,32-1*4($29) + lw $30,32-2*4($29) + jr $31 + addu $29,32 +.end AES_set_encrypt_key +.align 5 +.globl AES_set_decrypt_key +.ent AES_set_decrypt_key +AES_set_decrypt_key: + .frame $29,32,$31 + .mask 0xc0000000,-4 + .set noreorder + .cpload $25 + subu $29,32 + sw $31,32-1*4($29) + sw $30,32-2*4($29) + .set reorder + la $7,AES_Te4 # PIC-ified 'load address' + + bal _mips_AES_set_encrypt_key + + bltz $2,.Ldkey_done + + sll $1,$30,4 + addu $4,$6,0 + addu $5,$6,$1 +.align 4 +.Lswap: + lw $8,0($4) + lw $9,4($4) + lw $10,8($4) + lw $11,12($4) + lw $12,0($5) + lw $13,4($5) + lw $14,8($5) + lw $15,12($5) + sw $8,0($5) + sw $9,4($5) + sw $10,8($5) + sw $11,12($5) + addu $4,16 + subu $5,16 + sw $12,-16($4) + sw $13,-12($4) + sw $14,-8($4) + sw $15,-4($4) + bne $4,$5,.Lswap + + lw $8,16($6) # modulo-scheduled + lui $2,0x8080 + subu $30,1 + or $2,0x8080 + sll $30,2 + addu $6,16 + lui $25,0x1b1b + nor $24,$0,$2 + or $25,0x1b1b +.align 4 +.Lmix: + and $1,$8,$2 + and $9,$8,$24 + srl $10,$1,7 + addu $9,$9 # tp2<<1 + subu $1,$10 + and $1,$25 + xor $9,$1 + + and $1,$9,$2 + and $10,$9,$24 + srl $11,$1,7 + addu $10,$10 # tp4<<1 + subu $1,$11 + and $1,$25 + xor $10,$1 + + and $1,$10,$2 + and $11,$10,$24 + srl $12,$1,7 + addu $11,$11 # tp8<<1 + subu $1,$12 + and $1,$25 + xor $11,$1 + + xor $12,$11,$8 + xor $15,$11,$10 + xor $13,$12,$9 + xor $14,$12,$10 + +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + rotr $8,$14,16 + xor $15,$9 + rotr $9,$12,24 + xor $15,$8 + rotr $10,$13,8 + xor $15,$9 + lw $8,4($6) # modulo-scheduled + xor $15,$10 +#else + sll $8,$14,16 + xor $15,$9 + srl $9,$14,16 + xor $15,$8 + sll $8,$12,8 + xor $15,$9 + srl $9,$12,24 + xor $15,$8 + sll $8,$13,24 + xor $15,$9 + srl $9,$13,8 + xor $15,$8 + lw $8,4($6) # modulo-scheduled + xor $15,$9 +#endif + subu $30,1 + sw $15,0($6) + addu $6,4 + bnez $30,.Lmix + + li $2,0 +.Ldkey_done: + .set noreorder + move $4,$2 + lw $31,32-1*4($29) + lw $30,32-2*4($29) + jr $31 + addu $29,32 +.end AES_set_decrypt_key +.rdata +.align 10 +AES_Te: +.byte 0xc6,0x63,0x63,0xa5, 0xf8,0x7c,0x7c,0x84 # Te0 +.byte 0xee,0x77,0x77,0x99, 0xf6,0x7b,0x7b,0x8d +.byte 0xff,0xf2,0xf2,0x0d, 0xd6,0x6b,0x6b,0xbd +.byte 0xde,0x6f,0x6f,0xb1, 0x91,0xc5,0xc5,0x54 +.byte 0x60,0x30,0x30,0x50, 0x02,0x01,0x01,0x03 +.byte 0xce,0x67,0x67,0xa9, 0x56,0x2b,0x2b,0x7d +.byte 0xe7,0xfe,0xfe,0x19, 0xb5,0xd7,0xd7,0x62 +.byte 0x4d,0xab,0xab,0xe6, 0xec,0x76,0x76,0x9a +.byte 0x8f,0xca,0xca,0x45, 0x1f,0x82,0x82,0x9d +.byte 0x89,0xc9,0xc9,0x40, 0xfa,0x7d,0x7d,0x87 +.byte 0xef,0xfa,0xfa,0x15, 0xb2,0x59,0x59,0xeb +.byte 0x8e,0x47,0x47,0xc9, 0xfb,0xf0,0xf0,0x0b +.byte 0x41,0xad,0xad,0xec, 0xb3,0xd4,0xd4,0x67 +.byte 0x5f,0xa2,0xa2,0xfd, 0x45,0xaf,0xaf,0xea +.byte 0x23,0x9c,0x9c,0xbf, 0x53,0xa4,0xa4,0xf7 +.byte 0xe4,0x72,0x72,0x96, 0x9b,0xc0,0xc0,0x5b +.byte 0x75,0xb7,0xb7,0xc2, 0xe1,0xfd,0xfd,0x1c +.byte 0x3d,0x93,0x93,0xae, 0x4c,0x26,0x26,0x6a +.byte 0x6c,0x36,0x36,0x5a, 0x7e,0x3f,0x3f,0x41 +.byte 0xf5,0xf7,0xf7,0x02, 0x83,0xcc,0xcc,0x4f +.byte 0x68,0x34,0x34,0x5c, 0x51,0xa5,0xa5,0xf4 +.byte 0xd1,0xe5,0xe5,0x34, 0xf9,0xf1,0xf1,0x08 +.byte 0xe2,0x71,0x71,0x93, 0xab,0xd8,0xd8,0x73 +.byte 0x62,0x31,0x31,0x53, 0x2a,0x15,0x15,0x3f +.byte 0x08,0x04,0x04,0x0c, 0x95,0xc7,0xc7,0x52 +.byte 0x46,0x23,0x23,0x65, 0x9d,0xc3,0xc3,0x5e +.byte 0x30,0x18,0x18,0x28, 0x37,0x96,0x96,0xa1 +.byte 0x0a,0x05,0x05,0x0f, 0x2f,0x9a,0x9a,0xb5 +.byte 0x0e,0x07,0x07,0x09, 0x24,0x12,0x12,0x36 +.byte 0x1b,0x80,0x80,0x9b, 0xdf,0xe2,0xe2,0x3d +.byte 0xcd,0xeb,0xeb,0x26, 0x4e,0x27,0x27,0x69 +.byte 0x7f,0xb2,0xb2,0xcd, 0xea,0x75,0x75,0x9f +.byte 0x12,0x09,0x09,0x1b, 0x1d,0x83,0x83,0x9e +.byte 0x58,0x2c,0x2c,0x74, 0x34,0x1a,0x1a,0x2e +.byte 0x36,0x1b,0x1b,0x2d, 0xdc,0x6e,0x6e,0xb2 +.byte 0xb4,0x5a,0x5a,0xee, 0x5b,0xa0,0xa0,0xfb +.byte 0xa4,0x52,0x52,0xf6, 0x76,0x3b,0x3b,0x4d +.byte 0xb7,0xd6,0xd6,0x61, 0x7d,0xb3,0xb3,0xce +.byte 0x52,0x29,0x29,0x7b, 0xdd,0xe3,0xe3,0x3e +.byte 0x5e,0x2f,0x2f,0x71, 0x13,0x84,0x84,0x97 +.byte 0xa6,0x53,0x53,0xf5, 0xb9,0xd1,0xd1,0x68 +.byte 0x00,0x00,0x00,0x00, 0xc1,0xed,0xed,0x2c +.byte 0x40,0x20,0x20,0x60, 0xe3,0xfc,0xfc,0x1f +.byte 0x79,0xb1,0xb1,0xc8, 0xb6,0x5b,0x5b,0xed +.byte 0xd4,0x6a,0x6a,0xbe, 0x8d,0xcb,0xcb,0x46 +.byte 0x67,0xbe,0xbe,0xd9, 0x72,0x39,0x39,0x4b +.byte 0x94,0x4a,0x4a,0xde, 0x98,0x4c,0x4c,0xd4 +.byte 0xb0,0x58,0x58,0xe8, 0x85,0xcf,0xcf,0x4a +.byte 0xbb,0xd0,0xd0,0x6b, 0xc5,0xef,0xef,0x2a +.byte 0x4f,0xaa,0xaa,0xe5, 0xed,0xfb,0xfb,0x16 +.byte 0x86,0x43,0x43,0xc5, 0x9a,0x4d,0x4d,0xd7 +.byte 0x66,0x33,0x33,0x55, 0x11,0x85,0x85,0x94 +.byte 0x8a,0x45,0x45,0xcf, 0xe9,0xf9,0xf9,0x10 +.byte 0x04,0x02,0x02,0x06, 0xfe,0x7f,0x7f,0x81 +.byte 0xa0,0x50,0x50,0xf0, 0x78,0x3c,0x3c,0x44 +.byte 0x25,0x9f,0x9f,0xba, 0x4b,0xa8,0xa8,0xe3 +.byte 0xa2,0x51,0x51,0xf3, 0x5d,0xa3,0xa3,0xfe +.byte 0x80,0x40,0x40,0xc0, 0x05,0x8f,0x8f,0x8a +.byte 0x3f,0x92,0x92,0xad, 0x21,0x9d,0x9d,0xbc +.byte 0x70,0x38,0x38,0x48, 0xf1,0xf5,0xf5,0x04 +.byte 0x63,0xbc,0xbc,0xdf, 0x77,0xb6,0xb6,0xc1 +.byte 0xaf,0xda,0xda,0x75, 0x42,0x21,0x21,0x63 +.byte 0x20,0x10,0x10,0x30, 0xe5,0xff,0xff,0x1a +.byte 0xfd,0xf3,0xf3,0x0e, 0xbf,0xd2,0xd2,0x6d +.byte 0x81,0xcd,0xcd,0x4c, 0x18,0x0c,0x0c,0x14 +.byte 0x26,0x13,0x13,0x35, 0xc3,0xec,0xec,0x2f +.byte 0xbe,0x5f,0x5f,0xe1, 0x35,0x97,0x97,0xa2 +.byte 0x88,0x44,0x44,0xcc, 0x2e,0x17,0x17,0x39 +.byte 0x93,0xc4,0xc4,0x57, 0x55,0xa7,0xa7,0xf2 +.byte 0xfc,0x7e,0x7e,0x82, 0x7a,0x3d,0x3d,0x47 +.byte 0xc8,0x64,0x64,0xac, 0xba,0x5d,0x5d,0xe7 +.byte 0x32,0x19,0x19,0x2b, 0xe6,0x73,0x73,0x95 +.byte 0xc0,0x60,0x60,0xa0, 0x19,0x81,0x81,0x98 +.byte 0x9e,0x4f,0x4f,0xd1, 0xa3,0xdc,0xdc,0x7f +.byte 0x44,0x22,0x22,0x66, 0x54,0x2a,0x2a,0x7e +.byte 0x3b,0x90,0x90,0xab, 0x0b,0x88,0x88,0x83 +.byte 0x8c,0x46,0x46,0xca, 0xc7,0xee,0xee,0x29 +.byte 0x6b,0xb8,0xb8,0xd3, 0x28,0x14,0x14,0x3c +.byte 0xa7,0xde,0xde,0x79, 0xbc,0x5e,0x5e,0xe2 +.byte 0x16,0x0b,0x0b,0x1d, 0xad,0xdb,0xdb,0x76 +.byte 0xdb,0xe0,0xe0,0x3b, 0x64,0x32,0x32,0x56 +.byte 0x74,0x3a,0x3a,0x4e, 0x14,0x0a,0x0a,0x1e +.byte 0x92,0x49,0x49,0xdb, 0x0c,0x06,0x06,0x0a +.byte 0x48,0x24,0x24,0x6c, 0xb8,0x5c,0x5c,0xe4 +.byte 0x9f,0xc2,0xc2,0x5d, 0xbd,0xd3,0xd3,0x6e +.byte 0x43,0xac,0xac,0xef, 0xc4,0x62,0x62,0xa6 +.byte 0x39,0x91,0x91,0xa8, 0x31,0x95,0x95,0xa4 +.byte 0xd3,0xe4,0xe4,0x37, 0xf2,0x79,0x79,0x8b +.byte 0xd5,0xe7,0xe7,0x32, 0x8b,0xc8,0xc8,0x43 +.byte 0x6e,0x37,0x37,0x59, 0xda,0x6d,0x6d,0xb7 +.byte 0x01,0x8d,0x8d,0x8c, 0xb1,0xd5,0xd5,0x64 +.byte 0x9c,0x4e,0x4e,0xd2, 0x49,0xa9,0xa9,0xe0 +.byte 0xd8,0x6c,0x6c,0xb4, 0xac,0x56,0x56,0xfa +.byte 0xf3,0xf4,0xf4,0x07, 0xcf,0xea,0xea,0x25 +.byte 0xca,0x65,0x65,0xaf, 0xf4,0x7a,0x7a,0x8e +.byte 0x47,0xae,0xae,0xe9, 0x10,0x08,0x08,0x18 +.byte 0x6f,0xba,0xba,0xd5, 0xf0,0x78,0x78,0x88 +.byte 0x4a,0x25,0x25,0x6f, 0x5c,0x2e,0x2e,0x72 +.byte 0x38,0x1c,0x1c,0x24, 0x57,0xa6,0xa6,0xf1 +.byte 0x73,0xb4,0xb4,0xc7, 0x97,0xc6,0xc6,0x51 +.byte 0xcb,0xe8,0xe8,0x23, 0xa1,0xdd,0xdd,0x7c +.byte 0xe8,0x74,0x74,0x9c, 0x3e,0x1f,0x1f,0x21 +.byte 0x96,0x4b,0x4b,0xdd, 0x61,0xbd,0xbd,0xdc +.byte 0x0d,0x8b,0x8b,0x86, 0x0f,0x8a,0x8a,0x85 +.byte 0xe0,0x70,0x70,0x90, 0x7c,0x3e,0x3e,0x42 +.byte 0x71,0xb5,0xb5,0xc4, 0xcc,0x66,0x66,0xaa +.byte 0x90,0x48,0x48,0xd8, 0x06,0x03,0x03,0x05 +.byte 0xf7,0xf6,0xf6,0x01, 0x1c,0x0e,0x0e,0x12 +.byte 0xc2,0x61,0x61,0xa3, 0x6a,0x35,0x35,0x5f +.byte 0xae,0x57,0x57,0xf9, 0x69,0xb9,0xb9,0xd0 +.byte 0x17,0x86,0x86,0x91, 0x99,0xc1,0xc1,0x58 +.byte 0x3a,0x1d,0x1d,0x27, 0x27,0x9e,0x9e,0xb9 +.byte 0xd9,0xe1,0xe1,0x38, 0xeb,0xf8,0xf8,0x13 +.byte 0x2b,0x98,0x98,0xb3, 0x22,0x11,0x11,0x33 +.byte 0xd2,0x69,0x69,0xbb, 0xa9,0xd9,0xd9,0x70 +.byte 0x07,0x8e,0x8e,0x89, 0x33,0x94,0x94,0xa7 +.byte 0x2d,0x9b,0x9b,0xb6, 0x3c,0x1e,0x1e,0x22 +.byte 0x15,0x87,0x87,0x92, 0xc9,0xe9,0xe9,0x20 +.byte 0x87,0xce,0xce,0x49, 0xaa,0x55,0x55,0xff +.byte 0x50,0x28,0x28,0x78, 0xa5,0xdf,0xdf,0x7a +.byte 0x03,0x8c,0x8c,0x8f, 0x59,0xa1,0xa1,0xf8 +.byte 0x09,0x89,0x89,0x80, 0x1a,0x0d,0x0d,0x17 +.byte 0x65,0xbf,0xbf,0xda, 0xd7,0xe6,0xe6,0x31 +.byte 0x84,0x42,0x42,0xc6, 0xd0,0x68,0x68,0xb8 +.byte 0x82,0x41,0x41,0xc3, 0x29,0x99,0x99,0xb0 +.byte 0x5a,0x2d,0x2d,0x77, 0x1e,0x0f,0x0f,0x11 +.byte 0x7b,0xb0,0xb0,0xcb, 0xa8,0x54,0x54,0xfc +.byte 0x6d,0xbb,0xbb,0xd6, 0x2c,0x16,0x16,0x3a + +AES_Td: +.byte 0x51,0xf4,0xa7,0x50, 0x7e,0x41,0x65,0x53 # Td0 +.byte 0x1a,0x17,0xa4,0xc3, 0x3a,0x27,0x5e,0x96 +.byte 0x3b,0xab,0x6b,0xcb, 0x1f,0x9d,0x45,0xf1 +.byte 0xac,0xfa,0x58,0xab, 0x4b,0xe3,0x03,0x93 +.byte 0x20,0x30,0xfa,0x55, 0xad,0x76,0x6d,0xf6 +.byte 0x88,0xcc,0x76,0x91, 0xf5,0x02,0x4c,0x25 +.byte 0x4f,0xe5,0xd7,0xfc, 0xc5,0x2a,0xcb,0xd7 +.byte 0x26,0x35,0x44,0x80, 0xb5,0x62,0xa3,0x8f +.byte 0xde,0xb1,0x5a,0x49, 0x25,0xba,0x1b,0x67 +.byte 0x45,0xea,0x0e,0x98, 0x5d,0xfe,0xc0,0xe1 +.byte 0xc3,0x2f,0x75,0x02, 0x81,0x4c,0xf0,0x12 +.byte 0x8d,0x46,0x97,0xa3, 0x6b,0xd3,0xf9,0xc6 +.byte 0x03,0x8f,0x5f,0xe7, 0x15,0x92,0x9c,0x95 +.byte 0xbf,0x6d,0x7a,0xeb, 0x95,0x52,0x59,0xda +.byte 0xd4,0xbe,0x83,0x2d, 0x58,0x74,0x21,0xd3 +.byte 0x49,0xe0,0x69,0x29, 0x8e,0xc9,0xc8,0x44 +.byte 0x75,0xc2,0x89,0x6a, 0xf4,0x8e,0x79,0x78 +.byte 0x99,0x58,0x3e,0x6b, 0x27,0xb9,0x71,0xdd +.byte 0xbe,0xe1,0x4f,0xb6, 0xf0,0x88,0xad,0x17 +.byte 0xc9,0x20,0xac,0x66, 0x7d,0xce,0x3a,0xb4 +.byte 0x63,0xdf,0x4a,0x18, 0xe5,0x1a,0x31,0x82 +.byte 0x97,0x51,0x33,0x60, 0x62,0x53,0x7f,0x45 +.byte 0xb1,0x64,0x77,0xe0, 0xbb,0x6b,0xae,0x84 +.byte 0xfe,0x81,0xa0,0x1c, 0xf9,0x08,0x2b,0x94 +.byte 0x70,0x48,0x68,0x58, 0x8f,0x45,0xfd,0x19 +.byte 0x94,0xde,0x6c,0x87, 0x52,0x7b,0xf8,0xb7 +.byte 0xab,0x73,0xd3,0x23, 0x72,0x4b,0x02,0xe2 +.byte 0xe3,0x1f,0x8f,0x57, 0x66,0x55,0xab,0x2a +.byte 0xb2,0xeb,0x28,0x07, 0x2f,0xb5,0xc2,0x03 +.byte 0x86,0xc5,0x7b,0x9a, 0xd3,0x37,0x08,0xa5 +.byte 0x30,0x28,0x87,0xf2, 0x23,0xbf,0xa5,0xb2 +.byte 0x02,0x03,0x6a,0xba, 0xed,0x16,0x82,0x5c +.byte 0x8a,0xcf,0x1c,0x2b, 0xa7,0x79,0xb4,0x92 +.byte 0xf3,0x07,0xf2,0xf0, 0x4e,0x69,0xe2,0xa1 +.byte 0x65,0xda,0xf4,0xcd, 0x06,0x05,0xbe,0xd5 +.byte 0xd1,0x34,0x62,0x1f, 0xc4,0xa6,0xfe,0x8a +.byte 0x34,0x2e,0x53,0x9d, 0xa2,0xf3,0x55,0xa0 +.byte 0x05,0x8a,0xe1,0x32, 0xa4,0xf6,0xeb,0x75 +.byte 0x0b,0x83,0xec,0x39, 0x40,0x60,0xef,0xaa +.byte 0x5e,0x71,0x9f,0x06, 0xbd,0x6e,0x10,0x51 +.byte 0x3e,0x21,0x8a,0xf9, 0x96,0xdd,0x06,0x3d +.byte 0xdd,0x3e,0x05,0xae, 0x4d,0xe6,0xbd,0x46 +.byte 0x91,0x54,0x8d,0xb5, 0x71,0xc4,0x5d,0x05 +.byte 0x04,0x06,0xd4,0x6f, 0x60,0x50,0x15,0xff +.byte 0x19,0x98,0xfb,0x24, 0xd6,0xbd,0xe9,0x97 +.byte 0x89,0x40,0x43,0xcc, 0x67,0xd9,0x9e,0x77 +.byte 0xb0,0xe8,0x42,0xbd, 0x07,0x89,0x8b,0x88 +.byte 0xe7,0x19,0x5b,0x38, 0x79,0xc8,0xee,0xdb +.byte 0xa1,0x7c,0x0a,0x47, 0x7c,0x42,0x0f,0xe9 +.byte 0xf8,0x84,0x1e,0xc9, 0x00,0x00,0x00,0x00 +.byte 0x09,0x80,0x86,0x83, 0x32,0x2b,0xed,0x48 +.byte 0x1e,0x11,0x70,0xac, 0x6c,0x5a,0x72,0x4e +.byte 0xfd,0x0e,0xff,0xfb, 0x0f,0x85,0x38,0x56 +.byte 0x3d,0xae,0xd5,0x1e, 0x36,0x2d,0x39,0x27 +.byte 0x0a,0x0f,0xd9,0x64, 0x68,0x5c,0xa6,0x21 +.byte 0x9b,0x5b,0x54,0xd1, 0x24,0x36,0x2e,0x3a +.byte 0x0c,0x0a,0x67,0xb1, 0x93,0x57,0xe7,0x0f +.byte 0xb4,0xee,0x96,0xd2, 0x1b,0x9b,0x91,0x9e +.byte 0x80,0xc0,0xc5,0x4f, 0x61,0xdc,0x20,0xa2 +.byte 0x5a,0x77,0x4b,0x69, 0x1c,0x12,0x1a,0x16 +.byte 0xe2,0x93,0xba,0x0a, 0xc0,0xa0,0x2a,0xe5 +.byte 0x3c,0x22,0xe0,0x43, 0x12,0x1b,0x17,0x1d +.byte 0x0e,0x09,0x0d,0x0b, 0xf2,0x8b,0xc7,0xad +.byte 0x2d,0xb6,0xa8,0xb9, 0x14,0x1e,0xa9,0xc8 +.byte 0x57,0xf1,0x19,0x85, 0xaf,0x75,0x07,0x4c +.byte 0xee,0x99,0xdd,0xbb, 0xa3,0x7f,0x60,0xfd +.byte 0xf7,0x01,0x26,0x9f, 0x5c,0x72,0xf5,0xbc +.byte 0x44,0x66,0x3b,0xc5, 0x5b,0xfb,0x7e,0x34 +.byte 0x8b,0x43,0x29,0x76, 0xcb,0x23,0xc6,0xdc +.byte 0xb6,0xed,0xfc,0x68, 0xb8,0xe4,0xf1,0x63 +.byte 0xd7,0x31,0xdc,0xca, 0x42,0x63,0x85,0x10 +.byte 0x13,0x97,0x22,0x40, 0x84,0xc6,0x11,0x20 +.byte 0x85,0x4a,0x24,0x7d, 0xd2,0xbb,0x3d,0xf8 +.byte 0xae,0xf9,0x32,0x11, 0xc7,0x29,0xa1,0x6d +.byte 0x1d,0x9e,0x2f,0x4b, 0xdc,0xb2,0x30,0xf3 +.byte 0x0d,0x86,0x52,0xec, 0x77,0xc1,0xe3,0xd0 +.byte 0x2b,0xb3,0x16,0x6c, 0xa9,0x70,0xb9,0x99 +.byte 0x11,0x94,0x48,0xfa, 0x47,0xe9,0x64,0x22 +.byte 0xa8,0xfc,0x8c,0xc4, 0xa0,0xf0,0x3f,0x1a +.byte 0x56,0x7d,0x2c,0xd8, 0x22,0x33,0x90,0xef +.byte 0x87,0x49,0x4e,0xc7, 0xd9,0x38,0xd1,0xc1 +.byte 0x8c,0xca,0xa2,0xfe, 0x98,0xd4,0x0b,0x36 +.byte 0xa6,0xf5,0x81,0xcf, 0xa5,0x7a,0xde,0x28 +.byte 0xda,0xb7,0x8e,0x26, 0x3f,0xad,0xbf,0xa4 +.byte 0x2c,0x3a,0x9d,0xe4, 0x50,0x78,0x92,0x0d +.byte 0x6a,0x5f,0xcc,0x9b, 0x54,0x7e,0x46,0x62 +.byte 0xf6,0x8d,0x13,0xc2, 0x90,0xd8,0xb8,0xe8 +.byte 0x2e,0x39,0xf7,0x5e, 0x82,0xc3,0xaf,0xf5 +.byte 0x9f,0x5d,0x80,0xbe, 0x69,0xd0,0x93,0x7c +.byte 0x6f,0xd5,0x2d,0xa9, 0xcf,0x25,0x12,0xb3 +.byte 0xc8,0xac,0x99,0x3b, 0x10,0x18,0x7d,0xa7 +.byte 0xe8,0x9c,0x63,0x6e, 0xdb,0x3b,0xbb,0x7b +.byte 0xcd,0x26,0x78,0x09, 0x6e,0x59,0x18,0xf4 +.byte 0xec,0x9a,0xb7,0x01, 0x83,0x4f,0x9a,0xa8 +.byte 0xe6,0x95,0x6e,0x65, 0xaa,0xff,0xe6,0x7e +.byte 0x21,0xbc,0xcf,0x08, 0xef,0x15,0xe8,0xe6 +.byte 0xba,0xe7,0x9b,0xd9, 0x4a,0x6f,0x36,0xce +.byte 0xea,0x9f,0x09,0xd4, 0x29,0xb0,0x7c,0xd6 +.byte 0x31,0xa4,0xb2,0xaf, 0x2a,0x3f,0x23,0x31 +.byte 0xc6,0xa5,0x94,0x30, 0x35,0xa2,0x66,0xc0 +.byte 0x74,0x4e,0xbc,0x37, 0xfc,0x82,0xca,0xa6 +.byte 0xe0,0x90,0xd0,0xb0, 0x33,0xa7,0xd8,0x15 +.byte 0xf1,0x04,0x98,0x4a, 0x41,0xec,0xda,0xf7 +.byte 0x7f,0xcd,0x50,0x0e, 0x17,0x91,0xf6,0x2f +.byte 0x76,0x4d,0xd6,0x8d, 0x43,0xef,0xb0,0x4d +.byte 0xcc,0xaa,0x4d,0x54, 0xe4,0x96,0x04,0xdf +.byte 0x9e,0xd1,0xb5,0xe3, 0x4c,0x6a,0x88,0x1b +.byte 0xc1,0x2c,0x1f,0xb8, 0x46,0x65,0x51,0x7f +.byte 0x9d,0x5e,0xea,0x04, 0x01,0x8c,0x35,0x5d +.byte 0xfa,0x87,0x74,0x73, 0xfb,0x0b,0x41,0x2e +.byte 0xb3,0x67,0x1d,0x5a, 0x92,0xdb,0xd2,0x52 +.byte 0xe9,0x10,0x56,0x33, 0x6d,0xd6,0x47,0x13 +.byte 0x9a,0xd7,0x61,0x8c, 0x37,0xa1,0x0c,0x7a +.byte 0x59,0xf8,0x14,0x8e, 0xeb,0x13,0x3c,0x89 +.byte 0xce,0xa9,0x27,0xee, 0xb7,0x61,0xc9,0x35 +.byte 0xe1,0x1c,0xe5,0xed, 0x7a,0x47,0xb1,0x3c +.byte 0x9c,0xd2,0xdf,0x59, 0x55,0xf2,0x73,0x3f +.byte 0x18,0x14,0xce,0x79, 0x73,0xc7,0x37,0xbf +.byte 0x53,0xf7,0xcd,0xea, 0x5f,0xfd,0xaa,0x5b +.byte 0xdf,0x3d,0x6f,0x14, 0x78,0x44,0xdb,0x86 +.byte 0xca,0xaf,0xf3,0x81, 0xb9,0x68,0xc4,0x3e +.byte 0x38,0x24,0x34,0x2c, 0xc2,0xa3,0x40,0x5f +.byte 0x16,0x1d,0xc3,0x72, 0xbc,0xe2,0x25,0x0c +.byte 0x28,0x3c,0x49,0x8b, 0xff,0x0d,0x95,0x41 +.byte 0x39,0xa8,0x01,0x71, 0x08,0x0c,0xb3,0xde +.byte 0xd8,0xb4,0xe4,0x9c, 0x64,0x56,0xc1,0x90 +.byte 0x7b,0xcb,0x84,0x61, 0xd5,0x32,0xb6,0x70 +.byte 0x48,0x6c,0x5c,0x74, 0xd0,0xb8,0x57,0x42 + +.byte 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38 # Td4 +.byte 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb +.byte 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87 +.byte 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb +.byte 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d +.byte 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e +.byte 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2 +.byte 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25 +.byte 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16 +.byte 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92 +.byte 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda +.byte 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84 +.byte 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a +.byte 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06 +.byte 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02 +.byte 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b +.byte 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea +.byte 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73 +.byte 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85 +.byte 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e +.byte 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89 +.byte 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b +.byte 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20 +.byte 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4 +.byte 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31 +.byte 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f +.byte 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d +.byte 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef +.byte 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0 +.byte 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61 +.byte 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26 +.byte 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d + +AES_Te4: +.byte 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5 # Te4 +.byte 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76 +.byte 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0 +.byte 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0 +.byte 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc +.byte 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15 +.byte 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a +.byte 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75 +.byte 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0 +.byte 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84 +.byte 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b +.byte 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf +.byte 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85 +.byte 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8 +.byte 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5 +.byte 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2 +.byte 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17 +.byte 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73 +.byte 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88 +.byte 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb +.byte 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c +.byte 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79 +.byte 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9 +.byte 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08 +.byte 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6 +.byte 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a +.byte 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e +.byte 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e +.byte 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94 +.byte 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf +.byte 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68 +.byte 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 + +.byte 0x01,0x00,0x00,0x00, 0x02,0x00,0x00,0x00 # rcon +.byte 0x04,0x00,0x00,0x00, 0x08,0x00,0x00,0x00 +.byte 0x10,0x00,0x00,0x00, 0x20,0x00,0x00,0x00 +.byte 0x40,0x00,0x00,0x00, 0x80,0x00,0x00,0x00 +.byte 0x1B,0x00,0x00,0x00, 0x36,0x00,0x00,0x00 diff -urN a/deps/openssl/config/archs/linux-mipsel/asm/crypto/bn/bn-mips.S b/deps/openssl/config/archs/linux-mipsel/asm/crypto/bn/bn-mips.S --- a/deps/openssl/config/archs/linux-mipsel/asm/crypto/bn/bn-mips.S 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mipsel/asm/crypto/bn/bn-mips.S 2019-12-25 13:49:19.988298795 +0900 @@ -0,0 +1,2183 @@ +#if !(defined (__mips_isa_rev) && (__mips_isa_rev >= 6)) +.set mips2 +#endif +#include "mips_arch.h" + +#if defined(_MIPS_ARCH_MIPS64R6) +# define ddivu(rs,rt) +# define mfqt(rd,rs,rt) ddivu rd,rs,rt +# define mfrm(rd,rs,rt) dmodu rd,rs,rt +#elif defined(_MIPS_ARCH_MIPS32R6) +# define divu(rs,rt) +# define mfqt(rd,rs,rt) divu rd,rs,rt +# define mfrm(rd,rs,rt) modu rd,rs,rt +#else +# define divu(rs,rt) divu $0,rs,rt +# define mfqt(rd,rs,rt) mflo rd +# define mfrm(rd,rs,rt) mfhi rd +#endif + +.rdata +.asciiz "mips3.s, Version 1.2" +.asciiz "MIPS II/III/IV ISA artwork by Andy Polyakov " + +.text +.set noat + +.align 5 +.globl bn_mul_add_words +.ent bn_mul_add_words +bn_mul_add_words: + .set noreorder + bgtz $6,bn_mul_add_words_internal + move $2,$0 + jr $31 + move $4,$2 +.end bn_mul_add_words + +.align 5 +.ent bn_mul_add_words_internal +bn_mul_add_words_internal: + .set reorder + li $3,-4 + and $8,$6,$3 + beqz $8,.L_bn_mul_add_words_tail + +.L_bn_mul_add_words_loop: + lw $12,0($5) + multu ($12,$7) + lw $13,0($4) + lw $14,4($5) + lw $15,4($4) + lw $8,2*4($5) + lw $9,2*4($4) + addu $13,$2 + sltu $2,$13,$2 # All manuals say it "compares 32-bit + # values", but it seems to work fine + # even on 64-bit registers. + mflo ($1,$12,$7) + mfhi ($12,$12,$7) + addu $13,$1 + addu $2,$12 + multu ($14,$7) + sltu $1,$13,$1 + sw $13,0($4) + addu $2,$1 + + lw $10,3*4($5) + lw $11,3*4($4) + addu $15,$2 + sltu $2,$15,$2 + mflo ($1,$14,$7) + mfhi ($14,$14,$7) + addu $15,$1 + addu $2,$14 + multu ($8,$7) + sltu $1,$15,$1 + sw $15,4($4) + addu $2,$1 + + subu $6,4 + addu $4,4*4 + addu $5,4*4 + addu $9,$2 + sltu $2,$9,$2 + mflo ($1,$8,$7) + mfhi ($8,$8,$7) + addu $9,$1 + addu $2,$8 + multu ($10,$7) + sltu $1,$9,$1 + sw $9,-2*4($4) + addu $2,$1 + + + and $8,$6,$3 + addu $11,$2 + sltu $2,$11,$2 + mflo ($1,$10,$7) + mfhi ($10,$10,$7) + addu $11,$1 + addu $2,$10 + sltu $1,$11,$1 + sw $11,-4($4) + .set noreorder + bgtz $8,.L_bn_mul_add_words_loop + addu $2,$1 + + beqz $6,.L_bn_mul_add_words_return + nop + +.L_bn_mul_add_words_tail: + .set reorder + lw $12,0($5) + multu ($12,$7) + lw $13,0($4) + subu $6,1 + addu $13,$2 + sltu $2,$13,$2 + mflo ($1,$12,$7) + mfhi ($12,$12,$7) + addu $13,$1 + addu $2,$12 + sltu $1,$13,$1 + sw $13,0($4) + addu $2,$1 + beqz $6,.L_bn_mul_add_words_return + + lw $12,4($5) + multu ($12,$7) + lw $13,4($4) + subu $6,1 + addu $13,$2 + sltu $2,$13,$2 + mflo ($1,$12,$7) + mfhi ($12,$12,$7) + addu $13,$1 + addu $2,$12 + sltu $1,$13,$1 + sw $13,4($4) + addu $2,$1 + beqz $6,.L_bn_mul_add_words_return + + lw $12,2*4($5) + multu ($12,$7) + lw $13,2*4($4) + addu $13,$2 + sltu $2,$13,$2 + mflo ($1,$12,$7) + mfhi ($12,$12,$7) + addu $13,$1 + addu $2,$12 + sltu $1,$13,$1 + sw $13,2*4($4) + addu $2,$1 + +.L_bn_mul_add_words_return: + .set noreorder + jr $31 + move $4,$2 +.end bn_mul_add_words_internal + +.align 5 +.globl bn_mul_words +.ent bn_mul_words +bn_mul_words: + .set noreorder + bgtz $6,bn_mul_words_internal + move $2,$0 + jr $31 + move $4,$2 +.end bn_mul_words + +.align 5 +.ent bn_mul_words_internal +bn_mul_words_internal: + .set reorder + li $3,-4 + and $8,$6,$3 + beqz $8,.L_bn_mul_words_tail + +.L_bn_mul_words_loop: + lw $12,0($5) + multu ($12,$7) + lw $14,4($5) + lw $8,2*4($5) + lw $10,3*4($5) + mflo ($1,$12,$7) + mfhi ($12,$12,$7) + addu $2,$1 + sltu $13,$2,$1 + multu ($14,$7) + sw $2,0($4) + addu $2,$13,$12 + + subu $6,4 + addu $4,4*4 + addu $5,4*4 + mflo ($1,$14,$7) + mfhi ($14,$14,$7) + addu $2,$1 + sltu $15,$2,$1 + multu ($8,$7) + sw $2,-3*4($4) + addu $2,$15,$14 + + mflo ($1,$8,$7) + mfhi ($8,$8,$7) + addu $2,$1 + sltu $9,$2,$1 + multu ($10,$7) + sw $2,-2*4($4) + addu $2,$9,$8 + + and $8,$6,$3 + mflo ($1,$10,$7) + mfhi ($10,$10,$7) + addu $2,$1 + sltu $11,$2,$1 + sw $2,-4($4) + .set noreorder + bgtz $8,.L_bn_mul_words_loop + addu $2,$11,$10 + + beqz $6,.L_bn_mul_words_return + nop + +.L_bn_mul_words_tail: + .set reorder + lw $12,0($5) + multu ($12,$7) + subu $6,1 + mflo ($1,$12,$7) + mfhi ($12,$12,$7) + addu $2,$1 + sltu $13,$2,$1 + sw $2,0($4) + addu $2,$13,$12 + beqz $6,.L_bn_mul_words_return + + lw $12,4($5) + multu ($12,$7) + subu $6,1 + mflo ($1,$12,$7) + mfhi ($12,$12,$7) + addu $2,$1 + sltu $13,$2,$1 + sw $2,4($4) + addu $2,$13,$12 + beqz $6,.L_bn_mul_words_return + + lw $12,2*4($5) + multu ($12,$7) + mflo ($1,$12,$7) + mfhi ($12,$12,$7) + addu $2,$1 + sltu $13,$2,$1 + sw $2,2*4($4) + addu $2,$13,$12 + +.L_bn_mul_words_return: + .set noreorder + jr $31 + move $4,$2 +.end bn_mul_words_internal + +.align 5 +.globl bn_sqr_words +.ent bn_sqr_words +bn_sqr_words: + .set noreorder + bgtz $6,bn_sqr_words_internal + move $2,$0 + jr $31 + move $4,$2 +.end bn_sqr_words + +.align 5 +.ent bn_sqr_words_internal +bn_sqr_words_internal: + .set reorder + li $3,-4 + and $8,$6,$3 + beqz $8,.L_bn_sqr_words_tail + +.L_bn_sqr_words_loop: + lw $12,0($5) + multu ($12,$12) + lw $14,4($5) + lw $8,2*4($5) + lw $10,3*4($5) + mflo ($13,$12,$12) + mfhi ($12,$12,$12) + sw $13,0($4) + sw $12,4($4) + + multu ($14,$14) + subu $6,4 + addu $4,8*4 + addu $5,4*4 + mflo ($15,$14,$14) + mfhi ($14,$14,$14) + sw $15,-6*4($4) + sw $14,-5*4($4) + + multu ($8,$8) + mflo ($9,$8,$8) + mfhi ($8,$8,$8) + sw $9,-4*4($4) + sw $8,-3*4($4) + + + multu ($10,$10) + and $8,$6,$3 + mflo ($11,$10,$10) + mfhi ($10,$10,$10) + sw $11,-2*4($4) + + .set noreorder + bgtz $8,.L_bn_sqr_words_loop + sw $10,-4($4) + + beqz $6,.L_bn_sqr_words_return + nop + +.L_bn_sqr_words_tail: + .set reorder + lw $12,0($5) + multu ($12,$12) + subu $6,1 + mflo ($13,$12,$12) + mfhi ($12,$12,$12) + sw $13,0($4) + sw $12,4($4) + beqz $6,.L_bn_sqr_words_return + + lw $12,4($5) + multu ($12,$12) + subu $6,1 + mflo ($13,$12,$12) + mfhi ($12,$12,$12) + sw $13,2*4($4) + sw $12,3*4($4) + beqz $6,.L_bn_sqr_words_return + + lw $12,2*4($5) + multu ($12,$12) + mflo ($13,$12,$12) + mfhi ($12,$12,$12) + sw $13,4*4($4) + sw $12,5*4($4) + +.L_bn_sqr_words_return: + .set noreorder + jr $31 + move $4,$2 + +.end bn_sqr_words_internal + +.align 5 +.globl bn_add_words +.ent bn_add_words +bn_add_words: + .set noreorder + bgtz $7,bn_add_words_internal + move $2,$0 + jr $31 + move $4,$2 +.end bn_add_words + +.align 5 +.ent bn_add_words_internal +bn_add_words_internal: + .set reorder + li $3,-4 + and $1,$7,$3 + beqz $1,.L_bn_add_words_tail + +.L_bn_add_words_loop: + lw $12,0($5) + lw $8,0($6) + subu $7,4 + lw $13,4($5) + and $1,$7,$3 + lw $14,2*4($5) + addu $6,4*4 + lw $15,3*4($5) + addu $4,4*4 + lw $9,-3*4($6) + addu $5,4*4 + lw $10,-2*4($6) + lw $11,-4($6) + addu $8,$12 + sltu $24,$8,$12 + addu $12,$8,$2 + sltu $2,$12,$8 + sw $12,-4*4($4) + addu $2,$24 + + addu $9,$13 + sltu $25,$9,$13 + addu $13,$9,$2 + sltu $2,$13,$9 + sw $13,-3*4($4) + addu $2,$25 + + addu $10,$14 + sltu $24,$10,$14 + addu $14,$10,$2 + sltu $2,$14,$10 + sw $14,-2*4($4) + addu $2,$24 + + addu $11,$15 + sltu $25,$11,$15 + addu $15,$11,$2 + sltu $2,$15,$11 + sw $15,-4($4) + + .set noreorder + bgtz $1,.L_bn_add_words_loop + addu $2,$25 + + beqz $7,.L_bn_add_words_return + nop + +.L_bn_add_words_tail: + .set reorder + lw $12,0($5) + lw $8,0($6) + addu $8,$12 + subu $7,1 + sltu $24,$8,$12 + addu $12,$8,$2 + sltu $2,$12,$8 + sw $12,0($4) + addu $2,$24 + beqz $7,.L_bn_add_words_return + + lw $13,4($5) + lw $9,4($6) + addu $9,$13 + subu $7,1 + sltu $25,$9,$13 + addu $13,$9,$2 + sltu $2,$13,$9 + sw $13,4($4) + addu $2,$25 + beqz $7,.L_bn_add_words_return + + lw $14,2*4($5) + lw $10,2*4($6) + addu $10,$14 + sltu $24,$10,$14 + addu $14,$10,$2 + sltu $2,$14,$10 + sw $14,2*4($4) + addu $2,$24 + +.L_bn_add_words_return: + .set noreorder + jr $31 + move $4,$2 + +.end bn_add_words_internal + +.align 5 +.globl bn_sub_words +.ent bn_sub_words +bn_sub_words: + .set noreorder + bgtz $7,bn_sub_words_internal + move $2,$0 + jr $31 + move $4,$0 +.end bn_sub_words + +.align 5 +.ent bn_sub_words_internal +bn_sub_words_internal: + .set reorder + li $3,-4 + and $1,$7,$3 + beqz $1,.L_bn_sub_words_tail + +.L_bn_sub_words_loop: + lw $12,0($5) + lw $8,0($6) + subu $7,4 + lw $13,4($5) + and $1,$7,$3 + lw $14,2*4($5) + addu $6,4*4 + lw $15,3*4($5) + addu $4,4*4 + lw $9,-3*4($6) + addu $5,4*4 + lw $10,-2*4($6) + lw $11,-4($6) + sltu $24,$12,$8 + subu $8,$12,$8 + subu $12,$8,$2 + sgtu $2,$12,$8 + sw $12,-4*4($4) + addu $2,$24 + + sltu $25,$13,$9 + subu $9,$13,$9 + subu $13,$9,$2 + sgtu $2,$13,$9 + sw $13,-3*4($4) + addu $2,$25 + + + sltu $24,$14,$10 + subu $10,$14,$10 + subu $14,$10,$2 + sgtu $2,$14,$10 + sw $14,-2*4($4) + addu $2,$24 + + sltu $25,$15,$11 + subu $11,$15,$11 + subu $15,$11,$2 + sgtu $2,$15,$11 + sw $15,-4($4) + + .set noreorder + bgtz $1,.L_bn_sub_words_loop + addu $2,$25 + + beqz $7,.L_bn_sub_words_return + nop + +.L_bn_sub_words_tail: + .set reorder + lw $12,0($5) + lw $8,0($6) + subu $7,1 + sltu $24,$12,$8 + subu $8,$12,$8 + subu $12,$8,$2 + sgtu $2,$12,$8 + sw $12,0($4) + addu $2,$24 + beqz $7,.L_bn_sub_words_return + + lw $13,4($5) + subu $7,1 + lw $9,4($6) + sltu $25,$13,$9 + subu $9,$13,$9 + subu $13,$9,$2 + sgtu $2,$13,$9 + sw $13,4($4) + addu $2,$25 + beqz $7,.L_bn_sub_words_return + + lw $14,2*4($5) + lw $10,2*4($6) + sltu $24,$14,$10 + subu $10,$14,$10 + subu $14,$10,$2 + sgtu $2,$14,$10 + sw $14,2*4($4) + addu $2,$24 + +.L_bn_sub_words_return: + .set noreorder + jr $31 + move $4,$2 +.end bn_sub_words_internal + +#if 0 +/* + * The bn_div_3_words entry point is re-used for constant-time interface. + * Implementation is retained as historical reference. + */ +.align 5 +.globl bn_div_3_words +.ent bn_div_3_words +bn_div_3_words: + .set noreorder + move $7,$4 # we know that bn_div_words does not + # touch $7, $10, $11 and preserves $6 + # so that we can save two arguments + # and return address in registers + # instead of stack:-) + + lw $4,($7) + move $10,$5 + bne $4,$6,bn_div_3_words_internal + lw $5,-4($7) + li $2,-1 + jr $31 + move $4,$2 +.end bn_div_3_words + +.align 5 +.ent bn_div_3_words_internal +bn_div_3_words_internal: + .set reorder + move $11,$31 + bal bn_div_words_internal + move $31,$11 + multu ($10,$2) + lw $14,-2*4($7) + move $8,$0 + mfhi ($13,$10,$2) + mflo ($12,$10,$2) + sltu $24,$13,$5 +.L_bn_div_3_words_inner_loop: + bnez $24,.L_bn_div_3_words_inner_loop_done + sgeu $1,$14,$12 + seq $25,$13,$5 + and $1,$25 + sltu $15,$12,$10 + addu $5,$6 + subu $13,$15 + subu $12,$10 + sltu $24,$13,$5 + sltu $8,$5,$6 + or $24,$8 + .set noreorder + beqz $1,.L_bn_div_3_words_inner_loop + subu $2,1 + addu $2,1 + .set reorder +.L_bn_div_3_words_inner_loop_done: + .set noreorder + jr $31 + move $4,$2 +.end bn_div_3_words_internal +#endif + +.align 5 +.globl bn_div_words +.ent bn_div_words +bn_div_words: + .set noreorder + bnez $6,bn_div_words_internal + li $2,-1 # I would rather signal div-by-zero + # which can be done with 'break 7' + jr $31 + move $4,$2 +.end bn_div_words + +.align 5 +.ent bn_div_words_internal +bn_div_words_internal: + move $3,$0 + bltz $6,.L_bn_div_words_body + move $25,$3 + sll $6,1 + bgtz $6,.-4 + addu $25,1 + + .set reorder + negu $13,$25 + li $14,-1 + sll $14,$13 + and $14,$4 + srl $1,$5,$13 + .set noreorder + beqz $14,.+12 + nop + break 6 # signal overflow + .set reorder + sll $4,$25 + sll $5,$25 + or $4,$1 +.L_bn_div_words_body: + srl $3,$6,4*4 # bits + sgeu $1,$4,$6 + .set noreorder + beqz $1,.+12 + nop + subu $4,$6 + .set reorder + + li $8,-1 + srl $9,$4,4*4 # bits + srl $8,4*4 # q=0xffffffff + beq $3,$9,.L_bn_div_words_skip_div1 + divu ($4,$3) + mfqt ($8,$4,$3) +.L_bn_div_words_skip_div1: + multu ($6,$8) + sll $15,$4,4*4 # bits + srl $1,$5,4*4 # bits + or $15,$1 + mflo ($12,$6,$8) + mfhi ($13,$6,$8) +.L_bn_div_words_inner_loop1: + sltu $14,$15,$12 + seq $24,$9,$13 + sltu $1,$9,$13 + and $14,$24 + sltu $2,$12,$6 + or $1,$14 + .set noreorder + beqz $1,.L_bn_div_words_inner_loop1_done + subu $13,$2 + subu $12,$6 + b .L_bn_div_words_inner_loop1 + subu $8,1 + .set reorder +.L_bn_div_words_inner_loop1_done: + + sll $5,4*4 # bits + subu $4,$15,$12 + sll $2,$8,4*4 # bits + + li $8,-1 + srl $9,$4,4*4 # bits + srl $8,4*4 # q=0xffffffff + beq $3,$9,.L_bn_div_words_skip_div2 + divu ($4,$3) + mfqt ($8,$4,$3) +.L_bn_div_words_skip_div2: + multu ($6,$8) + sll $15,$4,4*4 # bits + srl $1,$5,4*4 # bits + or $15,$1 + mflo ($12,$6,$8) + mfhi ($13,$6,$8) +.L_bn_div_words_inner_loop2: + sltu $14,$15,$12 + seq $24,$9,$13 + sltu $1,$9,$13 + and $14,$24 + sltu $3,$12,$6 + or $1,$14 + .set noreorder + beqz $1,.L_bn_div_words_inner_loop2_done + subu $13,$3 + subu $12,$6 + b .L_bn_div_words_inner_loop2 + subu $8,1 + .set reorder +.L_bn_div_words_inner_loop2_done: + + subu $4,$15,$12 + or $2,$8 + srl $3,$4,$25 # $3 contains remainder if anybody wants it + srl $6,$25 # restore $6 + + .set noreorder + move $5,$3 + jr $31 + move $4,$2 +.end bn_div_words_internal + +.align 5 +.globl bn_mul_comba8 +.ent bn_mul_comba8 +bn_mul_comba8: + .set noreorder + .frame $29,6*4,$31 + .mask 0x003f0000,-4 + subu $29,6*4 + sw $21,5*4($29) + sw $20,4*4($29) + sw $19,3*4($29) + sw $18,2*4($29) + sw $17,1*4($29) + sw $16,0*4($29) + + .set reorder + lw $12,0($5) # If compiled with -mips3 option on + # R5000 box assembler barks on this + # 1ine with "should not have mult/div + # as last instruction in bb (R10K + # bug)" warning. If anybody out there + # has a clue about how to circumvent + # this do send me a note. + # + + lw $8,0($6) + lw $13,4($5) + lw $14,2*4($5) + multu ($12,$8) # mul_add_c(a[0],b[0],c1,c2,c3); + lw $15,3*4($5) + lw $9,4($6) + lw $10,2*4($6) + lw $11,3*4($6) + mflo ($2,$12,$8) + mfhi ($3,$12,$8) + + lw $16,4*4($5) + lw $18,5*4($5) + multu ($12,$9) # mul_add_c(a[0],b[1],c2,c3,c1); + lw $20,6*4($5) + lw $5,7*4($5) + lw $17,4*4($6) + lw $19,5*4($6) + mflo ($24,$12,$9) + mfhi ($25,$12,$9) + addu $3,$24 + sltu $1,$3,$24 + multu ($13,$8) # mul_add_c(a[1],b[0],c2,c3,c1); + addu $7,$25,$1 + lw $21,6*4($6) + lw $6,7*4($6) + sw $2,0($4) # r[0]=c1; + mflo ($24,$13,$8) + mfhi ($25,$13,$8) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$8) # mul_add_c(a[2],b[0],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $2,$7,$25 + sw $3,4($4) # r[1]=c2; + + mflo ($24,$14,$8) + mfhi ($25,$14,$8) + addu $7,$24 + sltu $1,$7,$24 + multu ($13,$9) # mul_add_c(a[1],b[1],c3,c1,c2); + addu $25,$1 + addu $2,$25 + mflo ($24,$13,$9) + mfhi ($25,$13,$9) + addu $7,$24 + sltu $1,$7,$24 + multu ($12,$10) # mul_add_c(a[0],b[2],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $3,$2,$25 + mflo ($24,$12,$10) + mfhi ($25,$12,$10) + addu $7,$24 + sltu $1,$7,$24 + multu ($12,$11) # mul_add_c(a[0],b[3],c1,c2,c3); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + sw $7,2*4($4) # r[2]=c3; + + mflo ($24,$12,$11) + mfhi ($25,$12,$11) + addu $2,$24 + sltu $1,$2,$24 + multu ($13,$10) # mul_add_c(a[1],b[2],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $7,$3,$25 + mflo ($24,$13,$10) + mfhi ($25,$13,$10) + addu $2,$24 + sltu $1,$2,$24 + multu ($14,$9) # mul_add_c(a[2],b[1],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$14,$9) + mfhi ($25,$14,$9) + addu $2,$24 + sltu $1,$2,$24 + multu ($15,$8) # mul_add_c(a[3],b[0],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$15,$8) + mfhi ($25,$15,$8) + addu $2,$24 + sltu $1,$2,$24 + multu ($16,$8) # mul_add_c(a[4],b[0],c2,c3,c1); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + sw $2,3*4($4) # r[3]=c1; + + mflo ($24,$16,$8) + mfhi ($25,$16,$8) + addu $3,$24 + sltu $1,$3,$24 + multu ($15,$9) # mul_add_c(a[3],b[1],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $2,$7,$25 + mflo ($24,$15,$9) + mfhi ($25,$15,$9) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$10) # mul_add_c(a[2],b[2],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$14,$10) + mfhi ($25,$14,$10) + addu $3,$24 + sltu $1,$3,$24 + multu ($13,$11) # mul_add_c(a[1],b[3],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$13,$11) + mfhi ($25,$13,$11) + addu $3,$24 + sltu $1,$3,$24 + multu ($12,$17) # mul_add_c(a[0],b[4],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$12,$17) + mfhi ($25,$12,$17) + addu $3,$24 + sltu $1,$3,$24 + multu ($12,$19) # mul_add_c(a[0],b[5],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + sw $3,4*4($4) # r[4]=c2; + + mflo ($24,$12,$19) + mfhi ($25,$12,$19) + addu $7,$24 + sltu $1,$7,$24 + multu ($13,$17) # mul_add_c(a[1],b[4],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $3,$2,$25 + mflo ($24,$13,$17) + mfhi ($25,$13,$17) + addu $7,$24 + sltu $1,$7,$24 + multu ($14,$11) # mul_add_c(a[2],b[3],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$14,$11) + mfhi ($25,$14,$11) + addu $7,$24 + sltu $1,$7,$24 + multu ($15,$10) # mul_add_c(a[3],b[2],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$15,$10) + mfhi ($25,$15,$10) + addu $7,$24 + sltu $1,$7,$24 + multu ($16,$9) # mul_add_c(a[4],b[1],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$16,$9) + mfhi ($25,$16,$9) + addu $7,$24 + sltu $1,$7,$24 + multu ($18,$8) # mul_add_c(a[5],b[0],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$18,$8) + mfhi ($25,$18,$8) + addu $7,$24 + sltu $1,$7,$24 + multu ($20,$8) # mul_add_c(a[6],b[0],c1,c2,c3); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + sw $7,5*4($4) # r[5]=c3; + + mflo ($24,$20,$8) + mfhi ($25,$20,$8) + addu $2,$24 + sltu $1,$2,$24 + multu ($18,$9) # mul_add_c(a[5],b[1],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $7,$3,$25 + mflo ($24,$18,$9) + mfhi ($25,$18,$9) + addu $2,$24 + sltu $1,$2,$24 + multu ($16,$10) # mul_add_c(a[4],b[2],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$16,$10) + mfhi ($25,$16,$10) + addu $2,$24 + sltu $1,$2,$24 + multu ($15,$11) # mul_add_c(a[3],b[3],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$15,$11) + mfhi ($25,$15,$11) + addu $2,$24 + sltu $1,$2,$24 + multu ($14,$17) # mul_add_c(a[2],b[4],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$14,$17) + mfhi ($25,$14,$17) + addu $2,$24 + sltu $1,$2,$24 + multu ($13,$19) # mul_add_c(a[1],b[5],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$13,$19) + mfhi ($25,$13,$19) + addu $2,$24 + sltu $1,$2,$24 + multu ($12,$21) # mul_add_c(a[0],b[6],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$12,$21) + mfhi ($25,$12,$21) + addu $2,$24 + sltu $1,$2,$24 + multu ($12,$6) # mul_add_c(a[0],b[7],c2,c3,c1); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + sw $2,6*4($4) # r[6]=c1; + + mflo ($24,$12,$6) + mfhi ($25,$12,$6) + addu $3,$24 + sltu $1,$3,$24 + multu ($13,$21) # mul_add_c(a[1],b[6],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $2,$7,$25 + mflo ($24,$13,$21) + mfhi ($25,$13,$21) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$19) # mul_add_c(a[2],b[5],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$14,$19) + mfhi ($25,$14,$19) + addu $3,$24 + sltu $1,$3,$24 + multu ($15,$17) # mul_add_c(a[3],b[4],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$15,$17) + mfhi ($25,$15,$17) + addu $3,$24 + sltu $1,$3,$24 + multu ($16,$11) # mul_add_c(a[4],b[3],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$16,$11) + mfhi ($25,$16,$11) + addu $3,$24 + sltu $1,$3,$24 + multu ($18,$10) # mul_add_c(a[5],b[2],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$18,$10) + mfhi ($25,$18,$10) + addu $3,$24 + sltu $1,$3,$24 + multu ($20,$9) # mul_add_c(a[6],b[1],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$20,$9) + mfhi ($25,$20,$9) + addu $3,$24 + sltu $1,$3,$24 + multu ($5,$8) # mul_add_c(a[7],b[0],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$5,$8) + mfhi ($25,$5,$8) + addu $3,$24 + sltu $1,$3,$24 + multu ($5,$9) # mul_add_c(a[7],b[1],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + sw $3,7*4($4) # r[7]=c2; + + mflo ($24,$5,$9) + mfhi ($25,$5,$9) + addu $7,$24 + sltu $1,$7,$24 + multu ($20,$10) # mul_add_c(a[6],b[2],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $3,$2,$25 + mflo ($24,$20,$10) + mfhi ($25,$20,$10) + addu $7,$24 + sltu $1,$7,$24 + multu ($18,$11) # mul_add_c(a[5],b[3],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$18,$11) + mfhi ($25,$18,$11) + addu $7,$24 + sltu $1,$7,$24 + multu ($16,$17) # mul_add_c(a[4],b[4],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$16,$17) + mfhi ($25,$16,$17) + addu $7,$24 + sltu $1,$7,$24 + multu ($15,$19) # mul_add_c(a[3],b[5],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$15,$19) + mfhi ($25,$15,$19) + addu $7,$24 + sltu $1,$7,$24 + multu ($14,$21) # mul_add_c(a[2],b[6],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$14,$21) + mfhi ($25,$14,$21) + addu $7,$24 + sltu $1,$7,$24 + multu ($13,$6) # mul_add_c(a[1],b[7],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$13,$6) + mfhi ($25,$13,$6) + addu $7,$24 + sltu $1,$7,$24 + multu ($14,$6) # mul_add_c(a[2],b[7],c1,c2,c3); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + sw $7,8*4($4) # r[8]=c3; + + mflo ($24,$14,$6) + mfhi ($25,$14,$6) + addu $2,$24 + sltu $1,$2,$24 + multu ($15,$21) # mul_add_c(a[3],b[6],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $7,$3,$25 + mflo ($24,$15,$21) + mfhi ($25,$15,$21) + addu $2,$24 + sltu $1,$2,$24 + multu ($16,$19) # mul_add_c(a[4],b[5],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$16,$19) + mfhi ($25,$16,$19) + addu $2,$24 + sltu $1,$2,$24 + multu ($18,$17) # mul_add_c(a[5],b[4],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$18,$17) + mfhi ($25,$18,$17) + addu $2,$24 + sltu $1,$2,$24 + multu ($20,$11) # mul_add_c(a[6],b[3],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$20,$11) + mfhi ($25,$20,$11) + addu $2,$24 + sltu $1,$2,$24 + multu ($5,$10) # mul_add_c(a[7],b[2],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$5,$10) + mfhi ($25,$5,$10) + addu $2,$24 + sltu $1,$2,$24 + multu ($5,$11) # mul_add_c(a[7],b[3],c2,c3,c1); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + sw $2,9*4($4) # r[9]=c1; + + mflo ($24,$5,$11) + mfhi ($25,$5,$11) + addu $3,$24 + sltu $1,$3,$24 + multu ($20,$17) # mul_add_c(a[6],b[4],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $2,$7,$25 + mflo ($24,$20,$17) + mfhi ($25,$20,$17) + addu $3,$24 + sltu $1,$3,$24 + multu ($18,$19) # mul_add_c(a[5],b[5],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$18,$19) + mfhi ($25,$18,$19) + addu $3,$24 + sltu $1,$3,$24 + multu ($16,$21) # mul_add_c(a[4],b[6],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$16,$21) + mfhi ($25,$16,$21) + addu $3,$24 + sltu $1,$3,$24 + multu ($15,$6) # mul_add_c(a[3],b[7],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$15,$6) + mfhi ($25,$15,$6) + addu $3,$24 + sltu $1,$3,$24 + multu ($16,$6) # mul_add_c(a[4],b[7],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + sw $3,10*4($4) # r[10]=c2; + + mflo ($24,$16,$6) + mfhi ($25,$16,$6) + addu $7,$24 + sltu $1,$7,$24 + multu ($18,$21) # mul_add_c(a[5],b[6],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $3,$2,$25 + mflo ($24,$18,$21) + mfhi ($25,$18,$21) + addu $7,$24 + sltu $1,$7,$24 + multu ($20,$19) # mul_add_c(a[6],b[5],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$20,$19) + mfhi ($25,$20,$19) + addu $7,$24 + sltu $1,$7,$24 + multu ($5,$17) # mul_add_c(a[7],b[4],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + mflo ($24,$5,$17) + mfhi ($25,$5,$17) + addu $7,$24 + sltu $1,$7,$24 + multu ($5,$19) # mul_add_c(a[7],b[5],c1,c2,c3); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + sw $7,11*4($4) # r[11]=c3; + + mflo ($24,$5,$19) + mfhi ($25,$5,$19) + addu $2,$24 + sltu $1,$2,$24 + multu ($20,$21) # mul_add_c(a[6],b[6],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $7,$3,$25 + mflo ($24,$20,$21) + mfhi ($25,$20,$21) + addu $2,$24 + sltu $1,$2,$24 + multu ($18,$6) # mul_add_c(a[5],b[7],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$18,$6) + mfhi ($25,$18,$6) + addu $2,$24 + sltu $1,$2,$24 + multu ($20,$6) # mul_add_c(a[6],b[7],c2,c3,c1); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + sw $2,12*4($4) # r[12]=c1; + + mflo ($24,$20,$6) + mfhi ($25,$20,$6) + addu $3,$24 + sltu $1,$3,$24 + multu ($5,$21) # mul_add_c(a[7],b[6],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $2,$7,$25 + mflo ($24,$5,$21) + mfhi ($25,$5,$21) + addu $3,$24 + sltu $1,$3,$24 + multu ($5,$6) # mul_add_c(a[7],b[7],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + sw $3,13*4($4) # r[13]=c2; + + mflo ($24,$5,$6) + mfhi ($25,$5,$6) + addu $7,$24 + sltu $1,$7,$24 + addu $25,$1 + addu $2,$25 + sw $7,14*4($4) # r[14]=c3; + sw $2,15*4($4) # r[15]=c1; + + .set noreorder + lw $21,5*4($29) + lw $20,4*4($29) + lw $19,3*4($29) + lw $18,2*4($29) + lw $17,1*4($29) + lw $16,0*4($29) + jr $31 + addu $29,6*4 +.end bn_mul_comba8 + +.align 5 +.globl bn_mul_comba4 +.ent bn_mul_comba4 +bn_mul_comba4: + .set reorder + lw $12,0($5) + lw $8,0($6) + lw $13,4($5) + lw $14,2*4($5) + multu ($12,$8) # mul_add_c(a[0],b[0],c1,c2,c3); + lw $15,3*4($5) + lw $9,4($6) + lw $10,2*4($6) + lw $11,3*4($6) + mflo ($2,$12,$8) + mfhi ($3,$12,$8) + sw $2,0($4) + + multu ($12,$9) # mul_add_c(a[0],b[1],c2,c3,c1); + mflo ($24,$12,$9) + mfhi ($25,$12,$9) + addu $3,$24 + sltu $1,$3,$24 + multu ($13,$8) # mul_add_c(a[1],b[0],c2,c3,c1); + addu $7,$25,$1 + mflo ($24,$13,$8) + mfhi ($25,$13,$8) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$8) # mul_add_c(a[2],b[0],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $2,$7,$25 + sw $3,4($4) + + mflo ($24,$14,$8) + mfhi ($25,$14,$8) + addu $7,$24 + sltu $1,$7,$24 + multu ($13,$9) # mul_add_c(a[1],b[1],c3,c1,c2); + addu $25,$1 + addu $2,$25 + mflo ($24,$13,$9) + mfhi ($25,$13,$9) + addu $7,$24 + sltu $1,$7,$24 + multu ($12,$10) # mul_add_c(a[0],b[2],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $3,$2,$25 + mflo ($24,$12,$10) + mfhi ($25,$12,$10) + addu $7,$24 + sltu $1,$7,$24 + multu ($12,$11) # mul_add_c(a[0],b[3],c1,c2,c3); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + sw $7,2*4($4) + + mflo ($24,$12,$11) + mfhi ($25,$12,$11) + addu $2,$24 + sltu $1,$2,$24 + multu ($13,$10) # mul_add_c(a[1],b[2],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $7,$3,$25 + mflo ($24,$13,$10) + mfhi ($25,$13,$10) + addu $2,$24 + sltu $1,$2,$24 + multu ($14,$9) # mul_add_c(a[2],b[1],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$14,$9) + mfhi ($25,$14,$9) + addu $2,$24 + sltu $1,$2,$24 + multu ($15,$8) # mul_add_c(a[3],b[0],c1,c2,c3); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + mflo ($24,$15,$8) + mfhi ($25,$15,$8) + addu $2,$24 + sltu $1,$2,$24 + multu ($15,$9) # mul_add_c(a[3],b[1],c2,c3,c1); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + sw $2,3*4($4) + + mflo ($24,$15,$9) + mfhi ($25,$15,$9) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$10) # mul_add_c(a[2],b[2],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $2,$7,$25 + mflo ($24,$14,$10) + mfhi ($25,$14,$10) + addu $3,$24 + sltu $1,$3,$24 + multu ($13,$11) # mul_add_c(a[1],b[3],c2,c3,c1); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + mflo ($24,$13,$11) + mfhi ($25,$13,$11) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$11) # mul_add_c(a[2],b[3],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + sw $3,4*4($4) + + mflo ($24,$14,$11) + mfhi ($25,$14,$11) + addu $7,$24 + sltu $1,$7,$24 + multu ($15,$10) # mul_add_c(a[3],b[2],c3,c1,c2); + addu $25,$1 + addu $2,$25 + sltu $3,$2,$25 + mflo ($24,$15,$10) + mfhi ($25,$15,$10) + addu $7,$24 + sltu $1,$7,$24 + multu ($15,$11) # mul_add_c(a[3],b[3],c1,c2,c3); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + sw $7,5*4($4) + + mflo ($24,$15,$11) + mfhi ($25,$15,$11) + addu $2,$24 + sltu $1,$2,$24 + addu $25,$1 + addu $3,$25 + sw $2,6*4($4) + sw $3,7*4($4) + + .set noreorder + jr $31 + nop +.end bn_mul_comba4 + +.align 5 +.globl bn_sqr_comba8 +.ent bn_sqr_comba8 +bn_sqr_comba8: + .set reorder + lw $12,0($5) + lw $13,4($5) + lw $14,2*4($5) + lw $15,3*4($5) + + multu ($12,$12) # mul_add_c(a[0],b[0],c1,c2,c3); + lw $8,4*4($5) + lw $9,5*4($5) + lw $10,6*4($5) + lw $11,7*4($5) + mflo ($2,$12,$12) + mfhi ($3,$12,$12) + sw $2,0($4) + + multu ($12,$13) # mul_add_c2(a[0],b[1],c2,c3,c1); + mflo ($24,$12,$13) + mfhi ($25,$12,$13) + slt $2,$25,$0 + sll $25,1 + multu ($14,$12) # mul_add_c2(a[2],b[0],c3,c1,c2); + slt $6,$24,$0 + addu $25,$6 + sll $24,1 + addu $3,$24 + sltu $1,$3,$24 + addu $7,$25,$1 + sw $3,4($4) + mflo ($24,$14,$12) + mfhi ($25,$14,$12) + addu $7,$24 + sltu $1,$7,$24 + multu ($13,$13) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $3,$2,$1 + addu $2,$25 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$13,$13) + mfhi ($25,$13,$13) + addu $7,$24 + sltu $1,$7,$24 + multu ($12,$15) # mul_add_c2(a[0],b[3],c1,c2,c3); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + sw $7,2*4($4) + mflo ($24,$12,$15) + mfhi ($25,$12,$15) + addu $2,$24 + sltu $1,$2,$24 + multu ($13,$14) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $7,$3,$1 + addu $3,$25 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$13,$14) + mfhi ($25,$13,$14) + addu $2,$24 + sltu $1,$2,$24 + multu ($8,$12) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $1,$3,$1 + addu $3,$25 + addu $7,$1 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$8,$12) + mfhi ($25,$8,$12) + sw $2,3*4($4) + addu $3,$24 + sltu $1,$3,$24 + multu ($15,$13) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $2,$7,$1 + addu $7,$25 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$15,$13) + mfhi ($25,$15,$13) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$14) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $1,$7,$1 + addu $7,$25 + addu $2,$1 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$14,$14) + mfhi ($25,$14,$14) + addu $3,$24 + sltu $1,$3,$24 + multu ($12,$9) # mul_add_c2(a[0],b[5],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + sw $3,4*4($4) + mflo ($24,$12,$9) + mfhi ($25,$12,$9) + addu $7,$24 + sltu $1,$7,$24 + multu ($13,$8) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $3,$2,$1 + addu $2,$25 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$13,$8) + mfhi ($25,$13,$8) + addu $7,$24 + sltu $1,$7,$24 + multu ($14,$15) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $1,$2,$1 + addu $2,$25 + addu $3,$1 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$14,$15) + mfhi ($25,$14,$15) + addu $7,$24 + sltu $1,$7,$24 + multu ($10,$12) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $1,$2,$1 + addu $2,$25 + addu $3,$1 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$10,$12) + mfhi ($25,$10,$12) + sw $7,5*4($4) + addu $2,$24 + sltu $1,$2,$24 + multu ($9,$13) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $7,$3,$1 + addu $3,$25 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$9,$13) + mfhi ($25,$9,$13) + addu $2,$24 + sltu $1,$2,$24 + multu ($8,$14) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $1,$3,$1 + addu $3,$25 + addu $7,$1 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$8,$14) + mfhi ($25,$8,$14) + addu $2,$24 + sltu $1,$2,$24 + multu ($15,$15) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $1,$3,$1 + addu $3,$25 + addu $7,$1 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$15,$15) + mfhi ($25,$15,$15) + addu $2,$24 + sltu $1,$2,$24 + multu ($12,$11) # mul_add_c2(a[0],b[7],c2,c3,c1); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + sw $2,6*4($4) + mflo ($24,$12,$11) + mfhi ($25,$12,$11) + addu $3,$24 + sltu $1,$3,$24 + multu ($13,$10) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $2,$7,$1 + addu $7,$25 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$13,$10) + mfhi ($25,$13,$10) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$9) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $1,$7,$1 + addu $7,$25 + addu $2,$1 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$14,$9) + mfhi ($25,$14,$9) + addu $3,$24 + sltu $1,$3,$24 + multu ($15,$8) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $1,$7,$1 + addu $7,$25 + addu $2,$1 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$15,$8) + mfhi ($25,$15,$8) + addu $3,$24 + sltu $1,$3,$24 + multu ($11,$13) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $1,$7,$1 + addu $7,$25 + addu $2,$1 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$11,$13) + mfhi ($25,$11,$13) + sw $3,7*4($4) + addu $7,$24 + sltu $1,$7,$24 + multu ($10,$14) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $3,$2,$1 + addu $2,$25 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$10,$14) + mfhi ($25,$10,$14) + addu $7,$24 + sltu $1,$7,$24 + multu ($9,$15) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $1,$2,$1 + addu $2,$25 + addu $3,$1 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$9,$15) + mfhi ($25,$9,$15) + addu $7,$24 + sltu $1,$7,$24 + multu ($8,$8) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $1,$2,$1 + addu $2,$25 + addu $3,$1 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$8,$8) + mfhi ($25,$8,$8) + addu $7,$24 + sltu $1,$7,$24 + multu ($14,$11) # mul_add_c2(a[2],b[7],c1,c2,c3); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + sw $7,8*4($4) + mflo ($24,$14,$11) + mfhi ($25,$14,$11) + addu $2,$24 + sltu $1,$2,$24 + multu ($15,$10) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $7,$3,$1 + addu $3,$25 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$15,$10) + mfhi ($25,$15,$10) + addu $2,$24 + sltu $1,$2,$24 + multu ($8,$9) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $1,$3,$1 + addu $3,$25 + addu $7,$1 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$8,$9) + mfhi ($25,$8,$9) + addu $2,$24 + sltu $1,$2,$24 + multu ($11,$15) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $1,$3,$1 + addu $3,$25 + addu $7,$1 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$11,$15) + mfhi ($25,$11,$15) + sw $2,9*4($4) + addu $3,$24 + sltu $1,$3,$24 + multu ($10,$8) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $2,$7,$1 + addu $7,$25 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$10,$8) + mfhi ($25,$10,$8) + addu $3,$24 + sltu $1,$3,$24 + multu ($9,$9) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $1,$7,$1 + addu $7,$25 + addu $2,$1 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$9,$9) + mfhi ($25,$9,$9) + addu $3,$24 + sltu $1,$3,$24 + multu ($8,$11) # mul_add_c2(a[4],b[7],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + sw $3,10*4($4) + mflo ($24,$8,$11) + mfhi ($25,$8,$11) + addu $7,$24 + sltu $1,$7,$24 + multu ($9,$10) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $3,$2,$1 + addu $2,$25 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$9,$10) + mfhi ($25,$9,$10) + addu $7,$24 + sltu $1,$7,$24 + multu ($11,$9) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $1,$2,$1 + addu $2,$25 + addu $3,$1 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$11,$9) + mfhi ($25,$11,$9) + sw $7,11*4($4) + addu $2,$24 + sltu $1,$2,$24 + multu ($10,$10) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $7,$3,$1 + addu $3,$25 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$10,$10) + mfhi ($25,$10,$10) + addu $2,$24 + sltu $1,$2,$24 + multu ($10,$11) # mul_add_c2(a[6],b[7],c2,c3,c1); + addu $25,$1 + addu $3,$25 + sltu $1,$3,$25 + addu $7,$1 + sw $2,12*4($4) + mflo ($24,$10,$11) + mfhi ($25,$10,$11) + addu $3,$24 + sltu $1,$3,$24 + multu ($11,$11) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $2,$7,$1 + addu $7,$25 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$11,$11) + mfhi ($25,$11,$11) + sw $3,13*4($4) + + addu $7,$24 + sltu $1,$7,$24 + addu $25,$1 + addu $2,$25 + sw $7,14*4($4) + sw $2,15*4($4) + + .set noreorder + jr $31 + nop +.end bn_sqr_comba8 + +.align 5 +.globl bn_sqr_comba4 +.ent bn_sqr_comba4 +bn_sqr_comba4: + .set reorder + lw $12,0($5) + lw $13,4($5) + multu ($12,$12) # mul_add_c(a[0],b[0],c1,c2,c3); + lw $14,2*4($5) + lw $15,3*4($5) + mflo ($2,$12,$12) + mfhi ($3,$12,$12) + sw $2,0($4) + + multu ($12,$13) # mul_add_c2(a[0],b[1],c2,c3,c1); + mflo ($24,$12,$13) + mfhi ($25,$12,$13) + slt $2,$25,$0 + sll $25,1 + multu ($14,$12) # mul_add_c2(a[2],b[0],c3,c1,c2); + slt $6,$24,$0 + addu $25,$6 + sll $24,1 + addu $3,$24 + sltu $1,$3,$24 + addu $7,$25,$1 + sw $3,4($4) + mflo ($24,$14,$12) + mfhi ($25,$14,$12) + addu $7,$24 + sltu $1,$7,$24 + multu ($13,$13) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $3,$2,$1 + addu $2,$25 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$13,$13) + mfhi ($25,$13,$13) + addu $7,$24 + sltu $1,$7,$24 + multu ($12,$15) # mul_add_c2(a[0],b[3],c1,c2,c3); + addu $25,$1 + addu $2,$25 + sltu $1,$2,$25 + addu $3,$1 + sw $7,2*4($4) + mflo ($24,$12,$15) + mfhi ($25,$12,$15) + addu $2,$24 + sltu $1,$2,$24 + multu ($13,$14) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $7,$3,$1 + addu $3,$25 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$13,$14) + mfhi ($25,$13,$14) + addu $2,$24 + sltu $1,$2,$24 + multu ($15,$13) # forward multiplication + addu $2,$24 + addu $1,$25 + sltu $24,$2,$24 + addu $3,$1 + addu $25,$24 + sltu $1,$3,$1 + addu $3,$25 + addu $7,$1 + sltu $25,$3,$25 + addu $7,$25 + mflo ($24,$15,$13) + mfhi ($25,$15,$13) + sw $2,3*4($4) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$14) # forward multiplication + addu $3,$24 + addu $1,$25 + sltu $24,$3,$24 + addu $7,$1 + addu $25,$24 + sltu $2,$7,$1 + addu $7,$25 + sltu $25,$7,$25 + addu $2,$25 + mflo ($24,$14,$14) + mfhi ($25,$14,$14) + addu $3,$24 + sltu $1,$3,$24 + multu ($14,$15) # mul_add_c2(a[2],b[3],c3,c1,c2); + addu $25,$1 + addu $7,$25 + sltu $1,$7,$25 + addu $2,$1 + sw $3,4*4($4) + mflo ($24,$14,$15) + mfhi ($25,$14,$15) + addu $7,$24 + sltu $1,$7,$24 + multu ($15,$15) # forward multiplication + addu $7,$24 + addu $1,$25 + sltu $24,$7,$24 + addu $2,$1 + addu $25,$24 + sltu $3,$2,$1 + addu $2,$25 + sltu $25,$2,$25 + addu $3,$25 + mflo ($24,$15,$15) + mfhi ($25,$15,$15) + sw $7,5*4($4) + + addu $2,$24 + sltu $1,$2,$24 + addu $25,$1 + addu $3,$25 + sw $2,6*4($4) + sw $3,7*4($4) + + .set noreorder + jr $31 + nop +.end bn_sqr_comba4 diff -urN a/deps/openssl/config/archs/linux-mipsel/asm/crypto/bn/mips-mont.S b/deps/openssl/config/archs/linux-mipsel/asm/crypto/bn/mips-mont.S --- a/deps/openssl/config/archs/linux-mipsel/asm/crypto/bn/mips-mont.S 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mipsel/asm/crypto/bn/mips-mont.S 2019-12-25 13:49:19.988298795 +0900 @@ -0,0 +1,284 @@ +#include "mips_arch.h" + +.text + +.set noat +.set noreorder + +.align 5 +.globl bn_mul_mont +.ent bn_mul_mont +bn_mul_mont: + lw $8,16($29) + lw $9,20($29) + slt $1,$9,4 + bnez $1,1f + li $2,0 + slt $1,$9,17 # on in-order CPU + bnez $1,bn_mul_mont_internal + nop +1: jr $31 + li $4,0 +.end bn_mul_mont + +.align 5 +.ent bn_mul_mont_internal +bn_mul_mont_internal: + .frame $30,14*4,$31 + .mask 0x40000000|16711680,-4 + subu $29,14*4 + sw $30,(14-1)*4($29) + sw $23,(14-2)*4($29) + sw $22,(14-3)*4($29) + sw $21,(14-4)*4($29) + sw $20,(14-5)*4($29) + sw $19,(14-6)*4($29) + sw $18,(14-7)*4($29) + sw $17,(14-8)*4($29) + sw $16,(14-9)*4($29) + move $30,$29 + + .set reorder + lw $8,0($8) + lw $13,0($6) # bp[0] + lw $12,0($5) # ap[0] + lw $14,0($7) # np[0] + + subu $29,2*4 # place for two extra words + sll $9,2 + li $1,-4096 + subu $29,$9 + and $29,$1 + + multu ($12,$13) + lw $17,4($5) + lw $19,4($7) + mflo ($10,$12,$13) + mfhi ($11,$12,$13) + multu ($10,$8) + mflo ($23,$10,$8) + + multu ($17,$13) + mflo ($16,$17,$13) + mfhi ($17,$17,$13) + + multu ($14,$23) + mflo ($24,$14,$23) + mfhi ($25,$14,$23) + multu ($19,$23) + addu $24,$10 + sltu $1,$24,$10 + addu $25,$1 + mflo ($18,$19,$23) + mfhi ($19,$19,$23) + + move $15,$29 + li $22,2*4 +.align 4 +.L1st: + .set noreorder + addu $12,$5,$22 + addu $14,$7,$22 + lw $12,($12) + lw $14,($14) + + multu ($12,$13) + addu $10,$16,$11 + addu $24,$18,$25 + sltu $1,$10,$11 + sltu $2,$24,$25 + addu $11,$17,$1 + addu $25,$19,$2 + mflo ($16,$12,$13) + mfhi ($17,$12,$13) + + addu $24,$10 + sltu $1,$24,$10 + multu ($14,$23) + addu $25,$1 + addu $22,4 + sw $24,($15) + sltu $2,$22,$9 + mflo ($18,$14,$23) + mfhi ($19,$14,$23) + + bnez $2,.L1st + addu $15,4 + .set reorder + + addu $10,$16,$11 + sltu $1,$10,$11 + addu $11,$17,$1 + + addu $24,$18,$25 + sltu $2,$24,$25 + addu $25,$19,$2 + addu $24,$10 + sltu $1,$24,$10 + addu $25,$1 + + sw $24,($15) + + addu $25,$11 + sltu $1,$25,$11 + sw $25,4($15) + sw $1,2*4($15) + + li $21,4 +.align 4 +.Louter: + addu $13,$6,$21 + lw $13,($13) + lw $12,($5) + lw $17,4($5) + lw $20,($29) + + multu ($12,$13) + lw $14,($7) + lw $19,4($7) + mflo ($10,$12,$13) + mfhi ($11,$12,$13) + addu $10,$20 + multu ($10,$8) + sltu $1,$10,$20 + addu $11,$1 + mflo ($23,$10,$8) + + multu ($17,$13) + mflo ($16,$17,$13) + mfhi ($17,$17,$13) + + multu ($14,$23) + mflo ($24,$14,$23) + mfhi ($25,$14,$23) + + multu ($19,$23) + addu $24,$10 + sltu $1,$24,$10 + addu $25,$1 + mflo ($18,$19,$23) + mfhi ($19,$19,$23) + + move $15,$29 + li $22,2*4 + lw $20,4($15) +.align 4 +.Linner: + .set noreorder + addu $12,$5,$22 + addu $14,$7,$22 + lw $12,($12) + lw $14,($14) + + multu ($12,$13) + addu $10,$16,$11 + addu $24,$18,$25 + sltu $1,$10,$11 + sltu $2,$24,$25 + addu $11,$17,$1 + addu $25,$19,$2 + mflo ($16,$12,$13) + mfhi ($17,$12,$13) + + addu $10,$20 + addu $22,4 + multu ($14,$23) + sltu $1,$10,$20 + addu $24,$10 + addu $11,$1 + sltu $2,$24,$10 + lw $20,2*4($15) + addu $25,$2 + sltu $1,$22,$9 + mflo ($18,$14,$23) + mfhi ($19,$14,$23) + sw $24,($15) + bnez $1,.Linner + addu $15,4 + .set reorder + + addu $10,$16,$11 + sltu $1,$10,$11 + addu $11,$17,$1 + addu $10,$20 + sltu $2,$10,$20 + addu $11,$2 + + lw $20,2*4($15) + addu $24,$18,$25 + sltu $1,$24,$25 + addu $25,$19,$1 + addu $24,$10 + sltu $2,$24,$10 + addu $25,$2 + sw $24,($15) + + addu $24,$25,$11 + sltu $25,$24,$11 + addu $24,$20 + sltu $1,$24,$20 + addu $25,$1 + sw $24,4($15) + sw $25,2*4($15) + + addu $21,4 + sltu $2,$21,$9 + bnez $2,.Louter + + .set noreorder + addu $20,$29,$9 # &tp[num] + move $15,$29 + move $5,$29 + li $11,0 # clear borrow bit + +.align 4 +.Lsub: lw $10,($15) + lw $24,($7) + addu $15,4 + addu $7,4 + subu $24,$10,$24 # tp[i]-np[i] + sgtu $1,$24,$10 + subu $10,$24,$11 + sgtu $11,$10,$24 + sw $10,($4) + or $11,$1 + sltu $1,$15,$20 + bnez $1,.Lsub + addu $4,4 + + subu $11,$25,$11 # handle upmost overflow bit + move $15,$29 + subu $4,$9 # restore rp + not $25,$11 + +.Lcopy: lw $14,($15) # conditional move + lw $12,($4) + sw $0,($15) + addu $15,4 + and $14,$11 + and $12,$25 + or $12,$14 + sltu $1,$15,$20 + sw $12,($4) + bnez $1,.Lcopy + addu $4,4 + + li $4,1 + li $2,1 + + .set noreorder + move $29,$30 + lw $30,(14-1)*4($29) + lw $23,(14-2)*4($29) + lw $22,(14-3)*4($29) + lw $21,(14-4)*4($29) + lw $20,(14-5)*4($29) + lw $19,(14-6)*4($29) + lw $18,(14-7)*4($29) + lw $17,(14-8)*4($29) + lw $16,(14-9)*4($29) + jr $31 + addu $29,14*4 +.end bn_mul_mont_internal +.rdata +.asciiz "Montgomery Multiplication for MIPS, CRYPTOGAMS by " diff -urN a/deps/openssl/config/archs/linux-mipsel/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-mipsel/asm/crypto/buildinf.h --- a/deps/openssl/config/archs/linux-mipsel/asm/crypto/buildinf.h 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mipsel/asm/crypto/buildinf.h 2019-12-25 13:49:19.988298795 +0900 @@ -0,0 +1,33 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-mips32" +#define DATE "built on: Thu Feb 28 07:51:38 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','m','a', + 'b','i','=','3','2',' ','-','m','i','p','s','2',' ','-','W','a', + ',','-','-','n','o','e','x','e','c','s','t','a','c','k',' ','-', + 'W','a','l','l',' ','-','O','3',' ','-','D','O','P','E','N','S', + 'S','L','_','U','S','E','_','N','O','D','E','L','E','T','E',' ', + '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', + 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','M', + 'O','N','T',' ','-','D','S','H','A','1','_','A','S','M',' ','-', + 'D','S','H','A','2','5','6','_','A','S','M',' ','-','D','A','E', + 'S','_','A','S','M',' ','-','D','N','D','E','B','U','G','\0' +}; diff -urN a/deps/openssl/config/archs/linux-mipsel/asm/crypto/include/internal/bn_conf.h b/deps/openssl/config/archs/linux-mipsel/asm/crypto/include/internal/bn_conf.h --- a/deps/openssl/config/archs/linux-mipsel/asm/crypto/include/internal/bn_conf.h 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mipsel/asm/crypto/include/internal/bn_conf.h 2019-12-25 13:49:19.988298795 +0900 @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#undef SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#define THIRTY_TWO_BIT + +#endif diff -urN a/deps/openssl/config/archs/linux-mipsel/asm/crypto/include/internal/dso_conf.h b/deps/openssl/config/archs/linux-mipsel/asm/crypto/include/internal/dso_conf.h --- a/deps/openssl/config/archs/linux-mipsel/asm/crypto/include/internal/dso_conf.h 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mipsel/asm/crypto/include/internal/dso_conf.h 2019-12-25 13:49:19.988298795 +0900 @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff -urN a/deps/openssl/config/archs/linux-mipsel/asm/crypto/sha/sha1-mips.S b/deps/openssl/config/archs/linux-mipsel/asm/crypto/sha/sha1-mips.S --- a/deps/openssl/config/archs/linux-mipsel/asm/crypto/sha/sha1-mips.S 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mipsel/asm/crypto/sha/sha1-mips.S 2019-12-25 13:49:19.988298795 +0900 @@ -0,0 +1,3039 @@ +#include "mips_arch.h" + +.text + +.set noat +.set noreorder +.align 5 +.globl sha1_block_data_order +.ent sha1_block_data_order +sha1_block_data_order: + .frame $29,16*4,$31 + .mask 0xc0ff0000,-4 + .set noreorder + subu $29,16*4 + sw $31,(16-1)*4($29) + sw $30,(16-2)*4($29) + sw $23,(16-3)*4($29) + sw $22,(16-4)*4($29) + sw $21,(16-5)*4($29) + sw $20,(16-6)*4($29) + sw $19,(16-7)*4($29) + sw $18,(16-8)*4($29) + sw $17,(16-9)*4($29) + sw $16,(16-10)*4($29) + sll $6,6 + addu $6,$5 + sw $6,0($29) + lw $1,0($4) + lw $2,4($4) + lw $3,8($4) + lw $7,12($4) + b .Loop + lw $24,16($4) +.align 4 +.Loop: + .set reorder +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lui $31,0x5a82 + lw $8,($5) + ori $31,0x7999 # K_00_19 +#else + lwl $8,3($5) + lui $31,0x5a82 + lwr $8,0($5) + ori $31,0x7999 # K_00_19 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $8,$8 # byte swap(0) + rotr $8,$8,16 +#else + srl $25,$8,24 # byte swap(0) + srl $6,$8,8 + andi $30,$8,0xFF00 + sll $8,$8,24 + andi $6,0xFF00 + sll $30,$30,8 + or $8,$25 + or $6,$30 + or $8,$6 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $24,$31 # 0 + xor $25,$3,$7 + rotr $6,$1,27 + and $25,$2 + addu $24,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $9,1*4($5) +#else + lwl $9,1*4+3($5) + lwr $9,1*4+0($5) +#endif + xor $25,$7 + addu $24,$8 + rotr $2,$2,2 + addu $24,$25 +#else + lwl $9,1*4+3($5) + sll $25,$1,5 # 0 + addu $24,$31 + lwr $9,1*4+0($5) + srl $6,$1,27 + addu $24,$25 + xor $25,$3,$7 + addu $24,$6 + sll $30,$2,30 + and $25,$2 + srl $2,$2,2 + xor $25,$7 + addu $24,$8 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $9,$9 # byte swap(1) + rotr $9,$9,16 +#else + srl $25,$9,24 # byte swap(1) + srl $6,$9,8 + andi $30,$9,0xFF00 + sll $9,$9,24 + andi $6,0xFF00 + sll $30,$30,8 + or $9,$25 + or $6,$30 + or $9,$6 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $7,$31 # 1 + xor $25,$2,$3 + rotr $6,$24,27 + and $25,$1 + addu $7,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $10,2*4($5) +#else + lwl $10,2*4+3($5) + lwr $10,2*4+0($5) +#endif + xor $25,$3 + addu $7,$9 + rotr $1,$1,2 + addu $7,$25 +#else + lwl $10,2*4+3($5) + sll $25,$24,5 # 1 + addu $7,$31 + lwr $10,2*4+0($5) + srl $6,$24,27 + addu $7,$25 + xor $25,$2,$3 + addu $7,$6 + sll $30,$1,30 + and $25,$1 + srl $1,$1,2 + xor $25,$3 + addu $7,$9 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $10,$10 # byte swap(2) + rotr $10,$10,16 +#else + srl $25,$10,24 # byte swap(2) + srl $6,$10,8 + andi $30,$10,0xFF00 + sll $10,$10,24 + andi $6,0xFF00 + sll $30,$30,8 + or $10,$25 + or $6,$30 + or $10,$6 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $3,$31 # 2 + xor $25,$1,$2 + rotr $6,$7,27 + and $25,$24 + addu $3,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $11,3*4($5) +#else + lwl $11,3*4+3($5) + lwr $11,3*4+0($5) +#endif + xor $25,$2 + addu $3,$10 + rotr $24,$24,2 + addu $3,$25 +#else + lwl $11,3*4+3($5) + sll $25,$7,5 # 2 + addu $3,$31 + lwr $11,3*4+0($5) + srl $6,$7,27 + addu $3,$25 + xor $25,$1,$2 + addu $3,$6 + sll $30,$24,30 + and $25,$24 + srl $24,$24,2 + xor $25,$2 + addu $3,$10 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $11,$11 # byte swap(3) + rotr $11,$11,16 +#else + srl $25,$11,24 # byte swap(3) + srl $6,$11,8 + andi $30,$11,0xFF00 + sll $11,$11,24 + andi $6,0xFF00 + sll $30,$30,8 + or $11,$25 + or $6,$30 + or $11,$6 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $2,$31 # 3 + xor $25,$24,$1 + rotr $6,$3,27 + and $25,$7 + addu $2,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $12,4*4($5) +#else + lwl $12,4*4+3($5) + lwr $12,4*4+0($5) +#endif + xor $25,$1 + addu $2,$11 + rotr $7,$7,2 + addu $2,$25 +#else + lwl $12,4*4+3($5) + sll $25,$3,5 # 3 + addu $2,$31 + lwr $12,4*4+0($5) + srl $6,$3,27 + addu $2,$25 + xor $25,$24,$1 + addu $2,$6 + sll $30,$7,30 + and $25,$7 + srl $7,$7,2 + xor $25,$1 + addu $2,$11 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $12,$12 # byte swap(4) + rotr $12,$12,16 +#else + srl $25,$12,24 # byte swap(4) + srl $6,$12,8 + andi $30,$12,0xFF00 + sll $12,$12,24 + andi $6,0xFF00 + sll $30,$30,8 + or $12,$25 + or $6,$30 + or $12,$6 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $1,$31 # 4 + xor $25,$7,$24 + rotr $6,$2,27 + and $25,$3 + addu $1,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $13,5*4($5) +#else + lwl $13,5*4+3($5) + lwr $13,5*4+0($5) +#endif + xor $25,$24 + addu $1,$12 + rotr $3,$3,2 + addu $1,$25 +#else + lwl $13,5*4+3($5) + sll $25,$2,5 # 4 + addu $1,$31 + lwr $13,5*4+0($5) + srl $6,$2,27 + addu $1,$25 + xor $25,$7,$24 + addu $1,$6 + sll $30,$3,30 + and $25,$3 + srl $3,$3,2 + xor $25,$24 + addu $1,$12 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $13,$13 # byte swap(5) + rotr $13,$13,16 +#else + srl $25,$13,24 # byte swap(5) + srl $6,$13,8 + andi $30,$13,0xFF00 + sll $13,$13,24 + andi $6,0xFF00 + sll $30,$30,8 + or $13,$25 + or $6,$30 + or $13,$6 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $24,$31 # 5 + xor $25,$3,$7 + rotr $6,$1,27 + and $25,$2 + addu $24,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $14,6*4($5) +#else + lwl $14,6*4+3($5) + lwr $14,6*4+0($5) +#endif + xor $25,$7 + addu $24,$13 + rotr $2,$2,2 + addu $24,$25 +#else + lwl $14,6*4+3($5) + sll $25,$1,5 # 5 + addu $24,$31 + lwr $14,6*4+0($5) + srl $6,$1,27 + addu $24,$25 + xor $25,$3,$7 + addu $24,$6 + sll $30,$2,30 + and $25,$2 + srl $2,$2,2 + xor $25,$7 + addu $24,$13 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $14,$14 # byte swap(6) + rotr $14,$14,16 +#else + srl $25,$14,24 # byte swap(6) + srl $6,$14,8 + andi $30,$14,0xFF00 + sll $14,$14,24 + andi $6,0xFF00 + sll $30,$30,8 + or $14,$25 + or $6,$30 + or $14,$6 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $7,$31 # 6 + xor $25,$2,$3 + rotr $6,$24,27 + and $25,$1 + addu $7,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $15,7*4($5) +#else + lwl $15,7*4+3($5) + lwr $15,7*4+0($5) +#endif + xor $25,$3 + addu $7,$14 + rotr $1,$1,2 + addu $7,$25 +#else + lwl $15,7*4+3($5) + sll $25,$24,5 # 6 + addu $7,$31 + lwr $15,7*4+0($5) + srl $6,$24,27 + addu $7,$25 + xor $25,$2,$3 + addu $7,$6 + sll $30,$1,30 + and $25,$1 + srl $1,$1,2 + xor $25,$3 + addu $7,$14 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $15,$15 # byte swap(7) + rotr $15,$15,16 +#else + srl $25,$15,24 # byte swap(7) + srl $6,$15,8 + andi $30,$15,0xFF00 + sll $15,$15,24 + andi $6,0xFF00 + sll $30,$30,8 + or $15,$25 + or $6,$30 + or $15,$6 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $3,$31 # 7 + xor $25,$1,$2 + rotr $6,$7,27 + and $25,$24 + addu $3,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $16,8*4($5) +#else + lwl $16,8*4+3($5) + lwr $16,8*4+0($5) +#endif + xor $25,$2 + addu $3,$15 + rotr $24,$24,2 + addu $3,$25 +#else + lwl $16,8*4+3($5) + sll $25,$7,5 # 7 + addu $3,$31 + lwr $16,8*4+0($5) + srl $6,$7,27 + addu $3,$25 + xor $25,$1,$2 + addu $3,$6 + sll $30,$24,30 + and $25,$24 + srl $24,$24,2 + xor $25,$2 + addu $3,$15 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $16,$16 # byte swap(8) + rotr $16,$16,16 +#else + srl $25,$16,24 # byte swap(8) + srl $6,$16,8 + andi $30,$16,0xFF00 + sll $16,$16,24 + andi $6,0xFF00 + sll $30,$30,8 + or $16,$25 + or $6,$30 + or $16,$6 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $2,$31 # 8 + xor $25,$24,$1 + rotr $6,$3,27 + and $25,$7 + addu $2,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $17,9*4($5) +#else + lwl $17,9*4+3($5) + lwr $17,9*4+0($5) +#endif + xor $25,$1 + addu $2,$16 + rotr $7,$7,2 + addu $2,$25 +#else + lwl $17,9*4+3($5) + sll $25,$3,5 # 8 + addu $2,$31 + lwr $17,9*4+0($5) + srl $6,$3,27 + addu $2,$25 + xor $25,$24,$1 + addu $2,$6 + sll $30,$7,30 + and $25,$7 + srl $7,$7,2 + xor $25,$1 + addu $2,$16 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $17,$17 # byte swap(9) + rotr $17,$17,16 +#else + srl $25,$17,24 # byte swap(9) + srl $6,$17,8 + andi $30,$17,0xFF00 + sll $17,$17,24 + andi $6,0xFF00 + sll $30,$30,8 + or $17,$25 + or $6,$30 + or $17,$6 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $1,$31 # 9 + xor $25,$7,$24 + rotr $6,$2,27 + and $25,$3 + addu $1,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $18,10*4($5) +#else + lwl $18,10*4+3($5) + lwr $18,10*4+0($5) +#endif + xor $25,$24 + addu $1,$17 + rotr $3,$3,2 + addu $1,$25 +#else + lwl $18,10*4+3($5) + sll $25,$2,5 # 9 + addu $1,$31 + lwr $18,10*4+0($5) + srl $6,$2,27 + addu $1,$25 + xor $25,$7,$24 + addu $1,$6 + sll $30,$3,30 + and $25,$3 + srl $3,$3,2 + xor $25,$24 + addu $1,$17 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $18,$18 # byte swap(10) + rotr $18,$18,16 +#else + srl $25,$18,24 # byte swap(10) + srl $6,$18,8 + andi $30,$18,0xFF00 + sll $18,$18,24 + andi $6,0xFF00 + sll $30,$30,8 + or $18,$25 + or $6,$30 + or $18,$6 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $24,$31 # 10 + xor $25,$3,$7 + rotr $6,$1,27 + and $25,$2 + addu $24,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $19,11*4($5) +#else + lwl $19,11*4+3($5) + lwr $19,11*4+0($5) +#endif + xor $25,$7 + addu $24,$18 + rotr $2,$2,2 + addu $24,$25 +#else + lwl $19,11*4+3($5) + sll $25,$1,5 # 10 + addu $24,$31 + lwr $19,11*4+0($5) + srl $6,$1,27 + addu $24,$25 + xor $25,$3,$7 + addu $24,$6 + sll $30,$2,30 + and $25,$2 + srl $2,$2,2 + xor $25,$7 + addu $24,$18 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $19,$19 # byte swap(11) + rotr $19,$19,16 +#else + srl $25,$19,24 # byte swap(11) + srl $6,$19,8 + andi $30,$19,0xFF00 + sll $19,$19,24 + andi $6,0xFF00 + sll $30,$30,8 + or $19,$25 + or $6,$30 + or $19,$6 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $7,$31 # 11 + xor $25,$2,$3 + rotr $6,$24,27 + and $25,$1 + addu $7,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $20,12*4($5) +#else + lwl $20,12*4+3($5) + lwr $20,12*4+0($5) +#endif + xor $25,$3 + addu $7,$19 + rotr $1,$1,2 + addu $7,$25 +#else + lwl $20,12*4+3($5) + sll $25,$24,5 # 11 + addu $7,$31 + lwr $20,12*4+0($5) + srl $6,$24,27 + addu $7,$25 + xor $25,$2,$3 + addu $7,$6 + sll $30,$1,30 + and $25,$1 + srl $1,$1,2 + xor $25,$3 + addu $7,$19 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $20,$20 # byte swap(12) + rotr $20,$20,16 +#else + srl $25,$20,24 # byte swap(12) + srl $6,$20,8 + andi $30,$20,0xFF00 + sll $20,$20,24 + andi $6,0xFF00 + sll $30,$30,8 + or $20,$25 + or $6,$30 + or $20,$6 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $3,$31 # 12 + xor $25,$1,$2 + rotr $6,$7,27 + and $25,$24 + addu $3,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $21,13*4($5) +#else + lwl $21,13*4+3($5) + lwr $21,13*4+0($5) +#endif + xor $25,$2 + addu $3,$20 + rotr $24,$24,2 + addu $3,$25 +#else + lwl $21,13*4+3($5) + sll $25,$7,5 # 12 + addu $3,$31 + lwr $21,13*4+0($5) + srl $6,$7,27 + addu $3,$25 + xor $25,$1,$2 + addu $3,$6 + sll $30,$24,30 + and $25,$24 + srl $24,$24,2 + xor $25,$2 + addu $3,$20 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $21,$21 # byte swap(13) + rotr $21,$21,16 +#else + srl $25,$21,24 # byte swap(13) + srl $6,$21,8 + andi $30,$21,0xFF00 + sll $21,$21,24 + andi $6,0xFF00 + sll $30,$30,8 + or $21,$25 + or $6,$30 + or $21,$6 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $2,$31 # 13 + xor $25,$24,$1 + rotr $6,$3,27 + and $25,$7 + addu $2,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $22,14*4($5) +#else + lwl $22,14*4+3($5) + lwr $22,14*4+0($5) +#endif + xor $25,$1 + addu $2,$21 + rotr $7,$7,2 + addu $2,$25 +#else + lwl $22,14*4+3($5) + sll $25,$3,5 # 13 + addu $2,$31 + lwr $22,14*4+0($5) + srl $6,$3,27 + addu $2,$25 + xor $25,$24,$1 + addu $2,$6 + sll $30,$7,30 + and $25,$7 + srl $7,$7,2 + xor $25,$1 + addu $2,$21 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $22,$22 # byte swap(14) + rotr $22,$22,16 +#else + srl $25,$22,24 # byte swap(14) + srl $6,$22,8 + andi $30,$22,0xFF00 + sll $22,$22,24 + andi $6,0xFF00 + sll $30,$30,8 + or $22,$25 + or $6,$30 + or $22,$6 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $1,$31 # 14 + xor $25,$7,$24 + rotr $6,$2,27 + and $25,$3 + addu $1,$6 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $23,15*4($5) +#else + lwl $23,15*4+3($5) + lwr $23,15*4+0($5) +#endif + xor $25,$24 + addu $1,$22 + rotr $3,$3,2 + addu $1,$25 +#else + lwl $23,15*4+3($5) + sll $25,$2,5 # 14 + addu $1,$31 + lwr $23,15*4+0($5) + srl $6,$2,27 + addu $1,$25 + xor $25,$7,$24 + addu $1,$6 + sll $30,$3,30 + and $25,$3 + srl $3,$3,2 + xor $25,$24 + addu $1,$22 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $23,$23 # byte swap(15) + rotr $23,$23,16 +#else + srl $25,$23,24 # byte swap(15) + srl $6,$23,8 + andi $30,$23,0xFF00 + sll $23,$23,24 + andi $6,0xFF00 + sll $30,$30,8 + or $23,$25 + or $23,$6 + or $23,$30 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $24,$31 # 15 + xor $8,$10 + xor $25,$3,$7 + rotr $6,$1,27 + xor $8,$16 + and $25,$2 + addu $24,$6 + xor $8,$21 + xor $25,$7 + addu $24,$23 + rotr $8,$8,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $8,$10 + sll $25,$1,5 # 15 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $8,$16 + xor $25,$3,$7 + addu $24,$6 + xor $8,$21 + sll $30,$2,30 + and $25,$2 + srl $6,$8,31 + addu $8,$8 + srl $2,$2,2 + xor $25,$7 + or $8,$6 + addu $24,$23 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $7,$31 # 16 + xor $9,$11 + xor $25,$2,$3 + rotr $6,$24,27 + xor $9,$17 + and $25,$1 + addu $7,$6 + xor $9,$22 + xor $25,$3 + addu $7,$8 + rotr $9,$9,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $9,$11 + sll $25,$24,5 # 16 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $9,$17 + xor $25,$2,$3 + addu $7,$6 + xor $9,$22 + sll $30,$1,30 + and $25,$1 + srl $6,$9,31 + addu $9,$9 + srl $1,$1,2 + xor $25,$3 + or $9,$6 + addu $7,$8 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $3,$31 # 17 + xor $10,$12 + xor $25,$1,$2 + rotr $6,$7,27 + xor $10,$18 + and $25,$24 + addu $3,$6 + xor $10,$23 + xor $25,$2 + addu $3,$9 + rotr $10,$10,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $10,$12 + sll $25,$7,5 # 17 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $10,$18 + xor $25,$1,$2 + addu $3,$6 + xor $10,$23 + sll $30,$24,30 + and $25,$24 + srl $6,$10,31 + addu $10,$10 + srl $24,$24,2 + xor $25,$2 + or $10,$6 + addu $3,$9 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $2,$31 # 18 + xor $11,$13 + xor $25,$24,$1 + rotr $6,$3,27 + xor $11,$19 + and $25,$7 + addu $2,$6 + xor $11,$8 + xor $25,$1 + addu $2,$10 + rotr $11,$11,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $11,$13 + sll $25,$3,5 # 18 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $11,$19 + xor $25,$24,$1 + addu $2,$6 + xor $11,$8 + sll $30,$7,30 + and $25,$7 + srl $6,$11,31 + addu $11,$11 + srl $7,$7,2 + xor $25,$1 + or $11,$6 + addu $2,$10 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $1,$31 # 19 + xor $12,$14 + xor $25,$7,$24 + rotr $6,$2,27 + xor $12,$20 + and $25,$3 + addu $1,$6 + xor $12,$9 + xor $25,$24 + addu $1,$11 + rotr $12,$12,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $12,$14 + sll $25,$2,5 # 19 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $12,$20 + xor $25,$7,$24 + addu $1,$6 + xor $12,$9 + sll $30,$3,30 + and $25,$3 + srl $6,$12,31 + addu $12,$12 + srl $3,$3,2 + xor $25,$24 + or $12,$6 + addu $1,$11 + or $3,$30 + addu $1,$25 +#endif + lui $31,0x6ed9 + ori $31,0xeba1 # K_20_39 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $13,$15 + addu $24,$31 # 20 + rotr $6,$1,27 + xor $13,$21 + xor $25,$3,$7 + addu $24,$6 + xor $13,$10 + xor $25,$2 + addu $24,$12 + rotr $13,$13,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $13,$15 + sll $25,$1,5 # 20 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $13,$21 + xor $25,$3,$7 + addu $24,$6 + xor $13,$10 + sll $30,$2,30 + xor $25,$2 + srl $6,$13,31 + addu $13,$13 + srl $2,$2,2 + addu $24,$12 + or $13,$6 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $14,$16 + addu $7,$31 # 21 + rotr $6,$24,27 + xor $14,$22 + xor $25,$2,$3 + addu $7,$6 + xor $14,$11 + xor $25,$1 + addu $7,$13 + rotr $14,$14,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $14,$16 + sll $25,$24,5 # 21 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $14,$22 + xor $25,$2,$3 + addu $7,$6 + xor $14,$11 + sll $30,$1,30 + xor $25,$1 + srl $6,$14,31 + addu $14,$14 + srl $1,$1,2 + addu $7,$13 + or $14,$6 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $15,$17 + addu $3,$31 # 22 + rotr $6,$7,27 + xor $15,$23 + xor $25,$1,$2 + addu $3,$6 + xor $15,$12 + xor $25,$24 + addu $3,$14 + rotr $15,$15,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $15,$17 + sll $25,$7,5 # 22 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $15,$23 + xor $25,$1,$2 + addu $3,$6 + xor $15,$12 + sll $30,$24,30 + xor $25,$24 + srl $6,$15,31 + addu $15,$15 + srl $24,$24,2 + addu $3,$14 + or $15,$6 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $16,$18 + addu $2,$31 # 23 + rotr $6,$3,27 + xor $16,$8 + xor $25,$24,$1 + addu $2,$6 + xor $16,$13 + xor $25,$7 + addu $2,$15 + rotr $16,$16,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $16,$18 + sll $25,$3,5 # 23 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $16,$8 + xor $25,$24,$1 + addu $2,$6 + xor $16,$13 + sll $30,$7,30 + xor $25,$7 + srl $6,$16,31 + addu $16,$16 + srl $7,$7,2 + addu $2,$15 + or $16,$6 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $17,$19 + addu $1,$31 # 24 + rotr $6,$2,27 + xor $17,$9 + xor $25,$7,$24 + addu $1,$6 + xor $17,$14 + xor $25,$3 + addu $1,$16 + rotr $17,$17,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $17,$19 + sll $25,$2,5 # 24 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $17,$9 + xor $25,$7,$24 + addu $1,$6 + xor $17,$14 + sll $30,$3,30 + xor $25,$3 + srl $6,$17,31 + addu $17,$17 + srl $3,$3,2 + addu $1,$16 + or $17,$6 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $18,$20 + addu $24,$31 # 25 + rotr $6,$1,27 + xor $18,$10 + xor $25,$3,$7 + addu $24,$6 + xor $18,$15 + xor $25,$2 + addu $24,$17 + rotr $18,$18,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $18,$20 + sll $25,$1,5 # 25 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $18,$10 + xor $25,$3,$7 + addu $24,$6 + xor $18,$15 + sll $30,$2,30 + xor $25,$2 + srl $6,$18,31 + addu $18,$18 + srl $2,$2,2 + addu $24,$17 + or $18,$6 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $19,$21 + addu $7,$31 # 26 + rotr $6,$24,27 + xor $19,$11 + xor $25,$2,$3 + addu $7,$6 + xor $19,$16 + xor $25,$1 + addu $7,$18 + rotr $19,$19,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $19,$21 + sll $25,$24,5 # 26 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $19,$11 + xor $25,$2,$3 + addu $7,$6 + xor $19,$16 + sll $30,$1,30 + xor $25,$1 + srl $6,$19,31 + addu $19,$19 + srl $1,$1,2 + addu $7,$18 + or $19,$6 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $20,$22 + addu $3,$31 # 27 + rotr $6,$7,27 + xor $20,$12 + xor $25,$1,$2 + addu $3,$6 + xor $20,$17 + xor $25,$24 + addu $3,$19 + rotr $20,$20,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $20,$22 + sll $25,$7,5 # 27 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $20,$12 + xor $25,$1,$2 + addu $3,$6 + xor $20,$17 + sll $30,$24,30 + xor $25,$24 + srl $6,$20,31 + addu $20,$20 + srl $24,$24,2 + addu $3,$19 + or $20,$6 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $21,$23 + addu $2,$31 # 28 + rotr $6,$3,27 + xor $21,$13 + xor $25,$24,$1 + addu $2,$6 + xor $21,$18 + xor $25,$7 + addu $2,$20 + rotr $21,$21,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $21,$23 + sll $25,$3,5 # 28 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $21,$13 + xor $25,$24,$1 + addu $2,$6 + xor $21,$18 + sll $30,$7,30 + xor $25,$7 + srl $6,$21,31 + addu $21,$21 + srl $7,$7,2 + addu $2,$20 + or $21,$6 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $22,$8 + addu $1,$31 # 29 + rotr $6,$2,27 + xor $22,$14 + xor $25,$7,$24 + addu $1,$6 + xor $22,$19 + xor $25,$3 + addu $1,$21 + rotr $22,$22,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $22,$8 + sll $25,$2,5 # 29 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $22,$14 + xor $25,$7,$24 + addu $1,$6 + xor $22,$19 + sll $30,$3,30 + xor $25,$3 + srl $6,$22,31 + addu $22,$22 + srl $3,$3,2 + addu $1,$21 + or $22,$6 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $23,$9 + addu $24,$31 # 30 + rotr $6,$1,27 + xor $23,$15 + xor $25,$3,$7 + addu $24,$6 + xor $23,$20 + xor $25,$2 + addu $24,$22 + rotr $23,$23,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $23,$9 + sll $25,$1,5 # 30 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $23,$15 + xor $25,$3,$7 + addu $24,$6 + xor $23,$20 + sll $30,$2,30 + xor $25,$2 + srl $6,$23,31 + addu $23,$23 + srl $2,$2,2 + addu $24,$22 + or $23,$6 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $8,$10 + addu $7,$31 # 31 + rotr $6,$24,27 + xor $8,$16 + xor $25,$2,$3 + addu $7,$6 + xor $8,$21 + xor $25,$1 + addu $7,$23 + rotr $8,$8,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $8,$10 + sll $25,$24,5 # 31 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $8,$16 + xor $25,$2,$3 + addu $7,$6 + xor $8,$21 + sll $30,$1,30 + xor $25,$1 + srl $6,$8,31 + addu $8,$8 + srl $1,$1,2 + addu $7,$23 + or $8,$6 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $9,$11 + addu $3,$31 # 32 + rotr $6,$7,27 + xor $9,$17 + xor $25,$1,$2 + addu $3,$6 + xor $9,$22 + xor $25,$24 + addu $3,$8 + rotr $9,$9,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $9,$11 + sll $25,$7,5 # 32 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $9,$17 + xor $25,$1,$2 + addu $3,$6 + xor $9,$22 + sll $30,$24,30 + xor $25,$24 + srl $6,$9,31 + addu $9,$9 + srl $24,$24,2 + addu $3,$8 + or $9,$6 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $10,$12 + addu $2,$31 # 33 + rotr $6,$3,27 + xor $10,$18 + xor $25,$24,$1 + addu $2,$6 + xor $10,$23 + xor $25,$7 + addu $2,$9 + rotr $10,$10,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $10,$12 + sll $25,$3,5 # 33 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $10,$18 + xor $25,$24,$1 + addu $2,$6 + xor $10,$23 + sll $30,$7,30 + xor $25,$7 + srl $6,$10,31 + addu $10,$10 + srl $7,$7,2 + addu $2,$9 + or $10,$6 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $11,$13 + addu $1,$31 # 34 + rotr $6,$2,27 + xor $11,$19 + xor $25,$7,$24 + addu $1,$6 + xor $11,$8 + xor $25,$3 + addu $1,$10 + rotr $11,$11,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $11,$13 + sll $25,$2,5 # 34 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $11,$19 + xor $25,$7,$24 + addu $1,$6 + xor $11,$8 + sll $30,$3,30 + xor $25,$3 + srl $6,$11,31 + addu $11,$11 + srl $3,$3,2 + addu $1,$10 + or $11,$6 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $12,$14 + addu $24,$31 # 35 + rotr $6,$1,27 + xor $12,$20 + xor $25,$3,$7 + addu $24,$6 + xor $12,$9 + xor $25,$2 + addu $24,$11 + rotr $12,$12,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $12,$14 + sll $25,$1,5 # 35 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $12,$20 + xor $25,$3,$7 + addu $24,$6 + xor $12,$9 + sll $30,$2,30 + xor $25,$2 + srl $6,$12,31 + addu $12,$12 + srl $2,$2,2 + addu $24,$11 + or $12,$6 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $13,$15 + addu $7,$31 # 36 + rotr $6,$24,27 + xor $13,$21 + xor $25,$2,$3 + addu $7,$6 + xor $13,$10 + xor $25,$1 + addu $7,$12 + rotr $13,$13,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $13,$15 + sll $25,$24,5 # 36 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $13,$21 + xor $25,$2,$3 + addu $7,$6 + xor $13,$10 + sll $30,$1,30 + xor $25,$1 + srl $6,$13,31 + addu $13,$13 + srl $1,$1,2 + addu $7,$12 + or $13,$6 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $14,$16 + addu $3,$31 # 37 + rotr $6,$7,27 + xor $14,$22 + xor $25,$1,$2 + addu $3,$6 + xor $14,$11 + xor $25,$24 + addu $3,$13 + rotr $14,$14,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $14,$16 + sll $25,$7,5 # 37 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $14,$22 + xor $25,$1,$2 + addu $3,$6 + xor $14,$11 + sll $30,$24,30 + xor $25,$24 + srl $6,$14,31 + addu $14,$14 + srl $24,$24,2 + addu $3,$13 + or $14,$6 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $15,$17 + addu $2,$31 # 38 + rotr $6,$3,27 + xor $15,$23 + xor $25,$24,$1 + addu $2,$6 + xor $15,$12 + xor $25,$7 + addu $2,$14 + rotr $15,$15,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $15,$17 + sll $25,$3,5 # 38 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $15,$23 + xor $25,$24,$1 + addu $2,$6 + xor $15,$12 + sll $30,$7,30 + xor $25,$7 + srl $6,$15,31 + addu $15,$15 + srl $7,$7,2 + addu $2,$14 + or $15,$6 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $16,$18 + addu $1,$31 # 39 + rotr $6,$2,27 + xor $16,$8 + xor $25,$7,$24 + addu $1,$6 + xor $16,$13 + xor $25,$3 + addu $1,$15 + rotr $16,$16,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $16,$18 + sll $25,$2,5 # 39 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $16,$8 + xor $25,$7,$24 + addu $1,$6 + xor $16,$13 + sll $30,$3,30 + xor $25,$3 + srl $6,$16,31 + addu $16,$16 + srl $3,$3,2 + addu $1,$15 + or $16,$6 + or $3,$30 + addu $1,$25 +#endif + lui $31,0x8f1b + ori $31,0xbcdc # K_40_59 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $24,$31 # 40 + and $25,$3,$7 + xor $17,$19 + rotr $6,$1,27 + addu $24,$25 + xor $17,$9 + xor $25,$3,$7 + addu $24,$6 + xor $17,$14 + and $25,$2 + addu $24,$16 + rotr $17,$17,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $17,$19 + sll $25,$1,5 # 40 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $17,$9 + and $25,$3,$7 + addu $24,$6 + xor $17,$14 + sll $30,$2,30 + addu $24,$25 + srl $6,$17,31 + xor $25,$3,$7 + addu $17,$17 + and $25,$2 + srl $2,$2,2 + or $17,$6 + addu $24,$16 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $7,$31 # 41 + and $25,$2,$3 + xor $18,$20 + rotr $6,$24,27 + addu $7,$25 + xor $18,$10 + xor $25,$2,$3 + addu $7,$6 + xor $18,$15 + and $25,$1 + addu $7,$17 + rotr $18,$18,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $18,$20 + sll $25,$24,5 # 41 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $18,$10 + and $25,$2,$3 + addu $7,$6 + xor $18,$15 + sll $30,$1,30 + addu $7,$25 + srl $6,$18,31 + xor $25,$2,$3 + addu $18,$18 + and $25,$1 + srl $1,$1,2 + or $18,$6 + addu $7,$17 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $3,$31 # 42 + and $25,$1,$2 + xor $19,$21 + rotr $6,$7,27 + addu $3,$25 + xor $19,$11 + xor $25,$1,$2 + addu $3,$6 + xor $19,$16 + and $25,$24 + addu $3,$18 + rotr $19,$19,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $19,$21 + sll $25,$7,5 # 42 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $19,$11 + and $25,$1,$2 + addu $3,$6 + xor $19,$16 + sll $30,$24,30 + addu $3,$25 + srl $6,$19,31 + xor $25,$1,$2 + addu $19,$19 + and $25,$24 + srl $24,$24,2 + or $19,$6 + addu $3,$18 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $2,$31 # 43 + and $25,$24,$1 + xor $20,$22 + rotr $6,$3,27 + addu $2,$25 + xor $20,$12 + xor $25,$24,$1 + addu $2,$6 + xor $20,$17 + and $25,$7 + addu $2,$19 + rotr $20,$20,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $20,$22 + sll $25,$3,5 # 43 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $20,$12 + and $25,$24,$1 + addu $2,$6 + xor $20,$17 + sll $30,$7,30 + addu $2,$25 + srl $6,$20,31 + xor $25,$24,$1 + addu $20,$20 + and $25,$7 + srl $7,$7,2 + or $20,$6 + addu $2,$19 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $1,$31 # 44 + and $25,$7,$24 + xor $21,$23 + rotr $6,$2,27 + addu $1,$25 + xor $21,$13 + xor $25,$7,$24 + addu $1,$6 + xor $21,$18 + and $25,$3 + addu $1,$20 + rotr $21,$21,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $21,$23 + sll $25,$2,5 # 44 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $21,$13 + and $25,$7,$24 + addu $1,$6 + xor $21,$18 + sll $30,$3,30 + addu $1,$25 + srl $6,$21,31 + xor $25,$7,$24 + addu $21,$21 + and $25,$3 + srl $3,$3,2 + or $21,$6 + addu $1,$20 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $24,$31 # 45 + and $25,$3,$7 + xor $22,$8 + rotr $6,$1,27 + addu $24,$25 + xor $22,$14 + xor $25,$3,$7 + addu $24,$6 + xor $22,$19 + and $25,$2 + addu $24,$21 + rotr $22,$22,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $22,$8 + sll $25,$1,5 # 45 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $22,$14 + and $25,$3,$7 + addu $24,$6 + xor $22,$19 + sll $30,$2,30 + addu $24,$25 + srl $6,$22,31 + xor $25,$3,$7 + addu $22,$22 + and $25,$2 + srl $2,$2,2 + or $22,$6 + addu $24,$21 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $7,$31 # 46 + and $25,$2,$3 + xor $23,$9 + rotr $6,$24,27 + addu $7,$25 + xor $23,$15 + xor $25,$2,$3 + addu $7,$6 + xor $23,$20 + and $25,$1 + addu $7,$22 + rotr $23,$23,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $23,$9 + sll $25,$24,5 # 46 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $23,$15 + and $25,$2,$3 + addu $7,$6 + xor $23,$20 + sll $30,$1,30 + addu $7,$25 + srl $6,$23,31 + xor $25,$2,$3 + addu $23,$23 + and $25,$1 + srl $1,$1,2 + or $23,$6 + addu $7,$22 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $3,$31 # 47 + and $25,$1,$2 + xor $8,$10 + rotr $6,$7,27 + addu $3,$25 + xor $8,$16 + xor $25,$1,$2 + addu $3,$6 + xor $8,$21 + and $25,$24 + addu $3,$23 + rotr $8,$8,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $8,$10 + sll $25,$7,5 # 47 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $8,$16 + and $25,$1,$2 + addu $3,$6 + xor $8,$21 + sll $30,$24,30 + addu $3,$25 + srl $6,$8,31 + xor $25,$1,$2 + addu $8,$8 + and $25,$24 + srl $24,$24,2 + or $8,$6 + addu $3,$23 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $2,$31 # 48 + and $25,$24,$1 + xor $9,$11 + rotr $6,$3,27 + addu $2,$25 + xor $9,$17 + xor $25,$24,$1 + addu $2,$6 + xor $9,$22 + and $25,$7 + addu $2,$8 + rotr $9,$9,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $9,$11 + sll $25,$3,5 # 48 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $9,$17 + and $25,$24,$1 + addu $2,$6 + xor $9,$22 + sll $30,$7,30 + addu $2,$25 + srl $6,$9,31 + xor $25,$24,$1 + addu $9,$9 + and $25,$7 + srl $7,$7,2 + or $9,$6 + addu $2,$8 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $1,$31 # 49 + and $25,$7,$24 + xor $10,$12 + rotr $6,$2,27 + addu $1,$25 + xor $10,$18 + xor $25,$7,$24 + addu $1,$6 + xor $10,$23 + and $25,$3 + addu $1,$9 + rotr $10,$10,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $10,$12 + sll $25,$2,5 # 49 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $10,$18 + and $25,$7,$24 + addu $1,$6 + xor $10,$23 + sll $30,$3,30 + addu $1,$25 + srl $6,$10,31 + xor $25,$7,$24 + addu $10,$10 + and $25,$3 + srl $3,$3,2 + or $10,$6 + addu $1,$9 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $24,$31 # 50 + and $25,$3,$7 + xor $11,$13 + rotr $6,$1,27 + addu $24,$25 + xor $11,$19 + xor $25,$3,$7 + addu $24,$6 + xor $11,$8 + and $25,$2 + addu $24,$10 + rotr $11,$11,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $11,$13 + sll $25,$1,5 # 50 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $11,$19 + and $25,$3,$7 + addu $24,$6 + xor $11,$8 + sll $30,$2,30 + addu $24,$25 + srl $6,$11,31 + xor $25,$3,$7 + addu $11,$11 + and $25,$2 + srl $2,$2,2 + or $11,$6 + addu $24,$10 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $7,$31 # 51 + and $25,$2,$3 + xor $12,$14 + rotr $6,$24,27 + addu $7,$25 + xor $12,$20 + xor $25,$2,$3 + addu $7,$6 + xor $12,$9 + and $25,$1 + addu $7,$11 + rotr $12,$12,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $12,$14 + sll $25,$24,5 # 51 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $12,$20 + and $25,$2,$3 + addu $7,$6 + xor $12,$9 + sll $30,$1,30 + addu $7,$25 + srl $6,$12,31 + xor $25,$2,$3 + addu $12,$12 + and $25,$1 + srl $1,$1,2 + or $12,$6 + addu $7,$11 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $3,$31 # 52 + and $25,$1,$2 + xor $13,$15 + rotr $6,$7,27 + addu $3,$25 + xor $13,$21 + xor $25,$1,$2 + addu $3,$6 + xor $13,$10 + and $25,$24 + addu $3,$12 + rotr $13,$13,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $13,$15 + sll $25,$7,5 # 52 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $13,$21 + and $25,$1,$2 + addu $3,$6 + xor $13,$10 + sll $30,$24,30 + addu $3,$25 + srl $6,$13,31 + xor $25,$1,$2 + addu $13,$13 + and $25,$24 + srl $24,$24,2 + or $13,$6 + addu $3,$12 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $2,$31 # 53 + and $25,$24,$1 + xor $14,$16 + rotr $6,$3,27 + addu $2,$25 + xor $14,$22 + xor $25,$24,$1 + addu $2,$6 + xor $14,$11 + and $25,$7 + addu $2,$13 + rotr $14,$14,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $14,$16 + sll $25,$3,5 # 53 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $14,$22 + and $25,$24,$1 + addu $2,$6 + xor $14,$11 + sll $30,$7,30 + addu $2,$25 + srl $6,$14,31 + xor $25,$24,$1 + addu $14,$14 + and $25,$7 + srl $7,$7,2 + or $14,$6 + addu $2,$13 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $1,$31 # 54 + and $25,$7,$24 + xor $15,$17 + rotr $6,$2,27 + addu $1,$25 + xor $15,$23 + xor $25,$7,$24 + addu $1,$6 + xor $15,$12 + and $25,$3 + addu $1,$14 + rotr $15,$15,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $15,$17 + sll $25,$2,5 # 54 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $15,$23 + and $25,$7,$24 + addu $1,$6 + xor $15,$12 + sll $30,$3,30 + addu $1,$25 + srl $6,$15,31 + xor $25,$7,$24 + addu $15,$15 + and $25,$3 + srl $3,$3,2 + or $15,$6 + addu $1,$14 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $24,$31 # 55 + and $25,$3,$7 + xor $16,$18 + rotr $6,$1,27 + addu $24,$25 + xor $16,$8 + xor $25,$3,$7 + addu $24,$6 + xor $16,$13 + and $25,$2 + addu $24,$15 + rotr $16,$16,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $16,$18 + sll $25,$1,5 # 55 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $16,$8 + and $25,$3,$7 + addu $24,$6 + xor $16,$13 + sll $30,$2,30 + addu $24,$25 + srl $6,$16,31 + xor $25,$3,$7 + addu $16,$16 + and $25,$2 + srl $2,$2,2 + or $16,$6 + addu $24,$15 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $7,$31 # 56 + and $25,$2,$3 + xor $17,$19 + rotr $6,$24,27 + addu $7,$25 + xor $17,$9 + xor $25,$2,$3 + addu $7,$6 + xor $17,$14 + and $25,$1 + addu $7,$16 + rotr $17,$17,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $17,$19 + sll $25,$24,5 # 56 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $17,$9 + and $25,$2,$3 + addu $7,$6 + xor $17,$14 + sll $30,$1,30 + addu $7,$25 + srl $6,$17,31 + xor $25,$2,$3 + addu $17,$17 + and $25,$1 + srl $1,$1,2 + or $17,$6 + addu $7,$16 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $3,$31 # 57 + and $25,$1,$2 + xor $18,$20 + rotr $6,$7,27 + addu $3,$25 + xor $18,$10 + xor $25,$1,$2 + addu $3,$6 + xor $18,$15 + and $25,$24 + addu $3,$17 + rotr $18,$18,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $18,$20 + sll $25,$7,5 # 57 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $18,$10 + and $25,$1,$2 + addu $3,$6 + xor $18,$15 + sll $30,$24,30 + addu $3,$25 + srl $6,$18,31 + xor $25,$1,$2 + addu $18,$18 + and $25,$24 + srl $24,$24,2 + or $18,$6 + addu $3,$17 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $2,$31 # 58 + and $25,$24,$1 + xor $19,$21 + rotr $6,$3,27 + addu $2,$25 + xor $19,$11 + xor $25,$24,$1 + addu $2,$6 + xor $19,$16 + and $25,$7 + addu $2,$18 + rotr $19,$19,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $19,$21 + sll $25,$3,5 # 58 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $19,$11 + and $25,$24,$1 + addu $2,$6 + xor $19,$16 + sll $30,$7,30 + addu $2,$25 + srl $6,$19,31 + xor $25,$24,$1 + addu $19,$19 + and $25,$7 + srl $7,$7,2 + or $19,$6 + addu $2,$18 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + addu $1,$31 # 59 + and $25,$7,$24 + xor $20,$22 + rotr $6,$2,27 + addu $1,$25 + xor $20,$12 + xor $25,$7,$24 + addu $1,$6 + xor $20,$17 + and $25,$3 + addu $1,$19 + rotr $20,$20,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $20,$22 + sll $25,$2,5 # 59 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $20,$12 + and $25,$7,$24 + addu $1,$6 + xor $20,$17 + sll $30,$3,30 + addu $1,$25 + srl $6,$20,31 + xor $25,$7,$24 + addu $20,$20 + and $25,$3 + srl $3,$3,2 + or $20,$6 + addu $1,$19 + or $3,$30 + addu $1,$25 +#endif + lui $31,0xca62 + ori $31,0xc1d6 # K_60_79 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $21,$23 + addu $24,$31 # 60 + rotr $6,$1,27 + xor $21,$13 + xor $25,$3,$7 + addu $24,$6 + xor $21,$18 + xor $25,$2 + addu $24,$20 + rotr $21,$21,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $21,$23 + sll $25,$1,5 # 60 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $21,$13 + xor $25,$3,$7 + addu $24,$6 + xor $21,$18 + sll $30,$2,30 + xor $25,$2 + srl $6,$21,31 + addu $21,$21 + srl $2,$2,2 + addu $24,$20 + or $21,$6 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $22,$8 + addu $7,$31 # 61 + rotr $6,$24,27 + xor $22,$14 + xor $25,$2,$3 + addu $7,$6 + xor $22,$19 + xor $25,$1 + addu $7,$21 + rotr $22,$22,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $22,$8 + sll $25,$24,5 # 61 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $22,$14 + xor $25,$2,$3 + addu $7,$6 + xor $22,$19 + sll $30,$1,30 + xor $25,$1 + srl $6,$22,31 + addu $22,$22 + srl $1,$1,2 + addu $7,$21 + or $22,$6 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $23,$9 + addu $3,$31 # 62 + rotr $6,$7,27 + xor $23,$15 + xor $25,$1,$2 + addu $3,$6 + xor $23,$20 + xor $25,$24 + addu $3,$22 + rotr $23,$23,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $23,$9 + sll $25,$7,5 # 62 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $23,$15 + xor $25,$1,$2 + addu $3,$6 + xor $23,$20 + sll $30,$24,30 + xor $25,$24 + srl $6,$23,31 + addu $23,$23 + srl $24,$24,2 + addu $3,$22 + or $23,$6 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $8,$10 + addu $2,$31 # 63 + rotr $6,$3,27 + xor $8,$16 + xor $25,$24,$1 + addu $2,$6 + xor $8,$21 + xor $25,$7 + addu $2,$23 + rotr $8,$8,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $8,$10 + sll $25,$3,5 # 63 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $8,$16 + xor $25,$24,$1 + addu $2,$6 + xor $8,$21 + sll $30,$7,30 + xor $25,$7 + srl $6,$8,31 + addu $8,$8 + srl $7,$7,2 + addu $2,$23 + or $8,$6 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $9,$11 + addu $1,$31 # 64 + rotr $6,$2,27 + xor $9,$17 + xor $25,$7,$24 + addu $1,$6 + xor $9,$22 + xor $25,$3 + addu $1,$8 + rotr $9,$9,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $9,$11 + sll $25,$2,5 # 64 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $9,$17 + xor $25,$7,$24 + addu $1,$6 + xor $9,$22 + sll $30,$3,30 + xor $25,$3 + srl $6,$9,31 + addu $9,$9 + srl $3,$3,2 + addu $1,$8 + or $9,$6 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $10,$12 + addu $24,$31 # 65 + rotr $6,$1,27 + xor $10,$18 + xor $25,$3,$7 + addu $24,$6 + xor $10,$23 + xor $25,$2 + addu $24,$9 + rotr $10,$10,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $10,$12 + sll $25,$1,5 # 65 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $10,$18 + xor $25,$3,$7 + addu $24,$6 + xor $10,$23 + sll $30,$2,30 + xor $25,$2 + srl $6,$10,31 + addu $10,$10 + srl $2,$2,2 + addu $24,$9 + or $10,$6 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $11,$13 + addu $7,$31 # 66 + rotr $6,$24,27 + xor $11,$19 + xor $25,$2,$3 + addu $7,$6 + xor $11,$8 + xor $25,$1 + addu $7,$10 + rotr $11,$11,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $11,$13 + sll $25,$24,5 # 66 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $11,$19 + xor $25,$2,$3 + addu $7,$6 + xor $11,$8 + sll $30,$1,30 + xor $25,$1 + srl $6,$11,31 + addu $11,$11 + srl $1,$1,2 + addu $7,$10 + or $11,$6 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $12,$14 + addu $3,$31 # 67 + rotr $6,$7,27 + xor $12,$20 + xor $25,$1,$2 + addu $3,$6 + xor $12,$9 + xor $25,$24 + addu $3,$11 + rotr $12,$12,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $12,$14 + sll $25,$7,5 # 67 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $12,$20 + xor $25,$1,$2 + addu $3,$6 + xor $12,$9 + sll $30,$24,30 + xor $25,$24 + srl $6,$12,31 + addu $12,$12 + srl $24,$24,2 + addu $3,$11 + or $12,$6 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $13,$15 + addu $2,$31 # 68 + rotr $6,$3,27 + xor $13,$21 + xor $25,$24,$1 + addu $2,$6 + xor $13,$10 + xor $25,$7 + addu $2,$12 + rotr $13,$13,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $13,$15 + sll $25,$3,5 # 68 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $13,$21 + xor $25,$24,$1 + addu $2,$6 + xor $13,$10 + sll $30,$7,30 + xor $25,$7 + srl $6,$13,31 + addu $13,$13 + srl $7,$7,2 + addu $2,$12 + or $13,$6 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $14,$16 + addu $1,$31 # 69 + rotr $6,$2,27 + xor $14,$22 + xor $25,$7,$24 + addu $1,$6 + xor $14,$11 + xor $25,$3 + addu $1,$13 + rotr $14,$14,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $14,$16 + sll $25,$2,5 # 69 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $14,$22 + xor $25,$7,$24 + addu $1,$6 + xor $14,$11 + sll $30,$3,30 + xor $25,$3 + srl $6,$14,31 + addu $14,$14 + srl $3,$3,2 + addu $1,$13 + or $14,$6 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $15,$17 + addu $24,$31 # 70 + rotr $6,$1,27 + xor $15,$23 + xor $25,$3,$7 + addu $24,$6 + xor $15,$12 + xor $25,$2 + addu $24,$14 + rotr $15,$15,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $15,$17 + sll $25,$1,5 # 70 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $15,$23 + xor $25,$3,$7 + addu $24,$6 + xor $15,$12 + sll $30,$2,30 + xor $25,$2 + srl $6,$15,31 + addu $15,$15 + srl $2,$2,2 + addu $24,$14 + or $15,$6 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $16,$18 + addu $7,$31 # 71 + rotr $6,$24,27 + xor $16,$8 + xor $25,$2,$3 + addu $7,$6 + xor $16,$13 + xor $25,$1 + addu $7,$15 + rotr $16,$16,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $16,$18 + sll $25,$24,5 # 71 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $16,$8 + xor $25,$2,$3 + addu $7,$6 + xor $16,$13 + sll $30,$1,30 + xor $25,$1 + srl $6,$16,31 + addu $16,$16 + srl $1,$1,2 + addu $7,$15 + or $16,$6 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $17,$19 + addu $3,$31 # 72 + rotr $6,$7,27 + xor $17,$9 + xor $25,$1,$2 + addu $3,$6 + xor $17,$14 + xor $25,$24 + addu $3,$16 + rotr $17,$17,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $17,$19 + sll $25,$7,5 # 72 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $17,$9 + xor $25,$1,$2 + addu $3,$6 + xor $17,$14 + sll $30,$24,30 + xor $25,$24 + srl $6,$17,31 + addu $17,$17 + srl $24,$24,2 + addu $3,$16 + or $17,$6 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $18,$20 + addu $2,$31 # 73 + rotr $6,$3,27 + xor $18,$10 + xor $25,$24,$1 + addu $2,$6 + xor $18,$15 + xor $25,$7 + addu $2,$17 + rotr $18,$18,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $18,$20 + sll $25,$3,5 # 73 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $18,$10 + xor $25,$24,$1 + addu $2,$6 + xor $18,$15 + sll $30,$7,30 + xor $25,$7 + srl $6,$18,31 + addu $18,$18 + srl $7,$7,2 + addu $2,$17 + or $18,$6 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $19,$21 + addu $1,$31 # 74 + rotr $6,$2,27 + xor $19,$11 + xor $25,$7,$24 + addu $1,$6 + xor $19,$16 + xor $25,$3 + addu $1,$18 + rotr $19,$19,31 + rotr $3,$3,2 + addu $1,$25 +#else + xor $19,$21 + sll $25,$2,5 # 74 + addu $1,$31 + srl $6,$2,27 + addu $1,$25 + xor $19,$11 + xor $25,$7,$24 + addu $1,$6 + xor $19,$16 + sll $30,$3,30 + xor $25,$3 + srl $6,$19,31 + addu $19,$19 + srl $3,$3,2 + addu $1,$18 + or $19,$6 + or $3,$30 + addu $1,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $20,$22 + addu $24,$31 # 75 + rotr $6,$1,27 + xor $20,$12 + xor $25,$3,$7 + addu $24,$6 + xor $20,$17 + xor $25,$2 + addu $24,$19 + rotr $20,$20,31 + rotr $2,$2,2 + addu $24,$25 +#else + xor $20,$22 + sll $25,$1,5 # 75 + addu $24,$31 + srl $6,$1,27 + addu $24,$25 + xor $20,$12 + xor $25,$3,$7 + addu $24,$6 + xor $20,$17 + sll $30,$2,30 + xor $25,$2 + srl $6,$20,31 + addu $20,$20 + srl $2,$2,2 + addu $24,$19 + or $20,$6 + or $2,$30 + addu $24,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $21,$23 + addu $7,$31 # 76 + rotr $6,$24,27 + xor $21,$13 + xor $25,$2,$3 + addu $7,$6 + xor $21,$18 + xor $25,$1 + addu $7,$20 + rotr $21,$21,31 + rotr $1,$1,2 + addu $7,$25 +#else + xor $21,$23 + sll $25,$24,5 # 76 + addu $7,$31 + srl $6,$24,27 + addu $7,$25 + xor $21,$13 + xor $25,$2,$3 + addu $7,$6 + xor $21,$18 + sll $30,$1,30 + xor $25,$1 + srl $6,$21,31 + addu $21,$21 + srl $1,$1,2 + addu $7,$20 + or $21,$6 + or $1,$30 + addu $7,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $22,$8 + addu $3,$31 # 77 + rotr $6,$7,27 + xor $22,$14 + xor $25,$1,$2 + addu $3,$6 + xor $22,$19 + xor $25,$24 + addu $3,$21 + rotr $22,$22,31 + rotr $24,$24,2 + addu $3,$25 +#else + xor $22,$8 + sll $25,$7,5 # 77 + addu $3,$31 + srl $6,$7,27 + addu $3,$25 + xor $22,$14 + xor $25,$1,$2 + addu $3,$6 + xor $22,$19 + sll $30,$24,30 + xor $25,$24 + srl $6,$22,31 + addu $22,$22 + srl $24,$24,2 + addu $3,$21 + or $22,$6 + or $24,$30 + addu $3,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $23,$9 + addu $2,$31 # 78 + rotr $6,$3,27 + xor $23,$15 + xor $25,$24,$1 + addu $2,$6 + xor $23,$20 + xor $25,$7 + addu $2,$22 + rotr $23,$23,31 + rotr $7,$7,2 + addu $2,$25 +#else + xor $23,$9 + sll $25,$3,5 # 78 + addu $2,$31 + srl $6,$3,27 + addu $2,$25 + xor $23,$15 + xor $25,$24,$1 + addu $2,$6 + xor $23,$20 + sll $30,$7,30 + xor $25,$7 + srl $6,$23,31 + addu $23,$23 + srl $7,$7,2 + addu $2,$22 + or $23,$6 + or $7,$30 + addu $2,$25 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + lw $8,0($4) + addu $1,$31 # 79 + lw $9,4($4) + rotr $6,$2,27 + lw $10,8($4) + xor $25,$7,$24 + addu $1,$6 + lw $11,12($4) + xor $25,$3 + addu $1,$23 + lw $12,16($4) + rotr $3,$3,2 + addu $1,$25 +#else + lw $8,0($4) + sll $25,$2,5 # 79 + addu $1,$31 + lw $9,4($4) + srl $6,$2,27 + addu $1,$25 + lw $10,8($4) + xor $25,$7,$24 + addu $1,$6 + lw $11,12($4) + sll $30,$3,30 + xor $25,$3 + lw $12,16($4) + srl $3,$3,2 + addu $1,$23 + or $3,$30 + addu $1,$25 +#endif + addu $5,64 + lw $6,0($29) + + addu $1,$8 + addu $2,$9 + sw $1,0($4) + addu $3,$10 + addu $7,$11 + sw $2,4($4) + addu $24,$12 + sw $3,8($4) + sw $7,12($4) + sw $24,16($4) + .set noreorder + bne $5,$6,.Loop + nop + + .set noreorder + lw $31,(16-1)*4($29) + lw $30,(16-2)*4($29) + lw $23,(16-3)*4($29) + lw $22,(16-4)*4($29) + lw $21,(16-5)*4($29) + lw $20,(16-6)*4($29) + lw $19,(16-7)*4($29) + lw $18,(16-8)*4($29) + lw $17,(16-9)*4($29) + lw $16,(16-10)*4($29) + jr $31 + addu $29,16*4 +.end sha1_block_data_order +.rdata +.asciiz "SHA1 for MIPS, CRYPTOGAMS by " diff -urN a/deps/openssl/config/archs/linux-mipsel/asm/crypto/sha/sha256-mips.S b/deps/openssl/config/archs/linux-mipsel/asm/crypto/sha/sha256-mips.S --- a/deps/openssl/config/archs/linux-mipsel/asm/crypto/sha/sha256-mips.S 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mipsel/asm/crypto/sha/sha256-mips.S 2019-12-25 13:49:19.992298784 +0900 @@ -0,0 +1,3036 @@ +#include "mips_arch.h" + +.text +.set noat +#if !defined(__mips_eabi) && (!defined(__vxworks) || defined(__pic__)) +.option pic2 +#endif + +.align 5 +.globl sha256_block_data_order +.ent sha256_block_data_order +sha256_block_data_order: + .frame $29,128,$31 + .mask 0xc0ff0000,-4 + .set noreorder + .cpload $25 + subu $29,128 + sw $31,128-1*4($29) + sw $30,128-2*4($29) + sw $23,128-3*4($29) + sw $22,128-4*4($29) + sw $21,128-5*4($29) + sw $20,128-6*4($29) + sw $19,128-7*4($29) + sw $18,128-8*4($29) + sw $17,128-9*4($29) + sw $16,128-10*4($29) + sll $23,$6,6 + .set reorder + la $6,K256 # PIC-ified 'load address' + + lw $1,0*4($4) # load context + lw $2,1*4($4) + lw $3,2*4($4) + lw $7,3*4($4) + lw $24,4*4($4) + lw $25,5*4($4) + lw $30,6*4($4) + lw $31,7*4($4) + + addu $23,$5 # pointer to the end of input + sw $23,16*4($29) + b .Loop + +.align 5 +.Loop: +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $8,($5) +#else + lwl $8,3($5) + lwr $8,0($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $9,4($5) +#else + lwl $9,7($5) + lwr $9,4($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $8,$8 # byte swap(0) + rotr $8,$8,16 +#else + srl $13,$8,24 # byte swap(0) + srl $14,$8,8 + andi $15,$8,0xFF00 + sll $8,$8,24 + andi $14,0xFF00 + sll $15,$15,8 + or $8,$13 + or $14,$15 + or $8,$14 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $15,$25,$30 # 0 + rotr $13,$24,6 + addu $12,$8,$31 + rotr $14,$24,11 + and $15,$24 + rotr $31,$24,25 + xor $13,$14 + rotr $14,$1,2 + xor $15,$30 # Ch(e,f,g) + xor $13,$31 # Sigma1(e) + + rotr $31,$1,13 + addu $12,$15 + lw $15,0($6) # K[0] + xor $31,$14 + rotr $14,$1,22 + addu $12,$13 + and $13,$2,$3 + xor $31,$14 # Sigma0(a) + xor $14,$2,$3 +#else + addu $12,$8,$31 # 0 + srl $31,$24,6 + xor $15,$25,$30 + sll $14,$24,7 + and $15,$24 + srl $13,$24,11 + xor $31,$14 + sll $14,$24,21 + xor $31,$13 + srl $13,$24,25 + xor $31,$14 + sll $14,$24,26 + xor $31,$13 + xor $15,$30 # Ch(e,f,g) + xor $13,$14,$31 # Sigma1(e) + + srl $31,$1,2 + addu $12,$15 + lw $15,0($6) # K[0] + sll $14,$1,10 + addu $12,$13 + srl $13,$1,13 + xor $31,$14 + sll $14,$1,19 + xor $31,$13 + srl $13,$1,22 + xor $31,$14 + sll $14,$1,30 + xor $31,$13 + and $13,$2,$3 + xor $31,$14 # Sigma0(a) + xor $14,$2,$3 +#endif + sw $8,0($29) # offload to ring buffer + addu $31,$13 + and $14,$1 + addu $12,$15 # +=K[0] + addu $31,$14 # +=Maj(a,b,c) + addu $7,$12 + addu $31,$12 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $10,8($5) +#else + lwl $10,11($5) + lwr $10,8($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $9,$9 # byte swap(1) + rotr $9,$9,16 +#else + srl $14,$9,24 # byte swap(1) + srl $15,$9,8 + andi $16,$9,0xFF00 + sll $9,$9,24 + andi $15,0xFF00 + sll $16,$16,8 + or $9,$14 + or $15,$16 + or $9,$15 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $16,$24,$25 # 1 + rotr $14,$7,6 + addu $13,$9,$30 + rotr $15,$7,11 + and $16,$7 + rotr $30,$7,25 + xor $14,$15 + rotr $15,$31,2 + xor $16,$25 # Ch(e,f,g) + xor $14,$30 # Sigma1(e) + + rotr $30,$31,13 + addu $13,$16 + lw $16,4($6) # K[1] + xor $30,$15 + rotr $15,$31,22 + addu $13,$14 + and $14,$1,$2 + xor $30,$15 # Sigma0(a) + xor $15,$1,$2 +#else + addu $13,$9,$30 # 1 + srl $30,$7,6 + xor $16,$24,$25 + sll $15,$7,7 + and $16,$7 + srl $14,$7,11 + xor $30,$15 + sll $15,$7,21 + xor $30,$14 + srl $14,$7,25 + xor $30,$15 + sll $15,$7,26 + xor $30,$14 + xor $16,$25 # Ch(e,f,g) + xor $14,$15,$30 # Sigma1(e) + + srl $30,$31,2 + addu $13,$16 + lw $16,4($6) # K[1] + sll $15,$31,10 + addu $13,$14 + srl $14,$31,13 + xor $30,$15 + sll $15,$31,19 + xor $30,$14 + srl $14,$31,22 + xor $30,$15 + sll $15,$31,30 + xor $30,$14 + and $14,$1,$2 + xor $30,$15 # Sigma0(a) + xor $15,$1,$2 +#endif + sw $9,4($29) # offload to ring buffer + addu $30,$14 + and $15,$31 + addu $13,$16 # +=K[1] + addu $30,$15 # +=Maj(a,b,c) + addu $3,$13 + addu $30,$13 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $11,12($5) +#else + lwl $11,15($5) + lwr $11,12($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $10,$10 # byte swap(2) + rotr $10,$10,16 +#else + srl $15,$10,24 # byte swap(2) + srl $16,$10,8 + andi $17,$10,0xFF00 + sll $10,$10,24 + andi $16,0xFF00 + sll $17,$17,8 + or $10,$15 + or $16,$17 + or $10,$16 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $17,$7,$24 # 2 + rotr $15,$3,6 + addu $14,$10,$25 + rotr $16,$3,11 + and $17,$3 + rotr $25,$3,25 + xor $15,$16 + rotr $16,$30,2 + xor $17,$24 # Ch(e,f,g) + xor $15,$25 # Sigma1(e) + + rotr $25,$30,13 + addu $14,$17 + lw $17,8($6) # K[2] + xor $25,$16 + rotr $16,$30,22 + addu $14,$15 + and $15,$31,$1 + xor $25,$16 # Sigma0(a) + xor $16,$31,$1 +#else + addu $14,$10,$25 # 2 + srl $25,$3,6 + xor $17,$7,$24 + sll $16,$3,7 + and $17,$3 + srl $15,$3,11 + xor $25,$16 + sll $16,$3,21 + xor $25,$15 + srl $15,$3,25 + xor $25,$16 + sll $16,$3,26 + xor $25,$15 + xor $17,$24 # Ch(e,f,g) + xor $15,$16,$25 # Sigma1(e) + + srl $25,$30,2 + addu $14,$17 + lw $17,8($6) # K[2] + sll $16,$30,10 + addu $14,$15 + srl $15,$30,13 + xor $25,$16 + sll $16,$30,19 + xor $25,$15 + srl $15,$30,22 + xor $25,$16 + sll $16,$30,30 + xor $25,$15 + and $15,$31,$1 + xor $25,$16 # Sigma0(a) + xor $16,$31,$1 +#endif + sw $10,8($29) # offload to ring buffer + addu $25,$15 + and $16,$30 + addu $14,$17 # +=K[2] + addu $25,$16 # +=Maj(a,b,c) + addu $2,$14 + addu $25,$14 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $12,16($5) +#else + lwl $12,19($5) + lwr $12,16($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $11,$11 # byte swap(3) + rotr $11,$11,16 +#else + srl $16,$11,24 # byte swap(3) + srl $17,$11,8 + andi $18,$11,0xFF00 + sll $11,$11,24 + andi $17,0xFF00 + sll $18,$18,8 + or $11,$16 + or $17,$18 + or $11,$17 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $18,$3,$7 # 3 + rotr $16,$2,6 + addu $15,$11,$24 + rotr $17,$2,11 + and $18,$2 + rotr $24,$2,25 + xor $16,$17 + rotr $17,$25,2 + xor $18,$7 # Ch(e,f,g) + xor $16,$24 # Sigma1(e) + + rotr $24,$25,13 + addu $15,$18 + lw $18,12($6) # K[3] + xor $24,$17 + rotr $17,$25,22 + addu $15,$16 + and $16,$30,$31 + xor $24,$17 # Sigma0(a) + xor $17,$30,$31 +#else + addu $15,$11,$24 # 3 + srl $24,$2,6 + xor $18,$3,$7 + sll $17,$2,7 + and $18,$2 + srl $16,$2,11 + xor $24,$17 + sll $17,$2,21 + xor $24,$16 + srl $16,$2,25 + xor $24,$17 + sll $17,$2,26 + xor $24,$16 + xor $18,$7 # Ch(e,f,g) + xor $16,$17,$24 # Sigma1(e) + + srl $24,$25,2 + addu $15,$18 + lw $18,12($6) # K[3] + sll $17,$25,10 + addu $15,$16 + srl $16,$25,13 + xor $24,$17 + sll $17,$25,19 + xor $24,$16 + srl $16,$25,22 + xor $24,$17 + sll $17,$25,30 + xor $24,$16 + and $16,$30,$31 + xor $24,$17 # Sigma0(a) + xor $17,$30,$31 +#endif + sw $11,12($29) # offload to ring buffer + addu $24,$16 + and $17,$25 + addu $15,$18 # +=K[3] + addu $24,$17 # +=Maj(a,b,c) + addu $1,$15 + addu $24,$15 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $13,20($5) +#else + lwl $13,23($5) + lwr $13,20($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $12,$12 # byte swap(4) + rotr $12,$12,16 +#else + srl $17,$12,24 # byte swap(4) + srl $18,$12,8 + andi $19,$12,0xFF00 + sll $12,$12,24 + andi $18,0xFF00 + sll $19,$19,8 + or $12,$17 + or $18,$19 + or $12,$18 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $19,$2,$3 # 4 + rotr $17,$1,6 + addu $16,$12,$7 + rotr $18,$1,11 + and $19,$1 + rotr $7,$1,25 + xor $17,$18 + rotr $18,$24,2 + xor $19,$3 # Ch(e,f,g) + xor $17,$7 # Sigma1(e) + + rotr $7,$24,13 + addu $16,$19 + lw $19,16($6) # K[4] + xor $7,$18 + rotr $18,$24,22 + addu $16,$17 + and $17,$25,$30 + xor $7,$18 # Sigma0(a) + xor $18,$25,$30 +#else + addu $16,$12,$7 # 4 + srl $7,$1,6 + xor $19,$2,$3 + sll $18,$1,7 + and $19,$1 + srl $17,$1,11 + xor $7,$18 + sll $18,$1,21 + xor $7,$17 + srl $17,$1,25 + xor $7,$18 + sll $18,$1,26 + xor $7,$17 + xor $19,$3 # Ch(e,f,g) + xor $17,$18,$7 # Sigma1(e) + + srl $7,$24,2 + addu $16,$19 + lw $19,16($6) # K[4] + sll $18,$24,10 + addu $16,$17 + srl $17,$24,13 + xor $7,$18 + sll $18,$24,19 + xor $7,$17 + srl $17,$24,22 + xor $7,$18 + sll $18,$24,30 + xor $7,$17 + and $17,$25,$30 + xor $7,$18 # Sigma0(a) + xor $18,$25,$30 +#endif + sw $12,16($29) # offload to ring buffer + addu $7,$17 + and $18,$24 + addu $16,$19 # +=K[4] + addu $7,$18 # +=Maj(a,b,c) + addu $31,$16 + addu $7,$16 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $14,24($5) +#else + lwl $14,27($5) + lwr $14,24($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $13,$13 # byte swap(5) + rotr $13,$13,16 +#else + srl $18,$13,24 # byte swap(5) + srl $19,$13,8 + andi $20,$13,0xFF00 + sll $13,$13,24 + andi $19,0xFF00 + sll $20,$20,8 + or $13,$18 + or $19,$20 + or $13,$19 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $20,$1,$2 # 5 + rotr $18,$31,6 + addu $17,$13,$3 + rotr $19,$31,11 + and $20,$31 + rotr $3,$31,25 + xor $18,$19 + rotr $19,$7,2 + xor $20,$2 # Ch(e,f,g) + xor $18,$3 # Sigma1(e) + + rotr $3,$7,13 + addu $17,$20 + lw $20,20($6) # K[5] + xor $3,$19 + rotr $19,$7,22 + addu $17,$18 + and $18,$24,$25 + xor $3,$19 # Sigma0(a) + xor $19,$24,$25 +#else + addu $17,$13,$3 # 5 + srl $3,$31,6 + xor $20,$1,$2 + sll $19,$31,7 + and $20,$31 + srl $18,$31,11 + xor $3,$19 + sll $19,$31,21 + xor $3,$18 + srl $18,$31,25 + xor $3,$19 + sll $19,$31,26 + xor $3,$18 + xor $20,$2 # Ch(e,f,g) + xor $18,$19,$3 # Sigma1(e) + + srl $3,$7,2 + addu $17,$20 + lw $20,20($6) # K[5] + sll $19,$7,10 + addu $17,$18 + srl $18,$7,13 + xor $3,$19 + sll $19,$7,19 + xor $3,$18 + srl $18,$7,22 + xor $3,$19 + sll $19,$7,30 + xor $3,$18 + and $18,$24,$25 + xor $3,$19 # Sigma0(a) + xor $19,$24,$25 +#endif + sw $13,20($29) # offload to ring buffer + addu $3,$18 + and $19,$7 + addu $17,$20 # +=K[5] + addu $3,$19 # +=Maj(a,b,c) + addu $30,$17 + addu $3,$17 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $15,28($5) +#else + lwl $15,31($5) + lwr $15,28($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $14,$14 # byte swap(6) + rotr $14,$14,16 +#else + srl $19,$14,24 # byte swap(6) + srl $20,$14,8 + andi $21,$14,0xFF00 + sll $14,$14,24 + andi $20,0xFF00 + sll $21,$21,8 + or $14,$19 + or $20,$21 + or $14,$20 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $21,$31,$1 # 6 + rotr $19,$30,6 + addu $18,$14,$2 + rotr $20,$30,11 + and $21,$30 + rotr $2,$30,25 + xor $19,$20 + rotr $20,$3,2 + xor $21,$1 # Ch(e,f,g) + xor $19,$2 # Sigma1(e) + + rotr $2,$3,13 + addu $18,$21 + lw $21,24($6) # K[6] + xor $2,$20 + rotr $20,$3,22 + addu $18,$19 + and $19,$7,$24 + xor $2,$20 # Sigma0(a) + xor $20,$7,$24 +#else + addu $18,$14,$2 # 6 + srl $2,$30,6 + xor $21,$31,$1 + sll $20,$30,7 + and $21,$30 + srl $19,$30,11 + xor $2,$20 + sll $20,$30,21 + xor $2,$19 + srl $19,$30,25 + xor $2,$20 + sll $20,$30,26 + xor $2,$19 + xor $21,$1 # Ch(e,f,g) + xor $19,$20,$2 # Sigma1(e) + + srl $2,$3,2 + addu $18,$21 + lw $21,24($6) # K[6] + sll $20,$3,10 + addu $18,$19 + srl $19,$3,13 + xor $2,$20 + sll $20,$3,19 + xor $2,$19 + srl $19,$3,22 + xor $2,$20 + sll $20,$3,30 + xor $2,$19 + and $19,$7,$24 + xor $2,$20 # Sigma0(a) + xor $20,$7,$24 +#endif + sw $14,24($29) # offload to ring buffer + addu $2,$19 + and $20,$3 + addu $18,$21 # +=K[6] + addu $2,$20 # +=Maj(a,b,c) + addu $25,$18 + addu $2,$18 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $16,32($5) +#else + lwl $16,35($5) + lwr $16,32($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $15,$15 # byte swap(7) + rotr $15,$15,16 +#else + srl $20,$15,24 # byte swap(7) + srl $21,$15,8 + andi $22,$15,0xFF00 + sll $15,$15,24 + andi $21,0xFF00 + sll $22,$22,8 + or $15,$20 + or $21,$22 + or $15,$21 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $22,$30,$31 # 7 + rotr $20,$25,6 + addu $19,$15,$1 + rotr $21,$25,11 + and $22,$25 + rotr $1,$25,25 + xor $20,$21 + rotr $21,$2,2 + xor $22,$31 # Ch(e,f,g) + xor $20,$1 # Sigma1(e) + + rotr $1,$2,13 + addu $19,$22 + lw $22,28($6) # K[7] + xor $1,$21 + rotr $21,$2,22 + addu $19,$20 + and $20,$3,$7 + xor $1,$21 # Sigma0(a) + xor $21,$3,$7 +#else + addu $19,$15,$1 # 7 + srl $1,$25,6 + xor $22,$30,$31 + sll $21,$25,7 + and $22,$25 + srl $20,$25,11 + xor $1,$21 + sll $21,$25,21 + xor $1,$20 + srl $20,$25,25 + xor $1,$21 + sll $21,$25,26 + xor $1,$20 + xor $22,$31 # Ch(e,f,g) + xor $20,$21,$1 # Sigma1(e) + + srl $1,$2,2 + addu $19,$22 + lw $22,28($6) # K[7] + sll $21,$2,10 + addu $19,$20 + srl $20,$2,13 + xor $1,$21 + sll $21,$2,19 + xor $1,$20 + srl $20,$2,22 + xor $1,$21 + sll $21,$2,30 + xor $1,$20 + and $20,$3,$7 + xor $1,$21 # Sigma0(a) + xor $21,$3,$7 +#endif + sw $15,28($29) # offload to ring buffer + addu $1,$20 + and $21,$2 + addu $19,$22 # +=K[7] + addu $1,$21 # +=Maj(a,b,c) + addu $24,$19 + addu $1,$19 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $17,36($5) +#else + lwl $17,39($5) + lwr $17,36($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $16,$16 # byte swap(8) + rotr $16,$16,16 +#else + srl $21,$16,24 # byte swap(8) + srl $22,$16,8 + andi $23,$16,0xFF00 + sll $16,$16,24 + andi $22,0xFF00 + sll $23,$23,8 + or $16,$21 + or $22,$23 + or $16,$22 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $23,$25,$30 # 8 + rotr $21,$24,6 + addu $20,$16,$31 + rotr $22,$24,11 + and $23,$24 + rotr $31,$24,25 + xor $21,$22 + rotr $22,$1,2 + xor $23,$30 # Ch(e,f,g) + xor $21,$31 # Sigma1(e) + + rotr $31,$1,13 + addu $20,$23 + lw $23,32($6) # K[8] + xor $31,$22 + rotr $22,$1,22 + addu $20,$21 + and $21,$2,$3 + xor $31,$22 # Sigma0(a) + xor $22,$2,$3 +#else + addu $20,$16,$31 # 8 + srl $31,$24,6 + xor $23,$25,$30 + sll $22,$24,7 + and $23,$24 + srl $21,$24,11 + xor $31,$22 + sll $22,$24,21 + xor $31,$21 + srl $21,$24,25 + xor $31,$22 + sll $22,$24,26 + xor $31,$21 + xor $23,$30 # Ch(e,f,g) + xor $21,$22,$31 # Sigma1(e) + + srl $31,$1,2 + addu $20,$23 + lw $23,32($6) # K[8] + sll $22,$1,10 + addu $20,$21 + srl $21,$1,13 + xor $31,$22 + sll $22,$1,19 + xor $31,$21 + srl $21,$1,22 + xor $31,$22 + sll $22,$1,30 + xor $31,$21 + and $21,$2,$3 + xor $31,$22 # Sigma0(a) + xor $22,$2,$3 +#endif + sw $16,32($29) # offload to ring buffer + addu $31,$21 + and $22,$1 + addu $20,$23 # +=K[8] + addu $31,$22 # +=Maj(a,b,c) + addu $7,$20 + addu $31,$20 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $18,40($5) +#else + lwl $18,43($5) + lwr $18,40($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $17,$17 # byte swap(9) + rotr $17,$17,16 +#else + srl $22,$17,24 # byte swap(9) + srl $23,$17,8 + andi $8,$17,0xFF00 + sll $17,$17,24 + andi $23,0xFF00 + sll $8,$8,8 + or $17,$22 + or $23,$8 + or $17,$23 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $8,$24,$25 # 9 + rotr $22,$7,6 + addu $21,$17,$30 + rotr $23,$7,11 + and $8,$7 + rotr $30,$7,25 + xor $22,$23 + rotr $23,$31,2 + xor $8,$25 # Ch(e,f,g) + xor $22,$30 # Sigma1(e) + + rotr $30,$31,13 + addu $21,$8 + lw $8,36($6) # K[9] + xor $30,$23 + rotr $23,$31,22 + addu $21,$22 + and $22,$1,$2 + xor $30,$23 # Sigma0(a) + xor $23,$1,$2 +#else + addu $21,$17,$30 # 9 + srl $30,$7,6 + xor $8,$24,$25 + sll $23,$7,7 + and $8,$7 + srl $22,$7,11 + xor $30,$23 + sll $23,$7,21 + xor $30,$22 + srl $22,$7,25 + xor $30,$23 + sll $23,$7,26 + xor $30,$22 + xor $8,$25 # Ch(e,f,g) + xor $22,$23,$30 # Sigma1(e) + + srl $30,$31,2 + addu $21,$8 + lw $8,36($6) # K[9] + sll $23,$31,10 + addu $21,$22 + srl $22,$31,13 + xor $30,$23 + sll $23,$31,19 + xor $30,$22 + srl $22,$31,22 + xor $30,$23 + sll $23,$31,30 + xor $30,$22 + and $22,$1,$2 + xor $30,$23 # Sigma0(a) + xor $23,$1,$2 +#endif + sw $17,36($29) # offload to ring buffer + addu $30,$22 + and $23,$31 + addu $21,$8 # +=K[9] + addu $30,$23 # +=Maj(a,b,c) + addu $3,$21 + addu $30,$21 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $19,44($5) +#else + lwl $19,47($5) + lwr $19,44($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $18,$18 # byte swap(10) + rotr $18,$18,16 +#else + srl $23,$18,24 # byte swap(10) + srl $8,$18,8 + andi $9,$18,0xFF00 + sll $18,$18,24 + andi $8,0xFF00 + sll $9,$9,8 + or $18,$23 + or $8,$9 + or $18,$8 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $9,$7,$24 # 10 + rotr $23,$3,6 + addu $22,$18,$25 + rotr $8,$3,11 + and $9,$3 + rotr $25,$3,25 + xor $23,$8 + rotr $8,$30,2 + xor $9,$24 # Ch(e,f,g) + xor $23,$25 # Sigma1(e) + + rotr $25,$30,13 + addu $22,$9 + lw $9,40($6) # K[10] + xor $25,$8 + rotr $8,$30,22 + addu $22,$23 + and $23,$31,$1 + xor $25,$8 # Sigma0(a) + xor $8,$31,$1 +#else + addu $22,$18,$25 # 10 + srl $25,$3,6 + xor $9,$7,$24 + sll $8,$3,7 + and $9,$3 + srl $23,$3,11 + xor $25,$8 + sll $8,$3,21 + xor $25,$23 + srl $23,$3,25 + xor $25,$8 + sll $8,$3,26 + xor $25,$23 + xor $9,$24 # Ch(e,f,g) + xor $23,$8,$25 # Sigma1(e) + + srl $25,$30,2 + addu $22,$9 + lw $9,40($6) # K[10] + sll $8,$30,10 + addu $22,$23 + srl $23,$30,13 + xor $25,$8 + sll $8,$30,19 + xor $25,$23 + srl $23,$30,22 + xor $25,$8 + sll $8,$30,30 + xor $25,$23 + and $23,$31,$1 + xor $25,$8 # Sigma0(a) + xor $8,$31,$1 +#endif + sw $18,40($29) # offload to ring buffer + addu $25,$23 + and $8,$30 + addu $22,$9 # +=K[10] + addu $25,$8 # +=Maj(a,b,c) + addu $2,$22 + addu $25,$22 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $20,48($5) +#else + lwl $20,51($5) + lwr $20,48($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $19,$19 # byte swap(11) + rotr $19,$19,16 +#else + srl $8,$19,24 # byte swap(11) + srl $9,$19,8 + andi $10,$19,0xFF00 + sll $19,$19,24 + andi $9,0xFF00 + sll $10,$10,8 + or $19,$8 + or $9,$10 + or $19,$9 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $10,$3,$7 # 11 + rotr $8,$2,6 + addu $23,$19,$24 + rotr $9,$2,11 + and $10,$2 + rotr $24,$2,25 + xor $8,$9 + rotr $9,$25,2 + xor $10,$7 # Ch(e,f,g) + xor $8,$24 # Sigma1(e) + + rotr $24,$25,13 + addu $23,$10 + lw $10,44($6) # K[11] + xor $24,$9 + rotr $9,$25,22 + addu $23,$8 + and $8,$30,$31 + xor $24,$9 # Sigma0(a) + xor $9,$30,$31 +#else + addu $23,$19,$24 # 11 + srl $24,$2,6 + xor $10,$3,$7 + sll $9,$2,7 + and $10,$2 + srl $8,$2,11 + xor $24,$9 + sll $9,$2,21 + xor $24,$8 + srl $8,$2,25 + xor $24,$9 + sll $9,$2,26 + xor $24,$8 + xor $10,$7 # Ch(e,f,g) + xor $8,$9,$24 # Sigma1(e) + + srl $24,$25,2 + addu $23,$10 + lw $10,44($6) # K[11] + sll $9,$25,10 + addu $23,$8 + srl $8,$25,13 + xor $24,$9 + sll $9,$25,19 + xor $24,$8 + srl $8,$25,22 + xor $24,$9 + sll $9,$25,30 + xor $24,$8 + and $8,$30,$31 + xor $24,$9 # Sigma0(a) + xor $9,$30,$31 +#endif + sw $19,44($29) # offload to ring buffer + addu $24,$8 + and $9,$25 + addu $23,$10 # +=K[11] + addu $24,$9 # +=Maj(a,b,c) + addu $1,$23 + addu $24,$23 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $21,52($5) +#else + lwl $21,55($5) + lwr $21,52($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $20,$20 # byte swap(12) + rotr $20,$20,16 +#else + srl $9,$20,24 # byte swap(12) + srl $10,$20,8 + andi $11,$20,0xFF00 + sll $20,$20,24 + andi $10,0xFF00 + sll $11,$11,8 + or $20,$9 + or $10,$11 + or $20,$10 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $11,$2,$3 # 12 + rotr $9,$1,6 + addu $8,$20,$7 + rotr $10,$1,11 + and $11,$1 + rotr $7,$1,25 + xor $9,$10 + rotr $10,$24,2 + xor $11,$3 # Ch(e,f,g) + xor $9,$7 # Sigma1(e) + + rotr $7,$24,13 + addu $8,$11 + lw $11,48($6) # K[12] + xor $7,$10 + rotr $10,$24,22 + addu $8,$9 + and $9,$25,$30 + xor $7,$10 # Sigma0(a) + xor $10,$25,$30 +#else + addu $8,$20,$7 # 12 + srl $7,$1,6 + xor $11,$2,$3 + sll $10,$1,7 + and $11,$1 + srl $9,$1,11 + xor $7,$10 + sll $10,$1,21 + xor $7,$9 + srl $9,$1,25 + xor $7,$10 + sll $10,$1,26 + xor $7,$9 + xor $11,$3 # Ch(e,f,g) + xor $9,$10,$7 # Sigma1(e) + + srl $7,$24,2 + addu $8,$11 + lw $11,48($6) # K[12] + sll $10,$24,10 + addu $8,$9 + srl $9,$24,13 + xor $7,$10 + sll $10,$24,19 + xor $7,$9 + srl $9,$24,22 + xor $7,$10 + sll $10,$24,30 + xor $7,$9 + and $9,$25,$30 + xor $7,$10 # Sigma0(a) + xor $10,$25,$30 +#endif + sw $20,48($29) # offload to ring buffer + addu $7,$9 + and $10,$24 + addu $8,$11 # +=K[12] + addu $7,$10 # +=Maj(a,b,c) + addu $31,$8 + addu $7,$8 +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $22,56($5) +#else + lwl $22,59($5) + lwr $22,56($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $21,$21 # byte swap(13) + rotr $21,$21,16 +#else + srl $10,$21,24 # byte swap(13) + srl $11,$21,8 + andi $12,$21,0xFF00 + sll $21,$21,24 + andi $11,0xFF00 + sll $12,$12,8 + or $21,$10 + or $11,$12 + or $21,$11 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $12,$1,$2 # 13 + rotr $10,$31,6 + addu $9,$21,$3 + rotr $11,$31,11 + and $12,$31 + rotr $3,$31,25 + xor $10,$11 + rotr $11,$7,2 + xor $12,$2 # Ch(e,f,g) + xor $10,$3 # Sigma1(e) + + rotr $3,$7,13 + addu $9,$12 + lw $12,52($6) # K[13] + xor $3,$11 + rotr $11,$7,22 + addu $9,$10 + and $10,$24,$25 + xor $3,$11 # Sigma0(a) + xor $11,$24,$25 +#else + addu $9,$21,$3 # 13 + srl $3,$31,6 + xor $12,$1,$2 + sll $11,$31,7 + and $12,$31 + srl $10,$31,11 + xor $3,$11 + sll $11,$31,21 + xor $3,$10 + srl $10,$31,25 + xor $3,$11 + sll $11,$31,26 + xor $3,$10 + xor $12,$2 # Ch(e,f,g) + xor $10,$11,$3 # Sigma1(e) + + srl $3,$7,2 + addu $9,$12 + lw $12,52($6) # K[13] + sll $11,$7,10 + addu $9,$10 + srl $10,$7,13 + xor $3,$11 + sll $11,$7,19 + xor $3,$10 + srl $10,$7,22 + xor $3,$11 + sll $11,$7,30 + xor $3,$10 + and $10,$24,$25 + xor $3,$11 # Sigma0(a) + xor $11,$24,$25 +#endif + sw $21,52($29) # offload to ring buffer + addu $3,$10 + and $11,$7 + addu $9,$12 # +=K[13] + addu $3,$11 # +=Maj(a,b,c) + addu $30,$9 + addu $3,$9 + lw $8,0($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) + lw $23,60($5) +#else + lwl $23,63($5) + lwr $23,60($5) +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $22,$22 # byte swap(14) + rotr $22,$22,16 +#else + srl $11,$22,24 # byte swap(14) + srl $12,$22,8 + andi $13,$22,0xFF00 + sll $22,$22,24 + andi $12,0xFF00 + sll $13,$13,8 + or $22,$11 + or $12,$13 + or $22,$12 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $13,$31,$1 # 14 + rotr $11,$30,6 + addu $10,$22,$2 + rotr $12,$30,11 + and $13,$30 + rotr $2,$30,25 + xor $11,$12 + rotr $12,$3,2 + xor $13,$1 # Ch(e,f,g) + xor $11,$2 # Sigma1(e) + + rotr $2,$3,13 + addu $10,$13 + lw $13,56($6) # K[14] + xor $2,$12 + rotr $12,$3,22 + addu $10,$11 + and $11,$7,$24 + xor $2,$12 # Sigma0(a) + xor $12,$7,$24 +#else + addu $10,$22,$2 # 14 + srl $2,$30,6 + xor $13,$31,$1 + sll $12,$30,7 + and $13,$30 + srl $11,$30,11 + xor $2,$12 + sll $12,$30,21 + xor $2,$11 + srl $11,$30,25 + xor $2,$12 + sll $12,$30,26 + xor $2,$11 + xor $13,$1 # Ch(e,f,g) + xor $11,$12,$2 # Sigma1(e) + + srl $2,$3,2 + addu $10,$13 + lw $13,56($6) # K[14] + sll $12,$3,10 + addu $10,$11 + srl $11,$3,13 + xor $2,$12 + sll $12,$3,19 + xor $2,$11 + srl $11,$3,22 + xor $2,$12 + sll $12,$3,30 + xor $2,$11 + and $11,$7,$24 + xor $2,$12 # Sigma0(a) + xor $12,$7,$24 +#endif + sw $22,56($29) # offload to ring buffer + addu $2,$11 + and $12,$3 + addu $10,$13 # +=K[14] + addu $2,$12 # +=Maj(a,b,c) + addu $25,$10 + addu $2,$10 + lw $9,4($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + wsbh $23,$23 # byte swap(15) + rotr $23,$23,16 +#else + srl $12,$23,24 # byte swap(15) + srl $13,$23,8 + andi $14,$23,0xFF00 + sll $23,$23,24 + andi $13,0xFF00 + sll $14,$14,8 + or $23,$12 + or $13,$14 + or $23,$13 +#endif +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $14,$30,$31 # 15 + rotr $12,$25,6 + addu $11,$23,$1 + rotr $13,$25,11 + and $14,$25 + rotr $1,$25,25 + xor $12,$13 + rotr $13,$2,2 + xor $14,$31 # Ch(e,f,g) + xor $12,$1 # Sigma1(e) + + rotr $1,$2,13 + addu $11,$14 + lw $14,60($6) # K[15] + xor $1,$13 + rotr $13,$2,22 + addu $11,$12 + and $12,$3,$7 + xor $1,$13 # Sigma0(a) + xor $13,$3,$7 +#else + addu $11,$23,$1 # 15 + srl $1,$25,6 + xor $14,$30,$31 + sll $13,$25,7 + and $14,$25 + srl $12,$25,11 + xor $1,$13 + sll $13,$25,21 + xor $1,$12 + srl $12,$25,25 + xor $1,$13 + sll $13,$25,26 + xor $1,$12 + xor $14,$31 # Ch(e,f,g) + xor $12,$13,$1 # Sigma1(e) + + srl $1,$2,2 + addu $11,$14 + lw $14,60($6) # K[15] + sll $13,$2,10 + addu $11,$12 + srl $12,$2,13 + xor $1,$13 + sll $13,$2,19 + xor $1,$12 + srl $12,$2,22 + xor $1,$13 + sll $13,$2,30 + xor $1,$12 + and $12,$3,$7 + xor $1,$13 # Sigma0(a) + xor $13,$3,$7 +#endif + sw $23,60($29) # offload to ring buffer + addu $1,$12 + and $13,$2 + addu $11,$14 # +=K[15] + addu $1,$13 # +=Maj(a,b,c) + addu $24,$11 + addu $1,$11 + lw $10,8($29) # prefetch from ring buffer + b .L16_xx +.align 4 +.L16_xx: +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $14,$9,3 # Xupdate(16) + rotr $12,$9,7 + addu $8,$17 # +=X[i+9] + xor $14,$12 + rotr $12,$9,18 + + srl $15,$22,10 + rotr $13,$22,17 + xor $14,$12 # sigma0(X[i+1]) + rotr $12,$22,19 + xor $15,$13 + addu $8,$14 +#else + srl $14,$9,3 # Xupdate(16) + addu $8,$17 # +=X[i+9] + sll $13,$9,14 + srl $12,$9,7 + xor $14,$13 + sll $13,11 + xor $14,$12 + srl $12,$9,18 + xor $14,$13 + + srl $15,$22,10 + xor $14,$12 # sigma0(X[i+1]) + sll $13,$22,13 + addu $8,$14 + srl $12,$22,17 + xor $15,$13 + sll $13,2 + xor $15,$12 + srl $12,$22,19 + xor $15,$13 +#endif + xor $15,$12 # sigma1(X[i+14]) + addu $8,$15 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $15,$25,$30 # 16 + rotr $13,$24,6 + addu $12,$8,$31 + rotr $14,$24,11 + and $15,$24 + rotr $31,$24,25 + xor $13,$14 + rotr $14,$1,2 + xor $15,$30 # Ch(e,f,g) + xor $13,$31 # Sigma1(e) + + rotr $31,$1,13 + addu $12,$15 + lw $15,64($6) # K[16] + xor $31,$14 + rotr $14,$1,22 + addu $12,$13 + and $13,$2,$3 + xor $31,$14 # Sigma0(a) + xor $14,$2,$3 +#else + addu $12,$8,$31 # 16 + srl $31,$24,6 + xor $15,$25,$30 + sll $14,$24,7 + and $15,$24 + srl $13,$24,11 + xor $31,$14 + sll $14,$24,21 + xor $31,$13 + srl $13,$24,25 + xor $31,$14 + sll $14,$24,26 + xor $31,$13 + xor $15,$30 # Ch(e,f,g) + xor $13,$14,$31 # Sigma1(e) + + srl $31,$1,2 + addu $12,$15 + lw $15,64($6) # K[16] + sll $14,$1,10 + addu $12,$13 + srl $13,$1,13 + xor $31,$14 + sll $14,$1,19 + xor $31,$13 + srl $13,$1,22 + xor $31,$14 + sll $14,$1,30 + xor $31,$13 + and $13,$2,$3 + xor $31,$14 # Sigma0(a) + xor $14,$2,$3 +#endif + sw $8,0($29) # offload to ring buffer + addu $31,$13 + and $14,$1 + addu $12,$15 # +=K[16] + addu $31,$14 # +=Maj(a,b,c) + addu $7,$12 + addu $31,$12 + lw $11,12($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $15,$10,3 # Xupdate(17) + rotr $13,$10,7 + addu $9,$18 # +=X[i+9] + xor $15,$13 + rotr $13,$10,18 + + srl $16,$23,10 + rotr $14,$23,17 + xor $15,$13 # sigma0(X[i+1]) + rotr $13,$23,19 + xor $16,$14 + addu $9,$15 +#else + srl $15,$10,3 # Xupdate(17) + addu $9,$18 # +=X[i+9] + sll $14,$10,14 + srl $13,$10,7 + xor $15,$14 + sll $14,11 + xor $15,$13 + srl $13,$10,18 + xor $15,$14 + + srl $16,$23,10 + xor $15,$13 # sigma0(X[i+1]) + sll $14,$23,13 + addu $9,$15 + srl $13,$23,17 + xor $16,$14 + sll $14,2 + xor $16,$13 + srl $13,$23,19 + xor $16,$14 +#endif + xor $16,$13 # sigma1(X[i+14]) + addu $9,$16 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $16,$24,$25 # 17 + rotr $14,$7,6 + addu $13,$9,$30 + rotr $15,$7,11 + and $16,$7 + rotr $30,$7,25 + xor $14,$15 + rotr $15,$31,2 + xor $16,$25 # Ch(e,f,g) + xor $14,$30 # Sigma1(e) + + rotr $30,$31,13 + addu $13,$16 + lw $16,68($6) # K[17] + xor $30,$15 + rotr $15,$31,22 + addu $13,$14 + and $14,$1,$2 + xor $30,$15 # Sigma0(a) + xor $15,$1,$2 +#else + addu $13,$9,$30 # 17 + srl $30,$7,6 + xor $16,$24,$25 + sll $15,$7,7 + and $16,$7 + srl $14,$7,11 + xor $30,$15 + sll $15,$7,21 + xor $30,$14 + srl $14,$7,25 + xor $30,$15 + sll $15,$7,26 + xor $30,$14 + xor $16,$25 # Ch(e,f,g) + xor $14,$15,$30 # Sigma1(e) + + srl $30,$31,2 + addu $13,$16 + lw $16,68($6) # K[17] + sll $15,$31,10 + addu $13,$14 + srl $14,$31,13 + xor $30,$15 + sll $15,$31,19 + xor $30,$14 + srl $14,$31,22 + xor $30,$15 + sll $15,$31,30 + xor $30,$14 + and $14,$1,$2 + xor $30,$15 # Sigma0(a) + xor $15,$1,$2 +#endif + sw $9,4($29) # offload to ring buffer + addu $30,$14 + and $15,$31 + addu $13,$16 # +=K[17] + addu $30,$15 # +=Maj(a,b,c) + addu $3,$13 + addu $30,$13 + lw $12,16($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $16,$11,3 # Xupdate(18) + rotr $14,$11,7 + addu $10,$19 # +=X[i+9] + xor $16,$14 + rotr $14,$11,18 + + srl $17,$8,10 + rotr $15,$8,17 + xor $16,$14 # sigma0(X[i+1]) + rotr $14,$8,19 + xor $17,$15 + addu $10,$16 +#else + srl $16,$11,3 # Xupdate(18) + addu $10,$19 # +=X[i+9] + sll $15,$11,14 + srl $14,$11,7 + xor $16,$15 + sll $15,11 + xor $16,$14 + srl $14,$11,18 + xor $16,$15 + + srl $17,$8,10 + xor $16,$14 # sigma0(X[i+1]) + sll $15,$8,13 + addu $10,$16 + srl $14,$8,17 + xor $17,$15 + sll $15,2 + xor $17,$14 + srl $14,$8,19 + xor $17,$15 +#endif + xor $17,$14 # sigma1(X[i+14]) + addu $10,$17 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $17,$7,$24 # 18 + rotr $15,$3,6 + addu $14,$10,$25 + rotr $16,$3,11 + and $17,$3 + rotr $25,$3,25 + xor $15,$16 + rotr $16,$30,2 + xor $17,$24 # Ch(e,f,g) + xor $15,$25 # Sigma1(e) + + rotr $25,$30,13 + addu $14,$17 + lw $17,72($6) # K[18] + xor $25,$16 + rotr $16,$30,22 + addu $14,$15 + and $15,$31,$1 + xor $25,$16 # Sigma0(a) + xor $16,$31,$1 +#else + addu $14,$10,$25 # 18 + srl $25,$3,6 + xor $17,$7,$24 + sll $16,$3,7 + and $17,$3 + srl $15,$3,11 + xor $25,$16 + sll $16,$3,21 + xor $25,$15 + srl $15,$3,25 + xor $25,$16 + sll $16,$3,26 + xor $25,$15 + xor $17,$24 # Ch(e,f,g) + xor $15,$16,$25 # Sigma1(e) + + srl $25,$30,2 + addu $14,$17 + lw $17,72($6) # K[18] + sll $16,$30,10 + addu $14,$15 + srl $15,$30,13 + xor $25,$16 + sll $16,$30,19 + xor $25,$15 + srl $15,$30,22 + xor $25,$16 + sll $16,$30,30 + xor $25,$15 + and $15,$31,$1 + xor $25,$16 # Sigma0(a) + xor $16,$31,$1 +#endif + sw $10,8($29) # offload to ring buffer + addu $25,$15 + and $16,$30 + addu $14,$17 # +=K[18] + addu $25,$16 # +=Maj(a,b,c) + addu $2,$14 + addu $25,$14 + lw $13,20($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $17,$12,3 # Xupdate(19) + rotr $15,$12,7 + addu $11,$20 # +=X[i+9] + xor $17,$15 + rotr $15,$12,18 + + srl $18,$9,10 + rotr $16,$9,17 + xor $17,$15 # sigma0(X[i+1]) + rotr $15,$9,19 + xor $18,$16 + addu $11,$17 +#else + srl $17,$12,3 # Xupdate(19) + addu $11,$20 # +=X[i+9] + sll $16,$12,14 + srl $15,$12,7 + xor $17,$16 + sll $16,11 + xor $17,$15 + srl $15,$12,18 + xor $17,$16 + + srl $18,$9,10 + xor $17,$15 # sigma0(X[i+1]) + sll $16,$9,13 + addu $11,$17 + srl $15,$9,17 + xor $18,$16 + sll $16,2 + xor $18,$15 + srl $15,$9,19 + xor $18,$16 +#endif + xor $18,$15 # sigma1(X[i+14]) + addu $11,$18 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $18,$3,$7 # 19 + rotr $16,$2,6 + addu $15,$11,$24 + rotr $17,$2,11 + and $18,$2 + rotr $24,$2,25 + xor $16,$17 + rotr $17,$25,2 + xor $18,$7 # Ch(e,f,g) + xor $16,$24 # Sigma1(e) + + rotr $24,$25,13 + addu $15,$18 + lw $18,76($6) # K[19] + xor $24,$17 + rotr $17,$25,22 + addu $15,$16 + and $16,$30,$31 + xor $24,$17 # Sigma0(a) + xor $17,$30,$31 +#else + addu $15,$11,$24 # 19 + srl $24,$2,6 + xor $18,$3,$7 + sll $17,$2,7 + and $18,$2 + srl $16,$2,11 + xor $24,$17 + sll $17,$2,21 + xor $24,$16 + srl $16,$2,25 + xor $24,$17 + sll $17,$2,26 + xor $24,$16 + xor $18,$7 # Ch(e,f,g) + xor $16,$17,$24 # Sigma1(e) + + srl $24,$25,2 + addu $15,$18 + lw $18,76($6) # K[19] + sll $17,$25,10 + addu $15,$16 + srl $16,$25,13 + xor $24,$17 + sll $17,$25,19 + xor $24,$16 + srl $16,$25,22 + xor $24,$17 + sll $17,$25,30 + xor $24,$16 + and $16,$30,$31 + xor $24,$17 # Sigma0(a) + xor $17,$30,$31 +#endif + sw $11,12($29) # offload to ring buffer + addu $24,$16 + and $17,$25 + addu $15,$18 # +=K[19] + addu $24,$17 # +=Maj(a,b,c) + addu $1,$15 + addu $24,$15 + lw $14,24($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $18,$13,3 # Xupdate(20) + rotr $16,$13,7 + addu $12,$21 # +=X[i+9] + xor $18,$16 + rotr $16,$13,18 + + srl $19,$10,10 + rotr $17,$10,17 + xor $18,$16 # sigma0(X[i+1]) + rotr $16,$10,19 + xor $19,$17 + addu $12,$18 +#else + srl $18,$13,3 # Xupdate(20) + addu $12,$21 # +=X[i+9] + sll $17,$13,14 + srl $16,$13,7 + xor $18,$17 + sll $17,11 + xor $18,$16 + srl $16,$13,18 + xor $18,$17 + + srl $19,$10,10 + xor $18,$16 # sigma0(X[i+1]) + sll $17,$10,13 + addu $12,$18 + srl $16,$10,17 + xor $19,$17 + sll $17,2 + xor $19,$16 + srl $16,$10,19 + xor $19,$17 +#endif + xor $19,$16 # sigma1(X[i+14]) + addu $12,$19 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $19,$2,$3 # 20 + rotr $17,$1,6 + addu $16,$12,$7 + rotr $18,$1,11 + and $19,$1 + rotr $7,$1,25 + xor $17,$18 + rotr $18,$24,2 + xor $19,$3 # Ch(e,f,g) + xor $17,$7 # Sigma1(e) + + rotr $7,$24,13 + addu $16,$19 + lw $19,80($6) # K[20] + xor $7,$18 + rotr $18,$24,22 + addu $16,$17 + and $17,$25,$30 + xor $7,$18 # Sigma0(a) + xor $18,$25,$30 +#else + addu $16,$12,$7 # 20 + srl $7,$1,6 + xor $19,$2,$3 + sll $18,$1,7 + and $19,$1 + srl $17,$1,11 + xor $7,$18 + sll $18,$1,21 + xor $7,$17 + srl $17,$1,25 + xor $7,$18 + sll $18,$1,26 + xor $7,$17 + xor $19,$3 # Ch(e,f,g) + xor $17,$18,$7 # Sigma1(e) + + srl $7,$24,2 + addu $16,$19 + lw $19,80($6) # K[20] + sll $18,$24,10 + addu $16,$17 + srl $17,$24,13 + xor $7,$18 + sll $18,$24,19 + xor $7,$17 + srl $17,$24,22 + xor $7,$18 + sll $18,$24,30 + xor $7,$17 + and $17,$25,$30 + xor $7,$18 # Sigma0(a) + xor $18,$25,$30 +#endif + sw $12,16($29) # offload to ring buffer + addu $7,$17 + and $18,$24 + addu $16,$19 # +=K[20] + addu $7,$18 # +=Maj(a,b,c) + addu $31,$16 + addu $7,$16 + lw $15,28($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $19,$14,3 # Xupdate(21) + rotr $17,$14,7 + addu $13,$22 # +=X[i+9] + xor $19,$17 + rotr $17,$14,18 + + srl $20,$11,10 + rotr $18,$11,17 + xor $19,$17 # sigma0(X[i+1]) + rotr $17,$11,19 + xor $20,$18 + addu $13,$19 +#else + srl $19,$14,3 # Xupdate(21) + addu $13,$22 # +=X[i+9] + sll $18,$14,14 + srl $17,$14,7 + xor $19,$18 + sll $18,11 + xor $19,$17 + srl $17,$14,18 + xor $19,$18 + + srl $20,$11,10 + xor $19,$17 # sigma0(X[i+1]) + sll $18,$11,13 + addu $13,$19 + srl $17,$11,17 + xor $20,$18 + sll $18,2 + xor $20,$17 + srl $17,$11,19 + xor $20,$18 +#endif + xor $20,$17 # sigma1(X[i+14]) + addu $13,$20 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $20,$1,$2 # 21 + rotr $18,$31,6 + addu $17,$13,$3 + rotr $19,$31,11 + and $20,$31 + rotr $3,$31,25 + xor $18,$19 + rotr $19,$7,2 + xor $20,$2 # Ch(e,f,g) + xor $18,$3 # Sigma1(e) + + rotr $3,$7,13 + addu $17,$20 + lw $20,84($6) # K[21] + xor $3,$19 + rotr $19,$7,22 + addu $17,$18 + and $18,$24,$25 + xor $3,$19 # Sigma0(a) + xor $19,$24,$25 +#else + addu $17,$13,$3 # 21 + srl $3,$31,6 + xor $20,$1,$2 + sll $19,$31,7 + and $20,$31 + srl $18,$31,11 + xor $3,$19 + sll $19,$31,21 + xor $3,$18 + srl $18,$31,25 + xor $3,$19 + sll $19,$31,26 + xor $3,$18 + xor $20,$2 # Ch(e,f,g) + xor $18,$19,$3 # Sigma1(e) + + srl $3,$7,2 + addu $17,$20 + lw $20,84($6) # K[21] + sll $19,$7,10 + addu $17,$18 + srl $18,$7,13 + xor $3,$19 + sll $19,$7,19 + xor $3,$18 + srl $18,$7,22 + xor $3,$19 + sll $19,$7,30 + xor $3,$18 + and $18,$24,$25 + xor $3,$19 # Sigma0(a) + xor $19,$24,$25 +#endif + sw $13,20($29) # offload to ring buffer + addu $3,$18 + and $19,$7 + addu $17,$20 # +=K[21] + addu $3,$19 # +=Maj(a,b,c) + addu $30,$17 + addu $3,$17 + lw $16,32($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $20,$15,3 # Xupdate(22) + rotr $18,$15,7 + addu $14,$23 # +=X[i+9] + xor $20,$18 + rotr $18,$15,18 + + srl $21,$12,10 + rotr $19,$12,17 + xor $20,$18 # sigma0(X[i+1]) + rotr $18,$12,19 + xor $21,$19 + addu $14,$20 +#else + srl $20,$15,3 # Xupdate(22) + addu $14,$23 # +=X[i+9] + sll $19,$15,14 + srl $18,$15,7 + xor $20,$19 + sll $19,11 + xor $20,$18 + srl $18,$15,18 + xor $20,$19 + + srl $21,$12,10 + xor $20,$18 # sigma0(X[i+1]) + sll $19,$12,13 + addu $14,$20 + srl $18,$12,17 + xor $21,$19 + sll $19,2 + xor $21,$18 + srl $18,$12,19 + xor $21,$19 +#endif + xor $21,$18 # sigma1(X[i+14]) + addu $14,$21 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $21,$31,$1 # 22 + rotr $19,$30,6 + addu $18,$14,$2 + rotr $20,$30,11 + and $21,$30 + rotr $2,$30,25 + xor $19,$20 + rotr $20,$3,2 + xor $21,$1 # Ch(e,f,g) + xor $19,$2 # Sigma1(e) + + rotr $2,$3,13 + addu $18,$21 + lw $21,88($6) # K[22] + xor $2,$20 + rotr $20,$3,22 + addu $18,$19 + and $19,$7,$24 + xor $2,$20 # Sigma0(a) + xor $20,$7,$24 +#else + addu $18,$14,$2 # 22 + srl $2,$30,6 + xor $21,$31,$1 + sll $20,$30,7 + and $21,$30 + srl $19,$30,11 + xor $2,$20 + sll $20,$30,21 + xor $2,$19 + srl $19,$30,25 + xor $2,$20 + sll $20,$30,26 + xor $2,$19 + xor $21,$1 # Ch(e,f,g) + xor $19,$20,$2 # Sigma1(e) + + srl $2,$3,2 + addu $18,$21 + lw $21,88($6) # K[22] + sll $20,$3,10 + addu $18,$19 + srl $19,$3,13 + xor $2,$20 + sll $20,$3,19 + xor $2,$19 + srl $19,$3,22 + xor $2,$20 + sll $20,$3,30 + xor $2,$19 + and $19,$7,$24 + xor $2,$20 # Sigma0(a) + xor $20,$7,$24 +#endif + sw $14,24($29) # offload to ring buffer + addu $2,$19 + and $20,$3 + addu $18,$21 # +=K[22] + addu $2,$20 # +=Maj(a,b,c) + addu $25,$18 + addu $2,$18 + lw $17,36($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $21,$16,3 # Xupdate(23) + rotr $19,$16,7 + addu $15,$8 # +=X[i+9] + xor $21,$19 + rotr $19,$16,18 + + srl $22,$13,10 + rotr $20,$13,17 + xor $21,$19 # sigma0(X[i+1]) + rotr $19,$13,19 + xor $22,$20 + addu $15,$21 +#else + srl $21,$16,3 # Xupdate(23) + addu $15,$8 # +=X[i+9] + sll $20,$16,14 + srl $19,$16,7 + xor $21,$20 + sll $20,11 + xor $21,$19 + srl $19,$16,18 + xor $21,$20 + + srl $22,$13,10 + xor $21,$19 # sigma0(X[i+1]) + sll $20,$13,13 + addu $15,$21 + srl $19,$13,17 + xor $22,$20 + sll $20,2 + xor $22,$19 + srl $19,$13,19 + xor $22,$20 +#endif + xor $22,$19 # sigma1(X[i+14]) + addu $15,$22 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $22,$30,$31 # 23 + rotr $20,$25,6 + addu $19,$15,$1 + rotr $21,$25,11 + and $22,$25 + rotr $1,$25,25 + xor $20,$21 + rotr $21,$2,2 + xor $22,$31 # Ch(e,f,g) + xor $20,$1 # Sigma1(e) + + rotr $1,$2,13 + addu $19,$22 + lw $22,92($6) # K[23] + xor $1,$21 + rotr $21,$2,22 + addu $19,$20 + and $20,$3,$7 + xor $1,$21 # Sigma0(a) + xor $21,$3,$7 +#else + addu $19,$15,$1 # 23 + srl $1,$25,6 + xor $22,$30,$31 + sll $21,$25,7 + and $22,$25 + srl $20,$25,11 + xor $1,$21 + sll $21,$25,21 + xor $1,$20 + srl $20,$25,25 + xor $1,$21 + sll $21,$25,26 + xor $1,$20 + xor $22,$31 # Ch(e,f,g) + xor $20,$21,$1 # Sigma1(e) + + srl $1,$2,2 + addu $19,$22 + lw $22,92($6) # K[23] + sll $21,$2,10 + addu $19,$20 + srl $20,$2,13 + xor $1,$21 + sll $21,$2,19 + xor $1,$20 + srl $20,$2,22 + xor $1,$21 + sll $21,$2,30 + xor $1,$20 + and $20,$3,$7 + xor $1,$21 # Sigma0(a) + xor $21,$3,$7 +#endif + sw $15,28($29) # offload to ring buffer + addu $1,$20 + and $21,$2 + addu $19,$22 # +=K[23] + addu $1,$21 # +=Maj(a,b,c) + addu $24,$19 + addu $1,$19 + lw $18,40($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $22,$17,3 # Xupdate(24) + rotr $20,$17,7 + addu $16,$9 # +=X[i+9] + xor $22,$20 + rotr $20,$17,18 + + srl $23,$14,10 + rotr $21,$14,17 + xor $22,$20 # sigma0(X[i+1]) + rotr $20,$14,19 + xor $23,$21 + addu $16,$22 +#else + srl $22,$17,3 # Xupdate(24) + addu $16,$9 # +=X[i+9] + sll $21,$17,14 + srl $20,$17,7 + xor $22,$21 + sll $21,11 + xor $22,$20 + srl $20,$17,18 + xor $22,$21 + + srl $23,$14,10 + xor $22,$20 # sigma0(X[i+1]) + sll $21,$14,13 + addu $16,$22 + srl $20,$14,17 + xor $23,$21 + sll $21,2 + xor $23,$20 + srl $20,$14,19 + xor $23,$21 +#endif + xor $23,$20 # sigma1(X[i+14]) + addu $16,$23 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $23,$25,$30 # 24 + rotr $21,$24,6 + addu $20,$16,$31 + rotr $22,$24,11 + and $23,$24 + rotr $31,$24,25 + xor $21,$22 + rotr $22,$1,2 + xor $23,$30 # Ch(e,f,g) + xor $21,$31 # Sigma1(e) + + rotr $31,$1,13 + addu $20,$23 + lw $23,96($6) # K[24] + xor $31,$22 + rotr $22,$1,22 + addu $20,$21 + and $21,$2,$3 + xor $31,$22 # Sigma0(a) + xor $22,$2,$3 +#else + addu $20,$16,$31 # 24 + srl $31,$24,6 + xor $23,$25,$30 + sll $22,$24,7 + and $23,$24 + srl $21,$24,11 + xor $31,$22 + sll $22,$24,21 + xor $31,$21 + srl $21,$24,25 + xor $31,$22 + sll $22,$24,26 + xor $31,$21 + xor $23,$30 # Ch(e,f,g) + xor $21,$22,$31 # Sigma1(e) + + srl $31,$1,2 + addu $20,$23 + lw $23,96($6) # K[24] + sll $22,$1,10 + addu $20,$21 + srl $21,$1,13 + xor $31,$22 + sll $22,$1,19 + xor $31,$21 + srl $21,$1,22 + xor $31,$22 + sll $22,$1,30 + xor $31,$21 + and $21,$2,$3 + xor $31,$22 # Sigma0(a) + xor $22,$2,$3 +#endif + sw $16,32($29) # offload to ring buffer + addu $31,$21 + and $22,$1 + addu $20,$23 # +=K[24] + addu $31,$22 # +=Maj(a,b,c) + addu $7,$20 + addu $31,$20 + lw $19,44($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $23,$18,3 # Xupdate(25) + rotr $21,$18,7 + addu $17,$10 # +=X[i+9] + xor $23,$21 + rotr $21,$18,18 + + srl $8,$15,10 + rotr $22,$15,17 + xor $23,$21 # sigma0(X[i+1]) + rotr $21,$15,19 + xor $8,$22 + addu $17,$23 +#else + srl $23,$18,3 # Xupdate(25) + addu $17,$10 # +=X[i+9] + sll $22,$18,14 + srl $21,$18,7 + xor $23,$22 + sll $22,11 + xor $23,$21 + srl $21,$18,18 + xor $23,$22 + + srl $8,$15,10 + xor $23,$21 # sigma0(X[i+1]) + sll $22,$15,13 + addu $17,$23 + srl $21,$15,17 + xor $8,$22 + sll $22,2 + xor $8,$21 + srl $21,$15,19 + xor $8,$22 +#endif + xor $8,$21 # sigma1(X[i+14]) + addu $17,$8 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $8,$24,$25 # 25 + rotr $22,$7,6 + addu $21,$17,$30 + rotr $23,$7,11 + and $8,$7 + rotr $30,$7,25 + xor $22,$23 + rotr $23,$31,2 + xor $8,$25 # Ch(e,f,g) + xor $22,$30 # Sigma1(e) + + rotr $30,$31,13 + addu $21,$8 + lw $8,100($6) # K[25] + xor $30,$23 + rotr $23,$31,22 + addu $21,$22 + and $22,$1,$2 + xor $30,$23 # Sigma0(a) + xor $23,$1,$2 +#else + addu $21,$17,$30 # 25 + srl $30,$7,6 + xor $8,$24,$25 + sll $23,$7,7 + and $8,$7 + srl $22,$7,11 + xor $30,$23 + sll $23,$7,21 + xor $30,$22 + srl $22,$7,25 + xor $30,$23 + sll $23,$7,26 + xor $30,$22 + xor $8,$25 # Ch(e,f,g) + xor $22,$23,$30 # Sigma1(e) + + srl $30,$31,2 + addu $21,$8 + lw $8,100($6) # K[25] + sll $23,$31,10 + addu $21,$22 + srl $22,$31,13 + xor $30,$23 + sll $23,$31,19 + xor $30,$22 + srl $22,$31,22 + xor $30,$23 + sll $23,$31,30 + xor $30,$22 + and $22,$1,$2 + xor $30,$23 # Sigma0(a) + xor $23,$1,$2 +#endif + sw $17,36($29) # offload to ring buffer + addu $30,$22 + and $23,$31 + addu $21,$8 # +=K[25] + addu $30,$23 # +=Maj(a,b,c) + addu $3,$21 + addu $30,$21 + lw $20,48($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $8,$19,3 # Xupdate(26) + rotr $22,$19,7 + addu $18,$11 # +=X[i+9] + xor $8,$22 + rotr $22,$19,18 + + srl $9,$16,10 + rotr $23,$16,17 + xor $8,$22 # sigma0(X[i+1]) + rotr $22,$16,19 + xor $9,$23 + addu $18,$8 +#else + srl $8,$19,3 # Xupdate(26) + addu $18,$11 # +=X[i+9] + sll $23,$19,14 + srl $22,$19,7 + xor $8,$23 + sll $23,11 + xor $8,$22 + srl $22,$19,18 + xor $8,$23 + + srl $9,$16,10 + xor $8,$22 # sigma0(X[i+1]) + sll $23,$16,13 + addu $18,$8 + srl $22,$16,17 + xor $9,$23 + sll $23,2 + xor $9,$22 + srl $22,$16,19 + xor $9,$23 +#endif + xor $9,$22 # sigma1(X[i+14]) + addu $18,$9 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $9,$7,$24 # 26 + rotr $23,$3,6 + addu $22,$18,$25 + rotr $8,$3,11 + and $9,$3 + rotr $25,$3,25 + xor $23,$8 + rotr $8,$30,2 + xor $9,$24 # Ch(e,f,g) + xor $23,$25 # Sigma1(e) + + rotr $25,$30,13 + addu $22,$9 + lw $9,104($6) # K[26] + xor $25,$8 + rotr $8,$30,22 + addu $22,$23 + and $23,$31,$1 + xor $25,$8 # Sigma0(a) + xor $8,$31,$1 +#else + addu $22,$18,$25 # 26 + srl $25,$3,6 + xor $9,$7,$24 + sll $8,$3,7 + and $9,$3 + srl $23,$3,11 + xor $25,$8 + sll $8,$3,21 + xor $25,$23 + srl $23,$3,25 + xor $25,$8 + sll $8,$3,26 + xor $25,$23 + xor $9,$24 # Ch(e,f,g) + xor $23,$8,$25 # Sigma1(e) + + srl $25,$30,2 + addu $22,$9 + lw $9,104($6) # K[26] + sll $8,$30,10 + addu $22,$23 + srl $23,$30,13 + xor $25,$8 + sll $8,$30,19 + xor $25,$23 + srl $23,$30,22 + xor $25,$8 + sll $8,$30,30 + xor $25,$23 + and $23,$31,$1 + xor $25,$8 # Sigma0(a) + xor $8,$31,$1 +#endif + sw $18,40($29) # offload to ring buffer + addu $25,$23 + and $8,$30 + addu $22,$9 # +=K[26] + addu $25,$8 # +=Maj(a,b,c) + addu $2,$22 + addu $25,$22 + lw $21,52($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $9,$20,3 # Xupdate(27) + rotr $23,$20,7 + addu $19,$12 # +=X[i+9] + xor $9,$23 + rotr $23,$20,18 + + srl $10,$17,10 + rotr $8,$17,17 + xor $9,$23 # sigma0(X[i+1]) + rotr $23,$17,19 + xor $10,$8 + addu $19,$9 +#else + srl $9,$20,3 # Xupdate(27) + addu $19,$12 # +=X[i+9] + sll $8,$20,14 + srl $23,$20,7 + xor $9,$8 + sll $8,11 + xor $9,$23 + srl $23,$20,18 + xor $9,$8 + + srl $10,$17,10 + xor $9,$23 # sigma0(X[i+1]) + sll $8,$17,13 + addu $19,$9 + srl $23,$17,17 + xor $10,$8 + sll $8,2 + xor $10,$23 + srl $23,$17,19 + xor $10,$8 +#endif + xor $10,$23 # sigma1(X[i+14]) + addu $19,$10 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $10,$3,$7 # 27 + rotr $8,$2,6 + addu $23,$19,$24 + rotr $9,$2,11 + and $10,$2 + rotr $24,$2,25 + xor $8,$9 + rotr $9,$25,2 + xor $10,$7 # Ch(e,f,g) + xor $8,$24 # Sigma1(e) + + rotr $24,$25,13 + addu $23,$10 + lw $10,108($6) # K[27] + xor $24,$9 + rotr $9,$25,22 + addu $23,$8 + and $8,$30,$31 + xor $24,$9 # Sigma0(a) + xor $9,$30,$31 +#else + addu $23,$19,$24 # 27 + srl $24,$2,6 + xor $10,$3,$7 + sll $9,$2,7 + and $10,$2 + srl $8,$2,11 + xor $24,$9 + sll $9,$2,21 + xor $24,$8 + srl $8,$2,25 + xor $24,$9 + sll $9,$2,26 + xor $24,$8 + xor $10,$7 # Ch(e,f,g) + xor $8,$9,$24 # Sigma1(e) + + srl $24,$25,2 + addu $23,$10 + lw $10,108($6) # K[27] + sll $9,$25,10 + addu $23,$8 + srl $8,$25,13 + xor $24,$9 + sll $9,$25,19 + xor $24,$8 + srl $8,$25,22 + xor $24,$9 + sll $9,$25,30 + xor $24,$8 + and $8,$30,$31 + xor $24,$9 # Sigma0(a) + xor $9,$30,$31 +#endif + sw $19,44($29) # offload to ring buffer + addu $24,$8 + and $9,$25 + addu $23,$10 # +=K[27] + addu $24,$9 # +=Maj(a,b,c) + addu $1,$23 + addu $24,$23 + lw $22,56($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $10,$21,3 # Xupdate(28) + rotr $8,$21,7 + addu $20,$13 # +=X[i+9] + xor $10,$8 + rotr $8,$21,18 + + srl $11,$18,10 + rotr $9,$18,17 + xor $10,$8 # sigma0(X[i+1]) + rotr $8,$18,19 + xor $11,$9 + addu $20,$10 +#else + srl $10,$21,3 # Xupdate(28) + addu $20,$13 # +=X[i+9] + sll $9,$21,14 + srl $8,$21,7 + xor $10,$9 + sll $9,11 + xor $10,$8 + srl $8,$21,18 + xor $10,$9 + + srl $11,$18,10 + xor $10,$8 # sigma0(X[i+1]) + sll $9,$18,13 + addu $20,$10 + srl $8,$18,17 + xor $11,$9 + sll $9,2 + xor $11,$8 + srl $8,$18,19 + xor $11,$9 +#endif + xor $11,$8 # sigma1(X[i+14]) + addu $20,$11 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $11,$2,$3 # 28 + rotr $9,$1,6 + addu $8,$20,$7 + rotr $10,$1,11 + and $11,$1 + rotr $7,$1,25 + xor $9,$10 + rotr $10,$24,2 + xor $11,$3 # Ch(e,f,g) + xor $9,$7 # Sigma1(e) + + rotr $7,$24,13 + addu $8,$11 + lw $11,112($6) # K[28] + xor $7,$10 + rotr $10,$24,22 + addu $8,$9 + and $9,$25,$30 + xor $7,$10 # Sigma0(a) + xor $10,$25,$30 +#else + addu $8,$20,$7 # 28 + srl $7,$1,6 + xor $11,$2,$3 + sll $10,$1,7 + and $11,$1 + srl $9,$1,11 + xor $7,$10 + sll $10,$1,21 + xor $7,$9 + srl $9,$1,25 + xor $7,$10 + sll $10,$1,26 + xor $7,$9 + xor $11,$3 # Ch(e,f,g) + xor $9,$10,$7 # Sigma1(e) + + srl $7,$24,2 + addu $8,$11 + lw $11,112($6) # K[28] + sll $10,$24,10 + addu $8,$9 + srl $9,$24,13 + xor $7,$10 + sll $10,$24,19 + xor $7,$9 + srl $9,$24,22 + xor $7,$10 + sll $10,$24,30 + xor $7,$9 + and $9,$25,$30 + xor $7,$10 # Sigma0(a) + xor $10,$25,$30 +#endif + sw $20,48($29) # offload to ring buffer + addu $7,$9 + and $10,$24 + addu $8,$11 # +=K[28] + addu $7,$10 # +=Maj(a,b,c) + addu $31,$8 + addu $7,$8 + lw $23,60($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $11,$22,3 # Xupdate(29) + rotr $9,$22,7 + addu $21,$14 # +=X[i+9] + xor $11,$9 + rotr $9,$22,18 + + srl $12,$19,10 + rotr $10,$19,17 + xor $11,$9 # sigma0(X[i+1]) + rotr $9,$19,19 + xor $12,$10 + addu $21,$11 +#else + srl $11,$22,3 # Xupdate(29) + addu $21,$14 # +=X[i+9] + sll $10,$22,14 + srl $9,$22,7 + xor $11,$10 + sll $10,11 + xor $11,$9 + srl $9,$22,18 + xor $11,$10 + + srl $12,$19,10 + xor $11,$9 # sigma0(X[i+1]) + sll $10,$19,13 + addu $21,$11 + srl $9,$19,17 + xor $12,$10 + sll $10,2 + xor $12,$9 + srl $9,$19,19 + xor $12,$10 +#endif + xor $12,$9 # sigma1(X[i+14]) + addu $21,$12 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $12,$1,$2 # 29 + rotr $10,$31,6 + addu $9,$21,$3 + rotr $11,$31,11 + and $12,$31 + rotr $3,$31,25 + xor $10,$11 + rotr $11,$7,2 + xor $12,$2 # Ch(e,f,g) + xor $10,$3 # Sigma1(e) + + rotr $3,$7,13 + addu $9,$12 + lw $12,116($6) # K[29] + xor $3,$11 + rotr $11,$7,22 + addu $9,$10 + and $10,$24,$25 + xor $3,$11 # Sigma0(a) + xor $11,$24,$25 +#else + addu $9,$21,$3 # 29 + srl $3,$31,6 + xor $12,$1,$2 + sll $11,$31,7 + and $12,$31 + srl $10,$31,11 + xor $3,$11 + sll $11,$31,21 + xor $3,$10 + srl $10,$31,25 + xor $3,$11 + sll $11,$31,26 + xor $3,$10 + xor $12,$2 # Ch(e,f,g) + xor $10,$11,$3 # Sigma1(e) + + srl $3,$7,2 + addu $9,$12 + lw $12,116($6) # K[29] + sll $11,$7,10 + addu $9,$10 + srl $10,$7,13 + xor $3,$11 + sll $11,$7,19 + xor $3,$10 + srl $10,$7,22 + xor $3,$11 + sll $11,$7,30 + xor $3,$10 + and $10,$24,$25 + xor $3,$11 # Sigma0(a) + xor $11,$24,$25 +#endif + sw $21,52($29) # offload to ring buffer + addu $3,$10 + and $11,$7 + addu $9,$12 # +=K[29] + addu $3,$11 # +=Maj(a,b,c) + addu $30,$9 + addu $3,$9 + lw $8,0($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $12,$23,3 # Xupdate(30) + rotr $10,$23,7 + addu $22,$15 # +=X[i+9] + xor $12,$10 + rotr $10,$23,18 + + srl $13,$20,10 + rotr $11,$20,17 + xor $12,$10 # sigma0(X[i+1]) + rotr $10,$20,19 + xor $13,$11 + addu $22,$12 +#else + srl $12,$23,3 # Xupdate(30) + addu $22,$15 # +=X[i+9] + sll $11,$23,14 + srl $10,$23,7 + xor $12,$11 + sll $11,11 + xor $12,$10 + srl $10,$23,18 + xor $12,$11 + + srl $13,$20,10 + xor $12,$10 # sigma0(X[i+1]) + sll $11,$20,13 + addu $22,$12 + srl $10,$20,17 + xor $13,$11 + sll $11,2 + xor $13,$10 + srl $10,$20,19 + xor $13,$11 +#endif + xor $13,$10 # sigma1(X[i+14]) + addu $22,$13 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $13,$31,$1 # 30 + rotr $11,$30,6 + addu $10,$22,$2 + rotr $12,$30,11 + and $13,$30 + rotr $2,$30,25 + xor $11,$12 + rotr $12,$3,2 + xor $13,$1 # Ch(e,f,g) + xor $11,$2 # Sigma1(e) + + rotr $2,$3,13 + addu $10,$13 + lw $13,120($6) # K[30] + xor $2,$12 + rotr $12,$3,22 + addu $10,$11 + and $11,$7,$24 + xor $2,$12 # Sigma0(a) + xor $12,$7,$24 +#else + addu $10,$22,$2 # 30 + srl $2,$30,6 + xor $13,$31,$1 + sll $12,$30,7 + and $13,$30 + srl $11,$30,11 + xor $2,$12 + sll $12,$30,21 + xor $2,$11 + srl $11,$30,25 + xor $2,$12 + sll $12,$30,26 + xor $2,$11 + xor $13,$1 # Ch(e,f,g) + xor $11,$12,$2 # Sigma1(e) + + srl $2,$3,2 + addu $10,$13 + lw $13,120($6) # K[30] + sll $12,$3,10 + addu $10,$11 + srl $11,$3,13 + xor $2,$12 + sll $12,$3,19 + xor $2,$11 + srl $11,$3,22 + xor $2,$12 + sll $12,$3,30 + xor $2,$11 + and $11,$7,$24 + xor $2,$12 # Sigma0(a) + xor $12,$7,$24 +#endif + sw $22,56($29) # offload to ring buffer + addu $2,$11 + and $12,$3 + addu $10,$13 # +=K[30] + addu $2,$12 # +=Maj(a,b,c) + addu $25,$10 + addu $2,$10 + lw $9,4($29) # prefetch from ring buffer +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + srl $13,$8,3 # Xupdate(31) + rotr $11,$8,7 + addu $23,$16 # +=X[i+9] + xor $13,$11 + rotr $11,$8,18 + + srl $14,$21,10 + rotr $12,$21,17 + xor $13,$11 # sigma0(X[i+1]) + rotr $11,$21,19 + xor $14,$12 + addu $23,$13 +#else + srl $13,$8,3 # Xupdate(31) + addu $23,$16 # +=X[i+9] + sll $12,$8,14 + srl $11,$8,7 + xor $13,$12 + sll $12,11 + xor $13,$11 + srl $11,$8,18 + xor $13,$12 + + srl $14,$21,10 + xor $13,$11 # sigma0(X[i+1]) + sll $12,$21,13 + addu $23,$13 + srl $11,$21,17 + xor $14,$12 + sll $12,2 + xor $14,$11 + srl $11,$21,19 + xor $14,$12 +#endif + xor $14,$11 # sigma1(X[i+14]) + addu $23,$14 +#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) + xor $14,$30,$31 # 31 + rotr $12,$25,6 + addu $11,$23,$1 + rotr $13,$25,11 + and $14,$25 + rotr $1,$25,25 + xor $12,$13 + rotr $13,$2,2 + xor $14,$31 # Ch(e,f,g) + xor $12,$1 # Sigma1(e) + + rotr $1,$2,13 + addu $11,$14 + lw $14,124($6) # K[31] + xor $1,$13 + rotr $13,$2,22 + addu $11,$12 + and $12,$3,$7 + xor $1,$13 # Sigma0(a) + xor $13,$3,$7 +#else + addu $11,$23,$1 # 31 + srl $1,$25,6 + xor $14,$30,$31 + sll $13,$25,7 + and $14,$25 + srl $12,$25,11 + xor $1,$13 + sll $13,$25,21 + xor $1,$12 + srl $12,$25,25 + xor $1,$13 + sll $13,$25,26 + xor $1,$12 + xor $14,$31 # Ch(e,f,g) + xor $12,$13,$1 # Sigma1(e) + + srl $1,$2,2 + addu $11,$14 + lw $14,124($6) # K[31] + sll $13,$2,10 + addu $11,$12 + srl $12,$2,13 + xor $1,$13 + sll $13,$2,19 + xor $1,$12 + srl $12,$2,22 + xor $1,$13 + sll $13,$2,30 + xor $1,$12 + and $12,$3,$7 + xor $1,$13 # Sigma0(a) + xor $13,$3,$7 +#endif + sw $23,60($29) # offload to ring buffer + addu $1,$12 + and $13,$2 + addu $11,$14 # +=K[31] + addu $1,$13 # +=Maj(a,b,c) + addu $24,$11 + addu $1,$11 + lw $10,8($29) # prefetch from ring buffer + and $14,0xfff + li $15,2290 + .set noreorder + bne $14,$15,.L16_xx + addu $6,16*4 # Ktbl+=16 + + lw $23,16*4($29) # restore pointer to the end of input + lw $8,0*4($4) + lw $9,1*4($4) + lw $10,2*4($4) + addu $5,16*4 + lw $11,3*4($4) + addu $1,$8 + lw $12,4*4($4) + addu $2,$9 + lw $13,5*4($4) + addu $3,$10 + lw $14,6*4($4) + addu $7,$11 + lw $15,7*4($4) + addu $24,$12 + sw $1,0*4($4) + addu $25,$13 + sw $2,1*4($4) + addu $30,$14 + sw $3,2*4($4) + addu $31,$15 + sw $7,3*4($4) + sw $24,4*4($4) + sw $25,5*4($4) + sw $30,6*4($4) + sw $31,7*4($4) + + bne $5,$23,.Loop + subu $6,192 # rewind $6 + + lw $31,128-1*4($29) + lw $30,128-2*4($29) + lw $23,128-3*4($29) + lw $22,128-4*4($29) + lw $21,128-5*4($29) + lw $20,128-6*4($29) + lw $19,128-7*4($29) + lw $18,128-8*4($29) + lw $17,128-9*4($29) + lw $16,128-10*4($29) + jr $31 + addu $29,128 +.end sha256_block_data_order + +.rdata +.align 5 +K256: + .word 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5 + .word 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5 + .word 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3 + .word 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174 + .word 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc + .word 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da + .word 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7 + .word 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967 + .word 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13 + .word 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85 + .word 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3 + .word 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070 + .word 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5 + .word 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3 + .word 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208 + .word 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 +.asciiz "SHA256 for MIPS, CRYPTOGAMS by " +.align 5 + diff -urN a/deps/openssl/config/archs/linux-mipsel/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux-mipsel/asm/include/openssl/opensslconf.h --- a/deps/openssl/config/archs/linux-mipsel/asm/include/openssl/opensslconf.h 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mipsel/asm/include/openssl/opensslconf.h 2019-12-25 13:49:19.992298784 +0900 @@ -0,0 +1,201 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# define BN_LLONG +/* Only one for the following should be defined */ +# undef SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# define THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned char + +#ifdef __cplusplus +} +#endif diff -urN a/deps/openssl/config/archs/linux-mipsel/asm/include/progs.h b/deps/openssl/config/archs/linux-mipsel/asm/include/progs.h --- a/deps/openssl/config/archs/linux-mipsel/asm/include/progs.h 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mipsel/asm/include/progs.h 2019-12-25 13:49:19.992298784 +0900 @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff -urN a/deps/openssl/config/archs/linux-mipsel/asm/openssl-cl.gypi b/deps/openssl/config/archs/linux-mipsel/asm/openssl-cl.gypi --- a/deps/openssl/config/archs/linux-mipsel/asm/openssl-cl.gypi 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mipsel/asm/openssl-cl.gypi 2019-12-25 13:49:19.992298784 +0900 @@ -0,0 +1,81 @@ +{ + 'variables': { + 'openssl_defines_linux-mipsel': [ + 'NDEBUG', + 'OPENSSL_USE_NODELETE', + 'OPENSSL_PIC', + 'OPENSSL_BN_ASM_MONT', + 'SHA1_ASM', + 'SHA256_ASM', + 'AES_ASM', + ], + 'openssl_cflags_linux-mipsel': [ + '-Wall -O3 -pthread', + ], + 'openssl_ex_libs_linux-mipsel': [ + '-ldl -pthread', + ], + 'openssl_cli_srcs_linux-mipsel': [ + 'openssl/apps/asn1pars.c', + 'openssl/apps/ca.c', + 'openssl/apps/ciphers.c', + 'openssl/apps/cms.c', + 'openssl/apps/crl.c', + 'openssl/apps/crl2p7.c', + 'openssl/apps/dgst.c', + 'openssl/apps/dhparam.c', + 'openssl/apps/dsa.c', + 'openssl/apps/dsaparam.c', + 'openssl/apps/ec.c', + 'openssl/apps/ecparam.c', + 'openssl/apps/enc.c', + 'openssl/apps/engine.c', + 'openssl/apps/errstr.c', + 'openssl/apps/gendsa.c', + 'openssl/apps/genpkey.c', + 'openssl/apps/genrsa.c', + 'openssl/apps/nseq.c', + 'openssl/apps/ocsp.c', + 'openssl/apps/openssl.c', + 'openssl/apps/passwd.c', + 'openssl/apps/pkcs12.c', + 'openssl/apps/pkcs7.c', + 'openssl/apps/pkcs8.c', + 'openssl/apps/pkey.c', + 'openssl/apps/pkeyparam.c', + 'openssl/apps/pkeyutl.c', + 'openssl/apps/prime.c', + 'openssl/apps/rand.c', + 'openssl/apps/rehash.c', + 'openssl/apps/req.c', + 'openssl/apps/rsa.c', + 'openssl/apps/rsautl.c', + 'openssl/apps/s_client.c', + 'openssl/apps/s_server.c', + 'openssl/apps/s_time.c', + 'openssl/apps/sess_id.c', + 'openssl/apps/smime.c', + 'openssl/apps/speed.c', + 'openssl/apps/spkac.c', + 'openssl/apps/srp.c', + 'openssl/apps/storeutl.c', + 'openssl/apps/ts.c', + 'openssl/apps/verify.c', + 'openssl/apps/version.c', + 'openssl/apps/x509.c', + 'openssl/apps/app_rand.c', + 'openssl/apps/apps.c', + 'openssl/apps/bf_prefix.c', + 'openssl/apps/opt.c', + 'openssl/apps/s_cb.c', + 'openssl/apps/s_socket.c', + ], + }, + 'defines': ['<@(openssl_defines_linux-mipsel)'], + 'include_dirs': [ + './include', + ], + 'cflags' : ['<@(openssl_cflags_linux-mipsel)'], + 'libraries': ['<@(openssl_ex_libs_linux-mipsel)'], + 'sources': ['<@(openssl_cli_srcs_linux-mipsel)'], +} diff -urN a/deps/openssl/config/archs/linux-mipsel/asm/openssl.gypi b/deps/openssl/config/archs/linux-mipsel/asm/openssl.gypi --- a/deps/openssl/config/archs/linux-mipsel/asm/openssl.gypi 1970-01-01 09:00:00.000000000 +0900 +++ b/deps/openssl/config/archs/linux-mipsel/asm/openssl.gypi 2019-12-25 13:49:19.992298784 +0900 @@ -0,0 +1,716 @@ +{ + 'variables': { + 'openssl_sources': [ + 'openssl/ssl/bio_ssl.c', + 'openssl/ssl/d1_lib.c', + 'openssl/ssl/d1_msg.c', + 'openssl/ssl/d1_srtp.c', + 'openssl/ssl/methods.c', + 'openssl/ssl/packet.c', + 'openssl/ssl/pqueue.c', + 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/record/rec_layer_d1.c', + 'openssl/ssl/record/rec_layer_s3.c', + 'openssl/ssl/record/ssl3_buffer.c', + 'openssl/ssl/record/ssl3_record.c', + 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/s3_enc.c', + 'openssl/ssl/s3_lib.c', + 'openssl/ssl/s3_msg.c', + 'openssl/ssl/ssl_asn1.c', + 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_ciph.c', + 'openssl/ssl/ssl_conf.c', + 'openssl/ssl/ssl_err.c', + 'openssl/ssl/ssl_init.c', + 'openssl/ssl/ssl_lib.c', + 'openssl/ssl/ssl_mcnf.c', + 'openssl/ssl/ssl_rsa.c', + 'openssl/ssl/ssl_sess.c', + 'openssl/ssl/ssl_stat.c', + 'openssl/ssl/ssl_txt.c', + 'openssl/ssl/ssl_utst.c', + 'openssl/ssl/statem/extensions.c', + 'openssl/ssl/statem/extensions_clnt.c', + 'openssl/ssl/statem/extensions_cust.c', + 'openssl/ssl/statem/extensions_srvr.c', + 'openssl/ssl/statem/statem.c', + 'openssl/ssl/statem/statem_clnt.c', + 'openssl/ssl/statem/statem_dtls.c', + 'openssl/ssl/statem/statem_lib.c', + 'openssl/ssl/statem/statem_srvr.c', + 'openssl/ssl/t1_enc.c', + 'openssl/ssl/t1_lib.c', + 'openssl/ssl/t1_trce.c', + 'openssl/ssl/tls13_enc.c', + 'openssl/ssl/tls_srp.c', + 'openssl/crypto/aes/aes_cbc.c', + 'openssl/crypto/aes/aes_cfb.c', + 'openssl/crypto/aes/aes_ecb.c', + 'openssl/crypto/aes/aes_ige.c', + 'openssl/crypto/aes/aes_misc.c', + 'openssl/crypto/aes/aes_ofb.c', + 'openssl/crypto/aes/aes_wrap.c', + 'openssl/crypto/aria/aria.c', + 'openssl/crypto/asn1/a_bitstr.c', + 'openssl/crypto/asn1/a_d2i_fp.c', + 'openssl/crypto/asn1/a_digest.c', + 'openssl/crypto/asn1/a_dup.c', + 'openssl/crypto/asn1/a_gentm.c', + 'openssl/crypto/asn1/a_i2d_fp.c', + 'openssl/crypto/asn1/a_int.c', + 'openssl/crypto/asn1/a_mbstr.c', + 'openssl/crypto/asn1/a_object.c', + 'openssl/crypto/asn1/a_octet.c', + 'openssl/crypto/asn1/a_print.c', + 'openssl/crypto/asn1/a_sign.c', + 'openssl/crypto/asn1/a_strex.c', + 'openssl/crypto/asn1/a_strnid.c', + 'openssl/crypto/asn1/a_time.c', + 'openssl/crypto/asn1/a_type.c', + 'openssl/crypto/asn1/a_utctm.c', + 'openssl/crypto/asn1/a_utf8.c', + 'openssl/crypto/asn1/a_verify.c', + 'openssl/crypto/asn1/ameth_lib.c', + 'openssl/crypto/asn1/asn1_err.c', + 'openssl/crypto/asn1/asn1_gen.c', + 'openssl/crypto/asn1/asn1_item_list.c', + 'openssl/crypto/asn1/asn1_lib.c', + 'openssl/crypto/asn1/asn1_par.c', + 'openssl/crypto/asn1/asn_mime.c', + 'openssl/crypto/asn1/asn_moid.c', + 'openssl/crypto/asn1/asn_mstbl.c', + 'openssl/crypto/asn1/asn_pack.c', + 'openssl/crypto/asn1/bio_asn1.c', + 'openssl/crypto/asn1/bio_ndef.c', + 'openssl/crypto/asn1/d2i_pr.c', + 'openssl/crypto/asn1/d2i_pu.c', + 'openssl/crypto/asn1/evp_asn1.c', + 'openssl/crypto/asn1/f_int.c', + 'openssl/crypto/asn1/f_string.c', + 'openssl/crypto/asn1/i2d_pr.c', + 'openssl/crypto/asn1/i2d_pu.c', + 'openssl/crypto/asn1/n_pkey.c', + 'openssl/crypto/asn1/nsseq.c', + 'openssl/crypto/asn1/p5_pbe.c', + 'openssl/crypto/asn1/p5_pbev2.c', + 'openssl/crypto/asn1/p5_scrypt.c', + 'openssl/crypto/asn1/p8_pkey.c', + 'openssl/crypto/asn1/t_bitst.c', + 'openssl/crypto/asn1/t_pkey.c', + 'openssl/crypto/asn1/t_spki.c', + 'openssl/crypto/asn1/tasn_dec.c', + 'openssl/crypto/asn1/tasn_enc.c', + 'openssl/crypto/asn1/tasn_fre.c', + 'openssl/crypto/asn1/tasn_new.c', + 'openssl/crypto/asn1/tasn_prn.c', + 'openssl/crypto/asn1/tasn_scn.c', + 'openssl/crypto/asn1/tasn_typ.c', + 'openssl/crypto/asn1/tasn_utl.c', + 'openssl/crypto/asn1/x_algor.c', + 'openssl/crypto/asn1/x_bignum.c', + 'openssl/crypto/asn1/x_info.c', + 'openssl/crypto/asn1/x_int64.c', + 'openssl/crypto/asn1/x_long.c', + 'openssl/crypto/asn1/x_pkey.c', + 'openssl/crypto/asn1/x_sig.c', + 'openssl/crypto/asn1/x_spki.c', + 'openssl/crypto/asn1/x_val.c', + 'openssl/crypto/async/arch/async_null.c', + 'openssl/crypto/async/arch/async_posix.c', + 'openssl/crypto/async/arch/async_win.c', + 'openssl/crypto/async/async.c', + 'openssl/crypto/async/async_err.c', + 'openssl/crypto/async/async_wait.c', + 'openssl/crypto/bf/bf_cfb64.c', + 'openssl/crypto/bf/bf_ecb.c', + 'openssl/crypto/bf/bf_enc.c', + 'openssl/crypto/bf/bf_ofb64.c', + 'openssl/crypto/bf/bf_skey.c', + 'openssl/crypto/bio/b_addr.c', + 'openssl/crypto/bio/b_dump.c', + 'openssl/crypto/bio/b_print.c', + 'openssl/crypto/bio/b_sock.c', + 'openssl/crypto/bio/b_sock2.c', + 'openssl/crypto/bio/bf_buff.c', + 'openssl/crypto/bio/bf_lbuf.c', + 'openssl/crypto/bio/bf_nbio.c', + 'openssl/crypto/bio/bf_null.c', + 'openssl/crypto/bio/bio_cb.c', + 'openssl/crypto/bio/bio_err.c', + 'openssl/crypto/bio/bio_lib.c', + 'openssl/crypto/bio/bio_meth.c', + 'openssl/crypto/bio/bss_acpt.c', + 'openssl/crypto/bio/bss_bio.c', + 'openssl/crypto/bio/bss_conn.c', + 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_fd.c', + 'openssl/crypto/bio/bss_file.c', + 'openssl/crypto/bio/bss_log.c', + 'openssl/crypto/bio/bss_mem.c', + 'openssl/crypto/bio/bss_null.c', + 'openssl/crypto/bio/bss_sock.c', + 'openssl/crypto/blake2/blake2b.c', + 'openssl/crypto/blake2/blake2s.c', + 'openssl/crypto/blake2/m_blake2b.c', + 'openssl/crypto/blake2/m_blake2s.c', + 'openssl/crypto/bn/bn_add.c', + 'openssl/crypto/bn/bn_blind.c', + 'openssl/crypto/bn/bn_const.c', + 'openssl/crypto/bn/bn_ctx.c', + 'openssl/crypto/bn/bn_depr.c', + 'openssl/crypto/bn/bn_dh.c', + 'openssl/crypto/bn/bn_div.c', + 'openssl/crypto/bn/bn_err.c', + 'openssl/crypto/bn/bn_exp.c', + 'openssl/crypto/bn/bn_exp2.c', + 'openssl/crypto/bn/bn_gcd.c', + 'openssl/crypto/bn/bn_gf2m.c', + 'openssl/crypto/bn/bn_intern.c', + 'openssl/crypto/bn/bn_kron.c', + 'openssl/crypto/bn/bn_lib.c', + 'openssl/crypto/bn/bn_mod.c', + 'openssl/crypto/bn/bn_mont.c', + 'openssl/crypto/bn/bn_mpi.c', + 'openssl/crypto/bn/bn_mul.c', + 'openssl/crypto/bn/bn_nist.c', + 'openssl/crypto/bn/bn_prime.c', + 'openssl/crypto/bn/bn_print.c', + 'openssl/crypto/bn/bn_rand.c', + 'openssl/crypto/bn/bn_recp.c', + 'openssl/crypto/bn/bn_shift.c', + 'openssl/crypto/bn/bn_sqr.c', + 'openssl/crypto/bn/bn_sqrt.c', + 'openssl/crypto/bn/bn_srp.c', + 'openssl/crypto/bn/bn_word.c', + 'openssl/crypto/bn/bn_x931p.c', + 'openssl/crypto/buffer/buf_err.c', + 'openssl/crypto/buffer/buffer.c', + 'openssl/crypto/camellia/camellia.c', + 'openssl/crypto/camellia/cmll_cbc.c', + 'openssl/crypto/camellia/cmll_cfb.c', + 'openssl/crypto/camellia/cmll_ctr.c', + 'openssl/crypto/camellia/cmll_ecb.c', + 'openssl/crypto/camellia/cmll_misc.c', + 'openssl/crypto/camellia/cmll_ofb.c', + 'openssl/crypto/cast/c_cfb64.c', + 'openssl/crypto/cast/c_ecb.c', + 'openssl/crypto/cast/c_enc.c', + 'openssl/crypto/cast/c_ofb64.c', + 'openssl/crypto/cast/c_skey.c', + 'openssl/crypto/chacha/chacha_enc.c', + 'openssl/crypto/cmac/cm_ameth.c', + 'openssl/crypto/cmac/cm_pmeth.c', + 'openssl/crypto/cmac/cmac.c', + 'openssl/crypto/cms/cms_asn1.c', + 'openssl/crypto/cms/cms_att.c', + 'openssl/crypto/cms/cms_cd.c', + 'openssl/crypto/cms/cms_dd.c', + 'openssl/crypto/cms/cms_enc.c', + 'openssl/crypto/cms/cms_env.c', + 'openssl/crypto/cms/cms_err.c', + 'openssl/crypto/cms/cms_ess.c', + 'openssl/crypto/cms/cms_io.c', + 'openssl/crypto/cms/cms_kari.c', + 'openssl/crypto/cms/cms_lib.c', + 'openssl/crypto/cms/cms_pwri.c', + 'openssl/crypto/cms/cms_sd.c', + 'openssl/crypto/cms/cms_smime.c', + 'openssl/crypto/conf/conf_api.c', + 'openssl/crypto/conf/conf_def.c', + 'openssl/crypto/conf/conf_err.c', + 'openssl/crypto/conf/conf_lib.c', + 'openssl/crypto/conf/conf_mall.c', + 'openssl/crypto/conf/conf_mod.c', + 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', + 'openssl/crypto/cpt_err.c', + 'openssl/crypto/cryptlib.c', + 'openssl/crypto/ct/ct_b64.c', + 'openssl/crypto/ct/ct_err.c', + 'openssl/crypto/ct/ct_log.c', + 'openssl/crypto/ct/ct_oct.c', + 'openssl/crypto/ct/ct_policy.c', + 'openssl/crypto/ct/ct_prn.c', + 'openssl/crypto/ct/ct_sct.c', + 'openssl/crypto/ct/ct_sct_ctx.c', + 'openssl/crypto/ct/ct_vfy.c', + 'openssl/crypto/ct/ct_x509v3.c', + 'openssl/crypto/ctype.c', + 'openssl/crypto/cversion.c', + 'openssl/crypto/des/cbc_cksm.c', + 'openssl/crypto/des/cbc_enc.c', + 'openssl/crypto/des/cfb64ede.c', + 'openssl/crypto/des/cfb64enc.c', + 'openssl/crypto/des/cfb_enc.c', + 'openssl/crypto/des/des_enc.c', + 'openssl/crypto/des/ecb3_enc.c', + 'openssl/crypto/des/ecb_enc.c', + 'openssl/crypto/des/fcrypt.c', + 'openssl/crypto/des/fcrypt_b.c', + 'openssl/crypto/des/ofb64ede.c', + 'openssl/crypto/des/ofb64enc.c', + 'openssl/crypto/des/ofb_enc.c', + 'openssl/crypto/des/pcbc_enc.c', + 'openssl/crypto/des/qud_cksm.c', + 'openssl/crypto/des/rand_key.c', + 'openssl/crypto/des/set_key.c', + 'openssl/crypto/des/str2key.c', + 'openssl/crypto/des/xcbc_enc.c', + 'openssl/crypto/dh/dh_ameth.c', + 'openssl/crypto/dh/dh_asn1.c', + 'openssl/crypto/dh/dh_check.c', + 'openssl/crypto/dh/dh_depr.c', + 'openssl/crypto/dh/dh_err.c', + 'openssl/crypto/dh/dh_gen.c', + 'openssl/crypto/dh/dh_kdf.c', + 'openssl/crypto/dh/dh_key.c', + 'openssl/crypto/dh/dh_lib.c', + 'openssl/crypto/dh/dh_meth.c', + 'openssl/crypto/dh/dh_pmeth.c', + 'openssl/crypto/dh/dh_prn.c', + 'openssl/crypto/dh/dh_rfc5114.c', + 'openssl/crypto/dh/dh_rfc7919.c', + 'openssl/crypto/dsa/dsa_ameth.c', + 'openssl/crypto/dsa/dsa_asn1.c', + 'openssl/crypto/dsa/dsa_depr.c', + 'openssl/crypto/dsa/dsa_err.c', + 'openssl/crypto/dsa/dsa_gen.c', + 'openssl/crypto/dsa/dsa_key.c', + 'openssl/crypto/dsa/dsa_lib.c', + 'openssl/crypto/dsa/dsa_meth.c', + 'openssl/crypto/dsa/dsa_ossl.c', + 'openssl/crypto/dsa/dsa_pmeth.c', + 'openssl/crypto/dsa/dsa_prn.c', + 'openssl/crypto/dsa/dsa_sign.c', + 'openssl/crypto/dsa/dsa_vrf.c', + 'openssl/crypto/dso/dso_dl.c', + 'openssl/crypto/dso/dso_dlfcn.c', + 'openssl/crypto/dso/dso_err.c', + 'openssl/crypto/dso/dso_lib.c', + 'openssl/crypto/dso/dso_openssl.c', + 'openssl/crypto/dso/dso_vms.c', + 'openssl/crypto/dso/dso_win32.c', + 'openssl/crypto/ebcdic.c', + 'openssl/crypto/ec/curve25519.c', + 'openssl/crypto/ec/curve448/arch_32/f_impl.c', + 'openssl/crypto/ec/curve448/curve448.c', + 'openssl/crypto/ec/curve448/curve448_tables.c', + 'openssl/crypto/ec/curve448/eddsa.c', + 'openssl/crypto/ec/curve448/f_generic.c', + 'openssl/crypto/ec/curve448/scalar.c', + 'openssl/crypto/ec/ec2_oct.c', + 'openssl/crypto/ec/ec2_smpl.c', + 'openssl/crypto/ec/ec_ameth.c', + 'openssl/crypto/ec/ec_asn1.c', + 'openssl/crypto/ec/ec_check.c', + 'openssl/crypto/ec/ec_curve.c', + 'openssl/crypto/ec/ec_cvt.c', + 'openssl/crypto/ec/ec_err.c', + 'openssl/crypto/ec/ec_key.c', + 'openssl/crypto/ec/ec_kmeth.c', + 'openssl/crypto/ec/ec_lib.c', + 'openssl/crypto/ec/ec_mult.c', + 'openssl/crypto/ec/ec_oct.c', + 'openssl/crypto/ec/ec_pmeth.c', + 'openssl/crypto/ec/ec_print.c', + 'openssl/crypto/ec/ecdh_kdf.c', + 'openssl/crypto/ec/ecdh_ossl.c', + 'openssl/crypto/ec/ecdsa_ossl.c', + 'openssl/crypto/ec/ecdsa_sign.c', + 'openssl/crypto/ec/ecdsa_vrf.c', + 'openssl/crypto/ec/eck_prn.c', + 'openssl/crypto/ec/ecp_mont.c', + 'openssl/crypto/ec/ecp_nist.c', + 'openssl/crypto/ec/ecp_nistp224.c', + 'openssl/crypto/ec/ecp_nistp256.c', + 'openssl/crypto/ec/ecp_nistp521.c', + 'openssl/crypto/ec/ecp_nistputil.c', + 'openssl/crypto/ec/ecp_oct.c', + 'openssl/crypto/ec/ecp_smpl.c', + 'openssl/crypto/ec/ecx_meth.c', + 'openssl/crypto/engine/eng_all.c', + 'openssl/crypto/engine/eng_cnf.c', + 'openssl/crypto/engine/eng_ctrl.c', + 'openssl/crypto/engine/eng_dyn.c', + 'openssl/crypto/engine/eng_err.c', + 'openssl/crypto/engine/eng_fat.c', + 'openssl/crypto/engine/eng_init.c', + 'openssl/crypto/engine/eng_lib.c', + 'openssl/crypto/engine/eng_list.c', + 'openssl/crypto/engine/eng_openssl.c', + 'openssl/crypto/engine/eng_pkey.c', + 'openssl/crypto/engine/eng_rdrand.c', + 'openssl/crypto/engine/eng_table.c', + 'openssl/crypto/engine/tb_asnmth.c', + 'openssl/crypto/engine/tb_cipher.c', + 'openssl/crypto/engine/tb_dh.c', + 'openssl/crypto/engine/tb_digest.c', + 'openssl/crypto/engine/tb_dsa.c', + 'openssl/crypto/engine/tb_eckey.c', + 'openssl/crypto/engine/tb_pkmeth.c', + 'openssl/crypto/engine/tb_rand.c', + 'openssl/crypto/engine/tb_rsa.c', + 'openssl/crypto/err/err.c', + 'openssl/crypto/err/err_all.c', + 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/evp/bio_b64.c', + 'openssl/crypto/evp/bio_enc.c', + 'openssl/crypto/evp/bio_md.c', + 'openssl/crypto/evp/bio_ok.c', + 'openssl/crypto/evp/c_allc.c', + 'openssl/crypto/evp/c_alld.c', + 'openssl/crypto/evp/cmeth_lib.c', + 'openssl/crypto/evp/digest.c', + 'openssl/crypto/evp/e_aes.c', + 'openssl/crypto/evp/e_aes_cbc_hmac_sha1.c', + 'openssl/crypto/evp/e_aes_cbc_hmac_sha256.c', + 'openssl/crypto/evp/e_aria.c', + 'openssl/crypto/evp/e_bf.c', + 'openssl/crypto/evp/e_camellia.c', + 'openssl/crypto/evp/e_cast.c', + 'openssl/crypto/evp/e_chacha20_poly1305.c', + 'openssl/crypto/evp/e_des.c', + 'openssl/crypto/evp/e_des3.c', + 'openssl/crypto/evp/e_idea.c', + 'openssl/crypto/evp/e_null.c', + 'openssl/crypto/evp/e_old.c', + 'openssl/crypto/evp/e_rc2.c', + 'openssl/crypto/evp/e_rc4.c', + 'openssl/crypto/evp/e_rc4_hmac_md5.c', + 'openssl/crypto/evp/e_rc5.c', + 'openssl/crypto/evp/e_seed.c', + 'openssl/crypto/evp/e_sm4.c', + 'openssl/crypto/evp/e_xcbc_d.c', + 'openssl/crypto/evp/encode.c', + 'openssl/crypto/evp/evp_cnf.c', + 'openssl/crypto/evp/evp_enc.c', + 'openssl/crypto/evp/evp_err.c', + 'openssl/crypto/evp/evp_key.c', + 'openssl/crypto/evp/evp_lib.c', + 'openssl/crypto/evp/evp_pbe.c', + 'openssl/crypto/evp/evp_pkey.c', + 'openssl/crypto/evp/m_md2.c', + 'openssl/crypto/evp/m_md4.c', + 'openssl/crypto/evp/m_md5.c', + 'openssl/crypto/evp/m_md5_sha1.c', + 'openssl/crypto/evp/m_mdc2.c', + 'openssl/crypto/evp/m_null.c', + 'openssl/crypto/evp/m_ripemd.c', + 'openssl/crypto/evp/m_sha1.c', + 'openssl/crypto/evp/m_sha3.c', + 'openssl/crypto/evp/m_sigver.c', + 'openssl/crypto/evp/m_wp.c', + 'openssl/crypto/evp/names.c', + 'openssl/crypto/evp/p5_crpt.c', + 'openssl/crypto/evp/p5_crpt2.c', + 'openssl/crypto/evp/p_dec.c', + 'openssl/crypto/evp/p_enc.c', + 'openssl/crypto/evp/p_lib.c', + 'openssl/crypto/evp/p_open.c', + 'openssl/crypto/evp/p_seal.c', + 'openssl/crypto/evp/p_sign.c', + 'openssl/crypto/evp/p_verify.c', + 'openssl/crypto/evp/pbe_scrypt.c', + 'openssl/crypto/evp/pmeth_fn.c', + 'openssl/crypto/evp/pmeth_gn.c', + 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/ex_data.c', + 'openssl/crypto/getenv.c', + 'openssl/crypto/hmac/hm_ameth.c', + 'openssl/crypto/hmac/hm_pmeth.c', + 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/idea/i_cbc.c', + 'openssl/crypto/idea/i_cfb64.c', + 'openssl/crypto/idea/i_ecb.c', + 'openssl/crypto/idea/i_ofb64.c', + 'openssl/crypto/idea/i_skey.c', + 'openssl/crypto/init.c', + 'openssl/crypto/kdf/hkdf.c', + 'openssl/crypto/kdf/kdf_err.c', + 'openssl/crypto/kdf/scrypt.c', + 'openssl/crypto/kdf/tls1_prf.c', + 'openssl/crypto/lhash/lh_stats.c', + 'openssl/crypto/lhash/lhash.c', + 'openssl/crypto/md4/md4_dgst.c', + 'openssl/crypto/md4/md4_one.c', + 'openssl/crypto/md5/md5_dgst.c', + 'openssl/crypto/md5/md5_one.c', + 'openssl/crypto/mdc2/mdc2_one.c', + 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/mem.c', + 'openssl/crypto/mem_clr.c', + 'openssl/crypto/mem_dbg.c', + 'openssl/crypto/mem_sec.c', + 'openssl/crypto/modes/cbc128.c', + 'openssl/crypto/modes/ccm128.c', + 'openssl/crypto/modes/cfb128.c', + 'openssl/crypto/modes/ctr128.c', + 'openssl/crypto/modes/cts128.c', + 'openssl/crypto/modes/gcm128.c', + 'openssl/crypto/modes/ocb128.c', + 'openssl/crypto/modes/ofb128.c', + 'openssl/crypto/modes/wrap128.c', + 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/o_dir.c', + 'openssl/crypto/o_fips.c', + 'openssl/crypto/o_fopen.c', + 'openssl/crypto/o_init.c', + 'openssl/crypto/o_str.c', + 'openssl/crypto/o_time.c', + 'openssl/crypto/objects/o_names.c', + 'openssl/crypto/objects/obj_dat.c', + 'openssl/crypto/objects/obj_err.c', + 'openssl/crypto/objects/obj_lib.c', + 'openssl/crypto/objects/obj_xref.c', + 'openssl/crypto/ocsp/ocsp_asn.c', + 'openssl/crypto/ocsp/ocsp_cl.c', + 'openssl/crypto/ocsp/ocsp_err.c', + 'openssl/crypto/ocsp/ocsp_ext.c', + 'openssl/crypto/ocsp/ocsp_ht.c', + 'openssl/crypto/ocsp/ocsp_lib.c', + 'openssl/crypto/ocsp/ocsp_prn.c', + 'openssl/crypto/ocsp/ocsp_srv.c', + 'openssl/crypto/ocsp/ocsp_vfy.c', + 'openssl/crypto/ocsp/v3_ocsp.c', + 'openssl/crypto/pem/pem_all.c', + 'openssl/crypto/pem/pem_err.c', + 'openssl/crypto/pem/pem_info.c', + 'openssl/crypto/pem/pem_lib.c', + 'openssl/crypto/pem/pem_oth.c', + 'openssl/crypto/pem/pem_pk8.c', + 'openssl/crypto/pem/pem_pkey.c', + 'openssl/crypto/pem/pem_sign.c', + 'openssl/crypto/pem/pem_x509.c', + 'openssl/crypto/pem/pem_xaux.c', + 'openssl/crypto/pem/pvkfmt.c', + 'openssl/crypto/pkcs12/p12_add.c', + 'openssl/crypto/pkcs12/p12_asn.c', + 'openssl/crypto/pkcs12/p12_attr.c', + 'openssl/crypto/pkcs12/p12_crpt.c', + 'openssl/crypto/pkcs12/p12_crt.c', + 'openssl/crypto/pkcs12/p12_decr.c', + 'openssl/crypto/pkcs12/p12_init.c', + 'openssl/crypto/pkcs12/p12_key.c', + 'openssl/crypto/pkcs12/p12_kiss.c', + 'openssl/crypto/pkcs12/p12_mutl.c', + 'openssl/crypto/pkcs12/p12_npas.c', + 'openssl/crypto/pkcs12/p12_p8d.c', + 'openssl/crypto/pkcs12/p12_p8e.c', + 'openssl/crypto/pkcs12/p12_sbag.c', + 'openssl/crypto/pkcs12/p12_utl.c', + 'openssl/crypto/pkcs12/pk12err.c', + 'openssl/crypto/pkcs7/bio_pk7.c', + 'openssl/crypto/pkcs7/pk7_asn1.c', + 'openssl/crypto/pkcs7/pk7_attr.c', + 'openssl/crypto/pkcs7/pk7_doit.c', + 'openssl/crypto/pkcs7/pk7_lib.c', + 'openssl/crypto/pkcs7/pk7_mime.c', + 'openssl/crypto/pkcs7/pk7_smime.c', + 'openssl/crypto/pkcs7/pkcs7err.c', + 'openssl/crypto/poly1305/poly1305.c', + 'openssl/crypto/poly1305/poly1305_ameth.c', + 'openssl/crypto/poly1305/poly1305_pmeth.c', + 'openssl/crypto/rand/drbg_ctr.c', + 'openssl/crypto/rand/drbg_lib.c', + 'openssl/crypto/rand/rand_egd.c', + 'openssl/crypto/rand/rand_err.c', + 'openssl/crypto/rand/rand_lib.c', + 'openssl/crypto/rand/rand_unix.c', + 'openssl/crypto/rand/rand_vms.c', + 'openssl/crypto/rand/rand_win.c', + 'openssl/crypto/rand/randfile.c', + 'openssl/crypto/rc2/rc2_cbc.c', + 'openssl/crypto/rc2/rc2_ecb.c', + 'openssl/crypto/rc2/rc2_skey.c', + 'openssl/crypto/rc2/rc2cfb64.c', + 'openssl/crypto/rc2/rc2ofb64.c', + 'openssl/crypto/rc4/rc4_enc.c', + 'openssl/crypto/rc4/rc4_skey.c', + 'openssl/crypto/ripemd/rmd_dgst.c', + 'openssl/crypto/ripemd/rmd_one.c', + 'openssl/crypto/rsa/rsa_ameth.c', + 'openssl/crypto/rsa/rsa_asn1.c', + 'openssl/crypto/rsa/rsa_chk.c', + 'openssl/crypto/rsa/rsa_crpt.c', + 'openssl/crypto/rsa/rsa_depr.c', + 'openssl/crypto/rsa/rsa_err.c', + 'openssl/crypto/rsa/rsa_gen.c', + 'openssl/crypto/rsa/rsa_lib.c', + 'openssl/crypto/rsa/rsa_meth.c', + 'openssl/crypto/rsa/rsa_mp.c', + 'openssl/crypto/rsa/rsa_none.c', + 'openssl/crypto/rsa/rsa_oaep.c', + 'openssl/crypto/rsa/rsa_ossl.c', + 'openssl/crypto/rsa/rsa_pk1.c', + 'openssl/crypto/rsa/rsa_pmeth.c', + 'openssl/crypto/rsa/rsa_prn.c', + 'openssl/crypto/rsa/rsa_pss.c', + 'openssl/crypto/rsa/rsa_saos.c', + 'openssl/crypto/rsa/rsa_sign.c', + 'openssl/crypto/rsa/rsa_ssl.c', + 'openssl/crypto/rsa/rsa_x931.c', + 'openssl/crypto/rsa/rsa_x931g.c', + 'openssl/crypto/seed/seed.c', + 'openssl/crypto/seed/seed_cbc.c', + 'openssl/crypto/seed/seed_cfb.c', + 'openssl/crypto/seed/seed_ecb.c', + 'openssl/crypto/seed/seed_ofb.c', + 'openssl/crypto/sha/keccak1600.c', + 'openssl/crypto/sha/sha1_one.c', + 'openssl/crypto/sha/sha1dgst.c', + 'openssl/crypto/sha/sha256.c', + 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/siphash/siphash_ameth.c', + 'openssl/crypto/siphash/siphash_pmeth.c', + 'openssl/crypto/sm2/sm2_crypt.c', + 'openssl/crypto/sm2/sm2_err.c', + 'openssl/crypto/sm2/sm2_pmeth.c', + 'openssl/crypto/sm2/sm2_sign.c', + 'openssl/crypto/sm3/m_sm3.c', + 'openssl/crypto/sm3/sm3.c', + 'openssl/crypto/sm4/sm4.c', + 'openssl/crypto/srp/srp_lib.c', + 'openssl/crypto/srp/srp_vfy.c', + 'openssl/crypto/stack/stack.c', + 'openssl/crypto/store/loader_file.c', + 'openssl/crypto/store/store_err.c', + 'openssl/crypto/store/store_init.c', + 'openssl/crypto/store/store_lib.c', + 'openssl/crypto/store/store_register.c', + 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/threads_none.c', + 'openssl/crypto/threads_pthread.c', + 'openssl/crypto/threads_win.c', + 'openssl/crypto/ts/ts_asn1.c', + 'openssl/crypto/ts/ts_conf.c', + 'openssl/crypto/ts/ts_err.c', + 'openssl/crypto/ts/ts_lib.c', + 'openssl/crypto/ts/ts_req_print.c', + 'openssl/crypto/ts/ts_req_utils.c', + 'openssl/crypto/ts/ts_rsp_print.c', + 'openssl/crypto/ts/ts_rsp_sign.c', + 'openssl/crypto/ts/ts_rsp_utils.c', + 'openssl/crypto/ts/ts_rsp_verify.c', + 'openssl/crypto/ts/ts_verify_ctx.c', + 'openssl/crypto/txt_db/txt_db.c', + 'openssl/crypto/ui/ui_err.c', + 'openssl/crypto/ui/ui_lib.c', + 'openssl/crypto/ui/ui_null.c', + 'openssl/crypto/ui/ui_openssl.c', + 'openssl/crypto/ui/ui_util.c', + 'openssl/crypto/uid.c', + 'openssl/crypto/whrlpool/wp_block.c', + 'openssl/crypto/whrlpool/wp_dgst.c', + 'openssl/crypto/x509/by_dir.c', + 'openssl/crypto/x509/by_file.c', + 'openssl/crypto/x509/t_crl.c', + 'openssl/crypto/x509/t_req.c', + 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/x509_att.c', + 'openssl/crypto/x509/x509_cmp.c', + 'openssl/crypto/x509/x509_d2.c', + 'openssl/crypto/x509/x509_def.c', + 'openssl/crypto/x509/x509_err.c', + 'openssl/crypto/x509/x509_ext.c', + 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', + 'openssl/crypto/x509/x509_obj.c', + 'openssl/crypto/x509/x509_r2x.c', + 'openssl/crypto/x509/x509_req.c', + 'openssl/crypto/x509/x509_set.c', + 'openssl/crypto/x509/x509_trs.c', + 'openssl/crypto/x509/x509_txt.c', + 'openssl/crypto/x509/x509_v3.c', + 'openssl/crypto/x509/x509_vfy.c', + 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509cset.c', + 'openssl/crypto/x509/x509name.c', + 'openssl/crypto/x509/x509rset.c', + 'openssl/crypto/x509/x509spki.c', + 'openssl/crypto/x509/x509type.c', + 'openssl/crypto/x509/x_all.c', + 'openssl/crypto/x509/x_attrib.c', + 'openssl/crypto/x509/x_crl.c', + 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_name.c', + 'openssl/crypto/x509/x_pubkey.c', + 'openssl/crypto/x509/x_req.c', + 'openssl/crypto/x509/x_x509.c', + 'openssl/crypto/x509/x_x509a.c', + 'openssl/crypto/x509v3/pcy_cache.c', + 'openssl/crypto/x509v3/pcy_data.c', + 'openssl/crypto/x509v3/pcy_lib.c', + 'openssl/crypto/x509v3/pcy_map.c', + 'openssl/crypto/x509v3/pcy_node.c', + 'openssl/crypto/x509v3/pcy_tree.c', + 'openssl/crypto/x509v3/v3_addr.c', + 'openssl/crypto/x509v3/v3_admis.c', + 'openssl/crypto/x509v3/v3_akey.c', + 'openssl/crypto/x509v3/v3_akeya.c', + 'openssl/crypto/x509v3/v3_alt.c', + 'openssl/crypto/x509v3/v3_asid.c', + 'openssl/crypto/x509v3/v3_bcons.c', + 'openssl/crypto/x509v3/v3_bitst.c', + 'openssl/crypto/x509v3/v3_conf.c', + 'openssl/crypto/x509v3/v3_cpols.c', + 'openssl/crypto/x509v3/v3_crld.c', + 'openssl/crypto/x509v3/v3_enum.c', + 'openssl/crypto/x509v3/v3_extku.c', + 'openssl/crypto/x509v3/v3_genn.c', + 'openssl/crypto/x509v3/v3_ia5.c', + 'openssl/crypto/x509v3/v3_info.c', + 'openssl/crypto/x509v3/v3_int.c', + 'openssl/crypto/x509v3/v3_lib.c', + 'openssl/crypto/x509v3/v3_ncons.c', + 'openssl/crypto/x509v3/v3_pci.c', + 'openssl/crypto/x509v3/v3_pcia.c', + 'openssl/crypto/x509v3/v3_pcons.c', + 'openssl/crypto/x509v3/v3_pku.c', + 'openssl/crypto/x509v3/v3_pmaps.c', + 'openssl/crypto/x509v3/v3_prn.c', + 'openssl/crypto/x509v3/v3_purp.c', + 'openssl/crypto/x509v3/v3_skey.c', + 'openssl/crypto/x509v3/v3_sxnet.c', + 'openssl/crypto/x509v3/v3_tlsf.c', + 'openssl/crypto/x509v3/v3_utl.c', + 'openssl/crypto/x509v3/v3err.c', + 'openssl/engines/e_capi.c', + 'openssl/engines/e_padlock.c', + ], + 'openssl_sources_linux-mipsel': [ + './config/archs/linux-mipsel/asm/crypto/aes/aes-mips.S', + './config/archs/linux-mipsel/asm/crypto/bn/bn-mips.S', + './config/archs/linux-mipsel/asm/crypto/bn/mips-mont.S', + './config/archs/linux-mipsel/asm/crypto/sha/sha1-mips.S', + './config/archs/linux-mipsel/asm/crypto/sha/sha256-mips.S', + ], + 'openssl_defines_linux-mipsel': [ + 'NDEBUG', + 'OPENSSL_USE_NODELETE', + 'OPENSSL_PIC', + 'OPENSSL_BN_ASM_MONT', + 'SHA1_ASM', + 'SHA256_ASM', + 'AES_ASM', + ], + 'openssl_cflags_linux-mipsel': [ + '-Wall -O3 -pthread', + ], + 'openssl_ex_libs_linux-mipsel': [ + '-ldl -pthread', + ], + }, + 'include_dirs': [ + '.', + './include', + './crypto', + './crypto/include/internal', + ], + 'defines': ['<@(openssl_defines_linux-mipsel)'], + 'cflags' : ['<@(openssl_cflags_linux-mipsel)'], + 'libraries': ['<@(openssl_ex_libs_linux-mipsel)'], + 'sources': ['<@(openssl_sources)', '<@(openssl_sources_linux-mipsel)'], +} diff -urN a/deps/openssl/config/bn_conf_asm.h b/deps/openssl/config/bn_conf_asm.h --- a/deps/openssl/config/bn_conf_asm.h 2019-12-17 16:05:03.000000000 +0900 +++ b/deps/openssl/config/bn_conf_asm.h 2019-12-25 13:49:19.992298784 +0900 @@ -13,6 +13,10 @@ # include "./archs/linux-armv4/asm/crypto/include/internal/bn_conf.h" #elif defined(OPENSSL_LINUX) && defined(__aarch64__) # include "./archs/linux-aarch64/asm/crypto/include/internal/bn_conf.h" +#elif defined(OPENSSL_LINUX) && defined(__mips__) +# include "./archs/linux-mips/asm/crypto/include/internal/bn_conf.h" +#elif defined(OPENSSL_LINUX) && defined(__MIPSEL__) +# include "./archs/linux-mipsel/asm/crypto/include/internal/bn_conf.h" #elif defined(__APPLE__) && defined(__MACH__) && defined(__i386__) # include "./archs/darwin-i386-cc/asm/crypto/include/internal/bn_conf.h" #elif defined(__APPLE__) && defined(__MACH__) && defined(__x86_64__) diff -urN a/deps/openssl/config/dso_conf_asm.h b/deps/openssl/config/dso_conf_asm.h --- a/deps/openssl/config/dso_conf_asm.h 2019-12-17 16:05:03.000000000 +0900 +++ b/deps/openssl/config/dso_conf_asm.h 2019-12-25 13:49:19.992298784 +0900 @@ -13,6 +13,10 @@ # include "./archs/linux-armv4/asm/crypto/include/internal/dso_conf.h" #elif defined(OPENSSL_LINUX) && defined(__aarch64__) # include "./archs/linux-aarch64/asm/crypto/include/internal/dso_conf.h" +#elif defined(OPENSSL_LINUX) && defined(__mips__) +# include "./archs/linux-mips/asm/crypto/include/internal/dso_conf.h" +#elif defined(OPENSSL_LINUX) && defined(__MIPSEL__) +# include "./archs/linux-mipsel/asm/crypto/include/internal/dso_conf.h" #elif defined(__APPLE__) && defined(__MACH__) && defined(__i386__) # include "./archs/darwin-i386-cc/asm/crypto/include/internal/dso_conf.h" #elif defined(__APPLE__) && defined(__MACH__) && defined(__x86_64__) diff -urN a/deps/openssl/config/Makefile b/deps/openssl/config/Makefile --- a/deps/openssl/config/Makefile 2019-12-17 16:05:02.000000000 +0900 +++ b/deps/openssl/config/Makefile 2019-12-25 13:49:19.992298784 +0900 @@ -13,6 +13,7 @@ darwin64-x86_64-cc darwin-i386-cc linux-aarch64 \ linux-armv4 linux-elf linux-x32 linux-x86_64 linux-ppc \ linux-ppc64 linux-ppc64le linux32-s390x linux64-s390x linux64-mips64\ +linux-mips linux-mipsel \ solaris-x86-gcc solaris64-x86_64-gcc VC-WIN64A VC-WIN32 NO_ASM_ARCHS = VC-WIN64-ARM diff -urN a/deps/openssl/config/opensslconf_asm.h b/deps/openssl/config/opensslconf_asm.h --- a/deps/openssl/config/opensslconf_asm.h 2019-12-17 16:05:03.000000000 +0900 +++ b/deps/openssl/config/opensslconf_asm.h 2019-12-25 14:52:55.053667965 +0900 @@ -100,6 +100,10 @@ # include "./archs/linux-armv4/asm/include/openssl/opensslconf.h" #elif defined(OPENSSL_LINUX) && defined(__aarch64__) # include "./archs/linux-aarch64/asm/include/openssl/opensslconf.h" +#elif defined(OPENSSL_LINUX) && !defined(__mips64) && defined(__mips__) +# include "./archs/linux-mips/asm/include/openssl/opensslconf.h" +#elif defined(OPENSSL_LINUX) && !defined(__mips64) && defined(__MIPSEL__) +# include "./archs/linux-mipsel/asm/include/openssl/opensslconf.h" #elif defined(__APPLE__) && defined(__MACH__) && defined(__i386__) # include "./archs/darwin-i386-cc/asm/include/openssl/opensslconf.h" #elif defined(__APPLE__) && defined(__MACH__) && defined(__x86_64__) diff -urN a/deps/openssl/openssl_asm.gypi b/deps/openssl/openssl_asm.gypi --- a/deps/openssl/openssl_asm.gypi 2019-12-17 16:05:03.000000000 +0900 +++ b/deps/openssl/openssl_asm.gypi 2019-12-25 13:49:19.996298773 +0900 @@ -16,6 +16,10 @@ 'includes': ['config/archs/linux-armv4/asm/openssl.gypi'], }, 'target_arch=="arm64" and OS=="linux"', { 'includes': ['config/archs/linux-aarch64/asm/openssl.gypi'], + }, 'target_arch=="mips" and OS=="linux"', { + 'includes': ['config/archs/linux-mips/asm/openssl.gypi'], + }, 'target_arch=="mipsel" and OS=="linux"', { + 'includes': ['config/archs/linux-mipsel/asm/openssl.gypi'], }, 'target_arch=="arm64" and OS=="mac"', { 'includes': ['config/archs/darwin64-arm64-cc/asm/openssl.gypi'], }, 'target_arch=="ia32" and OS=="freebsd"', { diff -urN a/deps/openssl/openssl-cl_asm.gypi b/deps/openssl/openssl-cl_asm.gypi --- a/deps/openssl/openssl-cl_asm.gypi 2019-12-17 16:05:03.000000000 +0900 +++ b/deps/openssl/openssl-cl_asm.gypi 2019-12-25 13:49:19.996298773 +0900 @@ -16,6 +16,10 @@ 'includes': ['config/archs/linux-armv4/asm/openssl-cl.gypi'], }, 'target_arch=="arm64" and OS=="linux"', { 'includes': ['config/archs/linux-aarch64/asm/openssl-cl.gypi'], + }, 'target_arch=="mips" and OS=="linux"', { + 'includes': ['config/archs/linux-mips/asm/openssl-cl.gypi'], + }, 'target_arch=="mipsel" and OS=="linux"', { + 'includes': ['config/archs/linux-mipsel/asm/openssl-cl.gypi'], }, 'target_arch=="ia32" and OS=="freebsd"', { 'includes': ['config/archs/BSD-x86/asm/openssl-cl.gypi'], }, 'target_arch=="ia32" and OS=="linux"', { diff -urN a/deps/openssl/openssl.gypi b/deps/openssl/openssl.gypi --- a/deps/openssl/openssl.gypi 2019-12-17 16:05:03.000000000 +0900 +++ b/deps/openssl/openssl.gypi 2019-12-25 13:49:19.996298773 +0900 @@ -1151,6 +1151,18 @@ 'SHA256_ASM', 'SHA512_ASM', ], + 'openssl_defines_mips': [ + 'AES_ASM', + 'OPENSSL_BN_ASM_MONT', + 'SHA1_ASM', + 'SHA256_ASM', + ], + 'openssl_defines_mipsel': [ + 'AES_ASM', + 'OPENSSL_BN_ASM_MONT', + 'SHA1_ASM', + 'SHA256_ASM', + ], 'openssl_defines_non_arm': [ 'VPAES_ASM', 'BN_ASM',