/*****************************************************************************/
/*  C6X.H v3.01                                                             */
/*  Copyright (c) 1996-1999 Texas Instruments Incorporated                   */
/*****************************************************************************/

unsigned _extu	  (unsigned, unsigned, unsigned);
int      _ext	  (int,      unsigned, unsigned);
unsigned _set	  (unsigned, unsigned, unsigned);
unsigned _clr	  (unsigned, unsigned, unsigned);
unsigned _extur	  (unsigned, int);
int      _extr	  (int,      int);
unsigned _setr	  (unsigned, int);
unsigned _clrr	  (unsigned, int);
int      _sadd	  (int,      int);
long     _lsadd	  (int,      long);
int	 _ssub	  (int,      int);
long	 _lssub	  (int,      long);
int      _sshl	  (int,      unsigned);
int	 _add2	  (int,      int);
int	 _sub2	  (int,      int);
unsigned _subc	  (unsigned, unsigned);
unsigned _lmbd	  (unsigned, unsigned);
int      _abs	  (int);
long     _labs	  (long);
int      _sat	  (long);
unsigned _norm	  (int);
unsigned _lnorm	  (long);
int	 _smpy	  (int,      int);
int	 _smpyhl  (int,      int);
int	 _smpylh  (int,      int);
int	 _smpyh	  (int,      int);
int	 _mpy	  (int,      int);
int	 _mpyus	  (unsigned, int);
int	 _mpysu	  (int,      unsigned);
unsigned _mpyu	  (unsigned, unsigned);
int	 _mpyhl	  (int,      int);
int	 _mpyhuls (unsigned, int);
int	 _mpyhslu (int,      unsigned);
unsigned _mpyhlu  (unsigned, unsigned);
int	 _mpylh	  (int,      int);
int	 _mpyluhs (unsigned, int);
int	 _mpylshu (int,      unsigned);
unsigned _mpylhu  (unsigned, unsigned);
int	 _mpyh	  (int,      int);
int	 _mpyhus  (unsigned, int);
int	 _mpyhsu  (int,      unsigned);
unsigned _mpyhu	  (unsigned, unsigned);

int    	 _spint   (float);
int    	 _dpint   (double);
float  	 _rcpsp   (float);
double 	 _rcpdp   (double);
float  	 _rsqrsp  (float);
double 	 _rsqrdp  (double);

unsigned _hi(double);  /* return the hi 32 bits of a double as an int */
unsigned _lo(double);  /* return the lo 23 bits of a double as an int */
  
double 	 _itod(unsigned, unsigned);  /* Create a double from 2 ints */
float  	 _itof(unsigned);            /* Create a float from an int */
unsigned _ftoi(float);               /* Create an int from a float */

extern cregister volatile unsigned int AMR;
extern cregister volatile unsigned int CSR;
extern cregister volatile unsigned int IFR;
extern cregister volatile unsigned int ISR;
extern cregister volatile unsigned int ICR;
extern cregister volatile unsigned int IER;
extern cregister volatile unsigned int ISTP;
extern cregister volatile unsigned int IRP;
extern cregister volatile unsigned int NRP;
extern cregister volatile unsigned int IN;
extern cregister volatile unsigned int OUT;
