In order to clarify the interface between the Lattice C Compiler and its associated libraries, I have put together a list of all "CX" routines used by the compiler. These routines are functions that are contained in the Lattice libraries, but are not callable by the C programmer. Calls to these routines are automatically generated by the compiler when their functionality is needed. *** Do not attempt to call any of these functions in a C program. *** These routines assume arguments in specific registers where the compiler knows to place them, and return results in specific registers where the compiler expects them. The following internal CX routines are contained in the Lattice standard C library in all forms. CXBRK - Default Control-C break handler CXD22 - Divide an unsigned long by another CXD33 - Divide a signed long by another CXFERR - Floating point error handler (historical) CXM22 - Multiply two unsigned longs CXM33 - Multiply two signed longs The following internal CX routines are contained in the Lattice math library in all forms. CXA55 - Add two doubles CXADJ4 - Adjust float after multiply/divide CXADJ5 - Adjust double after multiply/divide CXC55 - Compare two doubles CXD55 - Divide one double by another CXFERR - Floating point error handler CXFNM5 - Normalize double in significand form CXFXT5 - Extra exponent/significand for double CXIND4 - Float Indefinite handler CXIND5 - Double Indefinite handler CXINF4 - Float Infinity handler CXINF5 - Double Infinity handler CXM55 - Multiply two doubles CXN5 - Negate a double CXNAN4 - Not-A-Number float handler CXNAN5 - Not-A-Number double handler CXNRM4 - Normalize a float CXNRM5 - Normalize a double CXOVF4 - Float overflow handler CXOVF5 - Double overflow handler CXREN4 - Renormalize denormalized float CXREN5 - Renormalize denormalized double CXRTN4 - Repack and return float CXS55 - Subtract one double from another CXT5 - Test double against zero CXTAB5 - Double normalization table CXUNF4 - Float underflow handler CXUNF5 - Double underflow handler CXV24 - Convert unsigned long to float CXV25 - Convert unsigned long to double CXV34 - Convert signed long to float CXV35 - Convert signed long to double CXV42 - Convert float to unsigned long CXV43 - Convert float to signed long CXV45 - Convert float to double CXV52 - Convert double to unsigned long CXV53 - Convet double to signed long CXV54 - Convert double to float CXVDF - Convert decimal string to double CXVFD - Convert double to decimal string CXVSD - Convert decimal string to double CXZER4 - Float handler for zero CXZER5 - Double handler for zero In all current Lattice compiler releases, these functions are in the ANSI user name space. The next Lattice release will have an underscore prepended to each name to remove these functions from the user name space.