From: <cli...@li...> - 2006-04-28 03:03:16
|
Send clisp-cvs mailing list submissions to cli...@li... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/clisp-cvs or, via email, send a message with subject or body 'help' to cli...@li... You can reach the person managing the list at cli...@li... When replying, please edit your Subject line so it is more specific than "Re: Contents of clisp-cvs digest..." CLISP CVS commits for today Today's Topics: 1. clisp/ffcall/callback PLATFORMS,1.10,1.11 (Bruno Haible) 2. clisp/ffcall/trampoline PLATFORMS,1.10,1.11 (Bruno Haible) 3. clisp/ffcall PLATFORMS,1.11,1.12 (Bruno Haible) 4. clisp/ffcall/callback call-used-registers,1.7,1.8 (Bruno Haible) 5. clisp/ffcall/trampoline configure.in,1.18,1.19 (Bruno Haible) 6. clisp/ffcall/trampoline Makefile.devel,1.18,1.19 Makefile.in,1.16,1.17 (Bruno Haible) 7. clisp/ffcall/callback/trampoline_r Makefile.devel,1.19,1.20 Makefile.in,1.18,1.19 configure.in,1.20,1.21 proto64.c,1.5,1.6 (Bruno Haible) 8. clisp/ffcall/callback/trampoline_r trampoline.c,1.34,1.35 (Bruno Haible) 9. clisp/ffcall/trampoline trampoline.c,1.28,1.29 (Bruno Haible) 10. clisp/ffcall/trampoline proto-powerpc64-aix.s,NONE,1.1 (Bruno Haible) 11. clisp/ffcall/callback/trampoline_r proto-powerpc64-aix.s,NONE,1.1 (Bruno Haible) 12. clisp/ffcall/trampoline tramp-powerpc64.new.S,NONE,1.1 (Bruno Haible) 13. clisp/ffcall/callback/trampoline_r tramp-powerpc64.new.S,NONE,1.1 (Bruno Haible) 14. clisp/ffcall/callback/trampoline_r configure,1.55,1.56 (Bruno Haible) 15. clisp/ffcall/trampoline configure,1.44,1.45 (Bruno Haible) --__--__-- Message: 1 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/ffcall/callback PLATFORMS,1.10,1.11 Date: Thu, 27 Apr 2006 20:00:28 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/ffcall/callback In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20911/callback Modified Files: PLATFORMS Log Message: Add PowerPC64 support. Index: PLATFORMS =================================================================== RCS file: /cvsroot/clisp/clisp/ffcall/callback/PLATFORMS,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- PLATFORMS 24 Apr 2006 11:41:52 -0000 1.10 +++ PLATFORMS 27 Apr 2006 20:00:25 -0000 1.11 @@ -9,6 +9,7 @@ arm -- untested powerpc rs6000-ibm-aix3.2.5 (xlc, gcc), powerpc-unknown-linux (gcc), powerpc-apple-darwin6.8 (gcc) + powerpc64 -- untested m88k -- untested convex -- untested ia64 ia64-unknown-linux (gcc) --__--__-- Message: 2 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/ffcall/trampoline PLATFORMS,1.10,1.11 Date: Thu, 27 Apr 2006 20:00:27 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/ffcall/trampoline In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20911/trampoline Modified Files: PLATFORMS Log Message: Add PowerPC64 support. Index: PLATFORMS =================================================================== RCS file: /cvsroot/clisp/clisp/ffcall/trampoline/PLATFORMS,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- PLATFORMS 24 Apr 2006 11:41:53 -0000 1.10 +++ PLATFORMS 27 Apr 2006 20:00:25 -0000 1.11 @@ -12,6 +12,7 @@ arm -- untested powerpc rs6000-ibm-aix3.2.5, powerpc-ibm-aix4.1.4.0, powerpc-unknown-linux, powerpc-apple-darwin6.8 + powerpc64 -- untested m88k m88k-tektronix-sysv3 convex c32-convex-bsd ia64 ia64-unknown-linux --__--__-- Message: 3 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/ffcall PLATFORMS,1.11,1.12 Date: Thu, 27 Apr 2006 20:00:27 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/ffcall In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20911 Modified Files: PLATFORMS Log Message: Add PowerPC64 support. Index: PLATFORMS =================================================================== RCS file: /cvsroot/clisp/clisp/ffcall/PLATFORMS,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- PLATFORMS 24 Apr 2006 11:41:52 -0000 1.11 +++ PLATFORMS 27 Apr 2006 20:00:23 -0000 1.12 @@ -21,6 +21,7 @@ arm -- untested powerpc rs6000-ibm-aix3.2.5 (gcc, c89, xlc), powerpc-ibm-aix4.1.4.0 (cc), powerpc-unknown-linux (gcc), powerpc-apple-darwin6.8 (gcc) + powerpc64 -- untested m88k -- untested convex -- untested ia64 ia64-unknown-linux (gcc) --__--__-- Message: 4 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/ffcall/callback call-used-registers,1.7,1.8 Date: Thu, 27 Apr 2006 20:01:05 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/ffcall/callback In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21288/callback Modified Files: call-used-registers Log Message: Add PowerPC64 support. Index: call-used-registers =================================================================== RCS file: /cvsroot/clisp/clisp/ffcall/callback/call-used-registers,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- call-used-registers 24 Apr 2006 11:49:45 -0000 1.7 +++ call-used-registers 27 Apr 2006 20:01:02 -0000 1.8 @@ -25,6 +25,7 @@ hppa 20-22,28-29 r19,r20,r21,r22 r29 arm r12=ip r0,r1,r3,r2 r12 (!) powerpc 0,3-12 0,11,12 11 +powerpc64 0,3-12 0,11 11 m88k 10,13,11(?) r10,r13,r11,r12 r11 convex s0-s7,a1-a5 s1,s2 s0 ia64 r14-r31,r8-r11 r8,r14,r15...r19 r15 --__--__-- Message: 5 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/ffcall/trampoline configure.in,1.18,1.19 Date: Thu, 27 Apr 2006 20:01:05 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/ffcall/trampoline In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21288/trampoline Modified Files: configure.in Log Message: Add PowerPC64 support. Index: configure.in =================================================================== RCS file: /cvsroot/clisp/clisp/ffcall/trampoline/configure.in,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- configure.in 19 Apr 2006 13:02:48 -0000 1.18 +++ configure.in 27 Apr 2006 20:01:03 -0000 1.19 @@ -28,7 +28,7 @@ CL_CANONICAL_HOST_CPU_FOR_FFCALL CL_CODEEXEC CPU_OBJECTS='' -if test ${host_cpu_abi} = hppa -o ${host_cpu_abi} = ia64; then +if test ${host_cpu_abi} = hppa -o ${host_cpu_abi} = powerpc64 -o ${host_cpu_abi} = ia64; then CPU_OBJECTS="$CPU_OBJECTS "'tramp-$(CPU).o' fi if test ${host_cpu_abi} = powerpc; then --__--__-- Message: 6 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/ffcall/trampoline Makefile.devel,1.18,1.19 Makefile.in,1.16,1.17 Date: Thu, 27 Apr 2006 20:02:23 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/ffcall/trampoline In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22515/trampoline Modified Files: Makefile.devel Makefile.in Log Message: Add PowerPC64 support. Index: Makefile.in =================================================================== RCS file: /cvsroot/clisp/clisp/ffcall/trampoline/Makefile.in,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- Makefile.in 19 Apr 2006 13:02:48 -0000 1.16 +++ Makefile.in 27 Apr 2006 20:02:21 -0000 1.17 @@ -67,6 +67,12 @@ esac; \ $(CPP) $(srcdir)/tramp-powerpc.$${syntax}.S > tramp-powerpc.s +tramp-powerpc64.o : tramp-powerpc64.s + $(CC) @GCC_X_NONE@ -c tramp-powerpc64.s + +tramp-powerpc64.s : $(srcdir)/tramp-powerpc64.new.S + $(CPP) $(srcdir)/tramp-powerpc64.new.S > tramp-powerpc64.s + tramp-ia64.o : $(srcdir)/tramp-ia64.s $(CC) @GCC_X_NONE@ -c $(srcdir)/tramp-ia64.s Index: Makefile.devel =================================================================== RCS file: /cvsroot/clisp/clisp/ffcall/trampoline/Makefile.devel,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- Makefile.devel 19 Apr 2006 13:02:48 -0000 1.18 +++ Makefile.devel 27 Apr 2006 20:02:21 -0000 1.19 @@ -8,7 +8,7 @@ RM = rm -f ROFF_MAN = groff -Tascii -mandoc -all : proto-i386.s proto-m68k.s proto-mips.s proto-mipsn32.s proto-mips64.s proto-sparc.s proto-sparc64.s proto-alpha.s proto-hppa.s proto-arm.s proto-powerpc-aix.old.s proto-powerpc-aix.new.s proto-powerpc-sysv4.s proto-powerpc-macos.s proto-m88k.s proto-convex.s proto-ia64.s proto-x86_64.s \ +all : proto-i386.s proto-m68k.s proto-mips.s proto-mipsn32.s proto-mips64.s proto-sparc.s proto-sparc64.s proto-alpha.s proto-hppa.s proto-arm.s proto-powerpc-aix.old.s proto-powerpc-aix.new.s proto-powerpc-sysv4.s proto-powerpc-macos.s proto-powerpc64-aix.s proto-m88k.s proto-convex.s proto-ia64.s proto-x86_64.s \ cache-sparc.S cache-alpha.s cache-hppa.s cache-powerpc-sysv4.s cache-powerpc-macos.s cache-convex.s \ trampoline.man \ config.h.msvc config.h.mingw32 @@ -55,6 +55,9 @@ proto-powerpc-macos.s : proto.c $(GCC) -V 3.3.2 -b powerpc-darwin $(GCCFLAGS) -D__powerpc__ -S proto.c -o $@ +proto-powerpc64-aix.s : proto64.c + /cross/powerpc64-linux-tools/bin/powerpc64-linux-gcc $(GCCFLAGS) -D__powerpc64__ -S proto64.c -o $@ + proto-m88k.s : proto.c $(GCC) -V 2.95.2 -b m88k-dgux $(GCCFLAGS) -D__m88k__ -S proto.c -o $@ --__--__-- Message: 7 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/ffcall/callback/trampoline_r Makefile.devel,1.19,1.20 Makefile.in,1.18,1.19 configure.in,1.20,1.21 proto64.c,1.5,1.6 Date: Thu, 27 Apr 2006 20:02:23 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/ffcall/callback/trampoline_r In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22515/callback/trampoline_r Modified Files: Makefile.devel Makefile.in configure.in proto64.c Log Message: Add PowerPC64 support. Index: Makefile.in =================================================================== RCS file: /cvsroot/clisp/clisp/ffcall/callback/trampoline_r/Makefile.in,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- Makefile.in 19 Apr 2006 13:17:17 -0000 1.18 +++ Makefile.in 27 Apr 2006 20:02:21 -0000 1.19 @@ -75,6 +75,12 @@ esac; \ $(CPP) $(srcdir)/tramp-powerpc.$${syntax}.S > tramp-powerpc.s +tramp-powerpc64.lo : tramp-powerpc64.s + $(LIBTOOL_COMPILE) $(CC) @GCC_X_NONE@ -c tramp-powerpc64.s + +tramp-powerpc64.s : $(srcdir)/tramp-powerpc64.new.S + $(CPP) $(srcdir)/tramp-powerpc64.new.S > tramp-powerpc64.s + tramp-ia64.lo : $(srcdir)/tramp-ia64.s $(LIBTOOL_COMPILE) $(CC) @GCC_X_NONE@ -c $(srcdir)/tramp-ia64.s Index: Makefile.devel =================================================================== RCS file: /cvsroot/clisp/clisp/ffcall/callback/trampoline_r/Makefile.devel,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- Makefile.devel 24 Apr 2006 11:49:45 -0000 1.19 +++ Makefile.devel 27 Apr 2006 20:02:21 -0000 1.20 @@ -8,7 +8,7 @@ RM = rm -f ROFF_MAN = groff -Tascii -mandoc -all : proto-i386.s proto-m68k.s proto-m68k-netbsd.s proto-mips.s proto-mipsn32.s proto-mips64.s proto-sparc.s proto-sparc64.s proto-alpha.s proto-hppa.s proto-arm.s proto-powerpc-aix.old.s proto-powerpc-aix.new.s proto-powerpc-sysv4.s proto-powerpc-macos.s proto-m88k.s proto-convex.s proto-ia64.c proto-x86_64.c \ +all : proto-i386.s proto-m68k.s proto-m68k-netbsd.s proto-mips.s proto-mipsn32.s proto-mips64.s proto-sparc.s proto-sparc64.s proto-alpha.s proto-hppa.s proto-arm.s proto-powerpc-aix.old.s proto-powerpc-aix.new.s proto-powerpc-sysv4.s proto-powerpc-macos.s proto-powerpc64-aix.s proto-m88k.s proto-convex.s proto-ia64.c proto-x86_64.c \ cache-sparc.S cache-alpha.s cache-hppa.s cache-powerpc-sysv4.s cache-powerpc-macos.s cache-convex.s \ trampoline_r.man \ config.h.msvc config.h.mingw32 @@ -58,6 +58,9 @@ proto-powerpc-macos.s : proto.c $(GCC) -V 3.3.2 -b powerpc-darwin $(GCCFLAGS) -D__powerpc__ -S proto.c -o $@ +proto-powerpc64-aix.s : proto64.c + /cross/powerpc64-linux-tools/bin/powerpc64-linux-gcc $(GCCFLAGS) -D__powerpc64__ -S proto64.c -o $@ + proto-m88k.s : proto.c $(GCC) -V 2.95.2 -b m88k-dgux $(GCCFLAGS) -D__m88k__ -S proto.c -o $@ Index: proto64.c =================================================================== RCS file: /cvsroot/clisp/clisp/ffcall/callback/trampoline_r/proto64.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- proto64.c 26 Jan 2004 15:22:14 -0000 1.5 +++ proto64.c 27 Apr 2006 20:02:21 -0000 1.6 @@ -1,7 +1,7 @@ /* Sample prototype for a trampoline. */ /* - * Copyright 1995-1999, 2001, 2004 Bruno Haible, <br...@cl...> + * Copyright 1995-1999, 2001, 2004, 2006 Bruno Haible, <br...@cl...> * * This is free software distributed under the GNU General Public Licence * described in the file COPYING. Contact the author if you don't have this @@ -21,6 +21,9 @@ #ifdef __alpha__ register void* env __asm__("$1"); #endif +#ifdef __powerpc64__ +register void* env __asm__("r11"); +#endif #ifdef __ia64__ register void* env __asm__("r15"); #endif Index: configure.in =================================================================== RCS file: /cvsroot/clisp/clisp/ffcall/callback/trampoline_r/configure.in,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- configure.in 19 Apr 2006 13:17:17 -0000 1.20 +++ configure.in 27 Apr 2006 20:02:21 -0000 1.21 @@ -34,7 +34,7 @@ dnl CL_CANONICAL_HOST_CPU_FOR_FFCALL CL_CODEEXEC CPU_OBJECTS='' -if test ${host_cpu_abi} = hppa -o ${host_cpu_abi} = ia64; then +if test ${host_cpu_abi} = hppa -o ${host_cpu_abi} = powerpc64 -o ${host_cpu_abi} = ia64; then CPU_OBJECTS="$CPU_OBJECTS "'tramp-$(CPU).lo' fi if test ${host_cpu_abi} = powerpc; then --__--__-- Message: 8 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/ffcall/callback/trampoline_r trampoline.c,1.34,1.35 Date: Thu, 27 Apr 2006 20:03:26 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/ffcall/callback/trampoline_r In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23474/callback/trampoline_r Modified Files: trampoline.c Log Message: Add PowerPC64 support. Index: trampoline.c =================================================================== RCS file: /cvsroot/clisp/clisp/ffcall/callback/trampoline_r/trampoline.c,v retrieving revision 1.34 retrieving revision 1.35 diff -u -d -r1.34 -r1.35 --- trampoline.c 24 Apr 2006 11:49:45 -0000 1.34 +++ trampoline.c 27 Apr 2006 20:03:23 -0000 1.35 @@ -20,13 +20,17 @@ #define __hppanew__ /* New trampoline, just a closure. */ #endif #endif -#if defined(__powerpc__) +#if defined(__powerpc__) && !defined(__powerpc64__) #if !defined(_AIX) #define __powerpcsysv4__ /* SysV.4 ABI, real machine code. */ #else #define __powerpcaix__ /* AIX ABI, just a closure. */ #endif #endif +#if defined(__powerpc64__) +/* The only ABI on powerpc64 known so far is the AIX ABI. */ +#define __powerpc64aix__ /* AIX ABI, just a closure. */ +#endif #if defined(__hppanew__) /* * A function pointer is a biased pointer to a data area whose first word @@ -40,7 +44,7 @@ #define CODE_EXECUTABLE #endif #endif -#if defined(__powerpcaix__) || defined(__ia64__) +#if defined(__powerpcaix__) || defined(__powerpc64aix__) || defined(__ia64__) /* * A function pointer is a pointer to a data area whose first word contains * the actual address of the function. @@ -212,7 +216,7 @@ #ifdef __hppa__ #include "cache-hppa.c" #endif -#ifdef __powerpc__ +#if defined(__powerpc__) && !defined(__powerpc64__) #include "cache-powerpc.c" #endif #ifdef __convex__ @@ -285,6 +289,10 @@ #define TRAMP_LENGTH 20 #define TRAMP_ALIGN 4 #endif +#ifdef __powerpc64aix__ +#define TRAMP_LENGTH 40 +#define TRAMP_ALIGN 8 +#endif #ifdef __m88k__ #define TRAMP_LENGTH 20 #define TRAMP_ALIGN 8 @@ -894,6 +902,27 @@ #define tramp_data(function) \ ((long *) function)[3] #endif +#ifdef __powerpc64aix__ + /* function: + * .quad .tramp_r + * .quad .mytoc + * .quad 0 + * .mytoc: + * .quad <data> + * .quad <address> + */ + *(long *) (function + 0) = ((long *) &tramp_r)[0]; + *(long *) (function + 8) = (long) (function + 24); + *(long *) (function +16) = 0; + *(long *) (function +24) = (long) data; + *(long *) (function +32) = (long) address; +#define is_tramp(function) \ + ((long *) function)[0] == ((long *) &tramp_r)[0] +#define tramp_address(function) \ + ((long *) function)[4] +#define tramp_data(function) \ + ((long *) function)[3] +#endif #ifdef __m88k__ /* function: * or.u #r11,#r0,hi16(<data>) 5D 60 hi16(<data>) @@ -1065,7 +1094,7 @@ * cache. The freshly built trampoline is visible to the data cache, but not * maybe not to the instruction cache. This is hairy. */ -#if !(defined(__hppanew__) || defined(__powerpcaix__) || defined(__ia64__)) +#if !(defined(__hppanew__) || defined(__powerpcaix__) || defined(__powerpc64aix__) || defined(__ia64__)) /* Only needed if we really set up machine instructions. */ #ifdef __i386__ #if defined(_WIN32) @@ -1148,7 +1177,7 @@ #ifdef __arm__ /* This CPU does not have a separate instruction cache. (I think.) */ #endif -#ifdef __powerpc__ +#if defined(__powerpc__) && !defined(__powerpc64__) __TR_clear_cache(function); #endif #ifdef __m88k__ --__--__-- Message: 9 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/ffcall/trampoline trampoline.c,1.28,1.29 Date: Thu, 27 Apr 2006 20:03:26 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/ffcall/trampoline In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23474/trampoline Modified Files: trampoline.c Log Message: Add PowerPC64 support. Index: trampoline.c =================================================================== RCS file: /cvsroot/clisp/clisp/ffcall/trampoline/trampoline.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- trampoline.c 19 Apr 2006 13:02:48 -0000 1.28 +++ trampoline.c 27 Apr 2006 20:03:24 -0000 1.29 @@ -20,13 +20,17 @@ #define __hppanew__ /* New trampoline, just a closure. */ #endif #endif -#if defined(__powerpc__) +#if defined(__powerpc__) && !defined(__powerpc64__) #if !defined(_AIX) #define __powerpcsysv4__ /* SysV.4 ABI, real machine code. */ #else #define __powerpcaix__ /* AIX ABI, just a closure. */ #endif #endif +#if defined(__powerpc64__) +/* The only ABI on powerpc64 known so far is the AIX ABI. */ +#define __powerpc64aix__ /* AIX ABI, just a closure. */ +#endif #if defined(__hppanew__) /* * A function pointer is a biased pointer to a data area whose first word @@ -40,7 +44,7 @@ #define CODE_EXECUTABLE #endif #endif -#if defined(__powerpcaix__) || defined(__ia64__) +#if defined(__powerpcaix__) || defined(__powerpc64aix__) || defined(__ia64__) /* * A function pointer is a pointer to a data area whose first word contains * the actual address of the function. @@ -212,7 +216,7 @@ #ifdef __hppa__ #include "cache-hppa.c" #endif -#ifdef __powerpc__ +#if defined(__powerpc__) && !defined(__powerpc64__) #include "cache-powerpc.c" #endif #ifdef __convex__ @@ -285,6 +289,10 @@ #define TRAMP_LENGTH 24 #define TRAMP_ALIGN 4 #endif +#ifdef __powerpc64aix__ +#define TRAMP_LENGTH 48 +#define TRAMP_ALIGN 8 +#endif #ifdef __m88k__ #define TRAMP_LENGTH 32 #define TRAMP_ALIGN 8 @@ -959,6 +967,31 @@ #define tramp_data(function) \ ((long *) function)[4] #endif +#ifdef __powerpc64aix__ + /* function: + * .quad .tramp + * .quad .mytoc + * .quad 0 + * .mytoc: + * .quad <variable> + * .quad <data> + * .quad <address> + */ + *(long *) (function + 0) = ((long *) &tramp)[0]; + *(long *) (function + 8) = (long) (function + 24); + *(long *) (function +16) = 0; + *(long *) (function +24) = (long) variable; + *(long *) (function +32) = (long) data; + *(long *) (function +40) = (long) address; +#define is_tramp(function) \ + ((long *) function)[0] == ((long *) &tramp)[0] +#define tramp_address(function) \ + ((long *) function)[5] +#define tramp_variable(function) \ + ((long *) function)[3] +#define tramp_data(function) \ + ((long *) function)[4] +#endif #ifdef __m88k__ /* function: * or.u #r13,#r0,hi16(<variable>) 5D A0 hi16(<variable>) @@ -1172,7 +1205,7 @@ * cache. The freshly built trampoline is visible to the data cache, but not * maybe not to the instruction cache. This is hairy. */ -#if !(defined(__hppanew__) || defined(__powerpcaix__) || defined(__ia64__)) +#if !(defined(__hppanew__) || defined(__powerpcaix__) || defined(__powerpc64aix__) || defined(__ia64__)) /* Only needed if we really set up machine instructions. */ #ifdef __i386__ #if defined(_WIN32) @@ -1255,7 +1288,7 @@ #ifdef __arm__ /* This CPU does not have a separate instruction cache. (I think.) */ #endif -#ifdef __powerpc__ +#if defined(__powerpc__) && !defined(__powerpc64__) __TR_clear_cache(function); #endif #ifdef __m88k__ --__--__-- Message: 10 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/ffcall/trampoline proto-powerpc64-aix.s,NONE,1.1 Date: Thu, 27 Apr 2006 20:04:12 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/ffcall/trampoline In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23886 Added Files: proto-powerpc64-aix.s Log Message: proto64.c, compiled for powerpc64. --- NEW FILE: proto-powerpc64-aix.s --- .file "proto64.c" .section ".toc","aw" .section ".text" .section ".toc","aw" .LC0: .tc ID_12345678_13578765[TC],0x1234567813578765 .LC1: .tc ID_73554711_43622155[TC],0x7355471143622155 .LC2: .tc ID_babebec0_dea0ffab[TC],0xbabebec0dea0ffab .section ".text" .align 2 .p2align 4,,15 .globl tramp .section ".opd","aw" .align 3 tramp: .quad .L.tramp,.TOC.@tocbase,0 .previous .type tramp, @function .L.tramp: mflr 0 ld 9,.LC2@toc(2) ld 11,.LC0@toc(2) std 0,16(1) stdu 1,-112(1) ld 0,.LC1@toc(2) nop ld 10,0(9) std 0,0(11) std 2,40(1) mtctr 10 ld 11,16(9) ld 2,8(9) bctrl ld 2,40(1) addi 1,1,112 ld 0,16(1) mtlr 0 blr .long 0 .byte 0,0,0,1,128,0,0,0 .size tramp,.-.L.tramp .section ".toc","aw" .set .LC3,.LC2 .section ".text" .align 2 .p2align 4,,15 .globl jump .section ".opd","aw" .align 3 jump: .quad .L.jump,.TOC.@tocbase,0 .previous .type jump, @function .L.jump: ld 0,.LC3@toc(2) mtctr 0 bctr .long 0 .byte 0,0,0,0,0,0,0,0 .size jump,.-.L.jump .ident "GCC: (GNU) 4.0.2" --__--__-- Message: 11 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/ffcall/callback/trampoline_r proto-powerpc64-aix.s,NONE,1.1 Date: Thu, 27 Apr 2006 20:05:01 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/ffcall/callback/trampoline_r In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24609/callback/trampoline_r Added Files: proto-powerpc64-aix.s Log Message: proto64.c, compiled for powerpc64. --- NEW FILE: proto-powerpc64-aix.s --- .file "proto64.c" .section ".toc","aw" .section ".text" .section ".toc","aw" .LC0: .tc ID_73554711_43622155[TC],0x7355471143622155 .LC1: .tc ID_babebec0_dea0ffab[TC],0xbabebec0dea0ffab .section ".text" .align 2 .p2align 4,,15 .globl tramp .section ".opd","aw" .align 3 tramp: .quad .L.tramp,.TOC.@tocbase,0 .previous .type tramp, @function .L.tramp: mflr 0 ld 9,.LC1@toc(2) ld 11,.LC0@toc(2) std 0,16(1) stdu 1,-112(1) nop nop ld 0,0(9) std 2,40(1) mtctr 0 ld 11,16(9) ld 2,8(9) bctrl ld 2,40(1) addi 1,1,112 ld 0,16(1) mtlr 0 blr .long 0 .byte 0,0,0,1,128,0,0,0 .size tramp,.-.L.tramp .section ".toc","aw" .set .LC2,.LC1 .section ".text" .align 2 .p2align 4,,15 .globl jump .section ".opd","aw" .align 3 jump: .quad .L.jump,.TOC.@tocbase,0 .previous .type jump, @function .L.jump: ld 0,.LC2@toc(2) mtctr 0 bctr .long 0 .byte 0,0,0,0,0,0,0,0 .size jump,.-.L.jump .ident "GCC: (GNU) 4.0.2" --__--__-- Message: 12 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/ffcall/trampoline tramp-powerpc64.new.S,NONE,1.1 Date: Thu, 27 Apr 2006 20:05:44 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/ffcall/trampoline In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25197a/trampoline Added Files: tramp-powerpc64.new.S Log Message: Core trampoline code for PowerPC64. --- NEW FILE: tramp-powerpc64.new.S --- /* Trampoline for powerpc64 CPU with AIX calling convention */ /* * Copyright 1995-2006 Bruno Haible, <br...@cl...> * * This is free software distributed under the GNU General Public Licence * described in the file COPYING. Contact the author if you don't have this * or can't live with it. There is ABSOLUTELY NO WARRANTY, explicit or implied, * on this software. */ /* Available registers: r0, r12, r11, r10, r9, r8, r7, r6, r5, r4, r3. */ /* However, r0 is special in that it cannot be used as a base register. */ /* And r3...r10 should not be clobbered because they contain the first 8 * integer arguments to the function being called. */ .globl tramp .globl .tramp tramp: .quad .tramp .tramp: /* Move <data> into <variable> */ ld 11,0(2) /* get <variable> */ ld 12,8(2) /* get <data> */ std 12,0(11) /* Get <function> */ ld 12,16(2) /* * gcc-2.6.3 source says: * A function pointer is a pointer to a data area whose first word contains * the actual address of the function, whose second word contains a pointer * to its TOC, and whose third word contains a value to place in the static * chain register (r11). */ ld 11,16(12) /* pass static chain in r11 */ ld 2,8(12) /* pass TOC in r2 */ ld 0,0(12) /* actual code address */ mtctr 0 bctr --__--__-- Message: 13 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/ffcall/callback/trampoline_r tramp-powerpc64.new.S,NONE,1.1 Date: Thu, 27 Apr 2006 20:05:44 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/ffcall/callback/trampoline_r In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25197a/callback/trampoline_r Added Files: tramp-powerpc64.new.S Log Message: Core trampoline code for PowerPC64. --- NEW FILE: tramp-powerpc64.new.S --- /* Trampoline for powerpc64 CPU with AIX calling convention */ /* * Copyright 1995-2006 Bruno Haible, <br...@cl...> * * This is free software distributed under the GNU General Public Licence * described in the file COPYING. Contact the author if you don't have this * or can't live with it. There is ABSOLUTELY NO WARRANTY, explicit or implied, * on this software. */ /* Available registers: r0, r12, r11, r10, r9, r8, r7, r6, r5, r4, r3. */ /* However, r0 is special in that it cannot be used as a base register. */ /* And r3...r10 should not be clobbered because they contain the first 8 * integer arguments to the function being called. */ .globl tramp_r .globl .tramp_r tramp_r: .quad .tramp_r .tramp_r: /* Move <data> into register r11 */ ld 11,0(2) /* get <data> */ /* Get <function> */ ld 12,8(2) /* * gcc-2.6.3 source says: * A function pointer is a pointer to a data area whose first word contains * the actual address of the function, whose second word contains a pointer * to its TOC, and whose third word contains a value to place in the static * chain register (r11). But we have already placed our information in r11. */ /* ld 11,16(12) pass static chain in r11 */ ld 2,8(12) /* pass TOC in r2 */ ld 0,0(12) /* actual code address */ mtctr 0 bctr --__--__-- Message: 14 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/ffcall/callback/trampoline_r configure,1.55,1.56 Date: Thu, 27 Apr 2006 20:11:35 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/ffcall/callback/trampoline_r In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30439/callback/trampoline_r Modified Files: configure Log Message: Regenerated. Index: configure =================================================================== RCS file: /cvsroot/clisp/clisp/ffcall/callback/trampoline_r/configure,v retrieving revision 1.55 retrieving revision 1.56 diff -u -d -r1.55 -r1.56 --- configure 22 Apr 2006 15:48:20 -0000 1.55 +++ configure 27 Apr 2006 20:11:32 -0000 1.56 @@ -22530,7 +22530,7 @@ esac CPU_OBJECTS='' -if test ${host_cpu_abi} = hppa -o ${host_cpu_abi} = ia64; then +if test ${host_cpu_abi} = hppa -o ${host_cpu_abi} = powerpc64 -o ${host_cpu_abi} = ia64; then CPU_OBJECTS="$CPU_OBJECTS "'tramp-$(CPU).lo' fi if test ${host_cpu_abi} = powerpc; then --__--__-- Message: 15 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/ffcall/trampoline configure,1.44,1.45 Date: Thu, 27 Apr 2006 20:11:35 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/ffcall/trampoline In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30439/trampoline Modified Files: configure Log Message: Regenerated. Index: configure =================================================================== RCS file: /cvsroot/clisp/clisp/ffcall/trampoline/configure,v retrieving revision 1.44 retrieving revision 1.45 diff -u -d -r1.44 -r1.45 --- configure 22 Apr 2006 15:48:20 -0000 1.44 +++ configure 27 Apr 2006 20:11:33 -0000 1.45 @@ -6473,7 +6473,7 @@ esac CPU_OBJECTS='' -if test ${host_cpu_abi} = hppa -o ${host_cpu_abi} = ia64; then +if test ${host_cpu_abi} = hppa -o ${host_cpu_abi} = powerpc64 -o ${host_cpu_abi} = ia64; then CPU_OBJECTS="$CPU_OBJECTS "'tramp-$(CPU).o' fi if test ${host_cpu_abi} = powerpc; then --__--__-- _______________________________________________ clisp-cvs mailing list cli...@li... https://lists.sourceforge.net/lists/listinfo/clisp-cvs End of clisp-cvs Digest |