diff --git a/ChangeLog b/ChangeLog index 7249a87c2cce23cb32e368d3c49fb1ccbe9355e0..d8ec00e9322a87af56e98d1b3a8b09bde306b3fd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2013-03-25 Niels Möller <nisse@lysator.liu.se> + From Martin Storsjö: + * x86_64/sha3-permute.asm: Workaround for Apple's assembler; write + movq instructinos as movd. + * Makefile.in (hogweed_PURE_OBJS): Don't include OPT_ASM_SOURCES twice. diff --git a/x86_64/sha3-permute.asm b/x86_64/sha3-permute.asm index 0ebd70c16e656f45a6d35db24f76410625a9ca63..360a1f44e02d1367f476a1a2d1b9a245e30f3ddf 100644 --- a/x86_64/sha3-permute.asm +++ b/x86_64/sha3-permute.asm @@ -72,6 +72,10 @@ define(<STATE>, <OFFSET($1)(CTX)>) define(<SWAP64>, <pshufd <$>0x4e,>) +C movq calls that are equal to the corresponding movd, +C where the Apple assembler requires them to be written as movd. +define(<MOVQ>, <movd>) + C ROTL64(rot, register, temp) C Caller needs to or together the result. define(<ROTL64>, < @@ -147,12 +151,12 @@ PROLOGUE(nettle_sha3_permute) SWAP64 C34, C34 C Holds C4, C3 movdqa C12, D34 - movq C0, D12 + MOVQ C0, D12 punpcklqdq C12, D12 C Holds C0, C1 punpckhqdq C34, D34 C Holds C2, C3 punpcklqdq D12, C34 C Holds C4, C0 - movq C34, D0 - movq C12, T0 + MOVQ C34, D0 + MOVQ C12, T0 rolq $1, T0 xorq T0, D0 @@ -236,8 +240,8 @@ PROLOGUE(nettle_sha3_permute) C `-_________-^`-^ rolq $36, A05 - movq A05, W0 - movq A0607, A05 + MOVQ A05, W0 + MOVQ A0607, A05 rolq $44, A05 C Done A05 ROTL64(6, A0607, W1) por A0607, W1 @@ -260,8 +264,8 @@ PROLOGUE(nettle_sha3_permute) rolq $42, A10 C 42 + 25 = 3 (mod 64) SWAP64 A1112, W0 - movq A10, A1112 - movq W0, A10 + MOVQ A10, A1112 + MOVQ W0, A10 rolq $43, A10 C Done A10 punpcklqdq A1314, A1112 @@ -285,8 +289,8 @@ PROLOGUE(nettle_sha3_permute) SWAP64 A1819, W0 rolq $41, A15 - movq A15, W1 - movq A1819, A15 + MOVQ A15, W1 + MOVQ A1819, A15 rolq $21, A15 C Done A15 SWAP64 A1617, A1819 ROTL64(45, A1617, W2) @@ -308,7 +312,7 @@ PROLOGUE(nettle_sha3_permute) C \_______/ rolq $18, A20 - movq A20, W0 + MOVQ A20, W0 SWAP64 A2324, W1 movd W1, A20 rolq $14, A20 C Done A20 @@ -386,21 +390,21 @@ PROLOGUE(nettle_sha3_permute) C Swap (A05, A10) <-> A0102, and (A15, A20) <-> A0304, C and also copy to C12 and C34 while at it. - movq A05, C12 - movq A15, C34 - movq A10, W0 - movq A20, W1 + MOVQ A05, C12 + MOVQ A15, C34 + MOVQ A10, W0 + MOVQ A20, W1 movq A00, C0 punpcklqdq W0, C12 punpcklqdq W1, C34 - movq A0102, A05 - movq A0304, A15 + MOVQ A0102, A05 + MOVQ A0304, A15 psrldq $8, A0102 psrldq $8, A0304 xorq A05, C0 xorq A15, C0 - movq A0102, A10 - movq A0304, A20 + MOVQ A0102, A10 + MOVQ A0304, A20 movdqa C12, A0102 movdqa C34, A0304