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

Re: [Xen-devel] [PATCH 2/4] x86emul: drop RIP-relative special case for TEST



On 15/08/16 09:34, Jan Beulich wrote:
> @@ -1851,11 +1911,6 @@ x86_emulate(
>                          ((op_bytes == 8) ? 4 : op_bytes);
>                  else if ( (d & SrcMask) == SrcImmByte )
>                      ea.mem.off += 1;
> -                else if ( !ext && ((b & 0xfe) == 0xf6) &&
> -                          ((modrm_reg & 7) <= 1) )

Do we actually handle these cases correctly?  0xf6 /0 (imm8) and 0xf7 /0
(imm) look to work as expected

However, 0xf6 /1, 0xf7 /1 are harder to pin down.  We have an
implementation of it, but the only other reference I can find to them
are in the AMD grp3 opcode map, where they appear equal to their /0
variants.  The /1 variants do not appear in the AMD description of the
TEST instruction, and do not appear anywhere in the Intel manuals.

Suravee: Can you confirm whether the /1 variants are expected to be
implemented and copies of the /0 variants?

~Andrew

> -                    /* Special case in Grp3: test has immediate operand. */
> -                    ea.mem.off += (d & ByteOp) ? 1
> -                        : ((op_bytes == 8) ? 4 : op_bytes);
>                  break;
>              case 1:
>                  ea.mem.off += insn_fetch_type(int8_t);


_______________________________________________
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®.