29 #ifndef __CDIO_BYTESEX_ASM_H__
30 #define __CDIO_BYTESEX_ASM_H__
31 #if !defined(DISABLE_ASM_OPTIMIZE)
35 #if defined(__powerpc__) && defined(__GNUC__)
38 uint32_t uint32_swap_le_be_asm(
const uint32_t a)
42 __asm__ (
"lwbrx %0,0,%1"
50 uint16_t uint16_swap_le_be_asm(
const uint16_t a)
54 __asm__ (
"lhbrx %0,0,%1"
61 #define UINT16_SWAP_LE_BE uint16_swap_le_be_asm
62 #define UINT32_SWAP_LE_BE uint32_swap_le_be_asm
64 #elif defined(__mc68000__) && defined(__STORMGCC__)
67 uint32_t uint32_swap_le_be_asm(uint32_t a __asm__(
"d0"))
71 __asm__(
"move.l %1,d0;rol.w #8,d0;swap d0;rol.w #8,d0;move.l d0,%0"
79 uint16_t uint16_swap_le_be_asm(uint16_t a __asm__(
"d0"))
81 __asm__(
"move.l %1,d0;rol.w #8,d0;move.l d0,%0"
88 #define UINT16_SWAP_LE_BE uint16_swap_le_be_asm
89 #define UINT32_SWAP_LE_BE uint32_swap_le_be_asm
91 #elif 0 && defined(__i386__) && defined(__GNUC__)
94 uint32_t uint32_swap_le_be_asm(uint32_t a)
96 __asm__(
"xchgb %b0,%h0\n\t"
106 uint16_t uint16_swap_le_be_asm(uint16_t a)
108 __asm__(
"xchgb %b0,%h0"
115 #define UINT16_SWAP_LE_BE uint16_swap_le_be_asm
116 #define UINT32_SWAP_LE_BE uint32_swap_le_be_asm