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; \
308 compiler->error = SLJIT_ERR_BAD_ARGUMENT; \
316 compiler->error = SLJIT_ERR_BAD_ARGUMENT; \
372 …struct sljit_compiler *compiler = (struct sljit_compiler*)SLJIT_MALLOC(sizeof(struct sljit_compile… in sljit_create_compiler() local
373 if (!compiler) in sljit_create_compiler()
375 SLJIT_ZEROMEM(compiler, sizeof(struct sljit_compiler)); in sljit_create_compiler()
392 compiler->error = SLJIT_SUCCESS; in sljit_create_compiler()
394 compiler->allocator_data = allocator_data; in sljit_create_compiler()
395 compiler->exec_allocator_data = exec_allocator_data; in sljit_create_compiler()
396 compiler->buf = (struct sljit_memory_fragment*)SLJIT_MALLOC(BUF_SIZE, allocator_data); in sljit_create_compiler()
397 compiler->abuf = (struct sljit_memory_fragment*)SLJIT_MALLOC(ABUF_SIZE, allocator_data); in sljit_create_compiler()
399 if (!compiler->buf || !compiler->abuf) { in sljit_create_compiler()
400 if (compiler->buf) in sljit_create_compiler()
401 SLJIT_FREE(compiler->buf, allocator_data); in sljit_create_compiler()
402 if (compiler->abuf) in sljit_create_compiler()
403 SLJIT_FREE(compiler->abuf, allocator_data); in sljit_create_compiler()
404 SLJIT_FREE(compiler, allocator_data); in sljit_create_compiler()
408 compiler->buf->next = NULL; in sljit_create_compiler()
409 compiler->buf->used_size = 0; in sljit_create_compiler()
410 compiler->abuf->next = NULL; in sljit_create_compiler()
411 compiler->abuf->used_size = 0; in sljit_create_compiler()
413 compiler->scratches = -1; in sljit_create_compiler()
414 compiler->saveds = -1; in sljit_create_compiler()
415 compiler->fscratches = -1; in sljit_create_compiler()
416 compiler->fsaveds = -1; in sljit_create_compiler()
417 compiler->local_size = -1; in sljit_create_compiler()
420 compiler->args_size = -1; in sljit_create_compiler()
424 compiler->cpool = (sljit_uw*)SLJIT_MALLOC(CPOOL_SIZE * sizeof(sljit_uw) in sljit_create_compiler()
426 if (!compiler->cpool) { in sljit_create_compiler()
427 SLJIT_FREE(compiler->buf, allocator_data); in sljit_create_compiler()
428 SLJIT_FREE(compiler->abuf, allocator_data); in sljit_create_compiler()
429 SLJIT_FREE(compiler, allocator_data); in sljit_create_compiler()
432 compiler->cpool_unique = (sljit_u8*)(compiler->cpool + CPOOL_SIZE); in sljit_create_compiler()
433 compiler->cpool_diff = 0xffffffff; in sljit_create_compiler()
437 compiler->delay_slot = UNMOVABLE_INS; in sljit_create_compiler()
441 compiler->delay_slot = UNMOVABLE_INS; in sljit_create_compiler()
446 compiler->last_flags = 0; in sljit_create_compiler()
447 compiler->last_return = -1; in sljit_create_compiler()
448 compiler->logical_local_size = 0; in sljit_create_compiler()
458 return compiler; in sljit_create_compiler()
461 SLJIT_API_FUNC_ATTRIBUTE void sljit_free_compiler(struct sljit_compiler *compiler) in sljit_free_compiler() argument
465 void *allocator_data = compiler->allocator_data; in sljit_free_compiler()
468 buf = compiler->buf; in sljit_free_compiler()
475 buf = compiler->abuf; in sljit_free_compiler()
483 SLJIT_FREE(compiler->cpool, allocator_data); in sljit_free_compiler()
485 SLJIT_FREE(compiler, allocator_data); in sljit_free_compiler()
488 SLJIT_API_FUNC_ATTRIBUTE void sljit_set_compiler_memory_error(struct sljit_compiler *compiler) in sljit_set_compiler_memory_error() argument
490 if (compiler->error == SLJIT_SUCCESS) in sljit_set_compiler_memory_error()
491 compiler->error = SLJIT_ERR_ALLOC_FAILED; in sljit_set_compiler_memory_error()
547 SLJIT_API_FUNC_ATTRIBUTE void sljit_set_current_flags(struct sljit_compiler *compiler, sljit_s32 cu… in sljit_set_current_flags() argument
549 SLJIT_UNUSED_ARG(compiler); in sljit_set_current_flags()
553 compiler->status_flags_state = current_flags; in sljit_set_current_flags()
557 compiler->last_flags = 0; in sljit_set_current_flags()
559 compiler->last_flags = GET_FLAG_TYPE(current_flags) | (current_flags & (SLJIT_32 | SLJIT_SET_Z)); in sljit_set_current_flags()
568 static void* ensure_buf(struct sljit_compiler *compiler, sljit_uw size) in ensure_buf() argument
574 …if (compiler->buf->used_size + size <= (BUF_SIZE - (sljit_uw)SLJIT_OFFSETOF(struct sljit_memory_fr… in ensure_buf()
575 ret = compiler->buf->memory + compiler->buf->used_size; in ensure_buf()
576 compiler->buf->used_size += size; in ensure_buf()
579 new_frag = (struct sljit_memory_fragment*)SLJIT_MALLOC(BUF_SIZE, compiler->allocator_data); in ensure_buf()
581 new_frag->next = compiler->buf; in ensure_buf()
582 compiler->buf = new_frag; in ensure_buf()
587 static void* ensure_abuf(struct sljit_compiler *compiler, sljit_uw size) in ensure_abuf() argument
593 …if (compiler->abuf->used_size + size <= (ABUF_SIZE - (sljit_uw)SLJIT_OFFSETOF(struct sljit_memory_… in ensure_abuf()
594 ret = compiler->abuf->memory + compiler->abuf->used_size; in ensure_abuf()
595 compiler->abuf->used_size += size; in ensure_abuf()
598 new_frag = (struct sljit_memory_fragment*)SLJIT_MALLOC(ABUF_SIZE, compiler->allocator_data); in ensure_abuf()
600 new_frag->next = compiler->abuf; in ensure_abuf()
601 compiler->abuf = new_frag; in ensure_abuf()
606 SLJIT_API_FUNC_ATTRIBUTE void* sljit_alloc_memory(struct sljit_compiler *compiler, sljit_s32 size) in sljit_alloc_memory() argument
619 return ensure_abuf(compiler, (sljit_uw)size); in sljit_alloc_memory()
622 static SLJIT_INLINE void reverse_buf(struct sljit_compiler *compiler) in reverse_buf() argument
624 struct sljit_memory_fragment *buf = compiler->buf; in reverse_buf()
635 compiler->buf = prev; in reverse_buf()
664 static SLJIT_INLINE void set_emit_enter(struct sljit_compiler *compiler, in set_emit_enter() argument
671 compiler->options = options; in set_emit_enter()
672 compiler->scratches = scratches; in set_emit_enter()
673 compiler->saveds = saveds; in set_emit_enter()
674 compiler->fscratches = fscratches; in set_emit_enter()
675 compiler->fsaveds = fsaveds; in set_emit_enter()
677 compiler->last_return = args & SLJIT_ARG_MASK; in set_emit_enter()
678 compiler->logical_local_size = local_size; in set_emit_enter()
682 static SLJIT_INLINE void set_set_context(struct sljit_compiler *compiler, in set_set_context() argument
689 compiler->options = options; in set_set_context()
690 compiler->scratches = scratches; in set_set_context()
691 compiler->saveds = saveds; in set_set_context()
692 compiler->fscratches = fscratches; in set_set_context()
693 compiler->fsaveds = fsaveds; in set_set_context()
695 compiler->last_return = args & SLJIT_ARG_MASK; in set_set_context()
696 compiler->logical_local_size = local_size; in set_set_context()
700 static SLJIT_INLINE void set_label(struct sljit_label *label, struct sljit_compiler *compiler) in set_label() argument
703 label->size = compiler->size; in set_label()
704 if (compiler->last_label) in set_label()
705 compiler->last_label->next = label; in set_label()
707 compiler->labels = label; in set_label()
708 compiler->last_label = label; in set_label()
711 static SLJIT_INLINE void set_jump(struct sljit_jump *jump, struct sljit_compiler *compiler, sljit_u… in set_jump() argument
715 if (compiler->last_jump) in set_jump()
716 compiler->last_jump->next = jump; in set_jump()
718 compiler->jumps = jump; in set_jump()
719 compiler->last_jump = jump; in set_jump()
722 static SLJIT_INLINE void set_const(struct sljit_const *const_, struct sljit_compiler *compiler) in set_const() argument
725 const_->addr = compiler->size; in set_const()
726 if (compiler->last_const) in set_const()
727 compiler->last_const->next = const_; in set_const()
729 compiler->consts = const_; in set_const()
730 compiler->last_const = const_; in set_const()
733 … set_put_label(struct sljit_put_label *put_label, struct sljit_compiler *compiler, sljit_uw offset) in set_put_label() argument
737 put_label->addr = compiler->size - offset; in set_put_label()
739 if (compiler->last_put_label) in set_put_label()
740 compiler->last_put_label->next = put_label; in set_put_label()
742 compiler->put_labels = put_label; in set_put_label()
743 compiler->last_put_label = put_label; in set_put_label()
804 (((r) >= SLJIT_R0 && (r) < (SLJIT_R0 + compiler->scratches)) \
805 || ((r) > (SLJIT_S0 - compiler->saveds) && (r) <= SLJIT_S0))
808 (((fr) >= SLJIT_FR0 && (fr) < (SLJIT_FR0 + compiler->fscratches)) \
809 || ((fr) > (SLJIT_FS0 - compiler->fsaveds) && (fr) <= SLJIT_FS0))
817 static sljit_s32 function_check_src_mem(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) in function_check_src_mem() argument
819 if (compiler->scratches == -1 || compiler->saveds == -1) in function_check_src_mem()
849 CHECK_ARGUMENT(function_check_src_mem(compiler, p, i));
851 static sljit_s32 function_check_src(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) in function_check_src() argument
853 if (compiler->scratches == -1 || compiler->saveds == -1) in function_check_src()
863 return (i >= 0 && i < compiler->logical_local_size); in function_check_src()
865 return function_check_src_mem(compiler, p, i); in function_check_src()
869 CHECK_ARGUMENT(function_check_src(compiler, p, i));
871 static sljit_s32 function_check_dst(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) in function_check_dst() argument
873 if (compiler->scratches == -1 || compiler->saveds == -1) in function_check_dst()
880 return (i >= 0 && i < compiler->logical_local_size); in function_check_dst()
882 return function_check_src_mem(compiler, p, i); in function_check_dst()
886 CHECK_ARGUMENT(function_check_dst(compiler, p, i));
888 static sljit_s32 function_fcheck(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) in function_fcheck() argument
890 if (compiler->scratches == -1 || compiler->saveds == -1) in function_fcheck()
897 return (i >= 0 && i < compiler->logical_local_size); in function_fcheck()
899 return function_check_src_mem(compiler, p, i); in function_fcheck()
903 CHECK_ARGUMENT(function_fcheck(compiler, p, i));
909 SLJIT_API_FUNC_ATTRIBUTE void sljit_compiler_verbose(struct sljit_compiler *compiler, FILE* verbose) in sljit_compiler_verbose() argument
911 compiler->verbose = verbose; in sljit_compiler_verbose()
924 static void sljit_verbose_reg(struct sljit_compiler *compiler, sljit_s32 r) in sljit_verbose_reg() argument
926 if (r < (SLJIT_R0 + compiler->scratches)) in sljit_verbose_reg()
927 fprintf(compiler->verbose, "r%d", r - SLJIT_R0); in sljit_verbose_reg()
929 fprintf(compiler->verbose, "s%d", SLJIT_NUMBER_OF_REGISTERS - r); in sljit_verbose_reg()
931 fprintf(compiler->verbose, "sp"); in sljit_verbose_reg()
934 static void sljit_verbose_freg(struct sljit_compiler *compiler, sljit_s32 r) in sljit_verbose_freg() argument
936 if (r < (SLJIT_FR0 + compiler->fscratches)) in sljit_verbose_freg()
937 fprintf(compiler->verbose, "fr%d", r - SLJIT_FR0); in sljit_verbose_freg()
939 fprintf(compiler->verbose, "fs%d", SLJIT_NUMBER_OF_FLOAT_REGISTERS - r); in sljit_verbose_freg()
942 static void sljit_verbose_param(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) in sljit_verbose_param() argument
945 fprintf(compiler->verbose, "#%" SLJIT_PRINT_D "d", (i)); in sljit_verbose_param()
948 fputc('[', compiler->verbose); in sljit_verbose_param()
949 sljit_verbose_reg(compiler, (p) & REG_MASK); in sljit_verbose_param()
951 fprintf(compiler->verbose, " + "); in sljit_verbose_param()
952 sljit_verbose_reg(compiler, OFFS_REG(p)); in sljit_verbose_param()
954 fprintf(compiler->verbose, " * %d", 1 << (i)); in sljit_verbose_param()
957 fprintf(compiler->verbose, " + %" SLJIT_PRINT_D "d", (i)); in sljit_verbose_param()
958 fputc(']', compiler->verbose); in sljit_verbose_param()
961 fprintf(compiler->verbose, "[#%" SLJIT_PRINT_D "d]", (i)); in sljit_verbose_param()
963 sljit_verbose_reg(compiler, p); in sljit_verbose_param()
966 static void sljit_verbose_fparam(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) in sljit_verbose_fparam() argument
970 fputc('[', compiler->verbose); in sljit_verbose_fparam()
971 sljit_verbose_reg(compiler, (p) & REG_MASK); in sljit_verbose_fparam()
973 fprintf(compiler->verbose, " + "); in sljit_verbose_fparam()
974 sljit_verbose_reg(compiler, OFFS_REG(p)); in sljit_verbose_fparam()
976 fprintf(compiler->verbose, "%d", 1 << (i)); in sljit_verbose_fparam()
979 fprintf(compiler->verbose, " + %" SLJIT_PRINT_D "d", (i)); in sljit_verbose_fparam()
980 fputc(']', compiler->verbose); in sljit_verbose_fparam()
983 fprintf(compiler->verbose, "[#%" SLJIT_PRINT_D "d]", (i)); in sljit_verbose_fparam()
986 sljit_verbose_freg(compiler, p); in sljit_verbose_fparam()
1056 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_generate_code(struct sljit_compiler *compiler) in check_sljit_generate_code() argument
1062 SLJIT_UNUSED_ARG(compiler); in check_sljit_generate_code()
1065 CHECK_ARGUMENT(compiler->size > 0); in check_sljit_generate_code()
1066 jump = compiler->jumps; in check_sljit_generate_code()
1076 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_enter(struct sljit_compiler *compiler, in check_sljit_emit_enter() argument
1080 SLJIT_UNUSED_ARG(compiler); in check_sljit_emit_enter()
1094 compiler->last_flags = 0; in check_sljit_emit_enter()
1097 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_enter()
1098 fprintf(compiler->verbose, " enter ret[%s", call_arg_names[arg_types & SLJIT_ARG_MASK]); in check_sljit_emit_enter()
1102 fprintf(compiler->verbose, "], args["); in check_sljit_emit_enter()
1104 fprintf(compiler->verbose, "%s%s", call_arg_names[arg_types & SLJIT_ARG_MASK], in check_sljit_emit_enter()
1108 fprintf(compiler->verbose, ","); in check_sljit_emit_enter()
1112 …fprintf(compiler->verbose, "],%s scratches:%d, saveds:%d, fscratches:%d, fsaveds:%d, local_size:%d… in check_sljit_emit_enter()
1120 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_set_context(struct sljit_compiler *compiler, in check_sljit_set_context() argument
1124 SLJIT_UNUSED_ARG(compiler); in check_sljit_set_context()
1138 compiler->last_flags = 0; in check_sljit_set_context()
1141 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_set_context()
1142 fprintf(compiler->verbose, " set_context ret[%s", call_arg_names[arg_types & SLJIT_ARG_MASK]); in check_sljit_set_context()
1146 fprintf(compiler->verbose, "], args["); in check_sljit_set_context()
1148 fprintf(compiler->verbose, "%s%s", call_arg_names[arg_types & SLJIT_ARG_MASK], in check_sljit_set_context()
1152 fprintf(compiler->verbose, ","); in check_sljit_set_context()
1156 …fprintf(compiler->verbose, "],%s scratches:%d, saveds:%d, fscratches:%d, fsaveds:%d, local_size:%d… in check_sljit_set_context()
1164 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_return_void(struct sljit_compiler *compiler) in check_sljit_emit_return_void() argument
1166 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_return_void()
1167 compiler->skip_checks = 0; in check_sljit_emit_return_void()
1172 CHECK_ARGUMENT(compiler->last_return == SLJIT_ARG_TYPE_VOID); in check_sljit_emit_return_void()
1176 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_return_void()
1177 fprintf(compiler->verbose, " return_void\n"); in check_sljit_emit_return_void()
1183 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_return(struct sljit_compiler *compiler, slji… in check_sljit_emit_return() argument
1186 CHECK_ARGUMENT(compiler->scratches >= 0); in check_sljit_emit_return()
1188 switch (compiler->last_return) { in check_sljit_emit_return()
1204 compiler->last_flags = 0; in check_sljit_emit_return()
1207 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_return()
1208 fprintf(compiler->verbose, " return%s%s ", !(op & SLJIT_32) ? "" : "32", in check_sljit_emit_return()
1210 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_return()
1211 fprintf(compiler->verbose, "\n"); in check_sljit_emit_return()
1217 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fast_enter(struct sljit_compiler *compiler, … in check_sljit_emit_fast_enter() argument
1221 compiler->last_flags = 0; in check_sljit_emit_fast_enter()
1224 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fast_enter()
1225 fprintf(compiler->verbose, " fast_enter "); in check_sljit_emit_fast_enter()
1226 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_fast_enter()
1227 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fast_enter()
1233 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op0(struct sljit_compiler *compiler, sljit_s… in check_sljit_emit_op0() argument
1239 …CHECK_ARGUMENT(GET_OPCODE(op) < SLJIT_LMUL_UW || GET_OPCODE(op) >= SLJIT_ENDBR || compiler->scratc… in check_sljit_emit_op0()
1241 compiler->last_flags = 0; in check_sljit_emit_op0()
1244 if (SLJIT_UNLIKELY(!!compiler->verbose)) in check_sljit_emit_op0()
1246 fprintf(compiler->verbose, " %s", op0_names[GET_OPCODE(op) - SLJIT_OP0_BASE]); in check_sljit_emit_op0()
1248 fprintf(compiler->verbose, (op & SLJIT_32) ? "32" : "w"); in check_sljit_emit_op0()
1250 fprintf(compiler->verbose, "\n"); in check_sljit_emit_op0()
1256 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op1(struct sljit_compiler *compiler, sljit_s… in check_sljit_emit_op1() argument
1260 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_op1()
1261 compiler->skip_checks = 0; in check_sljit_emit_op1()
1290 compiler->last_flags = GET_FLAG_TYPE(op) | (op & (SLJIT_32 | SLJIT_SET_Z)); in check_sljit_emit_op1()
1294 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_op1()
1297 fprintf(compiler->verbose, " mov%s%s ", !(op & SLJIT_32) ? "" : "32", in check_sljit_emit_op1()
1302 …fprintf(compiler->verbose, " %s%s%s%s%s ", op1_names[GET_OPCODE(op) - SLJIT_OP1_BASE], !(op & SLJ… in check_sljit_emit_op1()
1307 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_op1()
1308 fprintf(compiler->verbose, ", "); in check_sljit_emit_op1()
1309 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_op1()
1310 fprintf(compiler->verbose, "\n"); in check_sljit_emit_op1()
1316 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op2(struct sljit_compiler *compiler, sljit_s… in check_sljit_emit_op2() argument
1321 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_op2()
1322 compiler->skip_checks = 0; in check_sljit_emit_op2()
1357 CHECK_ARGUMENT((compiler->last_flags & 0xff) == GET_FLAG_TYPE(SLJIT_SET_CARRY)); in check_sljit_emit_op2()
1358 CHECK_ARGUMENT((op & SLJIT_32) == (compiler->last_flags & SLJIT_32)); in check_sljit_emit_op2()
1372 compiler->last_flags = GET_FLAG_TYPE(op) | (op & (SLJIT_32 | SLJIT_SET_Z)); in check_sljit_emit_op2()
1375 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_op2()
1376 …fprintf(compiler->verbose, " %s%s%s%s%s ", op2_names[GET_OPCODE(op) - SLJIT_OP2_BASE], !(op & SLJ… in check_sljit_emit_op2()
1380 fprintf(compiler->verbose, "unset"); in check_sljit_emit_op2()
1382 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_op2()
1383 fprintf(compiler->verbose, ", "); in check_sljit_emit_op2()
1384 sljit_verbose_param(compiler, src1, src1w); in check_sljit_emit_op2()
1385 fprintf(compiler->verbose, ", "); in check_sljit_emit_op2()
1386 sljit_verbose_param(compiler, src2, src2w); in check_sljit_emit_op2()
1387 fprintf(compiler->verbose, "\n"); in check_sljit_emit_op2()
1393 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op_src(struct sljit_compiler *compiler, slji… in check_sljit_emit_op_src() argument
1403 compiler->last_flags = 0; in check_sljit_emit_op_src()
1411 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_op_src()
1412 fprintf(compiler->verbose, " %s ", op_src_names[op - SLJIT_OP_SRC_BASE]); in check_sljit_emit_op_src()
1413 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_op_src()
1414 fprintf(compiler->verbose, "\n"); in check_sljit_emit_op_src()
1438 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op_custom(struct sljit_compiler *compiler, in check_sljit_emit_op_custom() argument
1445 SLJIT_UNUSED_ARG(compiler); in check_sljit_emit_op_custom()
1461 compiler->last_flags = 0; in check_sljit_emit_op_custom()
1464 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_op_custom()
1465 fprintf(compiler->verbose, " op_custom"); in check_sljit_emit_op_custom()
1467 fprintf(compiler->verbose, " 0x%x", ((sljit_u8*)instruction)[i]); in check_sljit_emit_op_custom()
1468 fprintf(compiler->verbose, "\n"); in check_sljit_emit_op_custom()
1474 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop1(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_fop1() argument
1478 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_fop1()
1479 compiler->skip_checks = 0; in check_sljit_emit_fop1()
1491 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fop1()
1493 fprintf(compiler->verbose, " %s%s ", fop1_names[SLJIT_CONV_F64_FROM_F32 - SLJIT_FOP1_BASE], in check_sljit_emit_fop1()
1496 fprintf(compiler->verbose, " %s%s ", fop1_names[GET_OPCODE(op) - SLJIT_FOP1_BASE], in check_sljit_emit_fop1()
1499 sljit_verbose_fparam(compiler, dst, dstw); in check_sljit_emit_fop1()
1500 fprintf(compiler->verbose, ", "); in check_sljit_emit_fop1()
1501 sljit_verbose_fparam(compiler, src, srcw); in check_sljit_emit_fop1()
1502 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fop1()
1508 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop1_cmp(struct sljit_compiler *compiler, sl… in check_sljit_emit_fop1_cmp() argument
1513 compiler->last_flags = GET_FLAG_TYPE(op) | (op & (SLJIT_32 | SLJIT_SET_Z)); in check_sljit_emit_fop1_cmp()
1516 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_fop1_cmp()
1517 compiler->skip_checks = 0; in check_sljit_emit_fop1_cmp()
1531 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fop1_cmp()
1532 …fprintf(compiler->verbose, " %s%s", fop1_names[SLJIT_CMP_F64 - SLJIT_FOP1_BASE], (op & SLJIT_32) … in check_sljit_emit_fop1_cmp()
1534 fprintf(compiler->verbose, ".%s_f", jump_names[GET_FLAG_TYPE(op)]); in check_sljit_emit_fop1_cmp()
1536 fprintf(compiler->verbose, " "); in check_sljit_emit_fop1_cmp()
1537 sljit_verbose_fparam(compiler, src1, src1w); in check_sljit_emit_fop1_cmp()
1538 fprintf(compiler->verbose, ", "); in check_sljit_emit_fop1_cmp()
1539 sljit_verbose_fparam(compiler, src2, src2w); in check_sljit_emit_fop1_cmp()
1540 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fop1_cmp()
1546 …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
1550 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_fop1_conv_sw_from_f64()
1551 compiler->skip_checks = 0; in check_sljit_emit_fop1_conv_sw_from_f64()
1563 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fop1_conv_sw_from_f64()
1564 fprintf(compiler->verbose, " %s%s.from%s ", fop1_names[GET_OPCODE(op) - SLJIT_FOP1_BASE], in check_sljit_emit_fop1_conv_sw_from_f64()
1567 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_fop1_conv_sw_from_f64()
1568 fprintf(compiler->verbose, ", "); in check_sljit_emit_fop1_conv_sw_from_f64()
1569 sljit_verbose_fparam(compiler, src, srcw); in check_sljit_emit_fop1_conv_sw_from_f64()
1570 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fop1_conv_sw_from_f64()
1576 …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
1580 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_fop1_conv_f64_from_sw()
1581 compiler->skip_checks = 0; in check_sljit_emit_fop1_conv_f64_from_sw()
1593 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fop1_conv_f64_from_sw()
1594 fprintf(compiler->verbose, " %s%s.from%s ", fop1_names[GET_OPCODE(op) - SLJIT_FOP1_BASE], in check_sljit_emit_fop1_conv_f64_from_sw()
1597 sljit_verbose_fparam(compiler, dst, dstw); in check_sljit_emit_fop1_conv_f64_from_sw()
1598 fprintf(compiler->verbose, ", "); in check_sljit_emit_fop1_conv_f64_from_sw()
1599 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_fop1_conv_f64_from_sw()
1600 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fop1_conv_f64_from_sw()
1606 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop2(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_fop2() argument
1620 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fop2()
1621 …fprintf(compiler->verbose, " %s%s ", fop2_names[GET_OPCODE(op) - SLJIT_FOP2_BASE], (op & SLJIT_32… in check_sljit_emit_fop2()
1622 sljit_verbose_fparam(compiler, dst, dstw); in check_sljit_emit_fop2()
1623 fprintf(compiler->verbose, ", "); in check_sljit_emit_fop2()
1624 sljit_verbose_fparam(compiler, src1, src1w); in check_sljit_emit_fop2()
1625 fprintf(compiler->verbose, ", "); in check_sljit_emit_fop2()
1626 sljit_verbose_fparam(compiler, src2, src2w); in check_sljit_emit_fop2()
1627 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fop2()
1633 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_label(struct sljit_compiler *compiler) in check_sljit_emit_label() argument
1635 SLJIT_UNUSED_ARG(compiler); in check_sljit_emit_label()
1637 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_label()
1638 compiler->skip_checks = 0; in check_sljit_emit_label()
1643 compiler->last_flags = 0; in check_sljit_emit_label()
1647 if (SLJIT_UNLIKELY(!!compiler->verbose)) in check_sljit_emit_label()
1648 fprintf(compiler->verbose, "label:\n"); in check_sljit_emit_label()
1653 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_jump(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_jump() argument
1655 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_jump()
1656 compiler->skip_checks = 0; in check_sljit_emit_jump()
1667 CHECK_ARGUMENT(compiler->last_flags & SLJIT_SET_Z); in check_sljit_emit_jump()
1668 else if ((compiler->last_flags & 0xff) == SLJIT_CARRY) { in check_sljit_emit_jump()
1670 compiler->last_flags = 0; in check_sljit_emit_jump()
1672 CHECK_ARGUMENT((type & 0xff) == (compiler->last_flags & 0xff) in check_sljit_emit_jump()
1673 || ((type & 0xff) == SLJIT_NOT_OVERFLOW && (compiler->last_flags & 0xff) == SLJIT_OVERFLOW)); in check_sljit_emit_jump()
1677 if (SLJIT_UNLIKELY(!!compiler->verbose)) in check_sljit_emit_jump()
1678 fprintf(compiler->verbose, " jump%s %s%s\n", !(type & SLJIT_REWRITABLE_JUMP) ? "" : ".r", in check_sljit_emit_jump()
1684 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_call(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_call() argument
1690 CHECK_ARGUMENT(function_check_arguments(arg_types, compiler->scratches, -1, compiler->fscratches)); in check_sljit_emit_call()
1693 CHECK_ARGUMENT((arg_types & SLJIT_ARG_MASK) == compiler->last_return); in check_sljit_emit_call()
1697 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_call()
1698 fprintf(compiler->verbose, " %s%s%s ret[%s", jump_names[type & 0xff], in check_sljit_emit_call()
1705 fprintf(compiler->verbose, "], args["); in check_sljit_emit_call()
1707 fprintf(compiler->verbose, "%s", call_arg_names[arg_types & SLJIT_ARG_MASK]); in check_sljit_emit_call()
1710 fprintf(compiler->verbose, ","); in check_sljit_emit_call()
1713 fprintf(compiler->verbose, "]\n"); in check_sljit_emit_call()
1719 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_cmp(struct sljit_compiler *compiler, sljit_s… in check_sljit_emit_cmp() argument
1728 compiler->last_flags = 0; in check_sljit_emit_cmp()
1731 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_cmp()
1732 fprintf(compiler->verbose, " cmp%s %s%s, ", !(type & SLJIT_REWRITABLE_JUMP) ? "" : ".r", in check_sljit_emit_cmp()
1734 sljit_verbose_param(compiler, src1, src1w); in check_sljit_emit_cmp()
1735 fprintf(compiler->verbose, ", "); in check_sljit_emit_cmp()
1736 sljit_verbose_param(compiler, src2, src2w); in check_sljit_emit_cmp()
1737 fprintf(compiler->verbose, "\n"); in check_sljit_emit_cmp()
1743 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fcmp(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_fcmp() argument
1753 compiler->last_flags = 0; in check_sljit_emit_fcmp()
1756 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fcmp()
1757 fprintf(compiler->verbose, " fcmp%s %s%s, ", !(type & SLJIT_REWRITABLE_JUMP) ? "" : ".r", in check_sljit_emit_fcmp()
1759 sljit_verbose_fparam(compiler, src1, src1w); in check_sljit_emit_fcmp()
1760 fprintf(compiler->verbose, ", "); in check_sljit_emit_fcmp()
1761 sljit_verbose_fparam(compiler, src2, src2w); in check_sljit_emit_fcmp()
1762 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fcmp()
1768 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_ijump(struct sljit_compiler *compiler, sljit… in check_sljit_emit_ijump() argument
1771 if (SLJIT_UNLIKELY(compiler->skip_checks)) { in check_sljit_emit_ijump()
1772 compiler->skip_checks = 0; in check_sljit_emit_ijump()
1781 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_ijump()
1782 fprintf(compiler->verbose, " ijump.%s ", jump_names[type]); in check_sljit_emit_ijump()
1783 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_ijump()
1784 fprintf(compiler->verbose, "\n"); in check_sljit_emit_ijump()
1790 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_icall(struct sljit_compiler *compiler, sljit… in check_sljit_emit_icall() argument
1797 CHECK_ARGUMENT(function_check_arguments(arg_types, compiler->scratches, -1, compiler->fscratches)); in check_sljit_emit_icall()
1801 CHECK_ARGUMENT((arg_types & SLJIT_ARG_MASK) == compiler->last_return); in check_sljit_emit_icall()
1805 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_icall()
1806 fprintf(compiler->verbose, " i%s%s ret[%s", jump_names[type & 0xff], in check_sljit_emit_icall()
1812 fprintf(compiler->verbose, "], args["); in check_sljit_emit_icall()
1814 fprintf(compiler->verbose, "%s", call_arg_names[arg_types & SLJIT_ARG_MASK]); in check_sljit_emit_icall()
1817 fprintf(compiler->verbose, ","); in check_sljit_emit_icall()
1820 fprintf(compiler->verbose, "], "); in check_sljit_emit_icall()
1821 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_icall()
1822 fprintf(compiler->verbose, "\n"); in check_sljit_emit_icall()
1828 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op_flags(struct sljit_compiler *compiler, sl… in check_sljit_emit_op_flags() argument
1840 CHECK_ARGUMENT(compiler->last_flags & SLJIT_SET_Z); in check_sljit_emit_op_flags()
1842 CHECK_ARGUMENT((type & 0xff) == (compiler->last_flags & 0xff) in check_sljit_emit_op_flags()
1843 || ((type & 0xff) == SLJIT_NOT_CARRY && (compiler->last_flags & 0xff) == SLJIT_CARRY) in check_sljit_emit_op_flags()
1844 || ((type & 0xff) == SLJIT_NOT_OVERFLOW && (compiler->last_flags & 0xff) == SLJIT_OVERFLOW)); in check_sljit_emit_op_flags()
1849 compiler->last_flags = GET_FLAG_TYPE(op) | (op & (SLJIT_32 | SLJIT_SET_Z)); in check_sljit_emit_op_flags()
1852 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_op_flags()
1853 fprintf(compiler->verbose, " flags%s %s%s, ", in check_sljit_emit_op_flags()
1857 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_op_flags()
1858 fprintf(compiler->verbose, ", %s%s\n", jump_names[type & 0xff], JUMP_POSTFIX(type)); in check_sljit_emit_op_flags()
1864 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_cmov(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_cmov() argument
1872 CHECK_ARGUMENT(compiler->scratches != -1 && compiler->saveds != -1); in check_sljit_emit_cmov()
1880 CHECK_ARGUMENT(compiler->last_flags & SLJIT_SET_Z); in check_sljit_emit_cmov()
1882 CHECK_ARGUMENT((type & 0xff) == (compiler->last_flags & 0xff) in check_sljit_emit_cmov()
1883 || ((type & 0xff) == SLJIT_NOT_OVERFLOW && (compiler->last_flags & 0xff) == SLJIT_OVERFLOW)); in check_sljit_emit_cmov()
1886 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_cmov()
1887 fprintf(compiler->verbose, " cmov%s %s%s, ", in check_sljit_emit_cmov()
1890 sljit_verbose_reg(compiler, dst_reg & ~SLJIT_32); in check_sljit_emit_cmov()
1891 fprintf(compiler->verbose, ", "); in check_sljit_emit_cmov()
1892 sljit_verbose_param(compiler, src, srcw); in check_sljit_emit_cmov()
1893 fprintf(compiler->verbose, "\n"); in check_sljit_emit_cmov()
1899 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_mem(struct sljit_compiler *compiler, sljit_s… in check_sljit_emit_mem() argument
1916 if (!(type & SLJIT_MEM_SUPP) && SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_mem()
1917 if (sljit_emit_mem(compiler, type | SLJIT_MEM_SUPP, reg, mem, memw) == SLJIT_ERR_UNSUPPORTED) in check_sljit_emit_mem()
1918 fprintf(compiler->verbose, " //"); in check_sljit_emit_mem()
1920 fprintf(compiler->verbose, " mem%s.%s%s%s ", in check_sljit_emit_mem()
1925 sljit_verbose_reg(compiler, reg); in check_sljit_emit_mem()
1926 fprintf(compiler->verbose, ", "); in check_sljit_emit_mem()
1927 sljit_verbose_param(compiler, mem, memw); in check_sljit_emit_mem()
1928 fprintf(compiler->verbose, "\n"); in check_sljit_emit_mem()
1934 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fmem(struct sljit_compiler *compiler, sljit_… in check_sljit_emit_fmem() argument
1948 if (!(type & SLJIT_MEM_SUPP) && SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_fmem()
1949 if (sljit_emit_fmem(compiler, type | SLJIT_MEM_SUPP, freg, mem, memw) == SLJIT_ERR_UNSUPPORTED) in check_sljit_emit_fmem()
1950 fprintf(compiler->verbose, " //"); in check_sljit_emit_fmem()
1952 fprintf(compiler->verbose, " fmem.%s%s%s ", in check_sljit_emit_fmem()
1956 sljit_verbose_freg(compiler, freg); in check_sljit_emit_fmem()
1957 fprintf(compiler->verbose, ", "); in check_sljit_emit_fmem()
1958 sljit_verbose_param(compiler, mem, memw); in check_sljit_emit_fmem()
1959 fprintf(compiler->verbose, "\n"); in check_sljit_emit_fmem()
1965 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_get_local_base(struct sljit_compiler *compiler, s… in check_sljit_get_local_base() argument
1974 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_get_local_base()
1975 fprintf(compiler->verbose, " local_base "); in check_sljit_get_local_base()
1976 sljit_verbose_param(compiler, dst, dstw); in check_sljit_get_local_base()
1977 fprintf(compiler->verbose, ", #%" SLJIT_PRINT_D "d\n", offset); in check_sljit_get_local_base()
1983 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_const(struct sljit_compiler *compiler, sljit… in check_sljit_emit_const() argument
1991 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_const()
1992 fprintf(compiler->verbose, " const "); in check_sljit_emit_const()
1993 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_const()
1994 fprintf(compiler->verbose, ", #%" SLJIT_PRINT_D "d\n", init_value); in check_sljit_emit_const()
2000 static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_put_label(struct sljit_compiler *compiler, s… in check_sljit_emit_put_label() argument
2006 if (SLJIT_UNLIKELY(!!compiler->verbose)) { in check_sljit_emit_put_label()
2007 fprintf(compiler->verbose, " put_label "); in check_sljit_emit_put_label()
2008 sljit_verbose_param(compiler, dst, dstw); in check_sljit_emit_put_label()
2009 fprintf(compiler->verbose, "\n"); in check_sljit_emit_put_label()
2017 #define SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw) \ argument
2022 CHECK(check_sljit_emit_fop1_cmp(compiler, op, dst, dstw, src, srcw)); \
2025 return sljit_emit_fop1_cmp(compiler, op, dst, dstw, src, srcw); \
2028 CHECK(check_sljit_emit_fop1_conv_sw_from_f64(compiler, op, dst, dstw, src, srcw)); \
2031 return sljit_emit_fop1_conv_sw_from_f64(compiler, op, dst, dstw, src, srcw); \
2033 CHECK(check_sljit_emit_fop1_conv_f64_from_sw(compiler, op, dst, dstw, src, srcw)); \
2036 return sljit_emit_fop1_conv_f64_from_sw(compiler, op, dst, dstw, src, srcw); \
2038 CHECK(check_sljit_emit_fop1(compiler, op, dst, dstw, src, srcw)); \
2042 static SLJIT_INLINE sljit_s32 emit_mov_before_return(struct sljit_compiler *compiler, sljit_s32 op,… in emit_mov_before_return() argument
2055 compiler->skip_checks = 1; in emit_mov_before_return()
2057 return sljit_emit_op1(compiler, op, SLJIT_RETURN_REG, 0, src, srcw); in emit_mov_before_return()
2062 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return(struct sljit_compiler *compiler, sljit_s32 op,… in sljit_emit_return() argument
2065 CHECK(check_sljit_emit_return(compiler, op, src, srcw)); in sljit_emit_return()
2067 FAIL_IF(emit_mov_before_return(compiler, op, src, srcw)); in sljit_emit_return()
2071 compiler->skip_checks = 1; in sljit_emit_return()
2073 return sljit_emit_return_void(compiler); in sljit_emit_return()
2083 static SLJIT_INLINE sljit_s32 sljit_emit_cmov_generic(struct sljit_compiler *compiler, sljit_s32 ty… in sljit_emit_cmov_generic() argument
2093 compiler->skip_checks = 1; in sljit_emit_cmov_generic()
2095 jump = sljit_emit_jump(compiler, type ^ 0x1); in sljit_emit_cmov_generic()
2100 compiler->skip_checks = 1; in sljit_emit_cmov_generic()
2102 FAIL_IF(sljit_emit_op1(compiler, op, dst_reg & ~SLJIT_32, 0, src, srcw)); in sljit_emit_cmov_generic()
2106 compiler->skip_checks = 1; in sljit_emit_cmov_generic()
2108 label = sljit_emit_label(compiler); in sljit_emit_cmov_generic()
2164 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp(struct sljit_compiler *compiler, sljit_s… in sljit_emit_cmp() argument
2173 CHECK_PTR(check_sljit_emit_cmp(compiler, type, src1, src1w, src2, src2w)); in sljit_emit_cmp()
2185 return emit_cmp_to0(compiler, type, src1, src1w); in sljit_emit_cmp()
2234 compiler->skip_checks = 1; in sljit_emit_cmp()
2236 PTR_FAIL_IF(sljit_emit_op2u(compiler, in sljit_emit_cmp()
2240 compiler->skip_checks = 1; in sljit_emit_cmp()
2242 return sljit_emit_jump(compiler, condition | (type & (SLJIT_REWRITABLE_JUMP | SLJIT_32))); in sljit_emit_cmp()
2247 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_fcmp(struct sljit_compiler *compiler, sljit_… in sljit_emit_fcmp() argument
2252 CHECK_PTR(check_sljit_emit_fcmp(compiler, type, src1, src1w, src2, src2w)); in sljit_emit_fcmp()
2256 compiler->skip_checks = 1; in sljit_emit_fcmp()
2258 …sljit_emit_fop1(compiler, SLJIT_CMP_F64 | ((type & 0xff) << VARIABLE_FLAG_SHIFT) | (type & SLJIT_3… in sljit_emit_fcmp()
2262 compiler->skip_checks = 1; in sljit_emit_fcmp()
2264 return sljit_emit_jump(compiler, type); in sljit_emit_fcmp()
2271 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_mem() argument
2275 SLJIT_UNUSED_ARG(compiler); in sljit_emit_mem()
2282 CHECK(check_sljit_emit_mem(compiler, type, reg, mem, memw)); in sljit_emit_mem()
2292 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fmem(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_fmem() argument
2296 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fmem()
2303 CHECK(check_sljit_emit_fmem(compiler, type, freg, mem, memw)); in sljit_emit_fmem()
2313 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_local_base(struct sljit_compiler *compiler, sljit_s32 … in sljit_get_local_base() argument
2316 CHECK(check_sljit_get_local_base(compiler, dst, dstw, offset)); in sljit_get_local_base()
2321 compiler->skip_checks = 1; in sljit_get_local_base()
2324 return sljit_emit_op2(compiler, SLJIT_ADD, dst, dstw, SLJIT_SP, 0, SLJIT_IMM, offset); in sljit_get_local_base()
2325 return sljit_emit_op1(compiler, SLJIT_MOV, dst, dstw, SLJIT_SP, 0); in sljit_get_local_base()
2347 SLJIT_API_FUNC_ATTRIBUTE void sljit_free_compiler(struct sljit_compiler *compiler) in sljit_free_compiler() argument
2349 SLJIT_UNUSED_ARG(compiler); in sljit_free_compiler()
2353 SLJIT_API_FUNC_ATTRIBUTE void sljit_set_compiler_memory_error(struct sljit_compiler *compiler) in sljit_set_compiler_memory_error() argument
2355 SLJIT_UNUSED_ARG(compiler); in sljit_set_compiler_memory_error()
2359 SLJIT_API_FUNC_ATTRIBUTE void* sljit_alloc_memory(struct sljit_compiler *compiler, sljit_s32 size) in sljit_alloc_memory() argument
2361 SLJIT_UNUSED_ARG(compiler); in sljit_alloc_memory()
2368 SLJIT_API_FUNC_ATTRIBUTE void sljit_compiler_verbose(struct sljit_compiler *compiler, FILE* verbose) in sljit_compiler_verbose() argument
2370 SLJIT_UNUSED_ARG(compiler); in sljit_compiler_verbose()
2376 SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compiler) in sljit_generate_code() argument
2378 SLJIT_UNUSED_ARG(compiler); in sljit_generate_code()
2397 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compiler, in sljit_emit_enter() argument
2401 SLJIT_UNUSED_ARG(compiler); in sljit_emit_enter()
2413 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context(struct sljit_compiler *compiler, in sljit_set_context() argument
2417 SLJIT_UNUSED_ARG(compiler); in sljit_set_context()
2429 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return(struct sljit_compiler *compiler, sljit_s32 op,… in sljit_emit_return() argument
2431 SLJIT_UNUSED_ARG(compiler); in sljit_emit_return()
2439 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return_void(struct sljit_compiler *compiler) in sljit_emit_return_void() argument
2441 SLJIT_UNUSED_ARG(compiler); in sljit_emit_return_void()
2446 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_s32… in sljit_emit_fast_enter() argument
2448 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fast_enter()
2455 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0(struct sljit_compiler *compiler, sljit_s32 op) in sljit_emit_op0() argument
2457 SLJIT_UNUSED_ARG(compiler); in sljit_emit_op0()
2463 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op1() argument
2467 SLJIT_UNUSED_ARG(compiler); in sljit_emit_op1()
2477 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op2() argument
2482 SLJIT_UNUSED_ARG(compiler); in sljit_emit_op2()
2494 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2u(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op2u() argument
2498 SLJIT_UNUSED_ARG(compiler); in sljit_emit_op2u()
2508 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_src(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op_src() argument
2511 SLJIT_UNUSED_ARG(compiler); in sljit_emit_op_src()
2525 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom(struct sljit_compiler *compiler, in sljit_emit_op_custom() argument
2528 SLJIT_UNUSED_ARG(compiler); in sljit_emit_op_custom()
2535 SLJIT_API_FUNC_ATTRIBUTE void sljit_set_current_flags(struct sljit_compiler *compiler, sljit_s32 cu… in sljit_set_current_flags() argument
2537 SLJIT_UNUSED_ARG(compiler); in sljit_set_current_flags()
2541 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1() argument
2545 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fop1()
2555 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop2() argument
2560 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fop2()
2572 SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label(struct sljit_compiler *compiler) in sljit_emit_label() argument
2574 SLJIT_UNUSED_ARG(compiler); in sljit_emit_label()
2579 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compiler *compiler, sljit_… in sljit_emit_jump() argument
2581 SLJIT_UNUSED_ARG(compiler); in sljit_emit_jump()
2587 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_call(struct sljit_compiler *compiler, sljit_… in sljit_emit_call() argument
2590 SLJIT_UNUSED_ARG(compiler); in sljit_emit_call()
2597 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp(struct sljit_compiler *compiler, sljit_s… in sljit_emit_cmp() argument
2601 SLJIT_UNUSED_ARG(compiler); in sljit_emit_cmp()
2611 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_fcmp(struct sljit_compiler *compiler, sljit_… in sljit_emit_fcmp() argument
2615 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fcmp()
2646 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compiler, sljit_s32 type… in sljit_emit_ijump() argument
2648 SLJIT_UNUSED_ARG(compiler); in sljit_emit_ijump()
2656 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_icall() argument
2660 SLJIT_UNUSED_ARG(compiler); in sljit_emit_icall()
2669 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_s32 o… in sljit_emit_op_flags() argument
2673 SLJIT_UNUSED_ARG(compiler); in sljit_emit_op_flags()
2682 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_cmov() argument
2686 SLJIT_UNUSED_ARG(compiler); in sljit_emit_cmov()
2695 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem(struct sljit_compiler *compiler, sljit_s32 type, … in sljit_emit_mem() argument
2697 SLJIT_UNUSED_ARG(compiler); in sljit_emit_mem()
2706 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fmem(struct sljit_compiler *compiler, sljit_s32 type,… in sljit_emit_fmem() argument
2708 SLJIT_UNUSED_ARG(compiler); in sljit_emit_fmem()
2717 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_local_base(struct sljit_compiler *compiler, sljit_s32 … in sljit_get_local_base() argument
2719 SLJIT_UNUSED_ARG(compiler); in sljit_get_local_base()
2727 SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compiler *compiler, slji… in sljit_emit_const() argument
2729 SLJIT_UNUSED_ARG(compiler); in sljit_emit_const()
2737 …UTE struct sljit_put_label* sljit_emit_put_label(struct sljit_compiler *compiler, sljit_s32 dst, s… in sljit_emit_put_label() argument
2739 SLJIT_UNUSED_ARG(compiler); in sljit_emit_put_label()