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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? performs autocorrelation of a 16-bit vector.txt

?? c6000的標(biāo)準(zhǔn)函數(shù)庫(kù)
?? TXT
字號(hào):
*===============================================================================
*
*	TEXAS INSTRUMENTS, INC.		
*
*	AUTOCORRELATION
*
*	Revision Date:  04/16/97
*	
*	USAGE	This routine is C Callable and can be called as:
*		
*		int autcor(short ac[], short sd[], int N, int M)
*
*		ac[] --- Resulting array of autocorrelation 
*               sd[] --- Input array of autocorrelation
*		N    --- Length of Input array vector (sd[]) - M (MULTIPLE of 8)
*		M    --- Length of autocorrelation (MULTIPLE of 2)
*
*		If routine is not to be used as a C callable function then
*		you need to initialize values for all of the values passed
*		as these are assumed to be in registers as defined by the 
*		calling convention of the compiler, (refer to the C compiler
*		reference guide).
*
*	C CODE
*		This is the C equivalent of the assembly code.  Note that
*		the assembly code is hand optimized and restrictions may
*		apply.
*
*		void autcor(short ac[],short sd[], int N, int M)
*		{
*		int i,k,sum;
*
*		for (i = 0; i < M; i++){
*		sum = 0;
*			for (k = M; k < N+M; k++)
*				sum += sd[k] * sd[k-i];
*			ac[i] = (sum >> 15);
*			}
*		}
*
*
*	DESCRIPTION
*
*		This routine performs the autocorrelation of the input array sd.
*		It is assumed that the length of the input array, sd, is a
*		multiple of 8 and the length of the output array, ac, is a 		*		multiple of 2.  The assembly routine performs 2 output samples
*		at a time.  This is typically used in vselp code.
*		
*	TECHNIQUES
*
*		The inner loop is unrolled eight times thus the length of 
*		the input array must be a multiple of eight.  The outer
*		loop is unrolled twice so the length of output array must
*		be a multiple of 2.
*
*		The outer loop is conditionally executed in parallel with the
*		inner loop.  This allows for a zero overhead outer loop.
*	
*	ASSUMPTIONS
*
*         	N is a multiple of 8 
*		M is a multiple of 2
*		sd[0] is on a word boundary
*		
*	MEMORY NOTE
*
*		One memory hit occurs every fourth outer loop cycle (2Nth inner
*		loop cycle) or M/4 times.
*
*	CYCLES
*
*		(N/2)*M + 16 + M/4
*
*================================================================================

********* ASSEMBLY CODE: *******************
	.global _autcor
	.text
_autcor:

	SUB	.L1x	B15,4,A9

	STW	.D1	A10,*A9--[2]	; push A10 on stack 
||	STW	.D2	B10,*B15--[2]	; push B10 on stack

	STW	.D1	A11,*A9--[2]	; push A11 on stack
||	STW	.D2	B11,*B15--[2]	; push B11 on stack

	STW	.D1	A12,*A9--[2]	; push A12 on stack
||	STW	.D2	B12,*B15--[2]	; push B12 on stack

*** BEGIN Benchmark Timing ***
B_START:
	SHL	.S1	A6,1,A14	; for inner lp setup; N Hwords
||	MPY	.M2X	A6,B6,B0	; N*M
||	STW	.D1	A13,*A9--[2]	; push A13 on stack
||	STW	.D2	B13,*B15--[2]	; push B13 on stack

	ADD	.L2X	2,A4,B14	; a[i+1] other reg file
||	ADDAH	.D2	B4,B6,B3	; sd[k] & sd[k+1]
||	MV	.L1X	B3,A13		; store return pointer
||	STW	.D1	A14,*A9--[2]	; push A14 on stack

	MV	.L1X	B3,A3		; sd[k] & sd[k+1]
||	SUB	.L2	B3,4,B4		; sd[k-i-2] & sd[k-i-1]
||	SHR	.S1	A6,3,A0		; for inner lp setup; N/8
||	STW	.D1	A15,*A9		; push A15 on stack
||	STW	.D2	B14,*B15	; push B14 on stack

	LDW	.D1	*A3++[2],A5	; sd[k] & sd[k+1]
||	MV	.L1	A3,A15		; sd[k-i] & sd[k-i+1]
||	MV	.S1	A0,A1		; Set inner loop count

	LDW	.D2	*B4++[2],B5	; sd[k-i-2]& sd[k-i-1]
||	LDW	.D1	*A15++[2],A6	; sd[k-i]& sd[k-i+1]
||	SHL	.S2X	A6,1,B1		; for inner lp setup; N Hwords
||	MPY	.M1	A8,0,A8		; initialize to zero
||	MPY	.M2	B9,0,B9		; initialize to zero
||	MVK	.S1	1,A2		; initialize count
||	ZERO	.L2	B2		; initialize to zero
||	ADD	.L1	A0,-1,A0	;

	LDW	.D2	*++B3[1],B6	; sd[k+2] & sd[k+3]
