[kaffe] CVS kaffe (dalibor): Moved config/superh to config/sh

Kaffe CVS cvs-commits at kaffe.org
Wed Jul 14 09:18:38 PDT 2004


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  <robilad at kaffe.org>

        * 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  <robilad at kaffe.org>
 
+	* 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  <robilad at kaffe.org>
+
 	* 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, at -r15 \n"
+"	mov.l	r5, at -r15 \n"
+"	mov.l	r6, at -r15 \n"
+"	mov.l	r7, at -r15 \n"
+"	mov.l	r1, at -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 <k-inaba at mxb.mesh.ne.jp>, 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, at -r15 \n"
-"	mov.l	r5, at -r15 \n"
-"	mov.l	r6, at -r15 \n"
-"	mov.l	r7, at -r15 \n"
-"	mov.l	r1, at -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 <k-inaba at mxb.mesh.ne.jp>, 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 ***




More information about the kaffe mailing list