1b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic#ifdef OPENSSL_FIPSCANISTER
2b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic# include <openssl/fipssyms.h>
3b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic#endif
4b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
5b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic.text
6b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic.set	noat
7b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic#if !defined(__vxworks) || defined(__pic__)
8b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic.option	pic2
9b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic#endif
10b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
11b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic.align	5
12b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic.globl	sha256_block_data_order
13b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic.ent	sha256_block_data_order
14b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovicsha256_block_data_order:
15b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.frame	$29,128,$31
16b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.mask	3237937152,-4
17b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.set	noreorder
18b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sub $29,128
19b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$31,128-1*4($29)
20b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$30,128-2*4($29)
21b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$23,128-3*4($29)
22b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$22,128-4*4($29)
23b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$21,128-5*4($29)
24b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$20,128-6*4($29)
25b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$19,128-7*4($29)
26b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$18,128-8*4($29)
27b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$17,128-9*4($29)
28b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$16,128-10*4($29)
29b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll $23,$6,6
30b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.cplocal	$6
31b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.cpsetup	$25,$0,sha256_block_data_order
32b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.set	reorder
33b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	la	$6,K256		# PIC-ified 'load address'
34b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
35b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$1,0*4($4)		# load context
36b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$2,1*4($4)
37b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$3,2*4($4)
38b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$7,3*4($4)
39b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$24,4*4($4)
40b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$25,5*4($4)
41b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$30,6*4($4)
42b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$31,7*4($4)
43b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
44b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	add $23,$5		# pointer to the end of input
45b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$23,16*4($29)
46b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	b	.Loop
47b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
48b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic.align	5
49b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic.Loop:
50b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwl	$8,3($5)
51b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwr	$8,0($5)
52b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwl	$9,7($5)
53b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwr	$9,4($5)
54b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$13,$8,24		# byte swap(0)
55b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$14,$8,8
56b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$15,$8,0xFF00
57b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$8,$8,24
58b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$14,0xFF00
59b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$15,$15,8
60b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$8,$13
61b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$14,$15
62b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$8,$14
63b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$12,$8,$31			# 0
64b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$31,$24,6
65b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$15,$25,$30
66b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$14,$24,7
67b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$15,$24
68b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$13,$24,11
69b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$14
70b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$14,$24,21
71b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$13
72b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$13,$24,25
73b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$14
74b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$14,$24,26
75b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$13
76b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$15,$30			# Ch(e,f,g)
77b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$13,$14,$31			# Sigma1(e)
78b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
79b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$31,$1,2
80b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$12,$15
81b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$15,0($6)		# K[0]
82b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$14,$1,10
83b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$12,$13
84b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$13,$1,13
85b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$14
86b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$14,$1,19
87b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$13
88b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$13,$1,22
89b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$14
90b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$14,$1,30
91b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$13
92b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$8,0($29)	# offload to ring buffer
93b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$14			# Sigma0(a)
94b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
95b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$13,$1,$2
96b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$14,$1,$2
97b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$13,$3
98b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$14,$13			# Maj(a,b,c)
99b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$12,$15			# +=K[0]
100b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$31,$14
101b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
102b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$7,$12
103b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$31,$12
104b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwl	$10,11($5)
105b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwr	$10,8($5)
106b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$14,$9,24		# byte swap(1)
107b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$15,$9,8
108b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$16,$9,0xFF00
109b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$9,$9,24
110b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$15,0xFF00
111b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$16,$16,8
112b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$9,$14
113b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$15,$16
114b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$9,$15
115b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$13,$9,$30			# 1
116b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$30,$7,6
117b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$16,$24,$25
118b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$15,$7,7
119b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$16,$7
120b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$14,$7,11
121b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$15
122b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$15,$7,21
123b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$14
124b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$14,$7,25
125b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$15
126b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$15,$7,26
127b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$14
128b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$16,$25			# Ch(e,f,g)
129b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$14,$15,$30			# Sigma1(e)
130b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
131b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$30,$31,2
132b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$13,$16
133b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$16,4($6)		# K[1]
134b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$15,$31,10
135b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$13,$14
136b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$14,$31,13
137b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$15
138b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$15,$31,19
139b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$14
140b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$14,$31,22
141b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$15
142b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$15,$31,30
143b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$14
144b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$9,4($29)	# offload to ring buffer
145b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$15			# Sigma0(a)
146b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
147b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$14,$31,$1
148b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$15,$31,$1
149b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$14,$2
150b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$15,$14			# Maj(a,b,c)
151b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$13,$16			# +=K[1]
152b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$30,$15
153b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
154b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$3,$13
155b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$30,$13
156b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwl	$11,15($5)
157b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwr	$11,12($5)
158b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$15,$10,24		# byte swap(2)
159b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$16,$10,8
160b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$17,$10,0xFF00
161b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$10,$10,24
162b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$16,0xFF00
163b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$17,$17,8
164b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$10,$15
165b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$16,$17
166b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$10,$16
167b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$14,$10,$25			# 2
168b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$25,$3,6
169b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$17,$7,$24
170b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$16,$3,7
171b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$17,$3
172b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$15,$3,11
173b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$16
174b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$16,$3,21
175b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$15
176b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$15,$3,25
177b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$16
178b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$16,$3,26
179b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$15
180b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$17,$24			# Ch(e,f,g)
181b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$15,$16,$25			# Sigma1(e)
182b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
183b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$25,$30,2
184b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$14,$17
185b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$17,8($6)		# K[2]
186b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$16,$30,10
187b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$14,$15
188b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$15,$30,13
189b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$16
190b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$16,$30,19
191b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$15
192b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$15,$30,22
193b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$16
194b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$16,$30,30
195b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$15
196b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$10,8($29)	# offload to ring buffer
197b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$16			# Sigma0(a)
198b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
199b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$15,$30,$31
200b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$16,$30,$31
201b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$15,$1
202b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$16,$15			# Maj(a,b,c)
203b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$14,$17			# +=K[2]
204b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$25,$16
205b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
206b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$2,$14
207b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$25,$14
208b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwl	$12,19($5)
209b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwr	$12,16($5)
210b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$16,$11,24		# byte swap(3)
211b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$17,$11,8
212b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$18,$11,0xFF00
213b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$11,$11,24
214b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$17,0xFF00
215b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$18,$18,8
216b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$11,$16
217b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$17,$18
218b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$11,$17
219b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$15,$11,$24			# 3
220b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$24,$2,6
221b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$18,$3,$7
222b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$17,$2,7
223b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$18,$2
224b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$16,$2,11
225b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$17
226b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$17,$2,21
227b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$16
228b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$16,$2,25
229b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$17
230b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$17,$2,26
231b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$16
232b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$18,$7			# Ch(e,f,g)
233b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$16,$17,$24			# Sigma1(e)
234b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
235b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$24,$25,2
236b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$15,$18
237b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$18,12($6)		# K[3]
238b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$17,$25,10
239b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$15,$16
240b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$16,$25,13
241b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$17
242b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$17,$25,19
243b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$16
244b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$16,$25,22
245b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$17
246b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$17,$25,30
247b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$16
248b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$11,12($29)	# offload to ring buffer
249b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$17			# Sigma0(a)
250b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
251b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$16,$25,$30
252b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$17,$25,$30
253b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$16,$31
254b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$17,$16			# Maj(a,b,c)
255b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$15,$18			# +=K[3]
256b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$24,$17
257b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
258b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$1,$15
259b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$24,$15
260b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwl	$13,23($5)
261b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwr	$13,20($5)
262b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$17,$12,24		# byte swap(4)
263b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$18,$12,8
264b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$19,$12,0xFF00
265b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$12,$12,24
266b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$18,0xFF00
267b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$19,$19,8
268b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$12,$17
269b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$18,$19
270b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$12,$18
271b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$16,$12,$7			# 4
272b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$7,$1,6
273b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$19,$2,$3
274b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$18,$1,7
275b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$19,$1
276b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$17,$1,11
277b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$18
278b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$18,$1,21
279b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$17
280b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$17,$1,25
281b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$18
282b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$18,$1,26
283b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$17
284b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$19,$3			# Ch(e,f,g)
285b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$17,$18,$7			# Sigma1(e)
286b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
287b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$7,$24,2
288b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$16,$19
289b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$19,16($6)		# K[4]
290b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$18,$24,10
291b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$16,$17
292b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$17,$24,13
293b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$18
294b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$18,$24,19
295b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$17
296b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$17,$24,22
297b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$18
298b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$18,$24,30
299b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$17
300b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$12,16($29)	# offload to ring buffer
301b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$18			# Sigma0(a)
302b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
303b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$17,$24,$25
304b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$18,$24,$25
305b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$17,$30
306b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$18,$17			# Maj(a,b,c)
307b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$16,$19			# +=K[4]
308b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$7,$18
309b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
310b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$31,$16
311b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$7,$16
312b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwl	$14,27($5)
313b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwr	$14,24($5)
314b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$18,$13,24		# byte swap(5)
315b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$19,$13,8
316b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$20,$13,0xFF00
317b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$13,$13,24
318b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$19,0xFF00
319b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$20,$20,8
320b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$13,$18
321b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$19,$20
322b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$13,$19
323b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$17,$13,$3			# 5
324b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$3,$31,6
325b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$20,$1,$2
326b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$19,$31,7
327b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$20,$31
328b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$18,$31,11
329b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$19
330b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$19,$31,21
331b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$18
332b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$18,$31,25
333b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$19
334b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$19,$31,26
335b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$18
336b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$20,$2			# Ch(e,f,g)
337b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$18,$19,$3			# Sigma1(e)
338b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
339b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$3,$7,2
340b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$17,$20
341b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$20,20($6)		# K[5]
342b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$19,$7,10
343b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$17,$18
344b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$18,$7,13
345b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$19
346b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$19,$7,19
347b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$18
348b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$18,$7,22
349b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$19
350b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$19,$7,30
351b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$18
352b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$13,20($29)	# offload to ring buffer
353b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$19			# Sigma0(a)
354b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
355b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$18,$7,$24
356b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$19,$7,$24
357b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$18,$25
358b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$19,$18			# Maj(a,b,c)
359b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$17,$20			# +=K[5]
360b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$3,$19
361b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
362b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$30,$17
363b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$3,$17
364b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwl	$15,31($5)
365b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwr	$15,28($5)
366b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$19,$14,24		# byte swap(6)
367b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$20,$14,8
368b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$21,$14,0xFF00
369b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$14,$14,24
370b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$20,0xFF00
371b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$21,$21,8
372b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$14,$19
373b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$20,$21
374b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$14,$20
375b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$18,$14,$2			# 6
376b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$2,$30,6
377b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$21,$31,$1
378b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$20,$30,7
379b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$21,$30
380b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$19,$30,11
381b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$20
382b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$20,$30,21
383b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$19
384b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$19,$30,25
385b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$20
386b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$20,$30,26
387b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$19
388b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$21,$1			# Ch(e,f,g)
389b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$19,$20,$2			# Sigma1(e)
390b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
391b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$2,$3,2
392b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$18,$21
393b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$21,24($6)		# K[6]
394b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$20,$3,10
395b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$18,$19
396b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$19,$3,13
397b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$20
398b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$20,$3,19
399b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$19
400b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$19,$3,22
401b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$20
402b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$20,$3,30
403b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$19
404b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$14,24($29)	# offload to ring buffer
405b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$20			# Sigma0(a)
406b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
407b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$19,$3,$7
408b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$20,$3,$7
409b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$19,$24
410b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$20,$19			# Maj(a,b,c)
411b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$18,$21			# +=K[6]
412b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$2,$20
413b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
414b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$25,$18
415b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$2,$18
416b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwl	$16,35($5)
417b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwr	$16,32($5)
418b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$20,$15,24		# byte swap(7)
419b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$21,$15,8
420b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$22,$15,0xFF00
421b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$15,$15,24
422b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$21,0xFF00
423b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$22,$22,8
424b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$15,$20
425b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$21,$22
426b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$15,$21
427b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$19,$15,$1			# 7
428b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$1,$25,6
429b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$22,$30,$31
430b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$21,$25,7
431b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$22,$25
432b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$20,$25,11
433b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$21
434b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$21,$25,21
435b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$20
436b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$20,$25,25
437b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$21
438b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$21,$25,26
439b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$20
440b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$22,$31			# Ch(e,f,g)
441b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$20,$21,$1			# Sigma1(e)
442b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
443b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$1,$2,2
444b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$19,$22
445b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$22,28($6)		# K[7]
446b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$21,$2,10
447b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$19,$20
448b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$20,$2,13
449b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$21
450b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$21,$2,19
451b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$20
452b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$20,$2,22
453b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$21
454b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$21,$2,30
455b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$20
456b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$15,28($29)	# offload to ring buffer
457b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$21			# Sigma0(a)
458b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
459b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$20,$2,$3
460b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$21,$2,$3
461b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$20,$7
462b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$21,$20			# Maj(a,b,c)
463b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$19,$22			# +=K[7]
464b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$1,$21
465b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
466b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$24,$19
467b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$1,$19
468b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwl	$17,39($5)
469b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwr	$17,36($5)
470b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$21,$16,24		# byte swap(8)
471b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$22,$16,8
472b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$23,$16,0xFF00
473b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$16,$16,24
474b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$22,0xFF00
475b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$23,$23,8
476b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$16,$21
477b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$22,$23
478b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$16,$22
479b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$20,$16,$31			# 8
480b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$31,$24,6
481b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$23,$25,$30
482b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$22,$24,7
483b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$23,$24
484b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$21,$24,11
485b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$22
486b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$22,$24,21
487b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$21
488b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$21,$24,25
489b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$22
490b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$22,$24,26
491b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$21
492b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$23,$30			# Ch(e,f,g)
493b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$21,$22,$31			# Sigma1(e)
494b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
495b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$31,$1,2
496b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$20,$23
497b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$23,32($6)		# K[8]
498b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$22,$1,10
499b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$20,$21
500b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$21,$1,13
501b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$22
502b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$22,$1,19
503b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$21
504b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$21,$1,22
505b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$22
506b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$22,$1,30
507b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$21
508b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$16,32($29)	# offload to ring buffer
509b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$22			# Sigma0(a)
510b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
511b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$21,$1,$2
512b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$22,$1,$2
513b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$21,$3
514b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$22,$21			# Maj(a,b,c)
515b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$20,$23			# +=K[8]
516b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$31,$22
517b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
518b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$7,$20
519b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$31,$20
520b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwl	$18,43($5)
521b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwr	$18,40($5)
522b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$22,$17,24		# byte swap(9)
523b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$23,$17,8
524b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$8,$17,0xFF00
525b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$17,$17,24
526b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$23,0xFF00
527b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$8,$8,8
528b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$17,$22
529b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$23,$8
530b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$17,$23
531b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$21,$17,$30			# 9
532b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$30,$7,6
533b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$8,$24,$25
534b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$23,$7,7
535b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$8,$7
536b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$22,$7,11
537b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$23
538b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$23,$7,21
539b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$22
540b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$22,$7,25
541b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$23
542b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$23,$7,26
543b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$22
544b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$8,$25			# Ch(e,f,g)
545b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$22,$23,$30			# Sigma1(e)
546b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
547b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$30,$31,2
548b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$21,$8
549b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$8,36($6)		# K[9]
550b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$23,$31,10
551b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$21,$22
552b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$22,$31,13
553b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$23
554b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$23,$31,19
555b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$22
556b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$22,$31,22
557b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$23
558b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$23,$31,30
559b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$22
560b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$17,36($29)	# offload to ring buffer
561b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$23			# Sigma0(a)
562b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
563b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$22,$31,$1
564b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$23,$31,$1
565b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$22,$2
566b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$23,$22			# Maj(a,b,c)
567b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$21,$8			# +=K[9]
568b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$30,$23
569b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
570b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$3,$21
571b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$30,$21
572b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwl	$19,47($5)
573b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwr	$19,44($5)
574b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$23,$18,24		# byte swap(10)
575b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$8,$18,8
576b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$9,$18,0xFF00
577b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$18,$18,24
578b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$8,0xFF00
579b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$9,$9,8
580b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$18,$23
581b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$8,$9
582b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$18,$8
583b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$22,$18,$25			# 10
584b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$25,$3,6
585b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$9,$7,$24
586b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$8,$3,7
587b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$9,$3
588b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$23,$3,11
589b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$8
590b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$8,$3,21
591b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$23
592b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$23,$3,25
593b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$8
594b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$8,$3,26
595b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$23
596b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$9,$24			# Ch(e,f,g)
597b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$23,$8,$25			# Sigma1(e)
598b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
599b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$25,$30,2
600b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$22,$9
601b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$9,40($6)		# K[10]
602b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$8,$30,10
603b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$22,$23
604b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$23,$30,13
605b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$8
606b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$8,$30,19
607b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$23
608b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$23,$30,22
609b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$8
610b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$8,$30,30
611b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$23
612b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$18,40($29)	# offload to ring buffer
613b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$8			# Sigma0(a)
614b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
615b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$23,$30,$31
616b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$8,$30,$31
617b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$23,$1
618b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$8,$23			# Maj(a,b,c)
619b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$22,$9			# +=K[10]
620b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$25,$8
621b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
622b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$2,$22
623b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$25,$22
624b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwl	$20,51($5)
625b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwr	$20,48($5)
626b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$8,$19,24		# byte swap(11)
627b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$9,$19,8
628b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$10,$19,0xFF00
629b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$19,$19,24
630b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$9,0xFF00
631b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$10,$10,8
632b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$19,$8
633b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$9,$10
634b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$19,$9
635b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$23,$19,$24			# 11
636b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$24,$2,6
637b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$10,$3,$7
638b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$9,$2,7
639b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$10,$2
640b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$8,$2,11
641b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$9
642b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$9,$2,21
643b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$8
644b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$8,$2,25
645b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$9
646b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$9,$2,26
647b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$8
648b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$10,$7			# Ch(e,f,g)
649b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$8,$9,$24			# Sigma1(e)
650b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
651b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$24,$25,2
652b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$23,$10
653b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$10,44($6)		# K[11]
654b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$9,$25,10
655b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$23,$8
656b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$8,$25,13
657b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$9
658b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$9,$25,19
659b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$8
660b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$8,$25,22
661b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$9
662b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$9,$25,30
663b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$8
664b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$19,44($29)	# offload to ring buffer
665b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$9			# Sigma0(a)
666b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
667b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$8,$25,$30
668b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$9,$25,$30
669b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$8,$31
670b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$9,$8			# Maj(a,b,c)
671b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$23,$10			# +=K[11]
672b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$24,$9
673b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
674b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$1,$23
675b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$24,$23
676b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwl	$21,55($5)
677b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwr	$21,52($5)
678b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$9,$20,24		# byte swap(12)
679b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$10,$20,8
680b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$11,$20,0xFF00
681b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$20,$20,24
682b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$10,0xFF00
683b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$11,$11,8
684b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$20,$9
685b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$10,$11
686b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$20,$10
687b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$8,$20,$7			# 12
688b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$7,$1,6
689b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$11,$2,$3
690b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$10,$1,7
691b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$11,$1
692b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$9,$1,11
693b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$10
694b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$10,$1,21
695b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$9
696b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$9,$1,25
697b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$10
698b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$10,$1,26
699b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$9
700b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$11,$3			# Ch(e,f,g)
701b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$9,$10,$7			# Sigma1(e)
702b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
703b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$7,$24,2
704b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$8,$11
705b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$11,48($6)		# K[12]
706b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$10,$24,10
707b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$8,$9
708b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$9,$24,13
709b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$10
710b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$10,$24,19
711b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$9
712b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$9,$24,22
713b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$10
714b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$10,$24,30
715b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$9
716b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$20,48($29)	# offload to ring buffer
717b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$10			# Sigma0(a)
718b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
719b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$9,$24,$25
720b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$10,$24,$25
721b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$9,$30
722b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$10,$9			# Maj(a,b,c)
723b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$8,$11			# +=K[12]
724b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$7,$10
725b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
726b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$31,$8
727b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$7,$8
728b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwl	$22,59($5)
729b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwr	$22,56($5)
730b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$10,$21,24		# byte swap(13)
731b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$11,$21,8
732b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$12,$21,0xFF00
733b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$21,$21,24
734b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$11,0xFF00
735b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$12,$12,8
736b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$21,$10
737b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$11,$12
738b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$21,$11
739b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$9,$21,$3			# 13
740b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$3,$31,6
741b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$12,$1,$2
742b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$11,$31,7
743b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$12,$31
744b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$10,$31,11
745b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$11
746b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$11,$31,21
747b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$10
748b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$10,$31,25
749b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$11
750b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$11,$31,26
751b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$10
752b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$12,$2			# Ch(e,f,g)
753b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$10,$11,$3			# Sigma1(e)
754b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
755b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$3,$7,2
756b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$9,$12
757b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$12,52($6)		# K[13]
758b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$11,$7,10
759b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$9,$10
760b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$10,$7,13
761b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$11
762b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$11,$7,19
763b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$10
764b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$10,$7,22
765b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$11
766b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$11,$7,30
767b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$10
768b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$21,52($29)	# offload to ring buffer
769b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$11			# Sigma0(a)
770b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
771b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$10,$7,$24
772b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$11,$7,$24
773b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$10,$25
774b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$11,$10			# Maj(a,b,c)
775b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$9,$12			# +=K[13]
776b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$3,$11
777b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
778b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$30,$9
779b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$3,$9
780b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$8,0($29)	# prefetch from ring buffer
781b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwl	$23,63($5)
782b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lwr	$23,60($5)
783b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$11,$22,24		# byte swap(14)
784b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$12,$22,8
785b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$13,$22,0xFF00
786b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$22,$22,24
787b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$12,0xFF00
788b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$13,$13,8
789b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$22,$11
790b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$12,$13
791b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$22,$12
792b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$10,$22,$2			# 14
793b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$2,$30,6
794b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$13,$31,$1
795b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$12,$30,7
796b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$13,$30
797b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$11,$30,11
798b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$12
799b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$12,$30,21
800b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$11
801b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$11,$30,25
802b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$12
803b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$12,$30,26
804b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$11
805b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$13,$1			# Ch(e,f,g)
806b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$11,$12,$2			# Sigma1(e)
807b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
808b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$2,$3,2
809b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$10,$13
810b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$13,56($6)		# K[14]
811b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$12,$3,10
812b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$10,$11
813b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$11,$3,13
814b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$12
815b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$12,$3,19
816b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$11
817b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$11,$3,22
818b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$12
819b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$12,$3,30
820b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$11
821b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$22,56($29)	# offload to ring buffer
822b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$12			# Sigma0(a)
823b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
824b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$11,$3,$7
825b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$12,$3,$7
826b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$11,$24
827b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$12,$11			# Maj(a,b,c)
828b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$10,$13			# +=K[14]
829b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$2,$12
830b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
831b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$25,$10
832b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$2,$10
833b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$9,4($29)	# prefetch from ring buffer
834b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$12,$23,24		# byte swap(15)
835b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$13,$23,8
836b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$14,$23,0xFF00
837b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$23,$23,24
838b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	andi	$13,0xFF00
839b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$14,$14,8
840b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$23,$12
841b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$13,$14
842b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$23,$13
843b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$11,$23,$1			# 15
844b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$1,$25,6
845b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$14,$30,$31
846b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$13,$25,7
847b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$14,$25
848b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$12,$25,11
849b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$13
850b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$13,$25,21
851b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$12
852b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$12,$25,25
853b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$13
854b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$13,$25,26
855b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$12
856b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$14,$31			# Ch(e,f,g)
857b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$12,$13,$1			# Sigma1(e)
858b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
859b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$1,$2,2
860b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$11,$14
861b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$14,60($6)		# K[15]
862b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$13,$2,10
863b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$11,$12
864b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$12,$2,13
865b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$13
866b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$13,$2,19
867b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$12
868b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$12,$2,22
869b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$13
870b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$13,$2,30
871b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$12
872b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$23,60($29)	# offload to ring buffer
873b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$13			# Sigma0(a)
874b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
875b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$12,$2,$3
876b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$13,$2,$3
877b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$12,$7
878b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$13,$12			# Maj(a,b,c)
879b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$11,$14			# +=K[15]
880b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$1,$13
881b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
882b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$24,$11
883b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$1,$11
884b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$10,8($29)	# prefetch from ring buffer
885b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	b	.L16_xx
886b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic.align	4
887b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic.L16_xx:
888b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$14,$9,3		# Xupdate(16)
889b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$8,$17			# +=X[i+9]
890b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$13,$9,14
891b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$12,$9,7
892b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$14,$13
893b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$13,11
894b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$14,$12
895b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$12,$9,18
896b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$14,$13
897b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
898b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$15,$22,10
899b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$14,$12			# sigma0(X[i+1])
900b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$13,$22,13
901b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$8,$14
902b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$12,$22,17
903b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$15,$13
904b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$13,2
905b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$15,$12
906b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$12,$22,19
907b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$15,$13
908b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
909b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$15,$12			# sigma1(X[i+14])
910b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$8,$15
911b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$12,$8,$31			# 16
912b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$31,$24,6
913b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$15,$25,$30
914b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$14,$24,7
915b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$15,$24
916b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$13,$24,11
917b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$14
918b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$14,$24,21
919b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$13
920b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$13,$24,25
921b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$14
922b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$14,$24,26
923b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$13
924b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$15,$30			# Ch(e,f,g)
925b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$13,$14,$31			# Sigma1(e)
926b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
927b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$31,$1,2
928b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$12,$15
929b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$15,64($6)		# K[16]
930b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$14,$1,10
931b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$12,$13
932b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$13,$1,13
933b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$14
934b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$14,$1,19
935b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$13
936b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$13,$1,22
937b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$14
938b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$14,$1,30
939b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$13
940b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$8,0($29)	# offload to ring buffer
941b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$14			# Sigma0(a)
942b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
943b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$13,$1,$2
944b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$14,$1,$2
945b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$13,$3
946b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$14,$13			# Maj(a,b,c)
947b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$12,$15			# +=K[16]
948b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$31,$14
949b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
950b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$7,$12
951b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$31,$12
952b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$11,12($29)	# prefetch from ring buffer
953b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$15,$10,3		# Xupdate(17)
954b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$9,$18			# +=X[i+9]
955b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$14,$10,14
956b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$13,$10,7
957b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$15,$14
958b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$14,11
959b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$15,$13
960b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$13,$10,18
961b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$15,$14
962b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
963b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$16,$23,10
964b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$15,$13			# sigma0(X[i+1])
965b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$14,$23,13
966b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$9,$15
967b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$13,$23,17
968b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$16,$14
969b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$14,2
970b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$16,$13
971b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$13,$23,19
972b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$16,$14
973b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
974b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$16,$13			# sigma1(X[i+14])
975b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$9,$16
976b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$13,$9,$30			# 17
977b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$30,$7,6
978b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$16,$24,$25
979b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$15,$7,7
980b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$16,$7
981b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$14,$7,11
982b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$15
983b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$15,$7,21
984b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$14
985b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$14,$7,25
986b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$15
987b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$15,$7,26
988b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$14
989b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$16,$25			# Ch(e,f,g)
990b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$14,$15,$30			# Sigma1(e)
991b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
992b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$30,$31,2
993b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$13,$16
994b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$16,68($6)		# K[17]
995b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$15,$31,10
996b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$13,$14
997b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$14,$31,13
998b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$15
999b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$15,$31,19
1000b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$14
1001b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$14,$31,22
1002b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$15
1003b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$15,$31,30
1004b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$14
1005b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$9,4($29)	# offload to ring buffer
1006b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$15			# Sigma0(a)
1007b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1008b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$14,$31,$1
1009b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$15,$31,$1
1010b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$14,$2
1011b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$15,$14			# Maj(a,b,c)
1012b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$13,$16			# +=K[17]
1013b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$30,$15
1014b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1015b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$3,$13
1016b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$30,$13
1017b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$12,16($29)	# prefetch from ring buffer
1018b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$16,$11,3		# Xupdate(18)
1019b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$10,$19			# +=X[i+9]
1020b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$15,$11,14
1021b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$14,$11,7
1022b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$16,$15
1023b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$15,11
1024b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$16,$14
1025b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$14,$11,18
1026b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$16,$15
1027b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1028b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$17,$8,10
1029b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$16,$14			# sigma0(X[i+1])
1030b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$15,$8,13
1031b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$10,$16
1032b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$14,$8,17
1033b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$17,$15
1034b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$15,2
1035b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$17,$14
1036b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$14,$8,19
1037b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$17,$15
1038b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1039b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$17,$14			# sigma1(X[i+14])
1040b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$10,$17
1041b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$14,$10,$25			# 18
1042b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$25,$3,6
1043b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$17,$7,$24
1044b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$16,$3,7
1045b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$17,$3
1046b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$15,$3,11
1047b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$16
1048b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$16,$3,21
1049b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$15
1050b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$15,$3,25
1051b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$16
1052b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$16,$3,26
1053b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$15
1054b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$17,$24			# Ch(e,f,g)
1055b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$15,$16,$25			# Sigma1(e)
1056b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1057b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$25,$30,2
1058b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$14,$17
1059b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$17,72($6)		# K[18]
1060b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$16,$30,10
1061b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$14,$15
1062b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$15,$30,13
1063b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$16
1064b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$16,$30,19
1065b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$15
1066b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$15,$30,22
1067b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$16
1068b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$16,$30,30
1069b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$15
1070b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$10,8($29)	# offload to ring buffer
1071b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$16			# Sigma0(a)
1072b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1073b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$15,$30,$31
1074b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$16,$30,$31
1075b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$15,$1
1076b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$16,$15			# Maj(a,b,c)
1077b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$14,$17			# +=K[18]
1078b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$25,$16
1079b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1080b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$2,$14
1081b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$25,$14
1082b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$13,20($29)	# prefetch from ring buffer
1083b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$17,$12,3		# Xupdate(19)
1084b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$11,$20			# +=X[i+9]
1085b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$16,$12,14
1086b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$15,$12,7
1087b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$17,$16
1088b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$16,11
1089b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$17,$15
1090b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$15,$12,18
1091b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$17,$16
1092b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1093b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$18,$9,10
1094b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$17,$15			# sigma0(X[i+1])
1095b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$16,$9,13
1096b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$11,$17
1097b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$15,$9,17
1098b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$18,$16
1099b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$16,2
1100b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$18,$15
1101b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$15,$9,19
1102b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$18,$16
1103b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1104b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$18,$15			# sigma1(X[i+14])
1105b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$11,$18
1106b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$15,$11,$24			# 19
1107b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$24,$2,6
1108b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$18,$3,$7
1109b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$17,$2,7
1110b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$18,$2
1111b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$16,$2,11
1112b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$17
1113b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$17,$2,21
1114b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$16
1115b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$16,$2,25
1116b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$17
1117b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$17,$2,26
1118b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$16
1119b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$18,$7			# Ch(e,f,g)
1120b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$16,$17,$24			# Sigma1(e)
1121b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1122b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$24,$25,2
1123b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$15,$18
1124b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$18,76($6)		# K[19]
1125b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$17,$25,10
1126b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$15,$16
1127b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$16,$25,13
1128b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$17
1129b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$17,$25,19
1130b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$16
1131b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$16,$25,22
1132b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$17
1133b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$17,$25,30
1134b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$16
1135b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$11,12($29)	# offload to ring buffer
1136b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$17			# Sigma0(a)
1137b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1138b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$16,$25,$30
1139b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$17,$25,$30
1140b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$16,$31
1141b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$17,$16			# Maj(a,b,c)
1142b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$15,$18			# +=K[19]
1143b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$24,$17
1144b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1145b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$1,$15
1146b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$24,$15
1147b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$14,24($29)	# prefetch from ring buffer
1148b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$18,$13,3		# Xupdate(20)
1149b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$12,$21			# +=X[i+9]
1150b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$17,$13,14
1151b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$16,$13,7
1152b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$18,$17
1153b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$17,11
1154b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$18,$16
1155b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$16,$13,18
1156b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$18,$17
1157b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1158b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$19,$10,10
1159b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$18,$16			# sigma0(X[i+1])
1160b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$17,$10,13
1161b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$12,$18
1162b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$16,$10,17
1163b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$19,$17
1164b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$17,2
1165b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$19,$16
1166b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$16,$10,19
1167b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$19,$17
1168b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1169b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$19,$16			# sigma1(X[i+14])
1170b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$12,$19
1171b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$16,$12,$7			# 20
1172b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$7,$1,6
1173b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$19,$2,$3
1174b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$18,$1,7
1175b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$19,$1
1176b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$17,$1,11
1177b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$18
1178b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$18,$1,21
1179b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$17
1180b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$17,$1,25
1181b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$18
1182b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$18,$1,26
1183b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$17
1184b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$19,$3			# Ch(e,f,g)
1185b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$17,$18,$7			# Sigma1(e)
1186b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1187b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$7,$24,2
1188b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$16,$19
1189b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$19,80($6)		# K[20]
1190b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$18,$24,10
1191b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$16,$17
1192b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$17,$24,13
1193b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$18
1194b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$18,$24,19
1195b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$17
1196b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$17,$24,22
1197b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$18
1198b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$18,$24,30
1199b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$17
1200b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$12,16($29)	# offload to ring buffer
1201b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$18			# Sigma0(a)
1202b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1203b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$17,$24,$25
1204b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$18,$24,$25
1205b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$17,$30
1206b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$18,$17			# Maj(a,b,c)
1207b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$16,$19			# +=K[20]
1208b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$7,$18
1209b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1210b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$31,$16
1211b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$7,$16
1212b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$15,28($29)	# prefetch from ring buffer
1213b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$19,$14,3		# Xupdate(21)
1214b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$13,$22			# +=X[i+9]
1215b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$18,$14,14
1216b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$17,$14,7
1217b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$19,$18
1218b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$18,11
1219b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$19,$17
1220b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$17,$14,18
1221b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$19,$18
1222b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1223b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$20,$11,10
1224b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$19,$17			# sigma0(X[i+1])
1225b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$18,$11,13
1226b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$13,$19
1227b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$17,$11,17
1228b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$20,$18
1229b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$18,2
1230b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$20,$17
1231b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$17,$11,19
1232b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$20,$18
1233b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1234b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$20,$17			# sigma1(X[i+14])
1235b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$13,$20
1236b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$17,$13,$3			# 21
1237b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$3,$31,6
1238b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$20,$1,$2
1239b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$19,$31,7
1240b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$20,$31
1241b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$18,$31,11
1242b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$19
1243b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$19,$31,21
1244b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$18
1245b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$18,$31,25
1246b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$19
1247b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$19,$31,26
1248b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$18
1249b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$20,$2			# Ch(e,f,g)
1250b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$18,$19,$3			# Sigma1(e)
1251b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1252b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$3,$7,2
1253b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$17,$20
1254b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$20,84($6)		# K[21]
1255b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$19,$7,10
1256b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$17,$18
1257b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$18,$7,13
1258b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$19
1259b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$19,$7,19
1260b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$18
1261b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$18,$7,22
1262b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$19
1263b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$19,$7,30
1264b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$18
1265b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$13,20($29)	# offload to ring buffer
1266b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$19			# Sigma0(a)
1267b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1268b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$18,$7,$24
1269b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$19,$7,$24
1270b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$18,$25
1271b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$19,$18			# Maj(a,b,c)
1272b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$17,$20			# +=K[21]
1273b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$3,$19
1274b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1275b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$30,$17
1276b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$3,$17
1277b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$16,32($29)	# prefetch from ring buffer
1278b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$20,$15,3		# Xupdate(22)
1279b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$14,$23			# +=X[i+9]
1280b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$19,$15,14
1281b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$18,$15,7
1282b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$20,$19
1283b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$19,11
1284b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$20,$18
1285b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$18,$15,18
1286b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$20,$19
1287b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1288b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$21,$12,10
1289b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$20,$18			# sigma0(X[i+1])
1290b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$19,$12,13
1291b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$14,$20
1292b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$18,$12,17
1293b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$21,$19
1294b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$19,2
1295b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$21,$18
1296b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$18,$12,19
1297b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$21,$19
1298b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1299b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$21,$18			# sigma1(X[i+14])
1300b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$14,$21
1301b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$18,$14,$2			# 22
1302b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$2,$30,6
1303b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$21,$31,$1
1304b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$20,$30,7
1305b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$21,$30
1306b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$19,$30,11
1307b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$20
1308b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$20,$30,21
1309b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$19
1310b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$19,$30,25
1311b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$20
1312b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$20,$30,26
1313b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$19
1314b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$21,$1			# Ch(e,f,g)
1315b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$19,$20,$2			# Sigma1(e)
1316b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1317b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$2,$3,2
1318b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$18,$21
1319b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$21,88($6)		# K[22]
1320b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$20,$3,10
1321b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$18,$19
1322b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$19,$3,13
1323b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$20
1324b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$20,$3,19
1325b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$19
1326b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$19,$3,22
1327b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$20
1328b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$20,$3,30
1329b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$19
1330b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$14,24($29)	# offload to ring buffer
1331b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$20			# Sigma0(a)
1332b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1333b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$19,$3,$7
1334b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$20,$3,$7
1335b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$19,$24
1336b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$20,$19			# Maj(a,b,c)
1337b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$18,$21			# +=K[22]
1338b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$2,$20
1339b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1340b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$25,$18
1341b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$2,$18
1342b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$17,36($29)	# prefetch from ring buffer
1343b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$21,$16,3		# Xupdate(23)
1344b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$15,$8			# +=X[i+9]
1345b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$20,$16,14
1346b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$19,$16,7
1347b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$21,$20
1348b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$20,11
1349b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$21,$19
1350b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$19,$16,18
1351b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$21,$20
1352b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1353b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$22,$13,10
1354b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$21,$19			# sigma0(X[i+1])
1355b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$20,$13,13
1356b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$15,$21
1357b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$19,$13,17
1358b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$22,$20
1359b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$20,2
1360b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$22,$19
1361b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$19,$13,19
1362b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$22,$20
1363b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1364b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$22,$19			# sigma1(X[i+14])
1365b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$15,$22
1366b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$19,$15,$1			# 23
1367b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$1,$25,6
1368b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$22,$30,$31
1369b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$21,$25,7
1370b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$22,$25
1371b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$20,$25,11
1372b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$21
1373b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$21,$25,21
1374b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$20
1375b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$20,$25,25
1376b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$21
1377b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$21,$25,26
1378b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$20
1379b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$22,$31			# Ch(e,f,g)
1380b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$20,$21,$1			# Sigma1(e)
1381b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1382b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$1,$2,2
1383b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$19,$22
1384b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$22,92($6)		# K[23]
1385b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$21,$2,10
1386b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$19,$20
1387b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$20,$2,13
1388b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$21
1389b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$21,$2,19
1390b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$20
1391b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$20,$2,22
1392b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$21
1393b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$21,$2,30
1394b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$20
1395b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$15,28($29)	# offload to ring buffer
1396b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$21			# Sigma0(a)
1397b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1398b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$20,$2,$3
1399b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$21,$2,$3
1400b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$20,$7
1401b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$21,$20			# Maj(a,b,c)
1402b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$19,$22			# +=K[23]
1403b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$1,$21
1404b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1405b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$24,$19
1406b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$1,$19
1407b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$18,40($29)	# prefetch from ring buffer
1408b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$22,$17,3		# Xupdate(24)
1409b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$16,$9			# +=X[i+9]
1410b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$21,$17,14
1411b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$20,$17,7
1412b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$22,$21
1413b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$21,11
1414b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$22,$20
1415b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$20,$17,18
1416b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$22,$21
1417b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1418b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$23,$14,10
1419b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$22,$20			# sigma0(X[i+1])
1420b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$21,$14,13
1421b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$16,$22
1422b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$20,$14,17
1423b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$23,$21
1424b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$21,2
1425b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$23,$20
1426b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$20,$14,19
1427b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$23,$21
1428b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1429b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$23,$20			# sigma1(X[i+14])
1430b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$16,$23
1431b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$20,$16,$31			# 24
1432b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$31,$24,6
1433b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$23,$25,$30
1434b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$22,$24,7
1435b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$23,$24
1436b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$21,$24,11
1437b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$22
1438b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$22,$24,21
1439b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$21
1440b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$21,$24,25
1441b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$22
1442b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$22,$24,26
1443b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$21
1444b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$23,$30			# Ch(e,f,g)
1445b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$21,$22,$31			# Sigma1(e)
1446b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1447b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$31,$1,2
1448b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$20,$23
1449b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$23,96($6)		# K[24]
1450b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$22,$1,10
1451b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$20,$21
1452b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$21,$1,13
1453b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$22
1454b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$22,$1,19
1455b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$21
1456b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$21,$1,22
1457b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$22
1458b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$22,$1,30
1459b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$21
1460b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$16,32($29)	# offload to ring buffer
1461b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$31,$22			# Sigma0(a)
1462b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1463b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$21,$1,$2
1464b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$22,$1,$2
1465b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$21,$3
1466b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$22,$21			# Maj(a,b,c)
1467b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$20,$23			# +=K[24]
1468b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$31,$22
1469b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1470b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$7,$20
1471b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$31,$20
1472b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$19,44($29)	# prefetch from ring buffer
1473b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$23,$18,3		# Xupdate(25)
1474b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$17,$10			# +=X[i+9]
1475b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$22,$18,14
1476b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$21,$18,7
1477b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$23,$22
1478b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$22,11
1479b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$23,$21
1480b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$21,$18,18
1481b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$23,$22
1482b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1483b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$8,$15,10
1484b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$23,$21			# sigma0(X[i+1])
1485b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$22,$15,13
1486b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$17,$23
1487b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$21,$15,17
1488b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$8,$22
1489b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$22,2
1490b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$8,$21
1491b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$21,$15,19
1492b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$8,$22
1493b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1494b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$8,$21			# sigma1(X[i+14])
1495b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$17,$8
1496b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$21,$17,$30			# 25
1497b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$30,$7,6
1498b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$8,$24,$25
1499b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$23,$7,7
1500b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$8,$7
1501b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$22,$7,11
1502b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$23
1503b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$23,$7,21
1504b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$22
1505b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$22,$7,25
1506b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$23
1507b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$23,$7,26
1508b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$22
1509b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$8,$25			# Ch(e,f,g)
1510b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$22,$23,$30			# Sigma1(e)
1511b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1512b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$30,$31,2
1513b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$21,$8
1514b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$8,100($6)		# K[25]
1515b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$23,$31,10
1516b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$21,$22
1517b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$22,$31,13
1518b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$23
1519b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$23,$31,19
1520b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$22
1521b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$22,$31,22
1522b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$23
1523b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$23,$31,30
1524b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$22
1525b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$17,36($29)	# offload to ring buffer
1526b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$30,$23			# Sigma0(a)
1527b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1528b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$22,$31,$1
1529b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$23,$31,$1
1530b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$22,$2
1531b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$23,$22			# Maj(a,b,c)
1532b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$21,$8			# +=K[25]
1533b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$30,$23
1534b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1535b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$3,$21
1536b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$30,$21
1537b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$20,48($29)	# prefetch from ring buffer
1538b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$8,$19,3		# Xupdate(26)
1539b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$18,$11			# +=X[i+9]
1540b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$23,$19,14
1541b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$22,$19,7
1542b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$8,$23
1543b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$23,11
1544b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$8,$22
1545b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$22,$19,18
1546b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$8,$23
1547b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1548b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$9,$16,10
1549b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$8,$22			# sigma0(X[i+1])
1550b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$23,$16,13
1551b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$18,$8
1552b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$22,$16,17
1553b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$9,$23
1554b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$23,2
1555b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$9,$22
1556b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$22,$16,19
1557b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$9,$23
1558b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1559b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$9,$22			# sigma1(X[i+14])
1560b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$18,$9
1561b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$22,$18,$25			# 26
1562b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$25,$3,6
1563b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$9,$7,$24
1564b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$8,$3,7
1565b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$9,$3
1566b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$23,$3,11
1567b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$8
1568b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$8,$3,21
1569b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$23
1570b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$23,$3,25
1571b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$8
1572b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$8,$3,26
1573b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$23
1574b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$9,$24			# Ch(e,f,g)
1575b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$23,$8,$25			# Sigma1(e)
1576b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1577b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$25,$30,2
1578b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$22,$9
1579b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$9,104($6)		# K[26]
1580b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$8,$30,10
1581b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$22,$23
1582b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$23,$30,13
1583b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$8
1584b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$8,$30,19
1585b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$23
1586b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$23,$30,22
1587b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$8
1588b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$8,$30,30
1589b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$23
1590b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$18,40($29)	# offload to ring buffer
1591b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$25,$8			# Sigma0(a)
1592b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1593b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$23,$30,$31
1594b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$8,$30,$31
1595b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$23,$1
1596b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$8,$23			# Maj(a,b,c)
1597b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$22,$9			# +=K[26]
1598b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$25,$8
1599b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1600b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$2,$22
1601b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$25,$22
1602b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$21,52($29)	# prefetch from ring buffer
1603b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$9,$20,3		# Xupdate(27)
1604b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$19,$12			# +=X[i+9]
1605b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$8,$20,14
1606b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$23,$20,7
1607b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$9,$8
1608b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$8,11
1609b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$9,$23
1610b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$23,$20,18
1611b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$9,$8
1612b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1613b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$10,$17,10
1614b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$9,$23			# sigma0(X[i+1])
1615b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$8,$17,13
1616b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$19,$9
1617b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$23,$17,17
1618b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$10,$8
1619b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$8,2
1620b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$10,$23
1621b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$23,$17,19
1622b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$10,$8
1623b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1624b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$10,$23			# sigma1(X[i+14])
1625b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$19,$10
1626b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$23,$19,$24			# 27
1627b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$24,$2,6
1628b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$10,$3,$7
1629b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$9,$2,7
1630b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$10,$2
1631b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$8,$2,11
1632b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$9
1633b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$9,$2,21
1634b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$8
1635b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$8,$2,25
1636b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$9
1637b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$9,$2,26
1638b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$8
1639b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$10,$7			# Ch(e,f,g)
1640b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$8,$9,$24			# Sigma1(e)
1641b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1642b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$24,$25,2
1643b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$23,$10
1644b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$10,108($6)		# K[27]
1645b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$9,$25,10
1646b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$23,$8
1647b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$8,$25,13
1648b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$9
1649b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$9,$25,19
1650b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$8
1651b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$8,$25,22
1652b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$9
1653b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$9,$25,30
1654b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$8
1655b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$19,44($29)	# offload to ring buffer
1656b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$24,$9			# Sigma0(a)
1657b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1658b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$8,$25,$30
1659b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$9,$25,$30
1660b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$8,$31
1661b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$9,$8			# Maj(a,b,c)
1662b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$23,$10			# +=K[27]
1663b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$24,$9
1664b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1665b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$1,$23
1666b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$24,$23
1667b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$22,56($29)	# prefetch from ring buffer
1668b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$10,$21,3		# Xupdate(28)
1669b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$20,$13			# +=X[i+9]
1670b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$9,$21,14
1671b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$8,$21,7
1672b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$10,$9
1673b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$9,11
1674b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$10,$8
1675b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$8,$21,18
1676b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$10,$9
1677b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1678b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$11,$18,10
1679b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$10,$8			# sigma0(X[i+1])
1680b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$9,$18,13
1681b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$20,$10
1682b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$8,$18,17
1683b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$11,$9
1684b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$9,2
1685b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$11,$8
1686b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$8,$18,19
1687b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$11,$9
1688b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1689b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$11,$8			# sigma1(X[i+14])
1690b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$20,$11
1691b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$8,$20,$7			# 28
1692b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$7,$1,6
1693b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$11,$2,$3
1694b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$10,$1,7
1695b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$11,$1
1696b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$9,$1,11
1697b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$10
1698b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$10,$1,21
1699b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$9
1700b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$9,$1,25
1701b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$10
1702b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$10,$1,26
1703b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$9
1704b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$11,$3			# Ch(e,f,g)
1705b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$9,$10,$7			# Sigma1(e)
1706b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1707b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$7,$24,2
1708b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$8,$11
1709b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$11,112($6)		# K[28]
1710b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$10,$24,10
1711b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$8,$9
1712b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$9,$24,13
1713b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$10
1714b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$10,$24,19
1715b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$9
1716b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$9,$24,22
1717b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$10
1718b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$10,$24,30
1719b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$9
1720b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$20,48($29)	# offload to ring buffer
1721b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$7,$10			# Sigma0(a)
1722b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1723b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$9,$24,$25
1724b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$10,$24,$25
1725b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$9,$30
1726b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$10,$9			# Maj(a,b,c)
1727b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$8,$11			# +=K[28]
1728b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$7,$10
1729b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1730b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$31,$8
1731b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$7,$8
1732b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$23,60($29)	# prefetch from ring buffer
1733b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$11,$22,3		# Xupdate(29)
1734b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$21,$14			# +=X[i+9]
1735b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$10,$22,14
1736b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$9,$22,7
1737b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$11,$10
1738b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$10,11
1739b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$11,$9
1740b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$9,$22,18
1741b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$11,$10
1742b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1743b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$12,$19,10
1744b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$11,$9			# sigma0(X[i+1])
1745b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$10,$19,13
1746b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$21,$11
1747b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$9,$19,17
1748b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$12,$10
1749b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$10,2
1750b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$12,$9
1751b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$9,$19,19
1752b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$12,$10
1753b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1754b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$12,$9			# sigma1(X[i+14])
1755b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$21,$12
1756b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$9,$21,$3			# 29
1757b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$3,$31,6
1758b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$12,$1,$2
1759b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$11,$31,7
1760b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$12,$31
1761b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$10,$31,11
1762b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$11
1763b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$11,$31,21
1764b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$10
1765b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$10,$31,25
1766b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$11
1767b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$11,$31,26
1768b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$10
1769b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$12,$2			# Ch(e,f,g)
1770b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$10,$11,$3			# Sigma1(e)
1771b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1772b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$3,$7,2
1773b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$9,$12
1774b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$12,116($6)		# K[29]
1775b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$11,$7,10
1776b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$9,$10
1777b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$10,$7,13
1778b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$11
1779b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$11,$7,19
1780b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$10
1781b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$10,$7,22
1782b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$11
1783b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$11,$7,30
1784b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$10
1785b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$21,52($29)	# offload to ring buffer
1786b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$3,$11			# Sigma0(a)
1787b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1788b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$10,$7,$24
1789b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$11,$7,$24
1790b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$10,$25
1791b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$11,$10			# Maj(a,b,c)
1792b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$9,$12			# +=K[29]
1793b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$3,$11
1794b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1795b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$30,$9
1796b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$3,$9
1797b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$8,0($29)	# prefetch from ring buffer
1798b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$12,$23,3		# Xupdate(30)
1799b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$22,$15			# +=X[i+9]
1800b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$11,$23,14
1801b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$10,$23,7
1802b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$12,$11
1803b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$11,11
1804b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$12,$10
1805b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$10,$23,18
1806b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$12,$11
1807b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1808b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$13,$20,10
1809b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$12,$10			# sigma0(X[i+1])
1810b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$11,$20,13
1811b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$22,$12
1812b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$10,$20,17
1813b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$13,$11
1814b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$11,2
1815b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$13,$10
1816b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$10,$20,19
1817b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$13,$11
1818b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1819b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$13,$10			# sigma1(X[i+14])
1820b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$22,$13
1821b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$10,$22,$2			# 30
1822b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$2,$30,6
1823b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$13,$31,$1
1824b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$12,$30,7
1825b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$13,$30
1826b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$11,$30,11
1827b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$12
1828b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$12,$30,21
1829b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$11
1830b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$11,$30,25
1831b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$12
1832b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$12,$30,26
1833b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$11
1834b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$13,$1			# Ch(e,f,g)
1835b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$11,$12,$2			# Sigma1(e)
1836b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1837b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$2,$3,2
1838b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$10,$13
1839b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$13,120($6)		# K[30]
1840b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$12,$3,10
1841b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$10,$11
1842b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$11,$3,13
1843b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$12
1844b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$12,$3,19
1845b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$11
1846b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$11,$3,22
1847b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$12
1848b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$12,$3,30
1849b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$11
1850b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$22,56($29)	# offload to ring buffer
1851b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$2,$12			# Sigma0(a)
1852b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1853b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$11,$3,$7
1854b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$12,$3,$7
1855b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$11,$24
1856b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$12,$11			# Maj(a,b,c)
1857b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$10,$13			# +=K[30]
1858b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$2,$12
1859b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1860b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$25,$10
1861b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$2,$10
1862b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$9,4($29)	# prefetch from ring buffer
1863b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$13,$8,3		# Xupdate(31)
1864b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$23,$16			# +=X[i+9]
1865b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$12,$8,14
1866b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$11,$8,7
1867b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$13,$12
1868b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$12,11
1869b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$13,$11
1870b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$11,$8,18
1871b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$13,$12
1872b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1873b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$14,$21,10
1874b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$13,$11			# sigma0(X[i+1])
1875b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$12,$21,13
1876b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$23,$13
1877b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$11,$21,17
1878b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$14,$12
1879b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$12,2
1880b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$14,$11
1881b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$11,$21,19
1882b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$14,$12
1883b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1884b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$14,$11			# sigma1(X[i+14])
1885b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$23,$14
1886b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$11,$23,$1			# 31
1887b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$1,$25,6
1888b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$14,$30,$31
1889b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$13,$25,7
1890b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$14,$25
1891b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$12,$25,11
1892b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$13
1893b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$13,$25,21
1894b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$12
1895b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$12,$25,25
1896b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$13
1897b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$13,$25,26
1898b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$12
1899b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$14,$31			# Ch(e,f,g)
1900b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$12,$13,$1			# Sigma1(e)
1901b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1902b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$1,$2,2
1903b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$11,$14
1904b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$14,124($6)		# K[31]
1905b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$13,$2,10
1906b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$11,$12
1907b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$12,$2,13
1908b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$13
1909b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$13,$2,19
1910b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$12
1911b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	srl	$12,$2,22
1912b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$13
1913b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sll	$13,$2,30
1914b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$12
1915b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$23,60($29)	# offload to ring buffer
1916b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	xor	$1,$13			# Sigma0(a)
1917b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1918b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$12,$2,$3
1919b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$13,$2,$3
1920b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$12,$7
1921b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	or	$13,$12			# Maj(a,b,c)
1922b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$11,$14			# +=K[31]
1923b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$1,$13
1924b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1925b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$24,$11
1926b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$1,$11
1927b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$10,8($29)	# prefetch from ring buffer
1928b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	and	$14,0xfff
1929b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	li	$15,2290
1930b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.set	noreorder
1931b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	bne	$14,$15,.L16_xx
1932b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	add $6,16*4		# Ktbl+=16
1933b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1934b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$23,16*4($29)	# restore pointer to the end of input
1935b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$8,0*4($4)
1936b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$9,1*4($4)
1937b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$10,2*4($4)
1938b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	add $5,16*4
1939b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$11,3*4($4)
1940b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$1,$8
1941b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$12,4*4($4)
1942b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$2,$9
1943b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$13,5*4($4)
1944b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$3,$10
1945b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$14,6*4($4)
1946b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$7,$11
1947b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$15,7*4($4)
1948b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$24,$12
1949b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$1,0*4($4)
1950b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$25,$13
1951b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$2,1*4($4)
1952b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$30,$14
1953b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$3,2*4($4)
1954b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	addu	$31,$15
1955b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$7,3*4($4)
1956b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$24,4*4($4)
1957b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$25,5*4($4)
1958b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$30,6*4($4)
1959b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sw	$31,7*4($4)
1960b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1961b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	bnel	$5,$23,.Loop
1962b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	sub $6,192	# rewind $6
1963b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1964b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$31,128-1*4($29)
1965b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$30,128-2*4($29)
1966b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$23,128-3*4($29)
1967b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$22,128-4*4($29)
1968b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$21,128-5*4($29)
1969b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$20,128-6*4($29)
1970b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$19,128-7*4($29)
1971b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$18,128-8*4($29)
1972b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$17,128-9*4($29)
1973b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	lw	$16,128-10*4($29)
1974b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	jr	$31
1975b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	add $29,128
1976b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic.end	sha256_block_data_order
1977b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
1978b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic.rdata
1979b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic.align	5
1980b83a02d94f9ba66fc5da46c2e27572674ea17931Petar JovanovicK256:
1981b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.word	0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5
1982b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.word	0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5
1983b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.word	0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3
1984b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.word	0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174
1985b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.word	0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc
1986b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.word	0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da
1987b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.word	0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7
1988b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.word	0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967
1989b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.word	0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13
1990b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.word	0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85
1991b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.word	0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3
1992b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.word	0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070
1993b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.word	0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5
1994b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.word	0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3
1995b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.word	0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208
1996b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic	.word	0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
1997b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic.asciiz	"SHA256 for MIPS, CRYPTOGAMS by <appro@openssl.org>"
1998b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic.align	5
1999b83a02d94f9ba66fc5da46c2e27572674ea17931Petar Jovanovic
2000