SILC_GET32_MSB

NAME

    #define SILC_GET32_MSB(dest, src)

DESCRIPTION

Return four 8-bit bytes, most significant bytes first.

SOURCE

#if (defined(SILC_I486) || defined(SILC_X86_64)) && defined(__GNUC__)
#define SILC_GET32_MSB(l, cp)                           \
asm volatile ("movl (%1), %0; bswapl %0"                \
              : "=q" (l) : "q" (cp) : "memory", "cc");
#else
#define SILC_GET32_MSB(l, cp)                           \
do {                                                    \
  (l) = ((SilcUInt32)(SilcUInt8)(cp)[0]) << 24          \
    | ((SilcUInt32)(SilcUInt8)(cp)[1] << 16)            \
    | ((SilcUInt32)(SilcUInt8)(cp)[2] << 8)             \
    | ((SilcUInt32)(SilcUInt8)(cp)[3]);                 \
} while(0)
#endif /* (SILC_I486 || SILC_X86_64) && __GNUC__ */