auth.s 79 KB

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