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

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

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

revision 1505 by zherczeg, Mon Aug 11 06:42:28 2014 UTC revision 1506 by zherczeg, Sat Sep 27 06:25:26 2014 UTC
# Line 353  SLJIT_API_FUNC_ATTRIBUTE void* sljit_gen Line 353  SLJIT_API_FUNC_ATTRIBUTE void* sljit_gen
353          struct sljit_const *const_;          struct sljit_const *const_;
354    
355          CHECK_ERROR_PTR();          CHECK_ERROR_PTR();
356          check_sljit_generate_code(compiler);          CHECK_PTR(check_sljit_generate_code(compiler));
357          reverse_buf(compiler);          reverse_buf(compiler);
358    
359          code = (sljit_uh*)SLJIT_MALLOC_EXEC(compiler->size * sizeof(sljit_uh));          code = (sljit_uh*)SLJIT_MALLOC_EXEC(compiler->size * sizeof(sljit_uh));
# Line 1135  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1135  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1135          sljit_ins push;          sljit_ins push;
1136    
1137          CHECK_ERROR();          CHECK_ERROR();
1138          check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);          CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
1139            set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
         compiler->options = options;  
         compiler->scratches = scratches;  
         compiler->saveds = saveds;  
         compiler->fscratches = fscratches;  
         compiler->fsaveds = fsaveds;  
 #if (defined SLJIT_DEBUG && SLJIT_DEBUG)  
         compiler->logical_local_size = local_size;  
 #endif  
