none/tests/fdleak_cmsg_supp.supp: Add suppressions for older glibc
[valgrind.git] / none / tests / amd64 / bug132813-amd64.c
blob99bd3cb681da67a8d2e42d37a6d0276709fbabc0
2 #include <stdio.h>
4 void do_pushb_pos ( void )
6 unsigned long long int block[3];
7 __asm__ __volatile__ (
8 "movq %0, %%rdx\n\t"
9 "pushq $0x55555555\n\t"
10 "movq %%rsp, 0(%%rdx)\n\t"
11 ".byte 0x6A,0x22\n\t"
12 "movq %%rsp, 8(%%rdx)\n\t"
13 "popq %%rax\n\t"
14 "movq %%rax,16(%%rdx)\n\t"
15 "movq 0(%%rdx),%%rsp\n\t"
16 "addq $8, %%rsp"
17 : : "r"(&block) : "rax","rdx","cc","memory"
19 printf(" pushb_pos: delta %lld, top64 0x%016llx\n",
20 block[0] - block[1], block[2]);
23 void do_pushb_neg ( void )
25 unsigned long long int block[3];
26 __asm__ __volatile__ (
27 "movq %0, %%rdx\n\t"
28 "pushq $0x55555555\n\t"
29 "movq %%rsp, 0(%%rdx)\n\t"
30 ".byte 0x6A,0xEE\n\t"
31 "movq %%rsp, 8(%%rdx)\n\t"
32 "popq %%rax\n\t"
33 "movq %%rax,16(%%rdx)\n\t"
34 "movq 0(%%rdx),%%rsp\n\t"
35 "addq $8, %%rsp"
36 : : "r"(&block) : "rax","rdx","cc","memory"
38 printf(" pushb_neg: delta %lld, top64 0x%016llx\n",
39 block[0] - block[1], block[2]);
42 void do_pushw_pos ( void )
44 unsigned long long int block[3];
45 __asm__ __volatile__ (
46 "movq %0, %%rdx\n\t"
47 "pushq $0x55555555\n\t"
48 "movq %%rsp, 0(%%rdx)\n\t"
49 "pushw $0x3344\n\t"
50 "movq %%rsp, 8(%%rdx)\n\t"
51 "popq %%rax\n\t"
52 "movq %%rax,16(%%rdx)\n\t"
53 "movq 0(%%rdx),%%rsp\n\t"
54 "addq $8, %%rsp"
55 : : "r"(&block) : "rax","rdx","cc","memory"
57 printf(" pushw_neg: delta %lld, top64 0x%016llx\n",
58 block[0] - block[1], block[2]);
61 void do_pushw_neg ( void )
63 unsigned long long int block[3];
64 __asm__ __volatile__ (
65 "movq %0, %%rdx\n\t"
66 "pushq $0x55555555\n\t"
67 "movq %%rsp, 0(%%rdx)\n\t"
68 "pushw $0xDDCC\n\t"
69 "movq %%rsp, 8(%%rdx)\n\t"
70 "popq %%rax\n\t"
71 "movq %%rax,16(%%rdx)\n\t"
72 "movq 0(%%rdx),%%rsp\n\t"
73 "addq $8, %%rsp"
74 : : "r"(&block) : "rax","rdx","cc","memory"
76 printf(" pushw_pos: delta %lld, top64 0x%016llx\n",
77 block[0] - block[1], block[2]);
80 void do_pushq_pos ( void )
82 unsigned long long int block[3];
83 __asm__ __volatile__ (
84 "movq %0, %%rdx\n\t"
85 "pushq $0x55555555\n\t"
86 "movq %%rsp, 0(%%rdx)\n\t"
87 "pushq $0x67675656\n\t"
88 "movq %%rsp, 8(%%rdx)\n\t"
89 "popq %%rax\n\t"
90 "movq %%rax,16(%%rdx)\n\t"
91 "movq 0(%%rdx),%%rsp\n\t"
92 "addq $8, %%rsp"
93 : : "r"(&block) : "rax","rdx","cc","memory"
95 printf(" pushq_pos: delta %lld, top64 0x%016llx\n",
96 block[0] - block[1], block[2]);
99 void do_pushq_neg ( void )
101 unsigned long long int block[3];
102 __asm__ __volatile__ (
103 "movq %0, %%rdx\n\t"
104 "pushq $0x55555555\n\t"
105 "movq %%rsp, 0(%%rdx)\n\t"
106 "pushq $0x78988787\n\t"
107 "movq %%rsp, 8(%%rdx)\n\t"
108 "popq %%rax\n\t"
109 "movq %%rax,16(%%rdx)\n\t"
110 "movq 0(%%rdx),%%rsp\n\t"
111 "addq $8, %%rsp"
112 : : "r"(&block) : "rax","rdx","cc","memory"
114 printf(" pushq_neg: delta %lld, top64 0x%016llx\n",
115 block[0] - block[1], block[2]);
119 void do_66pushb_pos ( void )
121 unsigned long long int block[3];
122 __asm__ __volatile__ (
123 "movq %0, %%rdx\n\t"
124 "pushq $0x55555555\n\t"
125 "movq %%rsp, 0(%%rdx)\n\t"
126 ".byte 0x66,0x6A,0x22\n\t"
127 "movq %%rsp, 8(%%rdx)\n\t"
128 "popq %%rax\n\t"
129 "movq %%rax,16(%%rdx)\n\t"
130 "movq 0(%%rdx),%%rsp\n\t"
131 "addq $8, %%rsp"
132 : : "r"(&block) : "rax","rdx","cc","memory"
134 printf("66pushb_pos: delta %lld, top64 0x%016llx\n",
135 block[0] - block[1], block[2]);
138 void do_66pushb_neg ( void )
140 unsigned long long int block[3];
141 __asm__ __volatile__ (
142 "movq %0, %%rdx\n\t"
143 "pushq $0x55555555\n\t"
144 "movq %%rsp, 0(%%rdx)\n\t"
145 ".byte 0x66,0x6A,0xEE\n\t"
146 "movq %%rsp, 8(%%rdx)\n\t"
147 "popq %%rax\n\t"
148 "movq %%rax,16(%%rdx)\n\t"
149 "movq 0(%%rdx),%%rsp\n\t"
150 "addq $8, %%rsp"
151 : : "r"(&block) : "rax","rdx","cc","memory"
153 printf("66pushb_neg: delta %lld, top64 0x%016llx\n",
154 block[0] - block[1], block[2]);
158 int main ( void )
160 do_pushb_pos();
161 do_pushb_neg();
162 do_pushw_pos();
163 do_pushw_neg();
164 do_pushq_pos();
165 do_pushq_neg();
167 do_66pushb_pos();
168 do_66pushb_neg();
169 return 0;