reman3/Rayman_X/cpa/public/TDE/tde_wop1616.h

115 lines
2.8 KiB
C

/********************************************
WOP1616.h
Watcom basic OPerations for 16:16 format
*********************************************/
/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You must do :
#define TDE_GLOBALS
in one (and only one) .c file of your Module.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
/* To avoid unnecessary includes : */
#ifndef __TDE_WOP1616_H
#define __TDE_WOP1616_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* For DLLs who are using this module : */
#undef CPA_EXPORT
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif
/* For Global declaration in C files : */
#ifndef TDE_GLOBALS
#define __TDE_EXTERN extern
#else /* !TDE_GLOBALS */
#define __TDE_EXTERN
#endif /* !TDE_GLOBALS */
/*
-----------------------------------------------------------------------------
INCLUDES FILES :
Include here any other header files of your module you need !
Ex :
#include "toto.h"
Note : Do Not include header files from other Modules (do this in C files
only)
-----------------------------------------------------------------------------
*/
/*
-----------------------------------------------------------------------------
CONSTANT DECLARATION:
Ex :
#define TDE_C_LMAX 100
-----------------------------------------------------------------------------
*/
/*
-----------------------------------------------------------------------------
TYPES DEFINITION :
Declare here any type you need, and constant you need to do this :
Ex : typedef struct TDE_tdstToto_
{
long aLMAX_lBuffer[TDE_C_LMAX];
...
} TDE_tdst_Toto ;
-----------------------------------------------------------------------------
*/
/*
-----------------------------------------------------------------------------
GLOBAL VARIABLE DECLARATION :
Ex :
__TDE_EXTERN <type> <variable name>
#ifdef TDE_GLOBALS
= <initial values>
#endif
;
-----------------------------------------------------------------------------
*/
/*
-----------------------------------------------------------------------------
FUNCTIONS DECLARATION:
-----------------------------------------------------------------------------
*/
long TDE_MUL (long A,long B);
#pragma aux TDE_MUL = \
"imul ebx" \
"shrd eax,edx,16" \
parm [eax] [ebx] \
value [eax] \
modify [edx];
long TDE_DIV (long A,long B);
#pragma aux TDE_DIV = \
"xor eax,eax" \
"shrd eax,edx,16" \
"sar edx,16" \
"idiv ebx" \
parm [edx] [ebx] \
value [eax];
#ifdef __cplusplus
};
#endif /* __cplusplus */
#endif /* __TDE_WOP1616_H */