On 30.05.19 13:22, Peter Maydell wrote: > On Mon, 20 May 2019 at 18:06, Cornelia Huck <[email protected]> wrote: >> >> From: David Hildenbrand <[email protected]> >> >> 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 <[email protected]> >> Signed-off-by: David Hildenbrand <[email protected]> > > 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.
I am pretty sure it is a false positive. I'll have to request access to coverity first to have a look at the details. Thanks! > > thanks > -- PMM > -- Thanks, David / dhildenb
