diff --git a/qemu/aarch64.h b/qemu/aarch64.h index 9de88f72..de00c108 100644 --- a/qemu/aarch64.h +++ b/qemu/aarch64.h @@ -3272,6 +3272,7 @@ #define xscale_cpar_write xscale_cpar_write_aarch64 #define ARM64_REGS_STORAGE_SIZE ARM64_REGS_STORAGE_SIZE_aarch64 #define aa64_va_parameters aa64_va_parameters_aarch64 +#define aa64_va_parameters_both aa64_va_parameters_both_aarch64 #define aarch64_cpu_do_interrupt aarch64_cpu_do_interrupt_aarch64 #define aarch64_cpu_register_types aarch64_cpu_register_types_aarch64 #define aarch64_sve_change_el aarch64_sve_change_el_aarch64 diff --git a/qemu/aarch64eb.h b/qemu/aarch64eb.h index 3a1a5ba9..cb657eaf 100644 --- a/qemu/aarch64eb.h +++ b/qemu/aarch64eb.h @@ -3272,6 +3272,7 @@ #define xscale_cpar_write xscale_cpar_write_aarch64eb #define ARM64_REGS_STORAGE_SIZE ARM64_REGS_STORAGE_SIZE_aarch64eb #define aa64_va_parameters aa64_va_parameters_aarch64eb +#define aa64_va_parameters_both aa64_va_parameters_both_aarch64eb #define aarch64_cpu_do_interrupt aarch64_cpu_do_interrupt_aarch64eb #define aarch64_cpu_register_types aarch64_cpu_register_types_aarch64eb #define aarch64_sve_change_el aarch64_sve_change_el_aarch64eb diff --git a/qemu/arm.h b/qemu/arm.h index 815b490c..ebee2989 100644 --- a/qemu/arm.h +++ b/qemu/arm.h @@ -3271,6 +3271,7 @@ #define xscale_cp_reginfo xscale_cp_reginfo_arm #define xscale_cpar_write xscale_cpar_write_arm #define aa64_va_parameters aa64_va_parameters_arm +#define aa64_va_parameters_both aa64_va_parameters_both_arm #define aarch64_translator_ops aarch64_translator_ops_arm #define arm_v7m_mmu_idx_for_secstate arm_v7m_mmu_idx_for_secstate_arm #define arm_v7m_mmu_idx_for_secstate_and_priv arm_v7m_mmu_idx_for_secstate_and_priv_arm diff --git a/qemu/armeb.h b/qemu/armeb.h index c1299eb0..caa03d9e 100644 --- a/qemu/armeb.h +++ b/qemu/armeb.h @@ -3271,6 +3271,7 @@ #define xscale_cp_reginfo xscale_cp_reginfo_armeb #define xscale_cpar_write xscale_cpar_write_armeb #define aa64_va_parameters aa64_va_parameters_armeb +#define aa64_va_parameters_both aa64_va_parameters_both_armeb #define aarch64_translator_ops aarch64_translator_ops_armeb #define arm_v7m_mmu_idx_for_secstate arm_v7m_mmu_idx_for_secstate_armeb #define arm_v7m_mmu_idx_for_secstate_and_priv arm_v7m_mmu_idx_for_secstate_and_priv_armeb diff --git a/qemu/header_gen.py b/qemu/header_gen.py index b7b84ef0..6d34aed3 100644 --- a/qemu/header_gen.py +++ b/qemu/header_gen.py @@ -3280,6 +3280,7 @@ symbols = ( arm_symbols = ( 'aa64_va_parameters', + 'aa64_va_parameters_both', 'aarch64_translator_ops', 'arm_v7m_mmu_idx_for_secstate', 'arm_v7m_mmu_idx_for_secstate_and_priv', @@ -3312,6 +3313,7 @@ arm_symbols = ( aarch64_symbols = ( 'ARM64_REGS_STORAGE_SIZE', 'aa64_va_parameters', + 'aa64_va_parameters_both', 'aarch64_cpu_do_interrupt', 'aarch64_cpu_register_types', 'aarch64_sve_change_el', diff --git a/qemu/target/arm/helper.c b/qemu/target/arm/helper.c index f8c9e09f..a795bb9a 100644 --- a/qemu/target/arm/helper.c +++ b/qemu/target/arm/helper.c @@ -8948,8 +8948,8 @@ static uint8_t convert_stage2_attrs(CPUARMState *env, uint8_t s2attrs) return (hiattr << 6) | (hihint << 4) | (loattr << 2) | lohint; } -ARMVAParameters aa64_va_parameters(CPUARMState *env, uint64_t va, - ARMMMUIdx mmu_idx, bool data) +ARMVAParameters aa64_va_parameters_both(CPUARMState *env, uint64_t va, + ARMMMUIdx mmu_idx) { uint64_t tcr = regime_tcr(env, mmu_idx)->raw_tcr; uint32_t el = regime_el(env, mmu_idx); @@ -9004,6 +9004,12 @@ ARMVAParameters aa64_va_parameters(CPUARMState *env, uint64_t va, return result; } +ARMVAParameters aa64_va_parameters(CPUARMState *env, uint64_t va, + ARMMMUIdx mmu_idx, bool data) +{ + return aa64_va_parameters_both(env, va, mmu_idx); +} + static ARMVAParameters aa32_va_parameters(CPUARMState *env, uint32_t va, ARMMMUIdx mmu_idx) { diff --git a/qemu/target/arm/internals.h b/qemu/target/arm/internals.h index 976d982f..8e15187c 100644 --- a/qemu/target/arm/internals.h +++ b/qemu/target/arm/internals.h @@ -959,9 +959,9 @@ typedef struct ARMVAParameters { } ARMVAParameters; #ifdef CONFIG_USER_ONLY -static inline ARMVAParameters aa64_va_parameters(CPUARMState *env, - uint64_t va, - ARMMMUIdx mmu_idx, bool data) +static inline ARMVAParameters aa64_va_parameters_both(CPUARMState *env, + uint64_t va, + ARMMMUIdx mmu_idx) { ARMVAParameters result = {0}; /* 48-bit address space */ @@ -971,7 +971,16 @@ static inline ARMVAParameters aa64_va_parameters(CPUARMState *env, return result; } + +static inline ARMVAParameters aa64_va_parameters(CPUARMState *env, + uint64_t va, + ARMMMUIdx mmu_idx, bool data) +{ + return aa64_va_parameters_both(env, va, mmu_idx); +} #else +ARMVAParameters aa64_va_parameters_both(CPUARMState *env, uint64_t va, + ARMMMUIdx mmu_idx); ARMVAParameters aa64_va_parameters(CPUARMState *env, uint64_t va, ARMMMUIdx mmu_idx, bool data); #endif