isinf.S 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  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 "isinf.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin __isinfd
  41. .text
  42. .align 16,0x90
  43. .globl __isinfd
  44. __isinfd:
  45. # parameter 1: %xmm0
  46. ..B1.1:
  47. .cfi_startproc
  48. ..___tag_value___isinfd.1:
  49. ..L2:
  50. movq $0x7ff0000000000000, %rax
  51. movd %xmm0, %rcx
  52. cmpq %rax, %rcx
  53. jne ..B1.3
  54. ..B1.2:
  55. movl $1, %eax
  56. ret
  57. ..B1.3:
  58. movq $0xfff0000000000000, %rdx
  59. movl $-1, %esi
  60. xorl %eax, %eax
  61. cmpq %rcx, %rdx
  62. cmove %esi, %eax
  63. ret
  64. .align 16,0x90
  65. .cfi_endproc
  66. .type __isinfd,@function
  67. .size __isinfd,.-__isinfd
  68. .data
  69. # -- End __isinfd
  70. .text
  71. # -- Begin isinfd
  72. .text
  73. .align 16,0x90
  74. .globl isinfd
  75. isinfd:
  76. # parameter 1: %xmm0
  77. ..B2.1:
  78. .cfi_startproc
  79. ..___tag_value_isinfd.4:
  80. ..L5:
  81. movq $0x7ff0000000000000, %rax
  82. movd %xmm0, %rcx
  83. cmpq %rax, %rcx
  84. jne ..B2.3
  85. ..B2.2:
  86. movl $1, %eax
  87. ret
  88. ..B2.3:
  89. movq $0xfff0000000000000, %rdx
  90. movl $-1, %esi
  91. xorl %eax, %eax
  92. cmpq %rcx, %rdx
  93. cmove %esi, %eax
  94. ret
  95. .align 16,0x90
  96. .cfi_endproc
  97. .type isinfd,@function
  98. .size isinfd,.-isinfd
  99. .data
  100. # -- End isinfd
  101. .text
  102. # -- Begin __isinf
  103. .text
  104. .align 16,0x90
  105. .globl __isinf
  106. __isinf:
  107. # parameter 1: %xmm0
  108. ..B3.1:
  109. .cfi_startproc
  110. ..___tag_value___isinf.7:
  111. ..L8:
  112. movq $0x7ff0000000000000, %rax
  113. movd %xmm0, %rcx
  114. cmpq %rax, %rcx
  115. jne ..B3.3
  116. ..B3.2:
  117. movl $1, %eax
  118. ret
  119. ..B3.3:
  120. movq $0xfff0000000000000, %rdx
  121. movl $-1, %esi
  122. xorl %eax, %eax
  123. cmpq %rcx, %rdx
  124. cmove %esi, %eax
  125. ret
  126. .align 16,0x90
  127. .cfi_endproc
  128. .type __isinf,@function
  129. .size __isinf,.-__isinf
  130. .data
  131. # -- End __isinf
  132. .text
  133. # -- Begin isinf
  134. .text
  135. .align 16,0x90
  136. .globl isinf
  137. isinf:
  138. # parameter 1: %xmm0
  139. ..B4.1:
  140. .cfi_startproc
  141. ..___tag_value_isinf.10:
  142. ..L11:
  143. movq $0x7ff0000000000000, %rax
  144. movd %xmm0, %rcx
  145. cmpq %rax, %rcx
  146. jne ..B4.3
  147. ..B4.2:
  148. movl $1, %eax
  149. ret
  150. ..B4.3:
  151. movq $0xfff0000000000000, %rdx
  152. movl $-1, %esi
  153. xorl %eax, %eax
  154. cmpq %rcx, %rdx
  155. cmove %esi, %eax
  156. ret
  157. .align 16,0x90
  158. .cfi_endproc
  159. .type isinf,@function
  160. .size isinf,.-isinf
  161. .data
  162. # -- End isinf
  163. .text
  164. # -- Begin __isinff
  165. .text
  166. .align 16,0x90
  167. .globl __isinff
  168. __isinff:
  169. # parameter 1: %xmm0
  170. ..B5.1:
  171. .cfi_startproc
  172. ..___tag_value___isinff.13:
  173. ..L14:
  174. movd %xmm0, %edx
  175. cmpl $2139095040, %edx
  176. jne ..B5.3
  177. ..B5.2:
  178. movl $1, %eax
  179. ret
  180. ..B5.3:
  181. movl $-1, %ecx
  182. xorl %eax, %eax
  183. cmpl $-8388608, %edx
  184. cmove %ecx, %eax
  185. ret
  186. .align 16,0x90
  187. .cfi_endproc
  188. .type __isinff,@function
  189. .size __isinff,.-__isinff
  190. .data
  191. # -- End __isinff
  192. .text
  193. # -- Begin isinff
  194. .text
  195. .align 16,0x90
  196. .globl isinff
  197. isinff:
  198. # parameter 1: %xmm0
  199. ..B6.1:
  200. .cfi_startproc
  201. ..___tag_value_isinff.16:
  202. ..L17:
  203. movd %xmm0, %edx
  204. cmpl $2139095040, %edx
  205. jne ..B6.3
  206. ..B6.2:
  207. movl $1, %eax
  208. ret
  209. ..B6.3:
  210. movl $-1, %ecx
  211. xorl %eax, %eax
  212. cmpl $-8388608, %edx
  213. cmove %ecx, %eax
  214. ret
  215. .align 16,0x90
  216. .cfi_endproc
  217. .type isinff,@function
  218. .size isinff,.-isinff
  219. .data
  220. # -- End isinff
  221. .text
  222. # -- Begin __isinfl
  223. .text
  224. .align 16,0x90
  225. .globl __isinfl
  226. __isinfl:
  227. # parameter 1: 8 + %rsp
  228. ..B7.1:
  229. .cfi_startproc
  230. ..___tag_value___isinfl.19:
  231. ..L20:
  232. movzwl 16(%rsp), %eax
  233. andl $32767, %eax
  234. cmpl $32767, %eax
  235. jne ..B7.5
  236. ..B7.2:
  237. cmpl $-2147483648, 12(%rsp)
  238. jne ..B7.5
  239. ..B7.3:
  240. cmpl $0, 8(%rsp)
  241. jne ..B7.5
  242. ..B7.4:
  243. movzbl 17(%rsp), %eax
  244. notl %eax
  245. andl $128, %eax
  246. shrl $6, %eax
  247. decl %eax
  248. ret
  249. ..B7.5:
  250. xorl %eax, %eax
  251. ret
  252. .align 16,0x90
  253. .cfi_endproc
  254. .type __isinfl,@function
  255. .size __isinfl,.-__isinfl
  256. .data
  257. # -- End __isinfl
  258. .text
  259. # -- Begin isinfl
  260. .text
  261. .align 16,0x90
  262. .globl isinfl
  263. isinfl:
  264. # parameter 1: 8 + %rsp
  265. ..B8.1:
  266. .cfi_startproc
  267. ..___tag_value_isinfl.22:
  268. ..L23:
  269. movzwl 16(%rsp), %eax
  270. andl $32767, %eax
  271. cmpl $32767, %eax
  272. jne ..B8.5
  273. ..B8.2:
  274. cmpl $-2147483648, 12(%rsp)
  275. jne ..B8.5
  276. ..B8.3:
  277. cmpl $0, 8(%rsp)
  278. jne ..B8.5
  279. ..B8.4:
  280. movzbl 17(%rsp), %eax
  281. notl %eax
  282. andl $128, %eax
  283. shrl $6, %eax
  284. decl %eax
  285. ret
  286. ..B8.5:
  287. xorl %eax, %eax
  288. ret
  289. .align 16,0x90
  290. .cfi_endproc
  291. .type isinfl,@function
  292. .size isinfl,.-isinfl
  293. .data
  294. # -- End isinfl
  295. .data
  296. .section .note.GNU-stack, ""
  297. // -- Begin DWARF2 SEGMENT .eh_frame
  298. .section .eh_frame,"a",@progbits
  299. .eh_frame_seg:
  300. .align 1
  301. # End