4 void do_pushb_pos ( void )
6 unsigned long long int block
[3];
9 "pushq $0x55555555\n\t"
10 "movq %%rsp, 0(%%rdx)\n\t"
12 "movq %%rsp, 8(%%rdx)\n\t"
14 "movq %%rax,16(%%rdx)\n\t"
15 "movq 0(%%rdx),%%rsp\n\t"
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__ (
28 "pushq $0x55555555\n\t"
29 "movq %%rsp, 0(%%rdx)\n\t"
31 "movq %%rsp, 8(%%rdx)\n\t"
33 "movq %%rax,16(%%rdx)\n\t"
34 "movq 0(%%rdx),%%rsp\n\t"
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__ (
47 "pushq $0x55555555\n\t"
48 "movq %%rsp, 0(%%rdx)\n\t"
50 "movq %%rsp, 8(%%rdx)\n\t"
52 "movq %%rax,16(%%rdx)\n\t"
53 "movq 0(%%rdx),%%rsp\n\t"
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__ (
66 "pushq $0x55555555\n\t"
67 "movq %%rsp, 0(%%rdx)\n\t"
69 "movq %%rsp, 8(%%rdx)\n\t"
71 "movq %%rax,16(%%rdx)\n\t"
72 "movq 0(%%rdx),%%rsp\n\t"
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__ (
85 "pushq $0x55555555\n\t"
86 "movq %%rsp, 0(%%rdx)\n\t"
87 "pushq $0x67675656\n\t"
88 "movq %%rsp, 8(%%rdx)\n\t"
90 "movq %%rax,16(%%rdx)\n\t"
91 "movq 0(%%rdx),%%rsp\n\t"
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__ (
104 "pushq $0x55555555\n\t"
105 "movq %%rsp, 0(%%rdx)\n\t"
106 "pushq $0x78988787\n\t"
107 "movq %%rsp, 8(%%rdx)\n\t"
109 "movq %%rax,16(%%rdx)\n\t"
110 "movq 0(%%rdx),%%rsp\n\t"
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__ (
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"
129 "movq %%rax,16(%%rdx)\n\t"
130 "movq 0(%%rdx),%%rsp\n\t"
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__ (
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"
148 "movq %%rax,16(%%rdx)\n\t"
149 "movq 0(%%rdx),%%rsp\n\t"
151 : : "r"(&block
) : "rax","rdx","cc","memory"
153 printf("66pushb_neg: delta %lld, top64 0x%016llx\n",
154 block
[0] - block
[1], block
[2]);