Lines Matching refs:op

1134 #define IMM_EXTEND(v) (IMM_I12((op & SLJIT_32) ? (v) : (32 + (v))))
1139 if (op & SLJIT_SET_Z) {\
1154 if (op & SLJIT_SET_Z) \
1165 static SLJIT_INLINE sljit_s32 emit_single_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s… in emit_single_op() argument
1170 sljit_ins word_size = ((op & SLJIT_32) ? 32 : 64); in emit_single_op()
1172 switch (GET_OPCODE(op)) { in emit_single_op()
1176 return push_inst(compiler, INST(ADD, op) | RD(dst) | RJ(src2) | IMM_I12(0)); in emit_single_op()
1196 return push_inst(compiler, INST(BSTRPICK, op) | RD(dst) | RJ(src2) | (15 << 16)); in emit_single_op()
1223 return push_inst(compiler, INST(CLZ, op) | RD(dst) | RJ(src2)); in emit_single_op()
1227 return push_inst(compiler, INST(CTZ, op) | RD(dst) | RJ(src2)); in emit_single_op()
1231 return push_inst(compiler, ((op & SLJIT_32) ? REVB_2W : REVB_D) | RD(dst) | RJ(src2)); in emit_single_op()
1241 return push_inst(compiler, INST(BSTRPICK, op) | RD(dst) | RJ(dst) | (15 << 16)); in emit_single_op()
1255 is_overflow = GET_FLAG_TYPE(op) == SLJIT_OVERFLOW; in emit_single_op()
1256 carry_src_r = GET_FLAG_TYPE(op) == SLJIT_CARRY; in emit_single_op()
1261 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(EQUAL_FLAG) | RJ(src1) | IMM_I12(0))); in emit_single_op()
1263 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(EQUAL_FLAG) | RJ(TMP_ZERO) | IMM_I12(-1))); in emit_single_op()
1267 else if (op & SLJIT_SET_Z) in emit_single_op()
1268 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(EQUAL_FLAG) | RJ(src1) | IMM_I12(src2))); in emit_single_op()
1271 if (!(flags & UNUSED_DEST) || (op & VARIABLE_FLAG_MASK)) in emit_single_op()
1272 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(dst) | RJ(src1) | IMM_I12(src2))); in emit_single_op()
1277 else if (op & SLJIT_SET_Z) in emit_single_op()
1278 FAIL_IF(push_inst(compiler, INST(ADD, op) | RD(EQUAL_FLAG) | RJ(src1) | RK(src2))); in emit_single_op()
1286 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(OTHER_FLAG) | RJ(src1) | IMM_I12(0))); in emit_single_op()
1292 if (!(flags & UNUSED_DEST) || (op & VARIABLE_FLAG_MASK)) in emit_single_op()
1293 FAIL_IF(push_inst(compiler, INST(ADD, op) | RD(dst) | RJ(src1) | RK(src2))); in emit_single_op()
1308 if (op & SLJIT_SET_Z) in emit_single_op()
1309 FAIL_IF(push_inst(compiler, INST(ADD, op) | RD(EQUAL_FLAG) | RJ(dst) | IMM_I12(0))); in emit_single_op()
1310 FAIL_IF(push_inst(compiler, INST(SRLI, op) | RD(TMP_REG1) | RJ(TMP_REG1) | IMM_EXTEND(31))); in emit_single_op()
1314 carry_src_r = GET_FLAG_TYPE(op) == SLJIT_CARRY; in emit_single_op()
1361 if (GET_FLAG_TYPE(op) == SLJIT_LESS) { in emit_single_op()
1365 else if (GET_FLAG_TYPE(op) == SLJIT_SIG_LESS) { in emit_single_op()
1371 if (!is_handled && GET_FLAG_TYPE(op) >= SLJIT_LESS && GET_FLAG_TYPE(op) <= SLJIT_SIG_LESS_EQUAL) { in emit_single_op()
1380 switch (GET_FLAG_TYPE(op)) { in emit_single_op()
1398 if (op & SLJIT_SET_Z) in emit_single_op()
1399 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(EQUAL_FLAG) | RJ(src1) | IMM_I12(-src2))); in emit_single_op()
1401 return push_inst(compiler, INST(ADDI, op) | RD(dst) | RJ(src1) | IMM_I12(-src2)); in emit_single_op()
1404 if (op & SLJIT_SET_Z) in emit_single_op()
1405 FAIL_IF(push_inst(compiler, INST(SUB, op) | RD(EQUAL_FLAG) | RJ(src1) | RK(src2))); in emit_single_op()
1407 return push_inst(compiler, INST(SUB, op) | RD(dst) | RJ(src1) | RK(src2)); in emit_single_op()
1412 is_overflow = GET_FLAG_TYPE(op) == SLJIT_OVERFLOW; in emit_single_op()
1413 is_carry = GET_FLAG_TYPE(op) == SLJIT_CARRY; in emit_single_op()
1418 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(EQUAL_FLAG) | RJ(src1) | IMM_I12(0))); in emit_single_op()
1420 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(EQUAL_FLAG) | RJ(src1) | IMM_I12(-1))); in emit_single_op()
1424 else if (op & SLJIT_SET_Z) in emit_single_op()
1425 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(EQUAL_FLAG) | RJ(src1) | IMM_I12(-src2))); in emit_single_op()
1431 if (!(flags & UNUSED_DEST) || (op & VARIABLE_FLAG_MASK)) in emit_single_op()
1432 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(dst) | RJ(src1) | IMM_I12(-src2))); in emit_single_op()
1437 else if (op & SLJIT_SET_Z) in emit_single_op()
1438 FAIL_IF(push_inst(compiler, INST(SUB, op) | RD(EQUAL_FLAG) | RJ(src1) | RK(src2))); in emit_single_op()
1444 if (!(flags & UNUSED_DEST) || (op & VARIABLE_FLAG_MASK)) in emit_single_op()
1445 FAIL_IF(push_inst(compiler, INST(SUB, op) | RD(dst) | RJ(src1) | RK(src2))); in emit_single_op()
1452 if (op & SLJIT_SET_Z) in emit_single_op()
1453 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(EQUAL_FLAG) | RJ(dst) | IMM_I12(0))); in emit_single_op()
1454 FAIL_IF(push_inst(compiler, INST(SRLI, op) | RD(TMP_REG1) | RJ(TMP_REG1) | IMM_EXTEND(31))); in emit_single_op()
1459 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(TMP_REG2) | RJ(TMP_ZERO) | IMM_I12(src2))); in emit_single_op()
1464 is_carry = GET_FLAG_TYPE(op) == SLJIT_CARRY; in emit_single_op()
1470 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(dst) | RJ(src1) | IMM_I12(-src2))); in emit_single_op()
1476 FAIL_IF(push_inst(compiler, INST(SUB, op) | RD(dst) | RJ(src1) | RK(src2))); in emit_single_op()
1482 FAIL_IF(push_inst(compiler, INST(SUB, op) | RD(dst) | RJ(dst) | RK(OTHER_FLAG))); in emit_single_op()
1492 if (GET_FLAG_TYPE(op) != SLJIT_OVERFLOW) in emit_single_op()
1493 return push_inst(compiler, INST(MUL, op) | RD(dst) | RJ(src1) | RK(src2)); in emit_single_op()
1495 if (op & SLJIT_32) { in emit_single_op()
1520 if (op & SLJIT_32) { in emit_single_op()
1529 if (op & SLJIT_32) { in emit_single_op()
1538 if (op & SLJIT_32) { in emit_single_op()
1550 if (GET_OPCODE(op) == SLJIT_ROTL) in emit_single_op()
1552 return push_inst(compiler, INST(ROTRI, op) | RD(dst) | RJ(src1) | IMM_I12(src2)); in emit_single_op()
1558 return push_inst(compiler, INST(ADDI, op) | RD(dst) | RJ(src1) | IMM_I12(0)); in emit_single_op()
1562 if (GET_OPCODE(op) == SLJIT_ROTL) { in emit_single_op()
1563 FAIL_IF(push_inst(compiler, INST(SUB, op)| RD(OTHER_FLAG) | RJ(TMP_ZERO) | RK(src2))); in emit_single_op()
1566 return push_inst(compiler, INST(ROTR, op) | RD(dst) | RJ(src1) | RK(src2)); in emit_single_op()
1574 if (op & SLJIT_SET_Z) in emit_single_op()
1582 if (op & SLJIT_SET_Z) in emit_single_op()
1592 static sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 flags, in emit_op() argument
1612 SLJIT_ASSERT(HAS_FLAGS(op)); in emit_op()
1682 op = SLJIT_MOV; in emit_op()
1712 FAIL_IF(emit_single_op(compiler, op, flags, dst_r, src1_r, src2_r)); in emit_op()
1725 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0(struct sljit_compiler *compiler, sljit_s32 op) in sljit_emit_op0() argument
1728 CHECK(check_sljit_emit_op0(compiler, op)); in sljit_emit_op0()
1730 switch (GET_OPCODE(op)) { in sljit_emit_op0()
1744 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(TMP_REG1) | RJ(SLJIT_R0) | IMM_I12(0))); in sljit_emit_op0()
1745 …FAIL_IF(push_inst(compiler, ((op & SLJIT_32)? DIV_WU: DIV_DU) | RD(SLJIT_R0) | RJ(SLJIT_R0) | RK(S… in sljit_emit_op0()
1746 …return push_inst(compiler, ((op & SLJIT_32)? MOD_WU: MOD_DU) | RD(SLJIT_R1) | RJ(TMP_REG1) | RK(SL… in sljit_emit_op0()
1748 FAIL_IF(push_inst(compiler, INST(ADDI, op) | RD(TMP_REG1) | RJ(SLJIT_R0) | IMM_I12(0))); in sljit_emit_op0()
1749 FAIL_IF(push_inst(compiler, INST(DIV, op) | RD(SLJIT_R0) | RJ(SLJIT_R0) | RK(SLJIT_R1))); in sljit_emit_op0()
1750 return push_inst(compiler, INST(MOD, op) | RD(SLJIT_R1) | RJ(TMP_REG1) | RK(SLJIT_R1)); in sljit_emit_op0()
1752 …return push_inst(compiler, ((op & SLJIT_32)? DIV_WU: DIV_DU) | RD(SLJIT_R0) | RJ(SLJIT_R0) | RK(SL… in sljit_emit_op0()
1754 return push_inst(compiler, INST(DIV, op) | RD(SLJIT_R0) | RJ(SLJIT_R0) | RK(SLJIT_R1)); in sljit_emit_op0()
1764 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op1() argument
1771 CHECK(check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw)); in sljit_emit_op1()
1775 if (op & SLJIT_32) in sljit_emit_op1()
1778 switch (GET_OPCODE(op)) { in sljit_emit_op1()
1792 …return emit_op(compiler, op, BYTE_DATA | MOVE_OP, dst, dstw, TMP_REG1, 0, src, (src == SLJIT_IMM) … in sljit_emit_op1()
1795 …return emit_op(compiler, op, BYTE_DATA | SIGNED_DATA | MOVE_OP, dst, dstw, TMP_REG1, 0, src, (src … in sljit_emit_op1()
1798 …return emit_op(compiler, op, HALF_DATA | MOVE_OP, dst, dstw, TMP_REG1, 0, src, (src == SLJIT_IMM) … in sljit_emit_op1()
1801 …return emit_op(compiler, op, HALF_DATA | SIGNED_DATA | MOVE_OP, dst, dstw, TMP_REG1, 0, src, (src … in sljit_emit_op1()
1806 return emit_op(compiler, op, flags, dst, dstw, TMP_REG1, 0, src, srcw); in sljit_emit_op1()
1810 return emit_op(compiler, op, HALF_DATA, dst, dstw, TMP_REG1, 0, src, srcw); in sljit_emit_op1()
1814 return emit_op(compiler, op | SLJIT_32, INT_DATA, dst, dstw, TMP_REG1, 0, src, srcw); in sljit_emit_op1()
1821 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op2() argument
1829 CHECK(check_sljit_emit_op2(compiler, op, 0, dst, dstw, src1, src1w, src2, src2w)); in sljit_emit_op2()
1834 if (op & SLJIT_32) { in sljit_emit_op2()
1843 switch (GET_OPCODE(op)) { in sljit_emit_op2()
1847 return emit_op(compiler, op, flags | CUMULATIVE_OP | IMM_OP, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
1852 return emit_op(compiler, op, flags | IMM_OP, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
1856 return emit_op(compiler, op, flags | CUMULATIVE_OP, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
1861 return emit_op(compiler, op, flags | CUMULATIVE_OP | IMM_OP, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
1872 if (op & SLJIT_32) in sljit_emit_op2()
1878 return emit_op(compiler, op, flags | IMM_OP, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
1885 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2u(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op2u() argument
1890 CHECK(check_sljit_emit_op2(compiler, op, 1, 0, 0, src1, src1w, src2, src2w)); in sljit_emit_op2u()
1893 return sljit_emit_op2(compiler, op, 0, 0, src1, src1w, src2, src2w); in sljit_emit_op2u()
1896 …T_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_shift_into(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_shift_into() argument
1904 sljit_s32 inp_flags = ((op & SLJIT_32) ? INT_DATA : WORD_DATA) | LOAD_DATA; in sljit_emit_shift_into()
1905 sljit_sw bit_length = (op & SLJIT_32) ? 32 : 64; in sljit_emit_shift_into()
1909 CHECK(check_sljit_emit_shift_into(compiler, op, dst_reg, src1_reg, src2_reg, src3, src3w)); in sljit_emit_shift_into()
1911 is_left = (GET_OPCODE(op) == SLJIT_SHL || GET_OPCODE(op) == SLJIT_MSHL); in sljit_emit_shift_into()
1915 …return sljit_emit_op2(compiler, (is_left ? SLJIT_ROTL : SLJIT_ROTR) | (op & SLJIT_32), dst_reg, 0,… in sljit_emit_shift_into()
1927 ins1 = INST(SLLI, op) | IMM_I12(src3w); in sljit_emit_shift_into()
1929 ins2 = INST(SRLI, op) | IMM_I12(src3w); in sljit_emit_shift_into()
1931 ins1 = INST(SRLI, op) | IMM_I12(src3w); in sljit_emit_shift_into()
1933 ins2 = INST(SLLI, op) | IMM_I12(src3w); in sljit_emit_shift_into()
1945 push_inst(compiler, INST(ADDI, op) | RD(TMP_REG2) | RJ(src3) | IMM_I12(0)); in sljit_emit_shift_into()
1950 ins1 = INST(SLL, op); in sljit_emit_shift_into()
1951 ins2 = INST(SRLI, op); in sljit_emit_shift_into()
1952 ins3 = INST(SRL, op); in sljit_emit_shift_into()
1954 ins1 = INST(SRL, op); in sljit_emit_shift_into()
1955 ins2 = INST(SLLI, op); in sljit_emit_shift_into()
1956 ins3 = INST(SLL, op); in sljit_emit_shift_into()
1961 if (!(op & SLJIT_SHIFT_INTO_NON_ZERO)) { in sljit_emit_shift_into()
1966 FAIL_IF(push_inst(compiler, INST(SUB, op) | RD(TMP_REG2) | RJ(TMP_ZERO) | RK(src3))); in sljit_emit_shift_into()
1972 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_src(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op_src() argument
1978 CHECK(check_sljit_emit_op_src(compiler, op, src, srcw)); in sljit_emit_op_src()
1981 switch (op) { in sljit_emit_op_src()
2013 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_dst(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op_dst() argument
2019 CHECK(check_sljit_emit_op_dst(compiler, op, dst, dstw)); in sljit_emit_op_dst()
2022 switch (op) { in sljit_emit_op_dst()
2086 #define FLOAT_DATA(op) (DOUBLE_DATA | ((op & SLJIT_32) >> 7)) argument
2089 …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
2097 switch (GET_OPCODE(op)) in sljit_emit_fop1_conv_sw_from_f64()
2101 inst = FINST(FTINTRZ_L, op); in sljit_emit_fop1_conv_sw_from_f64()
2104 inst = FINST(FTINTRZ_W, op); in sljit_emit_fop1_conv_sw_from_f64()
2112 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()
2124 …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
2132 switch (GET_OPCODE(op)) in sljit_emit_fop1_conv_f64_from_w()
2136 inst = (sljit_ins)((op & SLJIT_32) ? FFINT_S_L : FFINT_D_L); in sljit_emit_fop1_conv_f64_from_w()
2139 inst = (sljit_ins)((op & SLJIT_32) ? FFINT_S_W : FFINT_D_W); in sljit_emit_fop1_conv_f64_from_w()
2150 if (GET_OPCODE(op) == SLJIT_CONV_F64_FROM_S32) in sljit_emit_fop1_conv_f64_from_w()
2160 return emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG1, dst, dstw, 0, 0); in sljit_emit_fop1_conv_f64_from_w()
2164 …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
2168 return sljit_emit_fop1_conv_f64_from_w(compiler, op, dst, dstw, src, srcw); in sljit_emit_fop1_conv_f64_from_sw()
2171 …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
2179 switch (GET_OPCODE(op)) in sljit_emit_fop1_conv_f64_from_uw()
2183 inst = (sljit_ins)((op & SLJIT_32) ? FFINT_S_L : FFINT_D_L); in sljit_emit_fop1_conv_f64_from_uw()
2186 inst = (sljit_ins)((op & SLJIT_32) ? FFINT_S_W : FFINT_D_W); in sljit_emit_fop1_conv_f64_from_uw()
2197 if (GET_OPCODE(op) == SLJIT_CONV_F64_FROM_U32) in sljit_emit_fop1_conv_f64_from_uw()
2218 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()
2221 return emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG1, dst, dstw, 0, 0); in sljit_emit_fop1_conv_f64_from_uw()
2225 static SLJIT_INLINE sljit_s32 sljit_emit_fop1_cmp(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1_cmp() argument
2230 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, src2, src2w)); in sljit_emit_fop1_cmp()
2235 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, 0, 0)); in sljit_emit_fop1_cmp()
2241 switch (GET_FLAG_TYPE(op)) { in sljit_emit_fop1_cmp()
2244 …FAIL_IF(push_inst(compiler, FINST(FCMP_COND, op) | COND_CEQ | FCD(F_OTHER_FLAG) | FRJ(src1) | FRK(… in sljit_emit_fop1_cmp()
2248 …FAIL_IF(push_inst(compiler, FINST(FCMP_COND, op) | COND_CLT | FCD(F_OTHER_FLAG) | FRJ(src1) | FRK(… in sljit_emit_fop1_cmp()
2252 …FAIL_IF(push_inst(compiler, FINST(FCMP_COND, op) | COND_CLT | FCD(F_OTHER_FLAG) | FRJ(src2) | FRK(… in sljit_emit_fop1_cmp()
2255 …FAIL_IF(push_inst(compiler, FINST(FCMP_COND, op) | COND_CULT | FCD(F_OTHER_FLAG) | FRJ(src2) | FRK… in sljit_emit_fop1_cmp()
2258 …FAIL_IF(push_inst(compiler, FINST(FCMP_COND, op) | COND_CULT | FCD(F_OTHER_FLAG) | FRJ(src1) | FRK… in sljit_emit_fop1_cmp()
2261 …FAIL_IF(push_inst(compiler, FINST(FCMP_COND, op) | COND_CUEQ | FCD(F_OTHER_FLAG) | FRJ(src1) | FRK… in sljit_emit_fop1_cmp()
2264 …FAIL_IF(push_inst(compiler, FINST(FCMP_COND, op) | COND_CUN | FCD(F_OTHER_FLAG) | FRJ(src1) | FRK(… in sljit_emit_fop1_cmp()
2269 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1() argument
2280 SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw); in sljit_emit_fop1()
2282 if (GET_OPCODE(op) == SLJIT_CONV_F64_FROM_F32) in sljit_emit_fop1()
2283 op ^= SLJIT_32; in sljit_emit_fop1()
2288 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, dst_r, src, srcw, dst, dstw)); in sljit_emit_fop1()
2292 switch (GET_OPCODE(op)) { in sljit_emit_fop1()
2296 FAIL_IF(push_inst(compiler, FINST(FMOV, op) | FRD(dst_r) | FRJ(src))); in sljit_emit_fop1()
2302 FAIL_IF(push_inst(compiler, FINST(FNEG, op) | FRD(dst_r) | FRJ(src))); in sljit_emit_fop1()
2305 FAIL_IF(push_inst(compiler, FINST(FABS, op) | FRD(dst_r) | FRJ(src))); in sljit_emit_fop1()
2309 FAIL_IF(push_inst(compiler, ((op & SLJIT_32) ? FCVT_D_S : FCVT_S_D) | FRD(dst_r) | FRJ(src))); in sljit_emit_fop1()
2310 op ^= SLJIT_32; in sljit_emit_fop1()
2315 return emit_op_mem2(compiler, FLOAT_DATA(op), dst_r, dst, dstw, 0, 0); in sljit_emit_fop1()
2319 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop2() argument
2327 CHECK(check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w)); in sljit_emit_fop2()
2338 if (getput_arg_fast(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w)) { in sljit_emit_fop2()
2346 if (getput_arg_fast(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w)) { in sljit_emit_fop2()
2355 FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, src1, src1w)); in sljit_emit_fop2()
2356 FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, dst, dstw)); in sljit_emit_fop2()
2359 FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, src2, src2w)); in sljit_emit_fop2()
2360 FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, dst, dstw)); in sljit_emit_fop2()
2364 FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, dst, dstw)); in sljit_emit_fop2()
2366 FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, dst, dstw)); in sljit_emit_fop2()
2373 switch (GET_OPCODE(op)) { in sljit_emit_fop2()
2375 FAIL_IF(push_inst(compiler, FINST(FADD, op) | FRD(dst_r) | FRJ(src1) | FRK(src2))); in sljit_emit_fop2()
2378 FAIL_IF(push_inst(compiler, FINST(FSUB, op) | FRD(dst_r) | FRJ(src1) | FRK(src2))); in sljit_emit_fop2()
2381 FAIL_IF(push_inst(compiler, FINST(FMUL, op) | FRD(dst_r) | FRJ(src1) | FRK(src2))); in sljit_emit_fop2()
2384 FAIL_IF(push_inst(compiler, FINST(FDIV, op) | FRD(dst_r) | FRJ(src1) | FRK(src2))); in sljit_emit_fop2()
2389 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG2, dst, dstw, 0, 0)); in sljit_emit_fop2()
2393 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2r(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop2r() argument
2401 CHECK(check_sljit_emit_fop2r(compiler, op, dst_freg, src1, src1w, src2, src2w)); in sljit_emit_fop2r()
2406 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src2, src2w, 0, 0)); in sljit_emit_fop2r()
2412 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, reg, src1, src1w, 0, 0)); in sljit_emit_fop2r()
2416 return push_inst(compiler, FINST(FCOPYSIGN, op) | FRD(dst_freg) | FRJ(src1) | FRK(src2)); in sljit_emit_fop2r()
2459 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fcopy(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fcopy() argument
2465 CHECK(check_sljit_emit_fcopy(compiler, op, freg, reg)); in sljit_emit_fcopy()
2467 if (GET_OPCODE(op) == SLJIT_COPY_TO_F64) in sljit_emit_fcopy()
2468 inst = ((op & SLJIT_32) ? MOVGR2FR_W : MOVGR2FR_D) | FRD(freg) | RJ(reg); in sljit_emit_fcopy()
2470 inst = ((op & SLJIT_32) ? MOVFR2GR_S : MOVFR2GR_D) | RD(reg) | FRJ(freg); in sljit_emit_fcopy()
2754 …JIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op_flags() argument
2759 sljit_s32 saved_op = op; in sljit_emit_op_flags()
2760 sljit_s32 mem_type = ((op & SLJIT_32) || op == SLJIT_MOV32) ? (INT_DATA | SIGNED_DATA) : WORD_DATA; in sljit_emit_op_flags()
2763 CHECK(check_sljit_emit_op_flags(compiler, op, dst, dstw, type)); in sljit_emit_op_flags()
2766 op = GET_OPCODE(op); in sljit_emit_op_flags()
2767 dst_r = (op < SLJIT_ADD && FAST_IS_REG(dst)) ? dst : TMP_REG2; in sljit_emit_op_flags()
2772 if (op >= SLJIT_ADD && (dst & SLJIT_MEM)) in sljit_emit_op_flags()
2827 if (op < SLJIT_ADD) { in sljit_emit_op_flags()
2986 sljit_s32 op, in sljit_emit_atomic_load() argument
2993 CHECK(check_sljit_emit_atomic_load(compiler, op, dst_reg, mem_reg)); in sljit_emit_atomic_load()
2998 switch(GET_OPCODE(op)) { in sljit_emit_atomic_load()
3020 sljit_s32 op, in sljit_emit_atomic_store() argument
3030 CHECK(check_sljit_emit_atomic_store(compiler, op, src_reg, mem_reg, temp_reg)); in sljit_emit_atomic_store()
3035 switch (GET_OPCODE(op)) { in sljit_emit_atomic_store()
3056 if (op & SLJIT_SET_ATOMIC_STORED) { in sljit_emit_atomic_store()
3061 if (!(op & SLJIT_SET_ATOMIC_STORED)) in sljit_emit_atomic_store()