Lines Matching refs:compiler
46 if (SLJIT_UNLIKELY(compiler->error)) \
47 return compiler->error; \
52 if (SLJIT_UNLIKELY(compiler->error)) \
59 return compiler->error; \
71 compiler->error = SLJIT_ERR_ALLOC_FAILED; \
79 compiler->error = SLJIT_ERR_ALLOC_FAILED; \
87 compiler->error = SLJIT_ERR_EX_ALLOC_FAILED; \
305 compiler->error = SLJIT_ERR_BAD_ARGUMENT; \
313 compiler->error = SLJIT_ERR_BAD_ARGUMENT; \
369 …struct sljit_compiler *compiler = (struct sljit_compiler*)SLJIT_MALLOC(sizeof(struct sljit_compile… in sljit_create_compiler() local
370 if (!compiler) in sljit_create_compiler()
372 SLJIT_ZEROMEM(compiler, sizeof(struct sljit_compiler)); in sljit_create_compiler()
391 compiler->error = SLJIT_SUCCESS; in sljit_create_compiler()
393 compiler->allocator_data = allocator_data; in sljit_create_compiler()
394 compiler->buf = (struct sljit_memory_fragment*)SLJIT_MALLOC(BUF_SIZE, allocator_data); in sljit_create_compiler()
395 compiler->abuf = (struct sljit_memory_fragment*)SLJIT_MALLOC(ABUF_SIZE, allocator_data); in sljit_create_compiler()
397 if (!compiler->buf || !compiler->abuf) { in sljit_create_compiler()
398 if (compiler->buf) in sljit_create_compiler()
399 SLJIT_FREE(compiler->buf, allocator_data); in sljit_create_compiler()
400 if (compiler->abuf) in sljit_create_compiler()
401 SLJIT_FREE(compiler->abuf, allocator_data); in sljit_create_compiler()
402 SLJIT_FREE(compiler, allocator_data); in sljit_create_compiler()
406 compiler->buf->next = NULL; in sljit_create_compiler()
407 compiler->buf->used_size = 0; in sljit_create_compiler()
408 compiler->abuf->next = NULL; in sljit_create_compiler()
409 compiler->abuf->used_size = 0; in sljit_create_compiler()
411 compiler->scratches = -1; in sljit_create_compiler()
412 compiler->saveds = -1; in sljit_create_compiler()
413 compiler->fscratches = -1; in sljit_create_compiler()
414 compiler->fsaveds = -1; in sljit_create_compiler()
415 compiler->local_size = -1; in sljit_create_compiler()
418 compiler->args = -1; in sljit_create_compiler()
422 compiler->cpool = (sljit_uw*)SLJIT_MALLOC(CPOOL_SIZE * sizeof(sljit_uw) in sljit_create_compiler()
424 if (!compiler->cpool) { in sljit_create_compiler()
425 SLJIT_FREE(compiler->buf, allocator_data); in sljit_create_compiler()
426 SLJIT_FREE(compiler->abuf, allocator_data); in sljit_create_compiler()
427 SLJIT_FREE(compiler, allocator_data); in sljit_create_compiler()
430 compiler->cpool_unique = (sljit_u8*)(compiler->cpool + CPOOL_SIZE); in sljit_create_compiler()
431 compiler->cpool_diff = 0xffffffff; in sljit_create_compiler()
435 compiler->delay_slot = UNMOVABLE_INS; in sljit_create_compiler()
439 compiler->delay_slot = UNMOVABLE_INS; in sljit_create_compiler()
449 return compiler; in sljit_create_compiler()
452 SLJIT_API_FUNC_ATTRIBUTE void sljit_free_compiler(struct sljit_compiler *compiler) in sljit_free_compiler() argument
456 void *allocator_data = compiler->allocator_data; in sljit_free_compiler()
459 buf = compiler->buf; in sljit_free_compiler()
466 buf = compiler->abuf; in sljit_free_compiler()
474 SLJIT_FREE(compiler->cpool, allocator_data); in sljit_free_compiler()
476 SLJIT_FREE(compiler, allocator_data); in sljit_free_compiler()
479 SLJIT_API_FUNC_ATTRIBUTE void sljit_set_compiler_memory_error(struct sljit_compiler *compiler) in sljit_set_compiler_memory_error() argument
481 if (compiler->error == SLJIT_SUCCESS) in sljit_set_compiler_memory_error()
482 compiler->error = SLJIT_ERR_ALLOC_FAILED; in sljit_set_compiler_memory_error()
523 SLJIT_API_FUNC_ATTRIBUTE void sljit_set_current_flags(struct sljit_compiler *compiler, sljit_s32 cu… in sljit_set_current_flags() argument
525 SLJIT_UNUSED_ARG(compiler); in sljit_set_current_flags()
530 …compiler->last_flags = GET_FLAG_TYPE(current_flags) | (current_flags & (SLJIT_I32_OP | SLJIT_SET_Z… in sljit_set_current_flags()
539 static void* ensure_buf(struct sljit_compiler *compiler, sljit_uw size) in ensure_buf() argument
545 …if (compiler->buf->used_size + size <= (BUF_SIZE - (sljit_uw)SLJIT_OFFSETOF(struct sljit_memory_fr… in ensure_buf()
546 ret = compiler->buf->memory + compiler->buf->used_size; in ensure_buf()
547 compiler->buf->used_size += size; in ensure_buf()
550 new_frag = (struct sljit_memory_fragment*)SLJIT_MALLOC(BUF_SIZE, compiler->allocator_data); in ensure_buf()
552 new_frag->next = compiler->buf; in ensure_buf()
553 compiler->buf = new_frag; in ensure_buf()
558 static void* ensure_abuf(struct sljit_compiler *compiler, sljit_uw size) in ensure_abuf() argument
564 …if (compiler->abuf->used_size + size <= (ABUF_SIZE - (sljit_uw)SLJIT_OFFSETOF(struct sljit_memory_… in ensure_abuf()
565 ret = compiler->abuf->memory + compiler->abuf->used_size; in ensure_abuf()
566 compiler->abuf->used_size += size; in ensure_abuf()
569 new_frag = (struct sljit_memory_fragment*)SLJIT_MALLOC(ABUF_SIZE, compiler->allocator_data); in ensure_abuf()
571 new_frag->next = compiler->abuf; in ensure_abuf()
572 compiler->abuf = new_frag; in ensure_abuf()
577 SLJIT_API_FUNC_ATTRIBUTE void* sljit_alloc_memory(struct sljit_compiler *compiler, sljit_s32 size) in sljit_alloc_memory() argument
590 return ensure_abuf(compiler, size); in sljit_alloc_memory()
593 static SLJIT_INLINE void reverse_buf(struct sljit_compiler *compiler) in reverse_buf() argument
595 struct sljit_memory_fragment *buf = compiler->buf; in reverse_buf()
606 compiler->buf = prev; in reverse_buf()
622 static SLJIT_INLINE void set_emit_enter(struct sljit_compiler *compiler, in set_emit_enter() argument
629 compiler->options = options; in set_emit_enter()
630 compiler->scratches = scratches; in set_emit_enter()
631 compiler->saveds = saveds; in set_emit_enter()
632 compiler->fscratches = fscratches; in set_emit_enter()
633 compiler->fsaveds = fsaveds; in set_emit_enter()
635 compiler->logical_local_size = local_size; in set_emit_enter()
639 static SLJIT_INLINE void set_set_context(struct sljit_compiler *compiler, in set_set_context() argument
646 compiler->options = options; in set_set_context()
647 compiler->scratches = scratches; in set_set_context()
648 compiler->saveds = saveds; in set_set_context()
649 compiler->fscratches = fscratches; in set_set_context()
650 compiler->fsaveds = fsaveds; in set_set_context()
652 compiler->logical_local_size = local_size; in set_set_context()
656 static SLJIT_INLINE void set_label(struct sljit_label *label, struct sljit_compiler *compiler) in set_label() argument
659 label->size = compiler->size; in set_label()
660 if (compiler->last_label) in set_label()
661 compiler->last_label->next = label; in set_label()
663 compiler->labels = label; in set_label()
664 compiler->last_label = label; in set_label()
667 static SLJIT_INLINE void set_jump(struct sljit_jump *jump, struct sljit_compiler *compiler, sljit_s… in set_jump() argument
671 if (compiler->last_jump) in set_jump()
672 compiler->last_jump->next = jump; in set_jump()
674 compiler->jumps = jump; in set_jump()
675 compiler->last_jump = jump; in set_jump()
678 static SLJIT_INLINE void set_const(struct sljit_const *const_, struct sljit_compiler *compiler) in set_const() argument
681 const_->addr = compiler->size; in set_const()
682 if (compiler->last_const) in set_const()
683 compiler->last_const->next = const_; in set_const()
685 compiler->consts = const_; in set_const()
686 compiler->last_const = const_; in set_const()
695 (((r) >= SLJIT_R0 && (r) < (SLJIT_R0 + compiler->scratches)) \
696 || ((r) > (SLJIT_S0 - compiler->saveds) && (r) <= SLJIT_S0))
699 (((fr) >= SLJIT_FR0 && (fr) < (SLJIT_FR0 + compiler->fscratches)) \
700 || ((fr) > (SLJIT_FS0 - compiler->fsaveds) && (fr) <= SLJIT_FS0))
708 static sljit_s32 function_check_src_mem(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) in function_check_src_mem() argument
710 if (compiler->scratches == -1 || compiler->saveds == -1) in function_check_src_mem()
740 CHECK_ARGUMENT(function_check_src_mem(compiler, p, i));
742 static sljit_s32 function_check_src(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) in function_check_src() argument
744 if (compiler->scratches == -1 || compiler->saveds == -1) in function_check_src()
754 return (i >= 0 && i < compiler->logical_local_size); in function_check_src()
756 return function_check_src_mem(compiler, p, i); in function_check_src()
760 CHECK_ARGUMENT(function_check_src(compiler, p, i));
762 static sljit_s32 function_check_dst(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i, sljit… in function_check_dst() argument
764 if (compiler->scratches == -1 || compiler->saveds == -1) in function_check_dst()
771 return (i >= 0 && i < compiler->logical_local_size); in function_check_dst()
773 return function_check_src_mem(compiler, p, i); in function_check_dst()
777 CHECK_ARGUMENT(function_check_dst(compiler, p, i, unused));
779 static sljit_s32 function_fcheck(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) in function_fcheck() argument
781 if (compiler->scratches == -1 || compiler->saveds == -1) in function_fcheck()
788 return (i >= 0 && i < compiler->logical_local_size); in function_fcheck()
790 return function_check_src_mem(compiler, p, i); in function_fcheck()
794 CHECK_ARGUMENT(function_fcheck(compiler, p, i));
800 SLJIT_API_FUNC_ATTRIBUTE void sljit_compiler_verbose(struct sljit_compiler *compiler, FILE* verbose) in sljit_compiler_verbose() argument
802 compiler->verbose = verbose; in sljit_compiler_verbose()
815 static void sljit_verbose_reg(struct sljit_compiler *compiler, sljit_s32 r) in sljit_verbose_reg() argument
817 if (r < (SLJIT_R0 + compiler->scratches)) in sljit_verbose_reg()
818 fprintf(compiler->verbose, "r%d", r - SLJIT_R0); in sljit_verbose_reg()
820 fprintf(compiler->verbose, "s%d", SLJIT_NUMBER_OF_REGISTERS - r); in sljit_verbose_reg()
822 fprintf(compiler->verbose, "sp"); in sljit_verbose_reg()
825 static void sljit_verbose_freg(struct sljit_compiler *compiler, sljit_s32 r) in sljit_verbose_freg() argument
827 if (r < (SLJIT_FR0 + compiler->fscratches)) in sljit_verbose_freg()
828 fprintf(compiler->verbose, "fr%d", r - SLJIT_FR0); in sljit_verbose_freg()
830 fprintf(compiler->verbose, "fs%d", SLJIT_NUMBER_OF_FLOAT_REGISTERS - r); in sljit_verbose_freg()
833 static void sljit_verbose_param(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) in sljit_verbose_param() argument
836 fprintf(compiler->verbose, "#%" SLJIT_PRINT_D "d", (i)); in sljit_verbose_param()
839 fputc('[', compiler->verbose); in sljit_verbose_param()
840 sljit_verbose_reg(compiler, (p) & REG_MASK); in sljit_verbose_param()
842 fprintf(compiler->verbose, " + "); in sljit_verbose_param()
843 sljit_verbose_reg(compiler, OFFS_REG(p)); in sljit_verbose_param()
845 fprintf(compiler->verbose, " * %d", 1 << (i)); in sljit_verbose_param()
848 fprintf(compiler->verbose, " + %" SLJIT_PRINT_D "d", (i)); in sljit_verbose_param()
849 fputc(']', compiler->verbose); in sljit_verbose_param()
852 fprintf(compiler->verbose, "[#%" SLJIT_PRINT_D "d]", (i)); in sljit_verbose_param()
854 sljit_verbose_reg(compiler, p); in sljit_verbose_param()
856 fprintf(compiler->verbose, "unused"); in sljit_verbose_param()
859 static void sljit_verbose_fparam(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) in sljit_verbose_fparam() argument
863 fputc('[', compiler->verbose); in sljit_verbose_fparam()
864 sljit_verbose_reg(compiler, (p) & REG_MASK); in sljit_verbose_fparam()
866 fprintf(compiler->verbose, " + "); in sljit_verbose_fparam()
867 sljit_verbose_reg(compiler, OFFS_REG(p)); in sljit_verbose_fparam()
869 fprintf(compiler->verbose, "%d", 1 << (i)); in sljit_verbose_fparam()
872 fprintf(compiler->verbose, " + %" SLJIT_PRINT_D "d", (i)); in sljit_verbose_fparam()
873 fputc(']', compiler->verbose); in sljit_verbose_fparam()
876 fprintf(compiler->verbose, "[#%" SLJIT_PRINT_D "d]", (i)); in sljit_verbose_fparam()
879 sljit_verbose_freg(compiler, p); in sljit_verbose_fparam()
945 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_generate_code(struct sljit_compiler *compiler) in check_sljit_generate_code() argument
951 SLJIT_UNUSED_ARG(compiler); in check_sljit_generate_code()
954 CHECK_ARGUMENT(compiler->size > 0); in check_sljit_generate_code()
955 jump = compiler->jumps; in check_sljit_generate_code()
965 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_enter(struct sljit_compiler *compiler, in check_sljit_emit_enter() argument
973 SLJIT_UNUSED_ARG(compiler); in check_sljit_emit_enter()
996 compiler->last_flags = 0; in check_sljit_emit_enter()
999 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_enter()
1000 …fprintf(compiler->verbose, " enter options:%s args[", (options & SLJIT_F64_ALIGNMENT) ? "f64_alig… in check_sljit_emit_enter()
1004 fprintf(compiler->verbose, "%s", call_arg_names[arg_types & SLJIT_DEF_MASK]); in check_sljit_emit_enter()
1007 fprintf(compiler->verbose, ","); in check_sljit_emit_enter()
1010 fprintf(compiler->verbose, "] scratches:%d saveds:%d fscratches:%d fsaveds:%d local_size:%d\n", in check_sljit_emit_enter()
1017 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_set_context(struct sljit_compiler *compiler, in check_sljit_set_context() argument
1025 SLJIT_UNUSED_ARG(compiler); in check_sljit_set_context()
1047 compiler->last_flags = 0; in check_sljit_set_context()
1050 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_set_context()
1051 …fprintf(compiler->verbose, " set_context options:%s args[", (options & SLJIT_F64_ALIGNMENT) ? "f6… in check_sljit_set_context()
1055 fprintf(compiler->verbose, "%s", call_arg_names[arg_types & SLJIT_DEF_MASK]); in check_sljit_set_context()
1058 fprintf(compiler->verbose, ","); in check_sljit_set_context()
1061 fprintf(compiler->verbose, "] scratches:%d saveds:%d fscratches:%d fsaveds:%d local_size:%d\n", in check_sljit_set_context()
1068 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_return(struct sljit_compiler *compiler, slji… in check_sljit_emit_return() argument
1071 CHECK_ARGUMENT(compiler->scratches >= 0); in check_sljit_emit_return()
1078 compiler->last_flags = 0; in check_sljit_emit_return()
1081 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_return()
1083 fprintf(compiler->verbose, " return\n"); in check_sljit_emit_return()
1085 fprintf(compiler->verbose, " return%s ", op1_names[op - SLJIT_OP1_BASE]); in check_sljit_emit_return()
1086 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_return()
1087 fprintf(compiler->verbose, "\n"); in check_sljit_emit_return()
1094 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fast_enter(struct sljit_compiler *compiler, … in check_sljit_emit_fast_enter() argument
1098 compiler->last_flags = 0; in check_sljit_emit_fast_enter()
1101 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fast_enter()
1102 fprintf(compiler->verbose, " fast_enter "); in check_sljit_emit_fast_enter()
1103 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_fast_enter()
1104 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fast_enter()
1110 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fast_return(struct sljit_compiler *compiler,… in check_sljit_emit_fast_return() argument
1115 compiler->last_flags = 0; in check_sljit_emit_fast_return()
1118 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fast_return()
1119 fprintf(compiler->verbose, " fast_return "); in check_sljit_emit_fast_return()
1120 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_fast_return()
1121 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fast_return()
1127 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op0(struct sljit_compiler *compiler, sljit_s… in check_sljit_emit_op0() argument
1132 CHECK_ARGUMENT(op < SLJIT_LMUL_UW || compiler->scratches >= 2); in check_sljit_emit_op0()
1134 compiler->last_flags = 0; in check_sljit_emit_op0()
1137 if (SLJIT_UNLIKELY(!!compiler->verbose)) in check_sljit_emit_op0()
1139 fprintf(compiler->verbose, " %s", op0_names[GET_OPCODE(op) - SLJIT_OP0_BASE]); in check_sljit_emit_op0()
1141 fprintf(compiler->verbose, (op & SLJIT_I32_OP) ? "32" : "w"); in check_sljit_emit_op0()
1143 fprintf(compiler->verbose, "\n"); in check_sljit_emit_op0()
1149 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op1(struct sljit_compiler *compiler, sljit_s… in check_sljit_emit_op1() argument
1153 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_op1()
1154 compiler->skip_checks = 0; in check_sljit_emit_op1()
1187 compiler->last_flags = GET_FLAG_TYPE(op) | (op & (SLJIT_I32_OP | SLJIT_SET_Z)); in check_sljit_emit_op1()
1191 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_op1()
1194 fprintf(compiler->verbose, " mov%s%s ", !(op & SLJIT_I32_OP) ? "" : "32", in check_sljit_emit_op1()
1199 …fprintf(compiler->verbose, " %s%s%s%s%s ", op1_names[GET_OPCODE(op) - SLJIT_OP1_BASE], !(op & SLJ… in check_sljit_emit_op1()
1204 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_op1()
1205 fprintf(compiler->verbose, ", "); in check_sljit_emit_op1()
1206 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_op1()
1207 fprintf(compiler->verbose, "\n"); in check_sljit_emit_op1()
1213 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op2(struct sljit_compiler *compiler, sljit_s… in check_sljit_emit_op2() argument
1218 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_op2()
1219 compiler->skip_checks = 0; in check_sljit_emit_op2()
1254 CHECK_ARGUMENT((compiler->last_flags & 0xff) == GET_FLAG_TYPE(SLJIT_SET_CARRY)); in check_sljit_emit_op2()
1255 CHECK_ARGUMENT((op & SLJIT_I32_OP) == (compiler->last_flags & SLJIT_I32_OP)); in check_sljit_emit_op2()
1265 compiler->last_flags = GET_FLAG_TYPE(op) | (op & (SLJIT_I32_OP | SLJIT_SET_Z)); in check_sljit_emit_op2()
1268 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_op2()
1269 …fprintf(compiler->verbose, " %s%s%s%s%s ", op2_names[GET_OPCODE(op) - SLJIT_OP2_BASE], !(op & SLJ… in check_sljit_emit_op2()
1272 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_op2()
1273 fprintf(compiler->verbose, ", "); in check_sljit_emit_op2()
1274 sljit_verbose_param(compiler, src1, src1w); in check_sljit_emit_op2()
1275 fprintf(compiler->verbose, ", "); in check_sljit_emit_op2()
1276 sljit_verbose_param(compiler, src2, src2w); in check_sljit_emit_op2()
1277 fprintf(compiler->verbose, "\n"); in check_sljit_emit_op2()
1301 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op_custom(struct sljit_compiler *compiler, in check_sljit_emit_op_custom() argument
1308 SLJIT_UNUSED_ARG(compiler); in check_sljit_emit_op_custom()
1322 compiler->last_flags = 0; in check_sljit_emit_op_custom()
1325 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_op_custom()
1326 fprintf(compiler->verbose, " op_custom"); in check_sljit_emit_op_custom()
1328 fprintf(compiler->verbose, " 0x%x", ((sljit_u8*)instruction)[i]); in check_sljit_emit_op_custom()
1329 fprintf(compiler->verbose, "\n"); in check_sljit_emit_op_custom()
1335 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop1(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_fop1() argument
1339 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_fop1()
1340 compiler->skip_checks = 0; in check_sljit_emit_fop1()
1352 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fop1()
1354 fprintf(compiler->verbose, " %s%s ", fop1_names[SLJIT_CONV_F64_FROM_F32 - SLJIT_FOP1_BASE], in check_sljit_emit_fop1()
1357 fprintf(compiler->verbose, " %s%s ", fop1_names[GET_OPCODE(op) - SLJIT_FOP1_BASE], in check_sljit_emit_fop1()
1360 sljit_verbose_fparam(compiler, dst, dstw); in check_sljit_emit_fop1()
1361 fprintf(compiler->verbose, ", "); in check_sljit_emit_fop1()
1362 sljit_verbose_fparam(compiler, src, srcw); in check_sljit_emit_fop1()
1363 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fop1()
1369 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop1_cmp(struct sljit_compiler *compiler, sl… in check_sljit_emit_fop1_cmp() argument
1374 compiler->last_flags = GET_FLAG_TYPE(op) | (op & (SLJIT_I32_OP | SLJIT_SET_Z)); in check_sljit_emit_fop1_cmp()
1377 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_fop1_cmp()
1378 compiler->skip_checks = 0; in check_sljit_emit_fop1_cmp()
1392 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fop1_cmp()
1393 …fprintf(compiler->verbose, " %s%s", fop1_names[SLJIT_CMP_F64 - SLJIT_FOP1_BASE], (op & SLJIT_F32_… in check_sljit_emit_fop1_cmp()
1395 fprintf(compiler->verbose, ".%s_f", jump_names[GET_FLAG_TYPE(op)]); in check_sljit_emit_fop1_cmp()
1397 fprintf(compiler->verbose, " "); in check_sljit_emit_fop1_cmp()
1398 sljit_verbose_fparam(compiler, src1, src1w); in check_sljit_emit_fop1_cmp()
1399 fprintf(compiler->verbose, ", "); in check_sljit_emit_fop1_cmp()
1400 sljit_verbose_fparam(compiler, src2, src2w); in check_sljit_emit_fop1_cmp()
1401 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fop1_cmp()
1407 …K_RETURN_TYPE check_sljit_emit_fop1_conv_sw_from_f64(struct sljit_compiler *compiler, sljit_s32 op, in check_sljit_emit_fop1_conv_sw_from_f64() argument
1411 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_fop1_conv_sw_from_f64()
1412 compiler->skip_checks = 0; in check_sljit_emit_fop1_conv_sw_from_f64()
1424 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fop1_conv_sw_from_f64()
1425 fprintf(compiler->verbose, " %s%s.from%s ", fop1_names[GET_OPCODE(op) - SLJIT_FOP1_BASE], in check_sljit_emit_fop1_conv_sw_from_f64()
1428 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_fop1_conv_sw_from_f64()
1429 fprintf(compiler->verbose, ", "); in check_sljit_emit_fop1_conv_sw_from_f64()
1430 sljit_verbose_fparam(compiler, src, srcw); in check_sljit_emit_fop1_conv_sw_from_f64()
1431 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fop1_conv_sw_from_f64()
1437 …K_RETURN_TYPE check_sljit_emit_fop1_conv_f64_from_sw(struct sljit_compiler *compiler, sljit_s32 op, in check_sljit_emit_fop1_conv_f64_from_sw() argument
1441 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_fop1_conv_f64_from_sw()
1442 compiler->skip_checks = 0; in check_sljit_emit_fop1_conv_f64_from_sw()
1454 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fop1_conv_f64_from_sw()
1455 fprintf(compiler->verbose, " %s%s.from%s ", fop1_names[GET_OPCODE(op) - SLJIT_FOP1_BASE], in check_sljit_emit_fop1_conv_f64_from_sw()
1458 sljit_verbose_fparam(compiler, dst, dstw); in check_sljit_emit_fop1_conv_f64_from_sw()
1459 fprintf(compiler->verbose, ", "); in check_sljit_emit_fop1_conv_f64_from_sw()
1460 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_fop1_conv_f64_from_sw()
1461 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fop1_conv_f64_from_sw()
1467 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop2(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_fop2() argument
1481 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fop2()
1482 …fprintf(compiler->verbose, " %s%s ", fop2_names[GET_OPCODE(op) - SLJIT_FOP2_BASE], (op & SLJIT_F3… in check_sljit_emit_fop2()
1483 sljit_verbose_fparam(compiler, dst, dstw); in check_sljit_emit_fop2()
1484 fprintf(compiler->verbose, ", "); in check_sljit_emit_fop2()
1485 sljit_verbose_fparam(compiler, src1, src1w); in check_sljit_emit_fop2()
1486 fprintf(compiler->verbose, ", "); in check_sljit_emit_fop2()
1487 sljit_verbose_fparam(compiler, src2, src2w); in check_sljit_emit_fop2()
1488 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fop2()
1494 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_label(struct sljit_compiler *compiler) in check_sljit_emit_label() argument
1496 SLJIT_UNUSED_ARG(compiler); in check_sljit_emit_label()
1498 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_label()
1499 compiler->skip_checks = 0; in check_sljit_emit_label()
1504 compiler->last_flags = 0; in check_sljit_emit_label()
1508 if (SLJIT_UNLIKELY(!!compiler->verbose)) in check_sljit_emit_label()
1509 fprintf(compiler->verbose, "label:\n"); in check_sljit_emit_label()
1514 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_jump(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_jump() argument
1516 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_jump()
1517 compiler->skip_checks = 0; in check_sljit_emit_jump()
1529 CHECK_ARGUMENT(compiler->last_flags & SLJIT_SET_Z); in check_sljit_emit_jump()
1531 CHECK_ARGUMENT((type & 0xff) == (compiler->last_flags & 0xff) in check_sljit_emit_jump()
1532 || ((type & 0xff) == SLJIT_NOT_OVERFLOW && (compiler->last_flags & 0xff) == SLJIT_OVERFLOW) in check_sljit_emit_jump()
1533 …|| ((type & 0xff) == SLJIT_MUL_NOT_OVERFLOW && (compiler->last_flags & 0xff) == SLJIT_MUL_OVERFLOW… in check_sljit_emit_jump()
1534 CHECK_ARGUMENT((type & SLJIT_I32_OP) == (compiler->last_flags & SLJIT_I32_OP)); in check_sljit_emit_jump()
1538 if (SLJIT_UNLIKELY(!!compiler->verbose)) in check_sljit_emit_jump()
1539 fprintf(compiler->verbose, " jump%s %s%s\n", !(type & SLJIT_REWRITABLE_JUMP) ? "" : ".r", in check_sljit_emit_jump()
1545 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_call(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_call() argument
1570 CHECK_ARGUMENT(compiler->fscratches > 0); in check_sljit_emit_call()
1572 CHECK_ARGUMENT(compiler->scratches > 0); in check_sljit_emit_call()
1577 CHECK_ARGUMENT(compiler->scratches >= scratches); in check_sljit_emit_call()
1578 CHECK_ARGUMENT(compiler->fscratches >= fscratches); in check_sljit_emit_call()
1582 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_call()
1583 fprintf(compiler->verbose, " %s%s ret[%s", jump_names[type & 0xff], in check_sljit_emit_call()
1588 fprintf(compiler->verbose, "], args["); in check_sljit_emit_call()
1590 fprintf(compiler->verbose, "%s", call_arg_names[arg_types & SLJIT_DEF_MASK]); in check_sljit_emit_call()
1593 fprintf(compiler->verbose, ","); in check_sljit_emit_call()
1596 fprintf(compiler->verbose, "]\n"); in check_sljit_emit_call()
1602 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_cmp(struct sljit_compiler *compiler, sljit_s… in check_sljit_emit_cmp() argument
1611 compiler->last_flags = 0; in check_sljit_emit_cmp()
1614 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_cmp()
1615 fprintf(compiler->verbose, " cmp%s %s%s, ", !(type & SLJIT_REWRITABLE_JUMP) ? "" : ".r", in check_sljit_emit_cmp()
1617 sljit_verbose_param(compiler, src1, src1w); in check_sljit_emit_cmp()
1618 fprintf(compiler->verbose, ", "); in check_sljit_emit_cmp()
1619 sljit_verbose_param(compiler, src2, src2w); in check_sljit_emit_cmp()
1620 fprintf(compiler->verbose, "\n"); in check_sljit_emit_cmp()
1626 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fcmp(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_fcmp() argument
1636 compiler->last_flags = 0; in check_sljit_emit_fcmp()
1639 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fcmp()
1640 fprintf(compiler->verbose, " fcmp%s %s%s, ", !(type & SLJIT_REWRITABLE_JUMP) ? "" : ".r", in check_sljit_emit_fcmp()
1642 sljit_verbose_fparam(compiler, src1, src1w); in check_sljit_emit_fcmp()
1643 fprintf(compiler->verbose, ", "); in check_sljit_emit_fcmp()
1644 sljit_verbose_fparam(compiler, src2, src2w); in check_sljit_emit_fcmp()
1645 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fcmp()
1651 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_ijump(struct sljit_compiler *compiler, sljit… in check_sljit_emit_ijump() argument
1654 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_ijump()
1655 compiler->skip_checks = 0; in check_sljit_emit_ijump()
1664 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_ijump()
1665 fprintf(compiler->verbose, " ijump.%s ", jump_names[type]); in check_sljit_emit_ijump()
1666 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_ijump()
1667 fprintf(compiler->verbose, "\n"); in check_sljit_emit_ijump()
1673 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_icall(struct sljit_compiler *compiler, sljit… in check_sljit_emit_icall() argument
1699 CHECK_ARGUMENT(compiler->fscratches > 0); in check_sljit_emit_icall()
1701 CHECK_ARGUMENT(compiler->scratches > 0); in check_sljit_emit_icall()
1706 CHECK_ARGUMENT(compiler->scratches >= scratches); in check_sljit_emit_icall()
1707 CHECK_ARGUMENT(compiler->fscratches >= fscratches); in check_sljit_emit_icall()
1711 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_icall()
1712 fprintf(compiler->verbose, " i%s%s ret[%s", jump_names[type & 0xff], in check_sljit_emit_icall()
1717 fprintf(compiler->verbose, "], args["); in check_sljit_emit_icall()
1719 fprintf(compiler->verbose, "%s", call_arg_names[arg_types & SLJIT_DEF_MASK]); in check_sljit_emit_icall()
1722 fprintf(compiler->verbose, ","); in check_sljit_emit_icall()
1725 fprintf(compiler->verbose, "], "); in check_sljit_emit_icall()
1726 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_icall()
1727 fprintf(compiler->verbose, "\n"); in check_sljit_emit_icall()
1733 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op_flags(struct sljit_compiler *compiler, sl… in check_sljit_emit_op_flags() argument
1746 CHECK_ARGUMENT(compiler->last_flags & SLJIT_SET_Z); in check_sljit_emit_op_flags()
1748 CHECK_ARGUMENT((type & 0xff) == (compiler->last_flags & 0xff) in check_sljit_emit_op_flags()
1749 || ((type & 0xff) == SLJIT_NOT_OVERFLOW && (compiler->last_flags & 0xff) == SLJIT_OVERFLOW) in check_sljit_emit_op_flags()
1750 …|| ((type & 0xff) == SLJIT_MUL_NOT_OVERFLOW && (compiler->last_flags & 0xff) == SLJIT_MUL_OVERFLOW… in check_sljit_emit_op_flags()
1755 compiler->last_flags = GET_FLAG_TYPE(op) | (op & (SLJIT_I32_OP | SLJIT_SET_Z)); in check_sljit_emit_op_flags()
1758 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_op_flags()
1759 fprintf(compiler->verbose, " flags%s %s%s, ", in check_sljit_emit_op_flags()
1763 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_op_flags()
1764 fprintf(compiler->verbose, ", %s%s\n", jump_names[type & 0xff], JUMP_POSTFIX(type)); in check_sljit_emit_op_flags()
1770 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_cmov(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_cmov() argument
1778 CHECK_ARGUMENT(compiler->scratches != -1 && compiler->saveds != -1); in check_sljit_emit_cmov()
1786 CHECK_ARGUMENT(compiler->last_flags & SLJIT_SET_Z); in check_sljit_emit_cmov()
1788 CHECK_ARGUMENT((type & 0xff) == (compiler->last_flags & 0xff) in check_sljit_emit_cmov()
1789 || ((type & 0xff) == SLJIT_NOT_OVERFLOW && (compiler->last_flags & 0xff) == SLJIT_OVERFLOW) in check_sljit_emit_cmov()
1790 …|| ((type & 0xff) == SLJIT_MUL_NOT_OVERFLOW && (compiler->last_flags & 0xff) == SLJIT_MUL_OVERFLOW… in check_sljit_emit_cmov()
1793 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_cmov()
1794 fprintf(compiler->verbose, " cmov%s %s%s, ", in check_sljit_emit_cmov()
1797 sljit_verbose_reg(compiler, dst_reg & ~SLJIT_I32_OP); in check_sljit_emit_cmov()
1798 fprintf(compiler->verbose, ", "); in check_sljit_emit_cmov()
1799 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_cmov()
1800 fprintf(compiler->verbose, "\n"); in check_sljit_emit_cmov()
1806 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_mem(struct sljit_compiler *compiler, sljit_s… in check_sljit_emit_mem() argument
1823 if (!(type & SLJIT_MEM_SUPP) && SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_mem()
1824 if (sljit_emit_mem(compiler, type | SLJIT_MEM_SUPP, reg, mem, memw) == SLJIT_ERR_UNSUPPORTED) in check_sljit_emit_mem()
1825 fprintf(compiler->verbose, " //"); in check_sljit_emit_mem()
1827 fprintf(compiler->verbose, " mem%s.%s%s%s ", in check_sljit_emit_mem()
1832 sljit_verbose_reg(compiler, reg); in check_sljit_emit_mem()
1833 fprintf(compiler->verbose, ", "); in check_sljit_emit_mem()
1834 sljit_verbose_param(compiler, mem, memw); in check_sljit_emit_mem()
1835 fprintf(compiler->verbose, "\n"); in check_sljit_emit_mem()
1841 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fmem(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_fmem() argument
1855 if (!(type & SLJIT_MEM_SUPP) && SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fmem()
1856 if (sljit_emit_fmem(compiler, type | SLJIT_MEM_SUPP, freg, mem, memw) == SLJIT_ERR_UNSUPPORTED) in check_sljit_emit_fmem()
1857 fprintf(compiler->verbose, " //"); in check_sljit_emit_fmem()
1859 fprintf(compiler->verbose, " fmem.%s%s%s ", in check_sljit_emit_fmem()
1863 sljit_verbose_freg(compiler, freg); in check_sljit_emit_fmem()
1864 fprintf(compiler->verbose, ", "); in check_sljit_emit_fmem()
1865 sljit_verbose_param(compiler, mem, memw); in check_sljit_emit_fmem()
1866 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fmem()
1872 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_get_local_base(struct sljit_compiler *compiler, s… in check_sljit_get_local_base() argument
1881 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_get_local_base()
1882 fprintf(compiler->verbose, " local_base "); in check_sljit_get_local_base()
1883 sljit_verbose_param(compiler, dst, dstw); in check_sljit_get_local_base()
1884 fprintf(compiler->verbose, ", #%" SLJIT_PRINT_D "d\n", offset); in check_sljit_get_local_base()
1890 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_const(struct sljit_compiler *compiler, sljit… in check_sljit_emit_const() argument
1898 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_const()
1899 fprintf(compiler->verbose, " const "); in check_sljit_emit_const()
1900 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_const()
1901 fprintf(compiler->verbose, ", #%" SLJIT_PRINT_D "d\n", init_value); in check_sljit_emit_const()
1909 #define SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw) \ argument
1914 CHECK(check_sljit_emit_fop1_cmp(compiler, op, dst, dstw, src, srcw)); \
1917 return sljit_emit_fop1_cmp(compiler, op, dst, dstw, src, srcw); \
1920 CHECK(check_sljit_emit_fop1_conv_sw_from_f64(compiler, op, dst, dstw, src, srcw)); \
1923 return sljit_emit_fop1_conv_sw_from_f64(compiler, op, dst, dstw, src, srcw); \
1925 CHECK(check_sljit_emit_fop1_conv_f64_from_sw(compiler, op, dst, dstw, src, srcw)); \
1928 return sljit_emit_fop1_conv_f64_from_sw(compiler, op, dst, dstw, src, srcw); \
1930 CHECK(check_sljit_emit_fop1(compiler, op, dst, dstw, src, srcw)); \
1934 static SLJIT_INLINE sljit_s32 emit_mov_before_return(struct sljit_compiler *compiler, sljit_s32 op,… in emit_mov_before_return() argument
1951 compiler->skip_checks = 1; in emit_mov_before_return()
1953 return sljit_emit_op1(compiler, op, SLJIT_RETURN_REG, 0, src, srcw); in emit_mov_before_return()
1961 static SLJIT_INLINE sljit_s32 sljit_emit_cmov_generic(struct sljit_compiler *compiler, sljit_s32 ty… in sljit_emit_cmov_generic() argument
1971 compiler->skip_checks = 1; in sljit_emit_cmov_generic()
1973 jump = sljit_emit_jump(compiler, type ^ 0x1); in sljit_emit_cmov_generic()
1978 compiler->skip_checks = 1; in sljit_emit_cmov_generic()
1980 FAIL_IF(sljit_emit_op1(compiler, op, dst_reg & ~SLJIT_I32_OP, 0, src, srcw)); in sljit_emit_cmov_generic()
1984 compiler->skip_checks = 1; in sljit_emit_cmov_generic()
1986 label = sljit_emit_label(compiler); in sljit_emit_cmov_generic()
2042 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp(struct sljit_compiler *compiler, sljit_s… in sljit_emit_cmp() argument
2051 CHECK_PTR(check_sljit_emit_cmp(compiler, type, src1, src1w, src2, src2w)); in sljit_emit_cmp()
2063 return emit_cmp_to0(compiler, type, src1, src1w); in sljit_emit_cmp()
2112 compiler->skip_checks = 1; in sljit_emit_cmp()
2114 PTR_FAIL_IF(sljit_emit_op2(compiler, SLJIT_SUB | flags | (type & SLJIT_I32_OP), in sljit_emit_cmp()
2118 compiler->skip_checks = 1; in sljit_emit_cmp()
2120 return sljit_emit_jump(compiler, condition | (type & (SLJIT_REWRITABLE_JUMP | SLJIT_I32_OP))); in sljit_emit_cmp()
2125 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_fcmp(struct sljit_compiler *compiler, sljit_… in sljit_emit_fcmp() argument
2130 CHECK_PTR(check_sljit_emit_fcmp(compiler, type, src1, src1w, src2, src2w)); in sljit_emit_fcmp()
2134 compiler->skip_checks = 1; in sljit_emit_fcmp()
2136 …sljit_emit_fop1(compiler, SLJIT_CMP_F64 | ((type & 0xff) << VARIABLE_FLAG_SHIFT) | (type & SLJIT_I… in sljit_emit_fcmp()
2140 compiler->skip_checks = 1; in sljit_emit_fcmp()
2142 return sljit_emit_jump(compiler, type); in sljit_emit_fcmp()
2149 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_mem() argument
2153 SLJIT_UNUSED_ARG(compiler); in sljit_emit_mem()
2160 CHECK(check_sljit_emit_mem(compiler, type, reg, mem, memw)); in sljit_emit_mem()
2170 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fmem(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_fmem() argument
2174 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fmem()
2181 CHECK(check_sljit_emit_fmem(compiler, type, freg, mem, memw)); in sljit_emit_fmem()
2191 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_local_base(struct sljit_compiler *compiler, sljit_s32 … in sljit_get_local_base() argument
2194 CHECK(check_sljit_get_local_base(compiler, dst, dstw, offset)); in sljit_get_local_base()
2199 compiler->skip_checks = 1; in sljit_get_local_base()
2202 return sljit_emit_op2(compiler, SLJIT_ADD, dst, dstw, SLJIT_SP, 0, SLJIT_IMM, offset); in sljit_get_local_base()
2203 return sljit_emit_op1(compiler, SLJIT_MOV, dst, dstw, SLJIT_SP, 0); in sljit_get_local_base()
2224 SLJIT_API_FUNC_ATTRIBUTE void sljit_free_compiler(struct sljit_compiler *compiler) in sljit_free_compiler() argument
2226 SLJIT_UNUSED_ARG(compiler); in sljit_free_compiler()
2230 SLJIT_API_FUNC_ATTRIBUTE void sljit_set_compiler_memory_error(struct sljit_compiler *compiler) in sljit_set_compiler_memory_error() argument
2232 SLJIT_UNUSED_ARG(compiler); in sljit_set_compiler_memory_error()
2236 SLJIT_API_FUNC_ATTRIBUTE void* sljit_alloc_memory(struct sljit_compiler *compiler, sljit_s32 size) in sljit_alloc_memory() argument
2238 SLJIT_UNUSED_ARG(compiler); in sljit_alloc_memory()
2245 SLJIT_API_FUNC_ATTRIBUTE void sljit_compiler_verbose(struct sljit_compiler *compiler, FILE* verbose) in sljit_compiler_verbose() argument
2247 SLJIT_UNUSED_ARG(compiler); in sljit_compiler_verbose()
2253 SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compiler) in sljit_generate_code() argument
2255 SLJIT_UNUSED_ARG(compiler); in sljit_generate_code()
2273 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compiler, in sljit_emit_enter() argument
2277 SLJIT_UNUSED_ARG(compiler); in sljit_emit_enter()
2289 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context(struct sljit_compiler *compiler, in sljit_set_context() argument
2293 SLJIT_UNUSED_ARG(compiler); in sljit_set_context()
2305 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return(struct sljit_compiler *compiler, sljit_s32 op,… in sljit_emit_return() argument
2307 SLJIT_UNUSED_ARG(compiler); in sljit_emit_return()
2315 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_s32… in sljit_emit_fast_enter() argument
2317 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fast_enter()
2324 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_s3… in sljit_emit_fast_return() argument
2326 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fast_return()
2333 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0(struct sljit_compiler *compiler, sljit_s32 op) in sljit_emit_op0() argument
2335 SLJIT_UNUSED_ARG(compiler); in sljit_emit_op0()
2341 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op1() argument
2345 SLJIT_UNUSED_ARG(compiler); in sljit_emit_op1()
2355 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op2() argument
2360 SLJIT_UNUSED_ARG(compiler); in sljit_emit_op2()
2378 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom(struct sljit_compiler *compiler, in sljit_emit_op_custom() argument
2381 SLJIT_UNUSED_ARG(compiler); in sljit_emit_op_custom()
2388 SLJIT_API_FUNC_ATTRIBUTE void sljit_set_current_flags(struct sljit_compiler *compiler, sljit_s32 cu… in sljit_set_current_flags() argument
2390 SLJIT_UNUSED_ARG(compiler); in sljit_set_current_flags()
2394 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1() argument
2398 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fop1()
2408 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop2() argument
2413 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fop2()
2425 SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label(struct sljit_compiler *compiler) in sljit_emit_label() argument
2427 SLJIT_UNUSED_ARG(compiler); in sljit_emit_label()
2432 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compiler *compiler, sljit_… in sljit_emit_jump() argument
2434 SLJIT_UNUSED_ARG(compiler); in sljit_emit_jump()
2440 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_call(struct sljit_compiler *compiler, sljit_… in sljit_emit_call() argument
2443 SLJIT_UNUSED_ARG(compiler); in sljit_emit_call()
2450 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp(struct sljit_compiler *compiler, sljit_s… in sljit_emit_cmp() argument
2454 SLJIT_UNUSED_ARG(compiler); in sljit_emit_cmp()
2464 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_fcmp(struct sljit_compiler *compiler, sljit_… in sljit_emit_fcmp() argument
2468 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fcmp()
2492 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compiler, sljit_s32 type… in sljit_emit_ijump() argument
2494 SLJIT_UNUSED_ARG(compiler); in sljit_emit_ijump()
2502 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_icall() argument
2506 SLJIT_UNUSED_ARG(compiler); in sljit_emit_icall()
2515 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_s32 o… in sljit_emit_op_flags() argument
2519 SLJIT_UNUSED_ARG(compiler); in sljit_emit_op_flags()
2528 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_cmov() argument
2532 SLJIT_UNUSED_ARG(compiler); in sljit_emit_cmov()
2541 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem(struct sljit_compiler *compiler, sljit_s32 type, … in sljit_emit_mem() argument
2543 SLJIT_UNUSED_ARG(compiler); in sljit_emit_mem()
2552 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fmem(struct sljit_compiler *compiler, sljit_s32 type,… in sljit_emit_fmem() argument
2554 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fmem()
2563 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_local_base(struct sljit_compiler *compiler, sljit_s32 … in sljit_get_local_base() argument
2565 SLJIT_UNUSED_ARG(compiler); in sljit_get_local_base()
2573 SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compiler *compiler, slji… in sljit_emit_const() argument
2575 SLJIT_UNUSED_ARG(compiler); in sljit_emit_const()