RE: [PATCH v4 2/3] Do not mistreat instructions as cmpxchg8b

Metzger, Markus T
2018-10-11T11:56:21Z

Hello Pierre,

> + switch (ir.reg) {
> + case 1: /* cmpxchg8b */
> + if (ir.mod == 3)
> + {
> + ir.addr -= 2;
> + opcode = opcode << 8 | ir.modrm;
> + goto no_support;
> + }

We'd also need to check that neither 66 nor f3 prefixes are used.

> + case 6: /* rdrand */
> + case 7: /* rdseed */
> + if (ir.mod != 3)
> + {
> + /* We don't handle this particular instruction yet. */
> + ir.addr -= 2;
> + opcode = opcode << 8 | ir.modrm;
> + goto no_support;
> + }

We'd also need to check that f3 prefix is not used.

Regards,
Markus.

Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928