avcall-m68k.mit.S
上传用户:shenzhenrh
上传日期:2013-05-12
资源大小:2904k
文件大小:3k
源码类别:

信息检索与抽取

开发平台:

Unix_Linux

  1. #include "asmm68k.h"
  2. .text
  3. .even
  4. .globl C(__builtin_avcall)
  5. DECLARE_FUNCTION(__builtin_avcall)
  6. C(__builtin_avcall:)
  7. moveml #0x3030,$sp@-
  8. movel $sp@(20),$a2
  9. lea $sp@(-1024),$sp
  10. moveq #-32,$d0
  11. addl $a2@(20),$d0
  12. subl $a2,$d0
  13. asrl #2,$d0
  14. jle L4
  15. movel $sp,$a3
  16. lea $a2@(32),$a0
  17. movel $d0,$a1
  18. .even
  19. L6:
  20. movel $a0@+,$a3@+
  21. subql #1,$a1
  22. tstl $a1
  23. jne L6
  24. L4:
  25. moveq #16,$d0
  26. cmpl $a2@(12),$d0
  27. jne L8
  28. movel $a2@(8),$a1
  29. L8:
  30. movel $a2@,$a0
  31. jbsr $a0@
  32. movel $d0,$a1
  33. movel $d1,$a3
  34. movel $a2@(12),$d2
  35. moveq #1,$d1
  36. cmpl $d2,$d1
  37. jeq L10
  38. tstl $d2
  39. jeq L69
  40. moveq #2,$d3
  41. cmpl $d2,$d3
  42. jeq L70
  43. moveq #3,$d3
  44. cmpl $d2,$d3
  45. jeq L70
  46. moveq #4,$d3
  47. cmpl $d2,$d3
  48. jne L17
  49. L70:
  50. movel $a2@(8),$a0
  51. movew $a1,$d0
  52. moveb $d0,$a0@
  53. jra L10
  54. .even
  55. L17:
  56. moveq #5,$d3
  57. cmpl $d2,$d3
  58. jeq L71
  59. moveq #6,$d3
  60. cmpl $d2,$d3
  61. jeq L71
  62. moveq #7,$d3
  63. cmpl $d2,$d3
  64. jeq L69
  65. moveq #8,$d3
  66. cmpl $d2,$d3
  67. jeq L69
  68. moveq #9,$d3
  69. cmpl $d2,$d3
  70. jeq L69
  71. moveq #10,$d3
  72. cmpl $d2,$d3
  73. jeq L69
  74. movel $a2@(12),$a0
  75. moveq #-11,$d2
  76. addl $a0,$d2
  77. moveq #1,$d3
  78. cmpl $d2,$d3
  79. jcc L72
  80. moveq #13,$d2
  81. cmpl $a0,$d2
  82. jne L33
  83. movel $a2@(4),$d2
  84. btst #6,$d2
  85. jeq L34
  86. movel $a2@(8),$a0
  87. fmoves $fp0,$a0@
  88. jra L10
  89. .even
  90. L34:
  91. btst #5,$d2
  92. jeq L36
  93. movel $a2@(8),$a0
  94. movel $d1,$sp@-
  95. movel $d0,$sp@-
  96. fmoved $sp@+,$fp0
  97. fmoves $fp0,$a0@
  98. jra L10
  99. .even
  100. L36:
  101. movel $a2@(8),$a0
  102. movel $d0,$a0@
  103. jra L10
  104. .even
  105. L33:
  106. moveq #14,$d2
  107. cmpl $a0,$d2
  108. jne L39
  109. btst #6,$a2@(7)
  110. jeq L40
  111. movel $a2@(8),$a0
  112. fmoved $fp0,$a0@
  113. jra L10
  114. .even
  115. L40:
  116. movel $a2@(8),$a0
  117. movel $d0,$a0@
  118. movel $d1,$a0@(4)
  119. jra L10
  120. .even
  121. L39:
  122. moveq #15,$d3
  123. cmpl $a0,$d3
  124. jeq L69
  125. moveq #16,$d0
  126. cmpl $a0,$d0
  127. jne L10
  128. movel $a2@(4),$d0
  129. btst #9,$d0
  130. jeq L46
  131. movel $a2@(16),$d1
  132. moveq #1,$d2
  133. cmpl $d1,$d2
  134. jne L47
  135. movel $a2@(8),$a0
  136. movew $a1,$d3
  137. moveb $d3,$a0@
  138. jra L10
  139. .even
  140. L47:
  141. moveq #2,$d2
  142. cmpl $d1,$d2
  143. jne L50
  144. L71:
  145. movel $a2@(8),$a0
  146. movew $a1,$a0@
  147. jra L10
  148. .even
  149. L50:
  150. moveq #4,$d3
  151. cmpl $d1,$d3
  152. jne L52
  153. L69:
  154. movel $a2@(8),$a0
  155. movel $a1,$a0@
  156. jra L10
  157. .even
  158. L52:
  159. moveq #8,$d2
  160. cmpl $d1,$d2
  161. jne L46
  162. L72:
  163. movel $a2@(8),$a0
  164. movel $a1,$a0@
  165. movel $a2@(8),$a0
  166. movel $a3,$a0@(4)
  167. jra L10
  168. .even
  169. L46:
  170. btst #0,$d0
  171. jeq L10
  172. movel $a2@(16),$d0
  173. moveq #1,$d3
  174. cmpl $d0,$d3
  175. jne L56
  176. movel $a2@(8),$a0
  177. moveb $a1@,$a0@
  178. jra L10
  179. .even
  180. L56:
  181. moveq #2,$d1
  182. cmpl $d0,$d1
  183. jne L58
  184. movel $a2@(8),$a0
  185. movew $a1@,$a0@
  186. jra L10
  187. .even
  188. L58:
  189. moveq #4,$d2
  190. cmpl $d0,$d2
  191. jne L60
  192. movel $a2@(8),$a0
  193. movel $a1@,$a0@
  194. jra L10
  195. .even
  196. L60:
  197. moveq #8,$d3
  198. cmpl $d0,$d3
  199. jne L62
  200. movel $a2@(8),$a0
  201. movel $a1@,$a0@
  202. movel $a2@(8),$a0
  203. movel $a1@(4),$a0@(4)
  204. jra L10
  205. .even
  206. L62:
  207. addql #3,$d0
  208. lsrl #2,$d0
  209. subql #1,$d0
  210. jmi L10
  211. lea $a1@($d0:l:4),$a1
  212. .even
  213. L66:
  214. movel $a2@(8),$a0
  215. movel $a1@,$a0@($d0:l:4)
  216. subql #4,$a1
  217. dbra $d0,L66
  218. clrw $d0
  219. subql #1,$d0
  220. jcc L66
  221. L10:
  222. lea $sp@(1024),$sp
  223. clrl $d0
  224. moveml $sp@+,#0xc0c
  225. rts