Lines Matching refs:compiler

215 static sljit_s32 push_inst16(struct sljit_compiler *compiler, sljit_ins inst)  in push_inst16()  argument
220 ptr = (sljit_u16*)ensure_buf(compiler, sizeof(sljit_u16)); in push_inst16()
223 compiler->size++; in push_inst16()
227 static sljit_s32 push_inst32(struct sljit_compiler *compiler, sljit_ins inst) in push_inst32() argument
229 sljit_u16 *ptr = (sljit_u16*)ensure_buf(compiler, sizeof(sljit_ins)); in push_inst32()
233 compiler->size += 2; in push_inst32()
237 static SLJIT_INLINE sljit_s32 emit_imm32_const(struct sljit_compiler *compiler, sljit_s32 dst, slji… in emit_imm32_const() argument
239 FAIL_IF(push_inst32(compiler, MOVW | RD4(dst) in emit_imm32_const()
241 return push_inst32(compiler, MOVT | RD4(dst) in emit_imm32_const()
375 SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compiler) in sljit_generate_code() argument
392 CHECK_PTR(check_sljit_generate_code(compiler)); in sljit_generate_code()
393 reverse_buf(compiler); in sljit_generate_code()
395 …code = (sljit_u16*)SLJIT_MALLOC_EXEC(compiler->size * sizeof(sljit_u16), compiler->exec_allocator_… in sljit_generate_code()
397 buf = compiler->buf; in sljit_generate_code()
404 label = compiler->labels; in sljit_generate_code()
405 jump = compiler->jumps; in sljit_generate_code()
406 const_ = compiler->consts; in sljit_generate_code()
407 put_label = compiler->put_labels; in sljit_generate_code()
459 SLJIT_ASSERT(code_ptr - code <= (sljit_sw)compiler->size); in sljit_generate_code()
461 jump = compiler->jumps; in sljit_generate_code()
467 put_label = compiler->put_labels; in sljit_generate_code()
473 compiler->error = SLJIT_ERR_COMPILED; in sljit_generate_code()
474 compiler->executable_offset = executable_offset; in sljit_generate_code()
475 compiler->executable_size = (sljit_uw)(code_ptr - code) * sizeof(sljit_u16); in sljit_generate_code()
564 static sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32 dst, sljit_uw imm) in load_immediate() argument
573 return push_inst32(compiler, MOV_WI | RD4(dst) | tmp); in load_immediate()
576 return push_inst32(compiler, MVN_WI | RD4(dst) | tmp); in load_immediate()
580 FAIL_IF(push_inst32(compiler, MOVW | RD4(dst) in load_immediate()
585 return push_inst32(compiler, MOVT | RD4(dst) in load_immediate()
596 static sljit_s32 emit_op_imm(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 dst, sljit… in emit_op_imm() argument
607 FAIL_IF(load_immediate(compiler, TMP_REG1, arg1)); in emit_op_imm()
623 return load_immediate(compiler, dst, imm); in emit_op_imm()
626 return load_immediate(compiler, dst, ~imm); in emit_op_imm()
631 compiler->status_flags_state = SLJIT_CURRENT_FLAGS_ADD; in emit_op_imm()
635 return push_inst16(compiler, ADDSI3 | IMM3(imm) | RD3(dst) | RN3(reg)); in emit_op_imm()
637 return push_inst16(compiler, SUBSI3 | IMM3(imm2) | RD3(dst) | RN3(reg)); in emit_op_imm()
640 return push_inst16(compiler, ADDSI8 | IMM8(imm) | RDN3(dst)); in emit_op_imm()
642 return push_inst16(compiler, SUBSI8 | IMM8(imm2) | RDN3(dst)); in emit_op_imm()
647 return push_inst32(compiler, ADDWI | RD4(dst) | RN4(reg) | IMM12(imm)); in emit_op_imm()
649 return push_inst32(compiler, SUBWI | RD4(dst) | RN4(reg) | IMM12(imm2)); in emit_op_imm()
653 return push_inst32(compiler, ADD_WI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm2); in emit_op_imm()
656 return push_inst32(compiler, SUB_WI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
659 compiler->status_flags_state = SLJIT_CURRENT_FLAGS_ADD; in emit_op_imm()
662 return push_inst32(compiler, ADCI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
665 compiler->status_flags_state = SLJIT_CURRENT_FLAGS_SUB; in emit_op_imm()
668 return push_inst16(compiler, RSBSI | RD3(dst) | RN3(reg)); in emit_op_imm()
671 return push_inst32(compiler, RSB_WI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
676 return push_inst16(compiler, CMPI | IMM8(imm) | RDN3(reg)); in emit_op_imm()
679 return push_inst32(compiler, CMPI_W | RN4(reg) | imm2); in emit_op_imm()
682 return push_inst32(compiler, CMNI_W | RN4(reg) | imm); in emit_op_imm()
688 return push_inst16(compiler, SUBSI3 | IMM3(imm) | RD3(dst) | RN3(reg)); in emit_op_imm()
690 return push_inst16(compiler, ADDSI3 | IMM3(imm2) | RD3(dst) | RN3(reg)); in emit_op_imm()
693 return push_inst16(compiler, SUBSI8 | IMM8(imm) | RDN3(dst)); in emit_op_imm()
695 return push_inst16(compiler, ADDSI8 | IMM8(imm2) | RDN3(dst)); in emit_op_imm()
700 return push_inst32(compiler, SUBWI | RD4(dst) | RN4(reg) | IMM12(imm)); in emit_op_imm()
702 return push_inst32(compiler, ADDWI | RD4(dst) | RN4(reg) | IMM12(imm2)); in emit_op_imm()
706 return push_inst32(compiler, SUB_WI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm2); in emit_op_imm()
709 return push_inst32(compiler, ADD_WI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
712 compiler->status_flags_state = SLJIT_CURRENT_FLAGS_SUB; in emit_op_imm()
717 return push_inst32(compiler, SBCI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
722 …return push_inst32(compiler, ((flags & UNUSED_RETURN) ? TSTI : ANDI) | (flags & SET_FLAGS) | RD4(d… in emit_op_imm()
725 return push_inst32(compiler, BICI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
730 return push_inst32(compiler, ORRI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm2); in emit_op_imm()
733 return push_inst32(compiler, ORNI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
738 return push_inst32(compiler, EORI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
754 return push_inst16(compiler, MOV | SET_REGS44(dst, reg)); in emit_op_imm()
756 return push_inst16(compiler, MOVS | RD3(dst) | RN3(reg)); in emit_op_imm()
757 return push_inst32(compiler, MOV_W | SET_FLAGS | RD4(dst) | RM4(reg)); in emit_op_imm()
764 return push_inst16(compiler, LSLSI | RD3(dst) | RN3(reg) | (imm << 6)); in emit_op_imm()
765 return push_inst32(compiler, LSL_WI | (flags & SET_FLAGS) | RD4(dst) | RM4(reg) | IMM5(imm)); in emit_op_imm()
769 return push_inst16(compiler, LSRSI | RD3(dst) | RN3(reg) | (imm << 6)); in emit_op_imm()
770 return push_inst32(compiler, LSR_WI | (flags & SET_FLAGS) | RD4(dst) | RM4(reg) | IMM5(imm)); in emit_op_imm()
774 return push_inst16(compiler, ASRSI | RD3(dst) | RN3(reg) | (imm << 6)); in emit_op_imm()
775 return push_inst32(compiler, ASR_WI | (flags & SET_FLAGS) | RD4(dst) | RM4(reg) | IMM5(imm)); in emit_op_imm()
780 return push_inst32(compiler, ROR_WI | RD4(dst) | RM4(reg) | IMM5(imm)); in emit_op_imm()
790 FAIL_IF(load_immediate(compiler, (sljit_s32)arg2, imm)); in emit_op_imm()
795 FAIL_IF(load_immediate(compiler, (sljit_s32)arg1, imm)); in emit_op_imm()
811 return push_inst16(compiler, MOV | SET_REGS44(dst, arg2)); in emit_op_imm()
815 return push_inst16(compiler, UXTB | RD3(dst) | RN3(arg2)); in emit_op_imm()
816 return push_inst32(compiler, UXTB_W | RD4(dst) | RM4(arg2)); in emit_op_imm()
820 return push_inst16(compiler, SXTB | RD3(dst) | RN3(arg2)); in emit_op_imm()
821 return push_inst32(compiler, SXTB_W | RD4(dst) | RM4(arg2)); in emit_op_imm()
825 return push_inst16(compiler, UXTH | RD3(dst) | RN3(arg2)); in emit_op_imm()
826 return push_inst32(compiler, UXTH_W | RD4(dst) | RM4(arg2)); in emit_op_imm()
830 return push_inst16(compiler, SXTH | RD3(dst) | RN3(arg2)); in emit_op_imm()
831 return push_inst32(compiler, SXTH_W | RD4(dst) | RM4(arg2)); in emit_op_imm()
835 return push_inst16(compiler, MVNS | RD3(dst) | RN3(arg2)); in emit_op_imm()
836 return push_inst32(compiler, MVN_W | (flags & SET_FLAGS) | RD4(dst) | RM4(arg2)); in emit_op_imm()
839 return push_inst32(compiler, CLZ | RN4(arg2) | RD4(dst) | RM4(arg2)); in emit_op_imm()
842 FAIL_IF(push_inst32(compiler, RBIT | RN4(arg2) | RD4(dst) | RM4(arg2))); in emit_op_imm()
843 return push_inst32(compiler, CLZ | RN4(dst) | RD4(dst) | RM4(dst)); in emit_op_imm()
845 compiler->status_flags_state = SLJIT_CURRENT_FLAGS_ADD; in emit_op_imm()
847 return push_inst16(compiler, ADDS | RD3(dst) | RN3(arg1) | RM3(arg2)); in emit_op_imm()
849 return push_inst16(compiler, ADD | SET_REGS44(dst, arg2)); in emit_op_imm()
850 return push_inst32(compiler, ADD_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2)); in emit_op_imm()
852 compiler->status_flags_state = SLJIT_CURRENT_FLAGS_ADD; in emit_op_imm()
854 return push_inst16(compiler, ADCS | RD3(dst) | RN3(arg2)); in emit_op_imm()
855 return push_inst32(compiler, ADC_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2)); in emit_op_imm()
857 compiler->status_flags_state = SLJIT_CURRENT_FLAGS_SUB; in emit_op_imm()
860 return push_inst16(compiler, CMP | RD3(arg1) | RN3(arg2)); in emit_op_imm()
861 return push_inst16(compiler, CMP_X | SET_REGS44(arg1, arg2)); in emit_op_imm()
864 return push_inst16(compiler, SUBS | RD3(dst) | RN3(arg1) | RM3(arg2)); in emit_op_imm()
865 return push_inst32(compiler, SUB_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2)); in emit_op_imm()
867 compiler->status_flags_state = SLJIT_CURRENT_FLAGS_SUB; in emit_op_imm()
869 return push_inst16(compiler, SBCS | RD3(dst) | RN3(arg2)); in emit_op_imm()
870 return push_inst32(compiler, SBC_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2)); in emit_op_imm()
872 compiler->status_flags_state = 0; in emit_op_imm()
874 return push_inst32(compiler, MUL | RD4(dst) | RN4(arg1) | RM4(arg2)); in emit_op_imm()
876 FAIL_IF(push_inst32(compiler, SMULL | RT4(dst) | RD4(TMP_REG2) | RN4(arg1) | RM4(arg2))); in emit_op_imm()
878 return push_inst32(compiler, CMP_W | RN4(TMP_REG2) | 0x70e0 | RM4(dst)); in emit_op_imm()
881 return push_inst16(compiler, ANDS | RD3(dst) | RN3(arg2)); in emit_op_imm()
883 return push_inst16(compiler, TST | RD3(arg1) | RN3(arg2)); in emit_op_imm()
884 …return push_inst32(compiler, ((flags & UNUSED_RETURN) ? TST_W : AND_W) | (flags & SET_FLAGS) | RD4… in emit_op_imm()
887 return push_inst16(compiler, ORRS | RD3(dst) | RN3(arg2)); in emit_op_imm()
888 return push_inst32(compiler, ORR_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2)); in emit_op_imm()
891 return push_inst16(compiler, EORS | RD3(dst) | RN3(arg2)); in emit_op_imm()
892 return push_inst32(compiler, EOR_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2)); in emit_op_imm()
894 FAIL_IF(push_inst32(compiler, ANDI | RD4(TMP_REG2) | RN4(arg2) | 0x1f)); in emit_op_imm()
899 return push_inst16(compiler, LSLS | RD3(dst) | RN3(arg2)); in emit_op_imm()
900 return push_inst32(compiler, LSL_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2)); in emit_op_imm()
902 FAIL_IF(push_inst32(compiler, ANDI | RD4(TMP_REG2) | RN4(arg2) | 0x1f)); in emit_op_imm()
907 return push_inst16(compiler, LSRS | RD3(dst) | RN3(arg2)); in emit_op_imm()
908 return push_inst32(compiler, LSR_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2)); in emit_op_imm()
910 FAIL_IF(push_inst32(compiler, ANDI | RD4(TMP_REG2) | RN4(arg2) | 0x1f)); in emit_op_imm()
915 return push_inst16(compiler, ASRS | RD3(dst) | RN3(arg2)); in emit_op_imm()
916 return push_inst32(compiler, ASR_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2)); in emit_op_imm()
918 FAIL_IF(push_inst32(compiler, RSB_WI | RD4(TMP_REG2) | RN4(arg2) | 0)); in emit_op_imm()
923 return push_inst16(compiler, RORS | RD3(dst) | RN3(arg2)); in emit_op_imm()
924 return push_inst32(compiler, ROR_W | RD4(dst) | RN4(arg1) | RM4(arg2)); in emit_op_imm()
1013 static sljit_s32 emit_set_delta(struct sljit_compiler *compiler, sljit_s32 dst, sljit_s32 reg, slji… in emit_set_delta() argument
1019 return push_inst32(compiler, ADDWI | RD4(dst) | RN4(reg) | IMM12(value)); in emit_set_delta()
1022 return push_inst32(compiler, ADD_WI | RD4(dst) | RN4(reg) | imm); in emit_set_delta()
1027 return push_inst32(compiler, SUBWI | RD4(dst) | RN4(reg) | IMM12(value)); in emit_set_delta()
1030 return push_inst32(compiler, SUB_WI | RD4(dst) | RN4(reg) | imm); in emit_set_delta()
1035 static SLJIT_INLINE sljit_s32 emit_op_mem(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s… in emit_op_mem() argument
1047 FAIL_IF(push_inst32(compiler, MOV_WI | RD4(tmp_reg) | imm)); in emit_op_mem()
1048 …return push_inst32(compiler, sljit_mem32[flags] | MEM_IMM12 | RT4(reg) | RN4(tmp_reg) | (argw & 0x… in emit_op_mem()
1051 FAIL_IF(load_immediate(compiler, tmp_reg, (sljit_uw)argw)); in emit_op_mem()
1053 return push_inst16(compiler, sljit_mem16_imm5[flags] | RD3(reg) | RN3(tmp_reg)); in emit_op_mem()
1054 return push_inst32(compiler, sljit_mem32[flags] | MEM_IMM12 | RT4(reg) | RN4(tmp_reg)); in emit_op_mem()
1063 return push_inst16(compiler, sljit_mem16[flags] | RD3(reg) | RN3(arg) | RM3(other_r)); in emit_op_mem()
1064 …return push_inst32(compiler, sljit_mem32[flags] | RT4(reg) | RN4(arg) | RM4(other_r) | ((sljit_ins… in emit_op_mem()
1072 push_inst32(compiler, ADD_WI | RD4(tmp_reg) | RN4(arg) | imm); in emit_op_mem()
1083 push_inst32(compiler, SUB_WI | RD4(tmp_reg) | RN4(arg) | imm); in emit_op_mem()
1110 …return push_inst16(compiler, sljit_mem16_imm5[flags] | RD3(reg) | RN3(arg) | ((sljit_ins)argw << (… in emit_op_mem()
1114 …return push_inst16(compiler, STR_SP | (sljit_ins)((flags & STORE) ? 0 : 0x800) | RDN3(reg) | ((slj… in emit_op_mem()
1118 …return push_inst32(compiler, sljit_mem32[flags] | MEM_IMM12 | RT4(reg) | RN4(arg) | (sljit_ins)arg… in emit_op_mem()
1120 …return push_inst32(compiler, sljit_mem32[flags] | MEM_IMM8 | RT4(reg) | RN4(arg) | (sljit_ins)-arg… in emit_op_mem()
1124 FAIL_IF(load_immediate(compiler, tmp_reg, (sljit_uw)argw)); in emit_op_mem()
1126 return push_inst16(compiler, sljit_mem16[flags] | RD3(reg) | RN3(arg) | RM3(tmp_reg)); in emit_op_mem()
1127 return push_inst32(compiler, sljit_mem32[flags] | RT4(reg) | RN4(arg) | RM4(tmp_reg)); in emit_op_mem()
1137 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compiler, in sljit_emit_enter() argument
1154 …CHECK(check_sljit_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds,… in sljit_emit_enter()
1155 set_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); in sljit_emit_enter()
1166 ? push_inst32(compiler, PUSH_W | (1 << 14) | imm) in sljit_emit_enter()
1167 : push_inst16(compiler, PUSH | (1 << 8) | imm)); in sljit_emit_enter()
1174 FAIL_IF(push_inst16(compiler, SUB_SP_I | (sizeof(sljit_sw) >> 2))); in sljit_emit_enter()
1179 …FAIL_IF(push_inst32(compiler, VPUSH | DD4(SLJIT_FS0) | ((sljit_uw)SLJIT_NUMBER_OF_SAVED_FLOAT_REGI… in sljit_emit_enter()
1182 FAIL_IF(push_inst32(compiler, VPUSH | DD4(SLJIT_FS0) | ((sljit_uw)fsaveds << 1))); in sljit_emit_enter()
1184 …FAIL_IF(push_inst32(compiler, VPUSH | DD4(fscratches) | ((sljit_uw)(fscratches - (SLJIT_FIRST_SAVE… in sljit_emit_enter()
1189 compiler->local_size = local_size; in sljit_emit_enter()
1210 …FAIL_IF(push_inst32(compiler, VMOV2 | (offset << 10) | ((offset + sizeof(sljit_sw)) << 14) | float… in sljit_emit_enter()
1212 FAIL_IF(push_inst32(compiler, VLDR_F32 | 0x800100 | RN4(SLJIT_SP) in sljit_emit_enter()
1219 FAIL_IF(push_inst32(compiler, VMOV | (float_arg_count << 16) | (offset << 10))); in sljit_emit_enter()
1221 FAIL_IF(push_inst32(compiler, VLDR_F32 | 0x800000 | RN4(SLJIT_SP) in sljit_emit_enter()
1237 …FAIL_IF(push_inst16(compiler, MOV | ((sljit_ins)reg_map[tmp] & 0x7) | (((sljit_ins)reg_map[tmp] & … in sljit_emit_enter()
1239 FAIL_IF(push_inst16(compiler, LDR_SP | RDN3(tmp) in sljit_emit_enter()
1242 FAIL_IF(push_inst32(compiler, LDR | RT4(tmp) | RN4(SLJIT_SP) in sljit_emit_enter()
1251 compiler->args_size = offset; in sljit_emit_enter()
1279 …FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(SLJIT_S0 - saved_arg_count, SLJIT_R0 + word_arg_cou… in sljit_emit_enter()
1292 FAIL_IF(push_inst32(compiler, *(--remap_ptr))); in sljit_emit_enter()
1300 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(SLJIT_SP) | RN4(SLJIT_SP) | imm)); in sljit_emit_enter()
1305 FAIL_IF(push_inst32(compiler, LDRI | 0x400 | RT4(TMP_REG1) | RN4(SLJIT_SP))); in sljit_emit_enter()
1306 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(SLJIT_SP) | RN4(SLJIT_SP) | imm)); in sljit_emit_enter()
1309 FAIL_IF(push_inst32(compiler, LDRI | 0x400 | RT4(TMP_REG1) | RN4(SLJIT_SP))); in sljit_emit_enter()
1310 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(SLJIT_SP) | RN4(SLJIT_SP) | imm)); in sljit_emit_enter()
1313 FAIL_IF(load_immediate(compiler, TMP_REG2, ((sljit_uw)local_size >> 12) - 1)); in sljit_emit_enter()
1314 FAIL_IF(push_inst32(compiler, LDRI | 0x400 | RT4(TMP_REG1) | RN4(SLJIT_SP))); in sljit_emit_enter()
1315 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(SLJIT_SP) | RN4(SLJIT_SP) | imm)); in sljit_emit_enter()
1316 FAIL_IF(push_inst32(compiler, SUB_WI | SET_FLAGS | RD4(TMP_REG2) | RN4(TMP_REG2) | 1)); in sljit_emit_enter()
1317 FAIL_IF(push_inst16(compiler, BCC | (0x1 << 8) /* not-equal */ | (-8 & 0xff))); in sljit_emit_enter()
1320 FAIL_IF(push_inst32(compiler, LDRI | 0x400 | RT4(TMP_REG1) | RN4(SLJIT_SP))); in sljit_emit_enter()
1328 FAIL_IF(push_inst16(compiler, SUB_SP_I | ((sljit_uw)local_size >> 2))); in sljit_emit_enter()
1330 FAIL_IF(emit_op_imm(compiler, SLJIT_SUB | ARG2_IMM, SLJIT_SP, SLJIT_SP, (sljit_uw)local_size)); in sljit_emit_enter()
1332 FAIL_IF(push_inst32(compiler, LDRI | 0x400 | RT4(TMP_REG1) | RN4(SLJIT_SP))); in sljit_emit_enter()
1334 …FAIL_IF(push_inst32(compiler, LDRI | 0x500 | RT4(TMP_REG1) | RN4(SLJIT_SP) | (sljit_uw)local_size)… in sljit_emit_enter()
1338 FAIL_IF(push_inst16(compiler, SUB_SP_I | ((sljit_uw)local_size >> 2))); in sljit_emit_enter()
1340 FAIL_IF(emit_op_imm(compiler, SLJIT_SUB | ARG2_IMM, SLJIT_SP, SLJIT_SP, (sljit_uw)local_size)); in sljit_emit_enter()
1347 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context(struct sljit_compiler *compiler, in sljit_set_context() argument
1354 …CHECK(check_sljit_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds… in sljit_set_context()
1355 set_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); in sljit_set_context()
1362 compiler->local_size = ((size + local_size + 0x7) & ~0x7) - size; in sljit_set_context()
1366 static sljit_s32 emit_add_sp(struct sljit_compiler *compiler, sljit_uw imm) in emit_add_sp() argument
1372 return push_inst16(compiler, ADD_SP_I | (imm >> 2)); in emit_add_sp()
1375 return push_inst32(compiler, ADDWI | RD4(SLJIT_SP) | RN4(SLJIT_SP) | IMM12(imm)); in emit_add_sp()
1380 return push_inst32(compiler, ADD_WI | RD4(SLJIT_SP) | RN4(SLJIT_SP) | imm2); in emit_add_sp()
1382 FAIL_IF(load_immediate(compiler, TMP_REG2, imm)); in emit_add_sp()
1383 return push_inst16(compiler, ADD_SP | RN3(TMP_REG2)); in emit_add_sp()
1386 static sljit_s32 emit_stack_frame_release(struct sljit_compiler *compiler, sljit_s32 frame_size) in emit_stack_frame_release() argument
1395 local_size = compiler->local_size; in emit_stack_frame_release()
1396 fscratches = compiler->fscratches; in emit_stack_frame_release()
1397 fsaveds = compiler->fsaveds; in emit_stack_frame_release()
1401 FAIL_IF(emit_add_sp(compiler, (sljit_uw)local_size)); in emit_stack_frame_release()
1404 …FAIL_IF(push_inst32(compiler, VPOP | DD4(SLJIT_FS0) | ((sljit_uw)SLJIT_NUMBER_OF_SAVED_FLOAT_REGIS… in emit_stack_frame_release()
1407 …FAIL_IF(push_inst32(compiler, VPOP | DD4(fscratches) | ((sljit_uw)(fscratches - (SLJIT_FIRST_SAVED… in emit_stack_frame_release()
1409 FAIL_IF(push_inst32(compiler, VPOP | DD4(SLJIT_FS0) | ((sljit_uw)fsaveds << 1))); in emit_stack_frame_release()
1412 local_size = GET_SAVED_REGISTERS_SIZE(compiler->scratches, compiler->saveds, 1) & 0x7; in emit_stack_frame_release()
1424 tmp = SLJIT_S0 - compiler->saveds; in emit_stack_frame_release()
1425 i = SLJIT_S0 - SLJIT_KEPT_SAVEDS_COUNT(compiler->options); in emit_stack_frame_release()
1433 i = compiler->scratches; in emit_stack_frame_release()
1456 return push_inst32(compiler, LDRI | RT4(restored_reg) | RN4(SLJIT_SP) | 0x308); in emit_stack_frame_release()
1458 …return push_inst32(compiler, LDRI | RT4(restored_reg) | RN4(SLJIT_SP) | 0x100 | (sljit_ins)(frame_… in emit_stack_frame_release()
1462 …FAIL_IF(push_inst16(compiler, STR_SP | 0x800 | RDN3(restored_reg) | (sljit_ins)(local_size >> 2))); in emit_stack_frame_release()
1464 … FAIL_IF(push_inst32(compiler, LDR | RT4(restored_reg) | RN4(SLJIT_SP) | (sljit_ins)local_size)); in emit_stack_frame_release()
1480 FAIL_IF(push_inst16(compiler, SUB_SP_I | ((sljit_ins)(frame_size - local_size) >> 2))); in emit_stack_frame_release()
1482 FAIL_IF(emit_add_sp(compiler, (sljit_uw)(local_size - frame_size))); in emit_stack_frame_release()
1493 … return push_inst16(compiler, STR_SP | 0x800 | RDN3(restored_reg) | (sljit_ins)(frame_size >> 2)); in emit_stack_frame_release()
1495 return push_inst32(compiler, LDR | RT4(restored_reg) | RN4(SLJIT_SP) | (sljit_ins)frame_size); in emit_stack_frame_release()
1499 return push_inst32(compiler, LDRI | RT4(restored_reg) | RN4(SLJIT_SP) | (sljit_ins)tmp); in emit_stack_frame_release()
1503 FAIL_IF(emit_add_sp(compiler, (sljit_uw)local_size)); in emit_stack_frame_release()
1512 FAIL_IF(push_inst16(compiler, POP | reg_list)); in emit_stack_frame_release()
1520 FAIL_IF(push_inst32(compiler, POP_W | reg_list)); in emit_stack_frame_release()
1524 return push_inst16(compiler, SUB_SP_I | (((sljit_ins)frame_size - sizeof(sljit_sw)) >> 2)); in emit_stack_frame_release()
1529 return push_inst16(compiler, ADD_SP_I | 1); in emit_stack_frame_release()
1532 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return_void(struct sljit_compiler *compiler) in sljit_emit_return_void() argument
1535 CHECK(check_sljit_emit_return_void(compiler)); in sljit_emit_return_void()
1537 return emit_stack_frame_release(compiler, 0); in sljit_emit_return_void()
1540 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return_to(struct sljit_compiler *compiler, in sljit_emit_return_to() argument
1544 CHECK(check_sljit_emit_return_to(compiler, src, srcw)); in sljit_emit_return_to()
1547 FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG1, src, srcw, TMP_REG1)); in sljit_emit_return_to()
1550 …} else if (src >= SLJIT_FIRST_SAVED_REG && src <= (SLJIT_S0 - SLJIT_KEPT_SAVEDS_COUNT(compiler->op… in sljit_emit_return_to()
1551 FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(TMP_REG1, src))); in sljit_emit_return_to()
1556 FAIL_IF(emit_stack_frame_release(compiler, 1)); in sljit_emit_return_to()
1558 SLJIT_SKIP_CHECKS(compiler); in sljit_emit_return_to()
1559 return sljit_emit_ijump(compiler, SLJIT_JUMP, src, srcw); in sljit_emit_return_to()
1588 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0(struct sljit_compiler *compiler, sljit_s32 op) in sljit_emit_op0() argument
1596 CHECK(check_sljit_emit_op0(compiler, op)); in sljit_emit_op0()
1601 return push_inst16(compiler, BKPT); in sljit_emit_op0()
1603 return push_inst16(compiler, NOP); in sljit_emit_op0()
1606 return push_inst32(compiler, (op == SLJIT_LMUL_UW ? UMULL : SMULL) in sljit_emit_op0()
1611 FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(TMP_REG1, SLJIT_R0))); in sljit_emit_op0()
1612 …FAIL_IF(push_inst32(compiler, (op == SLJIT_DIVMOD_UW ? UDIV : SDIV) | RD4(SLJIT_R0) | RN4(SLJIT_R0… in sljit_emit_op0()
1613 FAIL_IF(push_inst32(compiler, MUL | RD4(SLJIT_R1) | RN4(SLJIT_R0) | RM4(SLJIT_R1))); in sljit_emit_op0()
1614 return push_inst32(compiler, SUB_W | RD4(SLJIT_R1) | RN4(TMP_REG1) | RM4(SLJIT_R1)); in sljit_emit_op0()
1617 …return push_inst32(compiler, (op == SLJIT_DIV_UW ? UDIV : SDIV) | RD4(SLJIT_R0) | RN4(SLJIT_R0) | … in sljit_emit_op0()
1627 if (compiler->scratches >= 4) in sljit_emit_op0()
1629 if (compiler->scratches >= 3) in sljit_emit_op0()
1635 FAIL_IF(push_inst32(compiler, 0xf84d0d00 | (saved_reg_count >= 3 ? 16 : 8) in sljit_emit_op0()
1639 FAIL_IF(push_inst16(compiler, 0x9001 | (saved_reg_list[1] << 8) /* str rX, [sp, #4] */)); in sljit_emit_op0()
1643 FAIL_IF(push_inst16(compiler, 0x9002 | (saved_reg_list[2] << 8) /* str rX, [sp, #8] */)); in sljit_emit_op0()
1648 FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(TMP_REG1, SLJIT_R0))); in sljit_emit_op0()
1649 FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(SLJIT_R0, SLJIT_R1))); in sljit_emit_op0()
1650 FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(SLJIT_R1, TMP_REG1))); in sljit_emit_op0()
1651 FAIL_IF(sljit_emit_ijump(compiler, SLJIT_FAST_CALL, SLJIT_IMM, in sljit_emit_op0()
1654 FAIL_IF(sljit_emit_ijump(compiler, SLJIT_FAST_CALL, SLJIT_IMM, in sljit_emit_op0()
1663 FAIL_IF(push_inst16(compiler, 0x9802 | (saved_reg_list[2] << 8) /* ldr rX, [sp, #8] */)); in sljit_emit_op0()
1667 FAIL_IF(push_inst16(compiler, 0x9801 | (saved_reg_list[1] << 8) /* ldr rX, [sp, #4] */)); in sljit_emit_op0()
1669 return push_inst32(compiler, 0xf85d0b00 | (saved_reg_count >= 3 ? 16 : 8) in sljit_emit_op0()
1682 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op1() argument
1690 CHECK(check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw)); in sljit_emit_op1()
1733 FAIL_IF(emit_op_imm(compiler, SLJIT_MOV | ARG2_IMM, dst_r, TMP_REG2, (sljit_uw)srcw)); in sljit_emit_op1()
1735 FAIL_IF(emit_op_mem(compiler, flags, dst_r, src, srcw, TMP_REG1)); in sljit_emit_op1()
1738 return emit_op_imm(compiler, op, dst_r, TMP_REG2, (sljit_uw)src); in sljit_emit_op1()
1745 return emit_op_mem(compiler, flags | STORE, dst_r, dst, dstw, TMP_REG2); in sljit_emit_op1()
1751 FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG1, src, srcw, TMP_REG1)); in sljit_emit_op1()
1755 emit_op_imm(compiler, flags | op, dst_r, TMP_REG2, (sljit_uw)src); in sljit_emit_op1()
1758 return emit_op_mem(compiler, flags | STORE, dst_r, dst, dstw, TMP_REG2); in sljit_emit_op1()
1762 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op2() argument
1770 CHECK(check_sljit_emit_op2(compiler, op, 0, dst, dstw, src1, src1w, src2, src2w)); in sljit_emit_op2()
1784 emit_op_mem(compiler, WORD_SIZE, TMP_REG1, src1, src1w, TMP_REG1); in sljit_emit_op2()
1794 emit_op_mem(compiler, WORD_SIZE, src2_reg, src2, src2w, src2_reg); in sljit_emit_op2()
1800 emit_op_imm(compiler, flags | GET_OPCODE(op), dst_reg, (sljit_uw)src1w, (sljit_uw)src2w); in sljit_emit_op2()
1804 return emit_op_mem(compiler, WORD_SIZE | STORE, dst_reg, dst, dstw, TMP_REG2); in sljit_emit_op2()
1807 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2u(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op2u() argument
1812 CHECK(check_sljit_emit_op2(compiler, op, 1, 0, 0, src1, src1w, src2, src2w)); in sljit_emit_op2u()
1814 SLJIT_SKIP_CHECKS(compiler); in sljit_emit_op2u()
1815 return sljit_emit_op2(compiler, op, TMP_REG1, 0, src1, src1w, src2, src2w); in sljit_emit_op2u()
1818 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_shift_into(struct sljit_compiler *compiler, sljit_s32… in sljit_emit_shift_into() argument
1826 CHECK(check_sljit_emit_shift_into(compiler, op, src_dst, src1, src1w, src2, src2w)); in sljit_emit_shift_into()
1832 SLJIT_SKIP_CHECKS(compiler); in sljit_emit_shift_into()
1833 …return sljit_emit_op2(compiler, is_left ? SLJIT_ROTL : SLJIT_ROTR, src_dst, 0, src_dst, 0, src2, s… in sljit_emit_shift_into()
1845 FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG2, src2, src2w, TMP_REG2)); in sljit_emit_shift_into()
1850 FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG1, src1, src1w, TMP_REG1)); in sljit_emit_shift_into()
1853 FAIL_IF(load_immediate(compiler, TMP_REG1, (sljit_uw)src1w)); in sljit_emit_shift_into()
1859 …FAIL_IF(push_inst16(compiler, (is_left ? LSLSI : LSRSI) | RD3(src_dst) | RN3(src_dst) | ((sljit_in… in sljit_emit_shift_into()
1861 …FAIL_IF(push_inst32(compiler, (is_left ? LSL_WI : LSR_WI) | RD4(src_dst) | RM4(src_dst) | IMM5(src… in sljit_emit_shift_into()
1864 …return push_inst32(compiler, ORR_W | RD4(src_dst) | RN4(src_dst) | RM4(src1) | (is_left ? 0x10 : 0… in sljit_emit_shift_into()
1868 FAIL_IF(push_inst32(compiler, ANDI | RD4(TMP_REG2) | RN4(src2) | 0x1f)); in sljit_emit_shift_into()
1873 FAIL_IF(push_inst16(compiler, (is_left ? LSLS : LSRS) | RD3(src_dst) | RN3(src2))); in sljit_emit_shift_into()
1875 …FAIL_IF(push_inst32(compiler, (is_left ? LSL_W : LSR_W) | RD4(src_dst) | RN4(src_dst) | RM4(src2))… in sljit_emit_shift_into()
1877 FAIL_IF(push_inst32(compiler, (is_left ? LSR_WI : LSL_WI) | RD4(TMP_REG1) | RM4(src1) | (1 << 6))); in sljit_emit_shift_into()
1878 FAIL_IF(push_inst32(compiler, EORI | RD4(TMP_REG2) | RN4(src2) | 0x1f)); in sljit_emit_shift_into()
1879 …FAIL_IF(push_inst32(compiler, (is_left ? LSR_W : LSL_W) | RD4(TMP_REG1) | RN4(TMP_REG1) | RM4(TMP_… in sljit_emit_shift_into()
1880 return push_inst32(compiler, ORR_W | RD4(src_dst) | RN4(src_dst) | RM4(TMP_REG1)); in sljit_emit_shift_into()
1883 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_src(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op_src() argument
1887 CHECK(check_sljit_emit_op_src(compiler, op, src, srcw)); in sljit_emit_op_src()
1895 FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(TMP_REG2, src))); in sljit_emit_op_src()
1897 FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG2, src, srcw, TMP_REG2)); in sljit_emit_op_src()
1899 return push_inst16(compiler, BX | RN3(TMP_REG2)); in sljit_emit_op_src()
1906 return emit_op_mem(compiler, PRELOAD, TMP_PC, src, srcw, TMP_REG1); in sljit_emit_op_src()
1924 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom(struct sljit_compiler *compiler, in sljit_emit_op_custom() argument
1928 CHECK(check_sljit_emit_op_custom(compiler, instruction, size)); in sljit_emit_op_custom()
1931 return push_inst16(compiler, *(sljit_u16*)instruction); in sljit_emit_op_custom()
1932 return push_inst32(compiler, *(sljit_ins*)instruction); in sljit_emit_op_custom()
1941 static sljit_s32 emit_fop_mem(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, slji… in emit_fop_mem() argument
1950 …FAIL_IF(push_inst32(compiler, ADD_W | RD4(TMP_REG1) | RN4(arg & REG_MASK) | RM4(OFFS_REG(arg)) | (… in emit_fop_mem()
1957 …return push_inst32(compiler, inst | 0x800000 | RN4(arg & REG_MASK) | DD4(reg) | ((sljit_uw)argw >>… in emit_fop_mem()
1959 return push_inst32(compiler, inst | RN4(arg & REG_MASK) | DD4(reg) | ((sljit_uw)-argw >> 2)); in emit_fop_mem()
1963 if (emit_set_delta(compiler, TMP_REG1, arg & REG_MASK, argw) != SLJIT_ERR_UNSUPPORTED) { in emit_fop_mem()
1964 FAIL_IF(compiler->error); in emit_fop_mem()
1965 return push_inst32(compiler, inst | 0x800000 | RN4(TMP_REG1) | DD4(reg)); in emit_fop_mem()
1970 FAIL_IF(push_inst32(compiler, ADD_WI | RD4(TMP_REG1) | RN4(arg & REG_MASK) | imm)); in emit_fop_mem()
1971 …return push_inst32(compiler, inst | 0x800000 | RN4(TMP_REG1) | DD4(reg) | (((sljit_uw)argw & 0x3fc… in emit_fop_mem()
1977 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(arg & REG_MASK) | imm)); in emit_fop_mem()
1978 return push_inst32(compiler, inst | RN4(TMP_REG1) | DD4(reg) | (((sljit_uw)argw & 0x3fc) >> 2)); in emit_fop_mem()
1982 FAIL_IF(load_immediate(compiler, TMP_REG1, (sljit_uw)argw)); in emit_fop_mem()
1984 FAIL_IF(push_inst16(compiler, ADD | SET_REGS44(TMP_REG1, (arg & REG_MASK)))); in emit_fop_mem()
1985 return push_inst32(compiler, inst | 0x800000 | RN4(TMP_REG1) | DD4(reg)); in emit_fop_mem()
1988 static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_sw_from_f64(struct sljit_compiler *compiler, slj… in sljit_emit_fop1_conv_sw_from_f64() argument
1995 FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_32) | FPU_LOAD, TMP_FREG1, src, srcw)); in sljit_emit_fop1_conv_sw_from_f64()
1999 FAIL_IF(push_inst32(compiler, VCVT_S32_F32 | (op & SLJIT_32) | DD4(TMP_FREG1) | DM4(src))); in sljit_emit_fop1_conv_sw_from_f64()
2002 return push_inst32(compiler, VMOV | (1 << 20) | RT4(dst) | DN4(TMP_FREG1)); in sljit_emit_fop1_conv_sw_from_f64()
2005 return emit_fop_mem(compiler, 0, TMP_FREG1, dst, dstw); in sljit_emit_fop1_conv_sw_from_f64()
2008 static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_sw(struct sljit_compiler *compiler, slj… in sljit_emit_fop1_conv_f64_from_sw() argument
2017 FAIL_IF(push_inst32(compiler, VMOV | RT4(src) | DN4(TMP_FREG1))); in sljit_emit_fop1_conv_f64_from_sw()
2020 FAIL_IF(emit_fop_mem(compiler, FPU_LOAD, TMP_FREG1, src, srcw)); in sljit_emit_fop1_conv_f64_from_sw()
2023 FAIL_IF(load_immediate(compiler, TMP_REG1, (sljit_uw)srcw)); in sljit_emit_fop1_conv_f64_from_sw()
2024 FAIL_IF(push_inst32(compiler, VMOV | RT4(TMP_REG1) | DN4(TMP_FREG1))); in sljit_emit_fop1_conv_f64_from_sw()
2027 FAIL_IF(push_inst32(compiler, VCVT_F32_S32 | (op & SLJIT_32) | DD4(dst_r) | DM4(TMP_FREG1))); in sljit_emit_fop1_conv_f64_from_sw()
2030 return emit_fop_mem(compiler, (op & SLJIT_32), TMP_FREG1, dst, dstw); in sljit_emit_fop1_conv_f64_from_sw()
2034 static SLJIT_INLINE sljit_s32 sljit_emit_fop1_cmp(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1_cmp() argument
2041 emit_fop_mem(compiler, (op & SLJIT_32) | FPU_LOAD, TMP_FREG1, src1, src1w); in sljit_emit_fop1_cmp()
2046 emit_fop_mem(compiler, (op & SLJIT_32) | FPU_LOAD, TMP_FREG2, src2, src2w); in sljit_emit_fop1_cmp()
2050 FAIL_IF(push_inst32(compiler, VCMP_F32 | (op & SLJIT_32) | DD4(src1) | DM4(src2))); in sljit_emit_fop1_cmp()
2051 return push_inst32(compiler, VMRS); in sljit_emit_fop1_cmp()
2054 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1() argument
2063 SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw); in sljit_emit_fop1()
2071 emit_fop_mem(compiler, (op & SLJIT_32) | FPU_LOAD, dst_r, src, srcw); in sljit_emit_fop1()
2079 FAIL_IF(push_inst32(compiler, VMOV_F32 | (op & SLJIT_32) | DD4(dst_r) | DM4(src))); in sljit_emit_fop1()
2085 FAIL_IF(push_inst32(compiler, VNEG_F32 | (op & SLJIT_32) | DD4(dst_r) | DM4(src))); in sljit_emit_fop1()
2088 FAIL_IF(push_inst32(compiler, VABS_F32 | (op & SLJIT_32) | DD4(dst_r) | DM4(src))); in sljit_emit_fop1()
2091 FAIL_IF(push_inst32(compiler, VCVT_F64_F32 | (op & SLJIT_32) | DD4(dst_r) | DM4(src))); in sljit_emit_fop1()
2097 return emit_fop_mem(compiler, (op & SLJIT_32), dst_r, dst, dstw); in sljit_emit_fop1()
2101 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop2() argument
2109 CHECK(check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w)); in sljit_emit_fop2()
2118 emit_fop_mem(compiler, (op & SLJIT_32) | FPU_LOAD, TMP_FREG1, src1, src1w); in sljit_emit_fop2()
2122 emit_fop_mem(compiler, (op & SLJIT_32) | FPU_LOAD, TMP_FREG2, src2, src2w); in sljit_emit_fop2()
2128 FAIL_IF(push_inst32(compiler, VADD_F32 | (op & SLJIT_32) | DD4(dst_r) | DN4(src1) | DM4(src2))); in sljit_emit_fop2()
2131 FAIL_IF(push_inst32(compiler, VSUB_F32 | (op & SLJIT_32) | DD4(dst_r) | DN4(src1) | DM4(src2))); in sljit_emit_fop2()
2134 FAIL_IF(push_inst32(compiler, VMUL_F32 | (op & SLJIT_32) | DD4(dst_r) | DN4(src1) | DM4(src2))); in sljit_emit_fop2()
2137 FAIL_IF(push_inst32(compiler, VDIV_F32 | (op & SLJIT_32) | DD4(dst_r) | DN4(src1) | DM4(src2))); in sljit_emit_fop2()
2143 return emit_fop_mem(compiler, (op & SLJIT_32), TMP_FREG1, dst, dstw); in sljit_emit_fop2()
2150 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_s32… in sljit_emit_fast_enter() argument
2153 CHECK(check_sljit_emit_fast_enter(compiler, dst, dstw)); in sljit_emit_fast_enter()
2159 return push_inst16(compiler, MOV | SET_REGS44(dst, TMP_REG2)); in sljit_emit_fast_enter()
2162 return emit_op_mem(compiler, WORD_SIZE | STORE, TMP_REG2, dst, dstw, TMP_REG1); in sljit_emit_fast_enter()
2169 static sljit_uw get_cc(struct sljit_compiler *compiler, sljit_s32 type) in get_cc() argument
2185 if (compiler->status_flags_state & SLJIT_CURRENT_FLAGS_ADD) in get_cc()
2193 if (compiler->status_flags_state & SLJIT_CURRENT_FLAGS_ADD) in get_cc()
2228 if (!(compiler->status_flags_state & (SLJIT_CURRENT_FLAGS_ADD | SLJIT_CURRENT_FLAGS_SUB))) in get_cc()
2236 if (!(compiler->status_flags_state & (SLJIT_CURRENT_FLAGS_ADD | SLJIT_CURRENT_FLAGS_SUB))) in get_cc()
2256 SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label(struct sljit_compiler *compiler) in sljit_emit_label() argument
2261 CHECK_PTR(check_sljit_emit_label(compiler)); in sljit_emit_label()
2263 if (compiler->last_label && compiler->last_label->size == compiler->size) in sljit_emit_label()
2264 return compiler->last_label; in sljit_emit_label()
2266 label = (struct sljit_label*)ensure_abuf(compiler, sizeof(struct sljit_label)); in sljit_emit_label()
2268 set_label(label, compiler); in sljit_emit_label()
2272 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compiler *compiler, sljit_… in sljit_emit_jump() argument
2278 CHECK_PTR(check_sljit_emit_jump(compiler, type)); in sljit_emit_jump()
2280 jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump)); in sljit_emit_jump()
2282 set_jump(jump, compiler, type & SLJIT_REWRITABLE_JUMP); in sljit_emit_jump()
2285 PTR_FAIL_IF(emit_imm32_const(compiler, TMP_REG1, 0)); in sljit_emit_jump()
2288 cc = get_cc(compiler, type); in sljit_emit_jump()
2290 PTR_FAIL_IF(push_inst16(compiler, IT | (cc << 4) | 0x8)); in sljit_emit_jump()
2293 jump->addr = compiler->size; in sljit_emit_jump()
2295 PTR_FAIL_IF(push_inst16(compiler, BX | RN3(TMP_REG1))); in sljit_emit_jump()
2298 PTR_FAIL_IF(push_inst16(compiler, BLX | RN3(TMP_REG1))); in sljit_emit_jump()
2306 static sljit_s32 softfloat_call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types, slj… in softfloat_call_with_args() argument
2348 if (offset > 4 * sizeof(sljit_sw) && (!is_tail_call || offset > compiler->args_size)) { in softfloat_call_with_args()
2358 FAIL_IF(emit_stack_frame_release(compiler, (sljit_s32)offset)); in softfloat_call_with_args()
2360 FAIL_IF(push_inst16(compiler, SUB_SP_I | (offset >> 2))); in softfloat_call_with_args()
2363 FAIL_IF(emit_stack_frame_release(compiler, -1)); in softfloat_call_with_args()
2380 FAIL_IF(push_inst16(compiler, MOV | (src_offset << 1) | 4 | (1 << 7))); in softfloat_call_with_args()
2383 …FAIL_IF(push_inst32(compiler, VMOV2 | 0x100000 | (offset << 10) | ((offset + sizeof(sljit_sw)) << … in softfloat_call_with_args()
2385 FAIL_IF(push_inst32(compiler, VSTR_F32 | 0x800100 | RN4(SLJIT_SP) in softfloat_call_with_args()
2394 FAIL_IF(push_inst16(compiler, MOV | (src_offset << 1) | 4 | (1 << 7))); in softfloat_call_with_args()
2397 FAIL_IF(push_inst32(compiler, VMOV | 0x100000 | (float_arg_count << 16) | (offset << 10))); in softfloat_call_with_args()
2399 FAIL_IF(push_inst32(compiler, VSTR_F32 | 0x800000 | RN4(SLJIT_SP) in softfloat_call_with_args()
2411 FAIL_IF(push_inst16(compiler, MOV | (src_offset << 1) | 4 | (1 << 7))); in softfloat_call_with_args()
2418 FAIL_IF(push_inst16(compiler, MOV | (offset >> 2) | (word_arg_offset << 1))); in softfloat_call_with_args()
2420 …FAIL_IF(push_inst16(compiler, STR_SP | (word_arg_offset << 6) | ((offset - 4 * sizeof(sljit_sw)) >… in softfloat_call_with_args()
2431 static sljit_s32 softfloat_post_call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types) in softfloat_post_call_with_args() argument
2434 FAIL_IF(push_inst32(compiler, VMOV2 | (1 << 16) | (0 << 12) | 0)); in softfloat_post_call_with_args()
2436 FAIL_IF(push_inst32(compiler, VMOV | (0 << 16) | (0 << 12))); in softfloat_post_call_with_args()
2443 static sljit_s32 hardfloat_call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types) in hardfloat_call_with_args() argument
2456 FAIL_IF(push_inst32(compiler, VMOV_F32 | SLJIT_32 | DD4(new_offset) | DM4(offset))); in hardfloat_call_with_args()
2463 FAIL_IF(push_inst32(compiler, VMOV_F32 | 0x400000 | DD4(f32_offset) | DM4(offset))); in hardfloat_call_with_args()
2467 FAIL_IF(push_inst32(compiler, VMOV_F32 | 0x400000 | DD4(new_offset) | DM4(offset))); in hardfloat_call_with_args()
2482 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_call(struct sljit_compiler *compiler, sljit_… in sljit_emit_call() argument
2491 CHECK_PTR(check_sljit_emit_call(compiler, type, arg_types)); in sljit_emit_call()
2495 PTR_FAIL_IF(softfloat_call_with_args(compiler, arg_types, NULL, &extra_space)); in sljit_emit_call()
2501 SLJIT_SKIP_CHECKS(compiler); in sljit_emit_call()
2502 jump = sljit_emit_jump(compiler, type); in sljit_emit_call()
2507 PTR_FAIL_IF(push_inst32(compiler, LDR | RT4(TMP_REG2) in sljit_emit_call()
2510 PTR_FAIL_IF(push_inst16(compiler, ADD_SP_I | (extra_space >> 2))); in sljit_emit_call()
2513 PTR_FAIL_IF(push_inst16(compiler, BX | RN3(TMP_REG2))); in sljit_emit_call()
2519 PTR_FAIL_IF(softfloat_post_call_with_args(compiler, arg_types)); in sljit_emit_call()
2526 PTR_FAIL_IF(emit_stack_frame_release(compiler, -1)); in sljit_emit_call()
2532 PTR_FAIL_IF(hardfloat_call_with_args(compiler, arg_types)); in sljit_emit_call()
2535 SLJIT_SKIP_CHECKS(compiler); in sljit_emit_call()
2536 return sljit_emit_jump(compiler, type); in sljit_emit_call()
2539 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compiler, sljit_s32 type… in sljit_emit_ijump() argument
2544 CHECK(check_sljit_emit_ijump(compiler, type, src, srcw)); in sljit_emit_ijump()
2552 return push_inst16(compiler, (type <= SLJIT_JUMP ? BX : BLX) | RN3(src)); in sljit_emit_ijump()
2555 …FAIL_IF(emit_op_mem(compiler, WORD_SIZE, type <= SLJIT_JUMP ? TMP_PC : TMP_REG1, src, srcw, TMP_RE… in sljit_emit_ijump()
2557 return push_inst16(compiler, BLX | RN3(TMP_REG1)); in sljit_emit_ijump()
2561 jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump)); in sljit_emit_ijump()
2563 set_jump(jump, compiler, JUMP_ADDR | ((type >= SLJIT_FAST_CALL) ? IS_BL : 0)); in sljit_emit_ijump()
2566 FAIL_IF(emit_imm32_const(compiler, TMP_REG1, 0)); in sljit_emit_ijump()
2567 jump->addr = compiler->size; in sljit_emit_ijump()
2568 return push_inst16(compiler, (type <= SLJIT_JUMP ? BX : BLX) | RN3(TMP_REG1)); in sljit_emit_ijump()
2571 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_icall() argument
2580 CHECK(check_sljit_emit_icall(compiler, type, arg_types, src, srcw)); in sljit_emit_icall()
2583 FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG1, src, srcw, TMP_REG1)); in sljit_emit_icall()
2587 …(src >= SLJIT_FIRST_SAVED_REG && src <= (SLJIT_S0 - SLJIT_KEPT_SAVEDS_COUNT(compiler->options)))) { in sljit_emit_icall()
2588 FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(TMP_REG1, src))); in sljit_emit_icall()
2594 FAIL_IF(softfloat_call_with_args(compiler, arg_types, &src, &extra_space)); in sljit_emit_icall()
2600 SLJIT_SKIP_CHECKS(compiler); in sljit_emit_icall()
2601 FAIL_IF(sljit_emit_ijump(compiler, type, src, srcw)); in sljit_emit_icall()
2605 FAIL_IF(push_inst32(compiler, LDR | RT4(TMP_REG2) in sljit_emit_icall()
2608 FAIL_IF(push_inst16(compiler, ADD_SP_I | (extra_space >> 2))); in sljit_emit_icall()
2611 return push_inst16(compiler, BX | RN3(TMP_REG2)); in sljit_emit_icall()
2615 return softfloat_post_call_with_args(compiler, arg_types); in sljit_emit_icall()
2621 FAIL_IF(emit_stack_frame_release(compiler, -1)); in sljit_emit_icall()
2627 FAIL_IF(hardfloat_call_with_args(compiler, arg_types)); in sljit_emit_icall()
2630 SLJIT_SKIP_CHECKS(compiler); in sljit_emit_icall()
2631 return sljit_emit_ijump(compiler, type, src, srcw); in sljit_emit_icall()
2636 static SLJIT_INLINE sljit_s32 emit_fmov_before_return(struct sljit_compiler *compiler, sljit_s32 op… in emit_fmov_before_return() argument
2638 if (compiler->options & SLJIT_ENTER_REG_ARG) { in emit_fmov_before_return()
2642 SLJIT_SKIP_CHECKS(compiler); in emit_fmov_before_return()
2643 return sljit_emit_fop1(compiler, op, SLJIT_RETURN_FREG, 0, src, srcw); in emit_fmov_before_return()
2648 return push_inst32(compiler, VMOV | (1 << 20) | DN4(src) | RT4(SLJIT_R0)); in emit_fmov_before_return()
2649 return push_inst32(compiler, VMOV2 | (1 << 20) | DM4(src) | RT4(SLJIT_R0) | RN4(SLJIT_R1)); in emit_fmov_before_return()
2652 SLJIT_SKIP_CHECKS(compiler); in emit_fmov_before_return()
2655 return sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R0, 0, src, srcw); in emit_fmov_before_return()
2656 return sljit_emit_mem(compiler, SLJIT_MOV, SLJIT_REG_PAIR(SLJIT_R0, SLJIT_R1), src, srcw); in emit_fmov_before_return()
2661 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_s32 o… in sljit_emit_op_flags() argument
2669 CHECK(check_sljit_emit_op_flags(compiler, op, dst, dstw, type)); in sljit_emit_op_flags()
2673 cc = get_cc(compiler, type); in sljit_emit_op_flags()
2677 FAIL_IF(push_inst16(compiler, IT | (cc << 4) | (((cc & 0x1) ^ 0x1) << 3) | 0x4)); in sljit_emit_op_flags()
2679 FAIL_IF(push_inst32(compiler, MOV_WI | RD4(dst_r) | 1)); in sljit_emit_op_flags()
2680 FAIL_IF(push_inst32(compiler, MOV_WI | RD4(dst_r) | 0)); in sljit_emit_op_flags()
2683 FAIL_IF(push_inst16(compiler, MOVSI | RDN3(dst_r) | 1)); in sljit_emit_op_flags()
2684 FAIL_IF(push_inst16(compiler, MOVSI | RDN3(dst_r) | 0)); in sljit_emit_op_flags()
2688 return emit_op_mem(compiler, WORD_SIZE | STORE, TMP_REG1, dst, dstw, TMP_REG2); in sljit_emit_op_flags()
2692 FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG1, dst, dstw, TMP_REG2)); in sljit_emit_op_flags()
2695 FAIL_IF(push_inst16(compiler, IT | (cc << 4) | (((cc & 0x1) ^ 0x1) << 3) | 0x4)); in sljit_emit_op_flags()
2696 FAIL_IF(push_inst32(compiler, ANDI | RN4(dst_r) | RD4(dst_r) | 1)); in sljit_emit_op_flags()
2697 FAIL_IF(push_inst32(compiler, ANDI | RN4(dst_r) | RD4(dst_r) | 0)); in sljit_emit_op_flags()
2700 FAIL_IF(push_inst16(compiler, IT | (cc << 4) | 0x8)); in sljit_emit_op_flags()
2701 FAIL_IF(push_inst32(compiler, ((op == SLJIT_OR) ? ORRI : EORI) | RN4(dst_r) | RD4(dst_r) | 1)); in sljit_emit_op_flags()
2705 FAIL_IF(emit_op_mem(compiler, WORD_SIZE | STORE, TMP_REG1, dst, dstw, TMP_REG2)); in sljit_emit_op_flags()
2711 return push_inst32(compiler, MOV_W | SET_FLAGS | RD4(TMP_REG1) | RM4(dst_r)); in sljit_emit_op_flags()
2714 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_cmov() argument
2721 CHECK(check_sljit_emit_cmov(compiler, type, dst_reg, src, srcw)); in sljit_emit_cmov()
2723 cc = get_cc(compiler, type & ~SLJIT_32); in sljit_emit_cmov()
2726 FAIL_IF(push_inst16(compiler, IT | (cc << 4) | 0x8)); in sljit_emit_cmov()
2727 return push_inst16(compiler, MOV | SET_REGS44(dst_reg, src)); in sljit_emit_cmov()
2734 FAIL_IF(push_inst16(compiler, IT | (cc << 4) | 0x8)); in sljit_emit_cmov()
2735 return push_inst32(compiler, MOVW | RD4(dst_reg) in sljit_emit_cmov()
2741 FAIL_IF(push_inst16(compiler, IT | (cc << 4) | 0x8)); in sljit_emit_cmov()
2742 return push_inst32(compiler, MOV_WI | RD4(dst_reg) | tmp); in sljit_emit_cmov()
2747 FAIL_IF(push_inst16(compiler, IT | (cc << 4) | 0x8)); in sljit_emit_cmov()
2748 return push_inst32(compiler, MVN_WI | RD4(dst_reg) | tmp); in sljit_emit_cmov()
2751 FAIL_IF(push_inst16(compiler, IT | (cc << 4) | ((cc & 0x1) << 3) | 0x4)); in sljit_emit_cmov()
2754 FAIL_IF(push_inst32(compiler, MOVW | RD4(dst_reg) in sljit_emit_cmov()
2756 return push_inst32(compiler, MOVT | RD4(dst_reg) in sljit_emit_cmov()
2760 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_mem() argument
2768 CHECK(check_sljit_emit_mem(compiler, type, reg, mem, memw)); in sljit_emit_mem()
2771 return sljit_emit_mem_unaligned(compiler, type, reg, mem, memw); in sljit_emit_mem()
2788 FAIL_IF(load_immediate(compiler, TMP_REG1, (sljit_uw)memw)); in sljit_emit_mem()
2791 FAIL_IF(push_inst32(compiler, MOV_WI | RD4(TMP_REG1) | imm)); in sljit_emit_mem()
2795 …FAIL_IF(push_inst32(compiler, ADD_W | RD4(TMP_REG1) | RN4(mem & REG_MASK) | RM4(OFFS_REG(mem)) | (… in sljit_emit_mem()
2809 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(mem & REG_MASK) | imm)); in sljit_emit_mem()
2813 FAIL_IF(load_immediate(compiler, TMP_REG1, (sljit_uw)memw)); in sljit_emit_mem()
2814 FAIL_IF(push_inst16(compiler, ADD | SET_REGS44(TMP_REG1, mem & REG_MASK))); in sljit_emit_mem()
2834 FAIL_IF(push_inst32(compiler, ADD_WI | RD4(TMP_REG1) | RN4(mem & REG_MASK) | imm)); in sljit_emit_mem()
2836 FAIL_IF(load_immediate(compiler, TMP_REG1, (sljit_uw)memw)); in sljit_emit_mem()
2837 FAIL_IF(push_inst16(compiler, ADD | SET_REGS44(TMP_REG1, mem & REG_MASK))); in sljit_emit_mem()
2851 …FAIL_IF(emit_op_mem(compiler, WORD_SIZE, REG_PAIR_SECOND(reg), mem, memw + SSIZE_OF(sw), TMP_REG2)… in sljit_emit_mem()
2852 return emit_op_mem(compiler, WORD_SIZE, REG_PAIR_FIRST(reg), mem, memw, TMP_REG2); in sljit_emit_mem()
2855 FAIL_IF(emit_op_mem(compiler, flags, REG_PAIR_FIRST(reg), mem, memw, TMP_REG2)); in sljit_emit_mem()
2856 return emit_op_mem(compiler, flags, REG_PAIR_SECOND(reg), mem, memw + SSIZE_OF(sw), TMP_REG2); in sljit_emit_mem()
2866 FAIL_IF(load_immediate(compiler, TMP_REG1, (sljit_uw)memw)); in sljit_emit_mem()
2869 FAIL_IF(push_inst32(compiler, MOV_WI | RD4(TMP_REG1) | imm)); in sljit_emit_mem()
2882 …FAIL_IF(push_inst32(compiler, ADD_W | RD4(TMP_REG1) | RN4(mem & REG_MASK) | RM4(OFFS_REG(mem)) | (… in sljit_emit_mem()
2894 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(mem & REG_MASK) | imm)); in sljit_emit_mem()
2902 FAIL_IF(load_immediate(compiler, TMP_REG1, (sljit_uw)memw)); in sljit_emit_mem()
2903 FAIL_IF(push_inst16(compiler, ADD | SET_REGS44(TMP_REG1, mem & REG_MASK))); in sljit_emit_mem()
2914 FAIL_IF(push_inst32(compiler, ADD_WI | RD4(TMP_REG1) | RN4(mem & REG_MASK) | imm)); in sljit_emit_mem()
2922 FAIL_IF(load_immediate(compiler, TMP_REG1, (sljit_uw)memw)); in sljit_emit_mem()
2923 FAIL_IF(push_inst16(compiler, ADD | SET_REGS44(TMP_REG1, mem & REG_MASK))); in sljit_emit_mem()
2932 …return push_inst32(compiler, ((type & SLJIT_MEM_STORE) ? STRD : LDRD) | (sljit_ins)flags | RN4(mem… in sljit_emit_mem()
2935 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem_update(struct sljit_compiler *compiler, sljit_s32… in sljit_emit_mem_update() argument
2943 CHECK(check_sljit_emit_mem_update(compiler, type, reg, mem, memw)); in sljit_emit_mem_update()
2990 return push_inst32(compiler, inst | RT4(reg) | RN4(mem & REG_MASK) | (sljit_ins)memw); in sljit_emit_mem_update()
2993 static sljit_s32 update_mem_addr(struct sljit_compiler *compiler, sljit_s32 *mem, sljit_sw *memw, s… in update_mem_addr() argument
3003 …return push_inst32(compiler, ADD_W | RD4(TMP_REG1) | RN4(arg & REG_MASK) | RM4(OFFS_REG(arg)) | ((… in update_mem_addr()
3019 return push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(arg) | imm); in update_mem_addr()
3026 return push_inst32(compiler, ADD_WI | RD4(TMP_REG1) | RN4(arg) | imm); in update_mem_addr()
3033 return push_inst32(compiler, ADD_WI | RD4(TMP_REG1) | RN4(arg) | imm); in update_mem_addr()
3046 FAIL_IF(load_immediate(compiler, TMP_REG1, imm)); in update_mem_addr()
3051 return push_inst16(compiler, ADD | SET_REGS44(TMP_REG1, arg)); in update_mem_addr()
3054 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fmem(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_fmem() argument
3059 CHECK(check_sljit_emit_fmem(compiler, type, freg, mem, memw)); in sljit_emit_fmem()
3062 …return emit_fop_mem(compiler, ((type ^ SLJIT_32) & SLJIT_32) | ((type & SLJIT_MEM_STORE) ? 0 : FPU… in sljit_emit_fmem()
3065 FAIL_IF(push_inst32(compiler, VMOV | (1 << 20) | DN4(freg) | RT4(TMP_REG2))); in sljit_emit_fmem()
3068 return emit_op_mem(compiler, WORD_SIZE | STORE, TMP_REG2, mem, memw, TMP_REG1); in sljit_emit_fmem()
3070 FAIL_IF(update_mem_addr(compiler, &mem, &memw, 0xfff - 4)); in sljit_emit_fmem()
3073 FAIL_IF(emit_op_mem(compiler, WORD_SIZE | STORE, TMP_REG2, mem, memw, TMP_REG1)); in sljit_emit_fmem()
3074 FAIL_IF(push_inst32(compiler, VMOV | (1 << 20) | DN4(freg) | 0x80 | RT4(TMP_REG2))); in sljit_emit_fmem()
3075 return emit_op_mem(compiler, WORD_SIZE | STORE, TMP_REG2, mem, memw + 4, TMP_REG1); in sljit_emit_fmem()
3079 FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG2, mem, memw, TMP_REG1)); in sljit_emit_fmem()
3080 return push_inst32(compiler, VMOV | DN4(freg) | RT4(TMP_REG2)); in sljit_emit_fmem()
3083 FAIL_IF(update_mem_addr(compiler, &mem, &memw, 0xfff - 4)); in sljit_emit_fmem()
3086 FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG2, mem, memw, TMP_REG1)); in sljit_emit_fmem()
3087 FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG1, mem, memw + 4, TMP_REG1)); in sljit_emit_fmem()
3088 return push_inst32(compiler, VMOV2 | DM4(freg) | RT4(TMP_REG2) | RN4(TMP_REG1)); in sljit_emit_fmem()
3093 SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compiler *compiler, slji… in sljit_emit_const() argument
3099 CHECK_PTR(check_sljit_emit_const(compiler, dst, dstw, init_value)); in sljit_emit_const()
3102 const_ = (struct sljit_const*)ensure_abuf(compiler, sizeof(struct sljit_const)); in sljit_emit_const()
3104 set_const(const_, compiler); in sljit_emit_const()
3107 PTR_FAIL_IF(emit_imm32_const(compiler, dst_r, (sljit_uw)init_value)); in sljit_emit_const()
3110 PTR_FAIL_IF(emit_op_mem(compiler, WORD_SIZE | STORE, dst_r, dst, dstw, TMP_REG2)); in sljit_emit_const()
3114 …UTE struct sljit_put_label* sljit_emit_put_label(struct sljit_compiler *compiler, sljit_s32 dst, s… in sljit_emit_put_label() argument
3120 CHECK_PTR(check_sljit_emit_put_label(compiler, dst, dstw)); in sljit_emit_put_label()
3123 put_label = (struct sljit_put_label*)ensure_abuf(compiler, sizeof(struct sljit_put_label)); in sljit_emit_put_label()
3125 set_put_label(put_label, compiler, 0); in sljit_emit_put_label()
3128 PTR_FAIL_IF(emit_imm32_const(compiler, dst_r, 0)); in sljit_emit_put_label()
3131 PTR_FAIL_IF(emit_op_mem(compiler, WORD_SIZE | STORE, dst_r, dst, dstw, TMP_REG2)); in sljit_emit_put_label()