4 static int movzbw_1 ( void )
8 "movl $0x12345678, %%eax\n\t"
10 "movzbw %%al,%%ax\n\t"
17 static int movzbw_2 ( void )
21 "movl $0x12345678, %%eax\n\t"
22 "movb $0x99, %%al\n\t"
23 "movzbw %%al,%%ax\n\t"
30 static int movzbl_1 ( void )
34 "movl $0x12345678, %%eax\n\t"
35 "movb $0x22, %%al\n\t"
36 "movzbl %%al,%%eax\n\t"
43 static int movzbl_2 ( void )
47 "movl $0x12345678, %%eax\n\t"
48 "movb $0x99, %%al\n\t"
49 "movzbl %%al,%%eax\n\t"
56 static int movzwl_1 ( void )
60 "movl $0x12345678, %%eax\n\t"
61 "movw $0x2222, %%ax\n\t"
62 "movzwl %%ax,%%eax\n\t"
69 static int movzwl_2 ( void )
73 "movl $0x12345678, %%eax\n\t"
74 "movw $0x9999, %%ax\n\t"
75 "movzwl %%ax,%%eax\n\t"
82 static int movsbw_1 ( void )
86 "movl $0x12345678, %%eax\n\t"
87 "movb $0x22, %%al\n\t"
88 "movsbw %%al,%%ax\n\t"
95 static int movsbw_2 ( void )
99 "movl $0x12345678, %%eax\n\t"
100 "movb $0x99, %%al\n\t"
101 "movsbw %%al,%%ax\n\t"
103 : "=r"(res
) : : "eax"
108 static int movsbl_1 ( void )
111 __asm__
__volatile__(
112 "movl $0x12345678, %%eax\n\t"
113 "movb $0x22, %%al\n\t"
114 "movsbl %%al,%%eax\n\t"
116 : "=r"(res
) : : "eax"
121 static int movsbl_2 ( void )
124 __asm__
__volatile__(
125 "movl $0x12345678, %%eax\n\t"
126 "movb $0x99, %%al\n\t"
127 "movsbl %%al,%%eax\n\t"
129 : "=r"(res
) : : "eax"
134 static int movswl_1 ( void )
137 __asm__
__volatile__(
138 "movl $0x12345678, %%eax\n\t"
139 "movw $0x2222, %%ax\n\t"
140 "movswl %%ax,%%eax\n\t"
142 : "=r"(res
) : : "eax"
147 static int movswl_2 ( void )
150 __asm__
__volatile__(
151 "movl $0x12345678, %%eax\n\t"
152 "movw $0x9999, %%ax\n\t"
153 "movswl %%ax,%%eax\n\t"
155 : "=r"(res
) : : "eax"
164 printf("%8s 0x%08x\n", "movzbw_1", movzbw_1());
165 printf("%8s 0x%08x\n", "movzbw_2", movzbw_2());
166 printf("%8s 0x%08x\n", "movzbl_1", movzbl_1());
167 printf("%8s 0x%08x\n", "movzbl_2", movzbl_2());
168 printf("%8s 0x%08x\n", "movzwl_1", movzwl_1());
169 printf("%8s 0x%08x\n", "movzwl_2", movzwl_2());
170 printf("%8s 0x%08x\n", "movsbw_1", movsbw_1());
171 printf("%8s 0x%08x\n", "movsbw_2", movsbw_2());
172 printf("%8s 0x%08x\n", "movsbl_1", movsbl_1());
173 printf("%8s 0x%08x\n", "movsbl_2", movsbl_2());
174 printf("%8s 0x%08x\n", "movswl_1", movswl_1());
175 printf("%8s 0x%08x\n", "movswl_2", movswl_2());