Lines Matching refs:inst

26 #include <asm/inst.h>
1263 enum emulation_result kvm_mips_emulate_CP0(union mips_instruction inst,
1281 if (inst.co_format.co) {
1282 switch (inst.co_format.func) {
1305 er = kvm_mips_emul_hypcall(vcpu, inst);
1309 rt = inst.c0r_format.rt;
1310 rd = inst.c0r_format.rd;
1311 sel = inst.c0r_format.sel;
1313 switch (inst.c0r_format.rs) {
1325 kvm_mips_trans_mfc0(inst, opc, vcpu);
1331 kvm_mips_trans_mfc0(inst, opc, vcpu);
1455 kvm_mips_trans_mtc0(inst, opc, vcpu);
1522 kvm_mips_trans_mtc0(inst, opc, vcpu);
1544 if (inst.mfmc0_format.sc) {
1576 vcpu->arch.pc, inst.c0r_format.rs);
1597 enum emulation_result kvm_mips_emulate_store(union mips_instruction inst,
1618 rt = inst.i_format.rt;
1625 switch (inst.i_format.opcode) {
1822 rt = inst.loongson3_lsdc2_format.rt;
1823 switch (inst.loongson3_lsdc2_format.opcode1) {
1865 kvm_err("Godson Extended GS-Store not yet supported (inst=0x%08x)\n",
1866 inst.word);
1872 kvm_err("Store not yet supported (inst=0x%08x)\n",
1873 inst.word);
1897 enum emulation_result kvm_mips_emulate_load(union mips_instruction inst,
1907 rt = inst.i_format.rt;
1908 op = inst.i_format.opcode;
2082 rt = inst.loongson3_lsdc2_format.rt;
2083 switch (inst.loongson3_lsdc2_format.opcode1) {
2109 kvm_err("Godson Extended GS-Load for float not yet supported (inst=0x%08x)\n",
2110 inst.word);
2117 kvm_err("Load not yet supported (inst=0x%08x)\n",
2118 inst.word);
2183 enum emulation_result kvm_mips_emulate_cache(union mips_instruction inst,
2203 base = inst.i_format.rs;
2204 op_inst = inst.i_format.rt;
2206 offset = inst.spec3_format.simmediate;
2208 offset = inst.i_format.simmediate;
2262 kvm_mips_trans_cache_index(inst, opc, vcpu);
2282 kvm_mips_trans_cache_va(inst, opc, vcpu);
2297 kvm_mips_trans_cache_va(inst, opc, vcpu);
2319 union mips_instruction inst;
2326 err = kvm_get_badinstr(opc, vcpu, &inst.word);
2330 switch (inst.r_format.opcode) {
2332 er = kvm_mips_emulate_CP0(inst, opc, cause, vcpu);
2339 er = kvm_mips_emulate_cache(inst, opc, cause, vcpu);
2343 switch (inst.spec3_format.func) {
2347 er = kvm_mips_emulate_cache(inst, opc, cause,
2359 inst.word);
2862 union mips_instruction inst;
2877 err = kvm_get_badinstr(opc, vcpu, &inst.word);
2879 kvm_err("%s: Cannot get inst @ %p (%d)\n", __func__, opc, err);
2883 if (inst.r_format.opcode == spec3_op &&
2884 inst.r_format.func == rdhwr_op &&
2885 inst.r_format.rs == 0 &&
2886 (inst.r_format.re >> 3) == 0) {
2888 int rd = inst.r_format.rd;
2889 int rt = inst.r_format.rt;
2890 int sel = inst.r_format.re & 0x7;
2932 opc, inst.word);