On Thu, Sep 10, 2026 at 10:32 AM Brian Cain <[email protected]> wrote: > > These three families still name tcg_env directly, so they cannot be > reached from a _var entry point. Thread a TCGv_ptr base per operand > through expand_2s_{i32,i64,vec}, expand_2sh_vec, expand_cmp_{i32,i64,vec} > and do_gvec_shifts, and split expand_2i_ool out of tcg_gen_gvec_2i_ool > the way expand_2_ool already is, so the out-of-line fallback is reachable > too. > > Add tcg_gen_gvec_{2s,shls,shrs,sars,dup_i32,cmp}_var; the existing entry > points become wrappers passing tcg_env and generate identical code. > > Note that the operand swap in tcg_gen_gvec_cmp_var, used when a condition > has no helper, now has to swap the bases along with the offsets. > > Signed-off-by: Brian Cain <[email protected]> > --- > include/tcg/tcg-op-gvec-common.h | 21 +++ > tcg/tcg-op-gvec.c | 256 +++++++++++++++++++++---------- > 2 files changed, 192 insertions(+), 85 deletions(-)
Reviewed-by: Marco Liebel <[email protected]>
