|
Message-ID: <20111125213521.GB11833@openwall.com> Date: Sat, 26 Nov 2011 01:35:21 +0400 From: Solar Designer <solar@...nwall.com> To: john-dev@...ts.openwall.com Subject: Re: 1.7.9-jumbo On Fri, Nov 25, 2011 at 08:54:32AM +0100, magnum wrote: > Note that I added CPU_detect_or_fallback() to undrop, and (previously) > to all other binary aliases. I'm not 100% sure this was correct? I haven't looked at your patches yet, but the above description sounds correct to me. We do need to fallback to alternate binary even for un*() things because the corresponding un*.c source files and other files that they use code from (e.g. memory.c) are compiled with CFLAGS potentially including things such as -mavx. These options not only enable the corresponding intrinsics, but also let the C compiler emit such instructions on other occasions. For example, gcc sometimes emits SSE2 instructions (if permitted) simply to zeroize consecutive 16 bytes, which may be needed even in a function that is not vectorized otherwise. IIRC, on a certain build I've seen some SSE2 instructions in gcc-generated code for rules_init*(). I guess something similar may be true for AVX and XOP later on as well (or maybe it already is, although I haven't faced it yet). Alexander
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.