Commit aca7f966 authored by Anthony Liguori's avatar Anthony Liguori Committed by Avi Kivity
Browse files

KVM: x86 emulator: Add vmmcall/vmcall to x86_emulate (v3)



Add vmmcall/vmcall to x86_emulate.  Future patch will implement functionality
for these instructions.

Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
Signed-off-by: default avatarAvi Kivity <avi@qumranet.com>
parent dd430ca2
Loading
Loading
Loading
Loading
+17 −6
Original line number Diff line number Diff line
@@ -1380,6 +1380,12 @@ twobyte_insn:
			u16 size;
			unsigned long address;

		case 0: /* vmcall */
			if (modrm_mod != 3 || modrm_rm != 1)
				goto cannot_emulate;

			/* nop */
			break;
		case 2: /* lgdt */
			rc = read_descriptor(ctxt, ops, src.ptr,
					     &size, &address, op_bytes);
@@ -1387,12 +1393,17 @@ twobyte_insn:
				goto done;
			realmode_lgdt(ctxt->vcpu, size, address);
			break;
		case 3: /* lidt */
		case 3: /* lidt/vmmcall */
			if (modrm_mod == 3 && modrm_rm == 1) {
				/* nop */
			} else {
				rc = read_descriptor(ctxt, ops, src.ptr,
					     &size, &address, op_bytes);
						     &size, &address,
						     op_bytes);
				if (rc)
					goto done;
				realmode_lidt(ctxt->vcpu, size, address);
			}
			break;
		case 4: /* smsw */
			if (modrm_mod != 3)