[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] x86/emul: Fix sarx emulation test



>>> Andrew Cooper <andrew.cooper3@xxxxxxxxxx> 02/24/17 7:14 PM >>>
>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>

Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>

>--- 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))) ||

If "ebx" was what its name says, there wouldn't have been a problem.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.