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

VxWorks

开发平台:

C/C++

  1. /* fphyp32.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 _fpexexp
  42. .data
  43. .align 4
  44. sihcof: .word 0x171e
  45. .word 0x68068
  46. .word 0x1111111
  47. .word 0x15555555
  48. .word 0x80000000
  49. tahcof: .word 0x1d7
  50. .word 0xffffedd8
  51. .word 0xb354
  52. .word 0xfff910a2
  53. .word 0x4559ab
  54. .word 0xfd27d27d
  55. .word 0x2aaaaaab
  56. .word 0x80000000
  57. .text
  58. .align 4
  59. .global _fpcosh
  60. _fpcosh:
  61. .global _coshf
  62. _coshf:
  63. save %sp,-96,%sp
  64. sra     %i0,23,%i2
  65. and     %i2,0xff,%i2
  66. sll     %i0,8,%i1
  67. sethi   %hi(0x80000000),%l5
  68. or      %i1,%l5,%i1
  69. or      %g0,0,%i3
  70. subcc   %i2,0xff,%g0
  71. be      Aspec          
  72. or      %g0,%i1,%o0
  73. or      %g0,%i2,%o1
  74. call    _fpexexp
  75. or      %g0,%i3,%o2
  76. orcc    %g0,%o0,%i1
  77. or      %g0,%o1,%i2
  78. be      Ainf     
  79. or      %g0,%o2,%i3
  80. sethi   %hi(0x40000000),%i4
  81. add     %i2,%i2,%l1
  82. sub     %l1,0xfe,%l1
  83. wr %i4,0,%y
  84. or %g0,0x0,%i4
  85. orcc %g0,0,%g0
  86. #if 0
  87. divscc %i4,%i1,%i4
  88. divscc %i4,%i1,%i4
  89. divscc %i4,%i1,%i4
  90. divscc %i4,%i1,%i4
  91. divscc %i4,%i1,%i4
  92. divscc %i4,%i1,%i4
  93. divscc %i4,%i1,%i4
  94. divscc %i4,%i1,%i4
  95. divscc %i4,%i1,%i4
  96. divscc %i4,%i1,%i4
  97. divscc %i4,%i1,%i4
  98. divscc %i4,%i1,%i4
  99. divscc %i4,%i1,%i4
  100. divscc %i4,%i1,%i4
  101. divscc %i4,%i1,%i4
  102. divscc %i4,%i1,%i4
  103. divscc %i4,%i1,%i4
  104. divscc %i4,%i1,%i4
  105. divscc %i4,%i1,%i4
  106. divscc %i4,%i1,%i4
  107. divscc %i4,%i1,%i4
  108. divscc %i4,%i1,%i4
  109. divscc %i4,%i1,%i4
  110. divscc %i4,%i1,%i4
  111. divscc %i4,%i1,%i4
  112. divscc %i4,%i1,%i4
  113. divscc %i4,%i1,%i4
  114. divscc %i4,%i1,%i4
  115. divscc %i4,%i1,%i4
  116. divscc %i4,%i1,%i4
  117. divscc %i4,%i1,%i4
  118. divscc %i4,%i1,%i4
  119. #else
  120. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  121. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  122. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  123. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  124. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  125. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  126. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  127. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  128. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  129. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  130. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  131. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  132. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  133. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  134. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  135. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  136. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  137. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  138. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  139. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  140. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  141. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  142. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  143. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  144. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  145. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  146. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  147. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  148. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  149. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  150. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  151. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  152. #endif
  153. subcc %l1,32,%g0
  154. bcc,a L1             
  155. or %g0,0,%i4
  156. L1: srl %i4,%l1,%i4
  157. addcc   %i1,%i4,%i1
  158. bcc     i1       
  159. NOP
  160. srl     %i1,1,%i1
  161. add     %i2,1,%i2
  162. i1: sub     %i2,1,%i2
  163. subcc   %i2,0xff,%g0
  164. bcc     Ainf     
  165. NOP
  166. sll     %i1,1,%i1
  167. srl     %i1,9,%i1
  168. sll     %i2,23,%l5
  169. or      %i1,%l5,%i1
  170. or      %g0,%i1,%i0
  171. A999: jmpl %i7+8,%g0
  172. restore %g0,0,%g0
  173. Aspec: addcc   %i1,%i1,%l5
  174. be      Ainf     
  175. NOP
  176. ba      A999     
  177. sethi   %hi(0xffc00000),%i0
  178. Ainf: ba      A999     
  179. sethi   %hi(0x7f800000),%i0
  180. .global _fpsinh
  181. _fpsinh:
  182. .global _sinhf
  183. _sinhf:
  184. save %sp,-96,%sp
  185. sra     %i0,23,%i2
  186. and     %i2,0xff,%i2
  187. sethi   %hi(0x80000000),%l2
  188. sll     %i0,8,%i1
  189. or      %i1,%l2,%i1
  190. or      %g0,0,%i3
  191. and     %l2,%i0,%l2
  192. subcc   %i2,0xff,%g0
  193. be      Bspec          
  194. subcc   %i2,0x7e,%g0
  195. bcc     i3       
  196. NOP
  197. umul %i1,%i1,%i4
  198. rd %y,%i4
  199. sethi   %hi(sihcof),%l1
  200. or %l1,%lo(sihcof),%l1
  201. or      %g0,0x7e,%l3
  202. sub     %l3,%i2,%l3
  203. sll     %l3,1,%l3
  204. subcc %l3,32,%g0
  205. bcc,a L2             
  206. or %g0,0,%i4
  207. L2: srl %i4,%l3,%i4
  208. ld      [%l1],%l5
  209. add     %l1,4,%l1
  210. b4:
  211. umul %i4,%l5,%l5
  212. rd %y,%l5
  213. ld      [%l1],%l4
  214. add     %l1,4,%l1
  215. addcc   %l5,%l4,%l5
  216. bpos    b4       
  217. NOP
  218. add     %i2,1,%i2
  219. umul %i1,%l5,%i1
  220. rd %y,%i1
  221. subcc   %i1,0,%i1
  222. ble     e3       
  223. NOP
  224. sll     %i1,1,%i1
  225. ba      e3       
  226. sub     %i2,1,%i2
  227. i3: or      %g0,%i1,%o0
  228. or      %g0,%i2,%o1
  229. call    _fpexexp
  230. or      %g0,%i3,%o2
  231. orcc    %g0,%o0,%i1
  232. or      %g0,%o1,%i2
  233. be      Binf     
  234. or      %g0,%o2,%i3
  235. sethi   %hi(0x40000000),%i4
  236. add     %i2,%i2,%l3
  237. sub     %l3,0xfe,%l3
  238. wr %i4,0,%y
  239. or %g0,0x0,%i4
  240. orcc %g0,0,%g0
  241. #if 0
  242. divscc %i4,%i1,%i4
  243. divscc %i4,%i1,%i4
  244. divscc %i4,%i1,%i4
  245. divscc %i4,%i1,%i4
  246. divscc %i4,%i1,%i4
  247. divscc %i4,%i1,%i4
  248. divscc %i4,%i1,%i4
  249. divscc %i4,%i1,%i4
  250. divscc %i4,%i1,%i4
  251. divscc %i4,%i1,%i4
  252. divscc %i4,%i1,%i4
  253. divscc %i4,%i1,%i4
  254. divscc %i4,%i1,%i4
  255. divscc %i4,%i1,%i4
  256. divscc %i4,%i1,%i4
  257. divscc %i4,%i1,%i4
  258. divscc %i4,%i1,%i4
  259. divscc %i4,%i1,%i4
  260. divscc %i4,%i1,%i4
  261. divscc %i4,%i1,%i4
  262. divscc %i4,%i1,%i4
  263. divscc %i4,%i1,%i4
  264. divscc %i4,%i1,%i4
  265. divscc %i4,%i1,%i4
  266. divscc %i4,%i1,%i4
  267. divscc %i4,%i1,%i4
  268. divscc %i4,%i1,%i4
  269. divscc %i4,%i1,%i4
  270. divscc %i4,%i1,%i4
  271. divscc %i4,%i1,%i4
  272. divscc %i4,%i1,%i4
  273. divscc %i4,%i1,%i4
  274. #else
  275. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  276. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  277. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  278. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  279. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  280. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  281. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  282. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  283. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  284. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  285. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  286. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  287. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  288. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  289. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  290. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  291. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  292. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  293. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  294. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  295. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  296. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  297. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  298. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  299. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  300. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  301. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  302. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  303. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  304. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  305. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  306. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  307. #endif
  308. subcc %l3,32,%g0
  309. bcc,a L3             
  310. or %g0,0,%i4
  311. L3: srl %i4,%l3,%i4
  312. subcc   %i1,%i4,%i1
  313. /* scan %i1,0,%l3 */
  314. SCAN | (in1 << 14) | 0 | (lo3 << 25)
  315. sll %i1,%l3,%i1
  316. subcc %i2,%l3,%i2
  317. sub     %i2,1,%i2
  318. subcc   %i2,0xff,%g0
  319. bcc     Binf     
  320. NOP
  321. e3: sll     %i1,1,%i1
  322. srl     %i1,9,%i1
  323. sll     %i2,23,%l7
  324. or      %i1,%l7,%i1
  325. or      %i1,%l2,%i0
  326. B999: jmpl %i7+8,%g0
  327. restore %g0,0,%g0
  328. Bspec: addcc   %i1,%i1,%l7
  329. be      Binf     
  330. NOP
  331. ba      B999     
  332. sethi   %hi(0xffc00000),%i0
  333. Binf: sethi   %hi(0x7f800000),%l7
  334. ba      B999     
  335. or      %l7,%l2,%i0
  336. .global _fptanh
  337. _fptanh:
  338. .global _tanhf
  339. _tanhf:
  340. save %sp,-96,%sp
  341. sra     %i0,23,%i2
  342. and     %i2,0xff,%i2
  343. sethi   %hi(0x80000000),%l1
  344. sll     %i0,8,%i1
  345. or      %i1,%l1,%i1
  346. or      %g0,0,%i3
  347. and     %l1,%i0,%l1
  348. subcc   %i2,0xff,%g0
  349. be      Cspec          
  350. subcc   %i2,0x7e,%g0
  351. bcc     i7       
  352. NOP
  353. umul %i1,%i1,%l4
  354. rd %y,%l4
  355. sethi   %hi(tahcof),%l6
  356. or %l6,%lo(tahcof),%l6
  357. or      %g0,0x7e,%l2
  358. sub     %l2,%i2,%l2
  359. sll     %l2,1,%l2
  360. subcc %l2,32,%g0
  361. bcc,a L4             
  362. or %g0,0,%l4
  363. L4: srl %l4,%l2,%l4
  364. ld      [%l6],%i4
  365. add     %l6,4,%l6
  366. b8: sra     %i4,31,%l3
  367. xor     %i4,%l3,%i4
  368. sub     %i4,%l3,%i4
  369. umul %l4,%i4,%i4
  370. rd %y,%i4
  371. xor     %i4,%l3,%i4
  372. sub     %i4,%l3,%i4
  373. ld      [%l6],%l3
  374. add     %l6,4,%l6
  375. add     %i4,%l3,%i4
  376. addcc   %l3,%l3,%l7
  377. bne     b8             
  378. subcc   %i4,0,%i4
  379. ble     i9       
  380. NOP
  381. sll     %i4,1,%i4
  382. add     %i2,1,%i2
  383. i9: ba      e7       
  384. srl     %i1,1,%l2
  385. i7: subcc   %i2,0x88,%g0
  386. bgu     Cone           
  387. or      %g0,%i1,%o0
  388. or      %g0,%i2,%o1
  389. call    _fpexexp
  390. or      %g0,%i3,%o2
  391. or      %g0,%o0,%i1
  392. or      %g0,%o1,%i2
  393. or      %g0,%o2,%i3
  394. sethi   %hi(0x40000000),%i4
  395. add     %i2,%i2,%l2
  396. sub     %l2,0xfe,%l2
  397. wr %i4,0,%y
  398. or %g0,0x0,%i4
  399. orcc %g0,0,%g0
  400. #if 0
  401. divscc %i4,%i1,%i4
  402. divscc %i4,%i1,%i4
  403. divscc %i4,%i1,%i4
  404. divscc %i4,%i1,%i4
  405. divscc %i4,%i1,%i4
  406. divscc %i4,%i1,%i4
  407. divscc %i4,%i1,%i4
  408. divscc %i4,%i1,%i4
  409. divscc %i4,%i1,%i4
  410. divscc %i4,%i1,%i4
  411. divscc %i4,%i1,%i4
  412. divscc %i4,%i1,%i4
  413. divscc %i4,%i1,%i4
  414. divscc %i4,%i1,%i4
  415. divscc %i4,%i1,%i4
  416. divscc %i4,%i1,%i4
  417. divscc %i4,%i1,%i4
  418. divscc %i4,%i1,%i4
  419. divscc %i4,%i1,%i4
  420. divscc %i4,%i1,%i4
  421. divscc %i4,%i1,%i4
  422. divscc %i4,%i1,%i4
  423. divscc %i4,%i1,%i4
  424. divscc %i4,%i1,%i4
  425. divscc %i4,%i1,%i4
  426. divscc %i4,%i1,%i4
  427. divscc %i4,%i1,%i4
  428. divscc %i4,%i1,%i4
  429. divscc %i4,%i1,%i4
  430. divscc %i4,%i1,%i4
  431. divscc %i4,%i1,%i4
  432. divscc %i4,%i1,%i4
  433. #else
  434. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  435. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  436. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  437. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  438. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  439. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  440. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  441. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  442. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  443. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  444. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  445. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  446. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  447. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  448. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  449. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  450. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  451. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  452. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  453. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  454. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  455. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  456. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  457. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  458. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  459. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  460. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  461. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  462. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  463. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  464. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  465. DIVSCC | (in4 << 14) | in1 | (in4 << 25)
  466. #endif
  467. subcc %l2,32,%g0
  468. bcc,a L5             
  469. or %g0,0,%i4
  470. L5: srl %i4,%l2,%i4
  471. or      %g0,0x7e,%i2
  472. subcc   %i1,%i4,%l2
  473. bpos    i10      
  474. NOP
  475. srl     %l2,1,%l2
  476. add     %i2,1,%i2
  477. i10: addcc   %i4,%i1,%i4
  478. bcc     e7       
  479. NOP
  480. srl     %i4,1,%i4
  481. sethi   %hi(0x80000000),%l7
  482. or      %i4,%l7,%i4
  483. sub     %i2,1,%i2
  484. e7: wr %l2,0,%y
  485. or %g0,0x0,%i1
  486. orcc %g0,0,%g0
  487. #if 0
  488. divscc %i1,%i4,%i1
  489. divscc %i1,%i4,%i1
  490. divscc %i1,%i4,%i1
  491. divscc %i1,%i4,%i1
  492. divscc %i1,%i4,%i1
  493. divscc %i1,%i4,%i1
  494. divscc %i1,%i4,%i1
  495. divscc %i1,%i4,%i1
  496. divscc %i1,%i4,%i1
  497. divscc %i1,%i4,%i1
  498. divscc %i1,%i4,%i1
  499. divscc %i1,%i4,%i1
  500. divscc %i1,%i4,%i1
  501. divscc %i1,%i4,%i1
  502. divscc %i1,%i4,%i1
  503. divscc %i1,%i4,%i1
  504. divscc %i1,%i4,%i1
  505. divscc %i1,%i4,%i1
  506. divscc %i1,%i4,%i1
  507. divscc %i1,%i4,%i1
  508. divscc %i1,%i4,%i1
  509. divscc %i1,%i4,%i1
  510. divscc %i1,%i4,%i1
  511. divscc %i1,%i4,%i1
  512. divscc %i1,%i4,%i1
  513. divscc %i1,%i4,%i1
  514. divscc %i1,%i4,%i1
  515. divscc %i1,%i4,%i1
  516. divscc %i1,%i4,%i1
  517. divscc %i1,%i4,%i1
  518. divscc %i1,%i4,%i1
  519. divscc %i1,%i4,%i1
  520. #else
  521. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  522. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  523. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  524. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  525. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  526. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  527. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  528. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  529. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  530. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  531. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  532. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  533. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  534. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  535. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  536. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  537. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  538. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  539. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  540. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  541. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  542. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  543. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  544. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  545. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  546. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  547. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  548. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  549. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  550. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  551. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  552. DIVSCC | (in1 << 14) | in4 | (in1 << 25)
  553. #endif
  554. subcc   %i1,0,%i1
  555. ble     i12      
  556. NOP
  557. sll     %i1,1,%i1
  558. sub     %i2,1,%i2
  559. i12: sll     %i1,1,%i1
  560. srl     %i1,9,%i1
  561. sll     %i2,23,%l7
  562. or      %i1,%l7,%i1
  563. or      %i1,%l1,%i0
  564. C999: jmpl %i7+8,%g0
  565. restore %g0,0,%g0
  566. Cspec: addcc   %i1,%i1,%l7
  567. be      Cone     
  568. NOP
  569. ba      C999     
  570. sethi   %hi(0xffc00000),%i0
  571. Cone: sethi   %hi(0x3f800000),%l7
  572. ba      C999     
  573. or      %l7,%l1,%i0
  574. ! .end