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]>

Reply via email to