Lines Matching refs:flags

107 #define CHECK_FLAGS(list) (!(flags & UNUSED_DEST) || (op & GET_FLAGS(~(list))))
909 if (jump->flags & SLJIT_REWRITABLE_JUMP) in detect_jump_type()
912 if (jump->flags & JUMP_ADDR) in detect_jump_type()
915 SLJIT_ASSERT(jump->flags & JUMP_LABEL); in detect_jump_type()
920 if (jump->flags & IS_COND) in detect_jump_type()
925 jump->flags |= PATCH_B; in detect_jump_type()
927 if (!(jump->flags & IS_COND)) { in detect_jump_type()
928 if (jump->flags & IS_JAL) { in detect_jump_type()
929 jump->flags &= ~(PATCH_B); in detect_jump_type()
930 jump->flags |= PATCH_J; in detect_jump_type()
959 if (jump->flags & IS_COND) { in detect_jump_type()
961 jump->flags |= PATCH_J; in detect_jump_type()
971 jump->flags |= PATCH_J; in detect_jump_type()
973 if (jump->flags & IS_JAL) { in detect_jump_type()
1040 if (jump->flags & IS_JAL) in sljit_generate_code()
1076 addr = (jump->flags & JUMP_LABEL) ? jump->u.label->addr : jump->u.target; in sljit_generate_code()
1079 if (jump->flags & PATCH_B) { in sljit_generate_code()
1091 if (jump->flags & PATCH_J) { in sljit_generate_code()
1103 SLJIT_ASSERT(!(jump->flags & IS_JAL)); in sljit_generate_code()
1288 static sljit_si getput_arg_fast(struct sljit_compiler *compiler, sljit_si flags, sljit_si reg_ar, s… in getput_arg_fast() argument
1292 if ((!(flags & WRITE_BACK) || !(arg & REG_MASK)) in getput_arg_fast()
1295 if (SLJIT_UNLIKELY(flags & ARG_TEST)) in getput_arg_fast()
1300 if (flags & LOAD_DATA) in getput_arg_fast()
1301 FAIL_IF(PB2(data_transfer_insts[flags & MEM_MASK], reg_ar, ADDR_TMP_mapped)); in getput_arg_fast()
1303 FAIL_IF(PB2(data_transfer_insts[flags & MEM_MASK], ADDR_TMP_mapped, reg_ar)); in getput_arg_fast()
1340 static sljit_si getput_arg(struct sljit_compiler *compiler, sljit_si flags, sljit_si reg_ar, sljit_… in getput_arg() argument
1350 if ((flags & MEM_MASK) <= GPR_REG && (flags & LOAD_DATA)) in getput_arg()
1360 if ((flags & WRITE_BACK) && reg_ar == reg_map[base]) { in getput_arg()
1361 SLJIT_ASSERT(!(flags & LOAD_DATA) && reg_map[TMP_REG1] != reg_ar); in getput_arg()
1368 if (!(flags & WRITE_BACK)) { in getput_arg()
1370 if (flags & LOAD_DATA) in getput_arg()
1371 return PB2(data_transfer_insts[flags & MEM_MASK], reg_ar, TMP_REG3_mapped); in getput_arg()
1373 return PB2(data_transfer_insts[flags & MEM_MASK], TMP_REG3_mapped, reg_ar); in getput_arg()
1381 if (flags & LOAD_DATA) in getput_arg()
1382 return PB2(data_transfer_insts[flags & MEM_MASK], reg_ar, TMP_REG3_mapped); in getput_arg()
1384 return PB2(data_transfer_insts[flags & MEM_MASK], TMP_REG3_mapped, reg_ar); in getput_arg()
1388 if (flags & LOAD_DATA) in getput_arg()
1389 return PB2(data_transfer_insts[flags & MEM_MASK], reg_ar, tmp_ar); in getput_arg()
1391 return PB2(data_transfer_insts[flags & MEM_MASK], tmp_ar, reg_ar); in getput_arg()
1396 if (flags & LOAD_DATA) in getput_arg()
1397 return PB2(data_transfer_insts[flags & MEM_MASK], reg_ar, reg_map[base]); in getput_arg()
1399 return PB2(data_transfer_insts[flags & MEM_MASK], reg_map[base], reg_ar); in getput_arg()
1410 if (!(flags & WRITE_BACK)) { in getput_arg()
1419 if (flags & LOAD_DATA) in getput_arg()
1420 return PB2(data_transfer_insts[flags & MEM_MASK], reg_ar, tmp_ar); in getput_arg()
1422 return PB2(data_transfer_insts[flags & MEM_MASK], tmp_ar, reg_ar); in getput_arg()
1427 if (flags & LOAD_DATA) in getput_arg()
1428 return PB2(data_transfer_insts[flags & MEM_MASK], reg_ar, reg_map[base]); in getput_arg()
1430 return PB2(data_transfer_insts[flags & MEM_MASK], reg_map[base], reg_ar); in getput_arg()
1433 if (SLJIT_UNLIKELY(flags & WRITE_BACK) && base) { in getput_arg()
1436 SLJIT_ASSERT(!(flags & LOAD_DATA) && TMP_REG1_mapped != reg_ar); in getput_arg()
1439 if (flags & LOAD_DATA) in getput_arg()
1440 FAIL_IF(PB2(data_transfer_insts[flags & MEM_MASK], reg_ar, ADDR_TMP_mapped)); in getput_arg()
1442 FAIL_IF(PB2(data_transfer_insts[flags & MEM_MASK], ADDR_TMP_mapped, reg_ar)); in getput_arg()
1475 if (flags & LOAD_DATA) in getput_arg()
1476 return PB2(data_transfer_insts[flags & MEM_MASK], reg_ar, reg_map[base]); in getput_arg()
1478 return PB2(data_transfer_insts[flags & MEM_MASK], reg_map[base], reg_ar); in getput_arg()
1489 if (flags & LOAD_DATA) in getput_arg()
1490 return PB2(data_transfer_insts[flags & MEM_MASK], reg_ar, TMP_REG3_mapped); in getput_arg()
1492 return PB2(data_transfer_insts[flags & MEM_MASK], TMP_REG3_mapped, reg_ar); in getput_arg()
1508 if (flags & LOAD_DATA) in getput_arg()
1509 return PB2(data_transfer_insts[flags & MEM_MASK], reg_ar, TMP_REG3_mapped); in getput_arg()
1511 return PB2(data_transfer_insts[flags & MEM_MASK], TMP_REG3_mapped, reg_ar); in getput_arg()
1519 if (flags & LOAD_DATA) in getput_arg()
1520 return PB2(data_transfer_insts[flags & MEM_MASK], reg_ar, TMP_REG3_mapped); in getput_arg()
1522 return PB2(data_transfer_insts[flags & MEM_MASK], TMP_REG3_mapped, reg_ar); in getput_arg()
1527 if (flags & LOAD_DATA) in getput_arg()
1528 return PB2(data_transfer_insts[flags & MEM_MASK], reg_ar, tmp_ar); in getput_arg()
1530 return PB2(data_transfer_insts[flags & MEM_MASK], tmp_ar, reg_ar); in getput_arg()
1533 static SLJIT_INLINE sljit_si emit_op_mem(struct sljit_compiler *compiler, sljit_si flags, sljit_si … in emit_op_mem() argument
1535 if (getput_arg_fast(compiler, flags, reg_ar, arg, argw)) in emit_op_mem()
1540 return getput_arg(compiler, flags, reg_ar, arg, argw, 0, 0); in emit_op_mem()
1543 static SLJIT_INLINE sljit_si emit_op_mem2(struct sljit_compiler *compiler, sljit_si flags, sljit_si… in emit_op_mem2() argument
1545 if (getput_arg_fast(compiler, flags, reg, arg1, arg1w)) in emit_op_mem2()
1547 return getput_arg(compiler, flags, reg, arg1, arg1w, arg2, arg2w); in emit_op_mem2()
1585 …_si emit_single_op(struct sljit_compiler *compiler, sljit_si op, sljit_si flags, sljit_si dst, slj… in emit_single_op() argument
1592 SLJIT_ASSERT(src1 == TMP_REG1 && !(flags & SRC2_IMM)); in emit_single_op()
1599 SLJIT_ASSERT(src1 == TMP_REG1 && !(flags & SRC2_IMM)); in emit_single_op()
1600 if ((flags & (REG_DEST | REG2_SOURCE)) == (REG_DEST | REG2_SOURCE)) { in emit_single_op()
1614 SLJIT_ASSERT(src1 == TMP_REG1 && !(flags & SRC2_IMM)); in emit_single_op()
1615 if ((flags & (REG_DEST | REG2_SOURCE)) == (REG_DEST | REG2_SOURCE)) { in emit_single_op()
1629 SLJIT_ASSERT(src1 == TMP_REG1 && !(flags & SRC2_IMM)); in emit_single_op()
1630 if ((flags & (REG_DEST | REG2_SOURCE)) == (REG_DEST | REG2_SOURCE)) { in emit_single_op()
1643 SLJIT_ASSERT(src1 == TMP_REG1 && !(flags & SRC2_IMM)); in emit_single_op()
1652 SLJIT_ASSERT(src1 == TMP_REG1 && !(flags & SRC2_IMM)); in emit_single_op()
1661 if (flags & SRC2_IMM) { in emit_single_op()
1732 if (flags & SRC2_IMM) { in emit_single_op()
1767 if ((flags & SRC2_IMM) && ((op & (SLJIT_SET_U | SLJIT_SET_S)) || src2 == SIMM_16BIT_MIN)) { in emit_single_op()
1770 flags &= ~SRC2_IMM; in emit_single_op()
1773 if (flags & SRC2_IMM) { in emit_single_op()
1844 if ((flags & SRC2_IMM) && src2 == SIMM_16BIT_MIN) { in emit_single_op()
1847 flags &= ~SRC2_IMM; in emit_single_op()
1850 if (flags & SRC2_IMM) { in emit_single_op()
1877 if (flags & SRC2_IMM) { in emit_single_op()
1880 flags &= ~SRC2_IMM; in emit_single_op()
1888 if (flags & SRC2_IMM) { \ in emit_single_op()
1922 if (flags & SRC2_IMM) { \ in emit_single_op()
1959 static sljit_si emit_op(struct sljit_compiler *compiler, sljit_si op, sljit_si flags, sljit_si dst,… in emit_op() argument
1970 if (!(flags & ALT_KEEP_CACHE)) { in emit_op()
1979 flags |= UNUSED_DEST; in emit_op()
1982 flags |= REG_DEST; in emit_op()
1985 …} else if ((dst & SLJIT_MEM) && !getput_arg_fast(compiler, flags | ARG_TEST, TMP_REG1_mapped, dst,… in emit_op()
1986 flags |= SLOW_DEST; in emit_op()
1988 if (flags & IMM_OP) { in emit_op()
1990 if ((!(flags & LOGICAL_OP) in emit_op()
1992 || ((flags & LOGICAL_OP) && !(src2w & ~UIMM_16BIT_MAX))) { in emit_op()
1993 flags |= SRC2_IMM; in emit_op()
1998 if (!(flags & SRC2_IMM) && (flags & CUMULATIVE_OP) && (src1 & SLJIT_IMM) && src1w) { in emit_op()
1999 if ((!(flags & LOGICAL_OP) in emit_op()
2001 || ((flags & LOGICAL_OP) && !(src1w & ~UIMM_16BIT_MAX))) { in emit_op()
2002 flags |= SRC2_IMM; in emit_op()
2017 flags |= REG1_SOURCE; in emit_op()
2025 if (getput_arg_fast(compiler, flags | LOAD_DATA, TMP_REG1_mapped, src1, src1w)) in emit_op()
2028 flags |= SLOW_SRC1; in emit_op()
2035 flags |= REG2_SOURCE; in emit_op()
2036 if (!(flags & REG_DEST) && op >= SLJIT_MOV && op <= SLJIT_MOVU_SI) in emit_op()
2039 if (!(flags & SRC2_IMM)) { in emit_op()
2050 if (getput_arg_fast(compiler, flags | LOAD_DATA, reg_map[sugg_src2_r], src2, src2w)) in emit_op()
2053 flags |= SLOW_SRC2; in emit_op()
2057 if ((flags & (SLOW_SRC1 | SLOW_SRC2)) == (SLOW_SRC1 | SLOW_SRC2)) { in emit_op()
2060 FAIL_IF(getput_arg(compiler, flags | LOAD_DATA, TMP_REG2_mapped, src2, src2w, src1, src1w)); in emit_op()
2061 FAIL_IF(getput_arg(compiler, flags | LOAD_DATA, TMP_REG1_mapped, src1, src1w, dst, dstw)); in emit_op()
2063 FAIL_IF(getput_arg(compiler, flags | LOAD_DATA, TMP_REG1_mapped, src1, src1w, src2, src2w)); in emit_op()
2064 FAIL_IF(getput_arg(compiler, flags | LOAD_DATA, TMP_REG2_mapped, src2, src2w, dst, dstw)); in emit_op()
2066 } else if (flags & SLOW_SRC1) in emit_op()
2067 FAIL_IF(getput_arg(compiler, flags | LOAD_DATA, TMP_REG1_mapped, src1, src1w, dst, dstw)); in emit_op()
2068 else if (flags & SLOW_SRC2) in emit_op()
2069 FAIL_IF(getput_arg(compiler, flags | LOAD_DATA, reg_map[sugg_src2_r], src2, src2w, dst, dstw)); in emit_op()
2071 FAIL_IF(emit_single_op(compiler, op, flags, dst_r, src1_r, src2_r)); in emit_op()
2074 if (!(flags & SLOW_DEST)) { in emit_op()
2075 getput_arg_fast(compiler, flags, reg_map[dst_r], dst, dstw); in emit_op()
2079 return getput_arg(compiler, flags, reg_map[dst_r], dst, dstw, 0, 0); in emit_op()
2088 sljit_si flags = GET_ALL_FLAGS(op); in sljit_emit_op_flags() local
2159 …return emit_op(compiler, op | flags, mem_type | CUMULATIVE_OP | LOGICAL_OP | IMM_OP | ALT_KEEP_CAC… in sljit_emit_op_flags()
2398 flags = IS_COND;
2402 flags = IS_COND;
2408 sljit_si flags = 0; in sljit_emit_jump() local
2465 jump->flags |= flags; in sljit_emit_jump()
2479 jump->flags |= IS_JAL | (type >= SLJIT_CALL0 ? SLJIT_REWRITABLE_JUMP : 0); in sljit_emit_jump()