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