||	MVK	.S1	1,A2		; initialize priming cnt
||	MPY	.M1	A7,0,A7		; initialize to zero
||	MPY	.M2	B11,0,B11	; initialize to zero
||	ZERO	.D1	A5		; initialize to zero
||	ZERO	.L2	B6		; initialize to zero
||	SUB	.L1X	0,B10,A11	; initialize to zero (1st cycle 1st)
||	SUB	.S2	0,B8,B12	; initialize to zero (1st cycle 1st)

LOOP1:
	ADD	.L1X	B10,A11,A11	; tmp_aca2 +s= p2a2
|| [A2] ADD	.L2	B8,B12,B8	; tmp_acb0 +s= p2b0
||	MPY	.M1	A5,A6,A9	; p2a4 = sd[k+4]*sd[k-i+4]
||	MPYLH	.M2X	A5,B7,B8	; p2b4 = sd[k+4]*sd[k-i+3]
||	LDW	.D2	*B4++[2],B7	;*sd[k-i+2]&sd[k-i+3]
||[!A2] SHR	.S2	B12,15,B13	; (0x0000ffffL & (tmp_acb >> 16)

	ADD	.L1X	B11,A11,A11	; tmp_aca3 +s= p2a3
||	ADD	.L2X	A7,B8,B12	; tmp_acb1 +s= p2b1
||	MPY	.M2	B6,B7,B10	; p2a6 = sd[k+6]*sd[k-i+6]
||	MPYHL	.M1	A5,A6,A7	; p2b5 = sd[k+5]*sd[k-i+4]
||	LDW	.D1	*A3++[2],A5	;* sd[k+4] & sd[k+5]
||[!A1] ADD	.S1	A0,1,A1		; reset inner lp cntr
||[!B2]	SHR	.S2	B0,4,B0		; M*N/16
||[!B2]	ADDAW	.D2	B3,2,B3		; sd[k+2] & sd[k+3]

	ADD	.L2X	A8,B12,B12	; tmp_acb2 +s= p2b2
||	ADD	.L1	A9,A11,A9	; tmp_aca4 +s= p2a4
||	MPYH	.M2	B6,B7,B11	; p2a7 = sd[k+7]*sd[k-i+7]
||	MPYLH	.M1X	B6,A6,A8	; p2b6 = sd[k+6]*sd[k-i+5]
||[!A2] STH	.D2	B13,*B14++[2]	; ac[0][i+1]=(tmp_acb>> 16)
||	LDW	.D1	*A15++[2],A6	;*sd[k-i+4]& sd[k-i+5]
|| [B0] B	.S2	LOOP1		; Branch inner most loop
|| [A1] ADD	.S1	-1,A1,A1	; dec lp cntr

	ADD	.L2	B9,B12,B12	; tmp_acb3 +s= p2b3
|| [B2]	ADD	.L1	A10,A9,A11	; tmp_aca5 +s= p2a5
||	MPYHL	.M2	B6,B7,B9	; p2b7 = sd[k+7]*sd[k-i+6]
||	MPYH	.M1	A5,A6,A10	;* p2a1 = sd[k+1]*sd[k-i+1]
||	LDW	.D2	*B3++[2],B6	;* sd[k+6] & sd[k+7]
|| [B2]	SUB	.S1	A1,A0,A2	; dec lp cntr
||[!A2] STH	.D1	A12,*A4++[2]	; ac[0][i] =(tmp_aca >> 16)

	ADD	.L1X	B10,A11,A11	; tmp_aca6 +s= p2a6
||	ADD	.L2	B8,B12,B8	; tmp_acb4 +s= p2b4
||	MPY	.M1	A5,A6,A9	;* p2a0 = sd[k]*sd[k-i]
||	MPYLH	.M2X	A5,B5,B8	;* p2b0 = sd[k]*sd[k-i-1]
||	LDW	.D2	*B4,B7		;*sd[k-i+6]&sd[k-i+7]
||[!A1] SUB	.S2	B4,B1,B4	; reset ptr
||[!A1] SUB	.S1	A15,A14,A15	; reset ptr
||[!A1] SUB	.D1	A3,A14,A3	; reset ptr

	ADD	.L1X	B11,A11,A11	; tmp_aca7 +s= p2a7
||	ADD	.L2X	A7,B8,B12	; tmp_acb5 +s= p2b5
||	MPY	.M2	B6,B7,B10	;* p2a2 = sd[k+2]*sd[k-i+2]
||	MPYHL	.M1	A5,A6,A7	;* p2b1 = sd[k+1]*sd[k-i]
||	LDW	.D1	*A3++[2],A5	;** sd[k] & sd[k+1]
||[!A1] SUB	.D2	B3,B1,B3	; reset ptr
||[!A1] SUB	.S2	B4,4,B4		; reset ptr
||[!A1] SUB	.S1	A15,4,A15	; reset ptr

	ADD	.L2X	A8,B12,B12	; tmp_acb6 +s= p2b6
|| [A2] ADD	.L1	A9,A11,A9	;* tmp_aca0 +s= p2a0
||	MPYH	.M2	B6,B7,B11	;* p2a3 = sd[k+3]*sd[k-i+3]
||	MPYLH	.M1X	B6,A6,A8	;* p2b2 = sd[k+2]*sd[k-i+1]
||	LDW	.D2	*B4++[2],B5	;**sd[k-i-2]&sd[k-i-1]
||	LDW	.D1	*A15++[2],A6	;**sd[k-i]& sd[k-i+1]
||[!A2] SHR	.S1	A11,15,A12	; (0x0000ffffL & (tmp_aca >> 16)
||[!B2] MVK	.S2	1,B2		;

	ADD	.L2	B9,B12,B12	; tmp_acb7 +s= p2b7
||	ADD	.L1	A10,A9,A11	;* tmp_aca1 +s= p2a1
||	MPYHL	.M2	B6,B7,B9	;* p2b3 = sd[k+3]*sd[k-i+2]
||	MPYH	.M1	A5,A6,A10	;* p2a5 = sd[k+5]*sd[k-i+5]
||	LDW	.D2	*B3++[2],B6	;** sd[k+2] & sd[k+3]
|| [B0] ADD	.S2	-1,B0,B0	; dec outer lp cntr
					
; LOOP1 ENDS HERE

	SHR	.S2	B12,15,B13	; (0x0000ffffL & (tmp_acb >> 16)

	STH	.D1	A12,*A4		; ac[0][i] =(tmp_aca >> 16)
||	STH	.D2	B13,*B14	; ac[0][i+1]=(tmp_acb>> 16)
||	SUB	.L1x	B15,12,A4	;

B_END:
*** END Benchmark Timing ***

	LDW	.D1	*A4++[2], A15	; pop A15 off stack
||	LDW	.D2	*B15++[2], B14	; pop B14 off stack

	LDW	.D1	*A4++[2], A14	; pop A14 off stack
||	LDW	.D2	*B15++[2], B13	; pop B13 off stack

	LDW	.D1	*A4++[2], A13	; pop A13 off stack
||	LDW	.D2	*B15++[2], B12	; pop B12 off stack
||	MV	.L2x	A13,B3		; get return pointer

	LDW	.D1	*A4++[2], A12	; pop A12 off stack
||	LDW	.D2	*B15++[2], B11	; pop B11 off stack

	LDW	.D1	*A4++[2], A11	; pop A11 off stack
||	LDW	.D2	*B15, B10	; pop B10 off stack
||	B	.S2	B3		; Return from call

	LDW	.D1	*A4,A10		; pop A10

	NOP		4


?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
轻轻草成人在线| 91美女片黄在线| 欧美日韩精品一区二区| 亚洲欧美激情插| 91官网在线观看| 天堂蜜桃91精品| 欧美草草影院在线视频| 国产一区二区调教| 国产精品青草久久| 在线观看www91| 丝袜美腿一区二区三区| 成人免费在线视频| 欧美精品久久99| 国产美女av一区二区三区| 五月天一区二区| 久久精品一区四区| 91精品91久久久中77777| 国产成人综合在线播放| 一区二区三区高清| 欧美成人免费网站| 欧美精品三级在线观看| 在线亚洲免费视频| 91浏览器入口在线观看| 国产成人av电影在线| 亚洲永久免费视频| 337p日本欧洲亚洲大胆精品| 91免费观看国产| 国产91在线|亚洲| 国产一区二区三区日韩| 久久99精品国产.久久久久| 国产精品色噜噜| 国产欧美一区二区三区在线老狼| 欧美日韩免费电影| 在线一区二区视频| 91丨porny丨首页| 成人18视频日本| 美国十次了思思久久精品导航| 中文字幕一区日韩精品欧美| 欧美国产精品久久| 欧美一区二区三区不卡| 91一区一区三区| 91在线观看下载| 久久av中文字幕片| 亚洲成av人片在www色猫咪| 亚洲免费观看高清在线观看| 久久精品国产网站| 欧美电影一区二区| 在线精品视频免费观看| 91同城在线观看| 91麻豆swag| 欧美中文一区二区三区| 欧美日韩日本视频| 久久精品国产成人一区二区三区| 日韩中文字幕av电影| 蜜臀91精品一区二区三区| 麻豆国产一区二区| 国产自产视频一区二区三区| 亚洲成va人在线观看| 偷拍与自拍一区| 精品一二三四在线| 国产成人啪免费观看软件| 成人动漫在线一区| 欧美亚洲国产bt| 91视频在线观看| 欧美唯美清纯偷拍| 日韩欧美国产综合一区| 欧美美女一区二区在线观看| 欧美一级一区二区| 国产午夜精品一区二区三区四区| 国产精品婷婷午夜在线观看| 亚洲精品国产一区二区精华液| 日本不卡在线视频| 在线观看亚洲精品| 欧美日韩一级视频| 日韩写真欧美这视频| 精品视频在线免费看| 91精品国产高清一区二区三区 | 成人午夜精品在线| 国内精品免费**视频| 成人av电影在线| 欧美欧美欧美欧美| 久久精品人人做| 亚洲国产精品尤物yw在线观看| 一区二区三区小说| 久久99精品久久久久久久久久久久| 风间由美一区二区av101| 欧美亚洲日本一区| 欧美激情一区二区三区| 日韩激情视频网站| av不卡一区二区三区| 色综合久久久久久久久| 在线视频亚洲一区| 久久久久久97三级| 中文字幕一区二区三区精华液| 日韩精品电影在线观看| voyeur盗摄精品| 欧美成人性福生活免费看| 亚洲卡通动漫在线| 国产 日韩 欧美大片| 4438x成人网最大色成网站| 日韩欧美一级片| 亚洲一区在线免费观看| 国产99久久久国产精品免费看| 欧美二区在线观看| 日韩毛片视频在线看| 亚洲国产综合视频在线观看| 国产ts人妖一区二区| 欧美一区二区三区啪啪| 亚洲国产精品一区二区尤物区| 成人午夜激情在线| 26uuu色噜噜精品一区二区| 三级精品在线观看| 在线亚洲一区观看| 国产精品成人在线观看| 亚洲国产精品一区二区久久 | 成人国产精品视频| 日韩亚洲欧美成人一区| 亚洲成av人影院| 91在线观看高清| 久久99久久久久| 欧美三级欧美一级| 一区二区在线电影| 97成人超碰视| 亚洲欧美综合色| 成人av在线资源网| 国产精品美女久久久久久久久久久| 国产一区二区三区免费播放| 日韩欧美www| 免费观看一级特黄欧美大片| 欧美日韩精品一二三区| 视频一区视频二区在线观看| 欧美日韩一区二区三区四区| 夜夜嗨av一区二区三区网页 | 毛片av一区二区| 欧美精品久久久久久久多人混战 | 日本丰满少妇一区二区三区| 国产精品美女久久久久aⅴ国产馆| 国产精品18久久久久| 欧美午夜一区二区| 亚洲一区二区三区四区中文字幕| 日本韩国一区二区三区视频| 亚洲综合免费观看高清完整版在线 | 麻豆精品一区二区综合av| 91精品国产高清一区二区三区蜜臀| 午夜精品123| 91精品欧美福利在线观看| 日韩av电影一区| 精品免费国产一区二区三区四区| 老司机免费视频一区二区三区| 欧美va亚洲va香蕉在线| 国产一区二区成人久久免费影院 | 欧美性高清videossexo| 亚洲一区二区三区爽爽爽爽爽 | 日韩欧美亚洲国产精品字幕久久久| 精品一区二区三区免费| 久久久噜噜噜久噜久久综合| 成人午夜激情影院| 亚洲欧美视频一区| 欧美裸体bbwbbwbbw| 极品少妇xxxx精品少妇偷拍| 久久久久99精品国产片| 97久久超碰国产精品电影| 一二三区精品福利视频| 欧美一区二区三区视频在线观看| 精品一区二区三区在线观看| 国产精品污网站| 欧美系列亚洲系列| 国内外成人在线| 亚洲三级电影网站| 91精品免费观看| 国产mv日韩mv欧美| 一区二区三区中文免费| 日韩精品一区二区三区中文精品 | 日本高清无吗v一区| 日韩电影免费一区| 国产喷白浆一区二区三区| 在线精品视频免费播放| 激情五月婷婷综合| 亚洲色图制服诱惑 | 玉足女爽爽91| 欧美电影免费观看高清完整版在| 成人性生交大片免费| 丝袜美腿亚洲综合| 国产精品三级av在线播放| 欧美福利视频一区| 成人av高清在线| 免费亚洲电影在线| 亚洲欧美日韩中文播放| 欧美成人aa大片| 91亚洲大成网污www| 九九热在线视频观看这里只有精品| 国产精品久久久久久久久免费樱桃 | 99久久国产综合精品麻豆| 色综合久久久久综合99| 国内精品自线一区二区三区视频| 亚洲精品国产高清久久伦理二区| 久久新电视剧免费观看| 欧美高清视频一二三区| 91在线视频18| 成人中文字幕在线|