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