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~