Add 'add' instruction test when source operand is an immediate (opcode
0x04 and 0x05) in real mode test harness.
Signed-off-by: Guillaume Thouvenin <[EMAIL PROTECTED]>
---
realmode.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/user/test/x86/realmode.c b/user/test/x86/realmode.c
index 69ded37..1cb58b0 100644
--- a/user/test/x86/realmode.c
+++ b/user/test/x86/realmode.c
@@ -212,6 +212,26 @@ void test_cmp_imm(const struct regs *inregs, struct regs
*outregs)
print_serial("cmp test 3: FAIL\n");
}
+void test_add_imm(const struct regs *inregs, struct regs *outregs)
+{
+ MK_INSN(add_test1, "mov $0x43211234, %eax \n\t"
+ "add $0x12344321, %eax \n\t");
+ MK_INSN(add_test2, "mov $0x12, %eax \n\t"
+ "add $0x21, %al\n\t");
+
+ exec_in_big_real_mode(inregs, outregs,
+ insn_add_test1,
+ insn_add_test1_end - insn_add_test1);
+ if (outregs->eax != 0x55555555)
+ print_serial("add test 1: FAIL\n");
+
+ exec_in_big_real_mode(inregs, outregs,
+ insn_add_test2,
+ insn_add_test2_end - insn_add_test2);
+ if (outregs->eax != 0x33)
+ print_serial("add test 2: FAIL\n");
+}
+
void test_eflags_insn(struct regs *inregs, struct regs *outregs)
{
MK_INSN(clc, "clc");
@@ -342,6 +362,7 @@ void start(void)
test_call(&inregs, &outregs);
test_mov_imm(&inregs, &outregs);
test_cmp_imm(&inregs, &outregs);
+ test_add_imm(&inregs, &outregs);
test_io(&inregs, &outregs);
test_eflags_insn(&inregs, &outregs);
exit(0);
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html