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