[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] x86/emul: Fix sarx emulation test
The emulation tests run `sarx %edx,(%ecx),%ebx` with 0xfedcba98 pointed at by %ecx, and 0xff13 in %rdx. As the instruction uses a 32bit operand size, the expected result is 0x00000000ffffffdb in %rbx (rather than 0xffffffffffffffdb), due to normal usual zeroing of the upper half of the 64bit register. The test harness was incorrectly sign extending from 32 bits to 64 bits rather than zero extending when checking the result of emulation, causing a false negative failure. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> --- tools/tests/x86_emulator/test_x86_emulator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/tests/x86_emulator/test_x86_emulator.c b/tools/tests/x86_emulator/test_x86_emulator.c index 71e3b96..37d00f1 100644 --- a/tools/tests/x86_emulator/test_x86_emulator.c +++ b/tools/tests/x86_emulator/test_x86_emulator.c @@ -1155,7 +1155,7 @@ int main(int argc, char **argv) regs.eflags = 0xa43; rc = x86_emulate(&ctxt, &emulops); if ( (rc != X86EMUL_OKAY) || - regs.ebx != ((signed)*res >> (regs.edx & 0x1f)) || + regs.ebx != (unsigned)(((signed)*res >> (regs.edx & 0x1f))) || regs.edx != 0xff13 || *res != 0xfedcba98 || regs.eflags != 0xa43 || !check_eip(sarx) ) goto fail; -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |