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