Lines Matching refs:op

1283 #define IMM_EXTEND(v) (IMM_I12((op & SLJIT_32) ? (v) : (32 + (v))))
1288 if (op & SLJIT_SET_Z) {\
1302 if (op & SLJIT_SET_Z) \
1313 static SLJIT_INLINE sljit_s32 emit_single_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s… in emit_single_op() argument
1318 sljit_ins word_size = ((op & SLJIT_32) ? 32 : 64); in emit_single_op()
1320 switch (GET_OPCODE(op)) { in emit_single_op()
1324 return push_inst(compiler, INST(ADD, op) | RD(dst) | RJ(src2) | IMM_I12(0)); in emit_single_op()
1344 return push_inst(compiler, INST(BSTRPICK, op) | RD(dst) | RJ(src2) | (15 << 16)); in emit_single_op()
1371 return push_inst(compiler, INST(CLZ, op) | RD(dst) | RJ(src2)); in emit_single_op()
1375 return push_inst(compiler, INST(CTZ, op) | RD(dst) | RJ(src2)); in emit_single_op()
1379 return push_inst(compiler, ((op & SLJIT_32) ? REVB_2W : REVB_D) | RD(dst) | RJ(src2)); in emit_single_op()
1389 return push_inst(compiler, INST(BSTRPICK, op) | RD(dst) | RJ(dst) | (15 << 16)); in emit_single_op()
1403 is_overflow = GET_FLAG_TYPE(op) == SLJIT_OVERFLOW; in emit_single_op()
1404 carry_src_r = GET_FLAG_TYPE(op) == SLJIT_CARRY; in emit_single_op()
1409 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(EQUAL_FLAG) | RJ(src1) | IMM_I12(0))); in emit_single_op()
1411 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(EQUAL_FLAG) | RJ(TMP_ZERO) | IMM_I12(-1))); in emit_single_op()
1414 } else if (op & SLJIT_SET_Z) in emit_single_op()
1415 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(EQUAL_FLAG) | RJ(src1) | IMM_I12(src2))); in emit_single_op()
1418 if (!(flags & UNUSED_DEST) || (op & VARIABLE_FLAG_MASK)) in emit_single_op()
1419 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(dst) | RJ(src1) | IMM_I12(src2))); in emit_single_op()
1423 else if (op & SLJIT_SET_Z) in emit_single_op()
1424 FAIL_IF(push_inst(compiler, INST(ADD, op) | RD(EQUAL_FLAG) | RJ(src1) | RK(src2))); in emit_single_op()
1432 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(OTHER_FLAG) | RJ(src1) | IMM_I12(0))); in emit_single_op()
1438 if (!(flags & UNUSED_DEST) || (op & VARIABLE_FLAG_MASK)) in emit_single_op()
1439 FAIL_IF(push_inst(compiler, INST(ADD, op) | RD(dst) | RJ(src1) | RK(src2))); in emit_single_op()
1454 if (op & SLJIT_SET_Z) in emit_single_op()
1455 FAIL_IF(push_inst(compiler, INST(ADD, op) | RD(EQUAL_FLAG) | RJ(dst) | IMM_I12(0))); in emit_single_op()
1456 FAIL_IF(push_inst(compiler, INST(SRLI, op) | RD(TMP_REG1) | RJ(TMP_REG1) | IMM_EXTEND(31))); in emit_single_op()
1460 carry_src_r = GET_FLAG_TYPE(op) == SLJIT_CARRY; in emit_single_op()
1507 if (GET_FLAG_TYPE(op) == SLJIT_LESS) { in emit_single_op()
1510 } else if (GET_FLAG_TYPE(op) == SLJIT_SIG_LESS) { in emit_single_op()
1516 if (!is_handled && GET_FLAG_TYPE(op) >= SLJIT_LESS && GET_FLAG_TYPE(op) <= SLJIT_SIG_LESS_EQUAL) { in emit_single_op()
1526 switch (GET_FLAG_TYPE(op)) { in emit_single_op()
1544 if (op & SLJIT_SET_Z) in emit_single_op()
1545 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(EQUAL_FLAG) | RJ(src1) | IMM_I12(-src2))); in emit_single_op()
1547 return push_inst(compiler, INST(ADDI, op) | RD(dst) | RJ(src1) | IMM_I12(-src2)); in emit_single_op()
1549 if (op & SLJIT_SET_Z) in emit_single_op()
1550 FAIL_IF(push_inst(compiler, INST(SUB, op) | RD(EQUAL_FLAG) | RJ(src1) | RK(src2))); in emit_single_op()
1552 return push_inst(compiler, INST(SUB, op) | RD(dst) | RJ(src1) | RK(src2)); in emit_single_op()
1557 is_overflow = GET_FLAG_TYPE(op) == SLJIT_OVERFLOW; in emit_single_op()
1558 is_carry = GET_FLAG_TYPE(op) == SLJIT_CARRY; in emit_single_op()
1563 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(EQUAL_FLAG) | RJ(src1) | IMM_I12(0))); in emit_single_op()
1565 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(EQUAL_FLAG) | RJ(src1) | IMM_I12(-1))); in emit_single_op()
1568 } else if (op & SLJIT_SET_Z) in emit_single_op()
1569 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(EQUAL_FLAG) | RJ(src1) | IMM_I12(-src2))); in emit_single_op()
1575 if (!(flags & UNUSED_DEST) || (op & VARIABLE_FLAG_MASK)) in emit_single_op()
1576 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(dst) | RJ(src1) | IMM_I12(-src2))); in emit_single_op()
1580 else if (op & SLJIT_SET_Z) in emit_single_op()
1581 FAIL_IF(push_inst(compiler, INST(SUB, op) | RD(EQUAL_FLAG) | RJ(src1) | RK(src2))); in emit_single_op()
1587 if (!(flags & UNUSED_DEST) || (op & VARIABLE_FLAG_MASK)) in emit_single_op()
1588 FAIL_IF(push_inst(compiler, INST(SUB, op) | RD(dst) | RJ(src1) | RK(src2))); in emit_single_op()
1595 if (op & SLJIT_SET_Z) in emit_single_op()
1596 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(EQUAL_FLAG) | RJ(dst) | IMM_I12(0))); in emit_single_op()
1597 FAIL_IF(push_inst(compiler, INST(SRLI, op) | RD(TMP_REG1) | RJ(TMP_REG1) | IMM_EXTEND(31))); in emit_single_op()
1602 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(TMP_REG2) | RJ(TMP_ZERO) | IMM_I12(src2))); in emit_single_op()
1607 is_carry = GET_FLAG_TYPE(op) == SLJIT_CARRY; in emit_single_op()
1613 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(dst) | RJ(src1) | IMM_I12(-src2))); in emit_single_op()
1618 FAIL_IF(push_inst(compiler, INST(SUB, op) | RD(dst) | RJ(src1) | RK(src2))); in emit_single_op()
1624 FAIL_IF(push_inst(compiler, INST(SUB, op) | RD(dst) | RJ(dst) | RK(OTHER_FLAG))); in emit_single_op()
1634 if (GET_FLAG_TYPE(op) != SLJIT_OVERFLOW) in emit_single_op()
1635 return push_inst(compiler, INST(MUL, op) | RD(dst) | RJ(src1) | RK(src2)); in emit_single_op()
1637 if (op & SLJIT_32) { in emit_single_op()
1662 if (op & SLJIT_32) { in emit_single_op()
1671 if (op & SLJIT_32) { in emit_single_op()
1680 if (op & SLJIT_32) { in emit_single_op()
1692 if (GET_OPCODE(op) == SLJIT_ROTL) in emit_single_op()
1694 return push_inst(compiler, INST(ROTRI, op) | RD(dst) | RJ(src1) | IMM_I12(src2)); in emit_single_op()
1699 return push_inst(compiler, INST(ADDI, op) | RD(dst) | RJ(src1) | IMM_I12(0)); in emit_single_op()
1703 if (GET_OPCODE(op) == SLJIT_ROTL) { in emit_single_op()
1704 FAIL_IF(push_inst(compiler, INST(SUB, op)| RD(OTHER_FLAG) | RJ(TMP_ZERO) | RK(src2))); in emit_single_op()
1707 return push_inst(compiler, INST(ROTR, op) | RD(dst) | RJ(src1) | RK(src2)); in emit_single_op()
1715 if (op & SLJIT_SET_Z) in emit_single_op()
1723 if (op & SLJIT_SET_Z) in emit_single_op()
1733 static sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 flags, in emit_op() argument
1745 …sljit_s32 src2_tmp_reg = (GET_OPCODE(op) >= SLJIT_OP2_BASE && FAST_IS_REG(src1)) ? TMP_REG1 : TMP_… in emit_op()
1753 SLJIT_ASSERT(HAS_FLAGS(op)); in emit_op()
1816 op = SLJIT_MOV; in emit_op()
1844 FAIL_IF(emit_single_op(compiler, op, flags, dst_r, src1_r, src2_r)); in emit_op()
1857 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0(struct sljit_compiler *compiler, sljit_s32 op) in sljit_emit_op0() argument
1860 CHECK(check_sljit_emit_op0(compiler, op)); in sljit_emit_op0()
1862 switch (GET_OPCODE(op)) { in sljit_emit_op0()
1876 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(TMP_REG1) | RJ(SLJIT_R0) | IMM_I12(0))); in sljit_emit_op0()
1877 …FAIL_IF(push_inst(compiler, ((op & SLJIT_32)? DIV_WU: DIV_DU) | RD(SLJIT_R0) | RJ(SLJIT_R0) | RK(S… in sljit_emit_op0()
1878 …return push_inst(compiler, ((op & SLJIT_32)? MOD_WU: MOD_DU) | RD(SLJIT_R1) | RJ(TMP_REG1) | RK(SL… in sljit_emit_op0()
1880 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(TMP_REG1) | RJ(SLJIT_R0) | IMM_I12(0))); in sljit_emit_op0()
1881 FAIL_IF(push_inst(compiler, INST(DIV, op) | RD(SLJIT_R0) | RJ(SLJIT_R0) | RK(SLJIT_R1))); in sljit_emit_op0()
1882 return push_inst(compiler, INST(MOD, op) | RD(SLJIT_R1) | RJ(TMP_REG1) | RK(SLJIT_R1)); in sljit_emit_op0()
1884 …return push_inst(compiler, ((op & SLJIT_32)? DIV_WU: DIV_DU) | RD(SLJIT_R0) | RJ(SLJIT_R0) | RK(SL… in sljit_emit_op0()
1886 return push_inst(compiler, INST(DIV, op) | RD(SLJIT_R0) | RJ(SLJIT_R0) | RK(SLJIT_R1)); in sljit_emit_op0()
1896 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op1() argument
1903 CHECK(check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw)); in sljit_emit_op1()
1907 if (op & SLJIT_32) in sljit_emit_op1()
1910 switch (GET_OPCODE(op)) { in sljit_emit_op1()
1924 …return emit_op(compiler, op, BYTE_DATA | MOVE_OP, dst, dstw, TMP_ZERO, 0, src, (src == SLJIT_IMM) … in sljit_emit_op1()
1927 …return emit_op(compiler, op, BYTE_DATA | SIGNED_DATA | MOVE_OP, dst, dstw, TMP_ZERO, 0, src, (src … in sljit_emit_op1()
1930 …return emit_op(compiler, op, HALF_DATA | MOVE_OP, dst, dstw, TMP_ZERO, 0, src, (src == SLJIT_IMM) … in sljit_emit_op1()
1933 …return emit_op(compiler, op, HALF_DATA | SIGNED_DATA | MOVE_OP, dst, dstw, TMP_ZERO, 0, src, (src … in sljit_emit_op1()
1938 return emit_op(compiler, op, flags, dst, dstw, TMP_ZERO, 0, src, srcw); in sljit_emit_op1()
1942 return emit_op(compiler, op, HALF_DATA, dst, dstw, TMP_ZERO, 0, src, srcw); in sljit_emit_op1()
1946 return emit_op(compiler, op | SLJIT_32, INT_DATA, dst, dstw, TMP_ZERO, 0, src, srcw); in sljit_emit_op1()
1953 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op2() argument
1961 CHECK(check_sljit_emit_op2(compiler, op, 0, dst, dstw, src1, src1w, src2, src2w)); in sljit_emit_op2()
1966 if (op & SLJIT_32) { in sljit_emit_op2()
1975 switch (GET_OPCODE(op)) { in sljit_emit_op2()
1979 return emit_op(compiler, op, flags | CUMULATIVE_OP | IMM_OP, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
1984 return emit_op(compiler, op, flags | IMM_OP, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
1988 return emit_op(compiler, op, flags | CUMULATIVE_OP, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
1993 return emit_op(compiler, op, flags | CUMULATIVE_OP | IMM_OP, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
2004 if (op & SLJIT_32) in sljit_emit_op2()
2010 return emit_op(compiler, op, flags | IMM_OP, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
2017 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2u(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op2u() argument
2022 CHECK(check_sljit_emit_op2(compiler, op, 1, 0, 0, src1, src1w, src2, src2w)); in sljit_emit_op2u()
2025 return sljit_emit_op2(compiler, op, 0, 0, src1, src1w, src2, src2w); in sljit_emit_op2u()
2028 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2r(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op2r() argument
2034 CHECK(check_sljit_emit_op2r(compiler, op, dst_reg, src1, src1w, src2, src2w)); in sljit_emit_op2r()
2036 switch (GET_OPCODE(op)) { in sljit_emit_op2r()
2039 …FAIL_IF(sljit_emit_op2(compiler, SLJIT_MUL | (op & SLJIT_32), TMP_REG2, 0, src1, src1w, src2, src2… in sljit_emit_op2r()
2046 …T_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_shift_into(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_shift_into() argument
2054 sljit_s32 inp_flags = ((op & SLJIT_32) ? INT_DATA : WORD_DATA) | LOAD_DATA; in sljit_emit_shift_into()
2055 sljit_sw bit_length = (op & SLJIT_32) ? 32 : 64; in sljit_emit_shift_into()
2059 CHECK(check_sljit_emit_shift_into(compiler, op, dst_reg, src1_reg, src2_reg, src3, src3w)); in sljit_emit_shift_into()
2061 is_left = (GET_OPCODE(op) == SLJIT_SHL || GET_OPCODE(op) == SLJIT_MSHL); in sljit_emit_shift_into()
2065 …return sljit_emit_op2(compiler, (is_left ? SLJIT_ROTL : SLJIT_ROTR) | (op & SLJIT_32), dst_reg, 0,… in sljit_emit_shift_into()
2077 ins1 = INST(SLLI, op) | IMM_I12(src3w); in sljit_emit_shift_into()
2079 ins2 = INST(SRLI, op) | IMM_I12(src3w); in sljit_emit_shift_into()
2081 ins1 = INST(SRLI, op) | IMM_I12(src3w); in sljit_emit_shift_into()
2083 ins2 = INST(SLLI, op) | IMM_I12(src3w); in sljit_emit_shift_into()
2095 push_inst(compiler, INST(ADDI, op) | RD(TMP_REG2) | RJ(src3) | IMM_I12(0)); in sljit_emit_shift_into()
2100 ins1 = INST(SLL, op); in sljit_emit_shift_into()
2101 ins2 = INST(SRLI, op); in sljit_emit_shift_into()
2102 ins3 = INST(SRL, op); in sljit_emit_shift_into()
2104 ins1 = INST(SRL, op); in sljit_emit_shift_into()
2105 ins2 = INST(SLLI, op); in sljit_emit_shift_into()
2106 ins3 = INST(SLL, op); in sljit_emit_shift_into()
2111 if (!(op & SLJIT_SHIFT_INTO_NON_ZERO)) { in sljit_emit_shift_into()
2116 FAIL_IF(push_inst(compiler, INST(SUB, op) | RD(TMP_REG2) | RJ(TMP_ZERO) | RK(src3))); in sljit_emit_shift_into()
2122 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_src(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op_src() argument
2128 CHECK(check_sljit_emit_op_src(compiler, op, src, srcw)); in sljit_emit_op_src()
2131 switch (op) { in sljit_emit_op_src()
2163 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_dst(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op_dst() argument
2169 CHECK(check_sljit_emit_op_dst(compiler, op, dst, dstw)); in sljit_emit_op_dst()
2172 switch (op) { in sljit_emit_op_dst()
2236 #define FLOAT_DATA(op) (DOUBLE_DATA | ((op & SLJIT_32) >> 7)) argument
2239 …IT_INLINE sljit_s32 sljit_emit_fop1_conv_sw_from_f64(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1_conv_sw_from_f64() argument
2247 switch (GET_OPCODE(op)) in sljit_emit_fop1_conv_sw_from_f64()
2251 inst = FINST(FTINTRZ_L, op); in sljit_emit_fop1_conv_sw_from_f64()
2254 inst = FINST(FTINTRZ_W, op); in sljit_emit_fop1_conv_sw_from_f64()
2262 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src, srcw, dst, dstw)); in sljit_emit_fop1_conv_sw_from_f64()
2274 …JIT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_w(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1_conv_f64_from_w() argument
2282 switch (GET_OPCODE(op)) in sljit_emit_fop1_conv_f64_from_w()
2286 inst = (sljit_ins)((op & SLJIT_32) ? FFINT_S_L : FFINT_D_L); in sljit_emit_fop1_conv_f64_from_w()
2289 inst = (sljit_ins)((op & SLJIT_32) ? FFINT_S_W : FFINT_D_W); in sljit_emit_fop1_conv_f64_from_w()
2300 if (GET_OPCODE(op) == SLJIT_CONV_F64_FROM_S32) in sljit_emit_fop1_conv_f64_from_w()
2310 return emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG1, dst, dstw, 0, 0); in sljit_emit_fop1_conv_f64_from_w()
2314 …IT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_sw(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1_conv_f64_from_sw() argument
2318 return sljit_emit_fop1_conv_f64_from_w(compiler, op, dst, dstw, src, srcw); in sljit_emit_fop1_conv_f64_from_sw()
2321 …IT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_uw(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1_conv_f64_from_uw() argument
2329 switch (GET_OPCODE(op)) in sljit_emit_fop1_conv_f64_from_uw()
2333 inst = (sljit_ins)((op & SLJIT_32) ? FFINT_S_L : FFINT_D_L); in sljit_emit_fop1_conv_f64_from_uw()
2336 inst = (sljit_ins)((op & SLJIT_32) ? FFINT_S_W : FFINT_D_W); in sljit_emit_fop1_conv_f64_from_uw()
2347 if (GET_OPCODE(op) == SLJIT_CONV_F64_FROM_U32) in sljit_emit_fop1_conv_f64_from_uw()
2368 FAIL_IF(push_inst(compiler, FINST(FADD, op) | FRD(dst_r) | FRJ(dst_r) | FRK(dst_r))); in sljit_emit_fop1_conv_f64_from_uw()
2371 return emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG1, dst, dstw, 0, 0); in sljit_emit_fop1_conv_f64_from_uw()
2375 static SLJIT_INLINE sljit_s32 sljit_emit_fop1_cmp(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1_cmp() argument
2380 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, src2, src2w)); in sljit_emit_fop1_cmp()
2385 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, 0, 0)); in sljit_emit_fop1_cmp()
2391 switch (GET_FLAG_TYPE(op)) { in sljit_emit_fop1_cmp()
2394 …FAIL_IF(push_inst(compiler, FINST(FCMP_COND, op) | COND_CEQ | FCD(F_OTHER_FLAG) | FRJ(src1) | FRK(… in sljit_emit_fop1_cmp()
2398 …FAIL_IF(push_inst(compiler, FINST(FCMP_COND, op) | COND_CLT | FCD(F_OTHER_FLAG) | FRJ(src1) | FRK(… in sljit_emit_fop1_cmp()
2402 …FAIL_IF(push_inst(compiler, FINST(FCMP_COND, op) | COND_CLT | FCD(F_OTHER_FLAG) | FRJ(src2) | FRK(… in sljit_emit_fop1_cmp()
2405 …FAIL_IF(push_inst(compiler, FINST(FCMP_COND, op) | COND_CULT | FCD(F_OTHER_FLAG) | FRJ(src2) | FRK… in sljit_emit_fop1_cmp()
2408 …FAIL_IF(push_inst(compiler, FINST(FCMP_COND, op) | COND_CULT | FCD(F_OTHER_FLAG) | FRJ(src1) | FRK… in sljit_emit_fop1_cmp()
2411 …FAIL_IF(push_inst(compiler, FINST(FCMP_COND, op) | COND_CUEQ | FCD(F_OTHER_FLAG) | FRJ(src1) | FRK… in sljit_emit_fop1_cmp()
2414 …FAIL_IF(push_inst(compiler, FINST(FCMP_COND, op) | COND_CUN | FCD(F_OTHER_FLAG) | FRJ(src1) | FRK(… in sljit_emit_fop1_cmp()
2419 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1() argument
2430 SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw); in sljit_emit_fop1()
2432 if (GET_OPCODE(op) == SLJIT_CONV_F64_FROM_F32) in sljit_emit_fop1()
2433 op ^= SLJIT_32; in sljit_emit_fop1()
2438 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, dst_r, src, srcw, dst, dstw)); in sljit_emit_fop1()
2442 switch (GET_OPCODE(op)) { in sljit_emit_fop1()
2446 FAIL_IF(push_inst(compiler, FINST(FMOV, op) | FRD(dst_r) | FRJ(src))); in sljit_emit_fop1()
2452 FAIL_IF(push_inst(compiler, FINST(FNEG, op) | FRD(dst_r) | FRJ(src))); in sljit_emit_fop1()
2455 FAIL_IF(push_inst(compiler, FINST(FABS, op) | FRD(dst_r) | FRJ(src))); in sljit_emit_fop1()
2459 FAIL_IF(push_inst(compiler, ((op & SLJIT_32) ? FCVT_D_S : FCVT_S_D) | FRD(dst_r) | FRJ(src))); in sljit_emit_fop1()
2460 op ^= SLJIT_32; in sljit_emit_fop1()
2465 return emit_op_mem2(compiler, FLOAT_DATA(op), dst_r, dst, dstw, 0, 0); in sljit_emit_fop1()
2469 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop2() argument
2477 CHECK(check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w)); in sljit_emit_fop2()
2488 if (getput_arg_fast(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w)) { in sljit_emit_fop2()
2496 if (getput_arg_fast(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w)) { in sljit_emit_fop2()
2505 FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, src1, src1w)); in sljit_emit_fop2()
2506 FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, dst, dstw)); in sljit_emit_fop2()
2508 FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, src2, src2w)); in sljit_emit_fop2()
2509 FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, dst, dstw)); in sljit_emit_fop2()
2513 FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, dst, dstw)); in sljit_emit_fop2()
2515 FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, dst, dstw)); in sljit_emit_fop2()
2522 switch (GET_OPCODE(op)) { in sljit_emit_fop2()
2524 FAIL_IF(push_inst(compiler, FINST(FADD, op) | FRD(dst_r) | FRJ(src1) | FRK(src2))); in sljit_emit_fop2()
2527 FAIL_IF(push_inst(compiler, FINST(FSUB, op) | FRD(dst_r) | FRJ(src1) | FRK(src2))); in sljit_emit_fop2()
2530 FAIL_IF(push_inst(compiler, FINST(FMUL, op) | FRD(dst_r) | FRJ(src1) | FRK(src2))); in sljit_emit_fop2()
2533 FAIL_IF(push_inst(compiler, FINST(FDIV, op) | FRD(dst_r) | FRJ(src1) | FRK(src2))); in sljit_emit_fop2()
2538 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG2, dst, dstw, 0, 0)); in sljit_emit_fop2()
2542 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2r(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop2r() argument
2550 CHECK(check_sljit_emit_fop2r(compiler, op, dst_freg, src1, src1w, src2, src2w)); in sljit_emit_fop2r()
2555 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src2, src2w, 0, 0)); in sljit_emit_fop2r()
2561 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, reg, src1, src1w, 0, 0)); in sljit_emit_fop2r()
2565 return push_inst(compiler, FINST(FCOPYSIGN, op) | FRD(dst_freg) | FRJ(src1) | FRK(src2)); in sljit_emit_fop2r()
2608 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fcopy(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fcopy() argument
2614 CHECK(check_sljit_emit_fcopy(compiler, op, freg, reg)); in sljit_emit_fcopy()
2616 if (GET_OPCODE(op) == SLJIT_COPY_TO_F64) in sljit_emit_fcopy()
2617 inst = ((op & SLJIT_32) ? MOVGR2FR_W : MOVGR2FR_D) | FRD(freg) | RJ(reg); in sljit_emit_fcopy()
2619 inst = ((op & SLJIT_32) ? MOVFR2GR_S : MOVFR2GR_D) | RD(reg) | FRJ(freg); in sljit_emit_fcopy()
2903 …JIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op_flags() argument
2908 sljit_s32 saved_op = op; in sljit_emit_op_flags()
2909 sljit_s32 mem_type = ((op & SLJIT_32) || op == SLJIT_MOV32) ? (INT_DATA | SIGNED_DATA) : WORD_DATA; in sljit_emit_op_flags()
2912 CHECK(check_sljit_emit_op_flags(compiler, op, dst, dstw, type)); in sljit_emit_op_flags()
2915 op = GET_OPCODE(op); in sljit_emit_op_flags()
2916 dst_r = (op < SLJIT_ADD && FAST_IS_REG(dst)) ? dst : TMP_REG2; in sljit_emit_op_flags()
2921 if (op >= SLJIT_ADD && (dst & SLJIT_MEM)) in sljit_emit_op_flags()
2976 if (op < SLJIT_ADD) { in sljit_emit_op_flags()
3599 sljit_s32 op, in sljit_emit_atomic_load() argument
3606 CHECK(check_sljit_emit_atomic_load(compiler, op, dst_reg, mem_reg)); in sljit_emit_atomic_load()
3608 switch(GET_OPCODE(op)) { in sljit_emit_atomic_load()
3630 sljit_s32 op, in sljit_emit_atomic_store() argument
3640 CHECK(check_sljit_emit_atomic_store(compiler, op, src_reg, mem_reg, temp_reg)); in sljit_emit_atomic_store()
3642 switch (GET_OPCODE(op)) { in sljit_emit_atomic_store()
3663 if (op & SLJIT_SET_ATOMIC_STORED) { in sljit_emit_atomic_store()
3668 if (!(op & SLJIT_SET_ATOMIC_STORED)) in sljit_emit_atomic_store()