Commit f58d1c28 authored by Niels Möller's avatar Niels Möller

movd/movq workaround for osx assembler.

parent 07415184
2012-07-05 Niels Möller <nisse@lysator.liu.se>
* x86_64/salsa20-crypt.asm (salsa20_crypt): Write the 64-bit movq
instructions as "movd", since that makes the osx assembler
happier. Assembles to the same machine code on gnu/linux.
2012-07-03 Niels Möller <nisse@lysator.liu.se> 2012-07-03 Niels Möller <nisse@lysator.liu.se>
* aclocal.m4 (LSH_FUNC_ALLOCA): In the config.h boilerplate, * aclocal.m4 (LSH_FUNC_ALLOCA): In the config.h boilerplate,
......
...@@ -237,13 +237,19 @@ PROLOGUE(nettle_salsa20_crypt) ...@@ -237,13 +237,19 @@ PROLOGUE(nettle_salsa20_crypt)
and $-16, POS and $-16, POS
test $8, LENGTH test $8, LENGTH
jz .Llt8 jz .Llt8
movq T0, T64 C This "movd" instruction should assemble to
C 66 49 0f 7e e0 movq %xmm4,%r8
C Apparently, assemblers treat movd and movq (with the
C arguments we use) in the same way, except for osx, which
C barfs at movq.
movd T0, T64
xor (SRC, POS), T64 xor (SRC, POS), T64
mov T64, (DST, POS) mov T64, (DST, POS)
lea 8(POS), POS lea 8(POS), POS
pshufd $0xee, T0, T0 C 10 11 10 11 pshufd $0xee, T0, T0 C 10 11 10 11
.Llt8: .Llt8:
movq T0, T64 C And this is also really a movq.
movd T0, T64
test $4, LENGTH test $4, LENGTH
jz .Llt4 jz .Llt4
mov XREG(T64), XREG(COUNT) mov XREG(T64), XREG(COUNT)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment