diff options
author | Richard Henderson <rth@twiddle.net> | 2011-08-17 14:11:45 -0700 |
---|---|---|
committer | Blue Swirl <blauwirbel@gmail.com> | 2011-08-21 18:52:22 +0000 |
commit | 8399ad59e73a0f48af3edef62f021e2cb6220e12 (patch) | |
tree | bd7382f9e8574f1449cd36a8e00b86e6c3a2842f /tcg/tcg.h | |
parent | 4b29ec41c82a6e6c6a50263818e81944ef522fb2 (diff) |
tcg: Add and use TCG_OPF_64BIT.
This allows the simplification of the op_bits function from
tcg/optimize.c.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'tcg/tcg.h')
-rw-r--r-- | tcg/tcg.h | 21 |
1 files changed, 14 insertions, 7 deletions
@@ -445,13 +445,18 @@ typedef struct TCGArgConstraint { #define TCG_MAX_OP_ARGS 16 -#define TCG_OPF_BB_END 0x01 /* instruction defines the end of a basic - block */ -#define TCG_OPF_CALL_CLOBBER 0x02 /* instruction clobbers call registers - and potentially update globals. */ -#define TCG_OPF_SIDE_EFFECTS 0x04 /* instruction has side effects : it - cannot be removed if its output - are not used */ +/* Bits for TCGOpDef->flags, 8 bits available. */ +enum { + /* Instruction defines the end of a basic block. */ + TCG_OPF_BB_END = 0x01, + /* Instruction clobbers call registers and potentially update globals. */ + TCG_OPF_CALL_CLOBBER = 0x02, + /* Instruction has side effects: it cannot be removed + if its outputs are not used. */ + TCG_OPF_SIDE_EFFECTS = 0x04, + /* Instruction operands are 64-bits (otherwise 32-bits). */ + TCG_OPF_64BIT = 0x08, +}; typedef struct TCGOpDef { const char *name; @@ -463,6 +468,8 @@ typedef struct TCGOpDef { int used; #endif } TCGOpDef; + +extern TCGOpDef tcg_op_defs[]; typedef struct TCGTargetOpDef { TCGOpcode op; |