📄 amf_volumecontrol_render.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 + -