📄 amf_clipsym_render.asm
字号:
// Copyright(c) 2005 Analog Devices, Inc. All Rights Reserved.
// This software is proprietary and confidential to Analog Devices, Inc. and its licensors.
// File : $Id: //depot/development/visualaudio/modules/2.5.0/SHARC/Source/AMF_ClipSym_Render.asm#3 $
// Part of : VisualAudio V2.5.0
// Updated : $Date: 2006/10/12 $ by $Author: Fernando $
// Module Name : AMF_ClipSym.asm
// DSP Processor : ADSP21161
// Original Author : Sean Costello
// Date : 2/19/04
//====================================================================================
// Processor resources used:
// 26 words pmem INTERNAL
// 152 cycles, tickSize=128 (24 + 2*tickSize/2)
//====================================================================================
#if 1
#include "processor.h"
#include "AMF_ClipSym.h"
#include "asm_macros.h"
#include "asm_sprt.h"
.global _AMF_ClipSym_Render; ;
.segment /pm SEG_MOD_FAST_CODE;
_AMF_ClipSym_Render:
//====================================================================================
entry;
//module entry arguments passed in registers:
// r4 = instance (AMF_ClipSym * restrict)
// r8 = * buffers (float * restrict)
// r12 = int tickSize
puts=mode1;
r0=i0; puts=r0;
r0=i1; puts=r0;
r0=lshift r12 by -1; // half loop count for SIMD
// tickSize now passed in r12
m4=2; // SIMD loop increment
i4=r4; // i4->instance
f2=dm(AMF_ClipSym_ClipValue,i4); // f2= float ClipValue = instance->clipValue
s2=f2;
i4=r8; // i4->*buffers
bit set mode1 PEYEN; // Enable PEy:SIMD
i0=dm(0,i4); // i0=float *in
i1=dm(1,i4); // i1=float *out
f1=dm(i0,m4); // f1=in[0]
AMF_ClipSym_Render_loop_start:
// for (i=0; i<tickSize; i++)
LCNTR=r0, DO AMF_ClipSym_Render_loop_end UNTIL LCE;
f0=CLIP f1 BY f2, f1=dm(i0,m4); // f0=clip in[i] by amp, f1=in1[i++]
AMF_ClipSym_Render_loop_end:
dm(i1,m4)=f0; // out[i++]=f0
bit clr mode1 PEYEN; // Disable PEy:SIMD
//====================================================================================
i1=gets(1);
i0=gets(2);
mode1=gets(3);
alter(3);
//------------------------------------------------------------------------------------
_AMF_ClipSym_Render.END:
leaf_exit; // C-rth requires this instead of rts
//------------------------------------------------------------------------------------
.endseg;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -