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

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

?? fir filter coefficients x8 output samples x2.txt

?? c6000的標準函數庫
?? TXT
字號:
*===============================================================================
*
*	TEXAS INSTRUMENTS, INC.
*
*	FIR
*
*	Revision Date: 2/3/97
*
*	USAGE	This routine is C Callable and can be called as:
*
*		void fir8(short *x, short *h, short *y, int N, int M)
*		
*		x = input array
*		h = coefficient array
*		y = output array
*		N = number of coefficients (MULTIPLE of 8 >= 8)
*		M = number of output samples (EVEN >= 2)
*
*		If routine is not to be used as a C callable function
*		then all instructions relating to stack should be removed.
*		Refer to comments of individual instructions.  You will also
*		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 without 
*		restrictions.  Note that the assembly code is hand optimized and
*		restrictions may apply
*
*		void fir8(short x[], short h[], short y[], int N, int M)
*		{
*			int i, j, sum;
*			
*			for (j = 0; j < M; j++) {
*				sum = 0;
*				for (i = 0; i < N; i++)
*					sum += x[i + j] * h[i];
*				y[j] = sum >> 15;
*			}
*		}
*
*	DESCRIPTION
*		This FIR assumes the number of filter coeficients is a multiple
*		of 8 and the number of output samples is a multiple of 2.  It
*		operates on 16-bit data with a 32-bit accumulate.  This
*		routine has no memory hits regardless of where x, h, and y 
*		arrays are located in memory.  The filter is M output samples
*		and N coefficients.  The assembly routine performs 2 output
*		samples at a time.
*
*
*	TECHNIQUES
*		The inner loop is unrolled eight times thus the number of 
*		filter coefficients must be a multiple of eight.  The outer
*		loop is unrolled twice so the number of output samples must
*		be a multiple of 2.
*
*		If an odd number of output samples is needed or possible, the
*		final store can either be removed or conditionally executed 
*		depending on whether M is even or odd.  This code would have to 
*		be added to the existing code.
*
*		The outer loop is conditionally executed in parallel with the
*		inner loop.  This allows for a zero overhead outer loop.
*
*		Refer to FIR example in the optimizing assembly chapter of
*		the programmer's guide for more information.
*
*
*	ASSUMPTIONS
*		N MULTIPLE of 8 >= 8
*		M EVEN >= 2
*
*
*	MEMORY NOTE
*		This code has no memory hits regardless of where x and h are
*		located in memory.
*
*	CYCLES	M*N/2+13
*
*===============================================================================
	.global _fir8
	.text
_fir8:
	STW	.D2	A15,*B15--	; push register (for c-callable func)
||	SUB	.L1X	B15,8,A15	; copy stack pointer to A reg file

	STW	.D2	B14,*B15--[2]	; push register (for c-callable func)
||	STW	.D1	A14,*A15--[2]	; push register (for c-callable func)

	STW	.D2	B13,*B15--[2]	; push register (for c-callable func)
||	STW	.D1	A13,*A15--[2]	; push register (for c-callable func)

	STW	.D2	B12,*B15--[2]	; push register (for c-callable func)
||	STW	.D1	A12,*A15--[2]	; push register (for c-callable func)

*** BEGIN Benchmark Timing ***
B_START

	MPY	.M2	B6,2,B5		; used to reset h ptr (16*N/8)
||	SHR	.S1X	B6,3,A5		; set pointer reset lp cntr (N/8)
||	ADD	.L2X	A6,2,B6		; point to y[j+1]

	SHR	.S2X	A8,1,B0		; M/2
||	STW	.D2	B11,*B15--[2]	; push register (for c-callable func)
||	STW	.D1	A11,*A15--[2]	; push register (for c-callable func)
||	ZERO	.S1	A2		; set store lp cntr (N/8+1)

	MV	.L1X	B4,A0		; point to h[0] & h[1]
||	ADD	.S2	B4,4,B14	; point to h[2] & h[3]
||	MV	.L2X	A4,B1		; point to x[j] & x[j+1]
||	ADD	.S1	A4,4,A4		; point to x[j+2] & x[j+3]
||	STW	.D2	B10,*B15--[2]	; push register (for c-callable func)
||	STW	.D1	A10,*A15--[2]	; push register (for c-callable func)

  	LDW	.D1	*A4++[2],B9	; x[j+i+2] & x[j+i+3]
