mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-03-23 06:25:12 +00:00
target/arm: Add and use FIELD definitions for ID_AA64DFR0_EL1
Add FIELD() definitions for the ID_AA64DFR0_EL1 and use them where we currently have hard-coded bit values. Backports commit ceb2744b47a1ef4184dca56a158eb3156b6eba36 from qemu
This commit is contained in:
parent
ebd7131c16
commit
fd6c635e03
|
@ -942,7 +942,7 @@ static int arm_cpu_realizefn(struct uc_struct *uc, DeviceState *dev, Error **err
|
|||
arm_register_pre_el_change_hook(cpu, &pmu_pre_el_change, 0);
|
||||
arm_register_el_change_hook(cpu, &pmu_post_el_change, 0);
|
||||
} else {
|
||||
cpu->id_aa64dfr0 &= ~0xf00;
|
||||
cpu->id_aa64dfr0 = FIELD_DP64(cpu->id_aa64dfr0, ID_AA64DFR0, PMUVER, 0);
|
||||
cpu->id_dfr0 &= ~(0xf << 24);
|
||||
cpu->pmceid0 = 0;
|
||||
cpu->pmceid1 = 0;
|
||||
|
|
|
@ -1706,6 +1706,16 @@ FIELD(ID_AA64MMFR2, BBM, 52, 4)
|
|||
FIELD(ID_AA64MMFR2, EVT, 56, 4)
|
||||
FIELD(ID_AA64MMFR2, E0PD, 60, 4)
|
||||
|
||||
FIELD(ID_AA64DFR0, DEBUGVER, 0, 4)
|
||||
FIELD(ID_AA64DFR0, TRACEVER, 4, 4)
|
||||
FIELD(ID_AA64DFR0, PMUVER, 8, 4)
|
||||
FIELD(ID_AA64DFR0, BRPS, 12, 4)
|
||||
FIELD(ID_AA64DFR0, WRPS, 20, 4)
|
||||
FIELD(ID_AA64DFR0, CTX_CMPS, 28, 4)
|
||||
FIELD(ID_AA64DFR0, PMSVER, 32, 4)
|
||||
FIELD(ID_AA64DFR0, DOUBLELOCK, 36, 4)
|
||||
FIELD(ID_AA64DFR0, TRACEFILT, 40, 4)
|
||||
|
||||
FIELD(ID_DFR0, COPDBG, 0, 4)
|
||||
FIELD(ID_DFR0, COPSDBG, 4, 4)
|
||||
FIELD(ID_DFR0, MMAPDBG, 8, 4)
|
||||
|
|
|
@ -6046,9 +6046,9 @@ static void define_debug_regs(ARMCPU *cpu)
|
|||
* check that if they both exist then they agree.
|
||||
*/
|
||||
if (arm_feature(&cpu->env, ARM_FEATURE_AARCH64)) {
|
||||
assert(extract32(cpu->id_aa64dfr0, 12, 4) == brps);
|
||||
assert(extract32(cpu->id_aa64dfr0, 20, 4) == wrps);
|
||||
assert(extract32(cpu->id_aa64dfr0, 28, 4) == ctx_cmps);
|
||||
assert(FIELD_EX64(cpu->id_aa64dfr0, ID_AA64DFR0, BRPS) == brps);
|
||||
assert(FIELD_EX64(cpu->id_aa64dfr0, ID_AA64DFR0, WRPS) == wrps);
|
||||
assert(FIELD_EX64(cpu->id_aa64dfr0, ID_AA64DFR0, CTX_CMPS) == ctx_cmps);
|
||||
}
|
||||
|
||||
define_one_arm_cp_reg(cpu, &dbgdidr);
|
||||
|
|
Loading…
Reference in a new issue