tan_gen.S 42 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170
  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 "tan_gen.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin tan
  41. .text
  42. .align 16,0x90
  43. .globl tan
  44. tan:
  45. # parameter 1: %xmm0
  46. ..B1.1:
  47. .cfi_startproc
  48. ..___tag_value_tan.1:
  49. ..L2:
  50. pushq %rbx
  51. .cfi_def_cfa_offset 16
  52. .cfi_offset 3, -16
  53. subq $16, %rsp
  54. .cfi_def_cfa_offset 32
  55. movsd %xmm0, 8(%rsp)
  56. ..B1.2:
  57. pextrw $3, %xmm0, %eax
  58. andl $32767, %eax
  59. subl $16314, %eax
  60. cmpl $270, %eax
  61. ja .L_2TAG_PACKET_0.0.1
  62. movapd ONEHALF(%rip), %xmm5
  63. movapd MUL16(%rip), %xmm6
  64. unpcklpd %xmm0, %xmm0
  65. movapd sign_mask(%rip), %xmm4
  66. andpd %xmm0, %xmm4
  67. movapd PI32INV(%rip), %xmm1
  68. mulpd %xmm0, %xmm1
  69. orps %xmm4, %xmm5
  70. addpd %xmm5, %xmm1
  71. movapd %xmm1, %xmm7
  72. unpckhpd %xmm7, %xmm7
  73. cvttsd2si %xmm7, %rdx
  74. cvttpd2dq %xmm1, %xmm1
  75. cvtdq2pd %xmm1, %xmm1
  76. mulpd %xmm6, %xmm1
  77. movapd P_1(%rip), %xmm3
  78. movq QQ_2(%rip), %xmm5
  79. addq $469248, %rdx
  80. movapd P_2(%rip), %xmm4
  81. mulpd %xmm1, %xmm3
  82. andq $31, %rdx
  83. mulsd %xmm1, %xmm5
  84. movq %rdx, %rcx
  85. mulpd %xmm1, %xmm4
  86. shlq $1, %rcx
  87. subpd %xmm3, %xmm0
  88. mulpd P_3(%rip), %xmm1
  89. addq %rcx, %rdx
  90. shlq $2, %rcx
  91. addq %rcx, %rdx
  92. addsd %xmm0, %xmm5
  93. movapd %xmm0, %xmm2
  94. subpd %xmm4, %xmm0
  95. movq ONE(%rip), %xmm6
  96. shlq $4, %rdx
  97. lea Ctable(%rip), %rax
  98. andpd MASK_35(%rip), %xmm5
  99. movapd %xmm0, %xmm3
  100. addq %rdx, %rax
  101. subpd %xmm0, %xmm2
  102. unpckhpd %xmm0, %xmm0
  103. divsd %xmm5, %xmm6
  104. subpd %xmm4, %xmm2
  105. movapd 16(%rax), %xmm7
  106. subsd %xmm5, %xmm3
  107. mulpd %xmm0, %xmm7
  108. subpd %xmm1, %xmm2
  109. movapd 48(%rax), %xmm1
  110. mulpd %xmm0, %xmm1
  111. movapd 96(%rax), %xmm4
  112. mulpd %xmm0, %xmm4
  113. addsd %xmm3, %xmm2
  114. movapd %xmm0, %xmm3
  115. mulpd %xmm0, %xmm0
  116. addpd (%rax), %xmm7
  117. addpd 32(%rax), %xmm1
  118. mulpd %xmm0, %xmm1
  119. addpd 80(%rax), %xmm4
  120. addpd %xmm1, %xmm7
  121. movapd 112(%rax), %xmm1
  122. mulpd %xmm0, %xmm1
  123. mulpd %xmm0, %xmm0
  124. addpd %xmm1, %xmm4
  125. movapd 64(%rax), %xmm1
  126. mulpd %xmm0, %xmm1
  127. addpd %xmm1, %xmm7
  128. movapd %xmm3, %xmm1
  129. mulpd %xmm0, %xmm3
  130. mulsd %xmm0, %xmm0
  131. mulpd 144(%rax), %xmm1
  132. mulpd %xmm3, %xmm4
  133. movq %xmm1, %xmm3
  134. addpd %xmm4, %xmm7
  135. movq %xmm1, %xmm4
  136. mulsd %xmm7, %xmm0
  137. unpckhpd %xmm7, %xmm7
  138. addsd %xmm7, %xmm0
  139. unpckhpd %xmm1, %xmm1
  140. addsd %xmm1, %xmm3
  141. subsd %xmm3, %xmm4
  142. addsd %xmm4, %xmm1
  143. movq %xmm2, %xmm4
  144. movq 144(%rax), %xmm7
  145. unpckhpd %xmm2, %xmm2
  146. addsd 152(%rax), %xmm7
  147. mulsd %xmm2, %xmm7
  148. addsd 136(%rax), %xmm7
  149. addsd %xmm1, %xmm7
  150. addsd %xmm7, %xmm0
  151. movq ONE(%rip), %xmm7
  152. mulsd %xmm6, %xmm4
  153. movq 168(%rax), %xmm2
  154. andpd %xmm6, %xmm2
  155. mulsd %xmm2, %xmm5
  156. mulsd 160(%rax), %xmm6
  157. subsd %xmm5, %xmm7
  158. subsd 128(%rax), %xmm2
  159. subsd %xmm4, %xmm7
  160. mulsd %xmm6, %xmm7
  161. movq %xmm3, %xmm4
  162. subsd %xmm2, %xmm3
  163. addsd %xmm3, %xmm2
  164. subsd %xmm2, %xmm4
  165. addsd %xmm4, %xmm0
  166. subsd %xmm7, %xmm0
  167. addsd %xmm3, %xmm0
  168. jmp ..B1.4
  169. .L_2TAG_PACKET_0.0.1:
  170. jg .L_2TAG_PACKET_1.0.1
  171. pextrw $3, %xmm0, %eax
  172. movl %eax, %edx
  173. andl $32752, %eax
  174. je .L_2TAG_PACKET_2.0.1
  175. andl $32767, %edx
  176. cmpl $15904, %edx
  177. jb .L_2TAG_PACKET_3.0.1
  178. movq %xmm0, %xmm2
  179. movq %xmm0, %xmm3
  180. movq Q_11(%rip), %xmm1
  181. mulsd %xmm0, %xmm2
  182. mulsd %xmm2, %xmm3
  183. mulsd %xmm2, %xmm1
  184. addsd Q_9(%rip), %xmm1
  185. mulsd %xmm2, %xmm1
  186. addsd Q_7(%rip), %xmm1
  187. mulsd %xmm2, %xmm1
  188. addsd Q_5(%rip), %xmm1
  189. mulsd %xmm2, %xmm1
  190. addsd Q_3(%rip), %xmm1
  191. mulsd %xmm3, %xmm1
  192. addsd %xmm1, %xmm0
  193. jmp ..B1.4
  194. .L_2TAG_PACKET_3.0.1:
  195. movq TWO_POW_55(%rip), %xmm3
  196. mulsd %xmm0, %xmm3
  197. addsd %xmm3, %xmm0
  198. mulsd TWO_POW_M55(%rip), %xmm0
  199. jmp ..B1.4
  200. .L_2TAG_PACKET_2.0.1:
  201. movq %xmm0, %xmm1
  202. mulsd %xmm1, %xmm1
  203. jmp ..B1.4
  204. .L_2TAG_PACKET_1.0.1:
  205. pextrw $3, %xmm0, %eax
  206. andl $32752, %eax
  207. cmpl $32752, %eax
  208. je .L_2TAG_PACKET_4.0.1
  209. pextrw $3, %xmm0, %ecx
  210. andl $32752, %ecx
  211. subl $16224, %ecx
  212. shrl $7, %ecx
  213. andl $65532, %ecx
  214. lea PI_INV_TABLE(%rip), %r11
  215. addq %r11, %rcx
  216. movd %xmm0, %rax
  217. movl 20(%rcx), %r10d
  218. movl 24(%rcx), %r8d
  219. movl %eax, %edx
  220. shrq $21, %rax
  221. orl $-2147483648, %eax
  222. shrl $11, %eax
  223. movl %r10d, %r9d
  224. imulq %rdx, %r10
  225. imulq %rax, %r9
  226. imulq %rax, %r8
  227. movl 16(%rcx), %esi
  228. movl 12(%rcx), %edi
  229. movl %r10d, %r11d
  230. shrq $32, %r10
  231. addq %r10, %r9
  232. addq %r8, %r11
  233. movl %r11d, %r8d
  234. shrq $32, %r11
  235. addq %r11, %r9
  236. movl %esi, %r10d
  237. imulq %rdx, %rsi
  238. imulq %rax, %r10
  239. movl %edi, %r11d
  240. imulq %rdx, %rdi
  241. movl %esi, %ebx
  242. shrq $32, %rsi
  243. addq %rbx, %r9
  244. movl %r9d, %ebx
  245. shrq $32, %r9
  246. addq %rsi, %r10
  247. addq %r9, %r10
  248. shlq $32, %rbx
  249. orq %rbx, %r8
  250. imulq %rax, %r11
  251. movl 8(%rcx), %r9d
  252. movl 4(%rcx), %esi
  253. movl %edi, %ebx
  254. shrq $32, %rdi
  255. addq %rbx, %r10
  256. movl %r10d, %ebx
  257. shrq $32, %r10
  258. addq %rdi, %r11
  259. addq %r10, %r11
  260. movq %r9, %rdi
  261. imulq %rdx, %r9
  262. imulq %rax, %rdi
  263. movl %r9d, %r10d
  264. shrq $32, %r9
  265. addq %r10, %r11
  266. movl %r11d, %r10d
  267. shrq $32, %r11
  268. addq %r9, %rdi
  269. addq %r11, %rdi
  270. movq %rsi, %r9
  271. imulq %rdx, %rsi
  272. imulq %rax, %r9
  273. shlq $32, %r10
  274. orq %rbx, %r10
  275. movl (%rcx), %eax
  276. movl %esi, %r11d
  277. shrq $32, %rsi
  278. addq %r11, %rdi
  279. movl %edi, %r11d
  280. shrq $32, %rdi
  281. addq %rsi, %r9
  282. addq %rdi, %r9
  283. imulq %rax, %rdx
  284. pextrw $3, %xmm0, %ebx
  285. lea PI_INV_TABLE(%rip), %rdi
  286. subq %rdi, %rcx
  287. addl %ecx, %ecx
  288. addl %ecx, %ecx
  289. addl %ecx, %ecx
  290. addl $19, %ecx
  291. movl $32768, %esi
  292. andl %ebx, %esi
  293. shrl $4, %ebx
  294. andl $2047, %ebx
  295. subl $1023, %ebx
  296. subl %ebx, %ecx
  297. addq %rdx, %r9
  298. movl %ecx, %edx
  299. addl $32, %edx
  300. cmpl $0, %ecx
  301. jl .L_2TAG_PACKET_5.0.1
  302. negl %ecx
  303. addl $29, %ecx
  304. shll %cl, %r9d
  305. movl %r9d, %edi
  306. andl $1073741823, %r9d
  307. testl $536870912, %r9d
  308. jne .L_2TAG_PACKET_6.0.1
  309. shrl %cl, %r9d
  310. movl $0, %ebx
  311. shlq $32, %r9
  312. orq %r11, %r9
  313. .L_2TAG_PACKET_7.0.1:
  314. .L_2TAG_PACKET_8.0.1:
  315. cmpq $0, %r9
  316. je .L_2TAG_PACKET_9.0.1
  317. .L_2TAG_PACKET_10.0.1:
  318. bsr %r9, %r11
  319. movl $29, %ecx
  320. subl %r11d, %ecx
  321. jle .L_2TAG_PACKET_11.0.1
  322. shlq %cl, %r9
  323. movq %r10, %rax
  324. shlq %cl, %r10
  325. addl %ecx, %edx
  326. negl %ecx
  327. addl $64, %ecx
  328. shrq %cl, %rax
  329. shrq %cl, %r8
  330. orq %rax, %r9
  331. orq %r8, %r10
  332. .L_2TAG_PACKET_12.0.1:
  333. cvtsi2sdq %r9, %xmm0
  334. shrq $1, %r10
  335. cvtsi2sdq %r10, %xmm3
  336. xorpd %xmm4, %xmm4
  337. shll $4, %edx
  338. negl %edx
  339. addl $16368, %edx
  340. orl %esi, %edx
  341. xorl %ebx, %edx
  342. pinsrw $3, %edx, %xmm4
  343. movq PI_4(%rip), %xmm2
  344. movq 8+PI_4(%rip), %xmm7
  345. xorpd %xmm5, %xmm5
  346. subl $1008, %edx
  347. pinsrw $3, %edx, %xmm5
  348. mulsd %xmm4, %xmm0
  349. shll $16, %esi
  350. sarl $31, %esi
  351. mulsd %xmm5, %xmm3
  352. movq %xmm0, %xmm1
  353. mulsd %xmm2, %xmm0
  354. shrl $30, %edi
  355. addsd %xmm3, %xmm1
  356. mulsd %xmm2, %xmm3
  357. addl %esi, %edi
  358. xorl %esi, %edi
  359. mulsd %xmm1, %xmm7
  360. movl %edi, %eax
  361. addsd %xmm3, %xmm7
  362. movq %xmm0, %xmm2
  363. addsd %xmm7, %xmm0
  364. subsd %xmm0, %xmm2
  365. addsd %xmm2, %xmm7
  366. movapd PI32INV(%rip), %xmm1
  367. unpcklpd %xmm0, %xmm0
  368. movapd sign_mask(%rip), %xmm4
  369. andpd %xmm0, %xmm4
  370. mulpd %xmm0, %xmm1
  371. unpcklpd %xmm7, %xmm7
  372. movapd ONEHALF(%rip), %xmm5
  373. movapd MUL16(%rip), %xmm6
  374. orps %xmm4, %xmm5
  375. addpd %xmm5, %xmm1
  376. movapd %xmm1, %xmm5
  377. unpckhpd %xmm5, %xmm5
  378. cvttsd2si %xmm5, %edx
  379. cvttpd2dq %xmm1, %xmm1
  380. cvtdq2pd %xmm1, %xmm1
  381. mulpd %xmm6, %xmm1
  382. movapd P_1(%rip), %xmm3
  383. movq QQ_2(%rip), %xmm5
  384. shll $4, %eax
  385. addl $469248, %edx
  386. movapd P_2(%rip), %xmm4
  387. mulpd %xmm1, %xmm3
  388. addl %eax, %edx
  389. andl $31, %edx
  390. mulsd %xmm1, %xmm5
  391. movl %edx, %ecx
  392. mulpd %xmm1, %xmm4
  393. shll $1, %ecx
  394. subpd %xmm3, %xmm0
  395. mulpd P_3(%rip), %xmm1
  396. addl %ecx, %edx
  397. shll $2, %ecx
  398. addl %ecx, %edx
  399. addsd %xmm0, %xmm5
  400. movapd %xmm0, %xmm2
  401. subpd %xmm4, %xmm0
  402. movq ONE(%rip), %xmm6
  403. shll $4, %edx
  404. lea Ctable(%rip), %rax
  405. andpd MASK_35(%rip), %xmm5
  406. movapd %xmm0, %xmm3
  407. addq %rdx, %rax
  408. subpd %xmm0, %xmm2
  409. unpckhpd %xmm0, %xmm0
  410. divsd %xmm5, %xmm6
  411. subpd %xmm4, %xmm2
  412. subsd %xmm5, %xmm3
  413. subpd %xmm1, %xmm2
  414. movapd 48(%rax), %xmm1
  415. addpd %xmm7, %xmm2
  416. movapd 16(%rax), %xmm7
  417. mulpd %xmm0, %xmm7
  418. movapd 96(%rax), %xmm4
  419. mulpd %xmm0, %xmm1
  420. mulpd %xmm0, %xmm4
  421. addsd %xmm3, %xmm2
  422. movapd %xmm0, %xmm3
  423. mulpd %xmm0, %xmm0
  424. addpd (%rax), %xmm7
  425. addpd 32(%rax), %xmm1
  426. mulpd %xmm0, %xmm1
  427. addpd 80(%rax), %xmm4
  428. addpd %xmm1, %xmm7
  429. movapd 112(%rax), %xmm1
  430. mulpd %xmm0, %xmm1
  431. mulpd %xmm0, %xmm0
  432. addpd %xmm1, %xmm4
  433. movapd 64(%rax), %xmm1
  434. mulpd %xmm0, %xmm1
  435. addpd %xmm1, %xmm7
  436. movapd %xmm3, %xmm1
  437. mulpd %xmm0, %xmm3
  438. mulsd %xmm0, %xmm0
  439. mulpd 144(%rax), %xmm1
  440. mulpd %xmm3, %xmm4
  441. movq %xmm1, %xmm3
  442. addpd %xmm4, %xmm7
  443. movq %xmm1, %xmm4
  444. mulsd %xmm7, %xmm0
  445. unpckhpd %xmm7, %xmm7
  446. addsd %xmm7, %xmm0
  447. unpckhpd %xmm1, %xmm1
  448. addsd %xmm1, %xmm3
  449. subsd %xmm3, %xmm4
  450. addsd %xmm4, %xmm1
  451. movq %xmm2, %xmm4
  452. movq 144(%rax), %xmm7
  453. unpckhpd %xmm2, %xmm2
  454. addsd 152(%rax), %xmm7
  455. mulsd %xmm2, %xmm7
  456. addsd 136(%rax), %xmm7
  457. addsd %xmm1, %xmm7
  458. addsd %xmm7, %xmm0
  459. movq ONE(%rip), %xmm7
  460. mulsd %xmm6, %xmm4
  461. movq 168(%rax), %xmm2
  462. andpd %xmm6, %xmm2
  463. mulsd %xmm2, %xmm5
  464. mulsd 160(%rax), %xmm6
  465. subsd %xmm5, %xmm7
  466. subsd 128(%rax), %xmm2
  467. subsd %xmm4, %xmm7
  468. mulsd %xmm6, %xmm7
  469. movq %xmm3, %xmm4
  470. subsd %xmm2, %xmm3
  471. addsd %xmm3, %xmm2
  472. subsd %xmm2, %xmm4
  473. addsd %xmm4, %xmm0
  474. subsd %xmm7, %xmm0
  475. addsd %xmm3, %xmm0
  476. jmp ..B1.4
  477. .L_2TAG_PACKET_9.0.1:
  478. addl $64, %edx
  479. movq %r10, %r9
  480. movq %r8, %r10
  481. movq $0, %r8
  482. cmpq $0, %r9
  483. jne .L_2TAG_PACKET_10.0.1
  484. addl $64, %edx
  485. movq %r10, %r9
  486. movq %r8, %r10
  487. cmpq $0, %r9
  488. jne .L_2TAG_PACKET_10.0.1
  489. jmp .L_2TAG_PACKET_12.0.1
  490. .L_2TAG_PACKET_11.0.1:
  491. je .L_2TAG_PACKET_12.0.1
  492. negl %ecx
  493. shrq %cl, %r10
  494. movq %r9, %rax
  495. shrq %cl, %r9
  496. subl %ecx, %edx
  497. negl %ecx
  498. addl $64, %ecx
  499. shlq %cl, %rax
  500. orq %rax, %r10
  501. jmp .L_2TAG_PACKET_12.0.1
  502. .L_2TAG_PACKET_5.0.1:
  503. notl %ecx
  504. shlq $32, %r9
  505. orq %r11, %r9
  506. shlq %cl, %r9
  507. movq %r9, %rdi
  508. testl $-2147483648, %r9d
  509. jne .L_2TAG_PACKET_13.0.1
  510. shrl %cl, %r9d
  511. movl $0, %ebx
  512. shrq $2, %rdi
  513. jmp .L_2TAG_PACKET_8.0.1
  514. .L_2TAG_PACKET_6.0.1:
  515. shrl %cl, %r9d
  516. movl $1073741824, %ebx
  517. shrl %cl, %ebx
  518. shlq $32, %r9
  519. orq %r11, %r9
  520. shlq $32, %rbx
  521. addl $1073741824, %edi
  522. movq $0, %rcx
  523. movq $0, %r11
  524. subq %r8, %rcx
  525. sbbq %r10, %r11
  526. sbbq %r9, %rbx
  527. movq %rcx, %r8
  528. movq %r11, %r10
  529. movq %rbx, %r9
  530. movl $32768, %ebx
  531. jmp .L_2TAG_PACKET_7.0.1
  532. .L_2TAG_PACKET_13.0.1:
  533. shrl %cl, %r9d
  534. movq $0x100000000, %rbx
  535. shrq %cl, %rbx
  536. movq $0, %rcx
  537. movq $0, %r11
  538. subq %r8, %rcx
  539. sbbq %r10, %r11
  540. sbbq %r9, %rbx
  541. movq %rcx, %r8
  542. movq %r11, %r10
  543. movq %rbx, %r9
  544. movl $32768, %ebx
  545. shrq $2, %rdi
  546. addl $1073741824, %edi
  547. jmp .L_2TAG_PACKET_8.0.1
  548. .L_2TAG_PACKET_4.0.1:
  549. movq 8(%rsp), %xmm0
  550. mulsd NEG_ZERO(%rip), %xmm0
  551. movq %xmm0, (%rsp)
  552. .L_2TAG_PACKET_14.0.1:
  553. ..B1.4:
  554. addq $16, %rsp
  555. .cfi_def_cfa_offset 16
  556. .cfi_restore 3
  557. popq %rbx
  558. .cfi_def_cfa_offset 8
  559. ret
  560. .align 16,0x90
  561. .cfi_endproc
  562. .type tan,@function
  563. .size tan,.-tan
  564. .data
  565. # -- End tan
  566. .section .rodata, "a"
  567. .align 16
  568. .align 16
  569. ONEHALF:
  570. .long 0
  571. .long 1071644672
  572. .long 0
  573. .long 1071644672
  574. .type ONEHALF,@object
  575. .size ONEHALF,16
  576. .align 16
  577. MUL16:
  578. .long 0
  579. .long 1076887552
  580. .long 0
  581. .long 1072693248
  582. .type MUL16,@object
  583. .size MUL16,16
  584. .align 16
  585. sign_mask:
  586. .long 0
  587. .long 2147483648
  588. .long 0
  589. .long 2147483648
  590. .type sign_mask,@object
  591. .size sign_mask,16
  592. .align 16
  593. PI32INV:
  594. .long 1841940611
  595. .long 1071931184
  596. .long 1841940611
  597. .long 1076125488
  598. .type PI32INV,@object
  599. .size PI32INV,16
  600. .align 16
  601. P_1:
  602. .long 1413758976
  603. .long 1069097467
  604. .long 1413742592
  605. .long 1069097467
  606. .type P_1,@object
  607. .size P_1,16
  608. .align 16
  609. P_2:
  610. .long 1734819840
  611. .long 3174229945
  612. .long 1280049152
  613. .long 1028033571
  614. .type P_2,@object
  615. .size P_2,16
  616. .align 16
  617. P_3:
  618. .long 923219018
  619. .long 984130272
  620. .long 57701189
  621. .long 988383790
  622. .type P_3,@object
  623. .size P_3,16
  624. .align 16
  625. Ctable:
  626. .long 0
  627. .long 0
  628. .long 0
  629. .long 0
  630. .long 2284589306
  631. .long 1066820852
  632. .long 0
  633. .long 0
  634. .long 0
  635. .long 0
  636. .long 0
  637. .long 0
  638. .long 1441186365
  639. .long 1065494243
  640. .long 1431655765
  641. .long 1070945621
  642. .long 0
  643. .long 0
  644. .long 0
  645. .long 0
  646. .long 236289504
  647. .long 1064135997
  648. .long 286331153
  649. .long 1069617425
  650. .long 0
  651. .long 0
  652. .long 0
  653. .long 0
  654. .long 1160476131
  655. .long 1062722102
  656. .long 463583772
  657. .long 1068212666
  658. .long 0
  659. .long 0
  660. .long 0
  661. .long 0
  662. .long 0
  663. .long 1072693248
  664. .long 0
  665. .long 0
  666. .long 0
  667. .long 0
  668. .long 0
  669. .long 0
  670. .long 1313038235
  671. .long 1066745731
  672. .long 0
  673. .long 0
  674. .long 1013878342
  675. .long 1067152618
  676. .long 0
  677. .long 0
  678. .long 3663426833
  679. .long 1065725283
  680. .long 3693284251
  681. .long 1069118808
  682. .long 650852232
  683. .long 1065882376
  684. .long 1996245381
  685. .long 1071000265
  686. .long 2008746170
  687. .long 1064664197
  688. .long 3055842593
  689. .long 1068578846
  690. .long 1495406348
  691. .long 1064652437
  692. .long 2269530157
  693. .long 1069711235
  694. .long 285563696
  695. .long 1063576465
  696. .long 1046897440
  697. .long 1067705865
  698. .long 233429731
  699. .long 1063453151
  700. .long 522045958
  701. .long 1068476590
  702. .long 2354785698
  703. .long 1069102779
  704. .long 1317599141
  705. .long 1012432133
  706. .long 0
  707. .long 1072693248
  708. .long 2828230105
  709. .long 1065606626
  710. .long 0
  711. .long 0
  712. .long 0
  713. .long 0
  714. .long 1512545955
  715. .long 1068119047
  716. .long 0
  717. .long 0
  718. .long 1127048698
  719. .long 1067909459
  720. .long 0
  721. .long 0
  722. .long 2300200450
  723. .long 1067254767
  724. .long 3593250296
  725. .long 1070233561
  726. .long 3009365544
  727. .long 1066902117
  728. .long 1127373050
  729. .long 1071173457
  730. .long 3046103305
  731. .long 1066371299
  732. .long 24583402
  733. .long 1069723988
  734. .long 4082511758
  735. .long 1065914199
  736. .long 3223889699
  737. .long 1070020367
  738. .long 548927984
  739. .long 1065415756
  740. .long 558065897
  741. .long 1068949418
  742. .long 680073315
  743. .long 1064940726
  744. .long 388873200
  745. .long 1068944270
  746. .long 3763679576
  747. .long 1070167541
  748. .long 1497360404
  749. .long 1009710547
  750. .long 0
  751. .long 1072693248
  752. .long 64931152
  753. .long 1067729411
  754. .long 0
  755. .long 0
  756. .long 0
  757. .long 0
  758. .long 2467582782
  759. .long 1069256389
  760. .long 0
  761. .long 0
  762. .long 162150096
  763. .long 1068946420
  764. .long 0
  765. .long 0
  766. .long 3702794237
  767. .long 1068579152
  768. .long 3631919291
  769. .long 1070936926
  770. .long 3456821413
  771. .long 1068217218
  772. .long 2031366438
  773. .long 1071495745
  774. .long 1596664020
  775. .long 1067799281
  776. .long 1509038701
  777. .long 1070601643
  778. .long 583171477
  779. .long 1067510148
  780. .long 3785344682
  781. .long 1070618476
  782. .long 2402036048
  783. .long 1067075736
  784. .long 3233018412
  785. .long 1069913186
  786. .long 411280568
  787. .long 1066710556
  788. .long 1065584192
  789. .long 1069747896
  790. .long 895247324
  791. .long 1070819848
  792. .long 500078909
  793. .long 3161288781
  794. .long 0
  795. .long 1072693248
  796. .long 729983843
  797. .long 1068994194
  798. .long 0
  799. .long 0
  800. .long 0
  801. .long 0
  802. .long 1458794562
  803. .long 1070398550
  804. .long 0
  805. .long 0
  806. .long 2857777489
  807. .long 1070137637
  808. .long 0
  809. .long 0
  810. .long 1024359517
  811. .long 1069876531
  812. .long 2616040238
  813. .long 1071582937
  814. .long 1609024636
  815. .long 1069675088
  816. .long 2529240549
  817. .long 1071836633
  818. .long 1510128600
  819. .long 1069440113
  820. .long 2251697184
  821. .long 1071253687
  822. .long 1262761453
  823. .long 1069142850
  824. .long 1263091857
  825. .long 1071190461
  826. .long 3043383486
  827. .long 1068885191
  828. .long 2476932470
  829. .long 1070842002
  830. .long 3659995028
  831. .long 1068669200
  832. .long 855891755
  833. .long 1070696894
  834. .long 2583490354
  835. .long 1071284857
  836. .long 3062633575
  837. .long 1014008623
  838. .long 0
  839. .long 1072693248
  840. .long 2550940471
  841. .long 1069938201
  842. .long 0
  843. .long 0
  844. .long 0
  845. .long 0
  846. .long 3422807297
  847. .long 1071640847
  848. .long 0
  849. .long 0
  850. .long 1151658053
  851. .long 1071494715
  852. .long 0
  853. .long 0
  854. .long 929607071
  855. .long 1071346340
  856. .long 1037049034
  857. .long 1072037305
  858. .long 2786928657
  859. .long 1071215282
  860. .long 1447406859
  861. .long 1072265209
  862. .long 3490952107
  863. .long 1071090851
  864. .long 3205232916
  865. .long 1071968658
  866. .long 1297344304
  867. .long 1070977120
  868. .long 1066110976
  869. .long 1071946035
  870. .long 3803721480
  871. .long 1070871082
  872. .long 1496754229
  873. .long 1071807201
  874. .long 2982550683
  875. .long 1070773243
  876. .long 4014441989
  877. .long 1071736222
  878. .long 419968236
  879. .long 1071717047
  880. .long 3451266538
  881. .long 3163444811
  882. .long 0
  883. .long 1072693248
  884. .long 2960267235
  885. .long 1070745841
  886. .long 0
  887. .long 0
  888. .long 0
  889. .long 0
  890. .long 724322768
  891. .long 1072881308
  892. .long 0
  893. .long 0
  894. .long 643153048
  895. .long 1072905816
  896. .long 0
  897. .long 0
  898. .long 4285079458
  899. .long 1072928558
  900. .long 3912524733
  901. .long 1072622983
  902. .long 118362272
  903. .long 1072952754
  904. .long 4107767972
  905. .long 1072827408
  906. .long 2689502883
  907. .long 1072976922
  908. .long 946523347
  909. .long 1072772766
  910. .long 573204189
  911. .long 1073001761
  912. .long 581531518
  913. .long 1072826391
  914. .long 1386236526
  915. .long 1073026959
  916. .long 3718905905
  917. .long 1072832823
  918. .long 1145558140
  919. .long 1073052673
  920. .long 513572637
  921. .long 1072861969
  922. .long 716700048
  923. .long 1071997368
  924. .long 547126769
  925. .long 1015523525
  926. .long 0
  927. .long 1072693248
  928. .long 1097907398
  929. .long 1071420120
  930. .long 0
  931. .long 0
  932. .long 0
  933. .long 0
  934. .long 3349892442
  935. .long 1074290212
  936. .long 0
  937. .long 0
  938. .long 3913197405
  939. .long 1074501181
  940. .long 0
  941. .long 0
  942. .long 2494034522
  943. .long 1074739170
  944. .long 1264738763
  945. .long 1073084804
  946. .long 1520293906
  947. .long 1074899632
  948. .long 1958936600
  949. .long 1073411493
  950. .long 2133649635
  951. .long 1075052171
  952. .long 4270740730
  953. .long 1073574708
  954. .long 1728930189
  955. .long 1075224844
  956. .long 1303998552
  957. .long 1073799186
  958. .long 618611933
  959. .long 1075420255
  960. .long 1769828046
  961. .long 1073938542
  962. .long 2200537986
  963. .long 1075641421
  964. .long 433361110
  965. .long 1074105369
  966. .long 719595600
  967. .long 1072317184
  968. .long 294527206
  969. .long 3162140088
  970. .long 0
  971. .long 1073741824
  972. .long 3811788216
  973. .long 3218400550
  974. .long 0
  975. .long 0
  976. .long 0
  977. .long 0
  978. .long 1704352102
  979. .long 1075943001
  980. .long 0
  981. .long 0
  982. .long 2284589306
  983. .long 1076258036
  984. .long 0
  985. .long 0
  986. .long 2211264291
  987. .long 1076659010
  988. .long 0
  989. .long 1073741824
  990. .long 1441186365
  991. .long 1077028579
  992. .long 1431655765
  993. .long 1074091349
  994. .long 876943673
  995. .long 1077353622
  996. .long 2863311531
  997. .long 1074440874
  998. .long 236289504
  999. .long 1077767485
  1000. .long 286331153
  1001. .long 1074860305
  1002. .long 2805473311
  1003. .long 1078115278
  1004. .long 95443718
  1005. .long 1075163227
  1006. .long 1160476131
  1007. .long 1078450742
  1008. .long 463583772
  1009. .long 1075552698
  1010. .long 0
  1011. .long 1072693248
  1012. .long 0
  1013. .long 0
  1014. .long 0
  1015. .long 1073741824
  1016. .long 0
  1017. .long 0
  1018. .long 0
  1019. .long 0
  1020. .long 0
  1021. .long 0
  1022. .long 1330165971
  1023. .long 3207850745
  1024. .long 0
  1025. .long 0
  1026. .long 217536623
  1027. .long 1059109098
  1028. .long 0
  1029. .long 0
  1030. .long 3492120849
  1031. .long 3205151475
  1032. .long 602185705
  1033. .long 3215678092
  1034. .long 760422958
  1035. .long 1056312597
  1036. .long 555127889
  1037. .long 1067545266
  1038. .long 3139784124
  1039. .long 3202470837
  1040. .long 3690544014
  1041. .long 3213150171
  1042. .long 95707915
  1043. .long 1053635428
  1044. .long 4003114407
  1045. .long 1064581412
  1046. .long 2034926231
  1047. .long 3199711161
  1048. .long 3759536023
  1049. .long 3210559989
  1050. .long 3826928214
  1051. .long 1050893819
  1052. .long 3837960785
  1053. .long 1061790379
  1054. .long 1526325248
  1055. .long 3217967566
  1056. .long 2356426521
  1057. .long 1025423456
  1058. .long 0
  1059. .long 0
  1060. .long 457728975
  1061. .long 1071088276
  1062. .long 0
  1063. .long 1072693248
  1064. .long 0
  1065. .long 4294967288
  1066. .long 1398462608
  1067. .long 3207303968
  1068. .long 0
  1069. .long 0
  1070. .long 26205983
  1071. .long 1058461213
  1072. .long 0
  1073. .long 0
  1074. .long 56226238
  1075. .long 3204528612
  1076. .long 2754706541
  1077. .long 3215359511
  1078. .long 2187799823
  1079. .long 1055634437
  1080. .long 790323742
  1081. .long 1067402587
  1082. .long 1372385848
  1083. .long 3201651479
  1084. .long 4097292716
  1085. .long 3212856302
  1086. .long 3348210357
  1087. .long 1052830099
  1088. .long 2442796466
  1089. .long 1064337602
  1090. .long 862608142
  1091. .long 3198830754
  1092. .long 170296152
  1093. .long 3210060867
  1094. .long 3755571428
  1095. .long 1049933343
  1096. .long 3614866008
  1097. .long 1061361670
  1098. .long 719978496
  1099. .long 3217669096
  1100. .long 1998842465
  1101. .long 3174703977
  1102. .long 0
  1103. .long 0
  1104. .long 3749156607
  1105. .long 1071048258
  1106. .long 0
  1107. .long 1072693248
  1108. .long 0
  1109. .long 4294967288
  1110. .long 3120498638
  1111. .long 3206749304
  1112. .long 0
  1113. .long 0
  1114. .long 2773578114
  1115. .long 1058009312
  1116. .long 0
  1117. .long 0
  1118. .long 2030783676
  1119. .long 3203817873
  1120. .long 2223654598
  1121. .long 3215071936
  1122. .long 2976134650
  1123. .long 1054987244
  1124. .long 706390066
  1125. .long 1067217386
  1126. .long 4258437615
  1127. .long 3200900378
  1128. .long 1066252975
  1129. .long 3212391267
  1130. .long 815777514
  1131. .long 1051989462
  1132. .long 3202745457
  1133. .long 1064010682
  1134. .long 2493556375
  1135. .long 3198004753
  1136. .long 1046243251
  1137. .long 3209678971
  1138. .long 2593078846
  1139. .long 1049017717
  1140. .long 2763962276
  1141. .long 1060970161
  1142. .long 701480960
  1143. .long 3217377742
  1144. .long 3205862232
  1145. .long 3174660915
  1146. .long 0
  1147. .long 0
  1148. .long 2267016812
  1149. .long 1071015664
  1150. .long 0
  1151. .long 1072693248
  1152. .long 0
  1153. .long 4294967288
  1154. .long 2107155798
  1155. .long 3206166872
  1156. .long 0
  1157. .long 0
  1158. .long 2642992129
  1159. .long 1057424578
  1160. .long 0
  1161. .long 0
  1162. .long 1936992811
  1163. .long 3203204426
  1164. .long 1485063559
  1165. .long 3214682643
  1166. .long 1432914553
  1167. .long 1054319398
  1168. .long 3996381654
  1169. .long 1067075828
  1170. .long 2833029256
  1171. .long 3200223545
  1172. .long 2866066872
  1173. .long 3211982662
  1174. .long 2432888737
  1175. .long 1051234178
  1176. .long 3669764559
  1177. .long 1063748136
  1178. .long 2458496952
  1179. .long 3197170774
  1180. .long 1948234989
  1181. .long 3209098147
  1182. .long 2843698787
  1183. .long 1048163519
  1184. .long 3398041407
  1185. .long 1060559728
  1186. .long 2829230080
  1187. .long 3217092115
  1188. .long 1034046433
  1189. .long 3174271903
  1190. .long 0
  1191. .long 0
  1192. .long 298675305
  1193. .long 1070989821
  1194. .long 0
  1195. .long 1072693248
  1196. .long 0
  1197. .long 4294967288
  1198. .long 437603223
  1199. .long 3205589761
  1200. .long 0
  1201. .long 0
  1202. .long 759330352
  1203. .long 1057048511
  1204. .long 0
  1205. .long 0
  1206. .long 3107463368
  1207. .long 3202507988
  1208. .long 3144465176
  1209. .long 3214191500
  1210. .long 2290961810
  1211. .long 1053841035
  1212. .long 1618153340
  1213. .long 1066971547
  1214. .long 3836869393
  1215. .long 3199400272
  1216. .long 584032116
  1217. .long 3211469261
  1218. .long 1245704358
  1219. .long 1050626462
  1220. .long 4247487438
  1221. .long 1063561943
  1222. .long 1669034927
  1223. .long 3196274812
  1224. .long 3844233498
  1225. .long 3208626322
  1226. .long 2706958524
  1227. .long 1047411374
  1228. .long 3857199098
  1229. .long 1060281647
  1230. .long 3593904128
  1231. .long 3216590719
  1232. .long 3267547836
  1233. .long 3172163321
  1234. .long 0
  1235. .long 0
  1236. .long 4076712227
  1237. .long 1070970214
  1238. .long 0
  1239. .long 1072693248
  1240. .long 0
  1241. .long 4294967288
  1242. .long 3290090340
  1243. .long 3204793485
  1244. .long 0
  1245. .long 0
  1246. .long 3685760367
  1247. .long 1056668370
  1248. .long 0
  1249. .long 0
  1250. .long 2655163949
  1251. .long 3201674917
  1252. .long 628750575
  1253. .long 3213566872
  1254. .long 680140505
  1255. .long 1053299777
  1256. .long 2954464709
  1257. .long 1066900026
  1258. .long 803201619
  1259. .long 3198516435
  1260. .long 1466315631
  1261. .long 3210837162
  1262. .long 1611220163
  1263. .long 1049972438
  1264. .long 2766187256
  1265. .long 1063437894
  1266. .long 1804579484
  1267. .long 3195331491
  1268. .long 3695969289
  1269. .long 3207854418
  1270. .long 2617238373
  1271. .long 1046675948
  1272. .long 3095830084
  1273. .long 1060095334
  1274. .long 3789570048
  1275. .long 3216034914
  1276. .long 23826559
  1277. .long 3172048060
  1278. .long 0
  1279. .long 0
  1280. .long 3870939386
  1281. .long 1070956467
  1282. .long 0
  1283. .long 1072693248
  1284. .long 0
  1285. .long 4294967288
  1286. .long 1571758758
  1287. .long 3203672535
  1288. .long 0
  1289. .long 0
  1290. .long 113026373
  1291. .long 1056416381
  1292. .long 0
  1293. .long 0
  1294. .long 1913766298
  1295. .long 3200523326
  1296. .long 2507068734
  1297. .long 3212502004
  1298. .long 4000648818
  1299. .long 1053003803
  1300. .long 2446607349
  1301. .long 1066858259
  1302. .long 912662124
  1303. .long 3197333001
  1304. .long 1349489537
  1305. .long 3209765608
  1306. .long 3412972607
  1307. .long 1049641401
  1308. .long 1721283327
  1309. .long 1063366855
  1310. .long 1466691883
  1311. .long 3194116746
  1312. .long 3852528092
  1313. .long 3206760861
  1314. .long 285443293
  1315. .long 1046158380
  1316. .long 1758739894
  1317. .long 1059895449
  1318. .long 1858781184
  1319. .long 3214984212
  1320. .long 3447575948
  1321. .long 1024675855
  1322. .long 0
  1323. .long 0
  1324. .long 2242038011
  1325. .long 1070948320
  1326. .long 0
  1327. .long 1072693248
  1328. .long 0
  1329. .long 4294967288
  1330. .long 0
  1331. .long 0
  1332. .long 0
  1333. .long 0
  1334. .long 737611454
  1335. .long 1056336527
  1336. .long 0
  1337. .long 0
  1338. .long 0
  1339. .long 0
  1340. .long 0
  1341. .long 0
  1342. .long 3594790527
  1343. .long 1052911621
  1344. .long 381774871
  1345. .long 1066844524
  1346. .long 0
  1347. .long 0
  1348. .long 0
  1349. .long 0
  1350. .long 3303051618
  1351. .long 1049456050
  1352. .long 3154187623
  1353. .long 1063343722
  1354. .long 0
  1355. .long 0
  1356. .long 0
  1357. .long 0
  1358. .long 528061788
  1359. .long 1045944910
  1360. .long 2469719819
  1361. .long 1059831159
  1362. .long 0
  1363. .long 0
  1364. .long 0
  1365. .long 0
  1366. .long 0
  1367. .long 0
  1368. .long 1431655765
  1369. .long 1070945621
  1370. .long 0
  1371. .long 1072693248
  1372. .long 0
  1373. .long 4294967288
  1374. .long 1571758758
  1375. .long 1056188887
  1376. .long 0
  1377. .long 0
  1378. .long 113026373
  1379. .long 1056416381
  1380. .long 0
  1381. .long 0
  1382. .long 1913766298
  1383. .long 1053039678
  1384. .long 2507068734
  1385. .long 1065018356
  1386. .long 4000648818
  1387. .long 1053003803
  1388. .long 2446607349
  1389. .long 1066858259
  1390. .long 912662124
  1391. .long 1049849353
  1392. .long 1349489537
  1393. .long 1062281960
  1394. .long 3412972607
  1395. .long 1049641401
  1396. .long 1721283327
  1397. .long 1063366855
  1398. .long 1466691883
  1399. .long 1046633098
  1400. .long 3852528092
  1401. .long 1059277213
  1402. .long 285443293
  1403. .long 1046158380
  1404. .long 1758739894
  1405. .long 1059895449
  1406. .long 1858781184
  1407. .long 1067500564
  1408. .long 3447575948
  1409. .long 3172159503
  1410. .long 0
  1411. .long 0
  1412. .long 2242038011
  1413. .long 1070948320
  1414. .long 0
  1415. .long 1072693248
  1416. .long 0
  1417. .long 4294967288
  1418. .long 3290090340
  1419. .long 1057309837
  1420. .long 0
  1421. .long 0
  1422. .long 3685760367
  1423. .long 1056668370
  1424. .long 0
  1425. .long 0
  1426. .long 2655163949
  1427. .long 1054191269
  1428. .long 628750575
  1429. .long 1066083224
  1430. .long 680140505
  1431. .long 1053299777
  1432. .long 2954464709
  1433. .long 1066900026
  1434. .long 803201619
  1435. .long 1051032787
  1436. .long 1466315631
  1437. .long 1063353514
  1438. .long 1611220163
  1439. .long 1049972438
  1440. .long 2766187256
  1441. .long 1063437894
  1442. .long 1804579484
  1443. .long 1047847843
  1444. .long 3695969289
  1445. .long 1060370770
  1446. .long 2617238373
  1447. .long 1046675948
  1448. .long 3095830084
  1449. .long 1060095334
  1450. .long 3789570048
  1451. .long 1068551266
  1452. .long 23826559
  1453. .long 1024564412
  1454. .long 0
  1455. .long 0
  1456. .long 3870939386
  1457. .long 1070956467
  1458. .long 0
  1459. .long 1072693248
  1460. .long 0
  1461. .long 4294967288
  1462. .long 437603223
  1463. .long 1058106113
  1464. .long 0
  1465. .long 0
  1466. .long 759330352
  1467. .long 1057048511
  1468. .long 0
  1469. .long 0
  1470. .long 3107463368
  1471. .long 1055024340
  1472. .long 3144465176
  1473. .long 1066707852
  1474. .long 2290961810
  1475. .long 1053841035
  1476. .long 1618153340
  1477. .long 1066971547
  1478. .long 3836869393
  1479. .long 1051916624
  1480. .long 584032116
  1481. .long 1063985613
  1482. .long 1245704358
  1483. .long 1050626462
  1484. .long 4247487438
  1485. .long 1063561943
  1486. .long 1669034927
  1487. .long 1048791164
  1488. .long 3844233498
  1489. .long 1061142674
  1490. .long 2706958524
  1491. .long 1047411374
  1492. .long 3857199098
  1493. .long 1060281647
  1494. .long 3593904128
  1495. .long 1069107071
  1496. .long 3267547836
  1497. .long 1024679673
  1498. .long 0
  1499. .long 0
  1500. .long 4076712227
  1501. .long 1070970214
  1502. .long 0
  1503. .long 1072693248
  1504. .long 0
  1505. .long 4294967288
  1506. .long 2107155798
  1507. .long 1058683224
  1508. .long 0
  1509. .long 0
  1510. .long 2642992129
  1511. .long 1057424578
  1512. .long 0
  1513. .long 0
  1514. .long 1936992811
  1515. .long 1055720778
  1516. .long 1485063559
  1517. .long 1067198995
  1518. .long 1432914553
  1519. .long 1054319398
  1520. .long 3996381654
  1521. .long 1067075828
  1522. .long 2833029256
  1523. .long 1052739897
  1524. .long 2866066872
  1525. .long 1064499014
  1526. .long 2432888737
  1527. .long 1051234178
  1528. .long 3669764559
  1529. .long 1063748136
  1530. .long 2458496952
  1531. .long 1049687126
  1532. .long 1948234989
  1533. .long 1061614499
  1534. .long 2843698787
  1535. .long 1048163519
  1536. .long 3398041407
  1537. .long 1060559728
  1538. .long 2829230080
  1539. .long 1069608467
  1540. .long 1034046433
  1541. .long 1026788255
  1542. .long 0
  1543. .long 0
  1544. .long 298675305
  1545. .long 1070989821
  1546. .long 0
  1547. .long 1072693248
  1548. .long 0
  1549. .long 4294967288
  1550. .long 3120498638
  1551. .long 1059265656
  1552. .long 0
  1553. .long 0
  1554. .long 2773578114
  1555. .long 1058009312
  1556. .long 0
  1557. .long 0
  1558. .long 2030783676
  1559. .long 1056334225
  1560. .long 2223654598
  1561. .long 1067588288
  1562. .long 2976134650
  1563. .long 1054987244
  1564. .long 706390066
  1565. .long 1067217386
  1566. .long 4258437615
  1567. .long 1053416730
  1568. .long 1066252975
  1569. .long 1064907619
  1570. .long 815777514
  1571. .long 1051989462
  1572. .long 3202745457
  1573. .long 1064010682
  1574. .long 2493556375
  1575. .long 1050521105
  1576. .long 1046243251
  1577. .long 1062195323
  1578. .long 2593078846
  1579. .long 1049017717
  1580. .long 2763962276
  1581. .long 1060970161
  1582. .long 701480960
  1583. .long 1069894094
  1584. .long 3205862232
  1585. .long 1027177267
  1586. .long 0
  1587. .long 0
  1588. .long 2267016812
  1589. .long 1071015664
  1590. .long 0
  1591. .long 1072693248
  1592. .long 0
  1593. .long 4294967288
  1594. .long 1398462608
  1595. .long 1059820320
  1596. .long 0
  1597. .long 0
  1598. .long 26205983
  1599. .long 1058461213
  1600. .long 0
  1601. .long 0
  1602. .long 56226238
  1603. .long 1057044964
  1604. .long 2754706541
  1605. .long 1067875863
  1606. .long 2187799823
  1607. .long 1055634437
  1608. .long 790323742
  1609. .long 1067402587
  1610. .long 1372385848
  1611. .long 1054167831
  1612. .long 4097292716
  1613. .long 1065372654
  1614. .long 3348210357
  1615. .long 1052830099
  1616. .long 2442796466
  1617. .long 1064337602
  1618. .long 862608142
  1619. .long 1051347106
  1620. .long 170296152
  1621. .long 1062577219
  1622. .long 3755571428
  1623. .long 1049933343
  1624. .long 3614866008
  1625. .long 1061361670
  1626. .long 719978496
  1627. .long 1070185448
  1628. .long 1998842465
  1629. .long 1027220329
  1630. .long 0
  1631. .long 0
  1632. .long 3749156607
  1633. .long 1071048258
  1634. .long 0
  1635. .long 1072693248
  1636. .long 0
  1637. .long 4294967288
  1638. .long 1330165971
  1639. .long 1060367097
  1640. .long 0
  1641. .long 0
  1642. .long 217536623
  1643. .long 1059109098
  1644. .long 0
  1645. .long 0
  1646. .long 3492120849
  1647. .long 1057667827
  1648. .long 602185705
  1649. .long 1068194444
  1650. .long 760422958
  1651. .long 1056312597
  1652. .long 555127889
  1653. .long 1067545266
  1654. .long 3139784124
  1655. .long 1054987189
  1656. .long 3690544014
  1657. .long 1065666523
  1658. .long 95707915
  1659. .long 1053635428
  1660. .long 4003114407
  1661. .long 1064581412
  1662. .long 2034926231
  1663. .long 1052227513
  1664. .long 3759536023
  1665. .long 1063076341
  1666. .long 3826928214
  1667. .long 1050893819
  1668. .long 3837960785
  1669. .long 1061790379
  1670. .long 1526325248
  1671. .long 1070483918
  1672. .long 2356426521
  1673. .long 3172907104
  1674. .long 0
  1675. .long 0
  1676. .long 457728975
  1677. .long 1071088276
  1678. .long 0
  1679. .long 1072693248
  1680. .long 0
  1681. .long 4294967288
  1682. .long 1704352102
  1683. .long 3223426649
  1684. .long 0
  1685. .long 0
  1686. .long 2284589306
  1687. .long 1076258036
  1688. .long 0
  1689. .long 0
  1690. .long 2211264291
  1691. .long 3224142658
  1692. .long 0
  1693. .long 3221225472
  1694. .long 1441186365
  1695. .long 1077028579
  1696. .long 1431655765
  1697. .long 1074091349
  1698. .long 876943673
  1699. .long 3224837270
  1700. .long 2863311531
  1701. .long 3221924522
  1702. .long 236289504
  1703. .long 1077767485
  1704. .long 286331153
  1705. .long 1074860305
  1706. .long 2805473311
  1707. .long 3225598926
  1708. .long 95443718
  1709. .long 3222646875
  1710. .long 1160476131
  1711. .long 1078450742
  1712. .long 463583772
  1713. .long 1075552698
  1714. .long 0
  1715. .long 3220176896
  1716. .long 0
  1717. .long 0
  1718. .long 0
  1719. .long 1073741824
  1720. .long 0
  1721. .long 0
  1722. .long 0
  1723. .long 0
  1724. .long 0
  1725. .long 0
  1726. .long 3349892442
  1727. .long 3221773860
  1728. .long 0
  1729. .long 0
  1730. .long 3913197405
  1731. .long 1074501181
  1732. .long 0
  1733. .long 0
  1734. .long 2494034522
  1735. .long 3222222818
  1736. .long 1264738763
  1737. .long 3220568452
  1738. .long 1520293906
  1739. .long 1074899632
  1740. .long 1958936600
  1741. .long 1073411493
  1742. .long 2133649635
  1743. .long 3222535819
  1744. .long 4270740730
  1745. .long 3221058356
  1746. .long 1728930189
  1747. .long 1075224844
  1748. .long 1303998552
  1749. .long 1073799186
  1750. .long 618611933
  1751. .long 3222903903
  1752. .long 1769828046
  1753. .long 3221422190
  1754. .long 2200537986
  1755. .long 1075641421
  1756. .long 433361110
  1757. .long 1074105369
  1758. .long 719595600
  1759. .long 3219800832
  1760. .long 294527206
  1761. .long 1014656440
  1762. .long 0
  1763. .long 1073741824
  1764. .long 3811788216
  1765. .long 3218400550
  1766. .long 0
  1767. .long 0
  1768. .long 0
  1769. .long 0
  1770. .long 724322768
  1771. .long 3220364956
  1772. .long 0
  1773. .long 0
  1774. .long 643153048
  1775. .long 1072905816
  1776. .long 0
  1777. .long 0
  1778. .long 4285079458
  1779. .long 3220412206
  1780. .long 3912524733
  1781. .long 3220106631
  1782. .long 118362272
  1783. .long 1072952754
  1784. .long 4107767972
  1785. .long 1072827408
  1786. .long 2689502883
  1787. .long 3220460570
  1788. .long 946523347
  1789. .long 3220256414
  1790. .long 573204189
  1791. .long 1073001761
  1792. .long 581531518
  1793. .long 1072826391
  1794. .long 1386236526
  1795. .long 3220510607
  1796. .long 3718905905
  1797. .long 3220316471
  1798. .long 1145558140
  1799. .long 1073052673
  1800. .long 513572637
  1801. .long 1072861969
  1802. .long 716700048
  1803. .long 3219481016
  1804. .long 547126769
  1805. .long 3163007173
  1806. .long 0
  1807. .long 1072693248
  1808. .long 1097907398
  1809. .long 1071420120
  1810. .long 0
  1811. .long 0
  1812. .long 0
  1813. .long 0
  1814. .long 3422807297
  1815. .long 3219124495
  1816. .long 0
  1817. .long 0
  1818. .long 1151658053
  1819. .long 1071494715
  1820. .long 0
  1821. .long 0
  1822. .long 929607071
  1823. .long 3218829988
  1824. .long 1037049034
  1825. .long 3219520953
  1826. .long 2786928657
  1827. .long 1071215282
  1828. .long 1447406859
  1829. .long 1072265209
  1830. .long 3490952107
  1831. .long 3218574499
  1832. .long 3205232916
  1833. .long 3219452306
  1834. .long 1297344304
  1835. .long 1070977120
  1836. .long 1066110976
  1837. .long 1071946035
  1838. .long 3803721480
  1839. .long 3218354730
  1840. .long 1496754229
  1841. .long 3219290849
  1842. .long 2982550683
  1843. .long 1070773243
  1844. .long 4014441989
  1845. .long 1071736222
  1846. .long 419968236
  1847. .long 3219200695
  1848. .long 3451266538
  1849. .long 1015961163
  1850. .long 0
  1851. .long 1072693248
  1852. .long 2960267235
  1853. .long 1070745841
  1854. .long 0
  1855. .long 0
  1856. .long 0
  1857. .long 0
  1858. .long 1458794562
  1859. .long 3217882198
  1860. .long 0
  1861. .long 0
  1862. .long 2857777489
  1863. .long 1070137637
  1864. .long 0
  1865. .long 0
  1866. .long 1024359517
  1867. .long 3217360179
  1868. .long 2616040238
  1869. .long 3219066585
  1870. .long 1609024636
  1871. .long 1069675088
  1872. .long 2529240549
  1873. .long 1071836633
  1874. .long 1510128600
  1875. .long 3216923761
  1876. .long 2251697184
  1877. .long 3218737335
  1878. .long 1262761453
  1879. .long 1069142850
  1880. .long 1263091857
  1881. .long 1071190461
  1882. .long 3043383486
  1883. .long 3216368839
  1884. .long 2476932470
  1885. .long 3218325650
  1886. .long 3659995028
  1887. .long 1068669200
  1888. .long 855891755
  1889. .long 1070696894
  1890. .long 2583490354
  1891. .long 3218768505
  1892. .long 3062633575
  1893. .long 3161492271
  1894. .long 0
  1895. .long 1072693248
  1896. .long 2550940471
  1897. .long 1069938201
  1898. .long 0
  1899. .long 0
  1900. .long 0
  1901. .long 0
  1902. .long 2467582782
  1903. .long 3216740037
  1904. .long 0
  1905. .long 0
  1906. .long 162150096
  1907. .long 1068946420
  1908. .long 0
  1909. .long 0
  1910. .long 3702794237
  1911. .long 3216062800
  1912. .long 3631919291
  1913. .long 3218420574
  1914. .long 3456821413
  1915. .long 1068217218
  1916. .long 2031366438
  1917. .long 1071495745
  1918. .long 1596664020
  1919. .long 3215282929
  1920. .long 1509038701
  1921. .long 3218085291
  1922. .long 583171477
  1923. .long 1067510148
  1924. .long 3785344682
  1925. .long 1070618476
  1926. .long 2402036048
  1927. .long 3214559384
  1928. .long 3233018412
  1929. .long 3217396834
  1930. .long 411280568
  1931. .long 1066710556
  1932. .long 1065584192
  1933. .long 1069747896
  1934. .long 895247324
  1935. .long 3218303496
  1936. .long 500078909
  1937. .long 1013805133
  1938. .long 0
  1939. .long 1072693248
  1940. .long 729983843
  1941. .long 1068994194
  1942. .long 0
  1943. .long 0
  1944. .long 0
  1945. .long 0
  1946. .long 1512545955
  1947. .long 3215602695
  1948. .long 0
  1949. .long 0
  1950. .long 1127048698
  1951. .long 1067909459
  1952. .long 0
  1953. .long 0
  1954. .long 2300200450
  1955. .long 3214738415
  1956. .long 3593250296
  1957. .long 3217717209
  1958. .long 3009365544
  1959. .long 1066902117
  1960. .long 1127373050
  1961. .long 1071173457
  1962. .long 3046103305
  1963. .long 3213854947
  1964. .long 24583402
  1965. .long 3217207636
  1966. .long 4082511758
  1967. .long 1065914199
  1968. .long 3223889699
  1969. .long 1070020367
  1970. .long 548927984
  1971. .long 3212899404
  1972. .long 558065897
  1973. .long 3216433066
  1974. .long 680073315
  1975. .long 1064940726
  1976. .long 388873200
  1977. .long 1068944270
  1978. .long 3763679576
  1979. .long 3217651189
  1980. .long 1497360404
  1981. .long 3157194195
  1982. .long 0
  1983. .long 1072693248
  1984. .long 64931152
  1985. .long 1067729411
  1986. .long 0
  1987. .long 0
  1988. .long 0
  1989. .long 0
  1990. .long 1313038235
  1991. .long 3214229379
  1992. .long 0
  1993. .long 0
  1994. .long 1013878342
  1995. .long 1067152618
  1996. .long 0
  1997. .long 0
  1998. .long 3663426833
  1999. .long 3213208931
  2000. .long 3693284251
  2001. .long 3216602456
  2002. .long 650852232
  2003. .long 1065882376
  2004. .long 1996245381
  2005. .long 1071000265
  2006. .long 2008746170
  2007. .long 3212147845
  2008. .long 3055842593
  2009. .long 3216062494
  2010. .long 1495406348
  2011. .long 1064652437
  2012. .long 2269530157
  2013. .long 1069711235
  2014. .long 285563696
  2015. .long 3211060113
  2016. .long 1046897440
  2017. .long 3215189513
  2018. .long 233429731
  2019. .long 1063453151
  2020. .long 522045958
  2021. .long 1068476590
  2022. .long 2354785698
  2023. .long 3216586427
  2024. .long 1317599141
  2025. .long 3159915781
  2026. .long 0
  2027. .long 1072693248
  2028. .long 2828230105
  2029. .long 1065606626
  2030. .long 0
  2031. .long 0
  2032. .long 0
  2033. .long 0
  2034. .type Ctable,@object
  2035. .size Ctable,5632
  2036. .align 16
  2037. MASK_35:
  2038. .long 4294705152
  2039. .long 4294967295
  2040. .long 0
  2041. .long 0
  2042. .type MASK_35,@object
  2043. .size MASK_35,16
  2044. .align 16
  2045. Q_11:
  2046. .long 3103673719
  2047. .long 1065509018
  2048. .type Q_11,@object
  2049. .size Q_11,8
  2050. .space 8, 0x00 # pad
  2051. .align 16
  2052. Q_9:
  2053. .long 3213130307
  2054. .long 1066820768
  2055. .type Q_9,@object
  2056. .size Q_9,8
  2057. .space 8, 0x00 # pad
  2058. .align 16
  2059. Q_7:
  2060. .long 1388628139
  2061. .long 1068212666
  2062. .type Q_7,@object
  2063. .size Q_7,8
  2064. .space 8, 0x00 # pad
  2065. .align 16
  2066. Q_5:
  2067. .long 285812550
  2068. .long 1069617425
  2069. .type Q_5,@object
  2070. .size Q_5,8
  2071. .space 8, 0x00 # pad
  2072. .align 16
  2073. Q_3:
  2074. .long 1431655954
  2075. .long 1070945621
  2076. .type Q_3,@object
  2077. .size Q_3,8
  2078. .space 8, 0x00 # pad
  2079. .align 16
  2080. PI_INV_TABLE:
  2081. .long 0
  2082. .long 0
  2083. .long 2734261102
  2084. .long 1313084713
  2085. .long 4230436817
  2086. .long 4113882560
  2087. .long 3680671129
  2088. .long 1011060801
  2089. .long 4266746795
  2090. .long 3736847713
  2091. .long 3072618042
  2092. .long 1112396512
  2093. .long 105459434
  2094. .long 164729372
  2095. .long 4263373596
  2096. .long 2972297022
  2097. .long 3900847605
  2098. .long 784024708
  2099. .long 3919343654
  2100. .long 3026157121
  2101. .long 965858873
  2102. .long 2203269620
  2103. .long 2625920907
  2104. .long 3187222587
  2105. .long 536385535
  2106. .long 3724908559
  2107. .long 4012839307
  2108. .long 1510632735
  2109. .long 1832287951
  2110. .long 667617719
  2111. .long 1330003814
  2112. .long 2657085997
  2113. .long 1965537991
  2114. .long 3957715323
  2115. .long 1023883767
  2116. .long 2320667370
  2117. .long 1811636145
  2118. .long 529358088
  2119. .long 1443049542
  2120. .long 4235946923
  2121. .long 4040145953
  2122. .type PI_INV_TABLE,@object
  2123. .size PI_INV_TABLE,164
  2124. .space 12, 0x00 # pad
  2125. .align 16
  2126. PI_4:
  2127. .long 0
  2128. .long 1072243195
  2129. .long 1175561766
  2130. .long 1048908043
  2131. .type PI_4,@object
  2132. .size PI_4,16
  2133. .align 8
  2134. QQ_2:
  2135. .long 1734816687
  2136. .long 1026746297
  2137. .type QQ_2,@object
  2138. .size QQ_2,8
  2139. .align 8
  2140. ONE:
  2141. .long 0
  2142. .long 1072693248
  2143. .type ONE,@object
  2144. .size ONE,8
  2145. .align 8
  2146. TWO_POW_55:
  2147. .long 0
  2148. .long 1130364928
  2149. .type TWO_POW_55,@object
  2150. .size TWO_POW_55,8
  2151. .align 8
  2152. TWO_POW_M55:
  2153. .long 0
  2154. .long 1015021568
  2155. .type TWO_POW_M55,@object
  2156. .size TWO_POW_M55,8
  2157. .align 4
  2158. NEG_ZERO:
  2159. .long 0
  2160. .long 2147483648
  2161. .type NEG_ZERO,@object
  2162. .size NEG_ZERO,8
  2163. .data
  2164. .section .note.GNU-stack, ""
  2165. // -- Begin DWARF2 SEGMENT .eh_frame
  2166. .section .eh_frame,"a",@progbits
  2167. .eh_frame_seg:
  2168. .align 1
  2169. # End