]> git.proxmox.com Git - qemu.git/blame - op_string.h
removed unused assignment
[qemu.git] / op_string.h
CommitLineData
24f9e90b
FB
1
2void OPPROTO glue(glue(op_movs, SUFFIX), STRING_SUFFIX)(void)
3{
4 int v, inc;
24f9e90b
FB
5 v = glue(ldu, SUFFIX)(SI_ADDR);
6 glue(st, SUFFIX)(DI_ADDR, v);
7 inc = (DF << SHIFT);
8 INC_SI();
9 INC_DI();
10}
11
12void OPPROTO glue(glue(op_rep_movs, SUFFIX), STRING_SUFFIX)(void)
13{
14 int v, inc;
15 inc = (DF << SHIFT);
16 while (CX != 0) {
17 v = glue(ldu, SUFFIX)(SI_ADDR);
18 glue(st, SUFFIX)(DI_ADDR, v);
19 INC_SI();
20 INC_DI();
21 DEC_CX();
22 }
23 FORCE_RET();
24}
25
26void OPPROTO glue(glue(op_stos, SUFFIX), STRING_SUFFIX)(void)
27{
28 int inc;
29 glue(st, SUFFIX)(DI_ADDR, EAX);
30 inc = (DF << SHIFT);
31 INC_DI();
32}
33
34void OPPROTO glue(glue(op_rep_stos, SUFFIX), STRING_SUFFIX)(void)
35{
36 int inc;
37 inc = (DF << SHIFT);
38 while (CX != 0) {
39 glue(st, SUFFIX)(DI_ADDR, EAX);
40 INC_DI();
41 DEC_CX();
42 }
43 FORCE_RET();
44}
45
46void OPPROTO glue(glue(op_lods, SUFFIX), STRING_SUFFIX)(void)
47{
48 int v, inc;
49 v = glue(ldu, SUFFIX)(SI_ADDR);
50#if SHIFT == 0
51 EAX = (EAX & ~0xff) | v;
52#elif SHIFT == 1
53 EAX = (EAX & ~0xffff) | v;
54#else
55 EAX = v;
56#endif
57 inc = (DF << SHIFT);
58 INC_SI();
59}
60
61/* don't know if it is used */
62void OPPROTO glue(glue(op_rep_lods, SUFFIX), STRING_SUFFIX)(void)
63{
64 int v, inc;
65 inc = (DF << SHIFT);
66 while (CX != 0) {
67 v = glue(ldu, SUFFIX)(SI_ADDR);
68#if SHIFT == 0
69 EAX = (EAX & ~0xff) | v;
70#elif SHIFT == 1
71 EAX = (EAX & ~0xffff) | v;
72#else
73 EAX = v;
74#endif
75 INC_SI();
76 DEC_CX();
77 }
78 FORCE_RET();
79}
80
81void OPPROTO glue(glue(op_scas, SUFFIX), STRING_SUFFIX)(void)
82{
83 int v, inc;
84
85 v = glue(ldu, SUFFIX)(DI_ADDR);
86 inc = (DF << SHIFT);
87 INC_DI();
5797fa5d 88 CC_SRC = v;
24f9e90b
FB
89 CC_DST = EAX - v;
90}
91
92void OPPROTO glue(glue(op_repz_scas, SUFFIX), STRING_SUFFIX)(void)
93{
94 int v1, v2, inc;
95
96 if (CX != 0) {
97 /* NOTE: the flags are not modified if CX == 0 */
98 v1 = EAX & DATA_MASK;
99 inc = (DF << SHIFT);
100 do {
101 v2 = glue(ldu, SUFFIX)(DI_ADDR);
102 INC_DI();
103 DEC_CX();
104 if (v1 != v2)
105 break;
106 } while (CX != 0);
5797fa5d 107 CC_SRC = v2;
24f9e90b
FB
108 CC_DST = v1 - v2;
109 CC_OP = CC_OP_SUBB + SHIFT;
110 }
111 FORCE_RET();
112}
113
114void OPPROTO glue(glue(op_repnz_scas, SUFFIX), STRING_SUFFIX)(void)
115{
116 int v1, v2, inc;
117
118 if (CX != 0) {
119 /* NOTE: the flags are not modified if CX == 0 */
120 v1 = EAX & DATA_MASK;
121 inc = (DF << SHIFT);
122 do {
123 v2 = glue(ldu, SUFFIX)(DI_ADDR);
124 INC_DI();
125 DEC_CX();
126 if (v1 == v2)
127 break;
128 } while (CX != 0);
5797fa5d 129 CC_SRC = v2;
24f9e90b
FB
130 CC_DST = v1 - v2;
131 CC_OP = CC_OP_SUBB + SHIFT;
132 }
133 FORCE_RET();
134}
135
136void OPPROTO glue(glue(op_cmps, SUFFIX), STRING_SUFFIX)(void)
137{
138 int v1, v2, inc;
139 v1 = glue(ldu, SUFFIX)(SI_ADDR);
140 v2 = glue(ldu, SUFFIX)(DI_ADDR);
141 inc = (DF << SHIFT);
142 INC_SI();
143 INC_DI();
5797fa5d 144 CC_SRC = v2;
24f9e90b
FB
145 CC_DST = v1 - v2;
146}
147
148void OPPROTO glue(glue(op_repz_cmps, SUFFIX), STRING_SUFFIX)(void)
149{
150 int v1, v2, inc;
151 if (CX != 0) {
152 inc = (DF << SHIFT);
153 do {
154 v1 = glue(ldu, SUFFIX)(SI_ADDR);
155 v2 = glue(ldu, SUFFIX)(DI_ADDR);
156 INC_SI();
157 INC_DI();
158 DEC_CX();
159 if (v1 != v2)
160 break;
161 } while (CX != 0);
5797fa5d 162 CC_SRC = v2;
24f9e90b
FB
163 CC_DST = v1 - v2;
164 CC_OP = CC_OP_SUBB + SHIFT;
165 }
166 FORCE_RET();
167}
168
169void OPPROTO glue(glue(op_repnz_cmps, SUFFIX), STRING_SUFFIX)(void)
170{
171 int v1, v2, inc;
172 if (CX != 0) {
173 inc = (DF << SHIFT);
174 do {
175 v1 = glue(ldu, SUFFIX)(SI_ADDR);
176 v2 = glue(ldu, SUFFIX)(DI_ADDR);
177 INC_SI();
178 INC_DI();
179 DEC_CX();
180 if (v1 == v2)
181 break;
182 } while (CX != 0);
5797fa5d 183 CC_SRC = v2;
24f9e90b
FB
184 CC_DST = v1 - v2;
185 CC_OP = CC_OP_SUBB + SHIFT;
186 }
187 FORCE_RET();
188}
189
190void OPPROTO glue(glue(op_outs, SUFFIX), STRING_SUFFIX)(void)
191{
192 int v, dx, inc;
193 dx = EDX & 0xffff;
194 v = glue(ldu, SUFFIX)(SI_ADDR);
bf7c65bd 195 glue(cpu_x86_out, SUFFIX)(env, dx, v);
24f9e90b
FB
196 inc = (DF << SHIFT);
197 INC_SI();
198}
199
200void OPPROTO glue(glue(op_rep_outs, SUFFIX), STRING_SUFFIX)(void)
201{
202 int v, dx, inc;
203 inc = (DF << SHIFT);
204 dx = EDX & 0xffff;
205 while (CX != 0) {
206 v = glue(ldu, SUFFIX)(SI_ADDR);
bf7c65bd 207 glue(cpu_x86_out, SUFFIX)(env, dx, v);
24f9e90b
FB
208 INC_SI();
209 DEC_CX();
210 }
211 FORCE_RET();
212}
213
214void OPPROTO glue(glue(op_ins, SUFFIX), STRING_SUFFIX)(void)
215{
216 int v, dx, inc;
217 dx = EDX & 0xffff;
bf7c65bd 218 v = glue(cpu_x86_in, SUFFIX)(env, dx);
24f9e90b
FB
219 glue(st, SUFFIX)(DI_ADDR, v);
220 inc = (DF << SHIFT);
221 INC_DI();
222}
223
224void OPPROTO glue(glue(op_rep_ins, SUFFIX), STRING_SUFFIX)(void)
225{
226 int v, dx, inc;
227 inc = (DF << SHIFT);
228 dx = EDX & 0xffff;
229 while (CX != 0) {
bf7c65bd 230 v = glue(cpu_x86_in, SUFFIX)(env, dx);
24f9e90b
FB
231 glue(st, SUFFIX)(DI_ADDR, v);
232 INC_DI();
233 DEC_CX();
234 }
235 FORCE_RET();
236}
237
238#undef STRING_SUFFIX
239#undef SI_ADDR
240#undef DI_ADDR
241#undef INC_SI
242#undef INC_DI
243#undef CX
244#undef DEC_CX