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 .align 64 14 1.1 christos K512: 15 1.1 christos .type K512,#object 16 1.1 christos .long 0x428a2f98,0xd728ae22, 0x71374491,0x23ef65cd 17 1.1 christos .long 0xb5c0fbcf,0xec4d3b2f, 0xe9b5dba5,0x8189dbbc 18 1.1 christos .long 0x3956c25b,0xf348b538, 0x59f111f1,0xb605d019 19 1.1 christos .long 0x923f82a4,0xaf194f9b, 0xab1c5ed5,0xda6d8118 20 1.1 christos .long 0xd807aa98,0xa3030242, 0x12835b01,0x45706fbe 21 1.1 christos .long 0x243185be,0x4ee4b28c, 0x550c7dc3,0xd5ffb4e2 22 1.1 christos .long 0x72be5d74,0xf27b896f, 0x80deb1fe,0x3b1696b1 23 1.1 christos .long 0x9bdc06a7,0x25c71235, 0xc19bf174,0xcf692694 24 1.1 christos .long 0xe49b69c1,0x9ef14ad2, 0xefbe4786,0x384f25e3 25 1.1 christos .long 0x0fc19dc6,0x8b8cd5b5, 0x240ca1cc,0x77ac9c65 26 1.1 christos .long 0x2de92c6f,0x592b0275, 0x4a7484aa,0x6ea6e483 27 1.1 christos .long 0x5cb0a9dc,0xbd41fbd4, 0x76f988da,0x831153b5 28 1.1 christos .long 0x983e5152,0xee66dfab, 0xa831c66d,0x2db43210 29 1.1 christos .long 0xb00327c8,0x98fb213f, 0xbf597fc7,0xbeef0ee4 30 1.1 christos .long 0xc6e00bf3,0x3da88fc2, 0xd5a79147,0x930aa725 31 1.1 christos .long 0x06ca6351,0xe003826f, 0x14292967,0x0a0e6e70 32 1.1 christos .long 0x27b70a85,0x46d22ffc, 0x2e1b2138,0x5c26c926 33 1.1 christos .long 0x4d2c6dfc,0x5ac42aed, 0x53380d13,0x9d95b3df 34 1.1 christos .long 0x650a7354,0x8baf63de, 0x766a0abb,0x3c77b2a8 35 1.1 christos .long 0x81c2c92e,0x47edaee6, 0x92722c85,0x1482353b 36 1.1 christos .long 0xa2bfe8a1,0x4cf10364, 0xa81a664b,0xbc423001 37 1.1 christos .long 0xc24b8b70,0xd0f89791, 0xc76c51a3,0x0654be30 38 1.1 christos .long 0xd192e819,0xd6ef5218, 0xd6990624,0x5565a910 39 1.1 christos .long 0xf40e3585,0x5771202a, 0x106aa070,0x32bbd1b8 40 1.1 christos .long 0x19a4c116,0xb8d2d0c8, 0x1e376c08,0x5141ab53 41 1.1 christos .long 0x2748774c,0xdf8eeb99, 0x34b0bcb5,0xe19b48a8 42 1.1 christos .long 0x391c0cb3,0xc5c95a63, 0x4ed8aa4a,0xe3418acb 43 1.1 christos .long 0x5b9cca4f,0x7763e373, 0x682e6ff3,0xd6b2b8a3 44 1.1 christos .long 0x748f82ee,0x5defb2fc, 0x78a5636f,0x43172f60 45 1.1 christos .long 0x84c87814,0xa1f0ab72, 0x8cc70208,0x1a6439ec 46 1.1 christos .long 0x90befffa,0x23631e28, 0xa4506ceb,0xde82bde9 47 1.1 christos .long 0xbef9a3f7,0xb2c67915, 0xc67178f2,0xe372532b 48 1.1 christos .long 0xca273ece,0xea26619c, 0xd186b8c7,0x21c0c207 49 1.1 christos .long 0xeada7dd6,0xcde0eb1e, 0xf57d4f7f,0xee6ed178 50 1.1 christos .long 0x06f067aa,0x72176fba, 0x0a637dc5,0xa2c898a6 51 1.1 christos .long 0x113f9804,0xbef90dae, 0x1b710b35,0x131c471b 52 1.1 christos .long 0x28db77f5,0x23047d84, 0x32caab7b,0x40c72493 53 1.1 christos .long 0x3c9ebe0a,0x15c9bebc, 0x431d67c4,0x9c100d4c 54 1.1 christos .long 0x4cc5d4be,0xcb3e42b6, 0x597f299c,0xfc657e2a 55 1.1 christos .long 0x5fcb6fab,0x3ad6faec, 0x6c44198c,0x4a475817 56 1.1 christos .size K512,.-K512 57 1.1 christos 58 1.1 christos #ifdef __PIC__ 59 1.1 christos SPARC_PIC_THUNK(%g1) 60 1.1 christos #endif 61 1.1 christos 62 1.1 christos .globl sha512_block_data_order 63 1.1 christos .align 32 64 1.1 christos sha512_block_data_order: 65 1.1 christos SPARC_LOAD_ADDRESS_LEAF(OPENSSL_sparcv9cap_P,%g1,%g5) 66 1.1 christos ld [%g1+4],%g1 ! OPENSSL_sparcv9cap_P[1] 67 1.1 christos 68 1.1 christos andcc %g1, CFR_SHA512, %g0 69 1.1 christos be .Lsoftware 70 1.1 christos nop 71 1.1 christos ldd [%o0 + 0x00], %f0 ! load context 72 1.1 christos ldd [%o0 + 0x08], %f2 73 1.1 christos ldd [%o0 + 0x10], %f4 74 1.1 christos ldd [%o0 + 0x18], %f6 75 1.1 christos ldd [%o0 + 0x20], %f8 76 1.1 christos ldd [%o0 + 0x28], %f10 77 1.1 christos andcc %o1, 0x7, %g0 78 1.1 christos ldd [%o0 + 0x30], %f12 79 1.1 christos bne,pn %icc, .Lhwunaligned 80 1.1 christos ldd [%o0 + 0x38], %f14 81 1.1 christos 82 1.1 christos .Lhwaligned_loop: 83 1.1 christos ldd [%o1 + 0x00], %f16 84 1.1 christos ldd [%o1 + 0x08], %f18 85 1.1 christos ldd [%o1 + 0x10], %f20 86 1.1 christos ldd [%o1 + 0x18], %f22 87 1.1 christos ldd [%o1 + 0x20], %f24 88 1.1 christos ldd [%o1 + 0x28], %f26 89 1.1 christos ldd [%o1 + 0x30], %f28 90 1.1 christos ldd [%o1 + 0x38], %f30 91 1.1 christos ldd [%o1 + 0x40], %f32 92 1.1 christos ldd [%o1 + 0x48], %f34 93 1.1 christos ldd [%o1 + 0x50], %f36 94 1.1 christos ldd [%o1 + 0x58], %f38 95 1.1 christos ldd [%o1 + 0x60], %f40 96 1.1 christos ldd [%o1 + 0x68], %f42 97 1.1 christos ldd [%o1 + 0x70], %f44 98 1.1 christos subcc %o2, 1, %o2 ! done yet? 99 1.1 christos ldd [%o1 + 0x78], %f46 100 1.1 christos add %o1, 0x80, %o1 101 1.1 christos prefetch [%o1 + 63], 20 102 1.1 christos prefetch [%o1 + 64+63], 20 103 1.1 christos 104 1.1 christos .word 0x81b02860 ! SHA512 105 1.1 christos 106 1.1 christos bne,pt SIZE_T_CC, .Lhwaligned_loop 107 1.1 christos nop 108 1.1 christos 109 1.1 christos .Lhwfinish: 110 1.1 christos std %f0, [%o0 + 0x00] ! store context 111 1.1 christos std %f2, [%o0 + 0x08] 112 1.1 christos std %f4, [%o0 + 0x10] 113 1.1 christos std %f6, [%o0 + 0x18] 114 1.1 christos std %f8, [%o0 + 0x20] 115 1.1 christos std %f10, [%o0 + 0x28] 116 1.1 christos std %f12, [%o0 + 0x30] 117 1.1 christos retl 118 1.1 christos std %f14, [%o0 + 0x38] 119 1.1 christos 120 1.1 christos .align 16 121 1.1 christos .Lhwunaligned: 122 1.1 christos .word 0x93b24300 !alignaddr %o1,%g0,%o1 123 1.1 christos 124 1.1 christos ldd [%o1 + 0x00], %f18 125 1.1 christos .Lhwunaligned_loop: 126 1.1 christos ldd [%o1 + 0x08], %f20 127 1.1 christos ldd [%o1 + 0x10], %f22 128 1.1 christos ldd [%o1 + 0x18], %f24 129 1.1 christos ldd [%o1 + 0x20], %f26 130 1.1 christos ldd [%o1 + 0x28], %f28 131 1.1 christos ldd [%o1 + 0x30], %f30 132 1.1 christos ldd [%o1 + 0x38], %f32 133 1.1 christos ldd [%o1 + 0x40], %f34 134 1.1 christos ldd [%o1 + 0x48], %f36 135 1.1 christos ldd [%o1 + 0x50], %f38 136 1.1 christos ldd [%o1 + 0x58], %f40 137 1.1 christos ldd [%o1 + 0x60], %f42 138 1.1 christos ldd [%o1 + 0x68], %f44 139 1.1 christos ldd [%o1 + 0x70], %f46 140 1.1 christos ldd [%o1 + 0x78], %f48 141 1.1 christos subcc %o2, 1, %o2 ! done yet? 142 1.1 christos ldd [%o1 + 0x80], %f50 143 1.1 christos add %o1, 0x80, %o1 144 1.1 christos prefetch [%o1 + 63], 20 145 1.1 christos prefetch [%o1 + 64+63], 20 146 1.1 christos 147 1.1 christos .word 0xa1b48914 !faligndata %f18,%f20,%f16 148 1.1 christos .word 0xa5b50916 !faligndata %f20,%f22,%f18 149 1.1 christos .word 0xa9b58918 !faligndata %f22,%f24,%f20 150 1.1 christos .word 0xadb6091a !faligndata %f24,%f26,%f22 151 1.1 christos .word 0xb1b6891c !faligndata %f26,%f28,%f24 152 1.1 christos .word 0xb5b7091e !faligndata %f28,%f30,%f26 153 1.1 christos .word 0xb9b78901 !faligndata %f30,%f32,%f28 154 1.1 christos .word 0xbdb04903 !faligndata %f32,%f34,%f30 155 1.1 christos .word 0x83b0c905 !faligndata %f34,%f36,%f32 156 1.1 christos .word 0x87b14907 !faligndata %f36,%f38,%f34 157 1.1 christos .word 0x8bb1c909 !faligndata %f38,%f40,%f36 158 1.1 christos .word 0x8fb2490b !faligndata %f40,%f42,%f38 159 1.1 christos .word 0x93b2c90d !faligndata %f42,%f44,%f40 160 1.1 christos .word 0x97b3490f !faligndata %f44,%f46,%f42 161 1.1 christos .word 0x9bb3c911 !faligndata %f46,%f48,%f44 162 1.1 christos .word 0x9fb44913 !faligndata %f48,%f50,%f46 163 1.1 christos 164 1.1 christos .word 0x81b02860 ! SHA512 165 1.1 christos 166 1.1 christos bne,pt SIZE_T_CC, .Lhwunaligned_loop 167 1.1 christos .word 0xa5b4cf93 !for %f50,%f50,%f18 ! %f18=%f50 168 1.1 christos 169 1.1 christos ba .Lhwfinish 170 1.1 christos nop 171 1.1 christos .align 16 172 1.1 christos .Lsoftware: 173 1.1 christos save %sp,-STACK_FRAME-128,%sp 174 1.1 christos and %i1,3,%i4 175 1.1 christos sllx %i2,7,%i2 176 1.1 christos andn %i1,3,%i1 177 1.1 christos sll %i4,3,%i4 178 1.1 christos add %i1,%i2,%i2 179 1.1 christos mov 32,%i5 180 1.1 christos sub %i5,%i4,%i5 181 1.1 christos .Lpic: call .+8 182 1.1 christos add %o7,K512-.Lpic,%i3 183 1.1 christos 184 1.1 christos ldx [%i0+0],%o0 185 1.1 christos ldx [%i0+8],%o1 186 1.1 christos ldx [%i0+16],%o2 187 1.1 christos ldx [%i0+24],%o3 188 1.1 christos ldx [%i0+32],%o4 189 1.1 christos ldx [%i0+40],%o5 190 1.1 christos ldx [%i0+48],%g1 191 1.1 christos ldx [%i0+56],%o7 192 1.1 christos 193 1.1 christos .Lloop: 194 1.1 christos ld [%i1+0],%l0 195 1.1 christos ld [%i1+4],%l1 196 1.1 christos ld [%i1+8],%l2 197 1.1 christos ld [%i1+12],%l3 198 1.1 christos ld [%i1+16],%l4 199 1.1 christos ld [%i1+20],%l5 200 1.1 christos ld [%i1+24],%l6 201 1.1 christos cmp %i4,0 202 1.1 christos ld [%i1+28],%l7 203 1.1 christos sllx %l1,%i4,%g5 ! Xload(0) 204 1.1 christos add %i4,32,%g3 205 1.1 christos sllx %l0,%g3,%g4 206 1.1 christos ld [%i1+32],%l0 207 1.1 christos srlx %l2,%i5,%l1 208 1.1 christos or %g4,%g5,%g5 209 1.1 christos or %l1,%g5,%g5 210 1.1 christos ld [%i1+36],%l1 211 1.1 christos add %o7,%g5,%g2 212 1.1 christos stx %g5,[%sp+STACK_BIAS+STACK_FRAME+0] 213 1.1 christos srlx %o4,14,%o7 !! 0 214 1.1 christos xor %o5,%g1,%g5 215 1.1 christos sllx %o4,23,%g4 216 1.1 christos and %o4,%g5,%g5 217 1.1 christos srlx %o4,18,%g3 218 1.1 christos xor %g4,%o7,%o7 219 1.1 christos sllx %o4,46,%g4 220 1.1 christos xor %g3,%o7,%o7 221 1.1 christos srlx %o4,41,%g3 222 1.1 christos xor %g4,%o7,%o7 223 1.1 christos sllx %o4,50,%g4 224 1.1 christos xor %g3,%o7,%o7 225 1.1 christos xor %g1,%g5,%g5 ! Ch(e,f,g) 226 1.1 christos xor %g4,%o7,%g3 ! Sigma1(e) 227 1.1 christos 228 1.1 christos srlx %o0,28,%o7 229 1.1 christos add %g5,%g2,%g2 230 1.1 christos ldx [%i3+0],%g5 ! K[0] 231 1.1 christos sllx %o0,25,%g4 232 1.1 christos add %g3,%g2,%g2 233 1.1 christos srlx %o0,34,%g3 234 1.1 christos xor %g4,%o7,%o7 235 1.1 christos sllx %o0,30,%g4 236 1.1 christos xor %g3,%o7,%o7 237 1.1 christos srlx %o0,39,%g3 238 1.1 christos xor %g4,%o7,%o7 239 1.1 christos sllx %o0,36,%g4 240 1.1 christos xor %g3,%o7,%o7 241 1.1 christos xor %g4,%o7,%o7 ! Sigma0(a) 242 1.1 christos 243 1.1 christos or %o0,%o1,%g3 244 1.1 christos and %o0,%o1,%g4 245 1.1 christos and %o2,%g3,%g3 246 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 247 1.1 christos add %g5,%g2,%g2 ! +=K[0] 248 1.1 christos add %g4,%o7,%o7 249 1.1 christos 250 1.1 christos add %g2,%o3,%o3 251 1.1 christos add %g2,%o7,%o7 252 1.1 christos sllx %l3,%i4,%g5 ! Xload(1) 253 1.1 christos add %i4,32,%g3 254 1.1 christos sllx %l2,%g3,%g4 255 1.1 christos ld [%i1+40],%l2 256 1.1 christos srlx %l4,%i5,%l3 257 1.1 christos or %g4,%g5,%g5 258 1.1 christos or %l3,%g5,%g5 259 1.1 christos ld [%i1+44],%l3 260 1.1 christos add %g1,%g5,%g2 261 1.1 christos stx %g5,[%sp+STACK_BIAS+STACK_FRAME+8] 262 1.1 christos srlx %o3,14,%g1 !! 1 263 1.1 christos xor %o4,%o5,%g5 264 1.1 christos sllx %o3,23,%g4 265 1.1 christos and %o3,%g5,%g5 266 1.1 christos srlx %o3,18,%g3 267 1.1 christos xor %g4,%g1,%g1 268 1.1 christos sllx %o3,46,%g4 269 1.1 christos xor %g3,%g1,%g1 270 1.1 christos srlx %o3,41,%g3 271 1.1 christos xor %g4,%g1,%g1 272 1.1 christos sllx %o3,50,%g4 273 1.1 christos xor %g3,%g1,%g1 274 1.1 christos xor %o5,%g5,%g5 ! Ch(e,f,g) 275 1.1 christos xor %g4,%g1,%g3 ! Sigma1(e) 276 1.1 christos 277 1.1 christos srlx %o7,28,%g1 278 1.1 christos add %g5,%g2,%g2 279 1.1 christos ldx [%i3+8],%g5 ! K[1] 280 1.1 christos sllx %o7,25,%g4 281 1.1 christos add %g3,%g2,%g2 282 1.1 christos srlx %o7,34,%g3 283 1.1 christos xor %g4,%g1,%g1 284 1.1 christos sllx %o7,30,%g4 285 1.1 christos xor %g3,%g1,%g1 286 1.1 christos srlx %o7,39,%g3 287 1.1 christos xor %g4,%g1,%g1 288 1.1 christos sllx %o7,36,%g4 289 1.1 christos xor %g3,%g1,%g1 290 1.1 christos xor %g4,%g1,%g1 ! Sigma0(a) 291 1.1 christos 292 1.1 christos or %o7,%o0,%g3 293 1.1 christos and %o7,%o0,%g4 294 1.1 christos and %o1,%g3,%g3 295 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 296 1.1 christos add %g5,%g2,%g2 ! +=K[1] 297 1.1 christos add %g4,%g1,%g1 298 1.1 christos 299 1.1 christos add %g2,%o2,%o2 300 1.1 christos add %g2,%g1,%g1 301 1.1 christos sllx %l5,%i4,%g5 ! Xload(2) 302 1.1 christos add %i4,32,%g3 303 1.1 christos sllx %l4,%g3,%g4 304 1.1 christos ld [%i1+48],%l4 305 1.1 christos srlx %l6,%i5,%l5 306 1.1 christos or %g4,%g5,%g5 307 1.1 christos or %l5,%g5,%g5 308 1.1 christos ld [%i1+52],%l5 309 1.1 christos add %o5,%g5,%g2 310 1.1 christos stx %g5,[%sp+STACK_BIAS+STACK_FRAME+16] 311 1.1 christos srlx %o2,14,%o5 !! 2 312 1.1 christos xor %o3,%o4,%g5 313 1.1 christos sllx %o2,23,%g4 314 1.1 christos and %o2,%g5,%g5 315 1.1 christos srlx %o2,18,%g3 316 1.1 christos xor %g4,%o5,%o5 317 1.1 christos sllx %o2,46,%g4 318 1.1 christos xor %g3,%o5,%o5 319 1.1 christos srlx %o2,41,%g3 320 1.1 christos xor %g4,%o5,%o5 321 1.1 christos sllx %o2,50,%g4 322 1.1 christos xor %g3,%o5,%o5 323 1.1 christos xor %o4,%g5,%g5 ! Ch(e,f,g) 324 1.1 christos xor %g4,%o5,%g3 ! Sigma1(e) 325 1.1 christos 326 1.1 christos srlx %g1,28,%o5 327 1.1 christos add %g5,%g2,%g2 328 1.1 christos ldx [%i3+16],%g5 ! K[2] 329 1.1 christos sllx %g1,25,%g4 330 1.1 christos add %g3,%g2,%g2 331 1.1 christos srlx %g1,34,%g3 332 1.1 christos xor %g4,%o5,%o5 333 1.1 christos sllx %g1,30,%g4 334 1.1 christos xor %g3,%o5,%o5 335 1.1 christos srlx %g1,39,%g3 336 1.1 christos xor %g4,%o5,%o5 337 1.1 christos sllx %g1,36,%g4 338 1.1 christos xor %g3,%o5,%o5 339 1.1 christos xor %g4,%o5,%o5 ! Sigma0(a) 340 1.1 christos 341 1.1 christos or %g1,%o7,%g3 342 1.1 christos and %g1,%o7,%g4 343 1.1 christos and %o0,%g3,%g3 344 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 345 1.1 christos add %g5,%g2,%g2 ! +=K[2] 346 1.1 christos add %g4,%o5,%o5 347 1.1 christos 348 1.1 christos add %g2,%o1,%o1 349 1.1 christos add %g2,%o5,%o5 350 1.1 christos sllx %l7,%i4,%g5 ! Xload(3) 351 1.1 christos add %i4,32,%g3 352 1.1 christos sllx %l6,%g3,%g4 353 1.1 christos ld [%i1+56],%l6 354 1.1 christos srlx %l0,%i5,%l7 355 1.1 christos or %g4,%g5,%g5 356 1.1 christos or %l7,%g5,%g5 357 1.1 christos ld [%i1+60],%l7 358 1.1 christos add %o4,%g5,%g2 359 1.1 christos stx %g5,[%sp+STACK_BIAS+STACK_FRAME+24] 360 1.1 christos srlx %o1,14,%o4 !! 3 361 1.1 christos xor %o2,%o3,%g5 362 1.1 christos sllx %o1,23,%g4 363 1.1 christos and %o1,%g5,%g5 364 1.1 christos srlx %o1,18,%g3 365 1.1 christos xor %g4,%o4,%o4 366 1.1 christos sllx %o1,46,%g4 367 1.1 christos xor %g3,%o4,%o4 368 1.1 christos srlx %o1,41,%g3 369 1.1 christos xor %g4,%o4,%o4 370 1.1 christos sllx %o1,50,%g4 371 1.1 christos xor %g3,%o4,%o4 372 1.1 christos xor %o3,%g5,%g5 ! Ch(e,f,g) 373 1.1 christos xor %g4,%o4,%g3 ! Sigma1(e) 374 1.1 christos 375 1.1 christos srlx %o5,28,%o4 376 1.1 christos add %g5,%g2,%g2 377 1.1 christos ldx [%i3+24],%g5 ! K[3] 378 1.1 christos sllx %o5,25,%g4 379 1.1 christos add %g3,%g2,%g2 380 1.1 christos srlx %o5,34,%g3 381 1.1 christos xor %g4,%o4,%o4 382 1.1 christos sllx %o5,30,%g4 383 1.1 christos xor %g3,%o4,%o4 384 1.1 christos srlx %o5,39,%g3 385 1.1 christos xor %g4,%o4,%o4 386 1.1 christos sllx %o5,36,%g4 387 1.1 christos xor %g3,%o4,%o4 388 1.1 christos xor %g4,%o4,%o4 ! Sigma0(a) 389 1.1 christos 390 1.1 christos or %o5,%g1,%g3 391 1.1 christos and %o5,%g1,%g4 392 1.1 christos and %o7,%g3,%g3 393 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 394 1.1 christos add %g5,%g2,%g2 ! +=K[3] 395 1.1 christos add %g4,%o4,%o4 396 1.1 christos 397 1.1 christos add %g2,%o0,%o0 398 1.1 christos add %g2,%o4,%o4 399 1.1 christos sllx %l1,%i4,%g5 ! Xload(4) 400 1.1 christos add %i4,32,%g3 401 1.1 christos sllx %l0,%g3,%g4 402 1.1 christos ld [%i1+64],%l0 403 1.1 christos srlx %l2,%i5,%l1 404 1.1 christos or %g4,%g5,%g5 405 1.1 christos or %l1,%g5,%g5 406 1.1 christos ld [%i1+68],%l1 407 1.1 christos add %o3,%g5,%g2 408 1.1 christos stx %g5,[%sp+STACK_BIAS+STACK_FRAME+32] 409 1.1 christos srlx %o0,14,%o3 !! 4 410 1.1 christos xor %o1,%o2,%g5 411 1.1 christos sllx %o0,23,%g4 412 1.1 christos and %o0,%g5,%g5 413 1.1 christos srlx %o0,18,%g3 414 1.1 christos xor %g4,%o3,%o3 415 1.1 christos sllx %o0,46,%g4 416 1.1 christos xor %g3,%o3,%o3 417 1.1 christos srlx %o0,41,%g3 418 1.1 christos xor %g4,%o3,%o3 419 1.1 christos sllx %o0,50,%g4 420 1.1 christos xor %g3,%o3,%o3 421 1.1 christos xor %o2,%g5,%g5 ! Ch(e,f,g) 422 1.1 christos xor %g4,%o3,%g3 ! Sigma1(e) 423 1.1 christos 424 1.1 christos srlx %o4,28,%o3 425 1.1 christos add %g5,%g2,%g2 426 1.1 christos ldx [%i3+32],%g5 ! K[4] 427 1.1 christos sllx %o4,25,%g4 428 1.1 christos add %g3,%g2,%g2 429 1.1 christos srlx %o4,34,%g3 430 1.1 christos xor %g4,%o3,%o3 431 1.1 christos sllx %o4,30,%g4 432 1.1 christos xor %g3,%o3,%o3 433 1.1 christos srlx %o4,39,%g3 434 1.1 christos xor %g4,%o3,%o3 435 1.1 christos sllx %o4,36,%g4 436 1.1 christos xor %g3,%o3,%o3 437 1.1 christos xor %g4,%o3,%o3 ! Sigma0(a) 438 1.1 christos 439 1.1 christos or %o4,%o5,%g3 440 1.1 christos and %o4,%o5,%g4 441 1.1 christos and %g1,%g3,%g3 442 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 443 1.1 christos add %g5,%g2,%g2 ! +=K[4] 444 1.1 christos add %g4,%o3,%o3 445 1.1 christos 446 1.1 christos add %g2,%o7,%o7 447 1.1 christos add %g2,%o3,%o3 448 1.1 christos sllx %l3,%i4,%g5 ! Xload(5) 449 1.1 christos add %i4,32,%g3 450 1.1 christos sllx %l2,%g3,%g4 451 1.1 christos ld [%i1+72],%l2 452 1.1 christos srlx %l4,%i5,%l3 453 1.1 christos or %g4,%g5,%g5 454 1.1 christos or %l3,%g5,%g5 455 1.1 christos ld [%i1+76],%l3 456 1.1 christos add %o2,%g5,%g2 457 1.1 christos stx %g5,[%sp+STACK_BIAS+STACK_FRAME+40] 458 1.1 christos srlx %o7,14,%o2 !! 5 459 1.1 christos xor %o0,%o1,%g5 460 1.1 christos sllx %o7,23,%g4 461 1.1 christos and %o7,%g5,%g5 462 1.1 christos srlx %o7,18,%g3 463 1.1 christos xor %g4,%o2,%o2 464 1.1 christos sllx %o7,46,%g4 465 1.1 christos xor %g3,%o2,%o2 466 1.1 christos srlx %o7,41,%g3 467 1.1 christos xor %g4,%o2,%o2 468 1.1 christos sllx %o7,50,%g4 469 1.1 christos xor %g3,%o2,%o2 470 1.1 christos xor %o1,%g5,%g5 ! Ch(e,f,g) 471 1.1 christos xor %g4,%o2,%g3 ! Sigma1(e) 472 1.1 christos 473 1.1 christos srlx %o3,28,%o2 474 1.1 christos add %g5,%g2,%g2 475 1.1 christos ldx [%i3+40],%g5 ! K[5] 476 1.1 christos sllx %o3,25,%g4 477 1.1 christos add %g3,%g2,%g2 478 1.1 christos srlx %o3,34,%g3 479 1.1 christos xor %g4,%o2,%o2 480 1.1 christos sllx %o3,30,%g4 481 1.1 christos xor %g3,%o2,%o2 482 1.1 christos srlx %o3,39,%g3 483 1.1 christos xor %g4,%o2,%o2 484 1.1 christos sllx %o3,36,%g4 485 1.1 christos xor %g3,%o2,%o2 486 1.1 christos xor %g4,%o2,%o2 ! Sigma0(a) 487 1.1 christos 488 1.1 christos or %o3,%o4,%g3 489 1.1 christos and %o3,%o4,%g4 490 1.1 christos and %o5,%g3,%g3 491 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 492 1.1 christos add %g5,%g2,%g2 ! +=K[5] 493 1.1 christos add %g4,%o2,%o2 494 1.1 christos 495 1.1 christos add %g2,%g1,%g1 496 1.1 christos add %g2,%o2,%o2 497 1.1 christos sllx %l5,%i4,%g5 ! Xload(6) 498 1.1 christos add %i4,32,%g3 499 1.1 christos sllx %l4,%g3,%g4 500 1.1 christos ld [%i1+80],%l4 501 1.1 christos srlx %l6,%i5,%l5 502 1.1 christos or %g4,%g5,%g5 503 1.1 christos or %l5,%g5,%g5 504 1.1 christos ld [%i1+84],%l5 505 1.1 christos add %o1,%g5,%g2 506 1.1 christos stx %g5,[%sp+STACK_BIAS+STACK_FRAME+48] 507 1.1 christos srlx %g1,14,%o1 !! 6 508 1.1 christos xor %o7,%o0,%g5 509 1.1 christos sllx %g1,23,%g4 510 1.1 christos and %g1,%g5,%g5 511 1.1 christos srlx %g1,18,%g3 512 1.1 christos xor %g4,%o1,%o1 513 1.1 christos sllx %g1,46,%g4 514 1.1 christos xor %g3,%o1,%o1 515 1.1 christos srlx %g1,41,%g3 516 1.1 christos xor %g4,%o1,%o1 517 1.1 christos sllx %g1,50,%g4 518 1.1 christos xor %g3,%o1,%o1 519 1.1 christos xor %o0,%g5,%g5 ! Ch(e,f,g) 520 1.1 christos xor %g4,%o1,%g3 ! Sigma1(e) 521 1.1 christos 522 1.1 christos srlx %o2,28,%o1 523 1.1 christos add %g5,%g2,%g2 524 1.1 christos ldx [%i3+48],%g5 ! K[6] 525 1.1 christos sllx %o2,25,%g4 526 1.1 christos add %g3,%g2,%g2 527 1.1 christos srlx %o2,34,%g3 528 1.1 christos xor %g4,%o1,%o1 529 1.1 christos sllx %o2,30,%g4 530 1.1 christos xor %g3,%o1,%o1 531 1.1 christos srlx %o2,39,%g3 532 1.1 christos xor %g4,%o1,%o1 533 1.1 christos sllx %o2,36,%g4 534 1.1 christos xor %g3,%o1,%o1 535 1.1 christos xor %g4,%o1,%o1 ! Sigma0(a) 536 1.1 christos 537 1.1 christos or %o2,%o3,%g3 538 1.1 christos and %o2,%o3,%g4 539 1.1 christos and %o4,%g3,%g3 540 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 541 1.1 christos add %g5,%g2,%g2 ! +=K[6] 542 1.1 christos add %g4,%o1,%o1 543 1.1 christos 544 1.1 christos add %g2,%o5,%o5 545 1.1 christos add %g2,%o1,%o1 546 1.1 christos sllx %l7,%i4,%g5 ! Xload(7) 547 1.1 christos add %i4,32,%g3 548 1.1 christos sllx %l6,%g3,%g4 549 1.1 christos ld [%i1+88],%l6 550 1.1 christos srlx %l0,%i5,%l7 551 1.1 christos or %g4,%g5,%g5 552 1.1 christos or %l7,%g5,%g5 553 1.1 christos ld [%i1+92],%l7 554 1.1 christos add %o0,%g5,%g2 555 1.1 christos stx %g5,[%sp+STACK_BIAS+STACK_FRAME+56] 556 1.1 christos srlx %o5,14,%o0 !! 7 557 1.1 christos xor %g1,%o7,%g5 558 1.1 christos sllx %o5,23,%g4 559 1.1 christos and %o5,%g5,%g5 560 1.1 christos srlx %o5,18,%g3 561 1.1 christos xor %g4,%o0,%o0 562 1.1 christos sllx %o5,46,%g4 563 1.1 christos xor %g3,%o0,%o0 564 1.1 christos srlx %o5,41,%g3 565 1.1 christos xor %g4,%o0,%o0 566 1.1 christos sllx %o5,50,%g4 567 1.1 christos xor %g3,%o0,%o0 568 1.1 christos xor %o7,%g5,%g5 ! Ch(e,f,g) 569 1.1 christos xor %g4,%o0,%g3 ! Sigma1(e) 570 1.1 christos 571 1.1 christos srlx %o1,28,%o0 572 1.1 christos add %g5,%g2,%g2 573 1.1 christos ldx [%i3+56],%g5 ! K[7] 574 1.1 christos sllx %o1,25,%g4 575 1.1 christos add %g3,%g2,%g2 576 1.1 christos srlx %o1,34,%g3 577 1.1 christos xor %g4,%o0,%o0 578 1.1 christos sllx %o1,30,%g4 579 1.1 christos xor %g3,%o0,%o0 580 1.1 christos srlx %o1,39,%g3 581 1.1 christos xor %g4,%o0,%o0 582 1.1 christos sllx %o1,36,%g4 583 1.1 christos xor %g3,%o0,%o0 584 1.1 christos xor %g4,%o0,%o0 ! Sigma0(a) 585 1.1 christos 586 1.1 christos or %o1,%o2,%g3 587 1.1 christos and %o1,%o2,%g4 588 1.1 christos and %o3,%g3,%g3 589 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 590 1.1 christos add %g5,%g2,%g2 ! +=K[7] 591 1.1 christos add %g4,%o0,%o0 592 1.1 christos 593 1.1 christos add %g2,%o4,%o4 594 1.1 christos add %g2,%o0,%o0 595 1.1 christos sllx %l1,%i4,%g5 ! Xload(8) 596 1.1 christos add %i4,32,%g3 597 1.1 christos sllx %l0,%g3,%g4 598 1.1 christos ld [%i1+96],%l0 599 1.1 christos srlx %l2,%i5,%l1 600 1.1 christos or %g4,%g5,%g5 601 1.1 christos or %l1,%g5,%g5 602 1.1 christos ld [%i1+100],%l1 603 1.1 christos add %o7,%g5,%g2 604 1.1 christos stx %g5,[%sp+STACK_BIAS+STACK_FRAME+64] 605 1.1 christos srlx %o4,14,%o7 !! 8 606 1.1 christos xor %o5,%g1,%g5 607 1.1 christos sllx %o4,23,%g4 608 1.1 christos and %o4,%g5,%g5 609 1.1 christos srlx %o4,18,%g3 610 1.1 christos xor %g4,%o7,%o7 611 1.1 christos sllx %o4,46,%g4 612 1.1 christos xor %g3,%o7,%o7 613 1.1 christos srlx %o4,41,%g3 614 1.1 christos xor %g4,%o7,%o7 615 1.1 christos sllx %o4,50,%g4 616 1.1 christos xor %g3,%o7,%o7 617 1.1 christos xor %g1,%g5,%g5 ! Ch(e,f,g) 618 1.1 christos xor %g4,%o7,%g3 ! Sigma1(e) 619 1.1 christos 620 1.1 christos srlx %o0,28,%o7 621 1.1 christos add %g5,%g2,%g2 622 1.1 christos ldx [%i3+64],%g5 ! K[8] 623 1.1 christos sllx %o0,25,%g4 624 1.1 christos add %g3,%g2,%g2 625 1.1 christos srlx %o0,34,%g3 626 1.1 christos xor %g4,%o7,%o7 627 1.1 christos sllx %o0,30,%g4 628 1.1 christos xor %g3,%o7,%o7 629 1.1 christos srlx %o0,39,%g3 630 1.1 christos xor %g4,%o7,%o7 631 1.1 christos sllx %o0,36,%g4 632 1.1 christos xor %g3,%o7,%o7 633 1.1 christos xor %g4,%o7,%o7 ! Sigma0(a) 634 1.1 christos 635 1.1 christos or %o0,%o1,%g3 636 1.1 christos and %o0,%o1,%g4 637 1.1 christos and %o2,%g3,%g3 638 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 639 1.1 christos add %g5,%g2,%g2 ! +=K[8] 640 1.1 christos add %g4,%o7,%o7 641 1.1 christos 642 1.1 christos add %g2,%o3,%o3 643 1.1 christos add %g2,%o7,%o7 644 1.1 christos sllx %l3,%i4,%g5 ! Xload(9) 645 1.1 christos add %i4,32,%g3 646 1.1 christos sllx %l2,%g3,%g4 647 1.1 christos ld [%i1+104],%l2 648 1.1 christos srlx %l4,%i5,%l3 649 1.1 christos or %g4,%g5,%g5 650 1.1 christos or %l3,%g5,%g5 651 1.1 christos ld [%i1+108],%l3 652 1.1 christos add %g1,%g5,%g2 653 1.1 christos stx %g5,[%sp+STACK_BIAS+STACK_FRAME+72] 654 1.1 christos srlx %o3,14,%g1 !! 9 655 1.1 christos xor %o4,%o5,%g5 656 1.1 christos sllx %o3,23,%g4 657 1.1 christos and %o3,%g5,%g5 658 1.1 christos srlx %o3,18,%g3 659 1.1 christos xor %g4,%g1,%g1 660 1.1 christos sllx %o3,46,%g4 661 1.1 christos xor %g3,%g1,%g1 662 1.1 christos srlx %o3,41,%g3 663 1.1 christos xor %g4,%g1,%g1 664 1.1 christos sllx %o3,50,%g4 665 1.1 christos xor %g3,%g1,%g1 666 1.1 christos xor %o5,%g5,%g5 ! Ch(e,f,g) 667 1.1 christos xor %g4,%g1,%g3 ! Sigma1(e) 668 1.1 christos 669 1.1 christos srlx %o7,28,%g1 670 1.1 christos add %g5,%g2,%g2 671 1.1 christos ldx [%i3+72],%g5 ! K[9] 672 1.1 christos sllx %o7,25,%g4 673 1.1 christos add %g3,%g2,%g2 674 1.1 christos srlx %o7,34,%g3 675 1.1 christos xor %g4,%g1,%g1 676 1.1 christos sllx %o7,30,%g4 677 1.1 christos xor %g3,%g1,%g1 678 1.1 christos srlx %o7,39,%g3 679 1.1 christos xor %g4,%g1,%g1 680 1.1 christos sllx %o7,36,%g4 681 1.1 christos xor %g3,%g1,%g1 682 1.1 christos xor %g4,%g1,%g1 ! Sigma0(a) 683 1.1 christos 684 1.1 christos or %o7,%o0,%g3 685 1.1 christos and %o7,%o0,%g4 686 1.1 christos and %o1,%g3,%g3 687 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 688 1.1 christos add %g5,%g2,%g2 ! +=K[9] 689 1.1 christos add %g4,%g1,%g1 690 1.1 christos 691 1.1 christos add %g2,%o2,%o2 692 1.1 christos add %g2,%g1,%g1 693 1.1 christos sllx %l5,%i4,%g5 ! Xload(10) 694 1.1 christos add %i4,32,%g3 695 1.1 christos sllx %l4,%g3,%g4 696 1.1 christos ld [%i1+112],%l4 697 1.1 christos srlx %l6,%i5,%l5 698 1.1 christos or %g4,%g5,%g5 699 1.1 christos or %l5,%g5,%g5 700 1.1 christos ld [%i1+116],%l5 701 1.1 christos add %o5,%g5,%g2 702 1.1 christos stx %g5,[%sp+STACK_BIAS+STACK_FRAME+80] 703 1.1 christos srlx %o2,14,%o5 !! 10 704 1.1 christos xor %o3,%o4,%g5 705 1.1 christos sllx %o2,23,%g4 706 1.1 christos and %o2,%g5,%g5 707 1.1 christos srlx %o2,18,%g3 708 1.1 christos xor %g4,%o5,%o5 709 1.1 christos sllx %o2,46,%g4 710 1.1 christos xor %g3,%o5,%o5 711 1.1 christos srlx %o2,41,%g3 712 1.1 christos xor %g4,%o5,%o5 713 1.1 christos sllx %o2,50,%g4 714 1.1 christos xor %g3,%o5,%o5 715 1.1 christos xor %o4,%g5,%g5 ! Ch(e,f,g) 716 1.1 christos xor %g4,%o5,%g3 ! Sigma1(e) 717 1.1 christos 718 1.1 christos srlx %g1,28,%o5 719 1.1 christos add %g5,%g2,%g2 720 1.1 christos ldx [%i3+80],%g5 ! K[10] 721 1.1 christos sllx %g1,25,%g4 722 1.1 christos add %g3,%g2,%g2 723 1.1 christos srlx %g1,34,%g3 724 1.1 christos xor %g4,%o5,%o5 725 1.1 christos sllx %g1,30,%g4 726 1.1 christos xor %g3,%o5,%o5 727 1.1 christos srlx %g1,39,%g3 728 1.1 christos xor %g4,%o5,%o5 729 1.1 christos sllx %g1,36,%g4 730 1.1 christos xor %g3,%o5,%o5 731 1.1 christos xor %g4,%o5,%o5 ! Sigma0(a) 732 1.1 christos 733 1.1 christos or %g1,%o7,%g3 734 1.1 christos and %g1,%o7,%g4 735 1.1 christos and %o0,%g3,%g3 736 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 737 1.1 christos add %g5,%g2,%g2 ! +=K[10] 738 1.1 christos add %g4,%o5,%o5 739 1.1 christos 740 1.1 christos add %g2,%o1,%o1 741 1.1 christos add %g2,%o5,%o5 742 1.1 christos sllx %l7,%i4,%g5 ! Xload(11) 743 1.1 christos add %i4,32,%g3 744 1.1 christos sllx %l6,%g3,%g4 745 1.1 christos ld [%i1+120],%l6 746 1.1 christos srlx %l0,%i5,%l7 747 1.1 christos or %g4,%g5,%g5 748 1.1 christos or %l7,%g5,%g5 749 1.1 christos ld [%i1+124],%l7 750 1.1 christos add %o4,%g5,%g2 751 1.1 christos stx %g5,[%sp+STACK_BIAS+STACK_FRAME+88] 752 1.1 christos srlx %o1,14,%o4 !! 11 753 1.1 christos xor %o2,%o3,%g5 754 1.1 christos sllx %o1,23,%g4 755 1.1 christos and %o1,%g5,%g5 756 1.1 christos srlx %o1,18,%g3 757 1.1 christos xor %g4,%o4,%o4 758 1.1 christos sllx %o1,46,%g4 759 1.1 christos xor %g3,%o4,%o4 760 1.1 christos srlx %o1,41,%g3 761 1.1 christos xor %g4,%o4,%o4 762 1.1 christos sllx %o1,50,%g4 763 1.1 christos xor %g3,%o4,%o4 764 1.1 christos xor %o3,%g5,%g5 ! Ch(e,f,g) 765 1.1 christos xor %g4,%o4,%g3 ! Sigma1(e) 766 1.1 christos 767 1.1 christos srlx %o5,28,%o4 768 1.1 christos add %g5,%g2,%g2 769 1.1 christos ldx [%i3+88],%g5 ! K[11] 770 1.1 christos sllx %o5,25,%g4 771 1.1 christos add %g3,%g2,%g2 772 1.1 christos srlx %o5,34,%g3 773 1.1 christos xor %g4,%o4,%o4 774 1.1 christos sllx %o5,30,%g4 775 1.1 christos xor %g3,%o4,%o4 776 1.1 christos srlx %o5,39,%g3 777 1.1 christos xor %g4,%o4,%o4 778 1.1 christos sllx %o5,36,%g4 779 1.1 christos xor %g3,%o4,%o4 780 1.1 christos xor %g4,%o4,%o4 ! Sigma0(a) 781 1.1 christos 782 1.1 christos or %o5,%g1,%g3 783 1.1 christos and %o5,%g1,%g4 784 1.1 christos and %o7,%g3,%g3 785 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 786 1.1 christos add %g5,%g2,%g2 ! +=K[11] 787 1.1 christos add %g4,%o4,%o4 788 1.1 christos 789 1.1 christos add %g2,%o0,%o0 790 1.1 christos add %g2,%o4,%o4 791 1.1 christos sllx %l1,%i4,%g5 ! Xload(12) 792 1.1 christos add %i4,32,%g3 793 1.1 christos sllx %l0,%g3,%g4 794 1.1 christos 795 1.1 christos srlx %l2,%i5,%l1 796 1.1 christos or %g4,%g5,%g5 797 1.1 christos or %l1,%g5,%g5 798 1.1 christos 799 1.1 christos add %o3,%g5,%g2 800 1.1 christos stx %g5,[%sp+STACK_BIAS+STACK_FRAME+96] 801 1.1 christos bnz,a,pn %icc,.+8 802 1.1 christos ld [%i1+128],%l0 803 1.1 christos srlx %o0,14,%o3 !! 12 804 1.1 christos xor %o1,%o2,%g5 805 1.1 christos sllx %o0,23,%g4 806 1.1 christos and %o0,%g5,%g5 807 1.1 christos srlx %o0,18,%g3 808 1.1 christos xor %g4,%o3,%o3 809 1.1 christos sllx %o0,46,%g4 810 1.1 christos xor %g3,%o3,%o3 811 1.1 christos srlx %o0,41,%g3 812 1.1 christos xor %g4,%o3,%o3 813 1.1 christos sllx %o0,50,%g4 814 1.1 christos xor %g3,%o3,%o3 815 1.1 christos xor %o2,%g5,%g5 ! Ch(e,f,g) 816 1.1 christos xor %g4,%o3,%g3 ! Sigma1(e) 817 1.1 christos 818 1.1 christos srlx %o4,28,%o3 819 1.1 christos add %g5,%g2,%g2 820 1.1 christos ldx [%i3+96],%g5 ! K[12] 821 1.1 christos sllx %o4,25,%g4 822 1.1 christos add %g3,%g2,%g2 823 1.1 christos srlx %o4,34,%g3 824 1.1 christos xor %g4,%o3,%o3 825 1.1 christos sllx %o4,30,%g4 826 1.1 christos xor %g3,%o3,%o3 827 1.1 christos srlx %o4,39,%g3 828 1.1 christos xor %g4,%o3,%o3 829 1.1 christos sllx %o4,36,%g4 830 1.1 christos xor %g3,%o3,%o3 831 1.1 christos xor %g4,%o3,%o3 ! Sigma0(a) 832 1.1 christos 833 1.1 christos or %o4,%o5,%g3 834 1.1 christos and %o4,%o5,%g4 835 1.1 christos and %g1,%g3,%g3 836 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 837 1.1 christos add %g5,%g2,%g2 ! +=K[12] 838 1.1 christos add %g4,%o3,%o3 839 1.1 christos 840 1.1 christos add %g2,%o7,%o7 841 1.1 christos add %g2,%o3,%o3 842 1.1 christos sllx %l3,%i4,%g5 ! Xload(13) 843 1.1 christos add %i4,32,%g3 844 1.1 christos sllx %l2,%g3,%g4 845 1.1 christos 846 1.1 christos srlx %l4,%i5,%l3 847 1.1 christos or %g4,%g5,%g5 848 1.1 christos or %l3,%g5,%g5 849 1.1 christos 850 1.1 christos add %o2,%g5,%g2 851 1.1 christos stx %g5,[%sp+STACK_BIAS+STACK_FRAME+104] 852 1.1 christos srlx %o7,14,%o2 !! 13 853 1.1 christos xor %o0,%o1,%g5 854 1.1 christos sllx %o7,23,%g4 855 1.1 christos and %o7,%g5,%g5 856 1.1 christos srlx %o7,18,%g3 857 1.1 christos xor %g4,%o2,%o2 858 1.1 christos sllx %o7,46,%g4 859 1.1 christos xor %g3,%o2,%o2 860 1.1 christos srlx %o7,41,%g3 861 1.1 christos xor %g4,%o2,%o2 862 1.1 christos sllx %o7,50,%g4 863 1.1 christos xor %g3,%o2,%o2 864 1.1 christos xor %o1,%g5,%g5 ! Ch(e,f,g) 865 1.1 christos xor %g4,%o2,%g3 ! Sigma1(e) 866 1.1 christos 867 1.1 christos srlx %o3,28,%o2 868 1.1 christos add %g5,%g2,%g2 869 1.1 christos ldx [%i3+104],%g5 ! K[13] 870 1.1 christos sllx %o3,25,%g4 871 1.1 christos add %g3,%g2,%g2 872 1.1 christos srlx %o3,34,%g3 873 1.1 christos xor %g4,%o2,%o2 874 1.1 christos sllx %o3,30,%g4 875 1.1 christos xor %g3,%o2,%o2 876 1.1 christos srlx %o3,39,%g3 877 1.1 christos xor %g4,%o2,%o2 878 1.1 christos sllx %o3,36,%g4 879 1.1 christos xor %g3,%o2,%o2 880 1.1 christos xor %g4,%o2,%o2 ! Sigma0(a) 881 1.1 christos 882 1.1 christos or %o3,%o4,%g3 883 1.1 christos and %o3,%o4,%g4 884 1.1 christos and %o5,%g3,%g3 885 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 886 1.1 christos add %g5,%g2,%g2 ! +=K[13] 887 1.1 christos add %g4,%o2,%o2 888 1.1 christos 889 1.1 christos add %g2,%g1,%g1 890 1.1 christos add %g2,%o2,%o2 891 1.1 christos sllx %l5,%i4,%g5 ! Xload(14) 892 1.1 christos add %i4,32,%g3 893 1.1 christos sllx %l4,%g3,%g4 894 1.1 christos 895 1.1 christos srlx %l6,%i5,%l5 896 1.1 christos or %g4,%g5,%g5 897 1.1 christos or %l5,%g5,%g5 898 1.1 christos 899 1.1 christos add %o1,%g5,%g2 900 1.1 christos stx %g5,[%sp+STACK_BIAS+STACK_FRAME+112] 901 1.1 christos srlx %g1,14,%o1 !! 14 902 1.1 christos xor %o7,%o0,%g5 903 1.1 christos sllx %g1,23,%g4 904 1.1 christos and %g1,%g5,%g5 905 1.1 christos srlx %g1,18,%g3 906 1.1 christos xor %g4,%o1,%o1 907 1.1 christos sllx %g1,46,%g4 908 1.1 christos xor %g3,%o1,%o1 909 1.1 christos srlx %g1,41,%g3 910 1.1 christos xor %g4,%o1,%o1 911 1.1 christos sllx %g1,50,%g4 912 1.1 christos xor %g3,%o1,%o1 913 1.1 christos xor %o0,%g5,%g5 ! Ch(e,f,g) 914 1.1 christos xor %g4,%o1,%g3 ! Sigma1(e) 915 1.1 christos 916 1.1 christos srlx %o2,28,%o1 917 1.1 christos add %g5,%g2,%g2 918 1.1 christos ldx [%i3+112],%g5 ! K[14] 919 1.1 christos sllx %o2,25,%g4 920 1.1 christos add %g3,%g2,%g2 921 1.1 christos srlx %o2,34,%g3 922 1.1 christos xor %g4,%o1,%o1 923 1.1 christos sllx %o2,30,%g4 924 1.1 christos xor %g3,%o1,%o1 925 1.1 christos srlx %o2,39,%g3 926 1.1 christos xor %g4,%o1,%o1 927 1.1 christos sllx %o2,36,%g4 928 1.1 christos xor %g3,%o1,%o1 929 1.1 christos xor %g4,%o1,%o1 ! Sigma0(a) 930 1.1 christos 931 1.1 christos or %o2,%o3,%g3 932 1.1 christos and %o2,%o3,%g4 933 1.1 christos and %o4,%g3,%g3 934 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 935 1.1 christos add %g5,%g2,%g2 ! +=K[14] 936 1.1 christos add %g4,%o1,%o1 937 1.1 christos 938 1.1 christos add %g2,%o5,%o5 939 1.1 christos add %g2,%o1,%o1 940 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+8],%l2 941 1.1 christos sllx %l7,%i4,%g5 ! Xload(15) 942 1.1 christos add %i4,32,%g3 943 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+12],%l3 944 1.1 christos sllx %l6,%g3,%g4 945 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+72],%l4 946 1.1 christos srlx %l0,%i5,%l7 947 1.1 christos or %g4,%g5,%g5 948 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+76],%l5 949 1.1 christos or %l7,%g5,%g5 950 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+112],%l6 951 1.1 christos add %o0,%g5,%g2 952 1.1 christos stx %g5,[%sp+STACK_BIAS+STACK_FRAME+120] 953 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+116],%l7 954 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+0],%l0 955 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+4],%l1 956 1.1 christos srlx %o5,14,%o0 !! 15 957 1.1 christos xor %g1,%o7,%g5 958 1.1 christos sllx %o5,23,%g4 959 1.1 christos and %o5,%g5,%g5 960 1.1 christos srlx %o5,18,%g3 961 1.1 christos xor %g4,%o0,%o0 962 1.1 christos sllx %o5,46,%g4 963 1.1 christos xor %g3,%o0,%o0 964 1.1 christos srlx %o5,41,%g3 965 1.1 christos xor %g4,%o0,%o0 966 1.1 christos sllx %o5,50,%g4 967 1.1 christos xor %g3,%o0,%o0 968 1.1 christos xor %o7,%g5,%g5 ! Ch(e,f,g) 969 1.1 christos xor %g4,%o0,%g3 ! Sigma1(e) 970 1.1 christos 971 1.1 christos srlx %o1,28,%o0 972 1.1 christos add %g5,%g2,%g2 973 1.1 christos ldx [%i3+120],%g5 ! K[15] 974 1.1 christos sllx %o1,25,%g4 975 1.1 christos add %g3,%g2,%g2 976 1.1 christos srlx %o1,34,%g3 977 1.1 christos xor %g4,%o0,%o0 978 1.1 christos sllx %o1,30,%g4 979 1.1 christos xor %g3,%o0,%o0 980 1.1 christos srlx %o1,39,%g3 981 1.1 christos xor %g4,%o0,%o0 982 1.1 christos sllx %o1,36,%g4 983 1.1 christos xor %g3,%o0,%o0 984 1.1 christos xor %g4,%o0,%o0 ! Sigma0(a) 985 1.1 christos 986 1.1 christos or %o1,%o2,%g3 987 1.1 christos and %o1,%o2,%g4 988 1.1 christos and %o3,%g3,%g3 989 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 990 1.1 christos add %g5,%g2,%g2 ! +=K[15] 991 1.1 christos add %g4,%o0,%o0 992 1.1 christos 993 1.1 christos add %g2,%o4,%o4 994 1.1 christos add %g2,%o0,%o0 995 1.1 christos .L16_xx: 996 1.1 christos sllx %l2,32,%g3 !! Xupdate(16) 997 1.1 christos or %l3,%g3,%g3 998 1.1 christos 999 1.1 christos srlx %g3,7,%g2 1000 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+16],%l2 1001 1.1 christos sllx %g3,56,%g4 1002 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+20],%l3 1003 1.1 christos srlx %g3,1,%g3 1004 1.1 christos xor %g4,%g2,%g2 1005 1.1 christos sllx %g4,7,%g4 1006 1.1 christos xor %g3,%g2,%g2 1007 1.1 christos srlx %g3,7,%g3 1008 1.1 christos xor %g4,%g2,%g2 1009 1.1 christos sllx %l6,32,%g5 1010 1.1 christos xor %g3,%g2,%g2 ! sigma0(X[16+1]) 1011 1.1 christos or %l7,%g5,%g5 1012 1.1 christos 1013 1.1 christos srlx %g5,6,%g4 1014 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+120],%l6 1015 1.1 christos sllx %g5,3,%g3 1016 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+124],%l7 1017 1.1 christos srlx %g5,19,%g5 1018 1.1 christos xor %g3,%g4,%g4 1019 1.1 christos sllx %g3,42,%g3 1020 1.1 christos xor %g5,%g4,%g4 1021 1.1 christos srlx %g5,42,%g5 1022 1.1 christos xor %g3,%g4,%g4 1023 1.1 christos sllx %l4,32,%g3 1024 1.1 christos xor %g5,%g4,%g4 ! sigma1(X[16+14]) 1025 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+80],%l4 1026 1.1 christos or %l5,%g3,%g3 1027 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+84],%l5 1028 1.1 christos 1029 1.1 christos sllx %l0,32,%g5 1030 1.1 christos add %g4,%g2,%g2 1031 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+8],%l0 1032 1.1 christos or %l1,%g5,%g5 1033 1.1 christos add %g3,%g2,%g2 ! +=X[16+9] 1034 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+12],%l1 1035 1.1 christos add %g5,%g2,%g2 ! +=X[16] 1036 1.1 christos stx %g2,[%sp+STACK_BIAS+STACK_FRAME+0] 1037 1.1 christos add %o7,%g2,%g2 1038 1.1 christos srlx %o4,14,%o7 !! 16 1039 1.1 christos xor %o5,%g1,%g5 1040 1.1 christos sllx %o4,23,%g4 1041 1.1 christos and %o4,%g5,%g5 1042 1.1 christos srlx %o4,18,%g3 1043 1.1 christos xor %g4,%o7,%o7 1044 1.1 christos sllx %o4,46,%g4 1045 1.1 christos xor %g3,%o7,%o7 1046 1.1 christos srlx %o4,41,%g3 1047 1.1 christos xor %g4,%o7,%o7 1048 1.1 christos sllx %o4,50,%g4 1049 1.1 christos xor %g3,%o7,%o7 1050 1.1 christos xor %g1,%g5,%g5 ! Ch(e,f,g) 1051 1.1 christos xor %g4,%o7,%g3 ! Sigma1(e) 1052 1.1 christos 1053 1.1 christos srlx %o0,28,%o7 1054 1.1 christos add %g5,%g2,%g2 1055 1.1 christos ldx [%i3+128],%g5 ! K[16] 1056 1.1 christos sllx %o0,25,%g4 1057 1.1 christos add %g3,%g2,%g2 1058 1.1 christos srlx %o0,34,%g3 1059 1.1 christos xor %g4,%o7,%o7 1060 1.1 christos sllx %o0,30,%g4 1061 1.1 christos xor %g3,%o7,%o7 1062 1.1 christos srlx %o0,39,%g3 1063 1.1 christos xor %g4,%o7,%o7 1064 1.1 christos sllx %o0,36,%g4 1065 1.1 christos xor %g3,%o7,%o7 1066 1.1 christos xor %g4,%o7,%o7 ! Sigma0(a) 1067 1.1 christos 1068 1.1 christos or %o0,%o1,%g3 1069 1.1 christos and %o0,%o1,%g4 1070 1.1 christos and %o2,%g3,%g3 1071 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 1072 1.1 christos add %g5,%g2,%g2 ! +=K[16] 1073 1.1 christos add %g4,%o7,%o7 1074 1.1 christos 1075 1.1 christos add %g2,%o3,%o3 1076 1.1 christos add %g2,%o7,%o7 1077 1.1 christos sllx %l2,32,%g3 !! Xupdate(17) 1078 1.1 christos or %l3,%g3,%g3 1079 1.1 christos 1080 1.1 christos srlx %g3,7,%g2 1081 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+24],%l2 1082 1.1 christos sllx %g3,56,%g4 1083 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+28],%l3 1084 1.1 christos srlx %g3,1,%g3 1085 1.1 christos xor %g4,%g2,%g2 1086 1.1 christos sllx %g4,7,%g4 1087 1.1 christos xor %g3,%g2,%g2 1088 1.1 christos srlx %g3,7,%g3 1089 1.1 christos xor %g4,%g2,%g2 1090 1.1 christos sllx %l6,32,%g5 1091 1.1 christos xor %g3,%g2,%g2 ! sigma0(X[17+1]) 1092 1.1 christos or %l7,%g5,%g5 1093 1.1 christos 1094 1.1 christos srlx %g5,6,%g4 1095 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+0],%l6 1096 1.1 christos sllx %g5,3,%g3 1097 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+4],%l7 1098 1.1 christos srlx %g5,19,%g5 1099 1.1 christos xor %g3,%g4,%g4 1100 1.1 christos sllx %g3,42,%g3 1101 1.1 christos xor %g5,%g4,%g4 1102 1.1 christos srlx %g5,42,%g5 1103 1.1 christos xor %g3,%g4,%g4 1104 1.1 christos sllx %l4,32,%g3 1105 1.1 christos xor %g5,%g4,%g4 ! sigma1(X[17+14]) 1106 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+88],%l4 1107 1.1 christos or %l5,%g3,%g3 1108 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+92],%l5 1109 1.1 christos 1110 1.1 christos sllx %l0,32,%g5 1111 1.1 christos add %g4,%g2,%g2 1112 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+16],%l0 1113 1.1 christos or %l1,%g5,%g5 1114 1.1 christos add %g3,%g2,%g2 ! +=X[17+9] 1115 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+20],%l1 1116 1.1 christos add %g5,%g2,%g2 ! +=X[17] 1117 1.1 christos stx %g2,[%sp+STACK_BIAS+STACK_FRAME+8] 1118 1.1 christos add %g1,%g2,%g2 1119 1.1 christos srlx %o3,14,%g1 !! 17 1120 1.1 christos xor %o4,%o5,%g5 1121 1.1 christos sllx %o3,23,%g4 1122 1.1 christos and %o3,%g5,%g5 1123 1.1 christos srlx %o3,18,%g3 1124 1.1 christos xor %g4,%g1,%g1 1125 1.1 christos sllx %o3,46,%g4 1126 1.1 christos xor %g3,%g1,%g1 1127 1.1 christos srlx %o3,41,%g3 1128 1.1 christos xor %g4,%g1,%g1 1129 1.1 christos sllx %o3,50,%g4 1130 1.1 christos xor %g3,%g1,%g1 1131 1.1 christos xor %o5,%g5,%g5 ! Ch(e,f,g) 1132 1.1 christos xor %g4,%g1,%g3 ! Sigma1(e) 1133 1.1 christos 1134 1.1 christos srlx %o7,28,%g1 1135 1.1 christos add %g5,%g2,%g2 1136 1.1 christos ldx [%i3+136],%g5 ! K[17] 1137 1.1 christos sllx %o7,25,%g4 1138 1.1 christos add %g3,%g2,%g2 1139 1.1 christos srlx %o7,34,%g3 1140 1.1 christos xor %g4,%g1,%g1 1141 1.1 christos sllx %o7,30,%g4 1142 1.1 christos xor %g3,%g1,%g1 1143 1.1 christos srlx %o7,39,%g3 1144 1.1 christos xor %g4,%g1,%g1 1145 1.1 christos sllx %o7,36,%g4 1146 1.1 christos xor %g3,%g1,%g1 1147 1.1 christos xor %g4,%g1,%g1 ! Sigma0(a) 1148 1.1 christos 1149 1.1 christos or %o7,%o0,%g3 1150 1.1 christos and %o7,%o0,%g4 1151 1.1 christos and %o1,%g3,%g3 1152 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 1153 1.1 christos add %g5,%g2,%g2 ! +=K[17] 1154 1.1 christos add %g4,%g1,%g1 1155 1.1 christos 1156 1.1 christos add %g2,%o2,%o2 1157 1.1 christos add %g2,%g1,%g1 1158 1.1 christos sllx %l2,32,%g3 !! Xupdate(18) 1159 1.1 christos or %l3,%g3,%g3 1160 1.1 christos 1161 1.1 christos srlx %g3,7,%g2 1162 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+32],%l2 1163 1.1 christos sllx %g3,56,%g4 1164 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+36],%l3 1165 1.1 christos srlx %g3,1,%g3 1166 1.1 christos xor %g4,%g2,%g2 1167 1.1 christos sllx %g4,7,%g4 1168 1.1 christos xor %g3,%g2,%g2 1169 1.1 christos srlx %g3,7,%g3 1170 1.1 christos xor %g4,%g2,%g2 1171 1.1 christos sllx %l6,32,%g5 1172 1.1 christos xor %g3,%g2,%g2 ! sigma0(X[18+1]) 1173 1.1 christos or %l7,%g5,%g5 1174 1.1 christos 1175 1.1 christos srlx %g5,6,%g4 1176 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+8],%l6 1177 1.1 christos sllx %g5,3,%g3 1178 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+12],%l7 1179 1.1 christos srlx %g5,19,%g5 1180 1.1 christos xor %g3,%g4,%g4 1181 1.1 christos sllx %g3,42,%g3 1182 1.1 christos xor %g5,%g4,%g4 1183 1.1 christos srlx %g5,42,%g5 1184 1.1 christos xor %g3,%g4,%g4 1185 1.1 christos sllx %l4,32,%g3 1186 1.1 christos xor %g5,%g4,%g4 ! sigma1(X[18+14]) 1187 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+96],%l4 1188 1.1 christos or %l5,%g3,%g3 1189 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+100],%l5 1190 1.1 christos 1191 1.1 christos sllx %l0,32,%g5 1192 1.1 christos add %g4,%g2,%g2 1193 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+24],%l0 1194 1.1 christos or %l1,%g5,%g5 1195 1.1 christos add %g3,%g2,%g2 ! +=X[18+9] 1196 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+28],%l1 1197 1.1 christos add %g5,%g2,%g2 ! +=X[18] 1198 1.1 christos stx %g2,[%sp+STACK_BIAS+STACK_FRAME+16] 1199 1.1 christos add %o5,%g2,%g2 1200 1.1 christos srlx %o2,14,%o5 !! 18 1201 1.1 christos xor %o3,%o4,%g5 1202 1.1 christos sllx %o2,23,%g4 1203 1.1 christos and %o2,%g5,%g5 1204 1.1 christos srlx %o2,18,%g3 1205 1.1 christos xor %g4,%o5,%o5 1206 1.1 christos sllx %o2,46,%g4 1207 1.1 christos xor %g3,%o5,%o5 1208 1.1 christos srlx %o2,41,%g3 1209 1.1 christos xor %g4,%o5,%o5 1210 1.1 christos sllx %o2,50,%g4 1211 1.1 christos xor %g3,%o5,%o5 1212 1.1 christos xor %o4,%g5,%g5 ! Ch(e,f,g) 1213 1.1 christos xor %g4,%o5,%g3 ! Sigma1(e) 1214 1.1 christos 1215 1.1 christos srlx %g1,28,%o5 1216 1.1 christos add %g5,%g2,%g2 1217 1.1 christos ldx [%i3+144],%g5 ! K[18] 1218 1.1 christos sllx %g1,25,%g4 1219 1.1 christos add %g3,%g2,%g2 1220 1.1 christos srlx %g1,34,%g3 1221 1.1 christos xor %g4,%o5,%o5 1222 1.1 christos sllx %g1,30,%g4 1223 1.1 christos xor %g3,%o5,%o5 1224 1.1 christos srlx %g1,39,%g3 1225 1.1 christos xor %g4,%o5,%o5 1226 1.1 christos sllx %g1,36,%g4 1227 1.1 christos xor %g3,%o5,%o5 1228 1.1 christos xor %g4,%o5,%o5 ! Sigma0(a) 1229 1.1 christos 1230 1.1 christos or %g1,%o7,%g3 1231 1.1 christos and %g1,%o7,%g4 1232 1.1 christos and %o0,%g3,%g3 1233 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 1234 1.1 christos add %g5,%g2,%g2 ! +=K[18] 1235 1.1 christos add %g4,%o5,%o5 1236 1.1 christos 1237 1.1 christos add %g2,%o1,%o1 1238 1.1 christos add %g2,%o5,%o5 1239 1.1 christos sllx %l2,32,%g3 !! Xupdate(19) 1240 1.1 christos or %l3,%g3,%g3 1241 1.1 christos 1242 1.1 christos srlx %g3,7,%g2 1243 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+40],%l2 1244 1.1 christos sllx %g3,56,%g4 1245 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+44],%l3 1246 1.1 christos srlx %g3,1,%g3 1247 1.1 christos xor %g4,%g2,%g2 1248 1.1 christos sllx %g4,7,%g4 1249 1.1 christos xor %g3,%g2,%g2 1250 1.1 christos srlx %g3,7,%g3 1251 1.1 christos xor %g4,%g2,%g2 1252 1.1 christos sllx %l6,32,%g5 1253 1.1 christos xor %g3,%g2,%g2 ! sigma0(X[19+1]) 1254 1.1 christos or %l7,%g5,%g5 1255 1.1 christos 1256 1.1 christos srlx %g5,6,%g4 1257 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+16],%l6 1258 1.1 christos sllx %g5,3,%g3 1259 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+20],%l7 1260 1.1 christos srlx %g5,19,%g5 1261 1.1 christos xor %g3,%g4,%g4 1262 1.1 christos sllx %g3,42,%g3 1263 1.1 christos xor %g5,%g4,%g4 1264 1.1 christos srlx %g5,42,%g5 1265 1.1 christos xor %g3,%g4,%g4 1266 1.1 christos sllx %l4,32,%g3 1267 1.1 christos xor %g5,%g4,%g4 ! sigma1(X[19+14]) 1268 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+104],%l4 1269 1.1 christos or %l5,%g3,%g3 1270 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+108],%l5 1271 1.1 christos 1272 1.1 christos sllx %l0,32,%g5 1273 1.1 christos add %g4,%g2,%g2 1274 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+32],%l0 1275 1.1 christos or %l1,%g5,%g5 1276 1.1 christos add %g3,%g2,%g2 ! +=X[19+9] 1277 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+36],%l1 1278 1.1 christos add %g5,%g2,%g2 ! +=X[19] 1279 1.1 christos stx %g2,[%sp+STACK_BIAS+STACK_FRAME+24] 1280 1.1 christos add %o4,%g2,%g2 1281 1.1 christos srlx %o1,14,%o4 !! 19 1282 1.1 christos xor %o2,%o3,%g5 1283 1.1 christos sllx %o1,23,%g4 1284 1.1 christos and %o1,%g5,%g5 1285 1.1 christos srlx %o1,18,%g3 1286 1.1 christos xor %g4,%o4,%o4 1287 1.1 christos sllx %o1,46,%g4 1288 1.1 christos xor %g3,%o4,%o4 1289 1.1 christos srlx %o1,41,%g3 1290 1.1 christos xor %g4,%o4,%o4 1291 1.1 christos sllx %o1,50,%g4 1292 1.1 christos xor %g3,%o4,%o4 1293 1.1 christos xor %o3,%g5,%g5 ! Ch(e,f,g) 1294 1.1 christos xor %g4,%o4,%g3 ! Sigma1(e) 1295 1.1 christos 1296 1.1 christos srlx %o5,28,%o4 1297 1.1 christos add %g5,%g2,%g2 1298 1.1 christos ldx [%i3+152],%g5 ! K[19] 1299 1.1 christos sllx %o5,25,%g4 1300 1.1 christos add %g3,%g2,%g2 1301 1.1 christos srlx %o5,34,%g3 1302 1.1 christos xor %g4,%o4,%o4 1303 1.1 christos sllx %o5,30,%g4 1304 1.1 christos xor %g3,%o4,%o4 1305 1.1 christos srlx %o5,39,%g3 1306 1.1 christos xor %g4,%o4,%o4 1307 1.1 christos sllx %o5,36,%g4 1308 1.1 christos xor %g3,%o4,%o4 1309 1.1 christos xor %g4,%o4,%o4 ! Sigma0(a) 1310 1.1 christos 1311 1.1 christos or %o5,%g1,%g3 1312 1.1 christos and %o5,%g1,%g4 1313 1.1 christos and %o7,%g3,%g3 1314 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 1315 1.1 christos add %g5,%g2,%g2 ! +=K[19] 1316 1.1 christos add %g4,%o4,%o4 1317 1.1 christos 1318 1.1 christos add %g2,%o0,%o0 1319 1.1 christos add %g2,%o4,%o4 1320 1.1 christos sllx %l2,32,%g3 !! Xupdate(20) 1321 1.1 christos or %l3,%g3,%g3 1322 1.1 christos 1323 1.1 christos srlx %g3,7,%g2 1324 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+48],%l2 1325 1.1 christos sllx %g3,56,%g4 1326 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+52],%l3 1327 1.1 christos srlx %g3,1,%g3 1328 1.1 christos xor %g4,%g2,%g2 1329 1.1 christos sllx %g4,7,%g4 1330 1.1 christos xor %g3,%g2,%g2 1331 1.1 christos srlx %g3,7,%g3 1332 1.1 christos xor %g4,%g2,%g2 1333 1.1 christos sllx %l6,32,%g5 1334 1.1 christos xor %g3,%g2,%g2 ! sigma0(X[20+1]) 1335 1.1 christos or %l7,%g5,%g5 1336 1.1 christos 1337 1.1 christos srlx %g5,6,%g4 1338 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+24],%l6 1339 1.1 christos sllx %g5,3,%g3 1340 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+28],%l7 1341 1.1 christos srlx %g5,19,%g5 1342 1.1 christos xor %g3,%g4,%g4 1343 1.1 christos sllx %g3,42,%g3 1344 1.1 christos xor %g5,%g4,%g4 1345 1.1 christos srlx %g5,42,%g5 1346 1.1 christos xor %g3,%g4,%g4 1347 1.1 christos sllx %l4,32,%g3 1348 1.1 christos xor %g5,%g4,%g4 ! sigma1(X[20+14]) 1349 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+112],%l4 1350 1.1 christos or %l5,%g3,%g3 1351 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+116],%l5 1352 1.1 christos 1353 1.1 christos sllx %l0,32,%g5 1354 1.1 christos add %g4,%g2,%g2 1355 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+40],%l0 1356 1.1 christos or %l1,%g5,%g5 1357 1.1 christos add %g3,%g2,%g2 ! +=X[20+9] 1358 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+44],%l1 1359 1.1 christos add %g5,%g2,%g2 ! +=X[20] 1360 1.1 christos stx %g2,[%sp+STACK_BIAS+STACK_FRAME+32] 1361 1.1 christos add %o3,%g2,%g2 1362 1.1 christos srlx %o0,14,%o3 !! 20 1363 1.1 christos xor %o1,%o2,%g5 1364 1.1 christos sllx %o0,23,%g4 1365 1.1 christos and %o0,%g5,%g5 1366 1.1 christos srlx %o0,18,%g3 1367 1.1 christos xor %g4,%o3,%o3 1368 1.1 christos sllx %o0,46,%g4 1369 1.1 christos xor %g3,%o3,%o3 1370 1.1 christos srlx %o0,41,%g3 1371 1.1 christos xor %g4,%o3,%o3 1372 1.1 christos sllx %o0,50,%g4 1373 1.1 christos xor %g3,%o3,%o3 1374 1.1 christos xor %o2,%g5,%g5 ! Ch(e,f,g) 1375 1.1 christos xor %g4,%o3,%g3 ! Sigma1(e) 1376 1.1 christos 1377 1.1 christos srlx %o4,28,%o3 1378 1.1 christos add %g5,%g2,%g2 1379 1.1 christos ldx [%i3+160],%g5 ! K[20] 1380 1.1 christos sllx %o4,25,%g4 1381 1.1 christos add %g3,%g2,%g2 1382 1.1 christos srlx %o4,34,%g3 1383 1.1 christos xor %g4,%o3,%o3 1384 1.1 christos sllx %o4,30,%g4 1385 1.1 christos xor %g3,%o3,%o3 1386 1.1 christos srlx %o4,39,%g3 1387 1.1 christos xor %g4,%o3,%o3 1388 1.1 christos sllx %o4,36,%g4 1389 1.1 christos xor %g3,%o3,%o3 1390 1.1 christos xor %g4,%o3,%o3 ! Sigma0(a) 1391 1.1 christos 1392 1.1 christos or %o4,%o5,%g3 1393 1.1 christos and %o4,%o5,%g4 1394 1.1 christos and %g1,%g3,%g3 1395 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 1396 1.1 christos add %g5,%g2,%g2 ! +=K[20] 1397 1.1 christos add %g4,%o3,%o3 1398 1.1 christos 1399 1.1 christos add %g2,%o7,%o7 1400 1.1 christos add %g2,%o3,%o3 1401 1.1 christos sllx %l2,32,%g3 !! Xupdate(21) 1402 1.1 christos or %l3,%g3,%g3 1403 1.1 christos 1404 1.1 christos srlx %g3,7,%g2 1405 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+56],%l2 1406 1.1 christos sllx %g3,56,%g4 1407 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+60],%l3 1408 1.1 christos srlx %g3,1,%g3 1409 1.1 christos xor %g4,%g2,%g2 1410 1.1 christos sllx %g4,7,%g4 1411 1.1 christos xor %g3,%g2,%g2 1412 1.1 christos srlx %g3,7,%g3 1413 1.1 christos xor %g4,%g2,%g2 1414 1.1 christos sllx %l6,32,%g5 1415 1.1 christos xor %g3,%g2,%g2 ! sigma0(X[21+1]) 1416 1.1 christos or %l7,%g5,%g5 1417 1.1 christos 1418 1.1 christos srlx %g5,6,%g4 1419 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+32],%l6 1420 1.1 christos sllx %g5,3,%g3 1421 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+36],%l7 1422 1.1 christos srlx %g5,19,%g5 1423 1.1 christos xor %g3,%g4,%g4 1424 1.1 christos sllx %g3,42,%g3 1425 1.1 christos xor %g5,%g4,%g4 1426 1.1 christos srlx %g5,42,%g5 1427 1.1 christos xor %g3,%g4,%g4 1428 1.1 christos sllx %l4,32,%g3 1429 1.1 christos xor %g5,%g4,%g4 ! sigma1(X[21+14]) 1430 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+120],%l4 1431 1.1 christos or %l5,%g3,%g3 1432 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+124],%l5 1433 1.1 christos 1434 1.1 christos sllx %l0,32,%g5 1435 1.1 christos add %g4,%g2,%g2 1436 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+48],%l0 1437 1.1 christos or %l1,%g5,%g5 1438 1.1 christos add %g3,%g2,%g2 ! +=X[21+9] 1439 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+52],%l1 1440 1.1 christos add %g5,%g2,%g2 ! +=X[21] 1441 1.1 christos stx %g2,[%sp+STACK_BIAS+STACK_FRAME+40] 1442 1.1 christos add %o2,%g2,%g2 1443 1.1 christos srlx %o7,14,%o2 !! 21 1444 1.1 christos xor %o0,%o1,%g5 1445 1.1 christos sllx %o7,23,%g4 1446 1.1 christos and %o7,%g5,%g5 1447 1.1 christos srlx %o7,18,%g3 1448 1.1 christos xor %g4,%o2,%o2 1449 1.1 christos sllx %o7,46,%g4 1450 1.1 christos xor %g3,%o2,%o2 1451 1.1 christos srlx %o7,41,%g3 1452 1.1 christos xor %g4,%o2,%o2 1453 1.1 christos sllx %o7,50,%g4 1454 1.1 christos xor %g3,%o2,%o2 1455 1.1 christos xor %o1,%g5,%g5 ! Ch(e,f,g) 1456 1.1 christos xor %g4,%o2,%g3 ! Sigma1(e) 1457 1.1 christos 1458 1.1 christos srlx %o3,28,%o2 1459 1.1 christos add %g5,%g2,%g2 1460 1.1 christos ldx [%i3+168],%g5 ! K[21] 1461 1.1 christos sllx %o3,25,%g4 1462 1.1 christos add %g3,%g2,%g2 1463 1.1 christos srlx %o3,34,%g3 1464 1.1 christos xor %g4,%o2,%o2 1465 1.1 christos sllx %o3,30,%g4 1466 1.1 christos xor %g3,%o2,%o2 1467 1.1 christos srlx %o3,39,%g3 1468 1.1 christos xor %g4,%o2,%o2 1469 1.1 christos sllx %o3,36,%g4 1470 1.1 christos xor %g3,%o2,%o2 1471 1.1 christos xor %g4,%o2,%o2 ! Sigma0(a) 1472 1.1 christos 1473 1.1 christos or %o3,%o4,%g3 1474 1.1 christos and %o3,%o4,%g4 1475 1.1 christos and %o5,%g3,%g3 1476 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 1477 1.1 christos add %g5,%g2,%g2 ! +=K[21] 1478 1.1 christos add %g4,%o2,%o2 1479 1.1 christos 1480 1.1 christos add %g2,%g1,%g1 1481 1.1 christos add %g2,%o2,%o2 1482 1.1 christos sllx %l2,32,%g3 !! Xupdate(22) 1483 1.1 christos or %l3,%g3,%g3 1484 1.1 christos 1485 1.1 christos srlx %g3,7,%g2 1486 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+64],%l2 1487 1.1 christos sllx %g3,56,%g4 1488 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+68],%l3 1489 1.1 christos srlx %g3,1,%g3 1490 1.1 christos xor %g4,%g2,%g2 1491 1.1 christos sllx %g4,7,%g4 1492 1.1 christos xor %g3,%g2,%g2 1493 1.1 christos srlx %g3,7,%g3 1494 1.1 christos xor %g4,%g2,%g2 1495 1.1 christos sllx %l6,32,%g5 1496 1.1 christos xor %g3,%g2,%g2 ! sigma0(X[22+1]) 1497 1.1 christos or %l7,%g5,%g5 1498 1.1 christos 1499 1.1 christos srlx %g5,6,%g4 1500 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+40],%l6 1501 1.1 christos sllx %g5,3,%g3 1502 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+44],%l7 1503 1.1 christos srlx %g5,19,%g5 1504 1.1 christos xor %g3,%g4,%g4 1505 1.1 christos sllx %g3,42,%g3 1506 1.1 christos xor %g5,%g4,%g4 1507 1.1 christos srlx %g5,42,%g5 1508 1.1 christos xor %g3,%g4,%g4 1509 1.1 christos sllx %l4,32,%g3 1510 1.1 christos xor %g5,%g4,%g4 ! sigma1(X[22+14]) 1511 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+0],%l4 1512 1.1 christos or %l5,%g3,%g3 1513 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+4],%l5 1514 1.1 christos 1515 1.1 christos sllx %l0,32,%g5 1516 1.1 christos add %g4,%g2,%g2 1517 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+56],%l0 1518 1.1 christos or %l1,%g5,%g5 1519 1.1 christos add %g3,%g2,%g2 ! +=X[22+9] 1520 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+60],%l1 1521 1.1 christos add %g5,%g2,%g2 ! +=X[22] 1522 1.1 christos stx %g2,[%sp+STACK_BIAS+STACK_FRAME+48] 1523 1.1 christos add %o1,%g2,%g2 1524 1.1 christos srlx %g1,14,%o1 !! 22 1525 1.1 christos xor %o7,%o0,%g5 1526 1.1 christos sllx %g1,23,%g4 1527 1.1 christos and %g1,%g5,%g5 1528 1.1 christos srlx %g1,18,%g3 1529 1.1 christos xor %g4,%o1,%o1 1530 1.1 christos sllx %g1,46,%g4 1531 1.1 christos xor %g3,%o1,%o1 1532 1.1 christos srlx %g1,41,%g3 1533 1.1 christos xor %g4,%o1,%o1 1534 1.1 christos sllx %g1,50,%g4 1535 1.1 christos xor %g3,%o1,%o1 1536 1.1 christos xor %o0,%g5,%g5 ! Ch(e,f,g) 1537 1.1 christos xor %g4,%o1,%g3 ! Sigma1(e) 1538 1.1 christos 1539 1.1 christos srlx %o2,28,%o1 1540 1.1 christos add %g5,%g2,%g2 1541 1.1 christos ldx [%i3+176],%g5 ! K[22] 1542 1.1 christos sllx %o2,25,%g4 1543 1.1 christos add %g3,%g2,%g2 1544 1.1 christos srlx %o2,34,%g3 1545 1.1 christos xor %g4,%o1,%o1 1546 1.1 christos sllx %o2,30,%g4 1547 1.1 christos xor %g3,%o1,%o1 1548 1.1 christos srlx %o2,39,%g3 1549 1.1 christos xor %g4,%o1,%o1 1550 1.1 christos sllx %o2,36,%g4 1551 1.1 christos xor %g3,%o1,%o1 1552 1.1 christos xor %g4,%o1,%o1 ! Sigma0(a) 1553 1.1 christos 1554 1.1 christos or %o2,%o3,%g3 1555 1.1 christos and %o2,%o3,%g4 1556 1.1 christos and %o4,%g3,%g3 1557 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 1558 1.1 christos add %g5,%g2,%g2 ! +=K[22] 1559 1.1 christos add %g4,%o1,%o1 1560 1.1 christos 1561 1.1 christos add %g2,%o5,%o5 1562 1.1 christos add %g2,%o1,%o1 1563 1.1 christos sllx %l2,32,%g3 !! Xupdate(23) 1564 1.1 christos or %l3,%g3,%g3 1565 1.1 christos 1566 1.1 christos srlx %g3,7,%g2 1567 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+72],%l2 1568 1.1 christos sllx %g3,56,%g4 1569 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+76],%l3 1570 1.1 christos srlx %g3,1,%g3 1571 1.1 christos xor %g4,%g2,%g2 1572 1.1 christos sllx %g4,7,%g4 1573 1.1 christos xor %g3,%g2,%g2 1574 1.1 christos srlx %g3,7,%g3 1575 1.1 christos xor %g4,%g2,%g2 1576 1.1 christos sllx %l6,32,%g5 1577 1.1 christos xor %g3,%g2,%g2 ! sigma0(X[23+1]) 1578 1.1 christos or %l7,%g5,%g5 1579 1.1 christos 1580 1.1 christos srlx %g5,6,%g4 1581 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+48],%l6 1582 1.1 christos sllx %g5,3,%g3 1583 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+52],%l7 1584 1.1 christos srlx %g5,19,%g5 1585 1.1 christos xor %g3,%g4,%g4 1586 1.1 christos sllx %g3,42,%g3 1587 1.1 christos xor %g5,%g4,%g4 1588 1.1 christos srlx %g5,42,%g5 1589 1.1 christos xor %g3,%g4,%g4 1590 1.1 christos sllx %l4,32,%g3 1591 1.1 christos xor %g5,%g4,%g4 ! sigma1(X[23+14]) 1592 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+8],%l4 1593 1.1 christos or %l5,%g3,%g3 1594 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+12],%l5 1595 1.1 christos 1596 1.1 christos sllx %l0,32,%g5 1597 1.1 christos add %g4,%g2,%g2 1598 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+64],%l0 1599 1.1 christos or %l1,%g5,%g5 1600 1.1 christos add %g3,%g2,%g2 ! +=X[23+9] 1601 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+68],%l1 1602 1.1 christos add %g5,%g2,%g2 ! +=X[23] 1603 1.1 christos stx %g2,[%sp+STACK_BIAS+STACK_FRAME+56] 1604 1.1 christos add %o0,%g2,%g2 1605 1.1 christos srlx %o5,14,%o0 !! 23 1606 1.1 christos xor %g1,%o7,%g5 1607 1.1 christos sllx %o5,23,%g4 1608 1.1 christos and %o5,%g5,%g5 1609 1.1 christos srlx %o5,18,%g3 1610 1.1 christos xor %g4,%o0,%o0 1611 1.1 christos sllx %o5,46,%g4 1612 1.1 christos xor %g3,%o0,%o0 1613 1.1 christos srlx %o5,41,%g3 1614 1.1 christos xor %g4,%o0,%o0 1615 1.1 christos sllx %o5,50,%g4 1616 1.1 christos xor %g3,%o0,%o0 1617 1.1 christos xor %o7,%g5,%g5 ! Ch(e,f,g) 1618 1.1 christos xor %g4,%o0,%g3 ! Sigma1(e) 1619 1.1 christos 1620 1.1 christos srlx %o1,28,%o0 1621 1.1 christos add %g5,%g2,%g2 1622 1.1 christos ldx [%i3+184],%g5 ! K[23] 1623 1.1 christos sllx %o1,25,%g4 1624 1.1 christos add %g3,%g2,%g2 1625 1.1 christos srlx %o1,34,%g3 1626 1.1 christos xor %g4,%o0,%o0 1627 1.1 christos sllx %o1,30,%g4 1628 1.1 christos xor %g3,%o0,%o0 1629 1.1 christos srlx %o1,39,%g3 1630 1.1 christos xor %g4,%o0,%o0 1631 1.1 christos sllx %o1,36,%g4 1632 1.1 christos xor %g3,%o0,%o0 1633 1.1 christos xor %g4,%o0,%o0 ! Sigma0(a) 1634 1.1 christos 1635 1.1 christos or %o1,%o2,%g3 1636 1.1 christos and %o1,%o2,%g4 1637 1.1 christos and %o3,%g3,%g3 1638 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 1639 1.1 christos add %g5,%g2,%g2 ! +=K[23] 1640 1.1 christos add %g4,%o0,%o0 1641 1.1 christos 1642 1.1 christos add %g2,%o4,%o4 1643 1.1 christos add %g2,%o0,%o0 1644 1.1 christos sllx %l2,32,%g3 !! Xupdate(24) 1645 1.1 christos or %l3,%g3,%g3 1646 1.1 christos 1647 1.1 christos srlx %g3,7,%g2 1648 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+80],%l2 1649 1.1 christos sllx %g3,56,%g4 1650 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+84],%l3 1651 1.1 christos srlx %g3,1,%g3 1652 1.1 christos xor %g4,%g2,%g2 1653 1.1 christos sllx %g4,7,%g4 1654 1.1 christos xor %g3,%g2,%g2 1655 1.1 christos srlx %g3,7,%g3 1656 1.1 christos xor %g4,%g2,%g2 1657 1.1 christos sllx %l6,32,%g5 1658 1.1 christos xor %g3,%g2,%g2 ! sigma0(X[24+1]) 1659 1.1 christos or %l7,%g5,%g5 1660 1.1 christos 1661 1.1 christos srlx %g5,6,%g4 1662 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+56],%l6 1663 1.1 christos sllx %g5,3,%g3 1664 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+60],%l7 1665 1.1 christos srlx %g5,19,%g5 1666 1.1 christos xor %g3,%g4,%g4 1667 1.1 christos sllx %g3,42,%g3 1668 1.1 christos xor %g5,%g4,%g4 1669 1.1 christos srlx %g5,42,%g5 1670 1.1 christos xor %g3,%g4,%g4 1671 1.1 christos sllx %l4,32,%g3 1672 1.1 christos xor %g5,%g4,%g4 ! sigma1(X[24+14]) 1673 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+16],%l4 1674 1.1 christos or %l5,%g3,%g3 1675 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+20],%l5 1676 1.1 christos 1677 1.1 christos sllx %l0,32,%g5 1678 1.1 christos add %g4,%g2,%g2 1679 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+72],%l0 1680 1.1 christos or %l1,%g5,%g5 1681 1.1 christos add %g3,%g2,%g2 ! +=X[24+9] 1682 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+76],%l1 1683 1.1 christos add %g5,%g2,%g2 ! +=X[24] 1684 1.1 christos stx %g2,[%sp+STACK_BIAS+STACK_FRAME+64] 1685 1.1 christos add %o7,%g2,%g2 1686 1.1 christos srlx %o4,14,%o7 !! 24 1687 1.1 christos xor %o5,%g1,%g5 1688 1.1 christos sllx %o4,23,%g4 1689 1.1 christos and %o4,%g5,%g5 1690 1.1 christos srlx %o4,18,%g3 1691 1.1 christos xor %g4,%o7,%o7 1692 1.1 christos sllx %o4,46,%g4 1693 1.1 christos xor %g3,%o7,%o7 1694 1.1 christos srlx %o4,41,%g3 1695 1.1 christos xor %g4,%o7,%o7 1696 1.1 christos sllx %o4,50,%g4 1697 1.1 christos xor %g3,%o7,%o7 1698 1.1 christos xor %g1,%g5,%g5 ! Ch(e,f,g) 1699 1.1 christos xor %g4,%o7,%g3 ! Sigma1(e) 1700 1.1 christos 1701 1.1 christos srlx %o0,28,%o7 1702 1.1 christos add %g5,%g2,%g2 1703 1.1 christos ldx [%i3+192],%g5 ! K[24] 1704 1.1 christos sllx %o0,25,%g4 1705 1.1 christos add %g3,%g2,%g2 1706 1.1 christos srlx %o0,34,%g3 1707 1.1 christos xor %g4,%o7,%o7 1708 1.1 christos sllx %o0,30,%g4 1709 1.1 christos xor %g3,%o7,%o7 1710 1.1 christos srlx %o0,39,%g3 1711 1.1 christos xor %g4,%o7,%o7 1712 1.1 christos sllx %o0,36,%g4 1713 1.1 christos xor %g3,%o7,%o7 1714 1.1 christos xor %g4,%o7,%o7 ! Sigma0(a) 1715 1.1 christos 1716 1.1 christos or %o0,%o1,%g3 1717 1.1 christos and %o0,%o1,%g4 1718 1.1 christos and %o2,%g3,%g3 1719 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 1720 1.1 christos add %g5,%g2,%g2 ! +=K[24] 1721 1.1 christos add %g4,%o7,%o7 1722 1.1 christos 1723 1.1 christos add %g2,%o3,%o3 1724 1.1 christos add %g2,%o7,%o7 1725 1.1 christos sllx %l2,32,%g3 !! Xupdate(25) 1726 1.1 christos or %l3,%g3,%g3 1727 1.1 christos 1728 1.1 christos srlx %g3,7,%g2 1729 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+88],%l2 1730 1.1 christos sllx %g3,56,%g4 1731 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+92],%l3 1732 1.1 christos srlx %g3,1,%g3 1733 1.1 christos xor %g4,%g2,%g2 1734 1.1 christos sllx %g4,7,%g4 1735 1.1 christos xor %g3,%g2,%g2 1736 1.1 christos srlx %g3,7,%g3 1737 1.1 christos xor %g4,%g2,%g2 1738 1.1 christos sllx %l6,32,%g5 1739 1.1 christos xor %g3,%g2,%g2 ! sigma0(X[25+1]) 1740 1.1 christos or %l7,%g5,%g5 1741 1.1 christos 1742 1.1 christos srlx %g5,6,%g4 1743 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+64],%l6 1744 1.1 christos sllx %g5,3,%g3 1745 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+68],%l7 1746 1.1 christos srlx %g5,19,%g5 1747 1.1 christos xor %g3,%g4,%g4 1748 1.1 christos sllx %g3,42,%g3 1749 1.1 christos xor %g5,%g4,%g4 1750 1.1 christos srlx %g5,42,%g5 1751 1.1 christos xor %g3,%g4,%g4 1752 1.1 christos sllx %l4,32,%g3 1753 1.1 christos xor %g5,%g4,%g4 ! sigma1(X[25+14]) 1754 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+24],%l4 1755 1.1 christos or %l5,%g3,%g3 1756 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+28],%l5 1757 1.1 christos 1758 1.1 christos sllx %l0,32,%g5 1759 1.1 christos add %g4,%g2,%g2 1760 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+80],%l0 1761 1.1 christos or %l1,%g5,%g5 1762 1.1 christos add %g3,%g2,%g2 ! +=X[25+9] 1763 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+84],%l1 1764 1.1 christos add %g5,%g2,%g2 ! +=X[25] 1765 1.1 christos stx %g2,[%sp+STACK_BIAS+STACK_FRAME+72] 1766 1.1 christos add %g1,%g2,%g2 1767 1.1 christos srlx %o3,14,%g1 !! 25 1768 1.1 christos xor %o4,%o5,%g5 1769 1.1 christos sllx %o3,23,%g4 1770 1.1 christos and %o3,%g5,%g5 1771 1.1 christos srlx %o3,18,%g3 1772 1.1 christos xor %g4,%g1,%g1 1773 1.1 christos sllx %o3,46,%g4 1774 1.1 christos xor %g3,%g1,%g1 1775 1.1 christos srlx %o3,41,%g3 1776 1.1 christos xor %g4,%g1,%g1 1777 1.1 christos sllx %o3,50,%g4 1778 1.1 christos xor %g3,%g1,%g1 1779 1.1 christos xor %o5,%g5,%g5 ! Ch(e,f,g) 1780 1.1 christos xor %g4,%g1,%g3 ! Sigma1(e) 1781 1.1 christos 1782 1.1 christos srlx %o7,28,%g1 1783 1.1 christos add %g5,%g2,%g2 1784 1.1 christos ldx [%i3+200],%g5 ! K[25] 1785 1.1 christos sllx %o7,25,%g4 1786 1.1 christos add %g3,%g2,%g2 1787 1.1 christos srlx %o7,34,%g3 1788 1.1 christos xor %g4,%g1,%g1 1789 1.1 christos sllx %o7,30,%g4 1790 1.1 christos xor %g3,%g1,%g1 1791 1.1 christos srlx %o7,39,%g3 1792 1.1 christos xor %g4,%g1,%g1 1793 1.1 christos sllx %o7,36,%g4 1794 1.1 christos xor %g3,%g1,%g1 1795 1.1 christos xor %g4,%g1,%g1 ! Sigma0(a) 1796 1.1 christos 1797 1.1 christos or %o7,%o0,%g3 1798 1.1 christos and %o7,%o0,%g4 1799 1.1 christos and %o1,%g3,%g3 1800 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 1801 1.1 christos add %g5,%g2,%g2 ! +=K[25] 1802 1.1 christos add %g4,%g1,%g1 1803 1.1 christos 1804 1.1 christos add %g2,%o2,%o2 1805 1.1 christos add %g2,%g1,%g1 1806 1.1 christos sllx %l2,32,%g3 !! Xupdate(26) 1807 1.1 christos or %l3,%g3,%g3 1808 1.1 christos 1809 1.1 christos srlx %g3,7,%g2 1810 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+96],%l2 1811 1.1 christos sllx %g3,56,%g4 1812 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+100],%l3 1813 1.1 christos srlx %g3,1,%g3 1814 1.1 christos xor %g4,%g2,%g2 1815 1.1 christos sllx %g4,7,%g4 1816 1.1 christos xor %g3,%g2,%g2 1817 1.1 christos srlx %g3,7,%g3 1818 1.1 christos xor %g4,%g2,%g2 1819 1.1 christos sllx %l6,32,%g5 1820 1.1 christos xor %g3,%g2,%g2 ! sigma0(X[26+1]) 1821 1.1 christos or %l7,%g5,%g5 1822 1.1 christos 1823 1.1 christos srlx %g5,6,%g4 1824 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+72],%l6 1825 1.1 christos sllx %g5,3,%g3 1826 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+76],%l7 1827 1.1 christos srlx %g5,19,%g5 1828 1.1 christos xor %g3,%g4,%g4 1829 1.1 christos sllx %g3,42,%g3 1830 1.1 christos xor %g5,%g4,%g4 1831 1.1 christos srlx %g5,42,%g5 1832 1.1 christos xor %g3,%g4,%g4 1833 1.1 christos sllx %l4,32,%g3 1834 1.1 christos xor %g5,%g4,%g4 ! sigma1(X[26+14]) 1835 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+32],%l4 1836 1.1 christos or %l5,%g3,%g3 1837 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+36],%l5 1838 1.1 christos 1839 1.1 christos sllx %l0,32,%g5 1840 1.1 christos add %g4,%g2,%g2 1841 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+88],%l0 1842 1.1 christos or %l1,%g5,%g5 1843 1.1 christos add %g3,%g2,%g2 ! +=X[26+9] 1844 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+92],%l1 1845 1.1 christos add %g5,%g2,%g2 ! +=X[26] 1846 1.1 christos stx %g2,[%sp+STACK_BIAS+STACK_FRAME+80] 1847 1.1 christos add %o5,%g2,%g2 1848 1.1 christos srlx %o2,14,%o5 !! 26 1849 1.1 christos xor %o3,%o4,%g5 1850 1.1 christos sllx %o2,23,%g4 1851 1.1 christos and %o2,%g5,%g5 1852 1.1 christos srlx %o2,18,%g3 1853 1.1 christos xor %g4,%o5,%o5 1854 1.1 christos sllx %o2,46,%g4 1855 1.1 christos xor %g3,%o5,%o5 1856 1.1 christos srlx %o2,41,%g3 1857 1.1 christos xor %g4,%o5,%o5 1858 1.1 christos sllx %o2,50,%g4 1859 1.1 christos xor %g3,%o5,%o5 1860 1.1 christos xor %o4,%g5,%g5 ! Ch(e,f,g) 1861 1.1 christos xor %g4,%o5,%g3 ! Sigma1(e) 1862 1.1 christos 1863 1.1 christos srlx %g1,28,%o5 1864 1.1 christos add %g5,%g2,%g2 1865 1.1 christos ldx [%i3+208],%g5 ! K[26] 1866 1.1 christos sllx %g1,25,%g4 1867 1.1 christos add %g3,%g2,%g2 1868 1.1 christos srlx %g1,34,%g3 1869 1.1 christos xor %g4,%o5,%o5 1870 1.1 christos sllx %g1,30,%g4 1871 1.1 christos xor %g3,%o5,%o5 1872 1.1 christos srlx %g1,39,%g3 1873 1.1 christos xor %g4,%o5,%o5 1874 1.1 christos sllx %g1,36,%g4 1875 1.1 christos xor %g3,%o5,%o5 1876 1.1 christos xor %g4,%o5,%o5 ! Sigma0(a) 1877 1.1 christos 1878 1.1 christos or %g1,%o7,%g3 1879 1.1 christos and %g1,%o7,%g4 1880 1.1 christos and %o0,%g3,%g3 1881 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 1882 1.1 christos add %g5,%g2,%g2 ! +=K[26] 1883 1.1 christos add %g4,%o5,%o5 1884 1.1 christos 1885 1.1 christos add %g2,%o1,%o1 1886 1.1 christos add %g2,%o5,%o5 1887 1.1 christos sllx %l2,32,%g3 !! Xupdate(27) 1888 1.1 christos or %l3,%g3,%g3 1889 1.1 christos 1890 1.1 christos srlx %g3,7,%g2 1891 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+104],%l2 1892 1.1 christos sllx %g3,56,%g4 1893 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+108],%l3 1894 1.1 christos srlx %g3,1,%g3 1895 1.1 christos xor %g4,%g2,%g2 1896 1.1 christos sllx %g4,7,%g4 1897 1.1 christos xor %g3,%g2,%g2 1898 1.1 christos srlx %g3,7,%g3 1899 1.1 christos xor %g4,%g2,%g2 1900 1.1 christos sllx %l6,32,%g5 1901 1.1 christos xor %g3,%g2,%g2 ! sigma0(X[27+1]) 1902 1.1 christos or %l7,%g5,%g5 1903 1.1 christos 1904 1.1 christos srlx %g5,6,%g4 1905 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+80],%l6 1906 1.1 christos sllx %g5,3,%g3 1907 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+84],%l7 1908 1.1 christos srlx %g5,19,%g5 1909 1.1 christos xor %g3,%g4,%g4 1910 1.1 christos sllx %g3,42,%g3 1911 1.1 christos xor %g5,%g4,%g4 1912 1.1 christos srlx %g5,42,%g5 1913 1.1 christos xor %g3,%g4,%g4 1914 1.1 christos sllx %l4,32,%g3 1915 1.1 christos xor %g5,%g4,%g4 ! sigma1(X[27+14]) 1916 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+40],%l4 1917 1.1 christos or %l5,%g3,%g3 1918 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+44],%l5 1919 1.1 christos 1920 1.1 christos sllx %l0,32,%g5 1921 1.1 christos add %g4,%g2,%g2 1922 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+96],%l0 1923 1.1 christos or %l1,%g5,%g5 1924 1.1 christos add %g3,%g2,%g2 ! +=X[27+9] 1925 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+100],%l1 1926 1.1 christos add %g5,%g2,%g2 ! +=X[27] 1927 1.1 christos stx %g2,[%sp+STACK_BIAS+STACK_FRAME+88] 1928 1.1 christos add %o4,%g2,%g2 1929 1.1 christos srlx %o1,14,%o4 !! 27 1930 1.1 christos xor %o2,%o3,%g5 1931 1.1 christos sllx %o1,23,%g4 1932 1.1 christos and %o1,%g5,%g5 1933 1.1 christos srlx %o1,18,%g3 1934 1.1 christos xor %g4,%o4,%o4 1935 1.1 christos sllx %o1,46,%g4 1936 1.1 christos xor %g3,%o4,%o4 1937 1.1 christos srlx %o1,41,%g3 1938 1.1 christos xor %g4,%o4,%o4 1939 1.1 christos sllx %o1,50,%g4 1940 1.1 christos xor %g3,%o4,%o4 1941 1.1 christos xor %o3,%g5,%g5 ! Ch(e,f,g) 1942 1.1 christos xor %g4,%o4,%g3 ! Sigma1(e) 1943 1.1 christos 1944 1.1 christos srlx %o5,28,%o4 1945 1.1 christos add %g5,%g2,%g2 1946 1.1 christos ldx [%i3+216],%g5 ! K[27] 1947 1.1 christos sllx %o5,25,%g4 1948 1.1 christos add %g3,%g2,%g2 1949 1.1 christos srlx %o5,34,%g3 1950 1.1 christos xor %g4,%o4,%o4 1951 1.1 christos sllx %o5,30,%g4 1952 1.1 christos xor %g3,%o4,%o4 1953 1.1 christos srlx %o5,39,%g3 1954 1.1 christos xor %g4,%o4,%o4 1955 1.1 christos sllx %o5,36,%g4 1956 1.1 christos xor %g3,%o4,%o4 1957 1.1 christos xor %g4,%o4,%o4 ! Sigma0(a) 1958 1.1 christos 1959 1.1 christos or %o5,%g1,%g3 1960 1.1 christos and %o5,%g1,%g4 1961 1.1 christos and %o7,%g3,%g3 1962 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 1963 1.1 christos add %g5,%g2,%g2 ! +=K[27] 1964 1.1 christos add %g4,%o4,%o4 1965 1.1 christos 1966 1.1 christos add %g2,%o0,%o0 1967 1.1 christos add %g2,%o4,%o4 1968 1.1 christos sllx %l2,32,%g3 !! Xupdate(28) 1969 1.1 christos or %l3,%g3,%g3 1970 1.1 christos 1971 1.1 christos srlx %g3,7,%g2 1972 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+112],%l2 1973 1.1 christos sllx %g3,56,%g4 1974 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+116],%l3 1975 1.1 christos srlx %g3,1,%g3 1976 1.1 christos xor %g4,%g2,%g2 1977 1.1 christos sllx %g4,7,%g4 1978 1.1 christos xor %g3,%g2,%g2 1979 1.1 christos srlx %g3,7,%g3 1980 1.1 christos xor %g4,%g2,%g2 1981 1.1 christos sllx %l6,32,%g5 1982 1.1 christos xor %g3,%g2,%g2 ! sigma0(X[28+1]) 1983 1.1 christos or %l7,%g5,%g5 1984 1.1 christos 1985 1.1 christos srlx %g5,6,%g4 1986 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+88],%l6 1987 1.1 christos sllx %g5,3,%g3 1988 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+92],%l7 1989 1.1 christos srlx %g5,19,%g5 1990 1.1 christos xor %g3,%g4,%g4 1991 1.1 christos sllx %g3,42,%g3 1992 1.1 christos xor %g5,%g4,%g4 1993 1.1 christos srlx %g5,42,%g5 1994 1.1 christos xor %g3,%g4,%g4 1995 1.1 christos sllx %l4,32,%g3 1996 1.1 christos xor %g5,%g4,%g4 ! sigma1(X[28+14]) 1997 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+48],%l4 1998 1.1 christos or %l5,%g3,%g3 1999 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+52],%l5 2000 1.1 christos 2001 1.1 christos sllx %l0,32,%g5 2002 1.1 christos add %g4,%g2,%g2 2003 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+104],%l0 2004 1.1 christos or %l1,%g5,%g5 2005 1.1 christos add %g3,%g2,%g2 ! +=X[28+9] 2006 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+108],%l1 2007 1.1 christos add %g5,%g2,%g2 ! +=X[28] 2008 1.1 christos stx %g2,[%sp+STACK_BIAS+STACK_FRAME+96] 2009 1.1 christos add %o3,%g2,%g2 2010 1.1 christos srlx %o0,14,%o3 !! 28 2011 1.1 christos xor %o1,%o2,%g5 2012 1.1 christos sllx %o0,23,%g4 2013 1.1 christos and %o0,%g5,%g5 2014 1.1 christos srlx %o0,18,%g3 2015 1.1 christos xor %g4,%o3,%o3 2016 1.1 christos sllx %o0,46,%g4 2017 1.1 christos xor %g3,%o3,%o3 2018 1.1 christos srlx %o0,41,%g3 2019 1.1 christos xor %g4,%o3,%o3 2020 1.1 christos sllx %o0,50,%g4 2021 1.1 christos xor %g3,%o3,%o3 2022 1.1 christos xor %o2,%g5,%g5 ! Ch(e,f,g) 2023 1.1 christos xor %g4,%o3,%g3 ! Sigma1(e) 2024 1.1 christos 2025 1.1 christos srlx %o4,28,%o3 2026 1.1 christos add %g5,%g2,%g2 2027 1.1 christos ldx [%i3+224],%g5 ! K[28] 2028 1.1 christos sllx %o4,25,%g4 2029 1.1 christos add %g3,%g2,%g2 2030 1.1 christos srlx %o4,34,%g3 2031 1.1 christos xor %g4,%o3,%o3 2032 1.1 christos sllx %o4,30,%g4 2033 1.1 christos xor %g3,%o3,%o3 2034 1.1 christos srlx %o4,39,%g3 2035 1.1 christos xor %g4,%o3,%o3 2036 1.1 christos sllx %o4,36,%g4 2037 1.1 christos xor %g3,%o3,%o3 2038 1.1 christos xor %g4,%o3,%o3 ! Sigma0(a) 2039 1.1 christos 2040 1.1 christos or %o4,%o5,%g3 2041 1.1 christos and %o4,%o5,%g4 2042 1.1 christos and %g1,%g3,%g3 2043 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 2044 1.1 christos add %g5,%g2,%g2 ! +=K[28] 2045 1.1 christos add %g4,%o3,%o3 2046 1.1 christos 2047 1.1 christos add %g2,%o7,%o7 2048 1.1 christos add %g2,%o3,%o3 2049 1.1 christos sllx %l2,32,%g3 !! Xupdate(29) 2050 1.1 christos or %l3,%g3,%g3 2051 1.1 christos 2052 1.1 christos srlx %g3,7,%g2 2053 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+120],%l2 2054 1.1 christos sllx %g3,56,%g4 2055 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+124],%l3 2056 1.1 christos srlx %g3,1,%g3 2057 1.1 christos xor %g4,%g2,%g2 2058 1.1 christos sllx %g4,7,%g4 2059 1.1 christos xor %g3,%g2,%g2 2060 1.1 christos srlx %g3,7,%g3 2061 1.1 christos xor %g4,%g2,%g2 2062 1.1 christos sllx %l6,32,%g5 2063 1.1 christos xor %g3,%g2,%g2 ! sigma0(X[29+1]) 2064 1.1 christos or %l7,%g5,%g5 2065 1.1 christos 2066 1.1 christos srlx %g5,6,%g4 2067 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+96],%l6 2068 1.1 christos sllx %g5,3,%g3 2069 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+100],%l7 2070 1.1 christos srlx %g5,19,%g5 2071 1.1 christos xor %g3,%g4,%g4 2072 1.1 christos sllx %g3,42,%g3 2073 1.1 christos xor %g5,%g4,%g4 2074 1.1 christos srlx %g5,42,%g5 2075 1.1 christos xor %g3,%g4,%g4 2076 1.1 christos sllx %l4,32,%g3 2077 1.1 christos xor %g5,%g4,%g4 ! sigma1(X[29+14]) 2078 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+56],%l4 2079 1.1 christos or %l5,%g3,%g3 2080 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+60],%l5 2081 1.1 christos 2082 1.1 christos sllx %l0,32,%g5 2083 1.1 christos add %g4,%g2,%g2 2084 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+112],%l0 2085 1.1 christos or %l1,%g5,%g5 2086 1.1 christos add %g3,%g2,%g2 ! +=X[29+9] 2087 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+116],%l1 2088 1.1 christos add %g5,%g2,%g2 ! +=X[29] 2089 1.1 christos stx %g2,[%sp+STACK_BIAS+STACK_FRAME+104] 2090 1.1 christos add %o2,%g2,%g2 2091 1.1 christos srlx %o7,14,%o2 !! 29 2092 1.1 christos xor %o0,%o1,%g5 2093 1.1 christos sllx %o7,23,%g4 2094 1.1 christos and %o7,%g5,%g5 2095 1.1 christos srlx %o7,18,%g3 2096 1.1 christos xor %g4,%o2,%o2 2097 1.1 christos sllx %o7,46,%g4 2098 1.1 christos xor %g3,%o2,%o2 2099 1.1 christos srlx %o7,41,%g3 2100 1.1 christos xor %g4,%o2,%o2 2101 1.1 christos sllx %o7,50,%g4 2102 1.1 christos xor %g3,%o2,%o2 2103 1.1 christos xor %o1,%g5,%g5 ! Ch(e,f,g) 2104 1.1 christos xor %g4,%o2,%g3 ! Sigma1(e) 2105 1.1 christos 2106 1.1 christos srlx %o3,28,%o2 2107 1.1 christos add %g5,%g2,%g2 2108 1.1 christos ldx [%i3+232],%g5 ! K[29] 2109 1.1 christos sllx %o3,25,%g4 2110 1.1 christos add %g3,%g2,%g2 2111 1.1 christos srlx %o3,34,%g3 2112 1.1 christos xor %g4,%o2,%o2 2113 1.1 christos sllx %o3,30,%g4 2114 1.1 christos xor %g3,%o2,%o2 2115 1.1 christos srlx %o3,39,%g3 2116 1.1 christos xor %g4,%o2,%o2 2117 1.1 christos sllx %o3,36,%g4 2118 1.1 christos xor %g3,%o2,%o2 2119 1.1 christos xor %g4,%o2,%o2 ! Sigma0(a) 2120 1.1 christos 2121 1.1 christos or %o3,%o4,%g3 2122 1.1 christos and %o3,%o4,%g4 2123 1.1 christos and %o5,%g3,%g3 2124 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 2125 1.1 christos add %g5,%g2,%g2 ! +=K[29] 2126 1.1 christos add %g4,%o2,%o2 2127 1.1 christos 2128 1.1 christos add %g2,%g1,%g1 2129 1.1 christos add %g2,%o2,%o2 2130 1.1 christos sllx %l2,32,%g3 !! Xupdate(30) 2131 1.1 christos or %l3,%g3,%g3 2132 1.1 christos 2133 1.1 christos srlx %g3,7,%g2 2134 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+0],%l2 2135 1.1 christos sllx %g3,56,%g4 2136 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+4],%l3 2137 1.1 christos srlx %g3,1,%g3 2138 1.1 christos xor %g4,%g2,%g2 2139 1.1 christos sllx %g4,7,%g4 2140 1.1 christos xor %g3,%g2,%g2 2141 1.1 christos srlx %g3,7,%g3 2142 1.1 christos xor %g4,%g2,%g2 2143 1.1 christos sllx %l6,32,%g5 2144 1.1 christos xor %g3,%g2,%g2 ! sigma0(X[30+1]) 2145 1.1 christos or %l7,%g5,%g5 2146 1.1 christos 2147 1.1 christos srlx %g5,6,%g4 2148 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+104],%l6 2149 1.1 christos sllx %g5,3,%g3 2150 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+108],%l7 2151 1.1 christos srlx %g5,19,%g5 2152 1.1 christos xor %g3,%g4,%g4 2153 1.1 christos sllx %g3,42,%g3 2154 1.1 christos xor %g5,%g4,%g4 2155 1.1 christos srlx %g5,42,%g5 2156 1.1 christos xor %g3,%g4,%g4 2157 1.1 christos sllx %l4,32,%g3 2158 1.1 christos xor %g5,%g4,%g4 ! sigma1(X[30+14]) 2159 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+64],%l4 2160 1.1 christos or %l5,%g3,%g3 2161 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+68],%l5 2162 1.1 christos 2163 1.1 christos sllx %l0,32,%g5 2164 1.1 christos add %g4,%g2,%g2 2165 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+120],%l0 2166 1.1 christos or %l1,%g5,%g5 2167 1.1 christos add %g3,%g2,%g2 ! +=X[30+9] 2168 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+124],%l1 2169 1.1 christos add %g5,%g2,%g2 ! +=X[30] 2170 1.1 christos stx %g2,[%sp+STACK_BIAS+STACK_FRAME+112] 2171 1.1 christos add %o1,%g2,%g2 2172 1.1 christos srlx %g1,14,%o1 !! 30 2173 1.1 christos xor %o7,%o0,%g5 2174 1.1 christos sllx %g1,23,%g4 2175 1.1 christos and %g1,%g5,%g5 2176 1.1 christos srlx %g1,18,%g3 2177 1.1 christos xor %g4,%o1,%o1 2178 1.1 christos sllx %g1,46,%g4 2179 1.1 christos xor %g3,%o1,%o1 2180 1.1 christos srlx %g1,41,%g3 2181 1.1 christos xor %g4,%o1,%o1 2182 1.1 christos sllx %g1,50,%g4 2183 1.1 christos xor %g3,%o1,%o1 2184 1.1 christos xor %o0,%g5,%g5 ! Ch(e,f,g) 2185 1.1 christos xor %g4,%o1,%g3 ! Sigma1(e) 2186 1.1 christos 2187 1.1 christos srlx %o2,28,%o1 2188 1.1 christos add %g5,%g2,%g2 2189 1.1 christos ldx [%i3+240],%g5 ! K[30] 2190 1.1 christos sllx %o2,25,%g4 2191 1.1 christos add %g3,%g2,%g2 2192 1.1 christos srlx %o2,34,%g3 2193 1.1 christos xor %g4,%o1,%o1 2194 1.1 christos sllx %o2,30,%g4 2195 1.1 christos xor %g3,%o1,%o1 2196 1.1 christos srlx %o2,39,%g3 2197 1.1 christos xor %g4,%o1,%o1 2198 1.1 christos sllx %o2,36,%g4 2199 1.1 christos xor %g3,%o1,%o1 2200 1.1 christos xor %g4,%o1,%o1 ! Sigma0(a) 2201 1.1 christos 2202 1.1 christos or %o2,%o3,%g3 2203 1.1 christos and %o2,%o3,%g4 2204 1.1 christos and %o4,%g3,%g3 2205 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 2206 1.1 christos add %g5,%g2,%g2 ! +=K[30] 2207 1.1 christos add %g4,%o1,%o1 2208 1.1 christos 2209 1.1 christos add %g2,%o5,%o5 2210 1.1 christos add %g2,%o1,%o1 2211 1.1 christos sllx %l2,32,%g3 !! Xupdate(31) 2212 1.1 christos or %l3,%g3,%g3 2213 1.1 christos 2214 1.1 christos srlx %g3,7,%g2 2215 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+8],%l2 2216 1.1 christos sllx %g3,56,%g4 2217 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+12],%l3 2218 1.1 christos srlx %g3,1,%g3 2219 1.1 christos xor %g4,%g2,%g2 2220 1.1 christos sllx %g4,7,%g4 2221 1.1 christos xor %g3,%g2,%g2 2222 1.1 christos srlx %g3,7,%g3 2223 1.1 christos xor %g4,%g2,%g2 2224 1.1 christos sllx %l6,32,%g5 2225 1.1 christos xor %g3,%g2,%g2 ! sigma0(X[31+1]) 2226 1.1 christos or %l7,%g5,%g5 2227 1.1 christos 2228 1.1 christos srlx %g5,6,%g4 2229 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+112],%l6 2230 1.1 christos sllx %g5,3,%g3 2231 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+116],%l7 2232 1.1 christos srlx %g5,19,%g5 2233 1.1 christos xor %g3,%g4,%g4 2234 1.1 christos sllx %g3,42,%g3 2235 1.1 christos xor %g5,%g4,%g4 2236 1.1 christos srlx %g5,42,%g5 2237 1.1 christos xor %g3,%g4,%g4 2238 1.1 christos sllx %l4,32,%g3 2239 1.1 christos xor %g5,%g4,%g4 ! sigma1(X[31+14]) 2240 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+72],%l4 2241 1.1 christos or %l5,%g3,%g3 2242 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+76],%l5 2243 1.1 christos 2244 1.1 christos sllx %l0,32,%g5 2245 1.1 christos add %g4,%g2,%g2 2246 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+0],%l0 2247 1.1 christos or %l1,%g5,%g5 2248 1.1 christos add %g3,%g2,%g2 ! +=X[31+9] 2249 1.1 christos ld [%sp+STACK_BIAS+STACK_FRAME+4],%l1 2250 1.1 christos add %g5,%g2,%g2 ! +=X[31] 2251 1.1 christos stx %g2,[%sp+STACK_BIAS+STACK_FRAME+120] 2252 1.1 christos add %o0,%g2,%g2 2253 1.1 christos srlx %o5,14,%o0 !! 31 2254 1.1 christos xor %g1,%o7,%g5 2255 1.1 christos sllx %o5,23,%g4 2256 1.1 christos and %o5,%g5,%g5 2257 1.1 christos srlx %o5,18,%g3 2258 1.1 christos xor %g4,%o0,%o0 2259 1.1 christos sllx %o5,46,%g4 2260 1.1 christos xor %g3,%o0,%o0 2261 1.1 christos srlx %o5,41,%g3 2262 1.1 christos xor %g4,%o0,%o0 2263 1.1 christos sllx %o5,50,%g4 2264 1.1 christos xor %g3,%o0,%o0 2265 1.1 christos xor %o7,%g5,%g5 ! Ch(e,f,g) 2266 1.1 christos xor %g4,%o0,%g3 ! Sigma1(e) 2267 1.1 christos 2268 1.1 christos srlx %o1,28,%o0 2269 1.1 christos add %g5,%g2,%g2 2270 1.1 christos ldx [%i3+248],%g5 ! K[31] 2271 1.1 christos sllx %o1,25,%g4 2272 1.1 christos add %g3,%g2,%g2 2273 1.1 christos srlx %o1,34,%g3 2274 1.1 christos xor %g4,%o0,%o0 2275 1.1 christos sllx %o1,30,%g4 2276 1.1 christos xor %g3,%o0,%o0 2277 1.1 christos srlx %o1,39,%g3 2278 1.1 christos xor %g4,%o0,%o0 2279 1.1 christos sllx %o1,36,%g4 2280 1.1 christos xor %g3,%o0,%o0 2281 1.1 christos xor %g4,%o0,%o0 ! Sigma0(a) 2282 1.1 christos 2283 1.1 christos or %o1,%o2,%g3 2284 1.1 christos and %o1,%o2,%g4 2285 1.1 christos and %o3,%g3,%g3 2286 1.1 christos or %g3,%g4,%g4 ! Maj(a,b,c) 2287 1.1 christos add %g5,%g2,%g2 ! +=K[31] 2288 1.1 christos add %g4,%o0,%o0 2289 1.1 christos 2290 1.1 christos add %g2,%o4,%o4 2291 1.1 christos add %g2,%o0,%o0 2292 1.1 christos and %g5,0xfff,%g5 2293 1.1 christos cmp %g5,2071 2294 1.1 christos bne .L16_xx 2295 1.1 christos add %i3,128,%i3 ! Ktbl+=16 2296 1.1 christos 2297 1.1 christos ld [%i0+0],%l0 2298 1.1 christos ld [%i0+4],%l1 2299 1.1 christos ld [%i0+8],%l2 2300 1.1 christos ld [%i0+12],%l3 2301 1.1 christos ld [%i0+16],%l4 2302 1.1 christos ld [%i0+20],%l5 2303 1.1 christos ld [%i0+24],%l6 2304 1.1 christos 2305 1.1 christos sllx %l0,32,%g3 2306 1.1 christos ld [%i0+28],%l7 2307 1.1 christos sllx %l2,32,%g4 2308 1.1 christos or %l1,%g3,%g3 2309 1.1 christos or %l3,%g4,%g4 2310 1.1 christos add %g3,%o0,%o0 2311 1.1 christos add %g4,%o1,%o1 2312 1.1 christos stx %o0,[%i0+0] 2313 1.1 christos sllx %l4,32,%g5 2314 1.1 christos stx %o1,[%i0+8] 2315 1.1 christos sllx %l6,32,%g2 2316 1.1 christos or %l5,%g5,%g5 2317 1.1 christos or %l7,%g2,%g2 2318 1.1 christos add %g5,%o2,%o2 2319 1.1 christos stx %o2,[%i0+16] 2320 1.1 christos add %g2,%o3,%o3 2321 1.1 christos stx %o3,[%i0+24] 2322 1.1 christos 2323 1.1 christos ld [%i0+32],%l0 2324 1.1 christos ld [%i0+36],%l1 2325 1.1 christos ld [%i0+40],%l2 2326 1.1 christos ld [%i0+44],%l3 2327 1.1 christos ld [%i0+48],%l4 2328 1.1 christos ld [%i0+52],%l5 2329 1.1 christos ld [%i0+56],%l6 2330 1.1 christos 2331 1.1 christos sllx %l0,32,%g3 2332 1.1 christos ld [%i0+60],%l7 2333 1.1 christos sllx %l2,32,%g4 2334 1.1 christos or %l1,%g3,%g3 2335 1.1 christos or %l3,%g4,%g4 2336 1.1 christos add %g3,%o4,%o4 2337 1.1 christos add %g4,%o5,%o5 2338 1.1 christos stx %o4,[%i0+32] 2339 1.1 christos sllx %l4,32,%g5 2340 1.1 christos stx %o5,[%i0+40] 2341 1.1 christos sllx %l6,32,%g2 2342 1.1 christos or %l5,%g5,%g5 2343 1.1 christos or %l7,%g2,%g2 2344 1.1 christos add %g5,%g1,%g1 2345 1.1 christos stx %g1,[%i0+48] 2346 1.1 christos add %g2,%o7,%o7 2347 1.1 christos stx %o7,[%i0+56] 2348 1.1 christos add %i1,128,%i1 ! advance inp 2349 1.1 christos cmp %i1,%i2 2350 1.1 christos bne SIZE_T_CC,.Lloop 2351 1.1 christos sub %i3,512,%i3 ! rewind Ktbl 2352 1.1 christos 2353 1.1 christos ret 2354 1.1 christos restore 2355 1.1 christos .type sha512_block_data_order,#function 2356 1.1 christos .size sha512_block_data_order,(.-sha512_block_data_order) 2357 1.1 christos .asciz "SHA512 block transform for SPARCv9, CRYPTOGAMS by <appro (at) openssl.org>" 2358 1.1 christos .align 4 2359