[kaffe] CVS kaffe (dalibor): Cleaned up sysdepCallMethod for superh
Kaffe CVS
Kaffe Mailing List <kaffe@kaffe.org>
Sun Dec 14 08:34:02 2003
PatchSet 4226
Date: 2003/12/14 16:31:36
Author: dalibor
Branch: HEAD
Tag: (none)
Log:
Cleaned up sysdepCallMethod for superh
2003-12-14 Dalibor Topic <robilad@kaffe.org>
* config/superh/sysdepCallMethod.h: New file.
* config/superh/common.h: Moved sysdepCallMethod
into config/superh/sysdepCallMethod.h.
* config/superh/linux/md.h:
Include config/superh/sysdepCallMethod.h.
* config/Makefile.am
(EXTRA_DIST): Added config/superh/sysdepCallMethod.h.
* aclocal.m4,
config/Makefile.in:
Regenerated.
Members:
ChangeLog:1.1815->1.1816
aclocal.m4:1.83->1.84
config/Makefile.am:1.34->1.35
config/Makefile.in:1.101->1.102
config/superh/common.h:1.1->1.2
config/superh/sysdepCallMethod.h:INITIAL->1.1
config/superh/linux/md.h:1.2->1.3
Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.1815 kaffe/ChangeLog:1.1816
--- kaffe/ChangeLog:1.1815 Sun Dec 14 09:26:54 2003
+++ kaffe/ChangeLog Sun Dec 14 16:31:36 2003
@@ -1,3 +1,20 @@
+2003-12-14 Dalibor Topic <robilad@kaffe.org>
+
+ * config/superh/sysdepCallMethod.h: New file.
+
+ * config/superh/common.h: Moved sysdepCallMethod
+ into config/superh/sysdepCallMethod.h.
+
+ * config/superh/linux/md.h:
+ Include config/superh/sysdepCallMethod.h.
+
+ * config/Makefile.am
+ (EXTRA_DIST): Added config/superh/sysdepCallMethod.h.
+
+ * aclocal.m4,
+ config/Makefile.in:
+ Regenerated.
+
2003-12-14 Guilhem Lavaux <guilhem@kaffe.org>,
Everton da Silva Marques <everton@lab.ipaccess.diveo.net.br>
Index: kaffe/aclocal.m4
diff -u kaffe/aclocal.m4:1.83 kaffe/aclocal.m4:1.84
--- kaffe/aclocal.m4:1.83 Sat Dec 13 20:01:53 2003
+++ kaffe/aclocal.m4 Sun Dec 14 16:31:37 2003
@@ -8723,7 +8723,7 @@
AU_DEFUN([fp_WITH_DMALLOC], [AM_WITH_DMALLOC])
# ----------------------------------------------------------------------------
-# $Id: aclocal.m4,v 1.83 2003/12/13 20:01:53 dalibor Exp $
+# $Id: aclocal.m4,v 1.84 2003/12/14 16:31:37 dalibor Exp $
#
# Copyright (C) 2003 Free Software Foundation, Inc.
#
@@ -8767,7 +8767,7 @@
#
# GNU Crypto m4 macro for use by VM Providers
#
-# $Revision: 1.83 $
+# $Revision: 1.84 $
#
# process --with-gnu-crypto configure option.
Index: kaffe/config/Makefile.am
diff -u kaffe/config/Makefile.am:1.34 kaffe/config/Makefile.am:1.35
--- kaffe/config/Makefile.am:1.34 Sat Dec 13 20:01:53 2003
+++ kaffe/config/Makefile.am Sun Dec 14 16:31:39 2003
@@ -314,6 +314,7 @@
superh/linux/config.frag \
superh/linux/md.c \
superh/linux/md.h \
+ superh/sysdepCallMethod.h \
superh/threads.h \
superh/trampolines.c
Index: kaffe/config/Makefile.in
diff -u kaffe/config/Makefile.in:1.101 kaffe/config/Makefile.in:1.102
--- kaffe/config/Makefile.in:1.101 Sat Dec 13 20:01:53 2003
+++ kaffe/config/Makefile.in Sun Dec 14 16:31:39 2003
@@ -556,6 +556,7 @@
superh/linux/config.frag \
superh/linux/md.c \
superh/linux/md.h \
+ superh/sysdepCallMethod.h \
superh/threads.h \
superh/trampolines.c
Index: kaffe/config/superh/common.h
diff -u kaffe/config/superh/common.h:1.1 kaffe/config/superh/common.h:1.2
--- kaffe/config/superh/common.h:1.1 Fri Jul 5 22:22:24 2002
+++ kaffe/config/superh/common.h Sun Dec 14 16:31:39 2003
@@ -5,6 +5,9 @@
* 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.
*/
@@ -13,69 +16,6 @@
#define __superh_common_h
#include <stddef.h>
-
-#define sysdepCallMethod(CALL) do { \
- 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; \
- } \
-} while (0)
/*
* Do an atomic compare and exchange. The address 'A' is checked against
===================================================================
Checking out kaffe/config/superh/sysdepCallMethod.h
RCS: /home/cvs/kaffe/kaffe/config/superh/sysdepCallMethod.h,v
VERS: 1.1
***************
--- /dev/null Sun Aug 4 19:57:58 2002
+++ kaffe/config/superh/sysdepCallMethod.h Sun Dec 14 16:33:40 2003
@@ -0,0 +1,84 @@
+/*
+ * 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)
+{
+ 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 */
Index: kaffe/config/superh/linux/md.h
diff -u kaffe/config/superh/linux/md.h:1.2 kaffe/config/superh/linux/md.h:1.3
--- kaffe/config/superh/linux/md.h:1.2 Mon Oct 6 19:23:08 2003
+++ kaffe/config/superh/linux/md.h Sun Dec 14 16:31:40 2003
@@ -5,6 +5,9 @@
* 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.
*/
@@ -12,7 +15,8 @@
#ifndef __superh_linux_md_h
#define __superh_linux_md_h
-#include "superh/common.h"
+#include "superh/common.h
+#include "superh/sysdepCallMethod.h"
#include "superh/threads.h"
#if defined(TRANSLATOR)