1 1.1 skrll /* cris-opc.c -- Table of opcodes for the CRIS processor. 2 1.1.1.10 christos Copyright (C) 2000-2026 Free Software Foundation, Inc. 3 1.1 skrll Contributed by Axis Communications AB, Lund, Sweden. 4 1.1 skrll Originally written for GAS 1.38.1 by Mikael Asker. 5 1.1 skrll Reorganized by Hans-Peter Nilsson. 6 1.1 skrll 7 1.1 skrll This file is part of the GNU opcodes library. 8 1.1 skrll 9 1.1 skrll This library is free software; you can redistribute it and/or modify 10 1.1 skrll it under the terms of the GNU General Public License as published by 11 1.1 skrll the Free Software Foundation; either version 3, or (at your option) 12 1.1 skrll any later version. 13 1.1 skrll 14 1.1 skrll It is distributed in the hope that it will be useful, but WITHOUT 15 1.1 skrll ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 16 1.1 skrll or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 17 1.1 skrll License for more details. 18 1.1 skrll 19 1.1 skrll You should have received a copy of the GNU General Public License 20 1.1 skrll along with this program; if not, write to the Free Software 21 1.1 skrll Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 22 1.1 skrll MA 02110-1301, USA. */ 23 1.1 skrll 24 1.1 skrll #include "opcode/cris.h" 25 1.1 skrll 26 1.1 skrll #ifndef NULL 27 1.1 skrll #define NULL (0) 28 1.1 skrll #endif 29 1.1 skrll 30 1.1 skrll /* This table isn't used for CRISv32 and the size of immediate operands. */ 31 1.1 skrll const struct cris_spec_reg 32 1.1 skrll cris_spec_regs[] = 33 1.1 skrll { 34 1.1 skrll {"bz", 0, 1, cris_ver_v32p, NULL}, 35 1.1 skrll {"p0", 0, 1, 0, NULL}, 36 1.1 skrll {"vr", 1, 1, 0, NULL}, 37 1.1 skrll {"p1", 1, 1, 0, NULL}, 38 1.1 skrll {"pid", 2, 1, cris_ver_v32p, NULL}, 39 1.1 skrll {"p2", 2, 1, cris_ver_v32p, NULL}, 40 1.1 skrll {"p2", 2, 1, cris_ver_warning, NULL}, 41 1.1 skrll {"srs", 3, 1, cris_ver_v32p, NULL}, 42 1.1 skrll {"p3", 3, 1, cris_ver_v32p, NULL}, 43 1.1 skrll {"p3", 3, 1, cris_ver_warning, NULL}, 44 1.1 skrll {"wz", 4, 2, cris_ver_v32p, NULL}, 45 1.1 skrll {"p4", 4, 2, 0, NULL}, 46 1.1 skrll {"ccr", 5, 2, cris_ver_v0_10, NULL}, 47 1.1 skrll {"exs", 5, 4, cris_ver_v32p, NULL}, 48 1.1 skrll {"p5", 5, 2, cris_ver_v0_10, NULL}, 49 1.1 skrll {"p5", 5, 4, cris_ver_v32p, NULL}, 50 1.1 skrll {"dcr0",6, 2, cris_ver_v0_3, NULL}, 51 1.1 skrll {"eda", 6, 4, cris_ver_v32p, NULL}, 52 1.1 skrll {"p6", 6, 2, cris_ver_v0_3, NULL}, 53 1.1 skrll {"p6", 6, 4, cris_ver_v32p, NULL}, 54 1.1 skrll {"dcr1/mof", 7, 4, cris_ver_v10p, 55 1.1 skrll "Register `dcr1/mof' with ambiguous size specified. Guessing 4 bytes"}, 56 1.1 skrll {"dcr1/mof", 7, 2, cris_ver_v0_3, 57 1.1 skrll "Register `dcr1/mof' with ambiguous size specified. Guessing 2 bytes"}, 58 1.1 skrll {"mof", 7, 4, cris_ver_v10p, NULL}, 59 1.1 skrll {"dcr1",7, 2, cris_ver_v0_3, NULL}, 60 1.1 skrll {"p7", 7, 4, cris_ver_v10p, NULL}, 61 1.1 skrll {"p7", 7, 2, cris_ver_v0_3, NULL}, 62 1.1 skrll {"dz", 8, 4, cris_ver_v32p, NULL}, 63 1.1 skrll {"p8", 8, 4, 0, NULL}, 64 1.1 skrll {"ibr", 9, 4, cris_ver_v0_10, NULL}, 65 1.1 skrll {"ebp", 9, 4, cris_ver_v32p, NULL}, 66 1.1 skrll {"p9", 9, 4, 0, NULL}, 67 1.1 skrll {"irp", 10, 4, cris_ver_v0_10, NULL}, 68 1.1 skrll {"erp", 10, 4, cris_ver_v32p, NULL}, 69 1.1 skrll {"p10", 10, 4, 0, NULL}, 70 1.1 skrll {"srp", 11, 4, 0, NULL}, 71 1.1 skrll {"p11", 11, 4, 0, NULL}, 72 1.1 skrll /* For disassembly use only. Accept at assembly with a warning. */ 73 1.1 skrll {"bar/dtp0", 12, 4, cris_ver_warning, 74 1.1 skrll "Ambiguous register `bar/dtp0' specified"}, 75 1.1 skrll {"nrp", 12, 4, cris_ver_v32p, NULL}, 76 1.1 skrll {"bar", 12, 4, cris_ver_v8_10, NULL}, 77 1.1 skrll {"dtp0",12, 4, cris_ver_v0_3, NULL}, 78 1.1 skrll {"p12", 12, 4, 0, NULL}, 79 1.1 skrll /* For disassembly use only. Accept at assembly with a warning. */ 80 1.1 skrll {"dccr/dtp1",13, 4, cris_ver_warning, 81 1.1 skrll "Ambiguous register `dccr/dtp1' specified"}, 82 1.1 skrll {"ccs", 13, 4, cris_ver_v32p, NULL}, 83 1.1 skrll {"dccr",13, 4, cris_ver_v8_10, NULL}, 84 1.1 skrll {"dtp1",13, 4, cris_ver_v0_3, NULL}, 85 1.1 skrll {"p13", 13, 4, 0, NULL}, 86 1.1 skrll {"brp", 14, 4, cris_ver_v3_10, NULL}, 87 1.1 skrll {"usp", 14, 4, cris_ver_v32p, NULL}, 88 1.1 skrll {"p14", 14, 4, cris_ver_v3p, NULL}, 89 1.1 skrll {"usp", 15, 4, cris_ver_v10, NULL}, 90 1.1 skrll {"spc", 15, 4, cris_ver_v32p, NULL}, 91 1.1 skrll {"p15", 15, 4, cris_ver_v10p, NULL}, 92 1.1 skrll {NULL, 0, 0, cris_ver_version_all, NULL} 93 1.1 skrll }; 94 1.1 skrll 95 1.1 skrll /* Add version specifiers to this table when necessary. 96 1.1 skrll The (now) regular coding of register names suggests a simpler 97 1.1 skrll implementation. */ 98 1.1 skrll const struct cris_support_reg cris_support_regs[] = 99 1.1 skrll { 100 1.1 skrll {"s0", 0}, 101 1.1 skrll {"s1", 1}, 102 1.1 skrll {"s2", 2}, 103 1.1 skrll {"s3", 3}, 104 1.1 skrll {"s4", 4}, 105 1.1 skrll {"s5", 5}, 106 1.1 skrll {"s6", 6}, 107 1.1 skrll {"s7", 7}, 108 1.1 skrll {"s8", 8}, 109 1.1 skrll {"s9", 9}, 110 1.1 skrll {"s10", 10}, 111 1.1 skrll {"s11", 11}, 112 1.1 skrll {"s12", 12}, 113 1.1 skrll {"s13", 13}, 114 1.1 skrll {"s14", 14}, 115 1.1 skrll {"s15", 15}, 116 1.1 skrll {NULL, 0} 117 1.1 skrll }; 118 1.1 skrll 119 1.1 skrll /* All CRIS opcodes are 16 bits. 120 1.1 skrll 121 1.1 skrll - The match component is a mask saying which bits must match a 122 1.1 skrll particular opcode in order for an instruction to be an instance 123 1.1 skrll of that opcode. 124 1.1 skrll 125 1.1 skrll - The args component is a string containing characters symbolically 126 1.1 skrll matching the operands of an instruction. Used for both assembly 127 1.1 skrll and disassembly. 128 1.1 skrll 129 1.1 skrll Operand-matching characters: 130 1.1 skrll [ ] , space 131 1.1 skrll Verbatim. 132 1.1 skrll A The string "ACR" (case-insensitive). 133 1.1 skrll B Not really an operand. It causes a "BDAP -size,SP" prefix to be 134 1.1 skrll output for the PUSH alias-instructions and recognizes a push- 135 1.1 skrll prefix at disassembly. This letter isn't recognized for v32. 136 1.1 skrll Must be followed by a R or P letter. 137 1.1 skrll ! Non-match pattern, will not match if there's a prefix insn. 138 1.1 skrll b Non-matching operand, used for branches with 16-bit 139 1.1 skrll displacement. Only recognized by the disassembler. 140 1.1 skrll c 5-bit unsigned immediate in bits <4:0>. 141 1.1 skrll C 4-bit unsigned immediate in bits <3:0>. 142 1.1 skrll d At assembly, optionally (as in put other cases before this one) 143 1.1 skrll ".d" or ".D" at the start of the operands, followed by one space 144 1.1 skrll character. At disassembly, nothing. 145 1.1 skrll D General register in bits <15:12> and <3:0>. 146 1.1 skrll f List of flags in bits <15:12> and <3:0>. 147 1.1 skrll i 6-bit signed immediate in bits <5:0>. 148 1.1 skrll I 6-bit unsigned immediate in bits <5:0>. 149 1.1 skrll M Size modifier (B, W or D) for CLEAR instructions. 150 1.1 skrll m Size modifier (B, W or D) in bits <5:4> 151 1.1 skrll N A 32-bit dword, like in the difference between s and y. 152 1.1 skrll This has no effect on bits in the opcode. Can also be expressed 153 1.1 skrll as "[pc+]" in input. 154 1.1 skrll n As N, but PC-relative (to the start of the instruction). 155 1.1 skrll o [-128..127] word offset in bits <7:1> and <0>. Used by 8-bit 156 1.1 skrll branch instructions. 157 1.1 skrll O [-128..127] offset in bits <7:0>. Also matches a comma and a 158 1.1 skrll general register after the expression, in bits <15:12>. Used 159 1.1 skrll only for the BDAP prefix insn (in v32 the ADDOQ insn; same opcode). 160 1.1 skrll P Special register in bits <15:12>. 161 1.1 skrll p Indicates that the insn is a prefix insn. Must be first 162 1.1 skrll character. 163 1.1 skrll Q As O, but don't relax; force an 8-bit offset. 164 1.1 skrll R General register in bits <15:12>. 165 1.1 skrll r General register in bits <3:0>. 166 1.1 skrll S Source operand in bit <10> and a prefix; a 3-operand prefix 167 1.1 skrll without side-effect. 168 1.1 skrll s Source operand in bits <10> and <3:0>, optionally with a 169 1.1 skrll side-effect prefix, except [pc] (the name, not R15 as in ACR) 170 1.1 skrll isn't allowed for v32 and higher. 171 1.1 skrll T Support register in bits <15:12>. 172 1.1 skrll u 4-bit (PC-relative) unsigned immediate word offset in bits <3:0>. 173 1.1 skrll U Relaxes to either u or n, instruction is assumed LAPCQ or LAPC. 174 1.1 skrll Not recognized at disassembly. 175 1.1 skrll x Register-dot-modifier, for example "r5.w" in bits <15:12> and <5:4>. 176 1.1 skrll y Like 's' but do not allow an integer at assembly. 177 1.1 skrll Y The difference s-y; only an integer is allowed. 178 1.1 skrll z Size modifier (B or W) in bit <4>. */ 179 1.1 skrll 180 1.1 skrll 181 1.1 skrll /* Please note the order of the opcodes in this table is significant. 182 1.1 skrll The assembler requires that all instances of the same mnemonic must 183 1.1 skrll be consecutive. If they aren't, the assembler might not recognize 184 1.1 skrll them, or may indicate an internal error. 185 1.1 skrll 186 1.1 skrll The disassembler should not normally care about the order of the 187 1.1 skrll opcodes, but will prefer an earlier alternative if the "match-score" 188 1.1 skrll (see cris-dis.c) is computed as equal. 189 1.1 skrll 190 1.1 skrll It should not be significant for proper execution that this table is 191 1.1 skrll in alphabetical order, but please follow that convention for an easy 192 1.1 skrll overview. */ 193 1.1 skrll 194 1.1 skrll const struct cris_opcode 195 1.1 skrll cris_opcodes[] = 196 1.1 skrll { 197 1.1 skrll {"abs", 0x06B0, 0x0940, "r,R", 0, SIZE_NONE, 0, 198 1.1 skrll cris_abs_op}, 199 1.1 skrll 200 1.1 skrll {"add", 0x0600, 0x09c0, "m r,R", 0, SIZE_NONE, 0, 201 1.1 skrll cris_reg_mode_add_sub_cmp_and_or_move_op}, 202 1.1 skrll 203 1.1 skrll {"add", 0x0A00, 0x01c0, "m s,R", 0, SIZE_FIELD, 0, 204 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 205 1.1 skrll 206 1.1 skrll {"add", 0x0A00, 0x01c0, "m S,D", 0, SIZE_NONE, 207 1.1 skrll cris_ver_v0_10, 208 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 209 1.1 skrll 210 1.1 skrll {"add", 0x0a00, 0x05c0, "m S,R,r", 0, SIZE_NONE, 211 1.1 skrll cris_ver_v0_10, 212 1.1 skrll cris_three_operand_add_sub_cmp_and_or_op}, 213 1.1 skrll 214 1.1 skrll {"add", 0x0A00, 0x01c0, "m s,R", 0, SIZE_FIELD, 215 1.1 skrll cris_ver_v32p, 216 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 217 1.1 skrll 218 1.1 skrll {"addc", 0x0570, 0x0A80, "r,R", 0, SIZE_FIX_32, 219 1.1 skrll cris_ver_v32p, 220 1.1 skrll cris_not_implemented_op}, 221 1.1 skrll 222 1.1 skrll {"addc", 0x09A0, 0x0250, "s,R", 0, SIZE_FIX_32, 223 1.1 skrll cris_ver_v32p, 224 1.1 skrll cris_not_implemented_op}, 225 1.1 skrll 226 1.1 skrll {"addi", 0x0540, 0x0A80, "x,r,A", 0, SIZE_NONE, 227 1.1 skrll cris_ver_v32p, 228 1.1 skrll cris_addi_op}, 229 1.1 skrll 230 1.1 skrll {"addi", 0x0500, 0x0Ac0, "x,r", 0, SIZE_NONE, 0, 231 1.1 skrll cris_addi_op}, 232 1.1 skrll 233 1.1 skrll /* This collates after "addo", but we want to disassemble as "addoq", 234 1.1 skrll not "addo". */ 235 1.1 skrll {"addoq", 0x0100, 0x0E00, "Q,A", 0, SIZE_NONE, 236 1.1 skrll cris_ver_v32p, 237 1.1 skrll cris_not_implemented_op}, 238 1.1 skrll 239 1.1 skrll {"addo", 0x0940, 0x0280, "m s,R,A", 0, SIZE_FIELD_SIGNED, 240 1.1 skrll cris_ver_v32p, 241 1.1 skrll cris_not_implemented_op}, 242 1.1 skrll 243 1.1 skrll /* This must be located after the insn above, lest we misinterpret 244 1.1 skrll "addo.b -1,r0,acr" as "addo .b-1,r0,acr". FIXME: Sounds like a 245 1.1 skrll parser bug. */ 246 1.1 skrll {"addo", 0x0100, 0x0E00, "O,A", 0, SIZE_NONE, 247 1.1 skrll cris_ver_v32p, 248 1.1 skrll cris_not_implemented_op}, 249 1.1 skrll 250 1.1 skrll {"addq", 0x0200, 0x0Dc0, "I,R", 0, SIZE_NONE, 0, 251 1.1 skrll cris_quick_mode_add_sub_op}, 252 1.1 skrll 253 1.1 skrll {"adds", 0x0420, 0x0Bc0, "z r,R", 0, SIZE_NONE, 0, 254 1.1 skrll cris_reg_mode_add_sub_cmp_and_or_move_op}, 255 1.1 skrll 256 1.1 skrll /* FIXME: SIZE_FIELD_SIGNED and all necessary changes. */ 257 1.1 skrll {"adds", 0x0820, 0x03c0, "z s,R", 0, SIZE_FIELD, 0, 258 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 259 1.1 skrll 260 1.1 skrll {"adds", 0x0820, 0x03c0, "z S,D", 0, SIZE_NONE, 261 1.1 skrll cris_ver_v0_10, 262 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 263 1.1 skrll 264 1.1 skrll {"adds", 0x0820, 0x07c0, "z S,R,r", 0, SIZE_NONE, 265 1.1 skrll cris_ver_v0_10, 266 1.1 skrll cris_three_operand_add_sub_cmp_and_or_op}, 267 1.1 skrll 268 1.1 skrll {"addu", 0x0400, 0x0be0, "z r,R", 0, SIZE_NONE, 0, 269 1.1 skrll cris_reg_mode_add_sub_cmp_and_or_move_op}, 270 1.1 skrll 271 1.1 skrll /* FIXME: SIZE_FIELD_UNSIGNED and all necessary changes. */ 272 1.1 skrll {"addu", 0x0800, 0x03e0, "z s,R", 0, SIZE_FIELD, 0, 273 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 274 1.1 skrll 275 1.1 skrll {"addu", 0x0800, 0x03e0, "z S,D", 0, SIZE_NONE, 276 1.1 skrll cris_ver_v0_10, 277 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 278 1.1 skrll 279 1.1 skrll {"addu", 0x0800, 0x07e0, "z S,R,r", 0, SIZE_NONE, 280 1.1 skrll cris_ver_v0_10, 281 1.1 skrll cris_three_operand_add_sub_cmp_and_or_op}, 282 1.1 skrll 283 1.1 skrll {"and", 0x0700, 0x08C0, "m r,R", 0, SIZE_NONE, 0, 284 1.1 skrll cris_reg_mode_add_sub_cmp_and_or_move_op}, 285 1.1 skrll 286 1.1 skrll {"and", 0x0B00, 0x00C0, "m s,R", 0, SIZE_FIELD, 0, 287 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 288 1.1 skrll 289 1.1 skrll {"and", 0x0B00, 0x00C0, "m S,D", 0, SIZE_NONE, 290 1.1 skrll cris_ver_v0_10, 291 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 292 1.1 skrll 293 1.1 skrll {"and", 0x0B00, 0x04C0, "m S,R,r", 0, SIZE_NONE, 294 1.1 skrll cris_ver_v0_10, 295 1.1 skrll cris_three_operand_add_sub_cmp_and_or_op}, 296 1.1 skrll 297 1.1 skrll {"andq", 0x0300, 0x0CC0, "i,R", 0, SIZE_NONE, 0, 298 1.1 skrll cris_quick_mode_and_cmp_move_or_op}, 299 1.1 skrll 300 1.1 skrll {"asr", 0x0780, 0x0840, "m r,R", 0, SIZE_NONE, 0, 301 1.1 skrll cris_asr_op}, 302 1.1 skrll 303 1.1 skrll {"asrq", 0x03a0, 0x0c40, "c,R", 0, SIZE_NONE, 0, 304 1.1 skrll cris_asrq_op}, 305 1.1 skrll 306 1.1 skrll {"ax", 0x15B0, 0xEA4F, "", 0, SIZE_NONE, 0, 307 1.1 skrll cris_ax_ei_setf_op}, 308 1.1 skrll 309 1.1 skrll /* FIXME: Should use branch #defines. */ 310 1.1 skrll {"b", 0x0dff, 0x0200, "b", 1, SIZE_NONE, 0, 311 1.1 skrll cris_sixteen_bit_offset_branch_op}, 312 1.1 skrll 313 1.1 skrll {"ba", 314 1.1 skrll BA_QUICK_OPCODE, 315 1.1 skrll 0x0F00+(0xF-CC_A)*0x1000, "o", 1, SIZE_NONE, 0, 316 1.1 skrll cris_eight_bit_offset_branch_op}, 317 1.1 skrll 318 1.1 skrll /* Needs to come after the usual "ba o", which might be relaxed to 319 1.1 skrll this one. */ 320 1.1 skrll {"ba", BA_DWORD_OPCODE, 321 1.1 skrll 0xffff & (~BA_DWORD_OPCODE), "n", 0, SIZE_FIX_32, 322 1.1 skrll cris_ver_v32p, 323 1.1 skrll cris_none_reg_mode_jump_op}, 324 1.1 skrll 325 1.1 skrll {"bas", 0x0EBF, 0x0140, "n,P", 0, SIZE_FIX_32, 326 1.1 skrll cris_ver_v32p, 327 1.1 skrll cris_none_reg_mode_jump_op}, 328 1.1 skrll 329 1.1 skrll {"basc", 0x0EFF, 0x0100, "n,P", 0, SIZE_FIX_32, 330 1.1 skrll cris_ver_v32p, 331 1.1 skrll cris_none_reg_mode_jump_op}, 332 1.1 skrll 333 1.1 skrll {"bcc", 334 1.1 skrll BRANCH_QUICK_OPCODE+CC_CC*0x1000, 335 1.1 skrll 0x0f00+(0xF-CC_CC)*0x1000, "o", 1, SIZE_NONE, 0, 336 1.1 skrll cris_eight_bit_offset_branch_op}, 337 1.1 skrll 338 1.1 skrll {"bcs", 339 1.1 skrll BRANCH_QUICK_OPCODE+CC_CS*0x1000, 340 1.1 skrll 0x0f00+(0xF-CC_CS)*0x1000, "o", 1, SIZE_NONE, 0, 341 1.1 skrll cris_eight_bit_offset_branch_op}, 342 1.1 skrll 343 1.1 skrll {"bdap", 344 1.1 skrll BDAP_INDIR_OPCODE, BDAP_INDIR_Z_BITS, "pm s,R", 0, SIZE_FIELD_SIGNED, 345 1.1 skrll cris_ver_v0_10, 346 1.1 skrll cris_bdap_prefix}, 347 1.1 skrll 348 1.1 skrll {"bdap", 349 1.1 skrll BDAP_QUICK_OPCODE, BDAP_QUICK_Z_BITS, "pO", 0, SIZE_NONE, 350 1.1 skrll cris_ver_v0_10, 351 1.1 skrll cris_quick_mode_bdap_prefix}, 352 1.1 skrll 353 1.1 skrll {"beq", 354 1.1 skrll BRANCH_QUICK_OPCODE+CC_EQ*0x1000, 355 1.1 skrll 0x0f00+(0xF-CC_EQ)*0x1000, "o", 1, SIZE_NONE, 0, 356 1.1 skrll cris_eight_bit_offset_branch_op}, 357 1.1 skrll 358 1.1 skrll /* This is deliberately put before "bext" to trump it, even though not 359 1.1 skrll in alphabetical order, since we don't do excluding version checks 360 1.1 skrll for v0..v10. */ 361 1.1 skrll {"bwf", 362 1.1 skrll BRANCH_QUICK_OPCODE+CC_EXT*0x1000, 363 1.1 skrll 0x0f00+(0xF-CC_EXT)*0x1000, "o", 1, SIZE_NONE, 364 1.1 skrll cris_ver_v10, 365 1.1 skrll cris_eight_bit_offset_branch_op}, 366 1.1 skrll 367 1.1 skrll {"bext", 368 1.1 skrll BRANCH_QUICK_OPCODE+CC_EXT*0x1000, 369 1.1 skrll 0x0f00+(0xF-CC_EXT)*0x1000, "o", 1, SIZE_NONE, 370 1.1 skrll cris_ver_v0_3, 371 1.1 skrll cris_eight_bit_offset_branch_op}, 372 1.1 skrll 373 1.1 skrll {"bge", 374 1.1 skrll BRANCH_QUICK_OPCODE+CC_GE*0x1000, 375 1.1 skrll 0x0f00+(0xF-CC_GE)*0x1000, "o", 1, SIZE_NONE, 0, 376 1.1 skrll cris_eight_bit_offset_branch_op}, 377 1.1 skrll 378 1.1 skrll {"bgt", 379 1.1 skrll BRANCH_QUICK_OPCODE+CC_GT*0x1000, 380 1.1 skrll 0x0f00+(0xF-CC_GT)*0x1000, "o", 1, SIZE_NONE, 0, 381 1.1 skrll cris_eight_bit_offset_branch_op}, 382 1.1 skrll 383 1.1 skrll {"bhi", 384 1.1 skrll BRANCH_QUICK_OPCODE+CC_HI*0x1000, 385 1.1 skrll 0x0f00+(0xF-CC_HI)*0x1000, "o", 1, SIZE_NONE, 0, 386 1.1 skrll cris_eight_bit_offset_branch_op}, 387 1.1 skrll 388 1.1 skrll {"bhs", 389 1.1 skrll BRANCH_QUICK_OPCODE+CC_HS*0x1000, 390 1.1 skrll 0x0f00+(0xF-CC_HS)*0x1000, "o", 1, SIZE_NONE, 0, 391 1.1 skrll cris_eight_bit_offset_branch_op}, 392 1.1 skrll 393 1.1 skrll {"biap", BIAP_OPCODE, BIAP_Z_BITS, "pm r,R", 0, SIZE_NONE, 394 1.1 skrll cris_ver_v0_10, 395 1.1 skrll cris_biap_prefix}, 396 1.1 skrll 397 1.1 skrll {"ble", 398 1.1 skrll BRANCH_QUICK_OPCODE+CC_LE*0x1000, 399 1.1 skrll 0x0f00+(0xF-CC_LE)*0x1000, "o", 1, SIZE_NONE, 0, 400 1.1 skrll cris_eight_bit_offset_branch_op}, 401 1.1 skrll 402 1.1 skrll {"blo", 403 1.1 skrll BRANCH_QUICK_OPCODE+CC_LO*0x1000, 404 1.1 skrll 0x0f00+(0xF-CC_LO)*0x1000, "o", 1, SIZE_NONE, 0, 405 1.1 skrll cris_eight_bit_offset_branch_op}, 406 1.1 skrll 407 1.1 skrll {"bls", 408 1.1 skrll BRANCH_QUICK_OPCODE+CC_LS*0x1000, 409 1.1 skrll 0x0f00+(0xF-CC_LS)*0x1000, "o", 1, SIZE_NONE, 0, 410 1.1 skrll cris_eight_bit_offset_branch_op}, 411 1.1 skrll 412 1.1 skrll {"blt", 413 1.1 skrll BRANCH_QUICK_OPCODE+CC_LT*0x1000, 414 1.1 skrll 0x0f00+(0xF-CC_LT)*0x1000, "o", 1, SIZE_NONE, 0, 415 1.1 skrll cris_eight_bit_offset_branch_op}, 416 1.1 skrll 417 1.1 skrll {"bmi", 418 1.1 skrll BRANCH_QUICK_OPCODE+CC_MI*0x1000, 419 1.1 skrll 0x0f00+(0xF-CC_MI)*0x1000, "o", 1, SIZE_NONE, 0, 420 1.1 skrll cris_eight_bit_offset_branch_op}, 421 1.1 skrll 422 1.1 skrll {"bmod", 0x0ab0, 0x0140, "s,R", 0, SIZE_FIX_32, 423 1.1 skrll cris_ver_sim_v0_10, 424 1.1 skrll cris_not_implemented_op}, 425 1.1 skrll 426 1.1 skrll {"bmod", 0x0ab0, 0x0140, "S,D", 0, SIZE_NONE, 427 1.1 skrll cris_ver_sim_v0_10, 428 1.1 skrll cris_not_implemented_op}, 429 1.1 skrll 430 1.1 skrll {"bmod", 0x0ab0, 0x0540, "S,R,r", 0, SIZE_NONE, 431 1.1 skrll cris_ver_sim_v0_10, 432 1.1 skrll cris_not_implemented_op}, 433 1.1 skrll 434 1.1 skrll {"bne", 435 1.1 skrll BRANCH_QUICK_OPCODE+CC_NE*0x1000, 436 1.1 skrll 0x0f00+(0xF-CC_NE)*0x1000, "o", 1, SIZE_NONE, 0, 437 1.1 skrll cris_eight_bit_offset_branch_op}, 438 1.1 skrll 439 1.1 skrll {"bound", 0x05c0, 0x0A00, "m r,R", 0, SIZE_NONE, 0, 440 1.1 skrll cris_two_operand_bound_op}, 441 1.1 skrll /* FIXME: SIZE_FIELD_UNSIGNED and all necessary changes. */ 442 1.1 skrll {"bound", 0x09c0, 0x0200, "m s,R", 0, SIZE_FIELD, 443 1.1 skrll cris_ver_v0_10, 444 1.1 skrll cris_two_operand_bound_op}, 445 1.1 skrll /* FIXME: SIZE_FIELD_UNSIGNED and all necessary changes. */ 446 1.1 skrll {"bound", 0x0dcf, 0x0200, "m Y,R", 0, SIZE_FIELD, 0, 447 1.1 skrll cris_two_operand_bound_op}, 448 1.1 skrll {"bound", 0x09c0, 0x0200, "m S,D", 0, SIZE_NONE, 449 1.1 skrll cris_ver_v0_10, 450 1.1 skrll cris_two_operand_bound_op}, 451 1.1 skrll {"bound", 0x09c0, 0x0600, "m S,R,r", 0, SIZE_NONE, 452 1.1 skrll cris_ver_v0_10, 453 1.1 skrll cris_three_operand_bound_op}, 454 1.1 skrll 455 1.1 skrll {"bpl", 456 1.1 skrll BRANCH_QUICK_OPCODE+CC_PL*0x1000, 457 1.1 skrll 0x0f00+(0xF-CC_PL)*0x1000, "o", 1, SIZE_NONE, 0, 458 1.1 skrll cris_eight_bit_offset_branch_op}, 459 1.1 skrll 460 1.1 skrll {"break", 0xe930, 0x16c0, "C", 0, SIZE_NONE, 461 1.1 skrll cris_ver_v3p, 462 1.1 skrll cris_break_op}, 463 1.1 skrll 464 1.1 skrll {"bsb", 465 1.1 skrll BRANCH_QUICK_OPCODE+CC_EXT*0x1000, 466 1.1 skrll 0x0f00+(0xF-CC_EXT)*0x1000, "o", 1, SIZE_NONE, 467 1.1 skrll cris_ver_v32p, 468 1.1 skrll cris_eight_bit_offset_branch_op}, 469 1.1 skrll 470 1.1 skrll {"bsr", 0xBEBF, 0x4140, "n", 0, SIZE_FIX_32, 471 1.1 skrll cris_ver_v32p, 472 1.1 skrll cris_none_reg_mode_jump_op}, 473 1.1 skrll 474 1.1 skrll {"bsrc", 0xBEFF, 0x4100, "n", 0, SIZE_FIX_32, 475 1.1 skrll cris_ver_v32p, 476 1.1 skrll cris_none_reg_mode_jump_op}, 477 1.1 skrll 478 1.1 skrll {"bstore", 0x0af0, 0x0100, "s,R", 0, SIZE_FIX_32, 479 1.1 skrll cris_ver_warning, 480 1.1 skrll cris_not_implemented_op}, 481 1.1 skrll 482 1.1 skrll {"bstore", 0x0af0, 0x0100, "S,D", 0, SIZE_NONE, 483 1.1 skrll cris_ver_warning, 484 1.1 skrll cris_not_implemented_op}, 485 1.1 skrll 486 1.1 skrll {"bstore", 0x0af0, 0x0500, "S,R,r", 0, SIZE_NONE, 487 1.1 skrll cris_ver_warning, 488 1.1 skrll cris_not_implemented_op}, 489 1.1 skrll 490 1.1 skrll {"btst", 0x04F0, 0x0B00, "r,R", 0, SIZE_NONE, 0, 491 1.1 skrll cris_btst_nop_op}, 492 1.1 skrll {"btstq", 0x0380, 0x0C60, "c,R", 0, SIZE_NONE, 0, 493 1.1 skrll cris_btst_nop_op}, 494 1.1 skrll 495 1.1 skrll {"bvc", 496 1.1 skrll BRANCH_QUICK_OPCODE+CC_VC*0x1000, 497 1.1 skrll 0x0f00+(0xF-CC_VC)*0x1000, "o", 1, SIZE_NONE, 0, 498 1.1 skrll cris_eight_bit_offset_branch_op}, 499 1.1 skrll 500 1.1 skrll {"bvs", 501 1.1 skrll BRANCH_QUICK_OPCODE+CC_VS*0x1000, 502 1.1 skrll 0x0f00+(0xF-CC_VS)*0x1000, "o", 1, SIZE_NONE, 0, 503 1.1 skrll cris_eight_bit_offset_branch_op}, 504 1.1 skrll 505 1.1 skrll {"clear", 0x0670, 0x3980, "M r", 0, SIZE_NONE, 0, 506 1.1 skrll cris_reg_mode_clear_op}, 507 1.1 skrll 508 1.1 skrll {"clear", 0x0A70, 0x3180, "M y", 0, SIZE_NONE, 0, 509 1.1 skrll cris_none_reg_mode_clear_test_op}, 510 1.1 skrll 511 1.1 skrll {"clear", 0x0A70, 0x3180, "M S", 0, SIZE_NONE, 512 1.1 skrll cris_ver_v0_10, 513 1.1 skrll cris_none_reg_mode_clear_test_op}, 514 1.1 skrll 515 1.1 skrll {"clearf", 0x05F0, 0x0A00, "f", 0, SIZE_NONE, 0, 516 1.1 skrll cris_clearf_di_op}, 517 1.1 skrll 518 1.1 skrll {"cmp", 0x06C0, 0x0900, "m r,R", 0, SIZE_NONE, 0, 519 1.1 skrll cris_reg_mode_add_sub_cmp_and_or_move_op}, 520 1.1 skrll 521 1.1 skrll {"cmp", 0x0Ac0, 0x0100, "m s,R", 0, SIZE_FIELD, 0, 522 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 523 1.1 skrll 524 1.1 skrll {"cmp", 0x0Ac0, 0x0100, "m S,D", 0, SIZE_NONE, 525 1.1 skrll cris_ver_v0_10, 526 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 527 1.1 skrll 528 1.1 skrll {"cmpq", 0x02C0, 0x0D00, "i,R", 0, SIZE_NONE, 0, 529 1.1 skrll cris_quick_mode_and_cmp_move_or_op}, 530 1.1 skrll 531 1.1 skrll /* FIXME: SIZE_FIELD_SIGNED and all necessary changes. */ 532 1.1 skrll {"cmps", 0x08e0, 0x0300, "z s,R", 0, SIZE_FIELD, 0, 533 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 534 1.1 skrll 535 1.1 skrll {"cmps", 0x08e0, 0x0300, "z S,D", 0, SIZE_NONE, 536 1.1 skrll cris_ver_v0_10, 537 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 538 1.1 skrll 539 1.1 skrll /* FIXME: SIZE_FIELD_UNSIGNED and all necessary changes. */ 540 1.1 skrll {"cmpu", 0x08c0, 0x0320, "z s,R" , 0, SIZE_FIELD, 0, 541 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 542 1.1 skrll 543 1.1 skrll {"cmpu", 0x08c0, 0x0320, "z S,D", 0, SIZE_NONE, 544 1.1 skrll cris_ver_v0_10, 545 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 546 1.1 skrll 547 1.1 skrll {"di", 0x25F0, 0xDA0F, "", 0, SIZE_NONE, 0, 548 1.1 skrll cris_clearf_di_op}, 549 1.1 skrll 550 1.1 skrll {"dip", DIP_OPCODE, DIP_Z_BITS, "ps", 0, SIZE_FIX_32, 551 1.1 skrll cris_ver_v0_10, 552 1.1 skrll cris_dip_prefix}, 553 1.1 skrll 554 1.1 skrll {"div", 0x0980, 0x0640, "m R,r", 0, SIZE_FIELD, 0, 555 1.1 skrll cris_not_implemented_op}, 556 1.1 skrll 557 1.1 skrll {"dstep", 0x06f0, 0x0900, "r,R", 0, SIZE_NONE, 0, 558 1.1 skrll cris_dstep_logshift_mstep_neg_not_op}, 559 1.1 skrll 560 1.1 skrll {"ei", 0x25B0, 0xDA4F, "", 0, SIZE_NONE, 0, 561 1.1 skrll cris_ax_ei_setf_op}, 562 1.1 skrll 563 1.1 skrll {"fidxd", 0x0ab0, 0xf540, "[r]", 0, SIZE_NONE, 564 1.1 skrll cris_ver_v32p, 565 1.1 skrll cris_not_implemented_op}, 566 1.1 skrll 567 1.1 skrll {"fidxi", 0x0d30, 0xF2C0, "[r]", 0, SIZE_NONE, 568 1.1 skrll cris_ver_v32p, 569 1.1 skrll cris_not_implemented_op}, 570 1.1 skrll 571 1.1 skrll {"ftagd", 0x1AB0, 0xE540, "[r]", 0, SIZE_NONE, 572 1.1 skrll cris_ver_v32p, 573 1.1 skrll cris_not_implemented_op}, 574 1.1 skrll 575 1.1 skrll {"ftagi", 0x1D30, 0xE2C0, "[r]", 0, SIZE_NONE, 576 1.1 skrll cris_ver_v32p, 577 1.1 skrll cris_not_implemented_op}, 578 1.1 skrll 579 1.1 skrll {"halt", 0xF930, 0x06CF, "", 0, SIZE_NONE, 580 1.1 skrll cris_ver_v32p, 581 1.1 skrll cris_not_implemented_op}, 582 1.1 skrll 583 1.1 skrll {"jas", 0x09B0, 0x0640, "r,P", 0, SIZE_NONE, 584 1.1 skrll cris_ver_v32p, 585 1.1 skrll cris_reg_mode_jump_op}, 586 1.1 skrll 587 1.1 skrll {"jas", 0x0DBF, 0x0240, "N,P", 0, SIZE_FIX_32, 588 1.1 skrll cris_ver_v32p, 589 1.1 skrll cris_reg_mode_jump_op}, 590 1.1 skrll 591 1.1 skrll {"jasc", 0x0B30, 0x04C0, "r,P", 0, SIZE_NONE, 592 1.1 skrll cris_ver_v32p, 593 1.1 skrll cris_reg_mode_jump_op}, 594 1.1 skrll 595 1.1 skrll {"jasc", 0x0F3F, 0x00C0, "N,P", 0, SIZE_FIX_32, 596 1.1 skrll cris_ver_v32p, 597 1.1 skrll cris_reg_mode_jump_op}, 598 1.1 skrll 599 1.1 skrll {"jbrc", 0x69b0, 0x9640, "r", 0, SIZE_NONE, 600 1.1 skrll cris_ver_v8_10, 601 1.1 skrll cris_reg_mode_jump_op}, 602 1.1 skrll 603 1.1 skrll {"jbrc", 0x6930, 0x92c0, "s", 0, SIZE_FIX_32, 604 1.1 skrll cris_ver_v8_10, 605 1.1 skrll cris_none_reg_mode_jump_op}, 606 1.1 skrll 607 1.1 skrll {"jbrc", 0x6930, 0x92c0, "S", 0, SIZE_NONE, 608 1.1 skrll cris_ver_v8_10, 609 1.1 skrll cris_none_reg_mode_jump_op}, 610 1.1 skrll 611 1.1 skrll {"jir", 0xA9b0, 0x5640, "r", 0, SIZE_NONE, 612 1.1 skrll cris_ver_v8_10, 613 1.1 skrll cris_reg_mode_jump_op}, 614 1.1 skrll 615 1.1 skrll {"jir", 0xA930, 0x52c0, "s", 0, SIZE_FIX_32, 616 1.1 skrll cris_ver_v8_10, 617 1.1 skrll cris_none_reg_mode_jump_op}, 618 1.1 skrll 619 1.1 skrll {"jir", 0xA930, 0x52c0, "S", 0, SIZE_NONE, 620 1.1 skrll cris_ver_v8_10, 621 1.1 skrll cris_none_reg_mode_jump_op}, 622 1.1 skrll 623 1.1 skrll {"jirc", 0x29b0, 0xd640, "r", 0, SIZE_NONE, 624 1.1 skrll cris_ver_v8_10, 625 1.1 skrll cris_reg_mode_jump_op}, 626 1.1 skrll 627 1.1 skrll {"jirc", 0x2930, 0xd2c0, "s", 0, SIZE_FIX_32, 628 1.1 skrll cris_ver_v8_10, 629 1.1 skrll cris_none_reg_mode_jump_op}, 630 1.1 skrll 631 1.1 skrll {"jirc", 0x2930, 0xd2c0, "S", 0, SIZE_NONE, 632 1.1 skrll cris_ver_v8_10, 633 1.1 skrll cris_none_reg_mode_jump_op}, 634 1.1 skrll 635 1.1 skrll {"jsr", 0xB9b0, 0x4640, "r", 0, SIZE_NONE, 0, 636 1.1 skrll cris_reg_mode_jump_op}, 637 1.1 skrll 638 1.1 skrll {"jsr", 0xB930, 0x42c0, "s", 0, SIZE_FIX_32, 639 1.1 skrll cris_ver_v0_10, 640 1.1 skrll cris_none_reg_mode_jump_op}, 641 1.1 skrll 642 1.1 skrll {"jsr", 0xBDBF, 0x4240, "N", 0, SIZE_FIX_32, 643 1.1 skrll cris_ver_v32p, 644 1.1 skrll cris_none_reg_mode_jump_op}, 645 1.1 skrll 646 1.1 skrll {"jsr", 0xB930, 0x42c0, "S", 0, SIZE_NONE, 647 1.1 skrll cris_ver_v0_10, 648 1.1 skrll cris_none_reg_mode_jump_op}, 649 1.1 skrll 650 1.1 skrll {"jsrc", 0x39b0, 0xc640, "r", 0, SIZE_NONE, 651 1.1 skrll cris_ver_v8_10, 652 1.1 skrll cris_reg_mode_jump_op}, 653 1.1 skrll 654 1.1 skrll {"jsrc", 0x3930, 0xc2c0, "s", 0, SIZE_FIX_32, 655 1.1 skrll cris_ver_v8_10, 656 1.1 skrll cris_none_reg_mode_jump_op}, 657 1.1 skrll 658 1.1 skrll {"jsrc", 0x3930, 0xc2c0, "S", 0, SIZE_NONE, 659 1.1 skrll cris_ver_v8_10, 660 1.1 skrll cris_none_reg_mode_jump_op}, 661 1.1 skrll 662 1.1 skrll {"jsrc", 0xBB30, 0x44C0, "r", 0, SIZE_NONE, 663 1.1 skrll cris_ver_v32p, 664 1.1 skrll cris_reg_mode_jump_op}, 665 1.1 skrll 666 1.1 skrll {"jsrc", 0xBF3F, 0x40C0, "N", 0, SIZE_FIX_32, 667 1.1 skrll cris_ver_v32p, 668 1.1 skrll cris_reg_mode_jump_op}, 669 1.1 skrll 670 1.1 skrll {"jump", 0x09b0, 0xF640, "r", 0, SIZE_NONE, 0, 671 1.1 skrll cris_reg_mode_jump_op}, 672 1.1 skrll 673 1.1 skrll {"jump", 674 1.1 skrll JUMP_INDIR_OPCODE, JUMP_INDIR_Z_BITS, "s", 0, SIZE_FIX_32, 675 1.1 skrll cris_ver_v0_10, 676 1.1 skrll cris_none_reg_mode_jump_op}, 677 1.1 skrll 678 1.1 skrll {"jump", 679 1.1 skrll JUMP_INDIR_OPCODE, JUMP_INDIR_Z_BITS, "S", 0, SIZE_NONE, 680 1.1 skrll cris_ver_v0_10, 681 1.1 skrll cris_none_reg_mode_jump_op}, 682 1.1 skrll 683 1.1 skrll {"jump", 0x09F0, 0x060F, "P", 0, SIZE_NONE, 684 1.1 skrll cris_ver_v32p, 685 1.1 skrll cris_none_reg_mode_jump_op}, 686 1.1 skrll 687 1.1 skrll {"jump", 688 1.1 skrll JUMP_PC_INCR_OPCODE_V32, 689 1.1 skrll (0xffff & ~JUMP_PC_INCR_OPCODE_V32), "N", 0, SIZE_FIX_32, 690 1.1 skrll cris_ver_v32p, 691 1.1 skrll cris_none_reg_mode_jump_op}, 692 1.1 skrll 693 1.1 skrll {"jmpu", 0x8930, 0x72c0, "s", 0, SIZE_FIX_32, 694 1.1 skrll cris_ver_v10, 695 1.1 skrll cris_none_reg_mode_jump_op}, 696 1.1 skrll 697 1.1 skrll {"jmpu", 0x8930, 0x72c0, "S", 0, SIZE_NONE, 698 1.1 skrll cris_ver_v10, 699 1.1 skrll cris_none_reg_mode_jump_op}, 700 1.1 skrll 701 1.1 skrll {"lapc", 0x0970, 0x0680, "U,R", 0, SIZE_NONE, 702 1.1 skrll cris_ver_v32p, 703 1.1 skrll cris_not_implemented_op}, 704 1.1 skrll 705 1.1 skrll {"lapc", 0x0D7F, 0x0280, "dn,R", 0, SIZE_FIX_32, 706 1.1 skrll cris_ver_v32p, 707 1.1 skrll cris_not_implemented_op}, 708 1.1 skrll 709 1.1 skrll {"lapcq", 0x0970, 0x0680, "u,R", 0, SIZE_NONE, 710 1.1 skrll cris_ver_v32p, 711 1.1 skrll cris_addi_op}, 712 1.1 skrll 713 1.1 skrll {"lsl", 0x04C0, 0x0B00, "m r,R", 0, SIZE_NONE, 0, 714 1.1 skrll cris_dstep_logshift_mstep_neg_not_op}, 715 1.1 skrll 716 1.1 skrll {"lslq", 0x03c0, 0x0C20, "c,R", 0, SIZE_NONE, 0, 717 1.1 skrll cris_dstep_logshift_mstep_neg_not_op}, 718 1.1 skrll 719 1.1 skrll {"lsr", 0x07C0, 0x0800, "m r,R", 0, SIZE_NONE, 0, 720 1.1 skrll cris_dstep_logshift_mstep_neg_not_op}, 721 1.1 skrll 722 1.1 skrll {"lsrq", 0x03e0, 0x0C00, "c,R", 0, SIZE_NONE, 0, 723 1.1 skrll cris_dstep_logshift_mstep_neg_not_op}, 724 1.1 skrll 725 1.1 skrll {"lz", 0x0730, 0x08C0, "r,R", 0, SIZE_NONE, 726 1.1 skrll cris_ver_v3p, 727 1.1 skrll cris_not_implemented_op}, 728 1.1 skrll 729 1.1 skrll {"mcp", 0x07f0, 0x0800, "P,r", 0, SIZE_NONE, 730 1.1 skrll cris_ver_v32p, 731 1.1 skrll cris_not_implemented_op}, 732 1.1 skrll 733 1.1 skrll {"move", 0x0640, 0x0980, "m r,R", 0, SIZE_NONE, 0, 734 1.1 skrll cris_reg_mode_add_sub_cmp_and_or_move_op}, 735 1.1 skrll 736 1.1 skrll {"move", 0x0A40, 0x0180, "m s,R", 0, SIZE_FIELD, 0, 737 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 738 1.1 skrll 739 1.1 skrll {"move", 0x0A40, 0x0180, "m S,D", 0, SIZE_NONE, 740 1.1 skrll cris_ver_v0_10, 741 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 742 1.1 skrll 743 1.1 skrll {"move", 0x0630, 0x09c0, "r,P", 0, SIZE_NONE, 0, 744 1.1 skrll cris_move_to_preg_op}, 745 1.1 skrll 746 1.1 skrll {"move", 0x0670, 0x0980, "P,r", 0, SIZE_NONE, 0, 747 1.1 skrll cris_reg_mode_move_from_preg_op}, 748 1.1 skrll 749 1.1 skrll {"move", 0x0BC0, 0x0000, "m R,y", 0, SIZE_FIELD, 0, 750 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 751 1.1 skrll 752 1.1 skrll {"move", 0x0BC0, 0x0000, "m D,S", 0, SIZE_NONE, 753 1.1 skrll cris_ver_v0_10, 754 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 755 1.1 skrll 756 1.1 skrll {"move", 757 1.1 skrll MOVE_M_TO_PREG_OPCODE, MOVE_M_TO_PREG_ZBITS, 758 1.1 skrll "s,P", 0, SIZE_SPEC_REG, 0, 759 1.1 skrll cris_move_to_preg_op}, 760 1.1 skrll 761 1.1 skrll {"move", 0x0A30, 0x01c0, "S,P", 0, SIZE_NONE, 762 1.1 skrll cris_ver_v0_10, 763 1.1 skrll cris_move_to_preg_op}, 764 1.1 skrll 765 1.1 skrll {"move", 0x0A70, 0x0180, "P,y", 0, SIZE_SPEC_REG, 0, 766 1.1 skrll cris_none_reg_mode_move_from_preg_op}, 767 1.1 skrll 768 1.1 skrll {"move", 0x0A70, 0x0180, "P,S", 0, SIZE_NONE, 769 1.1 skrll cris_ver_v0_10, 770 1.1 skrll cris_none_reg_mode_move_from_preg_op}, 771 1.1 skrll 772 1.1 skrll {"move", 0x0B70, 0x0480, "r,T", 0, SIZE_NONE, 773 1.1 skrll cris_ver_v32p, 774 1.1 skrll cris_not_implemented_op}, 775 1.1 skrll 776 1.1 skrll {"move", 0x0F70, 0x0080, "T,r", 0, SIZE_NONE, 777 1.1 skrll cris_ver_v32p, 778 1.1 skrll cris_not_implemented_op}, 779 1.1 skrll 780 1.1 skrll {"movem", 0x0BF0, 0x0000, "R,y", 0, SIZE_FIX_32, 0, 781 1.1 skrll cris_move_reg_to_mem_movem_op}, 782 1.1 skrll 783 1.1 skrll {"movem", 0x0BF0, 0x0000, "D,S", 0, SIZE_NONE, 784 1.1 skrll cris_ver_v0_10, 785 1.1 skrll cris_move_reg_to_mem_movem_op}, 786 1.1 skrll 787 1.1 skrll {"movem", 0x0BB0, 0x0040, "s,R", 0, SIZE_FIX_32, 0, 788 1.1 skrll cris_move_mem_to_reg_movem_op}, 789 1.1 skrll 790 1.1 skrll {"movem", 0x0BB0, 0x0040, "S,D", 0, SIZE_NONE, 791 1.1 skrll cris_ver_v0_10, 792 1.1 skrll cris_move_mem_to_reg_movem_op}, 793 1.1 skrll 794 1.1 skrll {"moveq", 0x0240, 0x0D80, "i,R", 0, SIZE_NONE, 0, 795 1.1 skrll cris_quick_mode_and_cmp_move_or_op}, 796 1.1 skrll 797 1.1 skrll {"movs", 0x0460, 0x0B80, "z r,R", 0, SIZE_NONE, 0, 798 1.1 skrll cris_reg_mode_add_sub_cmp_and_or_move_op}, 799 1.1 skrll 800 1.1 skrll /* FIXME: SIZE_FIELD_SIGNED and all necessary changes. */ 801 1.1 skrll {"movs", 0x0860, 0x0380, "z s,R", 0, SIZE_FIELD, 0, 802 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 803 1.1 skrll 804 1.1 skrll {"movs", 0x0860, 0x0380, "z S,D", 0, SIZE_NONE, 805 1.1 skrll cris_ver_v0_10, 806 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 807 1.1 skrll 808 1.1 skrll {"movu", 0x0440, 0x0Ba0, "z r,R", 0, SIZE_NONE, 0, 809 1.1 skrll cris_reg_mode_add_sub_cmp_and_or_move_op}, 810 1.1 skrll 811 1.1 skrll /* FIXME: SIZE_FIELD_UNSIGNED and all necessary changes. */ 812 1.1 skrll {"movu", 0x0840, 0x03a0, "z s,R", 0, SIZE_FIELD, 0, 813 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 814 1.1 skrll 815 1.1 skrll {"movu", 0x0840, 0x03a0, "z S,D", 0, SIZE_NONE, 816 1.1 skrll cris_ver_v0_10, 817 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 818 1.1 skrll 819 1.1 skrll {"mstep", 0x07f0, 0x0800, "r,R", 0, SIZE_NONE, 820 1.1 skrll cris_ver_v0_10, 821 1.1 skrll cris_dstep_logshift_mstep_neg_not_op}, 822 1.1 skrll 823 1.1 skrll {"muls", 0x0d00, 0x02c0, "m r,R", 0, SIZE_NONE, 824 1.1 skrll cris_ver_v10p, 825 1.1 skrll cris_muls_op}, 826 1.1 skrll 827 1.1 skrll {"mulu", 0x0900, 0x06c0, "m r,R", 0, SIZE_NONE, 828 1.1 skrll cris_ver_v10p, 829 1.1 skrll cris_mulu_op}, 830 1.1 skrll 831 1.1 skrll {"neg", 0x0580, 0x0A40, "m r,R", 0, SIZE_NONE, 0, 832 1.1 skrll cris_dstep_logshift_mstep_neg_not_op}, 833 1.1 skrll 834 1.1 skrll {"nop", NOP_OPCODE, NOP_Z_BITS, "", 0, SIZE_NONE, 835 1.1 skrll cris_ver_v0_10, 836 1.1 skrll cris_btst_nop_op}, 837 1.1 skrll 838 1.1 skrll {"nop", NOP_OPCODE_V32, NOP_Z_BITS_V32, "", 0, SIZE_NONE, 839 1.1 skrll cris_ver_v32p, 840 1.1 skrll cris_btst_nop_op}, 841 1.1 skrll 842 1.1 skrll {"not", 0x8770, 0x7880, "r", 0, SIZE_NONE, 0, 843 1.1 skrll cris_dstep_logshift_mstep_neg_not_op}, 844 1.1 skrll 845 1.1 skrll {"or", 0x0740, 0x0880, "m r,R", 0, SIZE_NONE, 0, 846 1.1 skrll cris_reg_mode_add_sub_cmp_and_or_move_op}, 847 1.1 skrll 848 1.1 skrll {"or", 0x0B40, 0x0080, "m s,R", 0, SIZE_FIELD, 0, 849 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 850 1.1 skrll 851 1.1 skrll {"or", 0x0B40, 0x0080, "m S,D", 0, SIZE_NONE, 852 1.1 skrll cris_ver_v0_10, 853 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 854 1.1 skrll 855 1.1 skrll {"or", 0x0B40, 0x0480, "m S,R,r", 0, SIZE_NONE, 856 1.1 skrll cris_ver_v0_10, 857 1.1 skrll cris_three_operand_add_sub_cmp_and_or_op}, 858 1.1 skrll 859 1.1 skrll {"orq", 0x0340, 0x0C80, "i,R", 0, SIZE_NONE, 0, 860 1.1 skrll cris_quick_mode_and_cmp_move_or_op}, 861 1.1 skrll 862 1.1 skrll {"pop", 0x0E6E, 0x0191, "!R", 0, SIZE_NONE, 863 1.1 skrll cris_ver_v0_10, 864 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 865 1.1 skrll 866 1.1 skrll {"pop", 0x0e3e, 0x01c1, "!P", 0, SIZE_NONE, 867 1.1 skrll cris_ver_v0_10, 868 1.1 skrll cris_none_reg_mode_move_from_preg_op}, 869 1.1 skrll 870 1.1 skrll {"push", 0x0FEE, 0x0011, "BR", 0, SIZE_NONE, 871 1.1 skrll cris_ver_v0_10, 872 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 873 1.1 skrll 874 1.1 skrll {"push", 0x0E7E, 0x0181, "BP", 0, SIZE_NONE, 875 1.1 skrll cris_ver_v0_10, 876 1.1 skrll cris_move_to_preg_op}, 877 1.1 skrll 878 1.1 skrll {"rbf", 0x3b30, 0xc0c0, "y", 0, SIZE_NONE, 879 1.1 skrll cris_ver_v10, 880 1.1 skrll cris_not_implemented_op}, 881 1.1 skrll 882 1.1 skrll {"rbf", 0x3b30, 0xc0c0, "S", 0, SIZE_NONE, 883 1.1 skrll cris_ver_v10, 884 1.1 skrll cris_not_implemented_op}, 885 1.1 skrll 886 1.1 skrll {"rfe", 0x2930, 0xD6CF, "", 0, SIZE_NONE, 887 1.1 skrll cris_ver_v32p, 888 1.1 skrll cris_not_implemented_op}, 889 1.1 skrll 890 1.1 skrll {"rfg", 0x4930, 0xB6CF, "", 0, SIZE_NONE, 891 1.1 skrll cris_ver_v32p, 892 1.1 skrll cris_not_implemented_op}, 893 1.1 skrll 894 1.1 skrll {"rfn", 0x5930, 0xA6CF, "", 0, SIZE_NONE, 895 1.1 skrll cris_ver_v32p, 896 1.1 skrll cris_not_implemented_op}, 897 1.1 skrll 898 1.1 skrll {"ret", 0xB67F, 0x4980, "", 1, SIZE_NONE, 899 1.1 skrll cris_ver_v0_10, 900 1.1 skrll cris_reg_mode_move_from_preg_op}, 901 1.1 skrll 902 1.1 skrll {"ret", 0xB9F0, 0x460F, "", 1, SIZE_NONE, 903 1.1 skrll cris_ver_v32p, 904 1.1 skrll cris_reg_mode_move_from_preg_op}, 905 1.1 skrll 906 1.1 skrll {"retb", 0xe67f, 0x1980, "", 1, SIZE_NONE, 907 1.1 skrll cris_ver_v0_10, 908 1.1 skrll cris_reg_mode_move_from_preg_op}, 909 1.1 skrll 910 1.1 skrll {"rete", 0xA9F0, 0x560F, "", 1, SIZE_NONE, 911 1.1 skrll cris_ver_v32p, 912 1.1 skrll cris_reg_mode_move_from_preg_op}, 913 1.1 skrll 914 1.1 skrll {"reti", 0xA67F, 0x5980, "", 1, SIZE_NONE, 915 1.1 skrll cris_ver_v0_10, 916 1.1 skrll cris_reg_mode_move_from_preg_op}, 917 1.1 skrll 918 1.1 skrll {"retn", 0xC9F0, 0x360F, "", 1, SIZE_NONE, 919 1.1 skrll cris_ver_v32p, 920 1.1 skrll cris_reg_mode_move_from_preg_op}, 921 1.1 skrll 922 1.1 skrll {"sbfs", 0x3b70, 0xc080, "y", 0, SIZE_NONE, 923 1.1 skrll cris_ver_v10, 924 1.1 skrll cris_not_implemented_op}, 925 1.1 skrll 926 1.1 skrll {"sbfs", 0x3b70, 0xc080, "S", 0, SIZE_NONE, 927 1.1 skrll cris_ver_v10, 928 1.1 skrll cris_not_implemented_op}, 929 1.1 skrll 930 1.1 skrll {"sa", 931 1.1 skrll 0x0530+CC_A*0x1000, 932 1.1 skrll 0x0AC0+(0xf-CC_A)*0x1000, "r", 0, SIZE_NONE, 0, 933 1.1 skrll cris_scc_op}, 934 1.1 skrll 935 1.1 skrll {"ssb", 936 1.1 skrll 0x0530+CC_EXT*0x1000, 937 1.1 skrll 0x0AC0+(0xf-CC_EXT)*0x1000, "r", 0, SIZE_NONE, 938 1.1 skrll cris_ver_v32p, 939 1.1 skrll cris_scc_op}, 940 1.1 skrll 941 1.1 skrll {"scc", 942 1.1 skrll 0x0530+CC_CC*0x1000, 943 1.1 skrll 0x0AC0+(0xf-CC_CC)*0x1000, "r", 0, SIZE_NONE, 0, 944 1.1 skrll cris_scc_op}, 945 1.1 skrll 946 1.1 skrll {"scs", 947 1.1 skrll 0x0530+CC_CS*0x1000, 948 1.1 skrll 0x0AC0+(0xf-CC_CS)*0x1000, "r", 0, SIZE_NONE, 0, 949 1.1 skrll cris_scc_op}, 950 1.1 skrll 951 1.1 skrll {"seq", 952 1.1 skrll 0x0530+CC_EQ*0x1000, 953 1.1 skrll 0x0AC0+(0xf-CC_EQ)*0x1000, "r", 0, SIZE_NONE, 0, 954 1.1 skrll cris_scc_op}, 955 1.1 skrll 956 1.1 skrll {"setf", 0x05b0, 0x0A40, "f", 0, SIZE_NONE, 0, 957 1.1 skrll cris_ax_ei_setf_op}, 958 1.1 skrll 959 1.1 skrll {"sfe", 0x3930, 0xC6CF, "", 0, SIZE_NONE, 960 1.1 skrll cris_ver_v32p, 961 1.1 skrll cris_not_implemented_op}, 962 1.1 skrll 963 1.1 skrll /* Need to have "swf" in front of "sext" so it is the one displayed in 964 1.1 skrll disassembly. */ 965 1.1 skrll {"swf", 966 1.1 skrll 0x0530+CC_EXT*0x1000, 967 1.1 skrll 0x0AC0+(0xf-CC_EXT)*0x1000, "r", 0, SIZE_NONE, 968 1.1 skrll cris_ver_v10, 969 1.1 skrll cris_scc_op}, 970 1.1 skrll 971 1.1 skrll {"sext", 972 1.1 skrll 0x0530+CC_EXT*0x1000, 973 1.1 skrll 0x0AC0+(0xf-CC_EXT)*0x1000, "r", 0, SIZE_NONE, 974 1.1 skrll cris_ver_v0_3, 975 1.1 skrll cris_scc_op}, 976 1.1 skrll 977 1.1 skrll {"sge", 978 1.1 skrll 0x0530+CC_GE*0x1000, 979 1.1 skrll 0x0AC0+(0xf-CC_GE)*0x1000, "r", 0, SIZE_NONE, 0, 980 1.1 skrll cris_scc_op}, 981 1.1 skrll 982 1.1 skrll {"sgt", 983 1.1 skrll 0x0530+CC_GT*0x1000, 984 1.1 skrll 0x0AC0+(0xf-CC_GT)*0x1000, "r", 0, SIZE_NONE, 0, 985 1.1 skrll cris_scc_op}, 986 1.1 skrll 987 1.1 skrll {"shi", 988 1.1 skrll 0x0530+CC_HI*0x1000, 989 1.1 skrll 0x0AC0+(0xf-CC_HI)*0x1000, "r", 0, SIZE_NONE, 0, 990 1.1 skrll cris_scc_op}, 991 1.1 skrll 992 1.1 skrll {"shs", 993 1.1 skrll 0x0530+CC_HS*0x1000, 994 1.1 skrll 0x0AC0+(0xf-CC_HS)*0x1000, "r", 0, SIZE_NONE, 0, 995 1.1 skrll cris_scc_op}, 996 1.1 skrll 997 1.1 skrll {"sle", 998 1.1 skrll 0x0530+CC_LE*0x1000, 999 1.1 skrll 0x0AC0+(0xf-CC_LE)*0x1000, "r", 0, SIZE_NONE, 0, 1000 1.1 skrll cris_scc_op}, 1001 1.1 skrll 1002 1.1 skrll {"slo", 1003 1.1 skrll 0x0530+CC_LO*0x1000, 1004 1.1 skrll 0x0AC0+(0xf-CC_LO)*0x1000, "r", 0, SIZE_NONE, 0, 1005 1.1 skrll cris_scc_op}, 1006 1.1 skrll 1007 1.1 skrll {"sls", 1008 1.1 skrll 0x0530+CC_LS*0x1000, 1009 1.1 skrll 0x0AC0+(0xf-CC_LS)*0x1000, "r", 0, SIZE_NONE, 0, 1010 1.1 skrll cris_scc_op}, 1011 1.1 skrll 1012 1.1 skrll {"slt", 1013 1.1 skrll 0x0530+CC_LT*0x1000, 1014 1.1 skrll 0x0AC0+(0xf-CC_LT)*0x1000, "r", 0, SIZE_NONE, 0, 1015 1.1 skrll cris_scc_op}, 1016 1.1 skrll 1017 1.1 skrll {"smi", 1018 1.1 skrll 0x0530+CC_MI*0x1000, 1019 1.1 skrll 0x0AC0+(0xf-CC_MI)*0x1000, "r", 0, SIZE_NONE, 0, 1020 1.1 skrll cris_scc_op}, 1021 1.1 skrll 1022 1.1 skrll {"sne", 1023 1.1 skrll 0x0530+CC_NE*0x1000, 1024 1.1 skrll 0x0AC0+(0xf-CC_NE)*0x1000, "r", 0, SIZE_NONE, 0, 1025 1.1 skrll cris_scc_op}, 1026 1.1 skrll 1027 1.1 skrll {"spl", 1028 1.1 skrll 0x0530+CC_PL*0x1000, 1029 1.1 skrll 0x0AC0+(0xf-CC_PL)*0x1000, "r", 0, SIZE_NONE, 0, 1030 1.1 skrll cris_scc_op}, 1031 1.1 skrll 1032 1.1 skrll {"sub", 0x0680, 0x0940, "m r,R", 0, SIZE_NONE, 0, 1033 1.1 skrll cris_reg_mode_add_sub_cmp_and_or_move_op}, 1034 1.1 skrll 1035 1.1 skrll {"sub", 0x0a80, 0x0140, "m s,R", 0, SIZE_FIELD, 0, 1036 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 1037 1.1 skrll 1038 1.1 skrll {"sub", 0x0a80, 0x0140, "m S,D", 0, SIZE_NONE, 1039 1.1 skrll cris_ver_v0_10, 1040 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 1041 1.1 skrll 1042 1.1 skrll {"sub", 0x0a80, 0x0540, "m S,R,r", 0, SIZE_NONE, 1043 1.1 skrll cris_ver_v0_10, 1044 1.1 skrll cris_three_operand_add_sub_cmp_and_or_op}, 1045 1.1 skrll 1046 1.1 skrll {"subq", 0x0280, 0x0d40, "I,R", 0, SIZE_NONE, 0, 1047 1.1 skrll cris_quick_mode_add_sub_op}, 1048 1.1 skrll 1049 1.1 skrll {"subs", 0x04a0, 0x0b40, "z r,R", 0, SIZE_NONE, 0, 1050 1.1 skrll cris_reg_mode_add_sub_cmp_and_or_move_op}, 1051 1.1 skrll 1052 1.1 skrll /* FIXME: SIZE_FIELD_SIGNED and all necessary changes. */ 1053 1.1 skrll {"subs", 0x08a0, 0x0340, "z s,R", 0, SIZE_FIELD, 0, 1054 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 1055 1.1 skrll 1056 1.1 skrll {"subs", 0x08a0, 0x0340, "z S,D", 0, SIZE_NONE, 1057 1.1 skrll cris_ver_v0_10, 1058 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 1059 1.1 skrll 1060 1.1 skrll {"subs", 0x08a0, 0x0740, "z S,R,r", 0, SIZE_NONE, 1061 1.1 skrll cris_ver_v0_10, 1062 1.1 skrll cris_three_operand_add_sub_cmp_and_or_op}, 1063 1.1 skrll 1064 1.1 skrll {"subu", 0x0480, 0x0b60, "z r,R", 0, SIZE_NONE, 0, 1065 1.1 skrll cris_reg_mode_add_sub_cmp_and_or_move_op}, 1066 1.1 skrll 1067 1.1 skrll /* FIXME: SIZE_FIELD_UNSIGNED and all necessary changes. */ 1068 1.1 skrll {"subu", 0x0880, 0x0360, "z s,R", 0, SIZE_FIELD, 0, 1069 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 1070 1.1 skrll 1071 1.1 skrll {"subu", 0x0880, 0x0360, "z S,D", 0, SIZE_NONE, 1072 1.1 skrll cris_ver_v0_10, 1073 1.1 skrll cris_none_reg_mode_add_sub_cmp_and_or_move_op}, 1074 1.1 skrll 1075 1.1 skrll {"subu", 0x0880, 0x0760, "z S,R,r", 0, SIZE_NONE, 1076 1.1 skrll cris_ver_v0_10, 1077 1.1 skrll cris_three_operand_add_sub_cmp_and_or_op}, 1078 1.1 skrll 1079 1.1 skrll {"svc", 1080 1.1 skrll 0x0530+CC_VC*0x1000, 1081 1.1 skrll 0x0AC0+(0xf-CC_VC)*0x1000, "r", 0, SIZE_NONE, 0, 1082 1.1 skrll cris_scc_op}, 1083 1.1 skrll 1084 1.1 skrll {"svs", 1085 1.1 skrll 0x0530+CC_VS*0x1000, 1086 1.1 skrll 0x0AC0+(0xf-CC_VS)*0x1000, "r", 0, SIZE_NONE, 0, 1087 1.1 skrll cris_scc_op}, 1088 1.1 skrll 1089 1.1 skrll /* The insn "swapn" is the same as "not" and will be disassembled as 1090 1.1 skrll such, but the swap* family of mnmonics are generally v8-and-higher 1091 1.1 skrll only, so count it in. */ 1092 1.1 skrll {"swapn", 0x8770, 0x7880, "r", 0, SIZE_NONE, 1093 1.1 skrll cris_ver_v8p, 1094 1.1 skrll cris_not_implemented_op}, 1095 1.1 skrll 1096 1.1 skrll {"swapw", 0x4770, 0xb880, "r", 0, SIZE_NONE, 1097 1.1 skrll cris_ver_v8p, 1098 1.1 skrll cris_not_implemented_op}, 1099 1.1 skrll 1100 1.1 skrll {"swapnw", 0xc770, 0x3880, "r", 0, SIZE_NONE, 1101 1.1 skrll cris_ver_v8p, 1102 1.1 skrll cris_not_implemented_op}, 1103 1.1 skrll 1104 1.1 skrll {"swapb", 0x2770, 0xd880, "r", 0, SIZE_NONE, 1105 1.1 skrll cris_ver_v8p, 1106 1.1 skrll cris_not_implemented_op}, 1107 1.1 skrll 1108 1.1 skrll {"swapnb", 0xA770, 0x5880, "r", 0, SIZE_NONE, 1109 1.1 skrll cris_ver_v8p, 1110 1.1 skrll cris_not_implemented_op}, 1111 1.1 skrll 1112 1.1 skrll {"swapwb", 0x6770, 0x9880, "r", 0, SIZE_NONE, 1113 1.1 skrll cris_ver_v8p, 1114 1.1 skrll cris_not_implemented_op}, 1115 1.1 skrll 1116 1.1 skrll {"swapnwb", 0xE770, 0x1880, "r", 0, SIZE_NONE, 1117 1.1 skrll cris_ver_v8p, 1118 1.1 skrll cris_not_implemented_op}, 1119 1.1 skrll 1120 1.1 skrll {"swapr", 0x1770, 0xe880, "r", 0, SIZE_NONE, 1121 1.1 skrll cris_ver_v8p, 1122 1.1 skrll cris_not_implemented_op}, 1123 1.1 skrll 1124 1.1 skrll {"swapnr", 0x9770, 0x6880, "r", 0, SIZE_NONE, 1125 1.1 skrll cris_ver_v8p, 1126 1.1 skrll cris_not_implemented_op}, 1127 1.1 skrll 1128 1.1 skrll {"swapwr", 0x5770, 0xa880, "r", 0, SIZE_NONE, 1129 1.1 skrll cris_ver_v8p, 1130 1.1 skrll cris_not_implemented_op}, 1131 1.1 skrll 1132 1.1 skrll {"swapnwr", 0xd770, 0x2880, "r", 0, SIZE_NONE, 1133 1.1 skrll cris_ver_v8p, 1134 1.1 skrll cris_not_implemented_op}, 1135 1.1 skrll 1136 1.1 skrll {"swapbr", 0x3770, 0xc880, "r", 0, SIZE_NONE, 1137 1.1 skrll cris_ver_v8p, 1138 1.1 skrll cris_not_implemented_op}, 1139 1.1 skrll 1140 1.1 skrll {"swapnbr", 0xb770, 0x4880, "r", 0, SIZE_NONE, 1141 1.1 skrll cris_ver_v8p, 1142 1.1 skrll cris_not_implemented_op}, 1143 1.1 skrll 1144 1.1 skrll {"swapwbr", 0x7770, 0x8880, "r", 0, SIZE_NONE, 1145 1.1 skrll cris_ver_v8p, 1146 1.1 skrll cris_not_implemented_op}, 1147 1.1 skrll 1148 1.1 skrll {"swapnwbr", 0xf770, 0x0880, "r", 0, SIZE_NONE, 1149 1.1 skrll cris_ver_v8p, 1150 1.1 skrll cris_not_implemented_op}, 1151 1.1 skrll 1152 1.1 skrll {"test", 0x0640, 0x0980, "m D", 0, SIZE_NONE, 1153 1.1 skrll cris_ver_v0_10, 1154 1.1 skrll cris_reg_mode_test_op}, 1155 1.1 skrll 1156 1.1 skrll {"test", 0x0b80, 0xf040, "m y", 0, SIZE_FIELD, 0, 1157 1.1 skrll cris_none_reg_mode_clear_test_op}, 1158 1.1 skrll 1159 1.1 skrll {"test", 0x0b80, 0xf040, "m S", 0, SIZE_NONE, 1160 1.1 skrll cris_ver_v0_10, 1161 1.1 skrll cris_none_reg_mode_clear_test_op}, 1162 1.1 skrll 1163 1.1 skrll {"xor", 0x07B0, 0x0840, "r,R", 0, SIZE_NONE, 0, 1164 1.1 skrll cris_xor_op}, 1165 1.1 skrll 1166 1.1 skrll {NULL, 0, 0, NULL, 0, 0, 0, cris_not_implemented_op} 1167 1.1 skrll }; 1168 1.1 skrll 1169 1.1 skrll /* Condition-names, indexed by the CC_* numbers as found in cris.h. */ 1170 1.1 skrll const char * const 1171 1.1 skrll cris_cc_strings[] = 1172 1.1 skrll { 1173 1.1 skrll "hs", 1174 1.1 skrll "lo", 1175 1.1 skrll "ne", 1176 1.1 skrll "eq", 1177 1.1 skrll "vc", 1178 1.1 skrll "vs", 1179 1.1 skrll "pl", 1180 1.1 skrll "mi", 1181 1.1 skrll "ls", 1182 1.1 skrll "hi", 1183 1.1 skrll "ge", 1184 1.1 skrll "lt", 1185 1.1 skrll "gt", 1186 1.1 skrll "le", 1187 1.1 skrll "a", 1188 1.1 skrll /* This is a placeholder. In v0, this would be "ext". In v32, this 1189 1.1 skrll is "sb". See cris_conds15. */ 1190 1.1 skrll "wf" 1191 1.1 skrll }; 1192 1.1 skrll 1193 1.1 skrll /* Different names and semantics for condition 1111 (0xf). */ 1194 1.1 skrll const struct cris_cond15 cris_cond15s[] = 1195 1.1 skrll { 1196 1.1 skrll /* FIXME: In what version did condition "ext" disappear? */ 1197 1.1 skrll {"ext", cris_ver_v0_3}, 1198 1.1 skrll {"wf", cris_ver_v10}, 1199 1.1 skrll {"sb", cris_ver_v32p}, 1200 1.1 skrll {NULL, 0} 1201 1.1 skrll }; 1202 1.1 skrll 1203 1.1 skrll 1204 1.1 skrll /* 1205 1.1 skrll * Local variables: 1206 1.1 skrll * eval: (c-set-style "gnu") 1207 1.1 skrll * indent-tabs-mode: t 1208 1.1 skrll * End: 1209 1.1 skrll */ 1210