aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips
diff options
context:
space:
mode:
authorMarkos Chandras <markos.chandras@imgtec.com>2014-04-16 08:49:57 -0400
committerRalf Baechle <ralf@linux-mips.org>2014-05-30 10:10:19 -0400
commit8248881835da58fa075299926c2994d12b56895b (patch)
treed7b0ca159c830f13e2ea0686b36b0eb9957a3f3b /arch/mips
parent16d21a812f6bfcbfa84ccc19d38abe797c71b73e (diff)
MIPS: uasm: Add lb uasm instruction
It will be used later on by bpf-jit [ralf@linux-mips.org: Resolved conflict.] Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Diffstat (limited to 'arch/mips')
-rw-r--r--arch/mips/include/asm/uasm.h1
-rw-r--r--arch/mips/mm/uasm-micromips.c1
-rw-r--r--arch/mips/mm/uasm-mips.c1
-rw-r--r--arch/mips/mm/uasm.c17
4 files changed, 12 insertions, 8 deletions
diff --git a/arch/mips/include/asm/uasm.h b/arch/mips/include/asm/uasm.h
index 719a88401afa..f8d63b3b40b4 100644
--- a/arch/mips/include/asm/uasm.h
+++ b/arch/mips/include/asm/uasm.h
@@ -123,6 +123,7 @@ Ip_u1(_j);
123Ip_u1(_jal); 123Ip_u1(_jal);
124Ip_u2u1(_jalr); 124Ip_u2u1(_jalr);
125Ip_u1(_jr); 125Ip_u1(_jr);
126Ip_u2s3u1(_lb);
126Ip_u2s3u1(_ld); 127Ip_u2s3u1(_ld);
127Ip_u3u1u2(_ldx); 128Ip_u3u1u2(_ldx);
128Ip_u2s3u1(_lh); 129Ip_u2s3u1(_lh);
diff --git a/arch/mips/mm/uasm-micromips.c b/arch/mips/mm/uasm-micromips.c
index 1c390a1f3862..775c2800cba2 100644
--- a/arch/mips/mm/uasm-micromips.c
+++ b/arch/mips/mm/uasm-micromips.c
@@ -81,6 +81,7 @@ static struct insn insn_table_MM[] = {
81 { insn_jal, M(mm_jal32_op, 0, 0, 0, 0, 0), JIMM }, 81 { insn_jal, M(mm_jal32_op, 0, 0, 0, 0, 0), JIMM },
82 { insn_jalr, M(mm_pool32a_op, 0, 0, 0, mm_jalr_op, mm_pool32axf_op), RT | RS }, 82 { insn_jalr, M(mm_pool32a_op, 0, 0, 0, mm_jalr_op, mm_pool32axf_op), RT | RS },
83 { insn_jr, M(mm_pool32a_op, 0, 0, 0, mm_jalr_op, mm_pool32axf_op), RS }, 83 { insn_jr, M(mm_pool32a_op, 0, 0, 0, mm_jalr_op, mm_pool32axf_op), RS },
84 { insn_lb, M(mm_lb32_op, 0, 0, 0, 0, 0), RT | RS | SIMM },
84 { insn_ld, 0, 0 }, 85 { insn_ld, 0, 0 },
85 { insn_lh, M(mm_lh32_op, 0, 0, 0, 0, 0), RS | RS | SIMM }, 86 { insn_lh, M(mm_lh32_op, 0, 0, 0, 0, 0), RS | RS | SIMM },
86 { insn_ll, M(mm_pool32c_op, 0, 0, (mm_ll_func << 1), 0, 0), RS | RT | SIMM }, 87 { insn_ll, M(mm_pool32c_op, 0, 0, (mm_ll_func << 1), 0, 0), RS | RT | SIMM },
diff --git a/arch/mips/mm/uasm-mips.c b/arch/mips/mm/uasm-mips.c
index 4f9114b2ff34..38792c2364f5 100644
--- a/arch/mips/mm/uasm-mips.c
+++ b/arch/mips/mm/uasm-mips.c
@@ -86,6 +86,7 @@ static struct insn insn_table[] = {
86 { insn_jalr, M(spec_op, 0, 0, 0, 0, jalr_op), RS | RD }, 86 { insn_jalr, M(spec_op, 0, 0, 0, 0, jalr_op), RS | RD },
87 { insn_j, M(j_op, 0, 0, 0, 0, 0), JIMM }, 87 { insn_j, M(j_op, 0, 0, 0, 0, 0), JIMM },
88 { insn_jr, M(spec_op, 0, 0, 0, 0, jr_op), RS }, 88 { insn_jr, M(spec_op, 0, 0, 0, 0, jr_op), RS },
89 { insn_lb, M(lb_op, 0, 0, 0, 0, 0), RS | RT | SIMM },
89 { insn_ld, M(ld_op, 0, 0, 0, 0, 0), RS | RT | SIMM }, 90 { insn_ld, M(ld_op, 0, 0, 0, 0, 0), RS | RT | SIMM },
90 { insn_ldx, M(spec3_op, 0, 0, 0, ldx_op, lx_op), RS | RT | RD }, 91 { insn_ldx, M(spec3_op, 0, 0, 0, ldx_op, lx_op), RS | RT | RD },
91 { insn_lh, M(lw_op, 0, 0, 0, 0, 0), RS | RT | SIMM }, 92 { insn_lh, M(lw_op, 0, 0, 0, 0, 0), RS | RT | SIMM },
diff --git a/arch/mips/mm/uasm.c b/arch/mips/mm/uasm.c
index 8cf1fb21cedf..00515805fe41 100644
--- a/arch/mips/mm/uasm.c
+++ b/arch/mips/mm/uasm.c
@@ -49,14 +49,14 @@ enum opcode {
49 insn_bne, insn_cache, insn_daddiu, insn_daddu, insn_dins, insn_dinsm, 49 insn_bne, insn_cache, insn_daddiu, insn_daddu, insn_dins, insn_dinsm,
50 insn_divu, insn_dmfc0, insn_dmtc0, insn_drotr, insn_drotr32, insn_dsll, 50 insn_divu, insn_dmfc0, insn_dmtc0, insn_drotr, insn_drotr32, insn_dsll,
51 insn_dsll32, insn_dsra, insn_dsrl, insn_dsrl32, insn_dsubu, insn_eret, 51 insn_dsll32, insn_dsra, insn_dsrl, insn_dsrl32, insn_dsubu, insn_eret,
52 insn_ext, insn_ins, insn_j, insn_jal, insn_jalr, insn_jr, insn_ld, 52 insn_ext, insn_ins, insn_j, insn_jal, insn_jalr, insn_jr, insn_lb,
53 insn_ldx, insn_lh, insn_ll, insn_lld, insn_lui, insn_lw, insn_lwx, 53 insn_ld, insn_ldx, insn_lh, insn_ll, insn_lld, insn_lui, insn_lw,
54 insn_mfc0, insn_mfhi, insn_mflo, insn_mtc0, insn_mul, insn_or, 54 insn_lwx, insn_mfc0, insn_mfhi, insn_mflo, insn_mtc0, insn_mul,
55 insn_ori, insn_pref, insn_rfe, insn_rotr, insn_sc, insn_scd, insn_sd, 55 insn_or, insn_ori, insn_pref, insn_rfe, insn_rotr, insn_sc, insn_scd,
56 insn_sll, insn_sllv, insn_sltiu, insn_sltu, insn_sra, insn_srl, 56 insn_sd, insn_sll, insn_sllv, insn_sltiu, insn_sltu, insn_sra,
57 insn_srlv, insn_subu, insn_sw, insn_sync, insn_syscall, insn_tlbp, 57 insn_srl, insn_srlv, insn_subu, insn_sw, insn_sync, insn_syscall,
58 insn_tlbr, insn_tlbwi, insn_tlbwr, insn_wait, insn_wsbh, insn_xor, 58 insn_tlbp, insn_tlbr, insn_tlbwi, insn_tlbwr, insn_wait, insn_wsbh,
59 insn_xori, insn_yield, 59 insn_xor, insn_xori, insn_yield,
60}; 60};
61 61
62struct insn { 62struct insn {
@@ -269,6 +269,7 @@ I_u1(_j)
269I_u1(_jal) 269I_u1(_jal)
270I_u2u1(_jalr) 270I_u2u1(_jalr)
271I_u1(_jr) 271I_u1(_jr)
272I_u2s3u1(_lb)
272I_u2s3u1(_ld) 273I_u2s3u1(_ld)
273I_u2s3u1(_lh) 274I_u2s3u1(_lh)
274I_u2s3u1(_ll) 275I_u2s3u1(_ll)