diff options
Diffstat (limited to 'tcg')
-rw-r--r-- | tcg/tcg.c | 21 | ||||
-rw-r--r-- | tcg/tcg.h | 4 |
2 files changed, 12 insertions, 13 deletions
@@ -57,8 +57,6 @@ #include "tcg-op.h" #include "elf.h" -int tcg_disable_liveness_analysis; - static void patch_reloc(uint8_t *code_ptr, int type, tcg_target_long value, tcg_target_long addend); @@ -1079,13 +1077,11 @@ static void tcg_liveness_analysis(TCGContext *s) uint8_t *dead_temps; unsigned int dead_iargs; - if (tcg_disable_liveness_analysis) { - int nb_ops; - nb_ops = gen_opc_ptr - gen_opc_buf + 1; - - s->op_dead_iargs = tcg_malloc(nb_ops * sizeof(uint16_t)); - memset(s->op_dead_iargs, 0, nb_ops * sizeof(uint16_t)); - return; + /* sanity check */ + if (gen_opc_ptr - gen_opc_buf > OPC_BUF_SIZE) { + fprintf(stderr, "PANIC: too many opcodes generated (%d > %d)\n", + gen_opc_ptr - gen_opc_buf, OPC_BUF_SIZE); + tcg_abort(); } gen_opc_ptr++; /* skip end */ @@ -2021,6 +2017,13 @@ int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf) } #endif + /* sanity check */ + if (gen_opc_ptr - gen_opc_buf > OPC_BUF_SIZE) { + fprintf(stderr, "PANIC: too many opcodes generated (%d > %d)\n", + gen_opc_ptr - gen_opc_buf, OPC_BUF_SIZE); + tcg_abort(); + } + tcg_gen_code_common(s, gen_code_buf, -1); /* flush instruction cache */ @@ -471,7 +471,3 @@ extern uint8_t code_gen_prologue[]; #else #define tcg_qemu_tb_exec(tb_ptr) ((long REGPARM (*)(void *))code_gen_prologue)(tb_ptr) #endif - -/* set to 1 to disable LIVENESS ANALYSIS - temporary work-around for - * specific fatal assertion error in ARMv7 -> x86 code translation. */ -extern int tcg_disable_liveness_analysis; |