2004-07-23 zovarga <vargaz@freemail.hu>
authorZoltan Varga <vargaz@gmail.com>
Fri, 23 Jul 2004 16:13:03 +0000 (16:13 -0000)
committerZoltan Varga <vargaz@gmail.com>
Fri, 23 Jul 2004 16:13:03 +0000 (16:13 -0000)
* mini.h: Add new arch dependent function mono_arch_is_inst_imm.

* mini-ops.h: Add new opcodes.

* Makefile.am: Add AMD64 support.

svn path=/trunk/mono/; revision=31419

mono/mini/ChangeLog
mono/mini/Makefile.am
mono/mini/mini-ops.h
mono/mini/mini.h

index fa93acf6f88b1a3a0e8a9be9e92eef052f48d213..eecf156dfca5fad4b711f33c581e8e3e269773d7 100644 (file)
@@ -1,5 +1,11 @@
 2004-07-23  zovarga  <vargaz@freemail.hu>
 
+       * mini.h: Add new arch dependent function mono_arch_is_inst_imm.
+
+       * mini-ops.h: Add new opcodes.
+
+       * Makefile.am: Add AMD64 support.
+
        * inssel.brg inssel-long32.brg inssel-long.brg: Move mul/div and shift
        rules into the inssel-long*.brg files.
 
index 7ee57f8fc4dfe2325ff62a137a2419c946d9e5b9..175435746248e07241177cc6dd931a1d3b3061cf 100644 (file)
@@ -53,7 +53,7 @@ mono_LDADD = \
        $(ICU_LIBS)
 
 mono_LDFLAGS = \
-       -export-dynamic
+       $(static_flags) -export-dynamic $(monoldflags)
 
 genmdesc_SOURCES = \
        mini.h          \
@@ -72,6 +72,13 @@ x86_sources = \
        exceptions-x86.c        \
        tramp-x86.c
 
+amd64_sources = \
+       mini-exceptions.c       \
+       mini-amd64.c            \
+       mini-amd64.h            \
+       exceptions-amd64.c      \
+       tramp-amd64.c
+
 ppc_sources = \
        mini-ppc.c              \
        mini-ppc.h              \
@@ -138,6 +145,13 @@ arch_BURGSRC= $(srcdir)/inssel-long32.brg $(srcdir)/inssel-x86.brg
 arch_built=cpu-pentium.h
 endif
 
+if AMD64
+libmono_la_SOURCES = \
+       $(common_sources) $(amd64_sources)
+arch_BURGSRC= $(srcdir)/inssel-long.brg $(srcdir)/inssel-amd64.brg
+arch_built=cpu-amd64.h
+endif
+
 if POWERPC
 libmono_la_SOURCES = \
        $(common_sources) $(ppc_sources)
@@ -193,6 +207,9 @@ TestDriver.dll: TestDriver.cs
 cpu-pentium.h: cpu-pentium.md genmdesc$(EXEEXT)
        ./genmdesc $(srcdir)/cpu-pentium.md cpu-pentium.h pentium_desc
 
+cpu-amd64.h: cpu-amd64.md genmdesc$(EXEEXT)
+       ./genmdesc $(srcdir)/cpu-amd64.md cpu-amd64.h amd64_desc
+
 cpu-g4.h: cpu-g4.md genmdesc$(EXEEXT)
        ./genmdesc $(srcdir)/cpu-g4.md cpu-g4.h ppcg4
 
@@ -252,8 +269,10 @@ endif
 
 CLEANFILES= $(BUILT_SOURCES)
 EXTRA_DIST = $(common_BURGSRC) jit-icalls.c cprop.c TestDriver.cs ldscript $(test_sources) \
+       propagated_relations_table.def build_relations_propagation_table.pl \
        inssel-long.brg inssel-long32.brg \
        $(x86_sources) inssel-x86.brg cpu-pentium.md \
+       $(amd64_sources) inssel-amd64.brg cpu-amd64.md \
        $(ppc_sources) inssel-ppc.brg cpu-g4.md \
        $(sparc_sources) inssel-sparc.brg cpu-sparc.md \
        $(s390_sources) inssel-s390.brg cpu-s390.md
index 81f4c02521cdc5e693458e7998d0792713916fcc..1385b99d3a7762a13cbe631670aea6ae4d1e34fd 100644 (file)
@@ -16,6 +16,7 @@ MINI_OP(OP_LOCAL,     "local")
 MINI_OP(OP_ARG,                "arg")
 MINI_OP(OP_ARGLIST,    "oparglist")
 MINI_OP(OP_OUTARG,     "outarg")
+MINI_OP(OP_OUTARG_REG, "outarg_reg")
 MINI_OP(OP_OUTARG_IMM, "outarg_imm")
 MINI_OP(OP_OUTARG_R4,  "outarg_r4")
 MINI_OP(OP_OUTARG_R8,  "outarg_r8")
@@ -206,6 +207,8 @@ MINI_OP(OP_LBLE_UN, "long_ble_un")
 MINI_OP(OP_IADD,    "int_add")
 MINI_OP(OP_ISUB,    "int_sub")
 MINI_OP(OP_IMUL,    "int_mul")
+MINI_OP(OP_IMUL_OVF,    "int_mul_ovf")
+MINI_OP(OP_IMUL_OVF_UN, "int_mul_ovf_un")
 MINI_OP(OP_IDIV,    "int_div")
 MINI_OP(OP_IDIV_UN, "int_div_un")
 MINI_OP(OP_IREM,    "int_rem")
@@ -416,6 +419,12 @@ MINI_OP(OP_X86_SETEQ_MEMBASE,      "x86_seteq_membase")
 MINI_OP(OP_X86_ADD_MEMBASE,        "x86_add_membase")
 MINI_OP(OP_X86_SUB_MEMBASE,        "x86_sub_membase")
 MINI_OP(OP_X86_MUL_MEMBASE,        "x86_mul_membase")
+
+MINI_OP(OP_AMD64_SET_XMMREG,          "amd64_set_xmmreg")
+MINI_OP(OP_AMD64_OUTARG_XMMREG,       "amd64_outarg_xmmreg")
+MINI_OP(OP_AMD64_ICOMPARE_MEMBASE_REG,"amd64_icompare_membase_reg")
+MINI_OP(OP_AMD64_ICOMPARE_MEMBASE_IMM,"amd64_icompare_membase_imm")
+MINI_OP(OP_AMD64_ICOMPARE_REG_MEMBASE,"amd64_icompare_reg_membase")
        
 MINI_OP(OP_PPC_SUBFIC,             "ppc_subfic")
 MINI_OP(OP_PPC_SUBFZE,             "ppc_subfze")
index 64e0e2bfb4cc6677cce40589d5af14b79c2f63a9..80741a0900acd82dee9c47b2f290abcabf5d5c64 100644 (file)
@@ -776,6 +776,7 @@ gpointer mono_arch_get_restore_context          (void);
 gboolean mono_arch_handle_exception             (void *sigctx, gpointer obj, gboolean test_only);
 gpointer mono_arch_ip_from_context              (void *sigctx);
 void     mono_arch_flush_register_windows       (void);
+gboolean mono_arch_is_inst_imm                  (gint64 imm);
 
 /* Exception handling */
 gboolean mono_handle_exception                  (MonoContext *ctx, gpointer obj,