[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 03/26] target/alpha: Remove in_superpage
From: |
Richard Henderson |
Subject: |
[PATCH 03/26] target/alpha: Remove in_superpage |
Date: |
Sun, 20 Jun 2021 18:34:16 -0700 |
The number of links across (normal) pages using this is low,
and it will shortly violate the contract for breakpoints.
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 70ba4a67c7..6ea19a1d4c 100644
--- a/target/alpha/translate.c
+++ b/target/alpha/translate.c
@@ -439,24 +439,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
@@ -2916,7 +2901,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);
@@ -2945,12 +2930,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/26] accel/tcg: Introduce translator_use_goto_tb, Richard Henderson, 2021/06/20
- [PATCH 01/26] accel/tcg: Introduce translator_use_goto_tb, Richard Henderson, 2021/06/20
- [PATCH 04/26] target/alpha: Use translator_use_goto_tb, Richard Henderson, 2021/06/20
- [PATCH 02/26] target/alpha: Remove use_exit_tb, Richard Henderson, 2021/06/20
- [PATCH 07/26] target/avr: Mark some helpers noreturn, Richard Henderson, 2021/06/20
- [PATCH 05/26] target/arm: Use translator_use_goto_tb, Richard Henderson, 2021/06/20
- [PATCH 03/26] target/alpha: Remove in_superpage,
Richard Henderson <=
- [PATCH 06/26] target/avr: Use translator_use_goto_tb, Richard Henderson, 2021/06/20
- [PATCH 09/26] target/hppa: Use translator_use_goto_tb, Richard Henderson, 2021/06/20
- [PATCH 10/26] target/i386: Use translator_use_goto_tb, Richard Henderson, 2021/06/20
- [PATCH 08/26] target/cris: Use translator_use_goto_tb, Richard Henderson, 2021/06/20
- [PATCH 11/26] target/m68k: Use translator_use_goto_tb, Richard Henderson, 2021/06/20
- [PATCH 12/26] target/microblaze: Use translator_use_goto_tb, Richard Henderson, 2021/06/20
- [PATCH 14/26] target/mips: Fix missing else in gen_goto_tb, Richard Henderson, 2021/06/20
- [PATCH 13/26] target/mips: Use translator_use_goto_tb, Richard Henderson, 2021/06/20