[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 08/41] target/alpha: Remove in_superpage
From: |
Richard Henderson |
Subject: |
[PATCH 08/41] target/alpha: Remove in_superpage |
Date: |
Sat, 10 Jul 2021 08:31:10 -0700 |
The number of links across (normal) pages using this is low,
and it will shortly violate the contract for breakpoints.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/alpha/translate.c | 24 ++----------------------
1 file changed, 2 insertions(+), 22 deletions(-)
diff --git a/target/alpha/translate.c b/target/alpha/translate.c
index cb2cb2de6b..bb7b5ce994 100644
--- a/target/alpha/translate.c
+++ b/target/alpha/translate.c
@@ -438,24 +438,9 @@ static DisasJumpType gen_store_conditional(DisasContext
*ctx, int ra, int rb,
return DISAS_NEXT;
}
-static bool in_superpage(DisasContext *ctx, int64_t addr)
-{
-#ifndef CONFIG_USER_ONLY
- return ((ctx->tbflags & ENV_FLAG_PS_USER) == 0
- && addr >> TARGET_VIRT_ADDR_SPACE_BITS == -1
- && ((addr >> 41) & 3) == 2);
-#else
- return false;
-#endif
-}
-
static bool use_goto_tb(DisasContext *ctx, uint64_t dest)
{
#ifndef CONFIG_USER_ONLY
- /* If the destination is in the superpage, the page perms can't change. */
- if (in_superpage(ctx, dest)) {
- return true;
- }
/* Check for the dest on the same page as the start of the TB. */
return ((ctx->base.tb->pc ^ dest) & TARGET_PAGE_MASK) == 0;
#else
@@ -2990,7 +2975,7 @@ static void alpha_tr_init_disas_context(DisasContextBase
*dcbase, CPUState *cpu)
{
DisasContext *ctx = container_of(dcbase, DisasContext, base);
CPUAlphaState *env = cpu->env_ptr;
- int64_t bound, mask;
+ int64_t bound;
ctx->tbflags = ctx->base.tb->flags;
ctx->mem_idx = cpu_mmu_index(env, false);
@@ -3019,12 +3004,7 @@ static void alpha_tr_init_disas_context(DisasContextBase
*dcbase, CPUState *cpu)
ctx->lit = NULL;
/* Bound the number of insns to execute to those left on the page. */
- if (in_superpage(ctx, ctx->base.pc_first)) {
- mask = -1ULL << 41;
- } else {
- mask = TARGET_PAGE_MASK;
- }
- bound = -(ctx->base.pc_first | mask) / 4;
+ bound = -(ctx->base.pc_first | TARGET_PAGE_MASK) / 4;
ctx->base.max_insns = MIN(ctx->base.max_insns, bound);
}
--
2.25.1
- [PATCH 00/41] tcg patch queue, Richard Henderson, 2021/07/10
- [PATCH 03/41] accel/tcg: Hoist tcg_tb_insert() up above tb_link_page(), Richard Henderson, 2021/07/10
- [PATCH 02/41] tcg: Avoid including 'trace-tcg.h' in target translate.c, Richard Henderson, 2021/07/10
- [PATCH 04/41] tcg: Bake tb_destroy() into tcg_region_tree, Richard Henderson, 2021/07/10
- [PATCH 01/41] tcg: Add separator in INDEX_op_call dump, Richard Henderson, 2021/07/10
- [PATCH 06/41] accel/tcg: Introduce translator_use_goto_tb, Richard Henderson, 2021/07/10
- [PATCH 05/41] tcg: Move tb_phys_invalidate_count to tb_ctx, Richard Henderson, 2021/07/10
- [PATCH 07/41] target/alpha: Remove use_exit_tb, Richard Henderson, 2021/07/10
- [PATCH 08/41] target/alpha: Remove in_superpage,
Richard Henderson <=
- [PATCH 09/41] target/alpha: Use translator_use_goto_tb, Richard Henderson, 2021/07/10
- [PATCH 10/41] target/arm: Use DISAS_TOO_MANY for ISB and SB, Richard Henderson, 2021/07/10
- [PATCH 11/41] target/arm: Use translator_use_goto_tb for aarch64, Richard Henderson, 2021/07/10
- [PATCH 12/41] target/arm: Use translator_use_goto_tb for aarch32, Richard Henderson, 2021/07/10
- [PATCH 14/41] target/avr: Mark some helpers noreturn, Richard Henderson, 2021/07/10
- [PATCH 18/41] target/m68k: Use translator_use_goto_tb, Richard Henderson, 2021/07/10
- [PATCH 13/41] target/avr: Use translator_use_goto_tb, Richard Henderson, 2021/07/10
- [PATCH 17/41] target/i386: Use translator_use_goto_tb, Richard Henderson, 2021/07/10
- [PATCH 15/41] target/cris: Use translator_use_goto_tb, Richard Henderson, 2021/07/10
- [PATCH 16/41] target/hppa: Use translator_use_goto_tb, Richard Henderson, 2021/07/10