1 1.1 christos #include "mips_arch.h" 2 1.1 christos 3 1.1 christos .text 4 1.1 christos .set noat 5 1.1 christos #if !defined(__mips_eabi) && (!defined(__vxworks) || defined(__pic__)) 6 1.1 christos .option pic2 7 1.1 christos #endif 8 1.1 christos 9 1.1 christos .align 5 10 1.1 christos .globl sha256_block_data_order 11 1.1 christos .ent sha256_block_data_order 12 1.1 christos sha256_block_data_order: 13 1.1 christos .frame $29,192,$31 14 1.1 christos .mask 0xc0ff0000,-8 15 1.1 christos .set noreorder 16 1.1 christos dsubu $29,192 17 1.1 christos sd $31,192-1*8($29) 18 1.1 christos sd $30,192-2*8($29) 19 1.1 christos sd $23,192-3*8($29) 20 1.1 christos sd $22,192-4*8($29) 21 1.1 christos sd $21,192-5*8($29) 22 1.1 christos sd $20,192-6*8($29) 23 1.1 christos sd $19,192-7*8($29) 24 1.1 christos sd $18,192-8*8($29) 25 1.1 christos sd $17,192-9*8($29) 26 1.1 christos sd $16,192-10*8($29) 27 1.1 christos dsll $23,$6,6 28 1.1 christos .cplocal $6 29 1.1 christos .cpsetup $25,$0,sha256_block_data_order 30 1.1 christos .set reorder 31 1.1 christos dla $6,K256 # PIC-ified 'load address' 32 1.1 christos 33 1.1 christos lw $1,0*4($4) # load context 34 1.1 christos lw $2,1*4($4) 35 1.1 christos lw $3,2*4($4) 36 1.1 christos lw $7,3*4($4) 37 1.1 christos lw $24,4*4($4) 38 1.1 christos lw $25,5*4($4) 39 1.1 christos lw $30,6*4($4) 40 1.1 christos lw $31,7*4($4) 41 1.1 christos 42 1.1 christos daddu $23,$5 # pointer to the end of input 43 1.1 christos sd $23,16*4($29) 44 1.1 christos b .Loop 45 1.1 christos 46 1.1 christos .align 5 47 1.1 christos .Loop: 48 1.1 christos #if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) 49 1.1 christos lw $8,($5) 50 1.1 christos #else 51 1.1 christos lwl $8,3($5) 52 1.1 christos lwr $8,0($5) 53 1.1 christos #endif 54 1.1 christos #if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) 55 1.1 christos lw $9,4($5) 56 1.1 christos #else 57 1.1 christos lwl $9,7($5) 58 1.1 christos lwr $9,4($5) 59 1.1 christos #endif 60 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 61 1.1 christos wsbh $8,$8 # byte swap(0) 62 1.1 christos rotr $8,$8,16 63 1.1 christos #else 64 1.1 christos srl $13,$8,24 # byte swap(0) 65 1.1 christos srl $14,$8,8 66 1.1 christos andi $15,$8,0xFF00 67 1.1 christos sll $8,$8,24 68 1.1 christos andi $14,0xFF00 69 1.1 christos sll $15,$15,8 70 1.1 christos or $8,$13 71 1.1 christos or $14,$15 72 1.1 christos or $8,$14 73 1.1 christos #endif 74 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 75 1.1 christos xor $15,$25,$30 # 0 76 1.1 christos rotr $13,$24,6 77 1.1 christos addu $12,$8,$31 78 1.1 christos rotr $14,$24,11 79 1.1 christos and $15,$24 80 1.1 christos rotr $31,$24,25 81 1.1 christos xor $13,$14 82 1.1 christos rotr $14,$1,2 83 1.1 christos xor $15,$30 # Ch(e,f,g) 84 1.1 christos xor $13,$31 # Sigma1(e) 85 1.1 christos 86 1.1 christos rotr $31,$1,13 87 1.1 christos addu $12,$15 88 1.1 christos lw $15,0($6) # K[0] 89 1.1 christos xor $31,$14 90 1.1 christos rotr $14,$1,22 91 1.1 christos addu $12,$13 92 1.1 christos and $13,$2,$3 93 1.1 christos xor $31,$14 # Sigma0(a) 94 1.1 christos xor $14,$2,$3 95 1.1 christos #else 96 1.1 christos addu $12,$8,$31 # 0 97 1.1 christos srl $31,$24,6 98 1.1 christos xor $15,$25,$30 99 1.1 christos sll $14,$24,7 100 1.1 christos and $15,$24 101 1.1 christos srl $13,$24,11 102 1.1 christos xor $31,$14 103 1.1 christos sll $14,$24,21 104 1.1 christos xor $31,$13 105 1.1 christos srl $13,$24,25 106 1.1 christos xor $31,$14 107 1.1 christos sll $14,$24,26 108 1.1 christos xor $31,$13 109 1.1 christos xor $15,$30 # Ch(e,f,g) 110 1.1 christos xor $13,$14,$31 # Sigma1(e) 111 1.1 christos 112 1.1 christos srl $31,$1,2 113 1.1 christos addu $12,$15 114 1.1 christos lw $15,0($6) # K[0] 115 1.1 christos sll $14,$1,10 116 1.1 christos addu $12,$13 117 1.1 christos srl $13,$1,13 118 1.1 christos xor $31,$14 119 1.1 christos sll $14,$1,19 120 1.1 christos xor $31,$13 121 1.1 christos srl $13,$1,22 122 1.1 christos xor $31,$14 123 1.1 christos sll $14,$1,30 124 1.1 christos xor $31,$13 125 1.1 christos and $13,$2,$3 126 1.1 christos xor $31,$14 # Sigma0(a) 127 1.1 christos xor $14,$2,$3 128 1.1 christos #endif 129 1.1 christos sw $8,0($29) # offload to ring buffer 130 1.1 christos addu $31,$13 131 1.1 christos and $14,$1 132 1.1 christos addu $12,$15 # +=K[0] 133 1.1 christos addu $31,$14 # +=Maj(a,b,c) 134 1.1 christos addu $7,$12 135 1.1 christos addu $31,$12 136 1.1 christos #if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) 137 1.1 christos lw $10,8($5) 138 1.1 christos #else 139 1.1 christos lwl $10,11($5) 140 1.1 christos lwr $10,8($5) 141 1.1 christos #endif 142 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 143 1.1 christos wsbh $9,$9 # byte swap(1) 144 1.1 christos rotr $9,$9,16 145 1.1 christos #else 146 1.1 christos srl $14,$9,24 # byte swap(1) 147 1.1 christos srl $15,$9,8 148 1.1 christos andi $16,$9,0xFF00 149 1.1 christos sll $9,$9,24 150 1.1 christos andi $15,0xFF00 151 1.1 christos sll $16,$16,8 152 1.1 christos or $9,$14 153 1.1 christos or $15,$16 154 1.1 christos or $9,$15 155 1.1 christos #endif 156 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 157 1.1 christos xor $16,$24,$25 # 1 158 1.1 christos rotr $14,$7,6 159 1.1 christos addu $13,$9,$30 160 1.1 christos rotr $15,$7,11 161 1.1 christos and $16,$7 162 1.1 christos rotr $30,$7,25 163 1.1 christos xor $14,$15 164 1.1 christos rotr $15,$31,2 165 1.1 christos xor $16,$25 # Ch(e,f,g) 166 1.1 christos xor $14,$30 # Sigma1(e) 167 1.1 christos 168 1.1 christos rotr $30,$31,13 169 1.1 christos addu $13,$16 170 1.1 christos lw $16,4($6) # K[1] 171 1.1 christos xor $30,$15 172 1.1 christos rotr $15,$31,22 173 1.1 christos addu $13,$14 174 1.1 christos and $14,$1,$2 175 1.1 christos xor $30,$15 # Sigma0(a) 176 1.1 christos xor $15,$1,$2 177 1.1 christos #else 178 1.1 christos addu $13,$9,$30 # 1 179 1.1 christos srl $30,$7,6 180 1.1 christos xor $16,$24,$25 181 1.1 christos sll $15,$7,7 182 1.1 christos and $16,$7 183 1.1 christos srl $14,$7,11 184 1.1 christos xor $30,$15 185 1.1 christos sll $15,$7,21 186 1.1 christos xor $30,$14 187 1.1 christos srl $14,$7,25 188 1.1 christos xor $30,$15 189 1.1 christos sll $15,$7,26 190 1.1 christos xor $30,$14 191 1.1 christos xor $16,$25 # Ch(e,f,g) 192 1.1 christos xor $14,$15,$30 # Sigma1(e) 193 1.1 christos 194 1.1 christos srl $30,$31,2 195 1.1 christos addu $13,$16 196 1.1 christos lw $16,4($6) # K[1] 197 1.1 christos sll $15,$31,10 198 1.1 christos addu $13,$14 199 1.1 christos srl $14,$31,13 200 1.1 christos xor $30,$15 201 1.1 christos sll $15,$31,19 202 1.1 christos xor $30,$14 203 1.1 christos srl $14,$31,22 204 1.1 christos xor $30,$15 205 1.1 christos sll $15,$31,30 206 1.1 christos xor $30,$14 207 1.1 christos and $14,$1,$2 208 1.1 christos xor $30,$15 # Sigma0(a) 209 1.1 christos xor $15,$1,$2 210 1.1 christos #endif 211 1.1 christos sw $9,4($29) # offload to ring buffer 212 1.1 christos addu $30,$14 213 1.1 christos and $15,$31 214 1.1 christos addu $13,$16 # +=K[1] 215 1.1 christos addu $30,$15 # +=Maj(a,b,c) 216 1.1 christos addu $3,$13 217 1.1 christos addu $30,$13 218 1.1 christos #if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) 219 1.1 christos lw $11,12($5) 220 1.1 christos #else 221 1.1 christos lwl $11,15($5) 222 1.1 christos lwr $11,12($5) 223 1.1 christos #endif 224 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 225 1.1 christos wsbh $10,$10 # byte swap(2) 226 1.1 christos rotr $10,$10,16 227 1.1 christos #else 228 1.1 christos srl $15,$10,24 # byte swap(2) 229 1.1 christos srl $16,$10,8 230 1.1 christos andi $17,$10,0xFF00 231 1.1 christos sll $10,$10,24 232 1.1 christos andi $16,0xFF00 233 1.1 christos sll $17,$17,8 234 1.1 christos or $10,$15 235 1.1 christos or $16,$17 236 1.1 christos or $10,$16 237 1.1 christos #endif 238 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 239 1.1 christos xor $17,$7,$24 # 2 240 1.1 christos rotr $15,$3,6 241 1.1 christos addu $14,$10,$25 242 1.1 christos rotr $16,$3,11 243 1.1 christos and $17,$3 244 1.1 christos rotr $25,$3,25 245 1.1 christos xor $15,$16 246 1.1 christos rotr $16,$30,2 247 1.1 christos xor $17,$24 # Ch(e,f,g) 248 1.1 christos xor $15,$25 # Sigma1(e) 249 1.1 christos 250 1.1 christos rotr $25,$30,13 251 1.1 christos addu $14,$17 252 1.1 christos lw $17,8($6) # K[2] 253 1.1 christos xor $25,$16 254 1.1 christos rotr $16,$30,22 255 1.1 christos addu $14,$15 256 1.1 christos and $15,$31,$1 257 1.1 christos xor $25,$16 # Sigma0(a) 258 1.1 christos xor $16,$31,$1 259 1.1 christos #else 260 1.1 christos addu $14,$10,$25 # 2 261 1.1 christos srl $25,$3,6 262 1.1 christos xor $17,$7,$24 263 1.1 christos sll $16,$3,7 264 1.1 christos and $17,$3 265 1.1 christos srl $15,$3,11 266 1.1 christos xor $25,$16 267 1.1 christos sll $16,$3,21 268 1.1 christos xor $25,$15 269 1.1 christos srl $15,$3,25 270 1.1 christos xor $25,$16 271 1.1 christos sll $16,$3,26 272 1.1 christos xor $25,$15 273 1.1 christos xor $17,$24 # Ch(e,f,g) 274 1.1 christos xor $15,$16,$25 # Sigma1(e) 275 1.1 christos 276 1.1 christos srl $25,$30,2 277 1.1 christos addu $14,$17 278 1.1 christos lw $17,8($6) # K[2] 279 1.1 christos sll $16,$30,10 280 1.1 christos addu $14,$15 281 1.1 christos srl $15,$30,13 282 1.1 christos xor $25,$16 283 1.1 christos sll $16,$30,19 284 1.1 christos xor $25,$15 285 1.1 christos srl $15,$30,22 286 1.1 christos xor $25,$16 287 1.1 christos sll $16,$30,30 288 1.1 christos xor $25,$15 289 1.1 christos and $15,$31,$1 290 1.1 christos xor $25,$16 # Sigma0(a) 291 1.1 christos xor $16,$31,$1 292 1.1 christos #endif 293 1.1 christos sw $10,8($29) # offload to ring buffer 294 1.1 christos addu $25,$15 295 1.1 christos and $16,$30 296 1.1 christos addu $14,$17 # +=K[2] 297 1.1 christos addu $25,$16 # +=Maj(a,b,c) 298 1.1 christos addu $2,$14 299 1.1 christos addu $25,$14 300 1.1 christos #if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) 301 1.1 christos lw $12,16($5) 302 1.1 christos #else 303 1.1 christos lwl $12,19($5) 304 1.1 christos lwr $12,16($5) 305 1.1 christos #endif 306 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 307 1.1 christos wsbh $11,$11 # byte swap(3) 308 1.1 christos rotr $11,$11,16 309 1.1 christos #else 310 1.1 christos srl $16,$11,24 # byte swap(3) 311 1.1 christos srl $17,$11,8 312 1.1 christos andi $18,$11,0xFF00 313 1.1 christos sll $11,$11,24 314 1.1 christos andi $17,0xFF00 315 1.1 christos sll $18,$18,8 316 1.1 christos or $11,$16 317 1.1 christos or $17,$18 318 1.1 christos or $11,$17 319 1.1 christos #endif 320 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 321 1.1 christos xor $18,$3,$7 # 3 322 1.1 christos rotr $16,$2,6 323 1.1 christos addu $15,$11,$24 324 1.1 christos rotr $17,$2,11 325 1.1 christos and $18,$2 326 1.1 christos rotr $24,$2,25 327 1.1 christos xor $16,$17 328 1.1 christos rotr $17,$25,2 329 1.1 christos xor $18,$7 # Ch(e,f,g) 330 1.1 christos xor $16,$24 # Sigma1(e) 331 1.1 christos 332 1.1 christos rotr $24,$25,13 333 1.1 christos addu $15,$18 334 1.1 christos lw $18,12($6) # K[3] 335 1.1 christos xor $24,$17 336 1.1 christos rotr $17,$25,22 337 1.1 christos addu $15,$16 338 1.1 christos and $16,$30,$31 339 1.1 christos xor $24,$17 # Sigma0(a) 340 1.1 christos xor $17,$30,$31 341 1.1 christos #else 342 1.1 christos addu $15,$11,$24 # 3 343 1.1 christos srl $24,$2,6 344 1.1 christos xor $18,$3,$7 345 1.1 christos sll $17,$2,7 346 1.1 christos and $18,$2 347 1.1 christos srl $16,$2,11 348 1.1 christos xor $24,$17 349 1.1 christos sll $17,$2,21 350 1.1 christos xor $24,$16 351 1.1 christos srl $16,$2,25 352 1.1 christos xor $24,$17 353 1.1 christos sll $17,$2,26 354 1.1 christos xor $24,$16 355 1.1 christos xor $18,$7 # Ch(e,f,g) 356 1.1 christos xor $16,$17,$24 # Sigma1(e) 357 1.1 christos 358 1.1 christos srl $24,$25,2 359 1.1 christos addu $15,$18 360 1.1 christos lw $18,12($6) # K[3] 361 1.1 christos sll $17,$25,10 362 1.1 christos addu $15,$16 363 1.1 christos srl $16,$25,13 364 1.1 christos xor $24,$17 365 1.1 christos sll $17,$25,19 366 1.1 christos xor $24,$16 367 1.1 christos srl $16,$25,22 368 1.1 christos xor $24,$17 369 1.1 christos sll $17,$25,30 370 1.1 christos xor $24,$16 371 1.1 christos and $16,$30,$31 372 1.1 christos xor $24,$17 # Sigma0(a) 373 1.1 christos xor $17,$30,$31 374 1.1 christos #endif 375 1.1 christos sw $11,12($29) # offload to ring buffer 376 1.1 christos addu $24,$16 377 1.1 christos and $17,$25 378 1.1 christos addu $15,$18 # +=K[3] 379 1.1 christos addu $24,$17 # +=Maj(a,b,c) 380 1.1 christos addu $1,$15 381 1.1 christos addu $24,$15 382 1.1 christos #if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) 383 1.1 christos lw $13,20($5) 384 1.1 christos #else 385 1.1 christos lwl $13,23($5) 386 1.1 christos lwr $13,20($5) 387 1.1 christos #endif 388 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 389 1.1 christos wsbh $12,$12 # byte swap(4) 390 1.1 christos rotr $12,$12,16 391 1.1 christos #else 392 1.1 christos srl $17,$12,24 # byte swap(4) 393 1.1 christos srl $18,$12,8 394 1.1 christos andi $19,$12,0xFF00 395 1.1 christos sll $12,$12,24 396 1.1 christos andi $18,0xFF00 397 1.1 christos sll $19,$19,8 398 1.1 christos or $12,$17 399 1.1 christos or $18,$19 400 1.1 christos or $12,$18 401 1.1 christos #endif 402 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 403 1.1 christos xor $19,$2,$3 # 4 404 1.1 christos rotr $17,$1,6 405 1.1 christos addu $16,$12,$7 406 1.1 christos rotr $18,$1,11 407 1.1 christos and $19,$1 408 1.1 christos rotr $7,$1,25 409 1.1 christos xor $17,$18 410 1.1 christos rotr $18,$24,2 411 1.1 christos xor $19,$3 # Ch(e,f,g) 412 1.1 christos xor $17,$7 # Sigma1(e) 413 1.1 christos 414 1.1 christos rotr $7,$24,13 415 1.1 christos addu $16,$19 416 1.1 christos lw $19,16($6) # K[4] 417 1.1 christos xor $7,$18 418 1.1 christos rotr $18,$24,22 419 1.1 christos addu $16,$17 420 1.1 christos and $17,$25,$30 421 1.1 christos xor $7,$18 # Sigma0(a) 422 1.1 christos xor $18,$25,$30 423 1.1 christos #else 424 1.1 christos addu $16,$12,$7 # 4 425 1.1 christos srl $7,$1,6 426 1.1 christos xor $19,$2,$3 427 1.1 christos sll $18,$1,7 428 1.1 christos and $19,$1 429 1.1 christos srl $17,$1,11 430 1.1 christos xor $7,$18 431 1.1 christos sll $18,$1,21 432 1.1 christos xor $7,$17 433 1.1 christos srl $17,$1,25 434 1.1 christos xor $7,$18 435 1.1 christos sll $18,$1,26 436 1.1 christos xor $7,$17 437 1.1 christos xor $19,$3 # Ch(e,f,g) 438 1.1 christos xor $17,$18,$7 # Sigma1(e) 439 1.1 christos 440 1.1 christos srl $7,$24,2 441 1.1 christos addu $16,$19 442 1.1 christos lw $19,16($6) # K[4] 443 1.1 christos sll $18,$24,10 444 1.1 christos addu $16,$17 445 1.1 christos srl $17,$24,13 446 1.1 christos xor $7,$18 447 1.1 christos sll $18,$24,19 448 1.1 christos xor $7,$17 449 1.1 christos srl $17,$24,22 450 1.1 christos xor $7,$18 451 1.1 christos sll $18,$24,30 452 1.1 christos xor $7,$17 453 1.1 christos and $17,$25,$30 454 1.1 christos xor $7,$18 # Sigma0(a) 455 1.1 christos xor $18,$25,$30 456 1.1 christos #endif 457 1.1 christos sw $12,16($29) # offload to ring buffer 458 1.1 christos addu $7,$17 459 1.1 christos and $18,$24 460 1.1 christos addu $16,$19 # +=K[4] 461 1.1 christos addu $7,$18 # +=Maj(a,b,c) 462 1.1 christos addu $31,$16 463 1.1 christos addu $7,$16 464 1.1 christos #if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) 465 1.1 christos lw $14,24($5) 466 1.1 christos #else 467 1.1 christos lwl $14,27($5) 468 1.1 christos lwr $14,24($5) 469 1.1 christos #endif 470 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 471 1.1 christos wsbh $13,$13 # byte swap(5) 472 1.1 christos rotr $13,$13,16 473 1.1 christos #else 474 1.1 christos srl $18,$13,24 # byte swap(5) 475 1.1 christos srl $19,$13,8 476 1.1 christos andi $20,$13,0xFF00 477 1.1 christos sll $13,$13,24 478 1.1 christos andi $19,0xFF00 479 1.1 christos sll $20,$20,8 480 1.1 christos or $13,$18 481 1.1 christos or $19,$20 482 1.1 christos or $13,$19 483 1.1 christos #endif 484 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 485 1.1 christos xor $20,$1,$2 # 5 486 1.1 christos rotr $18,$31,6 487 1.1 christos addu $17,$13,$3 488 1.1 christos rotr $19,$31,11 489 1.1 christos and $20,$31 490 1.1 christos rotr $3,$31,25 491 1.1 christos xor $18,$19 492 1.1 christos rotr $19,$7,2 493 1.1 christos xor $20,$2 # Ch(e,f,g) 494 1.1 christos xor $18,$3 # Sigma1(e) 495 1.1 christos 496 1.1 christos rotr $3,$7,13 497 1.1 christos addu $17,$20 498 1.1 christos lw $20,20($6) # K[5] 499 1.1 christos xor $3,$19 500 1.1 christos rotr $19,$7,22 501 1.1 christos addu $17,$18 502 1.1 christos and $18,$24,$25 503 1.1 christos xor $3,$19 # Sigma0(a) 504 1.1 christos xor $19,$24,$25 505 1.1 christos #else 506 1.1 christos addu $17,$13,$3 # 5 507 1.1 christos srl $3,$31,6 508 1.1 christos xor $20,$1,$2 509 1.1 christos sll $19,$31,7 510 1.1 christos and $20,$31 511 1.1 christos srl $18,$31,11 512 1.1 christos xor $3,$19 513 1.1 christos sll $19,$31,21 514 1.1 christos xor $3,$18 515 1.1 christos srl $18,$31,25 516 1.1 christos xor $3,$19 517 1.1 christos sll $19,$31,26 518 1.1 christos xor $3,$18 519 1.1 christos xor $20,$2 # Ch(e,f,g) 520 1.1 christos xor $18,$19,$3 # Sigma1(e) 521 1.1 christos 522 1.1 christos srl $3,$7,2 523 1.1 christos addu $17,$20 524 1.1 christos lw $20,20($6) # K[5] 525 1.1 christos sll $19,$7,10 526 1.1 christos addu $17,$18 527 1.1 christos srl $18,$7,13 528 1.1 christos xor $3,$19 529 1.1 christos sll $19,$7,19 530 1.1 christos xor $3,$18 531 1.1 christos srl $18,$7,22 532 1.1 christos xor $3,$19 533 1.1 christos sll $19,$7,30 534 1.1 christos xor $3,$18 535 1.1 christos and $18,$24,$25 536 1.1 christos xor $3,$19 # Sigma0(a) 537 1.1 christos xor $19,$24,$25 538 1.1 christos #endif 539 1.1 christos sw $13,20($29) # offload to ring buffer 540 1.1 christos addu $3,$18 541 1.1 christos and $19,$7 542 1.1 christos addu $17,$20 # +=K[5] 543 1.1 christos addu $3,$19 # +=Maj(a,b,c) 544 1.1 christos addu $30,$17 545 1.1 christos addu $3,$17 546 1.1 christos #if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) 547 1.1 christos lw $15,28($5) 548 1.1 christos #else 549 1.1 christos lwl $15,31($5) 550 1.1 christos lwr $15,28($5) 551 1.1 christos #endif 552 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 553 1.1 christos wsbh $14,$14 # byte swap(6) 554 1.1 christos rotr $14,$14,16 555 1.1 christos #else 556 1.1 christos srl $19,$14,24 # byte swap(6) 557 1.1 christos srl $20,$14,8 558 1.1 christos andi $21,$14,0xFF00 559 1.1 christos sll $14,$14,24 560 1.1 christos andi $20,0xFF00 561 1.1 christos sll $21,$21,8 562 1.1 christos or $14,$19 563 1.1 christos or $20,$21 564 1.1 christos or $14,$20 565 1.1 christos #endif 566 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 567 1.1 christos xor $21,$31,$1 # 6 568 1.1 christos rotr $19,$30,6 569 1.1 christos addu $18,$14,$2 570 1.1 christos rotr $20,$30,11 571 1.1 christos and $21,$30 572 1.1 christos rotr $2,$30,25 573 1.1 christos xor $19,$20 574 1.1 christos rotr $20,$3,2 575 1.1 christos xor $21,$1 # Ch(e,f,g) 576 1.1 christos xor $19,$2 # Sigma1(e) 577 1.1 christos 578 1.1 christos rotr $2,$3,13 579 1.1 christos addu $18,$21 580 1.1 christos lw $21,24($6) # K[6] 581 1.1 christos xor $2,$20 582 1.1 christos rotr $20,$3,22 583 1.1 christos addu $18,$19 584 1.1 christos and $19,$7,$24 585 1.1 christos xor $2,$20 # Sigma0(a) 586 1.1 christos xor $20,$7,$24 587 1.1 christos #else 588 1.1 christos addu $18,$14,$2 # 6 589 1.1 christos srl $2,$30,6 590 1.1 christos xor $21,$31,$1 591 1.1 christos sll $20,$30,7 592 1.1 christos and $21,$30 593 1.1 christos srl $19,$30,11 594 1.1 christos xor $2,$20 595 1.1 christos sll $20,$30,21 596 1.1 christos xor $2,$19 597 1.1 christos srl $19,$30,25 598 1.1 christos xor $2,$20 599 1.1 christos sll $20,$30,26 600 1.1 christos xor $2,$19 601 1.1 christos xor $21,$1 # Ch(e,f,g) 602 1.1 christos xor $19,$20,$2 # Sigma1(e) 603 1.1 christos 604 1.1 christos srl $2,$3,2 605 1.1 christos addu $18,$21 606 1.1 christos lw $21,24($6) # K[6] 607 1.1 christos sll $20,$3,10 608 1.1 christos addu $18,$19 609 1.1 christos srl $19,$3,13 610 1.1 christos xor $2,$20 611 1.1 christos sll $20,$3,19 612 1.1 christos xor $2,$19 613 1.1 christos srl $19,$3,22 614 1.1 christos xor $2,$20 615 1.1 christos sll $20,$3,30 616 1.1 christos xor $2,$19 617 1.1 christos and $19,$7,$24 618 1.1 christos xor $2,$20 # Sigma0(a) 619 1.1 christos xor $20,$7,$24 620 1.1 christos #endif 621 1.1 christos sw $14,24($29) # offload to ring buffer 622 1.1 christos addu $2,$19 623 1.1 christos and $20,$3 624 1.1 christos addu $18,$21 # +=K[6] 625 1.1 christos addu $2,$20 # +=Maj(a,b,c) 626 1.1 christos addu $25,$18 627 1.1 christos addu $2,$18 628 1.1 christos #if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) 629 1.1 christos lw $16,32($5) 630 1.1 christos #else 631 1.1 christos lwl $16,35($5) 632 1.1 christos lwr $16,32($5) 633 1.1 christos #endif 634 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 635 1.1 christos wsbh $15,$15 # byte swap(7) 636 1.1 christos rotr $15,$15,16 637 1.1 christos #else 638 1.1 christos srl $20,$15,24 # byte swap(7) 639 1.1 christos srl $21,$15,8 640 1.1 christos andi $22,$15,0xFF00 641 1.1 christos sll $15,$15,24 642 1.1 christos andi $21,0xFF00 643 1.1 christos sll $22,$22,8 644 1.1 christos or $15,$20 645 1.1 christos or $21,$22 646 1.1 christos or $15,$21 647 1.1 christos #endif 648 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 649 1.1 christos xor $22,$30,$31 # 7 650 1.1 christos rotr $20,$25,6 651 1.1 christos addu $19,$15,$1 652 1.1 christos rotr $21,$25,11 653 1.1 christos and $22,$25 654 1.1 christos rotr $1,$25,25 655 1.1 christos xor $20,$21 656 1.1 christos rotr $21,$2,2 657 1.1 christos xor $22,$31 # Ch(e,f,g) 658 1.1 christos xor $20,$1 # Sigma1(e) 659 1.1 christos 660 1.1 christos rotr $1,$2,13 661 1.1 christos addu $19,$22 662 1.1 christos lw $22,28($6) # K[7] 663 1.1 christos xor $1,$21 664 1.1 christos rotr $21,$2,22 665 1.1 christos addu $19,$20 666 1.1 christos and $20,$3,$7 667 1.1 christos xor $1,$21 # Sigma0(a) 668 1.1 christos xor $21,$3,$7 669 1.1 christos #else 670 1.1 christos addu $19,$15,$1 # 7 671 1.1 christos srl $1,$25,6 672 1.1 christos xor $22,$30,$31 673 1.1 christos sll $21,$25,7 674 1.1 christos and $22,$25 675 1.1 christos srl $20,$25,11 676 1.1 christos xor $1,$21 677 1.1 christos sll $21,$25,21 678 1.1 christos xor $1,$20 679 1.1 christos srl $20,$25,25 680 1.1 christos xor $1,$21 681 1.1 christos sll $21,$25,26 682 1.1 christos xor $1,$20 683 1.1 christos xor $22,$31 # Ch(e,f,g) 684 1.1 christos xor $20,$21,$1 # Sigma1(e) 685 1.1 christos 686 1.1 christos srl $1,$2,2 687 1.1 christos addu $19,$22 688 1.1 christos lw $22,28($6) # K[7] 689 1.1 christos sll $21,$2,10 690 1.1 christos addu $19,$20 691 1.1 christos srl $20,$2,13 692 1.1 christos xor $1,$21 693 1.1 christos sll $21,$2,19 694 1.1 christos xor $1,$20 695 1.1 christos srl $20,$2,22 696 1.1 christos xor $1,$21 697 1.1 christos sll $21,$2,30 698 1.1 christos xor $1,$20 699 1.1 christos and $20,$3,$7 700 1.1 christos xor $1,$21 # Sigma0(a) 701 1.1 christos xor $21,$3,$7 702 1.1 christos #endif 703 1.1 christos sw $15,28($29) # offload to ring buffer 704 1.1 christos addu $1,$20 705 1.1 christos and $21,$2 706 1.1 christos addu $19,$22 # +=K[7] 707 1.1 christos addu $1,$21 # +=Maj(a,b,c) 708 1.1 christos addu $24,$19 709 1.1 christos addu $1,$19 710 1.1 christos #if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) 711 1.1 christos lw $17,36($5) 712 1.1 christos #else 713 1.1 christos lwl $17,39($5) 714 1.1 christos lwr $17,36($5) 715 1.1 christos #endif 716 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 717 1.1 christos wsbh $16,$16 # byte swap(8) 718 1.1 christos rotr $16,$16,16 719 1.1 christos #else 720 1.1 christos srl $21,$16,24 # byte swap(8) 721 1.1 christos srl $22,$16,8 722 1.1 christos andi $23,$16,0xFF00 723 1.1 christos sll $16,$16,24 724 1.1 christos andi $22,0xFF00 725 1.1 christos sll $23,$23,8 726 1.1 christos or $16,$21 727 1.1 christos or $22,$23 728 1.1 christos or $16,$22 729 1.1 christos #endif 730 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 731 1.1 christos xor $23,$25,$30 # 8 732 1.1 christos rotr $21,$24,6 733 1.1 christos addu $20,$16,$31 734 1.1 christos rotr $22,$24,11 735 1.1 christos and $23,$24 736 1.1 christos rotr $31,$24,25 737 1.1 christos xor $21,$22 738 1.1 christos rotr $22,$1,2 739 1.1 christos xor $23,$30 # Ch(e,f,g) 740 1.1 christos xor $21,$31 # Sigma1(e) 741 1.1 christos 742 1.1 christos rotr $31,$1,13 743 1.1 christos addu $20,$23 744 1.1 christos lw $23,32($6) # K[8] 745 1.1 christos xor $31,$22 746 1.1 christos rotr $22,$1,22 747 1.1 christos addu $20,$21 748 1.1 christos and $21,$2,$3 749 1.1 christos xor $31,$22 # Sigma0(a) 750 1.1 christos xor $22,$2,$3 751 1.1 christos #else 752 1.1 christos addu $20,$16,$31 # 8 753 1.1 christos srl $31,$24,6 754 1.1 christos xor $23,$25,$30 755 1.1 christos sll $22,$24,7 756 1.1 christos and $23,$24 757 1.1 christos srl $21,$24,11 758 1.1 christos xor $31,$22 759 1.1 christos sll $22,$24,21 760 1.1 christos xor $31,$21 761 1.1 christos srl $21,$24,25 762 1.1 christos xor $31,$22 763 1.1 christos sll $22,$24,26 764 1.1 christos xor $31,$21 765 1.1 christos xor $23,$30 # Ch(e,f,g) 766 1.1 christos xor $21,$22,$31 # Sigma1(e) 767 1.1 christos 768 1.1 christos srl $31,$1,2 769 1.1 christos addu $20,$23 770 1.1 christos lw $23,32($6) # K[8] 771 1.1 christos sll $22,$1,10 772 1.1 christos addu $20,$21 773 1.1 christos srl $21,$1,13 774 1.1 christos xor $31,$22 775 1.1 christos sll $22,$1,19 776 1.1 christos xor $31,$21 777 1.1 christos srl $21,$1,22 778 1.1 christos xor $31,$22 779 1.1 christos sll $22,$1,30 780 1.1 christos xor $31,$21 781 1.1 christos and $21,$2,$3 782 1.1 christos xor $31,$22 # Sigma0(a) 783 1.1 christos xor $22,$2,$3 784 1.1 christos #endif 785 1.1 christos sw $16,32($29) # offload to ring buffer 786 1.1 christos addu $31,$21 787 1.1 christos and $22,$1 788 1.1 christos addu $20,$23 # +=K[8] 789 1.1 christos addu $31,$22 # +=Maj(a,b,c) 790 1.1 christos addu $7,$20 791 1.1 christos addu $31,$20 792 1.1 christos #if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) 793 1.1 christos lw $18,40($5) 794 1.1 christos #else 795 1.1 christos lwl $18,43($5) 796 1.1 christos lwr $18,40($5) 797 1.1 christos #endif 798 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 799 1.1 christos wsbh $17,$17 # byte swap(9) 800 1.1 christos rotr $17,$17,16 801 1.1 christos #else 802 1.1 christos srl $22,$17,24 # byte swap(9) 803 1.1 christos srl $23,$17,8 804 1.1 christos andi $8,$17,0xFF00 805 1.1 christos sll $17,$17,24 806 1.1 christos andi $23,0xFF00 807 1.1 christos sll $8,$8,8 808 1.1 christos or $17,$22 809 1.1 christos or $23,$8 810 1.1 christos or $17,$23 811 1.1 christos #endif 812 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 813 1.1 christos xor $8,$24,$25 # 9 814 1.1 christos rotr $22,$7,6 815 1.1 christos addu $21,$17,$30 816 1.1 christos rotr $23,$7,11 817 1.1 christos and $8,$7 818 1.1 christos rotr $30,$7,25 819 1.1 christos xor $22,$23 820 1.1 christos rotr $23,$31,2 821 1.1 christos xor $8,$25 # Ch(e,f,g) 822 1.1 christos xor $22,$30 # Sigma1(e) 823 1.1 christos 824 1.1 christos rotr $30,$31,13 825 1.1 christos addu $21,$8 826 1.1 christos lw $8,36($6) # K[9] 827 1.1 christos xor $30,$23 828 1.1 christos rotr $23,$31,22 829 1.1 christos addu $21,$22 830 1.1 christos and $22,$1,$2 831 1.1 christos xor $30,$23 # Sigma0(a) 832 1.1 christos xor $23,$1,$2 833 1.1 christos #else 834 1.1 christos addu $21,$17,$30 # 9 835 1.1 christos srl $30,$7,6 836 1.1 christos xor $8,$24,$25 837 1.1 christos sll $23,$7,7 838 1.1 christos and $8,$7 839 1.1 christos srl $22,$7,11 840 1.1 christos xor $30,$23 841 1.1 christos sll $23,$7,21 842 1.1 christos xor $30,$22 843 1.1 christos srl $22,$7,25 844 1.1 christos xor $30,$23 845 1.1 christos sll $23,$7,26 846 1.1 christos xor $30,$22 847 1.1 christos xor $8,$25 # Ch(e,f,g) 848 1.1 christos xor $22,$23,$30 # Sigma1(e) 849 1.1 christos 850 1.1 christos srl $30,$31,2 851 1.1 christos addu $21,$8 852 1.1 christos lw $8,36($6) # K[9] 853 1.1 christos sll $23,$31,10 854 1.1 christos addu $21,$22 855 1.1 christos srl $22,$31,13 856 1.1 christos xor $30,$23 857 1.1 christos sll $23,$31,19 858 1.1 christos xor $30,$22 859 1.1 christos srl $22,$31,22 860 1.1 christos xor $30,$23 861 1.1 christos sll $23,$31,30 862 1.1 christos xor $30,$22 863 1.1 christos and $22,$1,$2 864 1.1 christos xor $30,$23 # Sigma0(a) 865 1.1 christos xor $23,$1,$2 866 1.1 christos #endif 867 1.1 christos sw $17,36($29) # offload to ring buffer 868 1.1 christos addu $30,$22 869 1.1 christos and $23,$31 870 1.1 christos addu $21,$8 # +=K[9] 871 1.1 christos addu $30,$23 # +=Maj(a,b,c) 872 1.1 christos addu $3,$21 873 1.1 christos addu $30,$21 874 1.1 christos #if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) 875 1.1 christos lw $19,44($5) 876 1.1 christos #else 877 1.1 christos lwl $19,47($5) 878 1.1 christos lwr $19,44($5) 879 1.1 christos #endif 880 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 881 1.1 christos wsbh $18,$18 # byte swap(10) 882 1.1 christos rotr $18,$18,16 883 1.1 christos #else 884 1.1 christos srl $23,$18,24 # byte swap(10) 885 1.1 christos srl $8,$18,8 886 1.1 christos andi $9,$18,0xFF00 887 1.1 christos sll $18,$18,24 888 1.1 christos andi $8,0xFF00 889 1.1 christos sll $9,$9,8 890 1.1 christos or $18,$23 891 1.1 christos or $8,$9 892 1.1 christos or $18,$8 893 1.1 christos #endif 894 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 895 1.1 christos xor $9,$7,$24 # 10 896 1.1 christos rotr $23,$3,6 897 1.1 christos addu $22,$18,$25 898 1.1 christos rotr $8,$3,11 899 1.1 christos and $9,$3 900 1.1 christos rotr $25,$3,25 901 1.1 christos xor $23,$8 902 1.1 christos rotr $8,$30,2 903 1.1 christos xor $9,$24 # Ch(e,f,g) 904 1.1 christos xor $23,$25 # Sigma1(e) 905 1.1 christos 906 1.1 christos rotr $25,$30,13 907 1.1 christos addu $22,$9 908 1.1 christos lw $9,40($6) # K[10] 909 1.1 christos xor $25,$8 910 1.1 christos rotr $8,$30,22 911 1.1 christos addu $22,$23 912 1.1 christos and $23,$31,$1 913 1.1 christos xor $25,$8 # Sigma0(a) 914 1.1 christos xor $8,$31,$1 915 1.1 christos #else 916 1.1 christos addu $22,$18,$25 # 10 917 1.1 christos srl $25,$3,6 918 1.1 christos xor $9,$7,$24 919 1.1 christos sll $8,$3,7 920 1.1 christos and $9,$3 921 1.1 christos srl $23,$3,11 922 1.1 christos xor $25,$8 923 1.1 christos sll $8,$3,21 924 1.1 christos xor $25,$23 925 1.1 christos srl $23,$3,25 926 1.1 christos xor $25,$8 927 1.1 christos sll $8,$3,26 928 1.1 christos xor $25,$23 929 1.1 christos xor $9,$24 # Ch(e,f,g) 930 1.1 christos xor $23,$8,$25 # Sigma1(e) 931 1.1 christos 932 1.1 christos srl $25,$30,2 933 1.1 christos addu $22,$9 934 1.1 christos lw $9,40($6) # K[10] 935 1.1 christos sll $8,$30,10 936 1.1 christos addu $22,$23 937 1.1 christos srl $23,$30,13 938 1.1 christos xor $25,$8 939 1.1 christos sll $8,$30,19 940 1.1 christos xor $25,$23 941 1.1 christos srl $23,$30,22 942 1.1 christos xor $25,$8 943 1.1 christos sll $8,$30,30 944 1.1 christos xor $25,$23 945 1.1 christos and $23,$31,$1 946 1.1 christos xor $25,$8 # Sigma0(a) 947 1.1 christos xor $8,$31,$1 948 1.1 christos #endif 949 1.1 christos sw $18,40($29) # offload to ring buffer 950 1.1 christos addu $25,$23 951 1.1 christos and $8,$30 952 1.1 christos addu $22,$9 # +=K[10] 953 1.1 christos addu $25,$8 # +=Maj(a,b,c) 954 1.1 christos addu $2,$22 955 1.1 christos addu $25,$22 956 1.1 christos #if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) 957 1.1 christos lw $20,48($5) 958 1.1 christos #else 959 1.1 christos lwl $20,51($5) 960 1.1 christos lwr $20,48($5) 961 1.1 christos #endif 962 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 963 1.1 christos wsbh $19,$19 # byte swap(11) 964 1.1 christos rotr $19,$19,16 965 1.1 christos #else 966 1.1 christos srl $8,$19,24 # byte swap(11) 967 1.1 christos srl $9,$19,8 968 1.1 christos andi $10,$19,0xFF00 969 1.1 christos sll $19,$19,24 970 1.1 christos andi $9,0xFF00 971 1.1 christos sll $10,$10,8 972 1.1 christos or $19,$8 973 1.1 christos or $9,$10 974 1.1 christos or $19,$9 975 1.1 christos #endif 976 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 977 1.1 christos xor $10,$3,$7 # 11 978 1.1 christos rotr $8,$2,6 979 1.1 christos addu $23,$19,$24 980 1.1 christos rotr $9,$2,11 981 1.1 christos and $10,$2 982 1.1 christos rotr $24,$2,25 983 1.1 christos xor $8,$9 984 1.1 christos rotr $9,$25,2 985 1.1 christos xor $10,$7 # Ch(e,f,g) 986 1.1 christos xor $8,$24 # Sigma1(e) 987 1.1 christos 988 1.1 christos rotr $24,$25,13 989 1.1 christos addu $23,$10 990 1.1 christos lw $10,44($6) # K[11] 991 1.1 christos xor $24,$9 992 1.1 christos rotr $9,$25,22 993 1.1 christos addu $23,$8 994 1.1 christos and $8,$30,$31 995 1.1 christos xor $24,$9 # Sigma0(a) 996 1.1 christos xor $9,$30,$31 997 1.1 christos #else 998 1.1 christos addu $23,$19,$24 # 11 999 1.1 christos srl $24,$2,6 1000 1.1 christos xor $10,$3,$7 1001 1.1 christos sll $9,$2,7 1002 1.1 christos and $10,$2 1003 1.1 christos srl $8,$2,11 1004 1.1 christos xor $24,$9 1005 1.1 christos sll $9,$2,21 1006 1.1 christos xor $24,$8 1007 1.1 christos srl $8,$2,25 1008 1.1 christos xor $24,$9 1009 1.1 christos sll $9,$2,26 1010 1.1 christos xor $24,$8 1011 1.1 christos xor $10,$7 # Ch(e,f,g) 1012 1.1 christos xor $8,$9,$24 # Sigma1(e) 1013 1.1 christos 1014 1.1 christos srl $24,$25,2 1015 1.1 christos addu $23,$10 1016 1.1 christos lw $10,44($6) # K[11] 1017 1.1 christos sll $9,$25,10 1018 1.1 christos addu $23,$8 1019 1.1 christos srl $8,$25,13 1020 1.1 christos xor $24,$9 1021 1.1 christos sll $9,$25,19 1022 1.1 christos xor $24,$8 1023 1.1 christos srl $8,$25,22 1024 1.1 christos xor $24,$9 1025 1.1 christos sll $9,$25,30 1026 1.1 christos xor $24,$8 1027 1.1 christos and $8,$30,$31 1028 1.1 christos xor $24,$9 # Sigma0(a) 1029 1.1 christos xor $9,$30,$31 1030 1.1 christos #endif 1031 1.1 christos sw $19,44($29) # offload to ring buffer 1032 1.1 christos addu $24,$8 1033 1.1 christos and $9,$25 1034 1.1 christos addu $23,$10 # +=K[11] 1035 1.1 christos addu $24,$9 # +=Maj(a,b,c) 1036 1.1 christos addu $1,$23 1037 1.1 christos addu $24,$23 1038 1.1 christos #if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) 1039 1.1 christos lw $21,52($5) 1040 1.1 christos #else 1041 1.1 christos lwl $21,55($5) 1042 1.1 christos lwr $21,52($5) 1043 1.1 christos #endif 1044 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1045 1.1 christos wsbh $20,$20 # byte swap(12) 1046 1.1 christos rotr $20,$20,16 1047 1.1 christos #else 1048 1.1 christos srl $9,$20,24 # byte swap(12) 1049 1.1 christos srl $10,$20,8 1050 1.1 christos andi $11,$20,0xFF00 1051 1.1 christos sll $20,$20,24 1052 1.1 christos andi $10,0xFF00 1053 1.1 christos sll $11,$11,8 1054 1.1 christos or $20,$9 1055 1.1 christos or $10,$11 1056 1.1 christos or $20,$10 1057 1.1 christos #endif 1058 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1059 1.1 christos xor $11,$2,$3 # 12 1060 1.1 christos rotr $9,$1,6 1061 1.1 christos addu $8,$20,$7 1062 1.1 christos rotr $10,$1,11 1063 1.1 christos and $11,$1 1064 1.1 christos rotr $7,$1,25 1065 1.1 christos xor $9,$10 1066 1.1 christos rotr $10,$24,2 1067 1.1 christos xor $11,$3 # Ch(e,f,g) 1068 1.1 christos xor $9,$7 # Sigma1(e) 1069 1.1 christos 1070 1.1 christos rotr $7,$24,13 1071 1.1 christos addu $8,$11 1072 1.1 christos lw $11,48($6) # K[12] 1073 1.1 christos xor $7,$10 1074 1.1 christos rotr $10,$24,22 1075 1.1 christos addu $8,$9 1076 1.1 christos and $9,$25,$30 1077 1.1 christos xor $7,$10 # Sigma0(a) 1078 1.1 christos xor $10,$25,$30 1079 1.1 christos #else 1080 1.1 christos addu $8,$20,$7 # 12 1081 1.1 christos srl $7,$1,6 1082 1.1 christos xor $11,$2,$3 1083 1.1 christos sll $10,$1,7 1084 1.1 christos and $11,$1 1085 1.1 christos srl $9,$1,11 1086 1.1 christos xor $7,$10 1087 1.1 christos sll $10,$1,21 1088 1.1 christos xor $7,$9 1089 1.1 christos srl $9,$1,25 1090 1.1 christos xor $7,$10 1091 1.1 christos sll $10,$1,26 1092 1.1 christos xor $7,$9 1093 1.1 christos xor $11,$3 # Ch(e,f,g) 1094 1.1 christos xor $9,$10,$7 # Sigma1(e) 1095 1.1 christos 1096 1.1 christos srl $7,$24,2 1097 1.1 christos addu $8,$11 1098 1.1 christos lw $11,48($6) # K[12] 1099 1.1 christos sll $10,$24,10 1100 1.1 christos addu $8,$9 1101 1.1 christos srl $9,$24,13 1102 1.1 christos xor $7,$10 1103 1.1 christos sll $10,$24,19 1104 1.1 christos xor $7,$9 1105 1.1 christos srl $9,$24,22 1106 1.1 christos xor $7,$10 1107 1.1 christos sll $10,$24,30 1108 1.1 christos xor $7,$9 1109 1.1 christos and $9,$25,$30 1110 1.1 christos xor $7,$10 # Sigma0(a) 1111 1.1 christos xor $10,$25,$30 1112 1.1 christos #endif 1113 1.1 christos sw $20,48($29) # offload to ring buffer 1114 1.1 christos addu $7,$9 1115 1.1 christos and $10,$24 1116 1.1 christos addu $8,$11 # +=K[12] 1117 1.1 christos addu $7,$10 # +=Maj(a,b,c) 1118 1.1 christos addu $31,$8 1119 1.1 christos addu $7,$8 1120 1.1 christos #if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) 1121 1.1 christos lw $22,56($5) 1122 1.1 christos #else 1123 1.1 christos lwl $22,59($5) 1124 1.1 christos lwr $22,56($5) 1125 1.1 christos #endif 1126 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1127 1.1 christos wsbh $21,$21 # byte swap(13) 1128 1.1 christos rotr $21,$21,16 1129 1.1 christos #else 1130 1.1 christos srl $10,$21,24 # byte swap(13) 1131 1.1 christos srl $11,$21,8 1132 1.1 christos andi $12,$21,0xFF00 1133 1.1 christos sll $21,$21,24 1134 1.1 christos andi $11,0xFF00 1135 1.1 christos sll $12,$12,8 1136 1.1 christos or $21,$10 1137 1.1 christos or $11,$12 1138 1.1 christos or $21,$11 1139 1.1 christos #endif 1140 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1141 1.1 christos xor $12,$1,$2 # 13 1142 1.1 christos rotr $10,$31,6 1143 1.1 christos addu $9,$21,$3 1144 1.1 christos rotr $11,$31,11 1145 1.1 christos and $12,$31 1146 1.1 christos rotr $3,$31,25 1147 1.1 christos xor $10,$11 1148 1.1 christos rotr $11,$7,2 1149 1.1 christos xor $12,$2 # Ch(e,f,g) 1150 1.1 christos xor $10,$3 # Sigma1(e) 1151 1.1 christos 1152 1.1 christos rotr $3,$7,13 1153 1.1 christos addu $9,$12 1154 1.1 christos lw $12,52($6) # K[13] 1155 1.1 christos xor $3,$11 1156 1.1 christos rotr $11,$7,22 1157 1.1 christos addu $9,$10 1158 1.1 christos and $10,$24,$25 1159 1.1 christos xor $3,$11 # Sigma0(a) 1160 1.1 christos xor $11,$24,$25 1161 1.1 christos #else 1162 1.1 christos addu $9,$21,$3 # 13 1163 1.1 christos srl $3,$31,6 1164 1.1 christos xor $12,$1,$2 1165 1.1 christos sll $11,$31,7 1166 1.1 christos and $12,$31 1167 1.1 christos srl $10,$31,11 1168 1.1 christos xor $3,$11 1169 1.1 christos sll $11,$31,21 1170 1.1 christos xor $3,$10 1171 1.1 christos srl $10,$31,25 1172 1.1 christos xor $3,$11 1173 1.1 christos sll $11,$31,26 1174 1.1 christos xor $3,$10 1175 1.1 christos xor $12,$2 # Ch(e,f,g) 1176 1.1 christos xor $10,$11,$3 # Sigma1(e) 1177 1.1 christos 1178 1.1 christos srl $3,$7,2 1179 1.1 christos addu $9,$12 1180 1.1 christos lw $12,52($6) # K[13] 1181 1.1 christos sll $11,$7,10 1182 1.1 christos addu $9,$10 1183 1.1 christos srl $10,$7,13 1184 1.1 christos xor $3,$11 1185 1.1 christos sll $11,$7,19 1186 1.1 christos xor $3,$10 1187 1.1 christos srl $10,$7,22 1188 1.1 christos xor $3,$11 1189 1.1 christos sll $11,$7,30 1190 1.1 christos xor $3,$10 1191 1.1 christos and $10,$24,$25 1192 1.1 christos xor $3,$11 # Sigma0(a) 1193 1.1 christos xor $11,$24,$25 1194 1.1 christos #endif 1195 1.1 christos sw $21,52($29) # offload to ring buffer 1196 1.1 christos addu $3,$10 1197 1.1 christos and $11,$7 1198 1.1 christos addu $9,$12 # +=K[13] 1199 1.1 christos addu $3,$11 # +=Maj(a,b,c) 1200 1.1 christos addu $30,$9 1201 1.1 christos addu $3,$9 1202 1.1 christos lw $8,0($29) # prefetch from ring buffer 1203 1.1 christos #if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6) 1204 1.1 christos lw $23,60($5) 1205 1.1 christos #else 1206 1.1 christos lwl $23,63($5) 1207 1.1 christos lwr $23,60($5) 1208 1.1 christos #endif 1209 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1210 1.1 christos wsbh $22,$22 # byte swap(14) 1211 1.1 christos rotr $22,$22,16 1212 1.1 christos #else 1213 1.1 christos srl $11,$22,24 # byte swap(14) 1214 1.1 christos srl $12,$22,8 1215 1.1 christos andi $13,$22,0xFF00 1216 1.1 christos sll $22,$22,24 1217 1.1 christos andi $12,0xFF00 1218 1.1 christos sll $13,$13,8 1219 1.1 christos or $22,$11 1220 1.1 christos or $12,$13 1221 1.1 christos or $22,$12 1222 1.1 christos #endif 1223 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1224 1.1 christos xor $13,$31,$1 # 14 1225 1.1 christos rotr $11,$30,6 1226 1.1 christos addu $10,$22,$2 1227 1.1 christos rotr $12,$30,11 1228 1.1 christos and $13,$30 1229 1.1 christos rotr $2,$30,25 1230 1.1 christos xor $11,$12 1231 1.1 christos rotr $12,$3,2 1232 1.1 christos xor $13,$1 # Ch(e,f,g) 1233 1.1 christos xor $11,$2 # Sigma1(e) 1234 1.1 christos 1235 1.1 christos rotr $2,$3,13 1236 1.1 christos addu $10,$13 1237 1.1 christos lw $13,56($6) # K[14] 1238 1.1 christos xor $2,$12 1239 1.1 christos rotr $12,$3,22 1240 1.1 christos addu $10,$11 1241 1.1 christos and $11,$7,$24 1242 1.1 christos xor $2,$12 # Sigma0(a) 1243 1.1 christos xor $12,$7,$24 1244 1.1 christos #else 1245 1.1 christos addu $10,$22,$2 # 14 1246 1.1 christos srl $2,$30,6 1247 1.1 christos xor $13,$31,$1 1248 1.1 christos sll $12,$30,7 1249 1.1 christos and $13,$30 1250 1.1 christos srl $11,$30,11 1251 1.1 christos xor $2,$12 1252 1.1 christos sll $12,$30,21 1253 1.1 christos xor $2,$11 1254 1.1 christos srl $11,$30,25 1255 1.1 christos xor $2,$12 1256 1.1 christos sll $12,$30,26 1257 1.1 christos xor $2,$11 1258 1.1 christos xor $13,$1 # Ch(e,f,g) 1259 1.1 christos xor $11,$12,$2 # Sigma1(e) 1260 1.1 christos 1261 1.1 christos srl $2,$3,2 1262 1.1 christos addu $10,$13 1263 1.1 christos lw $13,56($6) # K[14] 1264 1.1 christos sll $12,$3,10 1265 1.1 christos addu $10,$11 1266 1.1 christos srl $11,$3,13 1267 1.1 christos xor $2,$12 1268 1.1 christos sll $12,$3,19 1269 1.1 christos xor $2,$11 1270 1.1 christos srl $11,$3,22 1271 1.1 christos xor $2,$12 1272 1.1 christos sll $12,$3,30 1273 1.1 christos xor $2,$11 1274 1.1 christos and $11,$7,$24 1275 1.1 christos xor $2,$12 # Sigma0(a) 1276 1.1 christos xor $12,$7,$24 1277 1.1 christos #endif 1278 1.1 christos sw $22,56($29) # offload to ring buffer 1279 1.1 christos addu $2,$11 1280 1.1 christos and $12,$3 1281 1.1 christos addu $10,$13 # +=K[14] 1282 1.1 christos addu $2,$12 # +=Maj(a,b,c) 1283 1.1 christos addu $25,$10 1284 1.1 christos addu $2,$10 1285 1.1 christos lw $9,4($29) # prefetch from ring buffer 1286 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1287 1.1 christos wsbh $23,$23 # byte swap(15) 1288 1.1 christos rotr $23,$23,16 1289 1.1 christos #else 1290 1.1 christos srl $12,$23,24 # byte swap(15) 1291 1.1 christos srl $13,$23,8 1292 1.1 christos andi $14,$23,0xFF00 1293 1.1 christos sll $23,$23,24 1294 1.1 christos andi $13,0xFF00 1295 1.1 christos sll $14,$14,8 1296 1.1 christos or $23,$12 1297 1.1 christos or $13,$14 1298 1.1 christos or $23,$13 1299 1.1 christos #endif 1300 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1301 1.1 christos xor $14,$30,$31 # 15 1302 1.1 christos rotr $12,$25,6 1303 1.1 christos addu $11,$23,$1 1304 1.1 christos rotr $13,$25,11 1305 1.1 christos and $14,$25 1306 1.1 christos rotr $1,$25,25 1307 1.1 christos xor $12,$13 1308 1.1 christos rotr $13,$2,2 1309 1.1 christos xor $14,$31 # Ch(e,f,g) 1310 1.1 christos xor $12,$1 # Sigma1(e) 1311 1.1 christos 1312 1.1 christos rotr $1,$2,13 1313 1.1 christos addu $11,$14 1314 1.1 christos lw $14,60($6) # K[15] 1315 1.1 christos xor $1,$13 1316 1.1 christos rotr $13,$2,22 1317 1.1 christos addu $11,$12 1318 1.1 christos and $12,$3,$7 1319 1.1 christos xor $1,$13 # Sigma0(a) 1320 1.1 christos xor $13,$3,$7 1321 1.1 christos #else 1322 1.1 christos addu $11,$23,$1 # 15 1323 1.1 christos srl $1,$25,6 1324 1.1 christos xor $14,$30,$31 1325 1.1 christos sll $13,$25,7 1326 1.1 christos and $14,$25 1327 1.1 christos srl $12,$25,11 1328 1.1 christos xor $1,$13 1329 1.1 christos sll $13,$25,21 1330 1.1 christos xor $1,$12 1331 1.1 christos srl $12,$25,25 1332 1.1 christos xor $1,$13 1333 1.1 christos sll $13,$25,26 1334 1.1 christos xor $1,$12 1335 1.1 christos xor $14,$31 # Ch(e,f,g) 1336 1.1 christos xor $12,$13,$1 # Sigma1(e) 1337 1.1 christos 1338 1.1 christos srl $1,$2,2 1339 1.1 christos addu $11,$14 1340 1.1 christos lw $14,60($6) # K[15] 1341 1.1 christos sll $13,$2,10 1342 1.1 christos addu $11,$12 1343 1.1 christos srl $12,$2,13 1344 1.1 christos xor $1,$13 1345 1.1 christos sll $13,$2,19 1346 1.1 christos xor $1,$12 1347 1.1 christos srl $12,$2,22 1348 1.1 christos xor $1,$13 1349 1.1 christos sll $13,$2,30 1350 1.1 christos xor $1,$12 1351 1.1 christos and $12,$3,$7 1352 1.1 christos xor $1,$13 # Sigma0(a) 1353 1.1 christos xor $13,$3,$7 1354 1.1 christos #endif 1355 1.1 christos sw $23,60($29) # offload to ring buffer 1356 1.1 christos addu $1,$12 1357 1.1 christos and $13,$2 1358 1.1 christos addu $11,$14 # +=K[15] 1359 1.1 christos addu $1,$13 # +=Maj(a,b,c) 1360 1.1 christos addu $24,$11 1361 1.1 christos addu $1,$11 1362 1.1 christos lw $10,8($29) # prefetch from ring buffer 1363 1.1 christos b .L16_xx 1364 1.1 christos .align 4 1365 1.1 christos .L16_xx: 1366 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1367 1.1 christos srl $14,$9,3 # Xupdate(16) 1368 1.1 christos rotr $12,$9,7 1369 1.1 christos addu $8,$17 # +=X[i+9] 1370 1.1 christos xor $14,$12 1371 1.1 christos rotr $12,$9,18 1372 1.1 christos 1373 1.1 christos srl $15,$22,10 1374 1.1 christos rotr $13,$22,17 1375 1.1 christos xor $14,$12 # sigma0(X[i+1]) 1376 1.1 christos rotr $12,$22,19 1377 1.1 christos xor $15,$13 1378 1.1 christos addu $8,$14 1379 1.1 christos #else 1380 1.1 christos srl $14,$9,3 # Xupdate(16) 1381 1.1 christos addu $8,$17 # +=X[i+9] 1382 1.1 christos sll $13,$9,14 1383 1.1 christos srl $12,$9,7 1384 1.1 christos xor $14,$13 1385 1.1 christos sll $13,11 1386 1.1 christos xor $14,$12 1387 1.1 christos srl $12,$9,18 1388 1.1 christos xor $14,$13 1389 1.1 christos 1390 1.1 christos srl $15,$22,10 1391 1.1 christos xor $14,$12 # sigma0(X[i+1]) 1392 1.1 christos sll $13,$22,13 1393 1.1 christos addu $8,$14 1394 1.1 christos srl $12,$22,17 1395 1.1 christos xor $15,$13 1396 1.1 christos sll $13,2 1397 1.1 christos xor $15,$12 1398 1.1 christos srl $12,$22,19 1399 1.1 christos xor $15,$13 1400 1.1 christos #endif 1401 1.1 christos xor $15,$12 # sigma1(X[i+14]) 1402 1.1 christos addu $8,$15 1403 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1404 1.1 christos xor $15,$25,$30 # 16 1405 1.1 christos rotr $13,$24,6 1406 1.1 christos addu $12,$8,$31 1407 1.1 christos rotr $14,$24,11 1408 1.1 christos and $15,$24 1409 1.1 christos rotr $31,$24,25 1410 1.1 christos xor $13,$14 1411 1.1 christos rotr $14,$1,2 1412 1.1 christos xor $15,$30 # Ch(e,f,g) 1413 1.1 christos xor $13,$31 # Sigma1(e) 1414 1.1 christos 1415 1.1 christos rotr $31,$1,13 1416 1.1 christos addu $12,$15 1417 1.1 christos lw $15,64($6) # K[16] 1418 1.1 christos xor $31,$14 1419 1.1 christos rotr $14,$1,22 1420 1.1 christos addu $12,$13 1421 1.1 christos and $13,$2,$3 1422 1.1 christos xor $31,$14 # Sigma0(a) 1423 1.1 christos xor $14,$2,$3 1424 1.1 christos #else 1425 1.1 christos addu $12,$8,$31 # 16 1426 1.1 christos srl $31,$24,6 1427 1.1 christos xor $15,$25,$30 1428 1.1 christos sll $14,$24,7 1429 1.1 christos and $15,$24 1430 1.1 christos srl $13,$24,11 1431 1.1 christos xor $31,$14 1432 1.1 christos sll $14,$24,21 1433 1.1 christos xor $31,$13 1434 1.1 christos srl $13,$24,25 1435 1.1 christos xor $31,$14 1436 1.1 christos sll $14,$24,26 1437 1.1 christos xor $31,$13 1438 1.1 christos xor $15,$30 # Ch(e,f,g) 1439 1.1 christos xor $13,$14,$31 # Sigma1(e) 1440 1.1 christos 1441 1.1 christos srl $31,$1,2 1442 1.1 christos addu $12,$15 1443 1.1 christos lw $15,64($6) # K[16] 1444 1.1 christos sll $14,$1,10 1445 1.1 christos addu $12,$13 1446 1.1 christos srl $13,$1,13 1447 1.1 christos xor $31,$14 1448 1.1 christos sll $14,$1,19 1449 1.1 christos xor $31,$13 1450 1.1 christos srl $13,$1,22 1451 1.1 christos xor $31,$14 1452 1.1 christos sll $14,$1,30 1453 1.1 christos xor $31,$13 1454 1.1 christos and $13,$2,$3 1455 1.1 christos xor $31,$14 # Sigma0(a) 1456 1.1 christos xor $14,$2,$3 1457 1.1 christos #endif 1458 1.1 christos sw $8,0($29) # offload to ring buffer 1459 1.1 christos addu $31,$13 1460 1.1 christos and $14,$1 1461 1.1 christos addu $12,$15 # +=K[16] 1462 1.1 christos addu $31,$14 # +=Maj(a,b,c) 1463 1.1 christos addu $7,$12 1464 1.1 christos addu $31,$12 1465 1.1 christos lw $11,12($29) # prefetch from ring buffer 1466 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1467 1.1 christos srl $15,$10,3 # Xupdate(17) 1468 1.1 christos rotr $13,$10,7 1469 1.1 christos addu $9,$18 # +=X[i+9] 1470 1.1 christos xor $15,$13 1471 1.1 christos rotr $13,$10,18 1472 1.1 christos 1473 1.1 christos srl $16,$23,10 1474 1.1 christos rotr $14,$23,17 1475 1.1 christos xor $15,$13 # sigma0(X[i+1]) 1476 1.1 christos rotr $13,$23,19 1477 1.1 christos xor $16,$14 1478 1.1 christos addu $9,$15 1479 1.1 christos #else 1480 1.1 christos srl $15,$10,3 # Xupdate(17) 1481 1.1 christos addu $9,$18 # +=X[i+9] 1482 1.1 christos sll $14,$10,14 1483 1.1 christos srl $13,$10,7 1484 1.1 christos xor $15,$14 1485 1.1 christos sll $14,11 1486 1.1 christos xor $15,$13 1487 1.1 christos srl $13,$10,18 1488 1.1 christos xor $15,$14 1489 1.1 christos 1490 1.1 christos srl $16,$23,10 1491 1.1 christos xor $15,$13 # sigma0(X[i+1]) 1492 1.1 christos sll $14,$23,13 1493 1.1 christos addu $9,$15 1494 1.1 christos srl $13,$23,17 1495 1.1 christos xor $16,$14 1496 1.1 christos sll $14,2 1497 1.1 christos xor $16,$13 1498 1.1 christos srl $13,$23,19 1499 1.1 christos xor $16,$14 1500 1.1 christos #endif 1501 1.1 christos xor $16,$13 # sigma1(X[i+14]) 1502 1.1 christos addu $9,$16 1503 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1504 1.1 christos xor $16,$24,$25 # 17 1505 1.1 christos rotr $14,$7,6 1506 1.1 christos addu $13,$9,$30 1507 1.1 christos rotr $15,$7,11 1508 1.1 christos and $16,$7 1509 1.1 christos rotr $30,$7,25 1510 1.1 christos xor $14,$15 1511 1.1 christos rotr $15,$31,2 1512 1.1 christos xor $16,$25 # Ch(e,f,g) 1513 1.1 christos xor $14,$30 # Sigma1(e) 1514 1.1 christos 1515 1.1 christos rotr $30,$31,13 1516 1.1 christos addu $13,$16 1517 1.1 christos lw $16,68($6) # K[17] 1518 1.1 christos xor $30,$15 1519 1.1 christos rotr $15,$31,22 1520 1.1 christos addu $13,$14 1521 1.1 christos and $14,$1,$2 1522 1.1 christos xor $30,$15 # Sigma0(a) 1523 1.1 christos xor $15,$1,$2 1524 1.1 christos #else 1525 1.1 christos addu $13,$9,$30 # 17 1526 1.1 christos srl $30,$7,6 1527 1.1 christos xor $16,$24,$25 1528 1.1 christos sll $15,$7,7 1529 1.1 christos and $16,$7 1530 1.1 christos srl $14,$7,11 1531 1.1 christos xor $30,$15 1532 1.1 christos sll $15,$7,21 1533 1.1 christos xor $30,$14 1534 1.1 christos srl $14,$7,25 1535 1.1 christos xor $30,$15 1536 1.1 christos sll $15,$7,26 1537 1.1 christos xor $30,$14 1538 1.1 christos xor $16,$25 # Ch(e,f,g) 1539 1.1 christos xor $14,$15,$30 # Sigma1(e) 1540 1.1 christos 1541 1.1 christos srl $30,$31,2 1542 1.1 christos addu $13,$16 1543 1.1 christos lw $16,68($6) # K[17] 1544 1.1 christos sll $15,$31,10 1545 1.1 christos addu $13,$14 1546 1.1 christos srl $14,$31,13 1547 1.1 christos xor $30,$15 1548 1.1 christos sll $15,$31,19 1549 1.1 christos xor $30,$14 1550 1.1 christos srl $14,$31,22 1551 1.1 christos xor $30,$15 1552 1.1 christos sll $15,$31,30 1553 1.1 christos xor $30,$14 1554 1.1 christos and $14,$1,$2 1555 1.1 christos xor $30,$15 # Sigma0(a) 1556 1.1 christos xor $15,$1,$2 1557 1.1 christos #endif 1558 1.1 christos sw $9,4($29) # offload to ring buffer 1559 1.1 christos addu $30,$14 1560 1.1 christos and $15,$31 1561 1.1 christos addu $13,$16 # +=K[17] 1562 1.1 christos addu $30,$15 # +=Maj(a,b,c) 1563 1.1 christos addu $3,$13 1564 1.1 christos addu $30,$13 1565 1.1 christos lw $12,16($29) # prefetch from ring buffer 1566 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1567 1.1 christos srl $16,$11,3 # Xupdate(18) 1568 1.1 christos rotr $14,$11,7 1569 1.1 christos addu $10,$19 # +=X[i+9] 1570 1.1 christos xor $16,$14 1571 1.1 christos rotr $14,$11,18 1572 1.1 christos 1573 1.1 christos srl $17,$8,10 1574 1.1 christos rotr $15,$8,17 1575 1.1 christos xor $16,$14 # sigma0(X[i+1]) 1576 1.1 christos rotr $14,$8,19 1577 1.1 christos xor $17,$15 1578 1.1 christos addu $10,$16 1579 1.1 christos #else 1580 1.1 christos srl $16,$11,3 # Xupdate(18) 1581 1.1 christos addu $10,$19 # +=X[i+9] 1582 1.1 christos sll $15,$11,14 1583 1.1 christos srl $14,$11,7 1584 1.1 christos xor $16,$15 1585 1.1 christos sll $15,11 1586 1.1 christos xor $16,$14 1587 1.1 christos srl $14,$11,18 1588 1.1 christos xor $16,$15 1589 1.1 christos 1590 1.1 christos srl $17,$8,10 1591 1.1 christos xor $16,$14 # sigma0(X[i+1]) 1592 1.1 christos sll $15,$8,13 1593 1.1 christos addu $10,$16 1594 1.1 christos srl $14,$8,17 1595 1.1 christos xor $17,$15 1596 1.1 christos sll $15,2 1597 1.1 christos xor $17,$14 1598 1.1 christos srl $14,$8,19 1599 1.1 christos xor $17,$15 1600 1.1 christos #endif 1601 1.1 christos xor $17,$14 # sigma1(X[i+14]) 1602 1.1 christos addu $10,$17 1603 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1604 1.1 christos xor $17,$7,$24 # 18 1605 1.1 christos rotr $15,$3,6 1606 1.1 christos addu $14,$10,$25 1607 1.1 christos rotr $16,$3,11 1608 1.1 christos and $17,$3 1609 1.1 christos rotr $25,$3,25 1610 1.1 christos xor $15,$16 1611 1.1 christos rotr $16,$30,2 1612 1.1 christos xor $17,$24 # Ch(e,f,g) 1613 1.1 christos xor $15,$25 # Sigma1(e) 1614 1.1 christos 1615 1.1 christos rotr $25,$30,13 1616 1.1 christos addu $14,$17 1617 1.1 christos lw $17,72($6) # K[18] 1618 1.1 christos xor $25,$16 1619 1.1 christos rotr $16,$30,22 1620 1.1 christos addu $14,$15 1621 1.1 christos and $15,$31,$1 1622 1.1 christos xor $25,$16 # Sigma0(a) 1623 1.1 christos xor $16,$31,$1 1624 1.1 christos #else 1625 1.1 christos addu $14,$10,$25 # 18 1626 1.1 christos srl $25,$3,6 1627 1.1 christos xor $17,$7,$24 1628 1.1 christos sll $16,$3,7 1629 1.1 christos and $17,$3 1630 1.1 christos srl $15,$3,11 1631 1.1 christos xor $25,$16 1632 1.1 christos sll $16,$3,21 1633 1.1 christos xor $25,$15 1634 1.1 christos srl $15,$3,25 1635 1.1 christos xor $25,$16 1636 1.1 christos sll $16,$3,26 1637 1.1 christos xor $25,$15 1638 1.1 christos xor $17,$24 # Ch(e,f,g) 1639 1.1 christos xor $15,$16,$25 # Sigma1(e) 1640 1.1 christos 1641 1.1 christos srl $25,$30,2 1642 1.1 christos addu $14,$17 1643 1.1 christos lw $17,72($6) # K[18] 1644 1.1 christos sll $16,$30,10 1645 1.1 christos addu $14,$15 1646 1.1 christos srl $15,$30,13 1647 1.1 christos xor $25,$16 1648 1.1 christos sll $16,$30,19 1649 1.1 christos xor $25,$15 1650 1.1 christos srl $15,$30,22 1651 1.1 christos xor $25,$16 1652 1.1 christos sll $16,$30,30 1653 1.1 christos xor $25,$15 1654 1.1 christos and $15,$31,$1 1655 1.1 christos xor $25,$16 # Sigma0(a) 1656 1.1 christos xor $16,$31,$1 1657 1.1 christos #endif 1658 1.1 christos sw $10,8($29) # offload to ring buffer 1659 1.1 christos addu $25,$15 1660 1.1 christos and $16,$30 1661 1.1 christos addu $14,$17 # +=K[18] 1662 1.1 christos addu $25,$16 # +=Maj(a,b,c) 1663 1.1 christos addu $2,$14 1664 1.1 christos addu $25,$14 1665 1.1 christos lw $13,20($29) # prefetch from ring buffer 1666 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1667 1.1 christos srl $17,$12,3 # Xupdate(19) 1668 1.1 christos rotr $15,$12,7 1669 1.1 christos addu $11,$20 # +=X[i+9] 1670 1.1 christos xor $17,$15 1671 1.1 christos rotr $15,$12,18 1672 1.1 christos 1673 1.1 christos srl $18,$9,10 1674 1.1 christos rotr $16,$9,17 1675 1.1 christos xor $17,$15 # sigma0(X[i+1]) 1676 1.1 christos rotr $15,$9,19 1677 1.1 christos xor $18,$16 1678 1.1 christos addu $11,$17 1679 1.1 christos #else 1680 1.1 christos srl $17,$12,3 # Xupdate(19) 1681 1.1 christos addu $11,$20 # +=X[i+9] 1682 1.1 christos sll $16,$12,14 1683 1.1 christos srl $15,$12,7 1684 1.1 christos xor $17,$16 1685 1.1 christos sll $16,11 1686 1.1 christos xor $17,$15 1687 1.1 christos srl $15,$12,18 1688 1.1 christos xor $17,$16 1689 1.1 christos 1690 1.1 christos srl $18,$9,10 1691 1.1 christos xor $17,$15 # sigma0(X[i+1]) 1692 1.1 christos sll $16,$9,13 1693 1.1 christos addu $11,$17 1694 1.1 christos srl $15,$9,17 1695 1.1 christos xor $18,$16 1696 1.1 christos sll $16,2 1697 1.1 christos xor $18,$15 1698 1.1 christos srl $15,$9,19 1699 1.1 christos xor $18,$16 1700 1.1 christos #endif 1701 1.1 christos xor $18,$15 # sigma1(X[i+14]) 1702 1.1 christos addu $11,$18 1703 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1704 1.1 christos xor $18,$3,$7 # 19 1705 1.1 christos rotr $16,$2,6 1706 1.1 christos addu $15,$11,$24 1707 1.1 christos rotr $17,$2,11 1708 1.1 christos and $18,$2 1709 1.1 christos rotr $24,$2,25 1710 1.1 christos xor $16,$17 1711 1.1 christos rotr $17,$25,2 1712 1.1 christos xor $18,$7 # Ch(e,f,g) 1713 1.1 christos xor $16,$24 # Sigma1(e) 1714 1.1 christos 1715 1.1 christos rotr $24,$25,13 1716 1.1 christos addu $15,$18 1717 1.1 christos lw $18,76($6) # K[19] 1718 1.1 christos xor $24,$17 1719 1.1 christos rotr $17,$25,22 1720 1.1 christos addu $15,$16 1721 1.1 christos and $16,$30,$31 1722 1.1 christos xor $24,$17 # Sigma0(a) 1723 1.1 christos xor $17,$30,$31 1724 1.1 christos #else 1725 1.1 christos addu $15,$11,$24 # 19 1726 1.1 christos srl $24,$2,6 1727 1.1 christos xor $18,$3,$7 1728 1.1 christos sll $17,$2,7 1729 1.1 christos and $18,$2 1730 1.1 christos srl $16,$2,11 1731 1.1 christos xor $24,$17 1732 1.1 christos sll $17,$2,21 1733 1.1 christos xor $24,$16 1734 1.1 christos srl $16,$2,25 1735 1.1 christos xor $24,$17 1736 1.1 christos sll $17,$2,26 1737 1.1 christos xor $24,$16 1738 1.1 christos xor $18,$7 # Ch(e,f,g) 1739 1.1 christos xor $16,$17,$24 # Sigma1(e) 1740 1.1 christos 1741 1.1 christos srl $24,$25,2 1742 1.1 christos addu $15,$18 1743 1.1 christos lw $18,76($6) # K[19] 1744 1.1 christos sll $17,$25,10 1745 1.1 christos addu $15,$16 1746 1.1 christos srl $16,$25,13 1747 1.1 christos xor $24,$17 1748 1.1 christos sll $17,$25,19 1749 1.1 christos xor $24,$16 1750 1.1 christos srl $16,$25,22 1751 1.1 christos xor $24,$17 1752 1.1 christos sll $17,$25,30 1753 1.1 christos xor $24,$16 1754 1.1 christos and $16,$30,$31 1755 1.1 christos xor $24,$17 # Sigma0(a) 1756 1.1 christos xor $17,$30,$31 1757 1.1 christos #endif 1758 1.1 christos sw $11,12($29) # offload to ring buffer 1759 1.1 christos addu $24,$16 1760 1.1 christos and $17,$25 1761 1.1 christos addu $15,$18 # +=K[19] 1762 1.1 christos addu $24,$17 # +=Maj(a,b,c) 1763 1.1 christos addu $1,$15 1764 1.1 christos addu $24,$15 1765 1.1 christos lw $14,24($29) # prefetch from ring buffer 1766 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1767 1.1 christos srl $18,$13,3 # Xupdate(20) 1768 1.1 christos rotr $16,$13,7 1769 1.1 christos addu $12,$21 # +=X[i+9] 1770 1.1 christos xor $18,$16 1771 1.1 christos rotr $16,$13,18 1772 1.1 christos 1773 1.1 christos srl $19,$10,10 1774 1.1 christos rotr $17,$10,17 1775 1.1 christos xor $18,$16 # sigma0(X[i+1]) 1776 1.1 christos rotr $16,$10,19 1777 1.1 christos xor $19,$17 1778 1.1 christos addu $12,$18 1779 1.1 christos #else 1780 1.1 christos srl $18,$13,3 # Xupdate(20) 1781 1.1 christos addu $12,$21 # +=X[i+9] 1782 1.1 christos sll $17,$13,14 1783 1.1 christos srl $16,$13,7 1784 1.1 christos xor $18,$17 1785 1.1 christos sll $17,11 1786 1.1 christos xor $18,$16 1787 1.1 christos srl $16,$13,18 1788 1.1 christos xor $18,$17 1789 1.1 christos 1790 1.1 christos srl $19,$10,10 1791 1.1 christos xor $18,$16 # sigma0(X[i+1]) 1792 1.1 christos sll $17,$10,13 1793 1.1 christos addu $12,$18 1794 1.1 christos srl $16,$10,17 1795 1.1 christos xor $19,$17 1796 1.1 christos sll $17,2 1797 1.1 christos xor $19,$16 1798 1.1 christos srl $16,$10,19 1799 1.1 christos xor $19,$17 1800 1.1 christos #endif 1801 1.1 christos xor $19,$16 # sigma1(X[i+14]) 1802 1.1 christos addu $12,$19 1803 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1804 1.1 christos xor $19,$2,$3 # 20 1805 1.1 christos rotr $17,$1,6 1806 1.1 christos addu $16,$12,$7 1807 1.1 christos rotr $18,$1,11 1808 1.1 christos and $19,$1 1809 1.1 christos rotr $7,$1,25 1810 1.1 christos xor $17,$18 1811 1.1 christos rotr $18,$24,2 1812 1.1 christos xor $19,$3 # Ch(e,f,g) 1813 1.1 christos xor $17,$7 # Sigma1(e) 1814 1.1 christos 1815 1.1 christos rotr $7,$24,13 1816 1.1 christos addu $16,$19 1817 1.1 christos lw $19,80($6) # K[20] 1818 1.1 christos xor $7,$18 1819 1.1 christos rotr $18,$24,22 1820 1.1 christos addu $16,$17 1821 1.1 christos and $17,$25,$30 1822 1.1 christos xor $7,$18 # Sigma0(a) 1823 1.1 christos xor $18,$25,$30 1824 1.1 christos #else 1825 1.1 christos addu $16,$12,$7 # 20 1826 1.1 christos srl $7,$1,6 1827 1.1 christos xor $19,$2,$3 1828 1.1 christos sll $18,$1,7 1829 1.1 christos and $19,$1 1830 1.1 christos srl $17,$1,11 1831 1.1 christos xor $7,$18 1832 1.1 christos sll $18,$1,21 1833 1.1 christos xor $7,$17 1834 1.1 christos srl $17,$1,25 1835 1.1 christos xor $7,$18 1836 1.1 christos sll $18,$1,26 1837 1.1 christos xor $7,$17 1838 1.1 christos xor $19,$3 # Ch(e,f,g) 1839 1.1 christos xor $17,$18,$7 # Sigma1(e) 1840 1.1 christos 1841 1.1 christos srl $7,$24,2 1842 1.1 christos addu $16,$19 1843 1.1 christos lw $19,80($6) # K[20] 1844 1.1 christos sll $18,$24,10 1845 1.1 christos addu $16,$17 1846 1.1 christos srl $17,$24,13 1847 1.1 christos xor $7,$18 1848 1.1 christos sll $18,$24,19 1849 1.1 christos xor $7,$17 1850 1.1 christos srl $17,$24,22 1851 1.1 christos xor $7,$18 1852 1.1 christos sll $18,$24,30 1853 1.1 christos xor $7,$17 1854 1.1 christos and $17,$25,$30 1855 1.1 christos xor $7,$18 # Sigma0(a) 1856 1.1 christos xor $18,$25,$30 1857 1.1 christos #endif 1858 1.1 christos sw $12,16($29) # offload to ring buffer 1859 1.1 christos addu $7,$17 1860 1.1 christos and $18,$24 1861 1.1 christos addu $16,$19 # +=K[20] 1862 1.1 christos addu $7,$18 # +=Maj(a,b,c) 1863 1.1 christos addu $31,$16 1864 1.1 christos addu $7,$16 1865 1.1 christos lw $15,28($29) # prefetch from ring buffer 1866 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1867 1.1 christos srl $19,$14,3 # Xupdate(21) 1868 1.1 christos rotr $17,$14,7 1869 1.1 christos addu $13,$22 # +=X[i+9] 1870 1.1 christos xor $19,$17 1871 1.1 christos rotr $17,$14,18 1872 1.1 christos 1873 1.1 christos srl $20,$11,10 1874 1.1 christos rotr $18,$11,17 1875 1.1 christos xor $19,$17 # sigma0(X[i+1]) 1876 1.1 christos rotr $17,$11,19 1877 1.1 christos xor $20,$18 1878 1.1 christos addu $13,$19 1879 1.1 christos #else 1880 1.1 christos srl $19,$14,3 # Xupdate(21) 1881 1.1 christos addu $13,$22 # +=X[i+9] 1882 1.1 christos sll $18,$14,14 1883 1.1 christos srl $17,$14,7 1884 1.1 christos xor $19,$18 1885 1.1 christos sll $18,11 1886 1.1 christos xor $19,$17 1887 1.1 christos srl $17,$14,18 1888 1.1 christos xor $19,$18 1889 1.1 christos 1890 1.1 christos srl $20,$11,10 1891 1.1 christos xor $19,$17 # sigma0(X[i+1]) 1892 1.1 christos sll $18,$11,13 1893 1.1 christos addu $13,$19 1894 1.1 christos srl $17,$11,17 1895 1.1 christos xor $20,$18 1896 1.1 christos sll $18,2 1897 1.1 christos xor $20,$17 1898 1.1 christos srl $17,$11,19 1899 1.1 christos xor $20,$18 1900 1.1 christos #endif 1901 1.1 christos xor $20,$17 # sigma1(X[i+14]) 1902 1.1 christos addu $13,$20 1903 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1904 1.1 christos xor $20,$1,$2 # 21 1905 1.1 christos rotr $18,$31,6 1906 1.1 christos addu $17,$13,$3 1907 1.1 christos rotr $19,$31,11 1908 1.1 christos and $20,$31 1909 1.1 christos rotr $3,$31,25 1910 1.1 christos xor $18,$19 1911 1.1 christos rotr $19,$7,2 1912 1.1 christos xor $20,$2 # Ch(e,f,g) 1913 1.1 christos xor $18,$3 # Sigma1(e) 1914 1.1 christos 1915 1.1 christos rotr $3,$7,13 1916 1.1 christos addu $17,$20 1917 1.1 christos lw $20,84($6) # K[21] 1918 1.1 christos xor $3,$19 1919 1.1 christos rotr $19,$7,22 1920 1.1 christos addu $17,$18 1921 1.1 christos and $18,$24,$25 1922 1.1 christos xor $3,$19 # Sigma0(a) 1923 1.1 christos xor $19,$24,$25 1924 1.1 christos #else 1925 1.1 christos addu $17,$13,$3 # 21 1926 1.1 christos srl $3,$31,6 1927 1.1 christos xor $20,$1,$2 1928 1.1 christos sll $19,$31,7 1929 1.1 christos and $20,$31 1930 1.1 christos srl $18,$31,11 1931 1.1 christos xor $3,$19 1932 1.1 christos sll $19,$31,21 1933 1.1 christos xor $3,$18 1934 1.1 christos srl $18,$31,25 1935 1.1 christos xor $3,$19 1936 1.1 christos sll $19,$31,26 1937 1.1 christos xor $3,$18 1938 1.1 christos xor $20,$2 # Ch(e,f,g) 1939 1.1 christos xor $18,$19,$3 # Sigma1(e) 1940 1.1 christos 1941 1.1 christos srl $3,$7,2 1942 1.1 christos addu $17,$20 1943 1.1 christos lw $20,84($6) # K[21] 1944 1.1 christos sll $19,$7,10 1945 1.1 christos addu $17,$18 1946 1.1 christos srl $18,$7,13 1947 1.1 christos xor $3,$19 1948 1.1 christos sll $19,$7,19 1949 1.1 christos xor $3,$18 1950 1.1 christos srl $18,$7,22 1951 1.1 christos xor $3,$19 1952 1.1 christos sll $19,$7,30 1953 1.1 christos xor $3,$18 1954 1.1 christos and $18,$24,$25 1955 1.1 christos xor $3,$19 # Sigma0(a) 1956 1.1 christos xor $19,$24,$25 1957 1.1 christos #endif 1958 1.1 christos sw $13,20($29) # offload to ring buffer 1959 1.1 christos addu $3,$18 1960 1.1 christos and $19,$7 1961 1.1 christos addu $17,$20 # +=K[21] 1962 1.1 christos addu $3,$19 # +=Maj(a,b,c) 1963 1.1 christos addu $30,$17 1964 1.1 christos addu $3,$17 1965 1.1 christos lw $16,32($29) # prefetch from ring buffer 1966 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1967 1.1 christos srl $20,$15,3 # Xupdate(22) 1968 1.1 christos rotr $18,$15,7 1969 1.1 christos addu $14,$23 # +=X[i+9] 1970 1.1 christos xor $20,$18 1971 1.1 christos rotr $18,$15,18 1972 1.1 christos 1973 1.1 christos srl $21,$12,10 1974 1.1 christos rotr $19,$12,17 1975 1.1 christos xor $20,$18 # sigma0(X[i+1]) 1976 1.1 christos rotr $18,$12,19 1977 1.1 christos xor $21,$19 1978 1.1 christos addu $14,$20 1979 1.1 christos #else 1980 1.1 christos srl $20,$15,3 # Xupdate(22) 1981 1.1 christos addu $14,$23 # +=X[i+9] 1982 1.1 christos sll $19,$15,14 1983 1.1 christos srl $18,$15,7 1984 1.1 christos xor $20,$19 1985 1.1 christos sll $19,11 1986 1.1 christos xor $20,$18 1987 1.1 christos srl $18,$15,18 1988 1.1 christos xor $20,$19 1989 1.1 christos 1990 1.1 christos srl $21,$12,10 1991 1.1 christos xor $20,$18 # sigma0(X[i+1]) 1992 1.1 christos sll $19,$12,13 1993 1.1 christos addu $14,$20 1994 1.1 christos srl $18,$12,17 1995 1.1 christos xor $21,$19 1996 1.1 christos sll $19,2 1997 1.1 christos xor $21,$18 1998 1.1 christos srl $18,$12,19 1999 1.1 christos xor $21,$19 2000 1.1 christos #endif 2001 1.1 christos xor $21,$18 # sigma1(X[i+14]) 2002 1.1 christos addu $14,$21 2003 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2004 1.1 christos xor $21,$31,$1 # 22 2005 1.1 christos rotr $19,$30,6 2006 1.1 christos addu $18,$14,$2 2007 1.1 christos rotr $20,$30,11 2008 1.1 christos and $21,$30 2009 1.1 christos rotr $2,$30,25 2010 1.1 christos xor $19,$20 2011 1.1 christos rotr $20,$3,2 2012 1.1 christos xor $21,$1 # Ch(e,f,g) 2013 1.1 christos xor $19,$2 # Sigma1(e) 2014 1.1 christos 2015 1.1 christos rotr $2,$3,13 2016 1.1 christos addu $18,$21 2017 1.1 christos lw $21,88($6) # K[22] 2018 1.1 christos xor $2,$20 2019 1.1 christos rotr $20,$3,22 2020 1.1 christos addu $18,$19 2021 1.1 christos and $19,$7,$24 2022 1.1 christos xor $2,$20 # Sigma0(a) 2023 1.1 christos xor $20,$7,$24 2024 1.1 christos #else 2025 1.1 christos addu $18,$14,$2 # 22 2026 1.1 christos srl $2,$30,6 2027 1.1 christos xor $21,$31,$1 2028 1.1 christos sll $20,$30,7 2029 1.1 christos and $21,$30 2030 1.1 christos srl $19,$30,11 2031 1.1 christos xor $2,$20 2032 1.1 christos sll $20,$30,21 2033 1.1 christos xor $2,$19 2034 1.1 christos srl $19,$30,25 2035 1.1 christos xor $2,$20 2036 1.1 christos sll $20,$30,26 2037 1.1 christos xor $2,$19 2038 1.1 christos xor $21,$1 # Ch(e,f,g) 2039 1.1 christos xor $19,$20,$2 # Sigma1(e) 2040 1.1 christos 2041 1.1 christos srl $2,$3,2 2042 1.1 christos addu $18,$21 2043 1.1 christos lw $21,88($6) # K[22] 2044 1.1 christos sll $20,$3,10 2045 1.1 christos addu $18,$19 2046 1.1 christos srl $19,$3,13 2047 1.1 christos xor $2,$20 2048 1.1 christos sll $20,$3,19 2049 1.1 christos xor $2,$19 2050 1.1 christos srl $19,$3,22 2051 1.1 christos xor $2,$20 2052 1.1 christos sll $20,$3,30 2053 1.1 christos xor $2,$19 2054 1.1 christos and $19,$7,$24 2055 1.1 christos xor $2,$20 # Sigma0(a) 2056 1.1 christos xor $20,$7,$24 2057 1.1 christos #endif 2058 1.1 christos sw $14,24($29) # offload to ring buffer 2059 1.1 christos addu $2,$19 2060 1.1 christos and $20,$3 2061 1.1 christos addu $18,$21 # +=K[22] 2062 1.1 christos addu $2,$20 # +=Maj(a,b,c) 2063 1.1 christos addu $25,$18 2064 1.1 christos addu $2,$18 2065 1.1 christos lw $17,36($29) # prefetch from ring buffer 2066 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2067 1.1 christos srl $21,$16,3 # Xupdate(23) 2068 1.1 christos rotr $19,$16,7 2069 1.1 christos addu $15,$8 # +=X[i+9] 2070 1.1 christos xor $21,$19 2071 1.1 christos rotr $19,$16,18 2072 1.1 christos 2073 1.1 christos srl $22,$13,10 2074 1.1 christos rotr $20,$13,17 2075 1.1 christos xor $21,$19 # sigma0(X[i+1]) 2076 1.1 christos rotr $19,$13,19 2077 1.1 christos xor $22,$20 2078 1.1 christos addu $15,$21 2079 1.1 christos #else 2080 1.1 christos srl $21,$16,3 # Xupdate(23) 2081 1.1 christos addu $15,$8 # +=X[i+9] 2082 1.1 christos sll $20,$16,14 2083 1.1 christos srl $19,$16,7 2084 1.1 christos xor $21,$20 2085 1.1 christos sll $20,11 2086 1.1 christos xor $21,$19 2087 1.1 christos srl $19,$16,18 2088 1.1 christos xor $21,$20 2089 1.1 christos 2090 1.1 christos srl $22,$13,10 2091 1.1 christos xor $21,$19 # sigma0(X[i+1]) 2092 1.1 christos sll $20,$13,13 2093 1.1 christos addu $15,$21 2094 1.1 christos srl $19,$13,17 2095 1.1 christos xor $22,$20 2096 1.1 christos sll $20,2 2097 1.1 christos xor $22,$19 2098 1.1 christos srl $19,$13,19 2099 1.1 christos xor $22,$20 2100 1.1 christos #endif 2101 1.1 christos xor $22,$19 # sigma1(X[i+14]) 2102 1.1 christos addu $15,$22 2103 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2104 1.1 christos xor $22,$30,$31 # 23 2105 1.1 christos rotr $20,$25,6 2106 1.1 christos addu $19,$15,$1 2107 1.1 christos rotr $21,$25,11 2108 1.1 christos and $22,$25 2109 1.1 christos rotr $1,$25,25 2110 1.1 christos xor $20,$21 2111 1.1 christos rotr $21,$2,2 2112 1.1 christos xor $22,$31 # Ch(e,f,g) 2113 1.1 christos xor $20,$1 # Sigma1(e) 2114 1.1 christos 2115 1.1 christos rotr $1,$2,13 2116 1.1 christos addu $19,$22 2117 1.1 christos lw $22,92($6) # K[23] 2118 1.1 christos xor $1,$21 2119 1.1 christos rotr $21,$2,22 2120 1.1 christos addu $19,$20 2121 1.1 christos and $20,$3,$7 2122 1.1 christos xor $1,$21 # Sigma0(a) 2123 1.1 christos xor $21,$3,$7 2124 1.1 christos #else 2125 1.1 christos addu $19,$15,$1 # 23 2126 1.1 christos srl $1,$25,6 2127 1.1 christos xor $22,$30,$31 2128 1.1 christos sll $21,$25,7 2129 1.1 christos and $22,$25 2130 1.1 christos srl $20,$25,11 2131 1.1 christos xor $1,$21 2132 1.1 christos sll $21,$25,21 2133 1.1 christos xor $1,$20 2134 1.1 christos srl $20,$25,25 2135 1.1 christos xor $1,$21 2136 1.1 christos sll $21,$25,26 2137 1.1 christos xor $1,$20 2138 1.1 christos xor $22,$31 # Ch(e,f,g) 2139 1.1 christos xor $20,$21,$1 # Sigma1(e) 2140 1.1 christos 2141 1.1 christos srl $1,$2,2 2142 1.1 christos addu $19,$22 2143 1.1 christos lw $22,92($6) # K[23] 2144 1.1 christos sll $21,$2,10 2145 1.1 christos addu $19,$20 2146 1.1 christos srl $20,$2,13 2147 1.1 christos xor $1,$21 2148 1.1 christos sll $21,$2,19 2149 1.1 christos xor $1,$20 2150 1.1 christos srl $20,$2,22 2151 1.1 christos xor $1,$21 2152 1.1 christos sll $21,$2,30 2153 1.1 christos xor $1,$20 2154 1.1 christos and $20,$3,$7 2155 1.1 christos xor $1,$21 # Sigma0(a) 2156 1.1 christos xor $21,$3,$7 2157 1.1 christos #endif 2158 1.1 christos sw $15,28($29) # offload to ring buffer 2159 1.1 christos addu $1,$20 2160 1.1 christos and $21,$2 2161 1.1 christos addu $19,$22 # +=K[23] 2162 1.1 christos addu $1,$21 # +=Maj(a,b,c) 2163 1.1 christos addu $24,$19 2164 1.1 christos addu $1,$19 2165 1.1 christos lw $18,40($29) # prefetch from ring buffer 2166 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2167 1.1 christos srl $22,$17,3 # Xupdate(24) 2168 1.1 christos rotr $20,$17,7 2169 1.1 christos addu $16,$9 # +=X[i+9] 2170 1.1 christos xor $22,$20 2171 1.1 christos rotr $20,$17,18 2172 1.1 christos 2173 1.1 christos srl $23,$14,10 2174 1.1 christos rotr $21,$14,17 2175 1.1 christos xor $22,$20 # sigma0(X[i+1]) 2176 1.1 christos rotr $20,$14,19 2177 1.1 christos xor $23,$21 2178 1.1 christos addu $16,$22 2179 1.1 christos #else 2180 1.1 christos srl $22,$17,3 # Xupdate(24) 2181 1.1 christos addu $16,$9 # +=X[i+9] 2182 1.1 christos sll $21,$17,14 2183 1.1 christos srl $20,$17,7 2184 1.1 christos xor $22,$21 2185 1.1 christos sll $21,11 2186 1.1 christos xor $22,$20 2187 1.1 christos srl $20,$17,18 2188 1.1 christos xor $22,$21 2189 1.1 christos 2190 1.1 christos srl $23,$14,10 2191 1.1 christos xor $22,$20 # sigma0(X[i+1]) 2192 1.1 christos sll $21,$14,13 2193 1.1 christos addu $16,$22 2194 1.1 christos srl $20,$14,17 2195 1.1 christos xor $23,$21 2196 1.1 christos sll $21,2 2197 1.1 christos xor $23,$20 2198 1.1 christos srl $20,$14,19 2199 1.1 christos xor $23,$21 2200 1.1 christos #endif 2201 1.1 christos xor $23,$20 # sigma1(X[i+14]) 2202 1.1 christos addu $16,$23 2203 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2204 1.1 christos xor $23,$25,$30 # 24 2205 1.1 christos rotr $21,$24,6 2206 1.1 christos addu $20,$16,$31 2207 1.1 christos rotr $22,$24,11 2208 1.1 christos and $23,$24 2209 1.1 christos rotr $31,$24,25 2210 1.1 christos xor $21,$22 2211 1.1 christos rotr $22,$1,2 2212 1.1 christos xor $23,$30 # Ch(e,f,g) 2213 1.1 christos xor $21,$31 # Sigma1(e) 2214 1.1 christos 2215 1.1 christos rotr $31,$1,13 2216 1.1 christos addu $20,$23 2217 1.1 christos lw $23,96($6) # K[24] 2218 1.1 christos xor $31,$22 2219 1.1 christos rotr $22,$1,22 2220 1.1 christos addu $20,$21 2221 1.1 christos and $21,$2,$3 2222 1.1 christos xor $31,$22 # Sigma0(a) 2223 1.1 christos xor $22,$2,$3 2224 1.1 christos #else 2225 1.1 christos addu $20,$16,$31 # 24 2226 1.1 christos srl $31,$24,6 2227 1.1 christos xor $23,$25,$30 2228 1.1 christos sll $22,$24,7 2229 1.1 christos and $23,$24 2230 1.1 christos srl $21,$24,11 2231 1.1 christos xor $31,$22 2232 1.1 christos sll $22,$24,21 2233 1.1 christos xor $31,$21 2234 1.1 christos srl $21,$24,25 2235 1.1 christos xor $31,$22 2236 1.1 christos sll $22,$24,26 2237 1.1 christos xor $31,$21 2238 1.1 christos xor $23,$30 # Ch(e,f,g) 2239 1.1 christos xor $21,$22,$31 # Sigma1(e) 2240 1.1 christos 2241 1.1 christos srl $31,$1,2 2242 1.1 christos addu $20,$23 2243 1.1 christos lw $23,96($6) # K[24] 2244 1.1 christos sll $22,$1,10 2245 1.1 christos addu $20,$21 2246 1.1 christos srl $21,$1,13 2247 1.1 christos xor $31,$22 2248 1.1 christos sll $22,$1,19 2249 1.1 christos xor $31,$21 2250 1.1 christos srl $21,$1,22 2251 1.1 christos xor $31,$22 2252 1.1 christos sll $22,$1,30 2253 1.1 christos xor $31,$21 2254 1.1 christos and $21,$2,$3 2255 1.1 christos xor $31,$22 # Sigma0(a) 2256 1.1 christos xor $22,$2,$3 2257 1.1 christos #endif 2258 1.1 christos sw $16,32($29) # offload to ring buffer 2259 1.1 christos addu $31,$21 2260 1.1 christos and $22,$1 2261 1.1 christos addu $20,$23 # +=K[24] 2262 1.1 christos addu $31,$22 # +=Maj(a,b,c) 2263 1.1 christos addu $7,$20 2264 1.1 christos addu $31,$20 2265 1.1 christos lw $19,44($29) # prefetch from ring buffer 2266 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2267 1.1 christos srl $23,$18,3 # Xupdate(25) 2268 1.1 christos rotr $21,$18,7 2269 1.1 christos addu $17,$10 # +=X[i+9] 2270 1.1 christos xor $23,$21 2271 1.1 christos rotr $21,$18,18 2272 1.1 christos 2273 1.1 christos srl $8,$15,10 2274 1.1 christos rotr $22,$15,17 2275 1.1 christos xor $23,$21 # sigma0(X[i+1]) 2276 1.1 christos rotr $21,$15,19 2277 1.1 christos xor $8,$22 2278 1.1 christos addu $17,$23 2279 1.1 christos #else 2280 1.1 christos srl $23,$18,3 # Xupdate(25) 2281 1.1 christos addu $17,$10 # +=X[i+9] 2282 1.1 christos sll $22,$18,14 2283 1.1 christos srl $21,$18,7 2284 1.1 christos xor $23,$22 2285 1.1 christos sll $22,11 2286 1.1 christos xor $23,$21 2287 1.1 christos srl $21,$18,18 2288 1.1 christos xor $23,$22 2289 1.1 christos 2290 1.1 christos srl $8,$15,10 2291 1.1 christos xor $23,$21 # sigma0(X[i+1]) 2292 1.1 christos sll $22,$15,13 2293 1.1 christos addu $17,$23 2294 1.1 christos srl $21,$15,17 2295 1.1 christos xor $8,$22 2296 1.1 christos sll $22,2 2297 1.1 christos xor $8,$21 2298 1.1 christos srl $21,$15,19 2299 1.1 christos xor $8,$22 2300 1.1 christos #endif 2301 1.1 christos xor $8,$21 # sigma1(X[i+14]) 2302 1.1 christos addu $17,$8 2303 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2304 1.1 christos xor $8,$24,$25 # 25 2305 1.1 christos rotr $22,$7,6 2306 1.1 christos addu $21,$17,$30 2307 1.1 christos rotr $23,$7,11 2308 1.1 christos and $8,$7 2309 1.1 christos rotr $30,$7,25 2310 1.1 christos xor $22,$23 2311 1.1 christos rotr $23,$31,2 2312 1.1 christos xor $8,$25 # Ch(e,f,g) 2313 1.1 christos xor $22,$30 # Sigma1(e) 2314 1.1 christos 2315 1.1 christos rotr $30,$31,13 2316 1.1 christos addu $21,$8 2317 1.1 christos lw $8,100($6) # K[25] 2318 1.1 christos xor $30,$23 2319 1.1 christos rotr $23,$31,22 2320 1.1 christos addu $21,$22 2321 1.1 christos and $22,$1,$2 2322 1.1 christos xor $30,$23 # Sigma0(a) 2323 1.1 christos xor $23,$1,$2 2324 1.1 christos #else 2325 1.1 christos addu $21,$17,$30 # 25 2326 1.1 christos srl $30,$7,6 2327 1.1 christos xor $8,$24,$25 2328 1.1 christos sll $23,$7,7 2329 1.1 christos and $8,$7 2330 1.1 christos srl $22,$7,11 2331 1.1 christos xor $30,$23 2332 1.1 christos sll $23,$7,21 2333 1.1 christos xor $30,$22 2334 1.1 christos srl $22,$7,25 2335 1.1 christos xor $30,$23 2336 1.1 christos sll $23,$7,26 2337 1.1 christos xor $30,$22 2338 1.1 christos xor $8,$25 # Ch(e,f,g) 2339 1.1 christos xor $22,$23,$30 # Sigma1(e) 2340 1.1 christos 2341 1.1 christos srl $30,$31,2 2342 1.1 christos addu $21,$8 2343 1.1 christos lw $8,100($6) # K[25] 2344 1.1 christos sll $23,$31,10 2345 1.1 christos addu $21,$22 2346 1.1 christos srl $22,$31,13 2347 1.1 christos xor $30,$23 2348 1.1 christos sll $23,$31,19 2349 1.1 christos xor $30,$22 2350 1.1 christos srl $22,$31,22 2351 1.1 christos xor $30,$23 2352 1.1 christos sll $23,$31,30 2353 1.1 christos xor $30,$22 2354 1.1 christos and $22,$1,$2 2355 1.1 christos xor $30,$23 # Sigma0(a) 2356 1.1 christos xor $23,$1,$2 2357 1.1 christos #endif 2358 1.1 christos sw $17,36($29) # offload to ring buffer 2359 1.1 christos addu $30,$22 2360 1.1 christos and $23,$31 2361 1.1 christos addu $21,$8 # +=K[25] 2362 1.1 christos addu $30,$23 # +=Maj(a,b,c) 2363 1.1 christos addu $3,$21 2364 1.1 christos addu $30,$21 2365 1.1 christos lw $20,48($29) # prefetch from ring buffer 2366 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2367 1.1 christos srl $8,$19,3 # Xupdate(26) 2368 1.1 christos rotr $22,$19,7 2369 1.1 christos addu $18,$11 # +=X[i+9] 2370 1.1 christos xor $8,$22 2371 1.1 christos rotr $22,$19,18 2372 1.1 christos 2373 1.1 christos srl $9,$16,10 2374 1.1 christos rotr $23,$16,17 2375 1.1 christos xor $8,$22 # sigma0(X[i+1]) 2376 1.1 christos rotr $22,$16,19 2377 1.1 christos xor $9,$23 2378 1.1 christos addu $18,$8 2379 1.1 christos #else 2380 1.1 christos srl $8,$19,3 # Xupdate(26) 2381 1.1 christos addu $18,$11 # +=X[i+9] 2382 1.1 christos sll $23,$19,14 2383 1.1 christos srl $22,$19,7 2384 1.1 christos xor $8,$23 2385 1.1 christos sll $23,11 2386 1.1 christos xor $8,$22 2387 1.1 christos srl $22,$19,18 2388 1.1 christos xor $8,$23 2389 1.1 christos 2390 1.1 christos srl $9,$16,10 2391 1.1 christos xor $8,$22 # sigma0(X[i+1]) 2392 1.1 christos sll $23,$16,13 2393 1.1 christos addu $18,$8 2394 1.1 christos srl $22,$16,17 2395 1.1 christos xor $9,$23 2396 1.1 christos sll $23,2 2397 1.1 christos xor $9,$22 2398 1.1 christos srl $22,$16,19 2399 1.1 christos xor $9,$23 2400 1.1 christos #endif 2401 1.1 christos xor $9,$22 # sigma1(X[i+14]) 2402 1.1 christos addu $18,$9 2403 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2404 1.1 christos xor $9,$7,$24 # 26 2405 1.1 christos rotr $23,$3,6 2406 1.1 christos addu $22,$18,$25 2407 1.1 christos rotr $8,$3,11 2408 1.1 christos and $9,$3 2409 1.1 christos rotr $25,$3,25 2410 1.1 christos xor $23,$8 2411 1.1 christos rotr $8,$30,2 2412 1.1 christos xor $9,$24 # Ch(e,f,g) 2413 1.1 christos xor $23,$25 # Sigma1(e) 2414 1.1 christos 2415 1.1 christos rotr $25,$30,13 2416 1.1 christos addu $22,$9 2417 1.1 christos lw $9,104($6) # K[26] 2418 1.1 christos xor $25,$8 2419 1.1 christos rotr $8,$30,22 2420 1.1 christos addu $22,$23 2421 1.1 christos and $23,$31,$1 2422 1.1 christos xor $25,$8 # Sigma0(a) 2423 1.1 christos xor $8,$31,$1 2424 1.1 christos #else 2425 1.1 christos addu $22,$18,$25 # 26 2426 1.1 christos srl $25,$3,6 2427 1.1 christos xor $9,$7,$24 2428 1.1 christos sll $8,$3,7 2429 1.1 christos and $9,$3 2430 1.1 christos srl $23,$3,11 2431 1.1 christos xor $25,$8 2432 1.1 christos sll $8,$3,21 2433 1.1 christos xor $25,$23 2434 1.1 christos srl $23,$3,25 2435 1.1 christos xor $25,$8 2436 1.1 christos sll $8,$3,26 2437 1.1 christos xor $25,$23 2438 1.1 christos xor $9,$24 # Ch(e,f,g) 2439 1.1 christos xor $23,$8,$25 # Sigma1(e) 2440 1.1 christos 2441 1.1 christos srl $25,$30,2 2442 1.1 christos addu $22,$9 2443 1.1 christos lw $9,104($6) # K[26] 2444 1.1 christos sll $8,$30,10 2445 1.1 christos addu $22,$23 2446 1.1 christos srl $23,$30,13 2447 1.1 christos xor $25,$8 2448 1.1 christos sll $8,$30,19 2449 1.1 christos xor $25,$23 2450 1.1 christos srl $23,$30,22 2451 1.1 christos xor $25,$8 2452 1.1 christos sll $8,$30,30 2453 1.1 christos xor $25,$23 2454 1.1 christos and $23,$31,$1 2455 1.1 christos xor $25,$8 # Sigma0(a) 2456 1.1 christos xor $8,$31,$1 2457 1.1 christos #endif 2458 1.1 christos sw $18,40($29) # offload to ring buffer 2459 1.1 christos addu $25,$23 2460 1.1 christos and $8,$30 2461 1.1 christos addu $22,$9 # +=K[26] 2462 1.1 christos addu $25,$8 # +=Maj(a,b,c) 2463 1.1 christos addu $2,$22 2464 1.1 christos addu $25,$22 2465 1.1 christos lw $21,52($29) # prefetch from ring buffer 2466 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2467 1.1 christos srl $9,$20,3 # Xupdate(27) 2468 1.1 christos rotr $23,$20,7 2469 1.1 christos addu $19,$12 # +=X[i+9] 2470 1.1 christos xor $9,$23 2471 1.1 christos rotr $23,$20,18 2472 1.1 christos 2473 1.1 christos srl $10,$17,10 2474 1.1 christos rotr $8,$17,17 2475 1.1 christos xor $9,$23 # sigma0(X[i+1]) 2476 1.1 christos rotr $23,$17,19 2477 1.1 christos xor $10,$8 2478 1.1 christos addu $19,$9 2479 1.1 christos #else 2480 1.1 christos srl $9,$20,3 # Xupdate(27) 2481 1.1 christos addu $19,$12 # +=X[i+9] 2482 1.1 christos sll $8,$20,14 2483 1.1 christos srl $23,$20,7 2484 1.1 christos xor $9,$8 2485 1.1 christos sll $8,11 2486 1.1 christos xor $9,$23 2487 1.1 christos srl $23,$20,18 2488 1.1 christos xor $9,$8 2489 1.1 christos 2490 1.1 christos srl $10,$17,10 2491 1.1 christos xor $9,$23 # sigma0(X[i+1]) 2492 1.1 christos sll $8,$17,13 2493 1.1 christos addu $19,$9 2494 1.1 christos srl $23,$17,17 2495 1.1 christos xor $10,$8 2496 1.1 christos sll $8,2 2497 1.1 christos xor $10,$23 2498 1.1 christos srl $23,$17,19 2499 1.1 christos xor $10,$8 2500 1.1 christos #endif 2501 1.1 christos xor $10,$23 # sigma1(X[i+14]) 2502 1.1 christos addu $19,$10 2503 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2504 1.1 christos xor $10,$3,$7 # 27 2505 1.1 christos rotr $8,$2,6 2506 1.1 christos addu $23,$19,$24 2507 1.1 christos rotr $9,$2,11 2508 1.1 christos and $10,$2 2509 1.1 christos rotr $24,$2,25 2510 1.1 christos xor $8,$9 2511 1.1 christos rotr $9,$25,2 2512 1.1 christos xor $10,$7 # Ch(e,f,g) 2513 1.1 christos xor $8,$24 # Sigma1(e) 2514 1.1 christos 2515 1.1 christos rotr $24,$25,13 2516 1.1 christos addu $23,$10 2517 1.1 christos lw $10,108($6) # K[27] 2518 1.1 christos xor $24,$9 2519 1.1 christos rotr $9,$25,22 2520 1.1 christos addu $23,$8 2521 1.1 christos and $8,$30,$31 2522 1.1 christos xor $24,$9 # Sigma0(a) 2523 1.1 christos xor $9,$30,$31 2524 1.1 christos #else 2525 1.1 christos addu $23,$19,$24 # 27 2526 1.1 christos srl $24,$2,6 2527 1.1 christos xor $10,$3,$7 2528 1.1 christos sll $9,$2,7 2529 1.1 christos and $10,$2 2530 1.1 christos srl $8,$2,11 2531 1.1 christos xor $24,$9 2532 1.1 christos sll $9,$2,21 2533 1.1 christos xor $24,$8 2534 1.1 christos srl $8,$2,25 2535 1.1 christos xor $24,$9 2536 1.1 christos sll $9,$2,26 2537 1.1 christos xor $24,$8 2538 1.1 christos xor $10,$7 # Ch(e,f,g) 2539 1.1 christos xor $8,$9,$24 # Sigma1(e) 2540 1.1 christos 2541 1.1 christos srl $24,$25,2 2542 1.1 christos addu $23,$10 2543 1.1 christos lw $10,108($6) # K[27] 2544 1.1 christos sll $9,$25,10 2545 1.1 christos addu $23,$8 2546 1.1 christos srl $8,$25,13 2547 1.1 christos xor $24,$9 2548 1.1 christos sll $9,$25,19 2549 1.1 christos xor $24,$8 2550 1.1 christos srl $8,$25,22 2551 1.1 christos xor $24,$9 2552 1.1 christos sll $9,$25,30 2553 1.1 christos xor $24,$8 2554 1.1 christos and $8,$30,$31 2555 1.1 christos xor $24,$9 # Sigma0(a) 2556 1.1 christos xor $9,$30,$31 2557 1.1 christos #endif 2558 1.1 christos sw $19,44($29) # offload to ring buffer 2559 1.1 christos addu $24,$8 2560 1.1 christos and $9,$25 2561 1.1 christos addu $23,$10 # +=K[27] 2562 1.1 christos addu $24,$9 # +=Maj(a,b,c) 2563 1.1 christos addu $1,$23 2564 1.1 christos addu $24,$23 2565 1.1 christos lw $22,56($29) # prefetch from ring buffer 2566 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2567 1.1 christos srl $10,$21,3 # Xupdate(28) 2568 1.1 christos rotr $8,$21,7 2569 1.1 christos addu $20,$13 # +=X[i+9] 2570 1.1 christos xor $10,$8 2571 1.1 christos rotr $8,$21,18 2572 1.1 christos 2573 1.1 christos srl $11,$18,10 2574 1.1 christos rotr $9,$18,17 2575 1.1 christos xor $10,$8 # sigma0(X[i+1]) 2576 1.1 christos rotr $8,$18,19 2577 1.1 christos xor $11,$9 2578 1.1 christos addu $20,$10 2579 1.1 christos #else 2580 1.1 christos srl $10,$21,3 # Xupdate(28) 2581 1.1 christos addu $20,$13 # +=X[i+9] 2582 1.1 christos sll $9,$21,14 2583 1.1 christos srl $8,$21,7 2584 1.1 christos xor $10,$9 2585 1.1 christos sll $9,11 2586 1.1 christos xor $10,$8 2587 1.1 christos srl $8,$21,18 2588 1.1 christos xor $10,$9 2589 1.1 christos 2590 1.1 christos srl $11,$18,10 2591 1.1 christos xor $10,$8 # sigma0(X[i+1]) 2592 1.1 christos sll $9,$18,13 2593 1.1 christos addu $20,$10 2594 1.1 christos srl $8,$18,17 2595 1.1 christos xor $11,$9 2596 1.1 christos sll $9,2 2597 1.1 christos xor $11,$8 2598 1.1 christos srl $8,$18,19 2599 1.1 christos xor $11,$9 2600 1.1 christos #endif 2601 1.1 christos xor $11,$8 # sigma1(X[i+14]) 2602 1.1 christos addu $20,$11 2603 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2604 1.1 christos xor $11,$2,$3 # 28 2605 1.1 christos rotr $9,$1,6 2606 1.1 christos addu $8,$20,$7 2607 1.1 christos rotr $10,$1,11 2608 1.1 christos and $11,$1 2609 1.1 christos rotr $7,$1,25 2610 1.1 christos xor $9,$10 2611 1.1 christos rotr $10,$24,2 2612 1.1 christos xor $11,$3 # Ch(e,f,g) 2613 1.1 christos xor $9,$7 # Sigma1(e) 2614 1.1 christos 2615 1.1 christos rotr $7,$24,13 2616 1.1 christos addu $8,$11 2617 1.1 christos lw $11,112($6) # K[28] 2618 1.1 christos xor $7,$10 2619 1.1 christos rotr $10,$24,22 2620 1.1 christos addu $8,$9 2621 1.1 christos and $9,$25,$30 2622 1.1 christos xor $7,$10 # Sigma0(a) 2623 1.1 christos xor $10,$25,$30 2624 1.1 christos #else 2625 1.1 christos addu $8,$20,$7 # 28 2626 1.1 christos srl $7,$1,6 2627 1.1 christos xor $11,$2,$3 2628 1.1 christos sll $10,$1,7 2629 1.1 christos and $11,$1 2630 1.1 christos srl $9,$1,11 2631 1.1 christos xor $7,$10 2632 1.1 christos sll $10,$1,21 2633 1.1 christos xor $7,$9 2634 1.1 christos srl $9,$1,25 2635 1.1 christos xor $7,$10 2636 1.1 christos sll $10,$1,26 2637 1.1 christos xor $7,$9 2638 1.1 christos xor $11,$3 # Ch(e,f,g) 2639 1.1 christos xor $9,$10,$7 # Sigma1(e) 2640 1.1 christos 2641 1.1 christos srl $7,$24,2 2642 1.1 christos addu $8,$11 2643 1.1 christos lw $11,112($6) # K[28] 2644 1.1 christos sll $10,$24,10 2645 1.1 christos addu $8,$9 2646 1.1 christos srl $9,$24,13 2647 1.1 christos xor $7,$10 2648 1.1 christos sll $10,$24,19 2649 1.1 christos xor $7,$9 2650 1.1 christos srl $9,$24,22 2651 1.1 christos xor $7,$10 2652 1.1 christos sll $10,$24,30 2653 1.1 christos xor $7,$9 2654 1.1 christos and $9,$25,$30 2655 1.1 christos xor $7,$10 # Sigma0(a) 2656 1.1 christos xor $10,$25,$30 2657 1.1 christos #endif 2658 1.1 christos sw $20,48($29) # offload to ring buffer 2659 1.1 christos addu $7,$9 2660 1.1 christos and $10,$24 2661 1.1 christos addu $8,$11 # +=K[28] 2662 1.1 christos addu $7,$10 # +=Maj(a,b,c) 2663 1.1 christos addu $31,$8 2664 1.1 christos addu $7,$8 2665 1.1 christos lw $23,60($29) # prefetch from ring buffer 2666 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2667 1.1 christos srl $11,$22,3 # Xupdate(29) 2668 1.1 christos rotr $9,$22,7 2669 1.1 christos addu $21,$14 # +=X[i+9] 2670 1.1 christos xor $11,$9 2671 1.1 christos rotr $9,$22,18 2672 1.1 christos 2673 1.1 christos srl $12,$19,10 2674 1.1 christos rotr $10,$19,17 2675 1.1 christos xor $11,$9 # sigma0(X[i+1]) 2676 1.1 christos rotr $9,$19,19 2677 1.1 christos xor $12,$10 2678 1.1 christos addu $21,$11 2679 1.1 christos #else 2680 1.1 christos srl $11,$22,3 # Xupdate(29) 2681 1.1 christos addu $21,$14 # +=X[i+9] 2682 1.1 christos sll $10,$22,14 2683 1.1 christos srl $9,$22,7 2684 1.1 christos xor $11,$10 2685 1.1 christos sll $10,11 2686 1.1 christos xor $11,$9 2687 1.1 christos srl $9,$22,18 2688 1.1 christos xor $11,$10 2689 1.1 christos 2690 1.1 christos srl $12,$19,10 2691 1.1 christos xor $11,$9 # sigma0(X[i+1]) 2692 1.1 christos sll $10,$19,13 2693 1.1 christos addu $21,$11 2694 1.1 christos srl $9,$19,17 2695 1.1 christos xor $12,$10 2696 1.1 christos sll $10,2 2697 1.1 christos xor $12,$9 2698 1.1 christos srl $9,$19,19 2699 1.1 christos xor $12,$10 2700 1.1 christos #endif 2701 1.1 christos xor $12,$9 # sigma1(X[i+14]) 2702 1.1 christos addu $21,$12 2703 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2704 1.1 christos xor $12,$1,$2 # 29 2705 1.1 christos rotr $10,$31,6 2706 1.1 christos addu $9,$21,$3 2707 1.1 christos rotr $11,$31,11 2708 1.1 christos and $12,$31 2709 1.1 christos rotr $3,$31,25 2710 1.1 christos xor $10,$11 2711 1.1 christos rotr $11,$7,2 2712 1.1 christos xor $12,$2 # Ch(e,f,g) 2713 1.1 christos xor $10,$3 # Sigma1(e) 2714 1.1 christos 2715 1.1 christos rotr $3,$7,13 2716 1.1 christos addu $9,$12 2717 1.1 christos lw $12,116($6) # K[29] 2718 1.1 christos xor $3,$11 2719 1.1 christos rotr $11,$7,22 2720 1.1 christos addu $9,$10 2721 1.1 christos and $10,$24,$25 2722 1.1 christos xor $3,$11 # Sigma0(a) 2723 1.1 christos xor $11,$24,$25 2724 1.1 christos #else 2725 1.1 christos addu $9,$21,$3 # 29 2726 1.1 christos srl $3,$31,6 2727 1.1 christos xor $12,$1,$2 2728 1.1 christos sll $11,$31,7 2729 1.1 christos and $12,$31 2730 1.1 christos srl $10,$31,11 2731 1.1 christos xor $3,$11 2732 1.1 christos sll $11,$31,21 2733 1.1 christos xor $3,$10 2734 1.1 christos srl $10,$31,25 2735 1.1 christos xor $3,$11 2736 1.1 christos sll $11,$31,26 2737 1.1 christos xor $3,$10 2738 1.1 christos xor $12,$2 # Ch(e,f,g) 2739 1.1 christos xor $10,$11,$3 # Sigma1(e) 2740 1.1 christos 2741 1.1 christos srl $3,$7,2 2742 1.1 christos addu $9,$12 2743 1.1 christos lw $12,116($6) # K[29] 2744 1.1 christos sll $11,$7,10 2745 1.1 christos addu $9,$10 2746 1.1 christos srl $10,$7,13 2747 1.1 christos xor $3,$11 2748 1.1 christos sll $11,$7,19 2749 1.1 christos xor $3,$10 2750 1.1 christos srl $10,$7,22 2751 1.1 christos xor $3,$11 2752 1.1 christos sll $11,$7,30 2753 1.1 christos xor $3,$10 2754 1.1 christos and $10,$24,$25 2755 1.1 christos xor $3,$11 # Sigma0(a) 2756 1.1 christos xor $11,$24,$25 2757 1.1 christos #endif 2758 1.1 christos sw $21,52($29) # offload to ring buffer 2759 1.1 christos addu $3,$10 2760 1.1 christos and $11,$7 2761 1.1 christos addu $9,$12 # +=K[29] 2762 1.1 christos addu $3,$11 # +=Maj(a,b,c) 2763 1.1 christos addu $30,$9 2764 1.1 christos addu $3,$9 2765 1.1 christos lw $8,0($29) # prefetch from ring buffer 2766 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2767 1.1 christos srl $12,$23,3 # Xupdate(30) 2768 1.1 christos rotr $10,$23,7 2769 1.1 christos addu $22,$15 # +=X[i+9] 2770 1.1 christos xor $12,$10 2771 1.1 christos rotr $10,$23,18 2772 1.1 christos 2773 1.1 christos srl $13,$20,10 2774 1.1 christos rotr $11,$20,17 2775 1.1 christos xor $12,$10 # sigma0(X[i+1]) 2776 1.1 christos rotr $10,$20,19 2777 1.1 christos xor $13,$11 2778 1.1 christos addu $22,$12 2779 1.1 christos #else 2780 1.1 christos srl $12,$23,3 # Xupdate(30) 2781 1.1 christos addu $22,$15 # +=X[i+9] 2782 1.1 christos sll $11,$23,14 2783 1.1 christos srl $10,$23,7 2784 1.1 christos xor $12,$11 2785 1.1 christos sll $11,11 2786 1.1 christos xor $12,$10 2787 1.1 christos srl $10,$23,18 2788 1.1 christos xor $12,$11 2789 1.1 christos 2790 1.1 christos srl $13,$20,10 2791 1.1 christos xor $12,$10 # sigma0(X[i+1]) 2792 1.1 christos sll $11,$20,13 2793 1.1 christos addu $22,$12 2794 1.1 christos srl $10,$20,17 2795 1.1 christos xor $13,$11 2796 1.1 christos sll $11,2 2797 1.1 christos xor $13,$10 2798 1.1 christos srl $10,$20,19 2799 1.1 christos xor $13,$11 2800 1.1 christos #endif 2801 1.1 christos xor $13,$10 # sigma1(X[i+14]) 2802 1.1 christos addu $22,$13 2803 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2804 1.1 christos xor $13,$31,$1 # 30 2805 1.1 christos rotr $11,$30,6 2806 1.1 christos addu $10,$22,$2 2807 1.1 christos rotr $12,$30,11 2808 1.1 christos and $13,$30 2809 1.1 christos rotr $2,$30,25 2810 1.1 christos xor $11,$12 2811 1.1 christos rotr $12,$3,2 2812 1.1 christos xor $13,$1 # Ch(e,f,g) 2813 1.1 christos xor $11,$2 # Sigma1(e) 2814 1.1 christos 2815 1.1 christos rotr $2,$3,13 2816 1.1 christos addu $10,$13 2817 1.1 christos lw $13,120($6) # K[30] 2818 1.1 christos xor $2,$12 2819 1.1 christos rotr $12,$3,22 2820 1.1 christos addu $10,$11 2821 1.1 christos and $11,$7,$24 2822 1.1 christos xor $2,$12 # Sigma0(a) 2823 1.1 christos xor $12,$7,$24 2824 1.1 christos #else 2825 1.1 christos addu $10,$22,$2 # 30 2826 1.1 christos srl $2,$30,6 2827 1.1 christos xor $13,$31,$1 2828 1.1 christos sll $12,$30,7 2829 1.1 christos and $13,$30 2830 1.1 christos srl $11,$30,11 2831 1.1 christos xor $2,$12 2832 1.1 christos sll $12,$30,21 2833 1.1 christos xor $2,$11 2834 1.1 christos srl $11,$30,25 2835 1.1 christos xor $2,$12 2836 1.1 christos sll $12,$30,26 2837 1.1 christos xor $2,$11 2838 1.1 christos xor $13,$1 # Ch(e,f,g) 2839 1.1 christos xor $11,$12,$2 # Sigma1(e) 2840 1.1 christos 2841 1.1 christos srl $2,$3,2 2842 1.1 christos addu $10,$13 2843 1.1 christos lw $13,120($6) # K[30] 2844 1.1 christos sll $12,$3,10 2845 1.1 christos addu $10,$11 2846 1.1 christos srl $11,$3,13 2847 1.1 christos xor $2,$12 2848 1.1 christos sll $12,$3,19 2849 1.1 christos xor $2,$11 2850 1.1 christos srl $11,$3,22 2851 1.1 christos xor $2,$12 2852 1.1 christos sll $12,$3,30 2853 1.1 christos xor $2,$11 2854 1.1 christos and $11,$7,$24 2855 1.1 christos xor $2,$12 # Sigma0(a) 2856 1.1 christos xor $12,$7,$24 2857 1.1 christos #endif 2858 1.1 christos sw $22,56($29) # offload to ring buffer 2859 1.1 christos addu $2,$11 2860 1.1 christos and $12,$3 2861 1.1 christos addu $10,$13 # +=K[30] 2862 1.1 christos addu $2,$12 # +=Maj(a,b,c) 2863 1.1 christos addu $25,$10 2864 1.1 christos addu $2,$10 2865 1.1 christos lw $9,4($29) # prefetch from ring buffer 2866 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2867 1.1 christos srl $13,$8,3 # Xupdate(31) 2868 1.1 christos rotr $11,$8,7 2869 1.1 christos addu $23,$16 # +=X[i+9] 2870 1.1 christos xor $13,$11 2871 1.1 christos rotr $11,$8,18 2872 1.1 christos 2873 1.1 christos srl $14,$21,10 2874 1.1 christos rotr $12,$21,17 2875 1.1 christos xor $13,$11 # sigma0(X[i+1]) 2876 1.1 christos rotr $11,$21,19 2877 1.1 christos xor $14,$12 2878 1.1 christos addu $23,$13 2879 1.1 christos #else 2880 1.1 christos srl $13,$8,3 # Xupdate(31) 2881 1.1 christos addu $23,$16 # +=X[i+9] 2882 1.1 christos sll $12,$8,14 2883 1.1 christos srl $11,$8,7 2884 1.1 christos xor $13,$12 2885 1.1 christos sll $12,11 2886 1.1 christos xor $13,$11 2887 1.1 christos srl $11,$8,18 2888 1.1 christos xor $13,$12 2889 1.1 christos 2890 1.1 christos srl $14,$21,10 2891 1.1 christos xor $13,$11 # sigma0(X[i+1]) 2892 1.1 christos sll $12,$21,13 2893 1.1 christos addu $23,$13 2894 1.1 christos srl $11,$21,17 2895 1.1 christos xor $14,$12 2896 1.1 christos sll $12,2 2897 1.1 christos xor $14,$11 2898 1.1 christos srl $11,$21,19 2899 1.1 christos xor $14,$12 2900 1.1 christos #endif 2901 1.1 christos xor $14,$11 # sigma1(X[i+14]) 2902 1.1 christos addu $23,$14 2903 1.1 christos #if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2904 1.1 christos xor $14,$30,$31 # 31 2905 1.1 christos rotr $12,$25,6 2906 1.1 christos addu $11,$23,$1 2907 1.1 christos rotr $13,$25,11 2908 1.1 christos and $14,$25 2909 1.1 christos rotr $1,$25,25 2910 1.1 christos xor $12,$13 2911 1.1 christos rotr $13,$2,2 2912 1.1 christos xor $14,$31 # Ch(e,f,g) 2913 1.1 christos xor $12,$1 # Sigma1(e) 2914 1.1 christos 2915 1.1 christos rotr $1,$2,13 2916 1.1 christos addu $11,$14 2917 1.1 christos lw $14,124($6) # K[31] 2918 1.1 christos xor $1,$13 2919 1.1 christos rotr $13,$2,22 2920 1.1 christos addu $11,$12 2921 1.1 christos and $12,$3,$7 2922 1.1 christos xor $1,$13 # Sigma0(a) 2923 1.1 christos xor $13,$3,$7 2924 1.1 christos #else 2925 1.1 christos addu $11,$23,$1 # 31 2926 1.1 christos srl $1,$25,6 2927 1.1 christos xor $14,$30,$31 2928 1.1 christos sll $13,$25,7 2929 1.1 christos and $14,$25 2930 1.1 christos srl $12,$25,11 2931 1.1 christos xor $1,$13 2932 1.1 christos sll $13,$25,21 2933 1.1 christos xor $1,$12 2934 1.1 christos srl $12,$25,25 2935 1.1 christos xor $1,$13 2936 1.1 christos sll $13,$25,26 2937 1.1 christos xor $1,$12 2938 1.1 christos xor $14,$31 # Ch(e,f,g) 2939 1.1 christos xor $12,$13,$1 # Sigma1(e) 2940 1.1 christos 2941 1.1 christos srl $1,$2,2 2942 1.1 christos addu $11,$14 2943 1.1 christos lw $14,124($6) # K[31] 2944 1.1 christos sll $13,$2,10 2945 1.1 christos addu $11,$12 2946 1.1 christos srl $12,$2,13 2947 1.1 christos xor $1,$13 2948 1.1 christos sll $13,$2,19 2949 1.1 christos xor $1,$12 2950 1.1 christos srl $12,$2,22 2951 1.1 christos xor $1,$13 2952 1.1 christos sll $13,$2,30 2953 1.1 christos xor $1,$12 2954 1.1 christos and $12,$3,$7 2955 1.1 christos xor $1,$13 # Sigma0(a) 2956 1.1 christos xor $13,$3,$7 2957 1.1 christos #endif 2958 1.1 christos sw $23,60($29) # offload to ring buffer 2959 1.1 christos addu $1,$12 2960 1.1 christos and $13,$2 2961 1.1 christos addu $11,$14 # +=K[31] 2962 1.1 christos addu $1,$13 # +=Maj(a,b,c) 2963 1.1 christos addu $24,$11 2964 1.1 christos addu $1,$11 2965 1.1 christos lw $10,8($29) # prefetch from ring buffer 2966 1.1 christos and $14,0xfff 2967 1.1 christos li $15,2290 2968 1.1 christos .set noreorder 2969 1.1 christos bne $14,$15,.L16_xx 2970 1.1 christos daddu $6,16*4 # Ktbl+=16 2971 1.1 christos 2972 1.1 christos ld $23,16*4($29) # restore pointer to the end of input 2973 1.1 christos lw $8,0*4($4) 2974 1.1 christos lw $9,1*4($4) 2975 1.1 christos lw $10,2*4($4) 2976 1.1 christos daddu $5,16*4 2977 1.1 christos lw $11,3*4($4) 2978 1.1 christos addu $1,$8 2979 1.1 christos lw $12,4*4($4) 2980 1.1 christos addu $2,$9 2981 1.1 christos lw $13,5*4($4) 2982 1.1 christos addu $3,$10 2983 1.1 christos lw $14,6*4($4) 2984 1.1 christos addu $7,$11 2985 1.1 christos lw $15,7*4($4) 2986 1.1 christos addu $24,$12 2987 1.1 christos sw $1,0*4($4) 2988 1.1 christos addu $25,$13 2989 1.1 christos sw $2,1*4($4) 2990 1.1 christos addu $30,$14 2991 1.1 christos sw $3,2*4($4) 2992 1.1 christos addu $31,$15 2993 1.1 christos sw $7,3*4($4) 2994 1.1 christos sw $24,4*4($4) 2995 1.1 christos sw $25,5*4($4) 2996 1.1 christos sw $30,6*4($4) 2997 1.1 christos sw $31,7*4($4) 2998 1.1 christos 2999 1.1 christos bne $5,$23,.Loop 3000 1.1 christos dsubu $6,192 # rewind $6 3001 1.1 christos 3002 1.1 christos ld $31,192-1*8($29) 3003 1.1 christos ld $30,192-2*8($29) 3004 1.1 christos ld $23,192-3*8($29) 3005 1.1 christos ld $22,192-4*8($29) 3006 1.1 christos ld $21,192-5*8($29) 3007 1.1 christos ld $20,192-6*8($29) 3008 1.1 christos ld $19,192-7*8($29) 3009 1.1 christos ld $18,192-8*8($29) 3010 1.1 christos ld $17,192-9*8($29) 3011 1.1 christos ld $16,192-10*8($29) 3012 1.1 christos jr $31 3013 1.1 christos daddu $29,192 3014 1.1 christos .end sha256_block_data_order 3015 1.1 christos 3016 1.1 christos .rdata 3017 1.1 christos .align 5 3018 1.1 christos K256: 3019 1.1 christos .word 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5 3020 1.1 christos .word 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5 3021 1.1 christos .word 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3 3022 1.1 christos .word 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174 3023 1.1 christos .word 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc 3024 1.1 christos .word 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da 3025 1.1 christos .word 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7 3026 1.1 christos .word 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967 3027 1.1 christos .word 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13 3028 1.1 christos .word 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85 3029 1.1 christos .word 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3 3030 1.1 christos .word 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070 3031 1.1 christos .word 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5 3032 1.1 christos .word 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3 3033 1.1 christos .word 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208 3034 1.1 christos .word 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 3035 1.1 christos .asciiz "SHA256 for MIPS, CRYPTOGAMS by <appro (at) openssl.org>" 3036 1.1 christos .align 5 3037 1.1 christos 3038