www.pudn.com > g7231codec.rar > basop.h


 
 
/*________________________________________________________ 
___________________ 
 | 
                  | 
 |   Constants and Globals 
                  | 
 
|_________________________________________________________ 
__________________| 
*/ 
extern int Overflow; 
extern int Carry; 
 
#define MAX_32 (int)0x7fffffffL 
#define MIN_32 (int)0x80000000L 
 
#define MAX_16 (short)0x7fff 
#define MIN_16 (short)0x8000 
 
/*________________________________________________________ 
___________________ 
 | 
                  | 
 |   Operators prototypes 
                  | 
 
|_________________________________________________________ 
__________________| 
*/ 
 
short add(short var1, short var2);     /* Short add,           1 */ 
short sub(short var1, short var2);     /* Short sub,           1 */ 
short abs_s(short var1);                /* Short abs,           1 */ 
short shl(short var1, short var2);     /* Short shift left,    1 */ 
short shr(short var1, short var2);     /* Short shift right,   1 */ 
short mult(short var1, short var2);    /* Short mult,          1 */ 
int   L_mult(short var1, short var2);  /* Long mult,           1 */ 
short negate(short var1);               /* Short negate,        1 */ 
short extract_h(int L_var1);          /* Extract high,        1 */ 
short extract_l(int L_var1);          /* Extract low,         1 */ 
short round(int L_var1);              /* Round,               1 */ 
int   L_mac(int L_var3, short var1, short var2); /* Mac,    1 */ 
int   L_msu(int L_var3, short var1, short var2); /* Msu,    1 */ 
int   L_macNs(int L_var3, short var1, short var2);/*[Mac without sat,  
1*/ 
int   L_msuNs(int L_var3, short var1, short var2);/* Msu without sat,  
1*/ 
 
int   L_add(int L_var1, int L_var2);   /* Long add,        2 */ 
int   L_sub(int L_var1, int L_var2);   /* Long sub,        2 */ 
int   L_add_c(int L_var1, int L_var2); /*Long add with c,  2 */ 
int   L_sub_c(int L_var1, int L_var2); /*Long sub with c,  2 */ 
int   L_negate(int L_var1);               /* Long negate,     2 */ 
short mult_r(short var1, short var2);  /* Mult with round,     2 */ 
int   L_shl(int L_var1, short var2); /* Long shift left,     2 */ 
int   L_shr(int L_var1, short var2); /* Long shift right,    2 */ 
short shr_r(short var1, short var2);/* Shift right with round, 2 */ 
short mac_r(int L_var3, short var1, short var2);/* Mac with rounding,  
2*/ 
short msu_r(int L_var3, short var1, short var2);/* Msu with rounding,  
2*/ 
int   L_deposit_h(short var1);       /* 16 bit var1 -> MSB,     2 */ 
int   L_deposit_l(short var1);       /* 16 bit var1 -> LSB,     2 */ 
 
int   L_shr_r(int L_var1, short var2);/* Long shift right with round,  
 3*/ 
int   L_abs(int L_var1);            /* Long abs,              3 */ 
 
int   L_sat(int L_var1);            /* Long saturation,       4 */ 
 
short norm_s(short var1);             /* Short norm,           15 */ 
 
short div_s(short var1, short var2); /* Short division,       18 */ 
 
short norm_l(int L_var1);           /* Long norm,            30 */ 
 
 
/* 
   Additional operators 
*/ 
int L_mls( int, short ) ;        /* Wght ?? */ 
short div_l( int, short ) ; 
short i_mult(short a, short b);