home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / CLISP-2.LHA / CLISP960530-ki.lha / ffcall / avcall / avcall-m68k-amiga.s < prev    next >
Encoding:
Text File  |  1996-06-20  |  2.3 KB  |  187 lines

  1. #NO_APP
  2. gcc2_compiled.:
  3. ___gnu_compiled_c:
  4. .text
  5.     .even
  6. .globl ___builtin_avcall
  7. ___builtin_avcall:
  8.     moveml #0x3030,sp@-
  9.     movel sp@(20),a1
  10.     addw #-1076,sp
  11.     movel sp,a2
  12.     moveq #-32,d0
  13.     addl a1@(20),d0
  14.     subl a1,d0
  15.     asrl #2,d0
  16.     clrw d1
  17.     tstl d0
  18.     jle L3
  19. L5:
  20.     movew d1,a0
  21.     movel a1@(32,a0:l:4),a2@(a0:l:4)
  22.     addqw #1,d1
  23.     movew d1,a0
  24.     cmpl a0,d0
  25.     jgt L5
  26. L3:
  27.     moveq #14,d3
  28.     cmpl a1@(12),d3
  29.     jne L6
  30.     movel a1@(8),a1@(1092)
  31. L6:
  32. #APP
  33.     moveml #32764,sp@(1024)            | 0x7ffc == a6-a0/d7-d2
  34.     movel #L7,sp@-
  35.     movel a1@,sp@-
  36.     moveml a1@(1056),#0x7fff        | 0x7fff == a6-a0/d7-d0
  37.     rts
  38. #NO_APP
  39. L7:
  40. #APP
  41.     moveml sp@(1024),#32764
  42. #NO_APP
  43.     addw #1076,sp
  44.     moveq #14,d3
  45.     cmpl a1@(12),d3
  46.     jcs L8
  47.     movel a1@(12),d2
  48. LI49:
  49.     movew pc@(L49-LI49-2:b,d2:l:2),d2
  50.     jmp pc@(2,d2:w)
  51. L49:
  52.     .word L43-L49
  53.     .word L8-L49
  54.     .word L41-L49
  55.     .word L41-L49
  56.     .word L41-L49
  57.     .word L42-L49
  58.     .word L42-L49
  59.     .word L43-L49
  60.     .word L43-L49
  61.     .word L43-L49
  62.     .word L43-L49
  63.     .word L20-L49
  64.     .word L23-L49
  65.     .word L43-L49
  66.     .word L25-L49
  67. L20:
  68.     btst #4,a1@(7)
  69.     jeq L21
  70.     movel a1@(8),a0
  71.     movel d1,sp@-
  72.     movel d0,sp@-
  73.     fmoved sp@+,fp0
  74.     fmoves fp0,a0@
  75.     jra L8
  76. L21:
  77.     movel a1@(8),a0
  78.     movel d0,a0@
  79.     jra L8
  80. L23:
  81.     movel a1@(8),a0
  82.     movel d0,a0@
  83.     movel d1,a0@(4)
  84.     jra L8
  85. L25:
  86.     btst #0,a1@(7)
  87.     jeq L26
  88.     movel a1@(16),d1
  89.     moveq #2,d3
  90.     cmpl d1,d3
  91.     jeq L29
  92.     jcs L37
  93.     moveq #1,d3
  94.     cmpl d1,d3
  95.     jeq L28
  96.     jra L32
  97. L37:
  98.     moveq #4,d3
  99.     cmpl d1,d3
  100.     jeq L30
  101.     moveq #8,d3
  102.     cmpl d1,d3
  103.     jeq L31
  104.     jra L32
  105. L28:
  106.     movel a1@(8),a1
  107.     movel d0,a0
  108.     moveb a0@,a1@
  109.     jra L8
  110. L29:
  111.     movel a1@(8),a1
  112.     movel d0,a0
  113.     movew a0@,a1@
  114.     jra L8
  115. L30:
  116.     movel a1@(8),a1
  117.     movel d0,a0
  118.     movel a0@,a1@
  119.     jra L8
  120. L31:
  121.     movel a1@(8),a0
  122.     movel d0,a2
  123.     movel a2@,a0@
  124.     movel a1@(8),a1
  125.     movew #4,a0
  126.     movel a0@(a2:l),a1@(4)
  127.     jra L8
  128. L32:
  129.     movel a1@(16),d1
  130.     addql #3,d1
  131.     movel d1,d2
  132.     lsrl #2,d2
  133.     subql #1,d2
  134.     jmi L8
  135. L35:
  136.     movel a1@(8),a0
  137.     movel d2,d1
  138.     asll #2,d1
  139.     movel d1,a3
  140.     movel a3@(d0:l),a0@(d2:l:4)
  141.     dbra d2,L35
  142.     clrw d2
  143.     subql #1,d2
  144.     jcc L35
  145.     jra L8
  146. L26:
  147.     btst #0,a1@(6)
  148.     jeq L8
  149.     movel a1@(16),d2
  150.     moveq #2,d3
  151.     cmpl d2,d3
  152.     jeq L42
  153.     jcs L47
  154.     moveq #1,d3
  155.     cmpl d2,d3
  156.     jeq L41
  157.     jra L8
  158. L47:
  159.     moveq #4,d3
  160.     cmpl d2,d3
  161.     jeq L43
  162.     moveq #8,d3
  163.     cmpl d2,d3
  164.     jeq L44
  165.     jra L8
  166. L41:
  167.     movel a1@(8),a0
  168.     moveb d0,a0@
  169.     jra L8
  170. L42:
  171.     movel a1@(8),a0
  172.     movew d0,a0@
  173.     jra L8
  174. L43:
  175.     movel a1@(8),a0
  176.     movel d0,a0@
  177.     jra L8
  178. L44:
  179.     movel a1@(8),a0
  180.     movel d0,a0@
  181.     movel a1@(8),a0
  182.     movel d1,a0@(4)
  183. L8:
  184.     clrl d0
  185.     moveml sp@+,#0xc0c
  186.     rts
  187.