Date: Mon, 8 Aug 2016 04:24:29 +0300 From: Solar Designer <solar@...nwall.com> To: writeonce@...ipix.org Cc: john-dev@...ts.openwall.com Subject: x86-64.S Win64 support Bringing this from john-users to john-dev, as it's about the source code: On Sun, Aug 07, 2016 at 05:47:57PM -0700, writeonce@...ipix.org wrote: > As part of alpha release preparation we've added JtR to midipix_build.sh > for inclusion in the release tarball. After reading this thread I went > on to test the binary, then realized that x86-64.S was still an open > issue due to the different calling conventions. As all global functions > in x86-64.S take two arguments at the most, I went ahead and patched the > relevant spots using #ifdef __PE__ and a push-mov-pop wrapping method > (note that in the WIN64 ABI, both %rdi and %rsi are nonvolatile > registers). After applying the attached patch, all tests passed. > Attached log is from a Dell Latitude E5450, JtR built with -g3 -O2, musl > libc and libpsxscl built with -g3 -O0. Thanks for the patch. Looking at x86-64.S in jumbo, I see it also saves/restores %xmm6 through %xmm15 when building for Win64. Perhaps this is unnecessary in a build with midipix, since musl does not currently use those registers and JtR core does not use any other libraries. But this may be something to include if I apply a patch like this to the core tree. Or at least there should be a comment added about this piece missing. Otherwise it could be an unpleasant surprise to someone when things are neither fully working nor fully broken in a non-midipix Win64 build of the core tree. 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.