List Info

Thread: OpenSSL: openssl/crypto/aes/asm/ aes-ppc.pl




OpenSSL: openssl/crypto/aes/asm/ aes-ppc.pl
country flaguser name
Germany
2007-09-27 01:19:26
  OpenSSL CVS Repository
  http://cvs.openssl.org/
 
____________________________________________________________
________________

  Server: cvs.openssl.org                  Name:   Andy
Polyakov
  Root:   /v/openssl/cvs                   Email:  approopenssl.org
  Module: openssl                          Date:  
27-Sep-2007 08:19:25
  Branch: HEAD                             Handle:
2007092707192500

  Modified files:
    openssl/crypto/aes/asm  aes-ppc.pl

  Log:
    10% performance tweak in 64-bit mode.

  Summary:
    Revision    Changes     Path
    1.5         +71 -0     
openssl/crypto/aes/asm/aes-ppc.pl
 
____________________________________________________________
________________

  patch -p0 <<' .'
  Index: openssl/crypto/aes/asm/aes-ppc.pl
 
============================================================
================
  $ cvs diff -u -r1.4 -r1.5 aes-ppc.pl
  --- openssl/crypto/aes/asm/aes-ppc.pl	19 Jul 2007 15:31:22
-0000	1.4
  +++ openssl/crypto/aes/asm/aes-ppc.pl	27 Sep 2007 06:19:25
-0000	1.5
   -880,6 +880,12 
   	addi	$key,$key,16
   	ori	$mask80,$mask80,0x8080
   	ori	$mask1b,$mask1b,0x1b1b
  +___
  +$code.=<<___ if ($SIZE_T==8);
  +	insrdi	$mask80,$mask80,32,0
  +	insrdi	$mask1b,$mask1b,32,0
  +___
  +$code.=<<___;
   	mtctr	$acc00
   .align	4
   Ldec_compact_loop:
   -942,8 +948,71 
   
   	addi	$key,$key,16
   	bdz	Ldec_compact_done
  +___
  +$code.=<<___ if ($SIZE_T==8);
  +	# vectorized permutation improves decrypt performance by
10%
  +	insrdi	$s0,$s1,32,0
  +	insrdi	$s2,$s3,32,0
   
   	and	$acc00,$s0,$mask80	# r1=r0&0x80808080
  +	and	$acc02,$s2,$mask80
  +	srdi	$acc04,$acc00,7		# r1>>7
  +	srdi	$acc06,$acc02,7
  +	andc	$acc08,$s0,$mask80	# r0&0x7f7f7f7f
  +	andc	$acc10,$s2,$mask80
  +	sub	$acc00,$acc00,$acc04	# r1-(r1>>7)
  +	sub	$acc02,$acc02,$acc06
  +	add	$acc08,$acc08,$acc08	# (r0&0x7f7f7f7f)<<1
  +	add	$acc10,$acc10,$acc10
  +	and	$acc00,$acc00,$mask1b	#
(r1-(r1>>7))&0x1b1b1b1b
  +	and	$acc02,$acc02,$mask1b
  +	xor	$acc00,$acc00,$acc08	# r2
  +	xor	$acc02,$acc02,$acc10
  +
  +	and	$acc04,$acc00,$mask80	# r1=r2&0x80808080
  +	and	$acc06,$acc02,$mask80
  +	srdi	$acc08,$acc04,7		# r1>>7
  +	srdi	$acc10,$acc06,7
  +	andc	$acc12,$acc00,$mask80	# r2&0x7f7f7f7f
  +	andc	$acc14,$acc02,$mask80
  +	sub	$acc04,$acc04,$acc08	# r1-(r1>>7)
  +	sub	$acc06,$acc06,$acc10
  +	add	$acc12,$acc12,$acc12	# (r2&0x7f7f7f7f)<<1
  +	add	$acc14,$acc14,$acc14
  +	and	$acc04,$acc04,$mask1b	#
(r1-(r1>>7))&0x1b1b1b1b
  +	and	$acc06,$acc06,$mask1b
  +	xor	$acc04,$acc04,$acc12	# r4
  +	xor	$acc06,$acc06,$acc14
  +
  +	and	$acc08,$acc04,$mask80	# r1=r4&0x80808080
  +	and	$acc10,$acc06,$mask80
  +	srdi	$acc12,$acc08,7		# r1>>7
  +	srdi	$acc14,$acc10,7
  +	sub	$acc08,$acc08,$acc12	# r1-(r1>>7)
  +	sub	$acc10,$acc10,$acc14
  +	andc	$acc12,$acc04,$mask80	# r4&0x7f7f7f7f
  +	andc	$acc14,$acc06,$mask80
  +	add	$acc12,$acc12,$acc12	# (r4&0x7f7f7f7f)<<1
  +	add	$acc14,$acc14,$acc14
  +	and	$acc08,$acc08,$mask1b	#
(r1-(r1>>7))&0x1b1b1b1b
  +	and	$acc10,$acc10,$mask1b
  +	xor	$acc08,$acc08,$acc12	# r8
  +	xor	$acc10,$acc10,$acc14
  +
  +	xor	$acc00,$acc00,$s0	# r2^r0
  +	xor	$acc02,$acc02,$s2
  +	xor	$acc04,$acc04,$s0	# r4^r0
  +	xor	$acc06,$acc06,$s2
  +
  +	extrdi	$acc01,$acc00,0,32
  +	extrdi	$acc03,$acc02,0,32
  +	extrdi	$acc05,$acc04,0,32
  +	extrdi	$acc07,$acc06,0,32
  +	extrdi	$acc09,$acc08,0,32
  +	extrdi	$acc11,$acc10,0,32
  +___
  +$code.=<<___ if ($SIZE_T==4);
  +	and	$acc00,$s0,$mask80	# r1=r0&0x80808080
   	and	$acc01,$s1,$mask80
   	and	$acc02,$s2,$mask80
   	and	$acc03,$s3,$mask80
   -1038,6 +1107,8 
   	xor	$acc05,$acc05,$s1
   	xor	$acc06,$acc06,$s2
   	xor	$acc07,$acc07,$s3
  +___
  +$code.=<<___;
   	rotrwi	$s0,$s0,8		# = ROTATE(r0,8)
   	rotrwi	$s1,$s1,8
   	rotrwi	$s2,$s2,8
   .
____________________________________________________________
__________
OpenSSL Project                                 http://www.openssl.org
CVS Repository Commit List                    
openssl-cvsopenssl.org
Automated List Manager                          
majordomoopenssl.org

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )