1 .section ".text",#alloc,#execinstr
6 .long 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5
7 .long 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5
8 .long 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3
9 .long 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174
10 .long 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc
11 .long 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da
12 .long 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7
13 .long 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967
14 .long 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13
15 .long 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85
16 .long 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3
17 .long 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070
18 .long 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5
19 .long 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3
20 .long 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208
21 .long 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
23 .globl sha256_block_data_order
24 sha256_block_data_order:
32 sub %o7,.Lpic-K256,%i3
50 subcc %g0,%i4,%i5 ! should be 64-%i4, but -%i4 works too
95 xor %l6,%g5,%g5 ! Ch(e,f,g)
96 xor %g4,%l7,%g3 ! Sigma1(e)
100 ld [%i3+0],%g5 ! K[0]
111 xor %g4,%l7,%l7 ! Sigma0(a)
116 or %g3,%g4,%g4 ! Maj(a,b,c)
117 add %g5,%g2,%g2 ! +=K[0]
135 xor %l5,%g5,%g5 ! Ch(e,f,g)
136 xor %g4,%l6,%g3 ! Sigma1(e)
140 ld [%i3+4],%g5 ! K[1]
151 xor %g4,%l6,%l6 ! Sigma0(a)
156 or %g3,%g4,%g4 ! Maj(a,b,c)
157 add %g5,%g2,%g2 ! +=K[1]
176 xor %l4,%g5,%g5 ! Ch(e,f,g)
177 xor %g4,%l5,%g3 ! Sigma1(e)
181 ld [%i3+8],%g5 ! K[2]
192 xor %g4,%l5,%l5 ! Sigma0(a)
197 or %g3,%g4,%g4 ! Maj(a,b,c)
198 add %g5,%g2,%g2 ! +=K[2]
216 xor %l3,%g5,%g5 ! Ch(e,f,g)
217 xor %g4,%l4,%g3 ! Sigma1(e)
221 ld [%i3+12],%g5 ! K[3]
232 xor %g4,%l4,%l4 ! Sigma0(a)
237 or %g3,%g4,%g4 ! Maj(a,b,c)
238 add %g5,%g2,%g2 ! +=K[3]
257 xor %l2,%g5,%g5 ! Ch(e,f,g)
258 xor %g4,%l3,%g3 ! Sigma1(e)
262 ld [%i3+16],%g5 ! K[4]
273 xor %g4,%l3,%l3 ! Sigma0(a)
278 or %g3,%g4,%g4 ! Maj(a,b,c)
279 add %g5,%g2,%g2 ! +=K[4]
297 xor %l1,%g5,%g5 ! Ch(e,f,g)
298 xor %g4,%l2,%g3 ! Sigma1(e)
302 ld [%i3+20],%g5 ! K[5]
313 xor %g4,%l2,%l2 ! Sigma0(a)
318 or %g3,%g4,%g4 ! Maj(a,b,c)
319 add %g5,%g2,%g2 ! +=K[5]
338 xor %l0,%g5,%g5 ! Ch(e,f,g)
339 xor %g4,%l1,%g3 ! Sigma1(e)
343 ld [%i3+24],%g5 ! K[6]
354 xor %g4,%l1,%l1 ! Sigma0(a)
359 or %g3,%g4,%g4 ! Maj(a,b,c)
360 add %g5,%g2,%g2 ! +=K[6]
378 xor %l7,%g5,%g5 ! Ch(e,f,g)
379 xor %g4,%l0,%g3 ! Sigma1(e)
383 ld [%i3+28],%g5 ! K[7]
394 xor %g4,%l0,%l0 ! Sigma0(a)
399 or %g3,%g4,%g4 ! Maj(a,b,c)
400 add %g5,%g2,%g2 ! +=K[7]
419 xor %l6,%g5,%g5 ! Ch(e,f,g)
420 xor %g4,%l7,%g3 ! Sigma1(e)
424 ld [%i3+32],%g5 ! K[8]
435 xor %g4,%l7,%l7 ! Sigma0(a)
440 or %g3,%g4,%g4 ! Maj(a,b,c)
441 add %g5,%g2,%g2 ! +=K[8]
459 xor %l5,%g5,%g5 ! Ch(e,f,g)
460 xor %g4,%l6,%g3 ! Sigma1(e)
464 ld [%i3+36],%g5 ! K[9]
475 xor %g4,%l6,%l6 ! Sigma0(a)
480 or %g3,%g4,%g4 ! Maj(a,b,c)
481 add %g5,%g2,%g2 ! +=K[9]
500 xor %l4,%g5,%g5 ! Ch(e,f,g)
501 xor %g4,%l5,%g3 ! Sigma1(e)
505 ld [%i3+40],%g5 ! K[10]
516 xor %g4,%l5,%l5 ! Sigma0(a)
521 or %g3,%g4,%g4 ! Maj(a,b,c)
522 add %g5,%g2,%g2 ! +=K[10]
540 xor %l3,%g5,%g5 ! Ch(e,f,g)
541 xor %g4,%l4,%g3 ! Sigma1(e)
545 ld [%i3+44],%g5 ! K[11]
556 xor %g4,%l4,%l4 ! Sigma0(a)
561 or %g3,%g4,%g4 ! Maj(a,b,c)
562 add %g5,%g2,%g2 ! +=K[11]
581 xor %l2,%g5,%g5 ! Ch(e,f,g)
582 xor %g4,%l3,%g3 ! Sigma1(e)
586 ld [%i3+48],%g5 ! K[12]
597 xor %g4,%l3,%l3 ! Sigma0(a)
602 or %g3,%g4,%g4 ! Maj(a,b,c)
603 add %g5,%g2,%g2 ! +=K[12]
621 xor %l1,%g5,%g5 ! Ch(e,f,g)
622 xor %g4,%l2,%g3 ! Sigma1(e)
626 ld [%i3+52],%g5 ! K[13]
637 xor %g4,%l2,%l2 ! Sigma0(a)
642 or %g3,%g4,%g4 ! Maj(a,b,c)
643 add %g5,%g2,%g2 ! +=K[13]
662 xor %l0,%g5,%g5 ! Ch(e,f,g)
663 xor %g4,%l1,%g3 ! Sigma1(e)
667 ld [%i3+56],%g5 ! K[14]
678 xor %g4,%l1,%l1 ! Sigma0(a)
683 or %g3,%g4,%g4 ! Maj(a,b,c)
684 add %g5,%g2,%g2 ! +=K[14]
702 xor %l7,%g5,%g5 ! Ch(e,f,g)
703 xor %g4,%l0,%g3 ! Sigma1(e)
707 ld [%i3+60],%g5 ! K[15]
718 xor %g4,%l0,%l0 ! Sigma0(a)
723 or %g3,%g4,%g4 ! Maj(a,b,c)
724 add %g5,%g2,%g2 ! +=K[15]
730 srl %o0,3,%g2 !! Xupdate(16)
740 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1])
748 srlx %o0,32,%g4 ! X[i]
749 xor %g3,%g5,%g5 ! sigma1(X[i+14])
751 add %o4,%g2,%g2 ! +=X[i+9]
770 xor %l6,%g5,%g5 ! Ch(e,f,g)
771 xor %g4,%l7,%g3 ! Sigma1(e)
775 ld [%i3+64],%g5 ! K[16]
786 xor %g4,%l7,%l7 ! Sigma0(a)
791 or %g3,%g4,%g4 ! Maj(a,b,c)
792 add %g5,%g2,%g2 ! +=K[16]
798 srl %i5,3,%g2 !! Xupdate(17)
807 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1])
815 srlx %o5,32,%g4 ! X[i+9]
816 xor %g3,%g5,%g5 ! sigma1(X[i+14])
818 add %o0,%g2,%g2 ! +=X[i]
838 xor %l5,%g5,%g5 ! Ch(e,f,g)
839 xor %g4,%l6,%g3 ! Sigma1(e)
843 ld [%i3+68],%g5 ! K[17]
854 xor %g4,%l6,%l6 ! Sigma0(a)
859 or %g3,%g4,%g4 ! Maj(a,b,c)
860 add %g5,%g2,%g2 ! +=K[17]
865 srl %o1,3,%g2 !! Xupdate(18)
875 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1])
883 srlx %o1,32,%g4 ! X[i]
884 xor %g3,%g5,%g5 ! sigma1(X[i+14])
886 add %o5,%g2,%g2 ! +=X[i+9]
905 xor %l4,%g5,%g5 ! Ch(e,f,g)
906 xor %g4,%l5,%g3 ! Sigma1(e)
910 ld [%i3+72],%g5 ! K[18]
921 xor %g4,%l5,%l5 ! Sigma0(a)
926 or %g3,%g4,%g4 ! Maj(a,b,c)
927 add %g5,%g2,%g2 ! +=K[18]
933 srl %i5,3,%g2 !! Xupdate(19)
942 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1])
950 srlx %g1,32,%g4 ! X[i+9]
951 xor %g3,%g5,%g5 ! sigma1(X[i+14])
953 add %o1,%g2,%g2 ! +=X[i]
973 xor %l3,%g5,%g5 ! Ch(e,f,g)
974 xor %g4,%l4,%g3 ! Sigma1(e)
978 ld [%i3+76],%g5 ! K[19]
989 xor %g4,%l4,%l4 ! Sigma0(a)
994 or %g3,%g4,%g4 ! Maj(a,b,c)
995 add %g5,%g2,%g2 ! +=K[19]
1000 srl %o2,3,%g2 !! Xupdate(20)
1010 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1])
1018 srlx %o2,32,%g4 ! X[i]
1019 xor %g3,%g5,%g5 ! sigma1(X[i+14])
1021 add %g1,%g2,%g2 ! +=X[i+9]
1040 xor %l2,%g5,%g5 ! Ch(e,f,g)
1041 xor %g4,%l3,%g3 ! Sigma1(e)
1045 ld [%i3+80],%g5 ! K[20]
1056 xor %g4,%l3,%l3 ! Sigma0(a)
1061 or %g3,%g4,%g4 ! Maj(a,b,c)
1062 add %g5,%g2,%g2 ! +=K[20]
1068 srl %i5,3,%g2 !! Xupdate(21)
1077 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1])
1085 srlx %o7,32,%g4 ! X[i+9]
1086 xor %g3,%g5,%g5 ! sigma1(X[i+14])
1088 add %o2,%g2,%g2 ! +=X[i]
1108 xor %l1,%g5,%g5 ! Ch(e,f,g)
1109 xor %g4,%l2,%g3 ! Sigma1(e)
1113 ld [%i3+84],%g5 ! K[21]
1124 xor %g4,%l2,%l2 ! Sigma0(a)
1129 or %g3,%g4,%g4 ! Maj(a,b,c)
1130 add %g5,%g2,%g2 ! +=K[21]
1135 srl %o3,3,%g2 !! Xupdate(22)
1145 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1])
1153 srlx %o3,32,%g4 ! X[i]
1154 xor %g3,%g5,%g5 ! sigma1(X[i+14])
1156 add %o7,%g2,%g2 ! +=X[i+9]
1175 xor %l0,%g5,%g5 ! Ch(e,f,g)
1176 xor %g4,%l1,%g3 ! Sigma1(e)
1180 ld [%i3+88],%g5 ! K[22]
1191 xor %g4,%l1,%l1 ! Sigma0(a)
1196 or %g3,%g4,%g4 ! Maj(a,b,c)
1197 add %g5,%g2,%g2 ! +=K[22]
1203 srl %i5,3,%g2 !! Xupdate(23)
1212 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1])
1220 srlx %o0,32,%g4 ! X[i+9]
1221 xor %g3,%g5,%g5 ! sigma1(X[i+14])
1223 add %o3,%g2,%g2 ! +=X[i]
1243 xor %l7,%g5,%g5 ! Ch(e,f,g)
1244 xor %g4,%l0,%g3 ! Sigma1(e)
1248 ld [%i3+92],%g5 ! K[23]
1259 xor %g4,%l0,%l0 ! Sigma0(a)
1264 or %g3,%g4,%g4 ! Maj(a,b,c)
1265 add %g5,%g2,%g2 ! +=K[23]
1270 srl %o4,3,%g2 !! Xupdate(24)
1280 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1])
1288 srlx %o4,32,%g4 ! X[i]
1289 xor %g3,%g5,%g5 ! sigma1(X[i+14])
1291 add %o0,%g2,%g2 ! +=X[i+9]
1310 xor %l6,%g5,%g5 ! Ch(e,f,g)
1311 xor %g4,%l7,%g3 ! Sigma1(e)
1315 ld [%i3+96],%g5 ! K[24]
1326 xor %g4,%l7,%l7 ! Sigma0(a)
1331 or %g3,%g4,%g4 ! Maj(a,b,c)
1332 add %g5,%g2,%g2 ! +=K[24]
1338 srl %i5,3,%g2 !! Xupdate(25)
1347 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1])
1355 srlx %o1,32,%g4 ! X[i+9]
1356 xor %g3,%g5,%g5 ! sigma1(X[i+14])
1358 add %o4,%g2,%g2 ! +=X[i]
1378 xor %l5,%g5,%g5 ! Ch(e,f,g)
1379 xor %g4,%l6,%g3 ! Sigma1(e)
1383 ld [%i3+100],%g5 ! K[25]
1394 xor %g4,%l6,%l6 ! Sigma0(a)
1399 or %g3,%g4,%g4 ! Maj(a,b,c)
1400 add %g5,%g2,%g2 ! +=K[25]
1405 srl %o5,3,%g2 !! Xupdate(26)
1415 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1])
1423 srlx %o5,32,%g4 ! X[i]
1424 xor %g3,%g5,%g5 ! sigma1(X[i+14])
1426 add %o1,%g2,%g2 ! +=X[i+9]
1445 xor %l4,%g5,%g5 ! Ch(e,f,g)
1446 xor %g4,%l5,%g3 ! Sigma1(e)
1450 ld [%i3+104],%g5 ! K[26]
1461 xor %g4,%l5,%l5 ! Sigma0(a)
1466 or %g3,%g4,%g4 ! Maj(a,b,c)
1467 add %g5,%g2,%g2 ! +=K[26]
1473 srl %i5,3,%g2 !! Xupdate(27)
1482 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1])
1490 srlx %o2,32,%g4 ! X[i+9]
1491 xor %g3,%g5,%g5 ! sigma1(X[i+14])
1493 add %o5,%g2,%g2 ! +=X[i]
1513 xor %l3,%g5,%g5 ! Ch(e,f,g)
1514 xor %g4,%l4,%g3 ! Sigma1(e)
1518 ld [%i3+108],%g5 ! K[27]
1529 xor %g4,%l4,%l4 ! Sigma0(a)
1534 or %g3,%g4,%g4 ! Maj(a,b,c)
1535 add %g5,%g2,%g2 ! +=K[27]
1540 srl %g1,3,%g2 !! Xupdate(28)
1550 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1])
1558 srlx %g1,32,%g4 ! X[i]
1559 xor %g3,%g5,%g5 ! sigma1(X[i+14])
1561 add %o2,%g2,%g2 ! +=X[i+9]
1580 xor %l2,%g5,%g5 ! Ch(e,f,g)
1581 xor %g4,%l3,%g3 ! Sigma1(e)
1585 ld [%i3+112],%g5 ! K[28]
1596 xor %g4,%l3,%l3 ! Sigma0(a)
1601 or %g3,%g4,%g4 ! Maj(a,b,c)
1602 add %g5,%g2,%g2 ! +=K[28]
1608 srl %i5,3,%g2 !! Xupdate(29)
1617 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1])
1625 srlx %o3,32,%g4 ! X[i+9]
1626 xor %g3,%g5,%g5 ! sigma1(X[i+14])
1628 add %g1,%g2,%g2 ! +=X[i]
1648 xor %l1,%g5,%g5 ! Ch(e,f,g)
1649 xor %g4,%l2,%g3 ! Sigma1(e)
1653 ld [%i3+116],%g5 ! K[29]
1664 xor %g4,%l2,%l2 ! Sigma0(a)
1669 or %g3,%g4,%g4 ! Maj(a,b,c)
1670 add %g5,%g2,%g2 ! +=K[29]
1675 srl %o7,3,%g2 !! Xupdate(30)
1685 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1])
1693 srlx %o7,32,%g4 ! X[i]
1694 xor %g3,%g5,%g5 ! sigma1(X[i+14])
1696 add %o3,%g2,%g2 ! +=X[i+9]
1715 xor %l0,%g5,%g5 ! Ch(e,f,g)
1716 xor %g4,%l1,%g3 ! Sigma1(e)
1720 ld [%i3+120],%g5 ! K[30]
1731 xor %g4,%l1,%l1 ! Sigma0(a)
1736 or %g3,%g4,%g4 ! Maj(a,b,c)
1737 add %g5,%g2,%g2 ! +=K[30]
1743 srl %i5,3,%g2 !! Xupdate(31)
1752 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1])
1760 srlx %o4,32,%g4 ! X[i+9]
1761 xor %g3,%g5,%g5 ! sigma1(X[i+14])
1763 add %o7,%g2,%g2 ! +=X[i]
1783 xor %l7,%g5,%g5 ! Ch(e,f,g)
1784 xor %g4,%l0,%g3 ! Sigma1(e)
1788 ld [%i3+124],%g5 ! K[31]
1799 xor %g4,%l0,%l0 ! Sigma0(a)
1804 or %g3,%g4,%g4 ! Maj(a,b,c)
1805 add %g5,%g2,%g2 ! +=K[31]
1813 add %i3,64,%i3 ! Ktbl+=16
1840 add %i1,64,%i1 ! advance inp
1843 sub %i3,192,%i3 ! rewind Ktbl
1847 .type sha256_block_data_order,#function
1848 .size sha256_block_data_order,(.-sha256_block_data_order)
1849 .asciz "SHA256 block transform for SPARCv9, CRYPTOGAMS by <appro@openssl.org>"