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

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