mirror of https://gitee.com/openkylin/qemu.git
tcg: Add TCG_OPF_NOT_PRESENT if TCG_TARGET_HAS_foo is negative
If INDEX_op_foo is always expanded by tcg_expand_vec_op, then there may be no reasonable set of constraints to return from tcg_target_op_def for that opcode. Let TCG_TARGET_HAS_foo be specified as -1 in that case. Thus a boolean test for TCG_TARGET_HAS_foo is true, but we will not assert within process_op_defs when no constraints are specified. Compare this with tcg_can_emit_vec_op, which already uses this tri-state indication. Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
72b4c792c7
commit
25c012b400
|
@ -35,7 +35,7 @@ DEF(call, 0, 0, 3, TCG_OPF_CALL_CLOBBER | TCG_OPF_NOT_PRESENT)
|
||||||
|
|
||||||
DEF(br, 0, 0, 1, TCG_OPF_BB_END)
|
DEF(br, 0, 0, 1, TCG_OPF_BB_END)
|
||||||
|
|
||||||
#define IMPL(X) (__builtin_constant_p(X) && !(X) ? TCG_OPF_NOT_PRESENT : 0)
|
#define IMPL(X) (__builtin_constant_p(X) && (X) <= 0 ? TCG_OPF_NOT_PRESENT : 0)
|
||||||
#if TCG_TARGET_REG_BITS == 32
|
#if TCG_TARGET_REG_BITS == 32
|
||||||
# define IMPL64 TCG_OPF_64BIT | TCG_OPF_NOT_PRESENT
|
# define IMPL64 TCG_OPF_64BIT | TCG_OPF_NOT_PRESENT
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in New Issue