From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mohammed Gamal Subject: [PATCH] test: Add realmode test for 2 op imul instruction (0x0f 0xaf) Date: Wed, 18 Aug 2010 20:41:37 +0300 Message-ID: <1282153297-4449-1-git-send-email-m.gamal005@gmail.com> Cc: kvm@vger.kernel.org, Mohammed Gamal To: avi@redhat.com Return-path: Received: from mail-ew0-f46.google.com ([209.85.215.46]:37574 "EHLO mail-ew0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751527Ab0HRRls (ORCPT ); Wed, 18 Aug 2010 13:41:48 -0400 Received: by ewy23 with SMTP id 23so573224ewy.19 for ; Wed, 18 Aug 2010 10:41:47 -0700 (PDT) Sender: kvm-owner@vger.kernel.org List-ID: Signed-off-by: Mohammed Gamal --- x86/realmode.c | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-) diff --git a/x86/realmode.c b/x86/realmode.c index 603fd1f..63ee868 100644 --- a/x86/realmode.c +++ b/x86/realmode.c @@ -1004,6 +1004,14 @@ void test_imul() "mov $4, %ecx\n\t" "imul %ecx\n\t"); + MK_INSN(imul16_3, "mov $2, %bx\n\t" + "mov $4, %cx\n\t" + "imul %bx, %cx\n\t"); + + MK_INSN(imul32_3, "mov $2, %ebx\n\t" + "mov $4, %ecx\n\t" + "imul %ebx, %ecx\n\t"); + exec_in_big_real_mode(&inregs, &outregs, insn_imul8_1, insn_imul8_1_end - insn_imul8_1); @@ -1058,6 +1066,24 @@ void test_imul() print_serial("imul Test 6: FAIL\n"); else print_serial("imul Test 6: PASS\n"); + + exec_in_big_real_mode(&inregs, &outregs, + insn_imul16_3, + insn_imul16_3_end - insn_imul16_3); + + if (!regs_equal(&inregs, &outregs, R_BX | R_CX) || outregs.ecx != 8) + print_serial("imul Test 7: FAIL\n"); + else + print_serial("imul Test 7: PASS\n"); + + exec_in_big_real_mode(&inregs, &outregs, + insn_imul32_3, + insn_imul32_3_end - insn_imul32_3); + + if (!regs_equal(&inregs, &outregs, R_BX | R_CX) || outregs.ecx != 8) + print_serial("imul Test 8: FAIL\n"); + else + print_serial("imul Test 8: PASS\n"); } void test_mul() -- 1.7.0.4