Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=90e0a28f6b7241c7793f2ebd540c349580170446
Commit:     90e0a28f6b7241c7793f2ebd540c349580170446
Parent:     e9f85cde99fa011db256f6683ba81d155e0d3f57
Author:     Guillaume Thouvenin <[EMAIL PROTECTED]>
AuthorDate: Thu Nov 22 11:32:09 2007 +0100
Committer:  Avi Kivity <[EMAIL PROTECTED]>
CommitDate: Wed Jan 30 17:53:14 2008 +0200

    KVM: x86 emulator: Make a distinction between repeat prefixes F3 and F2
    
    cmps and scas instructions accept repeat prefixes F3 and F2. So in
    order to emulate those prefixed instructions we need to be able to know
    if prefixes are REP/REPE/REPZ or REPNE/REPNZ. Currently kvm doesn't make
    this distinction. This patch introduces this distinction.
    
    Signed-off-by: Guillaume Thouvenin <[EMAIL PROTECTED]>
    Signed-off-by: Avi Kivity <[EMAIL PROTECTED]>
---
 drivers/kvm/x86_emulate.c |    4 +++-
 drivers/kvm/x86_emulate.h |    4 ++++
 2 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/drivers/kvm/x86_emulate.c b/drivers/kvm/x86_emulate.c
index 6e7f774..9f8d59a 100644
--- a/drivers/kvm/x86_emulate.c
+++ b/drivers/kvm/x86_emulate.c
@@ -824,8 +824,10 @@ x86_decode_insn(struct x86_emulate_ctxt *ctxt, struct 
x86_emulate_ops *ops)
                        c->lock_prefix = 1;
                        break;
                case 0xf2:      /* REPNE/REPNZ */
+                       c->rep_prefix = REPNE_PREFIX;
+                       break;
                case 0xf3:      /* REP/REPE/REPZ */
-                       c->rep_prefix = 1;
+                       c->rep_prefix = REPE_PREFIX;
                        break;
                default:
                        goto done_prefixes;
diff --git a/drivers/kvm/x86_emulate.h b/drivers/kvm/x86_emulate.h
index 4603b2b..644086e 100644
--- a/drivers/kvm/x86_emulate.h
+++ b/drivers/kvm/x86_emulate.h
@@ -162,6 +162,10 @@ struct x86_emulate_ctxt {
        struct decode_cache decode;
 };
 
+/* Repeat String Operation Prefix */
+#define REPE_PREFIX  1
+#define REPNE_PREFIX    2
+
 /* Execution mode, passed to the emulator. */
 #define X86EMUL_MODE_REAL     0        /* Real mode.             */
 #define X86EMUL_MODE_PROT16   2        /* 16-bit protected mode. */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to