[kaffe] CVS kaffe (guilhem): sysdepCallMethod implemented for m68k/openbsd2.

Kaffe CVS cvs-commits at kaffe.org
Mon Aug 16 03:41:40 PDT 2004


PatchSet 5071 
Date: 2004/08/16 10:33:34
Author: guilhem
Branch: HEAD
Tag: (none) 
Log:
sysdepCallMethod implemented for m68k/openbsd2.

Members: 
	ChangeLog:1.2629->1.2630 
	config/m68k/openbsd2/md.h:1.7->1.8 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.2629 kaffe/ChangeLog:1.2630
--- kaffe/ChangeLog:1.2629	Mon Aug 16 02:43:39 2004
+++ kaffe/ChangeLog	Mon Aug 16 10:33:34 2004
@@ -1,3 +1,9 @@
+2004-08-16  Guilhem Lavaux  <guilhem at kaffe.org>
+
+	* config/m68k/openbsd2/md.h
+	(sysdepCallMethod): Imported from netbsd and translated to MIT/GNU as
+	syntax.
+
 2004-08-15  Dalibor Topic  <robilad at kaffe.org>
 
         * include/Makefile.am:
Index: kaffe/config/m68k/openbsd2/md.h
diff -u kaffe/config/m68k/openbsd2/md.h:1.7 kaffe/config/m68k/openbsd2/md.h:1.8
--- kaffe/config/m68k/openbsd2/md.h:1.7	Thu Jun 17 17:21:00 2004
+++ kaffe/config/m68k/openbsd2/md.h	Mon Aug 16 10:33:37 2004
@@ -20,7 +20,6 @@
 
 #include "m68k/common.h"
 #include "m68k/threads.h"
-#include "m68k/sysdepCallMethod.h"
 
 /*
  * Stack offset.
@@ -46,5 +45,56 @@
 #if defined(TRANSLATOR)
 #include "jit-md.h"
 #endif
+
+#define	sysdepCallMethod(CALL)					  \
+	asm volatile (						\n\
+	"1:							\n"\
+	"	cmpl	#0,%0					\n"\
+	"	beq	3f					\n"\
+	"	subql	#1,%0					\n"\
+	"	cmpb	#0,%2@(%0:l)				\n"\
+	"	beq	1b					\n"\
+	"	cmpb	#1,%2@(%0:l)				\n"\
+	"	beq	2f					\n"\
+	"	movel	%1@(4,%0:l:8),sp at -			\n"\
+	"2:							\n"\
+	"	movel	%1@(%0:l:8),sp at -			\n"\
+	"	jmp	1b					\n"\
+	"3:							\n"\
+	"	jsr	%3@					\n"\
+        :							  \
+	: "r" ((CALL)->nrargs),					  \
+	  "a" ((CALL)->args),					  \
+	  "a" ((CALL)->callsize),				  \
+	  "a" ((CALL)->function)				  \
+	: "d0", "d1", "fp0", "cc", "memory");			  \
+	asm volatile (						\n\
+	"	cmpb	#2,%0					\n"\
+	"	bne	5f					\n"\
+	"	cmpb	#0x44,%1				\n"\
+	"	bne	4f					\n"\
+	"	fmoved	fp0,%2@					\n"\
+	"	jmp	7f					\n"\
+	"4:							\n"\
+	"	movel	d1,%2@(4)				\n"\
+	"	movel	d0,%2@					\n"\
+	"	jmp	7f					\n"\
+	"5:							\n"\
+	"	cmpb	#1,%0					\n"\
+	"	bne	7f					\n"\
+	"	cmpb	#0x46,%1				\n"\
+	"	bne	6f					\n"\
+	"	fmoves	fp0,%2@					\n"\
+	"	jmp	7f					\n"\
+	"6:							\n"\
+	"	movel	d0,%2@					\n"\
+	"7:							\n"\
+        :							  \
+	: "m" ((CALL)->retsize),				  \
+	  "m" ((CALL)->rettype),				  \
+	  "a" ((CALL)->ret)					  \
+	: "d0", "d1", "fp0", "cc", "memory");			  \
+	asm volatile ("addw %0,sp",				  \
+	: : "r" ((CALL)->argsize * sizeof(jint)) : "cc")
 
 #endif




More information about the kaffe mailing list