||	LDW	.D2	*B1++[2],A10	; x[j+i+0] & x[j+i+1]
||	MV	.L1	A5,A1		; set pointer reset lp cntr (N/8)
||	MPY	.M2X	A5,B0,B0	; set up loop counter ((N/8)*(M/2))
||	SUB	.S1X	B5,4,A3		; used to reset x ptr (16*N/8-4)
||	ZERO	.L2	B11		; zero out initial accumulator
||	MVK	.S2	2,B2		; initialize loop priming count

LOOP:
  [!A2]	SHR	.S1	A10,15,A12	; (Asum0 >> 15)
||	MPYH	.M2	B7,B9,B13	; p03 = h[i+3]*x[j+i+3]
||[A2]	ADD	.L1	A7,A10,A7	; sum0(p00) = p00 + sum0
||	MPYHL	.M1X	B7,A11,A10	; p13 = h[i+3]*x[j+i+4]
||	ADD	.L2X	A14,B4,B7	; sum1 += p11
||	LDW	.D2	*B14++[2],B7	;* h[i+2] & h[i+3]
||	LDW	.D1	*A0++[2],A8	;* h[i+0] & h[i+1]
||[B2]	SUB	.S2	B2,1,B2		; dec loop priming count

  	ADD	.L1	A10,A7,A13	; sum0 += p01
||	MPYHL	.M2X	A9,B10,B12	; p15 = h[i+5]*x[j+i+6]
||	MPYLH	.M1	A9,A11,A10	; p14 = h[i+4]*x[j+i+5]
||	ADD	.L2	B13,B7,B7	; sum1 +=  p12
||	LDW	.D2	*B1++[2],A11	;* x[j+i+4] & x[j+i+5]
||	LDW	.D1	*A4++[2],B10	;* x[j+i+6] & x[j+i+7]
||[A1]	SUB	.S1	A1,1,A1		;* dec pointer reset lp cntr
||[!B2]	SUB	.S2	B0,1,B0		; dec outer lp cntr

  [B0]	B	.S2	LOOP		; Branch outer loop
||	MPY	.M1	A9,A11,A11	; p04 = h[i+4]*x[j+i+4]
||	ADD	.L1X	B9,A13,A13	; sum0 += p02
||	MPYLH	.M2	B8,B10,B13	; p16 = h[i+6]*x[j+i+7]
||	ADD	.L2X	A10,B7,B7	; sum1 += p13
||	LDW	.D1	*A0++[2],A9	;* h[i+4] & h[i+5]
||	LDW	.D2	*B14++[2],B8	;* h[i+6] & h[i+7]
||[!A1]	SUB	.S1	A4,A3,A4	;* reset x ptr

  	MPY	.M2	B8,B10,B11	; p06 = h[i+6]*x[j+i+6]
||	MPYH	.M1	A9,A11,A11	; p05 = h[i+5]*x[j+i+5]
||	ADD	.L1X	B13,A13,A9	; sum0 += p03
||	ADD	.L2X	A10,B7,B7	; sum1 += p14
||[!A1]	SUB	.S2	B1,B5,B1	;* reset x ptr
||[!A1]	SUB	.S1	A0,A3,A0	;* reset h ptr
||	LDH	.D2	*B1,A8		;* x[j+i+8]
||[B2]	ADD	.D1	A5,1,A2		; set store lp cntr (N/8+1)

  [!A2]	MV	.S1	A5,A2		; reset store lp cntr (N/8)
||	MPYH	.M2	B8,B10,B13	; p07 = h[i+7]*x[j+i+7]
||	ADD	.L1	A11,A9,A9	; sum0 += p04
||	MPYHL	.M1X	B8,A8,A9	; p17 = h[i+7]*x[j+i+8]
||	ADD	.S2	B12,B7,B10	; sum1 += p15
||[!A2]	STH	.D2	B11,*B6++[2]	; y[j+1] = (Bsum1 >> 15)
||[!A2]	STH	.D1	A12,*A6++[2]	; y[j] = (Asum0 >> 15)
||	ADD	.L2X	A10,0,B8	;* move to other reg file

  	ADD	.L1	A11,A9,A12	; sum0 += p05
||	ADD	.L2	B13,B10,B8	; sum1 += p16
||	MPYLH	.M2X	A8,B8,B4	;* p10 = h[i+0]*x[j+i+1]
||[!A1]	SUB	.D2	B14,B5,B14	;* reset h ptr
||	MPYHL	.M1X	A8,B9,A14	;* p11 = h[i+1]*x[j+i+2]
||[!A1]	ADD	.S2	B1,4,B1		;* reset x ptr
||[!A1]	SUB	.S1	A0,4,A0		;* reset x ptr

  [!B2]	ADD	.L2X	A9,B8,B11	; sum1 += p17
