Lines Matching refs:compiler
139 static sljit_s32 push_cpool(struct sljit_compiler *compiler) in push_cpool() argument
148 if (compiler->last_label && compiler->last_label->size == compiler->size) in push_cpool()
149 compiler->last_label->size += compiler->cpool_fill + (CONST_POOL_ALIGNMENT - 1) + 1; in push_cpool()
151 SLJIT_ASSERT(compiler->cpool_fill > 0 && compiler->cpool_fill <= CPOOL_SIZE); in push_cpool()
152 inst = (sljit_uw*)ensure_buf(compiler, sizeof(sljit_uw)); in push_cpool()
154 compiler->size++; in push_cpool()
155 *inst = 0xff000000 | compiler->cpool_fill; in push_cpool()
158 inst = (sljit_uw*)ensure_buf(compiler, sizeof(sljit_uw)); in push_cpool()
160 compiler->size++; in push_cpool()
164 cpool_ptr = compiler->cpool; in push_cpool()
165 cpool_end = cpool_ptr + compiler->cpool_fill; in push_cpool()
167 inst = (sljit_uw*)ensure_buf(compiler, sizeof(sljit_uw)); in push_cpool()
169 compiler->size++; in push_cpool()
172 compiler->cpool_diff = CONST_POOL_EMPTY; in push_cpool()
173 compiler->cpool_fill = 0; in push_cpool()
177 static sljit_s32 push_inst(struct sljit_compiler *compiler, sljit_uw inst) in push_inst() argument
181 …if (SLJIT_UNLIKELY(compiler->cpool_diff != CONST_POOL_EMPTY && compiler->size - compiler->cpool_di… in push_inst()
182 FAIL_IF(push_cpool(compiler)); in push_inst()
184 ptr = (sljit_uw*)ensure_buf(compiler, sizeof(sljit_uw)); in push_inst()
186 compiler->size++; in push_inst()
191 static sljit_s32 push_inst_with_literal(struct sljit_compiler *compiler, sljit_uw inst, sljit_uw li… in push_inst_with_literal() argument
199 …if (SLJIT_UNLIKELY(compiler->cpool_diff != CONST_POOL_EMPTY && compiler->size - compiler->cpool_di… in push_inst_with_literal()
200 FAIL_IF(push_cpool(compiler)); in push_inst_with_literal()
201 else if (compiler->cpool_fill > 0) { in push_inst_with_literal()
202 cpool_ptr = compiler->cpool; in push_inst_with_literal()
203 cpool_end = cpool_ptr + compiler->cpool_fill; in push_inst_with_literal()
204 cpool_unique_ptr = compiler->cpool_unique; in push_inst_with_literal()
207 cpool_index = cpool_ptr - compiler->cpool; in push_inst_with_literal()
217 if (compiler->cpool_fill < CPOOL_SIZE) { in push_inst_with_literal()
218 cpool_index = compiler->cpool_fill; in push_inst_with_literal()
219 compiler->cpool_fill++; in push_inst_with_literal()
222 FAIL_IF(push_cpool(compiler)); in push_inst_with_literal()
224 compiler->cpool_fill = 1; in push_inst_with_literal()
229 ptr = (sljit_uw*)ensure_buf(compiler, sizeof(sljit_uw)); in push_inst_with_literal()
231 compiler->size++; in push_inst_with_literal()
234 compiler->cpool[cpool_index] = literal; in push_inst_with_literal()
235 compiler->cpool_unique[cpool_index] = 0; in push_inst_with_literal()
236 if (compiler->cpool_diff == CONST_POOL_EMPTY) in push_inst_with_literal()
237 compiler->cpool_diff = compiler->size; in push_inst_with_literal()
241 static sljit_s32 push_inst_with_unique_literal(struct sljit_compiler *compiler, sljit_uw inst, slji… in push_inst_with_unique_literal() argument
244 …(SLJIT_UNLIKELY((compiler->cpool_diff != CONST_POOL_EMPTY && compiler->size - compiler->cpool_diff… in push_inst_with_unique_literal()
245 FAIL_IF(push_cpool(compiler)); in push_inst_with_unique_literal()
247 SLJIT_ASSERT(compiler->cpool_fill < CPOOL_SIZE && (inst & 0xfff) == 0); in push_inst_with_unique_literal()
248 ptr = (sljit_uw*)ensure_buf(compiler, sizeof(sljit_uw)); in push_inst_with_unique_literal()
250 compiler->size++; in push_inst_with_unique_literal()
251 *ptr = inst | compiler->cpool_fill; in push_inst_with_unique_literal()
253 compiler->cpool[compiler->cpool_fill] = literal; in push_inst_with_unique_literal()
254 compiler->cpool_unique[compiler->cpool_fill] = 1; in push_inst_with_unique_literal()
255 compiler->cpool_fill++; in push_inst_with_unique_literal()
256 if (compiler->cpool_diff == CONST_POOL_EMPTY) in push_inst_with_unique_literal()
257 compiler->cpool_diff = compiler->size; in push_inst_with_unique_literal()
261 static SLJIT_INLINE sljit_s32 prepare_blx(struct sljit_compiler *compiler) in prepare_blx() argument
264 …if (SLJIT_UNLIKELY(compiler->cpool_diff != CONST_POOL_EMPTY && compiler->size - compiler->cpool_di… in prepare_blx()
265 return push_cpool(compiler); in prepare_blx()
269 static SLJIT_INLINE sljit_s32 emit_blx(struct sljit_compiler *compiler) in emit_blx() argument
272 …SLJIT_ASSERT(compiler->cpool_diff == CONST_POOL_EMPTY || compiler->size - compiler->cpool_diff < M… in emit_blx()
275 return push_inst(compiler, BLX | RM(TMP_REG1)); in emit_blx()
330 static sljit_s32 resolve_const_pool_index(struct sljit_compiler *compiler, struct future_patch **fi… in resolve_const_pool_index() argument
335 SLJIT_UNUSED_ARG(compiler); in resolve_const_pool_index()
354 SLJIT_FREE(curr_patch, compiler->allocator_data); in resolve_const_pool_index()
364 …curr_patch = (struct future_patch*)SLJIT_MALLOC(sizeof(struct future_patch), compiler->allocator_d… in resolve_const_pool_index()
369 SLJIT_FREE(curr_patch, compiler->allocator_data); in resolve_const_pool_index()
385 static sljit_s32 push_inst(struct sljit_compiler *compiler, sljit_uw inst) in push_inst() argument
389 ptr = (sljit_uw*)ensure_buf(compiler, sizeof(sljit_uw)); in push_inst()
391 compiler->size++; in push_inst()
396 static SLJIT_INLINE sljit_s32 emit_imm(struct sljit_compiler *compiler, sljit_s32 reg, sljit_sw imm) in emit_imm() argument
398 FAIL_IF(push_inst(compiler, MOVW | RD(reg) | ((imm << 4) & 0xf0000) | (imm & 0xfff))); in emit_imm()
399 return push_inst(compiler, MOVT | RD(reg) | ((imm >> 12) & 0xf0000) | ((imm >> 16) & 0xfff)); in emit_imm()
577 SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compiler) in sljit_generate_code() argument
602 CHECK_PTR(check_sljit_generate_code(compiler)); in sljit_generate_code()
603 reverse_buf(compiler); in sljit_generate_code()
607 size = compiler->size + (compiler->patches << 1); in sljit_generate_code()
608 if (compiler->cpool_fill > 0) in sljit_generate_code()
609 size += compiler->cpool_fill + CONST_POOL_ALIGNMENT - 1; in sljit_generate_code()
611 size = compiler->size; in sljit_generate_code()
615 buf = compiler->buf; in sljit_generate_code()
630 label = compiler->labels; in sljit_generate_code()
631 jump = compiler->jumps; in sljit_generate_code()
632 const_ = compiler->consts; in sljit_generate_code()
651 …if (SLJIT_UNLIKELY(resolve_const_pool_index(compiler, &first_patch, cpool_current_index, cpool_sta… in sljit_generate_code()
653 compiler->error = SLJIT_ERR_ALLOC_FAILED; in sljit_generate_code()
731 if (compiler->cpool_fill > 0) { in sljit_generate_code()
733 …ndex = patch_pc_relative_loads(last_pc_patch, code_ptr, cpool_start_address, compiler->cpool_fill); in sljit_generate_code()
737 buf_ptr = compiler->cpool; in sljit_generate_code()
738 buf_end = buf_ptr + compiler->cpool_fill; in sljit_generate_code()
741 …if (SLJIT_UNLIKELY(resolve_const_pool_index(compiler, &first_patch, cpool_current_index, cpool_sta… in sljit_generate_code()
743 compiler->error = SLJIT_ERR_ALLOC_FAILED; in sljit_generate_code()
753 jump = compiler->jumps; in sljit_generate_code()
797 const_ = compiler->consts; in sljit_generate_code()
818 compiler->error = SLJIT_ERR_COMPILED; in sljit_generate_code()
819 compiler->executable_offset = executable_offset; in sljit_generate_code()
820 compiler->executable_size = (code_ptr - code) * sizeof(sljit_uw); in sljit_generate_code()
901 static sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 inp_flags,
906 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compiler, in sljit_emit_enter() argument
914 …CHECK(check_sljit_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds,… in sljit_emit_enter()
915 set_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); in sljit_emit_enter()
928 FAIL_IF(push_inst(compiler, push)); in sljit_emit_enter()
933 compiler->local_size = local_size; in sljit_emit_enter()
935 FAIL_IF(emit_op(compiler, SLJIT_SUB, ALLOW_IMM, SLJIT_SP, 0, SLJIT_SP, 0, SLJIT_IMM, local_size)); in sljit_emit_enter()
940 FAIL_IF(push_inst(compiler, MOV | RD(SLJIT_S0) | RM(SLJIT_R0))); in sljit_emit_enter()
942 FAIL_IF(push_inst(compiler, MOV | RD(SLJIT_S1) | RM(SLJIT_R1))); in sljit_emit_enter()
944 FAIL_IF(push_inst(compiler, MOV | RD(SLJIT_S2) | RM(SLJIT_R2))); in sljit_emit_enter()
949 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context(struct sljit_compiler *compiler, in sljit_set_context() argument
956 …CHECK(check_sljit_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds… in sljit_set_context()
957 set_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); in sljit_set_context()
960 compiler->local_size = ((size + local_size + 7) & ~7) - size; in sljit_set_context()
964 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return(struct sljit_compiler *compiler, sljit_s32 op,… in sljit_emit_return() argument
970 CHECK(check_sljit_emit_return(compiler, op, src, srcw)); in sljit_emit_return()
972 FAIL_IF(emit_mov_before_return(compiler, op, src, srcw)); in sljit_emit_return()
974 if (compiler->local_size > 0) in sljit_emit_return()
975 …FAIL_IF(emit_op(compiler, SLJIT_ADD, ALLOW_IMM, SLJIT_SP, 0, SLJIT_SP, 0, SLJIT_IMM, compiler->loc… in sljit_emit_return()
981 …tmp = compiler->saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - compiler->saveds) : SLJ… in sljit_emit_return()
985 for (i = compiler->scratches; i >= SLJIT_FIRST_SAVED_REG; i--) in sljit_emit_return()
988 return push_inst(compiler, pop); in sljit_emit_return()
1014 if (compiler->shift_imm != 0x20) { \
1018 if (compiler->shift_imm != 0) \
1019 return push_inst(compiler, MOV | (flags & SET_FLAGS) | \
1020 RD(dst) | (compiler->shift_imm << 7) | (opcode << 5) | RM(src2)); \
1021 return push_inst(compiler, MOV | (flags & SET_FLAGS) | RD(dst) | RM(src2)); \
1023 return push_inst(compiler, MOV | (flags & SET_FLAGS) | RD(dst) | \
1026 static SLJIT_INLINE sljit_s32 emit_single_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s… in emit_single_op() argument
1034 return push_inst(compiler, ((flags & INV_IMM) ? MVN : MOV) | RD(dst) | src2); in emit_single_op()
1036 return push_inst(compiler, MOV | RD(dst) | RM(src2)); in emit_single_op()
1046 return push_inst(compiler, AND | RD(dst) | RN(src2) | SRC2_IMM | 0xff); in emit_single_op()
1047 FAIL_IF(push_inst(compiler, MOV | RD(dst) | (24 << 7) | RM(src2))); in emit_single_op()
1048 …return push_inst(compiler, MOV | RD(dst) | (24 << 7) | (op == SLJIT_MOV_U8 ? 0x20 : 0x40) | RM(dst… in emit_single_op()
1050 return push_inst(compiler, (op == SLJIT_MOV_U8 ? UXTB : SXTB) | RD(dst) | RM(src2)); in emit_single_op()
1055 return push_inst(compiler, ((flags & INV_IMM) ? MVN : MOV) | RD(dst) | src2); in emit_single_op()
1064 FAIL_IF(push_inst(compiler, MOV | RD(dst) | (16 << 7) | RM(src2))); in emit_single_op()
1065 …return push_inst(compiler, MOV | RD(dst) | (16 << 7) | (op == SLJIT_MOV_U16 ? 0x20 : 0x40) | RM(ds… in emit_single_op()
1067 return push_inst(compiler, (op == SLJIT_MOV_U16 ? UXTH : SXTH) | RD(dst) | RM(src2)); in emit_single_op()
1072 return push_inst(compiler, ((flags & INV_IMM) ? MVN : MOV) | RD(dst) | src2); in emit_single_op()
1078 …return push_inst(compiler, ((flags & INV_IMM) ? MOV : MVN) | (flags & SET_FLAGS) | RD(dst) | src2); in emit_single_op()
1080 return push_inst(compiler, MVN | (flags & SET_FLAGS) | RD(dst) | RM(src2)); in emit_single_op()
1085 FAIL_IF(push_inst(compiler, CLZ | RD(dst) | RM(src2))); in emit_single_op()
1091 return push_inst(compiler, CMN | SET_FLAGS | RN(src1) | ((src2 & SRC2_IMM) ? src2 : RM(src2))); in emit_single_op()
1092 …return push_inst(compiler, ADD | (flags & SET_FLAGS) | RD(dst) | RN(src1) | ((src2 & SRC2_IMM) ? s… in emit_single_op()
1096 …return push_inst(compiler, ADC | (flags & SET_FLAGS) | RD(dst) | RN(src1) | ((src2 & SRC2_IMM) ? s… in emit_single_op()
1101 return push_inst(compiler, CMP | SET_FLAGS | RN(src1) | ((src2 & SRC2_IMM) ? src2 : RM(src2))); in emit_single_op()
1102 return push_inst(compiler, (!(flags & ARGS_SWAPPED) ? SUB : RSB) | (flags & SET_FLAGS) in emit_single_op()
1107 return push_inst(compiler, (!(flags & ARGS_SWAPPED) ? SBC : RSC) | (flags & SET_FLAGS) in emit_single_op()
1115 return push_inst(compiler, MUL | (reg_map[dst] << 16) | (reg_map[src2] << 8) | reg_map[src1]); in emit_single_op()
1117 …FAIL_IF(push_inst(compiler, SMULL | (reg_map[TMP_REG1] << 16) | (reg_map[dst] << 12) | (reg_map[sr… in emit_single_op()
1120 return push_inst(compiler, CMP | SET_FLAGS | RN(TMP_REG1) | RM(dst) | 0xfc0); in emit_single_op()
1123 return push_inst(compiler, (!(flags & INV_IMM) ? AND : BIC) | (flags & SET_FLAGS) in emit_single_op()
1128 …return push_inst(compiler, ORR | (flags & SET_FLAGS) | RD(dst) | RN(src1) | ((src2 & SRC2_IMM) ? s… in emit_single_op()
1132 …return push_inst(compiler, EOR | (flags & SET_FLAGS) | RD(dst) | RN(src1) | ((src2 & SRC2_IMM) ? s… in emit_single_op()
1190 static sljit_s32 generate_int(struct sljit_compiler *compiler, sljit_s32 reg, sljit_uw imm, sljit_s… in generate_int() argument
1295 FAIL_IF(push_inst(compiler, (positive ? MOV : MVN) | RD(reg) | imm1)); in generate_int()
1296 FAIL_IF(push_inst(compiler, (positive ? ORR : BIC) | RD(reg) | RN(reg) | imm2)); in generate_int()
1301 static sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32 reg, sljit_uw imm) in load_immediate() argument
1307 return push_inst(compiler, MOVW | RD(reg) | ((imm << 4) & 0xf0000) | (imm & 0xfff)); in load_immediate()
1313 return push_inst(compiler, MOV | RD(reg) | tmp); in load_immediate()
1317 return push_inst(compiler, MVN | RD(reg) | tmp); in load_immediate()
1321 FAIL_IF(generate_int(compiler, reg, imm, 1)); in load_immediate()
1322 FAIL_IF(generate_int(compiler, reg, ~imm, 0)); in load_immediate()
1325 …return push_inst_with_literal(compiler, EMIT_DATA_TRANSFER(WORD_SIZE | LOAD_DATA, 1, reg, TMP_PC, … in load_immediate()
1327 FAIL_IF(push_inst(compiler, MOVW | RD(reg) | ((imm << 4) & 0xf0000) | (imm & 0xfff))); in load_immediate()
1330 return push_inst(compiler, MOVT | RD(reg) | ((imm >> 12) & 0xf0000) | ((imm >> 16) & 0xfff)); in load_immediate()
1334 static SLJIT_INLINE sljit_s32 emit_op_mem(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s… in emit_op_mem() argument
1345 FAIL_IF(load_immediate(compiler, tmp_reg, argw & ~0xfff)); in emit_op_mem()
1349 FAIL_IF(load_immediate(compiler, tmp_reg, argw & ~0xff)); in emit_op_mem()
1353 return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 1, reg, tmp_reg, in emit_op_mem()
1363 FAIL_IF(push_inst(compiler, ADD | RD(tmp_reg) | RN(arg) | RM(offset_reg) | (argw << 7))); in emit_op_mem()
1364 return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 1, reg, tmp_reg, TYPE2_TRANSFER_IMM(0))); in emit_op_mem()
1368 return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 1, reg, arg, in emit_op_mem()
1378 FAIL_IF(push_inst(compiler, ADD | RD(tmp_reg) | RN(arg) | imm)); in emit_op_mem()
1386 FAIL_IF(push_inst(compiler, SUB | RD(tmp_reg) | RN(arg) | imm)); in emit_op_mem()
1393 return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 1, reg, arg, argw)); in emit_op_mem()
1396 return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 0, reg, arg, -argw)); in emit_op_mem()
1402 FAIL_IF(push_inst(compiler, ADD | RD(tmp_reg) | RN(arg) | imm)); in emit_op_mem()
1410 FAIL_IF(push_inst(compiler, SUB | RD(tmp_reg) | RN(arg) | imm)); in emit_op_mem()
1417 return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 1, reg, arg, TYPE2_TRANSFER_IMM(argw))); in emit_op_mem()
1421 return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 0, reg, arg, TYPE2_TRANSFER_IMM(argw))); in emit_op_mem()
1425 FAIL_IF(load_immediate(compiler, tmp_reg, argw)); in emit_op_mem()
1426 return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 1, reg, arg, in emit_op_mem()
1430 static sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 inp_flags, in emit_op() argument
1518 FAIL_IF(emit_op_mem(compiler, inp_flags | LOAD_DATA, TMP_REG1, src1, src1w, TMP_REG1)); in emit_op()
1522 FAIL_IF(load_immediate(compiler, TMP_REG1, src1w)); in emit_op()
1535 return emit_op_mem(compiler, inp_flags, src2, dst, dstw, TMP_REG2); in emit_op()
1549 FAIL_IF(emit_op_mem(compiler, inp_flags | LOAD_DATA, src2_reg, src2, src2w, TMP_REG2)); in emit_op()
1551 FAIL_IF(load_immediate(compiler, src2_reg, src2w)); in emit_op()
1554 FAIL_IF(emit_single_op(compiler, op, flags, dst_reg, src1_reg, src2_reg)); in emit_op()
1559 return emit_op_mem(compiler, inp_flags, dst_reg, dst, dstw, TMP_REG1); in emit_op()
1577 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0(struct sljit_compiler *compiler, sljit_s32 op) in sljit_emit_op0() argument
1583 CHECK(check_sljit_emit_op0(compiler, op)); in sljit_emit_op0()
1588 FAIL_IF(push_inst(compiler, BKPT)); in sljit_emit_op0()
1591 FAIL_IF(push_inst(compiler, NOP)); in sljit_emit_op0()
1595 return push_inst(compiler, (op == SLJIT_LMUL_UW ? UMULL : SMULL) in sljit_emit_op0()
1608 if (compiler->scratches >= 4) in sljit_emit_op0()
1610 if (compiler->scratches >= 3) in sljit_emit_op0()
1616 FAIL_IF(push_inst(compiler, 0xe52d0000 | (saved_reg_count >= 3 ? 16 : 8) in sljit_emit_op0()
1620 FAIL_IF(push_inst(compiler, 0xe58d0004 | (saved_reg_list[1] << 12) /* str rX, [sp, #4] */)); in sljit_emit_op0()
1624 FAIL_IF(push_inst(compiler, 0xe58d0008 | (saved_reg_list[2] << 12) /* str rX, [sp, #8] */)); in sljit_emit_op0()
1629 FAIL_IF(sljit_emit_ijump(compiler, SLJIT_FAST_CALL, SLJIT_IMM, in sljit_emit_op0()
1638 FAIL_IF(push_inst(compiler, 0xe59d0008 | (saved_reg_list[2] << 12) /* ldr rX, [sp, #8] */)); in sljit_emit_op0()
1642 FAIL_IF(push_inst(compiler, 0xe59d0004 | (saved_reg_list[1] << 12) /* ldr rX, [sp, #4] */)); in sljit_emit_op0()
1644 return push_inst(compiler, 0xe49d0000 | (saved_reg_count >= 3 ? 16 : 8) in sljit_emit_op0()
1653 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op1() argument
1658 CHECK(check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw)); in sljit_emit_op1()
1665 return emit_op_mem(compiler, PRELOAD | LOAD_DATA, TMP_PC, src, srcw, TMP_REG1); in sljit_emit_op1()
1675 return emit_op(compiler, SLJIT_MOV, ALLOW_ANY_IMM, dst, dstw, TMP_REG1, 0, src, srcw); in sljit_emit_op1()
1678 …return emit_op(compiler, SLJIT_MOV_U8, ALLOW_ANY_IMM | BYTE_SIZE, dst, dstw, TMP_REG1, 0, src, (sr… in sljit_emit_op1()
1681 …return emit_op(compiler, SLJIT_MOV_S8, ALLOW_ANY_IMM | SIGNED | BYTE_SIZE, dst, dstw, TMP_REG1, 0,… in sljit_emit_op1()
1684 …return emit_op(compiler, SLJIT_MOV_U16, ALLOW_ANY_IMM | HALF_SIZE, dst, dstw, TMP_REG1, 0, src, (s… in sljit_emit_op1()
1687 …return emit_op(compiler, SLJIT_MOV_S16, ALLOW_ANY_IMM | SIGNED | HALF_SIZE, dst, dstw, TMP_REG1, 0… in sljit_emit_op1()
1690 return emit_op(compiler, op, ALLOW_ANY_IMM, dst, dstw, TMP_REG1, 0, src, srcw); in sljit_emit_op1()
1695 compiler->skip_checks = 1; in sljit_emit_op1()
1697 …return sljit_emit_op2(compiler, SLJIT_SUB | GET_ALL_FLAGS(op), dst, dstw, SLJIT_IMM, 0, src, srcw); in sljit_emit_op1()
1700 return emit_op(compiler, op, 0, dst, dstw, TMP_REG1, 0, src, srcw); in sljit_emit_op1()
1706 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op2() argument
1712 CHECK(check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w)); in sljit_emit_op2()
1727 return emit_op(compiler, op, ALLOW_IMM, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
1730 return emit_op(compiler, op, 0, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
1733 return emit_op(compiler, op, ALLOW_ANY_IMM, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
1739 compiler->shift_imm = src2w & 0x1f; in sljit_emit_op2()
1740 return emit_op(compiler, op, 0, dst, dstw, TMP_REG1, 0, src1, src1w); in sljit_emit_op2()
1743 compiler->shift_imm = 0x20; in sljit_emit_op2()
1744 return emit_op(compiler, op, 0, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
1763 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom(struct sljit_compiler *compiler, in sljit_emit_op_custom() argument
1767 CHECK(check_sljit_emit_op_custom(compiler, instruction, size)); in sljit_emit_op_custom()
1769 return push_inst(compiler, *(sljit_uw*)instruction); in sljit_emit_op_custom()
1783 static sljit_s32 emit_fop_mem(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, slji… in emit_fop_mem() argument
1792 …FAIL_IF(push_inst(compiler, ADD | RD(TMP_REG2) | RN(arg & REG_MASK) | RM(OFFS_REG(arg)) | ((argw &… in emit_fop_mem()
1800 return push_inst(compiler, EMIT_FPU_DATA_TRANSFER(inst, 1, arg & REG_MASK, reg, argw >> 2)); in emit_fop_mem()
1802 return push_inst(compiler, EMIT_FPU_DATA_TRANSFER(inst, 0, arg & REG_MASK, reg, (-argw) >> 2)); in emit_fop_mem()
1806 FAIL_IF(push_inst(compiler, ADD | RD(TMP_REG2) | RN(arg & REG_MASK) | imm)); in emit_fop_mem()
1807 return push_inst(compiler, EMIT_FPU_DATA_TRANSFER(inst, 1, TMP_REG2, reg, (argw & 0x3fc) >> 2)); in emit_fop_mem()
1812 FAIL_IF(push_inst(compiler, SUB | RD(TMP_REG2) | RN(arg & REG_MASK) | imm)); in emit_fop_mem()
1813 return push_inst(compiler, EMIT_FPU_DATA_TRANSFER(inst, 0, TMP_REG2, reg, (argw & 0x3fc) >> 2)); in emit_fop_mem()
1818 FAIL_IF(load_immediate(compiler, TMP_REG2, argw)); in emit_fop_mem()
1819 FAIL_IF(push_inst(compiler, ADD | RD(TMP_REG2) | RN(arg & REG_MASK) | RM(TMP_REG2))); in emit_fop_mem()
1822 FAIL_IF(load_immediate(compiler, TMP_REG2, argw)); in emit_fop_mem()
1824 return push_inst(compiler, EMIT_FPU_DATA_TRANSFER(inst, 1, TMP_REG2, reg, 0)); in emit_fop_mem()
1827 static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_sw_from_f64(struct sljit_compiler *compiler, slj… in sljit_emit_fop1_conv_sw_from_f64() argument
1834 FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_F32_OP) | FPU_LOAD, TMP_FREG1, src, srcw)); in sljit_emit_fop1_conv_sw_from_f64()
1838 …FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VCVT_S32_F32, op & SLJIT_F32_OP, TMP_FREG1, src, 0)… in sljit_emit_fop1_conv_sw_from_f64()
1841 return push_inst(compiler, VMOV | (1 << 20) | RD(dst) | (freg_map[TMP_FREG1] << 16)); in sljit_emit_fop1_conv_sw_from_f64()
1844 return emit_fop_mem(compiler, 0, TMP_FREG1, dst, dstw); in sljit_emit_fop1_conv_sw_from_f64()
1847 static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_sw(struct sljit_compiler *compiler, slj… in sljit_emit_fop1_conv_f64_from_sw() argument
1856 FAIL_IF(push_inst(compiler, VMOV | RD(src) | (freg_map[TMP_FREG1] << 16))); in sljit_emit_fop1_conv_f64_from_sw()
1859 FAIL_IF(emit_fop_mem(compiler, FPU_LOAD, TMP_FREG1, src, srcw)); in sljit_emit_fop1_conv_f64_from_sw()
1862 FAIL_IF(load_immediate(compiler, TMP_REG1, srcw)); in sljit_emit_fop1_conv_f64_from_sw()
1863 FAIL_IF(push_inst(compiler, VMOV | RD(TMP_REG1) | (freg_map[TMP_FREG1] << 16))); in sljit_emit_fop1_conv_f64_from_sw()
1866 …FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VCVT_F32_S32, op & SLJIT_F32_OP, dst_r, TMP_FREG1, … in sljit_emit_fop1_conv_f64_from_sw()
1869 return emit_fop_mem(compiler, (op & SLJIT_F32_OP), TMP_FREG1, dst, dstw); in sljit_emit_fop1_conv_f64_from_sw()
1873 static SLJIT_INLINE sljit_s32 sljit_emit_fop1_cmp(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1_cmp() argument
1880 FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_F32_OP) | FPU_LOAD, TMP_FREG1, src1, src1w)); in sljit_emit_fop1_cmp()
1885 FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_F32_OP) | FPU_LOAD, TMP_FREG2, src2, src2w)); in sljit_emit_fop1_cmp()
1889 FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VCMP_F32, op & SLJIT_F32_OP, src1, src2, 0))); in sljit_emit_fop1_cmp()
1890 return push_inst(compiler, VMRS); in sljit_emit_fop1_cmp()
1893 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1() argument
1902 SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw); in sljit_emit_fop1()
1910 FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_F32_OP) | FPU_LOAD, dst_r, src, srcw)); in sljit_emit_fop1()
1918 FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VMOV_F32, op & SLJIT_F32_OP, dst_r, src, 0))); in sljit_emit_fop1()
1924 FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VNEG_F32, op & SLJIT_F32_OP, dst_r, src, 0))); in sljit_emit_fop1()
1927 FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VABS_F32, op & SLJIT_F32_OP, dst_r, src, 0))); in sljit_emit_fop1()
1930 FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VCVT_F64_F32, op & SLJIT_F32_OP, dst_r, src, 0))); in sljit_emit_fop1()
1936 return emit_fop_mem(compiler, (op & SLJIT_F32_OP), dst_r, dst, dstw); in sljit_emit_fop1()
1940 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop2() argument
1948 CHECK(check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w)); in sljit_emit_fop2()
1958 FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_F32_OP) | FPU_LOAD, TMP_FREG2, src2, src2w)); in sljit_emit_fop2()
1963 FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_F32_OP) | FPU_LOAD, TMP_FREG1, src1, src1w)); in sljit_emit_fop2()
1969 FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VADD_F32, op & SLJIT_F32_OP, dst_r, src2, src1))); in sljit_emit_fop2()
1973 FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VSUB_F32, op & SLJIT_F32_OP, dst_r, src2, src1))); in sljit_emit_fop2()
1977 FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VMUL_F32, op & SLJIT_F32_OP, dst_r, src2, src1))); in sljit_emit_fop2()
1981 FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VDIV_F32, op & SLJIT_F32_OP, dst_r, src2, src1))); in sljit_emit_fop2()
1986 FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_F32_OP), TMP_FREG1, dst, dstw)); in sljit_emit_fop2()
1998 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_s32… in sljit_emit_fast_enter() argument
2001 CHECK(check_sljit_emit_fast_enter(compiler, dst, dstw)); in sljit_emit_fast_enter()
2007 return push_inst(compiler, MOV | RD(dst) | RM(TMP_REG2)); in sljit_emit_fast_enter()
2010 return emit_op_mem(compiler, WORD_SIZE, TMP_REG2, dst, dstw, TMP_REG1); in sljit_emit_fast_enter()
2013 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_s3… in sljit_emit_fast_return() argument
2016 CHECK(check_sljit_emit_fast_return(compiler, src, srcw)); in sljit_emit_fast_return()
2022 FAIL_IF(push_inst(compiler, MOV | RD(TMP_REG2) | RM(src))); in sljit_emit_fast_return()
2024 FAIL_IF(emit_op_mem(compiler, WORD_SIZE | LOAD_DATA, TMP_REG2, src, srcw, TMP_REG1)); in sljit_emit_fast_return()
2026 return push_inst(compiler, BX | RM(TMP_REG2)); in sljit_emit_fast_return()
2088 SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label(struct sljit_compiler *compiler) in sljit_emit_label() argument
2093 CHECK_PTR(check_sljit_emit_label(compiler)); in sljit_emit_label()
2095 if (compiler->last_label && compiler->last_label->size == compiler->size) in sljit_emit_label()
2096 return compiler->last_label; in sljit_emit_label()
2098 label = (struct sljit_label*)ensure_abuf(compiler, sizeof(struct sljit_label)); in sljit_emit_label()
2100 set_label(label, compiler); in sljit_emit_label()
2104 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compiler *compiler, sljit_… in sljit_emit_jump() argument
2109 CHECK_PTR(check_sljit_emit_jump(compiler, type)); in sljit_emit_jump()
2111 jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump)); in sljit_emit_jump()
2113 set_jump(jump, compiler, type & SLJIT_REWRITABLE_JUMP); in sljit_emit_jump()
2120 PTR_FAIL_IF(prepare_blx(compiler)); in sljit_emit_jump()
2121 PTR_FAIL_IF(push_inst_with_unique_literal(compiler, ((EMIT_DATA_TRANSFER(WORD_SIZE | LOAD_DATA, 1, in sljit_emit_jump()
2125 jump->addr = compiler->size; in sljit_emit_jump()
2126 compiler->patches++; in sljit_emit_jump()
2131 PTR_FAIL_IF(emit_blx(compiler)); in sljit_emit_jump()
2135 jump->addr = compiler->size; in sljit_emit_jump()
2139 PTR_FAIL_IF(emit_imm(compiler, TMP_REG1, 0)); in sljit_emit_jump()
2140 …PTR_FAIL_IF(push_inst(compiler, (((type <= SLJIT_JUMP ? BX : BLX) | RM(TMP_REG1)) & ~COND_MASK) | … in sljit_emit_jump()
2141 jump->addr = compiler->size; in sljit_emit_jump()
2148 static sljit_s32 softfloat_call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types, slj… in softfloat_call_with_args() argument
2193 …FAIL_IF(push_inst(compiler, SUB | RD(SLJIT_SP) | RN(SLJIT_SP) | SRC2_IMM | (((stack_offset - 16) +… in softfloat_call_with_args()
2205 FAIL_IF(push_inst(compiler, MOV | RD(TMP_REG1) | (src_offset >> 2))); in softfloat_call_with_args()
2208 FAIL_IF(push_inst(compiler, VMOV | 0x100000 | (float_arg_count << 16) | (stack_offset << 10))); in softfloat_call_with_args()
2210 …FAIL_IF(push_inst(compiler, VSTR_F32 | 0x800000 | RN(SLJIT_SP) | (float_arg_count << 12) | ((stack… in softfloat_call_with_args()
2221 FAIL_IF(push_inst(compiler, MOV | RD(TMP_REG1) | (src_offset >> 2))); in softfloat_call_with_args()
2224 …FAIL_IF(push_inst(compiler, VMOV2 | 0x100000 | (stack_offset << 10) | ((stack_offset + sizeof(slji… in softfloat_call_with_args()
2226 …FAIL_IF(push_inst(compiler, VSTR_F32 | 0x800100 | RN(SLJIT_SP) | (float_arg_count << 12) | ((stack… in softfloat_call_with_args()
2238 FAIL_IF(push_inst(compiler, MOV | RD(TMP_REG1) | (src_offset >> 2))); in softfloat_call_with_args()
2245 FAIL_IF(push_inst(compiler, MOV | (stack_offset << 10) | (word_arg_offset >> 2))); in softfloat_call_with_args()
2247 …FAIL_IF(push_inst(compiler, data_transfer_insts[WORD_SIZE] | 0x800000 | RN(SLJIT_SP) | (word_arg_o… in softfloat_call_with_args()
2258 static sljit_s32 softfloat_post_call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types) in softfloat_post_call_with_args() argument
2263 FAIL_IF(push_inst(compiler, VMOV | (0 << 16) | (0 << 12))); in softfloat_post_call_with_args()
2265 FAIL_IF(push_inst(compiler, VMOV2 | (1 << 16) | (0 << 12) | 0)); in softfloat_post_call_with_args()
2290 …return push_inst(compiler, ADD | RD(SLJIT_SP) | RN(SLJIT_SP) | SRC2_IMM | (((stack_size - 16) + 0x… in softfloat_post_call_with_args()
2295 static sljit_s32 hardfloat_call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types) in hardfloat_call_with_args() argument
2316 FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VMOV_F32, in hardfloat_call_with_args()
2332 …FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VMOV_F32, SLJIT_F32_OP, (new_offset >> 1) + 1, (off… in hardfloat_call_with_args()
2346 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_call(struct sljit_compiler *compiler, sljit_… in sljit_emit_call() argument
2354 CHECK_PTR(check_sljit_emit_call(compiler, type, arg_types)); in sljit_emit_call()
2357 PTR_FAIL_IF(softfloat_call_with_args(compiler, arg_types, NULL)); in sljit_emit_call()
2361 compiler->skip_checks = 1; in sljit_emit_call()
2364 jump = sljit_emit_jump(compiler, type); in sljit_emit_call()
2367 PTR_FAIL_IF(softfloat_post_call_with_args(compiler, arg_types)); in sljit_emit_call()
2370 PTR_FAIL_IF(hardfloat_call_with_args(compiler, arg_types)); in sljit_emit_call()
2374 compiler->skip_checks = 1; in sljit_emit_call()
2377 return sljit_emit_jump(compiler, type); in sljit_emit_call()
2381 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compiler, sljit_s32 type… in sljit_emit_ijump() argument
2386 CHECK(check_sljit_emit_ijump(compiler, type, src, srcw)); in sljit_emit_ijump()
2394 return push_inst(compiler, (type <= SLJIT_JUMP ? BX : BLX) | RM(src)); in sljit_emit_ijump()
2398 FAIL_IF(emit_op_mem(compiler, WORD_SIZE | LOAD_DATA, TMP_REG1, src, srcw, TMP_REG1)); in sljit_emit_ijump()
2399 return push_inst(compiler, (type <= SLJIT_JUMP ? BX : BLX) | RM(TMP_REG1)); in sljit_emit_ijump()
2403 jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump)); in sljit_emit_ijump()
2405 set_jump(jump, compiler, JUMP_ADDR | ((type >= SLJIT_FAST_CALL) ? IS_BL : 0)); in sljit_emit_ijump()
2410 FAIL_IF(prepare_blx(compiler)); in sljit_emit_ijump()
2411 …FAIL_IF(push_inst_with_unique_literal(compiler, EMIT_DATA_TRANSFER(WORD_SIZE | LOAD_DATA, 1, type … in sljit_emit_ijump()
2413 FAIL_IF(emit_blx(compiler)); in sljit_emit_ijump()
2415 FAIL_IF(emit_imm(compiler, TMP_REG1, 0)); in sljit_emit_ijump()
2416 FAIL_IF(push_inst(compiler, (type <= SLJIT_JUMP ? BX : BLX) | RM(TMP_REG1))); in sljit_emit_ijump()
2418 jump->addr = compiler->size; in sljit_emit_ijump()
2422 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_icall() argument
2427 CHECK(check_sljit_emit_icall(compiler, type, arg_types, src, srcw)); in sljit_emit_icall()
2431 FAIL_IF(emit_op_mem(compiler, WORD_SIZE | LOAD_DATA, TMP_REG1, src, srcw, TMP_REG1)); in sljit_emit_icall()
2435 FAIL_IF(softfloat_call_with_args(compiler, arg_types, &src)); in sljit_emit_icall()
2439 compiler->skip_checks = 1; in sljit_emit_icall()
2442 FAIL_IF(sljit_emit_ijump(compiler, type, src, srcw)); in sljit_emit_icall()
2444 return softfloat_post_call_with_args(compiler, arg_types); in sljit_emit_icall()
2446 FAIL_IF(hardfloat_call_with_args(compiler, arg_types)); in sljit_emit_icall()
2450 compiler->skip_checks = 1; in sljit_emit_icall()
2453 return sljit_emit_ijump(compiler, type, src, srcw); in sljit_emit_icall()
2457 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_s32 o… in sljit_emit_op_flags() argument
2465 CHECK(check_sljit_emit_op_flags(compiler, op, dst, dstw, type)); in sljit_emit_op_flags()
2473 FAIL_IF(push_inst(compiler, MOV | RD(dst_reg) | SRC2_IMM | 0)); in sljit_emit_op_flags()
2474 FAIL_IF(push_inst(compiler, ((MOV | RD(dst_reg) | SRC2_IMM | 1) & ~COND_MASK) | cc)); in sljit_emit_op_flags()
2476 return emit_op_mem(compiler, WORD_SIZE, TMP_REG1, dst, dstw, TMP_REG2); in sljit_emit_op_flags()
2483 FAIL_IF(emit_op_mem(compiler, WORD_SIZE | LOAD_DATA, TMP_REG1, dst, dstw, TMP_REG2)); in sljit_emit_op_flags()
2485 FAIL_IF(push_inst(compiler, ((ins | RD(dst_reg) | RN(dst_reg) | SRC2_IMM | 1) & ~COND_MASK) | cc)); in sljit_emit_op_flags()
2488 …FAIL_IF(push_inst(compiler, ((ins | RD(dst_reg) | RN(dst_reg) | SRC2_IMM | 0) & ~COND_MASK) | (cc … in sljit_emit_op_flags()
2491 FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG1, dst, dstw, TMP_REG2)); in sljit_emit_op_flags()
2494 return push_inst(compiler, MOV | SET_FLAGS | RD(TMP_REG2) | RM(dst_reg)); in sljit_emit_op_flags()
2498 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_cmov() argument
2505 CHECK(check_sljit_emit_cmov(compiler, type, dst_reg, src, srcw)); in sljit_emit_cmov()
2514 return push_inst(compiler, ((MOV | RD(dst_reg) | tmp) & ~COND_MASK) | cc); in sljit_emit_cmov()
2518 return push_inst(compiler, ((MVN | RD(dst_reg) | tmp) & ~COND_MASK) | cc); in sljit_emit_cmov()
2522 …FAIL_IF(push_inst(compiler, (MOVW & ~COND_MASK) | cc | RD(dst_reg) | ((tmp << 4) & 0xf0000) | (tmp… in sljit_emit_cmov()
2525 …return push_inst(compiler, (MOVT & ~COND_MASK) | cc | RD(dst_reg) | ((tmp >> 12) & 0xf0000) | ((tm… in sljit_emit_cmov()
2527 FAIL_IF(load_immediate(compiler, TMP_REG1, srcw)); in sljit_emit_cmov()
2532 return push_inst(compiler, ((MOV | RD(dst_reg) | RM(src)) & ~COND_MASK) | cc); in sljit_emit_cmov()
2535 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_mem() argument
2543 CHECK(check_sljit_emit_mem(compiler, type, reg, mem, memw)); in sljit_emit_mem()
2612 return push_inst(compiler, inst); in sljit_emit_mem()
2628 return push_inst(compiler, inst | memw); in sljit_emit_mem()
2636 return push_inst(compiler, inst | TYPE2_TRANSFER_IMM(memw)); in sljit_emit_mem()
2639 SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compiler *compiler, slji… in sljit_emit_const() argument
2645 CHECK_PTR(check_sljit_emit_const(compiler, dst, dstw, init_value)); in sljit_emit_const()
2648 const_ = (struct sljit_const*)ensure_abuf(compiler, sizeof(struct sljit_const)); in sljit_emit_const()
2654 …PTR_FAIL_IF(push_inst_with_unique_literal(compiler, EMIT_DATA_TRANSFER(WORD_SIZE | LOAD_DATA, 1, r… in sljit_emit_const()
2655 compiler->patches++; in sljit_emit_const()
2657 PTR_FAIL_IF(emit_imm(compiler, reg, init_value)); in sljit_emit_const()
2659 set_const(const_, compiler); in sljit_emit_const()
2662 PTR_FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG2, dst, dstw, TMP_REG1)); in sljit_emit_const()