diff options
author | Richard Henderson | 2019-04-05 04:34:19 +0200 |
---|---|---|
committer | Richard Henderson | 2020-10-08 12:57:32 +0200 |
commit | bc2b17e6ea582ef3ade2bdca750de269c674c915 (patch) | |
tree | 1b1f07efe2516593559a9eb5963614ebf70d7012 /include/tcg/tcg.h | |
parent | tcg: Remove TCG_CT_REG (diff) | |
download | qemu-bc2b17e6ea582ef3ade2bdca750de269c674c915.tar.gz qemu-bc2b17e6ea582ef3ade2bdca750de269c674c915.tar.xz qemu-bc2b17e6ea582ef3ade2bdca750de269c674c915.zip |
tcg: Move some TCG_CT_* bits to TCGArgConstraint bitfields
These are easier to set and test when they have their own fields.
Reduce the size of alias_index and sort_index to 4 bits, which is
sufficient for TCG_MAX_OP_ARGS. This leaves only the bits indicating
constants within the ct field.
Move all initialization to allocation time, rather than init
individual fields in process_op_defs.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'include/tcg/tcg.h')
-rw-r--r-- | include/tcg/tcg.h | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h index 3168315bb8..e8629b58c8 100644 --- a/include/tcg/tcg.h +++ b/include/tcg/tcg.h @@ -976,15 +976,15 @@ int64_t tcg_cpu_exec_time(void); void tcg_dump_info(void); void tcg_dump_op_count(void); -#define TCG_CT_ALIAS 0x80 -#define TCG_CT_IALIAS 0x40 -#define TCG_CT_NEWREG 0x20 /* output requires a new register */ -#define TCG_CT_CONST 0x02 /* any constant of register size */ +#define TCG_CT_CONST 1 /* any constant of register size */ typedef struct TCGArgConstraint { - uint16_t ct; - uint8_t alias_index; - uint8_t sort_index; + unsigned ct : 16; + unsigned alias_index : 4; + unsigned sort_index : 4; + bool oalias : 1; + bool ialias : 1; + bool newreg : 1; TCGRegSet regs; } TCGArgConstraint; |