[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dotgnu-pnet-commits] pnet ./ChangeLog ./configure.in engine/Makefile...
From: |
Klaus Treichel |
Subject: |
[dotgnu-pnet-commits] pnet ./ChangeLog ./configure.in engine/Makefile... |
Date: |
Mon, 19 Dec 2005 18:00:35 +0000 |
CVSROOT: /cvsroot/dotgnu-pnet
Module name: pnet
Branch:
Changes by: Klaus Treichel <address@hidden> 05/12/19 18:00:35
Modified files:
. : ChangeLog configure.in
engine : Makefile.am engine.c engine.h layout.c
Added files:
engine : jitc.c jitc.h jitc_arith.c jitc_branch.c
jitc_call.c jitc_const.c jitc_conv.c
jitc_except.c jitc_obj.c jitc_ptr.c
jitc_setup.c jitc_stack.c jitc_var.c
Log message:
Add files for the jit coder and first changes in the engine.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/ChangeLog.diff?tr1=1.3251&tr2=1.3252&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/configure.in.diff?tr1=1.210&tr2=1.211&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/Makefile.am.diff?tr1=1.80&tr2=1.81&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/engine.c.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/engine.h.diff?tr1=1.107&tr2=1.108&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/layout.c.diff?tr1=1.39&tr2=1.40&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/jitc.c?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/jitc.h?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/jitc_arith.c?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/jitc_branch.c?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/jitc_call.c?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/jitc_const.c?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/jitc_conv.c?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/jitc_except.c?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/jitc_obj.c?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/jitc_ptr.c?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/jitc_setup.c?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/jitc_stack.c?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/jitc_var.c?rev=1.1
Patches:
Index: pnet/ChangeLog
diff -u pnet/ChangeLog:1.3251 pnet/ChangeLog:1.3252
--- pnet/ChangeLog:1.3251 Mon Dec 19 07:07:56 2005
+++ pnet/ChangeLog Mon Dec 19 18:00:35 2005
@@ -1,5 +1,20 @@
2005-12-19 Klaus Treichel <address@hidden>
+ * configure.in: add switch --enable-jit for enabling the jit coder.
+
+ * engine/Makefile.am: add the new jit coder sources to build.
+
+ * engine/engine.c, engine/engine.h, engine/layout.c: add first changes
for
+ the jit coder (mainly classlayout).
+
+ * engine/jitc.c, engine/jitc.h, engine/jitc_arith.c,
engine/jitc_branch.c,
+ engine/jitc_call.c, engine/jitc_const.c, engine/jitc_conv.c,
+ engine/jitc_except.c, engine/jitc_obj.c, engine/jitc_ptr.c,
+ engine/jitc_setup.c, engine/jitc_stack.c, engine/jitc_var.c: Stub the
first
+ files for the jit coder (thanks radekp).
+
+2005-12-19 Klaus Treichel <address@hidden>
+
* libffi/ChangeLog, libffi/src/powerpc/linux64.S,
libffi/src/powerpc/ffi.c:
update to current libffi.
Index: pnet/configure.in
diff -u pnet/configure.in:1.210 pnet/configure.in:1.211
--- pnet/configure.in:1.210 Mon Nov 21 06:19:19 2005
+++ pnet/configure.in Mon Dec 19 18:00:35 2005
@@ -104,6 +104,33 @@
withgc=yes
])
+def_jit=false
+AC_SUBST(JIT_LIBS)
+AC_SUBST(JIT_INCLUDE)
+AC_ARG_ENABLE(jit,
+[ --enable-jit Enable the just in time compiler],
+[case "${enableval}" in
+ yes) jit=true ;;
+ no) jit=false ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-jit) ;;
+esac],[jit=$def_jit])
+if test x$jit = xtrue ; then
+ AC_DEFINE(IL_USE_JIT, 1, [Use the just in time compiler])
+ if test -f "../libjit/jit/.libs/libjit.so" ; then
+ JIT_LIBS='$(top_builddir)/../libjit/jit/.libs/libjit.so'
+ else
+ if test -f "../libjit/jit/.libs/libjit.a" ; then
+ JIT_LIBS='$(top_builddir)/../libjit/jit/.libs/libjit.a'
+ else
+ AC_MSG_ERROR(libjit library not found in ../libjit/jit/.libs)
+ fi
+ fi
+ JIT_INCLUDE='-I$(top_srcdir)/../libjit/include'
+else
+ JIT_LIBS=""
+ JIT_INCLUDE=""
+fi
+
dnl The --with-profile=NAME option is used to change the build profile.
AC_SUBST(PROFILE_NAME)
AC_ARG_WITH(profile,
Index: pnet/engine/Makefile.am
diff -u pnet/engine/Makefile.am:1.80 pnet/engine/Makefile.am:1.81
--- pnet/engine/Makefile.am:1.80 Tue Oct 4 05:34:57 2005
+++ pnet/engine/Makefile.am Mon Dec 19 18:00:35 2005
@@ -13,6 +13,19 @@
INTERNAL_INCLUDES = int_table.c
+JITC_INCLUDES = jitc.h \
+ jitc_arith.c \
+ jitc_branch.c \
+ jitc_call.c \
+ jitc_const.c \
+ jitc_conv.c \
+ jitc_except.c \
+ jitc_obj.c \
+ jitc_ptr.c \
+ jitc_setup.c \
+ jitc_stack.c \
+ jitc_var.c
+
MD_ARM_INCLUDES = md_arm.h arm_codegen.h
MD_IA64_INCLUDES = md_ia64.h md_ia64_macros.h
@@ -54,6 +67,7 @@
$(CVMC_INCLUDES) \
gen_marshal.tc \
$(INTERNAL_INCLUDES) \
+ $(JITC_INCLUDES) \
$(MD_AMD64_INCLUDES) \
$(MD_ARM_INCLUDES) \
$(MD_IA64_INCLUDES) \
@@ -81,6 +95,7 @@
heap.c \
int_proto.h \
internal.c \
+ jitc.c \
layout.c \
lib_array.c \
lib_charinfo.c \
@@ -141,12 +156,12 @@
ilrun_SOURCES = ilrun.c
ilrun_LDADD = libILEngine.a ../dumpasm/libILDumpAsm.a \
../image/libILImage.a ../support/libILSupport.a \
- $(PACKAGE_LIBS) $(TERMCAPLIBS)
+ $(PACKAGE_LIBS) $(TERMCAPLIBS) $(JIT_LIBS)
ilverify_SOURCES = ilverify.c
ilverify_LDADD = libILEngine.a ../dumpasm/libILDumpAsm.a \
../image/libILImage.a ../support/libILSupport.a \
- $(PACKAGE_LIBS) $(TERMCAPLIBS)
+ $(PACKAGE_LIBS) $(TERMCAPLIBS) $(JIT_LIBS)
## We need "-fno-gcse" to stop gcc being overeager when it compiles
## the interpreter core in direct threading mode.
@@ -155,6 +170,7 @@
AM_CFLAGS = -I$(top_srcdir)/libffi/include $(NO_GCSE) $(NO_INLINE_FUNCTIONS) \
$(NO_UNIT_AT_A_TIME) -I$(top_srcdir)/support \
-I$(top_srcdir)/libgc/include -I$(top_srcdir)/include \
+ $(JIT_INCLUDE) \
-I../libffi/include -I.
-DBUILD_PROFILE_NAME="\"$(PROFILE_NAME)\""
else
@@ -162,12 +178,12 @@
ilrun_SOURCES = ilrun.c
ilrun_LDADD = libILEngine.a \
../image/libILImage.a ../support/libILSupport.a \
- $(PACKAGE_LIBS) $(TERMCAPLIBS)
+ $(PACKAGE_LIBS) $(TERMCAPLIBS) $(JIT_LIBS)
ilverify_SOURCES = ilverify.c
ilverify_LDADD = libILEngine.a \
../image/libILImage.a ../support/libILSupport.a \
- $(PACKAGE_LIBS) $(TERMCAPLIBS)
+ $(PACKAGE_LIBS) $(TERMCAPLIBS) $(JIT_LIBS)
## We need "-fno-gcse" to stop gcc being overeager when it compiles
## the interpreter core in direct threading mode.
@@ -176,6 +192,7 @@
AM_CFLAGS = -I$(top_srcdir)/libgc/include -I$(top_srcdir)/libffi/include \
$(NO_GCSE) $(NO_INLINE_FUNCTIONS) $(NO_UNIT_AT_A_TIME) \
-I$(top_srcdir)/include -I../libffi/include
-I../support/ -I. \
+ $(JIT_INCLUDE) \
-DIL_WITHOUT_TOOLS -Os
endif
@@ -186,6 +203,8 @@
internal.$(OBJEXT): internal.c $(INTERNAL_INCLUDES)
+jitc.$(OBJEXT): jitc.c $(JITC_INCLUDES)
+
md_x86.$(OBJEXT): md_x86.c $(MD_X86_INCLUDES) cvm_config.h
md_arm.$(OBJEXT): md_arm.c $(MD_ARM_INCLUDES) cvm_config.h
Index: pnet/engine/engine.c
diff -u pnet/engine/engine.c:1.1 pnet/engine/engine.c:1.2
--- pnet/engine/engine.c:1.1 Thu May 5 10:16:16 2005
+++ pnet/engine/engine.c Mon Dec 19 18:00:35 2005
@@ -51,6 +51,12 @@
return IL_EXEC_INIT_OUTOFMEMORY;
}
#endif
+#ifdef IL_USE_JIT
+ if(!ILJitInit())
+ {
+ return IL_EXEC_INIT_OUTOFMEMORY;
+ }
+#endif
/* Initialize the thread routines */
ILThreadInit();
Index: pnet/engine/engine.h
diff -u pnet/engine/engine.h:1.107 pnet/engine/engine.h:1.108
--- pnet/engine/engine.h:1.107 Mon Nov 21 14:31:16 2005
+++ pnet/engine/engine.h Mon Dec 19 18:00:35 2005
@@ -196,6 +196,10 @@
/* class private data */
typedef struct _tagILClassPrivate ILClassPrivate;
+#ifdef IL_USE_JIT
+#include "jitc.h"
+#endif
+
/*
* Execution control context for a process.
*/
@@ -477,6 +481,9 @@
ILNativeInt gcTypeDescriptor; /* Describes the layout
of the type for the GC */
ILClassPrivate *nextClassPrivate; /* linked list of
ILClassPrivate objects */
ILExecProcess *process; /* Back-pointer to the
process this class belongs to */
+#ifdef IL_USE_JIT
+ ILJitTypes jitTypes; /* jit types
for this CLR type */
+#endif
#ifdef IL_USE_IMTS
ILUInt32 imtBase; /* Base for IMT
identifiers */
ILMethod *imt[IL_IMT_SIZE]; /* Interface method table */
@@ -572,6 +579,13 @@
}
#endif
+#ifdef IL_USE_JIT
+/*
+ * Class information for the JIT coder.
+ */
+extern ILCoderClass const _ILJITCoderClass;
+#endif
+
/*
* Class information for the CVM coder.
*/
Index: pnet/engine/layout.c
diff -u pnet/engine/layout.c:1.39 pnet/engine/layout.c:1.40
--- pnet/engine/layout.c:1.39 Fri Nov 25 13:17:19 2005
+++ pnet/engine/layout.c Mon Dec 19 18:00:35 2005
@@ -45,7 +45,9 @@
int hasFinalizer;
int managedInstance;
int managedStatic;
-
+#ifdef IL_USE_JIT
+ ILJitTypes *jitTypes;
+#endif
} LayoutInfo;
/*
@@ -64,6 +66,14 @@
{
/* Lay out a primitive type */
layout->managedInstance = 0;
+ #ifdef IL_USE_JIT
+ if(!(layout->jitTypes =
ILJitPrimitiveClrTypeToJitTypes(ILType_ToElement(type))))
+ {
+ return 0;
+ }
+ layout->size = ILJitTypeGetSize(layout->jitTypes->jitTypeBase);
+ layout->alignment =
ILJitTypeGetAlignment(layout->jitTypes->jitTypeBase);
+ #else
switch(ILType_ToElement(type))
{
case IL_META_ELEMTYPE_BOOLEAN:
@@ -169,6 +179,7 @@
default: return 0;
}
+ #endif /* IL_USE_JIT */
layout->nativeSize = layout->size;
layout->nativeAlignment = layout->alignment;
layout->vtableSize = 0;
@@ -196,6 +207,14 @@
else
{
/* Everything else is laid out as a pointer */
+ #ifdef IL_USE_JIT
+ if(!(layout->jitTypes =
ILJitPrimitiveClrTypeToJitTypes(IL_META_ELEMTYPE_TYPEDBYREF)))
+ {
+ return 0;
+ }
+ layout->size = ILJitTypeGetSize(layout->jitTypes->jitTypeBase);
+ layout->alignment =
ILJitTypeGetAlignment(layout->jitTypes->jitTypeBase);
+ #else
#if defined(HAVE_LIBFFI)
layout->size = ffi_type_pointer.size;
layout->alignment = ffi_type_pointer.alignment;
@@ -203,6 +222,7 @@
layout->size = sizeof(void *);
layout->alignment = _IL_ALIGN_FOR_TYPE(void_p);
#endif
+ #endif /* IL_USE_JIT */
layout->nativeSize = layout->size;
layout->nativeAlignment = layout->alignment;
layout->vtableSize = 0;
@@ -613,6 +633,9 @@
layout->hasFinalizer = classPrivate->hasFinalizer;
layout->managedInstance = classPrivate->managedInstance;
layout->managedStatic = classPrivate->managedStatic;
+ #ifdef IL_USE_JIT
+ layout->jitTypes = &(classPrivate->jitTypes);
+ #endif
return 1;
}
}
@@ -662,6 +685,9 @@
/* Zero the static size, which must be recomputed for each class */
layout->staticSize = 0;
+#ifdef IL_USE_JIT
+ _ILJitTypesInit(&(classPrivate->jitTypes));
+#endif
/* Lay out the interfaces that this class implements */
implements = info->implements;
@@ -997,6 +1023,13 @@
implements = implements->nextInterface;
}
}
+#ifdef IL_USE_JIT
+ if(!ILJitTypeCreate(classPrivate))
+ {
+ info->userData = 0;
+ return 0;
+ }
+#endif
/* Record the rest of the layout information for this class */
classPrivate->staticSize = layout->staticSize;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [dotgnu-pnet-commits] pnet ./ChangeLog ./configure.in engine/Makefile...,
Klaus Treichel <=