|
Message-ID: <715ef2cfd3aeb5055e71bac9a0717290@smtp.hushmail.com> Date: Mon, 27 May 2013 18:43:59 +0200 From: magnum <john.magnum@...hmail.com> To: john-dev@...ts.openwall.com Subject: Re: X32 build, anyone? On 27 May, 2013, at 2:50 , magnum <john.magnum@...hmail.com> wrote: > On 22 May, 2013, at 3:10 , magnum <john.magnum@...hmail.com> wrote: >> We might need a new build target, or maybe some existing targets will do fine... Perhaps just minor #ifdef or sizeof() tweaks to x86-64.h, if any. > > A build target is now in place in bleeding-jumbo. The enclosed patch adds one to core CVS tree. Solar, please consider adding this for 1.8. > > It builds without a warning, but first I had to change the definiton of ARCH_WORD in x86-64.h to "long long" instead of just "long". Could that somehow be a problem? I think http://sourceware.org/glibc/wiki/x32 says we could test for X32 using the macro __ILP32__ but I can't see any reason to not always use long long. > > For actual test results, I'll be back. It turns out an Ubuntu 11.04 can build and run this using just native packages. Only core John though, there is no OpenSSL for X32 yet. But latest OpenSSL can be built for X32 so I'll try that when I get time. Core build for X32 passes self-tests as well as our Test Suite. Is there no use of assembler code in a standard x86-64 build? Some tweaks should be needed for assembler (this is described eg. in http://sourceware.org/glibc/wiki/x32) but I don't see any problems nor warnings. x86-32 vs. x86-X32: Number of benchmarks: 13 Minimum: 0.96752 real, 0.96558 virtual Maximum: 1.38256 real, 1.38182 virtual Median: 1.15728 real, 1.15502 virtual Median absolute deviation: 0.05167 real, 0.04720 virtual Geometric mean: 1.18486 real, 1.18475 virtual Geometric standard deviation: 1.10829 real, 1.10849 virtual x86-64 vs. x86-X32: Number of benchmarks: 13 Minimum: 0.92203 real, 0.92203 virtual Maximum: 1.10064 real, 1.10064 virtual Median: 0.99969 real, 1.00112 virtual Median absolute deviation: 0.00462 real, 0.00854 virtual Geometric mean: 1.00535 real, 1.00549 virtual Geometric standard deviation: 1.04461 real, 1.04451 virtual Some formats are slower, some are faster, the enclosed benchmarks was made with an X32 target very similar to linux-x86-64-avx (only -mx32 added) for proper comparison. No big deals. To play fair against X32 we should of course tweak arch.h for optional code paths (mostly in regards to SIMD) so a lot of testing might be needed. magnum View attachment "core-32-avx.txt" of type "text/plain" (1098 bytes) View attachment "core-64-avx.txt" of type "text/plain" (1109 bytes) View attachment "core-X32-avx.txt" of type "text/plain" (1110 bytes)
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.