[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v7 25/42] target/arm: Implement helper_mte_check1
From: |
Peter Maydell |
Subject: |
Re: [PATCH v7 25/42] target/arm: Implement helper_mte_check1 |
Date: |
Thu, 18 Jun 2020 17:37:56 +0100 |
On Wed, 3 Jun 2020 at 02:13, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> Fill out the stub that was added earlier.
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
> target/arm/internals.h | 47 +++++++++++++++
> target/arm/mte_helper.c | 126 +++++++++++++++++++++++++++++++++++++++-
> 2 files changed, 172 insertions(+), 1 deletion(-)
>
> diff --git a/target/arm/internals.h b/target/arm/internals.h
> index fb92ef6b84..8ae80f3945 100644
> --- a/target/arm/internals.h
> +++ b/target/arm/internals.h
> @@ -1318,6 +1318,9 @@ FIELD(MTEDESC, WRITE, 8, 1)
> FIELD(MTEDESC, ESIZE, 9, 5)
> FIELD(MTEDESC, TSIZE, 14, 10) /* mte_checkN only */
>
> +bool mte_probe1(CPUARMState *env, uint32_t desc, uint64_t ptr, uintptr_t ra);
> +uint64_t mte_check1(CPUARMState *env, uint32_t desc, uint64_t ptr, uintptr_t
> ra);
> +
> static inline int allocation_tag_from_addr(uint64_t ptr)
> {
> return extract64(ptr, 56, 4);
> @@ -1328,4 +1331,48 @@ static inline uint64_t
> address_with_allocation_tag(uint64_t ptr, int rtag)
> return deposit64(ptr, 56, 4, rtag);
> }
>
> +/* Return true if tbi bits mean that the access is checked. */
> +static inline bool tbi_check(uint32_t desc, int bit55)
> +{
> + return (desc >> (R_MTEDESC_TBI_SHIFT + bit55)) & 1;
> +}
> +
> +/* Return true if tcma bits mean that the access is unchecked. */
> +static inline bool tcma_check(uint32_t desc, int bit55, int ptr_tag)
It's a bit confusing that one of these foo_check()s returns
"true for checked access" and the other one returns "true
for unchecked access"...
thanks
-- PMM
- Re: [PATCH v7 21/42] target/arm: Move regime_el to internals.h, (continued)
- [PATCH v7 20/42] target/arm: Implement the access tag cache flushes, Richard Henderson, 2020/06/02
- [PATCH v7 18/42] target/arm: Simplify DC_ZVA, Richard Henderson, 2020/06/02
- [PATCH v7 19/42] target/arm: Implement the LDGM, STGM, STZGM instructions, Richard Henderson, 2020/06/02
- [PATCH v7 23/42] target/arm: Add gen_mte_check1, Richard Henderson, 2020/06/02
- [PATCH v7 25/42] target/arm: Implement helper_mte_check1, Richard Henderson, 2020/06/02
- [PATCH v7 26/42] target/arm: Implement helper_mte_checkN, Richard Henderson, 2020/06/02
- [PATCH v7 22/42] target/arm: Move regime_tcr to internals.h, Richard Henderson, 2020/06/02
- [PATCH v7 24/42] target/arm: Add gen_mte_checkN, Richard Henderson, 2020/06/02
- [PATCH v7 27/42] target/arm: Add helper_mte_check_zva, Richard Henderson, 2020/06/02