diff for duplicates of <20150323135009.GB820@google.com> diff --git a/a/1.txt b/N1/1.txt index be900c2..145d362 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -185,14 +185,14 @@ index 0000000..4fee74d +$F="r9"; +$G="r10"; +$H="r11"; -+@V=($A,$B,$C,$D,$E,$F,$G,$H); ++ at V=($A,$B,$C,$D,$E,$F,$G,$H); +$t2="r12"; +$Ktbl="r14"; + -+@Sigma0=( 2,13,22); -+@Sigma1=( 6,11,25); -+@sigma0=( 7,18, 3); -+@sigma1=(17,19,10); ++ at Sigma0=( 2,13,22); ++ at Sigma1=( 6,11,25); ++ at sigma0=( 7,18, 3); ++ at sigma1=(17,19,10); + +sub BODY_00_15 { +my ($i,$a,$b,$c,$d,$e,$f,$g,$h) = @_; @@ -362,7 +362,7 @@ index 0000000..4fee74d + eor $t3,$B,$C @ magic + eor $t2,$t2,$t2 +___ -+for($i=0;$i<16;$i++) { &BODY_00_15($i,@V); unshift(@V,pop(@V)); } ++for($i=0;$i<16;$i++) { &BODY_00_15($i, at V); unshift(@V,pop(@V)); } +$code.=".Lrounds_16_xx:\n"; +for (;$i<32;$i++) { &BODY_16_XX($i,@V); unshift(@V,pop(@V)); } +$code.=<<___; @@ -423,7 +423,7 @@ index 0000000..4fee74d +{ my $opcode = $AUTOLOAD; $opcode =~ s/.*:://; $opcode =~ s/_/\./; + my $arg = pop; + $arg = "#$arg" if ($arg*1 eq $arg); -+ $code .= "\t$opcode\t".join(',',@_,$arg)."\n"; ++ $code .= "\t$opcode\t".join(',', at _,$arg)."\n"; +} + +sub Xupdate() @@ -432,18 +432,18 @@ index 0000000..4fee74d + my @insns = (&$body,&$body,&$body,&$body); + my ($a,$b,$c,$d,$e,$f,$g,$h); + -+ &vext_8 ($T0,@X[0],@X[1],4); # X[1..4] ++ &vext_8 ($T0, at X[0], at X[1],4); # X[1..4] + eval(shift(@insns)); + eval(shift(@insns)); + eval(shift(@insns)); -+ &vext_8 ($T1,@X[2],@X[3],4); # X[9..12] ++ &vext_8 ($T1, at X[2], at X[3],4); # X[9..12] + eval(shift(@insns)); + eval(shift(@insns)); + eval(shift(@insns)); + &vshr_u32 ($T2,$T0,$sigma0[0]); + eval(shift(@insns)); + eval(shift(@insns)); -+ &vadd_i32 (@X[0],@X[0],$T1); # X[0..3] += X[9..12] ++ &vadd_i32 (@X[0], at X[0],$T1); # X[0..3] += X[9..12] + eval(shift(@insns)); + eval(shift(@insns)); + &vshr_u32 ($T1,$T0,$sigma0[2]); @@ -473,7 +473,7 @@ index 0000000..4fee74d + &vshr_u32 ($T5,&Dhi(@X[3]),$sigma1[2]); + eval(shift(@insns)); + eval(shift(@insns)); -+ &vadd_i32 (@X[0],@X[0],$T1); # X[0..3] += sigma0(X[1..4]) ++ &vadd_i32 (@X[0], at X[0],$T1); # X[0..3] += sigma0(X[1..4]) + eval(shift(@insns)); + eval(shift(@insns)); + &veor ($T5,$T5,$T4); @@ -518,7 +518,7 @@ index 0000000..4fee74d + &vadd_i32 (&Dhi(@X[0]),&Dhi(@X[0]),$T5);# X[2..3] += sigma1(X[16..17]) + eval(shift(@insns)); + eval(shift(@insns)); -+ &vadd_i32 ($T0,$T0,@X[0]); ++ &vadd_i32 ($T0,$T0, at X[0]); + while($#insns>=2) { eval(shift(@insns)); } + &vst1_32 ("{$T0}","[$Xfer,:128]!"); + eval(shift(@insns)); @@ -542,12 +542,12 @@ index 0000000..4fee74d + eval(shift(@insns)); + eval(shift(@insns)); + eval(shift(@insns)); -+ &vrev32_8 (@X[0],@X[0]); ++ &vrev32_8 (@X[0], at X[0]); + eval(shift(@insns)); + eval(shift(@insns)); + eval(shift(@insns)); + eval(shift(@insns)); -+ &vadd_i32 ($T0,$T0,@X[0]); ++ &vadd_i32 ($T0,$T0, at X[0]); + foreach (@insns) { eval; } # remaining instructions + &vst1_32 ("{$T0}","[$Xfer,:128]!"); + @@ -607,21 +607,21 @@ index 0000000..4fee74d + vld1.32 {$T1},[$Ktbl,:128]! + vld1.32 {$T2},[$Ktbl,:128]! + vld1.32 {$T3},[$Ktbl,:128]! -+ vrev32.8 @X[0],@X[0] @ yes, even on ++ vrev32.8 @X[0], at X[0] @ yes, even on + str $ctx,[sp,#64] -+ vrev32.8 @X[1],@X[1] @ big-endian ++ vrev32.8 @X[1], at X[1] @ big-endian + str $inp,[sp,#68] + mov $Xfer,sp -+ vrev32.8 @X[2],@X[2] ++ vrev32.8 @X[2], at X[2] + str $len,[sp,#72] -+ vrev32.8 @X[3],@X[3] ++ vrev32.8 @X[3], at X[3] + str $t2,[sp,#76] @ save original sp -+ vadd.i32 $T0,$T0,@X[0] -+ vadd.i32 $T1,$T1,@X[1] ++ vadd.i32 $T0,$T0, at X[0] ++ vadd.i32 $T1,$T1, at X[1] + vst1.32 {$T0},[$Xfer,:128]! -+ vadd.i32 $T2,$T2,@X[2] ++ vadd.i32 $T2,$T2, at X[2] + vst1.32 {$T1},[$Xfer,:128]! -+ vadd.i32 $T3,$T3,@X[3] ++ vadd.i32 $T3,$T3, at X[3] + vst1.32 {$T2},[$Xfer,:128]! + vst1.32 {$T3},[$Xfer,:128]! + @@ -733,13 +733,13 @@ index 0000000..4fee74d + add $len,$inp,$len,lsl#6 @ len to point at the end of inp + +.Loop_v8: -+ vld1.8 {@MSG[0]-@MSG[1]},[$inp]! -+ vld1.8 {@MSG[2]-@MSG[3]},[$inp]! ++ vld1.8 {@MSG[0]- at MSG[1]},[$inp]! ++ vld1.8 {@MSG[2]- at MSG[3]},[$inp]! + vld1.32 {$W0},[$Ktbl]! -+ vrev32.8 @MSG[0],@MSG[0] -+ vrev32.8 @MSG[1],@MSG[1] -+ vrev32.8 @MSG[2],@MSG[2] -+ vrev32.8 @MSG[3],@MSG[3] ++ vrev32.8 @MSG[0], at MSG[0] ++ vrev32.8 @MSG[1], at MSG[1] ++ vrev32.8 @MSG[2], at MSG[2] ++ vrev32.8 @MSG[3], at MSG[3] + vmov $ABCD_SAVE,$ABCD @ offload + vmov $EFGH_SAVE,$EFGH + teq $inp,$len @@ -747,30 +747,30 @@ index 0000000..4fee74d +for($i=0;$i<12;$i++) { +$code.=<<___; + vld1.32 {$W1},[$Ktbl]! -+ vadd.i32 $W0,$W0,@MSG[0] -+ sha256su0 @MSG[0],@MSG[1] ++ vadd.i32 $W0,$W0, at MSG[0] ++ sha256su0 @MSG[0], at MSG[1] + vmov $abcd,$ABCD + sha256h $ABCD,$EFGH,$W0 + sha256h2 $EFGH,$abcd,$W0 -+ sha256su1 @MSG[0],@MSG[2],@MSG[3] ++ sha256su1 @MSG[0], at MSG[2], at MSG[3] +___ + ($W0,$W1)=($W1,$W0); push(@MSG,shift(@MSG)); +} +$code.=<<___; + vld1.32 {$W1},[$Ktbl]! -+ vadd.i32 $W0,$W0,@MSG[0] ++ vadd.i32 $W0,$W0, at MSG[0] + vmov $abcd,$ABCD + sha256h $ABCD,$EFGH,$W0 + sha256h2 $EFGH,$abcd,$W0 + + vld1.32 {$W0},[$Ktbl]! -+ vadd.i32 $W1,$W1,@MSG[1] ++ vadd.i32 $W1,$W1, at MSG[1] + vmov $abcd,$ABCD + sha256h $ABCD,$EFGH,$W1 + sha256h2 $EFGH,$abcd,$W1 + + vld1.32 {$W1},[$Ktbl] -+ vadd.i32 $W0,$W0,@MSG[2] ++ vadd.i32 $W0,$W0, at MSG[2] + sub $Ktbl,$Ktbl,#256-16 @ rewind + vmov $abcd,$ABCD + sha256h $ABCD,$EFGH,$W0 @@ -3635,7 +3635,7 @@ index 0000000..25ceba6 + * Glue code for the SHA256 Secure Hash Algorithm assembly implementation + * using optimized ARM assembler and NEON instructions. + * -+ * Copyright © 2015 Google Inc. ++ * Copyright ? 2015 Google Inc. + * + * This file is based on sha256_ssse3_glue.c: + * Copyright (C) 2013 Intel Corporation @@ -3916,10 +3916,10 @@ index 0000000..d0f168d + * Glue code for the SHA256 Secure Hash Algorithm assembly implementation + * using NEON instructions. + * -+ * Copyright © 2015 Google Inc. ++ * Copyright ? 2015 Google Inc. + * + * This file is based on sha512_neon_glue.c: -+ * Copyright © 2014 Jussi Kivilinna <jussi.kivilinna@iki.fi> ++ * Copyright ? 2014 Jussi Kivilinna <jussi.kivilinna@iki.fi> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free diff --git a/a/content_digest b/N1/content_digest index 01780e6..8b68d04 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,13 +1,8 @@ "ref\020150316154835.GA31336@google.com\0" - "From\0Sami Tolvanen <samitolvanen@google.com>\0" + "From\0samitolvanen@google.com (Sami Tolvanen)\0" "Subject\0[PATCHv2] arm: crypto: Add optimized SHA-256/224\0" "Date\0Mon, 23 Mar 2015 13:50:09 +0000\0" - "To\0linux-arm-kernel@lists.infradead.org" - linux-crypto@vger.kernel.org - ard.biesheuvel@linaro.org - herbert@gondor.apana.org.au - " davem@davemloft.net\0" - "Cc\0Andy Polyakov <appro@openssl.org>\0" + "To\0linux-arm-kernel@lists.infradead.org\0" "\00:1\0" "b\0" "Add Andy Polyakov's optimized assembly and NEON implementations for\n" @@ -197,14 +192,14 @@ "+$F=\"r9\";\n" "+$G=\"r10\";\n" "+$H=\"r11\";\n" - "+@V=($A,$B,$C,$D,$E,$F,$G,$H);\n" + "+ at V=($A,$B,$C,$D,$E,$F,$G,$H);\n" "+$t2=\"r12\";\n" "+$Ktbl=\"r14\";\n" "+\n" - "+@Sigma0=( 2,13,22);\n" - "+@Sigma1=( 6,11,25);\n" - "+@sigma0=( 7,18, 3);\n" - "+@sigma1=(17,19,10);\n" + "+ at Sigma0=( 2,13,22);\n" + "+ at Sigma1=( 6,11,25);\n" + "+ at sigma0=( 7,18, 3);\n" + "+ at sigma1=(17,19,10);\n" "+\n" "+sub BODY_00_15 {\n" "+my ($i,$a,$b,$c,$d,$e,$f,$g,$h) = @_;\n" @@ -374,7 +369,7 @@ "+\teor\t$t3,$B,$C\t\t@ magic\n" "+\teor\t$t2,$t2,$t2\n" "+___\n" - "+for($i=0;$i<16;$i++)\t{ &BODY_00_15($i,@V); unshift(@V,pop(@V)); }\n" + "+for($i=0;$i<16;$i++)\t{ &BODY_00_15($i, at V); unshift(@V,pop(@V)); }\n" "+$code.=\".Lrounds_16_xx:\\n\";\n" "+for (;$i<32;$i++)\t{ &BODY_16_XX($i,@V); unshift(@V,pop(@V)); }\n" "+$code.=<<___;\n" @@ -435,7 +430,7 @@ "+{ my $opcode = $AUTOLOAD; $opcode =~ s/.*:://; $opcode =~ s/_/\\./;\n" "+ my $arg = pop;\n" "+ $arg = \"#$arg\" if ($arg*1 eq $arg);\n" - "+ $code .= \"\\t$opcode\\t\".join(',',@_,$arg).\"\\n\";\n" + "+ $code .= \"\\t$opcode\\t\".join(',', at _,$arg).\"\\n\";\n" "+}\n" "+\n" "+sub Xupdate()\n" @@ -444,18 +439,18 @@ "+ my @insns = (&$body,&$body,&$body,&$body);\n" "+ my ($a,$b,$c,$d,$e,$f,$g,$h);\n" "+\n" - "+\t&vext_8\t\t($T0,@X[0],@X[1],4);\t# X[1..4]\n" + "+\t&vext_8\t\t($T0, at X[0], at X[1],4);\t# X[1..4]\n" "+\t eval(shift(@insns));\n" "+\t eval(shift(@insns));\n" "+\t eval(shift(@insns));\n" - "+\t&vext_8\t\t($T1,@X[2],@X[3],4);\t# X[9..12]\n" + "+\t&vext_8\t\t($T1, at X[2], at X[3],4);\t# X[9..12]\n" "+\t eval(shift(@insns));\n" "+\t eval(shift(@insns));\n" "+\t eval(shift(@insns));\n" "+\t&vshr_u32\t($T2,$T0,$sigma0[0]);\n" "+\t eval(shift(@insns));\n" "+\t eval(shift(@insns));\n" - "+\t&vadd_i32\t(@X[0],@X[0],$T1);\t# X[0..3] += X[9..12]\n" + "+\t&vadd_i32\t(@X[0], at X[0],$T1);\t# X[0..3] += X[9..12]\n" "+\t eval(shift(@insns));\n" "+\t eval(shift(@insns));\n" "+\t&vshr_u32\t($T1,$T0,$sigma0[2]);\n" @@ -485,7 +480,7 @@ "+\t &vshr_u32\t($T5,&Dhi(@X[3]),$sigma1[2]);\n" "+\t eval(shift(@insns));\n" "+\t eval(shift(@insns));\n" - "+\t&vadd_i32\t(@X[0],@X[0],$T1);\t# X[0..3] += sigma0(X[1..4])\n" + "+\t&vadd_i32\t(@X[0], at X[0],$T1);\t# X[0..3] += sigma0(X[1..4])\n" "+\t eval(shift(@insns));\n" "+\t eval(shift(@insns));\n" "+\t &veor\t\t($T5,$T5,$T4);\n" @@ -530,7 +525,7 @@ "+\t&vadd_i32\t(&Dhi(@X[0]),&Dhi(@X[0]),$T5);# X[2..3] += sigma1(X[16..17])\n" "+\t eval(shift(@insns));\n" "+\t eval(shift(@insns));\n" - "+\t&vadd_i32\t($T0,$T0,@X[0]);\n" + "+\t&vadd_i32\t($T0,$T0, at X[0]);\n" "+\t while($#insns>=2) { eval(shift(@insns)); }\n" "+\t&vst1_32\t(\"{$T0}\",\"[$Xfer,:128]!\");\n" "+\t eval(shift(@insns));\n" @@ -554,12 +549,12 @@ "+\t eval(shift(@insns));\n" "+\t eval(shift(@insns));\n" "+\t eval(shift(@insns));\n" - "+\t&vrev32_8\t(@X[0],@X[0]);\n" + "+\t&vrev32_8\t(@X[0], at X[0]);\n" "+\t eval(shift(@insns));\n" "+\t eval(shift(@insns));\n" "+\t eval(shift(@insns));\n" "+\t eval(shift(@insns));\n" - "+\t&vadd_i32\t($T0,$T0,@X[0]);\n" + "+\t&vadd_i32\t($T0,$T0, at X[0]);\n" "+\t foreach (@insns) { eval; }\t# remaining instructions\n" "+\t&vst1_32\t(\"{$T0}\",\"[$Xfer,:128]!\");\n" "+\n" @@ -619,21 +614,21 @@ "+\tvld1.32\t\t{$T1},[$Ktbl,:128]!\n" "+\tvld1.32\t\t{$T2},[$Ktbl,:128]!\n" "+\tvld1.32\t\t{$T3},[$Ktbl,:128]!\n" - "+\tvrev32.8\t@X[0],@X[0]\t\t@ yes, even on\n" + "+\tvrev32.8\t@X[0], at X[0]\t\t@ yes, even on\n" "+\tstr\t\t$ctx,[sp,#64]\n" - "+\tvrev32.8\t@X[1],@X[1]\t\t@ big-endian\n" + "+\tvrev32.8\t@X[1], at X[1]\t\t@ big-endian\n" "+\tstr\t\t$inp,[sp,#68]\n" "+\tmov\t\t$Xfer,sp\n" - "+\tvrev32.8\t@X[2],@X[2]\n" + "+\tvrev32.8\t@X[2], at X[2]\n" "+\tstr\t\t$len,[sp,#72]\n" - "+\tvrev32.8\t@X[3],@X[3]\n" + "+\tvrev32.8\t@X[3], at X[3]\n" "+\tstr\t\t$t2,[sp,#76]\t\t@ save original sp\n" - "+\tvadd.i32\t$T0,$T0,@X[0]\n" - "+\tvadd.i32\t$T1,$T1,@X[1]\n" + "+\tvadd.i32\t$T0,$T0, at X[0]\n" + "+\tvadd.i32\t$T1,$T1, at X[1]\n" "+\tvst1.32\t\t{$T0},[$Xfer,:128]!\n" - "+\tvadd.i32\t$T2,$T2,@X[2]\n" + "+\tvadd.i32\t$T2,$T2, at X[2]\n" "+\tvst1.32\t\t{$T1},[$Xfer,:128]!\n" - "+\tvadd.i32\t$T3,$T3,@X[3]\n" + "+\tvadd.i32\t$T3,$T3, at X[3]\n" "+\tvst1.32\t\t{$T2},[$Xfer,:128]!\n" "+\tvst1.32\t\t{$T3},[$Xfer,:128]!\n" "+\n" @@ -745,13 +740,13 @@ "+\tadd\t$len,$inp,$len,lsl#6\t@ len to point at the end of inp\n" "+\n" "+.Loop_v8:\n" - "+\tvld1.8\t\t{@MSG[0]-@MSG[1]},[$inp]!\n" - "+\tvld1.8\t\t{@MSG[2]-@MSG[3]},[$inp]!\n" + "+\tvld1.8\t\t{@MSG[0]- at MSG[1]},[$inp]!\n" + "+\tvld1.8\t\t{@MSG[2]- at MSG[3]},[$inp]!\n" "+\tvld1.32\t\t{$W0},[$Ktbl]!\n" - "+\tvrev32.8\t@MSG[0],@MSG[0]\n" - "+\tvrev32.8\t@MSG[1],@MSG[1]\n" - "+\tvrev32.8\t@MSG[2],@MSG[2]\n" - "+\tvrev32.8\t@MSG[3],@MSG[3]\n" + "+\tvrev32.8\t@MSG[0], at MSG[0]\n" + "+\tvrev32.8\t@MSG[1], at MSG[1]\n" + "+\tvrev32.8\t@MSG[2], at MSG[2]\n" + "+\tvrev32.8\t@MSG[3], at MSG[3]\n" "+\tvmov\t\t$ABCD_SAVE,$ABCD\t@ offload\n" "+\tvmov\t\t$EFGH_SAVE,$EFGH\n" "+\tteq\t\t$inp,$len\n" @@ -759,30 +754,30 @@ "+for($i=0;$i<12;$i++) {\n" "+$code.=<<___;\n" "+\tvld1.32\t\t{$W1},[$Ktbl]!\n" - "+\tvadd.i32\t$W0,$W0,@MSG[0]\n" - "+\tsha256su0\t@MSG[0],@MSG[1]\n" + "+\tvadd.i32\t$W0,$W0, at MSG[0]\n" + "+\tsha256su0\t@MSG[0], at MSG[1]\n" "+\tvmov\t\t$abcd,$ABCD\n" "+\tsha256h\t\t$ABCD,$EFGH,$W0\n" "+\tsha256h2\t$EFGH,$abcd,$W0\n" - "+\tsha256su1\t@MSG[0],@MSG[2],@MSG[3]\n" + "+\tsha256su1\t@MSG[0], at MSG[2], at MSG[3]\n" "+___\n" "+\t($W0,$W1)=($W1,$W0);\tpush(@MSG,shift(@MSG));\n" "+}\n" "+$code.=<<___;\n" "+\tvld1.32\t\t{$W1},[$Ktbl]!\n" - "+\tvadd.i32\t$W0,$W0,@MSG[0]\n" + "+\tvadd.i32\t$W0,$W0, at MSG[0]\n" "+\tvmov\t\t$abcd,$ABCD\n" "+\tsha256h\t\t$ABCD,$EFGH,$W0\n" "+\tsha256h2\t$EFGH,$abcd,$W0\n" "+\n" "+\tvld1.32\t\t{$W0},[$Ktbl]!\n" - "+\tvadd.i32\t$W1,$W1,@MSG[1]\n" + "+\tvadd.i32\t$W1,$W1, at MSG[1]\n" "+\tvmov\t\t$abcd,$ABCD\n" "+\tsha256h\t\t$ABCD,$EFGH,$W1\n" "+\tsha256h2\t$EFGH,$abcd,$W1\n" "+\n" "+\tvld1.32\t\t{$W1},[$Ktbl]\n" - "+\tvadd.i32\t$W0,$W0,@MSG[2]\n" + "+\tvadd.i32\t$W0,$W0, at MSG[2]\n" "+\tsub\t\t$Ktbl,$Ktbl,#256-16\t@ rewind\n" "+\tvmov\t\t$abcd,$ABCD\n" "+\tsha256h\t\t$ABCD,$EFGH,$W0\n" @@ -3647,7 +3642,7 @@ "+ * Glue code for the SHA256 Secure Hash Algorithm assembly implementation\n" "+ * using optimized ARM assembler and NEON instructions.\n" "+ *\n" - "+ * Copyright \302\251 2015 Google Inc.\n" + "+ * Copyright ? 2015 Google Inc.\n" "+ *\n" "+ * This file is based on sha256_ssse3_glue.c:\n" "+ * Copyright (C) 2013 Intel Corporation\n" @@ -3928,10 +3923,10 @@ "+ * Glue code for the SHA256 Secure Hash Algorithm assembly implementation\n" "+ * using NEON instructions.\n" "+ *\n" - "+ * Copyright \302\251 2015 Google Inc.\n" + "+ * Copyright ? 2015 Google Inc.\n" "+ *\n" "+ * This file is based on sha512_neon_glue.c:\n" - "+ * Copyright \302\251 2014 Jussi Kivilinna <jussi.kivilinna@iki.fi>\n" + "+ * Copyright ? 2014 Jussi Kivilinna <jussi.kivilinna@iki.fi>\n" "+ *\n" "+ * This program is free software; you can redistribute it and/or modify it\n" "+ * under the terms of the GNU General Public License as published by the Free\n" @@ -4097,4 +4092,4 @@ "+\t}\n" +} }; -1cbddc8a2de9f1ee71ebc9d4ba61c53f45d1f447adfedc29fc0006597c4e0b52 +d7cebb80e7fbc89e1f1029ad4f644331267ec3af506326ce927a2028ab43b079
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.