From: Aleksey Demakov Date: Wed, 30 Aug 2006 19:23:26 +0000 (+0000) Subject: do not use jit-rules-x86.sel anymore X-Git-Tag: before.move.to.git~198 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=37863fe1ecafb929321e784300bc78151ad67bd2;p=francis%2Flibjit.git do not use jit-rules-x86.sel anymore --- diff --git a/ChangeLog b/ChangeLog index 78c50ee..8cbb677 100644 --- 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 * jit/jit-interp.h, jit/jit-interp.c, jit/jit-opcode.c, diff --git a/jit/Makefile.am b/jit/Makefile.am index 8a59c9c..bdb3544 100644 --- a/jit/Makefile.am +++ b/jit/Makefile.am @@ -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 diff --git a/jit/jit-rules-x86.c b/jit/jit-rules-x86.c index c90a375..2d1fca5 100644 --- a/jit/jit-rules-x86.c +++ b/jit/jit-rules-x86.c @@ -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; } diff --git a/jit/jit-rules-x86.ins b/jit/jit-rules-x86.ins index f495913..2182046 100644 --- a/jit/jit-rules-x86.ins +++ b/jit/jit-rules-x86.ins @@ -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