From ae4af7a067531245c20f032afe61a68d60d39d11 Mon Sep 17 00:00:00 2001
From: Andy Polyakov <appro@openssl.org>
Date: Wed, 1 Oct 2014 23:55:54 +0200
Subject: [PATCH] crypto/cast/asm/cast-586.pl: +5% on PIII and remove obsolete
 readme.

Reviewed-by: Rich Salz <rsalz@openssl.org>
---
 crypto/cast/asm/cast-586.pl | 9 ++++++---
 crypto/cast/asm/readme      | 7 -------
 2 files changed, 6 insertions(+), 10 deletions(-)
 delete mode 100644 crypto/cast/asm/readme

diff --git a/crypto/cast/asm/cast-586.pl b/crypto/cast/asm/cast-586.pl
index bf6810d33..ec2eab179 100644
--- a/crypto/cast/asm/cast-586.pl
+++ b/crypto/cast/asm/cast-586.pl
@@ -1,6 +1,9 @@
 #!/usr/local/bin/perl
 
-# define for pentium pro friendly version
+# This flag makes the inner loop one cycle longer, but generates 
+# code that runs %30 faster on the pentium pro/II, 44% faster
+# of PIII, while only %7 slower on the pentium.
+# By default, this flag is on.
 $ppro=1;
 
 $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
@@ -140,11 +143,11 @@ sub E_CAST {
     &rotl(	$tmp4,		&LB($tmp1));
 
     if ($ppro) {
-	&mov(	$tmp2,		$tmp4);		# B
 	&xor(	$tmp1,		$tmp1);
+	&mov(	$tmp2,		0xff);
 	
 	&movb(	&LB($tmp1),	&HB($tmp4));	# A
-	&and(	$tmp2,		0xff);
+	&and(	$tmp2,		$tmp4);
 
 	&shr(	$tmp4,		16); 		#
 	&xor(	$tmp3,		$tmp3);
diff --git a/crypto/cast/asm/readme b/crypto/cast/asm/readme
deleted file mode 100644
index fbcd76289..000000000
--- a/crypto/cast/asm/readme
+++ /dev/null
@@ -1,7 +0,0 @@
-There is a ppro flag in cast-586 which turns on/off
-generation of pentium pro/II friendly code
-
-This flag makes the inner loop one cycle longer, but generates 
-code that runs %30 faster on the pentium pro/II, while only %7 slower
-on the pentium.  By default, this flag is on.
-