crypto/poly1305: don't break carry chains.
[openssl.git] / crypto / poly1305 / asm / poly1305-ppc.pl
index 46130c9..07da9d1 100755 (executable)
 #                      -m32            -m64
 #
 # Freescale e300       14.8/+80%       -
-# PPC74x0              7.40/+60%       -
-# PPC970               7.20/+114%      3.51/+205%
-# POWER6               3.96/+250%      2.02/+170%
-# POWER7               3.67/+260%      1.87/+100%
-# POWER8               -               2.13/+200%
+# PPC74x0              7.60/+60%       -
+# PPC970               7.00/+114%      3.51/+205%
+# POWER7               3.75/+260%      1.93/+100%
+# POWER8               -               2.03/+200%
 #
 # Do we need floating-point implementation for PPC? Results presented
 # in poly1305_ieee754.c are tricky to compare to, because they are for
@@ -212,6 +211,7 @@ $code.=<<___;
        add     $t0,$t0,$t1
        addc    $h0,$d0,$t0
        addze   $h1,$d1
+       addze   $h2,$h2
 
        bdnz    Loop
 
@@ -518,6 +518,7 @@ $code.=<<___;
        addze   $h1,$h1
        addze   $h2,$h2
        addze   $h3,$h3
+       addze   $h4,$h4
 
        bdnz    Loop