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

VxWorks

开发平台:

C/C++

  1. /* exp32.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 _exmul
  42. .global _sigmax
  43. .data
  44. .align 4
  45. expcon: .word 0xe1deb28,0x0
  46. .word 0xf465639b,0x0
  47. .word 0x267a8ac6,0xf
  48. .word 0x929e9caf,0xda
  49. .word 0x111d2e4,0xb16
  50. .word 0xff1622c3,0x7ff2
  51. .word 0x4be1b1e2,0x50c24
  52. .word 0xcf14ce62,0x2bb0ff
  53. .word 0xfba4e773,0x13b2ab6
  54. .word 0xc1282fe3,0x71ac235
  55. .word 0x82c58ea9,0x1ebfbdff
  56. .word 0xe8e7bcd6,0x58b90bfb
  57. .word 0x0,0x80000000
  58. .text
  59. .align 4
  60. .global _exexp
  61. _exexp:
  62. save %sp,-96,%sp
  63. sra     %i3,31,%i4
  64. sethi   %hi(0xb8aa3b29),%o0
  65. or      %o0,0x329,%o0
  66. sethi   %hi(0x5c17f0bc),%o1
  67. or      %o1,0xbc,%o1
  68. or      %g0,0x3ff,%o2
  69. or      %g0,%i0,%o3
  70. or      %g0,%i1,%o4
  71. call    _exmul
  72. or      %g0,%i2,%o5
  73. or      %g0,%o0,%l2
  74. or      %g0,%o1,%l3
  75. or      %g0,%o2,%l4
  76. or      %g0,0,%i5
  77. sub     %l4,0x3fe,%l0
  78. subcc   %l0,0xf,%g0
  79. bcs     b2             
  80. subcc   %l0,0,%l0
  81. bg      Aovr     
  82. NOP
  83. ba,a    Alab3    
  84. b2: subcc   %l0,0,%l0
  85. be      i2       
  86. sub     %l0,1,%l0
  87. addcc   %l3,%l3,%l3
  88. addxcc  %l2,%l2,%l2
  89. addx    %i5,%i5,%i5
  90. ba      b2       
  91. sub     %l4,1,%l4
  92. i2: subcc   %l2,0,%l2
  93. bpos    Alab3    
  94. NOP
  95. subcc   %g0,%l3,%l3
  96. subx    %g0,%l2,%l2
  97. sethi   %hi(0x80000000),%l5
  98. xor     %i3,%l5,%i3
  99. add     %i5,1,%i5
  100. Alab3: or      %g0,%l2,%o0
  101. or      %g0,%l3,%o1
  102. or      %g0,%l4,%o2
  103. or      %g0,%i3,%o3
  104. sethi   %hi(expcon),%o4
  105. call    _sigmax
  106. or %o4,%lo(expcon),%o4
  107. or      %g0,%o0,%l2
  108. or      %g0,%o1,%l3
  109. or      %g0,%o2,%l4
  110. xor     %i5,%i4,%i5
  111. sub     %i5,%i4,%i5
  112. add     %l4,%i5,%l4
  113. Aret: or      %g0,%l2,%i0
  114. or      %g0,%l3,%i1
  115. or      %g0,%l4,%i2
  116. A999: jmpl %i7+8,%g0
  117. restore %g0,0,%g0
  118. Aovr: or      %g0,0,%l3
  119. subcc   %i3,0,%i3
  120. be      i4       
  121. NOP
  122. or      %g0,0,%l4
  123. ba      Aret     
  124. or      %g0,%l4,%l2
  125. i4: sethi   %hi(0x80000000),%l2
  126. sethi   %hi(0x7fff),%l4
  127. ba      Aret     
  128. or      %l4,0x3ff,%l4
  129. .global _dpexp
  130. _dpexp:
  131. .global _exp
  132. _exp:
  133. save %sp,-96,%sp
  134. sll     %i0,1,%i4
  135. srl     %i4,21,%i4
  136. sll     %i0,11,%i2
  137. srl     %i1,21,%l0
  138. or      %i2,%l0,%i2
  139. sll     %i1,11,%i3
  140. sethi   %hi(0x80000000),%i5
  141. or      %i2,%i5,%i2
  142. sub     %i4,1,%l0
  143. subcc   %l0,0x7fe,%g0
  144. bcc     Bspec          
  145. or      %g0,%i2,%o0
  146. or      %g0,%i3,%o1
  147. or      %g0,%i4,%o2
  148. call    _exexp
  149. and     %i0,%i5,%o3
  150. or      %g0,%o0,%i2
  151. or      %g0,%o1,%i3
  152. or      %g0,%o2,%i4
  153. sub     %i4,1,%l0
  154. subcc   %l0,0x7fe,%g0
  155. bcc     Bundove  
  156. NOP
  157. srl     %i3,11,%i1
  158. sll     %i2,21,%l0
  159. or      %i1,%l0,%i1
  160. srl     %i2,11,%i0
  161. sethi   %hi(0xfffff),%l0
  162. or      %l0,0x3ff,%l0
  163. and     %i0,%l0,%i0
  164. sll     %i4,20,%l0
  165. or      %i0,%l0,%i0
  166. Bret:
  167. B999: jmpl %i7+8,%g0
  168. restore %g0,0,%g0
  169. Bspec: subcc   %i4,0,%i4
  170. be      Bone           
  171. sll     %i2,1,%l0
  172. orcc    %l0,%i3,%l0
  173. bne     Bnan           
  174. subcc   %i0,0,%i0
  175. bpos    Binf     
  176. NOP
  177. or      %g0,0,%i1
  178. ba      Bret     
  179. or      %g0,%i1,%i0
  180. Binf: sethi   %hi(0x7ff00000),%i0
  181. ba      Bret     
  182. or      %g0,0,%i1
  183. Bnan: sethi   %hi(0xfff80000),%i0
  184. ba      Bret     
  185. or      %g0,0,%i1
  186. Bone: sethi   %hi(0x3ff00000),%i0
  187. ba      Bret     
  188. or      %g0,0,%i1
  189. Bundove:
  190. subcc   %i4,0,%i4
  191. bg      Binf     
  192. NOP
  193. or      %g0,0xc,%i5
  194. sub     %i5,%i4,%i5
  195. L1: subcc %i5,32,%g0
  196. bcs L2             
  197. subcc %g0,%i5,%i4
  198. sub %i5,32,%i5
  199. orcc %i2,0,%i3
  200. bne L1             
  201. or %g0,0,%i2
  202. L2: be L3             
  203. sll %i2,%i4,%i4
  204. srl %i3,%i5,%i3
  205. srl %i2,%i5,%i2
  206. or %i3,%i4,%i3
  207. L3: or      %g0,%i2,%i0
  208. ba      Bret     
  209. or      %g0,%i3,%i1
  210. ! .end