qemu-s390x
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PULL 06/15] target/s390x: vxeh2: vector string search


From: Peter Maydell
Subject: Re: [PULL 06/15] target/s390x: vxeh2: vector string search
Date: Fri, 13 May 2022 17:21:54 +0100

On Fri, 13 May 2022 at 17:16, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> On 5/13/22 08:54, Peter Maydell wrote:
> >> +    s390_vec_write_element64(v1, 0, k << es);
> >
> > Specifically here, because k is 32 bit but s390_vec_write_element64()
> > takes a uint64_t argument, we will do the shift as a signed 32 bit
> > value before widening to 64 bits, so if the values of 'k' and 'es'
> > are such that we might shift beyond bit 32 we'll get the wrong
> > value. It looks like 'es' is one of the MO_* values, so generally
> > small, but the upper bound on 'k' is a bit less obvious to me.
> > Is the overflow-of-32-bits case impossible?
>
> No, the upper bound of (k << es) is 16.
>
> We perform the operation with k in units of element size, so that indexing 
> works nicely,
> then convert back to units of bytes at the end to report results.  It's a 
> byte index into
> the vector register, with 16 as an indicator of match not found + eos not 
> found.

Cool; I've marked the coverity issue as a false positive.

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]