hyp32.s
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:7k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* hyp32.s - VxWorks conversion from Microtek tools to Sun native */
  2. /* Copyright 1984-1992 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01a,06aug92,jwt  converted.
  7. */
  8. /*
  9. ! ! ! ! !
  10. ! SPARClite Floating Point Library
  11. !
  12. ! Copyright (C) 1992 By
  13. ! United States Software Corporation
  14. ! 14215 N.W. Science Park Drive
  15. ! Portland, Oregon 97229
  16. !
  17. ! This software is furnished under a license and may be used
  18. ! and copied only in accordance with the terms of such license
  19. ! and with the inclusion of the above copyright notice.
  20. ! This software or any other copies thereof may not be provided
  21. ! or otherwise made available to any other person.  No title to
  22. ! and ownership of the software is hereby transferred.
  23. !
  24. ! The information in this software is subject to change without 
  25. ! notice and should not be construed as a commitment by United
  26. ! States Software Corporation.
  27. !
  28. ! First Release: V1.02 March 26 1992
  29. ! ! ! ! !
  30. .macro scan,p1,p2,p3
  31. .word 0x81602000 | (&p3<<25) | (&p1<<14) | p2
  32. .endm
  33. .macro umul,p1,p2,p3
  34. .word 0x80500000 | (&p3<<25) | (&p1<<14) | &p2
  35. .endm
  36. .macro divscc,p1,p2,p3
  37. .word 0x80e80000 | (&p3<<25) | (&p1<<14) | &p2
  38. .endm
  39. */
  40. #include "arch/sparc/ussSun4.h"
  41. .global _exadd
  42. .global _exsub
  43. .global _exmul
  44. .global _exdiv
  45. .global _exexp
  46. .global _sigmax
  47. .data
  48. .align 4
  49. sihcon: .word 0x654b,0x0
  50. .word 0x6b9fd0,0x0
  51. .word 0x5849184f,0x0
  52. .word 0xcc8acfeb,0x35
  53. .word 0xe3a556c7,0x171d
  54. .word 0x6806807,0x68068
  55. .word 0x11111111,0x1111111
  56. .word 0x55555555,0x15555555
  57. .word 0x0,0x80000000
  58. tahcon: .word 0xfeb68270,0xffffffff
  59. .word 0xcb3f0f8,0x0
  60. .word 0x82a09a5d,0xffffffff
  61. .word 0xd561c759,0x4
  62. .word 0x4b63c10d,0xffffffd0
  63. .word 0xdb2c4e09,0x1d6
  64. .word 0xfa29bbda,0xffffedd7
  65. .word 0x795fb876,0xb354
  66. .word 0x1b32c43d,0xfff910a2
  67. .word 0xf004559b,0x4559aa
  68. .word 0x27d27d28,0xfd27d27d
  69. .word 0xaaaaaaab,0x2aaaaaaa
  70. .word 0x0,0x80000000
  71. .text
  72. .align 4
  73. .global _dpcosh
  74. _dpcosh:
  75. .global _cosh
  76. _cosh:
  77. save %sp,-96,%sp
  78. sll     %i0,1,%i4
  79. srl     %i4,21,%i4
  80. sll     %i0,11,%i2
  81. srl     %i1,21,%l2
  82. or      %i2,%l2,%i2
  83. sll     %i1,11,%i3
  84. sethi   %hi(0x80000000),%l2
  85. or      %i2,%l2,%i2
  86. subcc   %i4,0x7ff,%g0
  87. be      Aspec          
  88. or      %g0,%i2,%o0
  89. or      %g0,%i3,%o1
  90. or      %g0,%i4,%o2
  91. call    _exexp
  92. or      %g0,0,%o3
  93. or      %g0,%o0,%i2
  94. or      %g0,%o1,%i3
  95. or      %g0,%o2,%i4
  96. sethi   %hi(0x80000000),%o0
  97. or      %g0,0,%o1
  98. or      %g0,0x3ff,%o2
  99. or      %g0,%i2,%o3
  100. or      %g0,%i3,%o4
  101. call    _exdiv
  102. or      %g0,%i4,%o5
  103. or      %g0,%o0,%i5
  104. or      %g0,%o1,%l0
  105. or      %g0,%o2,%l1
  106. or      %g0,%i2,%o0
  107. or      %g0,%i3,%o1
  108. or      %g0,%i4,%o2
  109. or      %g0,%i5,%o3
  110. or      %g0,%l0,%o4
  111. call    _exadd
  112. or      %g0,%l1,%o5
  113. or      %g0,%o0,%i2
  114. or      %g0,%o1,%i3
  115. or      %g0,%o2,%i4
  116. sub     %i4,1,%i4
  117. subcc   %i4,0x7ff,%g0
  118. bcc     Ainf     
  119. NOP
  120. srl     %i3,11,%i1
  121. sll     %i2,21,%l2
  122. or      %i1,%l2,%i1
  123. srl     %i2,11,%i0
  124. sethi   %hi(0xfffff),%l2
  125. or      %l2,0x3ff,%l2
  126. and     %i0,%l2,%i0
  127. sll     %i4,20,%l2
  128. or      %i0,%l2,%i0
  129. Aret:
  130. A999: jmpl %i7+8,%g0
  131. restore %g0,0,%g0
  132. Aspec: add     %i2,%i2,%l2
  133. orcc    %l2,%i3,%l2
  134. be      Ainf     
  135. NOP
  136. or      %g0,0,%i1
  137. ba      Aret     
  138. sethi   %hi(0xfff80000),%i0
  139. Ainf: or      %g0,0,%i1
  140. ba      Aret     
  141. sethi   %hi(0x7ff00000),%i0
  142. .global _dpsinh
  143. _dpsinh:
  144. .global _sinh
  145. _sinh:
  146. save %sp,-96,%sp
  147. sll     %i0,1,%i4
  148. srl     %i4,21,%i4
  149. sll     %i0,11,%i2
  150. srl     %i1,21,%l3
  151. or      %i2,%l3,%i2
  152. sll     %i1,11,%i3
  153. sethi   %hi(0x80000000),%l2
  154. or      %i2,%l2,%i2
  155. and     %l2,%i0,%l2
  156. subcc   %i4,0x7ff,%g0
  157. be      Bspec          
  158. subcc   %i4,0x3fe,%g0
  159. bcc     i2             
  160. or      %g0,%i2,%o0
  161. or      %g0,%i3,%o1
  162. or      %g0,%i4,%o2
  163. or      %g0,%i2,%o3
  164. or      %g0,%i3,%o4
  165. call    _exmul
  166. or      %g0,%i4,%o5
  167. or      %g0,0,%o3
  168. sethi   %hi(sihcon),%o4
  169. call    _sigmax
  170. or %o4,%lo(sihcon),%o4
  171. or      %g0,%o0,%i5
  172. or      %g0,%o1,%l0
  173. or      %g0,%o2,%l1
  174. or      %g0,%i2,%o3
  175. or      %g0,%i3,%o4
  176. call    _exmul
  177. or      %g0,%i4,%o5
  178. or      %g0,%o0,%i2
  179. or      %g0,%o1,%i3
  180. ba      e2       
  181. or      %g0,%o2,%i4
  182. i2: or      %g0,%i2,%o0
  183. or      %g0,%i3,%o1
  184. or      %g0,%i4,%o2
  185. call    _exexp
  186. or      %g0,0,%o3
  187. or      %g0,%o0,%i2
  188. or      %g0,%o1,%i3
  189. or      %g0,%o2,%i4
  190. sethi   %hi(0x80000000),%o0
  191. or      %g0,0,%o1
  192. or      %g0,0x3ff,%o2
  193. or      %g0,%i2,%o3
  194. or      %g0,%i3,%o4
  195. call    _exdiv
  196. or      %g0,%i4,%o5
  197. or      %g0,%o0,%i5
  198. or      %g0,%o1,%l0
  199. or      %g0,%o2,%l1
  200. or      %g0,%i2,%o0
  201. or      %g0,%i3,%o1
  202. or      %g0,%i4,%o2
  203. or      %g0,%i5,%o3
  204. or      %g0,%l0,%o4
  205. call    _exsub
  206. or      %g0,%l1,%o5
  207. or      %g0,%o0,%i2
  208. or      %g0,%o1,%i3
  209. or      %g0,%o2,%i4
  210. sub     %i4,1,%i4
  211. subcc   %i4,0x7ff,%g0
  212. bcc     Bovr     
  213. NOP
  214. e2: srl     %i3,11,%i1
  215. sll     %i2,21,%l3
  216. or      %i1,%l3,%i1
  217. srl     %i2,11,%i0
  218. sethi   %hi(0xfffff),%l3
  219. or      %l3,0x3ff,%l3
  220. and     %i0,%l3,%i0
  221. sll     %i4,20,%l3
  222. or      %i0,%l3,%i0
  223. Bret: or      %i0,%l2,%i0
  224. B999: jmpl %i7+8,%g0
  225. restore %g0,0,%g0
  226. Bspec: sll     %i2,1,%l3
  227. orcc    %l3,%i3,%l3
  228. be      Bret     
  229. NOP
  230. or      %g0,0,%i1
  231. ba      Bret     
  232. sethi   %hi(0xfff80000),%i0
  233. Bovr: or      %g0,0,%i1
  234. ba      Bret     
  235. sethi   %hi(0x7ff00000),%i0
  236. .global _dptanh
  237. _dptanh:
  238. .global _tanh
  239. _tanh:
  240. save %sp,-96,%sp
  241. sll     %i0,1,%i4
  242. srl     %i4,21,%i4
  243. sll     %i0,11,%i2
  244. srl     %i1,21,%l6
  245. or      %i2,%l6,%i2
  246. sll     %i1,11,%i3
  247. sethi   %hi(0x80000000),%l5
  248. or      %i2,%l5,%i2
  249. and     %l5,%i0,%l5
  250. sub     %i4,1,%l6
  251. subcc   %l6,0x7fe,%g0
  252. bcc     Cspec          
  253. subcc   %i4,0x3fe,%g0
  254. bcc     i4             
  255. or      %g0,%i2,%o0
  256. or      %g0,%i3,%o1
  257. or      %g0,%i4,%o2
  258. or      %g0,%i2,%o3
  259. or      %g0,%i3,%o4
  260. call    _exmul
  261. or      %g0,%i4,%o5
  262. or      %g0,%o0,%l2
  263. or      %g0,%o1,%l3
  264. or      %g0,%o2,%l4
  265. or      %g0,0,%o3
  266. sethi   %hi(tahcon),%o4
  267. call    _sigmax
  268. or %o4,%lo(tahcon),%o4
  269. or      %g0,%o0,%i5
  270. or      %g0,%o1,%l0
  271. ba      e4       
  272. or      %g0,%o2,%l1
  273. i4: or      %g0,%i2,%o0
  274. or      %g0,%i3,%o1
  275. or      %g0,%i4,%o2
  276. call    _exexp
  277. or      %g0,0,%o3
  278. or      %g0,%o0,%i5
  279. or      %g0,%o1,%l0
  280. or      %g0,%o2,%l1
  281. sethi   %hi(0x80000000),%o0
  282. or      %g0,0,%o1
  283. or      %g0,0x3ff,%o2
  284. or      %g0,%i5,%o3
  285. or      %g0,%l0,%o4
  286. call    _exdiv
  287. or      %g0,%l1,%o5
  288. or      %g0,%o0,%l2
  289. or      %g0,%o1,%l3
  290. or      %g0,%o2,%l4
  291. or      %g0,%i5,%o0
  292. or      %g0,%l0,%o1
  293. or      %g0,%l1,%o2
  294. or      %g0,%l2,%o3
  295. or      %g0,%l3,%o4
  296. call    _exsub
  297. or      %g0,%l4,%o5
  298. or      %g0,%o0,%i2
  299. or      %g0,%o1,%i3
  300. or      %g0,%o2,%i4
  301. or      %g0,%i5,%o0
  302. or      %g0,%l0,%o1
  303. or      %g0,%l1,%o2
  304. or      %g0,%l2,%o3
  305. or      %g0,%l3,%o4
  306. call    _exadd
  307. or      %g0,%l4,%o5
  308. or      %g0,%o0,%i5
  309. or      %g0,%o1,%l0
  310. or      %g0,%o2,%l1
  311. e4: or      %g0,%i2,%o0
  312. or      %g0,%i3,%o1
  313. or      %g0,%i4,%o2
  314. or      %g0,%i5,%o3
  315. or      %g0,%l0,%o4
  316. call    _exdiv
  317. or      %g0,%l1,%o5
  318. or      %g0,%o0,%i2
  319. or      %g0,%o1,%i3
  320. or      %g0,%o2,%i4
  321. srl     %i3,11,%i1
  322. sll     %i2,21,%l6
  323. or      %i1,%l6,%i1
  324. srl     %i2,11,%i0
  325. sethi   %hi(0xfffff),%l6
  326. or      %l6,0x3ff,%l6
  327. and     %i0,%l6,%i0
  328. sll     %i4,20,%l6
  329. or      %i0,%l6,%i0
  330. Cret: or      %i0,%l5,%i0
  331. C999: jmpl %i7+8,%g0
  332. restore %g0,0,%g0
  333. Cspec: subcc   %i4,0,%i4
  334. be      Cret     
  335. NOP
  336. sethi   %hi(0x3ff00000),%i0
  337. sll     %i2,1,%l6
  338. orcc    %l6,%i3,%l6
  339. be      Cret     
  340. NOP
  341. or      %g0,0,%i1
  342. ba      Cret     
  343. sethi   %hi(0xfff80000),%i0
  344. ! .end