||	ADD	.L1X	B11,A12,A12	; sum0 += p06
||	MPY	.M1	A8,A10,A7	;* p00 = h[i+0]*x[j+i+0]
||	MPYLH	.M2	B7,B9,B13	;* p12 = h[i+2]*x[j+i+3]
||[A2]	SUB	.D1	A2,1,A2		;* dec store lp cntr
||[!A1]	MV	.S1	A5,A1		;* reset pointer reset lp cntr (N/8)
||[B2]	ZERO	.D2	B11		; zero out initial accumulator

  [!B2]	ADD	.L1X	B13,A12,A10	; sum0 += p07
||[!A2]	SHR	.S2	B11,15,B11	;* (Bsum1 >> 15)
||	MPY	.M2	B7,B9,B9	;* p02 = h[i+2]*x[j+i+2]
||	MPYH	.M1	A8,A10,A10	;* p01 = h[i+1]*x[j+i+1]
||[A2]	ADD	.L2	B4,B11,B4	;* sum1(p10) = p10 + sum1
||	LDW	.D1	*A4++[2],B9	;** x[j+i+2] & x[j+i+3]
||	LDW	.D2	*B1++[2],A10	;** x[j+i+0] & x[j+i+1]
||[B2]	ZERO	.S1	A10		; zero out initial accumulator
	; Loop ends here

	SHR	.S1	A10,15,A12	; (Asum0 >> 15)
||	LDW	.D2	*++B15,A10	; pop register (for c-callable func)
||	MV	.L1X	B15,A15		; move stack pointer to A reg file

	STH	.D2	B11,*B6++[2]	; y[j+1] = (Bsum1 >> 15)
||	STH	.D1	A12,*A6++[2]	; y[j] = (Asum0 >> 15)

B_END:
*** END Benchmark Timing ***


	LDW	.D1	*++A15[2],B10	; pop register (for c-callable func)
||	LDW	.D2	*++B15[2],A11	; pop register (for c-callable func)

	LDW	.D1	*++A15[2],B11	; pop register (for c-callable func)
||	LDW	.D2	*++B15[2],A12	; pop register (for c-callable func)

	LDW	.D1	*++A15[2],B12	; pop register (for c-callable func)
||	LDW	.D2	*++B15[2],A13	; pop register (for c-callable func)

	LDW	.D1	*++A15[2],B13	; pop register (for c-callable func)
||	LDW	.D2	*++B15[2],A14	; pop register (for c-callable func)
||	B	.S2	B3		; return

	LDW	.D1	*++A15[2],B14	; pop register (for c-callable func)
