⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prototype.c

📁 OFDMA 物理层开发的matlab 源码.飞思卡尔提供.对物理层开发的工程师有帮助!
💻 C
📖 第 1 页 / 共 5 页
字号:

/* *** 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 + -