]> git.unchartedbackwaters.co.uk Git - francis/libjit.git/commitdiff
do not use jit-rules-x86.sel anymore
authorAleksey Demakov <ademakov@gmail.com>
Wed, 30 Aug 2006 19:23:26 +0000 (19:23 +0000)
committerAleksey Demakov <ademakov@gmail.com>
Wed, 30 Aug 2006 19:23:26 +0000 (19:23 +0000)
ChangeLog
jit/Makefile.am
jit/jit-rules-x86.c
jit/jit-rules-x86.ins

index 78c50eea00336482e929c28d42ba16a04642f86e..8cbb67771f2e8e5eaa34f042f2cebeb02de328e1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -8,6 +8,12 @@
        JIT_OP_ADDRESS_OF, and JIT_OP_COPY_STORE_SHORT rules using the
        "frame" keyword.
 
+       * jit/Makefile.am, jit/jit-rules-x86.c: remove all references to
+       jit-rules-x86.sel and jit-rules-x86.slc.
+
+       * jit/jit-rules-x86.c: remove mov_memindex_reg_byte() and
+       widen_byte() functions.
+
 2006-08-30  Aleksey Demakov  <ademakov@gmail.com>
 
        * jit/jit-interp.h, jit/jit-interp.c, jit/jit-opcode.c,
index 8a59c9c2aa581ad38a021dc0eee8d767e84b7535..bdb3544b1eaee2b109e7213708e5951abeea98d3 100644 (file)
@@ -71,8 +71,7 @@ EXTRA_DIST = \
                mklabel.sh \
                jit-rules-alpha.ins \
                jit-rules-arm.sel \
-               jit-rules-x86.ins \
-               jit-rules-x86.sel
+               jit-rules-x86.ins
 
 AM_CFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -I. -I$(srcdir)
 
@@ -86,11 +85,7 @@ jit-interp-labels.h: $(top_srcdir)/include/jit/jit-opcode.h \
                $(top_srcdir)/include/jit/jit-opcode.h \
                $(top_srcdir)/jit/jit-interp.h >jit-interp-labels.h
 
-jit-rules-x86.lo: jit-rules-x86.slc jit-rules-x86.inc
-
-jit-rules-x86.slc: jit-rules-x86.sel $(top_builddir)/tools/gen-sel$(EXEEXT)
-       $(top_builddir)/tools/gen-sel$(EXEEXT) $(srcdir)/jit-rules-x86.sel \
-                       >jit-rules-x86.slc
+jit-rules-x86.lo: jit-rules-x86.inc
 
 jit-rules-x86.inc: jit-rules-x86.ins $(top_builddir)/tools/gen-rules$(EXEEXT)
        $(top_builddir)/tools/gen-rules$(EXEEXT) $(srcdir)/jit-rules-x86.ins \
@@ -108,5 +103,8 @@ jit-rules-alpha.inc: jit-rules-alpha.ins $(top_builddir)/tools/gen-rules$(EXEEXT
        $(top_builddir)/tools/gen-rules$(EXEEXT) $(srcdir)/jit-rules-alpha.ins \
                        >jit-rules-alpha.inc
 
-CLEANFILES = jit-interp-labels.h jit-rules-x86.slc jit-rules-arm.slc \
-               jit-rules-alpha.slc
+CLEANFILES = \
+       jit-interp-labels.h \
+       jit-rules-alpha.inc \
+       jit-rules-arm.slc \
+       jit-rules-x86.inc
index c90a375a8b102da9c19e0e494cbea0add01134cf..2d1fca5eead1277213a1951b885bfcd5964f0462 100644 (file)
@@ -186,13 +186,9 @@ int _jit_opcode_is_supported(int opcode)
 {
        switch(opcode)
        {
-               #define JIT_INCLUDE_SUPPORTED
-#if USE_NEW_REG_ALLOC
-               #include "jit-rules-x86.inc"
-#else
-               #include "jit-rules-x86.slc"
-#endif
-               #undef JIT_INCLUDE_SUPPORTED
+       #define JIT_INCLUDE_SUPPORTED
+       #include "jit-rules-x86.inc"
+       #undef JIT_INCLUDE_SUPPORTED
        }
        return 0;
 }
@@ -1261,27 +1257,6 @@ void _jit_gen_fix_value(jit_value_t value)
        }
 }
 
