亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ppc.pl

?? OpenSSL 0.9.8k 最新版OpenSSL
?? PL
?? 第 1 頁 / 共 4 頁
字號:
#!/usr/bin/env perl## Implemented as a Perl wrapper as we want to support several different# architectures with single file. We pick up the target based on the# file name we are asked to generate.## It should be noted though that this perl code is nothing like# <openssl>/crypto/perlasm/x86*. In this case perl is used pretty much# as pre-processor to cover for platform differences in name decoration,# linker tables, 32-/64-bit instruction sets...## As you might know there're several PowerPC ABI in use. Most notably# Linux and AIX use different 32-bit ABIs. Good news are that these ABIs# are similar enough to implement leaf(!) functions, which would be ABI# neutral. And that's what you find here: ABI neutral leaf functions.# In case you wonder what that is...##       AIX performance##	MEASUREMENTS WITH cc ON a 200 MhZ PowerPC 604e.##	The following is the performance of 32-bit compiler#	generated code:##	OpenSSL 0.9.6c 21 dec 2001#	built on: Tue Jun 11 11:06:51 EDT 2002#	options:bn(64,32) ...#compiler: cc -DTHREADS  -DAIX -DB_ENDIAN -DBN_LLONG -O3#                  sign    verify    sign/s verify/s#rsa  512 bits   0.0098s   0.0009s    102.0   1170.6#rsa 1024 bits   0.0507s   0.0026s     19.7    387.5#rsa 2048 bits   0.3036s   0.0085s      3.3    117.1#rsa 4096 bits   2.0040s   0.0299s      0.5     33.4#dsa  512 bits   0.0087s   0.0106s    114.3     94.5#dsa 1024 bits   0.0256s   0.0313s     39.0     32.0	##	Same bechmark with this assembler code:##rsa  512 bits   0.0056s   0.0005s    178.6   2049.2#rsa 1024 bits   0.0283s   0.0015s     35.3    674.1#rsa 2048 bits   0.1744s   0.0050s      5.7    201.2#rsa 4096 bits   1.1644s   0.0179s      0.9     55.7#dsa  512 bits   0.0052s   0.0062s    191.6    162.0#dsa 1024 bits   0.0149s   0.0180s     67.0     55.5##	Number of operations increases by at almost 75%##	Here are performance numbers for 64-bit compiler#	generated code:##	OpenSSL 0.9.6g [engine] 9 Aug 2002#	built on: Fri Apr 18 16:59:20 EDT 2003#	options:bn(64,64) ...#	compiler: cc -DTHREADS -D_REENTRANT -q64 -DB_ENDIAN -O3#                  sign    verify    sign/s verify/s#rsa  512 bits   0.0028s   0.0003s    357.1   3844.4#rsa 1024 bits   0.0148s   0.0008s     67.5   1239.7#rsa 2048 bits   0.0963s   0.0028s     10.4    353.0#rsa 4096 bits   0.6538s   0.0102s      1.5     98.1#dsa  512 bits   0.0026s   0.0032s    382.5    313.7#dsa 1024 bits   0.0081s   0.0099s    122.8    100.6##	Same benchmark with this assembler code:##rsa  512 bits   0.0020s   0.0002s    510.4   6273.7#rsa 1024 bits   0.0088s   0.0005s    114.1   2128.3#rsa 2048 bits   0.0540s   0.0016s     18.5    622.5#rsa 4096 bits   0.3700s   0.0058s      2.7    171.0#dsa  512 bits   0.0016s   0.0020s    610.7    507.1#dsa 1024 bits   0.0047s   0.0058s    212.5    173.2#	#	Again, performance increases by at about 75%##       Mac OS X, Apple G5 1.8GHz (Note this is 32 bit code)#       OpenSSL 0.9.7c 30 Sep 2003##       Original code.##rsa  512 bits   0.0011s   0.0001s    906.1  11012.5#rsa 1024 bits   0.0060s   0.0003s    166.6   3363.1#rsa 2048 bits   0.0370s   0.0010s     27.1    982.4#rsa 4096 bits   0.2426s   0.0036s      4.1    280.4#dsa  512 bits   0.0010s   0.0012s   1038.1    841.5#dsa 1024 bits   0.0030s   0.0037s    329.6    269.7#dsa 2048 bits   0.0101s   0.0127s     98.9     78.6##       Same benchmark with this assembler code:##rsa  512 bits   0.0007s   0.0001s   1416.2  16645.9#rsa 1024 bits   0.0036s   0.0002s    274.4   5380.6#rsa 2048 bits   0.0222s   0.0006s     45.1   1589.5#rsa 4096 bits   0.1469s   0.0022s      6.8    449.6#dsa  512 bits   0.0006s   0.0007s   1664.2   1376.2#dsa 1024 bits   0.0018s   0.0023s    545.0    442.2#dsa 2048 bits   0.0061s   0.0075s    163.5    132.8##        Performance increase of ~60%##	If you have comments or suggestions to improve code send#	me a note at schari@us.ibm.com#$opf = shift;if ($opf =~ /32\.s/) {	$BITS=	32;	$BNSZ=	$BITS/8;	$ISA=	"\"ppc\"";	$LD=	"lwz";		# load	$LDU=	"lwzu";		# load and update	$ST=	"stw";		# store	$STU=	"stwu";		# store and update	$UMULL=	"mullw";	# unsigned multiply low	$UMULH=	"mulhwu";	# unsigned multiply high	$UDIV=	"divwu";	# unsigned divide	$UCMPI=	"cmplwi";	# unsigned compare with immediate	$UCMP=	"cmplw";	# unsigned compare	$CNTLZ=	"cntlzw";	# count leading zeros	$SHL=	"slw";		# shift left	$SHR=	"srw";		# unsigned shift right	$SHRI=	"srwi";		# unsigned shift right by immediate		$SHLI=	"slwi";		# shift left by immediate	$CLRU=	"clrlwi";	# clear upper bits	$INSR=	"insrwi";	# insert right	$ROTL=	"rotlwi";	# rotate left by immediate	$TR=	"tw";		# conditional trap} elsif ($opf =~ /64\.s/) {	$BITS=	64;	$BNSZ=	$BITS/8;	$ISA=	"\"ppc64\"";	# same as above, but 64-bit mnemonics...	$LD=	"ld";		# load	$LDU=	"ldu";		# load and update	$ST=	"std";		# store	$STU=	"stdu";		# store and update	$UMULL=	"mulld";	# unsigned multiply low	$UMULH=	"mulhdu";	# unsigned multiply high	$UDIV=	"divdu";	# unsigned divide	$UCMPI=	"cmpldi";	# unsigned compare with immediate	$UCMP=	"cmpld";	# unsigned compare	$CNTLZ=	"cntlzd";	# count leading zeros	$SHL=	"sld";		# shift left	$SHR=	"srd";		# unsigned shift right	$SHRI=	"srdi";		# unsigned shift right by immediate		$SHLI=	"sldi";		# shift left by immediate	$CLRU=	"clrldi";	# clear upper bits	$INSR=	"insrdi";	# insert right 	$ROTL=	"rotldi";	# rotate left by immediate	$TR=	"td";		# conditional trap} else { die "nonsense $opf"; }( defined shift || open STDOUT,">$opf" ) || die "can't open $opf: $!";# function entry points from the AIX code## There are other, more elegant, ways to handle this. We (IBM) chose# this approach as it plays well with scripts we run to 'namespace'# OpenSSL .i.e. we add a prefix to all the public symbols so we can# co-exist in the same process with other implementations of OpenSSL.# 'cleverer' ways of doing these substitutions tend to hide data we# need to be obvious.#my @items = ("bn_sqr_comba4",	     "bn_sqr_comba8",	     "bn_mul_comba4",	     "bn_mul_comba8",	     "bn_sub_words",	     "bn_add_words",	     "bn_div_words",	     "bn_sqr_words",	     "bn_mul_words",	     "bn_mul_add_words");if    ($opf =~ /linux/)	{  do_linux();	}elsif ($opf =~ /aix/)	{  do_aix();	}elsif ($opf =~ /osx/)	{  do_osx();	}else			{  do_bsd();	}sub do_linux {    $d=&data();    if ($BITS==64) {      foreach $t (@items) {        $d =~ s/\.$t:/\\t.section\t".opd","aw"\\t.align\t3\\t.globl\t$t\$t:\\t.quad\t.$t,.TOC.\@tocbase,0\\t.size\t$t,24\\t.previous\n\\t.type\t.$t,\@function\\t.globl\t.$t\.$t:/g;      }    }    else {      foreach $t (@items) {        $d=~s/\.$t/$t/g;      }    }    # hide internal labels to avoid pollution of name table...    $d=~s/Lppcasm_/.Lppcasm_/gm;    print $d;}sub do_aix {    # AIX assembler is smart enough to please the linker without    # making us do something special...    print &data();}# MacOSX 32 bitsub do_osx {    $d=&data();    # Change the bn symbol prefix from '.' to '_'    foreach $t (@items) {      $d=~s/\.$t/_$t/g;    }    # Change .machine to something OS X asm will accept    $d=~s/\.machine.*/.text/g;    $d=~s/\#/;/g; # change comment from '#' to ';'    print $d;}# BSD (Untested)sub do_bsd {    $d=&data();    foreach $t (@items) {      $d=~s/\.$t/_$t/g;    }    print $d;}sub data {	local($data)=<<EOF;#--------------------------------------------------------------------#####	File:		ppc32.s##	Created by:	Suresh Chari#			IBM Thomas J. Watson Research Library#			Hawthorne, NY###	Description:	Optimized assembly routines for OpenSSL crypto#			on the 32 bitPowerPC platform.###	Version History##	2. Fixed bn_add,bn_sub and bn_div_words, added comments,#	   cleaned up code. Also made a single version which can#	   be used for both the AIX and Linux compilers. See NOTE#	   below.#				12/05/03		Suresh Chari#			(with lots of help from)        Andy Polyakov##	#	1. Initial version	10/20/02		Suresh Chari###	The following file works for the xlc,cc#	and gcc compilers.##	NOTE:	To get the file to link correctly with the gcc compiler#	        you have to change the names of the routines and remove#		the first .(dot) character. This should automatically#		be done in the build process.##	Hand optimized assembly code for the following routines#	#	bn_sqr_comba4#	bn_sqr_comba8#	bn_mul_comba4#	bn_mul_comba8#	bn_sub_words#	bn_add_words#	bn_div_words#	bn_sqr_words#	bn_mul_words#	bn_mul_add_words##	NOTE:	It is possible to optimize this code more for#	specific PowerPC or Power architectures. On the Northstar#	architecture the optimizations in this file do#	 NOT provide much improvement.##	If you have comments or suggestions to improve code send#	me a note at schari\@us.ibm.com##--------------------------------------------------------------------------##	Defines to be used in the assembly code.#	.set r0,0	# we use it as storage for value of 0.set SP,1	# preserved.set RTOC,2	# preserved .set r3,3	# 1st argument/return value.set r4,4	# 2nd argument/volatile register.set r5,5	# 3rd argument/volatile register.set r6,6	# ....set r7,7.set r8,8.set r9,9.set r10,10.set r11,11.set r12,12.set r13,13	# not used, nor any other "below" it....set BO_IF_NOT,4.set BO_IF,12.set BO_dCTR_NZERO,16.set BO_dCTR_ZERO,18.set BO_ALWAYS,20.set CR0_LT,0;.set CR0_GT,1;.set CR0_EQ,2.set CR1_FX,4;.set CR1_FEX,5;.set CR1_VX,6.set LR,8#	Declare function names to be global#	NOTE:	For gcc these names MUST be changed to remove#	        the first . i.e. for example change ".bn_sqr_comba4"#		to "bn_sqr_comba4". This should be automatically done#		in the build.		.globl	.bn_sqr_comba4	.globl	.bn_sqr_comba8	.globl	.bn_mul_comba4	.globl	.bn_mul_comba8	.globl	.bn_sub_words	.globl	.bn_add_words	.globl	.bn_div_words	.globl	.bn_sqr_words	.globl	.bn_mul_words	.globl	.bn_mul_add_words	# .text section		.machine	$ISA##	NOTE:	The following label name should be changed to#		"bn_sqr_comba4" i.e. remove the first dot#		for the gcc compiler. This should be automatically#		done in the build#.align	4.bn_sqr_comba4:## Optimized version of bn_sqr_comba4.## void bn_sqr_comba4(BN_ULONG *r, BN_ULONG *a)# r3 contains r# r4 contains a## Freely use registers r5,r6,r7,r8,r9,r10,r11 as follows:	# # r5,r6 are the two BN_ULONGs being multiplied.# r7,r8 are the results of the 32x32 giving 64 bit multiply.# r9,r10, r11 are the equivalents of c1,c2, c3.# Here's the assembly##	xor		r0,r0,r0		# set r0 = 0. Used in the addze						# instructions below							#sqr_add_c(a,0,c1,c2,c3)	$LD		r5,`0*$BNSZ`(r4)			$UMULL		r9,r5,r5			$UMULH		r10,r5,r5		#in first iteration. No need						#to add since c1=c2=c3=0.						# Note c3(r11) is NOT set to 0						# but will be.	$ST		r9,`0*$BNSZ`(r3)	# r[0]=c1;						# sqr_add_c2(a,1,0,c2,c3,c1);	$LD		r6,`1*$BNSZ`(r4)			$UMULL		r7,r5,r6	$UMULH		r8,r5,r6						addc		r7,r7,r7		# compute (r7,r8)=2*(r7,r8)	adde		r8,r8,r8	addze		r9,r0			# catch carry if any.						# r9= r0(=0) and carry 		addc		r10,r7,r10		# now add to temp result.	addze		r11,r8                  # r8 added to r11 which is 0 	addze		r9,r9		$ST		r10,`1*$BNSZ`(r3)	#r[1]=c2; 						#sqr_add_c(a,1,c3,c1,c2)	$UMULL		r7,r6,r6	$UMULH		r8,r6,r6	addc		r11,r7,r11	adde		r9,r8,r9	addze		r10,r0						#sqr_add_c2(a,2,0,c3,c1,c2)	$LD		r6,`2*$BNSZ`(r4)	$UMULL		r7,r5,r6	$UMULH		r8,r5,r6		addc		r7,r7,r7	adde		r8,r8,r8	addze		r10,r10		addc		r11,r7,r11	adde		r9,r8,r9	addze		r10,r10	$ST		r11,`2*$BNSZ`(r3)	#r[2]=c3 						#sqr_add_c2(a,3,0,c1,c2,c3);	$LD		r6,`3*$BNSZ`(r4)			$UMULL		r7,r5,r6	$UMULH		r8,r5,r6	addc		r7,r7,r7	adde		r8,r8,r8	addze		r11,r0		addc		r9,r7,r9	adde		r10,r8,r10	addze		r11,r11						#sqr_add_c2(a,2,1,c1,c2,c3);	$LD		r5,`1*$BNSZ`(r4)	$LD		r6,`2*$BNSZ`(r4)	$UMULL		r7,r5,r6	$UMULH		r8,r5,r6		addc		r7,r7,r7	adde		r8,r8,r8	addze		r11,r11	addc		r9,r7,r9	adde		r10,r8,r10	addze		r11,r11	$ST		r9,`3*$BNSZ`(r3)	#r[3]=c1						#sqr_add_c(a,2,c2,c3,c1);	$UMULL		r7,r6,r6	$UMULH		r8,r6,r6	addc		r10,r7,r10	adde		r11,r8,r11	addze		r9,r0						#sqr_add_c2(a,3,1,c2,c3,c1);	$LD		r6,`3*$BNSZ`(r4)			$UMULL		r7,r5,r6	$UMULH		r8,r5,r6	addc		r7,r7,r7	adde		r8,r8,r8	addze		r9,r9		addc		r10,r7,r10	adde		r11,r8,r11	addze		r9,r9	$ST		r10,`4*$BNSZ`(r3)	#r[4]=c2						#sqr_add_c2(a,3,2,c3,c1,c2);	$LD		r5,`2*$BNSZ`(r4)			$UMULL		r7,r5,r6	$UMULH		r8,r5,r6	addc		r7,r7,r7	adde		r8,r8,r8	addze		r10,r0		addc		r11,r7,r11	adde		r9,r8,r9	addze		r10,r10	$ST		r11,`5*$BNSZ`(r3)	#r[5] = c3						#sqr_add_c(a,3,c1,c2,c3);	$UMULL		r7,r6,r6			$UMULH		r8,r6,r6	addc		r9,r7,r9	adde		r10,r8,r10	$ST		r9,`6*$BNSZ`(r3)	#r[6]=c1	$ST		r10,`7*$BNSZ`(r3)	#r[7]=c2	bclr	BO_ALWAYS,CR0_LT	.long	0x00000000##	NOTE:	The following label name should be changed to#		"bn_sqr_comba8" i.e. remove the first dot#		for the gcc compiler. This should be automatically#		done in the build#	.align	4.bn_sqr_comba8:## This is an optimized version of the bn_sqr_comba8 routine.# Tightly uses the adde instruction### void bn_sqr_comba8(BN_ULONG *r, BN_ULONG *a)# r3 contains r# r4 contains a## Freely use registers r5,r6,r7,r8,r9,r10,r11 as follows:	# # r5,r6 are the two BN_ULONGs being multiplied.# r7,r8 are the results of the 32x32 giving 64 bit multiply.# r9,r10, r11 are the equivalents of c1,c2, c3.## Possible optimization of loading all 8 longs of a into registers# doesnt provide any speedup# 	xor		r0,r0,r0		#set r0 = 0.Used in addze						#instructions below.						#sqr_add_c(a,0,c1,c2,c3);	$LD		r5,`0*$BNSZ`(r4)	$UMULL		r9,r5,r5		#1st iteration:	no carries.	$UMULH		r10,r5,r5	$ST		r9,`0*$BNSZ`(r3)	# r[0]=c1;						#sqr_add_c2(a,1,0,c2,c3,c1);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级日韩三级| 欧美精品123区| 亚州成人在线电影| 久久久午夜精品| 欧美裸体一区二区三区| 成人性生交大合| 五月天欧美精品| 亚洲欧美乱综合| 337p粉嫩大胆色噜噜噜噜亚洲| 99国产精品视频免费观看| 韩国毛片一区二区三区| 亚洲综合一区二区三区| 亚洲国产精品国自产拍av| 欧美一二三四在线| 色伊人久久综合中文字幕| 国产电影一区在线| 蜜芽一区二区三区| 亚洲欧美日韩电影| 中文字幕永久在线不卡| 国产午夜久久久久| 亚洲精品在线三区| 日韩一区二区三区在线观看| 欧美一a一片一级一片| av一区二区三区四区| 国产精品一二三| 极品少妇一区二区| 美女mm1313爽爽久久久蜜臀| 午夜精品久久一牛影视| 亚洲夂夂婷婷色拍ww47| 国产精品国产a| 中文字幕的久久| 久久久久久夜精品精品免费| 精品欧美一区二区久久| 欧美一区二区三区色| 欧美日韩亚洲综合一区| 欧美三级电影网站| 欧美日韩中文一区| 欧美色精品在线视频| 欧美在线小视频| 在线影院国内精品| 日本韩国一区二区三区| 91免费看`日韩一区二区| 不卡av电影在线播放| 国产电影一区二区三区| 国产美女精品在线| 成人综合激情网| 成人av网址在线观看| 97精品久久久午夜一区二区三区| 91性感美女视频| 色哟哟欧美精品| 欧美日韩国产精品成人| 欧美精品日韩一区| 5566中文字幕一区二区电影| 欧美一区二区三区播放老司机| 欧美一级精品大片| 日韩精品一区二区三区swag| 精品国产一区二区三区久久久蜜月| 精品日韩在线一区| 久久精品亚洲乱码伦伦中文 | 在线中文字幕一区二区| 欧美日韩日日摸| 日韩欧美激情在线| 2021中文字幕一区亚洲| 欧美高清在线视频| 亚洲一区二区三区精品在线| 偷拍与自拍一区| 国产一区二区三区黄视频| a在线播放不卡| 色诱视频网站一区| 91精品国产高清一区二区三区| 欧美xxxxxxxxx| 国产三级精品三级在线专区| 亚洲免费观看在线视频| 三级久久三级久久久| 狠狠色丁香久久婷婷综合_中| 国产精品资源网站| 在线中文字幕一区二区| 欧美成人精品1314www| 国产精品女上位| 亚洲r级在线视频| 国产在线播精品第三| 91一区二区在线| 欧美人牲a欧美精品| 欧美精品一区二区三| 1024成人网| 青青草国产成人av片免费| 国产福利精品一区| 欧美无砖专区一中文字| 国产欧美日韩在线视频| 亚洲丶国产丶欧美一区二区三区| av成人免费在线| 欧美日韩高清一区二区| 国产欧美一区在线| 香蕉av福利精品导航| 丁香啪啪综合成人亚洲小说 | 日韩一区二区三区电影在线观看 | 91精品国产高清一区二区三区| 国产精品美女久久久久久| 婷婷中文字幕综合| 成人精品国产福利| 欧美一区二区三区在线电影| 综合色中文字幕| 精品一区二区三区视频在线观看| 色综合久久综合网| 欧美精品一区在线观看| 亚洲国产视频一区二区| 成人av手机在线观看| 精品日韩在线一区| 日韩精品色哟哟| 欧美影院午夜播放| 国产精品毛片无遮挡高清| 久久国产乱子精品免费女| 欧美亚洲综合色| 中文字幕制服丝袜一区二区三区 | 日韩欧美国产系列| 亚洲午夜一区二区三区| 91在线视频播放地址| 久久免费美女视频| 秋霞午夜av一区二区三区| 91极品视觉盛宴| 自拍偷拍国产亚洲| 成人激情黄色小说| 国产亚洲短视频| 日本麻豆一区二区三区视频| 欧美日韩一区二区三区免费看| 国产精品电影一区二区| 国产精品66部| 精品成人在线观看| 精品一区二区久久| 日韩视频在线观看一区二区| 亚洲超丰满肉感bbw| 91视视频在线直接观看在线看网页在线看| 精品成人一区二区三区四区| 久久国产尿小便嘘嘘尿| 精品免费国产二区三区 | 成人av网站在线| 中文字幕亚洲一区二区va在线| 欧美日韩一区二区三区不卡| 亚洲色图欧洲色图| 99精品国产视频| 亚洲免费在线观看视频| 91在线高清观看| 一区二区不卡在线播放| 91黄色免费观看| 亚洲午夜精品一区二区三区他趣| 一本大道av一区二区在线播放| 亚洲品质自拍视频网站| 在线观看av不卡| 三级一区在线视频先锋 | 中文字幕日本不卡| 色综合久久久久综合99| 亚洲午夜免费电影| 在线播放中文字幕一区| 免费观看在线综合| 精品国精品国产| 成人黄页在线观看| 一区二区三区四区在线免费观看| 色视频成人在线观看免| 亚洲成人免费视频| 欧美一区二区三区视频免费播放| 精品在线视频一区| 国产亚洲精品免费| 99久久99久久精品免费观看| 一区二区高清在线| 欧美另类高清zo欧美| 国内精品在线播放| 国产精品丝袜黑色高跟| 在线观看国产日韩| 免费国产亚洲视频| 国产精品污www在线观看| 色妞www精品视频| 青娱乐精品在线视频| 中文字幕av资源一区| 色噜噜偷拍精品综合在线| 日本成人在线看| 欧美国产日产图区| 欧美三级电影在线看| 国产麻豆精品久久一二三| 亚洲欧洲日韩女同| 欧美麻豆精品久久久久久| 国产在线视频一区二区| 成人欧美一区二区三区小说 | 久久久久久久久97黄色工厂| 91麻豆高清视频| 老司机精品视频一区二区三区| 亚洲视频在线一区| 日韩你懂的在线播放| av男人天堂一区| 麻豆精品国产传媒mv男同| 国产精品视频免费| 91精品国产一区二区三区| 懂色av一区二区三区免费观看| 亚洲国产欧美日韩另类综合| wwww国产精品欧美| 在线亚洲一区观看| 国产精品1区二区.| 日韩电影免费在线| 成人免费视频在线观看| 久久久国产精华| 欧美电影在哪看比较好|