mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 01:03:55 -06:00
icount: remove unnecessary gen_io_end calls
Prior patch resets can_do_io flag at the TB entry. Therefore there is no need in resetting this flag at the end of the block. This patch removes redundant gen_io_end calls. Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru> Message-Id: <156404429499.18669.13404064982854123855.stgit@pasha-Precision-3630-Tower> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@gmail.com>
This commit is contained in:
parent
ba3e792669
commit
9e9b10c649
18 changed files with 7 additions and 102 deletions
|
@ -7129,9 +7129,6 @@ static void gen_mfc0(DisasContext *ctx, TCGv arg, int reg, int sel)
|
|||
gen_io_start();
|
||||
}
|
||||
gen_helper_mfc0_count(arg, cpu_env);
|
||||
if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) {
|
||||
gen_io_end();
|
||||
}
|
||||
/*
|
||||
* Break the TB to be able to take timer interrupts immediately
|
||||
* after reading count. DISAS_STOP isn't sufficient, we need to
|
||||
|
@ -8296,7 +8293,6 @@ static void gen_mtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
|
|||
|
||||
/* For simplicity assume that all writes can cause interrupts. */
|
||||
if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) {
|
||||
gen_io_end();
|
||||
/*
|
||||
* DISAS_STOP isn't sufficient, we need to ensure we break out of
|
||||
* translated code to check for pending interrupts.
|
||||
|
@ -8607,9 +8603,6 @@ static void gen_dmfc0(DisasContext *ctx, TCGv arg, int reg, int sel)
|
|||
gen_io_start();
|
||||
}
|
||||
gen_helper_mfc0_count(arg, cpu_env);
|
||||
if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) {
|
||||
gen_io_end();
|
||||
}
|
||||
/*
|
||||
* Break the TB to be able to take timer interrupts immediately
|
||||
* after reading count. DISAS_STOP isn't sufficient, we need to
|
||||
|
@ -9748,7 +9741,6 @@ static void gen_dmtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
|
|||
|
||||
/* For simplicity assume that all writes can cause interrupts. */
|
||||
if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) {
|
||||
gen_io_end();
|
||||
/*
|
||||
* DISAS_STOP isn't sufficient, we need to ensure we break out of
|
||||
* translated code to check for pending interrupts.
|
||||
|
@ -12817,9 +12809,6 @@ static void gen_rdhwr(DisasContext *ctx, int rt, int rd, int sel)
|
|||
gen_io_start();
|
||||
}
|
||||
gen_helper_rdhwr_cc(t0, cpu_env);
|
||||
if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) {
|
||||
gen_io_end();
|
||||
}
|
||||
gen_store_gpr(t0, rt);
|
||||
/*
|
||||
* Break the TB to be able to take timer interrupts immediately
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue