KVM: x86 emulator: convert NOT, NEG to fastop
authorAvi Kivity <avi.kivity@gmail.com>
Fri, 4 Jan 2013 14:18:52 +0000 (16:18 +0200)
committerMarcelo Tosatti <mtosatti@redhat.com>
Wed, 9 Jan 2013 19:39:25 +0000 (17:39 -0200)
Acked-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Avi Kivity <avi.kivity@gmail.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
arch/x86/kvm/emulate.c

index 2af0c4475605578c6d4604369de3a06cb60bf86d..09dbdc5a99e13fff8ad7773ce293e085310810e7 100644 (file)
@@ -2050,17 +2050,8 @@ static int em_grp2(struct x86_emulate_ctxt *ctxt)
        return X86EMUL_CONTINUE;
 }
 
-static int em_not(struct x86_emulate_ctxt *ctxt)
-{
-       ctxt->dst.val = ~ctxt->dst.val;
-       return X86EMUL_CONTINUE;
-}
-
-static int em_neg(struct x86_emulate_ctxt *ctxt)
-{
-       emulate_1op(ctxt, "neg");
-       return X86EMUL_CONTINUE;
-}
+FASTOP1(not);
+FASTOP1(neg);
 
 static int em_mul_ex(struct x86_emulate_ctxt *ctxt)
 {
@@ -3753,8 +3744,8 @@ static const struct opcode group1A[] = {
 static const struct opcode group3[] = {
        I(DstMem | SrcImm | NoWrite, em_test),
        I(DstMem | SrcImm | NoWrite, em_test),
-       I(DstMem | SrcNone | Lock, em_not),
-       I(DstMem | SrcNone | Lock, em_neg),
+       F(DstMem | SrcNone | Lock, em_not),
+       F(DstMem | SrcNone | Lock, em_neg),
        I(SrcMem, em_mul_ex),
        I(SrcMem, em_imul_ex),
        I(SrcMem, em_div_ex),