Lines Matching refs:compiler
239 static sljit_si push_inst(struct sljit_compiler *compiler, sljit_ins ins) in push_inst() argument
241 sljit_ins *ptr = (sljit_ins*)ensure_buf(compiler, sizeof(sljit_ins)); in push_inst()
244 compiler->size++; in push_inst()
317 SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compiler) in sljit_generate_code() argument
332 check_sljit_generate_code(compiler); in sljit_generate_code()
333 reverse_buf(compiler); in sljit_generate_code()
337 …compiler->size += (compiler->size & 0x1) + (sizeof(struct sljit_function_context) / sizeof(sljit_i… in sljit_generate_code()
339 compiler->size += (sizeof(struct sljit_function_context) / sizeof(sljit_ins)); in sljit_generate_code()
342 code = (sljit_ins*)SLJIT_MALLOC_EXEC(compiler->size * sizeof(sljit_ins)); in sljit_generate_code()
344 buf = compiler->buf; in sljit_generate_code()
348 label = compiler->labels; in sljit_generate_code()
349 jump = compiler->jumps; in sljit_generate_code()
350 const_ = compiler->consts; in sljit_generate_code()
428 …SLJIT_ASSERT(code_ptr - code <= (sljit_sw)compiler->size - (sizeof(struct sljit_function_context) … in sljit_generate_code()
430 SLJIT_ASSERT(code_ptr - code <= (sljit_sw)compiler->size); in sljit_generate_code()
433 jump = compiler->jumps; in sljit_generate_code()
490 compiler->error = SLJIT_ERR_COMPILED; in sljit_generate_code()
491 compiler->executable_size = (code_ptr - code) * sizeof(sljit_ins); in sljit_generate_code()
574 SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler, in sljit_emit_enter() argument
581 …check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size… in sljit_emit_enter()
583 compiler->options = options; in sljit_emit_enter()
584 compiler->scratches = scratches; in sljit_emit_enter()
585 compiler->saveds = saveds; in sljit_emit_enter()
586 compiler->fscratches = fscratches; in sljit_emit_enter()
587 compiler->fsaveds = fsaveds; in sljit_emit_enter()
589 compiler->logical_local_size = local_size; in sljit_emit_enter()
592 FAIL_IF(push_inst(compiler, MFLR | D(0))); in sljit_emit_enter()
594 FAIL_IF(push_inst(compiler, STACK_STORE | S(TMP_ZERO) | A(SLJIT_SP) | IMM(offs))); in sljit_emit_enter()
599 FAIL_IF(push_inst(compiler, STACK_STORE | S(i) | A(SLJIT_SP) | IMM(offs))); in sljit_emit_enter()
604 FAIL_IF(push_inst(compiler, STACK_STORE | S(i) | A(SLJIT_SP) | IMM(offs))); in sljit_emit_enter()
607 …SLJIT_ASSERT(offs == -(sljit_si)GET_SAVED_REGISTERS_SIZE(compiler->scratches, compiler->saveds, 1)… in sljit_emit_enter()
610 FAIL_IF(push_inst(compiler, STACK_STORE | S(0) | A(SLJIT_SP) | IMM(2 * sizeof(sljit_sw)))); in sljit_emit_enter()
612 FAIL_IF(push_inst(compiler, STACK_STORE | S(0) | A(SLJIT_SP) | IMM(sizeof(sljit_sw)))); in sljit_emit_enter()
615 FAIL_IF(push_inst(compiler, ADDI | D(TMP_ZERO) | A(0) | 0)); in sljit_emit_enter()
617 FAIL_IF(push_inst(compiler, OR | S(SLJIT_R0) | A(SLJIT_S0) | B(SLJIT_R0))); in sljit_emit_enter()
619 FAIL_IF(push_inst(compiler, OR | S(SLJIT_R1) | A(SLJIT_S1) | B(SLJIT_R1))); in sljit_emit_enter()
621 FAIL_IF(push_inst(compiler, OR | S(SLJIT_R2) | A(SLJIT_S2) | B(SLJIT_R2))); in sljit_emit_enter()
625 compiler->local_size = local_size; in sljit_emit_enter()
629 FAIL_IF(push_inst(compiler, STWU | S(SLJIT_SP) | A(SLJIT_SP) | IMM(-local_size))); in sljit_emit_enter()
631 FAIL_IF(load_immediate(compiler, 0, -local_size)); in sljit_emit_enter()
632 FAIL_IF(push_inst(compiler, STWUX | S(SLJIT_SP) | A(SLJIT_SP) | B(0))); in sljit_emit_enter()
636 FAIL_IF(push_inst(compiler, STDU | S(SLJIT_SP) | A(SLJIT_SP) | IMM(-local_size))); in sljit_emit_enter()
638 FAIL_IF(load_immediate(compiler, 0, -local_size)); in sljit_emit_enter()
639 FAIL_IF(push_inst(compiler, STDUX | S(SLJIT_SP) | A(SLJIT_SP) | B(0))); in sljit_emit_enter()
646 SLJIT_API_FUNC_ATTRIBUTE void sljit_set_context(struct sljit_compiler *compiler, in sljit_set_context() argument
651 …check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_siz… in sljit_set_context()
653 compiler->options = options; in sljit_set_context()
654 compiler->scratches = scratches; in sljit_set_context()
655 compiler->saveds = saveds; in sljit_set_context()
656 compiler->fscratches = fscratches; in sljit_set_context()
657 compiler->fsaveds = fsaveds; in sljit_set_context()
659 compiler->logical_local_size = local_size; in sljit_set_context()
663 compiler->local_size = (local_size + 15) & ~0xf; in sljit_set_context()
666 SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compiler, sljit_si op, s… in sljit_emit_return() argument
671 check_sljit_emit_return(compiler, op, src, srcw); in sljit_emit_return()
673 FAIL_IF(emit_mov_before_return(compiler, op, src, srcw)); in sljit_emit_return()
675 if (compiler->local_size <= SIMM_MAX) in sljit_emit_return()
676 FAIL_IF(push_inst(compiler, ADDI | D(SLJIT_SP) | A(SLJIT_SP) | IMM(compiler->local_size))); in sljit_emit_return()
678 FAIL_IF(load_immediate(compiler, 0, compiler->local_size)); in sljit_emit_return()
679 FAIL_IF(push_inst(compiler, ADD | D(SLJIT_SP) | A(SLJIT_SP) | B(0))); in sljit_emit_return()
683 FAIL_IF(push_inst(compiler, STACK_LOAD | D(0) | A(SLJIT_SP) | IMM(2 * sizeof(sljit_sw)))); in sljit_emit_return()
685 FAIL_IF(push_inst(compiler, STACK_LOAD | D(0) | A(SLJIT_SP) | IMM(sizeof(sljit_sw)))); in sljit_emit_return()
688 offs = -(sljit_si)GET_SAVED_REGISTERS_SIZE(compiler->scratches, compiler->saveds, 1); in sljit_emit_return()
690 tmp = compiler->scratches; in sljit_emit_return()
692 FAIL_IF(push_inst(compiler, STACK_LOAD | D(i) | A(SLJIT_SP) | IMM(offs))); in sljit_emit_return()
696 …tmp = compiler->saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - compiler->saveds) : SLJ… in sljit_emit_return()
698 FAIL_IF(push_inst(compiler, STACK_LOAD | D(i) | A(SLJIT_SP) | IMM(offs))); in sljit_emit_return()
702 FAIL_IF(push_inst(compiler, STACK_LOAD | D(TMP_ZERO) | A(SLJIT_SP) | IMM(offs))); in sljit_emit_return()
705 FAIL_IF(push_inst(compiler, MTLR | S(0))); in sljit_emit_return()
706 FAIL_IF(push_inst(compiler, BLR)); in sljit_emit_return()
859 static sljit_si getput_arg_fast(struct sljit_compiler *compiler, sljit_si inp_flags, sljit_si reg, … in getput_arg_fast() argument
875 …FAIL_IF(push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(arg & REG_MASK) | B(OFFS_R… in getput_arg_fast()
902 …FAIL_IF(push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(arg & REG_MASK) | IMM(argw… in getput_arg_fast()
951 compiler->cache_argw += imm & 0x3; \
952 FAIL_IF(push_inst(compiler, ADDI | D(TMP_REG3) | A(TMP_REG3) | (imm & 0x3))); \
958 static sljit_si getput_arg(struct sljit_compiler *compiler, sljit_si inp_flags, sljit_si reg, sljit… in getput_arg() argument
979 if ((SLJIT_MEM | (arg & OFFS_REG_MASK)) == compiler->cache_arg && argw == compiler->cache_argw) in getput_arg()
983 compiler->cache_arg = SLJIT_MEM | (arg & OFFS_REG_MASK); in getput_arg()
984 compiler->cache_argw = argw; in getput_arg()
988 …FAIL_IF(push_inst(compiler, RLWINM | S(OFFS_REG(arg)) | A(tmp_r) | (argw << 11) | ((31 - argw) << … in getput_arg()
990 FAIL_IF(push_inst(compiler, RLDI(tmp_r, OFFS_REG(arg), argw, 63 - argw, 1))); in getput_arg()
995 …return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(arg & REG_MASK) | B(tmp_r)); in getput_arg()
1020 FAIL_IF(push_inst(compiler, OR | S(reg) | A(tmp_r) | B(reg))); in getput_arg()
1024 FAIL_IF(push_inst(compiler, ADDIS | D(arg) | A(arg) | IMM(high_short >> 16))); in getput_arg()
1026 else if (compiler->cache_arg != (SLJIT_MEM | arg) || high_short != compiler->cache_argw) { in getput_arg()
1030 compiler->cache_arg = SLJIT_MEM | arg; in getput_arg()
1031 compiler->cache_argw = high_short; in getput_arg()
1035 FAIL_IF(push_inst(compiler, ADDIS | D(tmp_r) | A(arg & REG_MASK) | IMM(high_short >> 16))); in getput_arg()
1040 return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(tmp_r) | IMM(argw)); in getput_arg()
1047 diff = argw - compiler->cache_argw; in getput_arg()
1048 if ((compiler->cache_arg & SLJIT_IMM) && diff <= SIMM_MAX && diff >= SIMM_MIN) { in getput_arg()
1050 return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(TMP_REG3) | IMM(diff)); in getput_arg()
1057 compiler->cache_arg = SLJIT_IMM; in getput_arg()
1058 compiler->cache_argw = argw; in getput_arg()
1062 FAIL_IF(load_immediate(compiler, tmp_r, argw)); in getput_arg()
1063 return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(tmp_r)); in getput_arg()
1066 diff = argw - compiler->cache_argw; in getput_arg()
1067 if (compiler->cache_arg == arg && diff <= SIMM_MAX && diff >= SIMM_MIN) { in getput_arg()
1070 return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(TMP_REG3) | IMM(diff)); in getput_arg()
1073 if ((compiler->cache_arg & SLJIT_IMM) && diff <= SIMM_MAX && diff >= SIMM_MIN) { in getput_arg()
1076 if (compiler->cache_argw != argw) { in getput_arg()
1077 FAIL_IF(push_inst(compiler, ADDI | D(TMP_REG3) | A(TMP_REG3) | IMM(diff))); in getput_arg()
1078 compiler->cache_argw = argw; in getput_arg()
1080 …return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(arg & REG_MASK) | B(TMP_REG… in getput_arg()
1085 FAIL_IF(load_immediate(compiler, TMP_REG3, argw)); in getput_arg()
1087 compiler->cache_arg = SLJIT_IMM; in getput_arg()
1088 compiler->cache_argw = argw; in getput_arg()
1092 …return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(arg & REG_MASK) | B(TMP_REG… in getput_arg()
1098 FAIL_IF(load_immediate(compiler, TMP_REG3, argw)); in getput_arg()
1099 FAIL_IF(push_inst(compiler, ADD | D(TMP_REG3) | A(TMP_REG3) | B(arg & REG_MASK))); in getput_arg()
1101 compiler->cache_arg = arg; in getput_arg()
1102 compiler->cache_argw = argw; in getput_arg()
1104 return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(TMP_REG3)); in getput_arg()
1109 FAIL_IF(load_immediate(compiler, TMP_REG3, argw)); in getput_arg()
1111 compiler->cache_arg = SLJIT_IMM; in getput_arg()
1112 compiler->cache_argw = argw; in getput_arg()
1116 FAIL_IF(load_immediate(compiler, tmp_r, argw)); in getput_arg()
1121 return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(arg & REG_MASK) | B(tmp_r)); in getput_arg()
1125 static SLJIT_INLINE sljit_si emit_op_mem2(struct sljit_compiler *compiler, sljit_si flags, sljit_si… in emit_op_mem2() argument
1127 if (getput_arg_fast(compiler, flags, reg, arg1, arg1w)) in emit_op_mem2()
1128 return compiler->error; in emit_op_mem2()
1129 return getput_arg(compiler, flags, reg, arg1, arg1w, arg2, arg2w); in emit_op_mem2()
1132 static sljit_si emit_op(struct sljit_compiler *compiler, sljit_si op, sljit_si input_flags, in emit_op() argument
1148 compiler->cache_arg = 0; in emit_op()
1149 compiler->cache_argw = 0; in emit_op()
1166 if (getput_arg_fast(compiler, input_flags | ARG_TEST, TMP_REG2, dst, dstw)) { in emit_op()
1182 FAIL_IF(load_immediate(compiler, TMP_REG1, src1w)); in emit_op()
1185 else if (getput_arg_fast(compiler, input_flags | LOAD_DATA, TMP_REG1, src1, src1w)) { in emit_op()
1186 FAIL_IF(compiler->error); in emit_op()
1200 FAIL_IF(load_immediate(compiler, sugg_src2_r, src2w)); in emit_op()
1203 else if (getput_arg_fast(compiler, input_flags | LOAD_DATA, sugg_src2_r, src2, src2w)) { in emit_op()
1204 FAIL_IF(compiler->error); in emit_op()
1214 FAIL_IF(getput_arg(compiler, input_flags | LOAD_DATA, TMP_REG2, src2, src2w, src1, src1w)); in emit_op()
1215 FAIL_IF(getput_arg(compiler, input_flags | LOAD_DATA, TMP_REG1, src1, src1w, dst, dstw)); in emit_op()
1218 FAIL_IF(getput_arg(compiler, input_flags | LOAD_DATA, TMP_REG1, src1, src1w, src2, src2w)); in emit_op()
1219 FAIL_IF(getput_arg(compiler, input_flags | LOAD_DATA, TMP_REG2, src2, src2w, dst, dstw)); in emit_op()
1225 FAIL_IF(getput_arg(compiler, input_flags | LOAD_DATA, TMP_REG1, src1, src1w, src2, src2w)); in emit_op()
1229 FAIL_IF(getput_arg(compiler, input_flags | LOAD_DATA, TMP_REG1, src1, src1w, dst, dstw)); in emit_op()
1233 FAIL_IF(getput_arg(compiler, input_flags | LOAD_DATA, sugg_src2_r, src2, src2w, dst, dstw)); in emit_op()
1241 FAIL_IF(getput_arg(compiler, input_flags | LOAD_DATA, TMP_REG1, src1, src1w, 0, 0)); in emit_op()
1246 FAIL_IF(getput_arg(compiler, input_flags | LOAD_DATA, sugg_src2_r, src2, src2w, 0, 0)); in emit_op()
1250 FAIL_IF(emit_single_op(compiler, op, flags, dst_r, src1_r, src2_r)); in emit_op()
1254 FAIL_IF(getput_arg_fast(compiler, input_flags, dst_r, dst, dstw)); in emit_op()
1256 FAIL_IF(getput_arg(compiler, input_flags, dst_r, dst, dstw, 0, 0)); in emit_op()
1261 SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler, sljit_si op) in sljit_emit_op0() argument
1268 check_sljit_emit_op0(compiler, op); in sljit_emit_op0()
1274 return push_inst(compiler, NOP); in sljit_emit_op0()
1277 FAIL_IF(push_inst(compiler, OR | S(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R0))); in sljit_emit_op0()
1279 FAIL_IF(push_inst(compiler, MULLD | D(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R1))); in sljit_emit_op0()
1280 …return push_inst(compiler, (op == SLJIT_UMUL ? MULHDU : MULHD) | D(SLJIT_R1) | A(TMP_REG1) | B(SLJ… in sljit_emit_op0()
1282 FAIL_IF(push_inst(compiler, MULLW | D(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R1))); in sljit_emit_op0()
1283 …return push_inst(compiler, (op == SLJIT_UMUL ? MULHWU : MULHW) | D(SLJIT_R1) | A(TMP_REG1) | B(SLJ… in sljit_emit_op0()
1287 FAIL_IF(push_inst(compiler, OR | S(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R0))); in sljit_emit_op0()
1290 …FAIL_IF(push_inst(compiler, (op == SLJIT_UDIV ? DIVWU : DIVW) | D(SLJIT_R0) | A(TMP_REG1) | B(SLJI… in sljit_emit_op0()
1291 FAIL_IF(push_inst(compiler, MULLW | D(SLJIT_R1) | A(SLJIT_R0) | B(SLJIT_R1))); in sljit_emit_op0()
1293 …FAIL_IF(push_inst(compiler, (op == SLJIT_UDIV ? DIVDU : DIVD) | D(SLJIT_R0) | A(TMP_REG1) | B(SLJI… in sljit_emit_op0()
1294 FAIL_IF(push_inst(compiler, MULLD | D(SLJIT_R1) | A(SLJIT_R0) | B(SLJIT_R1))); in sljit_emit_op0()
1296 return push_inst(compiler, SUBF | D(SLJIT_R1) | A(SLJIT_R1) | B(TMP_REG1)); in sljit_emit_op0()
1298 …FAIL_IF(push_inst(compiler, (op == SLJIT_UDIV ? DIVWU : DIVW) | D(SLJIT_R0) | A(TMP_REG1) | B(SLJI… in sljit_emit_op0()
1299 FAIL_IF(push_inst(compiler, MULLW | D(SLJIT_R1) | A(SLJIT_R0) | B(SLJIT_R1))); in sljit_emit_op0()
1300 return push_inst(compiler, SUBF | D(SLJIT_R1) | A(SLJIT_R1) | B(TMP_REG1)); in sljit_emit_op0()
1308 …emit_op(compiler, (src & SLJIT_IMM) ? SLJIT_MOV : type, flags | (type_flags), dst, dstw, TMP_REG1,…
1310 SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op1(struct sljit_compiler *compiler, sljit_si op, in sljit_emit_op1() argument
1318 check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw); in sljit_emit_op1()
1327 FAIL_IF(push_inst(compiler, MTXER | S(TMP_ZERO))); in sljit_emit_op1()
1363 return emit_op(compiler, SLJIT_MOV, flags | WORD_DATA, dst, dstw, TMP_REG1, 0, src, srcw); in sljit_emit_op1()
1391 …return emit_op(compiler, SLJIT_MOV, flags | WORD_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, s… in sljit_emit_op1()
1414 return emit_op(compiler, SLJIT_NOT, flags, dst, dstw, TMP_REG1, 0, src, srcw); in sljit_emit_op1()
1417 return emit_op(compiler, SLJIT_NEG, flags, dst, dstw, TMP_REG1, 0, src, srcw); in sljit_emit_op1()
1421 …return emit_op(compiler, SLJIT_CLZ, flags | (!(op_flags & SLJIT_INT_OP) ? 0 : ALT_FORM1), dst, dst… in sljit_emit_op1()
1423 return emit_op(compiler, SLJIT_CLZ, flags, dst, dstw, TMP_REG1, 0, src, srcw); in sljit_emit_op1()
1465 SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler, sljit_si op, in sljit_emit_op2() argument
1473 check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
1496 FAIL_IF(push_inst(compiler, MTXER | S(TMP_ZERO))); in sljit_emit_op2()
1504 compiler->imm = src2w & 0xffff; in sljit_emit_op2()
1505 return emit_op(compiler, SLJIT_ADD, flags | ALT_FORM1, dst, dstw, src1, src1w, TMP_REG2, 0); in sljit_emit_op2()
1508 compiler->imm = src1w & 0xffff; in sljit_emit_op2()
1509 return emit_op(compiler, SLJIT_ADD, flags | ALT_FORM1, dst, dstw, src2, src2w, TMP_REG2, 0); in sljit_emit_op2()
1512 compiler->imm = (src2w >> 16) & 0xffff; in sljit_emit_op2()
1513 return emit_op(compiler, SLJIT_ADD, flags | ALT_FORM2, dst, dstw, src1, src1w, TMP_REG2, 0); in sljit_emit_op2()
1516 compiler->imm = (src1w >> 16) & 0xffff; in sljit_emit_op2()
1517 return emit_op(compiler, SLJIT_ADD, flags | ALT_FORM2, dst, dstw, src2, src2w, TMP_REG2, 0); in sljit_emit_op2()
1521 compiler->imm = src2w & 0xffffffff; in sljit_emit_op2()
1522 return emit_op(compiler, SLJIT_ADD, flags | ALT_FORM4, dst, dstw, src1, src1w, TMP_REG2, 0); in sljit_emit_op2()
1525 compiler->imm = src1w & 0xffffffff; in sljit_emit_op2()
1526 return emit_op(compiler, SLJIT_ADD, flags | ALT_FORM4, dst, dstw, src2, src2w, TMP_REG2, 0); in sljit_emit_op2()
1531 compiler->imm = src2w & 0xffff; in sljit_emit_op2()
1532 return emit_op(compiler, SLJIT_ADD, flags | ALT_FORM3, dst, dstw, src1, src1w, TMP_REG2, 0); in sljit_emit_op2()
1535 compiler->imm = src1w & 0xffff; in sljit_emit_op2()
1536 return emit_op(compiler, SLJIT_ADD, flags | ALT_FORM3, dst, dstw, src2, src2w, TMP_REG2, 0); in sljit_emit_op2()
1539 return emit_op(compiler, SLJIT_ADD, flags, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
1542 …return emit_op(compiler, SLJIT_ADDC, flags | (!(op & SLJIT_KEEP_FLAGS) ? 0 : ALT_FORM1), dst, dstw… in sljit_emit_op2()
1547 compiler->imm = (-src2w) & 0xffff; in sljit_emit_op2()
1548 return emit_op(compiler, SLJIT_ADD, flags | ALT_FORM1, dst, dstw, src1, src1w, TMP_REG2, 0); in sljit_emit_op2()
1551 compiler->imm = src1w & 0xffff; in sljit_emit_op2()
1552 return emit_op(compiler, SLJIT_SUB, flags | ALT_FORM1, dst, dstw, src2, src2w, TMP_REG2, 0); in sljit_emit_op2()
1555 compiler->imm = ((-src2w) >> 16) & 0xffff; in sljit_emit_op2()
1556 return emit_op(compiler, SLJIT_ADD, flags | ALT_FORM2, dst, dstw, src1, src1w, TMP_REG2, 0); in sljit_emit_op2()
1560 compiler->imm = -src2w & 0xffffffff; in sljit_emit_op2()
1561 return emit_op(compiler, SLJIT_ADD, flags | ALT_FORM4, dst, dstw, src1, src1w, TMP_REG2, 0); in sljit_emit_op2()
1568 compiler->imm = src2w & 0xffff; in sljit_emit_op2()
1569 return emit_op(compiler, SLJIT_SUB, flags | ALT_FORM2, dst, dstw, src1, src1w, TMP_REG2, 0); in sljit_emit_op2()
1572 compiler->imm = src1w & 0xffff; in sljit_emit_op2()
1573 return emit_op(compiler, SLJIT_SUB, flags | ALT_FORM2, dst, dstw, src2, src2w, TMP_REG2, 0); in sljit_emit_op2()
1579 compiler->imm = src2w & 0xffff; in sljit_emit_op2()
1580 return emit_op(compiler, SLJIT_SUB, flags | ALT_FORM3, dst, dstw, src1, src1w, TMP_REG2, 0); in sljit_emit_op2()
1582 return emit_op(compiler, SLJIT_SUB, flags | ALT_FORM4, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
1585 compiler->imm = src2w; in sljit_emit_op2()
1586 …return emit_op(compiler, SLJIT_SUB, flags | ALT_FORM2 | ALT_FORM3, dst, dstw, src1, src1w, TMP_REG… in sljit_emit_op2()
1588 …return emit_op(compiler, SLJIT_SUB, flags | ((op & SLJIT_SET_U) ? ALT_FORM4 : 0) | ((op & (SLJIT_S… in sljit_emit_op2()
1592 compiler->imm = (-src2w) & 0xffff; in sljit_emit_op2()
1593 return emit_op(compiler, SLJIT_ADD, flags | ALT_FORM3, dst, dstw, src1, src1w, TMP_REG2, 0); in sljit_emit_op2()
1597 …return emit_op(compiler, SLJIT_SUB, flags | (!(op & SLJIT_SET_U) ? 0 : ALT_FORM6), dst, dstw, src1… in sljit_emit_op2()
1600 …return emit_op(compiler, SLJIT_SUBC, flags | (!(op & SLJIT_KEEP_FLAGS) ? 0 : ALT_FORM1), dst, dstw… in sljit_emit_op2()
1609 compiler->imm = src2w & 0xffff; in sljit_emit_op2()
1610 return emit_op(compiler, SLJIT_MUL, flags | ALT_FORM1, dst, dstw, src1, src1w, TMP_REG2, 0); in sljit_emit_op2()
1613 compiler->imm = src1w & 0xffff; in sljit_emit_op2()
1614 return emit_op(compiler, SLJIT_MUL, flags | ALT_FORM1, dst, dstw, src2, src2w, TMP_REG2, 0); in sljit_emit_op2()
1617 return emit_op(compiler, SLJIT_MUL, flags, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
1625 compiler->imm = src2w; in sljit_emit_op2()
1626 … return emit_op(compiler, GET_OPCODE(op), flags | ALT_FORM1, dst, dstw, src1, src1w, TMP_REG2, 0); in sljit_emit_op2()
1629 compiler->imm = src1w; in sljit_emit_op2()
1630 … return emit_op(compiler, GET_OPCODE(op), flags | ALT_FORM1, dst, dstw, src2, src2w, TMP_REG2, 0); in sljit_emit_op2()
1633 compiler->imm = (src2w >> 16) & 0xffff; in sljit_emit_op2()
1634 … return emit_op(compiler, GET_OPCODE(op), flags | ALT_FORM2, dst, dstw, src1, src1w, TMP_REG2, 0); in sljit_emit_op2()
1637 compiler->imm = (src1w >> 16) & 0xffff; in sljit_emit_op2()
1638 … return emit_op(compiler, GET_OPCODE(op), flags | ALT_FORM2, dst, dstw, src2, src2w, TMP_REG2, 0); in sljit_emit_op2()
1643 compiler->imm = src2w; in sljit_emit_op2()
1644 … return emit_op(compiler, GET_OPCODE(op), flags | ALT_FORM3, dst, dstw, src1, src1w, TMP_REG2, 0); in sljit_emit_op2()
1647 compiler->imm = src1w; in sljit_emit_op2()
1648 … return emit_op(compiler, GET_OPCODE(op), flags | ALT_FORM3, dst, dstw, src2, src2w, TMP_REG2, 0); in sljit_emit_op2()
1651 return emit_op(compiler, GET_OPCODE(op), flags, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
1664 compiler->imm = src2w; in sljit_emit_op2()
1665 return emit_op(compiler, GET_OPCODE(op), flags | ALT_FORM1, dst, dstw, src1, src1w, TMP_REG2, 0); in sljit_emit_op2()
1667 return emit_op(compiler, GET_OPCODE(op), flags, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
1685 SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_custom(struct sljit_compiler *compiler, in sljit_emit_op_custom() argument
1689 check_sljit_emit_op_custom(compiler, instruction, size); in sljit_emit_op_custom()
1692 return push_inst(compiler, *(sljit_ins*)instruction); in sljit_emit_op_custom()
1727 static SLJIT_INLINE sljit_si sljit_emit_fop1_convw_fromd(struct sljit_compiler *compiler, sljit_si … in sljit_emit_fop1_convw_fromd() argument
1733 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src, srcw, dst, dstw)); in sljit_emit_fop1_convw_fromd()
1739 …FAIL_IF(push_inst(compiler, (op == SLJIT_CONVI_FROMD ? FCTIWZ : FCTIDZ) | FD(TMP_FREG1) | FB(src))… in sljit_emit_fop1_convw_fromd()
1746 …FAIL_IF(emit_op_mem2(compiler, DOUBLE_DATA, TMP_FREG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET,… in sljit_emit_fop1_convw_fromd()
1747 …return emit_op_mem2(compiler, WORD_DATA | LOAD_DATA, dst, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFS… in sljit_emit_fop1_convw_fromd()
1749 return emit_op_mem2(compiler, DOUBLE_DATA, TMP_FREG1, dst, dstw, 0, 0); in sljit_emit_fop1_convw_fromd()
1753 FAIL_IF(push_inst(compiler, FCTIWZ | FD(TMP_FREG1) | FB(src))); in sljit_emit_fop1_convw_fromd()
1760 FAIL_IF(load_immediate(compiler, TMP_REG1, FLOAT_TMP_MEM_OFFSET)); in sljit_emit_fop1_convw_fromd()
1761 FAIL_IF(push_inst(compiler, STFIWX | FS(TMP_FREG1) | A(SLJIT_SP) | B(TMP_REG1))); in sljit_emit_fop1_convw_fromd()
1762 …return emit_op_mem2(compiler, INT_DATA | LOAD_DATA, dst, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSE… in sljit_emit_fop1_convw_fromd()
1771 …FAIL_IF(push_inst(compiler, RLWINM | S(OFFS_REG(dst)) | A(TMP_REG1) | (dstw << 11) | ((31 - dstw) … in sljit_emit_fop1_convw_fromd()
1773 FAIL_IF(push_inst(compiler, RLDI(TMP_REG1, OFFS_REG(dst), dstw, 63 - dstw, 1))); in sljit_emit_fop1_convw_fromd()
1787 FAIL_IF(load_immediate(compiler, TMP_REG1, dstw)); in sljit_emit_fop1_convw_fromd()
1792 return push_inst(compiler, STFIWX | FS(TMP_FREG1) | A(dst & REG_MASK) | B(dstw)); in sljit_emit_fop1_convw_fromd()
1795 static SLJIT_INLINE sljit_si sljit_emit_fop1_convd_fromw(struct sljit_compiler *compiler, sljit_si … in sljit_emit_fop1_convd_fromw() argument
1806 FAIL_IF(load_immediate(compiler, TMP_REG1, srcw)); in sljit_emit_fop1_convd_fromw()
1811 FAIL_IF(push_inst(compiler, EXTSW | S(src) | A(TMP_REG1))); in sljit_emit_fop1_convd_fromw()
1813 …FAIL_IF(emit_op_mem2(compiler, INT_DATA | SIGNED_DATA | LOAD_DATA, TMP_REG1, src, srcw, SLJIT_MEM1… in sljit_emit_fop1_convd_fromw()
1818 …FAIL_IF(emit_op_mem2(compiler, WORD_DATA, src, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, SLJIT_M… in sljit_emit_fop1_convd_fromw()
1819 …FAIL_IF(emit_op_mem2(compiler, DOUBLE_DATA | LOAD_DATA, TMP_FREG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP… in sljit_emit_fop1_convd_fromw()
1822 FAIL_IF(emit_op_mem2(compiler, DOUBLE_DATA | LOAD_DATA, TMP_FREG1, src, srcw, dst, dstw)); in sljit_emit_fop1_convd_fromw()
1824 FAIL_IF(push_inst(compiler, FCFID | FD(dst_r) | FB(TMP_FREG1))); in sljit_emit_fop1_convd_fromw()
1827 return emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG1, dst, dstw, 0, 0); in sljit_emit_fop1_convd_fromw()
1829 return push_inst(compiler, FRSP | FD(dst_r) | FB(dst_r)); in sljit_emit_fop1_convd_fromw()
1838 FAIL_IF(load_immediate(compiler, TMP_REG1, srcw ^ 0x80000000)); in sljit_emit_fop1_convd_fromw()
1843 …FAIL_IF(emit_op_mem2(compiler, WORD_DATA | SIGNED_DATA | LOAD_DATA, TMP_REG1, src, srcw, SLJIT_MEM… in sljit_emit_fop1_convd_fromw()
1852 FAIL_IF(push_inst(compiler, ADDIS | D(TMP_REG2) | A(0) | 0x4330)); in sljit_emit_fop1_convd_fromw()
1854 FAIL_IF(push_inst(compiler, XORIS | S(src) | A(TMP_REG1) | 0x8000)); in sljit_emit_fop1_convd_fromw()
1855 …FAIL_IF(emit_op_mem2(compiler, WORD_DATA, TMP_REG2, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_HI,… in sljit_emit_fop1_convd_fromw()
1856 …FAIL_IF(emit_op_mem2(compiler, WORD_DATA, TMP_REG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_LOW… in sljit_emit_fop1_convd_fromw()
1857 FAIL_IF(push_inst(compiler, ADDIS | D(TMP_REG1) | A(0) | 0x8000)); in sljit_emit_fop1_convd_fromw()
1858 …FAIL_IF(emit_op_mem2(compiler, DOUBLE_DATA | LOAD_DATA, TMP_FREG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP… in sljit_emit_fop1_convd_fromw()
1859 …FAIL_IF(emit_op_mem2(compiler, WORD_DATA, TMP_REG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_LOW… in sljit_emit_fop1_convd_fromw()
1860 …FAIL_IF(emit_op_mem2(compiler, DOUBLE_DATA | LOAD_DATA, TMP_FREG2, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP… in sljit_emit_fop1_convd_fromw()
1862 FAIL_IF(push_inst(compiler, FSUB | FD(dst_r) | FA(TMP_FREG1) | FB(TMP_FREG2))); in sljit_emit_fop1_convd_fromw()
1865 return emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG1, dst, dstw, 0, 0); in sljit_emit_fop1_convd_fromw()
1867 return push_inst(compiler, FRSP | FD(dst_r) | FB(dst_r)); in sljit_emit_fop1_convd_fromw()
1873 static SLJIT_INLINE sljit_si sljit_emit_fop1_cmp(struct sljit_compiler *compiler, sljit_si op, in sljit_emit_fop1_cmp() argument
1878 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, src2, src2w)); in sljit_emit_fop1_cmp()
1883 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, 0, 0)); in sljit_emit_fop1_cmp()
1887 return push_inst(compiler, FCMPU | CRD(4) | FA(src1) | FB(src2)); in sljit_emit_fop1_cmp()
1890 SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop1(struct sljit_compiler *compiler, sljit_si op, in sljit_emit_fop1() argument
1897 compiler->cache_arg = 0; in sljit_emit_fop1()
1898 compiler->cache_argw = 0; in sljit_emit_fop1()
1901 SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw); in sljit_emit_fop1()
1909 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, dst_r, src, srcw, dst, dstw)); in sljit_emit_fop1()
1917 FAIL_IF(push_inst(compiler, FRSP | FD(dst_r) | FB(src))); in sljit_emit_fop1()
1924 FAIL_IF(push_inst(compiler, FMR | FD(dst_r) | FB(src))); in sljit_emit_fop1()
1930 FAIL_IF(push_inst(compiler, FNEG | FD(dst_r) | FB(src))); in sljit_emit_fop1()
1933 FAIL_IF(push_inst(compiler, FABS | FD(dst_r) | FB(src))); in sljit_emit_fop1()
1938 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op), dst_r, dst, dstw, 0, 0)); in sljit_emit_fop1()
1942 SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compiler, sljit_si op, in sljit_emit_fop2() argument
1950 check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_fop2()
1955 compiler->cache_arg = 0; in sljit_emit_fop2()
1956 compiler->cache_argw = 0; in sljit_emit_fop2()
1961 if (getput_arg_fast(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w)) { in sljit_emit_fop2()
1962 FAIL_IF(compiler->error); in sljit_emit_fop2()
1969 if (getput_arg_fast(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w)) { in sljit_emit_fop2()
1970 FAIL_IF(compiler->error); in sljit_emit_fop2()
1978 FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, src1, src1w)); in sljit_emit_fop2()
1979 FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, dst, dstw)); in sljit_emit_fop2()
1982 FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, src2, src2w)); in sljit_emit_fop2()
1983 FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, dst, dstw)); in sljit_emit_fop2()
1987 FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, dst, dstw)); in sljit_emit_fop2()
1989 FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, dst, dstw)); in sljit_emit_fop2()
1998 FAIL_IF(push_inst(compiler, SELECT_FOP(op, FADDS, FADD) | FD(dst_r) | FA(src1) | FB(src2))); in sljit_emit_fop2()
2002 FAIL_IF(push_inst(compiler, SELECT_FOP(op, FSUBS, FSUB) | FD(dst_r) | FA(src1) | FB(src2))); in sljit_emit_fop2()
2006 …FAIL_IF(push_inst(compiler, SELECT_FOP(op, FMULS, FMUL) | FD(dst_r) | FA(src1) | FC(src2) /* FMUL … in sljit_emit_fop2()
2010 FAIL_IF(push_inst(compiler, SELECT_FOP(op, FDIVS, FDIV) | FD(dst_r) | FA(src1) | FB(src2))); in sljit_emit_fop2()
2015 FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG2, dst, dstw, 0, 0)); in sljit_emit_fop2()
2027 SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_si d… in sljit_emit_fast_enter() argument
2030 check_sljit_emit_fast_enter(compiler, dst, dstw); in sljit_emit_fast_enter()
2038 return push_inst(compiler, MFLR | D(dst)); in sljit_emit_fast_enter()
2041 FAIL_IF(push_inst(compiler, MFLR | D(TMP_REG2))); in sljit_emit_fast_enter()
2042 return emit_op(compiler, SLJIT_MOV, WORD_DATA, dst, dstw, TMP_REG1, 0, TMP_REG2, 0); in sljit_emit_fast_enter()
2045 SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_si … in sljit_emit_fast_return() argument
2048 check_sljit_emit_fast_return(compiler, src, srcw); in sljit_emit_fast_return()
2052 FAIL_IF(push_inst(compiler, MTLR | S(src))); in sljit_emit_fast_return()
2055 FAIL_IF(emit_op(compiler, SLJIT_MOV, WORD_DATA, TMP_REG2, 0, TMP_REG1, 0, src, srcw)); in sljit_emit_fast_return()
2057 FAIL_IF(load_immediate(compiler, TMP_REG2, srcw)); in sljit_emit_fast_return()
2058 FAIL_IF(push_inst(compiler, MTLR | S(TMP_REG2))); in sljit_emit_fast_return()
2060 return push_inst(compiler, BLR); in sljit_emit_fast_return()
2067 SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label(struct sljit_compiler *compiler) in sljit_emit_label() argument
2072 check_sljit_emit_label(compiler); in sljit_emit_label()
2074 if (compiler->last_label && compiler->last_label->size == compiler->size) in sljit_emit_label()
2075 return compiler->last_label; in sljit_emit_label()
2077 label = (struct sljit_label*)ensure_abuf(compiler, sizeof(struct sljit_label)); in sljit_emit_label()
2079 set_label(label, compiler); in sljit_emit_label()
2146 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compiler *compiler, sljit_… in sljit_emit_jump() argument
2152 check_sljit_emit_jump(compiler, type); in sljit_emit_jump()
2158 jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump)); in sljit_emit_jump()
2160 set_jump(jump, compiler, type & SLJIT_REWRITABLE_JUMP); in sljit_emit_jump()
2171 PTR_FAIL_IF(emit_const(compiler, TMP_CALL_REG, 0)); in sljit_emit_jump()
2172 PTR_FAIL_IF(push_inst(compiler, MTCTR | S(TMP_CALL_REG))); in sljit_emit_jump()
2173 jump->addr = compiler->size; in sljit_emit_jump()
2174 PTR_FAIL_IF(push_inst(compiler, BCCTR | bo_bi_flags | (type >= SLJIT_FAST_CALL ? 1 : 0))); in sljit_emit_jump()
2178 SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_ijump(struct sljit_compiler *compiler, sljit_si type, … in sljit_emit_ijump() argument
2184 check_sljit_emit_ijump(compiler, type, src, srcw); in sljit_emit_ijump()
2190 FAIL_IF(push_inst(compiler, OR | S(src) | A(TMP_CALL_REG) | B(src))); in sljit_emit_ijump()
2199 jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump)); in sljit_emit_ijump()
2201 set_jump(jump, compiler, JUMP_ADDR); in sljit_emit_ijump()
2207 FAIL_IF(emit_const(compiler, TMP_CALL_REG, 0)); in sljit_emit_ijump()
2211 FAIL_IF(emit_op(compiler, SLJIT_MOV, WORD_DATA, TMP_CALL_REG, 0, TMP_REG1, 0, src, srcw)); in sljit_emit_ijump()
2215 FAIL_IF(push_inst(compiler, MTCTR | S(src_r))); in sljit_emit_ijump()
2217 jump->addr = compiler->size; in sljit_emit_ijump()
2218 return push_inst(compiler, BCCTR | (20 << 21) | (type >= SLJIT_FAST_CALL ? 1 : 0)); in sljit_emit_ijump()
2223 FAIL_IF(push_inst(compiler, MFCR | D(dst))); \
2224 …FAIL_IF(push_inst(compiler, RLWINM | S(dst) | A(dst) | ((1 + (bit)) << 11) | (31 << 6) | (31 << 1)…
2227 FAIL_IF(push_inst(compiler, XORI | S(dst) | A(dst) | 0x1));
2229 SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_si op, in sljit_emit_op_flags() argument
2239 check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type); in sljit_emit_op_flags()
2248 compiler->cache_arg = 0; in sljit_emit_op_flags()
2249 compiler->cache_argw = 0; in sljit_emit_op_flags()
2257 FAIL_IF(emit_op_mem2(compiler, input_flags | LOAD_DATA, TMP_REG1, src, srcw, dst, dstw)); in sljit_emit_op_flags()
2360 return emit_op(compiler, op, input_flags, dst, dstw, TMP_REG1, 0, TMP_REG2, 0); in sljit_emit_op_flags()
2364 compiler->skip_checks = 1; in sljit_emit_op_flags()
2366 return sljit_emit_op2(compiler, op | flags, dst, original_dstw, src, srcw, TMP_REG2, 0); in sljit_emit_op_flags()
2369 SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compiler *compiler, slji… in sljit_emit_const() argument
2375 check_sljit_emit_const(compiler, dst, dstw, init_value); in sljit_emit_const()
2378 const_ = (struct sljit_const*)ensure_abuf(compiler, sizeof(struct sljit_const)); in sljit_emit_const()
2380 set_const(const_, compiler); in sljit_emit_const()
2384 PTR_FAIL_IF(emit_const(compiler, reg, init_value)); in sljit_emit_const()
2387 PTR_FAIL_IF(emit_op(compiler, SLJIT_MOV, WORD_DATA, dst, dstw, TMP_REG1, 0, TMP_REG2, 0)); in sljit_emit_const()