Lines Matching refs:compiler

171 static sljit_s32 push_inst(struct sljit_compiler *compiler, sljit_ins ins)  in push_inst()  argument
173 sljit_ins *ibuf = (sljit_ins *)ensure_buf(compiler, sizeof(sljit_ins)); in push_inst()
176 compiler->size++; in push_inst()
205 static SLJIT_INLINE sljit_u8 get_cc(struct sljit_compiler *compiler, sljit_s32 type) { in get_cc() argument
213 if (SLJIT_ADD_SUB_NO_COMPARE(compiler->status_flags_state)) { in get_cc()
214 sljit_s32 type = GET_FLAG_TYPE(compiler->status_flags_state); in get_cc()
227 if (SLJIT_ADD_SUB_NO_COMPARE(compiler->status_flags_state)) { in get_cc()
228 sljit_s32 type = GET_FLAG_TYPE(compiler->status_flags_state); in get_cc()
247 if (compiler->status_flags_state & SLJIT_CURRENT_FLAGS_COMPARE) in get_cc()
252 if (compiler->status_flags_state & SLJIT_CURRENT_FLAGS_COMPARE) in get_cc()
261 if (compiler->status_flags_state & SLJIT_CURRENT_FLAGS_SUB) in get_cc()
270 if (compiler->status_flags_state & SLJIT_CURRENT_FLAGS_SUB) in get_cc()
282 if (compiler->status_flags_state & SLJIT_SET_Z) in get_cc()
290 if (compiler->status_flags_state & SLJIT_SET_Z) in get_cc()
849 static sljit_s32 update_zero_overflow(struct sljit_compiler *compiler, sljit_s32 op, sljit_gpr dst_… in update_zero_overflow() argument
857 FAIL_IF(push_inst(compiler, brc(0xc, 2 + 2 + ((op & SLJIT_32) ? 1 : 2) + 2 + 3 + 1))); in update_zero_overflow()
858 FAIL_IF(push_inst(compiler, ipm(tmp1))); in update_zero_overflow()
859 FAIL_IF(push_inst(compiler, (op & SLJIT_32) ? or(dst_r, dst_r) : ogr(dst_r, dst_r))); in update_zero_overflow()
860 FAIL_IF(push_inst(compiler, brc(0x8, 2 + 3))); in update_zero_overflow()
861 FAIL_IF(push_inst(compiler, slfi(tmp1, 0x10000000))); in update_zero_overflow()
862 FAIL_IF(push_inst(compiler, spm(tmp1))); in update_zero_overflow()
867 static sljit_s32 push_load_imm_inst(struct sljit_compiler *compiler, sljit_gpr target, sljit_sw v) in push_load_imm_inst() argument
871 return push_inst(compiler, lghi(target, (sljit_s16)v)); in push_load_imm_inst()
874 return push_inst(compiler, llill(target, (sljit_u16)v)); in push_load_imm_inst()
877 return push_inst(compiler, llilh(target, (sljit_u16)(v >> 16))); in push_load_imm_inst()
880 return push_inst(compiler, llihl(target, (sljit_u16)(v >> 32))); in push_load_imm_inst()
883 return push_inst(compiler, llihh(target, (sljit_u16)(v >> 48))); in push_load_imm_inst()
888 return push_inst(compiler, lgfi(target, (sljit_s32)v)); in push_load_imm_inst()
891 return push_inst(compiler, llilf(target, (sljit_u32)v)); in push_load_imm_inst()
894 return push_inst(compiler, llihf(target, (sljit_u32)((sljit_uw)v >> 32))); in push_load_imm_inst()
896 FAIL_IF(push_inst(compiler, llilf(target, (sljit_u32)v))); in push_load_imm_inst()
897 return push_inst(compiler, iihf(target, (sljit_u32)(v >> 32))); in push_load_imm_inst()
911 static sljit_s32 make_addr_bxy(struct sljit_compiler *compiler, in make_addr_bxy() argument
927 FAIL_IF(push_inst(compiler, sllg(tmp, index, (sljit_s32)off, 0))); in make_addr_bxy()
933 FAIL_IF(push_load_imm_inst(compiler, tmp, off)); in make_addr_bxy()
944 static sljit_s32 make_addr_bx(struct sljit_compiler *compiler, in make_addr_bx() argument
960 FAIL_IF(push_inst(compiler, sllg(tmp, index, (sljit_s32)off, 0))); in make_addr_bx()
966 FAIL_IF(push_load_imm_inst(compiler, tmp, off)); in make_addr_bx()
981 static sljit_s32 load_word(struct sljit_compiler *compiler, sljit_gpr dst, in load_word() argument
990 FAIL_IF(make_addr_bxy(compiler, &addr, src, srcw, tmp1)); in load_word()
992 FAIL_IF(make_addr_bx(compiler, &addr, src, srcw, tmp1)); in load_word()
999 return push_inst(compiler, ins); in load_word()
1003 static sljit_s32 store_word(struct sljit_compiler *compiler, sljit_gpr src, in store_word() argument
1012 FAIL_IF(make_addr_bxy(compiler, &addr, dst, dstw, tmp1)); in store_word()
1014 FAIL_IF(make_addr_bx(compiler, &addr, dst, dstw, tmp1)); in store_word()
1021 return push_inst(compiler, ins); in store_word()
1026 static sljit_s32 emit_move(struct sljit_compiler *compiler, in emit_move() argument
1033 return push_load_imm_inst(compiler, dst_r, srcw); in emit_move()
1036 return load_word(compiler, dst_r, src, srcw, (compiler->mode & SLJIT_32) != 0); in emit_move()
1039 return push_inst(compiler, (compiler->mode & SLJIT_32) ? lr(dst_r, src_r) : lgr(dst_r, src_r)); in emit_move()
1042 static sljit_s32 emit_rr(struct sljit_compiler *compiler, sljit_ins ins, in emit_rr() argument
1063 FAIL_IF(emit_move(compiler, dst_r, src1, src1w)); in emit_rr()
1068 FAIL_IF(emit_move(compiler, tmp1, src2, src2w)); in emit_rr()
1070 FAIL_IF(push_inst(compiler, ins | R4A(dst_r) | R0A(src_r))); in emit_rr()
1076 return push_inst(compiler, (compiler->mode & SLJIT_32) ? lr(dst_r, tmp0) : lgr(dst_r, tmp0)); in emit_rr()
1079 static sljit_s32 emit_rr1(struct sljit_compiler *compiler, sljit_ins ins, in emit_rr1() argument
1089 FAIL_IF(emit_move(compiler, tmp1, src1, src1w)); in emit_rr1()
1091 return push_inst(compiler, ins | R4A(dst_r) | R0A(src_r)); in emit_rr1()
1094 static sljit_s32 emit_rrf(struct sljit_compiler *compiler, sljit_ins ins, in emit_rrf() argument
1106 FAIL_IF(emit_move(compiler, tmp0, src1, src1w)); in emit_rrf()
1111 FAIL_IF(emit_move(compiler, tmp1, src2, src2w)); in emit_rrf()
1113 return push_inst(compiler, ins | R4A(dst_r) | R0A(src1_r) | R12A(src2_r)); in emit_rrf()
1121 static sljit_s32 emit_ri(struct sljit_compiler *compiler, sljit_ins ins, in emit_ri() argument
1138 FAIL_IF(emit_move(compiler, dst_r, src1, src1w)); in emit_ri()
1141 return push_inst(compiler, ins | R36A(dst_r) | (src2w & 0xffffffff)); in emit_ri()
1142 return push_inst(compiler, ins | R20A(dst_r) | (src2w & 0xffff)); in emit_ri()
1145 static sljit_s32 emit_rie_d(struct sljit_compiler *compiler, sljit_ins ins, in emit_rie_d() argument
1154 FAIL_IF(emit_move(compiler, tmp0, src1, src1w)); in emit_rie_d()
1158 return push_inst(compiler, ins | R36A(dst_r) | R32A(src_r) | (sljit_ins)(src2w & 0xffff) << 16); in emit_rie_d()
1166 static sljit_s32 emit_rx(struct sljit_compiler *compiler, sljit_ins ins, in emit_rx() argument
1190 FAIL_IF(emit_move(compiler, dst_r, src1, src1w)); in emit_rx()
1199 FAIL_IF(push_inst(compiler, sllg(tmp1, index, src2w & 0x3, 0))); in emit_rx()
1204 FAIL_IF(push_load_imm_inst(compiler, tmp1, src2w)); in emit_rx()
1218 FAIL_IF(push_inst(compiler, ins)); in emit_rx()
1224 return push_inst(compiler, (compiler->mode & SLJIT_32) ? lr(dst_r, tmp0) : lgr(dst_r, tmp0)); in emit_rx()
1227 static sljit_s32 emit_siy(struct sljit_compiler *compiler, sljit_ins ins, in emit_siy() argument
1241 FAIL_IF(push_inst(compiler, sllg(tmp1, index, dstw & 0x3, 0))); in emit_siy()
1243 FAIL_IF(push_inst(compiler, la(tmp1, 0, dst_r, index))); in emit_siy()
1247 FAIL_IF(push_load_imm_inst(compiler, tmp1, dstw)); in emit_siy()
1250 FAIL_IF(push_inst(compiler, la(tmp1, 0, dst_r, tmp1))); in emit_siy()
1257 …return push_inst(compiler, ins | ((sljit_ins)(srcw & 0xff) << 32) | R28A(dst_r) | disp_s20((sljit_… in emit_siy()
1270 static sljit_s32 emit_commutative(struct sljit_compiler *compiler, const struct ins_forms *forms, in emit_commutative() argument
1275 sljit_s32 mode = compiler->mode; in emit_commutative()
1295 return emit_rx(compiler, ins12, dst, src1, src1w, src2, src2w, RX_A); in emit_commutative()
1297 return emit_rx(compiler, ins20, dst, src1, src1w, src2, src2w, RXY_A); in emit_commutative()
1302 return emit_rx(compiler, ins12, dst, src2, src2w, src1, src1w, RX_A); in emit_commutative()
1304 return emit_rx(compiler, ins20, dst, src2, src2w, src1, src1w, RXY_A); in emit_commutative()
1321 return emit_rx(compiler, ins, dst, src1, src1w, src2, src2w, rx_type); in emit_commutative()
1324 return emit_rx(compiler, ins, dst, src2, src2w, src1, src1w, rx_type); in emit_commutative()
1341 return emit_rr(compiler, ins, dst, src1, src1w, src2, src2w); in emit_commutative()
1344 return emit_rr(compiler, ins, dst, src2, src2w, src1, src1w); in emit_commutative()
1348 return emit_rr(compiler, ins, dst, src1, src1w, src2, src2w); in emit_commutative()
1350 return emit_rrf(compiler, ins_k, dst, src1, src1w, src2, src2w); in emit_commutative()
1353 static sljit_s32 emit_non_commutative(struct sljit_compiler *compiler, const struct ins_forms *form… in emit_non_commutative() argument
1358 sljit_s32 mode = compiler->mode; in emit_non_commutative()
1375 return emit_rx(compiler, ins12, dst, src1, src1w, src2, src2w, RX_A); in emit_non_commutative()
1377 return emit_rx(compiler, ins20, dst, src1, src1w, src2, src2w, RXY_A); in emit_non_commutative()
1380 return emit_rx(compiler, ins12, dst, src1, src1w, src2, src2w, RX_A); in emit_non_commutative()
1382 return emit_rx(compiler, ins20, dst, src1, src1w, src2, src2w, RXY_A); in emit_non_commutative()
1388 …return emit_rr(compiler, (mode & SLJIT_32) ? forms->op_r : forms->op_gr, dst, src1, src1w, src2, s… in emit_non_commutative()
1390 return emit_rrf(compiler, ins, dst, src1, src1w, src2, src2w); in emit_non_commutative()
1393 SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compiler) in sljit_generate_code() argument
1410 CHECK_PTR(check_sljit_generate_code(compiler)); in sljit_generate_code()
1411 reverse_buf(compiler); in sljit_generate_code()
1414 label = compiler->labels; in sljit_generate_code()
1415 jump = compiler->jumps; in sljit_generate_code()
1416 put_label = compiler->put_labels; in sljit_generate_code()
1423 for (buf = compiler->buf; buf != NULL; buf = buf->next) { in sljit_generate_code()
1480 compiler->exec_allocator_data); in sljit_generate_code()
1492 const_ = (struct sljit_s390x_const *)compiler->consts; in sljit_generate_code()
1495 label = compiler->labels; in sljit_generate_code()
1503 jump = compiler->jumps; in sljit_generate_code()
1504 put_label = compiler->put_labels; in sljit_generate_code()
1508 for (buf = compiler->buf; buf != NULL; buf = buf->next) { in sljit_generate_code()
1607 compiler->error = SLJIT_ERR_COMPILED; in sljit_generate_code()
1608 compiler->executable_offset = executable_offset; in sljit_generate_code()
1609 compiler->executable_size = ins_size; in sljit_generate_code()
1635 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compiler, in sljit_emit_enter() argument
1643 …CHECK(check_sljit_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds,… in sljit_emit_enter()
1644 set_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); in sljit_emit_enter()
1651 FAIL_IF(push_inst(compiler, stmg(r6, r14, offset, r15))); /* save registers TODO(MGM): optimize */ in sljit_emit_enter()
1655 FAIL_IF(push_inst(compiler, stg(r6, offset, 0, r15))); in sljit_emit_enter()
1658 …FAIL_IF(push_inst(compiler, stmg(r6, r6 + (sljit_gpr)(scratches - SLJIT_FIRST_SAVED_REG), offset, … in sljit_emit_enter()
1663 FAIL_IF(push_inst(compiler, stg(r14, offset, 0, r15))); in sljit_emit_enter()
1666 FAIL_IF(push_inst(compiler, stmg(r14 - (sljit_gpr)saveds, r14, offset, r15))); in sljit_emit_enter()
1673 FAIL_IF(push_inst(compiler, 0x60000000 /* std */ | F20(i) | R12A(r15) | (sljit_ins)offset)); in sljit_emit_enter()
1678 FAIL_IF(push_inst(compiler, 0x60000000 /* std */ | F20(i) | R12A(r15) | (sljit_ins)offset)); in sljit_emit_enter()
1683 compiler->local_size = local_size; in sljit_emit_enter()
1685 …FAIL_IF(push_inst(compiler, 0xe30000000071 /* lay */ | R36A(r15) | R28A(r15) | disp_s20(-local_siz… in sljit_emit_enter()
1692 FAIL_IF(push_inst(compiler, lgr(gpr(SLJIT_S0 - tmp), gpr(SLJIT_R0 + word_arg_count)))); in sljit_emit_enter()
1704 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context(struct sljit_compiler *compiler, in sljit_set_context() argument
1709 …CHECK(check_sljit_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds… in sljit_set_context()
1710 set_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); in sljit_set_context()
1712 compiler->local_size = (local_size + SLJIT_S390X_DEFAULT_STACK_FRAME_SIZE + 0xf) & ~0xf; in sljit_set_context()
1716 static sljit_s32 emit_stack_frame_release(struct sljit_compiler *compiler) in emit_stack_frame_release() argument
1719 sljit_s32 local_size = compiler->local_size; in emit_stack_frame_release()
1720 sljit_s32 saveds = compiler->saveds; in emit_stack_frame_release()
1721 sljit_s32 scratches = compiler->scratches; in emit_stack_frame_release()
1724 FAIL_IF(push_inst(compiler, 0x41000000 /* ly */ | R20A(r15) | R12A(r15) | (sljit_ins)local_size)); in emit_stack_frame_release()
1726 …FAIL_IF(push_inst(compiler, 0xe30000000071 /* lay */ | R36A(r15) | R28A(r15) | disp_s20(local_size… in emit_stack_frame_release()
1730 FAIL_IF(push_inst(compiler, lmg(r6, r14, offset, r15))); /* save registers TODO(MGM): optimize */ in emit_stack_frame_release()
1734 FAIL_IF(push_inst(compiler, lg(r6, offset, 0, r15))); in emit_stack_frame_release()
1737 …FAIL_IF(push_inst(compiler, lmg(r6, r6 + (sljit_gpr)(scratches - SLJIT_FIRST_SAVED_REG), offset, r… in emit_stack_frame_release()
1742 FAIL_IF(push_inst(compiler, lg(r14, offset, 0, r15))); in emit_stack_frame_release()
1745 FAIL_IF(push_inst(compiler, lmg(r14 - (sljit_gpr)saveds, r14, offset, r15))); in emit_stack_frame_release()
1750 tmp = SLJIT_FS0 - compiler->fsaveds; in emit_stack_frame_release()
1752 FAIL_IF(push_inst(compiler, 0x68000000 /* ld */ | F20(i) | R12A(r15) | (sljit_ins)offset)); in emit_stack_frame_release()
1756 for (i = compiler->fscratches; i >= SLJIT_FIRST_SAVED_FLOAT_REG; i--) { in emit_stack_frame_release()
1757 FAIL_IF(push_inst(compiler, 0x68000000 /* ld */ | F20(i) | R12A(r15) | (sljit_ins)offset)); in emit_stack_frame_release()
1764 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return_void(struct sljit_compiler *compiler) in sljit_emit_return_void() argument
1767 CHECK(check_sljit_emit_return_void(compiler)); in sljit_emit_return_void()
1769 FAIL_IF(emit_stack_frame_release(compiler)); in sljit_emit_return_void()
1770 return push_inst(compiler, br(r14)); /* return */ in sljit_emit_return_void()
1777 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0(struct sljit_compiler *compiler, sljit_s32 op) in sljit_emit_op0() argument
1783 CHECK(check_sljit_emit_op0(compiler, op)); in sljit_emit_op0()
1789 return push_inst(compiler, 0x0001 /* 2-byte trap */); in sljit_emit_op0()
1791 return push_inst(compiler, 0x0700 /* 2-byte nop */); in sljit_emit_op0()
1793 FAIL_IF(push_inst(compiler, mlgr(arg0, arg0))); in sljit_emit_op0()
1798 FAIL_IF(push_inst(compiler, srag(tmp0, arg0, 63, 0))); in sljit_emit_op0()
1799 FAIL_IF(push_inst(compiler, srag(tmp1, arg1, 63, 0))); in sljit_emit_op0()
1800 FAIL_IF(push_inst(compiler, ngr(tmp0, arg1))); in sljit_emit_op0()
1801 FAIL_IF(push_inst(compiler, ngr(tmp1, arg0))); in sljit_emit_op0()
1804 FAIL_IF(push_inst(compiler, mlgr(arg0, arg0))); in sljit_emit_op0()
1806 FAIL_IF(push_inst(compiler, sgr(arg0, tmp0))); in sljit_emit_op0()
1807 FAIL_IF(push_inst(compiler, sgr(arg0, tmp1))); in sljit_emit_op0()
1811 FAIL_IF(push_inst(compiler, lhi(tmp0, 0))); in sljit_emit_op0()
1812 FAIL_IF(push_inst(compiler, lr(tmp1, arg0))); in sljit_emit_op0()
1813 FAIL_IF(push_inst(compiler, dlr(tmp0, arg1))); in sljit_emit_op0()
1814 FAIL_IF(push_inst(compiler, lr(arg0, tmp1))); /* quotient */ in sljit_emit_op0()
1816 return push_inst(compiler, lr(arg1, tmp0)); /* remainder */ in sljit_emit_op0()
1821 FAIL_IF(push_inst(compiler, lhi(tmp0, 0))); in sljit_emit_op0()
1822 FAIL_IF(push_inst(compiler, lr(tmp1, arg0))); in sljit_emit_op0()
1823 FAIL_IF(push_inst(compiler, dr(tmp0, arg1))); in sljit_emit_op0()
1824 FAIL_IF(push_inst(compiler, lr(arg0, tmp1))); /* quotient */ in sljit_emit_op0()
1826 return push_inst(compiler, lr(arg1, tmp0)); /* remainder */ in sljit_emit_op0()
1831 FAIL_IF(push_inst(compiler, lghi(tmp0, 0))); in sljit_emit_op0()
1832 FAIL_IF(push_inst(compiler, lgr(tmp1, arg0))); in sljit_emit_op0()
1833 FAIL_IF(push_inst(compiler, dlgr(tmp0, arg1))); in sljit_emit_op0()
1834 FAIL_IF(push_inst(compiler, lgr(arg0, tmp1))); /* quotient */ in sljit_emit_op0()
1836 return push_inst(compiler, lgr(arg1, tmp0)); /* remainder */ in sljit_emit_op0()
1841 FAIL_IF(push_inst(compiler, lgr(tmp1, arg0))); in sljit_emit_op0()
1842 FAIL_IF(push_inst(compiler, dsgr(tmp0, arg1))); in sljit_emit_op0()
1843 FAIL_IF(push_inst(compiler, lgr(arg0, tmp1))); /* quotient */ in sljit_emit_op0()
1845 return push_inst(compiler, lgr(arg1, tmp0)); /* remainder */ in sljit_emit_op0()
1856 FAIL_IF(push_inst(compiler, lgr(tmp0, arg0))); in sljit_emit_op0()
1857 FAIL_IF(push_inst(compiler, lgr(arg0, arg1))); in sljit_emit_op0()
1858 return push_inst(compiler, lgr(arg1, tmp0)); in sljit_emit_op0()
1864 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op1() argument
1875 CHECK(check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw)); in sljit_emit_op1()
1933 FAIL_IF(push_inst(compiler, ins)); in sljit_emit_op1()
1959 return push_load_imm_inst(compiler, gpr(dst), srcw); in sljit_emit_op1()
1967 FAIL_IF(make_addr_bxy(compiler, &mem, src, srcw, tmp1)); in sljit_emit_op1()
2012 FAIL_IF(push_inst(compiler, ins)); in sljit_emit_op1()
2021 FAIL_IF(push_load_imm_inst(compiler, reg, srcw)); in sljit_emit_op1()
2024 FAIL_IF(make_addr_bxy(compiler, &mem, dst, dstw, tmp1)); in sljit_emit_op1()
2028 return push_inst(compiler, in sljit_emit_op1()
2032 return push_inst(compiler, in sljit_emit_op1()
2037 return push_inst(compiler, in sljit_emit_op1()
2041 FAIL_IF(push_inst(compiler, LEVAL(stg))); in sljit_emit_op1()
2051 FAIL_IF(make_addr_bxy(compiler, &mem, src, srcw, tmp1)); in sljit_emit_op1()
2055 FAIL_IF(push_inst(compiler, in sljit_emit_op1()
2057 FAIL_IF(make_addr_bxy(compiler, &mem, dst, dstw, tmp1)); in sljit_emit_op1()
2058 return push_inst(compiler, in sljit_emit_op1()
2062 FAIL_IF(push_inst(compiler, in sljit_emit_op1()
2064 FAIL_IF(make_addr_bxy(compiler, &mem, dst, dstw, tmp1)); in sljit_emit_op1()
2065 return push_inst(compiler, in sljit_emit_op1()
2070 FAIL_IF(push_inst(compiler, in sljit_emit_op1()
2072 FAIL_IF(make_addr_bxy(compiler, &mem, dst, dstw, tmp1)); in sljit_emit_op1()
2073 return push_inst(compiler, in sljit_emit_op1()
2077 FAIL_IF(push_inst(compiler, in sljit_emit_op1()
2079 FAIL_IF(make_addr_bxy(compiler, &mem, dst, dstw, tmp1)); in sljit_emit_op1()
2080 FAIL_IF(push_inst(compiler, in sljit_emit_op1()
2095 FAIL_IF(load_word(compiler, src_r, src, srcw, src & SLJIT_32)); in sljit_emit_op1()
2097 compiler->status_flags_state = op & (VARIABLE_FLAG_MASK | SLJIT_SET_Z); in sljit_emit_op1()
2103 FAIL_IF(push_load_imm_inst(compiler, tmp1, -1)); in sljit_emit_op1()
2105 FAIL_IF(push_inst(compiler, lgr(dst_r, src_r))); in sljit_emit_op1()
2107 FAIL_IF(push_inst(compiler, xgr(dst_r, tmp1))); in sljit_emit_op1()
2112 FAIL_IF(push_inst(compiler, xilf(dst_r, 0xffffffff))); in sljit_emit_op1()
2114 FAIL_IF(push_load_imm_inst(compiler, tmp1, -1)); in sljit_emit_op1()
2116 FAIL_IF(push_inst(compiler, lr(dst_r, src_r))); in sljit_emit_op1()
2118 FAIL_IF(push_inst(compiler, xr(dst_r, tmp1))); in sljit_emit_op1()
2123 FAIL_IF(push_inst(compiler, flogr(tmp0, src_r))); /* clobbers tmp1 */ in sljit_emit_op1()
2125 FAIL_IF(push_inst(compiler, lgr(dst_r, tmp0))); in sljit_emit_op1()
2132 FAIL_IF(push_inst(compiler, sllg(tmp1, src_r, 32, 0))); in sljit_emit_op1()
2133 FAIL_IF(push_inst(compiler, iilf(tmp1, 0xffffffff))); in sljit_emit_op1()
2134 FAIL_IF(push_inst(compiler, flogr(tmp0, tmp1))); /* clobbers tmp1 */ in sljit_emit_op1()
2136 FAIL_IF(push_inst(compiler, lr(dst_r, tmp0))); in sljit_emit_op1()
2146 FAIL_IF(update_zero_overflow(compiler, op, dst_r)); in sljit_emit_op1()
2150 FAIL_IF(store_word(compiler, dst_r, dst, dstw, op & SLJIT_32)); in sljit_emit_op1()
2194 static sljit_s32 sljit_emit_add(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_add() argument
2210 return emit_siy(compiler, ins, dst, dstw, src2w); in sljit_emit_add()
2218 FAIL_IF(emit_rie_d(compiler, ins, dst, src1, src1w, src2w)); in sljit_emit_add()
2225 FAIL_IF(emit_ri(compiler, ins, dst, src1, src1w, src2w, RIL_A)); in sljit_emit_add()
2229 FAIL_IF(emit_ri(compiler, 0xc20400000000 /* slgfi */, dst, src1, src1w, -src2w, RIL_A)); in sljit_emit_add()
2235 FAIL_IF(emit_ri(compiler, ins, dst, src1, src1w, src2w, RIL_A)); in sljit_emit_add()
2241 FAIL_IF(emit_commutative(compiler, forms, dst, src1, src1w, src2, src2w)); in sljit_emit_add()
2245 FAIL_IF(update_zero_overflow(compiler, op, FAST_IS_REG(dst) ? gpr(dst & REG_MASK) : tmp0)); in sljit_emit_add()
2248 return store_word(compiler, tmp0, dst, dstw, op & SLJIT_32); in sljit_emit_add()
2273 static sljit_s32 sljit_emit_sub(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_sub() argument
2287 compiler->status_flags_state |= SLJIT_CURRENT_FLAGS_COMPARE; in sljit_emit_sub()
2294 return emit_ri(compiler, ins, src1, src1, src1w, src2w, RIL_A); in sljit_emit_sub()
2300 return emit_ri(compiler, ins, src1, src1, src1w, src2w, RIL_A); in sljit_emit_sub()
2303 return emit_rie_d(compiler, 0xec00000000db /* alghsik */, (sljit_s32)tmp0, src1, src1w, src2w); in sljit_emit_sub()
2309 return emit_rx(compiler, ins, src1, src1, src1w, src2, src2w, RX_A); in sljit_emit_sub()
2316 return emit_rx(compiler, ins, src1, src1, src1w, src2, src2w, RXY_A); in sljit_emit_sub()
2323 return emit_rr(compiler, ins, src1, src1, src1w, src2, src2w); in sljit_emit_sub()
2328 FAIL_IF(emit_rr1(compiler, ins, dst, src2, src2w)); in sljit_emit_sub()
2341 return emit_siy(compiler, ins, dst, dstw, neg_src2w); in sljit_emit_sub()
2349 FAIL_IF(emit_rie_d(compiler, ins, dst, src1, src1w, neg_src2w)); in sljit_emit_sub()
2357 FAIL_IF(emit_ri(compiler, ins, dst, src1, src1w, src2w, RIL_A)); in sljit_emit_sub()
2361 FAIL_IF(emit_ri(compiler, 0xc20a00000000 /* algfi */, dst, src1, src1w, neg_src2w, RIL_A)); in sljit_emit_sub()
2367 FAIL_IF(emit_ri(compiler, ins, dst, src1, src1w, neg_src2w, RIL_A)); in sljit_emit_sub()
2373 FAIL_IF(emit_non_commutative(compiler, forms, dst, src1, src1w, src2, src2w)); in sljit_emit_sub()
2385 FAIL_IF(push_inst(compiler, brc(0xe, 2 + 2))); in sljit_emit_sub()
2386 FAIL_IF(push_inst(compiler, (op & SLJIT_32) ? lcr(tmp1, dst_r) : lcgr(tmp1, dst_r))); in sljit_emit_sub()
2389 FAIL_IF(update_zero_overflow(compiler, op, dst_r)); in sljit_emit_sub()
2393 return store_word(compiler, tmp0, dst, dstw, op & SLJIT_32); in sljit_emit_sub()
2418 static sljit_s32 sljit_emit_multiply(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_multiply() argument
2437 return emit_commutative(compiler, &multiply_overflow_forms, dst, src1, src1w, src2, src2w); in sljit_emit_multiply()
2443 return emit_ri(compiler, ins, dst, src1, src1w, src2w, RI_A); in sljit_emit_multiply()
2448 return emit_ri(compiler, ins, dst, src1, src1w, src2w, RIL_A); in sljit_emit_multiply()
2452 return emit_commutative(compiler, &multiply_forms, dst, src1, src1w, src2, src2w); in sljit_emit_multiply()
2455 static sljit_s32 sljit_emit_bitwise_imm(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_bitwise_imm() argument
2460 sljit_s32 mode = compiler->mode; in sljit_emit_bitwise_imm()
2471 FAIL_IF(emit_move(compiler, dst_r, src1, src1w)); in sljit_emit_bitwise_imm()
2475 FAIL_IF(push_inst(compiler, 0xc00a00000000 /* nihf */ | R36A(dst_r) | (imm >> 32))); in sljit_emit_bitwise_imm()
2476 return push_inst(compiler, 0xc00b00000000 /* nilf */ | R36A(dst_r) | (imm & 0xffffffff)); in sljit_emit_bitwise_imm()
2480 FAIL_IF(push_inst(compiler, 0xc00c00000000 /* oihf */ | R36A(dst_r) | (imm >> 32))); in sljit_emit_bitwise_imm()
2481 return push_inst(compiler, 0xc00d00000000 /* oilf */ | R36A(dst_r) | (imm & 0xffffffff)); in sljit_emit_bitwise_imm()
2486 return push_inst(compiler, 0xc00c00000000 /* oihf */ | R36A(dst_r) | (imm >> 32)); in sljit_emit_bitwise_imm()
2488 return push_inst(compiler, 0xc00d00000000 /* oilf */ | R36A(dst_r) | (imm & 0xffffffff)); in sljit_emit_bitwise_imm()
2492 FAIL_IF(push_inst(compiler, 0xa5080000 /* oihh */ | R20A(dst_r) | (imm >> 48))); in sljit_emit_bitwise_imm()
2494 FAIL_IF(push_inst(compiler, 0xa5090000 /* oihl */ | R20A(dst_r) | ((imm >> 32) & 0xffff))); in sljit_emit_bitwise_imm()
2496 FAIL_IF(push_inst(compiler, 0xa50a0000 /* oilh */ | R20A(dst_r) | ((imm >> 16) & 0xffff))); in sljit_emit_bitwise_imm()
2498 return push_inst(compiler, 0xa50b0000 /* oill */ | R20A(dst_r) | (imm & 0xffff)); in sljit_emit_bitwise_imm()
2503 FAIL_IF(push_inst(compiler, 0xc00600000000 /* xihf */ | R36A(dst_r) | (imm >> 32))); in sljit_emit_bitwise_imm()
2505 return push_inst(compiler, 0xc00700000000 /* xilf */ | R36A(dst_r) | (imm & 0xffffffff)); in sljit_emit_bitwise_imm()
2539 static sljit_s32 sljit_emit_bitwise(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_bitwise() argument
2569 FAIL_IF(emit_move(compiler, tmp0, src1, src1w)); in sljit_emit_bitwise()
2572 return push_inst(compiler, 0xa7010000 | R20A(src_r) | imm); in sljit_emit_bitwise()
2574 return push_inst(compiler, 0xa7000000 | R20A(src_r) | (imm >> 16)); in sljit_emit_bitwise()
2576 return push_inst(compiler, 0xa7030000 | R20A(src_r) | (imm >> 32)); in sljit_emit_bitwise()
2577 return push_inst(compiler, 0xa7020000 | R20A(src_r) | (imm >> 48)); in sljit_emit_bitwise()
2581 return sljit_emit_bitwise_imm(compiler, type, dst, src1, src1w, imm, count16); in sljit_emit_bitwise()
2591 return emit_commutative(compiler, forms, dst, src1, src1w, src2, src2w); in sljit_emit_bitwise()
2594 static sljit_s32 sljit_emit_shift(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_shift() argument
2609 FAIL_IF(emit_move(compiler, tmp0, src1, src1w)); in sljit_emit_shift()
2616 FAIL_IF(emit_move(compiler, tmp1, src2, src2w)); in sljit_emit_shift()
2628 FAIL_IF(push_inst(compiler, ins | R20A(dst_r) | R12A(base_r) | imm)); in sljit_emit_shift()
2638 FAIL_IF(push_inst(compiler, ins | R36A(dst_r) | R32A(src_r) | R28A(base_r) | (imm << 16))); in sljit_emit_shift()
2642 return push_inst(compiler, (op & SLJIT_32) ? or(dst_r, dst_r) : ogr(dst_r, dst_r)); in sljit_emit_shift()
2667 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op2() argument
2673 CHECK(check_sljit_emit_op2(compiler, op, 0, dst, dstw, src1, src1w, src2, src2w)); in sljit_emit_op2()
2678 compiler->mode = op & SLJIT_32; in sljit_emit_op2()
2679 compiler->status_flags_state = op & (VARIABLE_FLAG_MASK | SLJIT_SET_Z); in sljit_emit_op2()
2693 compiler->status_flags_state |= SLJIT_CURRENT_FLAGS_ADD; in sljit_emit_op2()
2694 return sljit_emit_add(compiler, op, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
2696 compiler->status_flags_state |= SLJIT_CURRENT_FLAGS_ADD; in sljit_emit_op2()
2697 FAIL_IF(emit_commutative(compiler, &addc_forms, dst, src1, src1w, src2, src2w)); in sljit_emit_op2()
2699 return store_word(compiler, tmp0, dst, dstw, op & SLJIT_32); in sljit_emit_op2()
2702 compiler->status_flags_state |= SLJIT_CURRENT_FLAGS_SUB; in sljit_emit_op2()
2703 return sljit_emit_sub(compiler, op, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
2705 compiler->status_flags_state |= SLJIT_CURRENT_FLAGS_SUB; in sljit_emit_op2()
2706 FAIL_IF(emit_non_commutative(compiler, &subc_forms, dst, src1, src1w, src2, src2w)); in sljit_emit_op2()
2708 return store_word(compiler, tmp0, dst, dstw, op & SLJIT_32); in sljit_emit_op2()
2711 FAIL_IF(sljit_emit_multiply(compiler, op, dst, src1, src1w, src2, src2w)); in sljit_emit_op2()
2716 FAIL_IF(sljit_emit_bitwise(compiler, op, dst, src1, src1w, src2, src2w)); in sljit_emit_op2()
2721 FAIL_IF(sljit_emit_shift(compiler, op, dst, src1, src1w, src2, src2w)); in sljit_emit_op2()
2726 return store_word(compiler, tmp0, dst, dstw, op & SLJIT_32); in sljit_emit_op2()
2730 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2u(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op2u() argument
2735 CHECK(check_sljit_emit_op2(compiler, op, 1, 0, 0, src1, src1w, src2, src2w)); in sljit_emit_op2u()
2739 compiler->skip_checks = 1; in sljit_emit_op2u()
2741 return sljit_emit_op2(compiler, op, (sljit_s32)tmp0, 0, src1, src1w, src2, src2w); in sljit_emit_op2u()
2745 struct sljit_compiler *compiler, in sljit_emit_op_src() argument
2751 CHECK(check_sljit_emit_op_src(compiler, op, src, srcw)); in sljit_emit_op_src()
2758 FAIL_IF(load_word(compiler, tmp1, src, srcw, 0)); in sljit_emit_op_src()
2760 return push_inst(compiler, br(src_r)); in sljit_emit_op_src()
2790 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom(struct sljit_compiler *compiler, in sljit_emit_op_custom() argument
2796 CHECK(check_sljit_emit_op_custom(compiler, instruction, size)); in sljit_emit_op_custom()
2799 return push_inst(compiler, ins); in sljit_emit_op_custom()
2809 static sljit_s32 float_mem(struct sljit_compiler *compiler, sljit_s32 op, in float_mem() argument
2819 FAIL_IF(make_addr_bx(compiler, &addr, mem, memw, tmp1)); in float_mem()
2826 …return push_inst(compiler, ins | F20(reg) | R16A(addr.index) | R12A(addr.base) | (sljit_ins)addr.o… in float_mem()
2829 FAIL_IF(make_addr_bxy(compiler, &addr, mem, memw, tmp1)); in float_mem()
2836 …return push_inst(compiler, ins | F36(reg) | R32A(addr.index) | R28A(addr.base) | disp_s20(addr.off… in float_mem()
2839 static sljit_s32 emit_float(struct sljit_compiler *compiler, sljit_ins ins_r, sljit_ins ins, in emit_float() argument
2846 return push_inst(compiler, ins_r | F4(reg) | F0(src)); in emit_float()
2848 FAIL_IF(make_addr_bx(compiler, &addr, src, srcw, tmp1)); in emit_float()
2849 …return push_inst(compiler, ins | F36(reg) | R32A(addr.index) | R28A(addr.base) | ((sljit_ins)addr.… in emit_float()
2852 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
2860 FAIL_IF(float_mem(compiler, FLOAT_LOAD | (op & SLJIT_32), TMP_FREG1, src, srcw)); in sljit_emit_fop1_conv_sw_from_f64()
2870 FAIL_IF(push_inst(compiler, ins | R4A(dst_r) | F0(src))); in sljit_emit_fop1_conv_sw_from_f64()
2873 return store_word(compiler, dst_r, dst, dstw, GET_OPCODE(op) >= SLJIT_CONV_S32_FROM_F64); in sljit_emit_fop1_conv_sw_from_f64()
2878 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
2886 FAIL_IF(push_load_imm_inst(compiler, tmp0, srcw)); in sljit_emit_fop1_conv_f64_from_sw()
2890 FAIL_IF(load_word(compiler, tmp0, src, srcw, GET_OPCODE(op) >= SLJIT_CONV_F64_FROM_S32)); in sljit_emit_fop1_conv_f64_from_sw()
2899 FAIL_IF(push_inst(compiler, ins | F4(dst_r) | R0(src))); in sljit_emit_fop1_conv_f64_from_sw()
2902 return float_mem(compiler, FLOAT_STORE | (op & SLJIT_32), TMP_FREG1, dst, dstw); in sljit_emit_fop1_conv_f64_from_sw()
2907 static SLJIT_INLINE sljit_s32 sljit_emit_fop1_cmp(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1_cmp() argument
2914 FAIL_IF(float_mem(compiler, FLOAT_LOAD | (op & SLJIT_32), TMP_FREG1, src1, src1w)); in sljit_emit_fop1_cmp()
2926 return emit_float(compiler, ins_r, ins, src1, src2, src2w); in sljit_emit_fop1_cmp()
2929 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1() argument
2938 SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw); in sljit_emit_fop1()
2943 …FAIL_IF(emit_float(compiler, 0xb3040000 /* ldebr */, 0xed0000000004 /* ldeb */, dst_r, src, srcw)); in sljit_emit_fop1()
2946 …FAIL_IF(float_mem(compiler, FLOAT_LOAD | (op == SLJIT_CONV_F32_FROM_F64 ? 0 : (op & SLJIT_32)), ds… in sljit_emit_fop1()
2959 return float_mem(compiler, FLOAT_STORE | (op & SLJIT_32), src, dst, dstw); in sljit_emit_fop1()
2973 FAIL_IF(push_inst(compiler, ins | F4(dst_r) | F0(src))); in sljit_emit_fop1()
2981 return float_mem(compiler, FLOAT_STORE | (op & SLJIT_32), TMP_FREG1, dst, dstw); in sljit_emit_fop1()
2987 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop2() argument
2996 CHECK(check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w)); in sljit_emit_fop2()
3016 FAIL_IF(push_inst(compiler, FLOAT_MOV(op, TMP_FREG1, src2))); in sljit_emit_fop2()
3022 FAIL_IF(float_mem(compiler, FLOAT_LOAD | (op & SLJIT_32), dst_r, src1, src1w)); in sljit_emit_fop2()
3024 FAIL_IF(push_inst(compiler, FLOAT_MOV(op, dst_r, src1))); in sljit_emit_fop2()
3047 FAIL_IF(emit_float(compiler, ins_r, ins, dst_r, src2, src2w)); in sljit_emit_fop2()
3050 return float_mem(compiler, FLOAT_STORE | (op & SLJIT_32), TMP_FREG1, dst, dstw); in sljit_emit_fop2()
3060 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_s32… in sljit_emit_fast_enter() argument
3063 CHECK(check_sljit_emit_fast_enter(compiler, dst, dstw)); in sljit_emit_fast_enter()
3067 return push_inst(compiler, lgr(gpr(dst), fast_link_r)); in sljit_emit_fast_enter()
3070 return store_word(compiler, fast_link_r, dst, dstw, 0); in sljit_emit_fast_enter()
3077 SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label(struct sljit_compiler *compiler) in sljit_emit_label() argument
3082 CHECK_PTR(check_sljit_emit_label(compiler)); in sljit_emit_label()
3084 if (compiler->last_label && compiler->last_label->size == compiler->size) in sljit_emit_label()
3085 return compiler->last_label; in sljit_emit_label()
3087 label = (struct sljit_label*)ensure_abuf(compiler, sizeof(struct sljit_label)); in sljit_emit_label()
3089 set_label(label, compiler); in sljit_emit_label()
3093 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compiler *compiler, sljit_… in sljit_emit_jump() argument
3095 sljit_u8 mask = ((type & 0xff) < SLJIT_JUMP) ? get_cc(compiler, type & 0xff) : 0xf; in sljit_emit_jump()
3098 CHECK_PTR(check_sljit_emit_jump(compiler, type)); in sljit_emit_jump()
3102 ensure_abuf(compiler, sizeof(struct sljit_jump)); in sljit_emit_jump()
3104 set_jump(jump, compiler, type & SLJIT_REWRITABLE_JUMP); in sljit_emit_jump()
3105 jump->addr = compiler->size; in sljit_emit_jump()
3110 PTR_FAIL_IF(push_inst(compiler, brasl(type == SLJIT_FAST_CALL ? fast_link_r : link_r, 0))); in sljit_emit_jump()
3112 PTR_FAIL_IF(push_inst(compiler, brcl(mask, 0))); in sljit_emit_jump()
3117 SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_call(struct sljit_compiler *compiler, sljit_… in sljit_emit_call() argument
3121 CHECK_PTR(check_sljit_emit_call(compiler, type, arg_types)); in sljit_emit_call()
3124 PTR_FAIL_IF(emit_stack_frame_release(compiler)); in sljit_emit_call()
3130 compiler->skip_checks = 1; in sljit_emit_call()
3133 return sljit_emit_jump(compiler, type); in sljit_emit_call()
3136 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compiler, sljit_s32 type… in sljit_emit_ijump() argument
3141 CHECK(check_sljit_emit_ijump(compiler, type, src, srcw)); in sljit_emit_ijump()
3145 FAIL_IF(push_load_imm_inst(compiler, src_r, srcw)); in sljit_emit_ijump()
3149 FAIL_IF(load_word(compiler, src_r, src, srcw, 0 /* 64-bit */)); in sljit_emit_ijump()
3154 return push_inst(compiler, basr(type == SLJIT_FAST_CALL ? fast_link_r : link_r, src_r)); in sljit_emit_ijump()
3156 return push_inst(compiler, br(src_r)); in sljit_emit_ijump()
3159 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_icall() argument
3164 CHECK(check_sljit_emit_icall(compiler, type, arg_types, src, srcw)); in sljit_emit_icall()
3170 FAIL_IF(load_word(compiler, tmp1, src, srcw, 0 /* 64-bit */)); in sljit_emit_icall()
3176 FAIL_IF(push_inst(compiler, lgr(tmp1, gpr(src)))); in sljit_emit_icall()
3180 FAIL_IF(emit_stack_frame_release(compiler)); in sljit_emit_icall()
3186 compiler->skip_checks = 1; in sljit_emit_icall()
3189 return sljit_emit_ijump(compiler, type, src, srcw); in sljit_emit_icall()
3192 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_s32 o… in sljit_emit_op_flags() argument
3196 sljit_u8 mask = get_cc(compiler, type & 0xff); in sljit_emit_op_flags()
3199 CHECK(check_sljit_emit_op_flags(compiler, op, dst, dstw, type)); in sljit_emit_op_flags()
3207 compiler->status_flags_state = op & SLJIT_SET_Z; in sljit_emit_op_flags()
3211 FAIL_IF(load_word(compiler, dst_r, dst, dstw, op & SLJIT_32)); in sljit_emit_op_flags()
3228 FAIL_IF(push_load_imm_inst(compiler, loc_r, 0)); in sljit_emit_op_flags()
3229 FAIL_IF(push_inst(compiler, in sljit_emit_op_flags()
3241 FAIL_IF(push_inst(compiler, in sljit_emit_op_flags()
3245 FAIL_IF(push_inst(compiler, in sljit_emit_op_flags()
3249 FAIL_IF(push_inst(compiler, in sljit_emit_op_flags()
3257 return store_word(compiler, dst_r, dst, dstw, (op & SLJIT_32)); in sljit_emit_op_flags()
3262 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov(struct sljit_compiler *compiler, sljit_s32 type, in sljit_emit_cmov() argument
3266 sljit_u8 mask = get_cc(compiler, type & 0xff); in sljit_emit_cmov()
3271 CHECK(check_sljit_emit_cmov(compiler, type, dst_reg, src, srcw)); in sljit_emit_cmov()
3275 FAIL_IF(push_load_imm_inst(compiler, src_r, srcw)); in sljit_emit_cmov()
3280 return push_inst(compiler, in sljit_emit_cmov()
3303 SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compiler *compiler, slji… in sljit_emit_const() argument
3309 CHECK_PTR(check_sljit_emit_const(compiler, dst, dstw, init_value)); in sljit_emit_const()
3311 const_ = (struct sljit_s390x_const*)ensure_abuf(compiler, in sljit_emit_const()
3314 set_const((struct sljit_const*)const_, compiler); in sljit_emit_const()
3319 PTR_FAIL_IF(push_inst(compiler, sljit_ins_const | lgrl(dst_r, 0))); in sljit_emit_const()
3321 PTR_FAIL_IF(push_inst(compiler, sljit_ins_const | larl(tmp1, 0))); in sljit_emit_const()
3322 PTR_FAIL_IF(push_inst(compiler, lg(dst_r, 0, r0, tmp1))); in sljit_emit_const()
3326 PTR_FAIL_IF(store_word(compiler, dst_r, dst, dstw, 0 /* always 64-bit */)); in sljit_emit_const()
3349 struct sljit_compiler *compiler, in sljit_emit_put_label() argument
3356 CHECK_PTR(check_sljit_emit_put_label(compiler, dst, dstw)); in sljit_emit_put_label()
3359 put_label = (struct sljit_put_label*)ensure_abuf(compiler, sizeof(struct sljit_put_label)); in sljit_emit_put_label()
3361 set_put_label(put_label, compiler, 0); in sljit_emit_put_label()
3366 PTR_FAIL_IF(push_inst(compiler, lgrl(dst_r, 0))); in sljit_emit_put_label()
3368 PTR_FAIL_IF(push_inst(compiler, larl(tmp1, 0))); in sljit_emit_put_label()
3369 PTR_FAIL_IF(push_inst(compiler, lg(dst_r, 0, r0, tmp1))); in sljit_emit_put_label()
3373 PTR_FAIL_IF(store_word(compiler, dst_r, dst, dstw, 0)); in sljit_emit_put_label()