From: Andy Polyakov Date: Mon, 22 Feb 2016 16:39:00 +0000 (+0100) Subject: poly1305/asm/poly1305-armv4.pl: replace ambiguous instruction. X-Git-Tag: OpenSSL_1_1_0-pre4~535 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=14577312211e25024ffd90bbded44b021877fc59;p=openssl poly1305/asm/poly1305-armv4.pl: replace ambiguous instruction. Different assembler versions disagree on how to interpret #-1 as argument to vmov.i64, as 0xffffffffffffffff or 0x00000000ffffffff. So replace it with something they can't disagree on. Reviewed-by: Rich Salz --- diff --git a/crypto/poly1305/asm/poly1305-armv4.pl b/crypto/poly1305/asm/poly1305-armv4.pl index 2cce9dfee8..65b79cf124 100755 --- a/crypto/poly1305/asm/poly1305-armv4.pl +++ b/crypto/poly1305/asm/poly1305-armv4.pl @@ -1004,7 +1004,7 @@ poly1305_blocks_neon: vmlal.u32 $D2,$H4#hi,$S3 vmlal.u32 $D3,$H4#hi,$S4 - vmov.u64 $MASK,#-1 @ can be redundant + vorn $MASK,$MASK,$MASK @ all-ones, can be redundant vmlal.u32 $D0,$H1#hi,$S4 vshr.u64 $MASK,$MASK,#38 vmlal.u32 $D4,$H0#hi,$R4 @@ -1048,7 +1048,7 @@ poly1305_blocks_neon: vmlal.u32 $D2,$H4#lo,$S3 vmlal.u32 $D3,$H4#lo,$S4 - vmov.u64 $MASK,#-1 + vorn $MASK,$MASK,$MASK @ all-ones vmlal.u32 $D0,$H1#lo,$S4 vshr.u64 $MASK,$MASK,#38 vmlal.u32 $D4,$H0#lo,$R4