||	LDW	.D2	*++B15[2],A15	; pop register (for c-callable func)

	NOP 4



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美一二区| 久久久久久久久99精品| 午夜一区二区三区视频| 一区二区高清视频在线观看| 中文字幕的久久| 久久色视频免费观看| 欧美一级搡bbbb搡bbbb| 欧美一区二区在线免费观看| 69精品人人人人| 日韩欧美电影在线| 日韩精品专区在线影院观看 | 美女视频黄 久久| 亚洲一二三区在线观看| 午夜精品影院在线观看| 美女诱惑一区二区| 国产一区二区主播在线| 国产成人精品三级| 91蝌蚪porny| 欧美理论在线播放| 日韩一级完整毛片| 国产精品乱码一区二区三区软件| 国产精品护士白丝一区av| 亚洲精品ww久久久久久p站| 亚洲国产精品嫩草影院| 精品一二线国产| 国产 欧美在线| 在线免费av一区| 在线电影欧美成精品| 久久精品视频免费| 一区二区三区四区五区视频在线观看| 亚洲国产成人精品视频| 韩国av一区二区三区| 色综合视频在线观看| 欧美岛国在线观看| 自拍偷拍亚洲激情| 精品亚洲欧美一区| 欧洲国产伦久久久久久久| 精品久久免费看| 亚洲三级在线看| 国模少妇一区二区三区| 99re成人精品视频| 久久影视一区二区| 亚欧色一区w666天堂| 国产69精品久久久久777| 欧美日韩美少妇| 国产精品美女久久久久久| 日韩—二三区免费观看av| av动漫一区二区| 26uuu另类欧美亚洲曰本| 亚洲综合在线观看视频| 国产91丝袜在线播放0| 欧美一区二区不卡视频| 亚洲女同一区二区| 高潮精品一区videoshd| 欧美一区二区三区四区五区 | 欧洲生活片亚洲生活在线观看| 精品欧美一区二区久久| 亚洲成a人v欧美综合天堂| 99久久精品国产导航| 国产欧美日韩亚州综合| 久久99国产精品久久99| 日韩一卡二卡三卡| 日韩激情在线观看| 欧美精品电影在线播放| 亚洲综合视频在线观看| 91久久国产综合久久| 亚洲男人的天堂在线观看| 成人午夜激情在线| 欧美国产精品一区二区| 国产精品小仙女| 国产日韩欧美麻豆| 国产美女在线观看一区| 26uuu国产日韩综合| 国产一区二区视频在线播放| 日韩精品中文字幕在线不卡尤物| 日韩电影在线一区| 欧美电视剧免费全集观看 | 日韩欧美国产成人一区二区| 日韩avvvv在线播放| 欧美一区二区三区四区久久 | 欧美成人激情免费网| 麻豆高清免费国产一区| 欧美成人高清电影在线| 久久av老司机精品网站导航| 精品国产免费久久| 国产精品一品视频| 综合久久久久综合| 欧美在线free| 五月天国产精品| 欧美xfplay| a在线欧美一区| 一区二区三区91| 91精品国产综合久久福利| 青青草国产精品97视觉盛宴| www成人在线观看| 99久久国产综合精品女不卡| 亚洲综合色噜噜狠狠| 欧美成人一区二区三区片免费| 激情五月激情综合网| 国产精品久久综合| 欧美日韩一二区| 国产美女精品一区二区三区| 国产精品网曝门| 精品视频999| 国产精品一区二区无线| 亚洲猫色日本管| 日韩欧美中文字幕精品| 成人国产在线观看| 日精品一区二区三区| 国产欧美一区二区精品性色| 欧洲一区在线观看| 国产一区二区毛片| 亚洲成人av免费| 国产精品天天看| 91精品久久久久久蜜臀| www.综合网.com| 久久国产剧场电影| 亚洲美女屁股眼交3| 久久影院午夜论| 538在线一区二区精品国产| 成人伦理片在线| 青青草国产成人99久久| 夜夜嗨av一区二区三区中文字幕| 欧美sm极限捆绑bd| 欧美日韩中文字幕精品| 99在线热播精品免费| 久久99精品国产麻豆婷婷洗澡| 亚洲男人的天堂一区二区| 久久影音资源网| 欧美一级国产精品| 在线精品国精品国产尤物884a| 国产成人综合在线| 琪琪一区二区三区| 夜夜嗨av一区二区三区网页| 国产精品亲子乱子伦xxxx裸| 精品国产区一区| 欧美一级黄色录像| 欧美日韩激情一区二区三区| av不卡免费电影| 大陆成人av片| 国产成人午夜视频| 国产精品99久久久久久有的能看| 美女脱光内衣内裤视频久久影院| 亚洲va国产天堂va久久en| 亚洲欧美日韩中文播放| 中文字幕在线一区| 国产精品天干天干在线综合| 国产亚洲欧美在线| 国产日产欧美一区二区视频| 精品精品国产高清一毛片一天堂| 欧美一区二区啪啪| 日韩色在线观看| 日韩欧美中文字幕一区| 精品国产乱码久久久久久牛牛| 欧美卡1卡2卡| 日韩一区二区三区在线| 日韩三级在线观看| 精品国产乱码久久久久久蜜臀| 欧美成人精品1314www| 亚洲精品在线免费观看视频| 久久久久久久综合日本| 国产女主播一区| 亚洲人成网站精品片在线观看| 有坂深雪av一区二区精品| 亚洲综合一区在线| 免费成人在线观看视频| 精品亚洲国产成人av制服丝袜| 狠狠色丁香婷综合久久| 国产大陆亚洲精品国产| 成人美女视频在线看| 欧美亚洲精品一区| 欧美日韩国产另类一区| 精品处破学生在线二十三| 国产精品蜜臀av| 亚洲国产美女搞黄色| 轻轻草成人在线| 成人亚洲一区二区一| 日本韩国一区二区| 精品伦理精品一区| 亚洲欧洲av色图| 日本午夜一本久久久综合| 国产精品一品二品| 欧美色涩在线第一页| 精品国产sm最大网站| 亚洲免费色视频| 精品一区二区三区免费视频| av亚洲精华国产精华精| 91精品国产综合久久久久久久久久| 精品国产百合女同互慰| 亚洲免费成人av| 国产福利一区二区三区视频| 色呦呦国产精品| 国产午夜三级一区二区三| 亚洲一区二区精品久久av| 国产乱人伦偷精品视频不卡| 欧美四级电影在线观看| 中文字幕欧美日本乱码一线二线| 午夜婷婷国产麻豆精品| 99久久婷婷国产| 久久久91精品国产一区二区精品|