Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b2c59635 authored by James Hogan's avatar James Hogan Committed by Ralf Baechle
Browse files

MIPS: Move KVM specific opcodes into asm/inst.h



The header arch/mips/kvm/opcode.h defines a few extra opcodes which
aren't in arch/mips/include/uapi/asm/inst.h. There's nothing KVM
specific about them, so lets move them into inst.h where they belong and
delete the header.

Note that mfmcz_op is renamed to mfmc0_op to match the instruction set
manual, and wait_op was already added to inst.h in commit b0a3eae2
("MIPS: inst.h: define COP0 wait op"), merged in v3.16-rc1.

Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Gleb Natapov <gleb@kernel.org>
Cc: linux-mips@linux-mips.org
Cc: kvm@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/11895/


Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent f4956f62
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -116,7 +116,8 @@ enum cop_op {
	dmtc_op	      = 0x05, ctc_op	    = 0x06,
	mthc0_op      = 0x06, mthc_op	    = 0x07,
	bc_op	      = 0x08, bc1eqz_op     = 0x09,
	bc1nez_op     = 0x0d, cop_op	    = 0x10,
	mfmc0_op      = 0x0b, bc1nez_op     = 0x0d,
	wrpgpr_op     = 0x0e, cop_op	    = 0x10,
	copm_op	      = 0x18
};

+3 −4
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@
#include <asm/r4kcache.h>
#define CONFIG_MIPS_MT

#include "opcode.h"
#include "interrupt.h"
#include "commpage.h"

@@ -1240,7 +1239,7 @@ enum emulation_result kvm_mips_emulate_CP0(uint32_t inst, uint32_t *opc,
			er = EMULATE_FAIL;
			break;

		case mfmcz_op:
		case mfmc0_op:
#ifdef KVM_MIPS_DEBUG_COP0_COUNTERS
			cop0->stat[MIPS_CP0_STATUS][0]++;
#endif
@@ -1249,11 +1248,11 @@ enum emulation_result kvm_mips_emulate_CP0(uint32_t inst, uint32_t *opc,
				    kvm_read_c0_guest_status(cop0);
			/* EI */
			if (inst & 0x20) {
				kvm_debug("[%#lx] mfmcz_op: EI\n",
				kvm_debug("[%#lx] mfmc0_op: EI\n",
					  vcpu->arch.pc);
				kvm_set_c0_guest_status(cop0, ST0_IE);
			} else {
				kvm_debug("[%#lx] mfmcz_op: DI\n",
				kvm_debug("[%#lx] mfmc0_op: DI\n",
					  vcpu->arch.pc);
				kvm_clear_c0_guest_status(cop0, ST0_IE);
			}

arch/mips/kvm/opcode.h

deleted100644 → 0
+0 −22
Original line number Diff line number Diff line
/*
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file "COPYING" in the main directory of this archive
 * for more details.
 *
 * Copyright (C) 2012  MIPS Technologies, Inc.  All rights reserved.
 * Authors: Sanjay Lal <sanjayl@kymasys.com>
 */

/* Define opcode values not defined in <asm/isnt.h> */

#ifndef __KVM_MIPS_OPCODE_H__
#define __KVM_MIPS_OPCODE_H__

/* COP0 Ops */
#define mfmcz_op	0x0b	/* 01011 */
#define wrpgpr_op	0x0e	/* 01110 */

/* COP0 opcodes (only if COP0 and CO=1): */
#define wait_op		0x20	/* 100000 */

#endif /* __KVM_MIPS_OPCODE_H__ */
+0 −1
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

#include <linux/kvm_host.h>

#include "opcode.h"
#include "interrupt.h"

static gpa_t kvm_trap_emul_gva_to_gpa_cb(gva_t gva)