home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / CLISP-2.LHA / CLISP960530-di.lha / diffs-ffi-14.8.96-jch < prev    next >
Encoding:
Text File  |  1996-08-15  |  16.6 KB  |  719 lines

  1. Only in dh0:source/clisptmp/ffcall/autoconf: CVS
  2. Only in ffcall/avcall: avcall-m68k-amiga-orig.c
  3. diff -rc2 dh0:source/clisptmp/ffcall/avcall/avcall-m68k-amiga.c ffcall/avcall/avcall-m68k-amiga.c
  4. *** dh0:source/clisptmp/ffcall/avcall/avcall-m68k-amiga.c    Mon Apr 15 16:25:42 1996
  5. --- ffcall/avcall/avcall-m68k-amiga.c    Thu Jun 20 23:04:44 1996
  6. ***************
  7. *** 33,40 ****
  8.     register variables, or use the assembler version.
  9.     ----------------------------------------------------------------------*/
  10. ! #include "avcall.h.in"
  11.   
  12.   #define RETURN(TYPE,VAL)    (*(TYPE*)l->raddr = (TYPE)(VAL))
  13.   
  14.   int
  15.   __builtin_avcall(av_alist* l)
  16. --- 33,43 ----
  17.     register variables, or use the assembler version.
  18.     ----------------------------------------------------------------------*/
  19. ! #include "avcall.h"
  20.   
  21.   #define RETURN(TYPE,VAL)    (*(TYPE*)l->raddr = (TYPE)(VAL))
  22.   
  23. + #define NUM_SAVED_REGS    (6+7)    /* save d2-d7/a0-a6 */
  24. + #define SAVED_REGS_MASK 0x7ffc
  25.   int
  26.   __builtin_avcall(av_alist* l)
  27. ***************
  28. *** 47,60 ****
  29.     register double    dret    __asm__("d0");    /* d0,d1 */
  30.   
  31. !   __avword regspace[3+4];        /* temp space for saving registers */
  32. !   __avword space[__AV_ALIST_WORDS];    /* space for callee's stack frame */
  33.     __avword* argframe = sp;        /* stack offset for argument list */
  34.     int arglen = l->aptr - l->args;
  35. !   int i;
  36.   
  37.     for (i = 0; i < arglen; i++)        /* push function args onto stack */
  38.       argframe[i] = l->args[i];
  39.   
  40. !   if (l->rtype == __AVstruct)        /* push struct return address */
  41.       l->regargs[8+1] = (__avword)(l->raddr);
  42.   
  43. --- 50,66 ----
  44.     register double    dret    __asm__("d0");    /* d0,d1 */
  45.   
  46. !   /* space for callee's stack frame and temp space for saving registers */
  47. !   sp -= __AV_ALIST_WORDS+NUM_SAVED_REGS;
  48. !   #define regspace0       sp[__AV_ALIST_WORDS]    /* stack offset for saved registers */
  49. !  {
  50.     __avword* argframe = sp;        /* stack offset for argument list */
  51.     int arglen = l->aptr - l->args;
  52. !   short i;
  53.   
  54.     for (i = 0; i < arglen; i++)        /* push function args onto stack */
  55.       argframe[i] = l->args[i];
  56. +  }
  57.   
  58. !   if (l->rtype == __AVstruct)        /* push struct return address into a1 */
  59.       l->regargs[8+1] = (__avword)(l->raddr);
  60.   
  61. ***************
  62. *** 62,67 ****
  63.      * they are clobbered by the big moveml below.
  64.      */
  65. !   __asm__("moveml #x470f,%0" /* 0x470f == d0-d3/a0-a2/a6 */
  66. !           : "=m" (regspace[0]) : );
  67.   
  68.     __asm__("movel %0,sp@-" : : "g" (&&return_here)); /* prepare function call */
  69. --- 68,73 ----
  70.      * they are clobbered by the big moveml below.
  71.      */
  72. !   __asm__("moveml %1,%0            | 0x7ffc == a6-a0/d7-d2"
  73. !           : "=m" (regspace0) : "n" (SAVED_REGS_MASK));
  74.   
  75.     __asm__("movel %0,sp@-" : : "g" (&&return_here)); /* prepare function call */
  76. ***************
  77. *** 69,87 ****
  78.   
  79.                       /* put some arguments into registers */
  80. !   __asm__("moveml %0,#0x7fff" /* 0x7fff == d0-d7/a0-a6 */
  81. !           :
  82. !           : "m" (l->regargs[0])
  83. !           : /*"d0","d1","d2","d3",*/"d4","d5","d6","d7",/*"a0","a1","a2",*/"a3","a4","a5"/*,"a6"*/
  84. !         /* This long clobber list ensures that the function prologue
  85. !          * contains a                 "moveml #0x3f3e,sp@-"  d2-d7/a2-a6
  86. !          * and the epilogue contains  "moveml sp@+,#0x7cfc"  d2-d7/a2-a6
  87. !          */
  88.            );
  89.   
  90. !   __asm__("rts");        /* call function */
  91. !   return_here:            /* function returns here */
  92.   
  93. !   __asm__("moveml %0,#x470f" /* 0x470f == d0-d3/a0-a2/a6 */
  94. !           : : "m" (regspace[0]) );    /* restore some registers */
  95.   
  96.     switch (l->rtype)            /* save return value */
  97. --- 75,89 ----
  98.   
  99.                       /* put some arguments into registers */
  100. !   __asm__("moveml %0,#0x7fff        | 0x7fff == a6-a0/d7-d0"
  101. !           : : "m" (l->regargs[0])    /* don't set clobber list as we restore ourselves */
  102.            );
  103.   
  104. !   __asm__("rts" : "=d" (iret) :  : "d1" );    /* call function */
  105. !   return_here:                /* function returns here */
  106. !   __asm__("moveml %0,%1"        /* restore all registers */
  107. !           : : "m" (regspace0), "n" (SAVED_REGS_MASK) );
  108.   
  109. !   sp += __AV_ALIST_WORDS+NUM_SAVED_REGS;    /* restore stack pointer */
  110.   
  111.     switch (l->rtype)            /* save return value */
  112. diff -rc2 dh0:source/clisptmp/ffcall/avcall/avcall-m68k-amiga.s ffcall/avcall/avcall-m68k-amiga.s
  113. *** dh0:source/clisptmp/ffcall/avcall/avcall-m68k-amiga.s    Mon Apr 15 16:25:42 1996
  114. --- ffcall/avcall/avcall-m68k-amiga.s    Thu Jun 20 23:05:11 1996
  115. ***************
  116. *** 6,72 ****
  117.   .globl ___builtin_avcall
  118.   ___builtin_avcall:
  119. !     moveml #0x3f3e,sp@-
  120. !     addw #-1056,sp
  121. !     movel sp@(1104),a6
  122. !     moveq #-32,d2
  123. !     addl a6@(20),d2
  124. !     subl a6,d2
  125. !     asrl #2,d2
  126. !     moveq #0,d4
  127. !     cmpl d4,d2
  128.       jle L3
  129. -     movel sp,a0
  130. -     movel a6,a1
  131.   L5:
  132. !     movel a1@(32),a0@+
  133. !     addqw #4,a1
  134. !     addql #1,d4
  135. !     cmpl d4,d2
  136.       jgt L5
  137.   L3:
  138.       moveq #14,d3
  139. !     cmpl a6@(12),d3
  140. !     jne L7
  141. !     movel a6@(8),a6@(1092)
  142. ! L7:
  143.   #APP
  144. !     moveml #x470f,sp@(1068)
  145. !     movel #L8,sp@-
  146. !     movel a6@,sp@-
  147. !     moveml a6@(1056),#0x7fff
  148.       rts
  149.   #NO_APP
  150. ! L8:
  151.   #APP
  152. !     moveml sp@(1068),#x470f
  153.   #NO_APP
  154.       moveq #14,d3
  155. !     cmpl a6@(12),d3
  156. !     jcs L9
  157. !     movel a6@(12),d2
  158. !     addl d2,d2
  159. ! LI51:
  160. !     movew pc@(L51-LI51-2:b,d2:l),d2
  161.       jmp pc@(2,d2:w)
  162. ! L51:
  163. !     .word L45-L51
  164. !     .word L9-L51
  165. !     .word L43-L51
  166. !     .word L43-L51
  167. !     .word L43-L51
  168. !     .word L44-L51
  169. !     .word L44-L51
  170. !     .word L45-L51
  171. !     .word L45-L51
  172. !     .word L45-L51
  173. !     .word L45-L51
  174. !     .word L21-L51
  175. !     .word L24-L51
  176. !     .word L45-L51
  177. !     .word L26-L51
  178. ! L21:
  179. !     btst #4,a6@(7)
  180. !     jeq L22
  181. !     movel a6@(8),a0
  182.       movel d1,sp@-
  183.       movel d0,sp@-
  184. --- 6,72 ----
  185.   .globl ___builtin_avcall
  186.   ___builtin_avcall:
  187. !     moveml #0x3030,sp@-
  188. !     movel sp@(20),a1
  189. !     addw #-1076,sp
  190. !     movel sp,a2
  191. !     moveq #-32,d0
  192. !     addl a1@(20),d0
  193. !     subl a1,d0
  194. !     asrl #2,d0
  195. !     clrw d1
  196. !     tstl d0
  197.       jle L3
  198.   L5:
  199. !     movew d1,a0
  200. !     movel a1@(32,a0:l:4),a2@(a0:l:4)
  201. !     addqw #1,d1
  202. !     movew d1,a0
  203. !     cmpl a0,d0
  204.       jgt L5
  205.   L3:
  206.       moveq #14,d3
  207. !     cmpl a1@(12),d3
  208. !     jne L6
  209. !     movel a1@(8),a1@(1092)
  210. ! L6:
  211.   #APP
  212. !     moveml #32764,sp@(1024)            | 0x7ffc == a6-a0/d7-d2
  213. !     movel #L7,sp@-
  214. !     movel a1@,sp@-
  215. !     moveml a1@(1056),#0x7fff        | 0x7fff == a6-a0/d7-d0
  216.       rts
  217.   #NO_APP
  218. ! L7:
  219.   #APP
  220. !     moveml sp@(1024),#32764
  221.   #NO_APP
  222. +     addw #1076,sp
  223.       moveq #14,d3
  224. !     cmpl a1@(12),d3
  225. !     jcs L8
  226. !     movel a1@(12),d2
  227. ! LI49:
  228. !     movew pc@(L49-LI49-2:b,d2:l:2),d2
  229.       jmp pc@(2,d2:w)
  230. ! L49:
  231. !     .word L43-L49
  232. !     .word L8-L49
  233. !     .word L41-L49
  234. !     .word L41-L49
  235. !     .word L41-L49
  236. !     .word L42-L49
  237. !     .word L42-L49
  238. !     .word L43-L49
  239. !     .word L43-L49
  240. !     .word L43-L49
  241. !     .word L43-L49
  242. !     .word L20-L49
  243. !     .word L23-L49
  244. !     .word L43-L49
  245. !     .word L25-L49
  246. ! L20:
  247. !     btst #4,a1@(7)
  248. !     jeq L21
  249. !     movel a1@(8),a0
  250.       movel d1,sp@-
  251.       movel d0,sp@-
  252. ***************
  253. *** 73,131 ****
  254.       fmoved sp@+,fp0
  255.       fmoves fp0,a0@
  256. !     jra L9
  257. ! L22:
  258. !     movel a6@(8),a0
  259.       movel d0,a0@
  260. !     jra L9
  261. ! L24:
  262. !     movel a6@(8),a0
  263.       movel d0,a0@
  264.       movel d1,a0@(4)
  265. !     jra L9
  266. ! L26:
  267. !     btst #0,a6@(7)
  268. !     jeq L27
  269. !     movel a6@(16),d1
  270.       moveq #2,d3
  271.       cmpl d1,d3
  272. !     jeq L30
  273. !     jcs L39
  274.       moveq #1,d3
  275.       cmpl d1,d3
  276. !     jeq L29
  277. !     jra L33
  278. ! L39:
  279.       moveq #4,d3
  280.       cmpl d1,d3
  281. !     jeq L31
  282.       moveq #8,d3
  283.       cmpl d1,d3
  284. !     jeq L32
  285. !     jra L33
  286. ! L29:
  287. !     movel a6@(8),a1
  288.       movel d0,a0
  289.       moveb a0@,a1@
  290. !     jra L9
  291. ! L30:
  292. !     movel a6@(8),a1
  293.       movel d0,a0
  294.       movew a0@,a1@
  295. !     jra L9
  296. ! L31:
  297. !     movel a6@(8),a1
  298.       movel d0,a0
  299.       movel a0@,a1@
  300. !     jra L9
  301. ! L32:
  302. !     movel a6@(8),a0
  303.       movel d0,a2
  304.       movel a2@,a0@
  305. !     movel a6@(8),a1
  306.       movew #4,a0
  307.       movel a0@(a2:l),a1@(4)
  308. !     jra L9
  309. ! L33:
  310. !     movel a6@(16),d1
  311.       addql #3,d1
  312.       movel d1,d2
  313. --- 73,131 ----
  314.       fmoved sp@+,fp0
  315.       fmoves fp0,a0@
  316. !     jra L8
  317. ! L21:
  318. !     movel a1@(8),a0
  319.       movel d0,a0@
  320. !     jra L8
  321. ! L23:
  322. !     movel a1@(8),a0
  323.       movel d0,a0@
  324.       movel d1,a0@(4)
  325. !     jra L8
  326. ! L25:
  327. !     btst #0,a1@(7)
  328. !     jeq L26
  329. !     movel a1@(16),d1
  330.       moveq #2,d3
  331.       cmpl d1,d3
  332. !     jeq L29
  333. !     jcs L37
  334.       moveq #1,d3
  335.       cmpl d1,d3
  336. !     jeq L28
  337. !     jra L32
  338. ! L37:
  339.       moveq #4,d3
  340.       cmpl d1,d3
  341. !     jeq L30
  342.       moveq #8,d3
  343.       cmpl d1,d3
  344. !     jeq L31
  345. !     jra L32
  346. ! L28:
  347. !     movel a1@(8),a1
  348.       movel d0,a0
  349.       moveb a0@,a1@
  350. !     jra L8
  351. ! L29:
  352. !     movel a1@(8),a1
  353.       movel d0,a0
  354.       movew a0@,a1@
  355. !     jra L8
  356. ! L30:
  357. !     movel a1@(8),a1
  358.       movel d0,a0
  359.       movel a0@,a1@
  360. !     jra L8
  361. ! L31:
  362. !     movel a1@(8),a0
  363.       movel d0,a2
  364.       movel a2@,a0@
  365. !     movel a1@(8),a1
  366.       movew #4,a0
  367.       movel a0@(a2:l),a1@(4)
  368. !     jra L8
  369. ! L32:
  370. !     movel a1@(16),d1
  371.       addql #3,d1
  372.       movel d1,d2
  373. ***************
  374. *** 132,187 ****
  375.       lsrl #2,d2
  376.       subql #1,d2
  377. !     jmi L9
  378. ! L36:
  379. !     movel a6@(8),a0
  380.       movel d2,d1
  381.       asll #2,d1
  382. !     movel d1,a2
  383. !     movel a2@(d0:l),a0@(d1:l)
  384. !     dbra d2,L36
  385.       clrw d2
  386.       subql #1,d2
  387. !     jcc L36
  388. !     jra L9
  389. ! L27:
  390. !     btst #0,a6@(6)
  391. !     jeq L9
  392. !     movel a6@(16),d2
  393.       moveq #2,d3
  394.       cmpl d2,d3
  395. !     jeq L44
  396. !     jcs L49
  397.       moveq #1,d3
  398.       cmpl d2,d3
  399. !     jeq L43
  400. !     jra L9
  401. ! L49:
  402.       moveq #4,d3
  403.       cmpl d2,d3
  404. !     jeq L45
  405.       moveq #8,d3
  406.       cmpl d2,d3
  407. !     jeq L46
  408. !     jra L9
  409. ! L43:
  410. !     movel a6@(8),a0
  411.       moveb d0,a0@
  412. !     jra L9
  413. ! L44:
  414. !     movel a6@(8),a0
  415.       movew d0,a0@
  416. !     jra L9
  417. ! L45:
  418. !     movel a6@(8),a0
  419.       movel d0,a0@
  420. !     jra L9
  421. ! L46:
  422. !     movel a6@(8),a0
  423.       movel d0,a0@
  424. !     movel a6@(8),a0
  425.       movel d1,a0@(4)
  426. ! L9:
  427. !     moveq #0,d0
  428. !     addw #1056,sp
  429. !     moveml sp@+,#0x7cfc
  430.       rts
  431. --- 132,186 ----
  432.       lsrl #2,d2
  433.       subql #1,d2
  434. !     jmi L8
  435. ! L35:
  436. !     movel a1@(8),a0
  437.       movel d2,d1
  438.       asll #2,d1
  439. !     movel d1,a3
  440. !     movel a3@(d0:l),a0@(d2:l:4)
  441. !     dbra d2,L35
  442.       clrw d2
  443.       subql #1,d2
  444. !     jcc L35
  445. !     jra L8
  446. ! L26:
  447. !     btst #0,a1@(6)
  448. !     jeq L8
  449. !     movel a1@(16),d2
  450.       moveq #2,d3
  451.       cmpl d2,d3
  452. !     jeq L42
  453. !     jcs L47
  454.       moveq #1,d3
  455.       cmpl d2,d3
  456. !     jeq L41
  457. !     jra L8
  458. ! L47:
  459.       moveq #4,d3
  460.       cmpl d2,d3
  461. !     jeq L43
  462.       moveq #8,d3
  463.       cmpl d2,d3
  464. !     jeq L44
  465. !     jra L8
  466. ! L41:
  467. !     movel a1@(8),a0
  468.       moveb d0,a0@
  469. !     jra L8
  470. ! L42:
  471. !     movel a1@(8),a0
  472.       movew d0,a0@
  473. !     jra L8
  474. ! L43:
  475. !     movel a1@(8),a0
  476.       movel d0,a0@
  477. !     jra L8
  478. ! L44:
  479. !     movel a1@(8),a0
  480.       movel d0,a0@
  481. !     movel a1@(8),a0
  482.       movel d1,a0@(4)
  483. ! L8:
  484. !     clrl d0
  485. !     moveml sp@+,#0xc0c
  486.       rts
  487. Only in ffcall/avcall: avcall-m68k-std.c
  488. Only in ffcall/avcall: avcall-m68k-std.s
  489. Only in ffcall/avcall: avcall-m68k-test.c
  490. Only in dh0:source/clisptmp/ffcall/avcall: avcall-m68k.c
  491. Only in ffcall/avcall: avcall-m68k.o
  492. Only in dh0:source/clisptmp/ffcall/avcall: avcall-m68k.s
  493. Only in ffcall/avcall: avcall.h
  494. Only in ffcall/avcall: avcall.o
  495. Only in ffcall/avcall: config.log
  496. Only in ffcall/avcall: config.status
  497. diff -rc2 dh0:source/clisptmp/ffcall/avcall/configure ffcall/avcall/configure
  498. *** dh0:source/clisptmp/ffcall/avcall/configure    Fri May 17 06:46:00 1996
  499. --- ffcall/avcall/configure    Wed Jun 12 21:20:05 1996
  500. ***************
  501. *** 1,3 ****
  502. --- 1,4 ----
  503.   #! /bin/sh
  504. + unalias echo
  505.   
  506.   # Guess values for system-dependent variables and create Makefiles.
  507. Only in dh0:source/clisptmp/ffcall/avcall: CVS
  508. Only in ffcall/avcall: libavcall.a
  509. Only in ffcall/avcall: Makefile
  510. Only in ffcall/avcall: structcpy.o
  511. Only in ffcall/avcall: tests
  512. diff -rc2 dh0:source/clisptmp/ffcall/avcall/tests.c ffcall/avcall/tests.c
  513. *** dh0:source/clisptmp/ffcall/avcall/tests.c    Mon Apr 15 16:25:56 1996
  514. --- ffcall/avcall/tests.c    Wed Jun 12 22:31:01 1996
  515. ***************
  516. *** 21,24 ****
  517. --- 21,28 ----
  518.   #include <stdio.h>
  519.   #include <string.h>
  520. + #if defined(AMIGA)
  521. + /* We don't test passing arguments in registers yet */
  522. + #define AV_ARG_REGNUM -1
  523. + #endif
  524.   #include "avcall.h"
  525.   FILE* out;
  526. Only in ffcall/avcall: tests.o
  527. Only in ffcall/avcall: tests.out
  528. Only in dh0:source/clisptmp/ffcall/avcall/tests.output: CVS
  529. Only in ffcall/avcall: tests.output.m68k-cbm-amigados
  530. Only in ffcall/: config.cache
  531. Only in ffcall/: config.log
  532. Only in ffcall/: config.status
  533. Only in dh0:source/clisptmp/ffcall/configurations: CVS
  534. diff -rc2 dh0:source/clisptmp/ffcall/configure ffcall/configure
  535. *** dh0:source/clisptmp/ffcall/configure    Fri May 17 06:45:36 1996
  536. --- ffcall/configure    Wed Jun 12 21:05:07 1996
  537. ***************
  538. *** 1,3 ****
  539. --- 1,4 ----
  540.   #! /bin/sh
  541. + unalias echo
  542.   
  543.   # Guess values for system-dependent variables and create Makefiles.
  544. Only in dh0:source/clisptmp/ffcall/: CVS
  545. Only in ffcall/: Makefile
  546. Only in ffcall/trampoline: config.h
  547. Only in ffcall/trampoline: config.log
  548. Only in ffcall/trampoline: config.status
  549. diff -rc2 dh0:source/clisptmp/ffcall/trampoline/configure ffcall/trampoline/configure
  550. *** dh0:source/clisptmp/ffcall/trampoline/configure    Fri May 17 06:46:44 1996
  551. --- ffcall/trampoline/configure    Wed Jun 12 21:21:01 1996
  552. ***************
  553. *** 1,3 ****
  554. --- 1,4 ----
  555.   #! /bin/sh
  556. + unalias echo
  557.   
  558.   # Guess values for system-dependent variables and create Makefiles.
  559. Only in dh0:source/clisptmp/ffcall/trampoline: CVS
  560. Only in ffcall/trampoline: libtrampoline.a
  561. Only in ffcall/trampoline: Makefile
  562. Only in ffcall/trampoline: test1
  563. Only in ffcall/trampoline: test1.o
  564. Only in ffcall/trampoline: test2
  565. Only in ffcall/trampoline: test2.o
  566. Only in dh0:source/clisptmp/ffcall/trampoline/tests.passed: CVS
  567. Only in ffcall/trampoline: tests.passed.m68k-cbm-amigados
  568. diff -rc2 dh0:source/clisptmp/ffcall/trampoline/trampoline.c ffcall/trampoline/trampoline.c
  569. *** dh0:source/clisptmp/ffcall/trampoline/trampoline.c    Mon Apr 15 16:26:58 1996
  570. --- ffcall/trampoline/trampoline.c    Tue Jun 25 00:04:24 1996
  571. ***************
  572. *** 28,31 ****
  573. --- 28,43 ----
  574.   #endif
  575.   
  576. + #if defined(AMIGA)
  577. + #include <exec/types.h>
  578. + #include <exec/execbase.h>
  579. + #include <proto/exec.h>
  580. + /* We just need to clear the caches to make the code executable.
  581. +  * No need for EXECUTABLE_VIA_ kludges, CODE_EXECUTABLE comes closest.
  582. +  */
  583. + #ifndef CODE_EXECUTABLE
  584. + #define CODE_EXECUTABLE
  585. + #endif
  586. + #endif
  587.   #ifndef CODE_EXECUTABLE
  588.   /* How do we make the trampoline's code executable? */
  589. ***************
  590. *** 55,59 ****
  591. --- 67,78 ----
  592.   #endif
  593.   
  594. + #ifndef FOR_AMIGA_CLISP
  595.   #include <stdio.h> /* declares fprintf() */
  596. + #else
  597. + extern BPTR Input_handle;
  598. + extern struct ExecBase * const SysBase;
  599. + #define stderr Input_handle
  600. + #define fprintf BPTRfprintf
  601. + #endif
  602.   
  603.   #include <sys/types.h>
  604. ***************
  605. *** 260,263 ****
  606. --- 279,288 ----
  607.   #endif
  608.   
  609. + #ifdef FOR_AMIGA_CLISP
  610. + #define malloc(c) 0
  611. + #define free(a)
  612. + #define abort() fehler_sint64(0)    /* do anything */
  613. + #endif
  614.   #if !defined(CODE_EXECUTABLE) && !defined(EXECUTABLE_VIA_MPROTECT)
  615.   /* AIX doesn't support mprotect() in malloc'ed memory. Must get pages of
  616. ***************
  617. *** 797,800 ****
  618. --- 822,829 ----
  619.   #ifdef NeXT
  620.     asm volatile ("trap #2");
  621. + #else
  622. + #ifdef AMIGA
  623. +   CacheClearE(function,TRAMP_LENGTH,CACRF_ClearI|CACRF_ClearD);
  624. + #endif
  625.   #endif
  626.   #endif
  627. Only in ffcall/trampoline: trampoline.h
  628. Only in ffcall/trampoline: trampoline.o
  629. Only in ffcall/vacall: config.h
  630. Only in ffcall/vacall: config.log
  631. Only in ffcall/vacall: config.status
  632. diff -rc2 dh0:source/clisptmp/ffcall/vacall/configure ffcall/vacall/configure
  633. *** dh0:source/clisptmp/ffcall/vacall/configure    Fri May 17 06:46:20 1996
  634. --- ffcall/vacall/configure    Wed Jun 12 21:20:47 1996
  635. ***************
  636. *** 1,3 ****
  637. --- 1,4 ----
  638.   #! /bin/sh
  639. + unalias echo
  640.   
  641.   # Guess values for system-dependent variables and create Makefiles.
  642. Only in dh0:source/clisptmp/ffcall/vacall: CVS
  643. Only in ffcall/vacall: libvacall.a
  644. Only in ffcall/vacall: Makefile
  645. diff -rc2 dh0:source/clisptmp/ffcall/vacall/misc.c ffcall/vacall/misc.c
  646. *** dh0:source/clisptmp/ffcall/vacall/misc.c    Mon Apr 15 16:27:20 1996
  647. --- ffcall/vacall/misc.c    Tue Jun 25 00:16:55 1996
  648. ***************
  649. *** 8,12 ****
  650. --- 8,20 ----
  651.    */
  652.   
  653. + #ifndef FOR_AMIGA_CLISP
  654.   #include <stdio.h>
  655. + #else
  656. + #include <exec/types.h>
  657. + #include <exec/execbase.h>
  658. + #include <proto/exec.h>
  659. + extern BPTR Input_handle;
  660. + extern struct ExecBase * const SysBase;
  661. + #endif
  662.   
  663.   #include "vacall.h"
  664. ***************
  665. *** 31,37 ****
  666. --- 39,51 ----
  667.   {
  668.     /* If you see this, fix your code. */
  669. + #ifndef FOR_AMIGA_CLISP
  670.     fprintf (stderr, "vacall: va_start type %d and va_return type %d disagree.\n",
  671.                      (int)start_type, (int)return_type);
  672.     abort();
  673. + #else
  674. +   BPTRfprintf (Input_handle, "vacall: va_start type %ld and va_return type %ld disagree.\n",
  675. +                    (long)start_type, (long)return_type);
  676. +   fehler_sint64(0);    /* do anything */
  677. + #endif
  678.   }
  679.   
  680. ***************
  681. *** 41,46 ****
  682. --- 55,76 ----
  683.   {
  684.     /* If you see this, increase __VA_ALIST_WORDS: */
  685. + #ifndef FOR_AMIGA_CLISP
  686.     fprintf (stderr, "vacall: struct of size %u too large for pcc struct return.\n",
  687.                      size);
  688.     abort();
  689. + #else
  690. +   BPTRfprintf (Input_handle, "vacall: struct of size %lu too large for pcc struct return.\n",
  691. +                    (unsigned long)size);
  692. +   fehler_sint64(0);    /* do anything */
  693. + #endif
  694. + }
  695. + #ifdef FOR_AMIGA_CLISP
  696. + /* they come from foreign.o and I have to find a libgcc for them */
  697. + void __extendsfdf2()
  698. + { fehler_uint64(0);
  699.   }
  700. + void __truncdfsf2()
  701. + { fehler_uint64(0);
  702. + }
  703. + #endif
  704. Only in ffcall/vacall: misc.o
  705. Only in ffcall/vacall: structcpy.o
  706. Only in ffcall/vacall: tests
  707. Only in ffcall/vacall: tests.o
  708. Only in ffcall/vacall: tests.out
  709. Only in dh0:source/clisptmp/ffcall/vacall/tests.output: CVS
  710. Only in ffcall/vacall: tests.output.m68k-cbm-amigados
  711. Only in ffcall/vacall: vacall-m68k.o
  712. Only in ffcall/vacall: vacall.h
  713. Only in ffcall/vacall: vacall.o
  714.