-#if !USE_NEW_REG_ALLOC
-/*
- * Widen a byte register.
- */
-static unsigned char *widen_byte(unsigned char *inst, int reg, int isSigned)
-{
-       if(reg == X86_EAX || reg == X86_EBX || reg == X86_ECX || reg == X86_EDX)
-       {
-               x86_widen_reg(inst, reg, reg, isSigned, 0);
-       }
-       else
-       {
-               x86_push_reg(inst, X86_EAX);
-               x86_mov_reg_reg(inst, X86_EAX, reg, 4);
-               x86_widen_reg(inst, reg, X86_EAX, isSigned, 0);
-               x86_pop_reg(inst, X86_EAX);
-       }
-       return inst;
-}
-#endif
-
 /*
  * Shift the contents of a register.
  */
@@ -1446,43 +1421,6 @@ static unsigned char *jump_to_epilog
        return inst;
 }
 
-/*
- * Store a byte value to a memindex address.
- */
-static unsigned char *mov_memindex_reg_byte
-               (unsigned char *inst, int basereg,
-                unsigned offset, int indexreg, int srcreg)
-{
-       if(srcreg == X86_EAX || srcreg == X86_EBX ||
-          srcreg == X86_ECX || srcreg == X86_EDX)
-       {
-               x86_mov_memindex_reg(inst, basereg, offset, indexreg,
-                                                        0, srcreg, 1);
-       }
-       else
-       {
-               int tempreg;
-               if(basereg != X86_EAX && indexreg != X86_EAX)
-               {
-                       tempreg = X86_EAX;
-               }
-               else if(basereg != X86_ECX && indexreg != X86_ECX)
-               {
-                       tempreg = X86_ECX;
-               }
-               else
-               {
-                       tempreg = X86_EDX;
-               }
-               x86_push_reg(inst, tempreg);
-               x86_mov_reg_reg(inst, tempreg, srcreg, 4);
-               x86_mov_memindex_reg(inst, basereg, offset, indexreg,
-                                                        0, tempreg, 1);
-               x86_pop_reg(inst, tempreg);
-       }
-       return inst;
-}
-
 /*
  * Throw a builtin exception.
  */
@@ -1601,18 +1539,14 @@ void _jit_gen_insn(jit_gencode_t gen, jit_function_t func,
 {
        switch(insn->opcode)
        {
-               #define JIT_INCLUDE_RULES
-#if USE_NEW_REG_ALLOC
-               #include "jit-rules-x86.inc"
-#else
-               #include "jit-rules-x86.slc"
-#endif
-               #undef JIT_INCLUDE_RULES
+       #define JIT_INCLUDE_RULES
+       #include "jit-rules-x86.inc"
+       #undef JIT_INCLUDE_RULES
 
-               default:
+       default:
                {
                        fprintf(stderr, "TODO(%x) at %s, %d\n",
-                                       (int)(insn->opcode), __FILE__, (int)__LINE__);
+                               (int)(insn->opcode), __FILE__, (int)__LINE__);
                }
                break;
        }
index f495913fb26a5c9a7b26d30b533c2c1f508d05ef..2182046f574c57565b3c5a4eea750a086d53cdc7 100644 (file)
@@ -1633,7 +1633,7 @@ JIT_OP_COPY_STORE_BYTE:
        [=frame, imm] -> {
                x86_mov_membase_imm(inst, X86_EBP, $1, $2, 1);
        }
-       [=frame, reg("eax"|"ecx"|"edx"|"edx")] -> {
+       [=frame, reg("eax"|"ecx"|"edx"|"ebx")] -> {
                x86_mov_membase_reg(inst, X86_EBP, $1, $2, 1);
        }
 
@@ -2054,8 +2054,8 @@ JIT_OP_LOAD_ELEMENT_NFLOAT:
        }
 
 JIT_OP_STORE_ELEMENT_BYTE: ternary
-       [reg, reg, reg] -> {
-               inst = mov_memindex_reg_byte(inst, $1, 0, $2, $3);
+       [reg, reg, reg("eax"|"ecx"|"edx"|"ebx")] -> {
+               x86_mov_memindex_reg(inst, $1, 0, $2, 0, $3, 1);
        }
 
 JIT_OP_STORE_ELEMENT_SHORT: ternary