On 9/11/26 10:43, Brian Cain wrote:
target/hexagon is about to address its HVX register file through a
runtime base pointer rather than a constant offset from env, in order to
share one register file between several vCPUs.  The gvec ops it needs
have no base-parameterized form yet.

Split tcg_gen_gvec_{and,or,xor,andc,orc,not,abs,smin,umin,smax,umax}
the same way tcg_gen_gvec_{add,sub,mov,dup_imm} already are: the work
moves to a _var function taking a TCGv_ptr base per operand, and the
existing entry point becomes a wrapper passing tcg_env.

The aofs == bofs shortcuts also have to compare the bases, since equal
offsets into different objects are not the same operand.

Reviewed-by: Marco Liebel<[email protected]>
Signed-off-by: Brian Cain<[email protected]>
---
  include/tcg/tcg-op-gvec-common.h |  45 ++++++++
  tcg/tcg-op-gvec.c                | 184 ++++++++++++++++++++++++-------
  2 files changed, 189 insertions(+), 40 deletions(-)

Reviewed-by: Richard Henderson <[email protected]>

r~

Reply via email to