Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 28 Aug 2013 12:05:43 +1200
From: Andre Renaud <>
Subject: Re: Optimized C memset [v2]

Hi Rich,

On 28 August 2013 04:22, Rich Felker <> 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?


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.