mirror of https://gitee.com/openkylin/linux.git
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 b0a3eae2b9
("MIPS: inst.h: define COP0 wait op"), merged in v3.16-rc1.
Signed-off-by: James 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: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
f4956f620d
commit
b2c5963577
|
@ -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
|
||||
};
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
/*
|
||||
* 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__ */
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue