mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-01-22 18:11:02 +00:00
target/arm: Introduce core_to_aa64_mmu_idx
If by context we know that we're in AArch64 mode, we need not test for M-profile when reconstructing the full ARMMMUIdx. Backports commit 20dc67c947a691fa9df05e76aec6df50204b4b94 from qemu
This commit is contained in:
parent
d3a5843aeb
commit
a22a2a8b71
|
@ -785,6 +785,12 @@ static inline ARMMMUIdx core_to_arm_mmu_idx(CPUARMState *env, int mmu_idx)
|
|||
}
|
||||
}
|
||||
|
||||
static inline ARMMMUIdx core_to_aa64_mmu_idx(int mmu_idx)
|
||||
{
|
||||
/* AArch64 is always a-profile. */
|
||||
return mmu_idx | ARM_MMU_IDX_A;
|
||||
}
|
||||
|
||||
int arm_mmu_idx_to_el(ARMMMUIdx mmu_idx);
|
||||
|
||||
/*
|
||||
|
|
|
@ -14633,7 +14633,7 @@ static void aarch64_tr_init_disas_context(DisasContextBase *dcbase,
|
|||
dc->condexec_mask = 0;
|
||||
dc->condexec_cond = 0;
|
||||
core_mmu_idx = FIELD_EX32(tb_flags, TBFLAG_ANY, MMUIDX);
|
||||
dc->mmu_idx = core_to_arm_mmu_idx(env, core_mmu_idx);
|
||||
dc->mmu_idx = core_to_aa64_mmu_idx(core_mmu_idx);
|
||||
dc->tbii = FIELD_EX32(tb_flags, TBFLAG_A64, TBII);
|
||||
dc->tbid = FIELD_EX32(tb_flags, TBFLAG_A64, TBID);
|
||||
dc->current_el = arm_mmu_idx_to_el(dc->mmu_idx);
|
||||
|
|
Loading…
Reference in a new issue