[Kaffe] ChangeLog entry added twice

Kiyo Inaba inaba at src.ricoh.co.jp
Thu Mar 25 16:43:00 PST 1999


Moses wrote:
> This entry in the ChangeLog seems to have been added twice.
Sorry, and you are right. The reason why it happens should be I modify
diff file just before I submitted. Of course I should not do such, but
that's what I did... And Godmar may kindly put the diffes by hand.

Anyway, the patch which shall be applied to current repository is
attached.

BTW, m68k/linux/jit test finished with '14 of 79 fail'. Not so bad
for the first try, isn't it?

Kiyo
----------------------------------------------------------------------
diff -cr kaffe-snap-0326/ChangeLog kaffe-temp/ChangeLog
*** kaffe-snap-0326/ChangeLog	Fri Mar 26 07:43:55 1999
--- kaffe-temp/ChangeLog	Fri Mar 26 09:34:52 1999
***************
*** 39,69 ****
  	* configure.in: enhance help message re --with-engine option
  	* configure: regen
  
! Wed Mar 25 16:40:00 1999  Kiyo Inaba <inaba at src.ricoh.co.jp>
  
  	* config/m68k/common.h: sysdepCallMethod for linux.
  	Jit support for linux comes back.
  	* config/m68k/linux/config.frag: eliminate the use of -O
  	flag to evading jit bug.
  
! Wed Mar 25 16:40:00 1999  Kiyo Inaba <inaba at src.ricoh.co.jp>
! 
! 	* config/m68k/linux/md.h: define SP_OFFSET.
! 	* config/alpha/jit.h, config/m68k/jit.h, config/m68k/openbsd2/jit.h
! 	remove obsolete macros as THREAD_CTX, RETURN_INT, etc.
! 	* config/m68k/netbsd1/jit-md.h: Jit support is now
! 	integrated with linux port.
! 	* config/m68k/linux/jit-md.h: new file. Jit support for
! 	linux (which has not yet been finished).
! 	* config/m68k/netbsd1/config.frag: eliminate the use of -O2
! 	flag to evading jit bug.
! 	* config/m68k/linux/config.frag: cross compiling suport.
! 	* config/m68k/trampolines.c: change assembler syntax compatible
! 	with linux's as. The 'm68k_do_fixup_trampoline' function is
! 	now used with shared_vmlibrary, but I've not yet tested if
! 	it works or not.
! 
! Wed Mar 25 16:40:00 1999  Kiyo Inaba <inaba at src.ricoh.co.jp>
  
  	* config/m68k/linux/md.h: define SP_OFFSET.
  	* config/alpha/jit.h, config/m68k/jit.h, config/m68k/openbsd2/jit.h
--- 39,52 ----
  	* configure.in: enhance help message re --with-engine option
  	* configure: regen
  
! Wed Mar 25 22:30:00 JST 1999  Kiyo Inaba <inaba at src.ricoh.co.jp>
  
  	* config/m68k/common.h: sysdepCallMethod for linux.
  	Jit support for linux comes back.
  	* config/m68k/linux/config.frag: eliminate the use of -O
  	flag to evading jit bug.
  
! Wed Mar 25 16:40:00 JST 1999  Kiyo Inaba <inaba at src.ricoh.co.jp>
  
  	* config/m68k/linux/md.h: define SP_OFFSET.
  	* config/alpha/jit.h, config/m68k/jit.h, config/m68k/openbsd2/jit.h
