Home | History | Annotate | Download | only in sljit_src

Lines Matching refs:src2

1587 static SLJIT_INLINE sljit_s32 emit_single_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 flags, sljit_s32 dst, sljit_s32 src1, sljit_sw src2)
1595 if (dst != src2)
1596 return ADD(reg_map[dst], reg_map[src2], ZERO);
1604 return BFEXTS(reg_map[dst], reg_map[src2], 0, 31);
1606 return BFEXTU(reg_map[dst], reg_map[src2], 0, 31);
1607 } else if (dst != src2) {
1608 SLJIT_ASSERT(src2 == 0);
1609 return ADD(reg_map[dst], reg_map[src2], ZERO);
1619 return BFEXTS(reg_map[dst], reg_map[src2], 0, 7);
1621 return BFEXTU(reg_map[dst], reg_map[src2], 0, 7);
1622 } else if (dst != src2) {
1623 SLJIT_ASSERT(src2 == 0);
1624 return ADD(reg_map[dst], reg_map[src2], ZERO);
1634 return BFEXTS(reg_map[dst], reg_map[src2], 0, 15);
1636 return BFEXTU(reg_map[dst], reg_map[src2], 0, 15);
1637 } else if (dst != src2) {
1638 SLJIT_ASSERT(src2 == 0);
1639 return ADD(reg_map[dst], reg_map[src2], ZERO);
1647 FAIL_IF(NOR(EQUAL_FLAG, reg_map[src2], reg_map[src2]));
1649 FAIL_IF(NOR(reg_map[dst], reg_map[src2], reg_map[src2]));
1656 FAIL_IF(CLZ(EQUAL_FLAG, reg_map[src2]));
1658 FAIL_IF(CLZ(reg_map[dst], reg_map[src2]));
1666 if (src2 < 0)
1671 FAIL_IF(ADDLI(EQUAL_FLAG, reg_map[src1], src2));
1674 if (src2 >= 0)
1675 FAIL_IF(ORI(ULESS_FLAG ,reg_map[src1], src2));
1677 FAIL_IF(ADDLI(ULESS_FLAG ,ZERO, src2));
1682 /* dst may be the same as src1 or src2. */
1684 FAIL_IF(ADDLI(reg_map[dst], reg_map[src1], src2));
1689 if (src2 < 0)
1694 FAIL_IF(XOR(TMP_EREG1, reg_map[src1], reg_map[src2]));
1699 else if (src2 != dst)
1700 overflow_ra = reg_map[src2];
1709 FAIL_IF(ADD(EQUAL_FLAG ,reg_map[src1], reg_map[src2]));
1712 FAIL_IF(OR(ULESS_FLAG,reg_map[src1], reg_map[src2]));
1714 /* dst may be the same as src1 or src2. */
1716 FAIL_IF(ADD(reg_map[dst],reg_map[src1], reg_map[src2]));
1736 if (src2 >= 0)
1737 FAIL_IF(ORI(TMP_EREG1, reg_map[src1], src2));
1739 FAIL_IF(ADDLI(TMP_EREG1, ZERO, src2));
1744 FAIL_IF(ADDLI(reg_map[dst], reg_map[src1], src2));
1748 FAIL_IF(OR(TMP_EREG1, reg_map[src1], reg_map[src2]));
1750 /* dst may be the same as src1 or src2. */
1751 FAIL_IF(ADD(reg_map[dst], reg_map[src1], reg_map[src2]));
1769 if ((flags & SRC2_IMM) && ((op & (SLJIT_SET_U | SLJIT_SET_S)) || src2 == SIMM_16BIT_MIN)) {
1770 FAIL_IF(ADDLI(TMP_REG2_mapped, ZERO, src2));
1771 src2 = TMP_REG2;
1779 if (src2 < 0)
1792 FAIL_IF(ADDLI(EQUAL_FLAG, reg_map[src1], -src2));
1795 FAIL_IF(load_immediate(compiler, ADDR_TMP_mapped, src2));
1799 /* dst may be the same as src1 or src2. */
1801 FAIL_IF(ADDLI(reg_map[dst], reg_map[src1], -src2));
1806 FAIL_IF(XOR(TMP_EREG1, reg_map[src1], reg_map[src2]));
1819 FAIL_IF(SUB(EQUAL_FLAG, reg_map[src1], reg_map[src2]));
1822 FAIL_IF(CMPLTU(ULESS_FLAG, reg_map[src1], reg_map[src2]));
1825 FAIL_IF(CMPLTU(UGREATER_FLAG, reg_map[src2], reg_map[src1]));
1828 FAIL_IF(CMPLTS(LESS_FLAG ,reg_map[src1] ,reg_map[src2]));
1829 FAIL_IF(CMPLTS(GREATER_FLAG ,reg_map[src2] ,reg_map[src1]));
1832 /* dst may be the same as src1 or src2. */
1834 FAIL_IF(SUB(reg_map[dst], reg_map[src1], reg_map[src2]));
1846 if ((flags & SRC2_IMM) && src2 == SIMM_16BIT_MIN) {
1847 FAIL_IF(ADDLI(TMP_REG2_mapped, ZERO, src2));
1848 src2 = TMP_REG2;
1854 FAIL_IF(load_immediate(compiler, ADDR_TMP_mapped, -src2));
1858 /* dst may be the same as src1 or src2. */
1859 FAIL_IF(ADDLI(reg_map[dst], reg_map[src1], -src2));
1863 FAIL_IF(CMPLTU(TMP_EREG1, reg_map[src1], reg_map[src2]));
1864 /* dst may be the same as src1 or src2. */
1865 FAIL_IF(SUB(reg_map[dst], reg_map[src1], reg_map[src2]));
1880 FAIL_IF(load_immediate(compiler, TMP_REG2_mapped, src2));
1881 src2 = TMP_REG2;
1885 FAIL_IF(MUL(reg_map[dst], reg_map[src1], reg_map[src2]));
1891 FAIL_IF(load_immediate(compiler, ADDR_TMP_mapped, src2)); \
1904 reg_map[src2], __LINE__)); \
1908 reg_map[src2], __LINE__)); \
1928 src2 & 0x3F, __LINE__)); \
1932 src2 & 0x3F, __LINE__)); \
1937 reg_map[src2], __LINE__)); \
1941 reg_map[src2], __LINE__)); \
1961 static sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 flags, sljit_s32 dst, sljit_sw dstw, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w)
1978 if (op >= SLJIT_MOV && op <= SLJIT_MOVU_S32 && !(src2 & SLJIT_MEM))
1991 if ((src2 & SLJIT_IMM) && src2w) {
2008 src1 = src2;
2010 src2 = SLJIT_IMM;
2035 if (FAST_IS_REG(src2)) {
2036 src2_r = src2;
2040 } else if (src2 & SLJIT_IMM) {
2052 if (getput_arg_fast(compiler, flags | LOAD_DATA, reg_map[sugg_src2_r], src2, src2w))
2061 if (!can_cache(src1, src1w, src2, src2w) && can_cache(src1, src1w, dst, dstw)) {
2062 FAIL_IF(getput_arg(compiler, flags | LOAD_DATA, TMP_REG2_mapped, src2, src2w, src1, src1w));
2065 FAIL_IF(getput_arg(compiler, flags | LOAD_DATA, TMP_REG1_mapped, src1, src1w, src2, src2w));
2066 FAIL_IF(getput_arg(compiler, flags | LOAD_DATA, TMP_REG2_mapped, src2, src2w, dst, dstw));
2071 FAIL_IF(getput_arg(compiler, flags | LOAD_DATA, reg_map[sugg_src2_r], src2, src2w, dst, dstw));
2262 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w)
2265 CHECK(check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
2268 ADJUST_LOCAL_OFFSET(src2, src2w);
2273 return emit_op(compiler, op, CUMULATIVE_OP | IMM_OP, dst, dstw, src1, src1w, src2, src2w);
2277 return emit_op(compiler, op, IMM_OP, dst, dstw, src1, src1w, src2, src2w);
2280 return emit_op(compiler, op, CUMULATIVE_OP, dst, dstw, src1, src1w, src2, src2w);
2285 return emit_op(compiler, op, CUMULATIVE_OP | LOGICAL_OP | IMM_OP, dst, dstw, src1, src1w, src2, src2w);
2290 if (src2 & SLJIT_IMM)
2295 return emit_op(compiler, op, IMM_OP, dst, dstw, src1, src1w, src2, src2w);
2502 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w)