21 |
* along with this program ; if not, write to the Free Software |
* along with this program ; if not, write to the Free Software |
22 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
23 |
* |
* |
24 |
* $Id: portab.h,v 1.58 2008-11-27 16:31:48 Isibaar Exp $ |
* $Id: portab.h,v 1.59 2008-11-30 16:36:44 Isibaar Exp $ |
25 |
* |
* |
26 |
****************************************************************************/ |
****************************************************************************/ |
27 |
|
|
153 |
/*---------------------------------------------------------------------------- |
/*---------------------------------------------------------------------------- |
154 |
| msvc x86 specific macros/functions |
| msvc x86 specific macros/functions |
155 |
*---------------------------------------------------------------------------*/ |
*---------------------------------------------------------------------------*/ |
156 |
# if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64) |
# if defined(ARCH_IS_IA32) |
157 |
# 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 |
158 |
|
|
159 |
static __inline int64_t read_counter(void) |
static __inline int64_t read_counter(void) |
169 |
return ts; |
return ts; |
170 |
} |
} |
171 |
|
|
172 |
|
# elif defined(ARCH_IS_X86_64) |
173 |
|
|
174 |
|
# include <intrin.h> |
175 |
|
|
176 |
|
# define BSWAP(a) ((a) = _byteswap_ulong(a)) |
177 |
|
|
178 |
|
static __inline int64_t read_counter(void) { return __rdtsc(); } |
179 |
|
|
180 |
/*---------------------------------------------------------------------------- |
/*---------------------------------------------------------------------------- |
181 |
| msvc GENERIC (plain C only) - Probably alpha or some embedded device |
| msvc GENERIC (plain C only) - Probably alpha or some embedded device |
182 |
*---------------------------------------------------------------------------*/ |
*---------------------------------------------------------------------------*/ |