From 25c4d9cc845fb58f624dae8c0f690e20c70e7a1d Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 17 Aug 2011 14:11:46 -0700 Subject: tcg: Always define all of the TCGOpcode enum members. By always defining these symbols, we can eliminate a lot of ifdefs. To allow this to be checked reliably, the semantics of the TCG_TARGET_HAS_* macros must be changed from def/undef to true/false. This allows even more ifdefs to be removed, converting them into C if statements. Signed-off-by: Richard Henderson Signed-off-by: Blue Swirl --- tcg/tcg.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'tcg/tcg.c') diff --git a/tcg/tcg.c b/tcg/tcg.c index 70f19e4e9e..06ce214881 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -2124,6 +2124,10 @@ static inline int tcg_gen_code_common(TCGContext *s, uint8_t *gen_code_buf, case INDEX_op_end: goto the_end; default: + /* Sanity check that we've not introduced any unhandled opcodes. */ + if (def->flags & TCG_OPF_NOT_PRESENT) { + tcg_abort(); + } /* Note: in order to speed up the code, it would be much faster to have specialized register allocator functions for some common argument patterns */ -- cgit v1.2.3