diff options
author | Richard Henderson | 2020-02-16 20:43:43 +0100 |
---|---|---|
committer | Peter Maydell | 2020-02-21 17:07:00 +0100 |
commit | b830a5ee82e66f54697dcc6450fe9239b7412d13 (patch) | |
tree | 373385935717b62daaff8955b6cc805708c0322e /target/arm/internals.h | |
parent | target/arm: Remove ttbr1_valid check from get_phys_addr_lpae (diff) | |
download | qemu-b830a5ee82e66f54697dcc6450fe9239b7412d13.tar.gz qemu-b830a5ee82e66f54697dcc6450fe9239b7412d13.tar.xz qemu-b830a5ee82e66f54697dcc6450fe9239b7412d13.zip |
target/arm: Split out aa64_va_parameter_tbi, aa64_va_parameter_tbid
For the purpose of rebuild_hflags_a64, we do not need to compute
all of the va parameters, only tbi. Moreover, we can compute them
in a form that is more useful to storing in hflags.
This eliminates the need for aa64_va_parameter_both, so fold that
in to aa64_va_parameter. The remaining calls to aa64_va_parameter
are in get_phys_addr_lpae and in pauth_helper.c.
This reduces the total cpu consumption of aa64_va_parameter in a
kernel boot plus a kvm guest kernel boot from 3% to 0.5%.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20200216194343.21331-5-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target/arm/internals.h')
-rw-r--r-- | target/arm/internals.h | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/target/arm/internals.h b/target/arm/internals.h index 58c4d707c5..14328e3f7d 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -1127,15 +1127,12 @@ typedef struct ARMVAParameters { unsigned tsz : 8; unsigned select : 1; bool tbi : 1; - bool tbid : 1; bool epd : 1; bool hpd : 1; bool using16k : 1; bool using64k : 1; } ARMVAParameters; -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); |