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

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

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

revision 662 by ph10, Mon Aug 22 14:35:22 2011 UTC revision 722 by zherczeg, Fri Oct 7 19:18:55 2011 UTC
# Line 1736  int sljit_emit_ijump(struct sljit_compil Line 1736  int sljit_emit_ijump(struct sljit_compil
1736          if (src & SLJIT_IMM) {          if (src & SLJIT_IMM) {
1737                  jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump));                  jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump));
1738                  FAIL_IF(!jump);                  FAIL_IF(!jump);
1739                  set_jump(jump, compiler, JUMP_ADDR | ((type >= SLJIT_CALL0) ? IS_BL : 0));                  set_jump(jump, compiler, JUMP_ADDR | ((type >= SLJIT_FAST_CALL) ? IS_BL : 0));
1740                  jump->u.target = srcw;                  jump->u.target = srcw;
1741    
1742                  FAIL_IF(emit_imm32_const(compiler, TMP_REG1, 0));                  FAIL_IF(emit_imm32_const(compiler, TMP_REG1, 0));
1743                  jump->addr = compiler->size;                  jump->addr = compiler->size;
1744                  if (type <= SLJIT_JUMP)                  FAIL_IF(push_inst16(compiler, (type <= SLJIT_JUMP ? BX : BLX) | RN3(TMP_REG1)));
                         FAIL_IF(push_inst16(compiler, BX | RN3(TMP_REG1)));  
                 else  
                         FAIL_IF(push_inst16(compiler, BLX | RN3(TMP_REG1)));  
1745          }          }
1746          else {          else {
1747                  if (src >= SLJIT_TEMPORARY_REG1 && src <= SLJIT_NO_REGISTERS) {                  if (src >= SLJIT_TEMPORARY_REG1 && src <= SLJIT_NO_REGISTERS)
1748                          if (type <= SLJIT_JUMP)                          return push_inst16(compiler, (type <= SLJIT_JUMP ? BX : BLX) | RN3(src));
                                 return push_inst16(compiler, BX | RN3(src));  
                         else  
                                 return push_inst16(compiler, BLX | RN3(src));  
                 }  
1749    
1750                  FAIL_IF(emit_op_mem(compiler, WORD_SIZE, type <= SLJIT_JUMP ? TMP_PC : TMP_REG1, src, srcw));                  FAIL_IF(emit_op_mem(compiler, WORD_SIZE, type <= SLJIT_JUMP ? TMP_PC : TMP_REG1, src, srcw));
1751                  if (type >= SLJIT_CALL0)                  if (type >= SLJIT_FAST_CALL)
1752                          return push_inst16(compiler, BLX | RN3(TMP_REG1));                          return push_inst16(compiler, BLX | RN3(TMP_REG1));
1753          }          }
1754          return SLJIT_SUCCESS;          return SLJIT_SUCCESS;

Legend:
Removed from v.662  
changed lines
  Added in v.722

  ViewVC Help
Powered by ViewVC 1.1.5