diff options
Diffstat (limited to 'app/openssl/crypto/sha/asm/sha256-mips.S')
-rw-r--r-- | app/openssl/crypto/sha/asm/sha256-mips.S | 1998 |
1 files changed, 0 insertions, 1998 deletions
diff --git a/app/openssl/crypto/sha/asm/sha256-mips.S b/app/openssl/crypto/sha/asm/sha256-mips.S deleted file mode 100644 index 2bd728e9..00000000 --- a/app/openssl/crypto/sha/asm/sha256-mips.S +++ /dev/null @@ -1,1998 +0,0 @@ -#ifdef OPENSSL_FIPSCANISTER -# include <openssl/fipssyms.h> -#endif - -.text -.set noat -#if !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 3237937152,-4 - .set noreorder - .cpload $25 - sub $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) - - add $23,$5 # pointer to the end of input - sw $23,16*4($29) - b .Loop - -.align 5 -.Loop: - lwl $8,3($5) - lwr $8,0($5) - lwl $9,7($5) - lwr $9,4($5) - 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 - 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 - sw $8,0($29) # offload to ring buffer - xor $31,$14 # Sigma0(a) - - or $13,$1,$2 - and $14,$1,$2 - and $13,$3 - or $14,$13 # Maj(a,b,c) - addu $12,$15 # +=K[0] - addu $31,$14 - - addu $7,$12 - addu $31,$12 - lwl $10,11($5) - lwr $10,8($5) - 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 - 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 - sw $9,4($29) # offload to ring buffer - xor $30,$15 # Sigma0(a) - - or $14,$31,$1 - and $15,$31,$1 - and $14,$2 - or $15,$14 # Maj(a,b,c) - addu $13,$16 # +=K[1] - addu $30,$15 - - addu $3,$13 - addu $30,$13 - lwl $11,15($5) - lwr $11,12($5) - 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 - 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 - sw $10,8($29) # offload to ring buffer - xor $25,$16 # Sigma0(a) - - or $15,$30,$31 - and $16,$30,$31 - and $15,$1 - or $16,$15 # Maj(a,b,c) - addu $14,$17 # +=K[2] - addu $25,$16 - - addu $2,$14 - addu $25,$14 - lwl $12,19($5) - lwr $12,16($5) - 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 - 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 - sw $11,12($29) # offload to ring buffer - xor $24,$17 # Sigma0(a) - - or $16,$25,$30 - and $17,$25,$30 - and $16,$31 - or $17,$16 # Maj(a,b,c) - addu $15,$18 # +=K[3] - addu $24,$17 - - addu $1,$15 - addu $24,$15 - lwl $13,23($5) - lwr $13,20($5) - 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 - 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 - sw $12,16($29) # offload to ring buffer - xor $7,$18 # Sigma0(a) - - or $17,$24,$25 - and $18,$24,$25 - and $17,$30 - or $18,$17 # Maj(a,b,c) - addu $16,$19 # +=K[4] - addu $7,$18 - - addu $31,$16 - addu $7,$16 - lwl $14,27($5) - lwr $14,24($5) - 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 - 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 - sw $13,20($29) # offload to ring buffer - xor $3,$19 # Sigma0(a) - - or $18,$7,$24 - and $19,$7,$24 - and $18,$25 - or $19,$18 # Maj(a,b,c) - addu $17,$20 # +=K[5] - addu $3,$19 - - addu $30,$17 - addu $3,$17 - lwl $15,31($5) - lwr $15,28($5) - 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 - 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 - sw $14,24($29) # offload to ring buffer - xor $2,$20 # Sigma0(a) - - or $19,$3,$7 - and $20,$3,$7 - and $19,$24 - or $20,$19 # Maj(a,b,c) - addu $18,$21 # +=K[6] - addu $2,$20 - - addu $25,$18 - addu $2,$18 - lwl $16,35($5) - lwr $16,32($5) - 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 - 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 - sw $15,28($29) # offload to ring buffer - xor $1,$21 # Sigma0(a) - - or $20,$2,$3 - and $21,$2,$3 - and $20,$7 - or $21,$20 # Maj(a,b,c) - addu $19,$22 # +=K[7] - addu $1,$21 - - addu $24,$19 - addu $1,$19 - lwl $17,39($5) - lwr $17,36($5) - 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 - 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 - sw $16,32($29) # offload to ring buffer - xor $31,$22 # Sigma0(a) - - or $21,$1,$2 - and $22,$1,$2 - and $21,$3 - or $22,$21 # Maj(a,b,c) - addu $20,$23 # +=K[8] - addu $31,$22 - - addu $7,$20 - addu $31,$20 - lwl $18,43($5) - lwr $18,40($5) - 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 - 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 - sw $17,36($29) # offload to ring buffer - xor $30,$23 # Sigma0(a) - - or $22,$31,$1 - and $23,$31,$1 - and $22,$2 - or $23,$22 # Maj(a,b,c) - addu $21,$8 # +=K[9] - addu $30,$23 - - addu $3,$21 - addu $30,$21 - lwl $19,47($5) - lwr $19,44($5) - 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 - 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 - sw $18,40($29) # offload to ring buffer - xor $25,$8 # Sigma0(a) - - or $23,$30,$31 - and $8,$30,$31 - and $23,$1 - or $8,$23 # Maj(a,b,c) - addu $22,$9 # +=K[10] - addu $25,$8 - - addu $2,$22 - addu $25,$22 - lwl $20,51($5) - lwr $20,48($5) - 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 - 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 - sw $19,44($29) # offload to ring buffer - xor $24,$9 # Sigma0(a) - - or $8,$25,$30 - and $9,$25,$30 - and $8,$31 - or $9,$8 # Maj(a,b,c) - addu $23,$10 # +=K[11] - addu $24,$9 - - addu $1,$23 - addu $24,$23 - lwl $21,55($5) - lwr $21,52($5) - 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 - 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 - sw $20,48($29) # offload to ring buffer - xor $7,$10 # Sigma0(a) - - or $9,$24,$25 - and $10,$24,$25 - and $9,$30 - or $10,$9 # Maj(a,b,c) - addu $8,$11 # +=K[12] - addu $7,$10 - - addu $31,$8 - addu $7,$8 - lwl $22,59($5) - lwr $22,56($5) - 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 - 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 - sw $21,52($29) # offload to ring buffer - xor $3,$11 # Sigma0(a) - - or $10,$7,$24 - and $11,$7,$24 - and $10,$25 - or $11,$10 # Maj(a,b,c) - addu $9,$12 # +=K[13] - addu $3,$11 - - addu $30,$9 - addu $3,$9 - lw $8,0($29) # prefetch from ring buffer - lwl $23,63($5) - lwr $23,60($5) - 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 - 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 - sw $22,56($29) # offload to ring buffer - xor $2,$12 # Sigma0(a) - - or $11,$3,$7 - and $12,$3,$7 - and $11,$24 - or $12,$11 # Maj(a,b,c) - addu $10,$13 # +=K[14] - addu $2,$12 - - addu $25,$10 - addu $2,$10 - lw $9,4($29) # prefetch from ring buffer - 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 - 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 - sw $23,60($29) # offload to ring buffer - xor $1,$13 # Sigma0(a) - - or $12,$2,$3 - and $13,$2,$3 - and $12,$7 - or $13,$12 # Maj(a,b,c) - addu $11,$14 # +=K[15] - addu $1,$13 - - addu $24,$11 - addu $1,$11 - lw $10,8($29) # prefetch from ring buffer - b .L16_xx -.align 4 -.L16_xx: - 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 - - xor $15,$12 # sigma1(X[i+14]) - addu $8,$15 - 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 - sw $8,0($29) # offload to ring buffer - xor $31,$14 # Sigma0(a) - - or $13,$1,$2 - and $14,$1,$2 - and $13,$3 - or $14,$13 # Maj(a,b,c) - addu $12,$15 # +=K[16] - addu $31,$14 - - addu $7,$12 - addu $31,$12 - lw $11,12($29) # prefetch from ring buffer - 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 - - xor $16,$13 # sigma1(X[i+14]) - addu $9,$16 - 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 - sw $9,4($29) # offload to ring buffer - xor $30,$15 # Sigma0(a) - - or $14,$31,$1 - and $15,$31,$1 - and $14,$2 - or $15,$14 # Maj(a,b,c) - addu $13,$16 # +=K[17] - addu $30,$15 - - addu $3,$13 - addu $30,$13 - lw $12,16($29) # prefetch from ring buffer - 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 - - xor $17,$14 # sigma1(X[i+14]) - addu $10,$17 - 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 - sw $10,8($29) # offload to ring buffer - xor $25,$16 # Sigma0(a) - - or $15,$30,$31 - and $16,$30,$31 - and $15,$1 - or $16,$15 # Maj(a,b,c) - addu $14,$17 # +=K[18] - addu $25,$16 - - addu $2,$14 - addu $25,$14 - lw $13,20($29) # prefetch from ring buffer - 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 - - xor $18,$15 # sigma1(X[i+14]) - addu $11,$18 - 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 - sw $11,12($29) # offload to ring buffer - xor $24,$17 # Sigma0(a) - - or $16,$25,$30 - and $17,$25,$30 - and $16,$31 - or $17,$16 # Maj(a,b,c) - addu $15,$18 # +=K[19] - addu $24,$17 - - addu $1,$15 - addu $24,$15 - lw $14,24($29) # prefetch from ring buffer - 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 - - xor $19,$16 # sigma1(X[i+14]) - addu $12,$19 - 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 - sw $12,16($29) # offload to ring buffer - xor $7,$18 # Sigma0(a) - - or $17,$24,$25 - and $18,$24,$25 - and $17,$30 - or $18,$17 # Maj(a,b,c) - addu $16,$19 # +=K[20] - addu $7,$18 - - addu $31,$16 - addu $7,$16 - lw $15,28($29) # prefetch from ring buffer - 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 - - xor $20,$17 # sigma1(X[i+14]) - addu $13,$20 - 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 - sw $13,20($29) # offload to ring buffer - xor $3,$19 # Sigma0(a) - - or $18,$7,$24 - and $19,$7,$24 - and $18,$25 - or $19,$18 # Maj(a,b,c) - addu $17,$20 # +=K[21] - addu $3,$19 - - addu $30,$17 - addu $3,$17 - lw $16,32($29) # prefetch from ring buffer - 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 - - xor $21,$18 # sigma1(X[i+14]) - addu $14,$21 - 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 - sw $14,24($29) # offload to ring buffer - xor $2,$20 # Sigma0(a) - - or $19,$3,$7 - and $20,$3,$7 - and $19,$24 - or $20,$19 # Maj(a,b,c) - addu $18,$21 # +=K[22] - addu $2,$20 - - addu $25,$18 - addu $2,$18 - lw $17,36($29) # prefetch from ring buffer - 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 - - xor $22,$19 # sigma1(X[i+14]) - addu $15,$22 - 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 - sw $15,28($29) # offload to ring buffer - xor $1,$21 # Sigma0(a) - - or $20,$2,$3 - and $21,$2,$3 - and $20,$7 - or $21,$20 # Maj(a,b,c) - addu $19,$22 # +=K[23] - addu $1,$21 - - addu $24,$19 - addu $1,$19 - lw $18,40($29) # prefetch from ring buffer - 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 - - xor $23,$20 # sigma1(X[i+14]) - addu $16,$23 - 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 - sw $16,32($29) # offload to ring buffer - xor $31,$22 # Sigma0(a) - - or $21,$1,$2 - and $22,$1,$2 - and $21,$3 - or $22,$21 # Maj(a,b,c) - addu $20,$23 # +=K[24] - addu $31,$22 - - addu $7,$20 - addu $31,$20 - lw $19,44($29) # prefetch from ring buffer - 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 - - xor $8,$21 # sigma1(X[i+14]) - addu $17,$8 - 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 - sw $17,36($29) # offload to ring buffer - xor $30,$23 # Sigma0(a) - - or $22,$31,$1 - and $23,$31,$1 - and $22,$2 - or $23,$22 # Maj(a,b,c) - addu $21,$8 # +=K[25] - addu $30,$23 - - addu $3,$21 - addu $30,$21 - lw $20,48($29) # prefetch from ring buffer - 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 - - xor $9,$22 # sigma1(X[i+14]) - addu $18,$9 - 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 - sw $18,40($29) # offload to ring buffer - xor $25,$8 # Sigma0(a) - - or $23,$30,$31 - and $8,$30,$31 - and $23,$1 - or $8,$23 # Maj(a,b,c) - addu $22,$9 # +=K[26] - addu $25,$8 - - addu $2,$22 - addu $25,$22 - lw $21,52($29) # prefetch from ring buffer - 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 - - xor $10,$23 # sigma1(X[i+14]) - addu $19,$10 - 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 - sw $19,44($29) # offload to ring buffer - xor $24,$9 # Sigma0(a) - - or $8,$25,$30 - and $9,$25,$30 - and $8,$31 - or $9,$8 # Maj(a,b,c) - addu $23,$10 # +=K[27] - addu $24,$9 - - addu $1,$23 - addu $24,$23 - lw $22,56($29) # prefetch from ring buffer - 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 - - xor $11,$8 # sigma1(X[i+14]) - addu $20,$11 - 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 - sw $20,48($29) # offload to ring buffer - xor $7,$10 # Sigma0(a) - - or $9,$24,$25 - and $10,$24,$25 - and $9,$30 - or $10,$9 # Maj(a,b,c) - addu $8,$11 # +=K[28] - addu $7,$10 - - addu $31,$8 - addu $7,$8 - lw $23,60($29) # prefetch from ring buffer - 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 - - xor $12,$9 # sigma1(X[i+14]) - addu $21,$12 - 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 - sw $21,52($29) # offload to ring buffer - xor $3,$11 # Sigma0(a) - - or $10,$7,$24 - and $11,$7,$24 - and $10,$25 - or $11,$10 # Maj(a,b,c) - addu $9,$12 # +=K[29] - addu $3,$11 - - addu $30,$9 - addu $3,$9 - lw $8,0($29) # prefetch from ring buffer - 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 - - xor $13,$10 # sigma1(X[i+14]) - addu $22,$13 - 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 - sw $22,56($29) # offload to ring buffer - xor $2,$12 # Sigma0(a) - - or $11,$3,$7 - and $12,$3,$7 - and $11,$24 - or $12,$11 # Maj(a,b,c) - addu $10,$13 # +=K[30] - addu $2,$12 - - addu $25,$10 - addu $2,$10 - lw $9,4($29) # prefetch from ring buffer - 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 - - xor $14,$11 # sigma1(X[i+14]) - addu $23,$14 - 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 - sw $23,60($29) # offload to ring buffer - xor $1,$13 # Sigma0(a) - - or $12,$2,$3 - and $13,$2,$3 - and $12,$7 - or $13,$12 # Maj(a,b,c) - addu $11,$14 # +=K[31] - addu $1,$13 - - 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 - add $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) - add $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 - sub $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 - add $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 <appro@openssl.org>" -.align 5 - |