From: Niels Möller Date: Wed, 5 Oct 2005 10:40:45 +0000 (+0200) Subject: (EXPAND): Use % 16 instead of & 15 to X-Git-Tag: nettle_1.13_release_20051006~19 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e9d8f0c53ceb8f2567d7561d4ce3bccb1d9b7845;p=thirdparty%2Fnettle.git (EXPAND): Use % 16 instead of & 15 to compute offsets mod 16, since m4 on FreeBSD 49.RELEASE and NetBSD doesn't implement & correctly in eval. Rev: src/nettle/x86/sha1-compress.asm:1.10 --- diff --git a/x86/sha1-compress.asm b/x86/sha1-compress.asm index a6b02aa6..cbab4122 100644 --- a/x86/sha1-compress.asm +++ b/x86/sha1-compress.asm @@ -50,17 +50,17 @@ C expand(i) is the expansion function C C W[i] = (W[i - 16] ^ W[i - 14] ^ W[i - 8] ^ W[i - 3]) <<< 1 C -C where W[i] is stored in DATA[i & 15]. +C where W[i] is stored in DATA[i mod 16]. C C Result is stored back in W[i], and also left in TMP, the only C register that is used. define(, < - movl OFFSET(eval($1 & 15)) (DATA), TMP - xorl OFFSET(eval(($1 + 2) & 15)) (DATA), TMP - xorl OFFSET(eval(($1 + 8) & 15)) (DATA), TMP - xorl OFFSET(eval(($1 + 13) & 15)) (DATA), TMP + movl OFFSET(eval($1 % 16)) (DATA), TMP + xorl OFFSET(eval(($1 + 2) % 16)) (DATA), TMP + xorl OFFSET(eval(($1 + 8) % 16)) (DATA), TMP + xorl OFFSET(eval(($1 + 13) % 16)) (DATA), TMP roll <$>1, TMP - movl TMP, OFFSET(eval($1 & 15)) (DATA)>)dnl + movl TMP, OFFSET(eval($1 % 16)) (DATA)>)dnl define(, )dnl C The f functions,