|
Message-ID: <CAPfzE3ZiR0xngueXCgFSsO0mHFo5wOUjRZ=b3gVKQRgpF4yTpA@mail.gmail.com> Date: Wed, 28 Aug 2013 12:05:43 +1200 From: Andre Renaud <andre@...ewatersys.com> To: musl@...ts.openwall.com Subject: Re: Optimized C memset [v2] Hi Rich, On 28 August 2013 04:22, Rich Felker <dalias@...ifal.cx> wrote: > Here's version 2 (filename version 6, in honor of glibc ;) of the > memset code. I fixed a bug in the logic for coverage of the tail (the > part past what's covered by the loop) for some values of n and > alignments, and cleaned up the __GNUC__ usage a bit to use less > #ifdeffery. The remaining test at the top for the __GNUC__ version is > ugly, I admit, and should possibly just be removed and replaced by a > configure check to add -D__may_alias__= to the CFLAGS if the compiler > defines __GNUC__ but does not recognize __attribute__((__may_alias__)) > -- opinions on this? Can you explain the algorithm a bit - I can't entirely follow the us of negation/masking, but it looks like at the end you're doing a loop of 64-bit aligned writes, but I don't see how it can work if the tail end ends in something that isn't 64-bit aligned? Is this assuming that unaligned writes will work ok? Regards, Andre
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.