⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 amf_volumecontrol_render.asm

📁 ADI SHARC DSP 音频算法标准模块库
💻 ASM
字号:
#include <processor.h>
#include<asm_sprt.h>
#include "AMF_VolumeControl.h"

.segment /pm SEG_MOD_FAST_CODE;

.global _AMF_VolumeControl_Render;
	
_AMF_VolumeControl_Render:

leaf_entry;
	f0 = i0; puts = f0;	
	f0 = i1; puts = f0;
	puts = i8;
	f0 = b0; puts = f0;	
	
	puts = r5;
	// used for multiplier y operand in smoothing
	puts = r9;
	puts = r10;
	// used for ticksize n then inside peaking loop
	
	
	f0 = l0; puts = f0;
	f0 = l4; puts = f0;
	
	i4 = f4; // copied to b4 and i4 &instance
	
	puts = l12;
	puts = l13; //moved here to prevent latency
	
	
	
	i0 = dm(AMF_VolumeControl_coefsTarget_low,i4);
	b12 = dm(AMF_VolumeControl_coefs_low,i4);
	l12 = 4;

	r10 = pass r12,	f0 = dm(AMF_VolumeControl_coefsSmoothing,i4); //rate
	  //r10 has ticksize
	
	 
	i1 = dm(AMF_VolumeControl_coefsTarget_high,i4);
	b13 = dm(AMF_VolumeControl_coefs_high,i4);
	l13 = 4;
	m12 = 2;
	
	f1 = 1.0;
	f1 = f1 - f0, f4 = dm(i0,m6), f5 = pm(i12,m14); // One Minurate & coefTargetlow & coeflow
	
	f12 = f1 * f5, f5 = pm(i13, m14);
	f9 = f0 * f4, f4 = dm(i1,m6);
	
	lcntr = 4, do adi_vc_smooth_loop until lce;
	f12 = f1 * f5, f2 = f9 + f12, f5 = pm(i12,m15);
	f9 = f0 * f4, f4 = dm(i0,m6), pm(i12,m12) = f2;
	f12 = f1 * f5, f2 = f9 + f12, f5 = pm(i13,m15);
adi_vc_smooth_loop:	f9 = f0 * f4, f4 = dm(i1,m6), pm(i13,m12) = f2;
	
	i1 = f8;
	// buffer - input at [i1] and output at [i1+1]
	i8 = dm(0,i1); //input
	i1 = dm(1,i1); //output
	
	r2 = r10 - 1; // ticksize - 1 for count
	modify(i4,AMF_VolumeControl_state_low);
	b0 = i4; // i0 is state_low
	modify(i4,2); // m12 = 2
	b4 = i4; // i4 is state_high

	l0 = 2;
	l4 = 2;
	
													f8 = pm(i8,m14);
									f0 = dm(i0,m6),	f4 = pm(i12,m15);
	f12 = f0 * f4, 					f0 = dm(i0,m6),	f4 = pm(i12,m15);
	f12 = f0 * f4, f10 = f8 - f12, f0 = dm(i0,m5),	f4 = pm(i12,m15);
	f9 = f0 * f4, f1 = f10 - f12, f4 = pm(i12,m15);

	lcntr = r2, do adi_vc_peakin_loop until lce;
	f9 = f1 * f4, f12 = f9 + f12, f0 = dm(i4,m6), f4 = pm(i13,m15);
	f12 = f0 * f4, f9 = f9 + f12, f0 = dm(i4,m6), f4 = pm(i13,m15);
	f12 = f0 * f4, f10 = f8 - f12, dm(i0,m6) = f1, f8 = pm(i8,m14);	
				   f1 = f10 - f12, f0 = dm(i4,m5), f4 = pm(i13,m15);
	f12 = f0 * f4, f9 = f9 + f12, dm(i4,m6) = f1, f4 = pm(i13,m15);
	f12 = f1 * f4, f9 = f9 + f12, f0 = dm(i0,m6), f4 = pm(i12,m15);
	f12 = f0 * f4, f9 = f9 + f12, f0 = dm(i0,m6), f4 = pm(i12,m15);
	f12 = f0 * f4, f10 = f8 - f12, f0 = dm(i0,m5), f4 = pm(i12,m15);
adi_vc_peakin_loop:
	f9 = f0 * f4, f1 = f10 - f12, dm(i1,m6) = f9, f4 = pm(i12,m15);
	
	f9 = f1 * f4, f12 = f9 + f12, f0 = dm(i4,m6), f4 = pm(i13,m15);
	f12 = f0 * f4, f9 = f9 + f12, f0 = dm(i4,m6), f4 = pm(i13,m15);
	
	f12 = f0 * f4, f10 = f8 - f12, dm(i0,m6) = f1;
				   f1 = f10 - f12, f0 = dm(i4,m5), f4 = pm(i13, m15);
	f12 = f0 * f4, f9 = f9 + f12, dm(i4,m6) = f1, f4 = pm(i13,m15);
	f12 = f1 * f4, f9 = f9 + f12;
				   f9 = f9 + f12;
								  dm(i1,m6) = f9;
	
	l13 = gets(1);
	l12 = gets(2);
	l4 = gets(3);
	l0 = gets(4);
	r10 = gets(5);
	r9 = gets(6);
	r5 = gets(7);
	b0 = gets(8);	 
	i8 = gets(9);
	i1 = gets(10);
 	i0 = gets(11);
 	alter(11);
leaf_exit;

_AMF_VolumeControl_Render.END:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -