Home | History | Annotate | Download | only in sljit_src

Lines Matching refs:compiler

4  *    Stack-less Just-In-Time compiler
332 static sljit_s32 push_inst_debug(struct sljit_compiler *compiler, sljit_ins ins, int line)
334 sljit_ins *ptr = (sljit_ins *)ensure_buf(compiler, sizeof(sljit_ins));
337 compiler->size++;
343 static sljit_s32 push_inst_nodebug(struct sljit_compiler *compiler, sljit_ins ins)
345 sljit_ins *ptr = (sljit_ins *)ensure_buf(compiler, sizeof(sljit_ins));
348 compiler->size++;
354 static sljit_s32 push_inst(struct sljit_compiler *compiler, sljit_ins ins)
356 sljit_ins *ptr = (sljit_ins *)ensure_buf(compiler, sizeof(sljit_ins));
359 compiler->size++;
382 push_inst(compiler, encoding)
385 push_3_buffer(compiler, opcode, dst, srca, srcb, __LINE__)
388 push_2_buffer(compiler, opcode, dst, src, __LINE__)
391 push_jr_buffer(compiler, TILEGX_OPC_JR, reg, __LINE__)
394 push_3_buffer(compiler, TILEGX_OPC_ADD, dst, srca, srcb, __LINE__)
397 push_3_buffer(compiler, TILEGX_OPC_SUB, dst, srca, srcb, __LINE__)
400 push_3_buffer(compiler, TILEGX_OPC_MULX, dst, srca, srcb, __LINE__)
403 push_3_buffer(compiler, TILEGX_OPC_NOR, dst, srca, srcb, __LINE__)
406 push_3_buffer(compiler, TILEGX_OPC_OR, dst, srca, srcb, __LINE__)
409 push_3_buffer(compiler, TILEGX_OPC_XOR, dst, srca, srcb, __LINE__)
412 push_3_buffer(compiler, TILEGX_OPC_AND, dst, srca, srcb, __LINE__)
415 push_2_buffer(compiler, TILEGX_OPC_CLZ, dst, src, __LINE__)
418 push_3_buffer(compiler, TILEGX_OPC_SHLI, dst, srca, srcb, __LINE__)
421 push_3_buffer(compiler, TILEGX_OPC_SHRUI, dst, srca, imm, __LINE__)
424 push_3_buffer(compiler, TILEGX_OPC_XORI, dst, srca, imm, __LINE__)
427 push_3_buffer(compiler, TILEGX_OPC_ORI, dst, srca, imm, __LINE__)
430 push_3_buffer(compiler, TILEGX_OPC_CMPLTU, dst, srca, srcb, __LINE__)
433 push_3_buffer(compiler, TILEGX_OPC_CMPLTS, dst, srca, srcb, __LINE__)
436 push_3_buffer(compiler, TILEGX_OPC_CMPLTUI, dst, srca, imm, __LINE__)
439 push_3_buffer(compiler, TILEGX_OPC_CMOVNEZ, dst, srca, srcb, __LINE__)
442 push_3_buffer(compiler, TILEGX_OPC_CMOVEQZ, dst, srca, srcb, __LINE__)
445 push_3_buffer(compiler, TILEGX_OPC_ADDLI, dst, srca, srcb, __LINE__)
448 push_3_buffer(compiler, TILEGX_OPC_SHL16INSLI, dst, srca, srcb, __LINE__)
451 push_3_buffer(compiler, TILEGX_OPC_LD_ADD, dst, addr, adjust, __LINE__)
454 push_3_buffer(compiler, TILEGX_OPC_ST_ADD, src, addr, adjust, __LINE__)
457 push_2_buffer(compiler, TILEGX_OPC_LD, dst, addr, __LINE__)
460 push_4_buffer(compiler, TILEGX_OPC_BFEXTU, dst, src, start, end, __LINE__)
463 push_4_buffer(compiler, TILEGX_OPC_BFEXTS, dst, src, start, end, __LINE__)
466 push_inst(compiler, ADD_X1 | DEST_X1(dest) | SRCA_X1(srca) | SRCB_X1(srcb))
469 push_inst(compiler, ADDI_X1 | DEST_X1(dest) | SRCA_X1(srca) | IMM8_X1(imm))
472 push_inst(compiler, ADDLI_X1 | DEST_X1(dest) | SRCA_X1(srca) | IMM16_X1(imm))
475 push_inst(compiler, SHL16INSLI_X1 | DEST_X1(dest) | SRCA_X1(srca) | IMM16_X1(imm))
478 push_inst(compiler, JALR_X1 | SRCA_X1(reg))
481 push_inst(compiler, JR_X1 | SRCA_X1(reg))
626 static sljit_s32 update_buffer(struct sljit_compiler *compiler)
654 return push_inst_nodebug(compiler, bits);
656 return push_inst(compiler, bits);
695 return push_inst_nodebug(compiler, bits);
697 return push_inst(compiler, bits);
727 return push_inst_nodebug(compiler, bits);
729 return push_inst(compiler, bits);
738 static sljit_s32 flush_buffer(struct sljit_compiler *compiler)
741 FAIL_IF(update_buffer(compiler));
746 static sljit_s32 push_4_buffer(struct sljit_compiler *compiler, tilegx_mnemonic opc, int op0, int op1, int op2, int op3, int line)
749 FAIL_IF(update_buffer(compiler));
766 static sljit_s32 push_3_buffer(struct sljit_compiler *compiler, tilegx_mnemonic opc, int op0, int op1, int op2, int line)
769 FAIL_IF(update_buffer(compiler));
827 static sljit_s32 push_2_buffer(struct sljit_compiler *compiler, tilegx_mnemonic opc, int op0, int op1, int line)
830 FAIL_IF(update_buffer(compiler));
872 static sljit_s32 push_0_buffer(struct sljit_compiler *compiler, tilegx_mnemonic opc, int line)
875 FAIL_IF(update_buffer(compiler));
888 static sljit_s32 push_jr_buffer(struct sljit_compiler *compiler, tilegx_mnemonic opc, int op0, int line)
891 FAIL_IF(update_buffer(compiler));
902 return flush_buffer(compiler);
998 SLJIT_API_FUNC_ATTRIBUTE void * sljit_generate_code(struct sljit_compiler *compiler)
1013 CHECK_PTR(check_sljit_generate_code(compiler));
1014 reverse_buf(compiler);
1016 code = (sljit_ins *)SLJIT_MALLOC_EXEC(compiler->size * sizeof(sljit_ins));
1018 buf = compiler->buf;
1022 label = compiler->labels;
1023 jump = compiler->jumps;
1024 const_ = compiler->consts;
1073 SLJIT_ASSERT(code_ptr - code <= (sljit_sw)compiler->size);
1075 jump = compiler->jumps;
1116 compiler->error = SLJIT_ERR_COMPILED;
1117 compiler->executable_size = (code_ptr - code) * sizeof(sljit_ins);
1122 static sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32 dst_ar, sljit_sw imm)
1145 static sljit_s32 emit_const(struct sljit_compiler *compiler, sljit_s32 dst_ar, sljit_sw imm, int flush)
1160 static sljit_s32 emit_const_64(struct sljit_compiler *compiler, sljit_s32 dst_ar, sljit_sw imm, int flush)
1177 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compiler,
1185 CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
1186 set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
1190 compiler->local_size = local_size;
1197 FAIL_IF(load_immediate(compiler, TMP_REG1_mapped, local_size));
1227 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context(struct sljit_compiler *compiler,
1232 CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
1233 set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
1236 compiler->local_size = (local_size + 7) & ~7;
1241 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 src, sljit_sw srcw)
1249 CHECK(check_sljit_emit_return(compiler, op, src, srcw));
1251 FAIL_IF(emit_mov_before_return(compiler, op, src, srcw));
1253 local_size = compiler->local_size;
1257 FAIL_IF(load_immediate(compiler, TMP_REG1_mapped, local_size));
1268 saveds = compiler->saveds;
1275 for (i = compiler->scratches; i >= SLJIT_FIRST_SAVED_REG; i--) {
1279 if (compiler->local_size <= SIMM_16BIT_MAX)
1280 FAIL_IF(ADDLI(SLJIT_LOCALS_REG_mapped, SLJIT_LOCALS_REG_mapped, compiler->local_size));
1290 static sljit_s32 getput_arg_fast(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg_ar, sljit_s32 arg, sljit_sw argw)
1342 static sljit_s32 getput_arg(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg_ar, sljit_s32 arg, sljit_sw argw, sljit_s32 next_arg, sljit_sw next_argw)
1369 if (argw == compiler->cache_argw) {
1371 if (arg == compiler->cache_arg) {
1378 if ((SLJIT_MEM | (arg & OFFS_REG_MASK)) == compiler->cache_arg) {
1380 compiler->cache_arg = arg;
1381 compiler->cache_argw = argw;
1396 if ((SLJIT_MEM | (arg & OFFS_REG_MASK)) == compiler->cache_arg) {
1407 compiler->cache_arg = SLJIT_MEM | (arg & OFFS_REG_MASK);
1408 compiler->cache_argw = argw;
1414 compiler->cache_arg = arg;
1415 compiler->cache_argw = argw;
1460 if (compiler->cache_arg == SLJIT_MEM
1461 && argw - compiler->cache_argw <= SIMM_16BIT_MAX
1462 && argw - compiler->cache_argw >= SIMM_16BIT_MIN) {
1463 if (argw != compiler->cache_argw) {
1464 FAIL_IF(ADD(TMP_REG3_mapped, TMP_REG3_mapped, argw - compiler->cache_argw));
1465 compiler->cache_argw = argw;
1470 compiler->cache_arg = SLJIT_MEM;
1471 compiler->cache_argw = argw;
1472 FAIL_IF(load_immediate(compiler, TMP_REG3_mapped, argw));
1483 if (compiler->cache_arg == arg
1484 && argw - compiler->cache_argw <= SIMM_16BIT_MAX
1485 && argw - compiler->cache_argw >= SIMM_16BIT_MIN) {
1486 if (argw != compiler->cache_argw) {
1487 FAIL_IF(ADDLI(TMP_REG3_mapped, TMP_REG3_mapped, argw - compiler->cache_argw));
1488 compiler->cache_argw = argw;
1497 if (compiler->cache_arg == SLJIT_MEM
1498 && argw - compiler->cache_argw <= SIMM_16BIT_MAX
1499 && argw - compiler->cache_argw >= SIMM_16BIT_MIN) {
1500 if (argw != compiler->cache_argw)
1501 FAIL_IF(ADDLI(TMP_REG3_mapped, TMP_REG3_mapped, argw - compiler->cache_argw));
1503 compiler->cache_arg = SLJIT_MEM;
1504 FAIL_IF(load_immediate(compiler, TMP_REG3_mapped, argw));
1507 compiler->cache_argw = argw;
1519 compiler->cache_arg = arg;
1535 static SLJIT_INLINE sljit_s32 emit_op_mem(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg_ar, sljit_s32 arg, sljit_sw argw)
1537 if (getput_arg_fast(compiler, flags, reg_ar, arg, argw))
1538 return compiler->error;
1540 compiler->cache_arg = 0;
1541 compiler->cache_argw = 0;
1542 return getput_arg(compiler, flags, reg_ar, arg, argw, 0, 0);
1545 static SLJIT_INLINE sljit_s32 emit_op_mem2(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, sljit_s32 arg1, sljit_sw arg1w, sljit_s32 arg2, sljit_sw arg2w)
1547 if (getput_arg_fast(compiler, flags, reg, arg1, arg1w))
1548 return compiler->error;
1549 return getput_arg(compiler, flags, reg, arg1, arg1w, arg2, arg2w);
1552 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw)
1555 CHECK(check_sljit_emit_fast_enter(compiler, dst, dstw));
1566 return emit_op_mem(compiler, WORD_DATA, RA, dst, dstw);
1569 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_s32 src, sljit_sw srcw)
1572 CHECK(check_sljit_emit_fast_return(compiler, src, srcw));
1579 FAIL_IF(emit_op_mem(compiler
1582 FAIL_IF(load_immediate(compiler, RA, srcw));
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)
1795 FAIL_IF(load_immediate(compiler, ADDR_TMP_mapped, src2));
1854 FAIL_IF(load_immediate(compiler, ADDR_TMP_mapped, -src2));
1880 FAIL_IF(load_immediate(compiler, TMP_REG2_mapped, src2));
1891 FAIL_IF(load_immediate(compiler, ADDR_TMP_mapped, src2)); \
1894 compiler, op_norm, EQUAL_FLAG, reg_map[src1], \
1898 compiler, op_norm, reg_map[dst], reg_map[src1], \
1903 compiler, op_norm, EQUAL_FLAG, reg_map[src1], \
1907 compiler, op_norm, reg_map[dst], reg_map[src1], \
1927 compiler, op_imm, EQUAL_FLAG, reg_map[src1], \
1931 compiler, op_imm, reg_map[dst], reg_map[src1], \
1936 compiler, op_norm, EQUAL_FLAG, reg_map[src1], \
1940 compiler, op_norm, reg_map[dst], reg_map[src1], \
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)
1973 compiler->cache_arg = 0;
1974 compiler->cache_argw = 0;
1987 } else if ((dst & SLJIT_MEM) && !getput_arg_fast(compiler, flags | ARG_TEST, TMP_REG1_mapped, dst, dstw))
2022 FAIL_IF(load_immediate(compiler, TMP_REG1_mapped, src1w));
2027 if (getput_arg_fast(compiler, flags | LOAD_DATA, TMP_REG1_mapped, src1, src1w))
2028 FAIL_IF(compiler->error);
2043 FAIL_IF(load_immediate(compiler, reg_map[sugg_src2_r], src2w));
2052 if (getput_arg_fast(compiler, flags | LOAD_DATA, reg_map[sugg_src2_r], src2, src2w))
2053 FAIL_IF(compiler->error);
2062 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, dst, dstw));
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));
2069 FAIL_IF(getput_arg(compiler, flags | LOAD_DATA, TMP_REG1_mapped, src1, src1w, dst, dstw));
2071 FAIL_IF(getput_arg(compiler, flags | LOAD_DATA, reg_map[sugg_src2_r], src2, src2w, dst, dstw));
2073 FAIL_IF(emit_single_op(compiler, op, flags, dst_r, src1_r, src2_r));
2077 getput_arg_fast(compiler, flags, reg_map[dst_r], dst, dstw);
2078 return compiler->error;
2081 return getput_arg(compiler, flags, reg_map[dst_r], dst, dstw, 0, 0);
2087 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src, sljit_sw srcw, sljit_s32 type)
2094 CHECK(check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type));
2105 compiler->cache_arg = 0;
2106 compiler->cache_argw = 0;
2109 FAIL_IF(emit_op_mem2(compiler, mem_type | LOAD_DATA, TMP_REG1_mapped, src, srcw, dst, dstw));
2161 return emit_op(compiler
2165 return emit_op_mem(compiler, mem_type, dst_ar, dst, dstw);
2173 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0(struct sljit_compiler *compiler, sljit_s32 op) {
2175 CHECK(check_sljit_emit_op0(compiler, op));
2180 return push_0_buffer(compiler, TILEGX_OPC_FNOP, __LINE__);
2197 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src, sljit_sw srcw)
2200 CHECK(check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw));
2207 return emit_op(compiler, SLJIT_MOV, WORD_DATA, dst, dstw, TMP_REG1, 0, src, srcw);
2210 return emit_op(compiler, SLJIT_MOV_U32, INT_DATA, dst, dstw, TMP_REG1, 0, src, srcw);
2213 return emit_op(compiler, SLJIT_MOV_S32, INT_DATA | SIGNED_DATA, dst, dstw, TMP_REG1, 0, src, srcw);
2216 return emit_op(compiler, SLJIT_MOV_U8, BYTE_DATA, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_u8) srcw : srcw);
2219 return emit_op(compiler, SLJIT_MOV_S8, BYTE_DATA | SIGNED_DATA, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_s8) srcw : srcw);
2222 return emit_op(compiler, SLJIT_MOV_U16, HALF_DATA, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_u16) srcw : srcw);
2225 return emit_op(compiler, SLJIT_MOV_S16, HALF_DATA | SIGNED_DATA, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_s16) srcw : srcw);
2229 return emit_op(compiler, SLJIT_MOV, WORD_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, srcw);
2232 return emit_op(compiler, SLJIT_MOV_U32, INT_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, srcw);
2235 return emit_op(compiler, SLJIT_MOV_S32, INT_DATA | SIGNED_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, srcw);
2238 return emit_op(compiler, SLJIT_MOV_U8, BYTE_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_u8) srcw : srcw);
2241 return emit_op(compiler, SLJIT_MOV_S8, BYTE_DATA | SIGNED_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_s8) srcw : srcw);
2244 return emit_op(compiler, SLJIT_MOV_U16, HALF_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_u16) srcw : srcw);
2247 return emit_op(compiler, SLJIT_MOV_S16, HALF_DATA | SIGNED_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_s16) srcw : srcw);
2250 return emit_op(compiler, op, 0, dst, dstw, TMP_REG1, 0, src, srcw);
2253 return emit_op(compiler, SLJIT_SUB | GET_ALL_FLAGS(op), IMM_OP, dst, dstw, SLJIT_IMM, 0, src, srcw);
2256 return emit_op(compiler, op, (op & SLJIT_I32_OP) ? INT_DATA : WORD_DATA, dst, dstw, TMP_REG1, 0, src, srcw);
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));
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);
2295 return emit_op(compiler, op, IMM_OP, dst, dstw, src1, src1w, src2, src2w);
2301 SLJIT_API_FUNC_ATTRIBUTE struct sljit_label * sljit_emit_label(struct sljit_compiler *compiler)
2305 flush_buffer(compiler);
2308 CHECK_PTR(check_sljit_emit_label(compiler));
2310 if (compiler->last_label && compiler->last_label->size == compiler->size)
2311 return compiler->last_label;
2313 label = (struct sljit_label *)ensure_abuf(compiler, sizeof(struct sljit_label));
2315 set_label(label, compiler);
2319 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 src, sljit_sw srcw)
2324 flush_buffer(compiler);
2327 CHECK(check_sljit_emit_ijump(compiler, type, src, srcw));
2341 FAIL_IF(emit_const(compiler, reg_map[PIC_ADDR_REG], srcw, 1));
2344 FAIL_IF(emit_op(compiler, SLJIT_MOV, WORD_DATA, TMP_REG2, 0, TMP_REG1, 0, src, srcw));
2370 jump = (struct sljit_jump *)ensure_abuf(compiler, sizeof(struct sljit_jump));
2372 set_jump(jump, compiler, JUMP_ADDR | ((type >= SLJIT_FAST_CALL) ? IS_JAL : 0));
2374 FAIL_IF(emit_const(compiler, TMP_REG2_mapped, 0, 1));
2378 jump->addr = compiler->size;
2381 jump->addr = compiler->size;
2388 FAIL_IF(emit_op(compiler, SLJIT_MOV, WORD_DATA, TMP_REG2, 0, TMP_REG1, 0, src, srcw));
2389 flush_buffer(compiler);
2395 jump->addr = compiler->size;
2408 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump * sljit_emit_jump(struct sljit_compiler *compiler, sljit_s32 type)
2414 flush_buffer(compiler);
2417 CHECK_PTR(check_sljit_emit_jump(compiler, type));
2419 jump = (struct sljit_jump *)ensure_abuf(compiler, sizeof(struct sljit_jump));
2421 set_jump(jump, compiler, type & SLJIT_REWRITABLE_JUMP);
2476 PTR_FAIL_IF(emit_const(compiler, TMP_REG2_mapped, 0, 1));
2478 jump->addr = compiler->size;
2485 jump->addr = compiler->size;
2497 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src, sljit_sw srcw)
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)
2507 SLJIT_API_FUNC_ATTRIBUTE struct sljit_const * sljit_emit_const(struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw init_value)
2512 flush_buffer(compiler);
2515 CHECK_PTR(check_sljit_emit_const(compiler, dst, dstw, init_value));
2518 const_ = (struct sljit_const *)ensure_abuf(compiler, sizeof(struct sljit_const));
2520 set_const(const_, compiler);
2524 PTR_FAIL_IF(emit_const_64(compiler, reg, init_value, 1));
2527 PTR_FAIL_IF(emit_op(compiler, SLJIT_MOV, WORD_DATA, dst, dstw, TMP_REG1, 0, TMP_REG2, 0));
2558 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom(struct sljit_compiler *compiler,
2562 CHECK(check_sljit_emit_op_custom(compiler, instruction, size));