insns.decode (25319B)
1 # SPDX-License-Identifier: GPL-2.0-or-later 2 # 3 # LoongArch instruction decode definitions. 4 # 5 # Copyright (c) 2021 Loongson Technology Corporation Limited 6 # 7 8 # 9 # Fields 10 # 11 %i14s2 10:s14 !function=shl_2 12 %sa2p1 15:2 !function=plus_1 13 %offs21 0:s5 10:16 !function=shl_2 14 %offs16 10:s16 !function=shl_2 15 %offs26 0:s10 10:16 !function=shl_2 16 17 # 18 # Argument sets 19 # 20 &i imm 21 &r_i rd imm 22 &rr rd rj 23 &rr_jk rj rk 24 &rrr rd rj rk 25 &rr_i rd rj imm 26 &hint_r_i hint rj imm 27 &rrr_sa rd rj rk sa 28 &rr_ms_ls rd rj ms ls 29 &ff fd fj 30 &fff fd fj fk 31 &ffff fd fj fk fa 32 &cff_fcond cd fj fk fcond 33 &fffc fd fj fk ca 34 &fr fd rj 35 &rf rd fj 36 &fcsrd_r fcsrd rj 37 &r_fcsrs rd fcsrs 38 &cf cd fj 39 &fc fd cj 40 &cr cd rj 41 &rc rd cj 42 &frr fd rj rk 43 &fr_i fd rj imm 44 &r_offs rj offs 45 &c_offs cj offs 46 &offs offs 47 &rr_offs rj rd offs 48 &r_csr rd csr 49 &rr_csr rd rj csr 50 &empty 51 &i_rr imm rj rk 52 &cop_r_i cop rj imm 53 &j_i rj imm 54 55 # 56 # Formats 57 # 58 @i15 .... ........ ..... imm:15 &i 59 @rr .... ........ ..... ..... rj:5 rd:5 &rr 60 @rr_jk .... ........ ..... rk:5 rj:5 ..... &rr_jk 61 @rrr .... ........ ..... rk:5 rj:5 rd:5 &rrr 62 @r_i20 .... ... imm:s20 rd:5 &r_i 63 @rr_ui5 .... ........ ..... imm:5 rj:5 rd:5 &rr_i 64 @rr_ui6 .... ........ .... imm:6 rj:5 rd:5 &rr_i 65 @rr_ui8 .. ........ .... imm:8 rj:5 rd:5 &rr_i 66 @rr_i12 .... ...... imm:s12 rj:5 rd:5 &rr_i 67 @rr_ui12 .... ...... imm:12 rj:5 rd:5 &rr_i 68 @rr_i14s2 .... .... .............. rj:5 rd:5 &rr_i imm=%i14s2 69 @rr_i16 .... .. imm:s16 rj:5 rd:5 &rr_i 70 @hint_r_i12 .... ...... imm:s12 rj:5 hint:5 &hint_r_i 71 @rrr_sa2p1 .... ........ ... .. rk:5 rj:5 rd:5 &rrr_sa sa=%sa2p1 72 @rrr_sa2 .... ........ ... sa:2 rk:5 rj:5 rd:5 &rrr_sa 73 @rrr_sa3 .... ........ .. sa:3 rk:5 rj:5 rd:5 &rrr_sa 74 @rr_2bw .... ....... ms:5 . ls:5 rj:5 rd:5 &rr_ms_ls 75 @rr_2bd .... ...... ms:6 ls:6 rj:5 rd:5 &rr_ms_ls 76 @ff .... ........ ..... ..... fj:5 fd:5 &ff 77 @fff .... ........ ..... fk:5 fj:5 fd:5 &fff 78 @ffff .... ........ fa:5 fk:5 fj:5 fd:5 &ffff 79 @cff_fcond .... ........ fcond:5 fk:5 fj:5 .. cd:3 &cff_fcond 80 @fffc .... ........ .. ca:3 fk:5 fj:5 fd:5 &fffc 81 @fr .... ........ ..... ..... rj:5 fd:5 &fr 82 @rf .... ........ ..... ..... fj:5 rd:5 &rf 83 @fcsrd_r .... ........ ..... ..... rj:5 fcsrd:5 &fcsrd_r 84 @r_fcsrs .... ........ ..... ..... fcsrs:5 rd:5 &r_fcsrs 85 @cf .... ........ ..... ..... fj:5 .. cd:3 &cf 86 @fc .... ........ ..... ..... .. cj:3 fd:5 &fc 87 @cr .... ........ ..... ..... rj:5 .. cd:3 &cr 88 @rc .... ........ ..... ..... .. cj:3 rd:5 &rc 89 @frr .... ........ ..... rk:5 rj:5 fd:5 &frr 90 @fr_i12 .... ...... imm:s12 rj:5 fd:5 &fr_i 91 @r_offs21 .... .. ................ rj:5 ..... &r_offs offs=%offs21 92 @c_offs21 .... .. ................ .. cj:3 ..... &c_offs offs=%offs21 93 @offs26 .... .. .......................... &offs offs=%offs26 94 @rr_offs16 .... .. ................ rj:5 rd:5 &rr_offs offs=%offs16 95 @r_csr .... .... csr:14 ..... rd:5 &r_csr 96 @rr_csr .... .... csr:14 rj:5 rd:5 &rr_csr 97 @empty .... ........ ..... ..... ..... ..... &empty 98 @i_rr ...... ...... ..... rk:5 rj:5 imm:5 &i_rr 99 @cop_r_i .... ...... imm:s12 rj:5 cop:5 &cop_r_i 100 @j_i .... ........ .. imm:8 rj:5 ..... &j_i 101 102 # 103 # Fixed point arithmetic operation instruction 104 # 105 add_w 0000 00000001 00000 ..... ..... ..... @rrr 106 add_d 0000 00000001 00001 ..... ..... ..... @rrr 107 sub_w 0000 00000001 00010 ..... ..... ..... @rrr 108 sub_d 0000 00000001 00011 ..... ..... ..... @rrr 109 slt 0000 00000001 00100 ..... ..... ..... @rrr 110 sltu 0000 00000001 00101 ..... ..... ..... @rrr 111 slti 0000 001000 ............ ..... ..... @rr_i12 112 sltui 0000 001001 ............ ..... ..... @rr_i12 113 nor 0000 00000001 01000 ..... ..... ..... @rrr 114 and 0000 00000001 01001 ..... ..... ..... @rrr 115 or 0000 00000001 01010 ..... ..... ..... @rrr 116 xor 0000 00000001 01011 ..... ..... ..... @rrr 117 orn 0000 00000001 01100 ..... ..... ..... @rrr 118 andn 0000 00000001 01101 ..... ..... ..... @rrr 119 mul_w 0000 00000001 11000 ..... ..... ..... @rrr 120 mulh_w 0000 00000001 11001 ..... ..... ..... @rrr 121 mulh_wu 0000 00000001 11010 ..... ..... ..... @rrr 122 mul_d 0000 00000001 11011 ..... ..... ..... @rrr 123 mulh_d 0000 00000001 11100 ..... ..... ..... @rrr 124 mulh_du 0000 00000001 11101 ..... ..... ..... @rrr 125 mulw_d_w 0000 00000001 11110 ..... ..... ..... @rrr 126 mulw_d_wu 0000 00000001 11111 ..... ..... ..... @rrr 127 div_w 0000 00000010 00000 ..... ..... ..... @rrr 128 mod_w 0000 00000010 00001 ..... ..... ..... @rrr 129 div_wu 0000 00000010 00010 ..... ..... ..... @rrr 130 mod_wu 0000 00000010 00011 ..... ..... ..... @rrr 131 div_d 0000 00000010 00100 ..... ..... ..... @rrr 132 mod_d 0000 00000010 00101 ..... ..... ..... @rrr 133 div_du 0000 00000010 00110 ..... ..... ..... @rrr 134 mod_du 0000 00000010 00111 ..... ..... ..... @rrr 135 alsl_w 0000 00000000 010 .. ..... ..... ..... @rrr_sa2p1 136 alsl_wu 0000 00000000 011 .. ..... ..... ..... @rrr_sa2p1 137 alsl_d 0000 00000010 110 .. ..... ..... ..... @rrr_sa2p1 138 lu12i_w 0001 010 .................... ..... @r_i20 139 lu32i_d 0001 011 .................... ..... @r_i20 140 lu52i_d 0000 001100 ............ ..... ..... @rr_i12 141 pcaddi 0001 100 .................... ..... @r_i20 142 pcalau12i 0001 101 .................... ..... @r_i20 143 pcaddu12i 0001 110 .................... ..... @r_i20 144 pcaddu18i 0001 111 .................... ..... @r_i20 145 addi_w 0000 001010 ............ ..... ..... @rr_i12 146 addi_d 0000 001011 ............ ..... ..... @rr_i12 147 addu16i_d 0001 00 ................ ..... ..... @rr_i16 148 andi 0000 001101 ............ ..... ..... @rr_ui12 149 ori 0000 001110 ............ ..... ..... @rr_ui12 150 xori 0000 001111 ............ ..... ..... @rr_ui12 151 152 # 153 # Fixed point shift operation instruction 154 # 155 sll_w 0000 00000001 01110 ..... ..... ..... @rrr 156 srl_w 0000 00000001 01111 ..... ..... ..... @rrr 157 sra_w 0000 00000001 10000 ..... ..... ..... @rrr 158 sll_d 0000 00000001 10001 ..... ..... ..... @rrr 159 srl_d 0000 00000001 10010 ..... ..... ..... @rrr 160 sra_d 0000 00000001 10011 ..... ..... ..... @rrr 161 rotr_w 0000 00000001 10110 ..... ..... ..... @rrr 162 rotr_d 0000 00000001 10111 ..... ..... ..... @rrr 163 slli_w 0000 00000100 00001 ..... ..... ..... @rr_ui5 164 slli_d 0000 00000100 0001 ...... ..... ..... @rr_ui6 165 srli_w 0000 00000100 01001 ..... ..... ..... @rr_ui5 166 srli_d 0000 00000100 0101 ...... ..... ..... @rr_ui6 167 srai_w 0000 00000100 10001 ..... ..... ..... @rr_ui5 168 srai_d 0000 00000100 1001 ...... ..... ..... @rr_ui6 169 rotri_w 0000 00000100 11001 ..... ..... ..... @rr_ui5 170 rotri_d 0000 00000100 1101 ...... ..... ..... @rr_ui6 171 172 # 173 # Fixed point bit operation instruction 174 # 175 ext_w_h 0000 00000000 00000 10110 ..... ..... @rr 176 ext_w_b 0000 00000000 00000 10111 ..... ..... @rr 177 clo_w 0000 00000000 00000 00100 ..... ..... @rr 178 clz_w 0000 00000000 00000 00101 ..... ..... @rr 179 cto_w 0000 00000000 00000 00110 ..... ..... @rr 180 ctz_w 0000 00000000 00000 00111 ..... ..... @rr 181 clo_d 0000 00000000 00000 01000 ..... ..... @rr 182 clz_d 0000 00000000 00000 01001 ..... ..... @rr 183 cto_d 0000 00000000 00000 01010 ..... ..... @rr 184 ctz_d 0000 00000000 00000 01011 ..... ..... @rr 185 revb_2h 0000 00000000 00000 01100 ..... ..... @rr 186 revb_4h 0000 00000000 00000 01101 ..... ..... @rr 187 revb_2w 0000 00000000 00000 01110 ..... ..... @rr 188 revb_d 0000 00000000 00000 01111 ..... ..... @rr 189 revh_2w 0000 00000000 00000 10000 ..... ..... @rr 190 revh_d 0000 00000000 00000 10001 ..... ..... @rr 191 bitrev_4b 0000 00000000 00000 10010 ..... ..... @rr 192 bitrev_8b 0000 00000000 00000 10011 ..... ..... @rr 193 bitrev_w 0000 00000000 00000 10100 ..... ..... @rr 194 bitrev_d 0000 00000000 00000 10101 ..... ..... @rr 195 bytepick_w 0000 00000000 100 .. ..... ..... ..... @rrr_sa2 196 bytepick_d 0000 00000000 11 ... ..... ..... ..... @rrr_sa3 197 maskeqz 0000 00000001 00110 ..... ..... ..... @rrr 198 masknez 0000 00000001 00111 ..... ..... ..... @rrr 199 bstrins_w 0000 0000011 ..... 0 ..... ..... ..... @rr_2bw 200 bstrpick_w 0000 0000011 ..... 1 ..... ..... ..... @rr_2bw 201 bstrins_d 0000 000010 ...... ...... ..... ..... @rr_2bd 202 bstrpick_d 0000 000011 ...... ...... ..... ..... @rr_2bd 203 204 # 205 # Fixed point load/store instruction 206 # 207 ld_b 0010 100000 ............ ..... ..... @rr_i12 208 ld_h 0010 100001 ............ ..... ..... @rr_i12 209 ld_w 0010 100010 ............ ..... ..... @rr_i12 210 ld_d 0010 100011 ............ ..... ..... @rr_i12 211 st_b 0010 100100 ............ ..... ..... @rr_i12 212 st_h 0010 100101 ............ ..... ..... @rr_i12 213 st_w 0010 100110 ............ ..... ..... @rr_i12 214 st_d 0010 100111 ............ ..... ..... @rr_i12 215 ld_bu 0010 101000 ............ ..... ..... @rr_i12 216 ld_hu 0010 101001 ............ ..... ..... @rr_i12 217 ld_wu 0010 101010 ............ ..... ..... @rr_i12 218 ldx_b 0011 10000000 00000 ..... ..... ..... @rrr 219 ldx_h 0011 10000000 01000 ..... ..... ..... @rrr 220 ldx_w 0011 10000000 10000 ..... ..... ..... @rrr 221 ldx_d 0011 10000000 11000 ..... ..... ..... @rrr 222 stx_b 0011 10000001 00000 ..... ..... ..... @rrr 223 stx_h 0011 10000001 01000 ..... ..... ..... @rrr 224 stx_w 0011 10000001 10000 ..... ..... ..... @rrr 225 stx_d 0011 10000001 11000 ..... ..... ..... @rrr 226 ldx_bu 0011 10000010 00000 ..... ..... ..... @rrr 227 ldx_hu 0011 10000010 01000 ..... ..... ..... @rrr 228 ldx_wu 0011 10000010 10000 ..... ..... ..... @rrr 229 preld 0010 101011 ............ ..... ..... @hint_r_i12 230 dbar 0011 10000111 00100 ............... @i15 231 ibar 0011 10000111 00101 ............... @i15 232 ldptr_w 0010 0100 .............. ..... ..... @rr_i14s2 233 stptr_w 0010 0101 .............. ..... ..... @rr_i14s2 234 ldptr_d 0010 0110 .............. ..... ..... @rr_i14s2 235 stptr_d 0010 0111 .............. ..... ..... @rr_i14s2 236 ldgt_b 0011 10000111 10000 ..... ..... ..... @rrr 237 ldgt_h 0011 10000111 10001 ..... ..... ..... @rrr 238 ldgt_w 0011 10000111 10010 ..... ..... ..... @rrr 239 ldgt_d 0011 10000111 10011 ..... ..... ..... @rrr 240 ldle_b 0011 10000111 10100 ..... ..... ..... @rrr 241 ldle_h 0011 10000111 10101 ..... ..... ..... @rrr 242 ldle_w 0011 10000111 10110 ..... ..... ..... @rrr 243 ldle_d 0011 10000111 10111 ..... ..... ..... @rrr 244 stgt_b 0011 10000111 11000 ..... ..... ..... @rrr 245 stgt_h 0011 10000111 11001 ..... ..... ..... @rrr 246 stgt_w 0011 10000111 11010 ..... ..... ..... @rrr 247 stgt_d 0011 10000111 11011 ..... ..... ..... @rrr 248 stle_b 0011 10000111 11100 ..... ..... ..... @rrr 249 stle_h 0011 10000111 11101 ..... ..... ..... @rrr 250 stle_w 0011 10000111 11110 ..... ..... ..... @rrr 251 stle_d 0011 10000111 11111 ..... ..... ..... @rrr 252 253 # 254 # Fixed point atomic instruction 255 # 256 ll_w 0010 0000 .............. ..... ..... @rr_i14s2 257 sc_w 0010 0001 .............. ..... ..... @rr_i14s2 258 ll_d 0010 0010 .............. ..... ..... @rr_i14s2 259 sc_d 0010 0011 .............. ..... ..... @rr_i14s2 260 amswap_w 0011 10000110 00000 ..... ..... ..... @rrr 261 amswap_d 0011 10000110 00001 ..... ..... ..... @rrr 262 amadd_w 0011 10000110 00010 ..... ..... ..... @rrr 263 amadd_d 0011 10000110 00011 ..... ..... ..... @rrr 264 amand_w 0011 10000110 00100 ..... ..... ..... @rrr 265 amand_d 0011 10000110 00101 ..... ..... ..... @rrr 266 amor_w 0011 10000110 00110 ..... ..... ..... @rrr 267 amor_d 0011 10000110 00111 ..... ..... ..... @rrr 268 amxor_w 0011 10000110 01000 ..... ..... ..... @rrr 269 amxor_d 0011 10000110 01001 ..... ..... ..... @rrr 270 ammax_w 0011 10000110 01010 ..... ..... ..... @rrr 271 ammax_d 0011 10000110 01011 ..... ..... ..... @rrr 272 ammin_w 0011 10000110 01100 ..... ..... ..... @rrr 273 ammin_d 0011 10000110 01101 ..... ..... ..... @rrr 274 ammax_wu 0011 10000110 01110 ..... ..... ..... @rrr 275 ammax_du 0011 10000110 01111 ..... ..... ..... @rrr 276 ammin_wu 0011 10000110 10000 ..... ..... ..... @rrr 277 ammin_du 0011 10000110 10001 ..... ..... ..... @rrr 278 amswap_db_w 0011 10000110 10010 ..... ..... ..... @rrr 279 amswap_db_d 0011 10000110 10011 ..... ..... ..... @rrr 280 amadd_db_w 0011 10000110 10100 ..... ..... ..... @rrr 281 amadd_db_d 0011 10000110 10101 ..... ..... ..... @rrr 282 amand_db_w 0011 10000110 10110 ..... ..... ..... @rrr 283 amand_db_d 0011 10000110 10111 ..... ..... ..... @rrr 284 amor_db_w 0011 10000110 11000 ..... ..... ..... @rrr 285 amor_db_d 0011 10000110 11001 ..... ..... ..... @rrr 286 amxor_db_w 0011 10000110 11010 ..... ..... ..... @rrr 287 amxor_db_d 0011 10000110 11011 ..... ..... ..... @rrr 288 ammax_db_w 0011 10000110 11100 ..... ..... ..... @rrr 289 ammax_db_d 0011 10000110 11101 ..... ..... ..... @rrr 290 ammin_db_w 0011 10000110 11110 ..... ..... ..... @rrr 291 ammin_db_d 0011 10000110 11111 ..... ..... ..... @rrr 292 ammax_db_wu 0011 10000111 00000 ..... ..... ..... @rrr 293 ammax_db_du 0011 10000111 00001 ..... ..... ..... @rrr 294 ammin_db_wu 0011 10000111 00010 ..... ..... ..... @rrr 295 ammin_db_du 0011 10000111 00011 ..... ..... ..... @rrr 296 297 # 298 # Fixed point extra instruction 299 # 300 crc_w_b_w 0000 00000010 01000 ..... ..... ..... @rrr 301 crc_w_h_w 0000 00000010 01001 ..... ..... ..... @rrr 302 crc_w_w_w 0000 00000010 01010 ..... ..... ..... @rrr 303 crc_w_d_w 0000 00000010 01011 ..... ..... ..... @rrr 304 crcc_w_b_w 0000 00000010 01100 ..... ..... ..... @rrr 305 crcc_w_h_w 0000 00000010 01101 ..... ..... ..... @rrr 306 crcc_w_w_w 0000 00000010 01110 ..... ..... ..... @rrr 307 crcc_w_d_w 0000 00000010 01111 ..... ..... ..... @rrr 308 break 0000 00000010 10100 ............... @i15 309 syscall 0000 00000010 10110 ............... @i15 310 asrtle_d 0000 00000000 00010 ..... ..... 00000 @rr_jk 311 asrtgt_d 0000 00000000 00011 ..... ..... 00000 @rr_jk 312 rdtimel_w 0000 00000000 00000 11000 ..... ..... @rr 313 rdtimeh_w 0000 00000000 00000 11001 ..... ..... @rr 314 rdtime_d 0000 00000000 00000 11010 ..... ..... @rr 315 cpucfg 0000 00000000 00000 11011 ..... ..... @rr 316 317 # 318 # Floating point arithmetic operation instruction 319 # 320 fadd_s 0000 00010000 00001 ..... ..... ..... @fff 321 fadd_d 0000 00010000 00010 ..... ..... ..... @fff 322 fsub_s 0000 00010000 00101 ..... ..... ..... @fff 323 fsub_d 0000 00010000 00110 ..... ..... ..... @fff 324 fmul_s 0000 00010000 01001 ..... ..... ..... @fff 325 fmul_d 0000 00010000 01010 ..... ..... ..... @fff 326 fdiv_s 0000 00010000 01101 ..... ..... ..... @fff 327 fdiv_d 0000 00010000 01110 ..... ..... ..... @fff 328 fmadd_s 0000 10000001 ..... ..... ..... ..... @ffff 329 fmadd_d 0000 10000010 ..... ..... ..... ..... @ffff 330 fmsub_s 0000 10000101 ..... ..... ..... ..... @ffff 331 fmsub_d 0000 10000110 ..... ..... ..... ..... @ffff 332 fnmadd_s 0000 10001001 ..... ..... ..... ..... @ffff 333 fnmadd_d 0000 10001010 ..... ..... ..... ..... @ffff 334 fnmsub_s 0000 10001101 ..... ..... ..... ..... @ffff 335 fnmsub_d 0000 10001110 ..... ..... ..... ..... @ffff 336 fmax_s 0000 00010000 10001 ..... ..... ..... @fff 337 fmax_d 0000 00010000 10010 ..... ..... ..... @fff 338 fmin_s 0000 00010000 10101 ..... ..... ..... @fff 339 fmin_d 0000 00010000 10110 ..... ..... ..... @fff 340 fmaxa_s 0000 00010000 11001 ..... ..... ..... @fff 341 fmaxa_d 0000 00010000 11010 ..... ..... ..... @fff 342 fmina_s 0000 00010000 11101 ..... ..... ..... @fff 343 fmina_d 0000 00010000 11110 ..... ..... ..... @fff 344 fabs_s 0000 00010001 01000 00001 ..... ..... @ff 345 fabs_d 0000 00010001 01000 00010 ..... ..... @ff 346 fneg_s 0000 00010001 01000 00101 ..... ..... @ff 347 fneg_d 0000 00010001 01000 00110 ..... ..... @ff 348 fsqrt_s 0000 00010001 01000 10001 ..... ..... @ff 349 fsqrt_d 0000 00010001 01000 10010 ..... ..... @ff 350 frecip_s 0000 00010001 01000 10101 ..... ..... @ff 351 frecip_d 0000 00010001 01000 10110 ..... ..... @ff 352 frsqrt_s 0000 00010001 01000 11001 ..... ..... @ff 353 frsqrt_d 0000 00010001 01000 11010 ..... ..... @ff 354 fscaleb_s 0000 00010001 00001 ..... ..... ..... @fff 355 fscaleb_d 0000 00010001 00010 ..... ..... ..... @fff 356 flogb_s 0000 00010001 01000 01001 ..... ..... @ff 357 flogb_d 0000 00010001 01000 01010 ..... ..... @ff 358 fcopysign_s 0000 00010001 00101 ..... ..... ..... @fff 359 fcopysign_d 0000 00010001 00110 ..... ..... ..... @fff 360 fclass_s 0000 00010001 01000 01101 ..... ..... @ff 361 fclass_d 0000 00010001 01000 01110 ..... ..... @ff 362 363 # 364 # Floating point compare instruction 365 # 366 fcmp_cond_s 0000 11000001 ..... ..... ..... 00 ... @cff_fcond 367 fcmp_cond_d 0000 11000010 ..... ..... ..... 00 ... @cff_fcond 368 369 # 370 # Floating point conversion instruction 371 # 372 fcvt_s_d 0000 00010001 10010 00110 ..... ..... @ff 373 fcvt_d_s 0000 00010001 10010 01001 ..... ..... @ff 374 ftintrm_w_s 0000 00010001 10100 00001 ..... ..... @ff 375 ftintrm_w_d 0000 00010001 10100 00010 ..... ..... @ff 376 ftintrm_l_s 0000 00010001 10100 01001 ..... ..... @ff 377 ftintrm_l_d 0000 00010001 10100 01010 ..... ..... @ff 378 ftintrp_w_s 0000 00010001 10100 10001 ..... ..... @ff 379 ftintrp_w_d 0000 00010001 10100 10010 ..... ..... @ff 380 ftintrp_l_s 0000 00010001 10100 11001 ..... ..... @ff 381 ftintrp_l_d 0000 00010001 10100 11010 ..... ..... @ff 382 ftintrz_w_s 0000 00010001 10101 00001 ..... ..... @ff 383 ftintrz_w_d 0000 00010001 10101 00010 ..... ..... @ff 384 ftintrz_l_s 0000 00010001 10101 01001 ..... ..... @ff 385 ftintrz_l_d 0000 00010001 10101 01010 ..... ..... @ff 386 ftintrne_w_s 0000 00010001 10101 10001 ..... ..... @ff 387 ftintrne_w_d 0000 00010001 10101 10010 ..... ..... @ff 388 ftintrne_l_s 0000 00010001 10101 11001 ..... ..... @ff 389 ftintrne_l_d 0000 00010001 10101 11010 ..... ..... @ff 390 ftint_w_s 0000 00010001 10110 00001 ..... ..... @ff 391 ftint_w_d 0000 00010001 10110 00010 ..... ..... @ff 392 ftint_l_s 0000 00010001 10110 01001 ..... ..... @ff 393 ftint_l_d 0000 00010001 10110 01010 ..... ..... @ff 394 ffint_s_w 0000 00010001 11010 00100 ..... ..... @ff 395 ffint_s_l 0000 00010001 11010 00110 ..... ..... @ff 396 ffint_d_w 0000 00010001 11010 01000 ..... ..... @ff 397 ffint_d_l 0000 00010001 11010 01010 ..... ..... @ff 398 frint_s 0000 00010001 11100 10001 ..... ..... @ff 399 frint_d 0000 00010001 11100 10010 ..... ..... @ff 400 401 # 402 # Floating point move instruction 403 # 404 fmov_s 0000 00010001 01001 00101 ..... ..... @ff 405 fmov_d 0000 00010001 01001 00110 ..... ..... @ff 406 fsel 0000 11010000 00 ... ..... ..... ..... @fffc 407 movgr2fr_w 0000 00010001 01001 01001 ..... ..... @fr 408 movgr2fr_d 0000 00010001 01001 01010 ..... ..... @fr 409 movgr2frh_w 0000 00010001 01001 01011 ..... ..... @fr 410 movfr2gr_s 0000 00010001 01001 01101 ..... ..... @rf 411 movfr2gr_d 0000 00010001 01001 01110 ..... ..... @rf 412 movfrh2gr_s 0000 00010001 01001 01111 ..... ..... @rf 413 movgr2fcsr 0000 00010001 01001 10000 ..... ..... @fcsrd_r 414 movfcsr2gr 0000 00010001 01001 10010 ..... ..... @r_fcsrs 415 movfr2cf 0000 00010001 01001 10100 ..... 00 ... @cf 416 movcf2fr 0000 00010001 01001 10101 00 ... ..... @fc 417 movgr2cf 0000 00010001 01001 10110 ..... 00 ... @cr 418 movcf2gr 0000 00010001 01001 10111 00 ... ..... @rc 419 420 # 421 # Floating point load/store instruction 422 # 423 fld_s 0010 101100 ............ ..... ..... @fr_i12 424 fst_s 0010 101101 ............ ..... ..... @fr_i12 425 fld_d 0010 101110 ............ ..... ..... @fr_i12 426 fst_d 0010 101111 ............ ..... ..... @fr_i12 427 fldx_s 0011 10000011 00000 ..... ..... ..... @frr 428 fldx_d 0011 10000011 01000 ..... ..... ..... @frr 429 fstx_s 0011 10000011 10000 ..... ..... ..... @frr 430 fstx_d 0011 10000011 11000 ..... ..... ..... @frr 431 fldgt_s 0011 10000111 01000 ..... ..... ..... @frr 432 fldgt_d 0011 10000111 01001 ..... ..... ..... @frr 433 fldle_s 0011 10000111 01010 ..... ..... ..... @frr 434 fldle_d 0011 10000111 01011 ..... ..... ..... @frr 435 fstgt_s 0011 10000111 01100 ..... ..... ..... @frr 436 fstgt_d 0011 10000111 01101 ..... ..... ..... @frr 437 fstle_s 0011 10000111 01110 ..... ..... ..... @frr 438 fstle_d 0011 10000111 01111 ..... ..... ..... @frr 439 440 # 441 # Branch instructions 442 # 443 beqz 0100 00 ................ ..... ..... @r_offs21 444 bnez 0100 01 ................ ..... ..... @r_offs21 445 bceqz 0100 10 ................ 00 ... ..... @c_offs21 446 bcnez 0100 10 ................ 01 ... ..... @c_offs21 447 jirl 0100 11 ................ ..... ..... @rr_offs16 448 b 0101 00 .......................... @offs26 449 bl 0101 01 .......................... @offs26 450 beq 0101 10 ................ ..... ..... @rr_offs16 451 bne 0101 11 ................ ..... ..... @rr_offs16 452 blt 0110 00 ................ ..... ..... @rr_offs16 453 bge 0110 01 ................ ..... ..... @rr_offs16 454 bltu 0110 10 ................ ..... ..... @rr_offs16 455 bgeu 0110 11 ................ ..... ..... @rr_offs16 456 457 # 458 # Core instructions 459 # 460 { 461 csrrd 0000 0100 .............. 00000 ..... @r_csr 462 csrwr 0000 0100 .............. 00001 ..... @r_csr 463 csrxchg 0000 0100 .............. ..... ..... @rr_csr 464 } 465 466 iocsrrd_b 0000 01100100 10000 00000 ..... ..... @rr 467 iocsrrd_h 0000 01100100 10000 00001 ..... ..... @rr 468 iocsrrd_w 0000 01100100 10000 00010 ..... ..... @rr 469 iocsrrd_d 0000 01100100 10000 00011 ..... ..... @rr 470 iocsrwr_b 0000 01100100 10000 00100 ..... ..... @rr 471 iocsrwr_h 0000 01100100 10000 00101 ..... ..... @rr 472 iocsrwr_w 0000 01100100 10000 00110 ..... ..... @rr 473 iocsrwr_d 0000 01100100 10000 00111 ..... ..... @rr 474 tlbsrch 0000 01100100 10000 01010 00000 00000 @empty 475 tlbrd 0000 01100100 10000 01011 00000 00000 @empty 476 tlbwr 0000 01100100 10000 01100 00000 00000 @empty 477 tlbfill 0000 01100100 10000 01101 00000 00000 @empty 478 tlbclr 0000 01100100 10000 01000 00000 00000 @empty 479 tlbflush 0000 01100100 10000 01001 00000 00000 @empty 480 invtlb 0000 01100100 10011 ..... ..... ..... @i_rr 481 cacop 0000 011000 ............ ..... ..... @cop_r_i 482 lddir 0000 01100100 00 ........ ..... ..... @rr_ui8 483 ldpte 0000 01100100 01 ........ ..... 00000 @j_i 484 ertn 0000 01100100 10000 01110 00000 00000 @empty 485 idle 0000 01100100 10001 ............... @i15 486 dbcl 0000 00000010 10101 ............... @i15