alpha.s 57 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199
  1. # DEC Alpha assember
  2. # The bn_div_words is actually gcc output but the other parts are hand done.
  3. # Thanks to tzeruch@ceddec.com for sending me the gcc output for
  4. # bn_div_words.
  5. # I've gone back and re-done most of routines.
  6. # The key thing to remeber for the 164 CPU is that while a
  7. # multiply operation takes 8 cycles, another one can only be issued
  8. # after 4 cycles have elapsed. I've done modification to help
  9. # improve this. Also, normally, a ld instruction will not be available
  10. # for about 3 cycles.
  11. .file 1 "bn_asm.c"
  12. .set noat
  13. gcc2_compiled.:
  14. __gnu_compiled_c:
  15. .text
  16. .align 3
  17. .globl bn_mul_add_words
  18. .ent bn_mul_add_words
  19. bn_mul_add_words:
  20. bn_mul_add_words..ng:
  21. .frame $30,0,$26,0
  22. .prologue 0
  23. .align 5
  24. subq $18,4,$18
  25. bis $31,$31,$0
  26. blt $18,$43 # if we are -1, -2, -3 or -4 goto tail code
  27. ldq $20,0($17) # 1 1
  28. ldq $1,0($16) # 1 1
  29. .align 3
  30. $42:
  31. mulq $20,$19,$5 # 1 2 1 ######
  32. ldq $21,8($17) # 2 1
  33. ldq $2,8($16) # 2 1
  34. umulh $20,$19,$20 # 1 2 ######
  35. ldq $27,16($17) # 3 1
  36. ldq $3,16($16) # 3 1
  37. mulq $21,$19,$6 # 2 2 1 ######
  38. ldq $28,24($17) # 4 1
  39. addq $1,$5,$1 # 1 2 2
  40. ldq $4,24($16) # 4 1
  41. umulh $21,$19,$21 # 2 2 ######
  42. cmpult $1,$5,$22 # 1 2 3 1
  43. addq $20,$22,$20 # 1 3 1
  44. addq $1,$0,$1 # 1 2 3 1
  45. mulq $27,$19,$7 # 3 2 1 ######
  46. cmpult $1,$0,$0 # 1 2 3 2
  47. addq $2,$6,$2 # 2 2 2
  48. addq $20,$0,$0 # 1 3 2
  49. cmpult $2,$6,$23 # 2 2 3 1
  50. addq $21,$23,$21 # 2 3 1
  51. umulh $27,$19,$27 # 3 2 ######
  52. addq $2,$0,$2 # 2 2 3 1
  53. cmpult $2,$0,$0 # 2 2 3 2
  54. subq $18,4,$18
  55. mulq $28,$19,$8 # 4 2 1 ######
  56. addq $21,$0,$0 # 2 3 2
  57. addq $3,$7,$3 # 3 2 2
  58. addq $16,32,$16
  59. cmpult $3,$7,$24 # 3 2 3 1
  60. stq $1,-32($16) # 1 2 4
  61. umulh $28,$19,$28 # 4 2 ######
  62. addq $27,$24,$27 # 3 3 1
  63. addq $3,$0,$3 # 3 2 3 1
  64. stq $2,-24($16) # 2 2 4
  65. cmpult $3,$0,$0 # 3 2 3 2
  66. stq $3,-16($16) # 3 2 4
  67. addq $4,$8,$4 # 4 2 2
  68. addq $27,$0,$0 # 3 3 2
  69. cmpult $4,$8,$25 # 4 2 3 1
  70. addq $17,32,$17
  71. addq $28,$25,$28 # 4 3 1
  72. addq $4,$0,$4 # 4 2 3 1
  73. cmpult $4,$0,$0 # 4 2 3 2
  74. stq $4,-8($16) # 4 2 4
  75. addq $28,$0,$0 # 4 3 2
  76. blt $18,$43
  77. ldq $20,0($17) # 1 1
  78. ldq $1,0($16) # 1 1
  79. br $42
  80. .align 4
  81. $45:
  82. ldq $20,0($17) # 4 1
  83. ldq $1,0($16) # 4 1
  84. mulq $20,$19,$5 # 4 2 1
  85. subq $18,1,$18
  86. addq $16,8,$16
  87. addq $17,8,$17
  88. umulh $20,$19,$20 # 4 2
  89. addq $1,$5,$1 # 4 2 2
  90. cmpult $1,$5,$22 # 4 2 3 1
  91. addq $20,$22,$20 # 4 3 1
  92. addq $1,$0,$1 # 4 2 3 1
  93. cmpult $1,$0,$0 # 4 2 3 2
  94. addq $20,$0,$0 # 4 3 2
  95. stq $1,-8($16) # 4 2 4
  96. bgt $18,$45
  97. ret $31,($26),1 # else exit
  98. .align 4
  99. $43:
  100. addq $18,4,$18
  101. bgt $18,$45 # goto tail code
  102. ret $31,($26),1 # else exit
  103. .end bn_mul_add_words
  104. .align 3
  105. .globl bn_mul_words
  106. .ent bn_mul_words
  107. bn_mul_words:
  108. bn_mul_words..ng:
  109. .frame $30,0,$26,0
  110. .prologue 0
  111. .align 5
  112. subq $18,4,$18
  113. bis $31,$31,$0
  114. blt $18,$143 # if we are -1, -2, -3 or -4 goto tail code
  115. ldq $20,0($17) # 1 1
  116. .align 3
  117. $142:
  118. mulq $20,$19,$5 # 1 2 1 #####
  119. ldq $21,8($17) # 2 1
  120. ldq $27,16($17) # 3 1
  121. umulh $20,$19,$20 # 1 2 #####
  122. ldq $28,24($17) # 4 1
  123. mulq $21,$19,$6 # 2 2 1 #####
  124. addq $5,$0,$5 # 1 2 3 1
  125. subq $18,4,$18
  126. cmpult $5,$0,$0 # 1 2 3 2
  127. umulh $21,$19,$21 # 2 2 #####
  128. addq $20,$0,$0 # 1 3 2
  129. addq $17,32,$17
  130. addq $6,$0,$6 # 2 2 3 1
  131. mulq $27,$19,$7 # 3 2 1 #####
  132. cmpult $6,$0,$0 # 2 2 3 2
  133. addq $21,$0,$0 # 2 3 2
  134. addq $16,32,$16
  135. umulh $27,$19,$27 # 3 2 #####
  136. stq $5,-32($16) # 1 2 4
  137. mulq $28,$19,$8 # 4 2 1 #####
  138. addq $7,$0,$7 # 3 2 3 1
  139. stq $6,-24($16) # 2 2 4
  140. cmpult $7,$0,$0 # 3 2 3 2
  141. umulh $28,$19,$28 # 4 2 #####
  142. addq $27,$0,$0 # 3 3 2
  143. stq $7,-16($16) # 3 2 4
  144. addq $8,$0,$8 # 4 2 3 1
  145. cmpult $8,$0,$0 # 4 2 3 2
  146. addq $28,$0,$0 # 4 3 2
  147. stq $8,-8($16) # 4 2 4
  148. blt $18,$143
  149. ldq $20,0($17) # 1 1
  150. br $142
  151. .align 4
  152. $145:
  153. ldq $20,0($17) # 4 1
  154. mulq $20,$19,$5 # 4 2 1
  155. subq $18,1,$18
  156. umulh $20,$19,$20 # 4 2
  157. addq $5,$0,$5 # 4 2 3 1
  158. addq $16,8,$16
  159. cmpult $5,$0,$0 # 4 2 3 2
  160. addq $17,8,$17
  161. addq $20,$0,$0 # 4 3 2
  162. stq $5,-8($16) # 4 2 4
  163. bgt $18,$145
  164. ret $31,($26),1 # else exit
  165. .align 4
  166. $143:
  167. addq $18,4,$18
  168. bgt $18,$145 # goto tail code
  169. ret $31,($26),1 # else exit
  170. .end bn_mul_words
  171. .align 3
  172. .globl bn_sqr_words
  173. .ent bn_sqr_words
  174. bn_sqr_words:
  175. bn_sqr_words..ng:
  176. .frame $30,0,$26,0
  177. .prologue 0
  178. subq $18,4,$18
  179. blt $18,$543 # if we are -1, -2, -3 or -4 goto tail code
  180. ldq $20,0($17) # 1 1
  181. .align 3
  182. $542:
  183. mulq $20,$20,$5 ######
  184. ldq $21,8($17) # 1 1
  185. subq $18,4
  186. umulh $20,$20,$1 ######
  187. ldq $27,16($17) # 1 1
  188. mulq $21,$21,$6 ######
  189. ldq $28,24($17) # 1 1
  190. stq $5,0($16) # r[0]
  191. umulh $21,$21,$2 ######
  192. stq $1,8($16) # r[1]
  193. mulq $27,$27,$7 ######
  194. stq $6,16($16) # r[0]
  195. umulh $27,$27,$3 ######
  196. stq $2,24($16) # r[1]
  197. mulq $28,$28,$8 ######
  198. stq $7,32($16) # r[0]
  199. umulh $28,$28,$4 ######
  200. stq $3,40($16) # r[1]
  201. addq $16,64,$16
  202. addq $17,32,$17
  203. stq $8,-16($16) # r[0]
  204. stq $4,-8($16) # r[1]
  205. blt $18,$543
  206. ldq $20,0($17) # 1 1
  207. br $542
  208. $442:
  209. ldq $20,0($17) # a[0]
  210. mulq $20,$20,$5 # a[0]*w low part r2
  211. addq $16,16,$16
  212. addq $17,8,$17
  213. subq $18,1,$18
  214. umulh $20,$20,$1 # a[0]*w high part r3
  215. stq $5,-16($16) # r[0]
  216. stq $1,-8($16) # r[1]
  217. bgt $18,$442
  218. ret $31,($26),1 # else exit
  219. .align 4
  220. $543:
  221. addq $18,4,$18
  222. bgt $18,$442 # goto tail code
  223. ret $31,($26),1 # else exit
  224. .end bn_sqr_words
  225. .align 3
  226. .globl bn_add_words
  227. .ent bn_add_words
  228. bn_add_words:
  229. bn_add_words..ng:
  230. .frame $30,0,$26,0
  231. .prologue 0
  232. subq $19,4,$19
  233. bis $31,$31,$0 # carry = 0
  234. blt $19,$900
  235. ldq $5,0($17) # a[0]
  236. ldq $1,0($18) # b[1]
  237. .align 3
  238. $901:
  239. addq $1,$5,$1 # r=a+b;
  240. ldq $6,8($17) # a[1]
  241. cmpult $1,$5,$22 # did we overflow?
  242. ldq $2,8($18) # b[1]
  243. addq $1,$0,$1 # c+= overflow
  244. ldq $7,16($17) # a[2]
  245. cmpult $1,$0,$0 # overflow?
  246. ldq $3,16($18) # b[2]
  247. addq $0,$22,$0
  248. ldq $8,24($17) # a[3]
  249. addq $2,$6,$2 # r=a+b;
  250. ldq $4,24($18) # b[3]
  251. cmpult $2,$6,$23 # did we overflow?
  252. addq $3,$7,$3 # r=a+b;
  253. addq $2,$0,$2 # c+= overflow
  254. cmpult $3,$7,$24 # did we overflow?
  255. cmpult $2,$0,$0 # overflow?
  256. addq $4,$8,$4 # r=a+b;
  257. addq $0,$23,$0
  258. cmpult $4,$8,$25 # did we overflow?
  259. addq $3,$0,$3 # c+= overflow
  260. stq $1,0($16) # r[0]=c
  261. cmpult $3,$0,$0 # overflow?
  262. stq $2,8($16) # r[1]=c
  263. addq $0,$24,$0
  264. stq $3,16($16) # r[2]=c
  265. addq $4,$0,$4 # c+= overflow
  266. subq $19,4,$19 # loop--
  267. cmpult $4,$0,$0 # overflow?
  268. addq $17,32,$17 # a++
  269. addq $0,$25,$0
  270. stq $4,24($16) # r[3]=c
  271. addq $18,32,$18 # b++
  272. addq $16,32,$16 # r++
  273. blt $19,$900
  274. ldq $5,0($17) # a[0]
  275. ldq $1,0($18) # b[1]
  276. br $901
  277. .align 4
  278. $945:
  279. ldq $5,0($17) # a[0]
  280. ldq $1,0($18) # b[1]
  281. addq $1,$5,$1 # r=a+b;
  282. subq $19,1,$19 # loop--
  283. addq $1,$0,$1 # c+= overflow
  284. addq $17,8,$17 # a++
  285. cmpult $1,$5,$22 # did we overflow?
  286. cmpult $1,$0,$0 # overflow?
  287. addq $18,8,$18 # b++
  288. stq $1,0($16) # r[0]=c
  289. addq $0,$22,$0
  290. addq $16,8,$16 # r++
  291. bgt $19,$945
  292. ret $31,($26),1 # else exit
  293. $900:
  294. addq $19,4,$19
  295. bgt $19,$945 # goto tail code
  296. ret $31,($26),1 # else exit
  297. .end bn_add_words
  298. #
  299. # What follows was taken directly from the C compiler with a few
  300. # hacks to redo the lables.
  301. #
  302. .text
  303. .align 3
  304. .globl bn_div_words
  305. .ent bn_div_words
  306. bn_div_words:
  307. ldgp $29,0($27)
  308. bn_div_words..ng:
  309. lda $30,-48($30)
  310. .frame $30,48,$26,0
  311. stq $26,0($30)
  312. stq $9,8($30)
  313. stq $10,16($30)
  314. stq $11,24($30)
  315. stq $12,32($30)
  316. stq $13,40($30)
  317. .mask 0x4003e00,-48
  318. .prologue 1
  319. bis $16,$16,$9
  320. bis $17,$17,$10
  321. bis $18,$18,$11
  322. bis $31,$31,$13
  323. bis $31,2,$12
  324. bne $11,$119
  325. lda $0,-1
  326. br $31,$136
  327. .align 4
  328. $119:
  329. bis $11,$11,$16
  330. jsr $26,BN_num_bits_word
  331. ldgp $29,0($26)
  332. subq $0,64,$1
  333. beq $1,$120
  334. bis $31,1,$1
  335. sll $1,$0,$1
  336. cmpule $9,$1,$1
  337. bne $1,$120
  338. # lda $16,_IO_stderr_
  339. # lda $17,$C32
  340. # bis $0,$0,$18
  341. # jsr $26,fprintf
  342. # ldgp $29,0($26)
  343. jsr $26,abort
  344. ldgp $29,0($26)
  345. .align 4
  346. $120:
  347. bis $31,64,$3
  348. cmpult $9,$11,$2
  349. subq $3,$0,$1
  350. addl $1,$31,$0
  351. subq $9,$11,$1
  352. cmoveq $2,$1,$9
  353. beq $0,$122
  354. zapnot $0,15,$2
  355. subq $3,$0,$1
  356. sll $11,$2,$11
  357. sll $9,$2,$3
  358. srl $10,$1,$1
  359. sll $10,$2,$10
  360. bis $3,$1,$9
  361. $122:
  362. srl $11,32,$5
  363. zapnot $11,15,$6
  364. lda $7,-1
  365. .align 5
  366. $123:
  367. srl $9,32,$1
  368. subq $1,$5,$1
  369. bne $1,$126
  370. zapnot $7,15,$27
  371. br $31,$127
  372. .align 4
  373. $126:
  374. bis $9,$9,$24
  375. bis $5,$5,$25
  376. divqu $24,$25,$27
  377. $127:
  378. srl $10,32,$4
  379. .align 5
  380. $128:
  381. mulq $27,$5,$1
  382. subq $9,$1,$3
  383. zapnot $3,240,$1
  384. bne $1,$129
  385. mulq $6,$27,$2
  386. sll $3,32,$1
  387. addq $1,$4,$1
  388. cmpule $2,$1,$2
  389. bne $2,$129
  390. subq $27,1,$27
  391. br $31,$128
  392. .align 4
  393. $129:
  394. mulq $27,$6,$1
  395. mulq $27,$5,$4
  396. srl $1,32,$3
  397. sll $1,32,$1
  398. addq $4,$3,$4
  399. cmpult $10,$1,$2
  400. subq $10,$1,$10
  401. addq $2,$4,$2
  402. cmpult $9,$2,$1
  403. bis $2,$2,$4
  404. beq $1,$134
  405. addq $9,$11,$9
  406. subq $27,1,$27
  407. $134:
  408. subl $12,1,$12
  409. subq $9,$4,$9
  410. beq $12,$124
  411. sll $27,32,$13
  412. sll $9,32,$2
  413. srl $10,32,$1
  414. sll $10,32,$10
  415. bis $2,$1,$9
  416. br $31,$123
  417. .align 4
  418. $124:
  419. bis $13,$27,$0
  420. $136:
  421. ldq $26,0($30)
  422. ldq $9,8($30)
  423. ldq $10,16($30)
  424. ldq $11,24($30)
  425. ldq $12,32($30)
  426. ldq $13,40($30)
  427. addq $30,48,$30
  428. ret $31,($26),1
  429. .end bn_div_words
  430. .set noat
  431. .text
  432. .align 3
  433. .globl bn_sub_words
  434. .ent bn_sub_words
  435. bn_sub_words:
  436. bn_sub_words..ng:
  437. .frame $30,0,$26,0
  438. .prologue 0
  439. subq $19, 4, $19
  440. bis $31, $31, $0
  441. blt $19, $100
  442. ldq $1, 0($17)
  443. ldq $2, 0($18)
  444. $101:
  445. ldq $3, 8($17)
  446. cmpult $1, $2, $4
  447. ldq $5, 8($18)
  448. subq $1, $2, $1
  449. ldq $6, 16($17)
  450. cmpult $1, $0, $2
  451. ldq $7, 16($18)
  452. subq $1, $0, $23
  453. ldq $8, 24($17)
  454. addq $2, $4, $0
  455. cmpult $3, $5, $24
  456. subq $3, $5, $3
  457. ldq $22, 24($18)
  458. cmpult $3, $0, $5
  459. subq $3, $0, $25
  460. addq $5, $24, $0
  461. cmpult $6, $7, $27
  462. subq $6, $7, $6
  463. stq $23, 0($16)
  464. cmpult $6, $0, $7
  465. subq $6, $0, $28
  466. addq $7, $27, $0
  467. cmpult $8, $22, $21
  468. subq $8, $22, $8
  469. stq $25, 8($16)
  470. cmpult $8, $0, $22
  471. subq $8, $0, $20
  472. addq $22, $21, $0
  473. stq $28, 16($16)
  474. subq $19, 4, $19
  475. stq $20, 24($16)
  476. addq $17, 32, $17
  477. addq $18, 32, $18
  478. addq $16, 32, $16
  479. blt $19, $100
  480. ldq $1, 0($17)
  481. ldq $2, 0($18)
  482. br $101
  483. $102:
  484. ldq $1, 0($17)
  485. ldq $2, 0($18)
  486. cmpult $1, $2, $27
  487. subq $1, $2, $1
  488. cmpult $1, $0, $2
  489. subq $1, $0, $1
  490. stq $1, 0($16)
  491. addq $2, $27, $0
  492. addq $17, 8, $17
  493. addq $18, 8, $18
  494. addq $16, 8, $16
  495. subq $19, 1, $19
  496. bgt $19, $102
  497. ret $31,($26),1
  498. $100:
  499. addq $19, 4, $19
  500. bgt $19, $102
  501. $103:
  502. ret $31,($26),1
  503. .end bn_sub_words
  504. .text
  505. .align 3
  506. .globl bn_mul_comba4
  507. .ent bn_mul_comba4
  508. bn_mul_comba4:
  509. bn_mul_comba4..ng:
  510. .frame $30,0,$26,0
  511. .prologue 0
  512. ldq $0, 0($17)
  513. ldq $1, 0($18)
  514. ldq $2, 8($17)
  515. ldq $3, 8($18)
  516. ldq $4, 16($17)
  517. ldq $5, 16($18)
  518. ldq $6, 24($17)
  519. ldq $7, 24($18)
  520. bis $31, $31, $23
  521. mulq $0, $1, $8
  522. umulh $0, $1, $22
  523. stq $8, 0($16)
  524. bis $31, $31, $8
  525. mulq $0, $3, $24
  526. umulh $0, $3, $25
  527. addq $22, $24, $22
  528. cmpult $22, $24, $27
  529. addq $27, $25, $25
  530. addq $23, $25, $23
  531. cmpult $23, $25, $28
  532. addq $8, $28, $8
  533. mulq $2, $1, $21
  534. umulh $2, $1, $20
  535. addq $22, $21, $22
  536. cmpult $22, $21, $19
  537. addq $19, $20, $20
  538. addq $23, $20, $23
  539. cmpult $23, $20, $17
  540. addq $8, $17, $8
  541. stq $22, 8($16)
  542. bis $31, $31, $22
  543. mulq $2, $3, $18
  544. umulh $2, $3, $24
  545. addq $23, $18, $23
  546. cmpult $23, $18, $27
  547. addq $27, $24, $24
  548. addq $8, $24, $8
  549. cmpult $8, $24, $25
  550. addq $22, $25, $22
  551. mulq $0, $5, $28
  552. umulh $0, $5, $21
  553. addq $23, $28, $23
  554. cmpult $23, $28, $19
  555. addq $19, $21, $21
  556. addq $8, $21, $8
  557. cmpult $8, $21, $20
  558. addq $22, $20, $22
  559. mulq $4, $1, $17
  560. umulh $4, $1, $18
  561. addq $23, $17, $23
  562. cmpult $23, $17, $27
  563. addq $27, $18, $18
  564. addq $8, $18, $8
  565. cmpult $8, $18, $24
  566. addq $22, $24, $22
  567. stq $23, 16($16)
  568. bis $31, $31, $23
  569. mulq $0, $7, $25
  570. umulh $0, $7, $28
  571. addq $8, $25, $8
  572. cmpult $8, $25, $19
  573. addq $19, $28, $28
  574. addq $22, $28, $22
  575. cmpult $22, $28, $21
  576. addq $23, $21, $23
  577. mulq $2, $5, $20
  578. umulh $2, $5, $17
  579. addq $8, $20, $8
  580. cmpult $8, $20, $27
  581. addq $27, $17, $17
  582. addq $22, $17, $22
  583. cmpult $22, $17, $18
  584. addq $23, $18, $23
  585. mulq $4, $3, $24
  586. umulh $4, $3, $25
  587. addq $8, $24, $8
  588. cmpult $8, $24, $19
  589. addq $19, $25, $25
  590. addq $22, $25, $22
  591. cmpult $22, $25, $28
  592. addq $23, $28, $23
  593. mulq $6, $1, $21
  594. umulh $6, $1, $0
  595. addq $8, $21, $8
  596. cmpult $8, $21, $20
  597. addq $20, $0, $0
  598. addq $22, $0, $22
  599. cmpult $22, $0, $27
  600. addq $23, $27, $23
  601. stq $8, 24($16)
  602. bis $31, $31, $8
  603. mulq $2, $7, $17
  604. umulh $2, $7, $18
  605. addq $22, $17, $22
  606. cmpult $22, $17, $24
  607. addq $24, $18, $18
  608. addq $23, $18, $23
  609. cmpult $23, $18, $19
  610. addq $8, $19, $8
  611. mulq $4, $5, $25
  612. umulh $4, $5, $28
  613. addq $22, $25, $22
  614. cmpult $22, $25, $21
  615. addq $21, $28, $28
  616. addq $23, $28, $23
  617. cmpult $23, $28, $20
  618. addq $8, $20, $8
  619. mulq $6, $3, $0
  620. umulh $6, $3, $27
  621. addq $22, $0, $22
  622. cmpult $22, $0, $1
  623. addq $1, $27, $27
  624. addq $23, $27, $23
  625. cmpult $23, $27, $17
  626. addq $8, $17, $8
  627. stq $22, 32($16)
  628. bis $31, $31, $22
  629. mulq $4, $7, $24
  630. umulh $4, $7, $18
  631. addq $23, $24, $23
  632. cmpult $23, $24, $19
  633. addq $19, $18, $18
  634. addq $8, $18, $8
  635. cmpult $8, $18, $2
  636. addq $22, $2, $22
  637. mulq $6, $5, $25
  638. umulh $6, $5, $21
  639. addq $23, $25, $23
  640. cmpult $23, $25, $28
  641. addq $28, $21, $21
  642. addq $8, $21, $8
  643. cmpult $8, $21, $20
  644. addq $22, $20, $22
  645. stq $23, 40($16)
  646. bis $31, $31, $23
  647. mulq $6, $7, $0
  648. umulh $6, $7, $1
  649. addq $8, $0, $8
  650. cmpult $8, $0, $27
  651. addq $27, $1, $1
  652. addq $22, $1, $22
  653. cmpult $22, $1, $17
  654. addq $23, $17, $23
  655. stq $8, 48($16)
  656. stq $22, 56($16)
  657. ret $31,($26),1
  658. .end bn_mul_comba4
  659. .text
  660. .align 3
  661. .globl bn_mul_comba8
  662. .ent bn_mul_comba8
  663. bn_mul_comba8:
  664. bn_mul_comba8..ng:
  665. .frame $30,0,$26,0
  666. .prologue 0
  667. ldq $1, 0($17)
  668. ldq $2, 0($18)
  669. zapnot $1, 15, $7
  670. srl $2, 32, $8
  671. mulq $8, $7, $22
  672. srl $1, 32, $6
  673. zapnot $2, 15, $5
  674. mulq $5, $6, $4
  675. mulq $7, $5, $24
  676. addq $22, $4, $22
  677. cmpult $22, $4, $1
  678. mulq $6, $8, $3
  679. beq $1, $173
  680. bis $31, 1, $1
  681. sll $1, 32, $1
  682. addq $3, $1, $3
  683. $173:
  684. sll $22, 32, $4
  685. addq $24, $4, $24
  686. stq $24, 0($16)
  687. ldq $2, 0($17)
  688. ldq $1, 8($18)
  689. zapnot $2, 15, $7
  690. srl $1, 32, $8
  691. mulq $8, $7, $25
  692. zapnot $1, 15, $5
  693. mulq $7, $5, $0
  694. srl $2, 32, $6
  695. mulq $5, $6, $23
  696. mulq $6, $8, $6
  697. srl $22, 32, $1
  698. cmpult $24, $4, $2
  699. addq $3, $1, $3
  700. addq $2, $3, $22
  701. addq $25, $23, $25
  702. cmpult $25, $23, $1
  703. bis $31, 1, $2
  704. beq $1, $177
  705. sll $2, 32, $1
  706. addq $6, $1, $6
  707. $177:
  708. sll $25, 32, $23
  709. ldq $1, 0($18)
  710. addq $0, $23, $0
  711. bis $0, $0, $7
  712. ldq $3, 8($17)
  713. addq $22, $7, $22
  714. srl $1, 32, $8
  715. cmpult $22, $7, $4
  716. zapnot $3, 15, $7
  717. mulq $8, $7, $28
  718. zapnot $1, 15, $5
  719. mulq $7, $5, $21
  720. srl $25, 32, $1
  721. cmpult $0, $23, $2
  722. addq $6, $1, $6
  723. addq $2, $6, $6
  724. addq $4, $6, $24
  725. srl $3, 32, $6
  726. mulq $5, $6, $2
  727. mulq $6, $8, $6
  728. addq $28, $2, $28
  729. cmpult $28, $2, $1
  730. bis $31, 1, $2
  731. beq $1, $181
  732. sll $2, 32, $1
  733. addq $6, $1, $6
  734. $181:
  735. sll $28, 32, $2
  736. addq $21, $2, $21
  737. bis $21, $21, $7
  738. addq $22, $7, $22
  739. stq $22, 8($16)
  740. ldq $3, 16($17)
  741. ldq $1, 0($18)
  742. cmpult $22, $7, $4
  743. zapnot $3, 15, $7
  744. srl $1, 32, $8
  745. mulq $8, $7, $22
  746. zapnot $1, 15, $5
  747. mulq $7, $5, $20
  748. srl $28, 32, $1
  749. cmpult $21, $2, $2
  750. addq $6, $1, $6
  751. addq $2, $6, $6
  752. addq $4, $6, $6
  753. addq $24, $6, $24
  754. cmpult $24, $6, $23
  755. srl $3, 32, $6
  756. mulq $5, $6, $2
  757. mulq $6, $8, $6
  758. addq $22, $2, $22
  759. cmpult $22, $2, $1
  760. bis $31, 1, $2
  761. beq $1, $185
  762. sll $2, 32, $1
  763. addq $6, $1, $6
  764. $185:
  765. sll $22, 32, $2
  766. ldq $1, 8($18)
  767. addq $20, $2, $20
  768. bis $20, $20, $7
  769. ldq $4, 8($17)
  770. addq $24, $7, $24
  771. srl $1, 32, $8
  772. cmpult $24, $7, $3
  773. zapnot $4, 15, $7
  774. mulq $8, $7, $25
  775. zapnot $1, 15, $5
  776. mulq $7, $5, $0
  777. srl $22, 32, $1
  778. cmpult $20, $2, $2
  779. addq $6, $1, $6
  780. addq $2, $6, $6
  781. addq $3, $6, $6
  782. addq $23, $6, $23
  783. cmpult $23, $6, $22
  784. srl $4, 32, $6
  785. mulq $5, $6, $5
  786. bis $31, 1, $21
  787. addq $25, $5, $25
  788. cmpult $25, $5, $1
  789. mulq $6, $8, $6
  790. beq $1, $189
  791. sll $21, 32, $1
  792. addq $6, $1, $6
  793. $189:
  794. sll $25, 32, $5
  795. ldq $2, 16($18)
  796. addq $0, $5, $0
  797. bis $0, $0, $7
  798. ldq $4, 0($17)
  799. addq $24, $7, $24
  800. srl $2, 32, $8
  801. cmpult $24, $7, $3
  802. zapnot $4, 15, $7
  803. mulq $8, $7, $28
  804. srl $25, 32, $1
  805. addq $6, $1, $6
  806. cmpult $0, $5, $1
  807. zapnot $2, 15, $5
  808. addq $1, $6, $6
  809. addq $3, $6, $6
  810. addq $23, $6, $23
  811. cmpult $23, $6, $1
  812. srl $4, 32, $6
  813. mulq $5, $6, $25
  814. mulq $7, $5, $2
  815. addq $1, $22, $22
  816. addq $28, $25, $28
  817. cmpult $28, $25, $1
  818. mulq $6, $8, $6
  819. beq $1, $193
  820. sll $21, 32, $1
  821. addq $6, $1, $6
  822. $193:
  823. sll $28, 32, $25
  824. addq $2, $25, $2
  825. bis $2, $2, $7
  826. addq $24, $7, $24
  827. stq $24, 16($16)
  828. ldq $4, 0($17)
  829. ldq $5, 24($18)
  830. cmpult $24, $7, $3
  831. zapnot $4, 15, $7
  832. srl $5, 32, $8
  833. mulq $8, $7, $0
  834. srl $28, 32, $1
  835. cmpult $2, $25, $2
  836. addq $6, $1, $6
  837. addq $2, $6, $6
  838. addq $3, $6, $6
  839. addq $23, $6, $23
  840. cmpult $23, $6, $1
  841. srl $4, 32, $6
  842. zapnot $5, 15, $5
  843. mulq $5, $6, $24
  844. mulq $7, $5, $2
  845. addq $1, $22, $22
  846. addq $0, $24, $0
  847. cmpult $0, $24, $1
  848. mulq $6, $8, $6
  849. beq $1, $197
  850. sll $21, 32, $1
  851. addq $6, $1, $6
  852. $197:
  853. sll $0, 32, $24
  854. ldq $1, 16($18)
  855. addq $2, $24, $2
  856. bis $2, $2, $7
  857. ldq $4, 8($17)
  858. addq $23, $7, $23
  859. srl $1, 32, $8
  860. cmpult $23, $7, $3
  861. zapnot $4, 15, $7
  862. mulq $8, $7, $25
  863. zapnot $1, 15, $5
  864. mulq $7, $5, $21
  865. srl $0, 32, $1
  866. cmpult $2, $24, $2
  867. addq $6, $1, $6
  868. addq $2, $6, $6
  869. addq $3, $6, $6
  870. addq $22, $6, $22
  871. cmpult $22, $6, $24
  872. srl $4, 32, $6
  873. mulq $5, $6, $5
  874. bis $31, 1, $20
  875. addq $25, $5, $25
  876. cmpult $25, $5, $1
  877. mulq $6, $8, $6
  878. beq $1, $201
  879. sll $20, 32, $1
  880. addq $6, $1, $6
  881. $201:
  882. sll $25, 32, $5
  883. ldq $2, 8($18)
  884. addq $21, $5, $21
  885. bis $21, $21, $7
  886. ldq $4, 16($17)
  887. addq $23, $7, $23
  888. srl $2, 32, $8
  889. cmpult $23, $7, $3
  890. zapnot $4, 15, $7
  891. mulq $8, $7, $28
  892. srl $25, 32, $1
  893. addq $6, $1, $6
  894. cmpult $21, $5, $1
  895. zapnot $2, 15, $5
  896. addq $1, $6, $6
  897. addq $3, $6, $6
  898. addq $22, $6, $22
  899. cmpult $22, $6, $1
  900. srl $4, 32, $6
  901. mulq $5, $6, $25
  902. mulq $7, $5, $5
  903. addq $1, $24, $24
  904. addq $28, $25, $28
  905. cmpult $28, $25, $1
  906. mulq $6, $8, $6
  907. beq $1, $205
  908. sll $20, 32, $1
  909. addq $6, $1, $6
  910. $205:
  911. sll $28, 32, $25
  912. ldq $2, 0($18)
  913. addq $5, $25, $5
  914. bis $5, $5, $7
  915. ldq $4, 24($17)
  916. addq $23, $7, $23
  917. srl $2, 32, $8
  918. cmpult $23, $7, $3
  919. zapnot $4, 15, $7
  920. mulq $8, $7, $0
  921. srl $28, 32, $1
  922. addq $6, $1, $6
  923. cmpult $5, $25, $1
  924. zapnot $2, 15, $5
  925. addq $1, $6, $6
  926. addq $3, $6, $6
  927. addq $22, $6, $22
  928. cmpult $22, $6, $1
  929. srl $4, 32, $6
  930. mulq $5, $6, $25
  931. mulq $7, $5, $2
  932. addq $1, $24, $24
  933. addq $0, $25, $0
  934. cmpult $0, $25, $1
  935. mulq $6, $8, $6
  936. beq $1, $209
  937. sll $20, 32, $1
  938. addq $6, $1, $6
  939. $209:
  940. sll $0, 32, $25
  941. addq $2, $25, $2
  942. bis $2, $2, $7
  943. addq $23, $7, $23
  944. stq $23, 24($16)
  945. ldq $4, 32($17)
  946. ldq $5, 0($18)
  947. cmpult $23, $7, $3
  948. zapnot $4, 15, $7
  949. srl $5, 32, $8
  950. mulq $8, $7, $28
  951. srl $0, 32, $1
  952. cmpult $2, $25, $2
  953. addq $6, $1, $6
  954. addq $2, $6, $6
  955. addq $3, $6, $6
  956. addq $22, $6, $22
  957. cmpult $22, $6, $1
  958. srl $4, 32, $6
  959. zapnot $5, 15, $5
  960. mulq $5, $6, $23
  961. mulq $7, $5, $2
  962. addq $1, $24, $24
  963. addq $28, $23, $28
  964. cmpult $28, $23, $1
  965. mulq $6, $8, $6
  966. beq $1, $213
  967. sll $20, 32, $1
  968. addq $6, $1, $6
  969. $213:
  970. sll $28, 32, $23
  971. ldq $1, 8($18)
  972. addq $2, $23, $2
  973. bis $2, $2, $7
  974. ldq $4, 24($17)
  975. addq $22, $7, $22
  976. srl $1, 32, $8
  977. cmpult $22, $7, $3
  978. zapnot $4, 15, $7
  979. mulq $8, $7, $25
  980. zapnot $1, 15, $5
  981. mulq $7, $5, $0
  982. srl $28, 32, $1
  983. cmpult $2, $23, $2
  984. addq $6, $1, $6
  985. addq $2, $6, $6
  986. addq $3, $6, $6
  987. addq $24, $6, $24
  988. cmpult $24, $6, $23
  989. srl $4, 32, $6
  990. mulq $5, $6, $5
  991. bis $31, 1, $21
  992. addq $25, $5, $25
  993. cmpult $25, $5, $1
  994. mulq $6, $8, $6
  995. beq $1, $217
  996. sll $21, 32, $1
  997. addq $6, $1, $6
  998. $217:
  999. sll $25, 32, $5
  1000. ldq $2, 16($18)
  1001. addq $0, $5, $0
  1002. bis $0, $0, $7
  1003. ldq $4, 16($17)
  1004. addq $22, $7, $22
  1005. srl $2, 32, $8
  1006. cmpult $22, $7, $3
  1007. zapnot $4, 15, $7
  1008. mulq $8, $7, $28
  1009. srl $25, 32, $1
  1010. addq $6, $1, $6
  1011. cmpult $0, $5, $1
  1012. zapnot $2, 15, $5
  1013. addq $1, $6, $6
  1014. addq $3, $6, $6
  1015. addq $24, $6, $24
  1016. cmpult $24, $6, $1
  1017. srl $4, 32, $6
  1018. mulq $5, $6, $25
  1019. mulq $7, $5, $5
  1020. addq $1, $23, $23
  1021. addq $28, $25, $28
  1022. cmpult $28, $25, $1
  1023. mulq $6, $8, $6
  1024. beq $1, $221
  1025. sll $21, 32, $1
  1026. addq $6, $1, $6
  1027. $221:
  1028. sll $28, 32, $25
  1029. ldq $2, 24($18)
  1030. addq $5, $25, $5
  1031. bis $5, $5, $7
  1032. ldq $4, 8($17)
  1033. addq $22, $7, $22
  1034. srl $2, 32, $8
  1035. cmpult $22, $7, $3
  1036. zapnot $4, 15, $7
  1037. mulq $8, $7, $0
  1038. srl $28, 32, $1
  1039. addq $6, $1, $6
  1040. cmpult $5, $25, $1
  1041. zapnot $2, 15, $5
  1042. addq $1, $6, $6
  1043. addq $3, $6, $6
  1044. addq $24, $6, $24
  1045. cmpult $24, $6, $1
  1046. srl $4, 32, $6
  1047. mulq $5, $6, $25
  1048. mulq $7, $5, $5
  1049. addq $1, $23, $23
  1050. addq $0, $25, $0
  1051. cmpult $0, $25, $1
  1052. mulq $6, $8, $6
  1053. beq $1, $225
  1054. sll $21, 32, $1
  1055. addq $6, $1, $6
  1056. $225:
  1057. sll $0, 32, $25
  1058. ldq $2, 32($18)
  1059. addq $5, $25, $5
  1060. bis $5, $5, $7
  1061. ldq $4, 0($17)
  1062. addq $22, $7, $22
  1063. srl $2, 32, $8
  1064. cmpult $22, $7, $3
  1065. zapnot $4, 15, $7
  1066. mulq $8, $7, $28
  1067. srl $0, 32, $1
  1068. addq $6, $1, $6
  1069. cmpult $5, $25, $1
  1070. zapnot $2, 15, $5
  1071. addq $1, $6, $6
  1072. addq $3, $6, $6
  1073. addq $24, $6, $24
  1074. cmpult $24, $6, $1
  1075. srl $4, 32, $6
  1076. mulq $5, $6, $25
  1077. mulq $7, $5, $2
  1078. addq $1, $23, $23
  1079. addq $28, $25, $28
  1080. cmpult $28, $25, $1
  1081. mulq $6, $8, $6
  1082. beq $1, $229
  1083. sll $21, 32, $1
  1084. addq $6, $1, $6
  1085. $229:
  1086. sll $28, 32, $25
  1087. addq $2, $25, $2
  1088. bis $2, $2, $7
  1089. addq $22, $7, $22
  1090. stq $22, 32($16)
  1091. ldq $4, 0($17)
  1092. ldq $5, 40($18)
  1093. cmpult $22, $7, $3
  1094. zapnot $4, 15, $7
  1095. srl $5, 32, $8
  1096. mulq $8, $7, $0
  1097. srl $28, 32, $1
  1098. cmpult $2, $25, $2
  1099. addq $6, $1, $6
  1100. addq $2, $6, $6
  1101. addq $3, $6, $6
  1102. addq $24, $6, $24
  1103. cmpult $24, $6, $1
  1104. srl $4, 32, $6
  1105. zapnot $5, 15, $5
  1106. mulq $5, $6, $22
  1107. mulq $7, $5, $2
  1108. addq $1, $23, $23
  1109. addq $0, $22, $0
  1110. cmpult $0, $22, $1
  1111. mulq $6, $8, $6
  1112. beq $1, $233
  1113. sll $21, 32, $1
  1114. addq $6, $1, $6
  1115. $233:
  1116. sll $0, 32, $22
  1117. ldq $1, 32($18)
  1118. addq $2, $22, $2
  1119. bis $2, $2, $7
  1120. ldq $4, 8($17)
  1121. addq $24, $7, $24
  1122. srl $1, 32, $8
  1123. cmpult $24, $7, $3
  1124. zapnot $4, 15, $7
  1125. mulq $8, $7, $25
  1126. zapnot $1, 15, $5
  1127. mulq $7, $5, $21
  1128. srl $0, 32, $1
  1129. cmpult $2, $22, $2
  1130. addq $6, $1, $6
  1131. addq $2, $6, $6
  1132. addq $3, $6, $6
  1133. addq $23, $6, $23
  1134. cmpult $23, $6, $22
  1135. srl $4, 32, $6
  1136. mulq $5, $6, $5
  1137. bis $31, 1, $20
  1138. addq $25, $5, $25
  1139. cmpult $25, $5, $1
  1140. mulq $6, $8, $6
  1141. beq $1, $237
  1142. sll $20, 32, $1
  1143. addq $6, $1, $6
  1144. $237:
  1145. sll $25, 32, $5
  1146. ldq $2, 24($18)
  1147. addq $21, $5, $21
  1148. bis $21, $21, $7
  1149. ldq $4, 16($17)
  1150. addq $24, $7, $24
  1151. srl $2, 32, $8
  1152. cmpult $24, $7, $3
  1153. zapnot $4, 15, $7
  1154. mulq $8, $7, $28
  1155. srl $25, 32, $1
  1156. addq $6, $1, $6
  1157. cmpult $21, $5, $1
  1158. zapnot $2, 15, $5
  1159. addq $1, $6, $6
  1160. addq $3, $6, $6
  1161. addq $23, $6, $23
  1162. cmpult $23, $6, $1
  1163. srl $4, 32, $6
  1164. mulq $5, $6, $25
  1165. mulq $7, $5, $5
  1166. addq $1, $22, $22
  1167. addq $28, $25, $28
  1168. cmpult $28, $25, $1
  1169. mulq $6, $8, $6
  1170. beq $1, $241
  1171. sll $20, 32, $1
  1172. addq $6, $1, $6
  1173. $241:
  1174. sll $28, 32, $25
  1175. ldq $2, 16($18)
  1176. addq $5, $25, $5
  1177. bis $5, $5, $7
  1178. ldq $4, 24($17)
  1179. addq $24, $7, $24
  1180. srl $2, 32, $8
  1181. cmpult $24, $7, $3
  1182. zapnot $4, 15, $7
  1183. mulq $8, $7, $0
  1184. srl $28, 32, $1
  1185. addq $6, $1, $6
  1186. cmpult $5, $25, $1
  1187. zapnot $2, 15, $5
  1188. addq $1, $6, $6
  1189. addq $3, $6, $6
  1190. addq $23, $6, $23
  1191. cmpult $23, $6, $1
  1192. srl $4, 32, $6
  1193. mulq $5, $6, $25
  1194. mulq $7, $5, $5
  1195. addq $1, $22, $22
  1196. addq $0, $25, $0
  1197. cmpult $0, $25, $1
  1198. mulq $6, $8, $6
  1199. beq $1, $245
  1200. sll $20, 32, $1
  1201. addq $6, $1, $6
  1202. $245:
  1203. sll $0, 32, $25
  1204. ldq $2, 8($18)
  1205. addq $5, $25, $5
  1206. bis $5, $5, $7
  1207. ldq $4, 32($17)
  1208. addq $24, $7, $24
  1209. srl $2, 32, $8
  1210. cmpult $24, $7, $3
  1211. zapnot $4, 15, $7
  1212. mulq $8, $7, $28
  1213. srl $0, 32, $1
  1214. addq $6, $1, $6
  1215. cmpult $5, $25, $1
  1216. zapnot $2, 15, $5
  1217. addq $1, $6, $6
  1218. addq $3, $6, $6
  1219. addq $23, $6, $23
  1220. cmpult $23, $6, $1
  1221. srl $4, 32, $6
  1222. mulq $5, $6, $25
  1223. mulq $7, $5, $5
  1224. addq $1, $22, $22
  1225. addq $28, $25, $28
  1226. cmpult $28, $25, $1
  1227. mulq $6, $8, $6
  1228. beq $1, $249
  1229. sll $20, 32, $1
  1230. addq $6, $1, $6
  1231. $249:
  1232. sll $28, 32, $25
  1233. ldq $2, 0($18)
  1234. addq $5, $25, $5
  1235. bis $5, $5, $7
  1236. ldq $4, 40($17)
  1237. addq $24, $7, $24
  1238. srl $2, 32, $8
  1239. cmpult $24, $7, $3
  1240. zapnot $4, 15, $7
  1241. mulq $8, $7, $0
  1242. srl $28, 32, $1
  1243. addq $6, $1, $6
  1244. cmpult $5, $25, $1
  1245. zapnot $2, 15, $5
  1246. addq $1, $6, $6
  1247. addq $3, $6, $6
  1248. addq $23, $6, $23
  1249. cmpult $23, $6, $1
  1250. srl $4, 32, $6
  1251. mulq $5, $6, $25
  1252. mulq $7, $5, $2
  1253. addq $1, $22, $22
  1254. addq $0, $25, $0
  1255. cmpult $0, $25, $1
  1256. mulq $6, $8, $6
  1257. beq $1, $253
  1258. sll $20, 32, $1
  1259. addq $6, $1, $6
  1260. $253:
  1261. sll $0, 32, $25
  1262. addq $2, $25, $2
  1263. bis $2, $2, $7
  1264. addq $24, $7, $24
  1265. stq $24, 40($16)
  1266. ldq $4, 48($17)
  1267. ldq $5, 0($18)
  1268. cmpult $24, $7, $3
  1269. zapnot $4, 15, $7
  1270. srl $5, 32, $8
  1271. mulq $8, $7, $28
  1272. srl $0, 32, $1
  1273. cmpult $2, $25, $2
  1274. addq $6, $1, $6
  1275. addq $2, $6, $6
  1276. addq $3, $6, $6
  1277. addq $23, $6, $23
  1278. cmpult $23, $6, $1
  1279. srl $4, 32, $6
  1280. zapnot $5, 15, $5
  1281. mulq $5, $6, $24
  1282. mulq $7, $5, $2
  1283. addq $1, $22, $22
  1284. addq $28, $24, $28
  1285. cmpult $28, $24, $1
  1286. mulq $6, $8, $6
  1287. beq $1, $257
  1288. sll $20, 32, $1
  1289. addq $6, $1, $6
  1290. $257:
  1291. sll $28, 32, $24
  1292. ldq $1, 8($18)
  1293. addq $2, $24, $2
  1294. bis $2, $2, $7
  1295. ldq $4, 40($17)
  1296. addq $23, $7, $23
  1297. srl $1, 32, $8
  1298. cmpult $23, $7, $3
  1299. zapnot $4, 15, $7
  1300. mulq $8, $7, $25
  1301. zapnot $1, 15, $5
  1302. mulq $7, $5, $0
  1303. srl $28, 32, $1
  1304. cmpult $2, $24, $2
  1305. addq $6, $1, $6
  1306. addq $2, $6, $6
  1307. addq $3, $6, $6
  1308. addq $22, $6, $22
  1309. cmpult $22, $6, $24
  1310. srl $4, 32, $6
  1311. mulq $5, $6, $5
  1312. bis $31, 1, $21
  1313. addq $25, $5, $25
  1314. cmpult $25, $5, $1
  1315. mulq $6, $8, $6
  1316. beq $1, $261
  1317. sll $21, 32, $1
  1318. addq $6, $1, $6
  1319. $261:
  1320. sll $25, 32, $5
  1321. ldq $2, 16($18)
  1322. addq $0, $5, $0
  1323. bis $0, $0, $7
  1324. ldq $4, 32($17)
  1325. addq $23, $7, $23
  1326. srl $2, 32, $8
  1327. cmpult $23, $7, $3
  1328. zapnot $4, 15, $7
  1329. mulq $8, $7, $28
  1330. srl $25, 32, $1
  1331. addq $6, $1, $6
  1332. cmpult $0, $5, $1
  1333. zapnot $2, 15, $5
  1334. addq $1, $6, $6
  1335. addq $3, $6, $6
  1336. addq $22, $6, $22
  1337. cmpult $22, $6, $1
  1338. srl $4, 32, $6
  1339. mulq $5, $6, $25
  1340. mulq $7, $5, $5
  1341. addq $1, $24, $24
  1342. addq $28, $25, $28
  1343. cmpult $28, $25, $1
  1344. mulq $6, $8, $6
  1345. beq $1, $265
  1346. sll $21, 32, $1
  1347. addq $6, $1, $6
  1348. $265:
  1349. sll $28, 32, $25
  1350. ldq $2, 24($18)
  1351. addq $5, $25, $5
  1352. bis $5, $5, $7
  1353. ldq $4, 24($17)
  1354. addq $23, $7, $23
  1355. srl $2, 32, $8
  1356. cmpult $23, $7, $3
  1357. zapnot $4, 15, $7
  1358. mulq $8, $7, $0
  1359. srl $28, 32, $1
  1360. addq $6, $1, $6
  1361. cmpult $5, $25, $1
  1362. zapnot $2, 15, $5
  1363. addq $1, $6, $6
  1364. addq $3, $6, $6
  1365. addq $22, $6, $22
  1366. cmpult $22, $6, $1
  1367. srl $4, 32, $6
  1368. mulq $5, $6, $25
  1369. mulq $7, $5, $5
  1370. addq $1, $24, $24
  1371. addq $0, $25, $0
  1372. cmpult $0, $25, $1
  1373. mulq $6, $8, $6
  1374. beq $1, $269
  1375. sll $21, 32, $1
  1376. addq $6, $1, $6
  1377. $269:
  1378. sll $0, 32, $25
  1379. ldq $2, 32($18)
  1380. addq $5, $25, $5
  1381. bis $5, $5, $7
  1382. ldq $4, 16($17)
  1383. addq $23, $7, $23
  1384. srl $2, 32, $8
  1385. cmpult $23, $7, $3
  1386. zapnot $4, 15, $7
  1387. mulq $8, $7, $28
  1388. srl $0, 32, $1
  1389. addq $6, $1, $6
  1390. cmpult $5, $25, $1
  1391. zapnot $2, 15, $5
  1392. addq $1, $6, $6
  1393. addq $3, $6, $6
  1394. addq $22, $6, $22
  1395. cmpult $22, $6, $1
  1396. srl $4, 32, $6
  1397. mulq $5, $6, $25
  1398. mulq $7, $5, $5
  1399. addq $1, $24, $24
  1400. addq $28, $25, $28
  1401. cmpult $28, $25, $1
  1402. mulq $6, $8, $6
  1403. beq $1, $273
  1404. sll $21, 32, $1
  1405. addq $6, $1, $6
  1406. $273:
  1407. sll $28, 32, $25
  1408. ldq $2, 40($18)
  1409. addq $5, $25, $5
  1410. bis $5, $5, $7
  1411. ldq $4, 8($17)
  1412. addq $23, $7, $23
  1413. srl $2, 32, $8
  1414. cmpult $23, $7, $3
  1415. zapnot $4, 15, $7
  1416. mulq $8, $7, $0
  1417. srl $28, 32, $1
  1418. addq $6, $1, $6
  1419. cmpult $5, $25, $1
  1420. zapnot $2, 15, $5
  1421. addq $1, $6, $6
  1422. addq $3, $6, $6
  1423. addq $22, $6, $22
  1424. cmpult $22, $6, $1
  1425. srl $4, 32, $6
  1426. mulq $5, $6, $25
  1427. mulq $7, $5, $5
  1428. addq $1, $24, $24
  1429. addq $0, $25, $0
  1430. cmpult $0, $25, $1
  1431. mulq $6, $8, $6
  1432. beq $1, $277
  1433. sll $21, 32, $1
  1434. addq $6, $1, $6
  1435. $277:
  1436. sll $0, 32, $25
  1437. ldq $2, 48($18)
  1438. addq $5, $25, $5
  1439. bis $5, $5, $7
  1440. ldq $4, 0($17)
  1441. addq $23, $7, $23
  1442. srl $2, 32, $8
  1443. cmpult $23, $7, $3
  1444. zapnot $4, 15, $7
  1445. mulq $8, $7, $28
  1446. srl $0, 32, $1
  1447. addq $6, $1, $6
  1448. cmpult $5, $25, $1
  1449. zapnot $2, 15, $5
  1450. addq $1, $6, $6
  1451. addq $3, $6, $6
  1452. addq $22, $6, $22
  1453. cmpult $22, $6, $1
  1454. srl $4, 32, $6
  1455. mulq $5, $6, $25
  1456. mulq $7, $5, $2
  1457. addq $1, $24, $24
  1458. addq $28, $25, $28
  1459. cmpult $28, $25, $1
  1460. mulq $6, $8, $6
  1461. beq $1, $281
  1462. sll $21, 32, $1
  1463. addq $6, $1, $6
  1464. $281:
  1465. sll $28, 32, $25
  1466. addq $2, $25, $2
  1467. bis $2, $2, $7
  1468. addq $23, $7, $23
  1469. stq $23, 48($16)
  1470. ldq $4, 0($17)
  1471. ldq $5, 56($18)
  1472. cmpult $23, $7, $3
  1473. zapnot $4, 15, $7
  1474. srl $5, 32, $8
  1475. mulq $8, $7, $0
  1476. srl $28, 32, $1
  1477. cmpult $2, $25, $2
  1478. addq $6, $1, $6
  1479. addq $2, $6, $6
  1480. addq $3, $6, $6
  1481. addq $22, $6, $22
  1482. cmpult $22, $6, $1
  1483. srl $4, 32, $6
  1484. zapnot $5, 15, $5
  1485. mulq $5, $6, $23
  1486. mulq $7, $5, $2
  1487. addq $1, $24, $24
  1488. addq $0, $23, $0
  1489. cmpult $0, $23, $1
  1490. mulq $6, $8, $6
  1491. beq $1, $285
  1492. sll $21, 32, $1
  1493. addq $6, $1, $6
  1494. $285:
  1495. sll $0, 32, $23
  1496. ldq $1, 48($18)
  1497. addq $2, $23, $2
  1498. bis $2, $2, $7
  1499. ldq $4, 8($17)
  1500. addq $22, $7, $22
  1501. srl $1, 32, $8
  1502. cmpult $22, $7, $3
  1503. zapnot $4, 15, $7
  1504. mulq $8, $7, $25
  1505. zapnot $1, 15, $5
  1506. mulq $7, $5, $21
  1507. srl $0, 32, $1
  1508. cmpult $2, $23, $2
  1509. addq $6, $1, $6
  1510. addq $2, $6, $6
  1511. addq $3, $6, $6
  1512. addq $24, $6, $24
  1513. cmpult $24, $6, $23
  1514. srl $4, 32, $6
  1515. mulq $5, $6, $5
  1516. bis $31, 1, $20
  1517. addq $25, $5, $25
  1518. cmpult $25, $5, $1
  1519. mulq $6, $8, $6
  1520. beq $1, $289
  1521. sll $20, 32, $1
  1522. addq $6, $1, $6
  1523. $289:
  1524. sll $25, 32, $5
  1525. ldq $2, 40($18)
  1526. addq $21, $5, $21
  1527. bis $21, $21, $7
  1528. ldq $4, 16($17)
  1529. addq $22, $7, $22
  1530. srl $2, 32, $8
  1531. cmpult $22, $7, $3
  1532. zapnot $4, 15, $7
  1533. mulq $8, $7, $28
  1534. srl $25, 32, $1
  1535. addq $6, $1, $6
  1536. cmpult $21, $5, $1
  1537. zapnot $2, 15, $5
  1538. addq $1, $6, $6
  1539. addq $3, $6, $6
  1540. addq $24, $6, $24
  1541. cmpult $24, $6, $1
  1542. srl $4, 32, $6
  1543. mulq $5, $6, $25
  1544. mulq $7, $5, $5
  1545. addq $1, $23, $23
  1546. addq $28, $25, $28
  1547. cmpult $28, $25, $1
  1548. mulq $6, $8, $6
  1549. beq $1, $293
  1550. sll $20, 32, $1
  1551. addq $6, $1, $6
  1552. $293:
  1553. sll $28, 32, $25
  1554. ldq $2, 32($18)
  1555. addq $5, $25, $5
  1556. bis $5, $5, $7
  1557. ldq $4, 24($17)
  1558. addq $22, $7, $22
  1559. srl $2, 32, $8
  1560. cmpult $22, $7, $3
  1561. zapnot $4, 15, $7
  1562. mulq $8, $7, $0
  1563. srl $28, 32, $1
  1564. addq $6, $1, $6
  1565. cmpult $5, $25, $1
  1566. zapnot $2, 15, $5
  1567. addq $1, $6, $6
  1568. addq $3, $6, $6
  1569. addq $24, $6, $24
  1570. cmpult $24, $6, $1
  1571. srl $4, 32, $6
  1572. mulq $5, $6, $25
  1573. mulq $7, $5, $5
  1574. addq $1, $23, $23
  1575. addq $0, $25, $0
  1576. cmpult $0, $25, $1
  1577. mulq $6, $8, $6
  1578. beq $1, $297
  1579. sll $20, 32, $1
  1580. addq $6, $1, $6
  1581. $297:
  1582. sll $0, 32, $25
  1583. ldq $2, 24($18)
  1584. addq $5, $25, $5
  1585. bis $5, $5, $7
  1586. ldq $4, 32($17)
  1587. addq $22, $7, $22
  1588. srl $2, 32, $8
  1589. cmpult $22, $7, $3
  1590. zapnot $4, 15, $7
  1591. mulq $8, $7, $28
  1592. srl $0, 32, $1
  1593. addq $6, $1, $6
  1594. cmpult $5, $25, $1
  1595. zapnot $2, 15, $5
  1596. addq $1, $6, $6
  1597. addq $3, $6, $6
  1598. addq $24, $6, $24
  1599. cmpult $24, $6, $1
  1600. srl $4, 32, $6
  1601. mulq $5, $6, $25
  1602. mulq $7, $5, $5
  1603. addq $1, $23, $23
  1604. addq $28, $25, $28
  1605. cmpult $28, $25, $1
  1606. mulq $6, $8, $6
  1607. beq $1, $301
  1608. sll $20, 32, $1
  1609. addq $6, $1, $6
  1610. $301:
  1611. sll $28, 32, $25
  1612. ldq $2, 16($18)
  1613. addq $5, $25, $5
  1614. bis $5, $5, $7
  1615. ldq $4, 40($17)
  1616. addq $22, $7, $22
  1617. srl $2, 32, $8
  1618. cmpult $22, $7, $3
  1619. zapnot $4, 15, $7
  1620. mulq $8, $7, $0
  1621. srl $28, 32, $1
  1622. addq $6, $1, $6
  1623. cmpult $5, $25, $1
  1624. zapnot $2, 15, $5
  1625. addq $1, $6, $6
  1626. addq $3, $6, $6
  1627. addq $24, $6, $24
  1628. cmpult $24, $6, $1
  1629. srl $4, 32, $6
  1630. mulq $5, $6, $25
  1631. mulq $7, $5, $5
  1632. addq $1, $23, $23
  1633. addq $0, $25, $0
  1634. cmpult $0, $25, $1
  1635. mulq $6, $8, $6
  1636. beq $1, $305
  1637. sll $20, 32, $1
  1638. addq $6, $1, $6
  1639. $305:
  1640. sll $0, 32, $25
  1641. ldq $2, 8($18)
  1642. addq $5, $25, $5
  1643. bis $5, $5, $7
  1644. ldq $4, 48($17)
  1645. addq $22, $7, $22
  1646. srl $2, 32, $8
  1647. cmpult $22, $7, $3
  1648. zapnot $4, 15, $7
  1649. mulq $8, $7, $28
  1650. srl $0, 32, $1
  1651. addq $6, $1, $6
  1652. cmpult $5, $25, $1
  1653. zapnot $2, 15, $5
  1654. addq $1, $6, $6
  1655. addq $3, $6, $6
  1656. addq $24, $6, $24
  1657. cmpult $24, $6, $1
  1658. srl $4, 32, $6
  1659. mulq $5, $6, $25
  1660. mulq $7, $5, $5
  1661. addq $1, $23, $23
  1662. addq $28, $25, $28
  1663. cmpult $28, $25, $1
  1664. mulq $6, $8, $6
  1665. beq $1, $309
  1666. sll $20, 32, $1
  1667. addq $6, $1, $6
  1668. $309:
  1669. sll $28, 32, $25
  1670. ldq $2, 0($18)
  1671. addq $5, $25, $5
  1672. bis $5, $5, $7
  1673. ldq $4, 56($17)
  1674. addq $22, $7, $22
  1675. srl $2, 32, $8
  1676. cmpult $22, $7, $3
  1677. zapnot $4, 15, $7
  1678. mulq $8, $7, $0
  1679. srl $28, 32, $1
  1680. addq $6, $1, $6
  1681. cmpult $5, $25, $1
  1682. zapnot $2, 15, $5
  1683. addq $1, $6, $6
  1684. addq $3, $6, $6
  1685. addq $24, $6, $24
  1686. cmpult $24, $6, $1
  1687. srl $4, 32, $6
  1688. mulq $5, $6, $25
  1689. mulq $7, $5, $2
  1690. addq $1, $23, $23
  1691. addq $0, $25, $0
  1692. cmpult $0, $25, $1
  1693. mulq $6, $8, $6
  1694. beq $1, $313
  1695. sll $20, 32, $1
  1696. addq $6, $1, $6
  1697. $313:
  1698. sll $0, 32, $25
  1699. addq $2, $25, $2
  1700. bis $2, $2, $7
  1701. addq $22, $7, $22
  1702. stq $22, 56($16)
  1703. ldq $4, 56($17)
  1704. ldq $5, 8($18)
  1705. cmpult $22, $7, $3
  1706. zapnot $4, 15, $7
  1707. srl $5, 32, $8
  1708. mulq $8, $7, $28
  1709. srl $0, 32, $1
  1710. cmpult $2, $25, $2
  1711. addq $6, $1, $6
  1712. addq $2, $6, $6
  1713. addq $3, $6, $6
  1714. addq $24, $6, $24
  1715. cmpult $24, $6, $1
  1716. srl $4, 32, $6
  1717. zapnot $5, 15, $5
  1718. mulq $5, $6, $22
  1719. mulq $7, $5, $2
  1720. addq $1, $23, $23
  1721. addq $28, $22, $28
  1722. cmpult $28, $22, $1
  1723. mulq $6, $8, $6
  1724. beq $1, $317
  1725. sll $20, 32, $1
  1726. addq $6, $1, $6
  1727. $317:
  1728. sll $28, 32, $22
  1729. ldq $1, 16($18)
  1730. addq $2, $22, $2
  1731. bis $2, $2, $7
  1732. ldq $4, 48($17)
  1733. addq $24, $7, $24
  1734. srl $1, 32, $8
  1735. cmpult $24, $7, $3
  1736. zapnot $4, 15, $7
  1737. mulq $8, $7, $25
  1738. zapnot $1, 15, $5
  1739. mulq $7, $5, $0
  1740. srl $28, 32, $1
  1741. cmpult $2, $22, $2
  1742. addq $6, $1, $6
  1743. addq $2, $6, $6
  1744. addq $3, $6, $6
  1745. addq $23, $6, $23
  1746. cmpult $23, $6, $22
  1747. srl $4, 32, $6
  1748. mulq $5, $6, $5
  1749. bis $31, 1, $21
  1750. addq $25, $5, $25
  1751. cmpult $25, $5, $1
  1752. mulq $6, $8, $6
  1753. beq $1, $321
  1754. sll $21, 32, $1
  1755. addq $6, $1, $6
  1756. $321:
  1757. sll $25, 32, $5
  1758. ldq $2, 24($18)
  1759. addq $0, $5, $0
  1760. bis $0, $0, $7
  1761. ldq $4, 40($17)
  1762. addq $24, $7, $24
  1763. srl $2, 32, $8
  1764. cmpult $24, $7, $3
  1765. zapnot $4, 15, $7
  1766. mulq $8, $7, $28
  1767. srl $25, 32, $1
  1768. addq $6, $1, $6
  1769. cmpult $0, $5, $1
  1770. zapnot $2, 15, $5
  1771. addq $1, $6, $6
  1772. addq $3, $6, $6
  1773. addq $23, $6, $23
  1774. cmpult $23, $6, $1
  1775. srl $4, 32, $6
  1776. mulq $5, $6, $25
  1777. mulq $7, $5, $5
  1778. addq $1, $22, $22
  1779. addq $28, $25, $28
  1780. cmpult $28, $25, $1
  1781. mulq $6, $8, $6
  1782. beq $1, $325
  1783. sll $21, 32, $1
  1784. addq $6, $1, $6
  1785. $325:
  1786. sll $28, 32, $25
  1787. ldq $2, 32($18)
  1788. addq $5, $25, $5
  1789. bis $5, $5, $7
  1790. ldq $4, 32($17)
  1791. addq $24, $7, $24
  1792. srl $2, 32, $8
  1793. cmpult $24, $7, $3
  1794. zapnot $4, 15, $7
  1795. mulq $8, $7, $0
  1796. srl $28, 32, $1
  1797. addq $6, $1, $6
  1798. cmpult $5, $25, $1
  1799. zapnot $2, 15, $5
  1800. addq $1, $6, $6
  1801. addq $3, $6, $6
  1802. addq $23, $6, $23
  1803. cmpult $23, $6, $1
  1804. srl $4, 32, $6
  1805. mulq $5, $6, $25
  1806. mulq $7, $5, $5
  1807. addq $1, $22, $22
  1808. addq $0, $25, $0
  1809. cmpult $0, $25, $1
  1810. mulq $6, $8, $6
  1811. beq $1, $329
  1812. sll $21, 32, $1
  1813. addq $6, $1, $6
  1814. $329:
  1815. sll $0, 32, $25
  1816. ldq $2, 40($18)
  1817. addq $5, $25, $5
  1818. bis $5, $5, $7
  1819. ldq $4, 24($17)
  1820. addq $24, $7, $24
  1821. srl $2, 32, $8
  1822. cmpult $24, $7, $3
  1823. zapnot $4, 15, $7
  1824. mulq $8, $7, $28
  1825. srl $0, 32, $1
  1826. addq $6, $1, $6
  1827. cmpult $5, $25, $1
  1828. zapnot $2, 15, $5
  1829. addq $1, $6, $6
  1830. addq $3, $6, $6
  1831. addq $23, $6, $23
  1832. cmpult $23, $6, $1
  1833. srl $4, 32, $6
  1834. mulq $5, $6, $25
  1835. mulq $7, $5, $5
  1836. addq $1, $22, $22
  1837. addq $28, $25, $28
  1838. cmpult $28, $25, $1
  1839. mulq $6, $8, $6
  1840. beq $1, $333
  1841. sll $21, 32, $1
  1842. addq $6, $1, $6
  1843. $333:
  1844. sll $28, 32, $25
  1845. ldq $2, 48($18)
  1846. addq $5, $25, $5
  1847. bis $5, $5, $7
  1848. ldq $4, 16($17)
  1849. addq $24, $7, $24
  1850. srl $2, 32, $8
  1851. cmpult $24, $7, $3
  1852. zapnot $4, 15, $7
  1853. mulq $8, $7, $0
  1854. srl $28, 32, $1
  1855. addq $6, $1, $6
  1856. cmpult $5, $25, $1
  1857. zapnot $2, 15, $5
  1858. addq $1, $6, $6
  1859. addq $3, $6, $6
  1860. addq $23, $6, $23
  1861. cmpult $23, $6, $1
  1862. srl $4, 32, $6
  1863. mulq $5, $6, $25
  1864. mulq $7, $5, $5
  1865. addq $1, $22, $22
  1866. addq $0, $25, $0
  1867. cmpult $0, $25, $1
  1868. mulq $6, $8, $6
  1869. beq $1, $337
  1870. sll $21, 32, $1
  1871. addq $6, $1, $6
  1872. $337:
  1873. sll $0, 32, $25
  1874. ldq $2, 56($18)
  1875. addq $5, $25, $5
  1876. bis $5, $5, $7
  1877. ldq $4, 8($17)
  1878. addq $24, $7, $24
  1879. srl $2, 32, $8
  1880. cmpult $24, $7, $3
  1881. zapnot $4, 15, $7
  1882. mulq $8, $7, $28
  1883. srl $0, 32, $1
  1884. addq $6, $1, $6
  1885. cmpult $5, $25, $1
  1886. zapnot $2, 15, $5
  1887. addq $1, $6, $6
  1888. addq $3, $6, $6
  1889. addq $23, $6, $23
  1890. cmpult $23, $6, $1
  1891. srl $4, 32, $6
  1892. mulq $5, $6, $25
  1893. mulq $7, $5, $2
  1894. addq $1, $22, $22
  1895. addq $28, $25, $28
  1896. cmpult $28, $25, $1
  1897. mulq $6, $8, $6
  1898. beq $1, $341
  1899. sll $21, 32, $1
  1900. addq $6, $1, $6
  1901. $341:
  1902. sll $28, 32, $25
  1903. addq $2, $25, $2
  1904. bis $2, $2, $7
  1905. addq $24, $7, $24
  1906. stq $24, 64($16)
  1907. ldq $4, 16($17)
  1908. ldq $5, 56($18)
  1909. cmpult $24, $7, $3
  1910. zapnot $4, 15, $7
  1911. srl $5, 32, $8
  1912. mulq $8, $7, $0
  1913. srl $28, 32, $1
  1914. cmpult $2, $25, $2
  1915. addq $6, $1, $6
  1916. addq $2, $6, $6
  1917. addq $3, $6, $6
  1918. addq $23, $6, $23
  1919. cmpult $23, $6, $1
  1920. srl $4, 32, $6
  1921. zapnot $5, 15, $5
  1922. mulq $5, $6, $24
  1923. mulq $7, $5, $2
  1924. addq $1, $22, $22
  1925. addq $0, $24, $0
  1926. cmpult $0, $24, $1
  1927. mulq $6, $8, $6
  1928. beq $1, $345
  1929. sll $21, 32, $1
  1930. addq $6, $1, $6
  1931. $345:
  1932. sll $0, 32, $24
  1933. ldq $1, 48($18)
  1934. addq $2, $24, $2
  1935. bis $2, $2, $7
  1936. ldq $4, 24($17)
  1937. addq $23, $7, $23
  1938. srl $1, 32, $8
  1939. cmpult $23, $7, $3
  1940. zapnot $4, 15, $7
  1941. mulq $8, $7, $25
  1942. zapnot $1, 15, $5
  1943. mulq $7, $5, $21
  1944. srl $0, 32, $1
  1945. cmpult $2, $24, $2
  1946. addq $6, $1, $6
  1947. addq $2, $6, $6
  1948. addq $3, $6, $6
  1949. addq $22, $6, $22
  1950. cmpult $22, $6, $24
  1951. srl $4, 32, $6
  1952. mulq $5, $6, $5
  1953. bis $31, 1, $20
  1954. addq $25, $5, $25
  1955. cmpult $25, $5, $1
  1956. mulq $6, $8, $6
  1957. beq $1, $349
  1958. sll $20, 32, $1
  1959. addq $6, $1, $6
  1960. $349:
  1961. sll $25, 32, $5
  1962. ldq $2, 40($18)
  1963. addq $21, $5, $21
  1964. bis $21, $21, $7
  1965. ldq $4, 32($17)
  1966. addq $23, $7, $23
  1967. srl $2, 32, $8
  1968. cmpult $23, $7, $3
  1969. zapnot $4, 15, $7
  1970. mulq $8, $7, $28
  1971. srl $25, 32, $1
  1972. addq $6, $1, $6
  1973. cmpult $21, $5, $1
  1974. zapnot $2, 15, $5
  1975. addq $1, $6, $6
  1976. addq $3, $6, $6
  1977. addq $22, $6, $22
  1978. cmpult $22, $6, $1
  1979. srl $4, 32, $6
  1980. mulq $5, $6, $25
  1981. mulq $7, $5, $5
  1982. addq $1, $24, $24
  1983. addq $28, $25, $28
  1984. cmpult $28, $25, $1
  1985. mulq $6, $8, $6
  1986. beq $1, $353
  1987. sll $20, 32, $1
  1988. addq $6, $1, $6
  1989. $353:
  1990. sll $28, 32, $25
  1991. ldq $2, 32($18)
  1992. addq $5, $25, $5
  1993. bis $5, $5, $7
  1994. ldq $4, 40($17)
  1995. addq $23, $7, $23
  1996. srl $2, 32, $8
  1997. cmpult $23, $7, $3
  1998. zapnot $4, 15, $7
  1999. mulq $8, $7, $0
  2000. srl $28, 32, $1
  2001. addq $6, $1, $6
  2002. cmpult $5, $25, $1
  2003. zapnot $2, 15, $5
  2004. addq $1, $6, $6
  2005. addq $3, $6, $6
  2006. addq $22, $6, $22
  2007. cmpult $22, $6, $1
  2008. srl $4, 32, $6
  2009. mulq $5, $6, $25
  2010. mulq $7, $5, $5
  2011. addq $1, $24, $24
  2012. addq $0, $25, $0
  2013. cmpult $0, $25, $1
  2014. mulq $6, $8, $6
  2015. beq $1, $357
  2016. sll $20, 32, $1
  2017. addq $6, $1, $6
  2018. $357:
  2019. sll $0, 32, $25
  2020. ldq $2, 24($18)
  2021. addq $5, $25, $5
  2022. bis $5, $5, $7
  2023. ldq $4, 48($17)
  2024. addq $23, $7, $23
  2025. srl $2, 32, $8
  2026. cmpult $23, $7, $3
  2027. zapnot $4, 15, $7
  2028. mulq $8, $7, $28
  2029. srl $0, 32, $1
  2030. addq $6, $1, $6
  2031. cmpult $5, $25, $1
  2032. zapnot $2, 15, $5
  2033. addq $1, $6, $6
  2034. addq $3, $6, $6
  2035. addq $22, $6, $22
  2036. cmpult $22, $6, $1
  2037. srl $4, 32, $6
  2038. mulq $5, $6, $25
  2039. mulq $7, $5, $5
  2040. addq $1, $24, $24
  2041. addq $28, $25, $28
  2042. cmpult $28, $25, $1
  2043. mulq $6, $8, $6
  2044. beq $1, $361
  2045. sll $20, 32, $1
  2046. addq $6, $1, $6
  2047. $361:
  2048. sll $28, 32, $25
  2049. ldq $2, 16($18)
  2050. addq $5, $25, $5
  2051. bis $5, $5, $7
  2052. ldq $4, 56($17)
  2053. addq $23, $7, $23
  2054. srl $2, 32, $8
  2055. cmpult $23, $7, $3
  2056. zapnot $4, 15, $7
  2057. mulq $8, $7, $0
  2058. srl $28, 32, $1
  2059. addq $6, $1, $6
  2060. cmpult $5, $25, $1
  2061. zapnot $2, 15, $5
  2062. addq $1, $6, $6
  2063. addq $3, $6, $6
  2064. addq $22, $6, $22
  2065. cmpult $22, $6, $1
  2066. srl $4, 32, $6
  2067. mulq $5, $6, $25
  2068. mulq $7, $5, $2
  2069. addq $1, $24, $24
  2070. addq $0, $25, $0
  2071. cmpult $0, $25, $1
  2072. mulq $6, $8, $6
  2073. beq $1, $365
  2074. sll $20, 32, $1
  2075. addq $6, $1, $6
  2076. $365:
  2077. sll $0, 32, $25
  2078. addq $2, $25, $2
  2079. bis $2, $2, $7
  2080. addq $23, $7, $23
  2081. stq $23, 72($16)
  2082. ldq $4, 56($17)
  2083. ldq $5, 24($18)
  2084. cmpult $23, $7, $3
  2085. zapnot $4, 15, $7
  2086. srl $5, 32, $8
  2087. mulq $8, $7, $28
  2088. srl $0, 32, $1
  2089. cmpult $2, $25, $2
  2090. addq $6, $1, $6
  2091. addq $2, $6, $6
  2092. addq $3, $6, $6
  2093. addq $22, $6, $22
  2094. cmpult $22, $6, $1
  2095. srl $4, 32, $6
  2096. zapnot $5, 15, $5
  2097. mulq $5, $6, $23
  2098. mulq $7, $5, $2
  2099. addq $1, $24, $24
  2100. addq $28, $23, $28
  2101. cmpult $28, $23, $1
  2102. mulq $6, $8, $6
  2103. beq $1, $369
  2104. sll $20, 32, $1
  2105. addq $6, $1, $6
  2106. $369:
  2107. sll $28, 32, $23
  2108. ldq $1, 32($18)
  2109. addq $2, $23, $2
  2110. bis $2, $2, $7
  2111. ldq $4, 48($17)
  2112. addq $22, $7, $22
  2113. srl $1, 32, $8
  2114. cmpult $22, $7, $3
  2115. zapnot $4, 15, $7
  2116. mulq $8, $7, $25
  2117. zapnot $1, 15, $5
  2118. mulq $7, $5, $0
  2119. srl $28, 32, $1
  2120. cmpult $2, $23, $2
  2121. addq $6, $1, $6
  2122. addq $2, $6, $6
  2123. addq $3, $6, $6
  2124. addq $24, $6, $24
  2125. cmpult $24, $6, $23
  2126. srl $4, 32, $6
  2127. mulq $5, $6, $5
  2128. bis $31, 1, $21
  2129. addq $25, $5, $25
  2130. cmpult $25, $5, $1
  2131. mulq $6, $8, $6
  2132. beq $1, $373
  2133. sll $21, 32, $1
  2134. addq $6, $1, $6
  2135. $373:
  2136. sll $25, 32, $5
  2137. ldq $2, 40($18)
  2138. addq $0, $5, $0
  2139. bis $0, $0, $7
  2140. ldq $4, 40($17)
  2141. addq $22, $7, $22
  2142. srl $2, 32, $8
  2143. cmpult $22, $7, $3
  2144. zapnot $4, 15, $7
  2145. mulq $8, $7, $28
  2146. srl $25, 32, $1
  2147. addq $6, $1, $6
  2148. cmpult $0, $5, $1
  2149. zapnot $2, 15, $5
  2150. addq $1, $6, $6
  2151. addq $3, $6, $6
  2152. addq $24, $6, $24
  2153. cmpult $24, $6, $1
  2154. srl $4, 32, $6
  2155. mulq $5, $6, $25
  2156. mulq $7, $5, $5
  2157. addq $1, $23, $23
  2158. addq $28, $25, $28
  2159. cmpult $28, $25, $1
  2160. mulq $6, $8, $6
  2161. beq $1, $377
  2162. sll $21, 32, $1
  2163. addq $6, $1, $6
  2164. $377:
  2165. sll $28, 32, $25
  2166. ldq $2, 48($18)
  2167. addq $5, $25, $5
  2168. bis $5, $5, $7
  2169. ldq $4, 32($17)
  2170. addq $22, $7, $22
  2171. srl $2, 32, $8
  2172. cmpult $22, $7, $3
  2173. zapnot $4, 15, $7
  2174. mulq $8, $7, $0
  2175. srl $28, 32, $1
  2176. addq $6, $1, $6
  2177. cmpult $5, $25, $1
  2178. zapnot $2, 15, $5
  2179. addq $1, $6, $6
  2180. addq $3, $6, $6
  2181. addq $24, $6, $24
  2182. cmpult $24, $6, $1
  2183. srl $4, 32, $6
  2184. mulq $5, $6, $25
  2185. mulq $7, $5, $5
  2186. addq $1, $23, $23
  2187. addq $0, $25, $0
  2188. cmpult $0, $25, $1
  2189. mulq $6, $8, $6
  2190. beq $1, $381
  2191. sll $21, 32, $1
  2192. addq $6, $1, $6
  2193. $381:
  2194. sll $0, 32, $25
  2195. ldq $2, 56($18)
  2196. addq $5, $25, $5
  2197. bis $5, $5, $7
  2198. ldq $4, 24($17)
  2199. addq $22, $7, $22
  2200. srl $2, 32, $8
  2201. cmpult $22, $7, $3
  2202. zapnot $4, 15, $7
  2203. mulq $8, $7, $28
  2204. srl $0, 32, $1
  2205. addq $6, $1, $6
  2206. cmpult $5, $25, $1
  2207. zapnot $2, 15, $5
  2208. addq $1, $6, $6
  2209. addq $3, $6, $6
  2210. addq $24, $6, $24
  2211. cmpult $24, $6, $1
  2212. srl $4, 32, $6
  2213. mulq $5, $6, $25
  2214. mulq $7, $5, $2
  2215. addq $1, $23, $23
  2216. addq $28, $25, $28
  2217. cmpult $28, $25, $1
  2218. mulq $6, $8, $6
  2219. beq $1, $385
  2220. sll $21, 32, $1
  2221. addq $6, $1, $6
  2222. $385:
  2223. sll $28, 32, $25
  2224. addq $2, $25, $2
  2225. bis $2, $2, $7
  2226. addq $22, $7, $22
  2227. stq $22, 80($16)
  2228. ldq $4, 32($17)
  2229. ldq $5, 56($18)
  2230. cmpult $22, $7, $3
  2231. zapnot $4, 15, $7
  2232. srl $5, 32, $8
  2233. mulq $8, $7, $0
  2234. srl $28, 32, $1
  2235. cmpult $2, $25, $2
  2236. addq $6, $1, $6
  2237. addq $2, $6, $6
  2238. addq $3, $6, $6
  2239. addq $24, $6, $24
  2240. cmpult $24, $6, $1
  2241. srl $4, 32, $6
  2242. zapnot $5, 15, $5
  2243. mulq $5, $6, $22
  2244. mulq $7, $5, $2
  2245. addq $1, $23, $23
  2246. addq $0, $22, $0
  2247. cmpult $0, $22, $1
  2248. mulq $6, $8, $6
  2249. beq $1, $389
  2250. sll $21, 32, $1
  2251. addq $6, $1, $6
  2252. $389:
  2253. sll $0, 32, $22
  2254. ldq $1, 48($18)
  2255. addq $2, $22, $2
  2256. bis $2, $2, $7
  2257. ldq $4, 40($17)
  2258. addq $24, $7, $24
  2259. srl $1, 32, $8
  2260. cmpult $24, $7, $3
  2261. zapnot $4, 15, $7
  2262. mulq $8, $7, $25
  2263. zapnot $1, 15, $5
  2264. mulq $7, $5, $21
  2265. srl $0, 32, $1
  2266. cmpult $2, $22, $2
  2267. addq $6, $1, $6
  2268. addq $2, $6, $6
  2269. addq $3, $6, $6
  2270. addq $23, $6, $23
  2271. cmpult $23, $6, $22
  2272. srl $4, 32, $6
  2273. mulq $5, $6, $5
  2274. bis $31, 1, $20
  2275. addq $25, $5, $25
  2276. cmpult $25, $5, $1
  2277. mulq $6, $8, $6
  2278. beq $1, $393
  2279. sll $20, 32, $1
  2280. addq $6, $1, $6
  2281. $393:
  2282. sll $25, 32, $5
  2283. ldq $2, 40($18)
  2284. addq $21, $5, $21
  2285. bis $21, $21, $7
  2286. ldq $4, 48($17)
  2287. addq $24, $7, $24
  2288. srl $2, 32, $8
  2289. cmpult $24, $7, $3
  2290. zapnot $4, 15, $7
  2291. mulq $8, $7, $28
  2292. srl $25, 32, $1
  2293. addq $6, $1, $6
  2294. cmpult $21, $5, $1
  2295. zapnot $2, 15, $5
  2296. addq $1, $6, $6
  2297. addq $3, $6, $6
  2298. addq $23, $6, $23
  2299. cmpult $23, $6, $1
  2300. srl $4, 32, $6
  2301. mulq $5, $6, $25
  2302. mulq $7, $5, $5
  2303. addq $1, $22, $22
  2304. addq $28, $25, $28
  2305. cmpult $28, $25, $1
  2306. mulq $6, $8, $6
  2307. beq $1, $397
  2308. sll $20, 32, $1
  2309. addq $6, $1, $6
  2310. $397:
  2311. sll $28, 32, $25
  2312. ldq $2, 32($18)
  2313. addq $5, $25, $5
  2314. bis $5, $5, $7
  2315. ldq $4, 56($17)
  2316. addq $24, $7, $24
  2317. srl $2, 32, $8
  2318. cmpult $24, $7, $3
  2319. zapnot $4, 15, $7
  2320. mulq $8, $7, $21
  2321. srl $28, 32, $1
  2322. addq $6, $1, $6
  2323. cmpult $5, $25, $1
  2324. zapnot $2, 15, $5
  2325. addq $1, $6, $6
  2326. addq $3, $6, $6
  2327. addq $23, $6, $23
  2328. cmpult $23, $6, $1
  2329. srl $4, 32, $6
  2330. mulq $5, $6, $25
  2331. mulq $7, $5, $2
  2332. addq $1, $22, $22
  2333. addq $21, $25, $21
  2334. cmpult $21, $25, $1
  2335. mulq $6, $8, $6
  2336. beq $1, $401
  2337. sll $20, 32, $1
  2338. addq $6, $1, $6
  2339. $401:
  2340. sll $21, 32, $25
  2341. addq $2, $25, $2
  2342. bis $2, $2, $7
  2343. addq $24, $7, $24
  2344. stq $24, 88($16)
  2345. ldq $4, 56($17)
  2346. ldq $5, 40($18)
  2347. cmpult $24, $7, $3
  2348. zapnot $4, 15, $7
  2349. srl $5, 32, $8
  2350. mulq $8, $7, $0
  2351. srl $21, 32, $1
  2352. cmpult $2, $25, $2
  2353. addq $6, $1, $6
  2354. addq $2, $6, $6
  2355. addq $3, $6, $6
  2356. addq $23, $6, $23
  2357. cmpult $23, $6, $1
  2358. srl $4, 32, $6
  2359. zapnot $5, 15, $5
  2360. mulq $5, $6, $24
  2361. mulq $7, $5, $5
  2362. addq $1, $22, $22
  2363. addq $0, $24, $0
  2364. cmpult $0, $24, $1
  2365. mulq $6, $8, $6
  2366. beq $1, $405
  2367. sll $20, 32, $1
  2368. addq $6, $1, $6
  2369. $405:
  2370. sll $0, 32, $24
  2371. ldq $2, 48($18)
  2372. addq $5, $24, $5
  2373. bis $5, $5, $7
  2374. ldq $4, 48($17)
  2375. addq $23, $7, $23
  2376. srl $2, 32, $8
  2377. cmpult $23, $7, $3
  2378. zapnot $4, 15, $7
  2379. mulq $8, $7, $28
  2380. srl $0, 32, $1
  2381. addq $6, $1, $6
  2382. cmpult $5, $24, $1
  2383. zapnot $2, 15, $5
  2384. addq $1, $6, $6
  2385. addq $3, $6, $6
  2386. addq $22, $6, $22
  2387. cmpult $22, $6, $24
  2388. srl $4, 32, $6
  2389. mulq $5, $6, $25
  2390. mulq $7, $5, $5
  2391. addq $28, $25, $28
  2392. cmpult $28, $25, $1
  2393. mulq $6, $8, $6
  2394. beq $1, $409
  2395. sll $20, 32, $1
  2396. addq $6, $1, $6
  2397. $409:
  2398. sll $28, 32, $25
  2399. ldq $2, 56($18)
  2400. addq $5, $25, $5
  2401. bis $5, $5, $7
  2402. ldq $4, 40($17)
  2403. addq $23, $7, $23
  2404. srl $2, 32, $8
  2405. cmpult $23, $7, $3
  2406. zapnot $4, 15, $7
  2407. mulq $8, $7, $0
  2408. srl $28, 32, $1
  2409. addq $6, $1, $6
  2410. cmpult $5, $25, $1
  2411. zapnot $2, 15, $5
  2412. addq $1, $6, $6
  2413. addq $3, $6, $6
  2414. addq $22, $6, $22
  2415. cmpult $22, $6, $1
  2416. srl $4, 32, $6
  2417. mulq $5, $6, $25
  2418. mulq $7, $5, $2
  2419. addq $1, $24, $24
  2420. addq $0, $25, $0
  2421. cmpult $0, $25, $1
  2422. mulq $6, $8, $6
  2423. beq $1, $413
  2424. sll $20, 32, $1
  2425. addq $6, $1, $6
  2426. $413:
  2427. sll $0, 32, $25
  2428. addq $2, $25, $2
  2429. bis $2, $2, $7
  2430. addq $23, $7, $23
  2431. stq $23, 96($16)
  2432. ldq $4, 48($17)
  2433. ldq $5, 56($18)
  2434. cmpult $23, $7, $3
  2435. zapnot $4, 15, $7
  2436. srl $5, 32, $8
  2437. mulq $8, $7, $28
  2438. srl $0, 32, $1
  2439. cmpult $2, $25, $2
  2440. addq $6, $1, $6
  2441. addq $2, $6, $6
  2442. addq $3, $6, $6
  2443. addq $22, $6, $22
  2444. cmpult $22, $6, $1
  2445. srl $4, 32, $6
  2446. zapnot $5, 15, $5
  2447. mulq $5, $6, $23
  2448. mulq $7, $5, $5
  2449. addq $1, $24, $24
  2450. addq $28, $23, $28
  2451. cmpult $28, $23, $1
  2452. mulq $6, $8, $6
  2453. beq $1, $417
  2454. sll $20, 32, $1
  2455. addq $6, $1, $6
  2456. $417:
  2457. sll $28, 32, $23
  2458. ldq $2, 48($18)
  2459. addq $5, $23, $5
  2460. bis $5, $5, $7
  2461. ldq $4, 56($17)
  2462. addq $22, $7, $22
  2463. srl $2, 32, $8
  2464. cmpult $22, $7, $3
  2465. zapnot $4, 15, $7
  2466. mulq $8, $7, $0
  2467. srl $28, 32, $1
  2468. addq $6, $1, $6
  2469. cmpult $5, $23, $1
  2470. zapnot $2, 15, $5
  2471. addq $1, $6, $6
  2472. addq $3, $6, $6
  2473. addq $24, $6, $24
  2474. cmpult $24, $6, $23
  2475. srl $4, 32, $6
  2476. mulq $5, $6, $25
  2477. mulq $7, $5, $2
  2478. addq $0, $25, $0
  2479. cmpult $0, $25, $1
  2480. mulq $6, $8, $6
  2481. beq $1, $421
  2482. sll $20, 32, $1
  2483. addq $6, $1, $6
  2484. $421:
  2485. sll $0, 32, $25
  2486. addq $2, $25, $2
  2487. bis $2, $2, $7
  2488. addq $22, $7, $22
  2489. stq $22, 104($16)
  2490. ldq $4, 56($17)
  2491. ldq $5, 56($18)
  2492. cmpult $22, $7, $3
  2493. zapnot $4, 15, $7
  2494. srl $5, 32, $8
  2495. mulq $8, $7, $28
  2496. srl $0, 32, $1
  2497. cmpult $2, $25, $2
  2498. addq $6, $1, $6
  2499. addq $2, $6, $6
  2500. addq $3, $6, $6
  2501. addq $24, $6, $24
  2502. cmpult $24, $6, $1
  2503. srl $4, 32, $6
  2504. zapnot $5, 15, $5
  2505. mulq $5, $6, $22
  2506. mulq $7, $5, $2
  2507. addq $1, $23, $23
  2508. addq $28, $22, $28
  2509. cmpult $28, $22, $1
  2510. mulq $6, $8, $3
  2511. beq $1, $425
  2512. sll $20, 32, $1
  2513. addq $3, $1, $3
  2514. $425:
  2515. sll $28, 32, $22
  2516. srl $28, 32, $1
  2517. addq $2, $22, $2
  2518. addq $3, $1, $3
  2519. bis $2, $2, $7
  2520. addq $24, $7, $24
  2521. cmpult $7, $22, $1
  2522. cmpult $24, $7, $2
  2523. addq $1, $3, $6
  2524. addq $2, $6, $6
  2525. stq $24, 112($16)
  2526. addq $23, $6, $23
  2527. stq $23, 120($16)
  2528. ret $31, ($26), 1
  2529. .end bn_mul_comba8
  2530. .text
  2531. .align 3
  2532. .globl bn_sqr_comba4
  2533. .ent bn_sqr_comba4
  2534. bn_sqr_comba4:
  2535. bn_sqr_comba4..ng:
  2536. .frame $30,0,$26,0
  2537. .prologue 0
  2538. ldq $0, 0($17)
  2539. ldq $1, 8($17)
  2540. ldq $2, 16($17)
  2541. ldq $3, 24($17)
  2542. bis $31, $31, $6
  2543. mulq $0, $0, $4
  2544. umulh $0, $0, $5
  2545. stq $4, 0($16)
  2546. bis $31, $31, $4
  2547. mulq $0, $1, $7
  2548. umulh $0, $1, $8
  2549. cmplt $7, $31, $22
  2550. cmplt $8, $31, $23
  2551. addq $7, $7, $7
  2552. addq $8, $8, $8
  2553. addq $8, $22, $8
  2554. addq $4, $23, $4
  2555. addq $5, $7, $5
  2556. addq $6, $8, $6
  2557. cmpult $5, $7, $24
  2558. cmpult $6, $8, $25
  2559. addq $6, $24, $6
  2560. addq $4, $25, $4
  2561. stq $5, 8($16)
  2562. bis $31, $31, $5
  2563. mulq $1, $1, $27
  2564. umulh $1, $1, $28
  2565. addq $6, $27, $6
  2566. addq $4, $28, $4
  2567. cmpult $6, $27, $21
  2568. cmpult $4, $28, $20
  2569. addq $4, $21, $4
  2570. addq $5, $20, $5
  2571. mulq $2, $0, $19
  2572. umulh $2, $0, $18
  2573. cmplt $19, $31, $17
  2574. cmplt $18, $31, $22
  2575. addq $19, $19, $19
  2576. addq $18, $18, $18
  2577. addq $18, $17, $18
  2578. addq $5, $22, $5
  2579. addq $6, $19, $6
  2580. addq $4, $18, $4
  2581. cmpult $6, $19, $23
  2582. cmpult $4, $18, $7
  2583. addq $4, $23, $4
  2584. addq $5, $7, $5
  2585. stq $6, 16($16)
  2586. bis $31, $31, $6
  2587. mulq $3, $0, $8
  2588. umulh $3, $0, $24
  2589. cmplt $8, $31, $25
  2590. cmplt $24, $31, $27
  2591. addq $8, $8, $8
  2592. addq $24, $24, $24
  2593. addq $24, $25, $24
  2594. addq $6, $27, $6
  2595. addq $4, $8, $4
  2596. addq $5, $24, $5
  2597. cmpult $4, $8, $28
  2598. cmpult $5, $24, $21
  2599. addq $5, $28, $5
  2600. addq $6, $21, $6
  2601. mulq $2, $1, $20
  2602. umulh $2, $1, $17
  2603. cmplt $20, $31, $22
  2604. cmplt $17, $31, $19
  2605. addq $20, $20, $20
  2606. addq $17, $17, $17
  2607. addq $17, $22, $17
  2608. addq $6, $19, $6
  2609. addq $4, $20, $4
  2610. addq $5, $17, $5
  2611. cmpult $4, $20, $18
  2612. cmpult $5, $17, $23
  2613. addq $5, $18, $5
  2614. addq $6, $23, $6
  2615. stq $4, 24($16)
  2616. bis $31, $31, $4
  2617. mulq $2, $2, $7
  2618. umulh $2, $2, $25
  2619. addq $5, $7, $5
  2620. addq $6, $25, $6
  2621. cmpult $5, $7, $27
  2622. cmpult $6, $25, $8
  2623. addq $6, $27, $6
  2624. addq $4, $8, $4
  2625. mulq $3, $1, $24
  2626. umulh $3, $1, $28
  2627. cmplt $24, $31, $21
  2628. cmplt $28, $31, $22
  2629. addq $24, $24, $24
  2630. addq $28, $28, $28
  2631. addq $28, $21, $28
  2632. addq $4, $22, $4
  2633. addq $5, $24, $5
  2634. addq $6, $28, $6
  2635. cmpult $5, $24, $19
  2636. cmpult $6, $28, $20
  2637. addq $6, $19, $6
  2638. addq $4, $20, $4
  2639. stq $5, 32($16)
  2640. bis $31, $31, $5
  2641. mulq $3, $2, $17
  2642. umulh $3, $2, $18
  2643. cmplt $17, $31, $23
  2644. cmplt $18, $31, $7
  2645. addq $17, $17, $17
  2646. addq $18, $18, $18
  2647. addq $18, $23, $18
  2648. addq $5, $7, $5
  2649. addq $6, $17, $6
  2650. addq $4, $18, $4
  2651. cmpult $6, $17, $25
  2652. cmpult $4, $18, $27
  2653. addq $4, $25, $4
  2654. addq $5, $27, $5
  2655. stq $6, 40($16)
  2656. bis $31, $31, $6
  2657. mulq $3, $3, $8
  2658. umulh $3, $3, $21
  2659. addq $4, $8, $4
  2660. addq $5, $21, $5
  2661. cmpult $4, $8, $22
  2662. cmpult $5, $21, $24
  2663. addq $5, $22, $5
  2664. addq $6, $24, $6
  2665. stq $4, 48($16)
  2666. stq $5, 56($16)
  2667. ret $31,($26),1
  2668. .end bn_sqr_comba4
  2669. .text
  2670. .align 3
  2671. .globl bn_sqr_comba8
  2672. .ent bn_sqr_comba8
  2673. bn_sqr_comba8:
  2674. bn_sqr_comba8..ng:
  2675. .frame $30,0,$26,0
  2676. .prologue 0
  2677. ldq $0, 0($17)
  2678. ldq $1, 8($17)
  2679. ldq $2, 16($17)
  2680. ldq $3, 24($17)
  2681. ldq $4, 32($17)
  2682. ldq $5, 40($17)
  2683. ldq $6, 48($17)
  2684. ldq $7, 56($17)
  2685. bis $31, $31, $23
  2686. mulq $0, $0, $8
  2687. umulh $0, $0, $22
  2688. stq $8, 0($16)
  2689. bis $31, $31, $8
  2690. mulq $1, $0, $24
  2691. umulh $1, $0, $25
  2692. cmplt $24, $31, $27
  2693. cmplt $25, $31, $28
  2694. addq $24, $24, $24
  2695. addq $25, $25, $25
  2696. addq $25, $27, $25
  2697. addq $8, $28, $8
  2698. addq $22, $24, $22
  2699. addq $23, $25, $23
  2700. cmpult $22, $24, $21
  2701. cmpult $23, $25, $20
  2702. addq $23, $21, $23
  2703. addq $8, $20, $8
  2704. stq $22, 8($16)
  2705. bis $31, $31, $22
  2706. mulq $1, $1, $19
  2707. umulh $1, $1, $18
  2708. addq $23, $19, $23
  2709. addq $8, $18, $8
  2710. cmpult $23, $19, $17
  2711. cmpult $8, $18, $27
  2712. addq $8, $17, $8
  2713. addq $22, $27, $22
  2714. mulq $2, $0, $28
  2715. umulh $2, $0, $24
  2716. cmplt $28, $31, $25
  2717. cmplt $24, $31, $21
  2718. addq $28, $28, $28
  2719. addq $24, $24, $24
  2720. addq $24, $25, $24
  2721. addq $22, $21, $22
  2722. addq $23, $28, $23
  2723. addq $8, $24, $8
  2724. cmpult $23, $28, $20
  2725. cmpult $8, $24, $19
  2726. addq $8, $20, $8
  2727. addq $22, $19, $22
  2728. stq $23, 16($16)
  2729. bis $31, $31, $23
  2730. mulq $2, $1, $18
  2731. umulh $2, $1, $17
  2732. cmplt $18, $31, $27
  2733. cmplt $17, $31, $25
  2734. addq $18, $18, $18
  2735. addq $17, $17, $17
  2736. addq $17, $27, $17
  2737. addq $23, $25, $23
  2738. addq $8, $18, $8
  2739. addq $22, $17, $22
  2740. cmpult $8, $18, $21
  2741. cmpult $22, $17, $28
  2742. addq $22, $21, $22
  2743. addq $23, $28, $23
  2744. mulq $3, $0, $24
  2745. umulh $3, $0, $20
  2746. cmplt $24, $31, $19
  2747. cmplt $20, $31, $27
  2748. addq $24, $24, $24
  2749. addq $20, $20, $20
  2750. addq $20, $19, $20
  2751. addq $23, $27, $23
  2752. addq $8, $24, $8
  2753. addq $22, $20, $22
  2754. cmpult $8, $24, $25
  2755. cmpult $22, $20, $18
  2756. addq $22, $25, $22
  2757. addq $23, $18, $23
  2758. stq $8, 24($16)
  2759. bis $31, $31, $8
  2760. mulq $2, $2, $17
  2761. umulh $2, $2, $21
  2762. addq $22, $17, $22
  2763. addq $23, $21, $23
  2764. cmpult $22, $17, $28
  2765. cmpult $23, $21, $19
  2766. addq $23, $28, $23
  2767. addq $8, $19, $8
  2768. mulq $3, $1, $27
  2769. umulh $3, $1, $24
  2770. cmplt $27, $31, $20
  2771. cmplt $24, $31, $25
  2772. addq $27, $27, $27
  2773. addq $24, $24, $24
  2774. addq $24, $20, $24
  2775. addq $8, $25, $8
  2776. addq $22, $27, $22
  2777. addq $23, $24, $23
  2778. cmpult $22, $27, $18
  2779. cmpult $23, $24, $17
  2780. addq $23, $18, $23
  2781. addq $8, $17, $8
  2782. mulq $4, $0, $21
  2783. umulh $4, $0, $28
  2784. cmplt $21, $31, $19
  2785. cmplt $28, $31, $20
  2786. addq $21, $21, $21
  2787. addq $28, $28, $28
  2788. addq $28, $19, $28
  2789. addq $8, $20, $8
  2790. addq $22, $21, $22
  2791. addq $23, $28, $23
  2792. cmpult $22, $21, $25
  2793. cmpult $23, $28, $27
  2794. addq $23, $25, $23
  2795. addq $8, $27, $8
  2796. stq $22, 32($16)
  2797. bis $31, $31, $22
  2798. mulq $3, $2, $24
  2799. umulh $3, $2, $18
  2800. cmplt $24, $31, $17
  2801. cmplt $18, $31, $19
  2802. addq $24, $24, $24
  2803. addq $18, $18, $18
  2804. addq $18, $17, $18
  2805. addq $22, $19, $22
  2806. addq $23, $24, $23
  2807. addq $8, $18, $8
  2808. cmpult $23, $24, $20
  2809. cmpult $8, $18, $21
  2810. addq $8, $20, $8
  2811. addq $22, $21, $22
  2812. mulq $4, $1, $28
  2813. umulh $4, $1, $25
  2814. cmplt $28, $31, $27
  2815. cmplt $25, $31, $17
  2816. addq $28, $28, $28
  2817. addq $25, $25, $25
  2818. addq $25, $27, $25
  2819. addq $22, $17, $22
  2820. addq $23, $28, $23
  2821. addq $8, $25, $8
  2822. cmpult $23, $28, $19
  2823. cmpult $8, $25, $24
  2824. addq $8, $19, $8
  2825. addq $22, $24, $22
  2826. mulq $5, $0, $18
  2827. umulh $5, $0, $20
  2828. cmplt $18, $31, $21
  2829. cmplt $20, $31, $27
  2830. addq $18, $18, $18
  2831. addq $20, $20, $20
  2832. addq $20, $21, $20
  2833. addq $22, $27, $22
  2834. addq $23, $18, $23
  2835. addq $8, $20, $8
  2836. cmpult $23, $18, $17
  2837. cmpult $8, $20, $28
  2838. addq $8, $17, $8
  2839. addq $22, $28, $22
  2840. stq $23, 40($16)
  2841. bis $31, $31, $23
  2842. mulq $3, $3, $25
  2843. umulh $3, $3, $19
  2844. addq $8, $25, $8
  2845. addq $22, $19, $22
  2846. cmpult $8, $25, $24
  2847. cmpult $22, $19, $21
  2848. addq $22, $24, $22
  2849. addq $23, $21, $23
  2850. mulq $4, $2, $27
  2851. umulh $4, $2, $18
  2852. cmplt $27, $31, $20
  2853. cmplt $18, $31, $17
  2854. addq $27, $27, $27
  2855. addq $18, $18, $18
  2856. addq $18, $20, $18
  2857. addq $23, $17, $23
  2858. addq $8, $27, $8
  2859. addq $22, $18, $22
  2860. cmpult $8, $27, $28
  2861. cmpult $22, $18, $25
  2862. addq $22, $28, $22
  2863. addq $23, $25, $23
  2864. mulq $5, $1, $19
  2865. umulh $5, $1, $24
  2866. cmplt $19, $31, $21
  2867. cmplt $24, $31, $20
  2868. addq $19, $19, $19
  2869. addq $24, $24, $24
  2870. addq $24, $21, $24
  2871. addq $23, $20, $23
  2872. addq $8, $19, $8
  2873. addq $22, $24, $22
  2874. cmpult $8, $19, $17
  2875. cmpult $22, $24, $27
  2876. addq $22, $17, $22
  2877. addq $23, $27, $23
  2878. mulq $6, $0, $18
  2879. umulh $6, $0, $28
  2880. cmplt $18, $31, $25
  2881. cmplt $28, $31, $21
  2882. addq $18, $18, $18
  2883. addq $28, $28, $28
  2884. addq $28, $25, $28
  2885. addq $23, $21, $23
  2886. addq $8, $18, $8
  2887. addq $22, $28, $22
  2888. cmpult $8, $18, $20
  2889. cmpult $22, $28, $19
  2890. addq $22, $20, $22
  2891. addq $23, $19, $23
  2892. stq $8, 48($16)
  2893. bis $31, $31, $8
  2894. mulq $4, $3, $24
  2895. umulh $4, $3, $17
  2896. cmplt $24, $31, $27
  2897. cmplt $17, $31, $25
  2898. addq $24, $24, $24
  2899. addq $17, $17, $17
  2900. addq $17, $27, $17
  2901. addq $8, $25, $8
  2902. addq $22, $24, $22
  2903. addq $23, $17, $23
  2904. cmpult $22, $24, $21
  2905. cmpult $23, $17, $18
  2906. addq $23, $21, $23
  2907. addq $8, $18, $8
  2908. mulq $5, $2, $28
  2909. umulh $5, $2, $20
  2910. cmplt $28, $31, $19
  2911. cmplt $20, $31, $27
  2912. addq $28, $28, $28
  2913. addq $20, $20, $20
  2914. addq $20, $19, $20
  2915. addq $8, $27, $8
  2916. addq $22, $28, $22
  2917. addq $23, $20, $23
  2918. cmpult $22, $28, $25
  2919. cmpult $23, $20, $24
  2920. addq $23, $25, $23
  2921. addq $8, $24, $8
  2922. mulq $6, $1, $17
  2923. umulh $6, $1, $21
  2924. cmplt $17, $31, $18
  2925. cmplt $21, $31, $19
  2926. addq $17, $17, $17
  2927. addq $21, $21, $21
  2928. addq $21, $18, $21
  2929. addq $8, $19, $8
  2930. addq $22, $17, $22
  2931. addq $23, $21, $23
  2932. cmpult $22, $17, $27
  2933. cmpult $23, $21, $28
  2934. addq $23, $27, $23
  2935. addq $8, $28, $8
  2936. mulq $7, $0, $20
  2937. umulh $7, $0, $25
  2938. cmplt $20, $31, $24
  2939. cmplt $25, $31, $18
  2940. addq $20, $20, $20
  2941. addq $25, $25, $25
  2942. addq $25, $24, $25
  2943. addq $8, $18, $8
  2944. addq $22, $20, $22
  2945. addq $23, $25, $23
  2946. cmpult $22, $20, $19
  2947. cmpult $23, $25, $17
  2948. addq $23, $19, $23
  2949. addq $8, $17, $8
  2950. stq $22, 56($16)
  2951. bis $31, $31, $22
  2952. mulq $4, $4, $21
  2953. umulh $4, $4, $27
  2954. addq $23, $21, $23
  2955. addq $8, $27, $8
  2956. cmpult $23, $21, $28
  2957. cmpult $8, $27, $24
  2958. addq $8, $28, $8
  2959. addq $22, $24, $22
  2960. mulq $5, $3, $18
  2961. umulh $5, $3, $20
  2962. cmplt $18, $31, $25
  2963. cmplt $20, $31, $19
  2964. addq $18, $18, $18
  2965. addq $20, $20, $20
  2966. addq $20, $25, $20
  2967. addq $22, $19, $22
  2968. addq $23, $18, $23
  2969. addq $8, $20, $8
  2970. cmpult $23, $18, $17
  2971. cmpult $8, $20, $21
  2972. addq $8, $17, $8
  2973. addq $22, $21, $22
  2974. mulq $6, $2, $27
  2975. umulh $6, $2, $28
  2976. cmplt $27, $31, $24
  2977. cmplt $28, $31, $25
  2978. addq $27, $27, $27
  2979. addq $28, $28, $28
  2980. addq $28, $24, $28
  2981. addq $22, $25, $22
  2982. addq $23, $27, $23
  2983. addq $8, $28, $8
  2984. cmpult $23, $27, $19
  2985. cmpult $8, $28, $18
  2986. addq $8, $19, $8
  2987. addq $22, $18, $22
  2988. mulq $7, $1, $20
  2989. umulh $7, $1, $17
  2990. cmplt $20, $31, $21
  2991. cmplt $17, $31, $24
  2992. addq $20, $20, $20
  2993. addq $17, $17, $17
  2994. addq $17, $21, $17
  2995. addq $22, $24, $22
  2996. addq $23, $20, $23
  2997. addq $8, $17, $8
  2998. cmpult $23, $20, $25
  2999. cmpult $8, $17, $27
  3000. addq $8, $25, $8
  3001. addq $22, $27, $22
  3002. stq $23, 64($16)
  3003. bis $31, $31, $23
  3004. mulq $5, $4, $28
  3005. umulh $5, $4, $19
  3006. cmplt $28, $31, $18
  3007. cmplt $19, $31, $21
  3008. addq $28, $28, $28
  3009. addq $19, $19, $19
  3010. addq $19, $18, $19
  3011. addq $23, $21, $23
  3012. addq $8, $28, $8
  3013. addq $22, $19, $22
  3014. cmpult $8, $28, $24
  3015. cmpult $22, $19, $20
  3016. addq $22, $24, $22
  3017. addq $23, $20, $23
  3018. mulq $6, $3, $17
  3019. umulh $6, $3, $25
  3020. cmplt $17, $31, $27
  3021. cmplt $25, $31, $18
  3022. addq $17, $17, $17
  3023. addq $25, $25, $25
  3024. addq $25, $27, $25
  3025. addq $23, $18, $23
  3026. addq $8, $17, $8
  3027. addq $22, $25, $22
  3028. cmpult $8, $17, $21
  3029. cmpult $22, $25, $28
  3030. addq $22, $21, $22
  3031. addq $23, $28, $23
  3032. mulq $7, $2, $19
  3033. umulh $7, $2, $24
  3034. cmplt $19, $31, $20
  3035. cmplt $24, $31, $27
  3036. addq $19, $19, $19
  3037. addq $24, $24, $24
  3038. addq $24, $20, $24
  3039. addq $23, $27, $23
  3040. addq $8, $19, $8
  3041. addq $22, $24, $22
  3042. cmpult $8, $19, $18
  3043. cmpult $22, $24, $17
  3044. addq $22, $18, $22
  3045. addq $23, $17, $23
  3046. stq $8, 72($16)
  3047. bis $31, $31, $8
  3048. mulq $5, $5, $25
  3049. umulh $5, $5, $21
  3050. addq $22, $25, $22
  3051. addq $23, $21, $23
  3052. cmpult $22, $25, $28
  3053. cmpult $23, $21, $20
  3054. addq $23, $28, $23
  3055. addq $8, $20, $8
  3056. mulq $6, $4, $27
  3057. umulh $6, $4, $19
  3058. cmplt $27, $31, $24
  3059. cmplt $19, $31, $18
  3060. addq $27, $27, $27
  3061. addq $19, $19, $19
  3062. addq $19, $24, $19
  3063. addq $8, $18, $8
  3064. addq $22, $27, $22
  3065. addq $23, $19, $23
  3066. cmpult $22, $27, $17
  3067. cmpult $23, $19, $25
  3068. addq $23, $17, $23
  3069. addq $8, $25, $8
  3070. mulq $7, $3, $21
  3071. umulh $7, $3, $28
  3072. cmplt $21, $31, $20
  3073. cmplt $28, $31, $24
  3074. addq $21, $21, $21
  3075. addq $28, $28, $28
  3076. addq $28, $20, $28
  3077. addq $8, $24, $8
  3078. addq $22, $21, $22
  3079. addq $23, $28, $23
  3080. cmpult $22, $21, $18
  3081. cmpult $23, $28, $27
  3082. addq $23, $18, $23
  3083. addq $8, $27, $8
  3084. stq $22, 80($16)
  3085. bis $31, $31, $22
  3086. mulq $6, $5, $19
  3087. umulh $6, $5, $17
  3088. cmplt $19, $31, $25
  3089. cmplt $17, $31, $20
  3090. addq $19, $19, $19
  3091. addq $17, $17, $17
  3092. addq $17, $25, $17
  3093. addq $22, $20, $22
  3094. addq $23, $19, $23
  3095. addq $8, $17, $8
  3096. cmpult $23, $19, $24
  3097. cmpult $8, $17, $21
  3098. addq $8, $24, $8
  3099. addq $22, $21, $22
  3100. mulq $7, $4, $28
  3101. umulh $7, $4, $18
  3102. cmplt $28, $31, $27
  3103. cmplt $18, $31, $25
  3104. addq $28, $28, $28
  3105. addq $18, $18, $18
  3106. addq $18, $27, $18
  3107. addq $22, $25, $22
  3108. addq $23, $28, $23
  3109. addq $8, $18, $8
  3110. cmpult $23, $28, $20
  3111. cmpult $8, $18, $19
  3112. addq $8, $20, $8
  3113. addq $22, $19, $22
  3114. stq $23, 88($16)
  3115. bis $31, $31, $23
  3116. mulq $6, $6, $17
  3117. umulh $6, $6, $24
  3118. addq $8, $17, $8
  3119. addq $22, $24, $22
  3120. cmpult $8, $17, $21
  3121. cmpult $22, $24, $27
  3122. addq $22, $21, $22
  3123. addq $23, $27, $23
  3124. mulq $7, $5, $25
  3125. umulh $7, $5, $28
  3126. cmplt $25, $31, $18
  3127. cmplt $28, $31, $20
  3128. addq $25, $25, $25
  3129. addq $28, $28, $28
  3130. addq $28, $18, $28
  3131. addq $23, $20, $23
  3132. addq $8, $25, $8
  3133. addq $22, $28, $22
  3134. cmpult $8, $25, $19
  3135. cmpult $22, $28, $17
  3136. addq $22, $19, $22
  3137. addq $23, $17, $23
  3138. stq $8, 96($16)
  3139. bis $31, $31, $8
  3140. mulq $7, $6, $24
  3141. umulh $7, $6, $21
  3142. cmplt $24, $31, $27
  3143. cmplt $21, $31, $18
  3144. addq $24, $24, $24
  3145. addq $21, $21, $21
  3146. addq $21, $27, $21
  3147. addq $8, $18, $8
  3148. addq $22, $24, $22
  3149. addq $23, $21, $23
  3150. cmpult $22, $24, $20
  3151. cmpult $23, $21, $25
  3152. addq $23, $20, $23
  3153. addq $8, $25, $8
  3154. stq $22, 104($16)
  3155. bis $31, $31, $22
  3156. mulq $7, $7, $28
  3157. umulh $7, $7, $19
  3158. addq $23, $28, $23
  3159. addq $8, $19, $8
  3160. cmpult $23, $28, $17
  3161. cmpult $8, $19, $27
  3162. addq $8, $17, $8
  3163. addq $22, $27, $22
  3164. stq $23, 112($16)
  3165. stq $8, 120($16)
  3166. ret $31,($26),1
  3167. .end bn_sqr_comba8