home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / CLISP-2.LHA / CLISP960530-ki.lha / ffcall / vacall / vacall-sparc.S < prev    next >
Encoding:
Text File  |  1996-04-15  |  1.7 KB  |  142 lines

  1. #ifdef UNDERSCORE
  2. #ifdef __STDC__
  3. #define C(entrypoint) _##entrypoint
  4. #else
  5. #define C(entrypoint) _/**/entrypoint
  6. #endif
  7. #else
  8. #define C(entrypoint) entrypoint
  9. #endif
  10. gcc2_compiled.:
  11. C(__gnu_compiled_c:)
  12. .text
  13.     .align 4
  14.     .global C(vacall)
  15.     .proc    020
  16. C(vacall:)
  17.     !#PROLOGUE# 0
  18.     save %sp,-144,%sp
  19.     !#PROLOGUE# 1
  20.     st %i0,[%fp+68]
  21.     st %i1,[%fp+72]
  22.     st %i2,[%fp+76]
  23.     st %i3,[%fp+80]
  24.     st %i4,[%fp+84]
  25.     st %i5,[%fp+88]
  26.     st %g0,[%fp-48]
  27.     add %fp,68,%o0
  28.     st %o0,[%fp-44]
  29.     ld [%fp+64],%o0
  30.     st %g0,[%fp-40]
  31.     st %o0,[%fp-16]
  32.     sethi %hi(C(vacall_function)),%o0
  33.     ld [%o0+%lo(C(vacall_function))],%o1
  34.     st %g0,[%fp-36]
  35.     call %o1,0
  36.     add %fp,-48,%o0
  37.     ld [%fp-36],%o0
  38.     cmp %o0,13
  39.     bgu L2
  40.     sethi %hi(L33),%o0
  41.     ld [%fp-36],%o1
  42.     or %o0,%lo(L33),%o0
  43.     sll %o1,2,%o1
  44.     ld [%o1+%o0],%o0
  45.     jmp %o0
  46.     nop
  47. L33:
  48.     .word    L2
  49.     .word    L4
  50.     .word    L5
  51.     .word    L6
  52.     .word    L7
  53.     .word    L8
  54.     .word    L17
  55.     .word    L17
  56.     .word    L17
  57.     .word    L17
  58.     .word    L13
  59.     .word    L16
  60.     .word    L17
  61.     .word    L18
  62. L4:
  63. L5:
  64.     b L2
  65.     ldsb [%fp-24],%i0
  66. L6:
  67.     b L2
  68.     ldub [%fp-24],%i0
  69. L7:
  70.     b L2
  71.     ldsh [%fp-24],%i0
  72. L8:
  73.     b L2
  74.     lduh [%fp-24],%i0
  75. L13:
  76.     ld [%fp-48],%o0
  77.     andcc %o0,16,%g0
  78.     be L14
  79.     ld [%fp-24],%f2
  80.     b L2
  81.     fstod %f2,%f0
  82. L14:
  83.     b L2
  84.     ld [%fp-24],%f0
  85. L16:
  86.     b L2
  87.     ldd [%fp-24],%f0
  88. L17:
  89.     b L2
  90.     ld [%fp-24],%i0
  91. L18:
  92.     ld [%fp-48],%o0
  93.     andcc %o0,8,%g0
  94.     be L19
  95.     ld [%fp-32],%o0
  96.     ld [%i7+8],%o1
  97.     and %o0,4095,%o0
  98.     cmp %o0,%o1
  99.     bne L2
  100.     ld [%fp-40],%i0
  101.     b L2
  102.     add %i7,4,%i7
  103. L19:
  104.     ld [%fp-48],%o0
  105.     andcc %o0,1,%g0
  106.     be L22
  107.     andcc %o0,2,%g0
  108.     b L2
  109.     ld [%fp-40],%i0
  110. L22:
  111.     be L24
  112.     ld [%fp-32],%o0
  113.     cmp %o0,2
  114.     be,a L28
  115.     ld [%fp-40],%o0
  116.     bgu L32
  117.     cmp %o0,1
  118.     be L26
  119.     ld [%fp-40],%o0
  120.     b L2
  121.     add %i7,4,%i7
  122. L32:
  123.     cmp %o0,4
  124.     be L29
  125.     ld [%fp-40],%o0
  126.     b L2
  127.     add %i7,4,%i7
  128. L26:
  129.     b L2
  130.     ldub [%o0],%i0
  131. L28:
  132.     b L2
  133.     lduh [%o0],%i0
  134. L29:
  135.     b L2
  136.     ld [%o0],%i0
  137. L24:
  138.     add %i7,4,%i7
  139. L2:
  140.     ret
  141.     restore
  142.