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