/[pcre]/code/trunk/sljit/sljitNativeMIPS_common.c
ViewVC logotype

Diff of /code/trunk/sljit/sljitNativeMIPS_common.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 839 by zherczeg, Fri Dec 30 13:22:28 2011 UTC revision 847 by zherczeg, Tue Jan 3 17:49:03 2012 UTC
# Line 110  typedef sljit_ui sljit_ins; Line 110  typedef sljit_ui sljit_ins;
110  #define C_UN_D          (HI(17) | FMT_D | LO(49))  #define C_UN_D          (HI(17) | FMT_D | LO(49))
111  #define C_UEQ_D         (HI(17) | FMT_D | LO(51))  #define C_UEQ_D         (HI(17) | FMT_D | LO(51))
112  #define C_ULT_D         (HI(17) | FMT_D | LO(53))  #define C_ULT_D         (HI(17) | FMT_D | LO(53))
113    #define DIV             (HI(0) | LO(26))
114    #define DIVU            (HI(0) | LO(27))
115  #define DIV_D           (HI(17) | FMT_D | LO(3))  #define DIV_D           (HI(17) | FMT_D | LO(3))
116  #define J               (HI(2))  #define J               (HI(2))
117  #define JAL             (HI(3))  #define JAL             (HI(3))
# Line 128  typedef sljit_ui sljit_ins; Line 130  typedef sljit_ui sljit_ins;
130  #define MOVZ            (HI(0) | LO(10))  #define MOVZ            (HI(0) | LO(10))
131  #define MUL_D           (HI(17) | FMT_D | LO(2))  #define MUL_D           (HI(17) | FMT_D | LO(2))
132  #define MULT            (HI(0) | LO(24))  #define MULT            (HI(0) | LO(24))
133    #define MULTU           (HI(0) | LO(25))
134  #define NOP             (HI(0) | LO(0))  #define NOP             (HI(0) | LO(0))
135  #define NOR             (HI(0) | LO(39))  #define NOR             (HI(0) | LO(39))
136  #define OR              (HI(0) | LO(37))  #define OR              (HI(0) | LO(37))
# Line 929  SLJIT_API_FUNC_ATTRIBUTE int sljit_emit_ Line 932  SLJIT_API_FUNC_ATTRIBUTE int sljit_emit_
932                  return push_inst(compiler, BREAK, UNMOVABLE_INS);                  return push_inst(compiler, BREAK, UNMOVABLE_INS);
933          case SLJIT_NOP:          case SLJIT_NOP:
934                  return push_inst(compiler, NOP, UNMOVABLE_INS);                  return push_inst(compiler, NOP, UNMOVABLE_INS);
935            case SLJIT_UMUL:
936            case SLJIT_SMUL:
937                    FAIL_IF(push_inst(compiler, (op == SLJIT_UMUL ? MULTU : MULT) | S(SLJIT_TEMPORARY_REG1) | T(SLJIT_TEMPORARY_REG2), MOVABLE_INS));
938                    FAIL_IF(push_inst(compiler, MFLO | D(SLJIT_TEMPORARY_REG1), DR(SLJIT_TEMPORARY_REG1)));
939                    return push_inst(compiler, MFHI | D(SLJIT_TEMPORARY_REG2), DR(SLJIT_TEMPORARY_REG2));
940            case SLJIT_UDIV:
941            case SLJIT_SDIV:
942    #if !(defined SLJIT_MIPS_32_64 && SLJIT_MIPS_32_64)
943                    FAIL_IF(push_inst(compiler, NOP, UNMOVABLE_INS));
944                    FAIL_IF(push_inst(compiler, NOP, UNMOVABLE_INS));
945    #endif
946                    FAIL_IF(push_inst(compiler, (op == SLJIT_UDIV ? DIVU : DIV) | S(SLJIT_TEMPORARY_REG1) | T(SLJIT_TEMPORARY_REG2), MOVABLE_INS));
947                    FAIL_IF(push_inst(compiler, MFLO | D(SLJIT_TEMPORARY_REG1), DR(SLJIT_TEMPORARY_REG1)));
948                    return push_inst(compiler, MFHI | D(SLJIT_TEMPORARY_REG2), DR(SLJIT_TEMPORARY_REG2));
949          }          }
950    
951          return SLJIT_SUCCESS;          return SLJIT_SUCCESS;

Legend:
Removed from v.839  
changed lines
  Added in v.847

  ViewVC Help
Powered by ViewVC 1.1.5