diff -cr kaffe-snap-0326/config/m68k/linux/jit-md.h kaffe-temp/config/m68k/linux/jit-md.h
*** kaffe-snap-0326/config/m68k/linux/jit-md.h	Fri Mar 26 09:38:58 1999
--- kaffe-temp/config/m68k/linux/jit-md.h	Fri Mar 26 09:32:56 1999
***************
*** 0 ****
--- 1,45 ----
+ /*
+  * m68k/netbsd1/jit-md.h
+  * NetBSD m68k JIT configuration information.
+  *
+  * Copyright (c) 1996, 1997
+  *      Transvirtual Technologies, Inc.  All rights reserved.
+  *
+  * See the file "license.terms" for information on usage and redistribution
+  * of this file.
+  *
+  * Written by Marcello Balduccini <marcy at morgana.usr.dsi.unimi.it>, 1997.
+  * NOTE: this file is heavily based on m68k/a-ux/jit-md.h and
+  * m68k/openbsd2/jit-md.h, written by Richard Henderson <rth at tamu.edu>, 1997.
+  */
+ 
+ #ifndef __m68k_netbsd_jit_md_h
+ #define __m68k_netbsd_jit_md_h
+ 
+ /**/
+ /* Include common information. */
+ /**/
+ #include "m68k/jit.h"
+ 
+ /**/
+ /* Define where addresses are returned.  */
+ /**/
+ 
+ #define M68K_RETURN_REF		REG_d0	/* d0 */
+ 
+ /**/
+ /* Extra exception handling information. */
+ /**/
+ #include <signal.h>
+ 
+ #define	EXCEPTIONPROTO							\
+ 	int sig, int code, struct sigcontext *ctx
+ 
+ /* Get the first exception frame from a signal handler */
+ #define	EXCEPTIONFRAME(f, c)						\
+ 	do {								\
+ 		(f).retfp = (uintp)__builtin_frame_address(1);		\
+ 		(f).retpc = (uintp)(c)->sc_pc;				\
+ 	} while (0)
+ 
+ #endif
diff -cr kaffe-snap-0326/config/m68k/netbsd1/jit.h kaffe-temp/config/m68k/netbsd1/jit.h
*** kaffe-snap-0326/config/m68k/netbsd1/jit.h	Thu Mar 25 02:52:54 1999
--- kaffe-temp/config/m68k/netbsd1/jit.h	Fri Mar 26 09:33:08 1999
***************
*** 1,202 ****
- /*
-  * m68k/netbsd1/jit.h
-  * NetBSD M68000 JIT configuration information.
-  *
-  * Copyright (c) 1996, 1997, 1998
-  *      Transvirtual Technologies, Inc.  All rights reserved.
-  *
-  * See the file "license.terms" for information on usage and redistribution
-  * of this file.
-  *
-  * Written by Marcello Balduccini <marcy at morgana.usr.dsi.unimi.it>, 1997
-  * NOTE: this file is heavily based on m68k/jit.h,
-  * written by Richard Henderson <rth at tamu.edu>, 1997.
-  *
-  * Modified by Kiyo Inaba <inaba at src.ricoh.co.jp>,
-  * to use trampoline code.
-  */
- 
- #ifndef __m68k_jit_h
- #define __m68k_jit_h
- 
- /**/
- /* Exception handling information. */
- /**/
- 
- /* Structure of exception frame on stack */
- typedef struct _exceptionFrame {
-         uintp	retfp;
-         uintp	retpc;
- } exceptionFrame;
- 
- /* Is this frame valid (ie. is it on the current stack) ? */
- #define	FRAMEOKAY(f)							\
- 	((f) && (f)->retfp >= (uintp)TCTX(currentThread)->stackBase &&	\
- 	 (f)->retfp < (uintp)TCTX(currentThread)->stackEnd)
- 
- /* Get the next frame in the chain */
- #define	NEXTFRAME(f)							\
- 	(((exceptionFrame*)(f))->retfp)
- 
- /* Extract the PC from the given frame */
- #define	PCFRAME(f)		((f)->retpc)
- 
- /* Get the first exception frame from a subroutine call */
- #define	FIRSTFRAME(f, o)						\
- 	((f) = *(exceptionFrame*)__builtin_frame_address(0))
- 
- /* Extract the object argument from given frame */
- #define FRAMEOBJECT(f) 		(*(Hjava_lang_Object**)((f)->retfp + 8))
- 
- /* Call the relevant exception handler (rewinding the stack as
-    necessary). */
- #define CALL_KAFFE_EXCEPTION(frame, info, obj)				\
- 	__asm__ __volatile__(						\
- 		"move%.l %1,%/d0\n\t"					\
- 		"move%.l %0,%/a6\n\t"					\
- 		"jmp %2@"						\
- 		: : "g"(frame->retfp), "g"(obj), "a"(info.handler)	\
- 		: "d0", "cc", "memory")
- 
- /**/
- /* Method dispatch.  */
- /**/
- 
- #define HAVE_TRAMPOLINE
- 
- typedef struct _methodTrampoline {
-         unsigned short call;
- 	int fixup;
- 	struct _methods* meth;
- } methodTrampoline;
- 
- extern void m68k_do_fixup_trampoline(void);
- 
- #define FILL_IN_TRAMPOLINE(t,m)                                         \
-         do {                                                            \
-                 (t)->call = 0x4eb9;	/* jsr abs.l */			\
-                 (t)->fixup = (int)m68k_do_fixup_trampoline;		\
-                 (t)->meth = (m);                                        \
-         } while (0)
- 
- #define FIXUP_TRAMPOLINE_DECL   Method** _pmeth
- #define FIXUP_TRAMPOLINE_INIT   (meth = *_pmeth)
- 
- /**/
- /* Register management information. */
- /**/
- 
- /* Define the register set */
- 
- /* Until we have some method of determining in the prologue which
-    Rnosaveoncall registers are used by a method, it is not a win to
-    have any at all.  */
- 
- #define	REGISTER_SET							\
- 	{ /* d0 */	0, 0, Rint, 		0, 0, 0  },		\
- 	{ /* d1 */	0, 0, Rint, 		0, 0, 1  },		\
- 	{ /* d2 */	0, 0, Rint, 		/*Rnosaveoncall*/0, 0, 2  }, \
- 	{ /* d3 */	0, 0, Rint, 		/*Rnosaveoncall*/0, 0, 3  }, \
- 	{ /* d4 */	0, 0, Rint, 		/*Rnosaveoncall*/0, 0, 4  }, \
- 	{ /* d5 */	0, 0, Rint, 		/*Rnosaveoncall*/0, 0, 5  }, \
- 	{ /* d6 */	0, 0, Rint, 		/*Rnosaveoncall*/0, 0, 6  }, \
- 	{ /* d7 */	0, 0, Rint, 		/*Rnosaveoncall*/0, 0, 7  }, \
- 	{ /* a0 */	0, 0, Rref,		0, 0, 8  },		\
- 	{ /* a1 */	0, 0, Rref,		0, 0, 9  },		\
- 	{ /* a2 */	0, 0, Rref,		/*Rnosaveoncall*/0, 0, 10 }, \
- 	{ /* a3 */	0, 0, Rref,		/*Rnosaveoncall*/0, 0, 11 }, \
- 	{ /* a4 */	0, 0, Rref,		/*Rnosaveoncall*/0, 0, 12 }, \
- 	{ /* a5 */	0, 0, Rref,		/*Rnosaveoncall*/0, 0, 13 }, \
- 	{ /* fp */	0, 0, Reserved,		0, 0, 14 },		\
- 	{ /* sp */	0, 0, Reserved,		0, 0, 15 },		\
- 	{ /* fp0 */	0, 0, Rfloat|Rdouble,	0, 0, 16 },		\
- 	{ /* fp1 */	0, 0, Rfloat|Rdouble,	0, 0, 17 },		\
- 	{ /* fp2 */	0, 0, Rfloat|Rdouble,	/*Rnosaveoncall*/0, 0, 18 }, \
- 	{ /* fp3 */	0, 0, Rfloat|Rdouble,	/*Rnosaveoncall*/0, 0, 19 }, \
- 	{ /* fp4 */	0, 0, Rfloat|Rdouble,	/*Rnosaveoncall*/0, 0, 20 }, \
- 	{ /* fp5 */	0, 0, Rfloat|Rdouble,	/*Rnosaveoncall*/0, 0, 21 }, \
- 	{ /* fp6 */	0, 0, Rfloat|Rdouble,	/*Rnosaveoncall*/0, 0, 22 }, \
- 	{ /* fp7 */	0, 0, Rfloat|Rdouble,	/*Rnosaveoncall*/0, 0, 23 }, 
- 
- /* Number of registers in the register set */
- #define	NR_REGISTERS	24
- 
- #if 0
- /* Define which registers are used for which return values as seen
-  * by the the callee */
- #define	RETURN_INT		0	/* d0 */
- #define	RETURN_REF		M68K_RETURN_REF
- #define	RETURN_LONG_LOW		1	/* d1 */
- #define	RETURN_LONG_HIGH	0	/* d0 */
- #define	RETURN_FLOAT		32	/* f0 */
- #define	RETURN_DOUBLE_LOW	32	/* f0 */
- #define	RETURN_DOUBLE_HIGH	32	/* Not used in this configuration */
- #endif
- 
- /**/
- /* Opcode generation. */
- /**/
- 
- #define LABEL_FRAMESIZE(L,P) \
- 	{ \
- 		int framesize = SLOTSIZE * (maxLocal + maxStack + \
- 			maxTemp - maxArgs); \
- 			*(P) = framesize; \
- 	}
- 
- #define EXTRA_LABELS(P,D,L)
- 
- /* Define if generated code uses two operands rather than one */
- #define	TWO_OPERAND
- 
- /**/
- /* Slot management information. */
- /**/
- 
- /* Size of each slot */
- #define	SLOTSIZE		4
- 
- /*
-  * A stack frame looks like:
-  *
-  *      |				|
-  *	|  Arguments			|
-  *      |-------------------------------|
-  *	|  Return address		|
-  *      |-------------------------------|
-  *      |  Saved fp			|
-  * fp-> |-------------------------------|
-  *      |  Temporaries			|
-  * sp-> |-------------------------------|
-  */
- 
- /* Generate slot offset for an argument (relative to fp) */
- #define SLOT2ARGOFFSET(_n)    (8 + SLOTSIZE * (_n))
- 
- /* Generate slot offset for a local (non-argument) (relative to fp) */
- #define SLOT2LOCALOFFSET(_n)  (-SLOTSIZE * (maxTemp+maxLocal+maxStack - (_n)))
- 
- /* Wrap up a native call for the JIT */
- #define	KAFFEJIT_TO_NATIVE(_m)
- 
- /* On the 68040 (and 060 I presume) we need to flush the instruction
-    cache before running new code.  Stupidly, Motorola made cpush a
-    privledged instruction, so we have to get operating system help
-    for this.  Naturally, there is no standard there.  */
- 
- #define FLUSH_DCACHE(beg, end) __clear_cache((beg), (end))
- #if 0
- #define FLUSH_DCACHE(beg, end)                                  \
-         __asm__ __volatile__(                                   \
-                 "movem%.l %/d0-%/d7/%/a0-%/a5,%-\n\t"           \
-                 "move%.l %0,%/a1\n\t"                           \
-                 "move%.l %1,%/d1\n\t"                           \
-                 "sub%.l %/d1,%/a1\n\t"                          \
-                 "movel  %#0x80000004,d0\n\t"                    \
-                 "trap   %#12\n\t"                               \
-                 "movem%.l %+,%/d0-%/d7/%/a0-%/a5"               \
-                 :                                               \
-                 : "g" (beg), "g" (end) )
- #endif
- 
- #endif
--- 0 ----


More information about the kaffe mailing list