diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-02-01 10:50:11 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-02-01 10:50:11 +0000 |
commit | 57fec1fee94aa9f7d2519e8c354f100fc36bc9fa (patch) | |
tree | dd3381d7ab3c77532719ea9366782b27f09bfc87 /target-alpha | |
parent | c896fe29d6c8ae6cde3917727812ced3f2e536a4 (diff) | |
download | hqemu-57fec1fee94aa9f7d2519e8c354f100fc36bc9fa.zip hqemu-57fec1fee94aa9f7d2519e8c354f100fc36bc9fa.tar.gz |
use the TCG code generator
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3944 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-alpha')
-rw-r--r-- | target-alpha/op.c | 5 | ||||
-rw-r--r-- | target-alpha/translate.c | 30 |
2 files changed, 2 insertions, 33 deletions
diff --git a/target-alpha/op.c b/target-alpha/op.c index da93e7c..957c651 100644 --- a/target-alpha/op.c +++ b/target-alpha/op.c @@ -216,11 +216,6 @@ void OPPROTO op_clear_irf (void) RETURN(); } -void OPPROTO op_exit_tb (void) -{ - EXIT_TB(); -} - /* Arithmetic */ void OPPROTO op_addq (void) { diff --git a/target-alpha/translate.c b/target-alpha/translate.c index 01e6ded..1c8587d 100644 --- a/target-alpha/translate.c +++ b/target-alpha/translate.c @@ -25,6 +25,7 @@ #include "cpu.h" #include "exec-all.h" #include "disas.h" +#include "tcg-op.h" #define DO_SINGLE_STEP #define GENERATE_NOP @@ -41,24 +42,6 @@ struct DisasContext { uint32_t amask; }; -#ifdef USE_DIRECT_JUMP -#define TBPARAM(x) -#else -#define TBPARAM(x) (long)(x) -#endif - -enum { -#define DEF(s, n, copy_size) INDEX_op_ ## s, -#include "opc.h" -#undef DEF - NB_OPS, -}; - -static uint16_t *gen_opc_ptr; -static uint32_t *gen_opparam_ptr; - -#include "gen-op.h" - static always_inline void gen_op_nop (void) { #if defined(GENERATE_NOP) @@ -1988,10 +1971,7 @@ static always_inline int gen_intermediate_code_internal (CPUState *env, int ret; pc_start = tb->pc; - gen_opc_ptr = gen_opc_buf; gen_opc_end = gen_opc_buf + OPC_MAX_SIZE; - gen_opparam_ptr = gen_opparam_buf; - nb_gen_labels = 0; ctx.pc = pc_start; ctx.amask = env->amask; #if defined (CONFIG_USER_ONLY) @@ -2051,12 +2031,11 @@ static always_inline int gen_intermediate_code_internal (CPUState *env, if (ret != 1 && ret != 3) { gen_update_pc(&ctx); } - gen_op_reset_T0(); #if defined (DO_TB_FLUSH) gen_op_tb_flush(); #endif /* Generate the return instruction */ - gen_op_exit_tb(); + tcg_gen_exit_tb(0); *gen_opc_ptr = INDEX_op_end; if (search_pc) { j = gen_opc_ptr - gen_opc_buf; @@ -2075,11 +2054,6 @@ static always_inline int gen_intermediate_code_internal (CPUState *env, target_disas(logfile, pc_start, ctx.pc - pc_start, 1); fprintf(logfile, "\n"); } - if (loglevel & CPU_LOG_TB_OP) { - fprintf(logfile, "OP:\n"); - dump_ops(gen_opc_buf, gen_opparam_buf); - fprintf(logfile, "\n"); - } #endif return 0; |