📄 amf_delayoffchip_render.asm
字号:
// Copyright(c) 2005 Analog Devices, Inc. All Rights Reserved. ADI Confidential.
// Module Name : AMF_DelayOffChip_Render.asm
// DSP Processor : ADSP21367
// Description : Delay off chip audio module ASM file.
// Owner : Analog Devices
// Original Author : Tim Stilson
// Date : 7/26/05
//====================================================================================
// Processor resources used:
// words pmem INTERNAL
// cycles (off-chip delay buf, 21367 AVR) (TickSize=64) ( + *tickSize)
// (SIMD used)
//====================================================================================
#if 1
#include "processor.h"
#include "asm_sprt.h"
#include "AudioProcessing.h"
.import "AMF_DelayOffChip.h";
// global routines
.global _AMF_DelayOffChip_Render; ;
.segment /pm SEG_MOD_FAST_CODE;
_AMF_DelayOffChip_Render:
// push context on stack
r0=i2; puts=r0;
r0=i0; puts=r0;
i4=r8; // i4->*buffers
// initialize input and output samples pointers
i0=dm(0,i4); // i1->buffers[0], input
i2=dm(1,i4); // i2->buffers[1], output
i4=r4; //i4->testModuleInstance[0]
// initialize delay buffer pointer
l12=dm(OFFSETOF(AMF_DelayOffChip,delay),i4); // length of delay buffer in samples
b12=dm(OFFSETOF(AMF_DelayOffChip,delayBuffer),i4); // buffer base
r1=dm(OFFSETOF(AMF_DelayOffChip,delayWritePtr),i4); // current delay pointer
i12=r1;
// copy from delay buff into output
r0=pm(i12,m14); // r0 = delay[index++];
lcntr=r12, do AMF_DelayOffChip_Loop1 until lce;
AMF_DelayOffChip_Loop1:
dm(i2,m6)=r0, r0=pm(i12,m14); // out[i++] = r0, r0 = delay[index++];
// copy from input into delay buff
i12=r1; // reset back to start of tick
r0=dm(i0,m6); // r0 = in[i++];
lcntr=r12, do AMF_DelayOffChip_Loop2 until lce;
AMF_DelayOffChip_Loop2:
r0=dm(i0,m6), pm(i12,m14)=r0; // delay[index++] = r0, r0 = in[i++];
l12 = 0;
r0=i12;
dm(OFFSETOF(AMF_DelayOffChip,delayWritePtr),i4)=r0; // store away current delay pointer
// pop context off stack
i0=gets(1);
i2=gets(2);
alter(2);
//------------------------------------------------------------------------------------
_AMF_DelayOffChip_Render.END:
leaf_exit; // C-rth requires this instead of rts
//------------------------------------------------------------------------------------
.endseg;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -