remquol.S 29 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244
  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 "remquol.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin remquol
  41. .text
  42. .align 16,0x90
  43. .globl remquol
  44. remquol:
  45. # parameter 1: 80 + %rsp
  46. # parameter 2: 96 + %rsp
  47. # parameter 3: %rdi
  48. ..B1.1:
  49. .cfi_startproc
  50. ..___tag_value_remquol.1:
  51. ..L2:
  52. pushq %r12
  53. .cfi_def_cfa_offset 16
  54. .cfi_offset 12, -16
  55. pushq %r13
  56. .cfi_def_cfa_offset 24
  57. .cfi_offset 13, -24
  58. pushq %rbx
  59. .cfi_def_cfa_offset 32
  60. .cfi_offset 3, -32
  61. pushq %rbp
  62. .cfi_def_cfa_offset 40
  63. .cfi_offset 6, -40
  64. subq $40, %rsp
  65. .cfi_def_cfa_offset 80
  66. movq %rdi, %r13
  67. xorb %r12b, %r12b
  68. ..B1.2:
  69. fnstcw 34(%rsp)
  70. ..B1.3:
  71. movzwl 104(%rsp), %edx
  72. movl $0, (%r13)
  73. andl $32767, %edx
  74. jne ..B1.6
  75. ..B1.4:
  76. cmpl $0, 100(%rsp)
  77. jne ..B1.6
  78. ..B1.5:
  79. cmpl $0, 96(%rsp)
  80. je ..B1.50
  81. ..B1.6:
  82. movzwl 88(%rsp), %ecx
  83. andl $32767, %ecx
  84. cmpl $32767, %ecx
  85. je ..B1.48
  86. ..B1.7:
  87. cmpl $32767, %edx
  88. je ..B1.25
  89. ..B1.8:
  90. movzwl 34(%rsp), %edx
  91. movl %edx, %eax
  92. movb 89(%rsp), %bpl
  93. andl $3840, %eax
  94. movb 105(%rsp), %bl
  95. andb $-128, %bpl
  96. andb $-128, %bl
  97. shrb $7, %bpl
  98. shrb $7, %bl
  99. cmpl $768, %eax
  100. je ..B1.12
  101. ..B1.9:
  102. andl $-3841, %edx
  103. orl $-64768, %edx
  104. movw %dx, 32(%rsp)
  105. ..B1.10:
  106. fldcw 32(%rsp)
  107. ..B1.11:
  108. movb $1, %r12b
  109. ..B1.12:
  110. addq $-32, %rsp
  111. .cfi_def_cfa_offset 112
  112. movq %r13, %rdi
  113. fldt 112(%rsp)
  114. fstpt (%rsp)
  115. fldt 128(%rsp)
  116. fstpt 16(%rsp)
  117. ..___tag_value_remquol.13:
  118. call __libm_remquol@PLT
  119. ..___tag_value_remquol.14:
  120. ..B1.63:
  121. addq $32, %rsp
  122. .cfi_def_cfa_offset 80
  123. ..B1.13:
  124. fstpt 16(%rsp)
  125. testb %r12b, %r12b
  126. je ..B1.15
  127. ..B1.14:
  128. fldcw 34(%rsp)
  129. ..B1.15:
  130. movl (%r13), %esi
  131. testl %esi, %esi
  132. je ..B1.19
  133. ..B1.16:
  134. movzbl %bl, %edx
  135. lea iones(%rip), %rax
  136. movl (%rax,%rdx,4), %ecx
  137. imull %ecx, %esi
  138. cmpb %bpl, %bl
  139. je ..B1.18
  140. ..B1.17:
  141. orl $-2147483648, %esi
  142. movl %esi, (%r13)
  143. jmp ..B1.19
  144. ..B1.18:
  145. andl $2147483647, %esi
  146. movl %esi, (%r13)
  147. ..B1.19:
  148. movzwl 24(%rsp), %eax
  149. testl $32767, %eax
  150. jne ..B1.24
  151. ..B1.20:
  152. cmpq $0, 16(%rsp)
  153. jne ..B1.22
  154. ..B1.21:
  155. movzbl %bpl, %edx
  156. lea _zeros(%rip), %rax
  157. fldl (%rax,%rdx,8)
  158. addq $40, %rsp
  159. .cfi_def_cfa_offset 40
  160. .cfi_restore 6
  161. popq %rbp
  162. .cfi_def_cfa_offset 32
  163. .cfi_restore 3
  164. popq %rbx
  165. .cfi_def_cfa_offset 24
  166. .cfi_restore 13
  167. popq %r13
  168. .cfi_def_cfa_offset 16
  169. .cfi_restore 12
  170. popq %r12
  171. .cfi_def_cfa_offset 8
  172. ret
  173. .cfi_def_cfa_offset 80
  174. .cfi_offset 3, -32
  175. .cfi_offset 6, -40
  176. .cfi_offset 12, -16
  177. .cfi_offset 13, -24
  178. ..B1.22:
  179. fldt 16(%rsp)
  180. lea _small_value_64(%rip), %rax
  181. movsd (%rax), %xmm0
  182. mulsd %xmm0, %xmm0
  183. movsd %xmm0, 8(%rsp)
  184. ..B1.23:
  185. addq $40, %rsp
  186. .cfi_def_cfa_offset 40
  187. .cfi_restore 6
  188. popq %rbp
  189. .cfi_def_cfa_offset 32
  190. .cfi_restore 3
  191. popq %rbx
  192. .cfi_def_cfa_offset 24
  193. .cfi_restore 13
  194. popq %r13
  195. .cfi_def_cfa_offset 16
  196. .cfi_restore 12
  197. popq %r12
  198. .cfi_def_cfa_offset 8
  199. ret
  200. .cfi_def_cfa_offset 80
  201. .cfi_offset 3, -32
  202. .cfi_offset 6, -40
  203. .cfi_offset 12, -16
  204. .cfi_offset 13, -24
  205. ..B1.24:
  206. fldt 16(%rsp)
  207. addq $40, %rsp
  208. .cfi_def_cfa_offset 40
  209. .cfi_restore 6
  210. popq %rbp
  211. .cfi_def_cfa_offset 32
  212. .cfi_restore 3
  213. popq %rbx
  214. .cfi_def_cfa_offset 24
  215. .cfi_restore 13
  216. popq %r13
  217. .cfi_def_cfa_offset 16
  218. .cfi_restore 12
  219. popq %r12
  220. .cfi_def_cfa_offset 8
  221. ret
  222. .cfi_def_cfa_offset 80
  223. .cfi_offset 3, -32
  224. .cfi_offset 6, -40
  225. .cfi_offset 12, -16
  226. .cfi_offset 13, -24
  227. ..B1.25:
  228. movq $0x8000000000000000, %rax
  229. cmpq 96(%rsp), %rax
  230. je ..B1.33
  231. ..B1.26:
  232. movzwl 34(%rsp), %edx
  233. movl %edx, %eax
  234. andl $768, %eax
  235. cmpl $768, %eax
  236. je ..B1.32
  237. ..B1.27:
  238. orl $-64768, %edx
  239. movw %dx, 32(%rsp)
  240. ..B1.28:
  241. fldcw 32(%rsp)
  242. ..B1.29:
  243. fldt 80(%rsp)
  244. fldt 96(%rsp)
  245. faddp %st, %st(1)
  246. fstpt 16(%rsp)
  247. ..B1.30:
  248. fldcw 34(%rsp)
  249. ..B1.31:
  250. fldt 16(%rsp)
  251. addq $40, %rsp
  252. .cfi_def_cfa_offset 40
  253. .cfi_restore 6
  254. popq %rbp
  255. .cfi_def_cfa_offset 32
  256. .cfi_restore 3
  257. popq %rbx
  258. .cfi_def_cfa_offset 24
  259. .cfi_restore 13
  260. popq %r13
  261. .cfi_def_cfa_offset 16
  262. .cfi_restore 12
  263. popq %r12
  264. .cfi_def_cfa_offset 8
  265. ret
  266. .cfi_def_cfa_offset 80
  267. .cfi_offset 3, -32
  268. .cfi_offset 6, -40
  269. .cfi_offset 12, -16
  270. .cfi_offset 13, -24
  271. ..B1.32:
  272. fldt 80(%rsp)
  273. fldt 96(%rsp)
  274. faddp %st, %st(1)
  275. fstpt 16(%rsp)
  276. jmp ..B1.31
  277. ..B1.33:
  278. cmpl $32767, %ecx
  279. je ..B1.39
  280. ..B1.34:
  281. testl %ecx, %ecx
  282. jne ..B1.38
  283. ..B1.35:
  284. cmpl $0, 84(%rsp)
  285. jne ..B1.37
  286. ..B1.36:
  287. cmpl $0, 80(%rsp)
  288. je ..B1.38
  289. ..B1.37:
  290. lea _smallest_value_64(%rip), %rax
  291. movq (%rax), %rdx
  292. movq %rdx, 8(%rsp)
  293. ..B1.38:
  294. fldt 80(%rsp)
  295. addq $40, %rsp
  296. .cfi_def_cfa_offset 40
  297. .cfi_restore 6
  298. popq %rbp
  299. .cfi_def_cfa_offset 32
  300. .cfi_restore 3
  301. popq %rbx
  302. .cfi_def_cfa_offset 24
  303. .cfi_restore 13
  304. popq %r13
  305. .cfi_def_cfa_offset 16
  306. .cfi_restore 12
  307. popq %r12
  308. .cfi_def_cfa_offset 8
  309. ret
  310. .cfi_def_cfa_offset 80
  311. .cfi_offset 3, -32
  312. .cfi_offset 6, -40
  313. .cfi_offset 12, -16
  314. .cfi_offset 13, -24
  315. ..B1.39:
  316. cmpl $-2147483648, 84(%rsp)
  317. jne ..B1.38
  318. ..B1.40:
  319. cmpl $0, 80(%rsp)
  320. jne ..B1.38
  321. ..B1.41:
  322. movzwl 34(%rsp), %edx
  323. movl %edx, %eax
  324. andl $768, %eax
  325. cmpl $768, %eax
  326. je ..B1.45
  327. ..B1.42:
  328. orl $-64768, %edx
  329. movw %dx, 32(%rsp)
  330. ..B1.43:
  331. fldcw 32(%rsp)
  332. ..B1.44:
  333. movb $1, %r12b
  334. ..B1.45:
  335. lea _infs(%rip), %rax
  336. lea _zeros(%rip), %rdx
  337. testb %r12b, %r12b
  338. movsd (%rax), %xmm0
  339. mulsd (%rdx), %xmm0
  340. movsd %xmm0, (%rsp)
  341. fldl (%rsp)
  342. fstpt 16(%rsp)
  343. je ..B1.47
  344. ..B1.46:
  345. fldcw 34(%rsp)
  346. ..B1.47:
  347. fldt 16(%rsp)
  348. addq $40, %rsp
  349. .cfi_def_cfa_offset 40
  350. .cfi_restore 6
  351. popq %rbp
  352. .cfi_def_cfa_offset 32
  353. .cfi_restore 3
  354. popq %rbx
  355. .cfi_def_cfa_offset 24
  356. .cfi_restore 13
  357. popq %r13
  358. .cfi_def_cfa_offset 16
  359. .cfi_restore 12
  360. popq %r12
  361. .cfi_def_cfa_offset 8
  362. ret
  363. .cfi_def_cfa_offset 80
  364. .cfi_offset 3, -32
  365. .cfi_offset 6, -40
  366. .cfi_offset 12, -16
  367. .cfi_offset 13, -24
  368. ..B1.48:
  369. movq $0x8000000000000000, %rax
  370. cmpq 80(%rsp), %rax
  371. jne ..B1.26
  372. ..B1.49:
  373. cmpl $32767, %edx
  374. je ..B1.25
  375. jmp ..B1.33
  376. ..B1.50:
  377. movzwl 34(%rsp), %edx
  378. movl %edx, %eax
  379. andl $768, %eax
  380. cmpl $768, %eax
  381. je ..B1.54
  382. ..B1.51:
  383. orl $-64768, %edx
  384. movw %dx, 32(%rsp)
  385. ..B1.52:
  386. fldcw 32(%rsp)
  387. ..B1.53:
  388. movb $1, %r12b
  389. ..B1.54:
  390. movzwl 88(%rsp), %eax
  391. andl $32767, %eax
  392. cmpl $32767, %eax
  393. je ..B1.59
  394. ..B1.55:
  395. lea _infs(%rip), %rax
  396. lea _zeros(%rip), %rdx
  397. movsd (%rax), %xmm0
  398. mulsd (%rdx), %xmm0
  399. movsd %xmm0, (%rsp)
  400. fldl (%rsp)
  401. fstpt 16(%rsp)
  402. ..B1.56:
  403. testb %r12b, %r12b
  404. je ..B1.58
  405. ..B1.57:
  406. fldcw 34(%rsp)
  407. ..B1.58:
  408. fldt 16(%rsp)
  409. addq $40, %rsp
  410. .cfi_def_cfa_offset 40
  411. .cfi_restore 6
  412. popq %rbp
  413. .cfi_def_cfa_offset 32
  414. .cfi_restore 3
  415. popq %rbx
  416. .cfi_def_cfa_offset 24
  417. .cfi_restore 13
  418. popq %r13
  419. .cfi_def_cfa_offset 16
  420. .cfi_restore 12
  421. popq %r12
  422. .cfi_def_cfa_offset 8
  423. ret
  424. .cfi_def_cfa_offset 80
  425. .cfi_offset 3, -32
  426. .cfi_offset 6, -40
  427. .cfi_offset 12, -16
  428. .cfi_offset 13, -24
  429. ..B1.59:
  430. movq $0x8000000000000000, %rax
  431. cmpq 80(%rsp), %rax
  432. je ..B1.55
  433. ..B1.60:
  434. fldt 80(%rsp)
  435. lea _ones(%rip), %rax
  436. fmull (%rax)
  437. fstpt 16(%rsp)
  438. jmp ..B1.56
  439. .align 16,0x90
  440. .cfi_endproc
  441. .type remquol,@function
  442. .size remquol,.-remquol
  443. .data
  444. # -- End remquol
  445. .text
  446. # -- Begin __libm_remquol
  447. .text
  448. .align 16,0x90
  449. .globl __libm_remquol
  450. __libm_remquol:
  451. # parameter 1: 208 + %rsp
  452. # parameter 2: 224 + %rsp
  453. # parameter 3: %rdi
  454. ..B2.1:
  455. .cfi_startproc
  456. ..___tag_value___libm_remquol.115:
  457. ..L116:
  458. pushq %r12
  459. .cfi_def_cfa_offset 16
  460. .cfi_offset 12, -16
  461. pushq %r13
  462. .cfi_def_cfa_offset 24
  463. .cfi_offset 13, -24
  464. pushq %r14
  465. .cfi_def_cfa_offset 32
  466. .cfi_offset 14, -32
  467. pushq %r15
  468. .cfi_def_cfa_offset 40
  469. .cfi_offset 15, -40
  470. pushq %rbx
  471. .cfi_def_cfa_offset 48
  472. .cfi_offset 3, -48
  473. pushq %rbp
  474. .cfi_def_cfa_offset 56
  475. .cfi_offset 6, -56
  476. subq $152, %rsp
  477. .cfi_def_cfa_offset 208
  478. lea _ones(%rip), %rax
  479. fldt 208(%rsp)
  480. movq %rdi, %rbx
  481. andb $127, 233(%rsp)
  482. movzwl 216(%rsp), %r15d
  483. andl $32767, %r15d
  484. movzwl 232(%rsp), %r11d
  485. andl $32767, %r11d
  486. fstpt 112(%rsp)
  487. fldt 112(%rsp)
  488. cmpl $32703, %r15d
  489. fldt 224(%rsp)
  490. fstpt 128(%rsp)
  491. fldt 128(%rsp)
  492. fldl (%rax)
  493. movl $0, 128(%rsp)
  494. jl ..B2.8
  495. ..B2.2:
  496. fstp %st(0)
  497. cmpl $32703, %r11d
  498. jl ..B2.5
  499. ..B2.3:
  500. lea 8+_scales(%rip), %rax
  501. movq %rbx, %rdi
  502. fldl (%rax)
  503. fmul %st, %st(1)
  504. fxch %st(1)
  505. fstpt 224(%rsp)
  506. fldt 224(%rsp)
  507. addq $-32, %rsp
  508. .cfi_def_cfa_offset 240
  509. fxch %st(1)
  510. fmulp %st, %st(2)
  511. fxch %st(1)
  512. fstpt (%rsp)
  513. fstpt 16(%rsp)
  514. ..___tag_value___libm_remquol.131:
  515. call __libm_remquol@PLT
  516. ..___tag_value___libm_remquol.132:
  517. ..B2.35:
  518. addq $32, %rsp
  519. .cfi_def_cfa_offset 208
  520. ..B2.4:
  521. lea _scales(%rip), %rax
  522. fmull (%rax)
  523. fstpt 112(%rsp)
  524. fldt 112(%rsp)
  525. addq $152, %rsp
  526. .cfi_def_cfa_offset 56
  527. .cfi_restore 6
  528. popq %rbp
  529. .cfi_def_cfa_offset 48
  530. .cfi_restore 3
  531. popq %rbx
  532. .cfi_def_cfa_offset 40
  533. .cfi_restore 15
  534. popq %r15
  535. .cfi_def_cfa_offset 32
  536. .cfi_restore 14
  537. popq %r14
  538. .cfi_def_cfa_offset 24
  539. .cfi_restore 13
  540. popq %r13
  541. .cfi_def_cfa_offset 16
  542. .cfi_restore 12
  543. popq %r12
  544. .cfi_def_cfa_offset 8
  545. ret
  546. .cfi_def_cfa_offset 208
  547. .cfi_offset 3, -48
  548. .cfi_offset 6, -56
  549. .cfi_offset 12, -16
  550. .cfi_offset 13, -24
  551. .cfi_offset 14, -32
  552. .cfi_offset 15, -40
  553. ..B2.5:
  554. lea 8+_scales(%rip), %rax
  555. addq $-32, %rsp
  556. .cfi_def_cfa_offset 240
  557. movq %rbx, %rdi
  558. fldl (%rax)
  559. fmulp %st, %st(2)
  560. fxch %st(1)
  561. fstpt (%rsp)
  562. fstpt 16(%rsp)
  563. ..___tag_value___libm_remquol.155:
  564. call __libm_remquol@PLT
  565. ..___tag_value___libm_remquol.156:
  566. ..B2.6:
  567. lea _scales(%rip), %rax
  568. movq %rbx, %rdi
  569. fldl (%rax)
  570. fmulp %st, %st(1)
  571. fstpt (%rsp)
  572. fldt 256(%rsp)
  573. fstpt 16(%rsp)
  574. ..___tag_value___libm_remquol.157:
  575. call __libm_remquol@PLT
  576. ..___tag_value___libm_remquol.158:
  577. ..B2.37:
  578. addq $32, %rsp
  579. .cfi_def_cfa_offset 208
  580. ..B2.7:
  581. fstpt 112(%rsp)
  582. fldt 112(%rsp)
  583. addq $152, %rsp
  584. .cfi_def_cfa_offset 56
  585. .cfi_restore 6
  586. popq %rbp
  587. .cfi_def_cfa_offset 48
  588. .cfi_restore 3
  589. popq %rbx
  590. .cfi_def_cfa_offset 40
  591. .cfi_restore 15
  592. popq %r15
  593. .cfi_def_cfa_offset 32
  594. .cfi_restore 14
  595. popq %r14
  596. .cfi_def_cfa_offset 24
  597. .cfi_restore 13
  598. popq %r13
  599. .cfi_def_cfa_offset 16
  600. .cfi_restore 12
  601. popq %r12
  602. .cfi_def_cfa_offset 8
  603. ret
  604. .cfi_def_cfa_offset 208
  605. .cfi_offset 3, -48
  606. .cfi_offset 6, -56
  607. .cfi_offset 12, -16
  608. .cfi_offset 13, -24
  609. .cfi_offset 14, -32
  610. .cfi_offset 15, -40
  611. ..B2.8:
  612. cmpl $64, %r11d
  613. jge ..B2.12
  614. ..B2.9:
  615. fstp %st(0)
  616. lea _scales(%rip), %rax
  617. movq %rbx, %rdi
  618. fldl (%rax)
  619. fmul %st, %st(1)
  620. fxch %st(1)
  621. fstpt 224(%rsp)
  622. fldt 224(%rsp)
  623. fxch %st(1)
  624. fstpt (%rsp)
  625. addq $-32, %rsp
  626. .cfi_def_cfa_offset 240
  627. fxch %st(1)
  628. fstpt (%rsp)
  629. fstpt 16(%rsp)
  630. ..___tag_value___libm_remquol.181:
  631. call __libm_remquol@PLT
  632. ..___tag_value___libm_remquol.182:
  633. ..B2.38:
  634. addq $32, %rsp
  635. .cfi_def_cfa_offset 208
  636. ..B2.10:
  637. fldt (%rsp)
  638. addq $-32, %rsp
  639. .cfi_def_cfa_offset 240
  640. fmulp %st, %st(1)
  641. movq %rbx, %rdi
  642. fstpt (%rsp)
  643. fldt 256(%rsp)
  644. fstpt 16(%rsp)
  645. ..___tag_value___libm_remquol.185:
  646. call __libm_remquol@PLT
  647. ..___tag_value___libm_remquol.186:
  648. ..B2.39:
  649. addq $32, %rsp
  650. .cfi_def_cfa_offset 208
  651. ..B2.11:
  652. lea 8+_scales(%rip), %rax
  653. fmull (%rax)
  654. fstpt 112(%rsp)
  655. fldt 112(%rsp)
  656. addq $152, %rsp
  657. .cfi_def_cfa_offset 56
  658. .cfi_restore 6
  659. popq %rbp
  660. .cfi_def_cfa_offset 48
  661. .cfi_restore 3
  662. popq %rbx
  663. .cfi_def_cfa_offset 40
  664. .cfi_restore 15
  665. popq %r15
  666. .cfi_def_cfa_offset 32
  667. .cfi_restore 14
  668. popq %r14
  669. .cfi_def_cfa_offset 24
  670. .cfi_restore 13
  671. popq %r13
  672. .cfi_def_cfa_offset 16
  673. .cfi_restore 12
  674. popq %r12
  675. .cfi_def_cfa_offset 8
  676. ret
  677. .cfi_def_cfa_offset 208
  678. .cfi_offset 3, -48
  679. .cfi_offset 6, -56
  680. .cfi_offset 12, -16
  681. .cfi_offset 13, -24
  682. .cfi_offset 14, -32
  683. .cfi_offset 15, -40
  684. ..B2.12:
  685. lea 1(%r15), %eax
  686. cmpl %eax, %r11d
  687. jg ..B2.31
  688. ..B2.13:
  689. lea -32(%r15), %eax
  690. cmpl %eax, %r11d
  691. jle ..B2.22
  692. ..B2.14:
  693. fstp %st(0)
  694. fldt 128(%rsp)
  695. fld %st(2)
  696. fdiv %st(2), %st
  697. lea _TWO_63H(%rip), %rax
  698. fld %st(2)
  699. lea _halfs(%rip), %rdx
  700. fsub %st(2), %st
  701. fldl (%rax)
  702. fld %st(0)
  703. fadd %st(3), %st
  704. fstpt 16(%rsp)
  705. fldt 16(%rsp)
  706. fsubp %st, %st(1)
  707. fmul %st, %st(3)
  708. movl 16(%rsp), %eax
  709. fxch %st(3)
  710. fsubrp %st, %st(5)
  711. fmul %st(2), %st
  712. fsubrp %st, %st(4)
  713. fld %st(1)
  714. fsubr %st(1), %st
  715. fabs
  716. fldl (%rdx)
  717. fucomi %st(1), %st
  718. fxch %st(1)
  719. fstp %st(0)
  720. jp ..B2.15
  721. je ..B2.16
  722. ..B2.15:
  723. fstp %st(3)
  724. fstp %st(1)
  725. fstp %st(0)
  726. fstp %st(0)
  727. movl %eax, (%rbx)
  728. addq $152, %rsp
  729. .cfi_def_cfa_offset 56
  730. .cfi_restore 6
  731. popq %rbp
  732. .cfi_def_cfa_offset 48
  733. .cfi_restore 3
  734. popq %rbx
  735. .cfi_def_cfa_offset 40
  736. .cfi_restore 15
  737. popq %r15
  738. .cfi_def_cfa_offset 32
  739. .cfi_restore 14
  740. popq %r14
  741. .cfi_def_cfa_offset 24
  742. .cfi_restore 13
  743. popq %r13
  744. .cfi_def_cfa_offset 16
  745. .cfi_restore 12
  746. popq %r12
  747. .cfi_def_cfa_offset 8
  748. ret
  749. .cfi_def_cfa_offset 208
  750. .cfi_offset 3, -48
  751. .cfi_offset 6, -56
  752. .cfi_offset 12, -16
  753. .cfi_offset 13, -24
  754. .cfi_offset 14, -32
  755. .cfi_offset 15, -40
  756. ..B2.16:
  757. fmul %st(3), %st
  758. fld %st(4)
  759. fabs
  760. fcomip %st(1), %st
  761. fstp %st(0)
  762. jp ..B2.17
  763. jbe ..B2.21
  764. ..B2.17:
  765. fcomip %st(1), %st
  766. fstp %st(0)
  767. ja ..B2.19
  768. jp ..B2.19
  769. ..B2.18:
  770. decl %eax
  771. faddp %st, %st(1)
  772. movl %eax, (%rbx)
  773. addq $152, %rsp
  774. .cfi_def_cfa_offset 56
  775. .cfi_restore 6
  776. popq %rbp
  777. .cfi_def_cfa_offset 48
  778. .cfi_restore 3
  779. popq %rbx
  780. .cfi_def_cfa_offset 40
  781. .cfi_restore 15
  782. popq %r15
  783. .cfi_def_cfa_offset 32
  784. .cfi_restore 14
  785. popq %r14
  786. .cfi_def_cfa_offset 24
  787. .cfi_restore 13
  788. popq %r13
  789. .cfi_def_cfa_offset 16
  790. .cfi_restore 12
  791. popq %r12
  792. .cfi_def_cfa_offset 8
  793. ret
  794. .cfi_def_cfa_offset 208
  795. .cfi_offset 3, -48
  796. .cfi_offset 6, -56
  797. .cfi_offset 12, -16
  798. .cfi_offset 13, -24
  799. .cfi_offset 14, -32
  800. .cfi_offset 15, -40
  801. ..B2.19:
  802. incl %eax
  803. fsubrp %st, %st(1)
  804. movl %eax, (%rbx)
  805. ..B2.20:
  806. addq $152, %rsp
  807. .cfi_def_cfa_offset 56
  808. .cfi_restore 6
  809. popq %rbp
  810. .cfi_def_cfa_offset 48
  811. .cfi_restore 3
  812. popq %rbx
  813. .cfi_def_cfa_offset 40
  814. .cfi_restore 15
  815. popq %r15
  816. .cfi_def_cfa_offset 32
  817. .cfi_restore 14
  818. popq %r14
  819. .cfi_def_cfa_offset 24
  820. .cfi_restore 13
  821. popq %r13
  822. .cfi_def_cfa_offset 16
  823. .cfi_restore 12
  824. popq %r12
  825. .cfi_def_cfa_offset 8
  826. ret
  827. .cfi_def_cfa_offset 208
  828. .cfi_offset 3, -48
  829. .cfi_offset 6, -56
  830. .cfi_offset 12, -16
  831. .cfi_offset 13, -24
  832. .cfi_offset 14, -32
  833. .cfi_offset 15, -40
  834. ..B2.21:
  835. fstp %st(2)
  836. fstp %st(0)
  837. fstp %st(0)
  838. movl %eax, (%rbx)
  839. addq $152, %rsp
  840. .cfi_def_cfa_offset 56
  841. .cfi_restore 6
  842. popq %rbp
  843. .cfi_def_cfa_offset 48
  844. .cfi_restore 3
  845. popq %rbx
  846. .cfi_def_cfa_offset 40
  847. .cfi_restore 15
  848. popq %r15
  849. .cfi_def_cfa_offset 32
  850. .cfi_restore 14
  851. popq %r14
  852. .cfi_def_cfa_offset 24
  853. .cfi_restore 13
  854. popq %r13
  855. .cfi_def_cfa_offset 16
  856. .cfi_restore 12
  857. popq %r12
  858. .cfi_def_cfa_offset 8
  859. ret
  860. .cfi_def_cfa_offset 208
  861. .cfi_offset 3, -48
  862. .cfi_offset 6, -56
  863. .cfi_offset 12, -16
  864. .cfi_offset 13, -24
  865. .cfi_offset 14, -32
  866. .cfi_offset 15, -40
  867. ..B2.22:
  868. fldt 128(%rsp)
  869. subl %r11d, %r15d
  870. fstpt 32(%rsp)
  871. fldt 32(%rsp)
  872. fld %st(1)
  873. fdiv %st(3), %st
  874. fld %st(3)
  875. fsubp %st, %st(2)
  876. xorl %r10d, %r10d
  877. addl $-31, %r15d
  878. movl %r15d, %ecx
  879. jle ..B2.32
  880. ..B2.23:
  881. lea _TWO_63H(%rip), %rdi
  882. fxch %st(1)
  883. fstpt (%rsp)
  884. fldt (%rsp)
  885. fstpt 64(%rsp)
  886. fldt 64(%rsp)
  887. fxch %st(1)
  888. fstpt 80(%rsp)
  889. fldt 80(%rsp)
  890. fstpt 16(%rsp)
  891. fldt 16(%rsp)
  892. fxch %st(2)
  893. fstpt 96(%rsp)
  894. fldl (%rdi)
  895. movzwl 8(%rsp), %eax
  896. movzwl 88(%rsp), %r8d
  897. andl $32767, %eax
  898. movzwl 24(%rsp), %esi
  899. movl 20(%rsp), %ebp
  900. movzwl 104(%rsp), %edx
  901. movzwl 136(%rsp), %r12d
  902. movl 132(%rsp), %r13d
  903. movzwl 72(%rsp), %r14d
  904. movl 4(%rsp), %r9d
  905. movq %rbx, 48(%rsp)
  906. xorl %ebx, %ebx
  907. ..B2.24:
  908. movl %esi, %edi
  909. andl $-32768, %r8d
  910. subl %r15d, %edi
  911. andl $-32768, %edx
  912. andl $32767, %edi
  913. andl $-32768, %r14d
  914. orl %edi, %r8d
  915. lea (%r12,%r15), %edi
  916. movw %r8w, 88(%rsp)
  917. andl $32767, %edi
  918. movl %ebp, 84(%rsp)
  919. orl %edi, %edx
  920. fldt 80(%rsp)
  921. movl $1, %edi
  922. testl %eax, %eax
  923. fmul %st(5), %st
  924. cmove %eax, %edi
  925. subl %r15d, %ecx
  926. imull %r15d, %edi
  927. fadd %st(1), %st
  928. fstpt 16(%rsp)
  929. fldt 16(%rsp)
  930. addl %eax, %edi
  931. movw %dx, 104(%rsp)
  932. andl $32767, %edi
  933. movl %r13d, 100(%rsp)
  934. orl %edi, %r14d
  935. movw %r14w, 72(%rsp)
  936. fsub %st(1), %st
  937. fldt 96(%rsp)
  938. fmul %st(1), %st
  939. movl %r9d, 68(%rsp)
  940. fsubrp %st, %st(6)
  941. fldt 64(%rsp)
  942. fmulp %st, %st(1)
  943. shll %cl, %r10d
  944. cmpl $32, %ecx
  945. movl %r15d, %ecx
  946. fsubrp %st, %st(5)
  947. fxch %st(4)
  948. fstpt 112(%rsp)
  949. fldt 112(%rsp)
  950. cmovae %ebx, %r10d
  951. movzwl 120(%rsp), %edi
  952. andl $32767, %edi
  953. subl %r11d, %edi
  954. movl %edi, %r15d
  955. addl 16(%rsp), %r10d
  956. addl $-31, %r15d
  957. fxch %st(4)
  958. jg ..B2.24
  959. ..B2.25:
  960. movq 48(%rsp), %rbx
  961. ..B2.26:
  962. fldt 32(%rsp)
  963. fld %st(1)
  964. fxch %st(4)
  965. fmul %st(6), %st
  966. lea _halfs(%rip), %rdx
  967. shll %cl, %r10d
  968. xorl %eax, %eax
  969. cmpl $32, %ecx
  970. fadd %st, %st(4)
  971. fxch %st(4)
  972. fstpt 16(%rsp)
  973. fldt 16(%rsp)
  974. fld %st(3)
  975. cmovb %r10d, %eax
  976. fxch %st(1)
  977. fsub %st(3), %st
  978. fmul %st, %st(2)
  979. addl 16(%rsp), %eax
  980. fxch %st(2)
  981. fsubrp %st, %st(7)
  982. fmul %st(1), %st
  983. fsubrp %st, %st(6)
  984. fld %st(5)
  985. fabs
  986. fldl (%rdx)
  987. fmul %st(6), %st
  988. fstpt (%rsp)
  989. fldt (%rsp)
  990. fcomip %st(1), %st
  991. ja ..B2.30
  992. ..B2.27:
  993. fldt (%rsp)
  994. fcomip %st(1), %st
  995. fstp %st(0)
  996. jae ..B2.29
  997. jp ..B2.29
  998. ..B2.28:
  999. fstp %st(2)
  1000. fstp %st(0)
  1001. fxch %st(1)
  1002. fcomip %st(1), %st
  1003. fstp %st(0)
  1004. fld %st(1)
  1005. movl %eax, (%rbx)
  1006. fsub %st(1), %st
  1007. fxch %st(1)
  1008. faddp %st, %st(2)
  1009. fcmovb %st(1), %st
  1010. fstp %st(1)
  1011. addq $152, %rsp
  1012. .cfi_def_cfa_offset 56
  1013. .cfi_restore 6
  1014. popq %rbp
  1015. .cfi_def_cfa_offset 48
  1016. .cfi_restore 3
  1017. popq %rbx
  1018. .cfi_def_cfa_offset 40
  1019. .cfi_restore 15
  1020. popq %r15
  1021. .cfi_def_cfa_offset 32
  1022. .cfi_restore 14
  1023. popq %r14
  1024. .cfi_def_cfa_offset 24
  1025. .cfi_restore 13
  1026. popq %r13
  1027. .cfi_def_cfa_offset 16
  1028. .cfi_restore 12
  1029. popq %r12
  1030. .cfi_def_cfa_offset 8
  1031. ret
  1032. .cfi_def_cfa_offset 208
  1033. .cfi_offset 3, -48
  1034. .cfi_offset 6, -56
  1035. .cfi_offset 12, -16
  1036. .cfi_offset 13, -24
  1037. .cfi_offset 14, -32
  1038. .cfi_offset 15, -40
  1039. ..B2.29:
  1040. fstp %st(0)
  1041. fstp %st(2)
  1042. fldt 32(%rsp)
  1043. fxch %st(3)
  1044. fdivr %st(4), %st
  1045. fadd %st(2), %st
  1046. fstpt 16(%rsp)
  1047. fldt 16(%rsp)
  1048. fsubp %st, %st(2)
  1049. fxch %st(1)
  1050. fmul %st, %st(2)
  1051. addl 16(%rsp), %eax
  1052. fxch %st(2)
  1053. fsubrp %st, %st(3)
  1054. fmulp %st, %st(1)
  1055. movl %eax, (%rbx)
  1056. fsubrp %st, %st(1)
  1057. fstpt 112(%rsp)
  1058. fldt 112(%rsp)
  1059. addq $152, %rsp
  1060. .cfi_def_cfa_offset 56
  1061. .cfi_restore 6
  1062. popq %rbp
  1063. .cfi_def_cfa_offset 48
  1064. .cfi_restore 3
  1065. popq %rbx
  1066. .cfi_def_cfa_offset 40
  1067. .cfi_restore 15
  1068. popq %r15
  1069. .cfi_def_cfa_offset 32
  1070. .cfi_restore 14
  1071. popq %r14
  1072. .cfi_def_cfa_offset 24
  1073. .cfi_restore 13
  1074. popq %r13
  1075. .cfi_def_cfa_offset 16
  1076. .cfi_restore 12
  1077. popq %r12
  1078. .cfi_def_cfa_offset 8
  1079. ret
  1080. .cfi_def_cfa_offset 208
  1081. .cfi_offset 3, -48
  1082. .cfi_offset 6, -56
  1083. .cfi_offset 12, -16
  1084. .cfi_offset 13, -24
  1085. .cfi_offset 14, -32
  1086. .cfi_offset 15, -40
  1087. ..B2.30:
  1088. fstp %st(5)
  1089. fstp %st(4)
  1090. fstp %st(3)
  1091. fstp %st(1)
  1092. fstp %st(0)
  1093. fstp %st(0)
  1094. movl %eax, (%rbx)
  1095. addq $152, %rsp
  1096. .cfi_def_cfa_offset 56
  1097. .cfi_restore 6
  1098. popq %rbp
  1099. .cfi_def_cfa_offset 48
  1100. .cfi_restore 3
  1101. popq %rbx
  1102. .cfi_def_cfa_offset 40
  1103. .cfi_restore 15
  1104. popq %r15
  1105. .cfi_def_cfa_offset 32
  1106. .cfi_restore 14
  1107. popq %r14
  1108. .cfi_def_cfa_offset 24
  1109. .cfi_restore 13
  1110. popq %r13
  1111. .cfi_def_cfa_offset 16
  1112. .cfi_restore 12
  1113. popq %r12
  1114. .cfi_def_cfa_offset 8
  1115. ret
  1116. .cfi_def_cfa_offset 208
  1117. .cfi_offset 3, -48
  1118. .cfi_offset 6, -56
  1119. .cfi_offset 12, -16
  1120. .cfi_offset 13, -24
  1121. .cfi_offset 14, -32
  1122. .cfi_offset 15, -40
  1123. ..B2.31:
  1124. fstp %st(1)
  1125. fstp %st(0)
  1126. movl $0, (%rbx)
  1127. addq $152, %rsp
  1128. .cfi_def_cfa_offset 56
  1129. .cfi_restore 6
  1130. popq %rbp
  1131. .cfi_def_cfa_offset 48
  1132. .cfi_restore 3
  1133. popq %rbx
  1134. .cfi_def_cfa_offset 40
  1135. .cfi_restore 15
  1136. popq %r15
  1137. .cfi_def_cfa_offset 32
  1138. .cfi_restore 14
  1139. popq %r14
  1140. .cfi_def_cfa_offset 24
  1141. .cfi_restore 13
  1142. popq %r13
  1143. .cfi_def_cfa_offset 16
  1144. .cfi_restore 12
  1145. popq %r12
  1146. .cfi_def_cfa_offset 8
  1147. ret
  1148. .cfi_def_cfa_offset 208
  1149. .cfi_offset 3, -48
  1150. .cfi_offset 6, -56
  1151. .cfi_offset 12, -16
  1152. .cfi_offset 13, -24
  1153. .cfi_offset 14, -32
  1154. .cfi_offset 15, -40
  1155. ..B2.32:
  1156. fstp %st(2)
  1157. lea _TWO_63H(%rip), %rax
  1158. fldl (%rax)
  1159. jmp ..B2.26
  1160. .align 16,0x90
  1161. .cfi_endproc
  1162. .type __libm_remquol,@function
  1163. .size __libm_remquol,.-__libm_remquol
  1164. .data
  1165. # -- End __libm_remquol
  1166. .section .rodata, "a"
  1167. .align 4
  1168. .align 4
  1169. iones:
  1170. .long 1
  1171. .long -1
  1172. .type iones,@object
  1173. .size iones,8
  1174. .align 4
  1175. _zeros:
  1176. .long 0
  1177. .long 0
  1178. .long 0
  1179. .long 2147483648
  1180. .type _zeros,@object
  1181. .size _zeros,16
  1182. .align 4
  1183. _small_value_64:
  1184. .long 0
  1185. .long 24117248
  1186. .long 0
  1187. .long 2171600896
  1188. .type _small_value_64,@object
  1189. .size _small_value_64,16
  1190. .align 4
  1191. _smallest_value_64:
  1192. .long 1
  1193. .long 0
  1194. .long 1
  1195. .long 2147483648
  1196. .type _smallest_value_64,@object
  1197. .size _smallest_value_64,16
  1198. .align 4
  1199. _infs:
  1200. .long 0
  1201. .long 2146435072
  1202. .long 0
  1203. .long 4293918720
  1204. .type _infs,@object
  1205. .size _infs,16
  1206. .align 4
  1207. _ones:
  1208. .long 0
  1209. .long 1072693248
  1210. .long 0
  1211. .long 3220176896
  1212. .type _ones,@object
  1213. .size _ones,16
  1214. .align 4
  1215. _scales:
  1216. .long 0
  1217. .long 1341128704
  1218. .long 0
  1219. .long 804257792
  1220. .type _scales,@object
  1221. .size _scales,16
  1222. .align 4
  1223. _TWO_63H:
  1224. .long 0
  1225. .long 1139277824
  1226. .type _TWO_63H,@object
  1227. .size _TWO_63H,8
  1228. .align 4
  1229. _halfs:
  1230. .long 0
  1231. .long 1071644672
  1232. .long 0
  1233. .long 3219128320
  1234. .type _halfs,@object
  1235. .size _halfs,16
  1236. .data
  1237. .section .note.GNU-stack, ""
  1238. // -- Begin DWARF2 SEGMENT .eh_frame
  1239. .section .eh_frame,"a",@progbits
  1240. .eh_frame_seg:
  1241. .align 1
  1242. # End