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

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

?? ppc-mont.pl

?? OpenSSL 0.9.8k 最新版OpenSSL
?? PL
字號:
#!/usr/bin/env perl# ====================================================================# Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL# project. The module is, however, dual licensed under OpenSSL and# CRYPTOGAMS licenses depending on where you obtain it. For further# details see http://www.openssl.org/~appro/cryptogams/.# ====================================================================# April 2006# "Teaser" Montgomery multiplication module for PowerPC. It's possible# to gain a bit more by modulo-scheduling outer loop, then dedicated# squaring procedure should give further 20% and code can be adapted# for 32-bit application running on 64-bit CPU. As for the latter.# It won't be able to achieve "native" 64-bit performance, because in# 32-bit application context every addc instruction will have to be# expanded as addc, twice right shift by 32 and finally adde, etc.# So far RSA *sign* performance improvement over pre-bn_mul_mont asm# for 64-bit application running on PPC970/G5 is:## 512-bit	+65%	# 1024-bit	+35%# 2048-bit	+18%# 4096-bit	+4%$flavour = shift;if ($flavour =~ /32/) {	$BITS=	32;	$BNSZ=	$BITS/8;	$SIZE_T=4;	$RZONE=	224;	$FRAME=	$SIZE_T*16;	$LD=	"lwz";		# load	$LDU=	"lwzu";		# load and update	$LDX=	"lwzx";		# load indexed	$ST=	"stw";		# store	$STU=	"stwu";		# store and update	$STX=	"stwx";		# store indexed	$STUX=	"stwux";	# store indexed and update	$UMULL=	"mullw";	# unsigned multiply low	$UMULH=	"mulhwu";	# unsigned multiply high	$UCMP=	"cmplw";	# unsigned compare	$SHRI=	"srwi";		# unsigned shift right by immediate		$PUSH=	$ST;	$POP=	$LD;} elsif ($flavour =~ /64/) {	$BITS=	64;	$BNSZ=	$BITS/8;	$SIZE_T=8;	$RZONE=	288;	$FRAME=	$SIZE_T*16;	# same as above, but 64-bit mnemonics...	$LD=	"ld";		# load	$LDU=	"ldu";		# load and update	$LDX=	"ldx";		# load indexed	$ST=	"std";		# store	$STU=	"stdu";		# store and update	$STX=	"stdx";		# store indexed	$STUX=	"stdux";	# store indexed and update	$UMULL=	"mulld";	# unsigned multiply low	$UMULH=	"mulhdu";	# unsigned multiply high	$UCMP=	"cmpld";	# unsigned compare	$SHRI=	"srdi";		# unsigned shift right by immediate		$PUSH=	$ST;	$POP=	$LD;} else { die "nonsense $flavour"; }$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;( $xlate="${dir}ppc-xlate.pl" and -f $xlate ) or( $xlate="${dir}../../perlasm/ppc-xlate.pl" and -f $xlate) ordie "can't locate ppc-xlate.pl";open STDOUT,"| $^X $xlate $flavour ".shift || die "can't call $xlate: $!";$sp="r1";$toc="r2";$rp="r3";	$ovf="r3";$ap="r4";$bp="r5";$np="r6";$n0="r7";$num="r8";$rp="r9";	# $rp is reassigned$aj="r10";$nj="r11";$tj="r12";# non-volatile registers$i="r14";$j="r15";$tp="r16";$m0="r17";$m1="r18";$lo0="r19";$hi0="r20";$lo1="r21";$hi1="r22";$alo="r23";$ahi="r24";$nlo="r25";#$nhi="r0";$code=<<___;.machine "any".text.globl	.bn_mul_mont.align	4.bn_mul_mont:	cmpwi	$num,4	mr	$rp,r3		; $rp is reassigned	li	r3,0	bltlr	slwi	$num,$num,`log($BNSZ)/log(2)`	li	$tj,-4096	addi	$ovf,$num,`$FRAME+$RZONE`	subf	$ovf,$ovf,$sp	; $sp-$ovf	and	$ovf,$ovf,$tj	; minimize TLB usage	subf	$ovf,$sp,$ovf	; $ovf-$sp	srwi	$num,$num,`log($BNSZ)/log(2)`	$STUX	$sp,$sp,$ovf	$PUSH	r14,`4*$SIZE_T`($sp)	$PUSH	r15,`5*$SIZE_T`($sp)	$PUSH	r16,`6*$SIZE_T`($sp)	$PUSH	r17,`7*$SIZE_T`($sp)	$PUSH	r18,`8*$SIZE_T`($sp)	$PUSH	r19,`9*$SIZE_T`($sp)	$PUSH	r20,`10*$SIZE_T`($sp)	$PUSH	r21,`11*$SIZE_T`($sp)	$PUSH	r22,`12*$SIZE_T`($sp)	$PUSH	r23,`13*$SIZE_T`($sp)	$PUSH	r24,`14*$SIZE_T`($sp)	$PUSH	r25,`15*$SIZE_T`($sp)	$LD	$n0,0($n0)	; pull n0[0] value	addi	$num,$num,-2	; adjust $num for counter register	$LD	$m0,0($bp)	; m0=bp[0]	$LD	$aj,0($ap)	; ap[0]	addi	$tp,$sp,$FRAME	$UMULL	$lo0,$aj,$m0	; ap[0]*bp[0]	$UMULH	$hi0,$aj,$m0	$LD	$aj,$BNSZ($ap)	; ap[1]	$LD	$nj,0($np)	; np[0]	$UMULL	$m1,$lo0,$n0	; "tp[0]"*n0	$UMULL	$alo,$aj,$m0	; ap[1]*bp[0]	$UMULH	$ahi,$aj,$m0	$UMULL	$lo1,$nj,$m1	; np[0]*m1	$UMULH	$hi1,$nj,$m1	$LD	$nj,$BNSZ($np)	; np[1]	addc	$lo1,$lo1,$lo0	addze	$hi1,$hi1	$UMULL	$nlo,$nj,$m1	; np[1]*m1	$UMULH	$nhi,$nj,$m1	mtctr	$num	li	$j,`2*$BNSZ`.align	4L1st:	$LDX	$aj,$ap,$j	; ap[j]	addc	$lo0,$alo,$hi0	$LDX	$nj,$np,$j	; np[j]	addze	$hi0,$ahi	$UMULL	$alo,$aj,$m0	; ap[j]*bp[0]	addc	$lo1,$nlo,$hi1	$UMULH	$ahi,$aj,$m0	addze	$hi1,$nhi	$UMULL	$nlo,$nj,$m1	; np[j]*m1	addc	$lo1,$lo1,$lo0	; np[j]*m1+ap[j]*bp[0]	$UMULH	$nhi,$nj,$m1	addze	$hi1,$hi1	$ST	$lo1,0($tp)	; tp[j-1]	addi	$j,$j,$BNSZ	; j++	addi	$tp,$tp,$BNSZ	; tp++	bdnz-	L1st;L1st	addc	$lo0,$alo,$hi0	addze	$hi0,$ahi	addc	$lo1,$nlo,$hi1	addze	$hi1,$nhi	addc	$lo1,$lo1,$lo0	; np[j]*m1+ap[j]*bp[0]	addze	$hi1,$hi1	$ST	$lo1,0($tp)	; tp[j-1]	li	$ovf,0	addc	$hi1,$hi1,$hi0	addze	$ovf,$ovf	; upmost overflow bit	$ST	$hi1,$BNSZ($tp)	li	$i,$BNSZ.align	4Louter:	$LDX	$m0,$bp,$i	; m0=bp[i]	$LD	$aj,0($ap)	; ap[0]	addi	$tp,$sp,$FRAME	$LD	$tj,$FRAME($sp)	; tp[0]	$UMULL	$lo0,$aj,$m0	; ap[0]*bp[i]	$UMULH	$hi0,$aj,$m0	$LD	$aj,$BNSZ($ap)	; ap[1]	$LD	$nj,0($np)	; np[0]	addc	$lo0,$lo0,$tj	; ap[0]*bp[i]+tp[0]	$UMULL	$alo,$aj,$m0	; ap[j]*bp[i]	addze	$hi0,$hi0	$UMULL	$m1,$lo0,$n0	; tp[0]*n0	$UMULH	$ahi,$aj,$m0	$UMULL	$lo1,$nj,$m1	; np[0]*m1	$UMULH	$hi1,$nj,$m1	$LD	$nj,$BNSZ($np)	; np[1]	addc	$lo1,$lo1,$lo0	$UMULL	$nlo,$nj,$m1	; np[1]*m1	addze	$hi1,$hi1	$UMULH	$nhi,$nj,$m1	mtctr	$num	li	$j,`2*$BNSZ`.align	4Linner:	$LDX	$aj,$ap,$j	; ap[j]	addc	$lo0,$alo,$hi0	$LD	$tj,$BNSZ($tp)	; tp[j]	addze	$hi0,$ahi	$LDX	$nj,$np,$j	; np[j]	addc	$lo1,$nlo,$hi1	$UMULL	$alo,$aj,$m0	; ap[j]*bp[i]	addze	$hi1,$nhi	$UMULH	$ahi,$aj,$m0	addc	$lo0,$lo0,$tj	; ap[j]*bp[i]+tp[j]	$UMULL	$nlo,$nj,$m1	; np[j]*m1	addze	$hi0,$hi0	$UMULH	$nhi,$nj,$m1	addc	$lo1,$lo1,$lo0	; np[j]*m1+ap[j]*bp[i]+tp[j]	addi	$j,$j,$BNSZ	; j++	addze	$hi1,$hi1	$ST	$lo1,0($tp)	; tp[j-1]	addi	$tp,$tp,$BNSZ	; tp++	bdnz-	Linner;Linner	$LD	$tj,$BNSZ($tp)	; tp[j]	addc	$lo0,$alo,$hi0	addze	$hi0,$ahi	addc	$lo0,$lo0,$tj	; ap[j]*bp[i]+tp[j]	addze	$hi0,$hi0	addc	$lo1,$nlo,$hi1	addze	$hi1,$nhi	addc	$lo1,$lo1,$lo0	; np[j]*m1+ap[j]*bp[i]+tp[j]	addze	$hi1,$hi1	$ST	$lo1,0($tp)	; tp[j-1]	addic	$ovf,$ovf,-1	; move upmost overflow to XER[CA]	li	$ovf,0	adde	$hi1,$hi1,$hi0	addze	$ovf,$ovf	$ST	$hi1,$BNSZ($tp);	slwi	$tj,$num,`log($BNSZ)/log(2)`	$UCMP	$i,$tj	addi	$i,$i,$BNSZ	ble-	Louter	addi	$num,$num,2	; restore $num	subfc	$j,$j,$j	; j=0 and "clear" XER[CA]	addi	$tp,$sp,$FRAME	mtctr	$num.align	4Lsub:	$LDX	$tj,$tp,$j	$LDX	$nj,$np,$j	subfe	$aj,$nj,$tj	; tp[j]-np[j]	$STX	$aj,$rp,$j	addi	$j,$j,$BNSZ	bdnz-	Lsub	li	$j,0	mtctr	$num	subfe	$ovf,$j,$ovf	; handle upmost overflow bit	and	$ap,$tp,$ovf	andc	$np,$rp,$ovf	or	$ap,$ap,$np	; ap=borrow?tp:rp.align	4Lcopy:				; copy or in-place refresh	$LDX	$tj,$ap,$j	$STX	$tj,$rp,$j	$STX	$j,$tp,$j	; zap at once	addi	$j,$j,$BNSZ	bdnz-	Lcopy	$POP	r14,`4*$SIZE_T`($sp)	$POP	r15,`5*$SIZE_T`($sp)	$POP	r16,`6*$SIZE_T`($sp)	$POP	r17,`7*$SIZE_T`($sp)	$POP	r18,`8*$SIZE_T`($sp)	$POP	r19,`9*$SIZE_T`($sp)	$POP	r20,`10*$SIZE_T`($sp)	$POP	r21,`11*$SIZE_T`($sp)	$POP	r22,`12*$SIZE_T`($sp)	$POP	r23,`13*$SIZE_T`($sp)	$POP	r24,`14*$SIZE_T`($sp)	$POP	r25,`15*$SIZE_T`($sp)	$POP	$sp,0($sp)	li	r3,1	blr	.long	0.asciz  "Montgomery Multiplication for PPC, CRYPTOGAMS by <appro\@fy.chalmers.se>"___$code =~ s/\`([^\`]*)\`/eval $1/gem;print $code;close STDOUT;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
狠狠色丁香婷婷综合久久片| 日本一区二区三区在线不卡 | 欧美激情艳妇裸体舞| 蜜臀av性久久久久蜜臀aⅴ流畅| 69堂成人精品免费视频| 日韩精品亚洲专区| 精品国产一二三| 成人免费av网站| 亚洲同性gay激情无套| 一本久久a久久精品亚洲| 一区二区三区色| 在线电影欧美成精品| 久久不见久久见免费视频7 | 懂色av中文字幕一区二区三区| 国产亲近乱来精品视频| 91影院在线观看| 亚洲成av人片在www色猫咪| 日韩视频不卡中文| 国产精品18久久久久| 国产精品久久久久毛片软件| 色综合久久久久网| 免费观看一级欧美片| 久久久五月婷婷| 日本韩国精品在线| 美女视频网站久久| 18成人在线视频| 欧美精品丝袜中出| 国产成人夜色高潮福利影视| 亚洲欧美国产高清| 日韩欧美激情一区| 99麻豆久久久国产精品免费 | 亚洲视频中文字幕| 在线成人av影院| 国产91精品久久久久久久网曝门 | 91精品国产欧美一区二区成人| 国内成人自拍视频| 亚洲免费观看高清完整版在线观看熊| 欧美精三区欧美精三区| 成人免费视频一区| 免费在线欧美视频| 亚洲欧美电影一区二区| 欧美哺乳videos| 91黄视频在线观看| 国产69精品久久777的优势| 日本va欧美va欧美va精品| 国产精品国产自产拍在线| 日韩女优av电影| 在线观看一区日韩| 成人福利视频网站| 国产自产v一区二区三区c| 亚洲国产日韩av| 中文字幕一区二区视频| 久久久一区二区三区捆绑**| 91精品国产综合久久精品| 色噜噜狠狠色综合欧洲selulu| 久久精品国产在热久久| 一二三四社区欧美黄| 91精品国产综合久久福利软件 | 久久精品国产亚洲一区二区三区| 国产农村妇女精品| 欧美一区二区福利在线| 91浏览器入口在线观看| 美国毛片一区二区| 亚洲女厕所小便bbb| 精品成人在线观看| 欧美在线观看你懂的| 国产乱码一区二区三区| 亚洲福利电影网| 中文字幕 久热精品 视频在线| 在线综合+亚洲+欧美中文字幕| 成人av免费在线播放| 激情六月婷婷久久| 亚洲丰满少妇videoshd| 久久九九久久九九| 精品福利av导航| 欧美男女性生活在线直播观看| www.66久久| 国内精品免费**视频| 日韩国产欧美一区二区三区| 亚洲欧美日韩小说| 国产精品亲子乱子伦xxxx裸| 欧美videossexotv100| 欧美久久久久久蜜桃| 欧美日韩亚洲综合一区二区三区| av中文字幕亚洲| 国产专区欧美精品| 麻豆国产91在线播放| 视频一区二区中文字幕| 亚洲国产欧美日韩另类综合| 亚洲日本丝袜连裤袜办公室| 中文字幕欧美三区| 国产亚洲福利社区一区| 欧美一区二区视频在线观看 | 中文av一区二区| 337p粉嫩大胆色噜噜噜噜亚洲| 正在播放亚洲一区| 正在播放亚洲一区| 制服丝袜亚洲播放| 欧美在线观看一区二区| 91精品在线免费观看| 91麻豆精品国产自产在线 | 欧美一区二区三区人| 欧美日韩一区二区在线观看视频| 成人97人人超碰人人99| 成人国产电影网| 91美女片黄在线| 99九九99九九九视频精品| 99久久精品免费观看| 99re免费视频精品全部| av高清不卡在线| 日本精品视频一区二区三区| 在线观看日韩av先锋影音电影院| 91国在线观看| 成人动漫一区二区三区| 欧美日韩一区三区四区| 91精品国产综合久久久久久久久久 | 日本伊人精品一区二区三区观看方式 | 精品亚洲国内自在自线福利| 麻豆成人久久精品二区三区小说| 激情欧美日韩一区二区| 成人毛片在线观看| 91蜜桃免费观看视频| 欧美精品一卡两卡| 欧美电影免费观看高清完整版在线| 国产日韩亚洲欧美综合| 最近中文字幕一区二区三区| 一区二区三区日本| 麻豆中文一区二区| 国产成人免费高清| 欧美午夜精品一区二区三区| 日韩一区二区在线免费观看| 久久久久久久免费视频了| 国产精品久久久久久户外露出| 亚洲一区在线电影| 韩国三级电影一区二区| 成人激情文学综合网| 在线观看欧美精品| 久久视频一区二区| 亚洲综合免费观看高清在线观看| 日韩1区2区日韩1区2区| 国产伦精品一区二区三区视频青涩 | 成人激情免费视频| 99久久er热在这里只有精品15 | 亚洲激情成人在线| 青青草91视频| 99国产精品久久久| 日韩欧美色综合| 一区二区三区在线视频观看| 亚洲va天堂va国产va久| 波多野结衣中文字幕一区 | 中文字幕在线一区二区三区| 亚洲成人av在线电影| 国产精品一区2区| 欧美日本精品一区二区三区| 久久精品亚洲麻豆av一区二区| 亚洲综合激情小说| 国产福利91精品一区二区三区| 日韩免费一区二区三区在线播放| 中文字幕在线不卡一区 | 99久久精品免费| 日韩精品综合一本久道在线视频| 亚洲精品久久久久久国产精华液 | 麻豆91精品视频| 色综合久久久久久久久| 国产精品网站在线观看| 久久激情五月激情| 日韩视频123| 日韩成人免费看| 91色视频在线| 中文字幕第一区综合| 日韩1区2区3区| 在线免费亚洲电影| 亚洲欧洲精品天堂一级| 国产精品一区二区免费不卡| 日韩欧美的一区二区| 亚洲六月丁香色婷婷综合久久| 国产美女精品一区二区三区| 91亚洲大成网污www| 一区精品在线播放| 国产iv一区二区三区| 欧美一区二区免费| 亚洲第一主播视频| 欧美在线观看一区| 亚洲在线视频免费观看| 在线免费视频一区二区| 一区二区三区四区乱视频| 色素色在线综合| 亚洲国产精品久久久久婷婷884| 91福利在线看| 亚洲精品成人天堂一二三| av色综合久久天堂av综合| 亚洲视频一二三区| 在线视频欧美精品| 亚洲综合一二区| 欧美日本免费一区二区三区| 日本va欧美va精品发布| 日韩一区二区中文字幕| 美女国产一区二区| 精品国产一区久久| 国产精品一区二区三区乱码|