sin_gen.S 25 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150
  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 "sin_gen.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin sin
  41. .text
  42. .align 16,0x90
  43. .globl sin
  44. sin:
  45. # parameter 1: %xmm0
  46. ..B1.1:
  47. .cfi_startproc
  48. ..___tag_value_sin.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. andw $32767, %ax
  59. subw $12336, %ax
  60. cmpw $4293, %ax
  61. ja .L_2TAG_PACKET_0.0.1
  62. movq PI32INV(%rip), %xmm1
  63. mulsd %xmm0, %xmm1
  64. movapd ONEHALF(%rip), %xmm5
  65. movsd SIGN_MASK(%rip), %xmm4
  66. andpd %xmm0, %xmm4
  67. orps %xmm4, %xmm5
  68. addpd %xmm5, %xmm1
  69. cvttsd2si %xmm1, %edx
  70. cvtsi2sd %edx, %xmm1
  71. movapd P_2(%rip), %xmm6
  72. movq $0x3fb921fb54400000, %r8
  73. movd %r8, %xmm3
  74. movapd SC_4(%rip), %xmm5
  75. pshufd $68, %xmm0, %xmm4
  76. mulsd %xmm1, %xmm3
  77. unpcklpd %xmm1, %xmm1
  78. andl $63, %edx
  79. shll $5, %edx
  80. lea Ctable(%rip), %rax
  81. addq %rdx, %rax
  82. mulpd %xmm1, %xmm6
  83. mulsd P_3(%rip), %xmm1
  84. subsd %xmm3, %xmm4
  85. movq 8(%rax), %xmm7
  86. subsd %xmm3, %xmm0
  87. movapd %xmm4, %xmm3
  88. unpcklpd %xmm4, %xmm3
  89. subsd %xmm6, %xmm4
  90. pshufd $68, %xmm0, %xmm0
  91. movapd (%rax), %xmm2
  92. mulpd %xmm0, %xmm5
  93. subpd %xmm6, %xmm0
  94. mulsd %xmm4, %xmm7
  95. subsd %xmm4, %xmm3
  96. mulpd %xmm0, %xmm5
  97. mulpd %xmm0, %xmm0
  98. subsd %xmm6, %xmm3
  99. movapd SC_2(%rip), %xmm6
  100. subsd %xmm3, %xmm1
  101. movq 24(%rax), %xmm3
  102. addsd %xmm3, %xmm2
  103. subsd %xmm2, %xmm7
  104. mulsd %xmm4, %xmm2
  105. mulpd %xmm0, %xmm6
  106. mulsd %xmm4, %xmm3
  107. mulpd %xmm0, %xmm2
  108. mulpd %xmm0, %xmm0
  109. addpd SC_3(%rip), %xmm5
  110. mulsd (%rax), %xmm4
  111. addpd SC_1(%rip), %xmm6
  112. mulpd %xmm0, %xmm5
  113. movq %xmm3, %xmm0
  114. addsd 8(%rax), %xmm3
  115. mulpd %xmm7, %xmm1
  116. movq %xmm4, %xmm7
  117. addsd %xmm3, %xmm4
  118. addpd %xmm5, %xmm6
  119. movq 8(%rax), %xmm5
  120. subsd %xmm3, %xmm5
  121. subsd %xmm4, %xmm3
  122. addsd 16(%rax), %xmm1
  123. mulpd %xmm2, %xmm6
  124. addsd %xmm0, %xmm5
  125. addsd %xmm7, %xmm3
  126. addsd %xmm5, %xmm1
  127. addsd %xmm3, %xmm1
  128. addsd %xmm6, %xmm1
  129. unpckhpd %xmm6, %xmm6
  130. movq %xmm4, %xmm0
  131. addsd %xmm6, %xmm1
  132. addsd %xmm1, %xmm0
  133. jmp ..B1.4
  134. .L_2TAG_PACKET_0.0.1:
  135. jg .L_2TAG_PACKET_1.0.1
  136. shrl $4, %eax
  137. cmpw $3325, %ax
  138. jne .L_2TAG_PACKET_2.0.1
  139. mulsd ALL_ONES(%rip), %xmm0
  140. jmp ..B1.4
  141. .L_2TAG_PACKET_2.0.1:
  142. movq TWO_POW_55(%rip), %xmm3
  143. mulsd %xmm0, %xmm3
  144. subsd %xmm0, %xmm3
  145. mulsd TWO_POW_M55(%rip), %xmm3
  146. jmp ..B1.4
  147. .L_2TAG_PACKET_1.0.1:
  148. pextrw $3, %xmm0, %eax
  149. andl $32752, %eax
  150. cmpl $32752, %eax
  151. je .L_2TAG_PACKET_3.0.1
  152. pextrw $3, %xmm0, %ecx
  153. andl $32752, %ecx
  154. subl $16224, %ecx
  155. shrl $7, %ecx
  156. andl $65532, %ecx
  157. lea PI_INV_TABLE(%rip), %r11
  158. addq %r11, %rcx
  159. movd %xmm0, %rax
  160. movl 20(%rcx), %r10d
  161. movl 24(%rcx), %r8d
  162. movl %eax, %edx
  163. shrq $21, %rax
  164. orl $-2147483648, %eax
  165. shrl $11, %eax
  166. movl %r10d, %r9d
  167. imulq %rdx, %r10
  168. imulq %rax, %r9
  169. imulq %rax, %r8
  170. movl 16(%rcx), %esi
  171. movl 12(%rcx), %edi
  172. movl %r10d, %r11d
  173. shrq $32, %r10
  174. addq %r10, %r9
  175. addq %r8, %r11
  176. movl %r11d, %r8d
  177. shrq $32, %r11
  178. addq %r11, %r9
  179. movl %esi, %r10d
  180. imulq %rdx, %rsi
  181. imulq %rax, %r10
  182. movl %edi, %r11d
  183. imulq %rdx, %rdi
  184. movl %esi, %ebx
  185. shrq $32, %rsi
  186. addq %rbx, %r9
  187. movl %r9d, %ebx
  188. shrq $32, %r9
  189. addq %rsi, %r10
  190. addq %r9, %r10
  191. shlq $32, %rbx
  192. orq %rbx, %r8
  193. imulq %rax, %r11
  194. movl 8(%rcx), %r9d
  195. movl 4(%rcx), %esi
  196. movl %edi, %ebx
  197. shrq $32, %rdi
  198. addq %rbx, %r10
  199. movl %r10d, %ebx
  200. shrq $32, %r10
  201. addq %rdi, %r11
  202. addq %r10, %r11
  203. movq %r9, %rdi
  204. imulq %rdx, %r9
  205. imulq %rax, %rdi
  206. movl %r9d, %r10d
  207. shrq $32, %r9
  208. addq %r10, %r11
  209. movl %r11d, %r10d
  210. shrq $32, %r11
  211. addq %r9, %rdi
  212. addq %r11, %rdi
  213. movq %rsi, %r9
  214. imulq %rdx, %rsi
  215. imulq %rax, %r9
  216. shlq $32, %r10
  217. orq %rbx, %r10
  218. movl (%rcx), %eax
  219. movl %esi, %r11d
  220. shrq $32, %rsi
  221. addq %r11, %rdi
  222. movl %edi, %r11d
  223. shrq $32, %rdi
  224. addq %rsi, %r9
  225. addq %rdi, %r9
  226. imulq %rax, %rdx
  227. pextrw $3, %xmm0, %ebx
  228. lea PI_INV_TABLE(%rip), %rdi
  229. subq %rdi, %rcx
  230. addl %ecx, %ecx
  231. addl %ecx, %ecx
  232. addl %ecx, %ecx
  233. addl $19, %ecx
  234. movl $32768, %esi
  235. andl %ebx, %esi
  236. shrl $4, %ebx
  237. andl $2047, %ebx
  238. subl $1023, %ebx
  239. subl %ebx, %ecx
  240. addq %rdx, %r9
  241. movl %ecx, %edx
  242. addl $32, %edx
  243. cmpl $1, %ecx
  244. jl .L_2TAG_PACKET_4.0.1
  245. negl %ecx
  246. addl $29, %ecx
  247. shll %cl, %r9d
  248. movl %r9d, %edi
  249. andl $536870911, %r9d
  250. testl $268435456, %r9d
  251. jne .L_2TAG_PACKET_5.0.1
  252. shrl %cl, %r9d
  253. movl $0, %ebx
  254. shlq $32, %r9
  255. orq %r11, %r9
  256. .L_2TAG_PACKET_6.0.1:
  257. .L_2TAG_PACKET_7.0.1:
  258. cmpq $0, %r9
  259. je .L_2TAG_PACKET_8.0.1
  260. .L_2TAG_PACKET_9.0.1:
  261. bsr %r9, %r11
  262. movl $29, %ecx
  263. subl %r11d, %ecx
  264. jle .L_2TAG_PACKET_10.0.1
  265. shlq %cl, %r9
  266. movq %r10, %rax
  267. shlq %cl, %r10
  268. addl %ecx, %edx
  269. negl %ecx
  270. addl $64, %ecx
  271. shrq %cl, %rax
  272. shrq %cl, %r8
  273. orq %rax, %r9
  274. orq %r8, %r10
  275. .L_2TAG_PACKET_11.0.1:
  276. cvtsi2sdq %r9, %xmm0
  277. shrq $1, %r10
  278. cvtsi2sdq %r10, %xmm3
  279. xorpd %xmm4, %xmm4
  280. shll $4, %edx
  281. negl %edx
  282. addl $16368, %edx
  283. orl %esi, %edx
  284. xorl %ebx, %edx
  285. pinsrw $3, %edx, %xmm4
  286. movq PI_4(%rip), %xmm2
  287. movq 8+PI_4(%rip), %xmm6
  288. xorpd %xmm5, %xmm5
  289. subl $1008, %edx
  290. pinsrw $3, %edx, %xmm5
  291. mulsd %xmm4, %xmm0
  292. shll $16, %esi
  293. sarl $31, %esi
  294. mulsd %xmm5, %xmm3
  295. movq %xmm0, %xmm1
  296. mulsd %xmm2, %xmm0
  297. shrl $29, %edi
  298. addsd %xmm3, %xmm1
  299. mulsd %xmm2, %xmm3
  300. addl %esi, %edi
  301. xorl %esi, %edi
  302. mulsd %xmm1, %xmm6
  303. movl %edi, %eax
  304. addsd %xmm3, %xmm6
  305. movq %xmm0, %xmm2
  306. addsd %xmm6, %xmm0
  307. subsd %xmm0, %xmm2
  308. addsd %xmm2, %xmm6
  309. .L_2TAG_PACKET_12.0.1:
  310. movq PI32INV(%rip), %xmm1
  311. mulsd %xmm0, %xmm1
  312. movq ONEHALF(%rip), %xmm5
  313. movq SIGN_MASK(%rip), %xmm4
  314. andpd %xmm0, %xmm4
  315. orps %xmm4, %xmm5
  316. addpd %xmm5, %xmm1
  317. cvttsd2si %xmm1, %edx
  318. cvtsi2sd %edx, %xmm1
  319. movq P_1(%rip), %xmm3
  320. movapd P_2(%rip), %xmm2
  321. mulsd %xmm1, %xmm3
  322. unpcklpd %xmm1, %xmm1
  323. shll $3, %eax
  324. addl $1865216, %edx
  325. movq %xmm0, %xmm4
  326. addl %eax, %edx
  327. andl $63, %edx
  328. movapd SC_4(%rip), %xmm5
  329. lea Ctable(%rip), %rax
  330. shll $5, %edx
  331. addq %rdx, %rax
  332. mulpd %xmm1, %xmm2
  333. subsd %xmm3, %xmm0
  334. mulsd P_3(%rip), %xmm1
  335. subsd %xmm3, %xmm4
  336. movq 8(%rax), %xmm7
  337. unpcklpd %xmm0, %xmm0
  338. movq %xmm4, %xmm3
  339. subsd %xmm2, %xmm4
  340. mulpd %xmm0, %xmm5
  341. subpd %xmm2, %xmm0
  342. mulsd %xmm4, %xmm7
  343. subsd %xmm4, %xmm3
  344. mulpd %xmm0, %xmm5
  345. mulpd %xmm0, %xmm0
  346. subsd %xmm2, %xmm3
  347. movapd (%rax), %xmm2
  348. subsd %xmm3, %xmm1
  349. movq 24(%rax), %xmm3
  350. addsd %xmm3, %xmm2
  351. subsd %xmm2, %xmm7
  352. subsd %xmm6, %xmm1
  353. movapd SC_2(%rip), %xmm6
  354. mulsd %xmm4, %xmm2
  355. mulpd %xmm0, %xmm6
  356. mulsd %xmm4, %xmm3
  357. mulpd %xmm0, %xmm2
  358. mulpd %xmm0, %xmm0
  359. addpd SC_3(%rip), %xmm5
  360. mulsd (%rax), %xmm4
  361. addpd SC_1(%rip), %xmm6
  362. mulpd %xmm0, %xmm5
  363. movq %xmm3, %xmm0
  364. addsd 8(%rax), %xmm3
  365. mulpd %xmm7, %xmm1
  366. movq %xmm4, %xmm7
  367. addsd %xmm3, %xmm4
  368. addpd %xmm5, %xmm6
  369. movq 8(%rax), %xmm5
  370. subsd %xmm3, %xmm5
  371. subsd %xmm4, %xmm3
  372. addsd 16(%rax), %xmm1
  373. mulpd %xmm2, %xmm6
  374. addsd %xmm0, %xmm5
  375. addsd %xmm7, %xmm3
  376. addsd %xmm5, %xmm1
  377. addsd %xmm3, %xmm1
  378. addsd %xmm6, %xmm1
  379. unpckhpd %xmm6, %xmm6
  380. movq %xmm4, %xmm0
  381. addsd %xmm6, %xmm1
  382. addsd %xmm1, %xmm0
  383. jmp ..B1.4
  384. .L_2TAG_PACKET_8.0.1:
  385. addl $64, %edx
  386. movq %r10, %r9
  387. movq %r8, %r10
  388. movq $0, %r8
  389. cmpq $0, %r9
  390. jne .L_2TAG_PACKET_9.0.1
  391. addl $64, %edx
  392. movq %r10, %r9
  393. movq %r8, %r10
  394. cmpq $0, %r9
  395. jne .L_2TAG_PACKET_9.0.1
  396. xorpd %xmm0, %xmm0
  397. xorpd %xmm6, %xmm6
  398. jmp .L_2TAG_PACKET_12.0.1
  399. .L_2TAG_PACKET_10.0.1:
  400. je .L_2TAG_PACKET_11.0.1
  401. negl %ecx
  402. shrq %cl, %r10
  403. movq %r9, %rax
  404. shrq %cl, %r9
  405. subl %ecx, %edx
  406. negl %ecx
  407. addl $64, %ecx
  408. shlq %cl, %rax
  409. orq %rax, %r10
  410. jmp .L_2TAG_PACKET_11.0.1
  411. .L_2TAG_PACKET_4.0.1:
  412. negl %ecx
  413. shlq $32, %r9
  414. orq %r11, %r9
  415. shlq %cl, %r9
  416. movq %r9, %rdi
  417. testl $-2147483648, %r9d
  418. jne .L_2TAG_PACKET_13.0.1
  419. shrl %cl, %r9d
  420. movl $0, %ebx
  421. shrq $3, %rdi
  422. jmp .L_2TAG_PACKET_7.0.1
  423. .L_2TAG_PACKET_5.0.1:
  424. shrl %cl, %r9d
  425. movl $536870912, %ebx
  426. shrl %cl, %ebx
  427. shlq $32, %r9
  428. orq %r11, %r9
  429. shlq $32, %rbx
  430. addl $536870912, %edi
  431. movq $0, %rcx
  432. movq $0, %r11
  433. subq %r8, %rcx
  434. sbbq %r10, %r11
  435. sbbq %r9, %rbx
  436. movq %rcx, %r8
  437. movq %r11, %r10
  438. movq %rbx, %r9
  439. movl $32768, %ebx
  440. jmp .L_2TAG_PACKET_6.0.1
  441. .L_2TAG_PACKET_13.0.1:
  442. shrl %cl, %r9d
  443. movq $0x100000000, %rbx
  444. shrq %cl, %rbx
  445. movq $0, %rcx
  446. movq $0, %r11
  447. subq %r8, %rcx
  448. sbbq %r10, %r11
  449. sbbq %r9, %rbx
  450. movq %rcx, %r8
  451. movq %r11, %r10
  452. movq %rbx, %r9
  453. movl $32768, %ebx
  454. shrq $3, %rdi
  455. addl $536870912, %edi
  456. jmp .L_2TAG_PACKET_7.0.1
  457. .L_2TAG_PACKET_3.0.1:
  458. movq 8(%rsp), %xmm0
  459. mulsd NEG_ZERO(%rip), %xmm0
  460. movq %xmm0, (%rsp)
  461. .L_2TAG_PACKET_14.0.1:
  462. ..B1.4:
  463. addq $16, %rsp
  464. .cfi_def_cfa_offset 16
  465. .cfi_restore 3
  466. popq %rbx
  467. .cfi_def_cfa_offset 8
  468. ret
  469. .align 16,0x90
  470. .cfi_endproc
  471. .type sin,@function
  472. .size sin,.-sin
  473. .data
  474. # -- End sin
  475. .section .rodata, "a"
  476. .align 16
  477. .align 16
  478. ONEHALF:
  479. .long 0
  480. .long 1071644672
  481. .long 0
  482. .long 1071644672
  483. .type ONEHALF,@object
  484. .size ONEHALF,16
  485. .align 16
  486. P_2:
  487. .long 442499072
  488. .long 1032893537
  489. .long 442499072
  490. .long 1032893537
  491. .type P_2,@object
  492. .size P_2,16
  493. .align 16
  494. SC_4:
  495. .long 2773927732
  496. .long 1053236707
  497. .long 436314138
  498. .long 1056571808
  499. .type SC_4,@object
  500. .size SC_4,16
  501. .align 16
  502. Ctable:
  503. .long 0
  504. .long 0
  505. .long 0
  506. .long 0
  507. .long 0
  508. .long 0
  509. .long 0
  510. .long 1072693248
  511. .long 393047345
  512. .long 3212032302
  513. .long 3156849708
  514. .long 1069094822
  515. .long 3758096384
  516. .long 3158189848
  517. .long 0
  518. .long 1072693248
  519. .long 18115067
  520. .long 3214126342
  521. .long 1013556747
  522. .long 1070135480
  523. .long 3221225472
  524. .long 3160567065
  525. .long 0
  526. .long 1072693248
  527. .long 2476548698
  528. .long 3215330282
  529. .long 785751814
  530. .long 1070765062
  531. .long 2684354560
  532. .long 3161838221
  533. .long 0
  534. .long 1072693248
  535. .long 2255197647
  536. .long 3216211105
  537. .long 2796464483
  538. .long 1071152610
  539. .long 3758096384
  540. .long 3160878317
  541. .long 0
  542. .long 1072693248
  543. .long 1945768569
  544. .long 3216915048
  545. .long 939980347
  546. .long 1071524701
  547. .long 536870912
  548. .long 1012796809
  549. .long 0
  550. .long 1072693248
  551. .long 1539668340
  552. .long 3217396327
  553. .long 967731400
  554. .long 1071761211
  555. .long 536870912
  556. .long 1015752157
  557. .long 0
  558. .long 1072693248
  559. .long 1403757309
  560. .long 3217886718
  561. .long 621354454
  562. .long 1071926515
  563. .long 536870912
  564. .long 1013450602
  565. .long 0
  566. .long 1072693248
  567. .long 2583490354
  568. .long 1070236281
  569. .long 1719614413
  570. .long 1072079006
  571. .long 536870912
  572. .long 3163282740
  573. .long 0
  574. .long 1071644672
  575. .long 2485417816
  576. .long 1069626316
  577. .long 1796544321
  578. .long 1072217216
  579. .long 536870912
  580. .long 3162686945
  581. .long 0
  582. .long 1071644672
  583. .long 2598800519
  584. .long 1068266419
  585. .long 688824739
  586. .long 1072339814
  587. .long 3758096384
  588. .long 1010431536
  589. .long 0
  590. .long 1071644672
  591. .long 2140183630
  592. .long 3214756396
  593. .long 4051746225
  594. .long 1072445618
  595. .long 2147483648
  596. .long 3161907377
  597. .long 0
  598. .long 1071644672
  599. .long 1699043957
  600. .long 3216902261
  601. .long 3476196678
  602. .long 1072533611
  603. .long 536870912
  604. .long 1014257638
  605. .long 0
  606. .long 1071644672
  607. .long 1991047213
  608. .long 1067753521
  609. .long 1455828442
  610. .long 1072602945
  611. .long 3758096384
  612. .long 1015505073
  613. .long 0
  614. .long 1070596096
  615. .long 240740309
  616. .long 3215727903
  617. .long 3489094832
  618. .long 1072652951
  619. .long 536870912
  620. .long 1014325783
  621. .long 0
  622. .long 1070596096
  623. .long 257503056
  624. .long 3214647653
  625. .long 2748392742
  626. .long 1072683149
  627. .long 1073741824
  628. .long 3163061750
  629. .long 0
  630. .long 1069547520
  631. .long 0
  632. .long 0
  633. .long 0
  634. .long 1072693248
  635. .long 0
  636. .long 0
  637. .long 0
  638. .long 0
  639. .long 257503056
  640. .long 1067164005
  641. .long 2748392742
  642. .long 1072683149
  643. .long 1073741824
  644. .long 3163061750
  645. .long 0
  646. .long 3217031168
  647. .long 240740309
  648. .long 1068244255
  649. .long 3489094832
  650. .long 1072652951
  651. .long 536870912
  652. .long 1014325783
  653. .long 0
  654. .long 3218079744
  655. .long 1991047213
  656. .long 3215237169
  657. .long 1455828442
  658. .long 1072602945
  659. .long 3758096384
  660. .long 1015505073
  661. .long 0
  662. .long 3218079744
  663. .long 1699043957
  664. .long 1069418613
  665. .long 3476196678
  666. .long 1072533611
  667. .long 536870912
  668. .long 1014257638
  669. .long 0
  670. .long 3219128320
  671. .long 2140183630
  672. .long 1067272748
  673. .long 4051746225
  674. .long 1072445618
  675. .long 2147483648
  676. .long 3161907377
  677. .long 0
  678. .long 3219128320
  679. .long 2598800519
  680. .long 3215750067
  681. .long 688824739
  682. .long 1072339814
  683. .long 3758096384
  684. .long 1010431536
  685. .long 0
  686. .long 3219128320
  687. .long 2485417816
  688. .long 3217109964
  689. .long 1796544321
  690. .long 1072217216
  691. .long 536870912
  692. .long 3162686945
  693. .long 0
  694. .long 3219128320
  695. .long 2583490354
  696. .long 3217719929
  697. .long 1719614413
  698. .long 1072079006
  699. .long 536870912
  700. .long 3163282740
  701. .long 0
  702. .long 3219128320
  703. .long 1403757309
  704. .long 1070403070
  705. .long 621354454
  706. .long 1071926515
  707. .long 536870912
  708. .long 1013450602
  709. .long 0
  710. .long 3220176896
  711. .long 1539668340
  712. .long 1069912679
  713. .long 967731400
  714. .long 1071761211
  715. .long 536870912
  716. .long 1015752157
  717. .long 0
  718. .long 3220176896
  719. .long 1945768569
  720. .long 1069431400
  721. .long 939980347
  722. .long 1071524701
  723. .long 536870912
  724. .long 1012796809
  725. .long 0
  726. .long 3220176896
  727. .long 2255197647
  728. .long 1068727457
  729. .long 2796464483
  730. .long 1071152610
  731. .long 3758096384
  732. .long 3160878317
  733. .long 0
  734. .long 3220176896
  735. .long 2476548698
  736. .long 1067846634
  737. .long 785751814
  738. .long 1070765062
  739. .long 2684354560
  740. .long 3161838221
  741. .long 0
  742. .long 3220176896
  743. .long 18115067
  744. .long 1066642694
  745. .long 1013556747
  746. .long 1070135480
  747. .long 3221225472
  748. .long 3160567065
  749. .long 0
  750. .long 3220176896
  751. .long 393047345
  752. .long 1064548654
  753. .long 3156849708
  754. .long 1069094822
  755. .long 3758096384
  756. .long 3158189848
  757. .long 0
  758. .long 3220176896
  759. .long 0
  760. .long 0
  761. .long 0
  762. .long 0
  763. .long 0
  764. .long 0
  765. .long 0
  766. .long 3220176896
  767. .long 393047345
  768. .long 1064548654
  769. .long 3156849708
  770. .long 3216578470
  771. .long 3758096384
  772. .long 1010706200
  773. .long 0
  774. .long 3220176896
  775. .long 18115067
  776. .long 1066642694
  777. .long 1013556747
  778. .long 3217619128
  779. .long 3221225472
  780. .long 1013083417
  781. .long 0
  782. .long 3220176896
  783. .long 2476548698
  784. .long 1067846634
  785. .long 785751814
  786. .long 3218248710
  787. .long 2684354560
  788. .long 1014354573
  789. .long 0
  790. .long 3220176896
  791. .long 2255197647
  792. .long 1068727457
  793. .long 2796464483
  794. .long 3218636258
  795. .long 3758096384
  796. .long 1013394669
  797. .long 0
  798. .long 3220176896
  799. .long 1945768569
  800. .long 1069431400
  801. .long 939980347
  802. .long 3219008349
  803. .long 536870912
  804. .long 3160280457
  805. .long 0
  806. .long 3220176896
  807. .long 1539668340
  808. .long 1069912679
  809. .long 967731400
  810. .long 3219244859
  811. .long 536870912
  812. .long 3163235805
  813. .long 0
  814. .long 3220176896
  815. .long 1403757309
  816. .long 1070403070
  817. .long 621354454
  818. .long 3219410163
  819. .long 536870912
  820. .long 3160934250
  821. .long 0
  822. .long 3220176896
  823. .long 2583490354
  824. .long 3217719929
  825. .long 1719614413
  826. .long 3219562654
  827. .long 536870912
  828. .long 1015799092
  829. .long 0
  830. .long 3219128320
  831. .long 2485417816
  832. .long 3217109964
  833. .long 1796544321
  834. .long 3219700864
  835. .long 536870912
  836. .long 1015203297
  837. .long 0
  838. .long 3219128320
  839. .long 2598800519
  840. .long 3215750067
  841. .long 688824739
  842. .long 3219823462
  843. .long 3758096384
  844. .long 3157915184
  845. .long 0
  846. .long 3219128320
  847. .long 2140183630
  848. .long 1067272748
  849. .long 4051746225
  850. .long 3219929266
  851. .long 2147483648
  852. .long 1014423729
  853. .long 0
  854. .long 3219128320
  855. .long 1699043957
  856. .long 1069418613
  857. .long 3476196678
  858. .long 3220017259
  859. .long 536870912
  860. .long 3161741286
  861. .long 0
  862. .long 3219128320
  863. .long 1991047213
  864. .long 3215237169
  865. .long 1455828442
  866. .long 3220086593
  867. .long 3758096384
  868. .long 3162988721
  869. .long 0
  870. .long 3218079744
  871. .long 240740309
  872. .long 1068244255
  873. .long 3489094832
  874. .long 3220136599
  875. .long 536870912
  876. .long 3161809431
  877. .long 0
  878. .long 3218079744
  879. .long 257503056
  880. .long 1067164005
  881. .long 2748392742
  882. .long 3220166797
  883. .long 1073741824
  884. .long 1015578102
  885. .long 0
  886. .long 3217031168
  887. .long 0
  888. .long 0
  889. .long 0
  890. .long 3220176896
  891. .long 0
  892. .long 0
  893. .long 0
  894. .long 0
  895. .long 257503056
  896. .long 3214647653
  897. .long 2748392742
  898. .long 3220166797
  899. .long 1073741824
  900. .long 1015578102
  901. .long 0
  902. .long 1069547520
  903. .long 240740309
  904. .long 3215727903
  905. .long 3489094832
  906. .long 3220136599
  907. .long 536870912
  908. .long 3161809431
  909. .long 0
  910. .long 1070596096
  911. .long 1991047213
  912. .long 1067753521
  913. .long 1455828442
  914. .long 3220086593
  915. .long 3758096384
  916. .long 3162988721
  917. .long 0
  918. .long 1070596096
  919. .long 1699043957
  920. .long 3216902261
  921. .long 3476196678
  922. .long 3220017259
  923. .long 536870912
  924. .long 3161741286
  925. .long 0
  926. .long 1071644672
  927. .long 2140183630
  928. .long 3214756396
  929. .long 4051746225
  930. .long 3219929266
  931. .long 2147483648
  932. .long 1014423729
  933. .long 0
  934. .long 1071644672
  935. .long 2598800519
  936. .long 1068266419
  937. .long 688824739
  938. .long 3219823462
  939. .long 3758096384
  940. .long 3157915184
  941. .long 0
  942. .long 1071644672
  943. .long 2485417816
  944. .long 1069626316
  945. .long 1796544321
  946. .long 3219700864
  947. .long 536870912
  948. .long 1015203297
  949. .long 0
  950. .long 1071644672
  951. .long 2583490354
  952. .long 1070236281
  953. .long 1719614413
  954. .long 3219562654
  955. .long 536870912
  956. .long 1015799092
  957. .long 0
  958. .long 1071644672
  959. .long 1403757309
  960. .long 3217886718
  961. .long 621354454
  962. .long 3219410163
  963. .long 536870912
  964. .long 3160934250
  965. .long 0
  966. .long 1072693248
  967. .long 1539668340
  968. .long 3217396327
  969. .long 967731400
  970. .long 3219244859
  971. .long 536870912
  972. .long 3163235805
  973. .long 0
  974. .long 1072693248
  975. .long 1945768569
  976. .long 3216915048
  977. .long 939980347
  978. .long 3219008349
  979. .long 536870912
  980. .long 3160280457
  981. .long 0
  982. .long 1072693248
  983. .long 2255197647
  984. .long 3216211105
  985. .long 2796464483
  986. .long 3218636258
  987. .long 3758096384
  988. .long 1013394669
  989. .long 0
  990. .long 1072693248
  991. .long 2476548698
  992. .long 3215330282
  993. .long 785751814
  994. .long 3218248710
  995. .long 2684354560
  996. .long 1014354573
  997. .long 0
  998. .long 1072693248
  999. .long 18115067
  1000. .long 3214126342
  1001. .long 1013556747
  1002. .long 3217619128
  1003. .long 3221225472
  1004. .long 1013083417
  1005. .long 0
  1006. .long 1072693248
  1007. .long 393047345
  1008. .long 3212032302
  1009. .long 3156849708
  1010. .long 3216578470
  1011. .long 3758096384
  1012. .long 1010706200
  1013. .long 0
  1014. .long 1072693248
  1015. .type Ctable,@object
  1016. .size Ctable,2048
  1017. .align 16
  1018. SC_2:
  1019. .long 286331153
  1020. .long 1065423121
  1021. .long 1431655765
  1022. .long 1067799893
  1023. .type SC_2,@object
  1024. .size SC_2,16
  1025. .align 16
  1026. SC_3:
  1027. .long 436314138
  1028. .long 3207201184
  1029. .long 381774871
  1030. .long 3210133868
  1031. .type SC_3,@object
  1032. .size SC_3,16
  1033. .align 16
  1034. SC_1:
  1035. .long 1431655765
  1036. .long 3217380693
  1037. .long 0
  1038. .long 3219128320
  1039. .type SC_1,@object
  1040. .size SC_1,16
  1041. .align 16
  1042. PI_INV_TABLE:
  1043. .long 0
  1044. .long 0
  1045. .long 2734261102
  1046. .long 1313084713
  1047. .long 4230436817
  1048. .long 4113882560
  1049. .long 3680671129
  1050. .long 1011060801
  1051. .long 4266746795
  1052. .long 3736847713
  1053. .long 3072618042
  1054. .long 1112396512
  1055. .long 105459434
  1056. .long 164729372
  1057. .long 4263373596
  1058. .long 2972297022
  1059. .long 3900847605
  1060. .long 784024708
  1061. .long 3919343654
  1062. .long 3026157121
  1063. .long 965858873
  1064. .long 2203269620
  1065. .long 2625920907
  1066. .long 3187222587
  1067. .long 536385535
  1068. .long 3724908559
  1069. .long 4012839307
  1070. .long 1510632735
  1071. .long 1832287951
  1072. .long 667617719
  1073. .long 1330003814
  1074. .long 2657085997
  1075. .long 1965537991
  1076. .long 3957715323
  1077. .long 1023883767
  1078. .long 2320667370
  1079. .long 1811636145
  1080. .long 529358088
  1081. .long 1443049542
  1082. .long 4235946923
  1083. .long 4040145953
  1084. .type PI_INV_TABLE,@object
  1085. .size PI_INV_TABLE,164
  1086. .space 12, 0x00 # pad
  1087. .align 16
  1088. PI_4:
  1089. .long 1073741824
  1090. .long 1072243195
  1091. .long 407279769
  1092. .long 1046758445
  1093. .type PI_4,@object
  1094. .size PI_4,16
  1095. .align 8
  1096. PI32INV:
  1097. .long 1841940611
  1098. .long 1076125488
  1099. .type PI32INV,@object
  1100. .size PI32INV,8
  1101. .align 8
  1102. SIGN_MASK:
  1103. .long 0
  1104. .long 2147483648
  1105. .type SIGN_MASK,@object
  1106. .size SIGN_MASK,8
  1107. .align 8
  1108. P_3:
  1109. .long 771977331
  1110. .long 996350346
  1111. .type P_3,@object
  1112. .size P_3,8
  1113. .align 8
  1114. ALL_ONES:
  1115. .long 4294967295
  1116. .long 1072693247
  1117. .type ALL_ONES,@object
  1118. .size ALL_ONES,8
  1119. .align 8
  1120. TWO_POW_55:
  1121. .long 0
  1122. .long 1130364928
  1123. .type TWO_POW_55,@object
  1124. .size TWO_POW_55,8
  1125. .align 8
  1126. TWO_POW_M55:
  1127. .long 0
  1128. .long 1015021568
  1129. .type TWO_POW_M55,@object
  1130. .size TWO_POW_M55,8
  1131. .align 8
  1132. P_1:
  1133. .long 1413480448
  1134. .long 1069097467
  1135. .type P_1,@object
  1136. .size P_1,8
  1137. .align 8
  1138. NEG_ZERO:
  1139. .long 0
  1140. .long 2147483648
  1141. .type NEG_ZERO,@object
  1142. .size NEG_ZERO,8
  1143. .data
  1144. .section .note.GNU-stack, ""
  1145. // -- Begin DWARF2 SEGMENT .eh_frame
  1146. .section .eh_frame,"a",@progbits
  1147. .eh_frame_seg:
  1148. .align 1
  1149. # End