|
@@ -4683,7 +4683,10 @@ special_insn:
|
|
goto done;
|
|
goto done;
|
|
}
|
|
}
|
|
|
|
|
|
- ctxt->eflags &= ~EFLG_RF;
|
|
|
|
|
|
+ if (ctxt->rep_prefix && (ctxt->d & String))
|
|
|
|
+ ctxt->eflags |= EFLG_RF;
|
|
|
|
+ else
|
|
|
|
+ ctxt->eflags &= ~EFLG_RF;
|
|
|
|
|
|
if (ctxt->execute) {
|
|
if (ctxt->execute) {
|
|
if (ctxt->d & Fastop) {
|
|
if (ctxt->d & Fastop) {
|
|
@@ -4824,6 +4827,7 @@ writeback:
|
|
}
|
|
}
|
|
goto done; /* skip rip writeback */
|
|
goto done; /* skip rip writeback */
|
|
}
|
|
}
|
|
|
|
+ ctxt->eflags &= ~EFLG_RF;
|
|
}
|
|
}
|
|
|
|
|
|
ctxt->eip = ctxt->_eip;
|
|
ctxt->eip = ctxt->_eip;
|