151 |
/*---------------------------------------------------------------------------- |
/*---------------------------------------------------------------------------- |
152 |
| msvc x86 specific macros/functions |
| msvc x86 specific macros/functions |
153 |
*---------------------------------------------------------------------------*/ |
*---------------------------------------------------------------------------*/ |
154 |
# if defined(ARCH_IS_IA32) |
# if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64) |
155 |
# define BSWAP(a) __asm mov eax,a __asm bswap eax __asm mov a, eax |
# define BSWAP(a) __asm mov eax,a __asm bswap eax __asm mov a, eax |
156 |
|
|
157 |
static __inline int64_t read_counter(void) |
static __inline int64_t read_counter(void) |
234 |
/*---------------------------------------------------------------------------- |
/*---------------------------------------------------------------------------- |
235 |
| gcc IA32 specific macros/functions |
| gcc IA32 specific macros/functions |
236 |
*---------------------------------------------------------------------------*/ |
*---------------------------------------------------------------------------*/ |
237 |
# if defined(ARCH_IS_IA32) |
# if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64) |
238 |
# define BSWAP(a) __asm__ ( "bswapl %0\n" : "=r" (a) : "0" (a) ); |
# define BSWAP(a) __asm__ ( "bswapl %0\n" : "=r" (a) : "0" (a) ); |
239 |
|
|
240 |
static __inline int64_t read_counter(void) |
static __inline int64_t read_counter(void) |
250 |
| gcc PPC and PPC Altivec specific macros/functions |
| gcc PPC and PPC Altivec specific macros/functions |
251 |
*---------------------------------------------------------------------------*/ |
*---------------------------------------------------------------------------*/ |
252 |
# elif defined(ARCH_IS_PPC) |
# elif defined(ARCH_IS_PPC) |
253 |
|
|
254 |
|
# if defined(HAVE_ALTIVEC_PARENTHESES_DECL) |
255 |
|
# define AVV(x...) (x) |
256 |
|
# elif defined(HAVE_ALTIVEC_BRACES_DECL) |
257 |
|
# define AVV(x...) {x} |
258 |
|
# else |
259 |
|
# error Trying to compile PPC target without a vector declaration type. |
260 |
|
# endif |
261 |
|
|
262 |
# define BSWAP(a) __asm__ __volatile__ \ |
# define BSWAP(a) __asm__ __volatile__ \ |
263 |
( "lwbrx %0,0,%1; eieio" : "=r" (a) : "r" (&(a)), "m" (a)); |
( "lwbrx %0,0,%1; eieio" : "=r" (a) : "r" (&(a)), "m" (a)); |
264 |
|
|