27#ifndef CDIO_BYTESEX_ASM_H_
28#define CDIO_BYTESEX_ASM_H_
29#if !defined(DISABLE_ASM_OPTIMIZE)
33#if !defined CDIO_INLINE
34#if defined(__cplusplus) || defined(inline)
35#define CDIO_INLINE inline
36#elif defined(__GNUC__)
37#define CDIO_INLINE __inline__
38#elif defined(_MSC_VER)
39#define CDIO_INLINE __inline
45#if defined(__powerpc__) && defined(__GNUC__)
48uint32_t uint32_swap_le_be_asm(
const uint32_t a)
52 __asm__ (
"lwbrx %0,0,%1"
60uint16_t uint16_swap_le_be_asm(
const uint16_t a)
64 __asm__ (
"lhbrx %0,0,%1"
71#define UINT16_SWAP_LE_BE uint16_swap_le_be_asm
72#define UINT32_SWAP_LE_BE uint32_swap_le_be_asm
74#elif defined(__mc68000__) && defined(__STORMGCC__)
77uint32_t uint32_swap_le_be_asm(uint32_t a __asm__(
"d0"))
81 __asm__(
"move.l %1,d0;rol.w #8,d0;swap d0;rol.w #8,d0;move.l d0,%0"
89uint16_t uint16_swap_le_be_asm(uint16_t a __asm__(
"d0"))
91 __asm__(
"move.l %1,d0;rol.w #8,d0;move.l d0,%0"
98#define UINT16_SWAP_LE_BE uint16_swap_le_be_asm
99#define UINT32_SWAP_LE_BE uint32_swap_le_be_asm
101#elif 0 && defined(__i386__) && defined(__GNUC__)
104uint32_t uint32_swap_le_be_asm(uint32_t a)
106 __asm__(
"xchgb %b0,%h0\n\t"
116uint16_t uint16_swap_le_be_asm(uint16_t a)
118 __asm__(
"xchgb %b0,%h0"
125#define UINT16_SWAP_LE_BE uint16_swap_le_be_asm
126#define UINT32_SWAP_LE_BE uint32_swap_le_be_asm
#define CDIO_INLINE
Definition bytesex_asm.h:41
Common type definitions used pervasively in libcdio.