On Fri, 26 Jun 2020 at 16:15, Peter Maydell <peter.mayd...@linaro.org> wrote:
>
> From: Richard Henderson <richard.hender...@linaro.org>
>
> Because the elements are non-sequential, we cannot eliminate many
> tests straight away like we can for sequential operations.  But
> we often have the PTE details handy, so we can test for Tagged.
>
> Reviewed-by: Peter Maydell <peter.mayd...@linaro.org>
> Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
> Message-id: 20200626033144.790098-38-richard.hender...@linaro.org
> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>

Hi; Coverity points out that something went wrong here
(CID 1429996):

> --- a/target/arm/translate-sve.c
> +++ b/target/arm/translate-sve.c
> @@ -5261,7 +5261,7 @@ static bool trans_ST_zpri(DisasContext *s, 
> arg_rpri_store *a)
>   */
>
>  static void do_mem_zpz(DisasContext *s, int zt, int pg, int zm,
> -                       int scale, TCGv_i64 scalar, int msz,
> +                       int scale, TCGv_i64 scalar, int msz, bool is_write,
>                         gen_helper_gvec_mem_scatter *fn)
>  {
>      unsigned vsz = vec_full_reg_size(s);
> @@ -5269,8 +5269,16 @@ static void do_mem_zpz(DisasContext *s, int zt, int 
> pg, int zm,
>      TCGv_ptr t_pg = tcg_temp_new_ptr();
>      TCGv_ptr t_zt = tcg_temp_new_ptr();
>      TCGv_i32 t_desc;
> -    int desc;
> +    int desc = 0;
>
> +    if (s->mte_active[0]) {
> +        desc = FIELD_DP32(desc, MTEDESC, MIDX, get_mem_index(s));
> +        desc = FIELD_DP32(desc, MTEDESC, TBI, s->tbid);
> +        desc = FIELD_DP32(desc, MTEDESC, TCMA, s->tcma);
> +        desc = FIELD_DP32(desc, MTEDESC, WRITE, is_write);
> +        desc = FIELD_DP32(desc, MTEDESC, ESIZE, 1 << msz);
> +        desc <<= SVE_MTEDESC_SHIFT;

We carefully set up desc here...

> +    }
>      desc = simd_desc(vsz, vsz, scale);

...but immediately overwrite it. Should desc have been an input here somewhere?

>      t_desc = tcg_const_i32(desc);

thanks
-- PMM

Reply via email to