fmal.S 57 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062
  1. /*
  2. * Math library
  3. *
  4. * Copyright (C) 2016 Intel Corporation. All rights reserved.
  5. *
  6. * Redistribution and use in source and binary forms, with or without
  7. * modification, are permitted provided that the following conditions
  8. * are met:
  9. *
  10. * * Redistributions of source code must retain the above copyright
  11. * notice, this list of conditions and the following disclaimer.
  12. * * Redistributions in binary form must reproduce the above copyright
  13. * notice, this list of conditions and the following disclaimer in
  14. * the documentation and/or other materials provided with the
  15. * distribution.
  16. * * Neither the name of Intel Corporation nor the names of its
  17. * contributors may be used to endorse or promote products derived
  18. * from this software without specific prior written permission.
  19. *
  20. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  21. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  22. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  23. * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  24. * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  25. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  26. * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  27. * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  28. * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  29. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  30. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  31. *
  32. *
  33. * Author Name <jingwei.zhang@intel.com>
  34. * History:
  35. * 03-14-2016 Initial version. numerics svn rev. 12864
  36. */
  37. .file "fmal.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin fmal
  41. .text
  42. .globl fmal
  43. fmal:
  44. # parameter 1: 16 + %rbp
  45. # parameter 2: 32 + %rbp
  46. # parameter 3: 48 + %rbp
  47. ..B1.1:
  48. .cfi_startproc
  49. ..___tag_value_fmal.1:
  50. ..L2:
  51. pushq %rbp
  52. .cfi_def_cfa_offset 16
  53. movq %rsp, %rbp
  54. .cfi_def_cfa 6, 16
  55. .cfi_offset 6, -16
  56. subq $336, %rsp
  57. lea 16(%rbp), %rax
  58. movq %rax, -128(%rbp)
  59. lea 32(%rbp), %rax
  60. movq %rax, -120(%rbp)
  61. lea 48(%rbp), %rax
  62. movq %rax, -112(%rbp)
  63. lea -32(%rbp), %rax
  64. movq %rax, -104(%rbp)
  65. movl $0, -328(%rbp)
  66. ..B1.2:
  67. fnstcw -336(%rbp)
  68. ..B1.3:
  69. fnstcw -334(%rbp)
  70. ..B1.4:
  71. movzwl -334(%rbp), %eax
  72. movzwl %ax, %eax
  73. andl $3072, %eax
  74. movl %eax, -324(%rbp)
  75. movq -128(%rbp), %rax
  76. movzbl 9(%rax), %eax
  77. movzbl %al, %eax
  78. andl $128, %eax
  79. shrl $7, %eax
  80. movl %eax, -320(%rbp)
  81. movq -128(%rbp), %rax
  82. movzwl 8(%rax), %eax
  83. movzwl %ax, %eax
  84. andl $32767, %eax
  85. movl %eax, -316(%rbp)
  86. movq -120(%rbp), %rax
  87. movzbl 9(%rax), %eax
  88. movzbl %al, %eax
  89. andl $128, %eax
  90. shrl $7, %eax
  91. movl %eax, -312(%rbp)
  92. movq -120(%rbp), %rax
  93. movzwl 8(%rax), %eax
  94. movzwl %ax, %eax
  95. andl $32767, %eax
  96. movl %eax, -308(%rbp)
  97. movq -112(%rbp), %rax
  98. movzbl 9(%rax), %eax
  99. movzbl %al, %eax
  100. andl $128, %eax
  101. shrl $7, %eax
  102. movl %eax, -304(%rbp)
  103. movq -112(%rbp), %rax
  104. movzwl 8(%rax), %eax
  105. movzwl %ax, %eax
  106. andl $32767, %eax
  107. movl %eax, -300(%rbp)
  108. movl -316(%rbp), %eax
  109. cmpl $32767, %eax
  110. je ..B1.22
  111. ..B1.5:
  112. movl -316(%rbp), %eax
  113. testl %eax, %eax
  114. jne ..B1.8
  115. ..B1.6:
  116. movq -128(%rbp), %rax
  117. movl 4(%rax), %eax
  118. testl %eax, %eax
  119. jne ..B1.8
  120. ..B1.7:
  121. movq -128(%rbp), %rax
  122. movl (%rax), %eax
  123. testl %eax, %eax
  124. je ..B1.22
  125. ..B1.8:
  126. movl -316(%rbp), %eax
  127. cmpl $16383, %eax
  128. jne ..B1.11
  129. ..B1.9:
  130. movq -128(%rbp), %rax
  131. movl 4(%rax), %eax
  132. cmpl $-2147483648, %eax
  133. jne ..B1.11
  134. ..B1.10:
  135. movq -128(%rbp), %rax
  136. movl (%rax), %eax
  137. testl %eax, %eax
  138. je ..B1.22
  139. ..B1.11:
  140. movl -308(%rbp), %eax
  141. cmpl $32767, %eax
  142. je ..B1.22
  143. ..B1.12:
  144. movl -308(%rbp), %eax
  145. testl %eax, %eax
  146. jne ..B1.15
  147. ..B1.13:
  148. movq -120(%rbp), %rax
  149. movl 4(%rax), %eax
  150. testl %eax, %eax
  151. jne ..B1.15
  152. ..B1.14:
  153. movq -120(%rbp), %rax
  154. movl (%rax), %eax
  155. testl %eax, %eax
  156. je ..B1.22
  157. ..B1.15:
  158. movl -308(%rbp), %eax
  159. cmpl $16383, %eax
  160. jne ..B1.18
  161. ..B1.16:
  162. movq -120(%rbp), %rax
  163. movl 4(%rax), %eax
  164. cmpl $-2147483648, %eax
  165. jne ..B1.18
  166. ..B1.17:
  167. movq -120(%rbp), %rax
  168. movl (%rax), %eax
  169. testl %eax, %eax
  170. je ..B1.22
  171. ..B1.18:
  172. movl -300(%rbp), %eax
  173. cmpl $32767, %eax
  174. je ..B1.22
  175. ..B1.19:
  176. movl -300(%rbp), %eax
  177. testl %eax, %eax
  178. jne ..B1.87
  179. ..B1.20:
  180. movq -112(%rbp), %rax
  181. movl 4(%rax), %eax
  182. testl %eax, %eax
  183. jne ..B1.87
  184. ..B1.21:
  185. movq -112(%rbp), %rax
  186. movl (%rax), %eax
  187. testl %eax, %eax
  188. jne ..B1.87
  189. ..B1.22:
  190. movl -316(%rbp), %eax
  191. testl %eax, %eax
  192. jne ..B1.25
  193. ..B1.23:
  194. movq -128(%rbp), %rax
  195. movl 4(%rax), %eax
  196. testl %eax, %eax
  197. jne ..B1.31
  198. ..B1.24:
  199. movq -128(%rbp), %rax
  200. movl (%rax), %eax
  201. testl %eax, %eax
  202. jne ..B1.31
  203. ..B1.25:
  204. movl -308(%rbp), %eax
  205. testl %eax, %eax
  206. jne ..B1.28
  207. ..B1.26:
  208. movq -120(%rbp), %rax
  209. movl 4(%rax), %eax
  210. testl %eax, %eax
  211. jne ..B1.31
  212. ..B1.27:
  213. movq -120(%rbp), %rax
  214. movl (%rax), %eax
  215. testl %eax, %eax
  216. jne ..B1.31
  217. ..B1.28:
  218. movl -300(%rbp), %eax
  219. testl %eax, %eax
  220. jne ..B1.32
  221. ..B1.29:
  222. movq -112(%rbp), %rax
  223. movl 4(%rax), %eax
  224. testl %eax, %eax
  225. jne ..B1.31
  226. ..B1.30:
  227. movq -112(%rbp), %rax
  228. movl (%rax), %eax
  229. testl %eax, %eax
  230. je ..B1.32
  231. ..B1.31:
  232. lea _smallest_value_64(%rip), %rax
  233. movsd (%rax), %xmm0
  234. movsd %xmm0, -96(%rbp)
  235. ..B1.32:
  236. movl -316(%rbp), %eax
  237. cmpl $32767, %eax
  238. jne ..B1.43
  239. ..B1.33:
  240. movq -128(%rbp), %rax
  241. movl 4(%rax), %eax
  242. cmpl $-2147483648, %eax
  243. jne ..B1.35
  244. ..B1.34:
  245. movq -128(%rbp), %rax
  246. movl (%rax), %eax
  247. testl %eax, %eax
  248. je ..B1.43
  249. ..B1.35:
  250. movzwl -336(%rbp), %eax
  251. movzwl %ax, %eax
  252. andl $768, %eax
  253. cmpl $768, %eax
  254. je ..B1.39
  255. ..B1.36:
  256. movzwl -336(%rbp), %eax
  257. movzwl %ax, %eax
  258. andl $-769, %eax
  259. orl $768, %eax
  260. movw %ax, -332(%rbp)
  261. ..B1.37:
  262. fldcw -332(%rbp)
  263. ..B1.38:
  264. movl $1, -328(%rbp)
  265. ..B1.39:
  266. fldt 16(%rbp)
  267. fldt 32(%rbp)
  268. fmulp %st, %st(1)
  269. fstpt -32(%rbp)
  270. fldt -32(%rbp)
  271. fldt 48(%rbp)
  272. fmulp %st, %st(1)
  273. fstpt -32(%rbp)
  274. movl -328(%rbp), %eax
  275. testl %eax, %eax
  276. je ..B1.42
  277. ..B1.40:
  278. fldcw -336(%rbp)
  279. ..B1.41:
  280. movl $0, -328(%rbp)
  281. ..B1.42:
  282. fldt -32(%rbp)
  283. leave
  284. .cfi_restore 6
  285. ret
  286. .cfi_offset 6, -16
  287. ..B1.43:
  288. movl -308(%rbp), %eax
  289. cmpl $32767, %eax
  290. jne ..B1.54
  291. ..B1.44:
  292. movq -120(%rbp), %rax
  293. movl 4(%rax), %eax
  294. cmpl $-2147483648, %eax
  295. jne ..B1.46
  296. ..B1.45:
  297. movq -120(%rbp), %rax
  298. movl (%rax), %eax
  299. testl %eax, %eax
  300. je ..B1.54
  301. ..B1.46:
  302. movzwl -336(%rbp), %eax
  303. movzwl %ax, %eax
  304. andl $768, %eax
  305. cmpl $768, %eax
  306. je ..B1.50
  307. ..B1.47:
  308. movzwl -336(%rbp), %eax
  309. movzwl %ax, %eax
  310. andl $-769, %eax
  311. orl $768, %eax
  312. movw %ax, -332(%rbp)
  313. ..B1.48:
  314. fldcw -332(%rbp)
  315. ..B1.49:
  316. movl $1, -328(%rbp)
  317. ..B1.50:
  318. fldt 32(%rbp)
  319. fldt 48(%rbp)
  320. fmulp %st, %st(1)
  321. fstpt -32(%rbp)
  322. fldt -32(%rbp)
  323. fldt 16(%rbp)
  324. fmulp %st, %st(1)
  325. fstpt -32(%rbp)
  326. movl -328(%rbp), %eax
  327. testl %eax, %eax
  328. je ..B1.53
  329. ..B1.51:
  330. fldcw -336(%rbp)
  331. ..B1.52:
  332. movl $0, -328(%rbp)
  333. ..B1.53:
  334. fldt -32(%rbp)
  335. leave
  336. .cfi_restore 6
  337. ret
  338. .cfi_offset 6, -16
  339. ..B1.54:
  340. movl -300(%rbp), %eax
  341. cmpl $32767, %eax
  342. jne ..B1.65
  343. ..B1.55:
  344. movq -112(%rbp), %rax
  345. movl 4(%rax), %eax
  346. cmpl $-2147483648, %eax
  347. jne ..B1.57
  348. ..B1.56:
  349. movq -112(%rbp), %rax
  350. movl (%rax), %eax
  351. testl %eax, %eax
  352. je ..B1.65
  353. ..B1.57:
  354. movzwl -336(%rbp), %eax
  355. movzwl %ax, %eax
  356. andl $768, %eax
  357. cmpl $768, %eax
  358. je ..B1.61
  359. ..B1.58:
  360. movzwl -336(%rbp), %eax
  361. movzwl %ax, %eax
  362. andl $-769, %eax
  363. orl $768, %eax
  364. movw %ax, -332(%rbp)
  365. ..B1.59:
  366. fldcw -332(%rbp)
  367. ..B1.60:
  368. movl $1, -328(%rbp)
  369. ..B1.61:
  370. fldt 48(%rbp)
  371. fldt 16(%rbp)
  372. fmulp %st, %st(1)
  373. fstpt -32(%rbp)
  374. fldt -32(%rbp)
  375. fldt 32(%rbp)
  376. fmulp %st, %st(1)
  377. fstpt -32(%rbp)
  378. movl -328(%rbp), %eax
  379. testl %eax, %eax
  380. je ..B1.64
  381. ..B1.62:
  382. fldcw -336(%rbp)
  383. ..B1.63:
  384. movl $0, -328(%rbp)
  385. ..B1.64:
  386. fldt -32(%rbp)
  387. leave
  388. .cfi_restore 6
  389. ret
  390. .cfi_offset 6, -16
  391. ..B1.65:
  392. movl -316(%rbp), %eax
  393. cmpl $32767, %eax
  394. jge ..B1.69
  395. ..B1.66:
  396. movl -308(%rbp), %eax
  397. cmpl $32767, %eax
  398. jge ..B1.69
  399. ..B1.67:
  400. movl -300(%rbp), %eax
  401. cmpl $32767, %eax
  402. jne ..B1.69
  403. ..B1.68:
  404. fldt 48(%rbp)
  405. leave
  406. .cfi_restore 6
  407. ret
  408. .cfi_offset 6, -16
  409. ..B1.69:
  410. movzwl -336(%rbp), %eax
  411. movzwl %ax, %eax
  412. andl $768, %eax
  413. cmpl $768, %eax
  414. je ..B1.73
  415. ..B1.70:
  416. movzwl -336(%rbp), %eax
  417. movzwl %ax, %eax
  418. andl $-769, %eax
  419. orl $768, %eax
  420. movw %ax, -332(%rbp)
  421. ..B1.71:
  422. fldcw -332(%rbp)
  423. ..B1.72:
  424. movl $1, -328(%rbp)
  425. ..B1.73:
  426. fldt 16(%rbp)
  427. fldt 32(%rbp)
  428. fmulp %st, %st(1)
  429. fstpt -32(%rbp)
  430. movq -128(%rbp), %rax
  431. movzwl 8(%rax), %eax
  432. movzwl %ax, %eax
  433. testl $32767, %eax
  434. jne ..B1.76
  435. ..B1.74:
  436. movq -128(%rbp), %rax
  437. movl 4(%rax), %eax
  438. testl %eax, %eax
  439. jne ..B1.76
  440. ..B1.75:
  441. movq -128(%rbp), %rax
  442. movl (%rax), %eax
  443. testl %eax, %eax
  444. je ..B1.82
  445. ..B1.76:
  446. movq -120(%rbp), %rax
  447. movzwl 8(%rax), %eax
  448. movzwl %ax, %eax
  449. testl $32767, %eax
  450. jne ..B1.79
  451. ..B1.77:
  452. movq -120(%rbp), %rax
  453. movl 4(%rax), %eax
  454. testl %eax, %eax
  455. jne ..B1.79
  456. ..B1.78:
  457. movq -120(%rbp), %rax
  458. movl (%rax), %eax
  459. testl %eax, %eax
  460. je ..B1.82
  461. ..B1.79:
  462. movq -104(%rbp), %rax
  463. movzwl 8(%rax), %eax
  464. movzwl %ax, %eax
  465. testl $32767, %eax
  466. jne ..B1.82
  467. ..B1.80:
  468. movq -104(%rbp), %rax
  469. movl 4(%rax), %eax
  470. testl %eax, %eax
  471. jne ..B1.82
  472. ..B1.81:
  473. movq -104(%rbp), %rax
  474. movl (%rax), %eax
  475. testl %eax, %eax
  476. je ..B1.83
  477. ..B1.82:
  478. fldt -32(%rbp)
  479. fldt 48(%rbp)
  480. faddp %st, %st(1)
  481. fstpt -32(%rbp)
  482. ..B1.83:
  483. movl -328(%rbp), %eax
  484. testl %eax, %eax
  485. je ..B1.86
  486. ..B1.84:
  487. fldcw -336(%rbp)
  488. ..B1.85:
  489. movl $0, -328(%rbp)
  490. ..B1.86:
  491. fldt -32(%rbp)
  492. leave
  493. .cfi_restore 6
  494. ret
  495. .cfi_offset 6, -16
  496. ..B1.87:
  497. movq -128(%rbp), %rax
  498. movzwl 8(%rax), %eax
  499. movzwl %ax, %eax
  500. testl $32767, %eax
  501. je ..B1.90
  502. ..B1.88:
  503. movq -120(%rbp), %rax
  504. movzwl 8(%rax), %eax
  505. movzwl %ax, %eax
  506. testl $32767, %eax
  507. je ..B1.90
  508. ..B1.89:
  509. movq -112(%rbp), %rax
  510. movzwl 8(%rax), %eax
  511. movzwl %ax, %eax
  512. testl $32767, %eax
  513. jne ..B1.103
  514. ..B1.90:
  515. lea _smallest_value_64(%rip), %rax
  516. movsd (%rax), %xmm0
  517. movsd %xmm0, -96(%rbp)
  518. movzwl -336(%rbp), %eax
  519. movzwl %ax, %eax
  520. andl $768, %eax
  521. cmpl $768, %eax
  522. je ..B1.94
  523. ..B1.91:
  524. movzwl -336(%rbp), %eax
  525. movzwl %ax, %eax
  526. andl $-769, %eax
  527. orl $768, %eax
  528. movw %ax, -332(%rbp)
  529. ..B1.92:
  530. fldcw -332(%rbp)
  531. ..B1.93:
  532. movl $1, -328(%rbp)
  533. ..B1.94:
  534. movq -128(%rbp), %rax
  535. movzwl 8(%rax), %eax
  536. movzwl %ax, %eax
  537. testl $32767, %eax
  538. jne ..B1.96
  539. ..B1.95:
  540. movq -128(%rbp), %rax
  541. movzwl 8(%rax), %eax
  542. movzwl %ax, %eax
  543. andl $-32768, %eax
  544. orl $16383, %eax
  545. movq -128(%rbp), %rdx
  546. movw %ax, 8(%rdx)
  547. movq -128(%rbp), %rax
  548. movl 4(%rax), %eax
  549. orl $-2147483648, %eax
  550. movq -128(%rbp), %rdx
  551. movl %eax, 4(%rdx)
  552. movl -320(%rbp), %eax
  553. movslq %eax, %rax
  554. shlq $3, %rax
  555. lea _ones(%rip), %rdx
  556. addq %rax, %rdx
  557. movsd (%rdx), %xmm0
  558. movsd %xmm0, -48(%rbp)
  559. fldl -48(%rbp)
  560. fldt 16(%rbp)
  561. fsubp %st, %st(1)
  562. fstpt 16(%rbp)
  563. movq -128(%rbp), %rax
  564. movzwl 8(%rax), %eax
  565. movzwl %ax, %eax
  566. andl $32767, %eax
  567. addl $-16382, %eax
  568. movl %eax, -316(%rbp)
  569. ..B1.96:
  570. movq -120(%rbp), %rax
  571. movzwl 8(%rax), %eax
  572. movzwl %ax, %eax
  573. testl $32767, %eax
  574. jne ..B1.98
  575. ..B1.97:
  576. movq -120(%rbp), %rax
  577. movzwl 8(%rax), %eax
  578. movzwl %ax, %eax
  579. andl $-32768, %eax
  580. orl $16383, %eax
  581. movq -120(%rbp), %rdx
  582. movw %ax, 8(%rdx)
  583. movq -120(%rbp), %rax
  584. movl 4(%rax), %eax
  585. orl $-2147483648, %eax
  586. movq -120(%rbp), %rdx
  587. movl %eax, 4(%rdx)
  588. movl -312(%rbp), %eax
  589. movslq %eax, %rax
  590. shlq $3, %rax
  591. lea _ones(%rip), %rdx
  592. addq %rax, %rdx
  593. movsd (%rdx), %xmm0
  594. movsd %xmm0, -48(%rbp)
  595. fldl -48(%rbp)
  596. fldt 32(%rbp)
  597. fsubp %st, %st(1)
  598. fstpt 32(%rbp)
  599. movq -120(%rbp), %rax
  600. movzwl 8(%rax), %eax
  601. movzwl %ax, %eax
  602. andl $32767, %eax
  603. addl $-16382, %eax
  604. movl %eax, -308(%rbp)
  605. ..B1.98:
  606. movq -112(%rbp), %rax
  607. movzwl 8(%rax), %eax
  608. movzwl %ax, %eax
  609. testl $32767, %eax
  610. jne ..B1.100
  611. ..B1.99:
  612. movq -112(%rbp), %rax
  613. movzwl 8(%rax), %eax
  614. movzwl %ax, %eax
  615. andl $-32768, %eax
  616. orl $16383, %eax
  617. movq -112(%rbp), %rdx
  618. movw %ax, 8(%rdx)
  619. movq -112(%rbp), %rax
  620. movl 4(%rax), %eax
  621. orl $-2147483648, %eax
  622. movq -112(%rbp), %rdx
  623. movl %eax, 4(%rdx)
  624. movl -304(%rbp), %eax
  625. movslq %eax, %rax
  626. shlq $3, %rax
  627. lea _ones(%rip), %rdx
  628. addq %rax, %rdx
  629. movsd (%rdx), %xmm0
  630. movsd %xmm0, -48(%rbp)
  631. fldl -48(%rbp)
  632. fldt 48(%rbp)
  633. fsubp %st, %st(1)
  634. fstpt 48(%rbp)
  635. movq -112(%rbp), %rax
  636. movzwl 8(%rax), %eax
  637. movzwl %ax, %eax
  638. andl $32767, %eax
  639. addl $-16382, %eax
  640. movl %eax, -300(%rbp)
  641. ..B1.100:
  642. movl -328(%rbp), %eax
  643. testl %eax, %eax
  644. je ..B1.103
  645. ..B1.101:
  646. fldcw -336(%rbp)
  647. ..B1.102:
  648. movl $0, -328(%rbp)
  649. ..B1.103:
  650. movq -128(%rbp), %rax
  651. movl 4(%rax), %eax
  652. movl %eax, -296(%rbp)
  653. movq -128(%rbp), %rax
  654. movl (%rax), %eax
  655. movl %eax, -292(%rbp)
  656. movq -120(%rbp), %rax
  657. movl 4(%rax), %eax
  658. movl %eax, -288(%rbp)
  659. movq -120(%rbp), %rax
  660. movl (%rax), %eax
  661. movl %eax, -284(%rbp)
  662. movq -112(%rbp), %rax
  663. movl 4(%rax), %eax
  664. movl %eax, -280(%rbp)
  665. movq -112(%rbp), %rax
  666. movl (%rax), %eax
  667. movl %eax, -276(%rbp)
  668. movl -312(%rbp), %eax
  669. xorl -320(%rbp), %eax
  670. movl %eax, -272(%rbp)
  671. movl -308(%rbp), %eax
  672. addl -316(%rbp), %eax
  673. addl $-16383, %eax
  674. movl %eax, -268(%rbp)
  675. movl -284(%rbp), %eax
  676. movl -292(%rbp), %edx
  677. imulq %rax, %rdx
  678. movq %rdx, -88(%rbp)
  679. movq -88(%rbp), %rax
  680. shrq $32, %rax
  681. movl %eax, -264(%rbp)
  682. movl -88(%rbp), %eax
  683. movl %eax, -260(%rbp)
  684. movl -284(%rbp), %eax
  685. movl -296(%rbp), %edx
  686. imulq %rax, %rdx
  687. movq %rdx, -80(%rbp)
  688. movq -80(%rbp), %rax
  689. shrq $32, %rax
  690. movl %eax, -256(%rbp)
  691. movl -80(%rbp), %eax
  692. movl %eax, -252(%rbp)
  693. movl -288(%rbp), %eax
  694. movl -292(%rbp), %edx
  695. imulq %rax, %rdx
  696. movq %rdx, -72(%rbp)
  697. movq -72(%rbp), %rax
  698. shrq $32, %rax
  699. movl %eax, -248(%rbp)
  700. movl -72(%rbp), %eax
  701. movl %eax, -244(%rbp)
  702. movl -288(%rbp), %eax
  703. movl -296(%rbp), %edx
  704. imulq %rax, %rdx
  705. movq %rdx, -64(%rbp)
  706. movq -64(%rbp), %rax
  707. shrq $32, %rax
  708. movl %eax, -240(%rbp)
  709. movl -64(%rbp), %eax
  710. movl %eax, -236(%rbp)
  711. movl -260(%rbp), %eax
  712. movl %eax, -232(%rbp)
  713. movl -264(%rbp), %eax
  714. movq %rax, -56(%rbp)
  715. movl -252(%rbp), %eax
  716. addq -56(%rbp), %rax
  717. movq %rax, -56(%rbp)
  718. movl -244(%rbp), %eax
  719. addq -56(%rbp), %rax
  720. movq %rax, -56(%rbp)
  721. movl -56(%rbp), %eax
  722. movl %eax, -228(%rbp)
  723. movq -56(%rbp), %rax
  724. shrq $32, %rax
  725. movl %eax, -224(%rbp)
  726. movl -236(%rbp), %eax
  727. movq %rax, -56(%rbp)
  728. movl -256(%rbp), %eax
  729. addq -56(%rbp), %rax
  730. movq %rax, -56(%rbp)
  731. movl -248(%rbp), %eax
  732. addq -56(%rbp), %rax
  733. movq %rax, -56(%rbp)
  734. movl -224(%rbp), %eax
  735. movslq %eax, %rax
  736. addq -56(%rbp), %rax
  737. movq %rax, -56(%rbp)
  738. movl -56(%rbp), %eax
  739. movl %eax, -220(%rbp)
  740. movq -56(%rbp), %rax
  741. shrq $32, %rax
  742. movl %eax, -224(%rbp)
  743. movl -224(%rbp), %eax
  744. addl -240(%rbp), %eax
  745. movl %eax, -216(%rbp)
  746. movl -216(%rbp), %eax
  747. testl $-2147483648, %eax
  748. je ..B1.105
  749. ..B1.104:
  750. movl $1, %eax
  751. addl -268(%rbp), %eax
  752. movl %eax, -268(%rbp)
  753. jmp ..B1.106
  754. ..B1.105:
  755. movl -216(%rbp), %eax
  756. shll $1, %eax
  757. movl -220(%rbp), %edx
  758. shrl $31, %edx
  759. orl %edx, %eax
  760. movl %eax, -216(%rbp)
  761. movl -220(%rbp), %eax
  762. shll $1, %eax
  763. movl -228(%rbp), %edx
  764. shrl $31, %edx
  765. orl %edx, %eax
  766. movl %eax, -220(%rbp)
  767. movl -228(%rbp), %eax
  768. shll $1, %eax
  769. movl -232(%rbp), %edx
  770. shrl $31, %edx
  771. orl %edx, %eax
  772. movl %eax, -228(%rbp)
  773. shll $1, -232(%rbp)
  774. ..B1.106:
  775. movl -268(%rbp), %eax
  776. movl -300(%rbp), %edx
  777. cmpl %edx, %eax
  778. jg ..B1.111
  779. ..B1.107:
  780. movl -268(%rbp), %eax
  781. movl -300(%rbp), %edx
  782. cmpl %edx, %eax
  783. jne ..B1.112
  784. ..B1.108:
  785. movl -216(%rbp), %eax
  786. movl -280(%rbp), %edx
  787. cmpl %edx, %eax
  788. ja ..B1.111
  789. ..B1.109:
  790. movl -216(%rbp), %eax
  791. movl -280(%rbp), %edx
  792. cmpl %edx, %eax
  793. jne ..B1.112
  794. ..B1.110:
  795. movl -220(%rbp), %eax
  796. movl -276(%rbp), %edx
  797. cmpl %edx, %eax
  798. jb ..B1.112
  799. ..B1.111:
  800. movl -300(%rbp), %eax
  801. negl %eax
  802. addl -268(%rbp), %eax
  803. movl %eax, -212(%rbp)
  804. movl -280(%rbp), %eax
  805. movl %eax, -208(%rbp)
  806. movl -276(%rbp), %eax
  807. movl %eax, -204(%rbp)
  808. movl $0, %eax
  809. movl %eax, -200(%rbp)
  810. movl %eax, -196(%rbp)
  811. jmp ..B1.113
  812. ..B1.112:
  813. movl -268(%rbp), %eax
  814. negl %eax
  815. addl -300(%rbp), %eax
  816. movl %eax, -212(%rbp)
  817. movl -300(%rbp), %eax
  818. movl %eax, -268(%rbp)
  819. movl -216(%rbp), %eax
  820. movl %eax, -208(%rbp)
  821. movl -220(%rbp), %eax
  822. movl %eax, -204(%rbp)
  823. movl -228(%rbp), %eax
  824. movl %eax, -196(%rbp)
  825. movl -232(%rbp), %eax
  826. movl %eax, -200(%rbp)
  827. movl -280(%rbp), %eax
  828. movl %eax, -216(%rbp)
  829. movl -276(%rbp), %eax
  830. movl %eax, -220(%rbp)
  831. movl $0, %eax
  832. movl %eax, -232(%rbp)
  833. movl %eax, -228(%rbp)
  834. movl -272(%rbp), %eax
  835. movl %eax, -304(%rbp)
  836. movq -112(%rbp), %rax
  837. movzbl 9(%rax), %eax
  838. movzbl %al, %eax
  839. andl $128, %eax
  840. shrl $7, %eax
  841. movl %eax, -272(%rbp)
  842. ..B1.113:
  843. movl $0, -192(%rbp)
  844. movl -212(%rbp), %eax
  845. testl %eax, %eax
  846. je ..B1.123
  847. ..B1.114:
  848. movl -212(%rbp), %eax
  849. cmpl $32, %eax
  850. jge ..B1.116
  851. ..B1.115:
  852. movl -212(%rbp), %eax
  853. negl %eax
  854. addl $32, %eax
  855. movl %eax, -188(%rbp)
  856. movl -212(%rbp), %eax
  857. movl %eax, -184(%rbp)
  858. movl $-1, %eax
  859. movl -184(%rbp), %edx
  860. movl %edx, %ecx
  861. shrl %cl, %eax
  862. notl %eax
  863. movl %eax, -180(%rbp)
  864. movl -200(%rbp), %eax
  865. movl -188(%rbp), %edx
  866. movl %edx, %ecx
  867. shll %cl, %eax
  868. movl %eax, -192(%rbp)
  869. movl -196(%rbp), %eax
  870. movl -188(%rbp), %edx
  871. movl %edx, %ecx
  872. shll %cl, %eax
  873. andl -180(%rbp), %eax
  874. movl -200(%rbp), %edx
  875. movl -184(%rbp), %ecx
  876. shrl %cl, %edx
  877. orl %edx, %eax
  878. movl %eax, -200(%rbp)
  879. movl -204(%rbp), %eax
  880. movl -188(%rbp), %edx
  881. movl %edx, %ecx
  882. shll %cl, %eax
  883. andl -180(%rbp), %eax
  884. movl -196(%rbp), %edx
  885. movl -184(%rbp), %ecx
  886. shrl %cl, %edx
  887. orl %edx, %eax
  888. movl %eax, -196(%rbp)
  889. movl -208(%rbp), %eax
  890. movl -188(%rbp), %edx
  891. movl %edx, %ecx
  892. shll %cl, %eax
  893. andl -180(%rbp), %eax
  894. movl -204(%rbp), %edx
  895. movl -184(%rbp), %ecx
  896. shrl %cl, %edx
  897. orl %edx, %eax
  898. movl %eax, -204(%rbp)
  899. movl -184(%rbp), %eax
  900. movl %eax, %ecx
  901. shrl %cl, -208(%rbp)
  902. jmp ..B1.123
  903. ..B1.116:
  904. movl -212(%rbp), %eax
  905. cmpl $64, %eax
  906. jge ..B1.118
  907. ..B1.117:
  908. movl -212(%rbp), %eax
  909. negl %eax
  910. addl $64, %eax
  911. movl %eax, -188(%rbp)
  912. movl $-32, %eax
  913. addl -212(%rbp), %eax
  914. movl %eax, -184(%rbp)
  915. movl $-1, %eax
  916. movl -184(%rbp), %edx
  917. movl %edx, %ecx
  918. shrl %cl, %eax
  919. notl %eax
  920. movl %eax, -180(%rbp)
  921. movl -196(%rbp), %eax
  922. movl -188(%rbp), %edx
  923. movl %edx, %ecx
  924. shll %cl, %eax
  925. andl -180(%rbp), %eax
  926. movl -200(%rbp), %edx
  927. movl $1, %ecx
  928. testl %edx, %edx
  929. cmovne %ecx, %edx
  930. orl %edx, %eax
  931. movl %eax, -192(%rbp)
  932. movl -204(%rbp), %eax
  933. movl -188(%rbp), %edx
  934. movl %edx, %ecx
  935. shll %cl, %eax
  936. andl -180(%rbp), %eax
  937. movl -196(%rbp), %edx
  938. movl -184(%rbp), %ecx
  939. shrl %cl, %edx
  940. orl %edx, %eax
  941. movl %eax, -200(%rbp)
  942. movl -208(%rbp), %eax
  943. movl -188(%rbp), %edx
  944. movl %edx, %ecx
  945. shll %cl, %eax
  946. andl -180(%rbp), %eax
  947. movl -204(%rbp), %edx
  948. movl -184(%rbp), %ecx
  949. shrl %cl, %edx
  950. orl %edx, %eax
  951. movl %eax, -196(%rbp)
  952. movl -208(%rbp), %eax
  953. movl -184(%rbp), %edx
  954. movl %edx, %ecx
  955. shrl %cl, %eax
  956. movl %eax, -204(%rbp)
  957. movl $0, -208(%rbp)
  958. jmp ..B1.123
  959. ..B1.118:
  960. movl -212(%rbp), %eax
  961. cmpl $96, %eax
  962. jge ..B1.120
  963. ..B1.119:
  964. movl -212(%rbp), %eax
  965. negl %eax
  966. addl $96, %eax
  967. movl %eax, -188(%rbp)
  968. movl $-64, %eax
  969. addl -212(%rbp), %eax
  970. movl %eax, -184(%rbp)
  971. movl $-1, %eax
  972. movl -184(%rbp), %edx
  973. movl %edx, %ecx
  974. shrl %cl, %eax
  975. notl %eax
  976. movl %eax, -180(%rbp)
  977. movl -204(%rbp), %eax
  978. movl -188(%rbp), %edx
  979. movl %edx, %ecx
  980. shll %cl, %eax
  981. andl -180(%rbp), %eax
  982. movl -200(%rbp), %edx
  983. orl -196(%rbp), %edx
  984. movl $1, %edx
  985. movl $0, %ecx
  986. cmovne %edx, %ecx
  987. orl %ecx, %eax
  988. movl %eax, -192(%rbp)
  989. movl -208(%rbp), %eax
  990. movl -188(%rbp), %edx
  991. movl %edx, %ecx
  992. shll %cl, %eax
  993. andl -180(%rbp), %eax
  994. movl -204(%rbp), %edx
  995. movl -184(%rbp), %ecx
  996. shrl %cl, %edx
  997. orl %edx, %eax
  998. movl %eax, -200(%rbp)
  999. movl -208(%rbp), %eax
  1000. movl -184(%rbp), %edx
  1001. movl %edx, %ecx
  1002. shrl %cl, %eax
  1003. movl %eax, -196(%rbp)
  1004. movl $0, %eax
  1005. movl %eax, -204(%rbp)
  1006. movl %eax, -208(%rbp)
  1007. jmp ..B1.123
  1008. ..B1.120:
  1009. movl -212(%rbp), %eax
  1010. cmpl $128, %eax
  1011. jge ..B1.122
  1012. ..B1.121:
  1013. movl -212(%rbp), %eax
  1014. negl %eax
  1015. addl $128, %eax
  1016. movl %eax, -188(%rbp)
  1017. movl $-96, %eax
  1018. addl -212(%rbp), %eax
  1019. movl %eax, -184(%rbp)
  1020. movl $-1, %eax
  1021. movl -184(%rbp), %edx
  1022. movl %edx, %ecx
  1023. shrl %cl, %eax
  1024. notl %eax
  1025. movl %eax, -180(%rbp)
  1026. movl -208(%rbp), %eax
  1027. movl -188(%rbp), %edx
  1028. movl %edx, %ecx
  1029. shll %cl, %eax
  1030. andl -180(%rbp), %eax
  1031. movl -196(%rbp), %edx
  1032. orl -204(%rbp), %edx
  1033. orl -200(%rbp), %edx
  1034. movl $1, %edx
  1035. movl $0, %ecx
  1036. cmovne %edx, %ecx
  1037. orl %ecx, %eax
  1038. movl %eax, -192(%rbp)
  1039. movl -208(%rbp), %eax
  1040. movl -184(%rbp), %edx
  1041. movl %edx, %ecx
  1042. shrl %cl, %eax
  1043. movl %eax, -200(%rbp)
  1044. movl $0, -196(%rbp)
  1045. movl $0, %eax
  1046. movl %eax, -204(%rbp)
  1047. movl %eax, -208(%rbp)
  1048. jmp ..B1.123
  1049. ..B1.122:
  1050. movl -204(%rbp), %eax
  1051. orl -208(%rbp), %eax
  1052. orl -196(%rbp), %eax
  1053. orl -200(%rbp), %eax
  1054. movl $1, %eax
  1055. movl $0, %edx
  1056. cmovne %eax, %edx
  1057. movl %edx, -192(%rbp)
  1058. movl $0, -200(%rbp)
  1059. movl $0, -196(%rbp)
  1060. movl $0, %eax
  1061. movl %eax, -204(%rbp)
  1062. movl %eax, -208(%rbp)
  1063. ..B1.123:
  1064. movl -272(%rbp), %eax
  1065. movl -304(%rbp), %edx
  1066. cmpl %edx, %eax
  1067. jne ..B1.130
  1068. ..B1.124:
  1069. movl -232(%rbp), %eax
  1070. movl %eax, -176(%rbp)
  1071. movl -200(%rbp), %eax
  1072. addl -232(%rbp), %eax
  1073. movl %eax, -232(%rbp)
  1074. movl -232(%rbp), %eax
  1075. movl -176(%rbp), %edx
  1076. cmpl %edx, %eax
  1077. jb ..B1.126
  1078. ..B1.125:
  1079. movl $0, -224(%rbp)
  1080. jmp ..B1.127
  1081. ..B1.126:
  1082. movl $1, -224(%rbp)
  1083. ..B1.127:
  1084. movl -228(%rbp), %eax
  1085. movq %rax, -56(%rbp)
  1086. movl -196(%rbp), %eax
  1087. addq -56(%rbp), %rax
  1088. movq %rax, -56(%rbp)
  1089. movl -224(%rbp), %eax
  1090. movslq %eax, %rax
  1091. addq -56(%rbp), %rax
  1092. movq %rax, -56(%rbp)
  1093. movl -56(%rbp), %eax
  1094. movl %eax, -228(%rbp)
  1095. movq -56(%rbp), %rax
  1096. shrq $32, %rax
  1097. movl %eax, -224(%rbp)
  1098. movl -220(%rbp), %eax
  1099. movq %rax, -56(%rbp)
  1100. movl -204(%rbp), %eax
  1101. addq -56(%rbp), %rax
  1102. movq %rax, -56(%rbp)
  1103. movl -224(%rbp), %eax
  1104. movslq %eax, %rax
  1105. addq -56(%rbp), %rax
  1106. movq %rax, -56(%rbp)
  1107. movl -56(%rbp), %eax
  1108. movl %eax, -220(%rbp)
  1109. movq -56(%rbp), %rax
  1110. shrq $32, %rax
  1111. movl %eax, -224(%rbp)
  1112. movl -216(%rbp), %eax
  1113. movq %rax, -56(%rbp)
  1114. movl -208(%rbp), %eax
  1115. addq -56(%rbp), %rax
  1116. movq %rax, -56(%rbp)
  1117. movl -224(%rbp), %eax
  1118. movslq %eax, %rax
  1119. addq -56(%rbp), %rax
  1120. movq %rax, -56(%rbp)
  1121. movl -56(%rbp), %eax
  1122. movl %eax, -216(%rbp)
  1123. movq -56(%rbp), %rax
  1124. shrq $32, %rax
  1125. movl %eax, -224(%rbp)
  1126. movl -224(%rbp), %eax
  1127. testl %eax, %eax
  1128. je ..B1.129
  1129. ..B1.128:
  1130. movl -220(%rbp), %eax
  1131. shll $31, %eax
  1132. movl -232(%rbp), %edx
  1133. orl -228(%rbp), %edx
  1134. orl -192(%rbp), %edx
  1135. movl $1, %edx
  1136. movl $0, %ecx
  1137. cmovne %edx, %ecx
  1138. orl %ecx, %eax
  1139. movl %eax, -192(%rbp)
  1140. movl -216(%rbp), %eax
  1141. shll $31, %eax
  1142. movl -220(%rbp), %edx
  1143. shrl $1, %edx
  1144. orl %edx, %eax
  1145. movl %eax, -168(%rbp)
  1146. movl -216(%rbp), %eax
  1147. shrl $1, %eax
  1148. orl $-2147483648, %eax
  1149. movl %eax, -164(%rbp)
  1150. movl $1, %eax
  1151. addl -268(%rbp), %eax
  1152. movl %eax, -268(%rbp)
  1153. jmp ..B1.156
  1154. ..B1.129:
  1155. movl -228(%rbp), %eax
  1156. movl -192(%rbp), %edx
  1157. orl -232(%rbp), %edx
  1158. movl $1, %edx
  1159. movl $0, %ecx
  1160. cmovne %edx, %ecx
  1161. orl %ecx, %eax
  1162. movl %eax, -192(%rbp)
  1163. movl -220(%rbp), %eax
  1164. movl %eax, -168(%rbp)
  1165. movl -216(%rbp), %eax
  1166. movl %eax, -164(%rbp)
  1167. jmp ..B1.156
  1168. ..B1.130:
  1169. movl -192(%rbp), %eax
  1170. negl %eax
  1171. movl %eax, -192(%rbp)
  1172. movl -192(%rbp), %eax
  1173. testl %eax, %eax
  1174. jne ..B1.132
  1175. ..B1.131:
  1176. movl $0, -172(%rbp)
  1177. jmp ..B1.133
  1178. ..B1.132:
  1179. movl $1, -172(%rbp)
  1180. ..B1.133:
  1181. movl -232(%rbp), %eax
  1182. movq %rax, -56(%rbp)
  1183. movl -200(%rbp), %eax
  1184. negq %rax
  1185. addq -56(%rbp), %rax
  1186. movq %rax, -56(%rbp)
  1187. movl -172(%rbp), %eax
  1188. movslq %eax, %rax
  1189. negq %rax
  1190. addq -56(%rbp), %rax
  1191. movq %rax, -56(%rbp)
  1192. movl -56(%rbp), %eax
  1193. movl %eax, -232(%rbp)
  1194. movq -56(%rbp), %rax
  1195. shrq $32, %rax
  1196. movl %eax, -172(%rbp)
  1197. movl -228(%rbp), %eax
  1198. movq %rax, -56(%rbp)
  1199. movl -196(%rbp), %eax
  1200. negq %rax
  1201. addq -56(%rbp), %rax
  1202. movq %rax, -56(%rbp)
  1203. movl -172(%rbp), %eax
  1204. movslq %eax, %rax
  1205. addq -56(%rbp), %rax
  1206. movq %rax, -56(%rbp)
  1207. movl -56(%rbp), %eax
  1208. movl %eax, -228(%rbp)
  1209. movq -56(%rbp), %rax
  1210. shrq $32, %rax
  1211. movl %eax, -172(%rbp)
  1212. movl -220(%rbp), %eax
  1213. movq %rax, -56(%rbp)
  1214. movl -204(%rbp), %eax
  1215. negq %rax
  1216. addq -56(%rbp), %rax
  1217. movq %rax, -56(%rbp)
  1218. movl -172(%rbp), %eax
  1219. movslq %eax, %rax
  1220. addq -56(%rbp), %rax
  1221. movq %rax, -56(%rbp)
  1222. movl -56(%rbp), %eax
  1223. movl %eax, -220(%rbp)
  1224. movq -56(%rbp), %rax
  1225. shrq $32, %rax
  1226. movl %eax, -172(%rbp)
  1227. movl -208(%rbp), %eax
  1228. negl %eax
  1229. addl -216(%rbp), %eax
  1230. movl %eax, -216(%rbp)
  1231. movl -172(%rbp), %eax
  1232. addl -216(%rbp), %eax
  1233. movl %eax, -216(%rbp)
  1234. movl -216(%rbp), %eax
  1235. testl %eax, %eax
  1236. je ..B1.135
  1237. ..B1.134:
  1238. movl -216(%rbp), %eax
  1239. movl %eax, -176(%rbp)
  1240. movl $0, -212(%rbp)
  1241. jmp ..B1.144
  1242. ..B1.135:
  1243. movl -220(%rbp), %eax
  1244. testl %eax, %eax
  1245. je ..B1.137
  1246. ..B1.136:
  1247. movl -220(%rbp), %eax
  1248. movl %eax, -176(%rbp)
  1249. movl $32, -212(%rbp)
  1250. jmp ..B1.144
  1251. ..B1.137:
  1252. movl -228(%rbp), %eax
  1253. testl %eax, %eax
  1254. je ..B1.139
  1255. ..B1.138:
  1256. movl -228(%rbp), %eax
  1257. movl %eax, -176(%rbp)
  1258. movl $64, -212(%rbp)
  1259. jmp ..B1.144
  1260. ..B1.139:
  1261. movl -232(%rbp), %eax
  1262. testl %eax, %eax
  1263. je ..B1.141
  1264. ..B1.140:
  1265. movl -232(%rbp), %eax
  1266. movl %eax, -176(%rbp)
  1267. movl $96, -212(%rbp)
  1268. jmp ..B1.144
  1269. ..B1.141:
  1270. movl -192(%rbp), %eax
  1271. testl %eax, %eax
  1272. je ..B1.143
  1273. ..B1.142:
  1274. movl -192(%rbp), %eax
  1275. movl %eax, -176(%rbp)
  1276. movl $128, -212(%rbp)
  1277. jmp ..B1.144
  1278. ..B1.143:
  1279. movl -324(%rbp), %eax
  1280. movl $1, %edx
  1281. movl $0, %ecx
  1282. cmpl $1024, %eax
  1283. cmove %edx, %ecx
  1284. movslq %ecx, %rcx
  1285. shlq $3, %rcx
  1286. lea _zeros(%rip), %rax
  1287. addq %rcx, %rax
  1288. movsd (%rax), %xmm0
  1289. movsd %xmm0, -48(%rbp)
  1290. fldl -48(%rbp)
  1291. leave
  1292. .cfi_restore 6
  1293. ret
  1294. .cfi_offset 6, -16
  1295. ..B1.144:
  1296. movl -176(%rbp), %eax
  1297. testl $-2147483648, %eax
  1298. jne ..B1.146
  1299. ..B1.145:
  1300. shll $1, -176(%rbp)
  1301. movl $1, %eax
  1302. addl -212(%rbp), %eax
  1303. movl %eax, -212(%rbp)
  1304. jmp ..B1.144
  1305. ..B1.146:
  1306. movl -212(%rbp), %eax
  1307. cmpl $32, %eax
  1308. jge ..B1.148
  1309. ..B1.147:
  1310. movl -212(%rbp), %eax
  1311. movl %eax, -188(%rbp)
  1312. movl -212(%rbp), %eax
  1313. negl %eax
  1314. addl $32, %eax
  1315. movl %eax, -184(%rbp)
  1316. movl $1, %eax
  1317. movl -188(%rbp), %edx
  1318. movl %edx, %ecx
  1319. shll %cl, %eax
  1320. decl %eax
  1321. movl %eax, -160(%rbp)
  1322. movl -228(%rbp), %eax
  1323. movl -188(%rbp), %edx
  1324. movl %edx, %ecx
  1325. shll %cl, %eax
  1326. movl -192(%rbp), %edx
  1327. orl -232(%rbp), %edx
  1328. movl $1, %edx
  1329. movl $0, %ecx
  1330. cmovne %edx, %ecx
  1331. orl %ecx, %eax
  1332. movl %eax, -192(%rbp)
  1333. movl -220(%rbp), %eax
  1334. movl -188(%rbp), %edx
  1335. movl %edx, %ecx
  1336. shll %cl, %eax
  1337. movl -228(%rbp), %edx
  1338. movl -184(%rbp), %ecx
  1339. shrl %cl, %edx
  1340. andl -160(%rbp), %edx
  1341. orl %edx, %eax
  1342. movl %eax, -168(%rbp)
  1343. movl -216(%rbp), %eax
  1344. movl -188(%rbp), %edx
  1345. movl %edx, %ecx
  1346. shll %cl, %eax
  1347. movl -220(%rbp), %edx
  1348. movl -184(%rbp), %ecx
  1349. shrl %cl, %edx
  1350. andl -160(%rbp), %edx
  1351. orl %edx, %eax
  1352. movl %eax, -164(%rbp)
  1353. jmp ..B1.155
  1354. ..B1.148:
  1355. movl -212(%rbp), %eax
  1356. cmpl $64, %eax
  1357. jge ..B1.150
  1358. ..B1.149:
  1359. movl $-32, %eax
  1360. addl -212(%rbp), %eax
  1361. movl %eax, -188(%rbp)
  1362. movl -212(%rbp), %eax
  1363. negl %eax
  1364. addl $64, %eax
  1365. movl %eax, -184(%rbp)
  1366. movl $1, %eax
  1367. movl -188(%rbp), %edx
  1368. movl %edx, %ecx
  1369. shll %cl, %eax
  1370. decl %eax
  1371. movl %eax, -160(%rbp)
  1372. movl -232(%rbp), %eax
  1373. movl -188(%rbp), %edx
  1374. movl %edx, %ecx
  1375. shll %cl, %eax
  1376. movl -192(%rbp), %edx
  1377. movl $1, %ecx
  1378. testl %edx, %edx
  1379. cmovne %ecx, %edx
  1380. orl %edx, %eax
  1381. movl %eax, -192(%rbp)
  1382. movl -228(%rbp), %eax
  1383. movl -188(%rbp), %edx
  1384. movl %edx, %ecx
  1385. shll %cl, %eax
  1386. movl -232(%rbp), %edx
  1387. movl -184(%rbp), %ecx
  1388. shrl %cl, %edx
  1389. andl -160(%rbp), %edx
  1390. orl %edx, %eax
  1391. movl %eax, -168(%rbp)
  1392. movl -220(%rbp), %eax
  1393. movl -188(%rbp), %edx
  1394. movl %edx, %ecx
  1395. shll %cl, %eax
  1396. movl -228(%rbp), %edx
  1397. movl -184(%rbp), %ecx
  1398. shrl %cl, %edx
  1399. andl -160(%rbp), %edx
  1400. orl %edx, %eax
  1401. movl %eax, -164(%rbp)
  1402. jmp ..B1.155
  1403. ..B1.150:
  1404. movl -212(%rbp), %eax
  1405. cmpl $96, %eax
  1406. jge ..B1.152
  1407. ..B1.151:
  1408. movl $-64, %eax
  1409. addl -212(%rbp), %eax
  1410. movl %eax, -188(%rbp)
  1411. movl -212(%rbp), %eax
  1412. negl %eax
  1413. addl $96, %eax
  1414. movl %eax, -184(%rbp)
  1415. movl $1, %eax
  1416. movl -188(%rbp), %edx
  1417. movl %edx, %ecx
  1418. shll %cl, %eax
  1419. decl %eax
  1420. movl %eax, -160(%rbp)
  1421. movl -188(%rbp), %eax
  1422. movl %eax, %ecx
  1423. shll %cl, -192(%rbp)
  1424. movl -232(%rbp), %eax
  1425. movl -188(%rbp), %edx
  1426. movl %edx, %ecx
  1427. shll %cl, %eax
  1428. movl -192(%rbp), %edx
  1429. movl -184(%rbp), %ecx
  1430. shrl %cl, %edx
  1431. andl -160(%rbp), %edx
  1432. orl %edx, %eax
  1433. movl %eax, -168(%rbp)
  1434. movl -228(%rbp), %eax
  1435. movl -188(%rbp), %edx
  1436. movl %edx, %ecx
  1437. shll %cl, %eax
  1438. movl -232(%rbp), %edx
  1439. movl -184(%rbp), %ecx
  1440. shrl %cl, %edx
  1441. andl -160(%rbp), %edx
  1442. orl %edx, %eax
  1443. movl %eax, -164(%rbp)
  1444. jmp ..B1.155
  1445. ..B1.152:
  1446. movl -212(%rbp), %eax
  1447. cmpl $128, %eax
  1448. jge ..B1.154
  1449. ..B1.153:
  1450. movl $-96, %eax
  1451. addl -212(%rbp), %eax
  1452. movl %eax, -188(%rbp)
  1453. movl -212(%rbp), %eax
  1454. negl %eax
  1455. addl $128, %eax
  1456. movl %eax, -184(%rbp)
  1457. movl $1, %eax
  1458. movl -188(%rbp), %edx
  1459. movl %edx, %ecx
  1460. shll %cl, %eax
  1461. decl %eax
  1462. movl %eax, -160(%rbp)
  1463. movl $0, -192(%rbp)
  1464. movl -192(%rbp), %eax
  1465. movl -188(%rbp), %edx
  1466. movl %edx, %ecx
  1467. shll %cl, %eax
  1468. movl %eax, -168(%rbp)
  1469. movl -232(%rbp), %eax
  1470. movl -188(%rbp), %edx
  1471. movl %edx, %ecx
  1472. shll %cl, %eax
  1473. movl -192(%rbp), %edx
  1474. movl -184(%rbp), %ecx
  1475. shrl %cl, %edx
  1476. andl -160(%rbp), %edx
  1477. orl %edx, %eax
  1478. movl %eax, -164(%rbp)
  1479. jmp ..B1.155
  1480. ..B1.154:
  1481. movl $-128, %eax
  1482. addl -212(%rbp), %eax
  1483. movl %eax, -188(%rbp)
  1484. movl $0, %eax
  1485. movl %eax, -168(%rbp)
  1486. movl %eax, -192(%rbp)
  1487. movl -192(%rbp), %eax
  1488. movl -188(%rbp), %edx
  1489. movl %edx, %ecx
  1490. shll %cl, %eax
  1491. movl %eax, -164(%rbp)
  1492. ..B1.155:
  1493. movl -212(%rbp), %eax
  1494. negl %eax
  1495. addl -268(%rbp), %eax
  1496. movl %eax, -268(%rbp)
  1497. ..B1.156:
  1498. movl $-1, %eax
  1499. addl -268(%rbp), %eax
  1500. cmpl $32766, %eax
  1501. jb ..B1.167
  1502. ..B1.157:
  1503. movl -268(%rbp), %eax
  1504. cmpl $32767, %eax
  1505. jl ..B1.159
  1506. ..B1.158:
  1507. movl -272(%rbp), %eax
  1508. movslq %eax, %rax
  1509. shlq $4, %rax
  1510. lea _large_value_80(%rip), %rdx
  1511. addq %rax, %rdx
  1512. fldt (%rdx)
  1513. lea _large_value_80(%rip), %rax
  1514. fldt (%rax)
  1515. fmulp %st, %st(1)
  1516. fstpt -16(%rbp)
  1517. fldt -16(%rbp)
  1518. fstpt -32(%rbp)
  1519. fldt -32(%rbp)
  1520. leave
  1521. .cfi_restore 6
  1522. ret
  1523. .cfi_offset 6, -16
  1524. ..B1.159:
  1525. movl -268(%rbp), %eax
  1526. negl %eax
  1527. incl %eax
  1528. movl %eax, -212(%rbp)
  1529. movl -212(%rbp), %eax
  1530. cmpl $32, %eax
  1531. jge ..B1.161
  1532. ..B1.160:
  1533. movl -212(%rbp), %eax
  1534. negl %eax
  1535. addl $32, %eax
  1536. movl %eax, -188(%rbp)
  1537. movl -212(%rbp), %eax
  1538. movl %eax, -184(%rbp)
  1539. movl $-1, %eax
  1540. movl -184(%rbp), %edx
  1541. movl %edx, %ecx
  1542. shrl %cl, %eax
  1543. notl %eax
  1544. movl %eax, -180(%rbp)
  1545. movl -168(%rbp), %eax
  1546. movl -188(%rbp), %edx
  1547. movl %edx, %ecx
  1548. shll %cl, %eax
  1549. andl -180(%rbp), %eax
  1550. movl -192(%rbp), %edx
  1551. movl $1, %ecx
  1552. testl %edx, %edx
  1553. cmovne %ecx, %edx
  1554. orl %edx, %eax
  1555. movl %eax, -192(%rbp)
  1556. movl -164(%rbp), %eax
  1557. movl -188(%rbp), %edx
  1558. movl %edx, %ecx
  1559. shll %cl, %eax
  1560. andl -180(%rbp), %eax
  1561. movl -168(%rbp), %edx
  1562. movl -184(%rbp), %ecx
  1563. shrl %cl, %edx
  1564. orl %edx, %eax
  1565. movl %eax, -168(%rbp)
  1566. movl -184(%rbp), %eax
  1567. movl %eax, %ecx
  1568. shrl %cl, -164(%rbp)
  1569. jmp ..B1.166
  1570. ..B1.161:
  1571. movl -212(%rbp), %eax
  1572. cmpl $64, %eax
  1573. jge ..B1.163
  1574. ..B1.162:
  1575. movl -212(%rbp), %eax
  1576. negl %eax
  1577. addl $64, %eax
  1578. movl %eax, -188(%rbp)
  1579. movl $-32, %eax
  1580. addl -212(%rbp), %eax
  1581. movl %eax, -184(%rbp)
  1582. movl $-1, %eax
  1583. movl -184(%rbp), %edx
  1584. movl %edx, %ecx
  1585. shrl %cl, %eax
  1586. notl %eax
  1587. movl %eax, -180(%rbp)
  1588. movl -164(%rbp), %eax
  1589. movl -188(%rbp), %edx
  1590. movl %edx, %ecx
  1591. shll %cl, %eax
  1592. andl -180(%rbp), %eax
  1593. movl -192(%rbp), %edx
  1594. orl -168(%rbp), %edx
  1595. movl $1, %edx
  1596. movl $0, %ecx
  1597. cmovne %edx, %ecx
  1598. orl %ecx, %eax
  1599. movl %eax, -192(%rbp)
  1600. movl -164(%rbp), %eax
  1601. movl -184(%rbp), %edx
  1602. movl %edx, %ecx
  1603. shrl %cl, %eax
  1604. movl %eax, -168(%rbp)
  1605. movl $0, -164(%rbp)
  1606. jmp ..B1.166
  1607. ..B1.163:
  1608. movl -212(%rbp), %eax
  1609. cmpl $96, %eax
  1610. jge ..B1.165
  1611. ..B1.164:
  1612. movl -212(%rbp), %eax
  1613. negl %eax
  1614. addl $96, %eax
  1615. movl %eax, -188(%rbp)
  1616. movl $-64, %eax
  1617. addl -212(%rbp), %eax
  1618. movl %eax, -184(%rbp)
  1619. movl $-1, %eax
  1620. movl -184(%rbp), %edx
  1621. movl %edx, %ecx
  1622. shrl %cl, %eax
  1623. notl %eax
  1624. movl %eax, -180(%rbp)
  1625. movl -164(%rbp), %eax
  1626. movl -184(%rbp), %edx
  1627. movl %edx, %ecx
  1628. shrl %cl, %eax
  1629. movl -164(%rbp), %edx
  1630. movl -188(%rbp), %ecx
  1631. shll %cl, %edx
  1632. andl -180(%rbp), %edx
  1633. orl -168(%rbp), %edx
  1634. orl -192(%rbp), %edx
  1635. movl $1, %edx
  1636. movl $0, %ecx
  1637. cmovne %edx, %ecx
  1638. orl %ecx, %eax
  1639. movl %eax, -192(%rbp)
  1640. movl $0, %eax
  1641. movl %eax, -168(%rbp)
  1642. movl %eax, -164(%rbp)
  1643. jmp ..B1.166
  1644. ..B1.165:
  1645. movl $1, -192(%rbp)
  1646. movl $0, %eax
  1647. movl %eax, -168(%rbp)
  1648. movl %eax, -164(%rbp)
  1649. ..B1.166:
  1650. movl $0, -268(%rbp)
  1651. ..B1.167:
  1652. movl -192(%rbp), %eax
  1653. testl %eax, %eax
  1654. je ..B1.222
  1655. ..B1.168:
  1656. lea _ones(%rip), %rax
  1657. movsd (%rax), %xmm0
  1658. movsd %xmm0, -48(%rbp)
  1659. fldl -48(%rbp)
  1660. lea _small_value_80(%rip), %rax
  1661. fldt (%rax)
  1662. faddp %st, %st(1)
  1663. fstpt -16(%rbp)
  1664. movl -324(%rbp), %eax
  1665. movl %eax, -156(%rbp)
  1666. testl %eax, %eax
  1667. je ..B1.172
  1668. ..B1.169:
  1669. movl -156(%rbp), %eax
  1670. cmpl $3072, %eax
  1671. je ..B1.182
  1672. ..B1.170:
  1673. movl -156(%rbp), %eax
  1674. cmpl $2048, %eax
  1675. je ..B1.186
  1676. ..B1.171:
  1677. movl -156(%rbp), %eax
  1678. cmpl $1024, %eax
  1679. je ..B1.204
  1680. jmp ..B1.222
  1681. ..B1.172:
  1682. movl -192(%rbp), %eax
  1683. testl $-2147483648, %eax
  1684. je ..B1.182
  1685. ..B1.173:
  1686. movl -168(%rbp), %eax
  1687. andl $1, %eax
  1688. movl -192(%rbp), %edx
  1689. andl $2147483647, %edx
  1690. orl %edx, %eax
  1691. je ..B1.182
  1692. ..B1.174:
  1693. movl $1, %eax
  1694. addl -168(%rbp), %eax
  1695. movl %eax, -168(%rbp)
  1696. jne ..B1.180
  1697. ..B1.175:
  1698. movl $1, %eax
  1699. addl -164(%rbp), %eax
  1700. movl %eax, -152(%rbp)
  1701. movl %eax, -164(%rbp)
  1702. movl -268(%rbp), %eax
  1703. testl %eax, %eax
  1704. je ..B1.177
  1705. ..B1.176:
  1706. movl $0, -148(%rbp)
  1707. jmp ..B1.178
  1708. ..B1.177:
  1709. movl $-2147483648, -148(%rbp)
  1710. ..B1.178:
  1711. movl -148(%rbp), %eax
  1712. movl -152(%rbp), %edx
  1713. cmpl %eax, %edx
  1714. jne ..B1.180
  1715. ..B1.179:
  1716. orl $-2147483648, -164(%rbp)
  1717. movl $1, %eax
  1718. addl -268(%rbp), %eax
  1719. movl %eax, -268(%rbp)
  1720. ..B1.180:
  1721. movl -268(%rbp), %eax
  1722. cmpl $32767, %eax
  1723. jl ..B1.182
  1724. ..B1.181:
  1725. movl -272(%rbp), %eax
  1726. movslq %eax, %rax
  1727. shlq $4, %rax
  1728. lea _large_value_80(%rip), %rdx
  1729. addq %rax, %rdx
  1730. fldt (%rdx)
  1731. lea _large_value_80(%rip), %rax
  1732. fldt (%rax)
  1733. fmulp %st, %st(1)
  1734. fstpt -16(%rbp)
  1735. fldt -16(%rbp)
  1736. fstpt -32(%rbp)
  1737. fldt -32(%rbp)
  1738. leave
  1739. .cfi_restore 6
  1740. ret
  1741. .cfi_offset 6, -16
  1742. ..B1.182:
  1743. movl -268(%rbp), %eax
  1744. testl %eax, %eax
  1745. je ..B1.185
  1746. ..B1.183:
  1747. movl $-1, %eax
  1748. addl -268(%rbp), %eax
  1749. movl $-2147483648, %edx
  1750. negl %edx
  1751. addl -164(%rbp), %edx
  1752. orl %edx, %eax
  1753. orl -168(%rbp), %eax
  1754. jne ..B1.222
  1755. ..B1.184:
  1756. movl -192(%rbp), %eax
  1757. cmpl $-2147483648, %eax
  1758. jne ..B1.222
  1759. ..B1.185:
  1760. lea _small_value_80(%rip), %rax
  1761. fldt (%rax)
  1762. lea _small_value_80(%rip), %rax
  1763. fldt (%rax)
  1764. fmulp %st, %st(1)
  1765. fstpt -16(%rbp)
  1766. jmp ..B1.222
  1767. ..B1.186:
  1768. movl -268(%rbp), %eax
  1769. testl %eax, %eax
  1770. jne ..B1.195
  1771. ..B1.187:
  1772. movl -272(%rbp), %eax
  1773. testl %eax, %eax
  1774. jne ..B1.194
  1775. ..B1.188:
  1776. movl -272(%rbp), %eax
  1777. testl %eax, %eax
  1778. jne ..B1.195
  1779. ..B1.189:
  1780. movl -164(%rbp), %eax
  1781. cmpl $2147483647, %eax
  1782. jb ..B1.194
  1783. ..B1.190:
  1784. movl -164(%rbp), %eax
  1785. cmpl $2147483647, %eax
  1786. jne ..B1.195
  1787. ..B1.191:
  1788. movl -168(%rbp), %eax
  1789. cmpl $-1, %eax
  1790. jb ..B1.194
  1791. ..B1.192:
  1792. movl -168(%rbp), %eax
  1793. cmpl $-1, %eax
  1794. jne ..B1.195
  1795. ..B1.193:
  1796. movl -192(%rbp), %eax
  1797. cmpl $-2147483648, %eax
  1798. jae ..B1.195
  1799. ..B1.194:
  1800. lea _small_value_80(%rip), %rax
  1801. fldt (%rax)
  1802. lea _small_value_80(%rip), %rax
  1803. fldt (%rax)
  1804. fmulp %st, %st(1)
  1805. fstpt -16(%rbp)
  1806. ..B1.195:
  1807. movl -272(%rbp), %eax
  1808. testl %eax, %eax
  1809. jne ..B1.222
  1810. ..B1.196:
  1811. movl $1, %eax
  1812. addl -168(%rbp), %eax
  1813. movl %eax, -168(%rbp)
  1814. jne ..B1.202
  1815. ..B1.197:
  1816. movl $1, %eax
  1817. addl -164(%rbp), %eax
  1818. movl %eax, -144(%rbp)
  1819. movl %eax, -164(%rbp)
  1820. movl -268(%rbp), %eax
  1821. testl %eax, %eax
  1822. je ..B1.199
  1823. ..B1.198:
  1824. movl $0, -140(%rbp)
  1825. jmp ..B1.200
  1826. ..B1.199:
  1827. movl $-2147483648, -140(%rbp)
  1828. ..B1.200:
  1829. movl -140(%rbp), %eax
  1830. movl -144(%rbp), %edx
  1831. cmpl %eax, %edx
  1832. jne ..B1.202
  1833. ..B1.201:
  1834. orl $-2147483648, -164(%rbp)
  1835. movl $1, %eax
  1836. addl -268(%rbp), %eax
  1837. movl %eax, -268(%rbp)
  1838. ..B1.202:
  1839. movl -268(%rbp), %eax
  1840. cmpl $32767, %eax
  1841. jl ..B1.222
  1842. ..B1.203:
  1843. movl -272(%rbp), %eax
  1844. movslq %eax, %rax
  1845. shlq $4, %rax
  1846. lea _large_value_80(%rip), %rdx
  1847. addq %rax, %rdx
  1848. fldt (%rdx)
  1849. lea _large_value_80(%rip), %rax
  1850. fldt (%rax)
  1851. fmulp %st, %st(1)
  1852. fstpt -16(%rbp)
  1853. fldt -16(%rbp)
  1854. fstpt -32(%rbp)
  1855. fldt -32(%rbp)
  1856. leave
  1857. .cfi_restore 6
  1858. ret
  1859. .cfi_offset 6, -16
  1860. ..B1.204:
  1861. movl -268(%rbp), %eax
  1862. testl %eax, %eax
  1863. jne ..B1.213
  1864. ..B1.205:
  1865. movl -272(%rbp), %eax
  1866. testl %eax, %eax
  1867. je ..B1.212
  1868. ..B1.206:
  1869. movl -272(%rbp), %eax
  1870. testl %eax, %eax
  1871. je ..B1.213
  1872. ..B1.207:
  1873. movl -164(%rbp), %eax
  1874. cmpl $2147483647, %eax
  1875. jb ..B1.212
  1876. ..B1.208:
  1877. movl -164(%rbp), %eax
  1878. cmpl $2147483647, %eax
  1879. jne ..B1.213
  1880. ..B1.209:
  1881. movl -168(%rbp), %eax
  1882. cmpl $-1, %eax
  1883. jb ..B1.212
  1884. ..B1.210:
  1885. movl -168(%rbp), %eax
  1886. cmpl $-1, %eax
  1887. jne ..B1.213
  1888. ..B1.211:
  1889. movl -192(%rbp), %eax
  1890. cmpl $-2147483648, %eax
  1891. jae ..B1.213
  1892. ..B1.212:
  1893. lea _small_value_80(%rip), %rax
  1894. fldt (%rax)
  1895. lea _small_value_80(%rip), %rax
  1896. fldt (%rax)
  1897. fmulp %st, %st(1)
  1898. fstpt -16(%rbp)
  1899. ..B1.213:
  1900. movl -272(%rbp), %eax
  1901. testl %eax, %eax
  1902. je ..B1.222
  1903. ..B1.214:
  1904. movl $1, %eax
  1905. addl -168(%rbp), %eax
  1906. movl %eax, -168(%rbp)
  1907. jne ..B1.220
  1908. ..B1.215:
  1909. movl $1, %eax
  1910. addl -164(%rbp), %eax
  1911. movl %eax, -136(%rbp)
  1912. movl %eax, -164(%rbp)
  1913. movl -268(%rbp), %eax
  1914. testl %eax, %eax
  1915. je ..B1.217
  1916. ..B1.216:
  1917. movl $0, -132(%rbp)
  1918. jmp ..B1.218
  1919. ..B1.217:
  1920. movl $-2147483648, -132(%rbp)
  1921. ..B1.218:
  1922. movl -132(%rbp), %eax
  1923. movl -136(%rbp), %edx
  1924. cmpl %eax, %edx
  1925. jne ..B1.220
  1926. ..B1.219:
  1927. orl $-2147483648, -164(%rbp)
  1928. movl $1, %eax
  1929. addl -268(%rbp), %eax
  1930. movl %eax, -268(%rbp)
  1931. ..B1.220:
  1932. movl -268(%rbp), %eax
  1933. cmpl $32767, %eax
  1934. jl ..B1.222
  1935. ..B1.221:
  1936. movl -272(%rbp), %eax
  1937. movslq %eax, %rax
  1938. shlq $4, %rax
  1939. lea _large_value_80(%rip), %rdx
  1940. addq %rax, %rdx
  1941. fldt (%rdx)
  1942. lea _large_value_80(%rip), %rax
  1943. fldt (%rax)
  1944. fmulp %st, %st(1)
  1945. fstpt -16(%rbp)
  1946. fldt -16(%rbp)
  1947. fstpt -32(%rbp)
  1948. fldt -32(%rbp)
  1949. leave
  1950. .cfi_restore 6
  1951. ret
  1952. .cfi_offset 6, -16
  1953. ..B1.222:
  1954. movq -104(%rbp), %rax
  1955. movzbl 9(%rax), %eax
  1956. movzbl %al, %eax
  1957. andl $-129, %eax
  1958. movl -272(%rbp), %edx
  1959. andl $1, %edx
  1960. shll $7, %edx
  1961. orl %edx, %eax
  1962. movq -104(%rbp), %rdx
  1963. movb %al, 9(%rdx)
  1964. movq -104(%rbp), %rax
  1965. movzwl 8(%rax), %eax
  1966. movzwl %ax, %eax
  1967. andl $-32768, %eax
  1968. movl -268(%rbp), %edx
  1969. andl $32767, %edx
  1970. orl %edx, %eax
  1971. movq -104(%rbp), %rdx
  1972. movw %ax, 8(%rdx)
  1973. movq -104(%rbp), %rax
  1974. movl -164(%rbp), %edx
  1975. movl %edx, 4(%rax)
  1976. movq -104(%rbp), %rax
  1977. movl -168(%rbp), %edx
  1978. movl %edx, (%rax)
  1979. fldt -32(%rbp)
  1980. leave
  1981. .cfi_restore 6
  1982. ret
  1983. .cfi_endproc
  1984. .type fmal,@function
  1985. .size fmal,.-fmal
  1986. .data
  1987. # -- End fmal
  1988. .section .rodata, "a"
  1989. .align 4
  1990. .align 4
  1991. _smallest_value_64:
  1992. .long 1
  1993. .long 0
  1994. .long 1
  1995. .long 2147483648
  1996. .type _smallest_value_64,@object
  1997. .size _smallest_value_64,16
  1998. .align 4
  1999. _ones:
  2000. .long 0
  2001. .long 1072693248
  2002. .long 0
  2003. .long 3220176896
  2004. .type _ones,@object
  2005. .size _ones,16
  2006. .align 4
  2007. _zeros:
  2008. .long 0
  2009. .long 0
  2010. .long 0
  2011. .long 2147483648
  2012. .type _zeros,@object
  2013. .size _zeros,16
  2014. .align 2
  2015. _large_value_80:
  2016. .word 0
  2017. .word 0
  2018. .word 0
  2019. .word 32768
  2020. .word 26383
  2021. .word 0
  2022. .word 0
  2023. .word 0
  2024. .word 0
  2025. .word 0
  2026. .word 0
  2027. .word 32768
  2028. .word 59151
  2029. .word 0
  2030. .word 0
  2031. .word 0
  2032. .type _large_value_80,@object
  2033. .size _large_value_80,32
  2034. .align 2
  2035. _small_value_80:
  2036. .word 0
  2037. .word 0
  2038. .word 0
  2039. .word 32768
  2040. .word 6383
  2041. .word 0
  2042. .word 0
  2043. .word 0
  2044. .word 0
  2045. .word 0
  2046. .word 0
  2047. .word 32768
  2048. .word 39151
  2049. .word 0
  2050. .word 0
  2051. .word 0
  2052. .type _small_value_80,@object
  2053. .size _small_value_80,32
  2054. .data
  2055. .section .note.GNU-stack, ""
  2056. // -- Begin DWARF2 SEGMENT .eh_frame
  2057. .section .eh_frame,"a",@progbits
  2058. .eh_frame_seg:
  2059. .align 1
  2060. # End