📄 g7231_basop.c
字号:
#include "typedef.h"
#include "G7231_BASOP.H"
#include <intrindefs.h>
#include <stdlib.h>
Word32 G7231L_mls( Word32 Lv, Word16 v )
{
Word32 Temp ;
#ifdef C54X_MODE
Temp = c54_mpyus(Lv,(Word32)v );
Temp = c54_sshvr(Temp, 15);
return c54_sadd(Temp, c54_smpylh(v,Lv));
#else
Temp = _mpyus(Lv, (Word32)v);
Temp = _sshvr(Temp, 15);
return _sadd(Temp, _smpylh(v, Lv));
#endif
}
Word16 G7231div_l( Word32 L_num, Word16 den )
{
Word16 var_out = (Word16)0;
Word32 L_den;
Word16 iteration;
Word32 L_result;
L_den = (Word32) den << 16;
if ( L_num >= L_den )
{
return G7231MAX_16 ;
}
else
{
#ifdef C54X_MODE
L_num = c54_sshvr((Word32)L_num, (Word32)1);
L_den = c54_sshvr((Word32)L_den, (Word32)1);
#else
L_num = _sshvr((Word32)L_num, (Word32)1);
L_den = _sshvr((Word32)L_den, (Word32)1);
#endif
for(iteration=(Word16)0; iteration< (Word16)15;iteration++)
{
#ifdef C54X_MODE
L_result = c54_sshvl((Word32)var_out, (Word32)1);
var_out = (Word16)c54_spack2(L_result,L_result);
L_num = c54_sshvl(L_num,(Word32)1);
#else
L_result = _sshvl((Word32)var_out, (Word32)1);
var_out = (Word16)_spack2(L_result, L_result);
L_num = _sshvl(L_num,(Word32)1);
#endif
if (L_num >= L_den)
{
#ifdef C54X_MODE
L_num = c54_ssub(L_num, L_den);
var_out = (Word16)c54_sadd2((Word32) var_out,(Word32)1);
#else
L_num = _ssub(L_num, L_den);
var_out = (Word16)_sadd2((Word32) var_out,(Word32)1);
#endif
}
}
return var_out;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -