hypotl.S 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849
  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 "hypotl.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin hypotl
  41. .text
  42. .align 16,0x90
  43. .globl hypotl
  44. hypotl:
  45. # parameter 1: 32 + %rsp
  46. # parameter 2: 48 + %rsp
  47. ..B1.1:
  48. .cfi_startproc
  49. ..___tag_value_hypotl.1:
  50. ..L2:
  51. subq $24, %rsp
  52. .cfi_def_cfa_offset 32
  53. xorb %sil, %sil
  54. ..B1.2:
  55. fnstcw 18(%rsp)
  56. ..B1.3:
  57. andb $127, 41(%rsp)
  58. andb $127, 57(%rsp)
  59. movzwl 40(%rsp), %edx
  60. andl $32767, %edx
  61. movzwl 56(%rsp), %eax
  62. andl $32767, %eax
  63. cmpl $32767, %edx
  64. je ..B1.67
  65. ..B1.4:
  66. cmpl $32767, %eax
  67. je ..B1.67
  68. ..B1.5:
  69. movl %edx, %ecx
  70. subl %eax, %ecx
  71. lea 64(%rcx), %edi
  72. cmpl $128, %edi
  73. ja ..B1.25
  74. ..B1.6:
  75. lea (%rdx,%rax), %edi
  76. cmpl $18376, %edi
  77. jge ..B1.35
  78. ..B1.7:
  79. testl %edx, %edx
  80. jne ..B1.12
  81. ..B1.8:
  82. cmpq $0, 32(%rsp)
  83. jne ..B1.12
  84. ..B1.9:
  85. testl %eax, %eax
  86. jne ..B1.12
  87. ..B1.10:
  88. cmpq $0, 48(%rsp)
  89. jne ..B1.12
  90. ..B1.11:
  91. lea _zeros(%rip), %rax
  92. fldl (%rax)
  93. addq $24, %rsp
  94. .cfi_def_cfa_offset 8
  95. ret
  96. .cfi_def_cfa_offset 32
  97. ..B1.12:
  98. movzwl 18(%rsp), %edx
  99. movl %edx, %eax
  100. andl $768, %eax
  101. cmpl $768, %eax
  102. je ..B1.16
  103. ..B1.13:
  104. orl $-64768, %edx
  105. movw %dx, 16(%rsp)
  106. ..B1.14:
  107. fldcw 16(%rsp)
  108. ..B1.15:
  109. movb $1, %sil
  110. ..B1.16:
  111. fldt 32(%rsp)
  112. lea _scales(%rip), %rax
  113. fldt 48(%rsp)
  114. lea 4(%rcx), %edx
  115. cmpl $8, %edx
  116. fldt (%rax)
  117. fmul %st, %st(2)
  118. fmulp %st, %st(1)
  119. ja ..B1.20
  120. ..B1.17:
  121. lea _TWO_48H(%rip), %rax
  122. fld %st(1)
  123. fld %st(2)
  124. fld %st(3)
  125. fld %st(3)
  126. lea _TWO_32H(%rip), %rdx
  127. fxch %st(5)
  128. fcomi %st(4), %st
  129. fldl (%rax)
  130. fmul %st, %st(4)
  131. fxch %st(3)
  132. fadd %st(4), %st
  133. fsubp %st, %st(4)
  134. fld %st(3)
  135. fld %st(5)
  136. fxch %st(4)
  137. fmul %st(6), %st
  138. fadd %st, %st(4)
  139. fsubrp %st, %st(4)
  140. fld %st(3)
  141. fxch %st(3)
  142. fsub %st(5), %st
  143. fmul %st, %st(1)
  144. fxch %st(4)
  145. fsubr %st, %st(7)
  146. fxch %st(3)
  147. fmul %st(7), %st
  148. fxch %st(2)
  149. fmulp %st, %st(4)
  150. faddp %st, %st(3)
  151. fxch %st(4)
  152. fmulp %st, %st(5)
  153. fxch %st(4)
  154. faddp %st, %st(3)
  155. faddp %st, %st(2)
  156. fxch %st(2)
  157. fmul %st(0), %st
  158. fld %st(0)
  159. fxch %st(3)
  160. fmul %st(0), %st
  161. fadd %st, %st(3)
  162. fldl (%rdx)
  163. fld %st(0)
  164. fmul %st(5), %st
  165. fadd %st, %st(5)
  166. fsubrp %st, %st(5)
  167. jbe ..B1.19
  168. ..B1.18:
  169. fxch %st(1)
  170. fsubr %st(4), %st
  171. fsubrp %st, %st(2)
  172. fxch %st(1)
  173. faddp %st, %st(2)
  174. fxch %st(2)
  175. jmp ..B1.22
  176. ..B1.19:
  177. fxch %st(2)
  178. fsubr %st(4), %st
  179. fsubrp %st, %st(1)
  180. faddp %st, %st(2)
  181. fxch %st(2)
  182. jmp ..B1.22
  183. ..B1.20:
  184. lea _TWO_48H(%rip), %rax
  185. lea _TWO_32H(%rip), %rdx
  186. testl %ecx, %ecx
  187. fldl (%rax)
  188. fldl (%rdx)
  189. jle ..B1.34
  190. ..B1.21:
  191. fxch %st(1)
  192. fmul %st(3), %st
  193. fld %st(3)
  194. fadd %st(1), %st
  195. fsubp %st, %st(1)
  196. fld %st(0)
  197. fld %st(4)
  198. fsub %st(2), %st
  199. fmul %st, %st(1)
  200. fmulp %st, %st(5)
  201. faddp %st, %st(4)
  202. fxch %st(2)
  203. fmul %st(0), %st
  204. faddp %st, %st(3)
  205. fxch %st(1)
  206. fmul %st(0), %st
  207. fxch %st(2)
  208. fxch %st(1)
  209. fxch %st(2)
  210. ..B1.22:
  211. fld %st(0)
  212. lea 16+_scales(%rip), %rax
  213. testb %sil, %sil
  214. fadd %st(2), %st
  215. fsqrt
  216. fmul %st, %st(3)
  217. fld %st(3)
  218. fadd %st(1), %st
  219. fsubp %st, %st(4)
  220. fld %st(3)
  221. fmul %st(4), %st
  222. fsubrp %st, %st(2)
  223. fld %st(3)
  224. fxch %st(1)
  225. fsub %st(4), %st
  226. fmul %st, %st(1)
  227. fxch %st(1)
  228. fsubrp %st, %st(2)
  229. fxch %st(2)
  230. faddp %st, %st(1)
  231. fld %st(2)
  232. fadd %st(2), %st
  233. fdivrp %st, %st(1)
  234. faddp %st, %st(1)
  235. fldt .L_2il0floatpacket.0(%rip)
  236. fmulp %st, %st(1)
  237. faddp %st, %st(1)
  238. fldt (%rax)
  239. fmulp %st, %st(1)
  240. fstpt (%rsp)
  241. je ..B1.24
  242. ..B1.23:
  243. fldcw 18(%rsp)
  244. ..B1.24:
  245. fldt (%rsp)
  246. addq $24, %rsp
  247. .cfi_def_cfa_offset 8
  248. ret
  249. .cfi_def_cfa_offset 32
  250. ..B1.25:
  251. movzwl 18(%rsp), %edx
  252. movl %edx, %eax
  253. andl $768, %eax
  254. cmpl $768, %eax
  255. je ..B1.29
  256. ..B1.26:
  257. orl $-64768, %edx
  258. movw %dx, 16(%rsp)
  259. ..B1.27:
  260. fldcw 16(%rsp)
  261. ..B1.28:
  262. movb $1, %sil
  263. ..B1.29:
  264. fldt 32(%rsp)
  265. lea 16+_ranges(%rip), %rax
  266. fldt 48(%rsp)
  267. faddp %st, %st(1)
  268. fstpt (%rsp)
  269. fldt (%rsp)
  270. fldt (%rax)
  271. fcomip %st(1), %st
  272. fstp %st(0)
  273. jae ..B1.31
  274. jp ..B1.31
  275. ..B1.30:
  276. lea _large_value_80(%rip), %rax
  277. fldt (%rax)
  278. fmul %st(0), %st
  279. fstpt (%rsp)
  280. ..B1.31:
  281. testb %sil, %sil
  282. je ..B1.33
  283. ..B1.32:
  284. fldcw 18(%rsp)
  285. ..B1.33:
  286. fldt (%rsp)
  287. addq $24, %rsp
  288. .cfi_def_cfa_offset 8
  289. ret
  290. .cfi_def_cfa_offset 32
  291. ..B1.34:
  292. fxch %st(1)
  293. fmul %st(2), %st
  294. fld %st(2)
  295. fadd %st(1), %st
  296. fsubp %st, %st(1)
  297. fld %st(0)
  298. fld %st(3)
  299. fsub %st(2), %st
  300. fmul %st, %st(1)
  301. fmulp %st, %st(4)
  302. faddp %st, %st(3)
  303. fxch %st(3)
  304. fmul %st(0), %st
  305. faddp %st, %st(2)
  306. fxch %st(2)
  307. fmul %st(0), %st
  308. jmp ..B1.22
  309. ..B1.35:
  310. movzwl 18(%rsp), %edx
  311. cmpl $47156, %edi
  312. jle ..B1.51
  313. ..B1.36:
  314. movl %edx, %eax
  315. andl $768, %eax
  316. cmpl $768, %eax
  317. je ..B1.40
  318. ..B1.37:
  319. orl $-64768, %edx
  320. movw %dx, 16(%rsp)
  321. ..B1.38:
  322. fldcw 16(%rsp)
  323. ..B1.39:
  324. movb $1, %sil
  325. ..B1.40:
  326. fldt 32(%rsp)
  327. lea 16+_scales(%rip), %rax
  328. fldt 48(%rsp)
  329. lea 4(%rcx), %edx
  330. cmpl $8, %edx
  331. fldt (%rax)
  332. fmul %st, %st(2)
  333. fmulp %st, %st(1)
  334. ja ..B1.44
  335. ..B1.41:
  336. lea _TWO_48H(%rip), %rax
  337. fld %st(1)
  338. fld %st(2)
  339. fld %st(3)
  340. fld %st(3)
  341. lea _TWO_32H(%rip), %rdx
  342. fxch %st(5)
  343. fcomi %st(4), %st
  344. fldl (%rax)
  345. fmul %st, %st(4)
  346. fxch %st(3)
  347. fadd %st(4), %st
  348. fsubp %st, %st(4)
  349. fld %st(3)
  350. fld %st(5)
  351. fxch %st(4)
  352. fmul %st(6), %st
  353. fadd %st, %st(4)
  354. fsubrp %st, %st(4)
  355. fld %st(3)
  356. fxch %st(3)
  357. fsub %st(5), %st
  358. fmul %st, %st(1)
  359. fxch %st(4)
  360. fsubr %st, %st(7)
  361. fxch %st(3)
  362. fmul %st(7), %st
  363. fxch %st(2)
  364. fmulp %st, %st(4)
  365. faddp %st, %st(3)
  366. fxch %st(4)
  367. fmulp %st, %st(5)
  368. fxch %st(4)
  369. faddp %st, %st(3)
  370. faddp %st, %st(2)
  371. fxch %st(2)
  372. fmul %st(0), %st
  373. fld %st(0)
  374. fxch %st(3)
  375. fmul %st(0), %st
  376. fadd %st, %st(3)
  377. fldl (%rdx)
  378. fld %st(0)
  379. fmul %st(5), %st
  380. fadd %st, %st(5)
  381. fsubrp %st, %st(5)
  382. jbe ..B1.43
  383. ..B1.42:
  384. fxch %st(1)
  385. fsubr %st(4), %st
  386. fsubrp %st, %st(2)
  387. fxch %st(1)
  388. faddp %st, %st(2)
  389. fxch %st(2)
  390. jmp ..B1.46
  391. ..B1.43:
  392. fxch %st(2)
  393. fsubr %st(4), %st
  394. fsubrp %st, %st(1)
  395. faddp %st, %st(2)
  396. fxch %st(2)
  397. jmp ..B1.46
  398. ..B1.44:
  399. lea _TWO_48H(%rip), %rax
  400. lea _TWO_32H(%rip), %rdx
  401. testl %ecx, %ecx
  402. fldl (%rax)
  403. fldl (%rdx)
  404. jle ..B1.65
  405. ..B1.45:
  406. fxch %st(1)
  407. fmul %st(3), %st
  408. fld %st(3)
  409. fadd %st(1), %st
  410. fsubp %st, %st(1)
  411. fld %st(0)
  412. fld %st(4)
  413. fsub %st(2), %st
  414. fmul %st, %st(1)
  415. fmulp %st, %st(5)
  416. faddp %st, %st(4)
  417. fxch %st(2)
  418. fmul %st(0), %st
  419. faddp %st, %st(3)
  420. fxch %st(1)
  421. fmul %st(0), %st
  422. fxch %st(2)
  423. fxch %st(1)
  424. fxch %st(2)
  425. ..B1.46:
  426. fldt .L_2il0floatpacket.0(%rip)
  427. fld %st(1)
  428. lea _ranges(%rip), %rax
  429. fadd %st(3), %st
  430. fsqrt
  431. fmul %st, %st(4)
  432. fld %st(4)
  433. fadd %st(1), %st
  434. fsubp %st, %st(5)
  435. fld %st(4)
  436. fmul %st(5), %st
  437. fsubrp %st, %st(3)
  438. fld %st(4)
  439. fxch %st(1)
  440. fsub %st(5), %st
  441. fmul %st, %st(1)
  442. fxch %st(1)
  443. fsubrp %st, %st(3)
  444. fxch %st(3)
  445. faddp %st, %st(2)
  446. fld %st(3)
  447. fadd %st(3), %st
  448. fdivrp %st, %st(2)
  449. fxch %st(1)
  450. faddp %st, %st(2)
  451. fmulp %st, %st(1)
  452. faddp %st, %st(1)
  453. fstpt (%rsp)
  454. fldt (%rsp)
  455. fldt (%rax)
  456. fcomip %st(1), %st
  457. fstp %st(0)
  458. jp ..B1.47
  459. jbe ..B1.64
  460. ..B1.47:
  461. fldt (%rsp)
  462. lea _scales(%rip), %rax
  463. fldt (%rax)
  464. fmulp %st, %st(1)
  465. fstpt (%rsp)
  466. ..B1.48:
  467. testb %sil, %sil
  468. je ..B1.50
  469. ..B1.49:
  470. fldcw 18(%rsp)
  471. ..B1.50:
  472. fldt (%rsp)
  473. addq $24, %rsp
  474. .cfi_def_cfa_offset 8
  475. ret
  476. .cfi_def_cfa_offset 32
  477. ..B1.51:
  478. movl %edx, %eax
  479. andl $768, %eax
  480. cmpl $768, %eax
  481. je ..B1.55
  482. ..B1.52:
  483. orl $-64768, %edx
  484. movw %dx, 16(%rsp)
  485. ..B1.53:
  486. fldcw 16(%rsp)
  487. ..B1.54:
  488. movb $1, %sil
  489. ..B1.55:
  490. lea 4(%rcx), %eax
  491. cmpl $8, %eax
  492. ja ..B1.59
  493. ..B1.56:
  494. fldt 32(%rsp)
  495. lea _TWO_48H(%rip), %rax
  496. fld %st(0)
  497. fld %st(1)
  498. fld %st(2)
  499. lea _TWO_32H(%rip), %rdx
  500. fldt 48(%rsp)
  501. fld %st(0)
  502. fxch %st(5)
  503. fcomi %st(1), %st
  504. fldl (%rax)
  505. fmul %st, %st(5)
  506. fxch %st(4)
  507. fadd %st(5), %st
  508. fsubp %st, %st(5)
  509. fld %st(4)
  510. fld %st(2)
  511. fxch %st(3)
  512. fmul %st, %st(5)
  513. fxch %st(3)
  514. fadd %st(5), %st
  515. fsubp %st, %st(5)
  516. fld %st(4)
  517. fxch %st(4)
  518. fsub %st(6), %st
  519. fmul %st, %st(1)
  520. fxch %st(5)
  521. fsubr %st, %st(7)
  522. fxch %st(4)
  523. fmul %st(7), %st
  524. fxch %st(2)
  525. fmulp %st, %st(5)
  526. faddp %st, %st(4)
  527. fxch %st(1)
  528. fmulp %st, %st(5)
  529. faddp %st, %st(4)
  530. fxch %st(1)
  531. faddp %st, %st(3)
  532. fmul %st(0), %st
  533. fld %st(0)
  534. fxch %st(2)
  535. fmul %st(0), %st
  536. fadd %st, %st(2)
  537. fldl (%rdx)
  538. fld %st(0)
  539. fmul %st(4), %st
  540. fadd %st, %st(4)
  541. fsubrp %st, %st(4)
  542. jbe ..B1.58
  543. ..B1.57:
  544. fxch %st(1)
  545. fsubr %st(3), %st
  546. fsubrp %st, %st(2)
  547. fxch %st(1)
  548. faddp %st, %st(3)
  549. fxch %st(2)
  550. fxch %st(1)
  551. jmp ..B1.61
  552. ..B1.58:
  553. fxch %st(2)
  554. fsubr %st(3), %st
  555. fsubrp %st, %st(1)
  556. faddp %st, %st(3)
  557. fxch %st(2)
  558. fxch %st(1)
  559. jmp ..B1.61
  560. ..B1.59:
  561. fldt 32(%rsp)
  562. lea _TWO_48H(%rip), %rax
  563. fldt 48(%rsp)
  564. lea _TWO_32H(%rip), %rdx
  565. testl %ecx, %ecx
  566. fldl (%rax)
  567. fldl (%rdx)
  568. jle ..B1.66
  569. ..B1.60:
  570. fxch %st(1)
  571. fmul %st(3), %st
  572. fld %st(3)
  573. fadd %st(1), %st
  574. fsubp %st, %st(1)
  575. fld %st(0)
  576. fld %st(4)
  577. fsub %st(2), %st
  578. fmul %st, %st(1)
  579. fmulp %st, %st(5)
  580. faddp %st, %st(4)
  581. fxch %st(2)
  582. fmul %st(0), %st
  583. faddp %st, %st(3)
  584. fxch %st(1)
  585. fmul %st(0), %st
  586. fxch %st(2)
  587. fxch %st(1)
  588. fxch %st(2)
  589. ..B1.61:
  590. fldt .L_2il0floatpacket.0(%rip)
  591. fld %st(1)
  592. testb %sil, %sil
  593. fadd %st(3), %st
  594. fsqrt
  595. fmul %st, %st(4)
  596. fld %st(4)
  597. fadd %st(1), %st
  598. fsubp %st, %st(5)
  599. fld %st(4)
  600. fmul %st(5), %st
  601. fsubrp %st, %st(3)
  602. fld %st(4)
  603. fxch %st(1)
  604. fsub %st(5), %st
  605. fmul %st, %st(1)
  606. fxch %st(1)
  607. fsubrp %st, %st(3)
  608. fxch %st(3)
  609. faddp %st, %st(2)
  610. fld %st(3)
  611. fadd %st(3), %st
  612. fdivrp %st, %st(2)
  613. fxch %st(1)
  614. faddp %st, %st(2)
  615. fmulp %st, %st(1)
  616. faddp %st, %st(1)
  617. fstpt (%rsp)
  618. je ..B1.63
  619. ..B1.62:
  620. fldcw 18(%rsp)
  621. ..B1.63:
  622. fldt (%rsp)
  623. addq $24, %rsp
  624. .cfi_def_cfa_offset 8
  625. ret
  626. .cfi_def_cfa_offset 32
  627. ..B1.64:
  628. lea _large_value_80(%rip), %rax
  629. fldt (%rax)
  630. fmul %st(0), %st
  631. fstpt (%rsp)
  632. jmp ..B1.48
  633. ..B1.65:
  634. fxch %st(1)
  635. fmul %st(2), %st
  636. fld %st(2)
  637. fadd %st(1), %st
  638. fsubp %st, %st(1)
  639. fld %st(0)
  640. fld %st(3)
  641. fsub %st(2), %st
  642. fmul %st, %st(1)
  643. fmulp %st, %st(4)
  644. faddp %st, %st(3)
  645. fxch %st(3)
  646. fmul %st(0), %st
  647. faddp %st, %st(2)
  648. fxch %st(2)
  649. fmul %st(0), %st
  650. jmp ..B1.46
  651. ..B1.66:
  652. fxch %st(1)
  653. fmul %st(2), %st
  654. fld %st(2)
  655. fadd %st(1), %st
  656. fsubp %st, %st(1)
  657. fld %st(0)
  658. fld %st(3)
  659. fsub %st(2), %st
  660. fmul %st, %st(1)
  661. fmulp %st, %st(4)
  662. faddp %st, %st(3)
  663. fxch %st(3)
  664. fmul %st(0), %st
  665. faddp %st, %st(2)
  666. fxch %st(2)
  667. fmul %st(0), %st
  668. jmp ..B1.61
  669. ..B1.67:
  670. movzwl 18(%rsp), %edi
  671. movl %edi, %ecx
  672. andl $768, %ecx
  673. cmpl $768, %ecx
  674. je ..B1.71
  675. ..B1.68:
  676. orl $-64768, %edi
  677. movw %di, 16(%rsp)
  678. ..B1.69:
  679. fldcw 16(%rsp)
  680. ..B1.70:
  681. movb $1, %sil
  682. ..B1.71:
  683. cmpl $32767, %edx
  684. je ..B1.87
  685. ..B1.72:
  686. cmpl $32767, %eax
  687. je ..B1.85
  688. ..B1.73:
  689. fldt 32(%rsp)
  690. fldt 48(%rsp)
  691. faddp %st, %st(1)
  692. fstpt (%rsp)
  693. ..B1.74:
  694. testb %sil, %sil
  695. je ..B1.76
  696. ..B1.75:
  697. fldcw 18(%rsp)
  698. ..B1.76:
  699. cmpl $32767, %edx
  700. je ..B1.82
  701. ..B1.77:
  702. cmpl $32767, %eax
  703. jne ..B1.81
  704. ..B1.78:
  705. cmpl $-2147483648, 52(%rsp)
  706. jne ..B1.81
  707. ..B1.79:
  708. cmpl $0, 48(%rsp)
  709. jne ..B1.81
  710. ..B1.80:
  711. fldt 48(%rsp)
  712. addq $24, %rsp
  713. .cfi_def_cfa_offset 8
  714. ret
  715. .cfi_def_cfa_offset 32
  716. ..B1.81:
  717. fldt (%rsp)
  718. addq $24, %rsp
  719. .cfi_def_cfa_offset 8
  720. ret
  721. .cfi_def_cfa_offset 32
  722. ..B1.82:
  723. cmpl $-2147483648, 36(%rsp)
  724. jne ..B1.77
  725. ..B1.83:
  726. cmpl $0, 32(%rsp)
  727. jne ..B1.77
  728. ..B1.84:
  729. fldt 32(%rsp)
  730. addq $24, %rsp
  731. .cfi_def_cfa_offset 8
  732. ret
  733. .cfi_def_cfa_offset 32
  734. ..B1.85:
  735. movq $0x8000000000000000, %rcx
  736. cmpq 48(%rsp), %rcx
  737. je ..B1.73
  738. ..B1.86:
  739. fldt 32(%rsp)
  740. fldt 48(%rsp)
  741. fmulp %st, %st(1)
  742. fstpt (%rsp)
  743. jmp ..B1.74
  744. ..B1.87:
  745. movq $0x8000000000000000, %rcx
  746. cmpq 32(%rsp), %rcx
  747. jne ..B1.86
  748. jmp ..B1.72
  749. .align 16,0x90
  750. .cfi_endproc
  751. .type hypotl,@function
  752. .size hypotl,.-hypotl
  753. .data
  754. # -- End hypotl
  755. .section .rodata, "a"
  756. .align 16
  757. .align 16
  758. .L_2il0floatpacket.0:
  759. .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xfe,0x3f,0x00,0x00,0x00,0x00,0x00,0x00
  760. .type .L_2il0floatpacket.0,@object
  761. .size .L_2il0floatpacket.0,16
  762. .align 4
  763. _zeros:
  764. .long 0
  765. .long 0
  766. .long 0
  767. .long 2147483648
  768. .type _zeros,@object
  769. .size _zeros,16
  770. .align 4
  771. _TWO_48H:
  772. .long 0
  773. .long 1123549184
  774. .type _TWO_48H,@object
  775. .size _TWO_48H,8
  776. .align 4
  777. _TWO_32H:
  778. .long 0
  779. .long 1106771968
  780. .type _TWO_32H,@object
  781. .size _TWO_32H,8
  782. .align 2
  783. _scales:
  784. .word 0
  785. .word 0
  786. .word 0
  787. .word 32768
  788. .word 24653
  789. .word 0
  790. .word 0
  791. .word 0
  792. .word 0
  793. .word 0
  794. .word 0
  795. .word 32768
  796. .word 8113
  797. .word 0
  798. .word 0
  799. .word 0
  800. .type _scales,@object
  801. .size _scales,32
  802. .align 2
  803. _ranges:
  804. .word 0
  805. .word 0
  806. .word 0
  807. .word 32768
  808. .word 24497
  809. .word 0
  810. .word 0
  811. .word 0
  812. .word 65535
  813. .word 65535
  814. .word 65535
  815. .word 65535
  816. .word 32766
  817. .word 0
  818. .word 0
  819. .word 0
  820. .type _ranges,@object
  821. .size _ranges,32
  822. .align 2
  823. _large_value_80:
  824. .word 0
  825. .word 0
  826. .word 0
  827. .word 32768
  828. .word 26383
  829. .word 0
  830. .word 0
  831. .word 0
  832. .word 0
  833. .word 0
  834. .word 0
  835. .word 32768
  836. .word 59151
  837. .word 0
  838. .word 0
  839. .word 0
  840. .type _large_value_80,@object
  841. .size _large_value_80,32
  842. .data
  843. .section .note.GNU-stack, ""
  844. // -- Begin DWARF2 SEGMENT .eh_frame
  845. .section .eh_frame,"a",@progbits
  846. .eh_frame_seg:
  847. .align 1
  848. # End