On Wed, Dec 21, 2022 at 10:46 AM Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > But it looked very obvious indeed, and I hate having buggy code that > is architecture-specific when we have generic code that isn't buggy. Side note: we have an x86-64 implementation that looks fine (but not really noticeably better than the generic one) that is based on the 'return subtraction' model. But it seems to get it right. And we have a 32-bit x86 assembly thing that is based on 'rep scasb', that then uses the carry bit to also get things right. That 32-bit asm goes back to Linux 0.01 (with some changes since to use "sbbl+or" instead of a conditional neg). I was playing around a lot with the 'rep' instructions back when, since it was all part of "learn the instruction set" for me. Both of them should probably be removed as pointless too, but they don't seem actively buggy. Linus