Lines Matching refs:compiler

45 		if (SLJIT_UNLIKELY(compiler->error)) \
46 return compiler->error; \
51 if (SLJIT_UNLIKELY(compiler->error)) \
58 return compiler->error; \
70 compiler->error = SLJIT_ERR_ALLOC_FAILED; \
78 compiler->error = SLJIT_ERR_ALLOC_FAILED; \
86 compiler->error = SLJIT_ERR_EX_ALLOC_FAILED; \
304 compiler->error = SLJIT_ERR_BAD_ARGUMENT; \
312 compiler->error = SLJIT_ERR_BAD_ARGUMENT; \
368 …struct sljit_compiler *compiler = (struct sljit_compiler*)SLJIT_MALLOC(sizeof(struct sljit_compile… in sljit_create_compiler() local
369 if (!compiler) in sljit_create_compiler()
371 SLJIT_ZEROMEM(compiler, sizeof(struct sljit_compiler)); in sljit_create_compiler()
390 compiler->error = SLJIT_SUCCESS; in sljit_create_compiler()
392 compiler->allocator_data = allocator_data; in sljit_create_compiler()
393 compiler->exec_allocator_data = exec_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()
535 SLJIT_API_FUNC_ATTRIBUTE void sljit_set_current_flags(struct sljit_compiler *compiler, sljit_s32 cu… in sljit_set_current_flags() argument
537 SLJIT_UNUSED_ARG(compiler); in sljit_set_current_flags()
542compiler->last_flags = GET_FLAG_TYPE(current_flags) | (current_flags & (SLJIT_I32_OP | SLJIT_SET_Z… in sljit_set_current_flags()
551 static void* ensure_buf(struct sljit_compiler *compiler, sljit_uw size) in ensure_buf() argument
557 …if (compiler->buf->used_size + size <= (BUF_SIZE - (sljit_uw)SLJIT_OFFSETOF(struct sljit_memory_fr… in ensure_buf()
558 ret = compiler->buf->memory + compiler->buf->used_size; in ensure_buf()
559 compiler->buf->used_size += size; in ensure_buf()
562 new_frag = (struct sljit_memory_fragment*)SLJIT_MALLOC(BUF_SIZE, compiler->allocator_data); in ensure_buf()
564 new_frag->next = compiler->buf; in ensure_buf()
565 compiler->buf = new_frag; in ensure_buf()
570 static void* ensure_abuf(struct sljit_compiler *compiler, sljit_uw size) in ensure_abuf() argument
576 …if (compiler->abuf->used_size + size <= (ABUF_SIZE - (sljit_uw)SLJIT_OFFSETOF(struct sljit_memory_… in ensure_abuf()
577 ret = compiler->abuf->memory + compiler->abuf->used_size; in ensure_abuf()
578 compiler->abuf->used_size += size; in ensure_abuf()
581 new_frag = (struct sljit_memory_fragment*)SLJIT_MALLOC(ABUF_SIZE, compiler->allocator_data); in ensure_abuf()
583 new_frag->next = compiler->abuf; in ensure_abuf()
584 compiler->abuf = new_frag; in ensure_abuf()
589 SLJIT_API_FUNC_ATTRIBUTE void* sljit_alloc_memory(struct sljit_compiler *compiler, sljit_s32 size) in sljit_alloc_memory() argument
602 return ensure_abuf(compiler, size); in sljit_alloc_memory()
605 static SLJIT_INLINE void reverse_buf(struct sljit_compiler *compiler) in reverse_buf() argument
607 struct sljit_memory_fragment *buf = compiler->buf; in reverse_buf()
618 compiler->buf = prev; in reverse_buf()
661 static SLJIT_INLINE void set_emit_enter(struct sljit_compiler *compiler, in set_emit_enter() argument
668 compiler->options = options; in set_emit_enter()
669 compiler->scratches = scratches; in set_emit_enter()
670 compiler->saveds = saveds; in set_emit_enter()
671 compiler->fscratches = fscratches; in set_emit_enter()
672 compiler->fsaveds = fsaveds; in set_emit_enter()
674 compiler->logical_local_size = local_size; in set_emit_enter()
678 static SLJIT_INLINE void set_set_context(struct sljit_compiler *compiler, in set_set_context() argument
685 compiler->options = options; in set_set_context()
686 compiler->scratches = scratches; in set_set_context()
687 compiler->saveds = saveds; in set_set_context()
688 compiler->fscratches = fscratches; in set_set_context()
689 compiler->fsaveds = fsaveds; in set_set_context()
691 compiler->logical_local_size = local_size; in set_set_context()
695 static SLJIT_INLINE void set_label(struct sljit_label *label, struct sljit_compiler *compiler) in set_label() argument
698 label->size = compiler->size; in set_label()
699 if (compiler->last_label) in set_label()
700 compiler->last_label->next = label; in set_label()
702 compiler->labels = label; in set_label()
703 compiler->last_label = label; in set_label()
706 static SLJIT_INLINE void set_jump(struct sljit_jump *jump, struct sljit_compiler *compiler, sljit_s… in set_jump() argument
710 if (compiler->last_jump) in set_jump()
711 compiler->last_jump->next = jump; in set_jump()
713 compiler->jumps = jump; in set_jump()
714 compiler->last_jump = jump; in set_jump()
717 static SLJIT_INLINE void set_const(struct sljit_const *const_, struct sljit_compiler *compiler) in set_const() argument
720 const_->addr = compiler->size; in set_const()
721 if (compiler->last_const) in set_const()
722 compiler->last_const->next = const_; in set_const()
724 compiler->consts = const_; in set_const()
725 compiler->last_const = const_; in set_const()
728 … set_put_label(struct sljit_put_label *put_label, struct sljit_compiler *compiler, sljit_uw offset) in set_put_label() argument
732 put_label->addr = compiler->size - offset; in set_put_label()
734 if (compiler->last_put_label) in set_put_label()
735 compiler->last_put_label->next = put_label; in set_put_label()
737 compiler->put_labels = put_label; in set_put_label()
738 compiler->last_put_label = put_label; in set_put_label()
747 (((r) >= SLJIT_R0 && (r) < (SLJIT_R0 + compiler->scratches)) \
748 || ((r) > (SLJIT_S0 - compiler->saveds) && (r) <= SLJIT_S0))
751 (((fr) >= SLJIT_FR0 && (fr) < (SLJIT_FR0 + compiler->fscratches)) \
752 || ((fr) > (SLJIT_FS0 - compiler->fsaveds) && (fr) <= SLJIT_FS0))
760 static sljit_s32 function_check_src_mem(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) in function_check_src_mem() argument
762 if (compiler->scratches == -1 || compiler->saveds == -1) in function_check_src_mem()
792 CHECK_ARGUMENT(function_check_src_mem(compiler, p, i));
794 static sljit_s32 function_check_src(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) in function_check_src() argument
796 if (compiler->scratches == -1 || compiler->saveds == -1) in function_check_src()
806 return (i >= 0 && i < compiler->logical_local_size); in function_check_src()
808 return function_check_src_mem(compiler, p, i); in function_check_src()
812 CHECK_ARGUMENT(function_check_src(compiler, p, i));
814 static sljit_s32 function_check_dst(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i, sljit… in function_check_dst() argument
816 if (compiler->scratches == -1 || compiler->saveds == -1) in function_check_dst()
823 return (i >= 0 && i < compiler->logical_local_size); in function_check_dst()
825 return function_check_src_mem(compiler, p, i); in function_check_dst()
829 CHECK_ARGUMENT(function_check_dst(compiler, p, i, unused));
831 static sljit_s32 function_fcheck(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) in function_fcheck() argument
833 if (compiler->scratches == -1 || compiler->saveds == -1) in function_fcheck()
840 return (i >= 0 && i < compiler->logical_local_size); in function_fcheck()
842 return function_check_src_mem(compiler, p, i); in function_fcheck()
846 CHECK_ARGUMENT(function_fcheck(compiler, p, i));
852 SLJIT_API_FUNC_ATTRIBUTE void sljit_compiler_verbose(struct sljit_compiler *compiler, FILE* verbose) in sljit_compiler_verbose() argument
854 compiler->verbose = verbose; in sljit_compiler_verbose()
867 static void sljit_verbose_reg(struct sljit_compiler *compiler, sljit_s32 r) in sljit_verbose_reg() argument
869 if (r < (SLJIT_R0 + compiler->scratches)) in sljit_verbose_reg()
870 fprintf(compiler->verbose, "r%d", r - SLJIT_R0); in sljit_verbose_reg()
872 fprintf(compiler->verbose, "s%d", SLJIT_NUMBER_OF_REGISTERS - r); in sljit_verbose_reg()
874 fprintf(compiler->verbose, "sp"); in sljit_verbose_reg()
877 static void sljit_verbose_freg(struct sljit_compiler *compiler, sljit_s32 r) in sljit_verbose_freg() argument
879 if (r < (SLJIT_FR0 + compiler->fscratches)) in sljit_verbose_freg()
880 fprintf(compiler->verbose, "fr%d", r - SLJIT_FR0); in sljit_verbose_freg()
882 fprintf(compiler->verbose, "fs%d", SLJIT_NUMBER_OF_FLOAT_REGISTERS - r); in sljit_verbose_freg()
885 static void sljit_verbose_param(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) in sljit_verbose_param() argument
888 fprintf(compiler->verbose, "#%" SLJIT_PRINT_D "d", (i)); in sljit_verbose_param()
891 fputc('[', compiler->verbose); in sljit_verbose_param()
892 sljit_verbose_reg(compiler, (p) & REG_MASK); in sljit_verbose_param()
894 fprintf(compiler->verbose, " + "); in sljit_verbose_param()
895 sljit_verbose_reg(compiler, OFFS_REG(p)); in sljit_verbose_param()
897 fprintf(compiler->verbose, " * %d", 1 << (i)); in sljit_verbose_param()
900 fprintf(compiler->verbose, " + %" SLJIT_PRINT_D "d", (i)); in sljit_verbose_param()
901 fputc(']', compiler->verbose); in sljit_verbose_param()
904 fprintf(compiler->verbose, "[#%" SLJIT_PRINT_D "d]", (i)); in sljit_verbose_param()
906 sljit_verbose_reg(compiler, p); in sljit_verbose_param()
908 fprintf(compiler->verbose, "unused"); in sljit_verbose_param()
911 static void sljit_verbose_fparam(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) in sljit_verbose_fparam() argument
915 fputc('[', compiler->verbose); in sljit_verbose_fparam()
916 sljit_verbose_reg(compiler, (p) & REG_MASK); in sljit_verbose_fparam()
918 fprintf(compiler->verbose, " + "); in sljit_verbose_fparam()
919 sljit_verbose_reg(compiler, OFFS_REG(p)); in sljit_verbose_fparam()
921 fprintf(compiler->verbose, "%d", 1 << (i)); in sljit_verbose_fparam()
924 fprintf(compiler->verbose, " + %" SLJIT_PRINT_D "d", (i)); in sljit_verbose_fparam()
925 fputc(']', compiler->verbose); in sljit_verbose_fparam()
928 fprintf(compiler->verbose, "[#%" SLJIT_PRINT_D "d]", (i)); in sljit_verbose_fparam()
931 sljit_verbose_freg(compiler, p); in sljit_verbose_fparam()
1004 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_generate_code(struct sljit_compiler *compiler) in check_sljit_generate_code() argument
1010 SLJIT_UNUSED_ARG(compiler); in check_sljit_generate_code()
1013 CHECK_ARGUMENT(compiler->size > 0); in check_sljit_generate_code()
1014 jump = compiler->jumps; in check_sljit_generate_code()
1024 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_enter(struct sljit_compiler *compiler, in check_sljit_emit_enter() argument
1032 SLJIT_UNUSED_ARG(compiler); in check_sljit_emit_enter()
1055 compiler->last_flags = 0; in check_sljit_emit_enter()
1058 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_enter()
1059 …fprintf(compiler->verbose, " enter options:%s args[", (options & SLJIT_F64_ALIGNMENT) ? "f64_alig… in check_sljit_emit_enter()
1063 fprintf(compiler->verbose, "%s", call_arg_names[arg_types & SLJIT_DEF_MASK]); in check_sljit_emit_enter()
1066 fprintf(compiler->verbose, ","); in check_sljit_emit_enter()
1069 fprintf(compiler->verbose, "] scratches:%d saveds:%d fscratches:%d fsaveds:%d local_size:%d\n", in check_sljit_emit_enter()
1076 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_set_context(struct sljit_compiler *compiler, in check_sljit_set_context() argument
1084 SLJIT_UNUSED_ARG(compiler); in check_sljit_set_context()
1106 compiler->last_flags = 0; in check_sljit_set_context()
1109 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_set_context()
1110 …fprintf(compiler->verbose, " set_context options:%s args[", (options & SLJIT_F64_ALIGNMENT) ? "f6… in check_sljit_set_context()
1114 fprintf(compiler->verbose, "%s", call_arg_names[arg_types & SLJIT_DEF_MASK]); in check_sljit_set_context()
1117 fprintf(compiler->verbose, ","); in check_sljit_set_context()
1120 fprintf(compiler->verbose, "] scratches:%d saveds:%d fscratches:%d fsaveds:%d local_size:%d\n", in check_sljit_set_context()
1127 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_return(struct sljit_compiler *compiler, slji… in check_sljit_emit_return() argument
1130 CHECK_ARGUMENT(compiler->scratches >= 0); in check_sljit_emit_return()
1137 compiler->last_flags = 0; in check_sljit_emit_return()
1140 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_return()
1142 fprintf(compiler->verbose, " return\n"); in check_sljit_emit_return()
1144 fprintf(compiler->verbose, " return%s ", op1_names[op - SLJIT_OP1_BASE]); in check_sljit_emit_return()
1145 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_return()
1146 fprintf(compiler->verbose, "\n"); in check_sljit_emit_return()
1153 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fast_enter(struct sljit_compiler *compiler, … in check_sljit_emit_fast_enter() argument
1157 compiler->last_flags = 0; in check_sljit_emit_fast_enter()
1160 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fast_enter()
1161 fprintf(compiler->verbose, " fast_enter "); in check_sljit_emit_fast_enter()
1162 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_fast_enter()
1163 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fast_enter()
1169 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op0(struct sljit_compiler *compiler, sljit_s… in check_sljit_emit_op0() argument
1175 …CHECK_ARGUMENT(GET_OPCODE(op) < SLJIT_LMUL_UW || GET_OPCODE(op) >= SLJIT_ENDBR || compiler->scratc… in check_sljit_emit_op0()
1177 compiler->last_flags = 0; in check_sljit_emit_op0()
1180 if (SLJIT_UNLIKELY(!!compiler->verbose)) in check_sljit_emit_op0()
1182 fprintf(compiler->verbose, " %s", op0_names[GET_OPCODE(op) - SLJIT_OP0_BASE]); in check_sljit_emit_op0()
1184 fprintf(compiler->verbose, (op & SLJIT_I32_OP) ? "32" : "w"); in check_sljit_emit_op0()
1186 fprintf(compiler->verbose, "\n"); in check_sljit_emit_op0()
1192 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op1(struct sljit_compiler *compiler, sljit_s… in check_sljit_emit_op1() argument
1196 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_op1()
1197 compiler->skip_checks = 0; in check_sljit_emit_op1()
1230 compiler->last_flags = GET_FLAG_TYPE(op) | (op & (SLJIT_I32_OP | SLJIT_SET_Z)); in check_sljit_emit_op1()
1234 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_op1()
1237 fprintf(compiler->verbose, " mov%s%s ", !(op & SLJIT_I32_OP) ? "" : "32", in check_sljit_emit_op1()
1242 …fprintf(compiler->verbose, " %s%s%s%s%s ", op1_names[GET_OPCODE(op) - SLJIT_OP1_BASE], !(op & SLJ… in check_sljit_emit_op1()
1247 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_op1()
1248 fprintf(compiler->verbose, ", "); in check_sljit_emit_op1()
1249 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_op1()
1250 fprintf(compiler->verbose, "\n"); in check_sljit_emit_op1()
1256 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op2(struct sljit_compiler *compiler, sljit_s… in check_sljit_emit_op2() argument
1261 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_op2()
1262 compiler->skip_checks = 0; in check_sljit_emit_op2()
1297 CHECK_ARGUMENT((compiler->last_flags & 0xff) == GET_FLAG_TYPE(SLJIT_SET_CARRY)); in check_sljit_emit_op2()
1298 CHECK_ARGUMENT((op & SLJIT_I32_OP) == (compiler->last_flags & SLJIT_I32_OP)); in check_sljit_emit_op2()
1308 compiler->last_flags = GET_FLAG_TYPE(op) | (op & (SLJIT_I32_OP | SLJIT_SET_Z)); in check_sljit_emit_op2()
1311 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_op2()
1312 …fprintf(compiler->verbose, " %s%s%s%s%s ", op2_names[GET_OPCODE(op) - SLJIT_OP2_BASE], !(op & SLJ… in check_sljit_emit_op2()
1315 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_op2()
1316 fprintf(compiler->verbose, ", "); in check_sljit_emit_op2()
1317 sljit_verbose_param(compiler, src1, src1w); in check_sljit_emit_op2()
1318 fprintf(compiler->verbose, ", "); in check_sljit_emit_op2()
1319 sljit_verbose_param(compiler, src2, src2w); in check_sljit_emit_op2()
1320 fprintf(compiler->verbose, "\n"); in check_sljit_emit_op2()
1326 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op_src(struct sljit_compiler *compiler, slji… in check_sljit_emit_op_src() argument
1336 compiler->last_flags = 0; in check_sljit_emit_op_src()
1344 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_op_src()
1345 fprintf(compiler->verbose, " %s ", op_src_names[op - SLJIT_OP_SRC_BASE]); in check_sljit_emit_op_src()
1346 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_op_src()
1347 fprintf(compiler->verbose, "\n"); in check_sljit_emit_op_src()
1371 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op_custom(struct sljit_compiler *compiler, in check_sljit_emit_op_custom() argument
1378 SLJIT_UNUSED_ARG(compiler); in check_sljit_emit_op_custom()
1394 compiler->last_flags = 0; in check_sljit_emit_op_custom()
1397 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_op_custom()
1398 fprintf(compiler->verbose, " op_custom"); in check_sljit_emit_op_custom()
1400 fprintf(compiler->verbose, " 0x%x", ((sljit_u8*)instruction)[i]); in check_sljit_emit_op_custom()
1401 fprintf(compiler->verbose, "\n"); in check_sljit_emit_op_custom()
1407 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop1(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_fop1() argument
1411 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_fop1()
1412 compiler->skip_checks = 0; in check_sljit_emit_fop1()
1424 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fop1()
1426 fprintf(compiler->verbose, " %s%s ", fop1_names[SLJIT_CONV_F64_FROM_F32 - SLJIT_FOP1_BASE], in check_sljit_emit_fop1()
1429 fprintf(compiler->verbose, " %s%s ", fop1_names[GET_OPCODE(op) - SLJIT_FOP1_BASE], in check_sljit_emit_fop1()
1432 sljit_verbose_fparam(compiler, dst, dstw); in check_sljit_emit_fop1()
1433 fprintf(compiler->verbose, ", "); in check_sljit_emit_fop1()
1434 sljit_verbose_fparam(compiler, src, srcw); in check_sljit_emit_fop1()
1435 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fop1()
1441 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop1_cmp(struct sljit_compiler *compiler, sl… in check_sljit_emit_fop1_cmp() argument
1446 compiler->last_flags = GET_FLAG_TYPE(op) | (op & (SLJIT_I32_OP | SLJIT_SET_Z)); in check_sljit_emit_fop1_cmp()
1449 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_fop1_cmp()
1450 compiler->skip_checks = 0; in check_sljit_emit_fop1_cmp()
1464 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fop1_cmp()
1465 …fprintf(compiler->verbose, " %s%s", fop1_names[SLJIT_CMP_F64 - SLJIT_FOP1_BASE], (op & SLJIT_F32_… in check_sljit_emit_fop1_cmp()
1467 fprintf(compiler->verbose, ".%s_f", jump_names[GET_FLAG_TYPE(op)]); in check_sljit_emit_fop1_cmp()
1469 fprintf(compiler->verbose, " "); in check_sljit_emit_fop1_cmp()
1470 sljit_verbose_fparam(compiler, src1, src1w); in check_sljit_emit_fop1_cmp()
1471 fprintf(compiler->verbose, ", "); in check_sljit_emit_fop1_cmp()
1472 sljit_verbose_fparam(compiler, src2, src2w); in check_sljit_emit_fop1_cmp()
1473 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fop1_cmp()
1479 …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
1483 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_fop1_conv_sw_from_f64()
1484 compiler->skip_checks = 0; in check_sljit_emit_fop1_conv_sw_from_f64()
1496 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fop1_conv_sw_from_f64()
1497 fprintf(compiler->verbose, " %s%s.from%s ", fop1_names[GET_OPCODE(op) - SLJIT_FOP1_BASE], in check_sljit_emit_fop1_conv_sw_from_f64()
1500 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_fop1_conv_sw_from_f64()
1501 fprintf(compiler->verbose, ", "); in check_sljit_emit_fop1_conv_sw_from_f64()
1502 sljit_verbose_fparam(compiler, src, srcw); in check_sljit_emit_fop1_conv_sw_from_f64()
1503 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fop1_conv_sw_from_f64()
1509 …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
1513 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_fop1_conv_f64_from_sw()
1514 compiler->skip_checks = 0; in check_sljit_emit_fop1_conv_f64_from_sw()
1526 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fop1_conv_f64_from_sw()
1527 fprintf(compiler->verbose, " %s%s.from%s ", fop1_names[GET_OPCODE(op) - SLJIT_FOP1_BASE], in check_sljit_emit_fop1_conv_f64_from_sw()
1530 sljit_verbose_fparam(compiler, dst, dstw); in check_sljit_emit_fop1_conv_f64_from_sw()
1531 fprintf(compiler->verbose, ", "); in check_sljit_emit_fop1_conv_f64_from_sw()
1532 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_fop1_conv_f64_from_sw()
1533 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fop1_conv_f64_from_sw()
1539 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop2(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_fop2() argument
1553 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fop2()
1554 …fprintf(compiler->verbose, " %s%s ", fop2_names[GET_OPCODE(op) - SLJIT_FOP2_BASE], (op & SLJIT_F3… in check_sljit_emit_fop2()
1555 sljit_verbose_fparam(compiler, dst, dstw); in check_sljit_emit_fop2()
1556 fprintf(compiler->verbose, ", "); in check_sljit_emit_fop2()
1557 sljit_verbose_fparam(compiler, src1, src1w); in check_sljit_emit_fop2()
1558 fprintf(compiler->verbose, ", "); in check_sljit_emit_fop2()
1559 sljit_verbose_fparam(compiler, src2, src2w); in check_sljit_emit_fop2()
1560 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fop2()
1566 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_label(struct sljit_compiler *compiler) in check_sljit_emit_label() argument
1568 SLJIT_UNUSED_ARG(compiler); in check_sljit_emit_label()
1570 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_label()
1571 compiler->skip_checks = 0; in check_sljit_emit_label()
1576 compiler->last_flags = 0; in check_sljit_emit_label()
1580 if (SLJIT_UNLIKELY(!!compiler->verbose)) in check_sljit_emit_label()
1581 fprintf(compiler->verbose, "label:\n"); in check_sljit_emit_label()
1586 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_jump(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_jump() argument
1588 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_jump()
1589 compiler->skip_checks = 0; in check_sljit_emit_jump()
1601 CHECK_ARGUMENT(compiler->last_flags & SLJIT_SET_Z); in check_sljit_emit_jump()
1603 CHECK_ARGUMENT((type & 0xff) == (compiler->last_flags & 0xff) in check_sljit_emit_jump()
1604 || ((type & 0xff) == SLJIT_NOT_OVERFLOW && (compiler->last_flags & 0xff) == SLJIT_OVERFLOW) in check_sljit_emit_jump()
1605 …|| ((type & 0xff) == SLJIT_MUL_NOT_OVERFLOW && (compiler->last_flags & 0xff) == SLJIT_MUL_OVERFLOW… in check_sljit_emit_jump()
1606 CHECK_ARGUMENT((type & SLJIT_I32_OP) == (compiler->last_flags & SLJIT_I32_OP)); in check_sljit_emit_jump()
1610 if (SLJIT_UNLIKELY(!!compiler->verbose)) in check_sljit_emit_jump()
1611 fprintf(compiler->verbose, " jump%s %s%s\n", !(type & SLJIT_REWRITABLE_JUMP) ? "" : ".r", in check_sljit_emit_jump()
1617 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_call(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_call() argument
1642 CHECK_ARGUMENT(compiler->fscratches > 0); in check_sljit_emit_call()
1644 CHECK_ARGUMENT(compiler->scratches > 0); in check_sljit_emit_call()
1649 CHECK_ARGUMENT(compiler->scratches >= scratches); in check_sljit_emit_call()
1650 CHECK_ARGUMENT(compiler->fscratches >= fscratches); in check_sljit_emit_call()
1654 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_call()
1655 fprintf(compiler->verbose, " %s%s ret[%s", jump_names[type & 0xff], in check_sljit_emit_call()
1660 fprintf(compiler->verbose, "], args["); in check_sljit_emit_call()
1662 fprintf(compiler->verbose, "%s", call_arg_names[arg_types & SLJIT_DEF_MASK]); in check_sljit_emit_call()
1665 fprintf(compiler->verbose, ","); in check_sljit_emit_call()
1668 fprintf(compiler->verbose, "]\n"); in check_sljit_emit_call()
1674 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_cmp(struct sljit_compiler *compiler, sljit_s… in check_sljit_emit_cmp() argument
1683 compiler->last_flags = 0; in check_sljit_emit_cmp()
1686 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_cmp()
1687 fprintf(compiler->verbose, " cmp%s %s%s, ", !(type & SLJIT_REWRITABLE_JUMP) ? "" : ".r", in check_sljit_emit_cmp()
1689 sljit_verbose_param(compiler, src1, src1w); in check_sljit_emit_cmp()
1690 fprintf(compiler->verbose, ", "); in check_sljit_emit_cmp()
1691 sljit_verbose_param(compiler, src2, src2w); in check_sljit_emit_cmp()
1692 fprintf(compiler->verbose, "\n"); in check_sljit_emit_cmp()
1698 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fcmp(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_fcmp() argument
1708 compiler->last_flags = 0; in check_sljit_emit_fcmp()
1711 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fcmp()
1712 fprintf(compiler->verbose, " fcmp%s %s%s, ", !(type & SLJIT_REWRITABLE_JUMP) ? "" : ".r", in check_sljit_emit_fcmp()
1714 sljit_verbose_fparam(compiler, src1, src1w); in check_sljit_emit_fcmp()
1715 fprintf(compiler->verbose, ", "); in check_sljit_emit_fcmp()
1716 sljit_verbose_fparam(compiler, src2, src2w); in check_sljit_emit_fcmp()
1717 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fcmp()
1723 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_ijump(struct sljit_compiler *compiler, sljit… in check_sljit_emit_ijump() argument
1726 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_ijump()
1727 compiler->skip_checks = 0; in check_sljit_emit_ijump()
1736 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_ijump()
1737 fprintf(compiler->verbose, " ijump.%s ", jump_names[type]); in check_sljit_emit_ijump()
1738 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_ijump()
1739 fprintf(compiler->verbose, "\n"); in check_sljit_emit_ijump()
1745 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_icall(struct sljit_compiler *compiler, sljit… in check_sljit_emit_icall() argument
1771 CHECK_ARGUMENT(compiler->fscratches > 0); in check_sljit_emit_icall()
1773 CHECK_ARGUMENT(compiler->scratches > 0); in check_sljit_emit_icall()
1778 CHECK_ARGUMENT(compiler->scratches >= scratches); in check_sljit_emit_icall()
1779 CHECK_ARGUMENT(compiler->fscratches >= fscratches); in check_sljit_emit_icall()
1783 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_icall()
1784 fprintf(compiler->verbose, " i%s%s ret[%s", jump_names[type & 0xff], in check_sljit_emit_icall()
1789 fprintf(compiler->verbose, "], args["); in check_sljit_emit_icall()
1791 fprintf(compiler->verbose, "%s", call_arg_names[arg_types & SLJIT_DEF_MASK]); in check_sljit_emit_icall()
1794 fprintf(compiler->verbose, ","); in check_sljit_emit_icall()
1797 fprintf(compiler->verbose, "], "); in check_sljit_emit_icall()
1798 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_icall()
1799 fprintf(compiler->verbose, "\n"); in check_sljit_emit_icall()
1805 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op_flags(struct sljit_compiler *compiler, sl… in check_sljit_emit_op_flags() argument
1818 CHECK_ARGUMENT(compiler->last_flags & SLJIT_SET_Z); in check_sljit_emit_op_flags()
1820 CHECK_ARGUMENT((type & 0xff) == (compiler->last_flags & 0xff) in check_sljit_emit_op_flags()
1821 || ((type & 0xff) == SLJIT_NOT_OVERFLOW && (compiler->last_flags & 0xff) == SLJIT_OVERFLOW) in check_sljit_emit_op_flags()
1822 …|| ((type & 0xff) == SLJIT_MUL_NOT_OVERFLOW && (compiler->last_flags & 0xff) == SLJIT_MUL_OVERFLOW… in check_sljit_emit_op_flags()
1827 compiler->last_flags = GET_FLAG_TYPE(op) | (op & (SLJIT_I32_OP | SLJIT_SET_Z)); in check_sljit_emit_op_flags()
1830 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_op_flags()
1831 fprintf(compiler->verbose, " flags%s %s%s, ", in check_sljit_emit_op_flags()
1835 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_op_flags()
1836 fprintf(compiler->verbose, ", %s%s\n", jump_names[type & 0xff], JUMP_POSTFIX(type)); in check_sljit_emit_op_flags()
1842 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_cmov(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_cmov() argument
1850 CHECK_ARGUMENT(compiler->scratches != -1 && compiler->saveds != -1); in check_sljit_emit_cmov()
1858 CHECK_ARGUMENT(compiler->last_flags & SLJIT_SET_Z); in check_sljit_emit_cmov()
1860 CHECK_ARGUMENT((type & 0xff) == (compiler->last_flags & 0xff) in check_sljit_emit_cmov()
1861 || ((type & 0xff) == SLJIT_NOT_OVERFLOW && (compiler->last_flags & 0xff) == SLJIT_OVERFLOW) in check_sljit_emit_cmov()
1862 …|| ((type & 0xff) == SLJIT_MUL_NOT_OVERFLOW && (compiler->last_flags & 0xff) == SLJIT_MUL_OVERFLOW… in check_sljit_emit_cmov()
1865 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_cmov()
1866 fprintf(compiler->verbose, " cmov%s %s%s, ", in check_sljit_emit_cmov()
1869 sljit_verbose_reg(compiler, dst_reg & ~SLJIT_I32_OP); in check_sljit_emit_cmov()
1870 fprintf(compiler->verbose, ", "); in check_sljit_emit_cmov()
1871 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_cmov()
1872 fprintf(compiler->verbose, "\n"); in check_sljit_emit_cmov()
1878 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_mem(struct sljit_compiler *compiler, sljit_s… in check_sljit_emit_mem() argument
1895 if (!(type & SLJIT_MEM_SUPP) && SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_mem()
1896 if (sljit_emit_mem(compiler, type | SLJIT_MEM_SUPP, reg, mem, memw) == SLJIT_ERR_UNSUPPORTED) in check_sljit_emit_mem()
1897 fprintf(compiler->verbose, " //"); in check_sljit_emit_mem()
1899 fprintf(compiler->verbose, " mem%s.%s%s%s ", in check_sljit_emit_mem()
1904 sljit_verbose_reg(compiler, reg); in check_sljit_emit_mem()
1905 fprintf(compiler->verbose, ", "); in check_sljit_emit_mem()
1906 sljit_verbose_param(compiler, mem, memw); in check_sljit_emit_mem()
1907 fprintf(compiler->verbose, "\n"); in check_sljit_emit_mem()
1913 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fmem(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_fmem() argument
1927 if (!(type & SLJIT_MEM_SUPP) && SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fmem()
1928 if (sljit_emit_fmem(compiler, type | SLJIT_MEM_SUPP, freg, mem, memw) == SLJIT_ERR_UNSUPPORTED) in check_sljit_emit_fmem()
1929 fprintf(compiler->verbose, " //"); in check_sljit_emit_fmem()
1931 fprintf(compiler->verbose, " fmem.%s%s%s ", in check_sljit_emit_fmem()
1935 sljit_verbose_freg(compiler, freg); in check_sljit_emit_fmem()
1936 fprintf(compiler->verbose, ", "); in check_sljit_emit_fmem()
1937 sljit_verbose_param(compiler, mem, memw); in check_sljit_emit_fmem()
1938 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fmem()
1944 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_get_local_base(struct sljit_compiler *compiler, s… in check_sljit_get_local_base() argument
1953 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_get_local_base()
1954 fprintf(compiler->verbose, " local_base "); in check_sljit_get_local_base()
1955 sljit_verbose_param(compiler, dst, dstw); in check_sljit_get_local_base()
1956 fprintf(compiler->verbose, ", #%" SLJIT_PRINT_D "d\n", offset); in check_sljit_get_local_base()
1962 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_const(struct sljit_compiler *compiler, sljit… in check_sljit_emit_const() argument
1970 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_const()
1971 fprintf(compiler->verbose, " const "); in check_sljit_emit_const()
1972 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_const()
1973 fprintf(compiler->verbose, ", #%" SLJIT_PRINT_D "d\n", init_value); in check_sljit_emit_const()
1979 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_put_label(struct sljit_compiler *compiler, s… in check_sljit_emit_put_label() argument
1985 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_put_label()
1986 fprintf(compiler->verbose, " put_label "); in check_sljit_emit_put_label()
1987 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_put_label()
1988 fprintf(compiler->verbose, "\n"); in check_sljit_emit_put_label()
1996 #define SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw) \ argument
2001 CHECK(check_sljit_emit_fop1_cmp(compiler, op, dst, dstw, src, srcw)); \
2004 return sljit_emit_fop1_cmp(compiler, op, dst, dstw, src, srcw); \
2007 CHECK(check_sljit_emit_fop1_conv_sw_from_f64(compiler, op, dst, dstw, src, srcw)); \
2010 return sljit_emit_fop1_conv_sw_from_f64(compiler, op, dst, dstw, src, srcw); \
2012 CHECK(check_sljit_emit_fop1_conv_f64_from_sw(compiler, op, dst, dstw, src, srcw)); \
2015 return sljit_emit_fop1_conv_f64_from_sw(compiler, op, dst, dstw, src, srcw); \
2017 CHECK(check_sljit_emit_fop1(compiler, op, dst, dstw, src, srcw)); \
2021 static SLJIT_INLINE sljit_s32 emit_mov_before_return(struct sljit_compiler *compiler, sljit_s32 op,… in emit_mov_before_return() argument
2038 compiler->skip_checks = 1; in emit_mov_before_return()
2040 return sljit_emit_op1(compiler, op, SLJIT_RETURN_REG, 0, src, srcw); in emit_mov_before_return()
2048 static SLJIT_INLINE sljit_s32 sljit_emit_cmov_generic(struct sljit_compiler *compiler, sljit_s32 ty… in sljit_emit_cmov_generic() argument
2058 compiler->skip_checks = 1; in sljit_emit_cmov_generic()
2060 jump = sljit_emit_jump(compiler, type ^ 0x1); in sljit_emit_cmov_generic()
2065 compiler->skip_checks = 1; in sljit_emit_cmov_generic()
2067 FAIL_IF(sljit_emit_op1(compiler, op, dst_reg & ~SLJIT_I32_OP, 0, src, srcw)); in sljit_emit_cmov_generic()
2071 compiler->skip_checks = 1; in sljit_emit_cmov_generic()
2073 label = sljit_emit_label(compiler); in sljit_emit_cmov_generic()
2129 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp(struct sljit_compiler *compiler, sljit_s… in sljit_emit_cmp() argument
2138 CHECK_PTR(check_sljit_emit_cmp(compiler, type, src1, src1w, src2, src2w)); in sljit_emit_cmp()
2150 return emit_cmp_to0(compiler, type, src1, src1w); in sljit_emit_cmp()
2199 compiler->skip_checks = 1; in sljit_emit_cmp()
2201 PTR_FAIL_IF(sljit_emit_op2(compiler, SLJIT_SUB | flags | (type & SLJIT_I32_OP), in sljit_emit_cmp()
2205 compiler->skip_checks = 1; in sljit_emit_cmp()
2207 return sljit_emit_jump(compiler, condition | (type & (SLJIT_REWRITABLE_JUMP | SLJIT_I32_OP))); in sljit_emit_cmp()
2212 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_fcmp(struct sljit_compiler *compiler, sljit_… in sljit_emit_fcmp() argument
2217 CHECK_PTR(check_sljit_emit_fcmp(compiler, type, src1, src1w, src2, src2w)); in sljit_emit_fcmp()
2221 compiler->skip_checks = 1; in sljit_emit_fcmp()
2223 …sljit_emit_fop1(compiler, SLJIT_CMP_F64 | ((type & 0xff) << VARIABLE_FLAG_SHIFT) | (type & SLJIT_I… in sljit_emit_fcmp()
2227 compiler->skip_checks = 1; in sljit_emit_fcmp()
2229 return sljit_emit_jump(compiler, type); in sljit_emit_fcmp()
2236 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_mem() argument
2240 SLJIT_UNUSED_ARG(compiler); in sljit_emit_mem()
2247 CHECK(check_sljit_emit_mem(compiler, type, reg, mem, memw)); in sljit_emit_mem()
2257 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fmem(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_fmem() argument
2261 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fmem()
2268 CHECK(check_sljit_emit_fmem(compiler, type, freg, mem, memw)); in sljit_emit_fmem()
2278 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_local_base(struct sljit_compiler *compiler, sljit_s32 … in sljit_get_local_base() argument
2281 CHECK(check_sljit_get_local_base(compiler, dst, dstw, offset)); in sljit_get_local_base()
2286 compiler->skip_checks = 1; in sljit_get_local_base()
2289 return sljit_emit_op2(compiler, SLJIT_ADD, dst, dstw, SLJIT_SP, 0, SLJIT_IMM, offset); in sljit_get_local_base()
2290 return sljit_emit_op1(compiler, SLJIT_MOV, dst, dstw, SLJIT_SP, 0); in sljit_get_local_base()
2312 SLJIT_API_FUNC_ATTRIBUTE void sljit_free_compiler(struct sljit_compiler *compiler) in sljit_free_compiler() argument
2314 SLJIT_UNUSED_ARG(compiler); in sljit_free_compiler()
2318 SLJIT_API_FUNC_ATTRIBUTE void sljit_set_compiler_memory_error(struct sljit_compiler *compiler) in sljit_set_compiler_memory_error() argument
2320 SLJIT_UNUSED_ARG(compiler); in sljit_set_compiler_memory_error()
2324 SLJIT_API_FUNC_ATTRIBUTE void* sljit_alloc_memory(struct sljit_compiler *compiler, sljit_s32 size) in sljit_alloc_memory() argument
2326 SLJIT_UNUSED_ARG(compiler); in sljit_alloc_memory()
2333 SLJIT_API_FUNC_ATTRIBUTE void sljit_compiler_verbose(struct sljit_compiler *compiler, FILE* verbose) in sljit_compiler_verbose() argument
2335 SLJIT_UNUSED_ARG(compiler); in sljit_compiler_verbose()
2341 SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compiler) in sljit_generate_code() argument
2343 SLJIT_UNUSED_ARG(compiler); in sljit_generate_code()
2362 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compiler, in sljit_emit_enter() argument
2366 SLJIT_UNUSED_ARG(compiler); in sljit_emit_enter()
2378 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context(struct sljit_compiler *compiler, in sljit_set_context() argument
2382 SLJIT_UNUSED_ARG(compiler); in sljit_set_context()
2394 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return(struct sljit_compiler *compiler, sljit_s32 op,… in sljit_emit_return() argument
2396 SLJIT_UNUSED_ARG(compiler); in sljit_emit_return()
2404 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_s32… in sljit_emit_fast_enter() argument
2406 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fast_enter()
2413 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0(struct sljit_compiler *compiler, sljit_s32 op) in sljit_emit_op0() argument
2415 SLJIT_UNUSED_ARG(compiler); in sljit_emit_op0()
2421 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op1() argument
2425 SLJIT_UNUSED_ARG(compiler); in sljit_emit_op1()
2435 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op2() argument
2440 SLJIT_UNUSED_ARG(compiler); in sljit_emit_op2()
2452 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_src(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op_src() argument
2455 SLJIT_UNUSED_ARG(compiler); in sljit_emit_op_src()
2469 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom(struct sljit_compiler *compiler, in sljit_emit_op_custom() argument
2472 SLJIT_UNUSED_ARG(compiler); in sljit_emit_op_custom()
2479 SLJIT_API_FUNC_ATTRIBUTE void sljit_set_current_flags(struct sljit_compiler *compiler, sljit_s32 cu… in sljit_set_current_flags() argument
2481 SLJIT_UNUSED_ARG(compiler); in sljit_set_current_flags()
2485 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1() argument
2489 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fop1()
2499 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop2() argument
2504 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fop2()
2516 SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label(struct sljit_compiler *compiler) in sljit_emit_label() argument
2518 SLJIT_UNUSED_ARG(compiler); in sljit_emit_label()
2523 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compiler *compiler, sljit_… in sljit_emit_jump() argument
2525 SLJIT_UNUSED_ARG(compiler); in sljit_emit_jump()
2531 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_call(struct sljit_compiler *compiler, sljit_… in sljit_emit_call() argument
2534 SLJIT_UNUSED_ARG(compiler); in sljit_emit_call()
2541 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp(struct sljit_compiler *compiler, sljit_s… in sljit_emit_cmp() argument
2545 SLJIT_UNUSED_ARG(compiler); in sljit_emit_cmp()
2555 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_fcmp(struct sljit_compiler *compiler, sljit_… in sljit_emit_fcmp() argument
2559 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fcmp()
2590 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compiler, sljit_s32 type… in sljit_emit_ijump() argument
2592 SLJIT_UNUSED_ARG(compiler); in sljit_emit_ijump()
2600 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_icall() argument
2604 SLJIT_UNUSED_ARG(compiler); in sljit_emit_icall()
2613 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_s32 o… in sljit_emit_op_flags() argument
2617 SLJIT_UNUSED_ARG(compiler); in sljit_emit_op_flags()
2626 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_cmov() argument
2630 SLJIT_UNUSED_ARG(compiler); in sljit_emit_cmov()
2639 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem(struct sljit_compiler *compiler, sljit_s32 type, … in sljit_emit_mem() argument
2641 SLJIT_UNUSED_ARG(compiler); in sljit_emit_mem()
2650 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fmem(struct sljit_compiler *compiler, sljit_s32 type,… in sljit_emit_fmem() argument
2652 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fmem()
2661 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_local_base(struct sljit_compiler *compiler, sljit_s32 … in sljit_get_local_base() argument
2663 SLJIT_UNUSED_ARG(compiler); in sljit_get_local_base()
2671 SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compiler *compiler, slji… in sljit_emit_const() argument
2673 SLJIT_UNUSED_ARG(compiler); in sljit_emit_const()
2681 …UTE struct sljit_put_label* sljit_emit_put_label(struct sljit_compiler *compiler, sljit_s32 dst, s… in sljit_emit_put_label() argument
2683 SLJIT_UNUSED_ARG(compiler); in sljit_emit_put_label()