qemu-riscv
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v6 0/6] Pointer Masking update for Zjpm v0.8


From: Alistair Francis
Subject: Re: [PATCH v6 0/6] Pointer Masking update for Zjpm v0.8
Date: Fri, 2 Feb 2024 12:03:55 +1000

On Fri, Feb 2, 2024 at 1:11 AM Alexey Baturo <baturo.alexey@gmail.com> wrote:
>
> From: Alexey Baturo <baturo.alexey@gmail.com>
>
> Hi,
>
> This patch series is rebased on 
> https://github.com/alistair23/qemu/tree/riscv-to-apply.next

Thanks!

Applied to riscv-to-apply.next

Alistair

>
> Thanks
>
> [v5]:
> This patch series targets Zjpm v0.8 extension.
> The spec itself could be found here: 
> https://github.com/riscv/riscv-j-extension/blob/8088461d8d66a7676872b61c908cbeb7cf5c5d1d/zjpm-spec.pdf
> This patch series is updated after the suggested comments:
> - add "x-" to the extension names to indicate experimental
>
> [v4]:
> Patch series updated after the suggested comments:
> - removed J-letter extension as it's unused
> - renamed and fixed function to detect if address should be sign-extended
> - zeroed unused context variables and moved computation logic to another patch
> - bumped pointer masking version_id and minimum_version_id by 1
>
> [v3]:
> There patches are updated after Richard's comments:
> - moved new tb flags to the end
> - used tcg_gen_(s)extract to get the final address
> - properly handle CONFIG_USER_ONLY
>
> [v2]:
> As per Richard's suggestion I made pmm field part of tb_flags.
> It allowed to get rid of global variable to store pmlen.
> Also it allowed to simplify all the machinery around it.
>
> [v1]:
> It looks like Zjpm v0.8 is almost frozen and we don't expect it change 
> drastically anymore.
> Compared to the original implementation with explicit base and mask CSRs, we 
> now only have
> several fixed options for number of masked bits which are set using existing 
> CSRs.
> The changes have been tested with handwritten assembly tests and LLVM HWASAN
> test suite.
>
> Alexey Baturo (6):
>   target/riscv: Remove obsolete pointer masking extension code.
>   target/riscv: Add new CSR fields for S{sn,mn,m}pm extensions as part
>     of Zjpm v0.8
>   target/riscv: Add helper functions to calculate current number of
>     masked bits for pointer masking
>   target/riscv: Add pointer masking tb flags
>   target/riscv: Update address modify functions to take into account
>     pointer masking
>   target/riscv: Enable updates for pointer masking variables and thus
>     enable pointer masking extension
>
>  target/riscv/cpu.c           | 22 ++++----
>  target/riscv/cpu.h           | 47 ++++++++---------
>  target/riscv/cpu_bits.h      | 90 ++-------------------------------
>  target/riscv/cpu_cfg.h       |  3 ++
>  target/riscv/cpu_helper.c    | 97 ++++++++++++++++++++----------------
>  target/riscv/csr.c           | 41 ++++-----------
>  target/riscv/machine.c       | 22 +++-----
>  target/riscv/pmp.c           | 13 +++--
>  target/riscv/pmp.h           | 11 ++--
>  target/riscv/tcg/tcg-cpu.c   |  5 +-
>  target/riscv/translate.c     | 46 +++++++----------
>  target/riscv/vector_helper.c | 15 +++++-
>  12 files changed, 160 insertions(+), 252 deletions(-)
>
> --
> 2.34.1
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]