diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2019-05-17 13:39:56 -0700 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2019-05-22 15:09:43 -0400 |
commit | 25c012b4009256505be3430480954a0233de343e (patch) | |
tree | 344333773fe76e2444e1430b66854bea0e8f0327 /tcg | |
parent | 72b4c792c7a576d9246207a8e9a940ed9e191722 (diff) | |
download | qemu-25c012b4009256505be3430480954a0233de343e.zip qemu-25c012b4009256505be3430480954a0233de343e.tar.gz qemu-25c012b4009256505be3430480954a0233de343e.tar.bz2 |
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>
Diffstat (limited to 'tcg')
-rw-r--r-- | tcg/tcg-opc.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/tcg/tcg-opc.h b/tcg/tcg-opc.h index c7d971f..242d608 100644 --- a/tcg/tcg-opc.h +++ b/tcg/tcg-opc.h @@ -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) -#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 # define IMPL64 TCG_OPF_64BIT | TCG_OPF_NOT_PRESENT #else |