]> Git Repo - qemu.git/blame - op_string.h
pop ss, mov ss, x and sti disable irqs for the next instruction - began dispatch...
[qemu.git] / op_string.h
CommitLineData
24f9e90b 1
24f9e90b
FB
2void OPPROTO glue(glue(op_repz_scas, SUFFIX), STRING_SUFFIX)(void)
3{
4 int v1, v2, inc;
5
6 if (CX != 0) {
7 /* NOTE: the flags are not modified if CX == 0 */
8 v1 = EAX & DATA_MASK;
9 inc = (DF << SHIFT);
10 do {
11 v2 = glue(ldu, SUFFIX)(DI_ADDR);
12 INC_DI();
13 DEC_CX();
14 if (v1 != v2)
15 break;
16 } while (CX != 0);
5797fa5d 17 CC_SRC = v2;
24f9e90b
FB
18 CC_DST = v1 - v2;
19 CC_OP = CC_OP_SUBB + SHIFT;
20 }
21 FORCE_RET();
22}
23
24void OPPROTO glue(glue(op_repnz_scas, SUFFIX), STRING_SUFFIX)(void)
25{
26 int v1, v2, inc;
27
28 if (CX != 0) {
29 /* NOTE: the flags are not modified if CX == 0 */
30 v1 = EAX & DATA_MASK;
31 inc = (DF << SHIFT);
32 do {
33 v2 = glue(ldu, SUFFIX)(DI_ADDR);
34 INC_DI();
35 DEC_CX();
36 if (v1 == v2)
37 break;
38 } while (CX != 0);
5797fa5d 39 CC_SRC = v2;
24f9e90b
FB
40 CC_DST = v1 - v2;
41 CC_OP = CC_OP_SUBB + SHIFT;
42 }
43 FORCE_RET();
44}
45
24f9e90b
FB
46void OPPROTO glue(glue(op_repz_cmps, SUFFIX), STRING_SUFFIX)(void)
47{
48 int v1, v2, inc;
49 if (CX != 0) {
50 inc = (DF << SHIFT);
51 do {
52 v1 = glue(ldu, SUFFIX)(SI_ADDR);
53 v2 = glue(ldu, SUFFIX)(DI_ADDR);
54 INC_SI();
55 INC_DI();
56 DEC_CX();
57 if (v1 != v2)
58 break;
59 } while (CX != 0);
5797fa5d 60 CC_SRC = v2;
24f9e90b
FB
61 CC_DST = v1 - v2;
62 CC_OP = CC_OP_SUBB + SHIFT;
63 }
64 FORCE_RET();
65}
66
67void OPPROTO glue(glue(op_repnz_cmps, SUFFIX), STRING_SUFFIX)(void)
68{
69 int v1, v2, inc;
70 if (CX != 0) {
71 inc = (DF << SHIFT);
72 do {
73 v1 = glue(ldu, SUFFIX)(SI_ADDR);
74 v2 = glue(ldu, SUFFIX)(DI_ADDR);
75 INC_SI();
76 INC_DI();
77 DEC_CX();
78 if (v1 == v2)
79 break;
80 } while (CX != 0);
5797fa5d 81 CC_SRC = v2;
24f9e90b
FB
82 CC_DST = v1 - v2;
83 CC_OP = CC_OP_SUBB + SHIFT;
84 }
85 FORCE_RET();
86}
87
24f9e90b
FB
88#undef STRING_SUFFIX
89#undef SI_ADDR
90#undef DI_ADDR
91#undef INC_SI
92#undef INC_DI
93#undef CX
94#undef DEC_CX
This page took 0.039204 seconds and 4 git commands to generate.