MIPS: uasm: Add support for LHU.
authorDavid Daney <david.daney@cavium.com>
Tue, 14 Mar 2017 21:21:40 +0000 (14:21 -0700)
committerRalf Baechle <ralf@linux-mips.org>
Mon, 10 Apr 2017 09:56:04 +0000 (11:56 +0200)
The follow-on BPF JIT patches use the LHU instruction, so add it.

Signed-off-by: David Daney <david.daney@cavium.com>
Cc: James Hogan <james.hogan@imgtec.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Steven J. Hill <steven.hill@cavium.com>
Cc: linux-mips@linux-mips.org
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/15743/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/include/asm/uasm.h
arch/mips/mm/uasm-mips.c
arch/mips/mm/uasm.c

index e9a9e2ade1d216db0d0260b2a796b50b334518e3..d91ed5b506edb035db04ed5d4956d1b8526c5b4a 100644 (file)
@@ -138,6 +138,7 @@ Ip_u2s3u1(_lb);
 Ip_u2s3u1(_ld);
 Ip_u3u1u2(_ldx);
 Ip_u2s3u1(_lh);
+Ip_u2s3u1(_lhu);
 Ip_u2s3u1(_ll);
 Ip_u2s3u1(_lld);
 Ip_u1s2(_lui);
index 763d3f1edb8a4a90cd99728c0310d23e4f873daa..2277499fe6aec3276a117c353cb02f9fc907f545 100644 (file)
@@ -103,6 +103,7 @@ static struct insn insn_table[] = {
        { insn_ld,  M(ld_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
        { insn_ldx, M(spec3_op, 0, 0, 0, ldx_op, lx_op), RS | RT | RD },
        { insn_lh,  M(lh_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
+       { insn_lhu,  M(lhu_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
 #ifndef CONFIG_CPU_MIPSR6
        { insn_lld,  M(lld_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
        { insn_ll,  M(ll_op, 0, 0, 0, 0, 0),  RS | RT | SIMM },
index a82970442b8a4f575a3ea8a42b98840295c6d817..7f400c8d4645641f5bca207f081acbc6be550a18 100644 (file)
@@ -61,7 +61,7 @@ enum opcode {
        insn_sllv, insn_slt, insn_sltiu, insn_sltu, insn_sra, insn_srl,
        insn_srlv, insn_subu, insn_sw, insn_sync, insn_syscall, insn_tlbp,
        insn_tlbr, insn_tlbwi, insn_tlbwr, insn_wait, insn_wsbh, insn_xor,
-       insn_xori, insn_yield, insn_lddir, insn_ldpte,
+       insn_xori, insn_yield, insn_lddir, insn_ldpte, insn_lhu,
 };
 
 struct insn {
@@ -297,6 +297,7 @@ I_u1(_jr)
 I_u2s3u1(_lb)
 I_u2s3u1(_ld)
 I_u2s3u1(_lh)
+I_u2s3u1(_lhu)
 I_u2s3u1(_ll)
 I_u2s3u1(_lld)
 I_u1s2(_lui)