@@ -59,9 +59,12 @@ static const struct insn const insn_table[insn_invalid] = {
59
59
[insn_beql ] = {M (beql_op , 0 , 0 , 0 , 0 , 0 ), RS | RT | BIMM },
60
60
[insn_bgez ] = {M (bcond_op , 0 , bgez_op , 0 , 0 , 0 ), RS | BIMM },
61
61
[insn_bgezl ] = {M (bcond_op , 0 , bgezl_op , 0 , 0 , 0 ), RS | BIMM },
62
+ [insn_bgtz ] = {M (bgtz_op , 0 , 0 , 0 , 0 , 0 ), RS | BIMM },
63
+ [insn_blez ] = {M (blez_op , 0 , 0 , 0 , 0 , 0 ), RS | BIMM },
62
64
[insn_bltz ] = {M (bcond_op , 0 , bltz_op , 0 , 0 , 0 ), RS | BIMM },
63
65
[insn_bltzl ] = {M (bcond_op , 0 , bltzl_op , 0 , 0 , 0 ), RS | BIMM },
64
66
[insn_bne ] = {M (bne_op , 0 , 0 , 0 , 0 , 0 ), RS | RT | BIMM },
67
+ [insn_break ] = {M (spec_op , 0 , 0 , 0 , 0 , break_op ), SCIMM },
65
68
#ifndef CONFIG_CPU_MIPSR6
66
69
[insn_cache ] = {M (cache_op , 0 , 0 , 0 , 0 , 0 ), RS | RT | SIMM },
67
70
#else
@@ -73,19 +76,28 @@ static const struct insn const insn_table[insn_invalid] = {
73
76
[insn_ctcmsa ] = {M (msa_op , 0 , msa_ctc_op , 0 , 0 , msa_elm_op ), RD | RE },
74
77
[insn_daddiu ] = {M (daddiu_op , 0 , 0 , 0 , 0 , 0 ), RS | RT | SIMM },
75
78
[insn_daddu ] = {M (spec_op , 0 , 0 , 0 , 0 , daddu_op ), RS | RT | RD },
79
+ [insn_ddivu ] = {M (spec_op , 0 , 0 , 0 , 0 , ddivu_op ), RS | RT },
76
80
[insn_di ] = {M (cop0_op , mfmc0_op , 0 , 12 , 0 , 0 ), RT },
77
81
[insn_dins ] = {M (spec3_op , 0 , 0 , 0 , 0 , dins_op ), RS | RT | RD | RE },
78
82
[insn_dinsm ] = {M (spec3_op , 0 , 0 , 0 , 0 , dinsm_op ), RS | RT | RD | RE },
83
+ [insn_dinsu ] = {M (spec3_op , 0 , 0 , 0 , 0 , dinsu_op ), RS | RT | RD | RE },
79
84
[insn_divu ] = {M (spec_op , 0 , 0 , 0 , 0 , divu_op ), RS | RT },
80
85
[insn_dmfc0 ] = {M (cop0_op , dmfc_op , 0 , 0 , 0 , 0 ), RT | RD | SET },
81
86
[insn_dmtc0 ] = {M (cop0_op , dmtc_op , 0 , 0 , 0 , 0 ), RT | RD | SET },
87
+ [insn_dmultu ] = {M (spec_op , 0 , 0 , 0 , 0 , dmultu_op ), RS | RT },
82
88
[insn_drotr ] = {M (spec_op , 1 , 0 , 0 , 0 , dsrl_op ), RT | RD | RE },
83
89
[insn_drotr32 ] = {M (spec_op , 1 , 0 , 0 , 0 , dsrl32_op ), RT | RD | RE },
90
+ [insn_dsbh ] = {M (spec3_op , 0 , 0 , 0 , dsbh_op , dbshfl_op ), RT | RD },
91
+ [insn_dshd ] = {M (spec3_op , 0 , 0 , 0 , dshd_op , dbshfl_op ), RT | RD },
84
92
[insn_dsll ] = {M (spec_op , 0 , 0 , 0 , 0 , dsll_op ), RT | RD | RE },
85
93
[insn_dsll32 ] = {M (spec_op , 0 , 0 , 0 , 0 , dsll32_op ), RT | RD | RE },
94
+ [insn_dsllv ] = {M (spec_op , 0 , 0 , 0 , 0 , dsllv_op ), RS | RT | RD },
86
95
[insn_dsra ] = {M (spec_op , 0 , 0 , 0 , 0 , dsra_op ), RT | RD | RE },
96
+ [insn_dsra32 ] = {M (spec_op , 0 , 0 , 0 , 0 , dsra32_op ), RT | RD | RE },
97
+ [insn_dsrav ] = {M (spec_op , 0 , 0 , 0 , 0 , dsrav_op ), RS | RT | RD },
87
98
[insn_dsrl ] = {M (spec_op , 0 , 0 , 0 , 0 , dsrl_op ), RT | RD | RE },
88
99
[insn_dsrl32 ] = {M (spec_op , 0 , 0 , 0 , 0 , dsrl32_op ), RT | RD | RE },
100
+ [insn_dsrlv ] = {M (spec_op , 0 , 0 , 0 , 0 , dsrlv_op ), RS | RT | RD },
89
101
[insn_dsubu ] = {M (spec_op , 0 , 0 , 0 , 0 , dsubu_op ), RS | RT | RD },
90
102
[insn_eret ] = {M (cop0_op , cop_op , 0 , 0 , 0 , eret_op ), 0 },
91
103
[insn_ext ] = {M (spec3_op , 0 , 0 , 0 , 0 , ext_op ), RS | RT | RD | RE },
@@ -99,6 +111,7 @@ static const struct insn const insn_table[insn_invalid] = {
99
111
[insn_jr ] = {M (spec_op , 0 , 0 , 0 , 0 , jalr_op ), RS },
100
112
#endif
101
113
[insn_lb ] = {M (lb_op , 0 , 0 , 0 , 0 , 0 ), RS | RT | SIMM },
114
+ [insn_lbu ] = {M (lbu_op , 0 , 0 , 0 , 0 , 0 ), RS | RT | SIMM },
102
115
[insn_ld ] = {M (ld_op , 0 , 0 , 0 , 0 , 0 ), RS | RT | SIMM },
103
116
[insn_lddir ] = {M (lwc2_op , 0 , 0 , 0 , lddir_op , mult_op ), RS | RT | RD },
104
117
[insn_ldpte ] = {M (lwc2_op , 0 , 0 , 0 , ldpte_op , mult_op ), RS | RD },
@@ -114,11 +127,14 @@ static const struct insn const insn_table[insn_invalid] = {
114
127
#endif
115
128
[insn_lui ] = {M (lui_op , 0 , 0 , 0 , 0 , 0 ), RT | SIMM },
116
129
[insn_lw ] = {M (lw_op , 0 , 0 , 0 , 0 , 0 ), RS | RT | SIMM },
130
+ [insn_lwu ] = {M (lwu_op , 0 , 0 , 0 , 0 , 0 ), RS | RT | SIMM },
117
131
[insn_lwx ] = {M (spec3_op , 0 , 0 , 0 , lwx_op , lx_op ), RS | RT | RD },
118
132
[insn_mfc0 ] = {M (cop0_op , mfc_op , 0 , 0 , 0 , 0 ), RT | RD | SET },
119
133
[insn_mfhc0 ] = {M (cop0_op , mfhc0_op , 0 , 0 , 0 , 0 ), RT | RD | SET },
120
134
[insn_mfhi ] = {M (spec_op , 0 , 0 , 0 , 0 , mfhi_op ), RD },
121
135
[insn_mflo ] = {M (spec_op , 0 , 0 , 0 , 0 , mflo_op ), RD },
136
+ [insn_movn ] = {M (spec_op , 0 , 0 , 0 , 0 , movn_op ), RS | RT | RD },
137
+ [insn_movz ] = {M (spec_op , 0 , 0 , 0 , 0 , movz_op ), RS | RT | RD },
122
138
[insn_mtc0 ] = {M (cop0_op , mtc_op , 0 , 0 , 0 , 0 ), RT | RD | SET },
123
139
[insn_mthc0 ] = {M (cop0_op , mthc0_op , 0 , 0 , 0 , 0 ), RT | RD | SET },
124
140
[insn_mthi ] = {M (spec_op , 0 , 0 , 0 , 0 , mthi_op ), RS },
@@ -128,6 +144,8 @@ static const struct insn const insn_table[insn_invalid] = {
128
144
#else
129
145
[insn_mul ] = {M (spec_op , 0 , 0 , 0 , mult_mul_op , mult_op ), RS | RT | RD },
130
146
#endif
147
+ [insn_multu ] = {M (spec_op , 0 , 0 , 0 , 0 , multu_op ), RS | RT },
148
+ [insn_nor ] = {M (spec_op , 0 , 0 , 0 , 0 , nor_op ), RS | RT | RD },
131
149
[insn_or ] = {M (spec_op , 0 , 0 , 0 , 0 , or_op ), RS | RT | RD },
132
150
[insn_ori ] = {M (ori_op , 0 , 0 , 0 , 0 , 0 ), RS | RT | UIMM },
133
151
#ifndef CONFIG_CPU_MIPSR6
@@ -137,6 +155,7 @@ static const struct insn const insn_table[insn_invalid] = {
137
155
#endif
138
156
[insn_rfe ] = {M (cop0_op , cop_op , 0 , 0 , 0 , rfe_op ), 0 },
139
157
[insn_rotr ] = {M (spec_op , 1 , 0 , 0 , 0 , srl_op ), RT | RD | RE },
158
+ [insn_sb ] = {M (sb_op , 0 , 0 , 0 , 0 , 0 ), RS | RT | SIMM },
140
159
#ifndef CONFIG_CPU_MIPSR6
141
160
[insn_sc ] = {M (sc_op , 0 , 0 , 0 , 0 , 0 ), RS | RT | SIMM },
142
161
[insn_scd ] = {M (scd_op , 0 , 0 , 0 , 0 , 0 ), RS | RT | SIMM },
@@ -145,9 +164,11 @@ static const struct insn const insn_table[insn_invalid] = {
145
164
[insn_scd ] = {M6 (spec3_op , 0 , 0 , 0 , scd6_op ), RS | RT | SIMM9 },
146
165
#endif
147
166
[insn_sd ] = {M (sd_op , 0 , 0 , 0 , 0 , 0 ), RS | RT | SIMM },
167
+ [insn_sh ] = {M (sh_op , 0 , 0 , 0 , 0 , 0 ), RS | RT | SIMM },
148
168
[insn_sll ] = {M (spec_op , 0 , 0 , 0 , 0 , sll_op ), RT | RD | RE },
149
169
[insn_sllv ] = {M (spec_op , 0 , 0 , 0 , 0 , sllv_op ), RS | RT | RD },
150
170
[insn_slt ] = {M (spec_op , 0 , 0 , 0 , 0 , slt_op ), RS | RT | RD },
171
+ [insn_slti ] = {M (slti_op , 0 , 0 , 0 , 0 , 0 ), RS | RT | SIMM },
151
172
[insn_sltiu ] = {M (sltiu_op , 0 , 0 , 0 , 0 , 0 ), RS | RT | SIMM },
152
173
[insn_sltu ] = {M (spec_op , 0 , 0 , 0 , 0 , sltu_op ), RS | RT | RD },
153
174
[insn_sra ] = {M (spec_op , 0 , 0 , 0 , 0 , sra_op ), RT | RD | RE },
0 commit comments