On Mon, 20 May 2019 at 18:06, Cornelia Huck <coh...@redhat.com> wrote: > > From: David Hildenbrand <da...@redhat.com> > > A galois field multiplication in field 2 is like binary multiplication, > however instead of doing ordinary binary additions, xor's are performed. > So no carries are considered. > > Implement all variants via helpers. s390_vec_sar() and s390_vec_shr() > will be reused later on. > > Reviewed-by: Richard Henderson <richard.hender...@linaro.org> > Signed-off-by: David Hildenbrand <da...@redhat.com>
Hi -- Coverity (CID 1401703) complains that a lot of this function is dead code: > +static S390Vector galois_multiply64(uint64_t a, uint64_t b) > +{ > + S390Vector res = {}; > + S390Vector va = { > + .doubleword[1] = a, > + }; > + S390Vector vb = { > + .doubleword[1] = b, > + }; > + > + while (!s390_vec_is_zero(&vb)) { > + if (vb.doubleword[1] & 0x1) { > + s390_vec_xor(&res, &res, &va); > + } > + s390_vec_shl(&va, &va, 1); > + s390_vec_shr(&vb, &vb, 1); > + } > + return res; > +} but I can't make any sense of its annotations or why it thinks this is true. Would somebody like to have a look at the issue? If it's just Coverity getting confused we can mark it as a false positive. thanks -- PMM