|
@@ -4736,17 +4736,17 @@ special_insn:
|
|
|
goto done;
|
|
|
|
|
|
writeback:
|
|
|
- if (!(ctxt->d & NoWrite)) {
|
|
|
- rc = writeback(ctxt, &ctxt->dst);
|
|
|
- if (rc != X86EMUL_CONTINUE)
|
|
|
- goto done;
|
|
|
- }
|
|
|
if (ctxt->d & SrcWrite) {
|
|
|
BUG_ON(ctxt->src.type == OP_MEM || ctxt->src.type == OP_MEM_STR);
|
|
|
rc = writeback(ctxt, &ctxt->src);
|
|
|
if (rc != X86EMUL_CONTINUE)
|
|
|
goto done;
|
|
|
}
|
|
|
+ if (!(ctxt->d & NoWrite)) {
|
|
|
+ rc = writeback(ctxt, &ctxt->dst);
|
|
|
+ if (rc != X86EMUL_CONTINUE)
|
|
|
+ goto done;
|
|
|
+ }
|
|
|
|
|
|
/*
|
|
|
* restore dst type in case the decoding will be reused
|