📄 prototype.c
字号:
/* *** Copyright Freescale Semiconductor, Inc, 2005 *** */
/********************************************************************
Predefined basic intrinsics.
Builtin support for these function is implemented in the
compiler code generator
On hosted systems this file implements the fractional type
emulation of the built in functions.
********************************************************************/
#include "prototype.h"
/*Conditionnal replacement of prototype functions */
/* _ENTERPRISE_C_ is always defined by scc/IDE, and may appear in customers applications*/
/* _CW_NO_PROTO_REPLACE_ can be defined to prevent replacement of prototype functions */
/*Replacement performed iff first defined, second undefined. Otherwise use definitions */
/*in prototype.c */
#ifdef _ENTERPRISE_C_
#ifndef _CW_NO_PROTO_REPLACE_
#ifndef _CW_X_PROTO_
#define _CW_X_PROTO_
#endif
#endif
#endif
#ifdef _CW_X_PROTO_
/*___________________________________________________________________________
| |
| Functions:
| Pre-defined intrinsics |
|___________________________________________________________________________|
*/
Word32 add2 (Word32 var1, Word32 var2) {return 0;}
Word32 sub2 (Word32 var1, Word32 var2) {return 0;}
Word32 max2 (Word32 var1, Word32 var2) {return 0;}
Word32 min2 (Word32 var1, Word32 var2) {return 0;}
Word16 add (Word16 var1, Word16 var2) {return 0;}
Word16 sub (Word16 var1, Word16 var2) {return 0;}
Word16 abs_s (Word16 var1) {return 0;}
Word16 shl (Word16 var1, Word16 var2) {return 0;}
Word16 shl_nosat (Word16 var1, Word16 var2) {return 0;}
Word16 shr (Word16 var1, Word16 var2) {return 0;}
Word16 shr_nosat (Word16 var1, Word16 var2) {return 0;}
Word16 mult (Word16 var1, Word16 var2) {return 0;}
Word16 mult_nomac (Word16 var1, Word16 var2) {return 0;}
Word32 L_mult (Word16 var1, Word16 var2) {return 0;}
Word32 L_mult_nomac (Word16 var1, Word16 var2) {return 0;}
Word16 negate (Word16 var1) {return 0;}
Word16 extract_h (Word32 L_var1) {return 0;}
Word16 extract_l (Word32 L_var1) {return 0;}
Word16 round (Word32 L_var1) {return 0;}
Word16 max (Word16 var1, Word16 var2) {return 0;}
Word16 min (Word16 var1, Word16 var2) {return 0;}
Word16 maxm (Word16 var1, Word16 var2) {return 0;}
Word16 saturate (Word32 L_var1) { return 0;}
Word32 div_iter (Word32 var1, Word16 var2) { return 0;}
Word32 L_add (Word32 L_var1, Word32 L_var2) {return 0;}
Word32 L_sub (Word32 L_var1, Word32 L_var2) {return 0;}
Word32 L_negate (Word32 L_var1) {return 0;}
Word16 mult_r (Word16 var1, Word16 var2) {return 0;}
Word32 L_shl (Word32 L_var1, Word16 var2) {return 0;}
Word32 L_shl_nosat (Word32 L_var1, Word16 var2) {return 0;}
Word32 L_shr (Word32 L_var1, Word16 var2) {return 0;}
Word32 L_shr_nosat (Word32 L_var1, Word16 var2) {return 0;}
Word32 L_deposit_h (Word16 var1) {return 0;}
Word32 L_deposit_l (Word16 var1) {return 0;}
Word32 L_abs (Word32 L_var1) {return 0;}
Word16 norm_s (Word16 var1) {return 0;}
Word16 neg_norm_s (Word16 var1) {return 0;}
Word16 norm_l (Word32 L_var1) {return 0;}
Word16 neg_norm_l (Word32 L_var1) {return 0;}
Word32 L_max (Word32 L_var1, Word32 L_var2) {return 0;}
Word32 L_min (Word32 L_var1, Word32 L_var2) {return 0;}
Word32 L_maxm (Word32 L_var1, Word32 L_var2) {return 0;}
Word32 L_sat (Word32 L_var1) { return 0;}
void setsat32() { }
void setnosat() { }
void set2crm() { }
void setcnvrm() { }
void trap_r(void * Par) {}
int trap_d(int Par) {return 0;}
void trap0_r(void * Par) {}
void trap1_r(void * Par) {}
void trap2_r(void * Par) {}
void trap3_r(void * Par) {}
int trap0_d(int Par) {return 0;}
int trap1_d(int Par) {return 0;}
int trap2_d(int Par) {return 0;}
int trap3_d(int Par) {return 0;}
void ei() {}
void di() {}
void * Ovl_Load_Address(void * Symb_Addr) {return Symb_Addr;}
void Set_Overflow(Word32 Value) {}
int Get_Overflow() {return 0;}
int Test_Overflow() {return 0;}
Word32 Clip(Word32 Value, Word32 mask) {return 0;}
Word32 Extract(Word32 Val, UWord32 Mask) {return 0;}
UWord32 ExtractU(UWord32 Val, UWord32 Mask) {return 0;}
Word32 Extract_reg(Word32 Val, UWord32 Mask) {return 0;}
UWord32 ExtractU_reg(UWord32 Val, UWord32 Mask) {return 0;}
int readSR(void) {return 0;}
void writeSR(int Val) {}
void *readOSP(void) {return 0;}
void writeOSP(void *Val) {}
void setPPL(int Val) {}
void clearSRbit(int bitmask) {}
void setSRbit(int bitmask) {}
void cw_assert(int a) {}
int br_swap(int index, int max_val) {return 0;}
/* Warning here we use the _ prefix since br_inc(a, b) is redefined as br_inc(a, b<<1) in prototype.h */
int _br_inc(int index, int max_val) {return 0;}
/* int br_inc_nu(int index, int max_val, int step) {return 0;} */
/*****************************************************/
/* Double precision fractional arithmetic primitives */
/*****************************************************/
Word64 D_set(Word32 left , UWord32 right)
{
Word64 local = {0,0}; return local;
}
Word32 D_get_msb(Word64 Val)
{
return Val.msb;
}
Word32 D_get_lsb(Word64 Val)
{
return Val.lsb;
}
#ifdef _CW_X_SLLD_
Word32 LL_get_msb(Int64 Val)
{
return (Val>>32);
}
UWord32 LL_get_lsb(Int64 Val)
{
return Val;
}
Word32 Db_get_msb(double Val)
{
union {
Int64 L;
double D;
} X;
X.D = Val;
return (X.L>>32);
}
UWord32 Db_get_lsb(double Val)
{
union {
Int64 L;
double D;
} X;
X.D = Val;
return (X.L);
}
Int64 Db_to_LL(double Val)
{
union {
Int64 L;
double D;
} X;
X.D = Val;
return (X.L);
}
double LL_to_Db(Int64 Val)
{
union {
Int64 L;
double D;
} X;
X.L = Val;
return (X.D);
}
#endif
Word64 D_add (Word64 D_var1, Word64 D_var2)
{
Word64 local = {0,0}; return local;
}
Word64 D_add_opt (Word64 D_var1, Word64 D_var2)
{
Word64 local = {0,0}; return local;
}
Word64 D_sub (Word64 D_var1, Word64 D_var2)
{
Word64 local = {0,0}; return local;
}
Word64 D_mult (Word32 L_var1, Word32 L_var2 )
{
Word64 local = {0,0}; return local;
}
Word64 D_mult_opt (Word32 L_var1, Word32 L_var2 )
{
Word64 local = {0,0}; return local;
}
Word32 D_mult_msp (Word32 L_var1, Word32 L_var2 )
{
Word32 local = 0; return local;
}
int D_cmpeq (Word64 D_var1, Word64 D_var2) { return 0; }
int D_cmpgt (Word64 D_var1, Word64 D_var2) { return 0; }
Word64 D_sat (Word64 D_var1)
{
Word64 local = {0,0}; return local;
}
Word32 D_round (Word64 D_var1) { return 0; }
Word16 norm_ll (Word64 L_var1) {return 0;}
Word16 neg_norm_ll (Word64 L_var1) {return 0;}
/*****************************************************/
/* Extended precision fractional arithmetic primitives */
/*****************************************************/
Word40 X_set(Word32 guard, UWord32 body)
{
Word40 local = {0,0}; return local;
}
Word40 X_extend (Word32 var1)
{
Word40 local = {0,0}; return local;
}
Word16 X_extract_h (Word40 var1) { return 0; }
Word16 X_extract_l (Word40 var1) { return 0; }
Word16 X_round (Word40 var1) { return 0; }
Word16 X_norm (Word40 var1) { return 0; }
Word32 X_trunc (Word40 var1) { return 0; }
Word32 X_guard (Word40 var1) { return 0; }
Word40 X_add (Word40 var1, Word40 var2)
{
Word40 local = {0,0}; return local;
}
Word40 X_sub (Word40 var1, Word40 var2)
{
Word40 local = {0,0}; return local;
}
Word40 X_mult (Word16 var1, Word16 var2)
{
Word40 local = {0,0}; return local;
}
Word40 X_shl (Word40 var1, Word16 var2)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -