File: bug132146.c

package info (click to toggle)
valgrind 1%3A3.14.0-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 156,980 kB
  • sloc: ansic: 728,128; exp: 26,134; xml: 22,268; cpp: 7,638; asm: 7,312; makefile: 6,102; perl: 5,910; sh: 5,717
file content (106 lines) | stat: -rw-r--r-- 2,196 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106

#include <stdio.h>

typedef unsigned int UInt;
typedef unsigned long long ULong;

#if defined(__x86_64__)

#define BSWAPQ(_lval) \
  do { \
  __asm__ __volatile__("bswapq %0" \
		       : /*out*/ "+r"(_lval) ); \
  } while (0)

ULong bswapq ( ULong x )
{
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x); BSWAPQ(x);
  BSWAPQ(x);
  return x;
}

#endif /* defined(__x86_64__) */

#define BSWAPL(_lval) \
  do { \
  __asm__ __volatile__("bswapl %0" \
		       : /*out*/ "+r"(_lval) ); \
  } while (0)

UInt bswapl ( UInt x )
{
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x); BSWAPL(x);
  BSWAPL(x);
  return x;
}

int main ( void )
{
#if defined(__x86_64__)
   printf("0x%llx\n", bswapq( 0x8877665544332211ULL ));
#endif
   printf("0x%x\n", bswapl( 0x44332211ULL ));
   return 0;
}