Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
tcg: Add tlb_dyn_max_bits to TCGContext
Disconnect guest tlb parameters from TCG compilation.

Reviewed-by: Anton Johansson <anjo@rev.ng>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
  • Loading branch information
rth7680 committed May 16, 2023
1 parent 73a9f3a commit 0726010
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 2 deletions.
1 change: 1 addition & 0 deletions accel/tcg/translate-all.c
Expand Up @@ -360,6 +360,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu,
#ifdef CONFIG_SOFTMMU
tcg_ctx->page_bits = TARGET_PAGE_BITS;
tcg_ctx->page_mask = TARGET_PAGE_MASK;
tcg_ctx->tlb_dyn_max_bits = CPU_TLB_DYN_MAX_BITS;
#endif

tb_overflow:
Expand Down
1 change: 1 addition & 0 deletions include/tcg/tcg.h
Expand Up @@ -563,6 +563,7 @@ struct TCGContext {
#ifdef CONFIG_SOFTMMU
int page_mask;
uint8_t page_bits;
uint8_t tlb_dyn_max_bits;
#endif

TCGRegSet reserved_regs;
Expand Down
2 changes: 1 addition & 1 deletion tcg/aarch64/tcg-target.c.inc
Expand Up @@ -1663,7 +1663,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h,
ldst->oi = oi;
ldst->addrlo_reg = addr_reg;

mask_type = (s->page_bits + CPU_TLB_DYN_MAX_BITS > 32
mask_type = (s->page_bits + s->tlb_dyn_max_bits > 32
? TCG_TYPE_I64 : TCG_TYPE_I32);

/* Load env_tlb(env)->f[mmu_idx].{mask,table} into {x0,x1}. */
Expand Down
2 changes: 1 addition & 1 deletion tcg/i386/tcg-target.c.inc
Expand Up @@ -1933,7 +1933,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, HostAddress *h,
trexw = (ttype == TCG_TYPE_I32 ? 0 : P_REXW);
if (TCG_TYPE_PTR == TCG_TYPE_I64) {
hrexw = P_REXW;
if (s->page_bits + CPU_TLB_DYN_MAX_BITS > 32) {
if (s->page_bits + s->tlb_dyn_max_bits > 32) {
tlbtype = TCG_TYPE_I64;
tlbrexw = P_REXW;
}
Expand Down

0 comments on commit 0726010

Please sign in to comment.