28 |
* along with this program ; if not, write to the Free Software |
* along with this program ; if not, write to the Free Software |
29 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
30 |
* |
* |
31 |
* $Id: portab.h,v 1.28 2002-09-22 16:59:57 edgomez Exp $ |
* $Id: portab.h,v 1.31 2002-09-22 18:17:32 h Exp $ |
32 |
* |
* |
33 |
****************************************************************************/ |
****************************************************************************/ |
34 |
|
|
166 |
| msvc x86 specific macros/functions |
| msvc x86 specific macros/functions |
167 |
*---------------------------------------------------------------------------*/ |
*---------------------------------------------------------------------------*/ |
168 |
# if defined(ARCH_X86) |
# if defined(ARCH_X86) |
169 |
# define BSWAP(a) |
# define BSWAP(a) __asm mov eax,a __asm bswap eax __asm mov a, eax |
|
__asm { \ |
|
|
mov eax,a \ |
|
|
bswap eax \ |
|
|
mov a, eax \ |
|
|
} |
|
170 |
# define EMMS() __asm {emms} |
# define EMMS() __asm {emms} |
171 |
|
|
172 |
static __inline int64_t read_counter(void) |
static __inline int64_t read_counter(void) |
222 |
# endif /* _DEBUG */ |
# endif /* _DEBUG */ |
223 |
|
|
224 |
|
|
225 |
# ifdef _DEBUG |
|
226 |
# define DECLARE_ALIGNED_MATRIX(name,sizex,sizey,type,alignment) \ |
# define DECLARE_ALIGNED_MATRIX(name,sizex,sizey,type,alignment) \ |
227 |
type name##_storage[(sizex)*(sizey)+(alignment)-1]; \ |
type name##_storage[(sizex)*(sizey)+(alignment)-1]; \ |
228 |
type * name = (type *) (((ptr_t) name##_storage+(alignment - 1)) & ~((ptr_t)(alignment)-1)) |
type * name = (type *) (((ptr_t) name##_storage+(alignment - 1)) & ~((ptr_t)(alignment)-1)) |
|
# else |
|
|
# define DECLARE_ALIGNED_MATRIX(name,sizex,sizey,type,alignment) \ |
|
|
__attribute__ ((__aligned__(CACHE_LINE))) type name[(sizex)*(sizey)] |
|
|
# endif |
|
229 |
|
|
230 |
/*---------------------------------------------------------------------------- |
/*---------------------------------------------------------------------------- |
231 |
| gcc x86 specific macros/functions |
| gcc x86 specific macros/functions |
295 |
*---------------------------------------------------------------------------*/ |
*---------------------------------------------------------------------------*/ |
296 |
# elif defined(ARCH_SPARC) |
# elif defined(ARCH_SPARC) |
297 |
# define BSWAP(a) \ |
# define BSWAP(a) \ |
298 |
((a) = (((a) & 0xff) << 24) | (((a) & 0xff00) << 8) | |
((a) = (((a) & 0xff) << 24) | (((a) & 0xff00) << 8) | \ |
299 |
(((a) >> 8) & 0xff00) | (((a) >> 24) & 0xff)) |
(((a) >> 8) & 0xff00) | (((a) >> 24) & 0xff)) |
300 |
# define EMMS() |
# define EMMS() |
301 |
|
|
309 |
*---------------------------------------------------------------------------*/ |
*---------------------------------------------------------------------------*/ |
310 |
# elif defined(ARCH_MIPS) |
# elif defined(ARCH_MIPS) |
311 |
# define BSWAP(a) \ |
# define BSWAP(a) \ |
312 |
((a) = (((a) & 0xff) << 24) | (((a) & 0xff00) << 8) | |
((a) = (((a) & 0xff) << 24) | (((a) & 0xff00) << 8) | \ |
313 |
(((a) >> 8) & 0xff00) | (((a) >> 24) & 0xff)) |
(((a) >> 8) & 0xff00) | (((a) >> 24) & 0xff)) |
314 |
# define EMMS() |
# define EMMS() |
315 |
|
|