• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 unsigned long __cdecl _byteswap_ulong (unsigned long _Long);
2 
_byteswap_ulong(unsigned long _Long)3 unsigned long __cdecl _byteswap_ulong (unsigned long _Long)
4 {
5 #if defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__)
6   unsigned long retval;
7   __asm__ __volatile__ ("bswapl %[retval]" : [retval] "=rm" (retval) : "[retval]" (_Long));
8   return retval;
9 #else
10   unsigned char *b = (void*)&_Long;
11   unsigned char tmp;
12   tmp = b[0];
13   b[0] = b[3];
14   b[3] = tmp;
15   tmp = b[1];
16   b[1] = b[2];
17   b[2] = tmp;
18   return _Long;
19 #endif /* defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__) */
20 }
21