PatchSet 4969 Date: 2004/07/14 14:37:28 Author: dalibor Branch: HEAD Tag: (none) Log: Moved config/superh to config/sh
2004-07-13 Dalibor Topic <[EMAIL PROTECTED]> * config/superh: Moved over to * config/sh: new directory. * Makefile.am: (EXTRA_DIST) Removed superh patch. * Makefile.in: Regenerated. * FAQ/FAQ.cross-compiling: Removed extra secion on superh. * config/Makefile.am: (EXTRA_DIST) Renamed superh files to begin with sh. * config/Makefile.in: Regenerated. * config/config.alias, config/superh/common.h, config/superh/sysdepCallMethod.h, config/superh/threads.h, config/superh/trampolines.c, config/superh/linux/config.frag, config/superh/linux/md.c, config/superh/linux/md.h: Use sh instead of superh. * developers/autogen.sh: Removed superh patch. * libltdl/config.sub, scripts/config.sub: Rengenerated. Members: ChangeLog:1.2533->1.2534 Makefile.am:1.71->1.72 Makefile.in:1.167->1.168 FAQ/FAQ.cross-compiling:1.1->1.2 config/Makefile.am:1.46->1.47 config/Makefile.in:1.143->1.144 config/config.alias:1.19->1.20 config/sh/common.h:INITIAL->1.1 config/sh/sysdepCallMethod.h:INITIAL->1.1 config/sh/threads.h:INITIAL->1.1 config/sh/trampolines.c:INITIAL->1.1 config/sh/linux/config.frag:INITIAL->1.1 config/sh/linux/md.c:INITIAL->1.1 config/sh/linux/md.h:INITIAL->1.1 config/superh/common.h:1.3->1.4(DEAD) config/superh/sysdepCallMethod.h:1.2->1.3(DEAD) config/superh/threads.h:1.1->1.2(DEAD) config/superh/trampolines.c:1.2->1.3(DEAD) config/superh/linux/config.frag:1.1->1.2(DEAD) config/superh/linux/md.c:1.1->1.2(DEAD) config/superh/linux/md.h:1.4->1.5(DEAD) developers/autogen.sh:1.42->1.43 developers/patch-config.sub-superh.diff:1.2->1.3(DEAD) libltdl/config.sub:1.9->1.10 scripts/config.sub:1.4->1.5 Index: kaffe/ChangeLog diff -u kaffe/ChangeLog:1.2533 kaffe/ChangeLog:1.2534 --- kaffe/ChangeLog:1.2533 Wed Jul 14 12:55:28 2004 +++ kaffe/ChangeLog Wed Jul 14 14:37:28 2004 @@ -1,5 +1,42 @@ 2004-07-13 Dalibor Topic <[EMAIL PROTECTED]> + * config/superh: Moved over to + * config/sh: new directory. + + * Makefile.am: + (EXTRA_DIST) Removed superh patch. + + * Makefile.in: + Regenerated. + + * FAQ/FAQ.cross-compiling: + Removed extra secion on superh. + + * config/Makefile.am: + (EXTRA_DIST) Renamed superh files to begin with sh. + + * config/Makefile.in: + Regenerated. + + * config/config.alias, + config/superh/common.h, + config/superh/sysdepCallMethod.h, + config/superh/threads.h, + config/superh/trampolines.c, + config/superh/linux/config.frag, + config/superh/linux/md.c, + config/superh/linux/md.h: + Use sh instead of superh. + + * developers/autogen.sh: + Removed superh patch. + + * libltdl/config.sub, + scripts/config.sub: + Rengenerated. + +2004-07-13 Dalibor Topic <[EMAIL PROTECTED]> + * libraries/javalib/gnu/classpath/Configuration.java (default_awt_toolkit): Added new field for classpath AWT. Index: kaffe/Makefile.am diff -u kaffe/Makefile.am:1.71 kaffe/Makefile.am:1.72 --- kaffe/Makefile.am:1.71 Sat Jul 10 09:30:12 2004 +++ kaffe/Makefile.am Wed Jul 14 14:37:30 2004 @@ -109,7 +109,6 @@ developers/mauve-html-gen.pl \ developers/mauve-kaffe \ developers/mauve-results.sh \ - developers/patch-config.sub-superh.diff \ developers/patch-libtool-quote-sys_search_path.diff \ developers/rpm-kaffe.spec \ developers/sp_offset.c \ Index: kaffe/Makefile.in diff -u kaffe/Makefile.in:1.167 kaffe/Makefile.in:1.168 --- kaffe/Makefile.in:1.167 Mon Jul 12 17:51:04 2004 +++ kaffe/Makefile.in Wed Jul 14 14:37:31 2004 @@ -450,7 +450,6 @@ developers/mauve-html-gen.pl \ developers/mauve-kaffe \ developers/mauve-results.sh \ - developers/patch-config.sub-superh.diff \ developers/patch-libtool-quote-sys_search_path.diff \ developers/rpm-kaffe.spec \ developers/sp_offset.c \ Index: kaffe/FAQ/FAQ.cross-compiling diff -u kaffe/FAQ/FAQ.cross-compiling:1.1 kaffe/FAQ/FAQ.cross-compiling:1.2 --- kaffe/FAQ/FAQ.cross-compiling:1.1 Wed Jun 4 09:45:45 2003 +++ kaffe/FAQ/FAQ.cross-compiling Wed Jul 14 14:37:33 2004 @@ -106,17 +106,6 @@ library issue, but I usually specify these too to reduce the time needed for build. -Super-H -======= -Usually, cross-tools suffix and host name needed for kaffe is same. -But in case of Hitachi Super-H family, these are different. So in -this case you have to specify - CC=sh3-linux-gcc NM=sh3-linux-nm AR=sh3-linux-ar \ - ../kaffe-1.1.0/configure --host=superh-linux --build=i686-linux \ - --with-staticbin --with-staticlib --with-staticvm \ - --with-threads=unix-jthreads --without-x \ - --with-rt-jar=/tmp/rt.jar - So where's cross tools? ======================= One of the hardest thing for cross-compiling kaffe should be this. If Index: kaffe/config/Makefile.am diff -u kaffe/config/Makefile.am:1.46 kaffe/config/Makefile.am:1.47 --- kaffe/config/Makefile.am:1.46 Mon Jul 12 16:34:38 2004 +++ kaffe/config/Makefile.am Wed Jul 14 14:37:33 2004 @@ -354,13 +354,13 @@ sparc/uxpds/jit-md.h \ sparc/uxpds/md.c \ sparc/uxpds/md.h \ - superh/common.h \ - superh/linux/config.frag \ - superh/linux/md.c \ - superh/linux/md.h \ - superh/sysdepCallMethod.h \ - superh/threads.h \ - superh/trampolines.c + sh/common.h \ + sh/linux/config.frag \ + sh/linux/md.c \ + sh/linux/md.h \ + sh/sysdepCallMethod.h \ + sh/threads.h \ + sh/trampolines.c jit-md.h: stamp-h01 @if test ! -f $@; then rm -f stamp-h01; $(MAKE) stamp-h01; \ Index: kaffe/config/Makefile.in diff -u kaffe/config/Makefile.in:1.143 kaffe/config/Makefile.in:1.144 --- kaffe/config/Makefile.in:1.143 Mon Jul 12 17:51:19 2004 +++ kaffe/config/Makefile.in Wed Jul 14 14:37:33 2004 @@ -663,13 +663,13 @@ sparc/uxpds/jit-md.h \ sparc/uxpds/md.c \ sparc/uxpds/md.h \ - superh/common.h \ - superh/linux/config.frag \ - superh/linux/md.c \ - superh/linux/md.h \ - superh/sysdepCallMethod.h \ - superh/threads.h \ - superh/trampolines.c + sh/common.h \ + sh/linux/config.frag \ + sh/linux/md.c \ + sh/linux/md.h \ + sh/sysdepCallMethod.h \ + sh/threads.h \ + sh/trampolines.c all: config.h $(MAKE) $(AM_MAKEFLAGS) all-am @@ -781,7 +781,7 @@ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) - $(mkdir_p) $(distdir)/alpha $(distdir)/alpha/linux $(distdir)/alpha/netbsd1 $(distdir)/alpha/osf $(distdir)/arm $(distdir)/arm/linux $(distdir)/arm/netbsd1 $(distdir)/arm/riscos $(distdir)/i386 $(distdir)/i386/beos $(distdir)/i386/bsdi $(distdir)/i386/cygwin32 $(distdir)/i386/dgux $(distdir)/i386/freebsd2 $(distdir)/i386/gnu $(distdir)/i386/linux $(distdir)/i386/netbsd1 $(distdir)/i386/nextstep3 $(distdir)/i386/openbsd2 $(distdir)/i386/oskit $(distdir)/i386/qnx $(distdir)/i386/sco3.2v5 $(distdir)/i386/solaris2 $(distdir)/i386/univel_svr4 $(distdir)/i386/win32 $(distdir)/ia64 $(distdir)/ia64/linux $(distdir)/m68k $(distdir)/m68k/a-ux $(distdir)/m68k/amigaos $(distdir)/m68k/linux $(distdir)/m68k/netbsd1 $(distdir)/m68k/nextstep3 $(distdir)/m68k/openbsd2 $(distdir)/m68k/sunos4 $(distdir)/mips $(distdir)/mips/irix5 $(distdir)/mips/linux $(distdir)/mips/netbsd1 $(distdir)/mips/ultrix4 $(distdir)/parisc $(distdir)/parisc/hpux $(distdir)/parisc/linux $(distdir)/powerpc $(distdir)/powerpc/aix $(distdir)/powerpc/darwin $(distdir)/powerpc/linux $(distdir)/powerpc/machten $(distdir)/powerpc/netbsd1 $(distdir)/s390 $(distdir)/s390/linux $(distdir)/sparc $(distdir)/sparc/bsdi3 $(distdir)/sparc/linux $(distdir)/sparc/netbsd1 $(distdir)/sparc/nextstep3 $(distdir)/sparc/openbsd2 $(distdir)/sparc/solaris2 $(distdir)/sparc/sunos4 $(distdir)/sparc/uxpds $(distdir)/superh $(distdir)/superh/linux $(distdir)/x86_64 $(distdir)/x86_64/linux + $(mkdir_p) $(distdir)/alpha $(distdir)/alpha/linux $(distdir)/alpha/netbsd1 $(distdir)/alpha/osf $(distdir)/arm $(distdir)/arm/linux $(distdir)/arm/netbsd1 $(distdir)/arm/riscos $(distdir)/i386 $(distdir)/i386/beos $(distdir)/i386/bsdi $(distdir)/i386/cygwin32 $(distdir)/i386/dgux $(distdir)/i386/freebsd2 $(distdir)/i386/gnu $(distdir)/i386/linux $(distdir)/i386/netbsd1 $(distdir)/i386/nextstep3 $(distdir)/i386/openbsd2 $(distdir)/i386/oskit $(distdir)/i386/qnx $(distdir)/i386/sco3.2v5 $(distdir)/i386/solaris2 $(distdir)/i386/univel_svr4 $(distdir)/i386/win32 $(distdir)/ia64 $(distdir)/ia64/linux $(distdir)/m68k $(distdir)/m68k/a-ux $(distdir)/m68k/amigaos $(distdir)/m68k/linux $(distdir)/m68k/netbsd1 $(distdir)/m68k/nextstep3 $(distdir)/m68k/openbsd2 $(distdir)/m68k/sunos4 $(distdir)/mips $(distdir)/mips/irix5 $(distdir)/mips/linux $(distdir)/mips/netbsd1 $(distdir)/mips/ultrix4 $(distdir)/parisc $(distdir)/parisc/hpux $(distdir)/parisc/linux $(distdir)/powerpc $(distdir)/powerpc/aix $(distdir)/powerpc/darwin $(distdir)/powerpc/linux $(distdir)/powerpc/machten $(distdir)/powerpc/netbsd1 $(distdir)/s390 $(distdir)/s390/linux $(distdir)/sh $(distdir)/sh/linux $(distdir)/sparc $(distdir)/sparc/bsdi3 $(distdir)/sparc/linux $(distdir)/sparc/netbsd1 $(distdir)/sparc/nextstep3 $(distdir)/sparc/openbsd2 $(distdir)/sparc/solaris2 $(distdir)/sparc/sunos4 $(distdir)/sparc/uxpds $(distdir)/x86_64 $(distdir)/x86_64/linux @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ Index: kaffe/config/config.alias diff -u kaffe/config/config.alias:1.19 kaffe/config/config.alias:1.20 --- kaffe/config/config.alias:1.19 Tue Jul 6 13:17:23 2004 +++ kaffe/config/config.alias Wed Jul 14 14:37:33 2004 @@ -14,7 +14,7 @@ sparc*) Khost_cpu=sparc ;; powerpc*) Khost_cpu=powerpc ;; s390*) Khost_cpu=s390 ;; -sh[34]*) Khost_cpu=superh ;; +sh[34]*) Khost_cpu=sh ;; esac =================================================================== Checking out kaffe/config/sh/common.h RCS: /home/cvs/kaffe/kaffe/config/sh/common.h,v VERS: 1.1 *************** --- /dev/null Sun Aug 4 19:57:58 2002 +++ kaffe/config/sh/common.h Wed Jul 14 16:18:36 2004 @@ -0,0 +1,43 @@ +/* + * sh/common.h + * Common Super-H configuration information. + * + * Copyright (c) 2001 + * Transvirtual Technologies, Inc. All rights reserved. + * + * Copyright (c) 2003 + * Kaffe.org contributors. See ChangeLog for details. + * + * See the file "license.terms" for information on usage and redistribution + * of this file. + */ + +#if !defined(__sh_common_h) +#define __sh_common_h + +/* The SuperH never aligns to more than a 4 byte boundary. */ +#define ALIGNMENT_OF_SIZE(S) ((S) < 4 ? (S) : 4) + +#include <stddef.h> + +/* + * Do an atomic compare and exchange. The address 'A' is checked against + * value 'O' and if they match it's exchanged with value 'N'. + * We return '1' if the exchange is sucessful, otherwise 0. + * + * Copied from "config/mips/common.h". + */ +#define COMPARE_AND_EXCHANGE(A,O,N) \ +({ \ + int ret = 0; \ + jthread_suspendall(); \ + \ + if (*(A) == (O)) { \ + *(A) = (N); \ + ret = 1; \ + } \ + jthread_unsuspendall(); \ + ret; \ +}) + +#endif /* !defined(__sh_common_h) */ =================================================================== Checking out kaffe/config/sh/sysdepCallMethod.h RCS: /home/cvs/kaffe/kaffe/config/sh/sysdepCallMethod.h,v VERS: 1.1 *************** --- /dev/null Sun Aug 4 19:57:58 2002 +++ kaffe/config/sh/sysdepCallMethod.h Wed Jul 14 16:18:36 2004 @@ -0,0 +1,86 @@ +/* + * sh/sysdepCallMethod.h + * Common sysdepCallMethod for Super-H. + * + * Copyright (c) 2001 + * Transvirtual Technologies, Inc. All rights reserved. + * + * Copyright (c) 2003 + * Kaffe.org contributors. See ChangeLog for details. + * + * See the file "license.terms" for information on usage and redistribution + * of this file. + */ + +#if ! defined(__sh_sysdepCallMethod_h) +#define __sh_sysdepCallMethod_h + +#include "support.h" + +static inline void sysdepCallMethod(callMethodInfo *call) ALWAYS_INLINE; + +static inline void sysdepCallMethod(callMethodInfo *call) +{ + int extraargs[((call)->nrargs>4)?((call)->nrargs-4):0]; + switch((call)->nrargs) { + register int r0 asm("r4"); + register int r1 asm("r5"); + register int r2 asm("r6"); + register int r3 asm("r7"); + default: + { + int *args = extraargs; + int argidx = 4; + if ((call)->callsize[3] == 2) args++; + for(; argidx < (call)->nrargs; ++argidx) { + if ((call)->callsize[argidx]) { + *args++ = (call)->args[argidx].i; + if ((call)->callsize[argidx] == 2) + *args++ = ((call)->args[argidx].j) >> 32; + } + } + } + case 4: + if ((call)->callsize[3]) { + r3 = (call)->args[3].i; + if ((call)->callsize[3] == 2) + *extraargs = ((call)->args[3].j) >> 32; + } + case 3: + if ((call)->callsize[2]) { + r2 = (call)->args[2].i; + if ((call)->callsize[2] == 2) + r3 = ((call)->args[2].j) >> 32; + } + case 2: + if ((call)->callsize[1]) { + r1 = (call)->args[1].i; + if ((call)->callsize[1] == 2) + r2 = ((call)->args[1].j) >> 32; + } + case 1: + if ((call)->callsize[0]) { + r0 = (call)->args[0].i; + if ((call)->callsize[0] == 2) + r1 = ((call)->args[0].j) >> 32; + } + case 0: + asm volatile ("jsr @%2 ; nop ; mov r0,r4 ; mov r1,r5\n" + : "=r" (r0), "=r" (r1) + : "r" ((call)->function), + "0" (r0), "1" (r1), "r" (r2), "r" (r3) + : "r14" + ); + switch((call)->rettype) { + case 'D': + case 'J': + (&(call)->ret->i)[1] = r1; + /* follow through */ + default: + (call)->ret->i = r0; + } + break; + } +} + +#endif /* ! defined(__sh_sysdepCallMethod_h) */ =================================================================== Checking out kaffe/config/sh/threads.h RCS: /home/cvs/kaffe/kaffe/config/sh/threads.h,v VERS: 1.1 *************** --- /dev/null Sun Aug 4 19:57:58 2002 +++ kaffe/config/sh/threads.h Wed Jul 14 16:18:36 2004 @@ -0,0 +1,34 @@ +/* + * sh/threads.h + * Super-H threading information. + * + * Copyright (c) 2001 + * Transvirtual Technologies, Inc. All rights reserved. + * + * See the file "license.terms" for information on usage and redistribution + * of this file. + */ + +#if ! defined(__sh_threads_h) +#define __sh_threads_h + +/**/ +/* Thread handling */ +/**/ +#define USE_INTERNAL_THREADS + +/* + * Set a default size for the stack. + */ +#if !defined(THREADSTACKSIZE) +#if defined(INTERPRETER) +#define THREADSTACKSIZE (128 * 1024) +#else +#define THREADSTACKSIZE (64 * 1024) +#endif +#endif + +#define FP_OFFSET 6 +#define SP_OFFSET 7 + +#endif /* ! defined(__sh_threads_h) */ =================================================================== Checking out kaffe/config/sh/trampolines.c RCS: /home/cvs/kaffe/kaffe/config/sh/trampolines.c,v VERS: 1.1 *************** --- /dev/null Sun Aug 4 19:57:58 2002 +++ kaffe/config/sh/trampolines.c Wed Jul 14 16:18:36 2004 @@ -0,0 +1,60 @@ +/* + * sh/trampolines.c + * Super-H trampolines codes for various occasions. + * + * Copyright (c) 1996, 1997 + * Transvirtual Technologies, Inc. All rights reserved. + * + * See the file "license.terms" for information on usage and redistribution + * of this file. + */ + +#if defined(TRAMPOLINE_FUNCTION) +/* + * If we have an explit function defined then use that. + */ +TRAMPOLINE_FUNCTION() + +#else +/* + * Otherwise we'll try to construct one. + */ +#if !defined(START_ASM_FUNC) +#define START_ASM_FUNC() ".text\n\t.align 4\n\t.global " +#endif +#if !defined(END_ASM_FUNC) +#define END_ASM_FUNC() "" +#endif +#if defined(HAVE_UNDERSCORED_C_NAMES) +#define C_FUNC_NAME(FUNC) "_" #FUNC +#else +#define C_FUNC_NAME(FUNC) #FUNC +#endif + +asm( + START_ASM_FUNC() C_FUNC_NAME(sh_do_fixup_trampoline) " \n" +C_FUNC_NAME(sh_do_fixup_trampoline) ": \n" +" mov.l r4,@-r15 \n" +" mov.l r5,@-r15 \n" +" mov.l r6,@-r15 \n" +" mov.l r7,@-r15 \n" +" mov.l r1,@-r15 \n" +" sts pr,r4 \n" +" mov.l .L99999,r0 \n" +" jsr @r0 \n" +" nop \n" +" lds.l @r15+,pr \n" +" mov.l @r15+,r7 \n" +" mov.l @r15+,r6 \n" +" mov.l @r15+,r5 \n" +" mov.l @r15+,r4 \n" +" jmp @r0 \n" +" nop \n" +" .align 2 \n" +".L99999: \n" +" .long " C_FUNC_NAME(soft_fixup_trampoline) " \n" +" \n" + END_ASM_FUNC() +); + +#endif =================================================================== Checking out kaffe/config/sh/linux/config.frag RCS: /home/cvs/kaffe/kaffe/config/sh/linux/config.frag,v VERS: 1.1 *************** --- /dev/null Sun Aug 4 19:57:58 2002 +++ kaffe/config/sh/linux/config.frag Wed Jul 14 16:18:36 2004 @@ -0,0 +1,25 @@ +# +# sh/Linux configuration. +# +# Written by Kiyo Inaba <[EMAIL PROTECTED]>, 2002; +# to support cross compilation and endian. +# +Khost_cpu=sh +Khost_os=linux +CFLAGS="-g" +if [ "$cross_compiling" = yes ]; then +# In cross environment, following values may not be detected automatically. + ac_cv_alignmentof_voidp=${ac_cv_alignmentof_voidp='4'} + ac_cv_sizeof___int64=${ac_cv_sizeof___int64='0'} + ac_cv_sizeof_int=${ac_cv_sizeof_int='4'} + ac_cv_sizeof_long=${ac_cv_sizeof_long='4'} + ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long='8'} + ac_cv_sizeof_short=${ac_cv_sizeof_short='2'} + ac_cv_sizeof_voidp=${ac_cv_sizeof_voidp='4'} +# Endian can be set by check the name of compiler, ugly? + if [ "$CC" = 'sh3eb-linux-gcc' ]; then + ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'} + else + ac_cv_c_bigendian=${ac_cv_c_bigendian='no'} + fi +fi =================================================================== Checking out kaffe/config/sh/linux/md.c RCS: /home/cvs/kaffe/kaffe/config/sh/linux/md.c,v VERS: 1.1 *************** --- /dev/null Sun Aug 4 19:57:58 2002 +++ kaffe/config/sh/linux/md.c Wed Jul 14 16:18:36 2004 @@ -0,0 +1,10 @@ +/* + * sh/linux/md.c + * Linux SuperH specific functions. + * + * Copyright (c) 2001 + * Transvirtual Technologies, Inc. All rights reserved. + * + * See the file "license.terms" for information on usage and redistribution + * of this file. + */ =================================================================== Checking out kaffe/config/sh/linux/md.h RCS: /home/cvs/kaffe/kaffe/config/sh/linux/md.h,v VERS: 1.1 *************** --- /dev/null Sun Aug 4 19:57:58 2002 +++ kaffe/config/sh/linux/md.h Wed Jul 14 16:18:36 2004 @@ -0,0 +1,53 @@ +/* + * sh/linux/md.h + * Linux SuperH configuration information. + * + * Copyright (c) 2001 + * Transvirtual Technologies, Inc. All rights reserved. + * + * Copyright (c) 2003 + * Kaffe.org contributors. See ChangeLog for details. + * + * See the file "license.terms" for information on usage and redistribution + * of this file. + */ + +#if ! defined(__sh_linux_md_h) +#define __sh_linux_md_h + +#include "sh/common.h" +#include "sh/sysdepCallMethod.h" +#include "sh/threads.h" + +#if defined(TRANSLATOR) +#include "jit-md.h" +#endif + +#define EXCEPTIONPROTO int sig, int d1, int d2, int d3, struct sigcontext ctx + +#define EXCEPTIONFIXRETURN() asm volatile("mov.l %2,@%0\n\tmov.l %1,@(4,%0)" : : "r" ((int)&ctx - 8), "r" (ctx.sc_regs[14]), "r" (ctx.sc_pc)); + +#define EXCEPTIONPC() (ctx.sc_pc) + +/* The Linux implementation of this provides a large amount + * of information for real-time stuff. We don't need that and + * the standard version returns the sigcontext which is all + * we're interested in. So just turn this flag off. + */ +#if defined(SA_SIGINFO) +#undef SA_SIGINFO +#endif + +/* + * No floating point support - so emulate + */ +#define HAVE_NO_FLOATING_POINT 1 + +#undef SA_SIGINFO + +#define SIGNAL_ARGS(sig, sc) int sig, int d1, int d2, int d3, struct sigcontext sc +#define SIGNAL_CONTEXT_POINTER(scp) struct sigcontext *scp +#define GET_SIGNAL_CONTEXT_POINTER(sc) &sc +#define SIGNAL_PC(scp) scp->sc_pc + +#endif /* ! defined(__sh_linux_md_h) */ =================================================================== Checking out kaffe/config/superh/common.h RCS: /home/cvs/kaffe/kaffe/config/superh/Attic/common.h,v VERS: 1.3 *************** --- kaffe/config/superh/common.h Wed Jul 14 16:18:36 2004 +++ /dev/null Sun Aug 4 19:57:58 2002 @@ -1,43 +0,0 @@ -/* - * superh/common.h - * Common Super-H configuration information. - * - * Copyright (c) 2001 - * Transvirtual Technologies, Inc. All rights reserved. - * - * Copyright (c) 2003 - * Kaffe.org contributors. See ChangeLog for details. - * - * See the file "license.terms" for information on usage and redistribution - * of this file. - */ - -#ifndef __superh_common_h -#define __superh_common_h - -/* The SuperH never aligns to more than a 4 byte boundary. */ -#define ALIGNMENT_OF_SIZE(S) ((S) < 4 ? (S) : 4) - -#include <stddef.h> - -/* - * Do an atomic compare and exchange. The address 'A' is checked against - * value 'O' and if they match it's exchanged with value 'N'. - * We return '1' if the exchange is sucessful, otherwise 0. - * - * Copied from "config/mips/common.h". - */ -#define COMPARE_AND_EXCHANGE(A,O,N) \ -({ \ - int ret = 0; \ - jthread_suspendall(); \ - \ - if (*(A) == (O)) { \ - *(A) = (N); \ - ret = 1; \ - } \ - jthread_unsuspendall(); \ - ret; \ -}) - -#endif =================================================================== Checking out kaffe/config/superh/sysdepCallMethod.h RCS: /home/cvs/kaffe/kaffe/config/superh/Attic/sysdepCallMethod.h,v VERS: 1.2 *************** --- kaffe/config/superh/sysdepCallMethod.h Wed Jul 14 16:18:36 2004 +++ /dev/null Sun Aug 4 19:57:58 2002 @@ -1,86 +0,0 @@ -/* - * superh/sysdepCallMethod.h - * Common sysdepCallMethod for Super-H. - * - * Copyright (c) 2001 - * Transvirtual Technologies, Inc. All rights reserved. - * - * Copyright (c) 2003 - * Kaffe.org contributors. See ChangeLog for details. - * - * See the file "license.terms" for information on usage and redistribution - * of this file. - */ - -#ifndef __superh_sysdepCallMethod_h -#define __superh_sysdepCallMethod_h - -#include "support.h" - -static inline void sysdepCallMethod(callMethodInfo *call) ALWAYS_INLINE; - -static inline void sysdepCallMethod(callMethodInfo *call) -{ - int extraargs[((call)->nrargs>4)?((call)->nrargs-4):0]; - switch((call)->nrargs) { - register int r0 asm("r4"); - register int r1 asm("r5"); - register int r2 asm("r6"); - register int r3 asm("r7"); - default: - { - int *args = extraargs; - int argidx = 4; - if ((call)->callsize[3] == 2) args++; - for(; argidx < (call)->nrargs; ++argidx) { - if ((call)->callsize[argidx]) { - *args++ = (call)->args[argidx].i; - if ((call)->callsize[argidx] == 2) - *args++ = ((call)->args[argidx].j) >> 32; - } - } - } - case 4: - if ((call)->callsize[3]) { - r3 = (call)->args[3].i; - if ((call)->callsize[3] == 2) - *extraargs = ((call)->args[3].j) >> 32; - } - case 3: - if ((call)->callsize[2]) { - r2 = (call)->args[2].i; - if ((call)->callsize[2] == 2) - r3 = ((call)->args[2].j) >> 32; - } - case 2: - if ((call)->callsize[1]) { - r1 = (call)->args[1].i; - if ((call)->callsize[1] == 2) - r2 = ((call)->args[1].j) >> 32; - } - case 1: - if ((call)->callsize[0]) { - r0 = (call)->args[0].i; - if ((call)->callsize[0] == 2) - r1 = ((call)->args[0].j) >> 32; - } - case 0: - asm volatile ("jsr @%2 ; nop ; mov r0,r4 ; mov r1,r5\n" - : "=r" (r0), "=r" (r1) - : "r" ((call)->function), - "0" (r0), "1" (r1), "r" (r2), "r" (r3) - : "r14" - ); - switch((call)->rettype) { - case 'D': - case 'J': - (&(call)->ret->i)[1] = r1; - /* follow through */ - default: - (call)->ret->i = r0; - } - break; - } -} - -#endif /* __superh_sysdepCallMethod_h */ =================================================================== Checking out kaffe/config/superh/threads.h RCS: /home/cvs/kaffe/kaffe/config/superh/Attic/threads.h,v VERS: 1.1 *************** --- kaffe/config/superh/threads.h Wed Jul 14 16:18:36 2004 +++ /dev/null Sun Aug 4 19:57:58 2002 @@ -1,34 +0,0 @@ -/* - * superh/threads.h - * Super-H threading information. - * - * Copyright (c) 2001 - * Transvirtual Technologies, Inc. All rights reserved. - * - * See the file "license.terms" for information on usage and redistribution - * of this file. - */ - -#ifndef __superh_threads_h -#define __superh_threads_h - -/**/ -/* Thread handling */ -/**/ -#define USE_INTERNAL_THREADS - -/* - * Set a default size for the stack. - */ -#if !defined(THREADSTACKSIZE) -#if defined(INTERPRETER) -#define THREADSTACKSIZE (128 * 1024) -#else -#define THREADSTACKSIZE (64 * 1024) -#endif -#endif - -#define FP_OFFSET 6 -#define SP_OFFSET 7 - -#endif =================================================================== Checking out kaffe/config/superh/trampolines.c RCS: /home/cvs/kaffe/kaffe/config/superh/Attic/trampolines.c,v VERS: 1.2 *************** --- kaffe/config/superh/trampolines.c Wed Jul 14 16:18:37 2004 +++ /dev/null Sun Aug 4 19:57:58 2002 @@ -1,60 +0,0 @@ -/* - * mips/trampolines.c - * MIPS trampolines codes for various occasions. - * - * Copyright (c) 1996, 1997 - * Transvirtual Technologies, Inc. All rights reserved. - * - * See the file "license.terms" for information on usage and redistribution - * of this file. - */ - -#if defined(TRAMPOLINE_FUNCTION) -/* - * If we have an explit function defined then use that. - */ -TRAMPOLINE_FUNCTION() - -#else -/* - * Otherwise we'll try to construct one. - */ -#if !defined(START_ASM_FUNC) -#define START_ASM_FUNC() ".text\n\t.align 4\n\t.global " -#endif -#if !defined(END_ASM_FUNC) -#define END_ASM_FUNC() "" -#endif -#if defined(HAVE_UNDERSCORED_C_NAMES) -#define C_FUNC_NAME(FUNC) "_" #FUNC -#else -#define C_FUNC_NAME(FUNC) #FUNC -#endif - -asm( - START_ASM_FUNC() C_FUNC_NAME(superh_do_fixup_trampoline) " \n" -C_FUNC_NAME(superh_do_fixup_trampoline) ": \n" -" mov.l r4,@-r15 \n" -" mov.l r5,@-r15 \n" -" mov.l r6,@-r15 \n" -" mov.l r7,@-r15 \n" -" mov.l r1,@-r15 \n" -" sts pr,r4 \n" -" mov.l .L99999,r0 \n" -" jsr @r0 \n" -" nop \n" -" lds.l @r15+,pr \n" -" mov.l @r15+,r7 \n" -" mov.l @r15+,r6 \n" -" mov.l @r15+,r5 \n" -" mov.l @r15+,r4 \n" -" jmp @r0 \n" -" nop \n" -" .align 2 \n" -".L99999: \n" -" .long " C_FUNC_NAME(soft_fixup_trampoline) " \n" -" \n" - END_ASM_FUNC() -); - -#endif =================================================================== Checking out kaffe/config/superh/linux/config.frag RCS: /home/cvs/kaffe/kaffe/config/superh/linux/Attic/config.frag,v VERS: 1.1 *************** --- kaffe/config/superh/linux/config.frag Wed Jul 14 16:18:37 2004 +++ /dev/null Sun Aug 4 19:57:58 2002 @@ -1,25 +0,0 @@ -# -# superh/Linux configuration. -# -# Written by Kiyo Inaba <[EMAIL PROTECTED]>, 2002; -# to support cross compilation and endian. -# -Khost_cpu=superh -Khost_os=linux -CFLAGS="-g" -if [ "$cross_compiling" = yes ]; then -# In cross environment, following values may not be detected automatically. - ac_cv_alignmentof_voidp=${ac_cv_alignmentof_voidp='4'} - ac_cv_sizeof___int64=${ac_cv_sizeof___int64='0'} - ac_cv_sizeof_int=${ac_cv_sizeof_int='4'} - ac_cv_sizeof_long=${ac_cv_sizeof_long='4'} - ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long='8'} - ac_cv_sizeof_short=${ac_cv_sizeof_short='2'} - ac_cv_sizeof_voidp=${ac_cv_sizeof_voidp='4'} -# Endian can be set by check the name of compiler, ugly? - if [ "$CC" = 'sh3eb-linux-gcc' ]; then - ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'} - else - ac_cv_c_bigendian=${ac_cv_c_bigendian='no'} - fi -fi =================================================================== Checking out kaffe/config/superh/linux/md.c RCS: /home/cvs/kaffe/kaffe/config/superh/linux/Attic/md.c,v VERS: 1.1 *************** --- kaffe/config/superh/linux/md.c Wed Jul 14 16:18:37 2004 +++ /dev/null Sun Aug 4 19:57:58 2002 @@ -1,10 +0,0 @@ -/* - * superh/linux/md.c - * Linux SuperH specific functions. - * - * Copyright (c) 2001 - * Transvirtual Technologies, Inc. All rights reserved. - * - * See the file "license.terms" for information on usage and redistribution - * of this file. - */ =================================================================== Checking out kaffe/config/superh/linux/md.h RCS: /home/cvs/kaffe/kaffe/config/superh/linux/Attic/md.h,v VERS: 1.4 *************** --- kaffe/config/superh/linux/md.h Wed Jul 14 16:18:37 2004 +++ /dev/null Sun Aug 4 19:57:58 2002 @@ -1,53 +0,0 @@ -/* - * superh/linux/md.h - * Linux SuperH configuration information. - * - * Copyright (c) 2001 - * Transvirtual Technologies, Inc. All rights reserved. - * - * Copyright (c) 2003 - * Kaffe.org contributors. See ChangeLog for details. - * - * See the file "license.terms" for information on usage and redistribution - * of this file. - */ - -#ifndef __superh_linux_md_h -#define __superh_linux_md_h - -#include "superh/common.h" -#include "superh/sysdepCallMethod.h" -#include "superh/threads.h" - -#if defined(TRANSLATOR) -#include "jit-md.h" -#endif - -#define EXCEPTIONPROTO int sig, int d1, int d2, int d3, struct sigcontext ctx - -#define EXCEPTIONFIXRETURN() asm volatile("mov.l %2,@%0\n\tmov.l %1,@(4,%0)" : : "r" ((int)&ctx - 8), "r" (ctx.sc_regs[14]), "r" (ctx.sc_pc)); - -#define EXCEPTIONPC() (ctx.sc_pc) - -/* The Linux implementation of this provides a large amount - * of information for real-time stuff. We don't need that and - * the standard version returns the sigcontext which is all - * we're interested in. So just turn this flag off. - */ -#if defined(SA_SIGINFO) -#undef SA_SIGINFO -#endif - -/* - * No floating point support - so emulate - */ -#define HAVE_NO_FLOATING_POINT 1 - -#undef SA_SIGINFO - -#define SIGNAL_ARGS(sig, sc) int sig, int d1, int d2, int d3, struct sigcontext sc -#define SIGNAL_CONTEXT_POINTER(scp) struct sigcontext *scp -#define GET_SIGNAL_CONTEXT_POINTER(sc) &sc -#define SIGNAL_PC(scp) scp->sc_pc - -#endif Index: kaffe/developers/autogen.sh diff -u kaffe/developers/autogen.sh:1.42 kaffe/developers/autogen.sh:1.43 --- kaffe/developers/autogen.sh:1.42 Wed Jun 23 09:11:41 2004 +++ kaffe/developers/autogen.sh Wed Jul 14 14:37:35 2004 @@ -123,16 +123,9 @@ autoconf -Wall ( - cd scripts - patch < ../developers/patch-config.sub-superh.diff - cd .. -) - -( cd libltdl # Need to regenerate things because patching # screws up timestamps autoreconf -i -Wall - patch < ../developers/patch-config.sub-superh.diff touch config-h.in ) =================================================================== Checking out kaffe/developers/patch-config.sub-superh.diff RCS: /home/cvs/kaffe/kaffe/developers/Attic/patch-config.sub-superh.diff,v VERS: 1.2 *************** --- kaffe/developers/patch-config.sub-superh.diff Wed Jul 14 16:18:37 2004 +++ /dev/null Sun Aug 4 19:57:58 2002 @@ -1,34 +0,0 @@ *** Patch too long, truncated *** _______________________________________________ kaffe mailing list [EMAIL PROTECTED] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe