1 1.1 christos #include "sparc_arch.h" 2 1.1 christos 3 1.1 christos #ifdef __arch64__ 4 1.1 christos .register %g2,#scratch 5 1.1 christos .register %g3,#scratch 6 1.1 christos #endif 7 1.1 christos 8 1.1 christos .section ".text",#alloc,#execinstr 9 1.1 christos 10 1.1 christos #ifdef __PIC__ 11 1.1 christos SPARC_PIC_THUNK(%g1) 12 1.1 christos #endif 13 1.1 christos 14 1.1 christos .globl md5_block_asm_data_order 15 1.1 christos .align 32 16 1.1 christos md5_block_asm_data_order: 17 1.1 christos SPARC_LOAD_ADDRESS_LEAF(OPENSSL_sparcv9cap_P,%g1,%g5) 18 1.1 christos ld [%g1+4],%g1 ! OPENSSL_sparcv9cap_P[1] 19 1.1 christos 20 1.1 christos andcc %g1, CFR_MD5, %g0 21 1.1 christos be .Lsoftware 22 1.1 christos nop 23 1.1 christos 24 1.1 christos mov 4, %g1 25 1.1 christos andcc %o1, 0x7, %g0 26 1.1 christos lda [%o0 + %g0]0x88, %f0 ! load context 27 1.1 christos lda [%o0 + %g1]0x88, %f1 28 1.1 christos add %o0, 8, %o0 29 1.1 christos lda [%o0 + %g0]0x88, %f2 30 1.1 christos lda [%o0 + %g1]0x88, %f3 31 1.1 christos bne,pn %icc, .Lhwunaligned 32 1.1 christos sub %o0, 8, %o0 33 1.1 christos 34 1.1 christos .Lhw_loop: 35 1.1 christos ldd [%o1 + 0x00], %f8 36 1.1 christos ldd [%o1 + 0x08], %f10 37 1.1 christos ldd [%o1 + 0x10], %f12 38 1.1 christos ldd [%o1 + 0x18], %f14 39 1.1 christos ldd [%o1 + 0x20], %f16 40 1.1 christos ldd [%o1 + 0x28], %f18 41 1.1 christos ldd [%o1 + 0x30], %f20 42 1.1.1.2 christos subcc %o2, 1, %o2 ! done yet? 43 1.1 christos ldd [%o1 + 0x38], %f22 44 1.1 christos add %o1, 0x40, %o1 45 1.1 christos prefetch [%o1 + 63], 20 46 1.1 christos 47 1.1 christos .word 0x81b02800 ! MD5 48 1.1 christos 49 1.1 christos bne,pt SIZE_T_CC, .Lhw_loop 50 1.1 christos nop 51 1.1 christos 52 1.1 christos .Lhwfinish: 53 1.1 christos sta %f0, [%o0 + %g0]0x88 ! store context 54 1.1 christos sta %f1, [%o0 + %g1]0x88 55 1.1 christos add %o0, 8, %o0 56 1.1 christos sta %f2, [%o0 + %g0]0x88 57 1.1 christos sta %f3, [%o0 + %g1]0x88 58 1.1 christos retl 59 1.1 christos nop 60 1.1 christos 61 1.1 christos .align 8 62 1.1 christos .Lhwunaligned: 63 1.1 christos .word 0x93b24300 !alignaddr %o1,%g0,%o1 64 1.1 christos 65 1.1 christos ldd [%o1 + 0x00], %f10 66 1.1 christos .Lhwunaligned_loop: 67 1.1 christos ldd [%o1 + 0x08], %f12 68 1.1 christos ldd [%o1 + 0x10], %f14 69 1.1 christos ldd [%o1 + 0x18], %f16 70 1.1 christos ldd [%o1 + 0x20], %f18 71 1.1 christos ldd [%o1 + 0x28], %f20 72 1.1 christos ldd [%o1 + 0x30], %f22 73 1.1 christos ldd [%o1 + 0x38], %f24 74 1.1 christos subcc %o2, 1, %o2 ! done yet? 75 1.1 christos ldd [%o1 + 0x40], %f26 76 1.1 christos add %o1, 0x40, %o1 77 1.1 christos prefetch [%o1 + 63], 20 78 1.1 christos 79 1.1 christos .word 0x91b2890c !faligndata %f10,%f12,%f8 80 1.1 christos .word 0x95b3090e !faligndata %f12,%f14,%f10 81 1.1 christos .word 0x99b38910 !faligndata %f14,%f16,%f12 82 1.1 christos .word 0x9db40912 !faligndata %f16,%f18,%f14 83 1.1 christos .word 0xa1b48914 !faligndata %f18,%f20,%f16 84 1.1 christos .word 0xa5b50916 !faligndata %f20,%f22,%f18 85 1.1 christos .word 0xa9b58918 !faligndata %f22,%f24,%f20 86 1.1 christos .word 0xadb6091a !faligndata %f24,%f26,%f22 87 1.1 christos 88 1.1 christos .word 0x81b02800 ! MD5 89 1.1 christos 90 1.1 christos bne,pt SIZE_T_CC, .Lhwunaligned_loop 91 1.1 christos .word 0x95b68f9a !for %f26,%f26,%f10 ! %f10=%f26 92 1.1 christos 93 1.1 christos ba .Lhwfinish 94 1.1 christos nop 95 1.1 christos 96 1.1 christos .align 16 97 1.1 christos .Lsoftware: 98 1.1 christos save %sp,-STACK_FRAME,%sp 99 1.1 christos 100 1.1 christos rd %asi,%l7 101 1.1 christos wr %g0,0x88,%asi ! ASI_PRIMARY_LITTLE 102 1.1 christos and %i1,7,%i3 103 1.1 christos andn %i1,7,%i1 104 1.1 christos 105 1.1 christos sll %i3,3,%i3 ! *=8 106 1.1 christos mov 56,%i5 107 1.1 christos ld [%i0+0],%l0 108 1.1 christos sub %i5,%i3,%i5 109 1.1 christos ld [%i0+4],%l1 110 1.1 christos and %i5,32,%i4 111 1.1 christos add %i5,8,%i5 112 1.1 christos ld [%i0+8],%l2 113 1.1 christos sub %i5,%i4,%i5 ! shr+shl1+shl2==64 114 1.1 christos ld [%i0+12],%l3 115 1.1 christos nop 116 1.1 christos 117 1.1 christos .Loop: 118 1.1 christos cmp %i3,0 ! was inp aligned? 119 1.1 christos ldxa [%i1+0]%asi,%o0 ! load little-endian input 120 1.1 christos ldxa [%i1+8]%asi,%o1 121 1.1 christos ldxa [%i1+16]%asi,%o2 122 1.1 christos ldxa [%i1+24]%asi,%o3 123 1.1 christos ldxa [%i1+32]%asi,%o4 124 1.1 christos sllx %l0,32,%g4 ! pack A,B 125 1.1 christos ldxa [%i1+40]%asi,%o5 126 1.1 christos sllx %l2,32,%g5 ! pack C,D 127 1.1 christos ldxa [%i1+48]%asi,%o7 128 1.1 christos or %l1,%g4,%g4 129 1.1 christos ldxa [%i1+56]%asi,%g1 130 1.1 christos or %l3,%g5,%g5 131 1.1 christos bnz,a,pn %icc,.+8 132 1.1 christos ldxa [%i1+64]%asi,%g2 133 1.1 christos 134 1.1 christos srlx %o0,%i3,%o0 ! align X[0] 135 1.1 christos sllx %o1,%i4,%g3 136 1.1 christos sethi %hi(3614090360),%l5 137 1.1 christos sllx %g3,%i5,%g3 138 1.1 christos or %l5,%lo(3614090360),%l5 139 1.1 christos or %g3,%o0,%o0 140 1.1 christos xor %l2,%l3,%l4 141 1.1 christos add %o0,%l5,%l5 ! X[0]+K[0] 142 1.1 christos srlx %o0,32,%g3 ! extract X[1] 143 1.1 christos and %l1,%l4,%l4 ! round 0 144 1.1 christos add %l5,%l0,%l0 145 1.1 christos xor %l3,%l4,%l4 146 1.1 christos sethi %hi(3905402710),%l5 147 1.1 christos add %l4,%l0,%l0 148 1.1 christos or %l5,%lo(3905402710),%l5 149 1.1 christos sll %l0,7,%l6 150 1.1 christos add %g3,%l5,%l5 ! X[1]+K[1] 151 1.1 christos srl %l0,32-7,%l0 152 1.1 christos add %l1,%l6,%l6 153 1.1 christos xor %l1,%l2,%l4 154 1.1 christos add %l6,%l0,%l0 155 1.1 christos srlx %o1,%i3,%o1 ! align X[2] 156 1.1 christos and %l0,%l4,%l4 ! round 1 157 1.1 christos sllx %o2,%i4,%g3 158 1.1 christos add %l5,%l3,%l3 159 1.1 christos sllx %g3,%i5,%g3 160 1.1 christos xor %l2,%l4,%l4 161 1.1 christos or %g3,%o1,%o1 162 1.1 christos sethi %hi(606105819),%l5 163 1.1 christos add %l4,%l3,%l3 164 1.1 christos or %l5,%lo(606105819),%l5 165 1.1 christos sll %l3,12,%l6 166 1.1 christos add %o1,%l5,%l5 ! X[2]+K[2] 167 1.1 christos srl %l3,32-12,%l3 168 1.1 christos add %l0,%l6,%l6 169 1.1 christos xor %l0,%l1,%l4 170 1.1 christos add %l6,%l3,%l3 171 1.1 christos srlx %o1,32,%g3 ! extract X[3] 172 1.1 christos and %l3,%l4,%l4 ! round 2 173 1.1 christos add %l5,%l2,%l2 174 1.1 christos xor %l1,%l4,%l4 175 1.1 christos sethi %hi(3250441966),%l5 176 1.1 christos add %l4,%l2,%l2 177 1.1 christos or %l5,%lo(3250441966),%l5 178 1.1 christos sll %l2,17,%l6 179 1.1 christos add %g3,%l5,%l5 ! X[3]+K[3] 180 1.1 christos srl %l2,32-17,%l2 181 1.1 christos add %l3,%l6,%l6 182 1.1 christos xor %l3,%l0,%l4 183 1.1 christos add %l6,%l2,%l2 184 1.1 christos srlx %o2,%i3,%o2 ! align X[4] 185 1.1 christos and %l2,%l4,%l4 ! round 3 186 1.1 christos sllx %o3,%i4,%g3 187 1.1 christos add %l5,%l1,%l1 188 1.1 christos sllx %g3,%i5,%g3 189 1.1 christos xor %l0,%l4,%l4 190 1.1 christos or %g3,%o2,%o2 191 1.1 christos sethi %hi(4118548399),%l5 192 1.1 christos add %l4,%l1,%l1 193 1.1 christos or %l5,%lo(4118548399),%l5 194 1.1 christos sll %l1,22,%l6 195 1.1 christos add %o2,%l5,%l5 ! X[4]+K[4] 196 1.1 christos srl %l1,32-22,%l1 197 1.1 christos add %l2,%l6,%l6 198 1.1 christos xor %l2,%l3,%l4 199 1.1 christos add %l6,%l1,%l1 200 1.1 christos srlx %o2,32,%g3 ! extract X[5] 201 1.1 christos and %l1,%l4,%l4 ! round 4 202 1.1 christos add %l5,%l0,%l0 203 1.1 christos xor %l3,%l4,%l4 204 1.1 christos sethi %hi(1200080426),%l5 205 1.1 christos add %l4,%l0,%l0 206 1.1 christos or %l5,%lo(1200080426),%l5 207 1.1 christos sll %l0,7,%l6 208 1.1 christos add %g3,%l5,%l5 ! X[5]+K[5] 209 1.1 christos srl %l0,32-7,%l0 210 1.1 christos add %l1,%l6,%l6 211 1.1 christos xor %l1,%l2,%l4 212 1.1 christos add %l6,%l0,%l0 213 1.1 christos srlx %o3,%i3,%o3 ! align X[6] 214 1.1 christos and %l0,%l4,%l4 ! round 5 215 1.1 christos sllx %o4,%i4,%g3 216 1.1 christos add %l5,%l3,%l3 217 1.1 christos sllx %g3,%i5,%g3 218 1.1 christos xor %l2,%l4,%l4 219 1.1 christos or %g3,%o3,%o3 220 1.1 christos sethi %hi(2821735955),%l5 221 1.1 christos add %l4,%l3,%l3 222 1.1 christos or %l5,%lo(2821735955),%l5 223 1.1 christos sll %l3,12,%l6 224 1.1 christos add %o3,%l5,%l5 ! X[6]+K[6] 225 1.1 christos srl %l3,32-12,%l3 226 1.1 christos add %l0,%l6,%l6 227 1.1 christos xor %l0,%l1,%l4 228 1.1 christos add %l6,%l3,%l3 229 1.1 christos srlx %o3,32,%g3 ! extract X[7] 230 1.1 christos and %l3,%l4,%l4 ! round 6 231 1.1 christos add %l5,%l2,%l2 232 1.1 christos xor %l1,%l4,%l4 233 1.1 christos sethi %hi(4249261313),%l5 234 1.1 christos add %l4,%l2,%l2 235 1.1 christos or %l5,%lo(4249261313),%l5 236 1.1 christos sll %l2,17,%l6 237 1.1 christos add %g3,%l5,%l5 ! X[7]+K[7] 238 1.1 christos srl %l2,32-17,%l2 239 1.1 christos add %l3,%l6,%l6 240 1.1 christos xor %l3,%l0,%l4 241 1.1 christos add %l6,%l2,%l2 242 1.1 christos srlx %o4,%i3,%o4 ! align X[8] 243 1.1 christos and %l2,%l4,%l4 ! round 7 244 1.1 christos sllx %o5,%i4,%g3 245 1.1 christos add %l5,%l1,%l1 246 1.1 christos sllx %g3,%i5,%g3 247 1.1 christos xor %l0,%l4,%l4 248 1.1 christos or %g3,%o4,%o4 249 1.1 christos sethi %hi(1770035416),%l5 250 1.1 christos add %l4,%l1,%l1 251 1.1 christos or %l5,%lo(1770035416),%l5 252 1.1 christos sll %l1,22,%l6 253 1.1 christos add %o4,%l5,%l5 ! X[8]+K[8] 254 1.1 christos srl %l1,32-22,%l1 255 1.1 christos add %l2,%l6,%l6 256 1.1 christos xor %l2,%l3,%l4 257 1.1 christos add %l6,%l1,%l1 258 1.1 christos srlx %o4,32,%g3 ! extract X[9] 259 1.1 christos and %l1,%l4,%l4 ! round 8 260 1.1 christos add %l5,%l0,%l0 261 1.1 christos xor %l3,%l4,%l4 262 1.1 christos sethi %hi(2336552879),%l5 263 1.1 christos add %l4,%l0,%l0 264 1.1 christos or %l5,%lo(2336552879),%l5 265 1.1 christos sll %l0,7,%l6 266 1.1 christos add %g3,%l5,%l5 ! X[9]+K[9] 267 1.1 christos srl %l0,32-7,%l0 268 1.1 christos add %l1,%l6,%l6 269 1.1 christos xor %l1,%l2,%l4 270 1.1 christos add %l6,%l0,%l0 271 1.1 christos srlx %o5,%i3,%o5 ! align X[10] 272 1.1 christos and %l0,%l4,%l4 ! round 9 273 1.1 christos sllx %o7,%i4,%g3 274 1.1 christos add %l5,%l3,%l3 275 1.1 christos sllx %g3,%i5,%g3 276 1.1 christos xor %l2,%l4,%l4 277 1.1 christos or %g3,%o5,%o5 278 1.1 christos sethi %hi(4294925233),%l5 279 1.1 christos add %l4,%l3,%l3 280 1.1 christos or %l5,%lo(4294925233),%l5 281 1.1 christos sll %l3,12,%l6 282 1.1 christos add %o5,%l5,%l5 ! X[10]+K[10] 283 1.1 christos srl %l3,32-12,%l3 284 1.1 christos add %l0,%l6,%l6 285 1.1 christos xor %l0,%l1,%l4 286 1.1 christos add %l6,%l3,%l3 287 1.1 christos srlx %o5,32,%g3 ! extract X[11] 288 1.1 christos and %l3,%l4,%l4 ! round 10 289 1.1 christos add %l5,%l2,%l2 290 1.1 christos xor %l1,%l4,%l4 291 1.1 christos sethi %hi(2304563134),%l5 292 1.1 christos add %l4,%l2,%l2 293 1.1 christos or %l5,%lo(2304563134),%l5 294 1.1 christos sll %l2,17,%l6 295 1.1 christos add %g3,%l5,%l5 ! X[11]+K[11] 296 1.1 christos srl %l2,32-17,%l2 297 1.1 christos add %l3,%l6,%l6 298 1.1 christos xor %l3,%l0,%l4 299 1.1 christos add %l6,%l2,%l2 300 1.1 christos srlx %o7,%i3,%o7 ! align X[12] 301 1.1 christos and %l2,%l4,%l4 ! round 11 302 1.1 christos sllx %g1,%i4,%g3 303 1.1 christos add %l5,%l1,%l1 304 1.1 christos sllx %g3,%i5,%g3 305 1.1 christos xor %l0,%l4,%l4 306 1.1 christos or %g3,%o7,%o7 307 1.1 christos sethi %hi(1804603682),%l5 308 1.1 christos add %l4,%l1,%l1 309 1.1 christos or %l5,%lo(1804603682),%l5 310 1.1 christos sll %l1,22,%l6 311 1.1 christos add %o7,%l5,%l5 ! X[12]+K[12] 312 1.1 christos srl %l1,32-22,%l1 313 1.1 christos add %l2,%l6,%l6 314 1.1 christos xor %l2,%l3,%l4 315 1.1 christos add %l6,%l1,%l1 316 1.1 christos srlx %o7,32,%g3 ! extract X[13] 317 1.1 christos and %l1,%l4,%l4 ! round 12 318 1.1 christos add %l5,%l0,%l0 319 1.1 christos xor %l3,%l4,%l4 320 1.1 christos sethi %hi(4254626195),%l5 321 1.1 christos add %l4,%l0,%l0 322 1.1 christos or %l5,%lo(4254626195),%l5 323 1.1 christos sll %l0,7,%l6 324 1.1 christos add %g3,%l5,%l5 ! X[13]+K[13] 325 1.1 christos srl %l0,32-7,%l0 326 1.1 christos add %l1,%l6,%l6 327 1.1 christos xor %l1,%l2,%l4 328 1.1 christos add %l6,%l0,%l0 329 1.1 christos srlx %g1,%i3,%g1 ! align X[14] 330 1.1 christos and %l0,%l4,%l4 ! round 13 331 1.1 christos sllx %g2,%i4,%g3 332 1.1 christos add %l5,%l3,%l3 333 1.1 christos sllx %g3,%i5,%g3 334 1.1 christos xor %l2,%l4,%l4 335 1.1 christos or %g3,%g1,%g1 336 1.1 christos sethi %hi(2792965006),%l5 337 1.1 christos add %l4,%l3,%l3 338 1.1 christos or %l5,%lo(2792965006),%l5 339 1.1 christos sll %l3,12,%l6 340 1.1 christos add %g1,%l5,%l5 ! X[14]+K[14] 341 1.1 christos srl %l3,32-12,%l3 342 1.1 christos add %l0,%l6,%l6 343 1.1 christos xor %l0,%l1,%l4 344 1.1 christos add %l6,%l3,%l3 345 1.1 christos srlx %g1,32,%g3 ! extract X[15] 346 1.1 christos and %l3,%l4,%l4 ! round 14 347 1.1 christos add %l5,%l2,%l2 348 1.1 christos xor %l1,%l4,%l4 349 1.1 christos sethi %hi(1236535329),%l5 350 1.1 christos add %l4,%l2,%l2 351 1.1 christos or %l5,%lo(1236535329),%l5 352 1.1 christos sll %l2,17,%l6 353 1.1 christos add %g3,%l5,%l5 ! X[15]+K[15] 354 1.1 christos srl %l2,32-17,%l2 355 1.1 christos add %l3,%l6,%l6 356 1.1 christos xor %l3,%l0,%l4 357 1.1 christos add %l6,%l2,%l2 358 1.1 christos srlx %o0,32,%g3 ! extract X[1] 359 1.1 christos and %l2,%l4,%l4 ! round 15 360 1.1 christos add %l5,%l1,%l1 361 1.1 christos xor %l0,%l4,%l4 362 1.1 christos sethi %hi(4129170786),%l5 363 1.1 christos add %l4,%l1,%l1 364 1.1 christos or %l5,%lo(4129170786),%l5 365 1.1 christos sll %l1,22,%l6 366 1.1 christos add %g3,%l5,%l5 ! X[1]+K[16] 367 1.1 christos srl %l1,32-22,%l1 368 1.1 christos add %l2,%l6,%l6 369 1.1 christos andn %l2,%l3,%l4 370 1.1 christos add %l6,%l1,%l1 371 1.1 christos and %l1,%l3,%l6 ! round 16 372 1.1 christos add %l5,%l0,%l0 373 1.1 christos or %l6,%l4,%l4 374 1.1 christos sethi %hi(3225465664),%l5 375 1.1 christos add %l4,%l0,%l0 376 1.1 christos or %l5,%lo(3225465664),%l5 377 1.1 christos sll %l0,5,%l6 378 1.1 christos add %o3,%l5,%l5 ! X[6]+K[17] 379 1.1 christos srl %l0,32-5,%l0 380 1.1 christos add %l1,%l6,%l6 381 1.1 christos andn %l1,%l2,%l4 382 1.1 christos add %l6,%l0,%l0 383 1.1 christos srlx %o5,32,%g3 ! extract X[11] 384 1.1 christos and %l0,%l2,%l6 ! round 17 385 1.1 christos add %l5,%l3,%l3 386 1.1 christos or %l6,%l4,%l4 387 1.1 christos sethi %hi(643717713),%l5 388 1.1 christos add %l4,%l3,%l3 389 1.1 christos or %l5,%lo(643717713),%l5 390 1.1 christos sll %l3,9,%l6 391 1.1 christos add %g3,%l5,%l5 ! X[11]+K[18] 392 1.1 christos srl %l3,32-9,%l3 393 1.1 christos add %l0,%l6,%l6 394 1.1 christos andn %l0,%l1,%l4 395 1.1 christos add %l6,%l3,%l3 396 1.1 christos and %l3,%l1,%l6 ! round 18 397 1.1 christos add %l5,%l2,%l2 398 1.1 christos or %l6,%l4,%l4 399 1.1 christos sethi %hi(3921069994),%l5 400 1.1 christos add %l4,%l2,%l2 401 1.1 christos or %l5,%lo(3921069994),%l5 402 1.1 christos sll %l2,14,%l6 403 1.1 christos add %o0,%l5,%l5 ! X[0]+K[19] 404 1.1 christos srl %l2,32-14,%l2 405 1.1 christos add %l3,%l6,%l6 406 1.1 christos andn %l3,%l0,%l4 407 1.1 christos add %l6,%l2,%l2 408 1.1 christos srlx %o2,32,%g3 ! extract X[5] 409 1.1 christos and %l2,%l0,%l6 ! round 19 410 1.1 christos add %l5,%l1,%l1 411 1.1 christos or %l6,%l4,%l4 412 1.1 christos sethi %hi(3593408605),%l5 413 1.1 christos add %l4,%l1,%l1 414 1.1 christos or %l5,%lo(3593408605),%l5 415 1.1 christos sll %l1,20,%l6 416 1.1 christos add %g3,%l5,%l5 ! X[5]+K[20] 417 1.1 christos srl %l1,32-20,%l1 418 1.1 christos add %l2,%l6,%l6 419 1.1 christos andn %l2,%l3,%l4 420 1.1 christos add %l6,%l1,%l1 421 1.1 christos and %l1,%l3,%l6 ! round 20 422 1.1 christos add %l5,%l0,%l0 423 1.1 christos or %l6,%l4,%l4 424 1.1 christos sethi %hi(38016083),%l5 425 1.1 christos add %l4,%l0,%l0 426 1.1 christos or %l5,%lo(38016083),%l5 427 1.1 christos sll %l0,5,%l6 428 1.1 christos add %o5,%l5,%l5 ! X[10]+K[21] 429 1.1 christos srl %l0,32-5,%l0 430 1.1 christos add %l1,%l6,%l6 431 1.1 christos andn %l1,%l2,%l4 432 1.1 christos add %l6,%l0,%l0 433 1.1 christos srlx %g1,32,%g3 ! extract X[15] 434 1.1 christos and %l0,%l2,%l6 ! round 21 435 1.1 christos add %l5,%l3,%l3 436 1.1 christos or %l6,%l4,%l4 437 1.1 christos sethi %hi(3634488961),%l5 438 1.1 christos add %l4,%l3,%l3 439 1.1 christos or %l5,%lo(3634488961),%l5 440 1.1 christos sll %l3,9,%l6 441 1.1 christos add %g3,%l5,%l5 ! X[15]+K[22] 442 1.1 christos srl %l3,32-9,%l3 443 1.1 christos add %l0,%l6,%l6 444 1.1 christos andn %l0,%l1,%l4 445 1.1 christos add %l6,%l3,%l3 446 1.1 christos and %l3,%l1,%l6 ! round 22 447 1.1 christos add %l5,%l2,%l2 448 1.1 christos or %l6,%l4,%l4 449 1.1 christos sethi %hi(3889429448),%l5 450 1.1 christos add %l4,%l2,%l2 451 1.1 christos or %l5,%lo(3889429448),%l5 452 1.1 christos sll %l2,14,%l6 453 1.1 christos add %o2,%l5,%l5 ! X[4]+K[23] 454 1.1 christos srl %l2,32-14,%l2 455 1.1 christos add %l3,%l6,%l6 456 1.1 christos andn %l3,%l0,%l4 457 1.1 christos add %l6,%l2,%l2 458 1.1 christos srlx %o4,32,%g3 ! extract X[9] 459 1.1 christos and %l2,%l0,%l6 ! round 23 460 1.1 christos add %l5,%l1,%l1 461 1.1 christos or %l6,%l4,%l4 462 1.1 christos sethi %hi(568446438),%l5 463 1.1 christos add %l4,%l1,%l1 464 1.1 christos or %l5,%lo(568446438),%l5 465 1.1 christos sll %l1,20,%l6 466 1.1 christos add %g3,%l5,%l5 ! X[9]+K[24] 467 1.1 christos srl %l1,32-20,%l1 468 1.1 christos add %l2,%l6,%l6 469 1.1 christos andn %l2,%l3,%l4 470 1.1 christos add %l6,%l1,%l1 471 1.1 christos and %l1,%l3,%l6 ! round 24 472 1.1 christos add %l5,%l0,%l0 473 1.1 christos or %l6,%l4,%l4 474 1.1 christos sethi %hi(3275163606),%l5 475 1.1 christos add %l4,%l0,%l0 476 1.1 christos or %l5,%lo(3275163606),%l5 477 1.1 christos sll %l0,5,%l6 478 1.1 christos add %g1,%l5,%l5 ! X[14]+K[25] 479 1.1 christos srl %l0,32-5,%l0 480 1.1 christos add %l1,%l6,%l6 481 1.1 christos andn %l1,%l2,%l4 482 1.1 christos add %l6,%l0,%l0 483 1.1 christos srlx %o1,32,%g3 ! extract X[3] 484 1.1 christos and %l0,%l2,%l6 ! round 25 485 1.1 christos add %l5,%l3,%l3 486 1.1 christos or %l6,%l4,%l4 487 1.1 christos sethi %hi(4107603335),%l5 488 1.1 christos add %l4,%l3,%l3 489 1.1 christos or %l5,%lo(4107603335),%l5 490 1.1 christos sll %l3,9,%l6 491 1.1 christos add %g3,%l5,%l5 ! X[3]+K[26] 492 1.1 christos srl %l3,32-9,%l3 493 1.1 christos add %l0,%l6,%l6 494 1.1 christos andn %l0,%l1,%l4 495 1.1 christos add %l6,%l3,%l3 496 1.1 christos and %l3,%l1,%l6 ! round 26 497 1.1 christos add %l5,%l2,%l2 498 1.1 christos or %l6,%l4,%l4 499 1.1 christos sethi %hi(1163531501),%l5 500 1.1 christos add %l4,%l2,%l2 501 1.1 christos or %l5,%lo(1163531501),%l5 502 1.1 christos sll %l2,14,%l6 503 1.1 christos add %o4,%l5,%l5 ! X[8]+K[27] 504 1.1 christos srl %l2,32-14,%l2 505 1.1 christos add %l3,%l6,%l6 506 1.1 christos andn %l3,%l0,%l4 507 1.1 christos add %l6,%l2,%l2 508 1.1 christos srlx %o7,32,%g3 ! extract X[13] 509 1.1 christos and %l2,%l0,%l6 ! round 27 510 1.1 christos add %l5,%l1,%l1 511 1.1 christos or %l6,%l4,%l4 512 1.1 christos sethi %hi(2850285829),%l5 513 1.1 christos add %l4,%l1,%l1 514 1.1 christos or %l5,%lo(2850285829),%l5 515 1.1 christos sll %l1,20,%l6 516 1.1 christos add %g3,%l5,%l5 ! X[13]+K[28] 517 1.1 christos srl %l1,32-20,%l1 518 1.1 christos add %l2,%l6,%l6 519 1.1 christos andn %l2,%l3,%l4 520 1.1 christos add %l6,%l1,%l1 521 1.1 christos and %l1,%l3,%l6 ! round 28 522 1.1 christos add %l5,%l0,%l0 523 1.1 christos or %l6,%l4,%l4 524 1.1 christos sethi %hi(4243563512),%l5 525 1.1 christos add %l4,%l0,%l0 526 1.1 christos or %l5,%lo(4243563512),%l5 527 1.1 christos sll %l0,5,%l6 528 1.1 christos add %o1,%l5,%l5 ! X[2]+K[29] 529 1.1 christos srl %l0,32-5,%l0 530 1.1 christos add %l1,%l6,%l6 531 1.1 christos andn %l1,%l2,%l4 532 1.1 christos add %l6,%l0,%l0 533 1.1 christos srlx %o3,32,%g3 ! extract X[7] 534 1.1 christos and %l0,%l2,%l6 ! round 29 535 1.1 christos add %l5,%l3,%l3 536 1.1 christos or %l6,%l4,%l4 537 1.1 christos sethi %hi(1735328473),%l5 538 1.1 christos add %l4,%l3,%l3 539 1.1 christos or %l5,%lo(1735328473),%l5 540 1.1 christos sll %l3,9,%l6 541 1.1 christos add %g3,%l5,%l5 ! X[7]+K[30] 542 1.1 christos srl %l3,32-9,%l3 543 1.1 christos add %l0,%l6,%l6 544 1.1 christos andn %l0,%l1,%l4 545 1.1 christos add %l6,%l3,%l3 546 1.1 christos and %l3,%l1,%l6 ! round 30 547 1.1 christos add %l5,%l2,%l2 548 1.1 christos or %l6,%l4,%l4 549 1.1 christos sethi %hi(2368359562),%l5 550 1.1 christos add %l4,%l2,%l2 551 1.1 christos or %l5,%lo(2368359562),%l5 552 1.1 christos sll %l2,14,%l6 553 1.1 christos add %o7,%l5,%l5 ! X[12]+K[31] 554 1.1 christos srl %l2,32-14,%l2 555 1.1 christos add %l3,%l6,%l6 556 1.1 christos andn %l3,%l0,%l4 557 1.1 christos add %l6,%l2,%l2 558 1.1 christos srlx %o2,32,%g3 ! extract X[5] 559 1.1 christos and %l2,%l0,%l6 ! round 31 560 1.1 christos add %l5,%l1,%l1 561 1.1 christos or %l6,%l4,%l4 562 1.1 christos sethi %hi(4294588738),%l5 563 1.1 christos add %l4,%l1,%l1 564 1.1 christos or %l5,%lo(4294588738),%l5 565 1.1 christos sll %l1,20,%l6 566 1.1 christos add %g3,%l5,%l5 ! X[5]+K[32] 567 1.1 christos srl %l1,32-20,%l1 568 1.1 christos add %l2,%l6,%l6 569 1.1 christos xor %l2,%l3,%l4 570 1.1 christos add %l6,%l1,%l1 571 1.1 christos add %l5,%l0,%l0 ! round 32 572 1.1 christos xor %l1,%l4,%l4 573 1.1 christos sethi %hi(2272392833),%l5 574 1.1 christos add %l4,%l0,%l0 575 1.1 christos or %l5,%lo(2272392833),%l5 576 1.1 christos sll %l0,4,%l6 577 1.1 christos add %o4,%l5,%l5 ! X[8]+K[33] 578 1.1 christos srl %l0,32-4,%l0 579 1.1 christos add %l1,%l6,%l6 580 1.1 christos xor %l1,%l2,%l4 581 1.1 christos add %l6,%l0,%l0 582 1.1 christos srlx %o5,32,%g3 ! extract X[11] 583 1.1 christos add %l5,%l3,%l3 ! round 33 584 1.1 christos xor %l0,%l4,%l4 585 1.1 christos sethi %hi(1839030562),%l5 586 1.1 christos add %l4,%l3,%l3 587 1.1 christos or %l5,%lo(1839030562),%l5 588 1.1 christos sll %l3,11,%l6 589 1.1 christos add %g3,%l5,%l5 ! X[11]+K[34] 590 1.1 christos srl %l3,32-11,%l3 591 1.1 christos add %l0,%l6,%l6 592 1.1 christos xor %l0,%l1,%l4 593 1.1 christos add %l6,%l3,%l3 594 1.1 christos add %l5,%l2,%l2 ! round 34 595 1.1 christos xor %l3,%l4,%l4 596 1.1 christos sethi %hi(4259657740),%l5 597 1.1 christos add %l4,%l2,%l2 598 1.1 christos or %l5,%lo(4259657740),%l5 599 1.1 christos sll %l2,16,%l6 600 1.1 christos add %g1,%l5,%l5 ! X[14]+K[35] 601 1.1 christos srl %l2,32-16,%l2 602 1.1 christos add %l3,%l6,%l6 603 1.1 christos xor %l3,%l0,%l4 604 1.1 christos add %l6,%l2,%l2 605 1.1 christos srlx %o0,32,%g3 ! extract X[1] 606 1.1 christos add %l5,%l1,%l1 ! round 35 607 1.1 christos xor %l2,%l4,%l4 608 1.1 christos sethi %hi(2763975236),%l5 609 1.1 christos add %l4,%l1,%l1 610 1.1 christos or %l5,%lo(2763975236),%l5 611 1.1 christos sll %l1,23,%l6 612 1.1 christos add %g3,%l5,%l5 ! X[1]+K[36] 613 1.1 christos srl %l1,32-23,%l1 614 1.1 christos add %l2,%l6,%l6 615 1.1 christos xor %l2,%l3,%l4 616 1.1 christos add %l6,%l1,%l1 617 1.1 christos add %l5,%l0,%l0 ! round 36 618 1.1 christos xor %l1,%l4,%l4 619 1.1 christos sethi %hi(1272893353),%l5 620 1.1 christos add %l4,%l0,%l0 621 1.1 christos or %l5,%lo(1272893353),%l5 622 1.1 christos sll %l0,4,%l6 623 1.1 christos add %o2,%l5,%l5 ! X[4]+K[37] 624 1.1 christos srl %l0,32-4,%l0 625 1.1 christos add %l1,%l6,%l6 626 1.1 christos xor %l1,%l2,%l4 627 1.1 christos add %l6,%l0,%l0 628 1.1 christos srlx %o3,32,%g3 ! extract X[7] 629 1.1 christos add %l5,%l3,%l3 ! round 37 630 1.1 christos xor %l0,%l4,%l4 631 1.1 christos sethi %hi(4139469664),%l5 632 1.1 christos add %l4,%l3,%l3 633 1.1 christos or %l5,%lo(4139469664),%l5 634 1.1 christos sll %l3,11,%l6 635 1.1 christos add %g3,%l5,%l5 ! X[7]+K[38] 636 1.1 christos srl %l3,32-11,%l3 637 1.1 christos add %l0,%l6,%l6 638 1.1 christos xor %l0,%l1,%l4 639 1.1 christos add %l6,%l3,%l3 640 1.1 christos add %l5,%l2,%l2 ! round 38 641 1.1 christos xor %l3,%l4,%l4 642 1.1 christos sethi %hi(3200236656),%l5 643 1.1 christos add %l4,%l2,%l2 644 1.1 christos or %l5,%lo(3200236656),%l5 645 1.1 christos sll %l2,16,%l6 646 1.1 christos add %o5,%l5,%l5 ! X[10]+K[39] 647 1.1 christos srl %l2,32-16,%l2 648 1.1 christos add %l3,%l6,%l6 649 1.1 christos xor %l3,%l0,%l4 650 1.1 christos add %l6,%l2,%l2 651 1.1 christos srlx %o7,32,%g3 ! extract X[13] 652 1.1 christos add %l5,%l1,%l1 ! round 39 653 1.1 christos xor %l2,%l4,%l4 654 1.1 christos sethi %hi(681279174),%l5 655 1.1 christos add %l4,%l1,%l1 656 1.1 christos or %l5,%lo(681279174),%l5 657 1.1 christos sll %l1,23,%l6 658 1.1 christos add %g3,%l5,%l5 ! X[13]+K[40] 659 1.1 christos srl %l1,32-23,%l1 660 1.1 christos add %l2,%l6,%l6 661 1.1 christos xor %l2,%l3,%l4 662 1.1 christos add %l6,%l1,%l1 663 1.1 christos add %l5,%l0,%l0 ! round 40 664 1.1 christos xor %l1,%l4,%l4 665 1.1 christos sethi %hi(3936430074),%l5 666 1.1 christos add %l4,%l0,%l0 667 1.1 christos or %l5,%lo(3936430074),%l5 668 1.1 christos sll %l0,4,%l6 669 1.1 christos add %o0,%l5,%l5 ! X[0]+K[41] 670 1.1 christos srl %l0,32-4,%l0 671 1.1 christos add %l1,%l6,%l6 672 1.1 christos xor %l1,%l2,%l4 673 1.1 christos add %l6,%l0,%l0 674 1.1 christos srlx %o1,32,%g3 ! extract X[3] 675 1.1 christos add %l5,%l3,%l3 ! round 41 676 1.1 christos xor %l0,%l4,%l4 677 1.1 christos sethi %hi(3572445317),%l5 678 1.1 christos add %l4,%l3,%l3 679 1.1 christos or %l5,%lo(3572445317),%l5 680 1.1 christos sll %l3,11,%l6 681 1.1 christos add %g3,%l5,%l5 ! X[3]+K[42] 682 1.1 christos srl %l3,32-11,%l3 683 1.1 christos add %l0,%l6,%l6 684 1.1 christos xor %l0,%l1,%l4 685 1.1 christos add %l6,%l3,%l3 686 1.1 christos add %l5,%l2,%l2 ! round 42 687 1.1 christos xor %l3,%l4,%l4 688 1.1 christos sethi %hi(76029189),%l5 689 1.1 christos add %l4,%l2,%l2 690 1.1 christos or %l5,%lo(76029189),%l5 691 1.1 christos sll %l2,16,%l6 692 1.1 christos add %o3,%l5,%l5 ! X[6]+K[43] 693 1.1 christos srl %l2,32-16,%l2 694 1.1 christos add %l3,%l6,%l6 695 1.1 christos xor %l3,%l0,%l4 696 1.1 christos add %l6,%l2,%l2 697 1.1 christos srlx %o4,32,%g3 ! extract X[9] 698 1.1 christos add %l5,%l1,%l1 ! round 43 699 1.1 christos xor %l2,%l4,%l4 700 1.1 christos sethi %hi(3654602809),%l5 701 1.1 christos add %l4,%l1,%l1 702 1.1 christos or %l5,%lo(3654602809),%l5 703 1.1 christos sll %l1,23,%l6 704 1.1 christos add %g3,%l5,%l5 ! X[9]+K[44] 705 1.1 christos srl %l1,32-23,%l1 706 1.1 christos add %l2,%l6,%l6 707 1.1 christos xor %l2,%l3,%l4 708 1.1 christos add %l6,%l1,%l1 709 1.1 christos add %l5,%l0,%l0 ! round 44 710 1.1 christos xor %l1,%l4,%l4 711 1.1 christos sethi %hi(3873151461),%l5 712 1.1 christos add %l4,%l0,%l0 713 1.1 christos or %l5,%lo(3873151461),%l5 714 1.1 christos sll %l0,4,%l6 715 1.1 christos add %o7,%l5,%l5 ! X[12]+K[45] 716 1.1 christos srl %l0,32-4,%l0 717 1.1 christos add %l1,%l6,%l6 718 1.1 christos xor %l1,%l2,%l4 719 1.1 christos add %l6,%l0,%l0 720 1.1 christos srlx %g1,32,%g3 ! extract X[15] 721 1.1 christos add %l5,%l3,%l3 ! round 45 722 1.1 christos xor %l0,%l4,%l4 723 1.1 christos sethi %hi(530742520),%l5 724 1.1 christos add %l4,%l3,%l3 725 1.1 christos or %l5,%lo(530742520),%l5 726 1.1 christos sll %l3,11,%l6 727 1.1 christos add %g3,%l5,%l5 ! X[15]+K[46] 728 1.1 christos srl %l3,32-11,%l3 729 1.1 christos add %l0,%l6,%l6 730 1.1 christos xor %l0,%l1,%l4 731 1.1 christos add %l6,%l3,%l3 732 1.1 christos add %l5,%l2,%l2 ! round 46 733 1.1 christos xor %l3,%l4,%l4 734 1.1 christos sethi %hi(3299628645),%l5 735 1.1 christos add %l4,%l2,%l2 736 1.1 christos or %l5,%lo(3299628645),%l5 737 1.1 christos sll %l2,16,%l6 738 1.1 christos add %o1,%l5,%l5 ! X[2]+K[47] 739 1.1 christos srl %l2,32-16,%l2 740 1.1 christos add %l3,%l6,%l6 741 1.1 christos xor %l3,%l0,%l4 742 1.1 christos add %l6,%l2,%l2 743 1.1 christos add %l5,%l1,%l1 ! round 47 744 1.1 christos xor %l2,%l4,%l4 745 1.1 christos sethi %hi(4096336452),%l5 746 1.1 christos add %l4,%l1,%l1 747 1.1 christos or %l5,%lo(4096336452),%l5 748 1.1 christos sll %l1,23,%l6 749 1.1 christos add %o0,%l5,%l5 ! X[0]+K[48] 750 1.1 christos srl %l1,32-23,%l1 751 1.1 christos add %l2,%l6,%l6 752 1.1 christos xor %l2,%l3,%l4 753 1.1 christos add %l6,%l1,%l1 754 1.1 christos add %l5,%l0,%l0 ! round 48 755 1.1 christos srlx %o3,32,%g3 ! extract X[7] 756 1.1 christos orn %l1,%l3,%l4 757 1.1 christos sethi %hi(1126891415),%l5 758 1.1 christos xor %l2,%l4,%l4 759 1.1 christos or %l5,%lo(1126891415),%l5 760 1.1 christos add %l4,%l0,%l0 761 1.1 christos sll %l0,6,%l6 762 1.1 christos add %g3,%l5,%l5 ! X[7]+K[49] 763 1.1 christos srl %l0,32-6,%l0 764 1.1 christos add %l1,%l6,%l6 765 1.1 christos add %l6,%l0,%l0 766 1.1 christos add %l5,%l3,%l3 ! round 49 767 1.1 christos orn %l0,%l2,%l4 768 1.1 christos sethi %hi(2878612391),%l5 769 1.1 christos xor %l1,%l4,%l4 770 1.1 christos or %l5,%lo(2878612391),%l5 771 1.1 christos add %l4,%l3,%l3 772 1.1 christos sll %l3,10,%l6 773 1.1 christos add %g1,%l5,%l5 ! X[14]+K[50] 774 1.1 christos srl %l3,32-10,%l3 775 1.1 christos add %l0,%l6,%l6 776 1.1 christos add %l6,%l3,%l3 777 1.1 christos add %l5,%l2,%l2 ! round 50 778 1.1 christos srlx %o2,32,%g3 ! extract X[5] 779 1.1 christos orn %l3,%l1,%l4 780 1.1 christos sethi %hi(4237533241),%l5 781 1.1 christos xor %l0,%l4,%l4 782 1.1 christos or %l5,%lo(4237533241),%l5 783 1.1 christos add %l4,%l2,%l2 784 1.1 christos sll %l2,15,%l6 785 1.1 christos add %g3,%l5,%l5 ! X[5]+K[51] 786 1.1 christos srl %l2,32-15,%l2 787 1.1 christos add %l3,%l6,%l6 788 1.1 christos add %l6,%l2,%l2 789 1.1 christos add %l5,%l1,%l1 ! round 51 790 1.1 christos orn %l2,%l0,%l4 791 1.1 christos sethi %hi(1700485571),%l5 792 1.1 christos xor %l3,%l4,%l4 793 1.1 christos or %l5,%lo(1700485571),%l5 794 1.1 christos add %l4,%l1,%l1 795 1.1 christos sll %l1,21,%l6 796 1.1 christos add %o7,%l5,%l5 ! X[12]+K[52] 797 1.1 christos srl %l1,32-21,%l1 798 1.1 christos add %l2,%l6,%l6 799 1.1 christos add %l6,%l1,%l1 800 1.1 christos add %l5,%l0,%l0 ! round 52 801 1.1 christos srlx %o1,32,%g3 ! extract X[3] 802 1.1 christos orn %l1,%l3,%l4 803 1.1 christos sethi %hi(2399980690),%l5 804 1.1 christos xor %l2,%l4,%l4 805 1.1 christos or %l5,%lo(2399980690),%l5 806 1.1 christos add %l4,%l0,%l0 807 1.1 christos sll %l0,6,%l6 808 1.1 christos add %g3,%l5,%l5 ! X[3]+K[53] 809 1.1 christos srl %l0,32-6,%l0 810 1.1 christos add %l1,%l6,%l6 811 1.1 christos add %l6,%l0,%l0 812 1.1 christos add %l5,%l3,%l3 ! round 53 813 1.1 christos orn %l0,%l2,%l4 814 1.1 christos sethi %hi(4293915773),%l5 815 1.1 christos xor %l1,%l4,%l4 816 1.1 christos or %l5,%lo(4293915773),%l5 817 1.1 christos add %l4,%l3,%l3 818 1.1 christos sll %l3,10,%l6 819 1.1 christos add %o5,%l5,%l5 ! X[10]+K[54] 820 1.1 christos srl %l3,32-10,%l3 821 1.1 christos add %l0,%l6,%l6 822 1.1 christos add %l6,%l3,%l3 823 1.1 christos add %l5,%l2,%l2 ! round 54 824 1.1 christos srlx %o0,32,%g3 ! extract X[1] 825 1.1 christos orn %l3,%l1,%l4 826 1.1 christos sethi %hi(2240044497),%l5 827 1.1 christos xor %l0,%l4,%l4 828 1.1 christos or %l5,%lo(2240044497),%l5 829 1.1 christos add %l4,%l2,%l2 830 1.1 christos sll %l2,15,%l6 831 1.1 christos add %g3,%l5,%l5 ! X[1]+K[55] 832 1.1 christos srl %l2,32-15,%l2 833 1.1 christos add %l3,%l6,%l6 834 1.1 christos add %l6,%l2,%l2 835 1.1 christos add %l5,%l1,%l1 ! round 55 836 1.1 christos orn %l2,%l0,%l4 837 1.1 christos sethi %hi(1873313359),%l5 838 1.1 christos xor %l3,%l4,%l4 839 1.1 christos or %l5,%lo(1873313359),%l5 840 1.1 christos add %l4,%l1,%l1 841 1.1 christos sll %l1,21,%l6 842 1.1 christos add %o4,%l5,%l5 ! X[8]+K[56] 843 1.1 christos srl %l1,32-21,%l1 844 1.1 christos add %l2,%l6,%l6 845 1.1 christos add %l6,%l1,%l1 846 1.1 christos add %l5,%l0,%l0 ! round 56 847 1.1 christos srlx %g1,32,%g3 ! extract X[15] 848 1.1 christos orn %l1,%l3,%l4 849 1.1 christos sethi %hi(4264355552),%l5 850 1.1 christos xor %l2,%l4,%l4 851 1.1 christos or %l5,%lo(4264355552),%l5 852 1.1 christos add %l4,%l0,%l0 853 1.1 christos sll %l0,6,%l6 854 1.1 christos add %g3,%l5,%l5 ! X[15]+K[57] 855 1.1 christos srl %l0,32-6,%l0 856 1.1 christos add %l1,%l6,%l6 857 1.1 christos add %l6,%l0,%l0 858 1.1 christos add %l5,%l3,%l3 ! round 57 859 1.1 christos orn %l0,%l2,%l4 860 1.1 christos sethi %hi(2734768916),%l5 861 1.1 christos xor %l1,%l4,%l4 862 1.1 christos or %l5,%lo(2734768916),%l5 863 1.1 christos add %l4,%l3,%l3 864 1.1 christos sll %l3,10,%l6 865 1.1 christos add %o3,%l5,%l5 ! X[6]+K[58] 866 1.1 christos srl %l3,32-10,%l3 867 1.1 christos add %l0,%l6,%l6 868 1.1 christos add %l6,%l3,%l3 869 1.1 christos add %l5,%l2,%l2 ! round 58 870 1.1 christos srlx %o7,32,%g3 ! extract X[13] 871 1.1 christos orn %l3,%l1,%l4 872 1.1 christos sethi %hi(1309151649),%l5 873 1.1 christos xor %l0,%l4,%l4 874 1.1 christos or %l5,%lo(1309151649),%l5 875 1.1 christos add %l4,%l2,%l2 876 1.1 christos sll %l2,15,%l6 877 1.1 christos add %g3,%l5,%l5 ! X[13]+K[59] 878 1.1 christos srl %l2,32-15,%l2 879 1.1 christos add %l3,%l6,%l6 880 1.1 christos add %l6,%l2,%l2 881 1.1 christos add %l5,%l1,%l1 ! round 59 882 1.1 christos orn %l2,%l0,%l4 883 1.1 christos sethi %hi(4149444226),%l5 884 1.1 christos xor %l3,%l4,%l4 885 1.1 christos or %l5,%lo(4149444226),%l5 886 1.1 christos add %l4,%l1,%l1 887 1.1 christos sll %l1,21,%l6 888 1.1 christos add %o2,%l5,%l5 ! X[4]+K[60] 889 1.1 christos srl %l1,32-21,%l1 890 1.1 christos add %l2,%l6,%l6 891 1.1 christos add %l6,%l1,%l1 892 1.1 christos add %l5,%l0,%l0 ! round 60 893 1.1 christos srlx %o5,32,%g3 ! extract X[11] 894 1.1 christos orn %l1,%l3,%l4 895 1.1 christos sethi %hi(3174756917),%l5 896 1.1 christos xor %l2,%l4,%l4 897 1.1 christos or %l5,%lo(3174756917),%l5 898 1.1 christos add %l4,%l0,%l0 899 1.1 christos sll %l0,6,%l6 900 1.1 christos add %g3,%l5,%l5 ! X[11]+K[61] 901 1.1 christos srl %l0,32-6,%l0 902 1.1 christos add %l1,%l6,%l6 903 1.1 christos add %l6,%l0,%l0 904 1.1 christos add %l5,%l3,%l3 ! round 61 905 1.1 christos orn %l0,%l2,%l4 906 1.1 christos sethi %hi(718787259),%l5 907 1.1 christos xor %l1,%l4,%l4 908 1.1 christos or %l5,%lo(718787259),%l5 909 1.1 christos add %l4,%l3,%l3 910 1.1 christos sll %l3,10,%l6 911 1.1 christos add %o1,%l5,%l5 ! X[2]+K[62] 912 1.1 christos srl %l3,32-10,%l3 913 1.1 christos add %l0,%l6,%l6 914 1.1 christos add %l6,%l3,%l3 915 1.1 christos add %l5,%l2,%l2 ! round 62 916 1.1 christos srlx %o4,32,%g3 ! extract X[9] 917 1.1 christos orn %l3,%l1,%l4 918 1.1 christos sethi %hi(3951481745),%l5 919 1.1 christos xor %l0,%l4,%l4 920 1.1 christos or %l5,%lo(3951481745),%l5 921 1.1 christos add %l4,%l2,%l2 922 1.1 christos sll %l2,15,%l6 923 1.1 christos add %g3,%l5,%l5 ! X[9]+K[63] 924 1.1 christos srl %l2,32-15,%l2 925 1.1 christos add %l3,%l6,%l6 926 1.1 christos add %l6,%l2,%l2 927 1.1 christos add %l5,%l1,%l1 ! round 63 928 1.1 christos orn %l2,%l0,%l4 929 1.1 christos sethi %hi(0),%l5 930 1.1 christos xor %l3,%l4,%l4 931 1.1 christos or %l5,%lo(0),%l5 932 1.1 christos add %l4,%l1,%l1 933 1.1 christos sll %l1,21,%l6 934 1.1 christos add %o0,%l5,%l5 ! X[0]+K[64] 935 1.1 christos srl %l1,32-21,%l1 936 1.1 christos add %l2,%l6,%l6 937 1.1 christos add %l6,%l1,%l1 938 1.1 christos srlx %g4,32,%l4 ! unpack A,B,C,D and accumulate 939 1.1 christos add %i1,64,%i1 ! advance inp 940 1.1 christos srlx %g5,32,%l5 941 1.1 christos add %l4,%l0,%l0 942 1.1 christos subcc %i2,1,%i2 ! done yet? 943 1.1 christos add %g4,%l1,%l1 944 1.1 christos add %l5,%l2,%l2 945 1.1 christos add %g5,%l3,%l3 946 1.1 christos srl %l1,0,%l1 ! clruw %l1 947 1.1 christos bne SIZE_T_CC,.Loop 948 1.1 christos srl %l3,0,%l3 ! clruw %l3 949 1.1 christos 950 1.1 christos st %l0,[%i0+0] ! write out ctx 951 1.1 christos st %l1,[%i0+4] 952 1.1 christos st %l2,[%i0+8] 953 1.1 christos st %l3,[%i0+12] 954 1.1 christos 955 1.1 christos wr %g0,%l7,%asi 956 1.1 christos ret 957 1.1 christos restore 958 1.1 christos .type md5_block_asm_data_order,#function 959 1.1 christos .size md5_block_asm_data_order,(.-md5_block_asm_data_order) 960 1.1 christos 961 1.1 christos .asciz "MD5 block transform for SPARCv9, CRYPTOGAMS by <appro (at) openssl.org>" 962 1.1 christos .align 4 963