Lines Matching refs:src2
1585 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)
1593 if (dst != src2)
1594 return ADD(reg_map[dst], reg_map[src2], ZERO);
1602 return BFEXTS(reg_map[dst], reg_map[src2], 0, 31);
1604 return BFEXTU(reg_map[dst], reg_map[src2], 0, 31);
1605 } else if (dst != src2) {
1606 SLJIT_ASSERT(src2 == 0);
1607 return ADD(reg_map[dst], reg_map[src2], ZERO);
1617 return BFEXTS(reg_map[dst], reg_map[src2], 0, 7);
1619 return BFEXTU(reg_map[dst], reg_map[src2], 0, 7);
1620 } else if (dst != src2) {
1621 SLJIT_ASSERT(src2 == 0);
1622 return ADD(reg_map[dst], reg_map[src2], ZERO);
1632 return BFEXTS(reg_map[dst], reg_map[src2], 0, 15);
1634 return BFEXTU(reg_map[dst], reg_map[src2], 0, 15);
1635 } else if (dst != src2) {
1636 SLJIT_ASSERT(src2 == 0);
1637 return ADD(reg_map[dst], reg_map[src2], ZERO);
1645 FAIL_IF(NOR(EQUAL_FLAG, reg_map[src2], reg_map[src2]));
1647 FAIL_IF(NOR(reg_map[dst], reg_map[src2], reg_map[src2]));
1654 FAIL_IF(CLZ(EQUAL_FLAG, reg_map[src2]));
1656 FAIL_IF(CLZ(reg_map[dst], reg_map[src2]));
1664 if (src2 < 0)
1669 FAIL_IF(ADDLI(EQUAL_FLAG, reg_map[src1], src2));
1672 if (src2 >= 0)
1673 FAIL_IF(ORI(ULESS_FLAG ,reg_map[src1], src2));
1675 FAIL_IF(ADDLI(ULESS_FLAG ,ZERO, src2));
1680 /* dst may be the same as src1 or src2. */
1682 FAIL_IF(ADDLI(reg_map[dst], reg_map[src1], src2));
1687 if (src2 < 0)
1692 FAIL_IF(XOR(TMP_EREG1, reg_map[src1], reg_map[src2]));
1697 else if (src2 != dst)
1698 overflow_ra = reg_map[src2];
1707 FAIL_IF(ADD(EQUAL_FLAG ,reg_map[src1], reg_map[src2]));
1710 FAIL_IF(OR(ULESS_FLAG,reg_map[src1], reg_map[src2]));
1712 /* dst may be the same as src1 or src2. */
1714 FAIL_IF(ADD(reg_map[dst],reg_map[src1], reg_map[src2]));
1734 if (src2 >= 0)
1735 FAIL_IF(ORI(TMP_EREG1, reg_map[src1], src2));
1737 FAIL_IF(ADDLI(TMP_EREG1, ZERO, src2));
1742 FAIL_IF(ADDLI(reg_map[dst], reg_map[src1], src2));
1746 FAIL_IF(OR(TMP_EREG1, reg_map[src1], reg_map[src2]));
1748 /* dst may be the same as src1 or src2. */
1749 FAIL_IF(ADD(reg_map[dst], reg_map[src1], reg_map[src2]));
1767 if ((flags & SRC2_IMM) && ((op & (SLJIT_SET_U | SLJIT_SET_S)) || src2 == SIMM_16BIT_MIN)) {
1768 FAIL_IF(ADDLI(TMP_REG2_mapped, ZERO, src2));
1769 src2 = TMP_REG2;
1777 if (src2 < 0)
1790 FAIL_IF(ADDLI(EQUAL_FLAG, reg_map[src1], -src2));
1793 FAIL_IF(load_immediate(compiler, ADDR_TMP_mapped, src2));
1797 /* dst may be the same as src1 or src2. */
1799 FAIL_IF(ADDLI(reg_map[dst], reg_map[src1], -src2));
1804 FAIL_IF(XOR(TMP_EREG1, reg_map[src1], reg_map[src2]));
1817 FAIL_IF(SUB(EQUAL_FLAG, reg_map[src1], reg_map[src2]));
1820 FAIL_IF(CMPLTU(ULESS_FLAG, reg_map[src1], reg_map[src2]));
1823 FAIL_IF(CMPLTU(UGREATER_FLAG, reg_map[src2], reg_map[src1]));
1826 FAIL_IF(CMPLTS(LESS_FLAG ,reg_map[src1] ,reg_map[src2]));
1827 FAIL_IF(CMPLTS(GREATER_FLAG ,reg_map[src2] ,reg_map[src1]));
1830 /* dst may be the same as src1 or src2. */
1832 FAIL_IF(SUB(reg_map[dst], reg_map[src1], reg_map[src2]));
1844 if ((flags & SRC2_IMM) && src2 == SIMM_16BIT_MIN) {
1845 FAIL_IF(ADDLI(TMP_REG2_mapped, ZERO, src2));
1846 src2 = TMP_REG2;
1852 FAIL_IF(load_immediate(compiler, ADDR_TMP_mapped, -src2));
1856 /* dst may be the same as src1 or src2. */
1857 FAIL_IF(ADDLI(reg_map[dst], reg_map[src1], -src2));
1861 FAIL_IF(CMPLTU(TMP_EREG1, reg_map[src1], reg_map[src2]));
1862 /* dst may be the same as src1 or src2. */
1863 FAIL_IF(SUB(reg_map[dst], reg_map[src1], reg_map[src2]));
1878 FAIL_IF(load_immediate(compiler, TMP_REG2_mapped, src2));
1879 src2 = TMP_REG2;
1883 FAIL_IF(MUL(reg_map[dst], reg_map[src1], reg_map[src2]));
1889 FAIL_IF(load_immediate(compiler, ADDR_TMP_mapped, src2)); \
1902 reg_map[src2], __LINE__)); \
1906 reg_map[src2], __LINE__)); \
1926 src2 & 0x3F, __LINE__)); \
1930 src2 & 0x3F, __LINE__)); \
1935 reg_map[src2], __LINE__)); \
1939 reg_map[src2], __LINE__)); \
1959 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)
1976 if (op >= SLJIT_MOV && op <= SLJIT_MOVU_S32 && !(src2 & SLJIT_MEM))
1989 if ((src2 & SLJIT_IMM) && src2w) {
2006 src1 = src2;
2008 src2 = SLJIT_IMM;
2033 if (FAST_IS_REG(src2)) {
2034 src2_r = src2;
2038 } else if (src2 & SLJIT_IMM) {
2050 if (getput_arg_fast(compiler, flags | LOAD_DATA, reg_map[sugg_src2_r], src2, src2w))
2059 if (!can_cache(src1, src1w, src2, src2w) && can_cache(src1, src1w, dst, dstw)) {
2060 FAIL_IF(getput_arg(compiler, flags | LOAD_DATA, TMP_REG2_mapped, src2, src2w, src1, src1w));
2063 FAIL_IF(getput_arg(compiler, flags | LOAD_DATA, TMP_REG1_mapped, src1, src1w, src2, src2w));
2064 FAIL_IF(getput_arg(compiler, flags | LOAD_DATA, TMP_REG2_mapped, src2, src2w, dst, dstw));
2069 FAIL_IF(getput_arg(compiler, flags | LOAD_DATA, reg_map[sugg_src2_r], src2, src2w, dst, dstw));
2257 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)
2260 CHECK(check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
2263 ADJUST_LOCAL_OFFSET(src2, src2w);
2268 return emit_op(compiler, op, CUMULATIVE_OP | IMM_OP, dst, dstw, src1, src1w, src2, src2w);
2272 return emit_op(compiler, op, IMM_OP, dst, dstw, src1, src1w, src2, src2w);
2275 return emit_op(compiler, op, CUMULATIVE_OP, dst, dstw, src1, src1w, src2, src2w);
2280 return emit_op(compiler, op, CUMULATIVE_OP | LOGICAL_OP | IMM_OP, dst, dstw, src1, src1w, src2, src2w);
2285 if (src2 & SLJIT_IMM)
2290 return emit_op(compiler, op, IMM_OP, dst, dstw, src1, src1w, src2, src2w);
2492 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)