1140    
1141          push = (1 << 4);          push = (1 << 4);
1142    
# Line 1180  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1172  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1172          return SLJIT_SUCCESS;          return SLJIT_SUCCESS;
1173  }  }
1174    
1175  SLJIT_API_FUNC_ATTRIBUTE void sljit_set_context(struct sljit_compiler *compiler,  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_set_context(struct sljit_compiler *compiler,
1176          sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,          sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
1177          sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)          sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
1178  {  {
1179          sljit_si size;          sljit_si size;
1180    
1181          CHECK_ERROR_VOID();          CHECK_ERROR();
1182          check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);          CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
1183            set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
         compiler->options = options;  
         compiler->scratches = scratches;  
         compiler->saveds = saveds;  
         compiler->fscratches = fscratches;  
         compiler->fsaveds = fsaveds;  
 #if (defined SLJIT_DEBUG && SLJIT_DEBUG)  
         compiler->logical_local_size = local_size;  
 #endif  
1184    
1185          size = GET_SAVED_REGISTERS_SIZE(scratches, saveds, 2);          size = GET_SAVED_REGISTERS_SIZE(scratches, saveds, 2);
1186          compiler->local_size = ((size + local_size + 7) & ~7) - size;          compiler->local_size = ((size + local_size + 7) & ~7) - size;
1187            return SLJIT_SUCCESS;
1188  }  }
1189    
1190  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compiler, sljit_si op, sljit_si src, sljit_sw srcw)  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compiler, sljit_si op, sljit_si src, sljit_sw srcw)
# Line 1208  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1193  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1193          sljit_ins pop;          sljit_ins pop;
1194    
1195          CHECK_ERROR();          CHECK_ERROR();
1196          check_sljit_emit_return(compiler, op, src, srcw);          CHECK(check_sljit_emit_return(compiler, op, src, srcw));
1197    
1198          FAIL_IF(emit_mov_before_return(compiler, op, src, srcw));          FAIL_IF(emit_mov_before_return(compiler, op, src, srcw));
1199    
# Line 1255  extern int __aeabi_idivmod(int numerator Line 1240  extern int __aeabi_idivmod(int numerator
1240  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler, sljit_si op)  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler, sljit_si op)
1241  {  {
1242          CHECK_ERROR();          CHECK_ERROR();
1243          check_sljit_emit_op0(compiler, op);          CHECK(check_sljit_emit_op0(compiler, op));
1244    
1245          op = GET_OPCODE(op);          op = GET_OPCODE(op);
1246          switch (op) {          switch (op) {
# Line 1263  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1248  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1248                  return push_inst16(compiler, BKPT);                  return push_inst16(compiler, BKPT);
1249          case SLJIT_NOP:          case SLJIT_NOP:
1250                  return push_inst16(compiler, NOP);                  return push_inst16(compiler, NOP);
1251          case SLJIT_UMUL:          case SLJIT_LUMUL:
1252          case SLJIT_SMUL:          case SLJIT_LSMUL:
1253                  return push_inst32(compiler, (op == SLJIT_UMUL ? UMULL : SMULL)                  return push_inst32(compiler, (op == SLJIT_LUMUL ? UMULL : SMULL)
1254                          | (reg_map[SLJIT_R1] << 8)                          | (reg_map[SLJIT_R1] << 8)
1255                          | (reg_map[SLJIT_R0] << 12)                          | (reg_map[SLJIT_R0] << 12)
1256                          | (reg_map[SLJIT_R0] << 16)                          | (reg_map[SLJIT_R0] << 16)
1257                          | reg_map[SLJIT_R1]);                          | reg_map[SLJIT_R1]);
1258          case SLJIT_UDIV:          case SLJIT_LUDIV:
1259          case SLJIT_SDIV:          case SLJIT_LSDIV:
1260                  if (compiler->scratches >= 4) {                  if (compiler->scratches >= 4) {
1261                          FAIL_IF(push_inst32(compiler, 0xf84d2d04 /* str r2, [sp, #-4]! */));                          FAIL_IF(push_inst32(compiler, 0xf84d2d04 /* str r2, [sp, #-4]! */));
1262                          FAIL_IF(push_inst32(compiler, 0xf84dcd04 /* str ip, [sp, #-4]! */));                          FAIL_IF(push_inst32(compiler, 0xf84dcd04 /* str ip, [sp, #-4]! */));
# Line 1279  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1264  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1264                          FAIL_IF(push_inst32(compiler, 0xf84d2d08 /* str r2, [sp, #-8]! */));                          FAIL_IF(push_inst32(compiler, 0xf84d2d08 /* str r2, [sp, #-8]! */));
1265  #if defined(__GNUC__)  #if defined(__GNUC__)
1266                  FAIL_IF(sljit_emit_ijump(compiler, SLJIT_FAST_CALL, SLJIT_IMM,                  FAIL_IF(sljit_emit_ijump(compiler, SLJIT_FAST_CALL, SLJIT_IMM,
1267                          (op == SLJIT_UDIV ? SLJIT_FUNC_OFFSET(__aeabi_uidivmod) : SLJIT_FUNC_OFFSET(__aeabi_idivmod))));                          (op == SLJIT_LUDIV ? SLJIT_FUNC_OFFSET(__aeabi_uidivmod) : SLJIT_FUNC_OFFSET(__aeabi_idivmod))));
1268  #else  #else
1269  #error "Software divmod functions are needed"  #error "Software divmod functions are needed"
1270  #endif  #endif
# Line 1302  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1287  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1287          sljit_si op_flags = GET_ALL_FLAGS(op);          sljit_si op_flags = GET_ALL_FLAGS(op);
1288    
1289          CHECK_ERROR();          CHECK_ERROR();
1290          check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw);          CHECK(check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw));
1291          ADJUST_LOCAL_OFFSET(dst, dstw);          ADJUST_LOCAL_OFFSET(dst, dstw);
1292          ADJUST_LOCAL_OFFSET(src, srcw);          ADJUST_LOCAL_OFFSET(src, srcw);
1293    
# Line 1395  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1380  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1380          }          }
1381    
1382          if (op == SLJIT_NEG) {          if (op == SLJIT_NEG) {
1383  #if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)  #if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \
1384                            || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
1385                  compiler->skip_checks = 1;                  compiler->skip_checks = 1;
1386  #endif  #endif
1387                  return sljit_emit_op2(compiler, SLJIT_SUB | op_flags, dst, dstw, SLJIT_IMM, 0, src, srcw);                  return sljit_emit_op2(compiler, SLJIT_SUB | op_flags, dst, dstw, SLJIT_IMM, 0, src, srcw);
# Line 1434  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1420  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1420          sljit_si dst_r, flags;          sljit_si dst_r, flags;
1421    
1422          CHECK_ERROR();          CHECK_ERROR();
1423          check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w);          CHECK(check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
1424          ADJUST_LOCAL_OFFSET(dst, dstw);          ADJUST_LOCAL_OFFSET(dst, dstw);
1425          ADJUST_LOCAL_OFFSET(src1, src1w);          ADJUST_LOCAL_OFFSET(src1, src1w);
1426          ADJUST_LOCAL_OFFSET(src2, src2w);          ADJUST_LOCAL_OFFSET(src2, src2w);
# Line 1507  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1493  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1493    
1494  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_register_index(sljit_si reg)  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_register_index(sljit_si reg)
1495  {  {
1496          check_sljit_get_register_index(reg);          CHECK_REG_INDEX(check_sljit_get_register_index(reg));
1497          return reg_map[reg];          return reg_map[reg];
1498  }  }
1499    
1500  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_float_register_index(sljit_si reg)  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_float_register_index(sljit_si reg)
1501  {  {
1502          check_sljit_get_float_register_index(reg);          CHECK_REG_INDEX(check_sljit_get_float_register_index(reg));
1503          return reg << 1;          return reg << 1;
1504  }  }
1505    
# Line 1521  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1507  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1507          void *instruction, sljit_si size)          void *instruction, sljit_si size)
1508  {  {
1509          CHECK_ERROR();          CHECK_ERROR();
1510          check_sljit_emit_op_custom(compiler, instruction, size);          CHECK(check_sljit_emit_op_custom(compiler, instruction, size));
         SLJIT_ASSERT(size == 2 || size == 4);  
1511    
1512          if (size == 2)          if (size == 2)
1513                  return push_inst16(compiler, *(sljit_uh*)instruction);                  return push_inst16(compiler, *(sljit_uh*)instruction);
# Line 1695  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1680  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1680          }          }
1681    
1682          switch (GET_OPCODE(op)) {          switch (GET_OPCODE(op)) {
1683          case SLJIT_MOVD:          case SLJIT_DMOV:
1684                  if (src != dst_r) {                  if (src != dst_r) {
1685                          if (dst_r != TMP_FREG1)                          if (dst_r != TMP_FREG1)
1686                                  FAIL_IF(push_inst32(compiler, VMOV_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DM4(src)));                                  FAIL_IF(push_inst32(compiler, VMOV_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DM4(src)));
# Line 1703  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1688  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1688                                  dst_r = src;                                  dst_r = src;
1689                  }                  }
1690                  break;                  break;
1691          case SLJIT_NEGD:          case SLJIT_DNEG:
1692                  FAIL_IF(push_inst32(compiler, VNEG_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DM4(src)));                  FAIL_IF(push_inst32(compiler, VNEG_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DM4(src)));
1693                  break;                  break;
1694          case SLJIT_ABSD:          case SLJIT_DABS:
1695                  FAIL_IF(push_inst32(compiler, VABS_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DM4(src)));                  FAIL_IF(push_inst32(compiler, VABS_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DM4(src)));
1696                  break;                  break;
1697          case SLJIT_CONVD_FROMS:          case SLJIT_CONVD_FROMS:
# Line 1728  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1713  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1713          sljit_si dst_r;          sljit_si dst_r;
1714    
1715          CHECK_ERROR();          CHECK_ERROR();
1716          check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w);          CHECK(check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
1717          ADJUST_LOCAL_OFFSET(dst, dstw);          ADJUST_LOCAL_OFFSET(dst, dstw);
1718          ADJUST_LOCAL_OFFSET(src1, src1w);          ADJUST_LOCAL_OFFSET(src1, src1w);
1719          ADJUST_LOCAL_OFFSET(src2, src2w);          ADJUST_LOCAL_OFFSET(src2, src2w);
# Line 1748  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1733  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1733          }          }
1734    
1735          switch (GET_OPCODE(op)) {          switch (GET_OPCODE(op)) {
1736          case SLJIT_ADDD:          case SLJIT_DADD:
1737                  FAIL_IF(push_inst32(compiler, VADD_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DN4(src1) | DM4(src2)));                  FAIL_IF(push_inst32(compiler, VADD_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DN4(src1) | DM4(src2)));
1738                  break;                  break;
1739          case SLJIT_SUBD:          case SLJIT_DSUB:
1740                  FAIL_IF(push_inst32(compiler, VSUB_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DN4(src1) | DM4(src2)));                  FAIL_IF(push_inst32(compiler, VSUB_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DN4(src1) | DM4(src2)));
1741                  break;                  break;
1742          case SLJIT_MULD:          case SLJIT_DMUL:
1743                  FAIL_IF(push_inst32(compiler, VMUL_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DN4(src1) | DM4(src2)));                  FAIL_IF(push_inst32(compiler, VMUL_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DN4(src1) | DM4(src2)));
1744                  break;                  break;
1745          case SLJIT_DIVD:          case SLJIT_DDIV:
1746                  FAIL_IF(push_inst32(compiler, VDIV_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DN4(src1) | DM4(src2)));                  FAIL_IF(push_inst32(compiler, VDIV_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DN4(src1) | DM4(src2)));
1747                  break;                  break;
1748          }          }
# Line 1776  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1761  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1761  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw)  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw)
1762  {  {
1763          CHECK_ERROR();          CHECK_ERROR();
1764          check_sljit_emit_fast_enter(compiler, dst, dstw);          CHECK(check_sljit_emit_fast_enter(compiler, dst, dstw));
1765          ADJUST_LOCAL_OFFSET(dst, dstw);          ADJUST_LOCAL_OFFSET(dst, dstw);
1766    
1767          /* For UNUSED dst. Uncommon, but possible. */          /* For UNUSED dst. Uncommon, but possible. */
# Line 1799  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1784  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1784  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_si src, sljit_sw srcw)  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_si src, sljit_sw srcw)
1785  {  {
1786          CHECK_ERROR();          CHECK_ERROR();
1787          check_sljit_emit_fast_return(compiler, src, srcw);          CHECK(check_sljit_emit_fast_return(compiler, src, srcw));
1788          ADJUST_LOCAL_OFFSET(src, srcw);          ADJUST_LOCAL_OFFSET(src, srcw);
1789    
1790          if (FAST_IS_REG(src))          if (FAST_IS_REG(src))
# Line 1826  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1811  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1811  static sljit_uw get_cc(sljit_si type)  static sljit_uw get_cc(sljit_si type)
1812  {  {
1813          switch (type) {          switch (type) {
1814          case SLJIT_C_EQUAL:          case SLJIT_EQUAL:
1815          case SLJIT_C_MUL_NOT_OVERFLOW:          case SLJIT_MUL_NOT_OVERFLOW:
1816          case SLJIT_C_FLOAT_EQUAL:          case SLJIT_D_EQUAL:
1817                  return 0x0;                  return 0x0;
1818    
1819          case SLJIT_C_NOT_EQUAL:          case SLJIT_NOT_EQUAL:
1820          case SLJIT_C_MUL_OVERFLOW:          case SLJIT_MUL_OVERFLOW:
1821          case SLJIT_C_FLOAT_NOT_EQUAL:          case SLJIT_D_NOT_EQUAL:
1822                  return 0x1;                  return 0x1;
1823    
1824          case SLJIT_C_LESS:          case SLJIT_LESS:
1825          case SLJIT_C_FLOAT_LESS:          case SLJIT_D_LESS:
1826                  return 0x3;                  return 0x3;
1827    
1828          case SLJIT_C_GREATER_EQUAL:          case SLJIT_GREATER_EQUAL:
1829          case SLJIT_C_FLOAT_GREATER_EQUAL:          case SLJIT_D_GREATER_EQUAL:
1830                  return 0x2;                  return 0x2;
1831    
1832          case SLJIT_C_GREATER:          case SLJIT_GREATER:
1833          case SLJIT_C_FLOAT_GREATER:          case SLJIT_D_GREATER:
1834                  return 0x8;                  return 0x8;
1835    
1836          case SLJIT_C_LESS_EQUAL:          case SLJIT_LESS_EQUAL:
1837          case SLJIT_C_FLOAT_LESS_EQUAL:          case SLJIT_D_LESS_EQUAL:
1838                  return 0x9;                  return 0x9;
1839    
1840          case SLJIT_C_SIG_LESS:          case SLJIT_SIG_LESS:
1841                  return 0xb;                  return 0xb;
1842    
1843          case SLJIT_C_SIG_GREATER_EQUAL:          case SLJIT_SIG_GREATER_EQUAL:
1844                  return 0xa;                  return 0xa;
1845    
1846          case SLJIT_C_SIG_GREATER:          case SLJIT_SIG_GREATER:
1847                  return 0xc;                  return 0xc;
1848    
1849          case SLJIT_C_SIG_LESS_EQUAL:          case SLJIT_SIG_LESS_EQUAL:
1850                  return 0xd;                  return 0xd;
1851    
1852          case SLJIT_C_OVERFLOW:          case SLJIT_OVERFLOW:
1853          case SLJIT_C_FLOAT_UNORDERED:          case SLJIT_D_UNORDERED:
1854                  return 0x6;                  return 0x6;
1855    
1856          case SLJIT_C_NOT_OVERFLOW:          case SLJIT_NOT_OVERFLOW:
1857          case SLJIT_C_FLOAT_ORDERED:          case SLJIT_D_ORDERED:
1858                  return 0x7;                  return 0x7;
1859    
1860          default: /* SLJIT_JUMP */          default: /* SLJIT_JUMP */
1861                    SLJIT_ASSERT_STOP();
1862                  return 0xe;                  return 0xe;
1863          }          }
1864  }  }
# Line 1882  SLJIT_API_FUNC_ATTRIBUTE struct sljit_la Line 1868  SLJIT_API_FUNC_ATTRIBUTE struct sljit_la
1868          struct sljit_label *label;          struct sljit_label *label;
1869    
1870          CHECK_ERROR_PTR();          CHECK_ERROR_PTR();
1871          check_sljit_emit_label(compiler);          CHECK_PTR(check_sljit_emit_label(compiler));
1872    
1873          if (compiler->last_label && compiler->last_label->size == compiler->size)          if (compiler->last_label && compiler->last_label->size == compiler->size)
1874                  return compiler->last_label;                  return compiler->last_label;
# Line 1899  SLJIT_API_FUNC_ATTRIBUTE struct sljit_ju Line 1885  SLJIT_API_FUNC_ATTRIBUTE struct sljit_ju
1885          sljit_ins cc;          sljit_ins cc;
1886    
1887          CHECK_ERROR_PTR();          CHECK_ERROR_PTR();
1888          check_sljit_emit_jump(compiler, type);          CHECK_PTR(check_sljit_emit_jump(compiler, type));
1889    
1890          jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump));          jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump));
1891          PTR_FAIL_IF(!jump);          PTR_FAIL_IF(!jump);
# Line 1931  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1917  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1917          struct sljit_jump *jump;          struct sljit_jump *jump;
1918    
1919          CHECK_ERROR();          CHECK_ERROR();
1920          check_sljit_emit_ijump(compiler, type, src, srcw);          CHECK(check_sljit_emit_ijump(compiler, type, src, srcw));
1921          ADJUST_LOCAL_OFFSET(src, srcw);          ADJUST_LOCAL_OFFSET(src, srcw);
1922    
1923          /* In ARM, we don't need to touch the arguments. */          /* In ARM, we don't need to touch the arguments. */
# Line 1963  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1949  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1949          sljit_ins cc, ins;          sljit_ins cc, ins;
1950    
1951          CHECK_ERROR();          CHECK_ERROR();
1952          check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type);          CHECK(check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type));
1953          ADJUST_LOCAL_OFFSET(dst, dstw);          ADJUST_LOCAL_OFFSET(dst, dstw);
1954          ADJUST_LOCAL_OFFSET(src, srcw);          ADJUST_LOCAL_OFFSET(src, srcw);
1955    
# Line 1971  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_ Line 1957  SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_
1957                  return SLJIT_SUCCESS;                  return SLJIT_SUCCESS;
1958    
1959          op = GET_OPCODE(op);          op = GET_OPCODE(op);
1960          cc = get_cc(type);          cc = get_cc(type & 0xff);
1961          dst_r = FAST_IS_REG(dst) ? dst : TMP_REG2;          dst_r = FAST_IS_REG(dst) ? dst : TMP_REG2;
1962    
1963          if (op < SLJIT_ADD) {          if (op < SLJIT_ADD) {
# Line 2042  SLJIT_API_FUNC_ATTRIBUTE struct sljit_co Line 2028  SLJIT_API_FUNC_ATTRIBUTE struct sljit_co
2028          sljit_si dst_r;          sljit_si dst_r;
2029    
2030          CHECK_ERROR_PTR();          CHECK_ERROR_PTR();
2031          check_sljit_emit_const(compiler, dst, dstw, init_value);          CHECK_PTR(check_sljit_emit_const(compiler, dst, dstw, init_value));
2032          ADJUST_LOCAL_OFFSET(dst, dstw);          ADJUST_LOCAL_OFFSET(dst, dstw);
2033    
2034          const_ = (struct sljit_const*)ensure_abuf(compiler, sizeof(struct sljit_const));          const_ = (struct sljit_const*)ensure_abuf(compiler, sizeof(struct sljit_const));

Legend:
Removed from v.1505  
changed lines
  Added in v.1506

  ViewVC Help
Powered by ViewVC 1.1.5