Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

MIPS: uasm: Add OR instruction.

This is needed for the fix of the M3 workaround.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

+4 -1
+1
arch/mips/include/asm/uasm.h
··· 84 84 Ip_u1u2u3(_mfc0); 85 85 Ip_u1u2u3(_mtc0); 86 86 Ip_u2u1u3(_ori); 87 + Ip_u3u1u2(_or); 87 88 Ip_u2s3u1(_pref); 88 89 Ip_0(_rfe); 89 90 Ip_u2s3u1(_sc);
+3 -1
arch/mips/mm/uasm.c
··· 64 64 insn_dmtc0, insn_dsll, insn_dsll32, insn_dsra, insn_dsrl, 65 65 insn_dsrl32, insn_drotr, insn_dsubu, insn_eret, insn_j, insn_jal, 66 66 insn_jr, insn_ld, insn_ll, insn_lld, insn_lui, insn_lw, insn_mfc0, 67 - insn_mtc0, insn_ori, insn_pref, insn_rfe, insn_sc, insn_scd, 67 + insn_mtc0, insn_or, insn_ori, insn_pref, insn_rfe, insn_sc, insn_scd, 68 68 insn_sd, insn_sll, insn_sra, insn_srl, insn_rotr, insn_subu, insn_sw, 69 69 insn_tlbp, insn_tlbr, insn_tlbwi, insn_tlbwr, insn_xor, insn_xori, 70 70 insn_dins, insn_syscall ··· 120 120 { insn_lw, M(lw_op, 0, 0, 0, 0, 0), RS | RT | SIMM }, 121 121 { insn_mfc0, M(cop0_op, mfc_op, 0, 0, 0, 0), RT | RD | SET}, 122 122 { insn_mtc0, M(cop0_op, mtc_op, 0, 0, 0, 0), RT | RD | SET}, 123 + { insn_or, M(spec_op, 0, 0, 0, 0, or_op), RS | RT | RD }, 123 124 { insn_ori, M(ori_op, 0, 0, 0, 0, 0), RS | RT | UIMM }, 124 125 { insn_pref, M(pref_op, 0, 0, 0, 0, 0), RS | RT | SIMM }, 125 126 { insn_rfe, M(cop0_op, cop_op, 0, 0, 0, rfe_op), 0 }, ··· 388 387 I_u1u2u3(_mfc0) 389 388 I_u1u2u3(_mtc0) 390 389 I_u2u1u3(_ori) 390 + I_u3u1u2(_or) 391 391 I_u2s3u1(_pref) 392 392 I_0(_rfe) 393 393 I_u2s3u1(_sc)