On 11/26/24 23:35, baturo.ale...@gmail.com wrote:
From: Alexey Baturo <baturo.ale...@gmail.com>

Signed-off-by: Alexey Baturo <baturo.ale...@gmail.com>
---
  target/riscv/cpu.h                      |  2 ++
  target/riscv/cpu_helper.c               | 19 +++++++++++++++++++
  target/riscv/insn_trans/trans_rvh.c.inc | 11 +++++++++++
  target/riscv/translate.c                |  4 ++++
  4 files changed, 36 insertions(+)

diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h
index 11e3a6d647..6bbd9c6c25 100644
--- a/target/riscv/cpu.h
+++ b/target/riscv/cpu.h
@@ -634,6 +634,7 @@ FIELD(TB_FLAGS, BCFI_ENABLED, 28, 1)
  /* If pointer masking should be applied and address sign extended */
  FIELD(TB_FLAGS, PM_PMM, 29, 2)
  FIELD(TB_FLAGS, PM_SIGNEXTEND, 31, 1)
+FIELD(TB_FLAGS, PM_VPMM, 32, 2)

(1) tb_flags is only 32 bits wide, and this overflows.

(2) All of the logic for HSV/HLV is in op_helper.c, so there's no point in doing this masking inline. Do it in helper_hyp_* instead, possibly reusing pieces of adjust_addr from vector_helper.c.


r~

Reply via email to