tcg: Remove TCGContext.tlb_fast_offset
Now that there is no padding between CPUNegativeOffsetState and CPUArchState, this value is constant across all targets. Reviewed-by: Anton Johansson <anjo@rev.ng> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
06ddecff24
commit
7857ee114c
@ -344,8 +344,6 @@ TranslationBlock *tb_gen_code(CPUState *cpu,
|
||||
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;
|
||||
tcg_ctx->tlb_fast_offset = (int)offsetof(ArchCPU, parent_obj.neg.tlb.f)
|
||||
- (int)offsetof(ArchCPU, env);
|
||||
#endif
|
||||
tcg_ctx->insn_start_words = TARGET_INSN_START_WORDS;
|
||||
#ifdef TCG_GUEST_DEFAULT_MO
|
||||
|
@ -489,7 +489,6 @@ struct TCGContext {
|
||||
TCGType addr_type; /* TCG_TYPE_I32 or TCG_TYPE_I64 */
|
||||
|
||||
#ifdef CONFIG_SOFTMMU
|
||||
int tlb_fast_offset;
|
||||
int page_mask;
|
||||
uint8_t page_bits;
|
||||
uint8_t tlb_dyn_max_bits;
|
||||
|
15
tcg/tcg.c
15
tcg/tcg.c
@ -406,7 +406,8 @@ static uintptr_t G_GNUC_UNUSED get_jmp_target_addr(TCGContext *s, int which)
|
||||
#if defined(CONFIG_SOFTMMU) && !defined(CONFIG_TCG_INTERPRETER)
|
||||
static int tlb_mask_table_ofs(TCGContext *s, int which)
|
||||
{
|
||||
return s->tlb_fast_offset + which * sizeof(CPUTLBDescFast);
|
||||
return (offsetof(CPUNegativeOffsetState, tlb.f[which]) -
|
||||
sizeof(CPUNegativeOffsetState));
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -734,6 +735,13 @@ static const TCGTargetOpDef constraint_sets[] = {
|
||||
|
||||
#include "tcg-target.c.inc"
|
||||
|
||||
#ifndef CONFIG_TCG_INTERPRETER
|
||||
/* Validate CPUTLBDescFast placement. */
|
||||
QEMU_BUILD_BUG_ON((int)(offsetof(CPUNegativeOffsetState, tlb.f[0]) -
|
||||
sizeof(CPUNegativeOffsetState))
|
||||
< MIN_TLB_MASK_TABLE_OFS);
|
||||
#endif
|
||||
|
||||
static void alloc_tcg_plugin_context(TCGContext *s)
|
||||
{
|
||||
#ifdef CONFIG_PLUGIN
|
||||
@ -1497,11 +1505,6 @@ void tcg_func_start(TCGContext *s)
|
||||
tcg_debug_assert(s->addr_type == TCG_TYPE_I32 ||
|
||||
s->addr_type == TCG_TYPE_I64);
|
||||
|
||||
#if defined(CONFIG_SOFTMMU) && !defined(CONFIG_TCG_INTERPRETER)
|
||||
tcg_debug_assert(s->tlb_fast_offset < 0);
|
||||
tcg_debug_assert(s->tlb_fast_offset >= MIN_TLB_MASK_TABLE_OFS);
|
||||
#endif
|
||||
|
||||
tcg_debug_assert(s->insn_start_words > 0);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user