Changeset 609 for branches/GNU/src/binutils/include/opcode
- Timestamp:
- Aug 16, 2003, 6:59:22 PM (22 years ago)
- Location:
- branches/GNU/src/binutils/include/opcode
- Files:
-
- 24 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GNU/src/binutils/include/opcode/ChangeLog
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 2001-06-11 Alan Modra <amodra@bigpond.net.au> 2 3 Merge from mainline. 4 2001-05-23 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> 1 2003-05-13 Stephane Carrez <stcarrez@nerim.fr> 2 3 * m68hc11.h (M68HC12_BANK_VIRT): Define to 0x010000 4 5 2003-04-07 Michael Snyder <msnyder@redhat.com> 6 7 * h8300.h (ldc/stc): Fix up src/dst swaps. 8 9 2003-04-09 J. Grant <jg-binutils@jguk.org> 10 11 * mips.h: Correct comment typo. 12 13 2003-03-21 Martin Schwidefsky <schwidefsky@de.ibm.com> 14 15 * s390.h (s390_opcode_arch_val): Rename to s390_opcode_mode_val. 16 (S390_OPCODE_ESAME): Rename to S390_OPCODE_ZARCH. 17 (s390_opcode): Remove architecture. Add modes and min_cpu. 18 19 2003-03-17 D.Venkatasubramanian <dvenkat@noida.hcltech.com> 20 21 * h8300.h (O_SYS_CMDLINE): New pseudo opcode for command line 22 processing. 23 24 2003-02-21 Noida D.Venkatasubramanian <dvenkat@noida.hcltech.com> 25 26 * h8300.h (ldmac, stmac): Replace MACREG with MS32 and MD32. 27 28 2003-01-23 Alan Modra <amodra@bigpond.net.au> 29 30 * m68hc11.h (cpu6812s): Define. 31 32 2003-01-07 Chris Demetriou <cgd@broadcom.com> 33 34 * mips.h: Fix missing space in comment. 35 (INSN_ISA1, INSN_ISA2, INSN_ISA3, INSN_ISA4, INSN_ISA5) 36 (INSN_ISA32, INSN_ISA32R2, INSN_ISA64): Shift values right 37 by four bits. 38 39 2003-01-02 Chris Demetriou <cgd@broadcom.com> 40 41 * mips.h: Update copyright years to include 2002 (which had 42 been missed previously) and 2003. Make comments about "+A", 43 "+B", and "+C" operand types more descriptive. 44 45 2002-12-31 Chris Demetriou <cgd@broadcom.com> 46 47 * mips.h: Note that the "+D" operand type name is now used. 48 49 2002-12-30 Chris Demetriou <cgd@broadcom.com> 50 51 * mips.h: Document "+" as the start of two-character operand 52 type names, and add new "K", "+A", "+B", and "+C" operand types. 53 (OP_MASK_INSMSB, OP_SH_INSMSB, OP_MASK_EXTMSB) 54 (OP_SH_EXTMSB, INSN_ISA32R2, ISA_MIPS32R2, CPU_MIPS32R2): New 55 defines. 56 57 2002-12-24 Dmitry Diky <diwil@mail.ru> 58 59 * msp430.h: New file. Defines msp430 opcodes. 60 61 2002-12-30 D.Venkatasubramanian <dvenkat@noida.hcltech.com> 62 63 * h8300.h: Added some more pseudo opcodes for system call 64 processing. 65 66 2002-12-19 Chris Demetriou <cgd@broadcom.com> 67 68 * mips.h (OP_OP_COP0, OP_OP_COP1, OP_OP_COP2, OP_OP_COP3) 69 (OP_OP_LWC1, OP_OP_LWC2, OP_OP_LWC3, OP_OP_LDC1, OP_OP_LDC2) 70 (OP_OP_LDC3, OP_OP_SWC1, OP_OP_SWC2, OP_OP_SWC3, OP_OP_SDC1) 71 (OP_OP_SDC2, OP_OP_SDC3): Define. 72 73 2002-12-16 Alan Modra <amodra@bigpond.net.au> 74 75 * hppa.h (completer_chars): #if 0 out. 76 77 * ns32k.h (struct ns32k_opcode): Constify "name", "operands" and 78 "default_args". 79 (struct not_wot): Constify "args". 80 (struct not): Constify "name". 81 (numopcodes): Delete. 82 (endop): Delete. 83 84 2002-12-13 Alan Modra <amodra@bigpond.net.au> 85 86 * pj.h (pj_opc_info_t): Add union. 87 88 2002-12-04 David Mosberger <davidm@hpl.hp.com> 89 90 * ia64.h: Fix copyright message. 91 (IA64_OPND_AR_CSD): New operand kind. 92 93 2002-12-03 Richard Henderson <rth@redhat.com> 94 95 * ia64.h (enum ia64_opnd): Add IA64_OPND_LDXMOV. 96 97 2002-12-03 Alan Modra <amodra@bigpond.net.au> 98 99 * cgen.h (struct cgen_maybe_multi_ifield): Add "const PTR p" to union. 100 Constify "leaf" and "multi". 101 102 2002-11-19 Klee Dienes <kdienes@apple.com> 103 104 * h8300.h (h8_opcode): Remove 'noperands', 'idx', and 'size' 105 fields. 106 (h8_opcodes). Modify initializer and initializer macros to no 107 longer initialize the removed fields. 108 109 2002-11-19 Svein E. Seldal <Svein.Seldal@solidas.com> 110 111 * tic4x.h (c4x_insts): Fixed LDHI constraint 112 113 2002-11-18 Klee Dienes <kdienes@apple.com> 114 115 * h8300.h (h8_opcode): Remove 'length' field. 116 (h8_opcodes): Mark as 'const' (both the declaration and 117 definition). Modify initializer and initializer macros to no 118 longer initialize the length field. 119 120 2002-11-18 Klee Dienes <kdienes@apple.com> 121 122 * arc.h (arc_ext_opcodes): Declare as extern. 123 (arc_ext_operands): Declare as extern. 124 * i860.h (i860_opcodes): Declare as const. 125 126 2002-11-18 Svein E. Seldal <Svein.Seldal@solidas.com> 127 128 * tic4x.h: File reordering. Added enhanced opcodes. 129 130 2002-11-16 Svein E. Seldal <Svein.Seldal@solidas.com> 131 132 * tic4x.h: Major rewrite of entire file. Define instruction 133 classes, and put each instruction into a class. 134 135 2002-11-11 Svein E. Seldal <Svein.Seldal@solidas.com> 136 137 * tic4x.h: Added new opcodes and corrected some bugs. Add support 138 for new DSP types. 139 140 2002-10-14 Alan Modra <amodra@bigpond.net.au> 141 142 * cgen.h: Test __BFD_H_SEEN__ rather than BFD_VERSION_DATE. 143 144 2002-09-30 Gavin Romig-Koch <gavin@redhat.com> 145 Ken Raeburn <raeburn@cygnus.com> 146 Aldy Hernandez <aldyh@redhat.com> 147 Eric Christopher <echristo@redhat.com> 148 Richard Sandiford <rsandifo@redhat.com> 149 150 * mips.h: Update comment for new opcodes. 151 (OP_MASK_VECBYTE, OP_SH_VECBYTE): New. 152 (OP_MASK_VECALIGN, OP_SH_VECALIGN): New. 153 (INSN_4111, INSN_4120, INSN_5400, INSN_5500): New. 154 (CPU_VR4120, CPU_VR5400, CPU_VR5500): New. 155 (OPCODE_IS_MEMBER): Handle the new CPU_* values and INSN_* flags. 156 Don't match CPU_R4111 with INSN_4100. 157 158 2002-08-19 Elena Zannoni <ezannoni@redhat.com> 159 160 From matthew green <mrg@redhat.com> 161 162 * ppc.h (PPC_OPCODE_SPE): New opcode flag for Powerpc e500 163 instructions. 164 (PPC_OPCODE_ISEL, PPC_OPCODE_BRLOCK, PPC_OPCODE_PMR, 165 PPC_OPCODE_CACHELCK, PPC_OPCODE_RFMCI): New opcode flags for the 166 e500x2 Integer select, branch locking, performance monitor, 167 cache locking and machine check APUs, respectively. 168 (PPC_OPCODE_EFS): New opcode type for efs* instructions. 169 (PPC_OPCODE_CLASSIC): New opcode type for Classic PowerPC instructions. 170 171 2002-08-13 Stephane Carrez <stcarrez@nerim.fr> 172 173 * m68hc11.h (M6812_OP_PAGE): Define to identify call operand. 174 (M68HC12_BANK_VIRT, M68HC12_BANK_MASK, M68HC12_BANK_BASE, 175 M68HC12_BANK_SHIFT, M68HC12_BANK_PAGE_MASK): Define for 68HC12 176 memory banks. 177 (M6811_OC1M5, M6811_OC1M4, M6811_MODF): Fix value. 178 179 2002-07-09 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> 180 181 * mips.h (INSN_MIPS16): New define. 182 183 2002-07-08 Alan Modra <amodra@bigpond.net.au> 184 185 * i386.h: Remove IgnoreSize from movsx and movzx. 186 187 2002-06-08 Alan Modra <amodra@bigpond.net.au> 188 189 * a29k.h: Replace CONST with const. 190 (CONST): Don't define. 191 * convex.h: Replace CONST with const. 192 (CONST): Don't define. 193 * dlx.h: Replace CONST with const. 194 * or32.h (CONST): Don't define. 195 196 2002-05-30 Chris G. Demetriou <cgd@broadcom.com> 197 198 * mips.h (OP_SH_ALN, OP_MASK_ALN, OP_SH_VSEL, OP_MASK_VSEL) 199 (MDMX_FMTSEL_IMM_QH, MDMX_FMTSEL_IMM_OB, MDMX_FMTSEL_VEC_QH) 200 (MDMX_FMTSEL_VEC_OB, INSN_READ_MDMX_ACC, INSN_WRITE_MDMX_ACC) 201 (INSN_MDMX): New constants, for MDMX support. 202 (opcode character list): Add "O", "Q", "X", "Y", and "Z" for MDMX. 203 204 2002-05-28 Kuang Hwa Lin <kuang@sbcglobal.net> 205 206 * dlx.h: New file. 207 208 2002-05-25 Alan Modra <amodra@bigpond.net.au> 209 210 * ia64.h: Use #include "" instead of <> for local header files. 211 * sparc.h: Likewise. 212 213 2002-05-22 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> 214 215 * mips.h: Add M_DROL, M_DROL_I, M_DROR, M_DROR_I macro cases. 216 217 2002-05-17 Andrey Volkov <avolkov@sources.redhat.com> 218 219 * h8300.h: Corrected defs of all control regs 220 and eepmov instr. 221 222 2002-04-11 Alan Modra <amodra@bigpond.net.au> 223 224 * i386.h: Add intel mode cmpsd and movsd. 225 Put them before SSE2 insns, so that rep prefix works. 226 227 2002-03-15 Chris G. Demetriou <cgd@broadcom.com> 228 229 * mips.h (INSN_MIPS3D): New definition used to mark MIPS-3D 230 instructions. 231 (OPCODE_IS_MEMBER): Adjust comments to indicate that ASE bit masks 232 may be passed along with the ISA bitmask. 233 234 2002-03-05 Paul Koning <pkoning@equallogic.com> 235 236 * pdp11.h: Add format codes for float instruction formats. 237 238 2002-02-25 Alan Modra <amodra@bigpond.net.au> 239 240 * ppc.h (PPC_OPCODE_POWER4, PPC_OPCODE_NOPOWER4): Define. 241 242 Mon Feb 18 17:31:48 CET 2002 Jan Hubicka <jh@suse.cz> 243 244 * i386.h (push,pop): Fix Reg64 to WordReg to allow 16bit operands. 245 246 Mon Feb 11 12:53:19 CET 2002 Jan Hubicka <jh@suse.cz> 247 248 * i386.h (push,pop): Allow 16bit operands in 64bit mode. 249 (xchg): Fix. 250 (in, out): Disable 64bit operands. 251 (call, jmp): Avoid REX prefixes. 252 (jcxz): Prohibit in 64bit mode 253 (jrcxz, loop): Add 64bit variants. 254 (movq): Fix patterns. 255 (movmskps, pextrw, pinstrw): Add 64bit variants. 256 257 2002-01-31 Ivan Guzvinec <ivang@opencores.org> 258 259 * or32.h: New file. 260 261 2002-01-22 Graydon Hoare <graydon@redhat.com> 262 263 * cgen.h (CGEN_MAYBE_MULTI_IFLD): New structure. 264 (CGEN_OPERAND): Add CGEN_MAYBE_MULTI_IFLD field. 265 266 2002-01-21 Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at> 267 268 * h8300.h: Comment typo fix. 269 270 2002-01-03 matthew green <mrg@redhat.com> 271 272 * ppc.h (PPC_OPCODE_BOOKE): BookE is not Motorola specific. 273 (PPC_OPCODE_BOOKE64): Likewise. 274 275 Mon Dec 31 16:45:41 2001 Jeffrey A Law (law@cygnus.com) 276 277 * hppa.h (call, ret): Move to end of table. 278 (addb, addib): PA2.0 variants should have been PA2.0W. 279 (ldw, ldh, ldb, stw, sth, stb, stwa): Reorder to keep disassembler 280 happy. 281 (fldw, fldd, fstw, fstd, bb): Likewise. 282 (short loads/stores): Tweak format specifier slightly to keep 283 disassembler happy. 284 (indexed loads/stores): Likewise. 285 (absolute loads/stores): Likewise. 286 287 2001-12-04 Alexandre Oliva <aoliva@redhat.com> 288 289 * d10v.h (OPERAND_NOSP): New macro. 290 291 2001-11-29 Alexandre Oliva <aoliva@redhat.com> 292 293 * d10v.h (OPERAND_SP): New macro. 294 295 2001-11-15 Alan Modra <amodra@bigpond.net.au> 296 297 * ppc.h (struct powerpc_operand <insert, extract>): Add dialect param. 298 299 2001-11-11 Timothy Wall <twall@alum.mit.edu> 300 301 * tic54x.h: Revise opcode layout; don't really need a separate 302 structure for parallel opcodes. 303 304 2001-11-13 Zack Weinberg <zack@codesourcery.com> 305 Alan Modra <amodra@bigpond.net.au> 306 307 * i386.h (i386_optab): Add entries for "sldr", "smsw" and "str" to 308 accept WordReg. 309 310 2001-11-04 Chris Demetriou <cgd@broadcom.com> 311 312 * mips.h (OPCODE_IS_MEMBER): Remove extra space. 313 314 2001-10-30 Hans-Peter Nilsson <hp@bitrange.com> 315 316 * mmix.h: New file. 317 318 2001-10-18 Chris Demetriou <cgd@broadcom.com> 319 320 * mips.h (OPCODE_IS_MEMBER): Add a no-op term to the end 321 of the expression, to make source code merging easier. 322 323 2001-10-17 Chris Demetriou <cgd@broadcom.com> 324 325 * mips.h: Sort coprocessor instruction argument characters 326 in comment, add a few more words of description for "H". 327 328 2001-10-17 Chris Demetriou <cgd@broadcom.com> 329 330 * mips.h (INSN_SB1): New cpu-specific instruction bit. 331 (OPCODE_IS_MEMBER): Allow instructions matching INSN_SB1 332 if cpu is CPU_SB1. 333 334 2001-10-17 matthew green <mrg@redhat.com> 335 336 * ppc.h (PPC_OPCODE_BOOKE64): Fix typo. 337 338 2001-10-12 matthew green <mrg@redhat.com> 339 340 * ppc.h (PPC_OPCODE_BOOKE, PPC_OPCODE_BOOKE64, PPC_OPCODE_403): New 341 opcode flags for BookE 32-bit, BookE 64-bit and PowerPC 403 342 instructions, respectively. 343 344 2001-09-27 Nick Clifton <nickc@cambridge.redhat.com> 345 346 * v850.h: Remove spurious comment. 347 348 2001-09-21 Nick Clifton <nickc@cambridge.redhat.com> 349 350 * h8300.h: Fix compile time warning messages 351 352 2001-09-04 Richard Henderson <rth@redhat.com> 353 354 * alpha.h (struct alpha_operand): Pack elements into bitfields. 355 356 2001-08-31 Eric Christopher <echristo@redhat.com> 357 358 * mips.h: Remove CPU_MIPS32_4K. 359 360 2001-08-27 Torbjorn Granlund <tege@swox.com> 361 362 * ppc.h (PPC_OPERAND_DS): Define. 363 364 2001-08-25 Andreas Jaeger <aj@suse.de> 365 366 * d30v.h: Fix declaration of reg_name_cnt. 367 368 * d10v.h: Fix declaration of d10v_reg_name_cnt. 369 370 * arc.h: Add prototypes from opcodes/arc-opc.c. 371 372 2001-08-16 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> 373 374 * mips.h (INSN_10000): Define. 375 (OPCODE_IS_MEMBER): Check for INSN_10000. 376 377 2001-08-10 Alan Modra <amodra@one.net.au> 378 379 * ppc.h: Revert 2001-08-08. 380 381 2001-08-10 Richard Sandiford <rsandifo@redhat.com> 382 383 * mips.h (INSN_GP32): Remove. 384 (OPCODE_IS_MEMBER): Remove gp32 parameter. 385 (M_MOVE): New macro identifier. 386 387 2001-08-08 Alan Modra <amodra@one.net.au> 388 389 1999-10-25 Torbjorn Granlund <tege@swox.com> 390 * ppc.h (struct powerpc_operand): New field `reloc'. 391 392 2001-08-01 Aldy Hernandez <aldyh@redhat.com> 393 394 * mips.h (INSN_ISA_MASK): Nuke bits 12-15. 395 396 2001-07-12 Jeff Johnston <jjohnstn@redhat.com> 397 398 * cgen.h (CGEN_INSN): Add regex support. 399 (build_insn_regex): Declare. 400 401 2001-07-11 Frank Ch. Eigler <fche@redhat.com> 402 403 * cgen.h (CGEN_MACH): Add insn_chunk_bitsize field. 404 (cgen_cpu_desc): Ditto. 405 406 2001-07-07 Ben Elliston <bje@redhat.com> 407 408 * m88k.h: Clean up and reformat. Remove unused code. 409 410 2001-06-14 Geoffrey Keating <geoffk@redhat.com> 411 412 * cgen.h (cgen_keyword): Add nonalpha_chars field. 413 414 2001-05-23 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> 415 5 416 * mips.h (CPU_R12000): Define. 6 417 7 2001-05-15 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> 418 2001-05-23 John Healy <jhealy@redhat.com> 419 420 * cgen.h: Increased CGEN_MAX_SYNTAX_ELEMENTS to 48. 421 422 2001-05-15 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> 423 8 424 * mips.h (INSN_ISA_MASK): Define. 9 10 2001-03-21 Kazu Hirata <kazu@hxi.com>11 * h8300.h: Fix formatting.12 13 2001-02-28 Igor Shevlyakov <igor@windriver.com>14 * m68k.h: new defines for Coldfire V4. Update mcf to know15 about mcf5407.16 17 2001-02-10 Nick Clifton <nickc@redhat.com>18 * mips.h: Remove extraneous whitespace. Formating change to allow19 for future contribution.20 21 2001-06-07 Alan Modra <amodra@bigpond.net.au>22 23 * Many files: Update copyright notices.24 425 25 426 2001-05-12 Alan Modra <amodra@one.net.au> … … 34 435 and pextrw to swap reg/rm assignments. 35 436 437 2001-04-05 Hans-Peter Nilsson <hp@axis.com> 438 439 * cris.h (enum cris_insn_version_usage): Correct comment for 440 cris_ver_v3p. 441 36 442 2001-03-24 Alan Modra <alan@linuxcare.com.au> 37 443 … … 39 445 Add InvMem to first operand of "maskmovdqu". 40 446 447 2001-03-22 Hans-Peter Nilsson <hp@axis.com> 448 449 * cris.h (ADD_PC_INCR_OPCODE): New macro. 450 451 2001-03-21 Kazu Hirata <kazu@hxi.com> 452 453 * h8300.h: Fix formatting. 454 41 455 2001-03-22 Alan Modra <alan@linuxcare.com.au> 42 456 … … 47 461 * i386.h (REGNAM_AL, REGNAM_AX, REGNAM_EAX): Define. 48 462 49 Mon Feb 12 17:39:31 CET 2001 Jan Hubicka <jh@suse.cz> 463 2001-02-28 Igor Shevlyakov <igor@windriver.com> 464 465 * m68k.h: new defines for Coldfire V4. Update mcf to know 466 about mcf5407. 467 468 2001-02-18 lars brinkhoff <lars@nocrew.org> 469 470 * pdp11.h: New file. 471 472 2001-02-12 Jan Hubicka <jh@suse.cz> 50 473 51 474 * i386.h (i386_optab): SSE integer converison instructions have 52 475 64bit versions on x86-64. 476 477 2001-02-10 Nick Clifton <nickc@redhat.com> 478 479 * mips.h: Remove extraneous whitespace. Formating change to allow 480 for future contribution. 481 482 2001-02-09 Martin Schwidefsky <schwidefsky@de.ibm.com> 483 484 * s390.h: New file. 485 486 2001-02-02 Patrick Macdonald <patrickm@redhat.com> 487 488 * cgen.h (CGEN_SYNTAX_CHAR_TYPE): Typedef as unsigned short. 489 (CGEN_MAX_SYNTAX_ELEMENTS): Rename from CGEN_MAX_SYNTAX_BYTES. 490 (CGEN_SYNTAX): Define using CGEN_MAX_SYNTAX_ELEMENTS. 53 491 54 492 2001-01-24 Karsten Keil <kkeil@suse.de> … … 63 501 Remove duplicate "ldw j(s,b),x". Sort some entries. 64 502 65 Sat Jan 13 09:56:32 MET 2001Jan Hubicka <jh@suse.cz>503 2001-01-13 Jan Hubicka <jh@suse.cz> 66 504 67 505 * i386.h (i386_optab): Fix pusha and ret templates. … … 118 556 * i386.h (i386_optab): Replace "Imm" with "EncImm". 119 557 (i386_regtab): Add flags field. 120 558 121 559 2000-12-12 Nick Clifton <nickc@redhat.com> 122 560 … … 143 581 (ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4, ISA_MIPS5, 144 582 ISA_MIPS32): New constants, defined to be the mask of INSN_* 145 constants available at that ISA level. 583 constants available at that ISA level. 146 584 (CPU_UNKNOWN): New constant to indicate unknown CPU. 147 585 (CPU_4K, CPU_MIPS32_4K): Rename the former to the latter, … … 151 589 152 590 * mips.h (INSN_ISA64, ISA_MIPS5, ISA_MIPS64): New 153 definitions. 591 definitions. 154 592 155 593 * mips.h (CPU_SB1): New constant. … … 165 603 166 604 2000-09-13 Anders Norlander <anorland@acc.umu.se> 167 605 168 606 * mips.h: Use defines instead of hard-coded processor numbers. 169 607 (CPU_R2000, CPU_R3000, CPU_R3900, CPU_R4000, CPU_R4010, 170 CPU_VR4100, CPU_R4111, CPU_R4300, CPU_R4400, CPU_R4600, CPU_R4650, 608 CPU_VR4100, CPU_R4111, CPU_R4300, CPU_R4400, CPU_R4600, CPU_R4650, 171 609 CPU_R5000, CPU_R6000, CPU_R8000, CPU_R10000, CPU_MIPS32, CPU_4K, 172 610 CPU_4KC, CPU_4KM, CPU_4KP): Define.. 173 611 (OPCODE_IS_MEMBER): Use new defines. 174 612 (OP_MASK_SEL, OP_SH_SEL): Define. 175 613 (OP_MASK_CODE20, OP_SH_CODE20): Define. 176 177 614 Add 'P' to used characters. 615 Use 'H' for coprocessor select field. 178 616 Use 'm' for 20 bit breakpoint code. 179 180 181 617 Document new arg characters and add to used characters. 618 (INSN_MIPS32): New define for MIPS32 extensions. 619 (OPCODE_IS_MEMBER): Recognize MIPS32 instructions. 182 620 183 621 2000-09-05 Alan Modra <alan@linuxcare.com.au> … … 359 797 (CGEN_CPU_TABLE): flags: new field. 360 798 Add prototypes for new functions. 361 799 362 800 2000-02-24 Alan Modra <alan@spri.levels.unisa.edu.au> 363 801 … … 477 915 478 916 * hppa.h (pa_opcodes): Use 'fX' for first register operand 479 in xmpyu. 917 in xmpyu. 480 918 481 919 * hppa.h (pa_opcodes): Fix mask for probe and probei. … … 563 1001 * hppa.h (pa_opcodes): Mark all PA2.0 opcodes with FLAG_STRICT. 564 1002 565 * hppa.h (pa_opcodes): Change xmpyu, fmpyfadd, 1003 * hppa.h (pa_opcodes): Change xmpyu, fmpyfadd, 566 1004 and fmpynfadd to use 'J' and 'K' instead of 'E' and 'X'. 567 1005 … … 591 1029 592 1030 * hppa.h (pa_opcodes): Move integer arithmetic instructions after 593 integer logical instructions. 1031 integer logical instructions. 594 1032 595 1033 1999-05-28 Linus Nordberg <linus.nordberg@canit.se> … … 608 1046 Wed May 26 16:57:44 1999 Jeffrey A Law (law@cygnus.com) 609 1047 610 * hppa.h (pa_opcodes): Add second entry for "comb", "comib", 1048 * hppa.h (pa_opcodes): Add second entry for "comb", "comib", 611 1049 "addb", and "addib" to be used by the disassembler. 612 1050 … … 719 1157 720 1158 Mon Feb 1 21:09:14 1999 Catherine Moore <clm@cygnus.com> 721 1159 722 1160 * i386.h (d_Suf, x_Suf, sld_Suf, sldx_Suf, bwld_Suf): Define. 723 1161 (x_FP, d_FP, dls_FP, sldx_FP): Define. … … 742 1180 CGEN_MODE_UINT. 743 1181 744 Sat Jan 16 01:29:25 1999Jeffrey A Law (law@cygnus.com)1182 1999-01-16 Jeffrey A Law (law@cygnus.com) 745 1183 746 1184 * hppa.h (bv): Fix mask. … … 760 1198 761 1199 The following is part of a change made by Edith Epstein 762 763 1200 <eepstein@sophia.cygnus.com> as part of a project to merge in 1201 changes by HP; HP did not create ChangeLog entries. 764 1202 765 1203 * hppa.h (completer_chars): list of chars to not put a space 766 1204 after. 767 1205 768 1206 Sun Dec 6 13:21:34 1998 Ian Lance Taylor <ian@cygnus.com> 769 1207 770 1208 * i386.h (i386_optab): Permit w suffix on processor control and 771 1209 status word instructions. 772 1210 773 1211 1998-11-30 Doug Evans <devans@casey.cygnus.com> … … 830 1268 831 1269 * hppa.h: Add "fid". 832 1270 833 1271 Sun Oct 4 21:00:00 1998 Alan Modra <alan@spri.levels.unisa.edu.au> 834 1272 … … 884 1322 * mn10300.h: Add "machine" field for instructions. 885 1323 (MN103, AM30): Define machine types. 886 1324 887 1325 Fri Jun 19 16:09:09 1998 Alan Modra <alan@spri.levels.unisa.edu.au> 888 1326 … … 1489 1927 1490 1928 * alpha.h: Don't include "bfd.h"; private relocation types are now 1491 1492 1493 1929 negative to minimize problems with shared libraries. Organize 1930 instruction subsets by AMASK extensions and PALcode 1931 implementation. 1494 1932 (struct alpha_operand): Move flags slot for better packing. 1495 1933 … … 1544 1982 1545 1983 * v850.h (v850_operands): Add insert and extract fields, pointers 1546 1984 to functions used to handle unusual operand encoding. 1547 1985 (V850_OPERAND_REG, V850_OPERAND_SRG, V850_OPERAND_CC, 1548 1986 V850_OPERAND_SIGNED): Defined. 1549 1987 1550 1988 Wed Aug 21 17:45:10 1996 J.T. Conklin <jtc@rtl.cygnus.com> … … 1560 1998 1561 1999 * mips.h (OP_SH_LOCC, OP_SH_HICC, OP_MASK_CC, OP_SH_COP1NORM, 1562 1563 1564 1565 1566 2000 OP_MASK_COP1NORM, OP_SH_COP1SPEC, OP_MASK_COP1SPEC, 2001 OP_MASK_COP1SCLR, OP_MASK_COP1CMP, OP_SH_COP1CMP, OP_SH_FORMAT, 2002 OP_MASK_FORMAT, OP_SH_TRUE, OP_MASK_TRUE, OP_SH_GE, OP_MASK_GE, 2003 OP_SH_UNSIGNED, OP_MASK_UNSIGNED, OP_SH_HINT, OP_MASK_HINT): 2004 Defined. 1567 2005 1568 2006 Fri Aug 16 00:15:15 1996 Jeffrey A Law (law@cygnus.com) … … 1574 2012 1575 2013 * d10v.h: Add some additional defines to support the 1576 2014 assembler in determining which operations can be done in parallel. 1577 2015 1578 2016 Tue Aug 6 11:13:22 1996 Jeffrey A Law (law@cygnus.com) … … 1590 2028 1591 2029 * d10v.h: Changes for divs, parallel-only instructions, and 1592 2030 signed numbers. 1593 2031 1594 2032 Mon Jul 22 11:21:15 1996 Martin M. Hunt <hunt@pizza.cygnus.com> … … 1612 2050 Wed Jul 3 14:30:12 1996 J.T. Conklin <jtc@rtl.cygnus.com> 1613 2051 1614 2052 * m68k.h (mcf5200): New macro. 1615 2053 Document names of coldfire control registers. 1616 2054 … … 1762 2200 1763 2201 * mips.h: Added INSN_4100 flag to mark NEC VR4100 specific 1764 2202 instructions. 1765 2203 1766 2204 Mon Oct 16 10:28:15 1995 Michael Meissner <meissner@tiktok.cygnus.com> -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/a29k.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* Table of opcodes for the AMD 29000 family. 2 Copyright 1990, 1991, 1993, 1994 Free Software Foundation, Inc.2 Copyright 1990, 1991, 1993, 1994, 2002 Free Software Foundation, Inc. 3 3 4 4 This file is part of GDB and GAS. … … 63 63 }; 64 64 65 #ifndef CONST 66 #define CONST 67 #endif /* CONST */ 68 69 static CONST struct a29k_opcode a29k_opcodes[] = 65 static const struct a29k_opcode a29k_opcodes[] = 70 66 { 71 67 … … 283 279 }; 284 280 285 CONSTunsigned int num_opcodes = (((sizeof a29k_opcodes) / (sizeof a29k_opcodes[0])) - 1);281 const unsigned int num_opcodes = (((sizeof a29k_opcodes) / (sizeof a29k_opcodes[0])) - 1); -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/alpha.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 83 83 { 84 84 /* The number of bits in the operand. */ 85 int bits;85 unsigned int bits : 5; 86 86 87 87 /* How far the operand is left shifted in the instruction. */ 88 int shift;88 unsigned int shift : 5; 89 89 90 90 /* The default relocation type for this operand. */ 91 int default_reloc;91 signed int default_reloc : 16; 92 92 93 93 /* One bit syntax flags. */ 94 unsigned flags;94 unsigned int flags : 16; 95 95 96 96 /* Insertion function. This is used by the assembler. To insert an -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/arc.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 99 99 /* this is an "insert at front" linked list per Metaware spec 100 100 that new definitions override older ones. */ 101 struct arc_opcode *arc_ext_opcodes;101 extern struct arc_opcode *arc_ext_opcodes; 102 102 103 103 struct arc_operand_value { … … 118 118 struct arc_ext_operand_value *next; 119 119 struct arc_operand_value operand; 120 } *arc_ext_operands; 120 }; 121 122 extern struct arc_ext_operand_value *arc_ext_operands; 121 123 122 124 struct arc_operand { … … 314 316 int arc_opcode_supported PARAMS ((const struct arc_opcode *)); 315 317 int arc_opval_supported PARAMS ((const struct arc_operand_value *)); 318 int arc_limm_fixup_adjust PARAMS ((arc_insn)); 319 int arc_insn_is_j PARAMS ((arc_insn)); 320 int arc_insn_not_jl PARAMS ((arc_insn)); 321 int arc_operand_type PARAMS ((int)); 322 struct arc_operand_value *get_ext_suffix PARAMS ((char *)); 323 int arc_get_noshortcut_flag PARAMS ((void)); -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/avr.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 26 26 #define AVR_ISA_MUL 0x0040 /* device has new core (MUL, MOVW, ...) */ 27 27 #define AVR_ISA_ELPM 0x0080 /* device has >64K program memory (ELPM) */ 28 #define AVR_ISA_ELPMX 0x0100 /* device has ELPM Rd,Z[+] (none yet)*/28 #define AVR_ISA_ELPMX 0x0100 /* device has ELPM Rd,Z[+] */ 29 29 #define AVR_ISA_SPM 0x0200 /* device can program itself */ 30 #define AVR_ISA_BRK 0x0400 /* device has BREAK (on-chip debug) */ 30 31 #define AVR_ISA_EIND 0x0800 /* device has >128K program memory (none yet) */ 31 32 32 33 #define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM) 33 34 #define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM) 34 #define AVR_ISA_M8 3(AVR_ISA_2xxx | AVR_ISA_MUL | AVR_ISA_LPMX | AVR_ISA_SPM)35 #define AVR_ISA_M8 (AVR_ISA_2xxx | AVR_ISA_MUL | AVR_ISA_LPMX | AVR_ISA_SPM) 35 36 #define AVR_ISA_M603 (AVR_ISA_2xxx | AVR_ISA_MEGA) 36 37 #define AVR_ISA_M103 (AVR_ISA_M603 | AVR_ISA_ELPM) 37 38 #define AVR_ISA_M161 (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_LPMX | AVR_ISA_SPM) 38 39 #define AVR_ISA_94K (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_LPMX) 40 #define AVR_ISA_M323 (AVR_ISA_M161 | AVR_ISA_BRK) 41 #define AVR_ISA_M128 (AVR_ISA_M323 | AVR_ISA_ELPM | AVR_ISA_ELPMX) 39 42 40 43 #define AVR_ISA_ALL 0xFFFF … … 87 90 the disassembler will only see the first match. 88 91 89 Remaining undefined opcodes (1 700total - some of them might work92 Remaining undefined opcodes (1699 total - some of them might work 90 93 as normal instructions if not all of the bits are decoded): 91 94 … … 101 104 "10010101001x1000" (2) 0x95[23]8 102 105 "1001010101xx1000" (4) 0x95[4-7]8 103 "1001010110 x11000" (2) 0x95[9b]8106 "1001010110111000" (1) 0x95b8 104 107 "1001010111111000" (1) 0x95f8 (`espm' removed in databook update) 105 108 "11111xxxxxxx1xxx" (1024) 0xf[8-9a-f][0-9a-f][8-9a-f] … … 140 143 AVR_INSN (reti, "", "1001010100011000", 1, AVR_ISA_1200, 0x9518) 141 144 AVR_INSN (sleep,"", "1001010110001000", 1, AVR_ISA_1200, 0x9588) 145 AVR_INSN (break,"", "1001010110011000", 1, AVR_ISA_BRK, 0x9598) 142 146 AVR_INSN (wdr, "", "1001010110101000", 1, AVR_ISA_1200, 0x95a8) 143 147 AVR_INSN (spm, "", "1001010111101000", 1, AVR_ISA_SPM, 0x95e8) -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/cgen.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* Header file for targets using CGEN: Cpu tools GENerator. 2 2 3 Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. 3 Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 4 Free Software Foundation, Inc. 4 5 5 6 This file is part of GDB, the GNU debugger, and the GNU Binutils. … … 27 28 Or perhaps one could duplicate its definition in another file. 28 29 Until such time, this file conditionally compiles definitions that require 29 bfd_vma using BFD_VERSION. */30 bfd_vma using __BFD_H_SEEN__. */ 30 31 31 32 /* Enums must be defined before they can be used. … … 203 204 /* one of enum mach_attr */ 204 205 int num; 206 /* parameter from mach->cpu */ 207 unsigned int insn_chunk_bitsize; 205 208 } CGEN_MACH; 206 209 … … 281 284 The result is an error message or NULL if success. */ 282 285 283 #ifdef BFD_VERSION286 #ifdef __BFD_H_SEEN__ 284 287 typedef const char * (cgen_insert_fn) 285 288 PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *insn_, … … 302 305 The result is the length of the insn in bits or zero if not recognized. */ 303 306 304 #ifdef BFD_VERSION307 #ifdef __BFD_H_SEEN__ 305 308 typedef int (cgen_extract_fn) 306 309 PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *insn_, … … 321 324 LEN is the length of the insn, in bits. */ 322 325 323 #ifdef BFD_VERSION326 #ifdef __BFD_H_SEEN__ 324 327 typedef void (cgen_print_fn) 325 328 PARAMS ((CGEN_CPU_DESC, PTR info_, const CGEN_INSN *insn_, … … 387 390 }; 388 391 389 #ifdef BFD_VERSION/* Don't require bfd.h unnecessarily. */392 #ifdef __BFD_H_SEEN__ /* Don't require bfd.h unnecessarily. */ 390 393 typedef const char * (cgen_parse_operand_fn) 391 394 PARAMS ((CGEN_CPU_DESC, … … 522 525 /* Pointer to null keyword "" entry if present. */ 523 526 const CGEN_KEYWORD_ENTRY *null_entry; 527 528 /* String containing non-alphanumeric characters used 529 in keywords. 530 At present, the highest number of entries used is 1. */ 531 char nonalpha_chars[8]; 524 532 } CGEN_KEYWORD; 525 533 … … 567 575 extern const char *cgen_parse_keyword 568 576 PARAMS ((CGEN_CPU_DESC, const char **, CGEN_KEYWORD *, long *)); 569 #ifdef BFD_VERSION/* Don't require bfd.h unnecessarily. */577 #ifdef __BFD_H_SEEN__ /* Don't require bfd.h unnecessarily. */ 570 578 extern const char *cgen_parse_signed_integer 571 579 PARAMS ((CGEN_CPU_DESC, const char **, int, long *)); … … 613 621 #define CGEN_OPERAND_NIL CGEN_OPERAND_MAX 614 622 623 /* A tree of these structs represents the multi-ifield 624 structure of an operand's hw-index value, if it exists. */ 625 626 struct cgen_ifld; 627 628 typedef struct cgen_maybe_multi_ifield 629 { 630 int count; /* 0: indexed by single cgen_ifld (possibly null: dead entry); 631 n: indexed by array of more cgen_maybe_multi_ifields. */ 632 union 633 { 634 const PTR p; 635 const struct cgen_maybe_multi_ifield * multi; 636 const struct cgen_ifld * leaf; 637 } val; 638 } 639 CGEN_MAYBE_MULTI_IFLD; 640 615 641 /* This struct defines each entry in the operand table. */ 616 642 … … 641 667 unsigned char length; 642 668 669 /* The (possibly-multi) ifield used as an index for this operand, if it 670 is indexed by a field at all. This substitutes / extends the start and 671 length fields above, but unsure at this time whether they are used 672 anywhere. */ 673 CGEN_MAYBE_MULTI_IFLD index_fields; 643 674 #if 0 /* ??? Interesting idea but relocs tend to get too complicated, 644 675 and ABI dependent, for simple table lookups to work. */ … … 749 780 750 781 /* This should be at least as large as necessary for any target. */ 751 #define CGEN_MAX_SYNTAX_ BYTES 40782 #define CGEN_MAX_SYNTAX_ELEMENTS 48 752 783 753 784 /* A target may know its own precise maximum. Assert that it falls below 754 785 the above limit. */ 755 #ifdef CGEN_ACTUAL_MAX_SYNTAX_BYTES 756 #if CGEN_ACTUAL_MAX_SYNTAX_BYTES > CGEN_MAX_SYNTAX_BYTES 757 #error "CGEN_ACTUAL_MAX_SYNTAX_BYTES too high - enlarge CGEN_MAX_SYNTAX_BYTES" 758 #endif 759 #endif 760 761 #if !defined(MAX_OPERANDS) || MAX_OPERANDS <= 127 762 typedef unsigned char CGEN_SYNTAX_CHAR_TYPE; 763 #else 786 #ifdef CGEN_ACTUAL_MAX_SYNTAX_ELEMENTS 787 #if CGEN_ACTUAL_MAX_SYNTAX_ELEMENTS > CGEN_MAX_SYNTAX_ELEMENTS 788 #error "CGEN_ACTUAL_MAX_SYNTAX_ELEMENTS too high - enlarge CGEN_MAX_SYNTAX_ELEMENTS" 789 #endif 790 #endif 791 764 792 typedef unsigned short CGEN_SYNTAX_CHAR_TYPE; 765 #endif766 793 767 794 typedef struct 768 795 { 769 CGEN_SYNTAX_CHAR_TYPE syntax[CGEN_MAX_SYNTAX_ BYTES];796 CGEN_SYNTAX_CHAR_TYPE syntax[CGEN_MAX_SYNTAX_ELEMENTS]; 770 797 } CGEN_SYNTAX; 771 798 … … 1021 1048 const CGEN_OPCODE *opcode; 1022 1049 const CGEN_OPINST *opinst; 1050 1051 /* Regex to disambiguate overloaded opcodes */ 1052 void *rx; 1053 #define CGEN_INSN_RX(insn) ((insn)->rx) 1054 #define CGEN_MAX_RX_ELEMENTS (CGEN_MAX_SYNTAX_ELEMENTS * 5) 1023 1055 }; 1024 1056 … … 1183 1215 unsigned int word_bitsize; 1184 1216 1217 /* Instruction chunk size (in bits), for purposes of endianness 1218 conversion. */ 1219 unsigned int insn_chunk_bitsize; 1220 1185 1221 /* Indicator if sizes are unknown. 1186 1222 This is used by default_insn_bitsize,base_insn_bitsize if there is a … … 1237 1273 PARAMS ((CGEN_CPU_DESC, int opindex_, const char **, 1238 1274 CGEN_FIELDS *fields_)); 1239 #ifdef BFD_VERSION1275 #ifdef __BFD_H_SEEN__ 1240 1276 const char * (*insert_operand) 1241 1277 PARAMS ((CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, … … 1270 1306 void (*set_int_operand) 1271 1307 PARAMS ((CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, int value_)); 1272 #ifdef BFD_VERSION1308 #ifdef __BFD_H_SEEN__ 1273 1309 bfd_vma (*get_vma_operand) 1274 1310 PARAMS ((CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_)); … … 1376 1412 extern void CGEN_SYM (init_opcode_table) PARAMS ((CGEN_CPU_DESC cd_)); 1377 1413 1414 /* build the insn selection regex. 1415 called by init_opcode_table */ 1416 1417 extern char * CGEN_SYM(build_insn_regex) PARAMS ((CGEN_INSN *insn_)); 1418 1378 1419 /* Initialize the ibld table for use. 1379 1420 Called by init_asm/init_dis. */ -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/convex.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* Information for instruction disassembly on the Convex. 2 Copyright 1989, 1993 Free Software Foundation, Inc.2 Copyright 1989, 1993, 2002 Free Software Foundation, Inc. 3 3 4 4 This file is part of GDB. … … 17 17 along with this program; if not, write to the Free Software 18 18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 19 20 #ifndef CONST21 #define CONST22 #endif /* CONST */23 19 24 20 #define xxx 0 … … 68 64 #define TID 21 69 65 70 CONSTchar *op[] = {66 const char *op[] = { 71 67 "", 72 68 "v0\0v1\0v2\0v3\0v4\0v5\0v6\0v7", … … 93 89 }; 94 90 95 CONSTstruct formstr format0[] = {91 const struct formstr format0[] = { 96 92 {0,0,rrr,V,S,S}, /* mov */ 97 93 {0,0,rrr,S,S,V}, /* mov */ … … 160 156 }; 161 157 162 CONSTstruct formstr format1[] = {158 const struct formstr format1[] = { 163 159 {11,0,xxx,0,0,0}, /* exit */ 164 160 {12,0,a3,0,0,0}, /* jmp */ … … 227 223 }; 228 224 229 CONSTstruct formstr format2[] = {225 const struct formstr format2[] = { 230 226 {28,5,rr,A,A,0}, /* cvtw.b */ 231 227 {28,6,rr,A,A,0}, /* cvtw.h */ … … 358 354 }; 359 355 360 CONSTstruct formstr format3[] = {356 const struct formstr format3[] = { 361 357 {32,3,rr,V,V,0}, /* cvtd.s */ 362 358 {31,4,rr,V,V,0}, /* cvts.d */ … … 425 421 }; 426 422 427 CONSTstruct formstr format4[] = {423 const struct formstr format4[] = { 428 424 {46,0,nops,0,0,0}, /* nop */ 429 425 {47,0,pcrel,0,0,0}, /* br */ … … 436 432 }; 437 433 438 CONSTstruct formstr format5[] = {434 const struct formstr format5[] = { 439 435 {51,5,rr,V,V,0}, /* ldvi.b */ 440 436 {51,6,rr,V,V,0}, /* ldvi.h */ … … 455 451 }; 456 452 457 CONSTstruct formstr format6[] = {453 const struct formstr format6[] = { 458 454 {53,0,r,A,0,0}, /* ldsdr */ 459 455 {54,0,r,A,0,0}, /* ldkdr */ … … 522 518 }; 523 519 524 CONSTstruct formstr format7[] = {520 const struct formstr format7[] = { 525 521 {84,5,r,V,0,0}, /* sum.b */ 526 522 {84,6,r,V,0,0}, /* sum.h */ … … 557 553 }; 558 554 559 CONSTstruct formstr formatx[] = {560 {0,0,0,0,0,0}, 561 }; 562 563 CONSTstruct formstr format1a[] = {555 const struct formstr formatx[] = { 556 {0,0,0,0,0,0}, 557 }; 558 559 const struct formstr format1a[] = { 564 560 {91,0,imr,A,0,0}, /* halt */ 565 561 {92,0,a4,0,0,0}, /* sysc */ … … 596 592 }; 597 593 598 CONSTstruct formstr format1b[] = {594 const struct formstr format1b[] = { 599 595 {18,4,imr,S,0,0}, /* ld.d */ 600 596 {18,10,imr,S,0,0}, /* ld.u */ … … 631 627 }; 632 628 633 CONSTstruct formstr e0_format0[] = {629 const struct formstr e0_format0[] = { 634 630 {10,3,rrr,S,V,V}, /* sub.s */ 635 631 {10,4,rrr,S,V,V}, /* sub.d */ … … 698 694 }; 699 695 700 CONSTstruct formstr e0_format1[] = {696 const struct formstr e0_format1[] = { 701 697 {0,0,0,0,0,0}, 702 698 {94,0,a3,0,0,0}, /* tst */ … … 765 761 }; 766 762 767 CONSTstruct formstr e0_format2[] = {763 const struct formstr e0_format2[] = { 768 764 {28,5,rr,V,V,0}, /* cvtw.b */ 769 765 {28,6,rr,V,V,0}, /* cvtw.h */ … … 896 892 }; 897 893 898 CONSTstruct formstr e0_format3[] = {894 const struct formstr e0_format3[] = { 899 895 {32,11,rr,V,V,0}, /* cvtd.s.f */ 900 896 {31,12,rr,V,V,0}, /* cvts.d.f */ … … 963 959 }; 964 960 965 CONSTstruct formstr e0_format4[] = {966 {0,0,0,0,0,0}, 967 {0,0,0,0,0,0}, 968 {0,0,0,0,0,0}, 969 {0,0,0,0,0,0}, 970 {0,0,0,0,0,0}, 971 {0,0,0,0,0,0}, 972 {0,0,0,0,0,0}, 973 {0,0,0,0,0,0}, 974 }; 975 976 CONSTstruct formstr e0_format5[] = {961 const struct formstr e0_format4[] = { 962 {0,0,0,0,0,0}, 963 {0,0,0,0,0,0}, 964 {0,0,0,0,0,0}, 965 {0,0,0,0,0,0}, 966 {0,0,0,0,0,0}, 967 {0,0,0,0,0,0}, 968 {0,0,0,0,0,0}, 969 {0,0,0,0,0,0}, 970 }; 971 972 const struct formstr e0_format5[] = { 977 973 {51,13,rr,V,V,0}, /* ldvi.b.f */ 978 974 {51,14,rr,V,V,0}, /* ldvi.h.f */ … … 993 989 }; 994 990 995 CONSTstruct formstr e0_format6[] = {991 const struct formstr e0_format6[] = { 996 992 {0,0,rxl,S,CIR,0}, /* mov */ 997 993 {0,0,lr,CIR,S,0}, /* mov */ … … 1060 1056 }; 1061 1057 1062 CONSTstruct formstr e0_format7[] = {1058 const struct formstr e0_format7[] = { 1063 1059 {84,13,r,V,0,0}, /* sum.b.f */ 1064 1060 {84,14,r,V,0,0}, /* sum.h.f */ … … 1095 1091 }; 1096 1092 1097 CONSTstruct formstr e1_format0[] = {1093 const struct formstr e1_format0[] = { 1098 1094 {0,0,0,0,0,0}, 1099 1095 {0,0,0,0,0,0}, … … 1162 1158 }; 1163 1159 1164 CONSTstruct formstr e1_format1[] = {1160 const struct formstr e1_format1[] = { 1165 1161 {0,0,0,0,0,0}, 1166 1162 {0,0,0,0,0,0}, … … 1229 1225 }; 1230 1226 1231 CONSTstruct formstr e1_format2[] = {1227 const struct formstr e1_format2[] = { 1232 1228 {0,0,0,0,0,0}, 1233 1229 {0,0,0,0,0,0}, … … 1360 1356 }; 1361 1357 1362 CONSTstruct formstr e1_format3[] = {1358 const struct formstr e1_format3[] = { 1363 1359 {32,18,rr,V,V,0}, /* cvtd.s.t */ 1364 1360 {31,19,rr,V,V,0}, /* cvts.d.t */ … … 1427 1423 }; 1428 1424 1429 CONSTstruct formstr e1_format4[] = {1430 {0,0,0,0,0,0}, 1431 {0,0,0,0,0,0}, 1432 {0,0,0,0,0,0}, 1433 {0,0,0,0,0,0}, 1434 {0,0,0,0,0,0}, 1435 {0,0,0,0,0,0}, 1436 {0,0,0,0,0,0}, 1437 {0,0,0,0,0,0}, 1438 }; 1439 1440 CONSTstruct formstr e1_format5[] = {1425 const struct formstr e1_format4[] = { 1426 {0,0,0,0,0,0}, 1427 {0,0,0,0,0,0}, 1428 {0,0,0,0,0,0}, 1429 {0,0,0,0,0,0}, 1430 {0,0,0,0,0,0}, 1431 {0,0,0,0,0,0}, 1432 {0,0,0,0,0,0}, 1433 {0,0,0,0,0,0}, 1434 }; 1435 1436 const struct formstr e1_format5[] = { 1441 1437 {51,20,rr,V,V,0}, /* ldvi.b.t */ 1442 1438 {51,21,rr,V,V,0}, /* ldvi.h.t */ … … 1457 1453 }; 1458 1454 1459 CONSTstruct formstr e1_format6[] = {1460 {0,0,0,0,0,0}, 1461 {0,0,0,0,0,0}, 1462 {0,0,0,0,0,0}, 1463 {0,0,0,0,0,0}, 1464 {0,0,0,0,0,0}, 1465 {0,0,0,0,0,0}, 1466 {0,0,0,0,0,0}, 1467 {0,0,0,0,0,0}, 1468 {0,0,0,0,0,0}, 1469 {0,0,0,0,0,0}, 1470 {0,0,0,0,0,0}, 1471 {0,0,0,0,0,0}, 1472 {0,0,0,0,0,0}, 1473 {0,0,0,0,0,0}, 1474 {0,0,0,0,0,0}, 1475 {0,0,0,0,0,0}, 1476 {0,0,0,0,0,0}, 1477 {0,0,0,0,0,0}, 1478 {0,0,0,0,0,0}, 1479 {0,0,0,0,0,0}, 1480 {0,0,0,0,0,0}, 1481 {0,0,0,0,0,0}, 1482 {0,0,0,0,0,0}, 1483 {0,0,0,0,0,0}, 1484 {0,0,0,0,0,0}, 1485 {0,0,0,0,0,0}, 1486 {0,0,0,0,0,0}, 1487 {0,0,0,0,0,0}, 1488 {0,0,0,0,0,0}, 1489 {0,0,0,0,0,0}, 1490 {0,0,0,0,0,0}, 1491 {0,0,0,0,0,0}, 1492 {0,0,0,0,0,0}, 1493 {0,0,0,0,0,0}, 1494 {0,0,0,0,0,0}, 1495 {0,0,0,0,0,0}, 1496 {0,0,0,0,0,0}, 1497 {0,0,0,0,0,0}, 1498 {0,0,0,0,0,0}, 1499 {0,0,0,0,0,0}, 1500 {0,0,0,0,0,0}, 1501 {0,0,0,0,0,0}, 1502 {0,0,0,0,0,0}, 1503 {0,0,0,0,0,0}, 1504 {0,0,0,0,0,0}, 1505 {0,0,0,0,0,0}, 1506 {0,0,0,0,0,0}, 1507 {0,0,0,0,0,0}, 1508 {0,0,0,0,0,0}, 1509 {0,0,0,0,0,0}, 1510 {0,0,0,0,0,0}, 1511 {0,0,0,0,0,0}, 1512 {0,0,0,0,0,0}, 1513 {0,0,0,0,0,0}, 1514 {0,0,0,0,0,0}, 1515 {0,0,0,0,0,0}, 1516 {0,0,0,0,0,0}, 1517 {0,0,0,0,0,0}, 1518 {0,0,0,0,0,0}, 1519 {0,0,0,0,0,0}, 1520 {0,0,0,0,0,0}, 1521 {0,0,0,0,0,0}, 1522 {0,0,0,0,0,0}, 1523 {0,0,0,0,0,0}, 1524 }; 1525 1526 CONSTstruct formstr e1_format7[] = {1455 const struct formstr e1_format6[] = { 1456 {0,0,0,0,0,0}, 1457 {0,0,0,0,0,0}, 1458 {0,0,0,0,0,0}, 1459 {0,0,0,0,0,0}, 1460 {0,0,0,0,0,0}, 1461 {0,0,0,0,0,0}, 1462 {0,0,0,0,0,0}, 1463 {0,0,0,0,0,0}, 1464 {0,0,0,0,0,0}, 1465 {0,0,0,0,0,0}, 1466 {0,0,0,0,0,0}, 1467 {0,0,0,0,0,0}, 1468 {0,0,0,0,0,0}, 1469 {0,0,0,0,0,0}, 1470 {0,0,0,0,0,0}, 1471 {0,0,0,0,0,0}, 1472 {0,0,0,0,0,0}, 1473 {0,0,0,0,0,0}, 1474 {0,0,0,0,0,0}, 1475 {0,0,0,0,0,0}, 1476 {0,0,0,0,0,0}, 1477 {0,0,0,0,0,0}, 1478 {0,0,0,0,0,0}, 1479 {0,0,0,0,0,0}, 1480 {0,0,0,0,0,0}, 1481 {0,0,0,0,0,0}, 1482 {0,0,0,0,0,0}, 1483 {0,0,0,0,0,0}, 1484 {0,0,0,0,0,0}, 1485 {0,0,0,0,0,0}, 1486 {0,0,0,0,0,0}, 1487 {0,0,0,0,0,0}, 1488 {0,0,0,0,0,0}, 1489 {0,0,0,0,0,0}, 1490 {0,0,0,0,0,0}, 1491 {0,0,0,0,0,0}, 1492 {0,0,0,0,0,0}, 1493 {0,0,0,0,0,0}, 1494 {0,0,0,0,0,0}, 1495 {0,0,0,0,0,0}, 1496 {0,0,0,0,0,0}, 1497 {0,0,0,0,0,0}, 1498 {0,0,0,0,0,0}, 1499 {0,0,0,0,0,0}, 1500 {0,0,0,0,0,0}, 1501 {0,0,0,0,0,0}, 1502 {0,0,0,0,0,0}, 1503 {0,0,0,0,0,0}, 1504 {0,0,0,0,0,0}, 1505 {0,0,0,0,0,0}, 1506 {0,0,0,0,0,0}, 1507 {0,0,0,0,0,0}, 1508 {0,0,0,0,0,0}, 1509 {0,0,0,0,0,0}, 1510 {0,0,0,0,0,0}, 1511 {0,0,0,0,0,0}, 1512 {0,0,0,0,0,0}, 1513 {0,0,0,0,0,0}, 1514 {0,0,0,0,0,0}, 1515 {0,0,0,0,0,0}, 1516 {0,0,0,0,0,0}, 1517 {0,0,0,0,0,0}, 1518 {0,0,0,0,0,0}, 1519 {0,0,0,0,0,0}, 1520 }; 1521 1522 const struct formstr e1_format7[] = { 1527 1523 {84,20,r,V,0,0}, /* sum.b.t */ 1528 1524 {84,21,r,V,0,0}, /* sum.h.t */ -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/cris.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 51 51 cris_ver_v0_3, 52 52 53 /* Only for v3 or higher (ETRAX 1..4 and beyond). */53 /* Only for v3 or higher (ETRAX 4 and beyond). */ 54 54 cris_ver_v3p, 55 55 … … 161 161 #define JUMP_PC_INCR_OPCODE \ 162 162 (JUMP_INDIR_OPCODE + AUTOINCR_BIT * 0x0100 + REG_PC) 163 #define ADD_PC_INCR_OPCODE \ 164 (0xfa00 + (2 << 4) + AUTOINCR_BIT * 0x0100 + REG_PC) 163 165 164 166 /* Nop. */ -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/d10v.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* d10v.h -- Header file for D10V opcode table 2 Copyright 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.2 Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. 3 3 Written by Martin Hunt (hunt@cygnus.com), Cygnus Support 4 4 … … 182 182 #define RESTRICTED_NUM3 (0x80000) 183 183 184 /* Pre-decrement is only supported for SP. */ 185 #define OPERAND_SP (0x100000) 186 187 /* Post-decrement is not supported for SP. Like OPERAND_EVEN, and 188 unlike OPERAND_SP, this flag doesn't prevent the instruction from 189 matching, it only fails validation later on. */ 190 #define OPERAND_NOSP (0x200000) 191 184 192 /* Structure to hold information about predefined registers. */ 185 193 struct pd_reg … … 191 199 192 200 extern const struct pd_reg d10v_predefined_registers[]; 193 int d10v_reg_name_cnt ();201 int d10v_reg_name_cnt PARAMS ((void)); 194 202 195 203 /* an expressionS only has one register type, so we fake it */ -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/d30v.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 33 33 34 34 extern const struct pd_reg pre_defined_registers[]; 35 int reg_name_cnt ();35 int reg_name_cnt PARAMS ((void)); 36 36 37 37 /* the number of control registers */ -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/h8300.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* Opcode table for the H8/300 2 Copyright 1991, 1992, 1993, 1994, 1996, 1997, 1998, 2000 2 Copyright 1991, 1992, 1993, 1994, 1996, 1997, 1998, 2000, 2002, 2003 3 3 Free Software Foundation, Inc. 4 4 Written by Steve Chamberlain <sac@cygnus.com>. … … 22 22 23 23 /* Instructions are stored as a sequence of nibbles. 24 If the nibble has value 15 or less th en the representation is complete.24 If the nibble has value 15 or less than the representation is complete. 25 25 Otherwise, we record what it contains with several flags. */ 26 26 … … 49 49 #define L_P 0x08 50 50 #define L_24 0x10 51 #define MEMRELAX 0x20 /* move insn which may relax*/51 #define MEMRELAX 0x20 /* Move insn which may relax. */ 52 52 #define SRC 0x40 53 53 #define DST 0x80 … … 67 67 #define DISPREG 0x100000 68 68 #define IGNORE 0x200000 69 #define E 0x400000 /* FIXME: end of nibble sequence? */69 #define E 0x400000 /* FIXME: end of nibble sequence? */ 70 70 #define L_2 0x800000 71 #define B30 0x1000000 /* bit 3 must be low*/72 #define B31 0x2000000 /* bit 3 must be high*/71 #define B30 0x1000000 /* Bit 3 must be low. */ 72 #define B31 0x2000000 /* Bit 3 must be high. */ 73 73 #define CCR 0x4000000 74 74 #define ABS 0x8000000 … … 78 78 #define MEMIND 0x80000000 79 79 80 #define IMM3 IMM|L_3 81 #define IMM2 IMM|L_2 82 83 #define SIZE (L_2|L_3|L_8|L_16|L_32|L_P|L_24) 84 #define MODE (REG|IMM|DISP|IND|INC|DEC|CCR|ABS|MEMIND|EXR) 85 86 #define RD8 (DST|L_8|REG) 87 #define RD16 (DST|L_16|REG) 88 #define RD32 (DST|L_32|REG) 89 #define RS8 (SRC|L_8|REG) 90 #define RS16 (SRC|L_16|REG) 91 #define RS32 (SRC|L_32|REG) 92 93 #define RSP (SRC|L_P|REG) 94 #define RDP (DST|L_P|REG) 95 96 #define IMM8 (IMM|SRC|L_8) 97 #define IMM16 (IMM|SRC|L_16) 98 #define IMM32 (IMM|SRC|L_32) 99 100 #define ABS8SRC (SRC|ABS|L_8|ABS8MEM) 101 #define ABS8DST (DST|ABS|L_8|ABS8MEM) 102 103 #define DISP8 (PCREL|L_8) 104 #define DISP16 (PCREL|L_16) 105 106 #define DISP8SRC (DISP|L_8|SRC) 107 #define DISP16SRC (DISP|L_16|SRC) 108 109 #define DISP8DST (DISP|L_8|DST) 110 #define DISP16DST (DISP|L_16|DST) 111 112 #define ABS16SRC (SRC|ABS|L_16) 113 #define ABS16DST (DST|ABS|L_16) 114 #define ABS24SRC (SRC|ABS|L_24) 115 #define ABS24DST (DST|ABS|L_24) 116 #define ABS32SRC (SRC|ABS|L_32) 117 #define ABS32DST (DST|ABS|L_32) 118 119 #define RDDEC (DST|DEC) 120 #define RSINC (SRC|INC) 121 #define RDINC (DST|INC) 122 123 #define RDIND (DST|IND) 124 #define RSIND (SRC|IND) 80 #define IMM3 IMM | L_3 81 #define IMM2 IMM | L_2 82 83 #define SIZE (L_2 | L_3 | L_8 | L_16 | L_32 | L_P | L_24) 84 #define MODE (REG | IMM | DISP | IND | INC | DEC | CCR | ABS | MEMIND | EXR) 85 86 #define RD8 (DST | L_8 | REG) 87 #define RD16 (DST | L_16 | REG) 88 #define RD32 (DST | L_32 | REG) 89 #define RS8 (SRC | L_8 | REG) 90 #define RS16 (SRC | L_16 | REG) 91 #define RS32 (SRC | L_32 | REG) 92 93 #define RSP (SRC | L_P | REG) 94 #define RDP (DST | L_P | REG) 95 96 #define IMM8 (IMM | SRC | L_8) 97 #define IMM16 (IMM | SRC | L_16) 98 #define IMM32 (IMM | SRC | L_32) 99 100 #define ABS8SRC (SRC | ABS | L_8 | ABS8MEM) 101 #define ABS8DST (DST | ABS | L_8 | ABS8MEM) 102 103 #define DISP8 (PCREL | L_8) 104 #define DISP16 (PCREL | L_16) 105 106 #define DISP8SRC (DISP | L_8 | SRC) 107 #define DISP16SRC (DISP | L_16 | SRC) 108 109 #define DISP8DST (DISP | L_8 | DST) 110 #define DISP16DST (DISP | L_16 | DST) 111 112 #define ABS16SRC (SRC | ABS | L_16) 113 #define ABS16DST (DST | ABS | L_16) 114 #define ABS24SRC (SRC | ABS | L_24) 115 #define ABS24DST (DST | ABS | L_24) 116 #define ABS32SRC (SRC | ABS | L_32) 117 #define ABS32DST (DST | ABS | L_32) 118 119 #define RDDEC (DST | DEC) 120 #define RSINC (SRC | INC) 121 #define RDINC (DST | INC) 122 123 #define RDIND (DST | IND) 124 #define RSIND (SRC | IND) 125 126 #define MS32 (SRC | L_32 | MACREG) 127 #define MD32 (DST | L_32 | MACREG) 125 128 126 129 #if 1 127 #define OR8 RS8 /* ??? OR as in One Register? */130 #define OR8 RS8 /* ??? OR as in One Register? */ 128 131 #define OR16 RS16 129 132 #define OR32 RS32 … … 152 155 struct arg args; 153 156 struct code data; 154 int length;155 int noperands;156 int idx;157 int size;158 157 }; 159 158 … … 161 160 162 161 #define BITOP(code, imm, name, op00, op01,op10,op11, op20,op21,op30)\ 163 { code, 1, 2, name, {{imm,RD8,E}}, {{op00, op01, imm, RD8, E, 0, 0, 0, 0}} , 0, 0, 0, 0},\164 { code, 1, 6, name, {{imm,RDIND,E}},{{op10, op11, B30|RDIND, 0, op00,op01, imm, 0, E}} , 0, 0, 0, 0},\165 { code, 1, 6, name, {{imm,ABS8DST,E}},{{op20, op21, ABS8DST, IGNORE, op00,op01, imm, 0,E}} , 0, 0, 0, 0}\166 ,{ code, 0, 6, name, {{imm,ABS16DST,E}},{{0x6,0xa,0x1,op30,ABS16DST,IGNORE,IGNORE,IGNORE, op00,op01, imm, 0,E}} , 0, 0, 0, 0},\167 { code, 0, 6, name, {{imm,ABS32DST,E}},{{0x6,0xa,0x3,op30,ABS32DST,IGNORE,IGNORE,IGNORE,IGNORE,IGNORE,IGNORE,IGNORE, op00,op01, imm, 0,E}} , 0, 0, 0, 0}162 { code, 1, 2, name, {{imm,RD8,E}}, {{op00, op01, imm, RD8, E, 0, 0, 0, 0}}},\ 163 { code, 1, 6, name, {{imm,RDIND,E}},{{op10, op11, B30|RDIND, 0, op00,op01, imm, 0, E}}},\ 164 { code, 1, 6, name, {{imm,ABS8DST,E}},{{op20, op21, ABS8DST, IGNORE, op00,op01, imm, 0,E}}}\ 165 ,{ code, 0, 6, name, {{imm,ABS16DST,E}},{{0x6,0xa,0x1,op30,ABS16DST,IGNORE,IGNORE,IGNORE, op00,op01, imm, 0,E}}},\ 166 { code, 0, 6, name, {{imm,ABS32DST,E}},{{0x6,0xa,0x3,op30,ABS32DST,IGNORE,IGNORE,IGNORE,IGNORE,IGNORE,IGNORE,IGNORE, op00,op01, imm, 0,E}}} 168 167 169 168 … … 173 172 174 173 #define WTWOP(code,name, op1, op2) \ 175 { code, 1, 2, name, {{RS16, RD16, E}}, {{ op1, op2, RS16, RD16, E, 0, 0, 0, 0}} , 0, 0, 0, 0}174 { code, 1, 2, name, {{RS16, RD16, E}}, {{ op1, op2, RS16, RD16, E, 0, 0, 0, 0}}} 176 175 177 176 #define BRANCH(code, name, op) \ 178 { code, 1, 4,name,{{DISP8,E,0}}, {{ 0x4, op, DISP8, IGNORE, E, 0, 0, 0, 0}} , 0, 0, 0, 0}, \179 { code, 0, 6,name,{{DISP16,E,0}}, {{ 0x5, 0x8, op, 0x0, DISP16, IGNORE, IGNORE, IGNORE, E,0}} , 0, 0, 0, 0}177 { code, 1, 4,name,{{DISP8,E,0}}, {{ 0x4, op, DISP8, IGNORE, E, 0, 0, 0, 0}}}, \ 178 { code, 0, 6,name,{{DISP16,E,0}}, {{ 0x5, 0x8, op, 0x0, DISP16, IGNORE, IGNORE, IGNORE, E,0}}} 180 179 181 180 #define SOP(code, x,name) \ … … 184 183 #define NEW_SOP(code, in,x,name) \ 185 184 {code, in, x, name 186 #define EOP ,0,0,0,0}185 #define EOP } 187 186 188 187 #define TWOOP(code, name, op1, op2,op3) \ 189 { code,1, 2,name, {{IMM8, RD8, E}}, {{ op1, RD8, IMM8, IGNORE, E, 0, 0, 0, 0}} , 0, 0, 0, 0},\190 { code, 1, 2,name, {{RS8, RD8, E}}, {{ op2, op3, RS8, RD8, E, 0, 0, 0, 0}} , 0, 0, 0, 0}188 { code,1, 2,name, {{IMM8, RD8, E}}, {{ op1, RD8, IMM8, IGNORE, E, 0, 0, 0, 0}}},\ 189 { code, 1, 2,name, {{RS8, RD8, E}}, {{ op2, op3, RS8, RD8, E, 0, 0, 0, 0}}} 191 190 192 191 #define UNOP(code,name, op1, op2) \ 193 { code, 1, 2, name, {{OR8, E, 0}}, {{ op1, op2, 0, OR8, E, 0, 0, 0, 0}} , 0, 0, 0, 0}192 { code, 1, 2, name, {{OR8, E, 0}}, {{ op1, op2, 0, OR8, E, 0, 0, 0, 0}}} 194 193 195 194 #define UNOP3(code, name, op1, op2, op3) \ 196 { O(code,SB), 1, 2, name, {{OR8, E, 0}}, {{op1, op2, op3+0, OR8, E, 0, 0, 0, 0}} , 0, 0, 0, 0}, \197 { O(code,SW), 0, 2, name, {{OR16, E, 0}}, {{op1, op2, op3+1, OR16, E, 0, 0, 0, 0}} , 0, 0, 0, 0}, \198 { O(code,SL), 0, 2, name, {{OR32, E, 0}}, {{op1, op2, op3+3, OR32|B30, E, 0, 0, 0, 0}} , 0, 0, 0, 0} \199 ,{ O(code,SB), 1, 2, name, {{IMM, OR8 | SRC_IN_DST, E}}, {{op1, op2, op3+4, OR8 | SRC_IN_DST, E, 0, 0, 0, 0}} , 0, 0, 0, 0}, \200 { O(code,SW), 0, 2, name, {{IMM, OR16 | SRC_IN_DST, E}}, {{op1, op2, op3+5, OR16 | SRC_IN_DST, E, 0, 0, 0, 0}} , 0, 0, 0, 0}, \201 { O(code,SL), 0, 2, name, {{IMM, OR32 | SRC_IN_DST, E}}, {{op1, op2, op3+7, OR32 | SRC_IN_DST|B30 , E, 0, 0, 0, 0}} , 0, 0, 0, 0}195 { O(code,SB), 1, 2, name, {{OR8, E, 0}}, {{op1, op2, op3+0, OR8, E, 0, 0, 0, 0}}}, \ 196 { O(code,SW), 0, 2, name, {{OR16, E, 0}}, {{op1, op2, op3+1, OR16, E, 0, 0, 0, 0}}}, \ 197 { O(code,SL), 0, 2, name, {{OR32, E, 0}}, {{op1, op2, op3+3, OR32|B30, E, 0, 0, 0, 0}}} \ 198 ,{ O(code,SB), 1, 2, name, {{IMM, OR8 | SRC_IN_DST, E}}, {{op1, op2, op3+4, OR8 | SRC_IN_DST, E, 0, 0, 0, 0}}}, \ 199 { O(code,SW), 0, 2, name, {{IMM, OR16 | SRC_IN_DST, E}}, {{op1, op2, op3+5, OR16 | SRC_IN_DST, E, 0, 0, 0, 0}}}, \ 200 { O(code,SL), 0, 2, name, {{IMM, OR32 | SRC_IN_DST, E}}, {{op1, op2, op3+7, OR32 | SRC_IN_DST|B30 , E, 0, 0, 0, 0}}} 202 201 203 202 … … 216 215 217 216 218 #define O(op, size) (op *4+size)217 #define O(op, size) (op * 4 + size) 219 218 220 219 #define O_RECOMPILE 0 … … 306 305 #define O_STMAC 87 307 306 #define O_LAST 88 307 /* Change made for System Call processing. */ 308 #define O_SYS_CREAT 100 309 #define O_SYS_OPEN 101 310 #define O_SYS_READ 102 311 #define O_SYS_WRITE 103 312 #define O_SYS_LSEEK 104 313 #define O_SYS_CLOSE 105 314 #define O_SYS_STAT 106 315 #define O_SYS_FSTAT 107 316 /* Space reserved for future file I/O system calls. */ 317 #define O_SYS_CMDLINE 120 318 /* End of System Call specific Changes. */ 308 319 #define SB 0 309 320 #define SW 1 … … 311 322 #define SN 3 312 323 313 314 324 /* FIXME: Lots of insns have "E, 0, 0, 0, 0" in the nibble code sequences. 315 325 Methinks the zeroes aren't necessary. Once confirmed, nuke 'em. */ 316 326 317 struct h8_opcode h8_opcodes[] =327 const struct h8_opcode h8_opcodes[] = 318 328 { 319 329 TWOOP(O(O_ADD,SB),"add.b", 0x8, 0x0,0x8), … … 334 344 NEW_SOP(O(O_AND,SL),0,2,"and.l") ,{{RS32,RD32,E }},{{0x0,0x1,0xF,0x0,0x6,0x6,B30|RS32,B30|RD32,E}} EOP, 335 345 336 NEW_SOP(O(O_ANDC,SB),1,2,"andc"), {{IMM8,CCR ,E}},{{ 0x0,0x6,IMM8,IGNORE,E,0,0,0,0}} EOP,337 NEW_SOP(O(O_ANDC,SB),1,2,"andc"), {{IMM8,EXR ,E}},{{ 0x0,0x1,0x4,0x1,0x0,0x6,IMM8,IGNORE,E,0,0,0,0}} EOP,346 NEW_SOP(O(O_ANDC,SB),1,2,"andc"), {{IMM8,CCR|DST,E}},{{ 0x0,0x6,IMM8,IGNORE,E,0,0,0,0}} EOP, 347 NEW_SOP(O(O_ANDC,SB),1,2,"andc"), {{IMM8,EXR|DST,E}},{{ 0x0,0x1,0x4,0x1,0x0,0x6,IMM8,IGNORE,E,0,0,0,0}} EOP, 338 348 339 349 BITOP(O(O_BAND,SB), IMM3|B30,"band",0x7,0x6,0x7,0xC,0x7,0xE,0x0), … … 392 402 NEW_SOP(O(O_DEC, SL),0,2,"dec.l") ,{{DBIT,RD32,E }},{{0x1,0xB,0x7|DBIT,RD32|B30,E}} EOP, 393 403 394 NEW_SOP(O(O_DIVU,SB),1, 6,"divxu.b"), {{RS8,RD16,E}}, {{0x5,0x1,RS8,RD16,E,0,0,0,0}}EOP,395 NEW_SOP(O(O_DIVU,SW),0,2 0,"divxu.w"),{{RS16,RD32,E}},{{0x5,0x3,RS16,B30|RD32,E}}EOP,404 NEW_SOP(O(O_DIVU,SB),1,13,"divxu.b"), {{RS8,RD16,E}}, {{0x5,0x1,RS8,RD16,E,0,0,0,0}}EOP, 405 NEW_SOP(O(O_DIVU,SW),0,21,"divxu.w"),{{RS16,RD32,E}},{{0x5,0x3,RS16,B30|RD32,E}}EOP, 396 406 397 NEW_SOP(O(O_DIVS,SB),0, 20,"divxs.b") ,{{RS8,RD16,E }},{{0x0,0x1,0xD,0x0,0x5,0x1,RS8,RD16,E}} EOP,398 NEW_SOP(O(O_DIVS,SW),0, 02,"divxs.w") ,{{RS16,RD32,E }},{{0x0,0x1,0xD,0x0,0x5,0x3,RS16,B30|RD32,E}} EOP,399 400 NEW_SOP(O(O_EEPMOV,SB),1, 50,"eepmov.b"),{{E,0,0}},{{0x7,0xB,0x5,0xC,0x5,0x9,0x8,0xF,E}}EOP,401 NEW_SOP(O(O_EEPMOV,SW),0, 50,"eepmov.w"),{{E,0,0}},{{0x7,0xB,0xD,0x4,0x5,0x9,0x8,0xF,E}} EOP,407 NEW_SOP(O(O_DIVS,SB),0,13,"divxs.b") ,{{RS8,RD16,E }},{{0x0,0x1,0xD,0x0,0x5,0x1,RS8,RD16,E}} EOP, 408 NEW_SOP(O(O_DIVS,SW),0,21,"divxs.w") ,{{RS16,RD32,E }},{{0x0,0x1,0xD,0x0,0x5,0x3,RS16,B30|RD32,E}} EOP, 409 410 NEW_SOP(O(O_EEPMOV,SB),1,4,"eepmov.b"),{{E,0,0}},{{0x7,0xB,0x5,0xC,0x5,0x9,0x8,0xF,E}}EOP, 411 NEW_SOP(O(O_EEPMOV,SW),0,4,"eepmov.w"),{{E,0,0}},{{0x7,0xB,0xD,0x4,0x5,0x9,0x8,0xF,E}} EOP, 402 412 403 413 NEW_SOP(O(O_EXTS,SW),0,2,"exts.w"),{{OR16,E,0}},{{0x1,0x7,0xD,OR16,E }}EOP, … … 420 430 SOP(O(O_JSR,SB),8,"jsr"),{{SRC|MEMIND,E,0}},{{0x5,0xF,SRC|MEMIND,IGNORE,E,0,0,0,0}}EOP, 421 431 422 NEW_SOP(O(O_LDC,SB),1,2,"ldc"),{{IMM8,CCR ,E}}, {{ 0x0,0x7,IMM8,IGNORE,E,0,0,0,0}}EOP,423 NEW_SOP(O(O_LDC,SB),1,2,"ldc"),{{OR8,CCR ,E}}, {{ 0x0,0x3,0x0,OR8,E,0,0,0,0}}EOP,424 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{ABS16SRC,CCR ,E}}, {{PREFIXLDC,0x6,0xB,0x0,0x0,ABS16SRC,IGNORE,IGNORE,IGNORE,E}}EOP,425 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{ABS32SRC,CCR ,E}}, {{PREFIXLDC,0x6,0xB,0x2,0x0,SRC|ABS32LIST,E}}EOP,426 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{DISP|SRC|L_16,CCR ,E}},{{PREFIXLDC,0x6,0xF,B30|DISPREG,0,DISP|L_16,IGNORE,IGNORE,IGNORE,E}}EOP,427 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{DISP|SRC|L_32,CCR ,E}},{{PREFIXLDC,0x7,0x8,B30|DISPREG,0,0x6,0xB,0x2,0x0,SRC|DISP32LIST,E}}EOP,428 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{RSINC,CCR ,E}}, {{PREFIXLDC,0x6,0xD,B30|RSINC,0x0,E}}EOP,429 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{RSIND,CCR ,E}}, {{PREFIXLDC,0x6,0x9,B30|RDIND,0x0,E}} EOP,430 431 NEW_SOP(O(O_LDC,SB),1,2,"ldc"),{{IMM8,EXR ,E}}, {{ 0x0,0x1,0x4,0x1,0x0,0x7,IMM8,IGNORE,E,0,0,0,0}}EOP,432 NEW_SOP(O(O_LDC,SB),1,2,"ldc"),{{OR8,EXR ,E}}, {{ 0x0,0x3,0x1,OR8,E,0,0,0,0}}EOP,433 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{ABS16SRC,EXR ,E}}, {{ 0x0,0x1,0x4,0x1,0x6,0xb,0x0,0x0,ABS16SRC,IGNORE,IGNORE,IGNORE,E}}EOP,434 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{ABS32SRC,EXR ,E}}, {{ 0x0,0x1,0x4,0x1,0x6,0xb,0x2,0x0,SRC|ABS32LIST,E}}EOP,435 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{DISP|SRC|L_16,EXR ,E}},{{ 0x0,0x1,0x4,0x1,0x6,0xf,B30|DISPREG,0,DISP|L_16,IGNORE,IGNORE,IGNORE,E}}EOP,436 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{DISP|SRC|L_32,EXR ,E}},{{ 0x0,0x1,0x4,0x1,0x7,0x8,B30|DISPREG,0,0x6,0xB,0x2,0x0,SRC|DISP32LIST,E}}EOP,437 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{RSINC,EXR ,E}}, {{ 0x0,0x1,0x4,0x1,0x6,0xd,B30|RSINC,0x0,E}}EOP,438 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{RSIND,EXR ,E}}, {{ 0x0,0x1,0x4,0x1,0x6,0x9,B30|RDIND,0x0,E}} EOP,432 NEW_SOP(O(O_LDC,SB),1,2,"ldc"),{{IMM8,CCR|DST,E}}, {{ 0x0,0x7,IMM8,IGNORE,E,0,0,0,0}}EOP, 433 NEW_SOP(O(O_LDC,SB),1,2,"ldc"),{{OR8,CCR|DST,E}}, {{ 0x0,0x3,0x0,OR8,E,0,0,0,0}}EOP, 434 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{ABS16SRC,CCR|DST,E}}, {{PREFIXLDC,0x6,0xB,0x0,0x0,ABS16SRC,IGNORE,IGNORE,IGNORE,E}}EOP, 435 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{ABS32SRC,CCR|DST,E}}, {{PREFIXLDC,0x6,0xB,0x2,0x0,SRC|ABS32LIST,E}}EOP, 436 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{DISP|SRC|L_16,CCR|DST,E}},{{PREFIXLDC,0x6,0xF,B30|DISPREG,0,DISP|L_16,IGNORE,IGNORE,IGNORE,E}}EOP, 437 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{DISP|SRC|L_32,CCR|DST,E}},{{PREFIXLDC,0x7,0x8,B30|DISPREG,0,0x6,0xB,0x2,0x0,SRC|DISP32LIST,E}}EOP, 438 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{RSINC,CCR|DST,E}}, {{PREFIXLDC,0x6,0xD,B30|RSINC,0x0,E}}EOP, 439 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{RSIND,CCR|DST,E}}, {{PREFIXLDC,0x6,0x9,B30|RSIND,0x0,E}} EOP, 440 441 NEW_SOP(O(O_LDC,SB),1,2,"ldc"),{{IMM8,EXR|DST,E}}, {{ 0x0,0x1,0x4,0x1,0x0,0x7,IMM8,IGNORE,E,0,0,0,0}}EOP, 442 NEW_SOP(O(O_LDC,SB),1,2,"ldc"),{{OR8,EXR|DST,E}}, {{ 0x0,0x3,0x1,OR8,E,0,0,0,0}}EOP, 443 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{ABS16SRC,EXR|DST,E}}, {{ 0x0,0x1,0x4,0x1,0x6,0xb,0x0,0x0,ABS16SRC,IGNORE,IGNORE,IGNORE,E}}EOP, 444 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{ABS32SRC,EXR|DST,E}}, {{ 0x0,0x1,0x4,0x1,0x6,0xb,0x2,0x0,SRC|ABS32LIST,E}}EOP, 445 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{DISP|SRC|L_16,EXR|DST,E}},{{ 0x0,0x1,0x4,0x1,0x6,0xf,B30|DISPREG,0,DISP|L_16,IGNORE,IGNORE,IGNORE,E}}EOP, 446 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{DISP|SRC|L_32,EXR|DST,E}},{{ 0x0,0x1,0x4,0x1,0x7,0x8,B30|DISPREG,0,0x6,0xB,0x2,0x0,SRC|DISP32LIST,E}}EOP, 447 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{RSINC,EXR|DST,E}}, {{ 0x0,0x1,0x4,0x1,0x6,0xd,B30|RSINC,0x0,E}}EOP, 448 NEW_SOP(O(O_LDC,SB),0,2,"ldc"),{{RSIND,EXR|DST,E}}, {{ 0x0,0x1,0x4,0x1,0x6,0x9,B30|RSIND,0x0,E}} EOP, 439 449 440 450 SOP(O(O_MOV_TO_REG,SB),4,"mov.b"),{{ABS|SRC|L_16|MEMRELAX,RD8,E}}, {{ 0x6,0xA,0x0,RD8,SRC|ABS|MEMRELAX|A16LIST,E}}EOP, … … 521 531 NEW_SOP(O(O_OR,SL),0,2,"or.l"),{{RS32,RD32,E }},{{0x0,0x1,0xF,0x0,0x6,0x4,B30|RS32,B30|RD32,E}} EOP, 522 532 523 NEW_SOP(O(O_ORC,SB),1,2,"orc"),{{IMM8,CCR ,E}},{{ 0x0,0x4,IMM8,IGNORE,E,0,0,0,0}}EOP,524 NEW_SOP(O(O_ORC,SB),1,2,"orc"),{{IMM8,EXR ,E}},{{ 0x0,0x1,0x4,0x1,0x0,0x4,IMM8,IGNORE,E,0,0,0,0}}EOP,533 NEW_SOP(O(O_ORC,SB),1,2,"orc"),{{IMM8,CCR|DST,E}},{{ 0x0,0x4,IMM8,IGNORE,E,0,0,0,0}}EOP, 534 NEW_SOP(O(O_ORC,SB),1,2,"orc"),{{IMM8,EXR|DST,E}},{{ 0x0,0x1,0x4,0x1,0x0,0x4,IMM8,IGNORE,E,0,0,0,0}}EOP, 525 535 526 536 NEW_SOP(O(O_MOV_TO_REG,SW),1,6,"pop.w"),{{OR16,E,0}},{{ 0x6,0xD,0x7,OR16,E,0,0,0,0}}EOP, … … 545 555 SOP(O(O_SLEEP,SN),2,"sleep"),{{E,0,0}},{{ 0x0,0x1,0x8,0x0,E,0,0,0,0}} EOP, 546 556 547 NEW_SOP(O(O_STC,SB), 1,2,"stc"),{{CCR ,RD8,E}},{{ 0x0,0x2,0x0,RD8,E,0,0,0,0}} EOP,548 549 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{CCR ,RSIND,E}}, {{PREFIXLDC,0x6,0x9,B31|RDIND,0x0,E}} EOP,550 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{CCR ,DISP|DST|L_16,E}},{{PREFIXLDC,0x6,0xF,B31|DISPREG,0,DST|DISP|L_16,IGNORE,IGNORE,IGNORE,E}}EOP,551 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{CCR ,DISP|DST|L_32,E}},{{PREFIXLDC,0x7,0x8,B30|DISPREG,0,0x6,0xB,0xA,0x0,DST|DISP32LIST,E}}EOP,552 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{CCR ,RDDEC,E}}, {{PREFIXLDC,0x6,0xD,B31|RDDEC,0x0,E}}EOP,553 554 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{CCR ,ABS16SRC,E}}, {{PREFIXLDC,0x6,0xB,0x8,0x0,ABS16DST,IGNORE,IGNORE,IGNORE,E}}EOP,555 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{CCR ,ABS32SRC,E}}, {{PREFIXLDC,0x6,0xB,0xA,0x0,DST|ABS32LIST,E}}EOP,556 557 NEW_SOP(O(O_STC,SB), 1,2,"stc"),{{EXR ,RD8,E}},{{ 0x0,0x2,0x1,RD8,E,0,0,0,0}} EOP,558 559 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{EXR ,RSIND,E}}, {{0x0,0x1,0x4,0x1,0x6,0x9,B31|RDIND,0x0,E}} EOP,560 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{EXR ,DISP|DST|L_16,E}},{{0x0,0x1,0x4,0x1,0x6,0xF,B31|DISPREG,0,DST|DISP|L_16,IGNORE,IGNORE,IGNORE,E}}EOP,561 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{EXR ,DISP|DST|L_32,E}},{{0x0,0x1,0x4,0x1,0x7,0x8,B30|DISPREG,0,0x6,0xB,0xA,0x0,DST|DISP32LIST,E}}EOP,562 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{EXR ,RDDEC,E}}, {{0x0,0x1,0x4,0x1,0x6,0xD,B31|RDDEC,0x0,E}}EOP,563 564 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{EXR ,ABS16SRC,E}}, {{0x0,0x1,0x4,0x1,0x6,0xB,0x8,0x0,ABS16DST,IGNORE,IGNORE,IGNORE,E}}EOP,565 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{EXR ,ABS32SRC,E}}, {{0x0,0x1,0x4,0x1,0x6,0xB,0xA,0x0,DST|ABS32LIST,E}}EOP,557 NEW_SOP(O(O_STC,SB), 1,2,"stc"),{{CCR|SRC,RD8,E}},{{ 0x0,0x2,0x0,RD8,E,0,0,0,0}} EOP, 558 559 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{CCR|SRC,RDIND,E}}, {{PREFIXLDC,0x6,0x9,B31|RDIND,0x0,E}} EOP, 560 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{CCR|SRC,DISP|DST|L_16,E}},{{PREFIXLDC,0x6,0xF,B31|DISPREG,0,DST|DISP|L_16,IGNORE,IGNORE,IGNORE,E}}EOP, 561 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{CCR|SRC,DISP|DST|L_32,E}},{{PREFIXLDC,0x7,0x8,B30|DISPREG,0,0x6,0xB,0xA,0x0,DST|DISP32LIST,E}}EOP, 562 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{CCR|SRC,RDDEC,E}}, {{PREFIXLDC,0x6,0xD,B31|RDDEC,0x0,E}}EOP, 563 564 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{CCR|SRC,ABS16DST,E}}, {{PREFIXLDC,0x6,0xB,0x8,0x0,ABS16DST,IGNORE,IGNORE,IGNORE,E}}EOP, 565 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{CCR|SRC,ABS32DST,E}}, {{PREFIXLDC,0x6,0xB,0xA,0x0,DST|ABS32LIST,E}}EOP, 566 567 NEW_SOP(O(O_STC,SB), 1,2,"stc"),{{EXR|SRC,RD8,E}},{{ 0x0,0x2,0x1,RD8,E,0,0,0,0}} EOP, 568 569 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{EXR|SRC,RDIND,E}}, {{0x0,0x1,0x4,0x1,0x6,0x9,B31|RDIND,0x0,E}} EOP, 570 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{EXR|SRC,DISP|DST|L_16,E}},{{0x0,0x1,0x4,0x1,0x6,0xF,B31|DISPREG,0,DST|DISP|L_16,IGNORE,IGNORE,IGNORE,E}}EOP, 571 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{EXR|SRC,DISP|DST|L_32,E}},{{0x0,0x1,0x4,0x1,0x7,0x8,B30|DISPREG,0,0x6,0xB,0xA,0x0,DST|DISP32LIST,E}}EOP, 572 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{EXR|SRC,RDDEC,E}}, {{0x0,0x1,0x4,0x1,0x6,0xD,B31|RDDEC,0x0,E}}EOP, 573 574 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{EXR|SRC,ABS16DST,E}}, {{0x0,0x1,0x4,0x1,0x6,0xB,0x8,0x0,ABS16DST,IGNORE,IGNORE,IGNORE,E}}EOP, 575 NEW_SOP(O(O_STC,SB),0,2,"stc"),{{EXR|SRC,ABS32DST,E}}, {{0x0,0x1,0x4,0x1,0x6,0xB,0xA,0x0,DST|ABS32LIST,E}}EOP, 566 576 567 577 SOP(O(O_SUB,SB),2,"sub.b"),{{RS8,RD8,E}},{{ 0x1,0x8,RS8,RD8,E,0,0,0,0}}EOP, … … 586 596 NEW_SOP(O(O_XOR,SL),0,2,"xor.l") ,{{RS32,RD32,E }},{{0x0,0x1,0xF,0x0,0x6,0x5,B30|RS32,B30|RD32,E}} EOP, 587 597 588 SOP(O(O_XORC,SB),2,"xorc"),{{IMM8,CCR ,E}},{{ 0x0,0x5,IMM8,IGNORE,E,0,0,0,0}}EOP,589 SOP(O(O_XORC,SB),2,"xorc"),{{IMM8,EXR ,E}},{{ 0x0,0x1,0x4,0x1,0x0,0x5,IMM8,IGNORE,E,0,0,0,0}}EOP,598 SOP(O(O_XORC,SB),2,"xorc"),{{IMM8,CCR|DST,E}},{{ 0x0,0x5,IMM8,IGNORE,E,0,0,0,0}}EOP, 599 SOP(O(O_XORC,SB),2,"xorc"),{{IMM8,EXR|DST,E}},{{ 0x0,0x1,0x4,0x1,0x0,0x5,IMM8,IGNORE,E,0,0,0,0}}EOP, 590 600 591 601 NEW_SOP(O(O_CLRMAC,SN),1,2,"clrmac"),{{E, 0, 0}},{{0x0,0x1,0xa,0x0,E}} EOP, 592 602 NEW_SOP(O(O_MAC,SL),1,2,"mac"),{{RSINC,RDINC,E}},{{0x0,0x1,0x6,0x0,0x6,0xd,B30|RSINC,B30|RDINC,E}} EOP, 593 NEW_SOP(O(O_LDMAC,SL),1,2,"ldmac"),{{RS32,M ACREG,E}},{{0x0,0x3,MACREG,RS32,E}} EOP,594 NEW_SOP(O(O_STMAC,SL),1,2,"stmac"),{{M ACREG,RD32,E}},{{0x0,0x2,MACREG,RD32,E}} EOP,603 NEW_SOP(O(O_LDMAC,SL),1,2,"ldmac"),{{RS32,MD32,E}},{{0x0,0x3,MD32,RS32,E}} EOP, 604 NEW_SOP(O(O_STMAC,SL),1,2,"stmac"),{{MS32,RD32,E}},{{0x0,0x2,MS32,RD32,E}} EOP, 595 605 NEW_SOP(O(O_LDM,SL),0,6,"ldm.l"),{{RSINC, RS32, E}},{{ 0x0,0x1,IGNORE,0x0,0x6,0xD,0x7,IGNORE,E}}EOP, 596 606 NEW_SOP(O(O_STM,SL),0,6,"stm.l"),{{RS32, RDDEC, E}},{{0x0,0x1,IGNORE,0x0,0x6,0xD,0xF,IGNORE,E}}EOP, 597 { 0}607 {0, 0, 0, NULL, {{0,0,0}}, {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}} 598 608 }; 599 609 #else 600 extern struct h8_opcode h8_opcodes[];610 extern const struct h8_opcode h8_opcodes[]; 601 611 #endif -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/hppa.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* Table of opcodes for the PA-RISC. 2 2 Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 3 2001 3 2001, 2002 4 4 Free Software Foundation, Inc. 5 5 … … 171 171 172 172 cx indexed load completer. 173 cX indexed load completer. Like cx, but emits a space after 174 in disassembler. 173 175 cm short load and store completer. 176 cM short load and store completer. Like cm, but emits a space 177 after in disassembler. 174 178 cq long load and store completer (like cm, but inserted into a 175 179 different location in the target instruction). 176 180 cs store bytes short completer. 181 cA store bytes short completer. Like cs, but emits a space 182 after in disassembler. 177 183 ce long load/store completer for LDW/STW with a different encoding than the 178 184 others … … 266 272 267 273 274 #if 0 268 275 /* List of characters not to put a space after. Note that 269 276 "," is included, as the "spopN" operations use literal 270 277 commas in their completer sections. */ 271 278 static const char *const completer_chars = ",CcY<>?!@+&U~FfGHINnOoZMadu|/=0123%e$m}"; 279 #endif 272 280 273 281 /* The order of the opcodes in this table is significant: … … 285 293 { "ldi", 0x34000000, 0xffe00000, "l,x", pa20w, 0},/* ldo val(r0),r */ 286 294 { "ldi", 0x34000000, 0xffe0c000, "j,x", pa10, 0},/* ldo val(r0),r */ 287 288 { "call", 0xe800f000, 0xfc1ffffd, "n(b)", pa20, FLAG_STRICT},289 { "call", 0xe800a000, 0xffe0e000, "nW", pa10, FLAG_STRICT},290 { "ret", 0xe840d000, 0xfffffffd, "n", pa20, FLAG_STRICT},291 295 292 296 { "cmpib", 0xec000000, 0xfc000000, "?Qn5,b,w", pa20, FLAG_STRICT}, … … 302 306 assembler. */ 303 307 { "comb", 0x88000000, 0xfc000000, "?nnx,b,w", pa10, 0}, /* comb{tf} */ 304 { "addb", 0xa0000000, 0xf4000000, "?Wnx,b,w", pa20 , FLAG_STRICT},308 { "addb", 0xa0000000, 0xf4000000, "?Wnx,b,w", pa20w, FLAG_STRICT}, 305 309 { "addb", 0xa0000000, 0xfc000000, "?@nx,b,w", pa10, 0}, /* addb{tf} */ 306 310 /* This entry is for the disassembler only. It will never be used by 307 311 assembler. */ 308 312 { "addb", 0xa8000000, 0xfc000000, "?@nx,b,w", pa10, 0}, 309 { "addib", 0xa4000000, 0xf4000000, "?Wn5,b,w", pa20 , FLAG_STRICT},313 { "addib", 0xa4000000, 0xf4000000, "?Wn5,b,w", pa20w, FLAG_STRICT}, 310 314 { "addib", 0xa4000000, 0xfc000000, "?@n5,b,w", pa10, 0}, /* addib{tf}*/ 311 315 /* This entry is for the disassembler only. It will never be used by … … 328 332 { "ldw", 0x0c000080, 0xfc0013c0, "cxccx(s,b),t", pa10, FLAG_STRICT}, 329 333 { "ldw", 0x0c000080, 0xfc0013c0, "cxccx(b),t", pa10, FLAG_STRICT}, 334 { "ldw", 0x0c001080, 0xfc0013c0, "cmcc5(s,b),t", pa10, FLAG_STRICT}, 335 { "ldw", 0x0c001080, 0xfc0013c0, "cmcc5(b),t", pa10, FLAG_STRICT}, 330 336 { "ldw", 0x0c0010a0, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT}, 331 337 { "ldw", 0x0c0010a0, 0xfc1f33e0, "cocc@(b),t", pa20, FLAG_STRICT}, 332 { "ldw", 0x0c001080, 0xfc0013c0, "cmcc5(s,b),t", pa10, FLAG_STRICT},333 { "ldw", 0x0c001080, 0xfc0013c0, "cmcc5(b),t", pa10, FLAG_STRICT},334 338 { "ldw", 0x4c000000, 0xfc000000, "ce<(b),x", pa20w, FLAG_STRICT}, 335 339 { "ldw", 0x4c000000, 0xfc000000, "ceJ(s,b),x", pa10, FLAG_STRICT}, … … 343 347 { "ldh", 0x0c000040, 0xfc0013c0, "cxccx(s,b),t", pa10, FLAG_STRICT}, 344 348 { "ldh", 0x0c000040, 0xfc0013c0, "cxccx(b),t", pa10, FLAG_STRICT}, 349 { "ldh", 0x0c001040, 0xfc0013c0, "cmcc5(s,b),t", pa10, FLAG_STRICT}, 350 { "ldh", 0x0c001040, 0xfc0013c0, "cmcc5(b),t", pa10, FLAG_STRICT}, 345 351 { "ldh", 0x0c001060, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT}, 346 352 { "ldh", 0x0c001060, 0xfc1f33e0, "cocc@(b),t", pa20, FLAG_STRICT}, 347 { "ldh", 0x0c001040, 0xfc0013c0, "cmcc5(s,b),t", pa10, FLAG_STRICT},348 { "ldh", 0x0c001040, 0xfc0013c0, "cmcc5(b),t", pa10, FLAG_STRICT},349 353 { "ldh", 0x44000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT}, 350 354 { "ldh", 0x44000000, 0xfc000000, "j(s,b),x", pa10, 0}, … … 352 356 { "ldb", 0x0c000000, 0xfc0013c0, "cxccx(s,b),t", pa10, FLAG_STRICT}, 353 357 { "ldb", 0x0c000000, 0xfc0013c0, "cxccx(b),t", pa10, FLAG_STRICT}, 358 { "ldb", 0x0c001000, 0xfc0013c0, "cmcc5(s,b),t", pa10, FLAG_STRICT}, 359 { "ldb", 0x0c001000, 0xfc0013c0, "cmcc5(b),t", pa10, FLAG_STRICT}, 354 360 { "ldb", 0x0c001020, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT}, 355 361 { "ldb", 0x0c001020, 0xfc1f33e0, "cocc@(b),t", pa20, FLAG_STRICT}, 356 { "ldb", 0x0c001000, 0xfc0013c0, "cmcc5(s,b),t", pa10, FLAG_STRICT},357 { "ldb", 0x0c001000, 0xfc0013c0, "cmcc5(b),t", pa10, FLAG_STRICT},358 362 { "ldb", 0x40000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT}, 359 363 { "ldb", 0x40000000, 0xfc000000, "j(s,b),x", pa10, 0}, … … 365 369 { "std", 0x70000000, 0xfc000002, "cqx,&(b)", pa20w, FLAG_STRICT}, 366 370 { "std", 0x70000000, 0xfc000002, "cqx,#(b)", pa20, FLAG_STRICT}, 371 { "stw", 0x0c001280, 0xfc0013c0, "cmcCx,V(s,b)", pa10, FLAG_STRICT}, 372 { "stw", 0x0c001280, 0xfc0013c0, "cmcCx,V(b)", pa10, FLAG_STRICT}, 367 373 { "stw", 0x0c0012a0, 0xfc0013ff, "cocCx,@(s,b)", pa20, FLAG_STRICT}, 368 374 { "stw", 0x0c0012a0, 0xfc0013ff, "cocCx,@(b)", pa20, FLAG_STRICT}, 369 { "stw", 0x0c001280, 0xfc0013c0, "cmcCx,V(s,b)", pa10, FLAG_STRICT},370 { "stw", 0x0c001280, 0xfc0013c0, "cmcCx,V(b)", pa10, FLAG_STRICT},371 375 { "stw", 0x6c000000, 0xfc000000, "cex,<(b)", pa20w, FLAG_STRICT}, 372 376 { "stw", 0x6c000000, 0xfc000000, "cex,J(s,b)", pa10, FLAG_STRICT}, … … 378 382 { "stw", 0x68000000, 0xfc000000, "x,j(s,b)", pa10, 0}, 379 383 { "stw", 0x68000000, 0xfc000000, "x,j(b)", pa10, 0}, 384 { "sth", 0x0c001240, 0xfc0013c0, "cmcCx,V(s,b)", pa10, FLAG_STRICT}, 385 { "sth", 0x0c001240, 0xfc0013c0, "cmcCx,V(b)", pa10, FLAG_STRICT}, 380 386 { "sth", 0x0c001260, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT}, 381 387 { "sth", 0x0c001260, 0xfc0033ff, "cocCx,@(b)", pa20, FLAG_STRICT}, 382 { "sth", 0x0c001240, 0xfc0013c0, "cmcCx,V(s,b)", pa10, FLAG_STRICT},383 { "sth", 0x0c001240, 0xfc0013c0, "cmcCx,V(b)", pa10, FLAG_STRICT},384 388 { "sth", 0x64000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT}, 385 389 { "sth", 0x64000000, 0xfc000000, "x,j(s,b)", pa10, 0}, 386 390 { "sth", 0x64000000, 0xfc000000, "x,j(b)", pa10, 0}, 391 { "stb", 0x0c001200, 0xfc0013c0, "cmcCx,V(s,b)", pa10, FLAG_STRICT}, 392 { "stb", 0x0c001200, 0xfc0013c0, "cmcCx,V(b)", pa10, FLAG_STRICT}, 387 393 { "stb", 0x0c001220, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT}, 388 394 { "stb", 0x0c001220, 0xfc0033ff, "cocCx,@(b)", pa20, FLAG_STRICT}, 389 { "stb", 0x0c001200, 0xfc0013c0, "cmcCx,V(s,b)", pa10, FLAG_STRICT},390 { "stb", 0x0c001200, 0xfc0013c0, "cmcCx,V(b)", pa10, FLAG_STRICT},391 395 { "stb", 0x60000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT}, 392 396 { "stb", 0x60000000, 0xfc000000, "x,j(s,b)", pa10, 0}, … … 396 400 { "stwm", 0x6c000000, 0xfc000000, "x,j(s,b)", pa10, 0}, 397 401 { "stwm", 0x6c000000, 0xfc000000, "x,j(b)", pa10, 0}, 398 { "ldwx", 0x0c000080, 0xfc001fc0, "c xx(s,b),t", pa10, 0},399 { "ldwx", 0x0c000080, 0xfc001fc0, "c xx(b),t", pa10, 0},400 { "ldhx", 0x0c000040, 0xfc001fc0, "c xx(s,b),t", pa10, 0},401 { "ldhx", 0x0c000040, 0xfc001fc0, "c xx(b),t", pa10, 0},402 { "ldbx", 0x0c000000, 0xfc001fc0, "c xx(s,b),t", pa10, 0},403 { "ldbx", 0x0c000000, 0xfc001fc0, "c xx(b),t", pa10, 0},402 { "ldwx", 0x0c000080, 0xfc001fc0, "cXx(s,b),t", pa10, 0}, 403 { "ldwx", 0x0c000080, 0xfc001fc0, "cXx(b),t", pa10, 0}, 404 { "ldhx", 0x0c000040, 0xfc001fc0, "cXx(s,b),t", pa10, 0}, 405 { "ldhx", 0x0c000040, 0xfc001fc0, "cXx(b),t", pa10, 0}, 406 { "ldbx", 0x0c000000, 0xfc001fc0, "cXx(s,b),t", pa10, 0}, 407 { "ldbx", 0x0c000000, 0xfc001fc0, "cXx(b),t", pa10, 0}, 404 408 { "ldwa", 0x0c000180, 0xfc00d3c0, "cxccx(b),t", pa10, FLAG_STRICT}, 405 409 { "ldwa", 0x0c001180, 0xfc00d3c0, "cmcc5(b),t", pa10, FLAG_STRICT}, 410 { "ldwa", 0x0c0011a0, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT}, 406 411 { "ldcw", 0x0c0001c0, 0xfc0013c0, "cxcdx(s,b),t", pa10, FLAG_STRICT}, 407 412 { "ldcw", 0x0c0001c0, 0xfc0013c0, "cxcdx(b),t", pa10, FLAG_STRICT}, 408 413 { "ldcw", 0x0c0011c0, 0xfc0013c0, "cmcd5(s,b),t", pa10, FLAG_STRICT}, 409 414 { "ldcw", 0x0c0011c0, 0xfc0013c0, "cmcd5(b),t", pa10, FLAG_STRICT}, 415 { "stwa", 0x0c001380, 0xfc00d3c0, "cmcCx,V(b)", pa10, FLAG_STRICT}, 410 416 { "stwa", 0x0c0013a0, 0xfc00d3ff, "cocCx,@(b)", pa20, FLAG_STRICT}, 411 { "stwa", 0x0c001380, 0xfc00d3c0, "cmcCx,V(b)", pa10, FLAG_STRICT},412 417 { "stby", 0x0c001300, 0xfc0013c0, "cscCx,V(s,b)", pa10, FLAG_STRICT}, 413 418 { "stby", 0x0c001300, 0xfc0013c0, "cscCx,V(b)", pa10, FLAG_STRICT}, 414 419 { "ldda", 0x0c000100, 0xfc00d3c0, "cxccx(b),t", pa20, FLAG_STRICT}, 415 420 { "ldda", 0x0c001100, 0xfc00d3c0, "cmcc5(b),t", pa20, FLAG_STRICT}, 421 { "ldda", 0x0c001120, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT}, 416 422 { "ldcd", 0x0c000140, 0xfc0013c0, "cxcdx(s,b),t", pa20, FLAG_STRICT}, 417 423 { "ldcd", 0x0c000140, 0xfc0013c0, "cxcdx(b),t", pa20, FLAG_STRICT}, … … 422 428 { "stda", 0x0c0013c0, 0xfc0013c0, "cmcCx,V(s,b)", pa20, FLAG_STRICT}, 423 429 { "stda", 0x0c0013c0, 0xfc0013c0, "cmcCx,V(b)", pa20, FLAG_STRICT}, 424 { "ldwax", 0x0c000180, 0xfc00dfc0, "c xx(b),t", pa10, 0},425 { "ldcwx", 0x0c0001c0, 0xfc001fc0, "c xx(s,b),t", pa10, 0},426 { "ldcwx", 0x0c0001c0, 0xfc001fc0, "c xx(b),t", pa10, 0},427 { "ldws", 0x0c001080, 0xfc001fc0, "c m5(s,b),t", pa10, 0},428 { "ldws", 0x0c001080, 0xfc001fc0, "c m5(b),t", pa10, 0},429 { "ldhs", 0x0c001040, 0xfc001fc0, "c m5(s,b),t", pa10, 0},430 { "ldhs", 0x0c001040, 0xfc001fc0, "c m5(b),t", pa10, 0},431 { "ldbs", 0x0c001000, 0xfc001fc0, "c m5(s,b),t", pa10, 0},432 { "ldbs", 0x0c001000, 0xfc001fc0, "c m5(b),t", pa10, 0},433 { "ldwas", 0x0c001180, 0xfc00dfc0, "c m5(b),t", pa10, 0},434 { "ldcws", 0x0c0011c0, 0xfc001fc0, "c m5(s,b),t", pa10, 0},435 { "ldcws", 0x0c0011c0, 0xfc001fc0, "c m5(b),t", pa10, 0},436 { "stws", 0x0c001280, 0xfc001fc0, "c mx,V(s,b)", pa10, 0},437 { "stws", 0x0c001280, 0xfc001fc0, "c mx,V(b)", pa10, 0},438 { "sths", 0x0c001240, 0xfc001fc0, "c mx,V(s,b)", pa10, 0},439 { "sths", 0x0c001240, 0xfc001fc0, "c mx,V(b)", pa10, 0},440 { "stbs", 0x0c001200, 0xfc001fc0, "c mx,V(s,b)", pa10, 0},441 { "stbs", 0x0c001200, 0xfc001fc0, "c mx,V(b)", pa10, 0},442 { "stwas", 0x0c001380, 0xfc00dfc0, "c mx,V(b)", pa10, 0},430 { "ldwax", 0x0c000180, 0xfc00dfc0, "cXx(b),t", pa10, 0}, 431 { "ldcwx", 0x0c0001c0, 0xfc001fc0, "cXx(s,b),t", pa10, 0}, 432 { "ldcwx", 0x0c0001c0, 0xfc001fc0, "cXx(b),t", pa10, 0}, 433 { "ldws", 0x0c001080, 0xfc001fc0, "cM5(s,b),t", pa10, 0}, 434 { "ldws", 0x0c001080, 0xfc001fc0, "cM5(b),t", pa10, 0}, 435 { "ldhs", 0x0c001040, 0xfc001fc0, "cM5(s,b),t", pa10, 0}, 436 { "ldhs", 0x0c001040, 0xfc001fc0, "cM5(b),t", pa10, 0}, 437 { "ldbs", 0x0c001000, 0xfc001fc0, "cM5(s,b),t", pa10, 0}, 438 { "ldbs", 0x0c001000, 0xfc001fc0, "cM5(b),t", pa10, 0}, 439 { "ldwas", 0x0c001180, 0xfc00dfc0, "cM5(b),t", pa10, 0}, 440 { "ldcws", 0x0c0011c0, 0xfc001fc0, "cM5(s,b),t", pa10, 0}, 441 { "ldcws", 0x0c0011c0, 0xfc001fc0, "cM5(b),t", pa10, 0}, 442 { "stws", 0x0c001280, 0xfc001fc0, "cMx,V(s,b)", pa10, 0}, 443 { "stws", 0x0c001280, 0xfc001fc0, "cMx,V(b)", pa10, 0}, 444 { "sths", 0x0c001240, 0xfc001fc0, "cMx,V(s,b)", pa10, 0}, 445 { "sths", 0x0c001240, 0xfc001fc0, "cMx,V(b)", pa10, 0}, 446 { "stbs", 0x0c001200, 0xfc001fc0, "cMx,V(s,b)", pa10, 0}, 447 { "stbs", 0x0c001200, 0xfc001fc0, "cMx,V(b)", pa10, 0}, 448 { "stwas", 0x0c001380, 0xfc00dfc0, "cMx,V(b)", pa10, 0}, 443 449 { "stdby", 0x0c001340, 0xfc0013c0, "cscCx,V(s,b)", pa20, FLAG_STRICT}, 444 450 { "stdby", 0x0c001340, 0xfc0013c0, "cscCx,V(b)", pa20, FLAG_STRICT}, 445 { "stbys", 0x0c001300, 0xfc001fc0, "c sx,V(s,b)", pa10, 0},446 { "stbys", 0x0c001300, 0xfc001fc0, "c sx,V(b)", pa10, 0},451 { "stbys", 0x0c001300, 0xfc001fc0, "cAx,V(s,b)", pa10, 0}, 452 { "stbys", 0x0c001300, 0xfc001fc0, "cAx,V(b)", pa10, 0}, 447 453 448 454 /* Immediate instructions. */ … … 483 489 { "addibt", 0xa4000000, 0xfc000000, "?dn5,b,w", pa10, 0}, 484 490 { "addibf", 0xac000000, 0xfc000000, "?dn5,b,w", pa10, 0}, 491 { "bb", 0xc0004000, 0xffe06000, "?bnx,!,w", pa10, FLAG_STRICT}, 492 { "bb", 0xc4004000, 0xfc004000, "?bnx,Q,w", pa10, 0}, 485 493 { "bb", 0xc0006000, 0xffe06000, "?Bnx,!,w", pa20, FLAG_STRICT}, 486 494 { "bb", 0xc4004000, 0xfc004000, "?Bnx,B,w", pa20, FLAG_STRICT}, 487 { "bb", 0xc0004000, 0xffe06000, "?bnx,!,w", pa10, FLAG_STRICT},488 { "bb", 0xc4004000, 0xfc004000, "?bnx,Q,w", pa10, 0},489 495 { "bvb", 0xc0004000, 0xffe04000, "?bnx,w", pa10, 0}, 490 496 { "clrbts", 0xe8004005, 0xffffffff, "", pa20, FLAG_STRICT}, … … 702 708 /* Floating Point Coprocessor Instructions. */ 703 709 704 { "fldw", 0x24001020, 0xfc1f33a0, "cocc@(s,b),fT", pa20, FLAG_STRICT},705 { "fldw", 0x24001020, 0xfc1f33a0, "cocc@(b),fT", pa20, FLAG_STRICT},706 710 { "fldw", 0x24000000, 0xfc001380, "cxccx(s,b),fT", pa10, FLAG_STRICT}, 707 711 { "fldw", 0x24000000, 0xfc001380, "cxccx(b),fT", pa10, FLAG_STRICT}, 708 712 { "fldw", 0x24001000, 0xfc001380, "cmcc5(s,b),fT", pa10, FLAG_STRICT}, 709 713 { "fldw", 0x24001000, 0xfc001380, "cmcc5(b),fT", pa10, FLAG_STRICT}, 714 { "fldw", 0x24001020, 0xfc1f33a0, "cocc@(s,b),fT", pa20, FLAG_STRICT}, 715 { "fldw", 0x24001020, 0xfc1f33a0, "cocc@(b),fT", pa20, FLAG_STRICT}, 710 716 { "fldw", 0x5c000000, 0xfc000004, "y(b),fe", pa20w, FLAG_STRICT}, 711 717 { "fldw", 0x58000000, 0xfc000000, "cJy(b),fe", pa20w, FLAG_STRICT}, 712 718 { "fldw", 0x5c000000, 0xfc000004, "d(b),fe", pa20, FLAG_STRICT}, 713 719 { "fldw", 0x58000000, 0xfc000000, "cJd(b),fe", pa20, FLAG_STRICT}, 714 { "fldd", 0x2c001020, 0xfc1f33e0, "cocc@(s,b),ft", pa20, FLAG_STRICT},715 { "fldd", 0x2c001020, 0xfc1f33e0, "cocc@(b),ft", pa20, FLAG_STRICT},716 720 { "fldd", 0x2c000000, 0xfc0013c0, "cxccx(s,b),ft", pa10, FLAG_STRICT}, 717 721 { "fldd", 0x2c000000, 0xfc0013c0, "cxccx(b),ft", pa10, FLAG_STRICT}, 718 722 { "fldd", 0x2c001000, 0xfc0013c0, "cmcc5(s,b),ft", pa10, FLAG_STRICT}, 719 723 { "fldd", 0x2c001000, 0xfc0013c0, "cmcc5(b),ft", pa10, FLAG_STRICT}, 724 { "fldd", 0x2c001020, 0xfc1f33e0, "cocc@(s,b),ft", pa20, FLAG_STRICT}, 725 { "fldd", 0x2c001020, 0xfc1f33e0, "cocc@(b),ft", pa20, FLAG_STRICT}, 720 726 { "fldd", 0x50000002, 0xfc000002, "cq&(b),fx", pa20w, FLAG_STRICT}, 721 727 { "fldd", 0x50000002, 0xfc000002, "cq#(b),fx", pa20, FLAG_STRICT}, 722 { "fstw", 0x24001220, 0xfc1f33a0, "cocCfT,@(s,b)", pa10, FLAG_STRICT},723 { "fstw", 0x24001220, 0xfc1f33a0, "cocCfT,@(b)", pa10, FLAG_STRICT},724 728 { "fstw", 0x24000200, 0xfc001380, "cxcCfT,x(s,b)", pa10, FLAG_STRICT}, 725 729 { "fstw", 0x24000200, 0xfc001380, "cxcCfT,x(b)", pa10, FLAG_STRICT}, 726 730 { "fstw", 0x24001200, 0xfc001380, "cmcCfT,5(s,b)", pa10, FLAG_STRICT}, 727 731 { "fstw", 0x24001200, 0xfc001380, "cmcCfT,5(b)", pa10, FLAG_STRICT}, 732 { "fstw", 0x24001220, 0xfc1f33a0, "cocCfT,@(s,b)", pa10, FLAG_STRICT}, 733 { "fstw", 0x24001220, 0xfc1f33a0, "cocCfT,@(b)", pa10, FLAG_STRICT}, 728 734 { "fstw", 0x7c000000, 0xfc000004, "fE,y(b)", pa20w, FLAG_STRICT}, 729 735 { "fstw", 0x78000000, 0xfc000000, "cJfe,y(b)", pa20w, FLAG_STRICT}, 730 736 { "fstw", 0x7c000000, 0xfc000004, "fe,d(b)", pa20, FLAG_STRICT}, 731 737 { "fstw", 0x78000000, 0xfc000000, "cJfe,d(b)", pa20, FLAG_STRICT}, 732 { "fstd", 0x2c001220, 0xfc1f33e0, "cocCft,@(s,b)", pa10, FLAG_STRICT},733 { "fstd", 0x2c001220, 0xfc1f33e0, "cocCft,@(b)", pa10, FLAG_STRICT},734 738 { "fstd", 0x2c000200, 0xfc0013c0, "cxcCft,x(s,b)", pa10, FLAG_STRICT}, 735 739 { "fstd", 0x2c000200, 0xfc0013c0, "cxcCft,x(b)", pa10, FLAG_STRICT}, 736 740 { "fstd", 0x2c001200, 0xfc0013c0, "cmcCft,5(s,b)", pa10, FLAG_STRICT}, 737 741 { "fstd", 0x2c001200, 0xfc0013c0, "cmcCft,5(b)", pa10, FLAG_STRICT}, 742 { "fstd", 0x2c001220, 0xfc1f33e0, "cocCft,@(s,b)", pa10, FLAG_STRICT}, 743 { "fstd", 0x2c001220, 0xfc1f33e0, "cocCft,@(b)", pa10, FLAG_STRICT}, 738 744 { "fstd", 0x70000002, 0xfc000002, "cqfx,&(b)", pa20w, FLAG_STRICT}, 739 745 { "fstd", 0x70000002, 0xfc000002, "cqfx,#(b)", pa20, FLAG_STRICT}, 740 { "fldwx", 0x24000000, 0xfc001f80, "c xx(s,b),fT", pa10, 0},741 { "fldwx", 0x24000000, 0xfc001f80, "c xx(b),fT", pa10, 0},742 { "flddx", 0x2c000000, 0xfc001fc0, "c xx(s,b),ft", pa10, 0},743 { "flddx", 0x2c000000, 0xfc001fc0, "c xx(b),ft", pa10, 0},746 { "fldwx", 0x24000000, 0xfc001f80, "cXx(s,b),fT", pa10, 0}, 747 { "fldwx", 0x24000000, 0xfc001f80, "cXx(b),fT", pa10, 0}, 748 { "flddx", 0x2c000000, 0xfc001fc0, "cXx(s,b),ft", pa10, 0}, 749 { "flddx", 0x2c000000, 0xfc001fc0, "cXx(b),ft", pa10, 0}, 744 750 { "fstwx", 0x24000200, 0xfc001f80, "cxfT,x(s,b)", pa10, 0}, 745 751 { "fstwx", 0x24000200, 0xfc001f80, "cxfT,x(b)", pa10, 0}, … … 816 822 { "spop3", 0x10000600, 0xfc000600, "v,0Nx,b", pa10, 0}, 817 823 { "copr", 0x30000000, 0xfc000000, "u,2N", pa10, 0}, 818 { "cldwx", 0x24000000, 0xfc001e00, "ucxx(s,b),t", pa10, 0}, 819 { "cldwx", 0x24000000, 0xfc001e00, "ucxx(b),t", pa10, 0}, 820 { "clddx", 0x2c000000, 0xfc001e00, "ucxx(s,b),t", pa10, 0}, 821 { "clddx", 0x2c000000, 0xfc001e00, "ucxx(b),t", pa10, 0}, 822 { "cstwx", 0x24000200, 0xfc001e00, "ucxt,x(s,b)", pa10, 0}, 823 { "cstwx", 0x24000200, 0xfc001e00, "ucxt,x(b)", pa10, 0}, 824 { "cstdx", 0x2c000200, 0xfc001e00, "ucxt,x(s,b)", pa10, 0}, 825 { "cstdx", 0x2c000200, 0xfc001e00, "ucxt,x(b)", pa10, 0}, 826 { "cldws", 0x24001000, 0xfc001e00, "ucm5(s,b),t", pa10, 0}, 827 { "cldws", 0x24001000, 0xfc001e00, "ucm5(b),t", pa10, 0}, 828 { "cldds", 0x2c001000, 0xfc001e00, "ucm5(s,b),t", pa10, 0}, 829 { "cldds", 0x2c001000, 0xfc001e00, "ucm5(b),t", pa10, 0}, 830 { "cstws", 0x24001200, 0xfc001e00, "ucmt,5(s,b)", pa10, 0}, 831 { "cstws", 0x24001200, 0xfc001e00, "ucmt,5(b)", pa10, 0}, 832 { "cstds", 0x2c001200, 0xfc001e00, "ucmt,5(s,b)", pa10, 0}, 833 { "cstds", 0x2c001200, 0xfc001e00, "ucmt,5(b)", pa10, 0}, 834 { "cldw", 0x24000000, 0xfc001e00, "ucxx(s,b),t", pa10, FLAG_STRICT}, 835 { "cldw", 0x24000000, 0xfc001e00, "ucxx(b),t", pa10, FLAG_STRICT}, 836 { "cldw", 0x24001000, 0xfc001e00, "ucm5(s,b),t", pa10, FLAG_STRICT}, 837 { "cldw", 0x24001000, 0xfc001e00, "ucm5(b),t", pa10, FLAG_STRICT}, 838 { "cldd", 0x2c000000, 0xfc001e00, "ucxx(s,b),t", pa10, FLAG_STRICT}, 839 { "cldd", 0x2c000000, 0xfc001e00, "ucxx(b),t", pa10, FLAG_STRICT}, 840 { "cldd", 0x2c001000, 0xfc001e00, "ucm5(s,b),t", pa10, FLAG_STRICT}, 841 { "cldd", 0x2c001000, 0xfc001e00, "ucm5(b),t", pa20, FLAG_STRICT}, 842 { "cstw", 0x24000200, 0xfc001e00, "ucxt,x(s,b)", pa10, FLAG_STRICT}, 843 { "cstw", 0x24000200, 0xfc001e00, "ucxt,x(b)", pa10, FLAG_STRICT}, 844 { "cstw", 0x24001200, 0xfc001e00, "ucmt,5(s,b)", pa10, FLAG_STRICT}, 845 { "cstw", 0x24001200, 0xfc001e00, "ucmt,5(b)", pa10, FLAG_STRICT}, 846 { "cstd", 0x2c000200, 0xfc001e00, "ucxt,x(s,b)", pa10, FLAG_STRICT}, 847 { "cstd", 0x2c000200, 0xfc001e00, "ucxt,x(b)", pa10, FLAG_STRICT}, 848 { "cstd", 0x2c001200, 0xfc001e00, "ucmt,5(s,b)", pa10, FLAG_STRICT}, 849 { "cstd", 0x2c001200, 0xfc001e00, "ucmt,5(b)", pa10, FLAG_STRICT}, 824 { "cldwx", 0x24000000, 0xfc001e00, "ucXx(s,b),t", pa10, 0}, 825 { "cldwx", 0x24000000, 0xfc001e00, "ucXx(b),t", pa10, 0}, 826 { "clddx", 0x2c000000, 0xfc001e00, "ucXx(s,b),t", pa10, 0}, 827 { "clddx", 0x2c000000, 0xfc001e00, "ucXx(b),t", pa10, 0}, 828 { "cstwx", 0x24000200, 0xfc001e00, "ucXt,x(s,b)", pa10, 0}, 829 { "cstwx", 0x24000200, 0xfc001e00, "ucXt,x(b)", pa10, 0}, 830 { "cstdx", 0x2c000200, 0xfc001e00, "ucXt,x(s,b)", pa10, 0}, 831 { "cstdx", 0x2c000200, 0xfc001e00, "ucXt,x(b)", pa10, 0}, 832 { "cldws", 0x24001000, 0xfc001e00, "ucM5(s,b),t", pa10, 0}, 833 { "cldws", 0x24001000, 0xfc001e00, "ucM5(b),t", pa10, 0}, 834 { "cldds", 0x2c001000, 0xfc001e00, "ucM5(s,b),t", pa10, 0}, 835 { "cldds", 0x2c001000, 0xfc001e00, "ucM5(b),t", pa10, 0}, 836 { "cstws", 0x24001200, 0xfc001e00, "ucMt,5(s,b)", pa10, 0}, 837 { "cstws", 0x24001200, 0xfc001e00, "ucMt,5(b)", pa10, 0}, 838 { "cstds", 0x2c001200, 0xfc001e00, "ucMt,5(s,b)", pa10, 0}, 839 { "cstds", 0x2c001200, 0xfc001e00, "ucMt,5(b)", pa10, 0}, 840 { "cldw", 0x24000000, 0xfc001e00, "ucXx(s,b),t", pa10, FLAG_STRICT}, 841 { "cldw", 0x24000000, 0xfc001e00, "ucXx(b),t", pa10, FLAG_STRICT}, 842 { "cldw", 0x24001000, 0xfc001e00, "ucM5(s,b),t", pa10, FLAG_STRICT}, 843 { "cldw", 0x24001000, 0xfc001e00, "ucM5(b),t", pa10, FLAG_STRICT}, 844 { "cldd", 0x2c000000, 0xfc001e00, "ucXx(s,b),t", pa10, FLAG_STRICT}, 845 { "cldd", 0x2c000000, 0xfc001e00, "ucXx(b),t", pa10, FLAG_STRICT}, 846 { "cldd", 0x2c001000, 0xfc001e00, "ucM5(s,b),t", pa10, FLAG_STRICT}, 847 { "cldd", 0x2c001000, 0xfc001e00, "ucM5(b),t", pa20, FLAG_STRICT}, 848 { "cstw", 0x24000200, 0xfc001e00, "ucXt,x(s,b)", pa10, FLAG_STRICT}, 849 { "cstw", 0x24000200, 0xfc001e00, "ucXt,x(b)", pa10, FLAG_STRICT}, 850 { "cstw", 0x24001200, 0xfc001e00, "ucMt,5(s,b)", pa10, FLAG_STRICT}, 851 { "cstw", 0x24001200, 0xfc001e00, "ucMt,5(b)", pa10, FLAG_STRICT}, 852 { "cstd", 0x2c000200, 0xfc001e00, "ucXt,x(s,b)", pa10, FLAG_STRICT}, 853 { "cstd", 0x2c000200, 0xfc001e00, "ucXt,x(b)", pa10, FLAG_STRICT}, 854 { "cstd", 0x2c001200, 0xfc001e00, "ucMt,5(s,b)", pa10, FLAG_STRICT}, 855 { "cstd", 0x2c001200, 0xfc001e00, "ucMt,5(b)", pa10, FLAG_STRICT}, 856 857 /* More pseudo instructions which must follow the main table. */ 858 { "call", 0xe800f000, 0xfc1ffffd, "n(b)", pa20, FLAG_STRICT}, 859 { "call", 0xe800a000, 0xffe0e000, "nW", pa10, FLAG_STRICT}, 860 { "ret", 0xe840d000, 0xfffffffd, "n", pa20, FLAG_STRICT}, 861 850 862 }; 851 863 -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/i386.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 63 63 #define wlq_Suf (No_bSuf|No_sSuf|No_xSuf) 64 64 #define lq_Suf (No_bSuf|No_wSuf|No_sSuf|No_xSuf) 65 #define wq_Suf (No_bSuf|No_lSuf|No_sSuf|No_xSuf) 65 66 #define sl_Suf (No_bSuf|No_wSuf|No_xSuf|No_qSuf) 66 67 #define sldx_Suf (No_bSuf|No_wSuf|No_qSuf) … … 121 122 /* Intel Syntax next 5 insns */ 122 123 {"movsx", 2, 0x0fbe, X, Cpu386, b_Suf|Modrm, { Reg8|ByteMem, WordReg, 0} }, 123 {"movsx", 2, 0x0fbf, X, Cpu386, w_Suf|Modrm |IgnoreSize,{ Reg16|ShortMem, Reg32, 0} },124 {"movsx", 2, 0x0fbf, X, Cpu386, w_Suf|Modrm, { Reg16|ShortMem, Reg32, 0} }, 124 125 {"movsx", 2, 0x0fbe, X, Cpu64, b_Suf|Modrm|Rex64, { Reg8|ByteMem, Reg64, 0} }, 125 {"movsx", 2, 0x0fbf, X, Cpu64, w_Suf|Modrm| IgnoreSize|Rex64,{ Reg16|ShortMem, Reg64, 0} },126 {"movsx", 2, 0x0fbf, X, Cpu64, w_Suf|Modrm|Rex64, { Reg16|ShortMem, Reg64, 0} }, 126 127 {"movsx", 2, 0x63, X, Cpu64, l_Suf|Modrm|Rex64, { Reg32|WordMem, Reg64, 0} }, 127 128 … … 135 136 /* Intel Syntax next 4 insns */ 136 137 {"movzx", 2, 0x0fb6, X, Cpu386, b_Suf|Modrm, { Reg8|ByteMem, WordReg, 0} }, 137 {"movzx", 2, 0x0fb7, X, Cpu386, w_Suf|Modrm |IgnoreSize,{ Reg16|ShortMem, Reg32, 0} },138 {"movzx", 2, 0x0fb7, X, Cpu386, w_Suf|Modrm, { Reg16|ShortMem, Reg32, 0} }, 138 139 /* These instructions are not particulary usefull, since the zero extend 139 140 32->64 is implicit, but we can encode them. */ 140 141 {"movzx", 2, 0x0fb6, X, Cpu386, b_Suf|Modrm|Rex64, { Reg8|ByteMem, Reg64, 0} }, 141 {"movzx", 2, 0x0fb7, X, Cpu386, w_Suf|Modrm| IgnoreSize|Rex64,{ Reg16|ShortMem, Reg64, 0} },142 {"movzx", 2, 0x0fb7, X, Cpu386, w_Suf|Modrm|Rex64, { Reg16|ShortMem, Reg64, 0} }, 142 143 143 144 /* Push instructions. */ … … 149 150 {"push", 1, 0x0fa0, X, Cpu386|CpuNo64, wl_Suf|Seg3ShortForm|DefaultSize, { SReg3, 0, 0 } }, 150 151 /* In 64bit mode, the operand size is implicitly 64bit. */ 151 {"push", 1, 0x50, X, Cpu64, q_Suf|ShortForm|DefaultSize|NoRex64, { Reg64, 0, 0 } },152 {"push", 1, 0xff, 6, Cpu64, q_Suf|Modrm|DefaultSize|NoRex64, { Reg64|WordMem, 0, 0 } },153 {"push", 1, 0x6a, X, Cpu186|Cpu64, q_Suf|DefaultSize|NoRex64, { Imm8S, 0, 0} },154 {"push", 1, 0x68, X, Cpu186|Cpu64, q_Suf|DefaultSize|NoRex64, { Imm32S, 0, 0} },155 {"push", 1, 0x06, X, Cpu64, q_Suf|Seg2ShortForm|DefaultSize|NoRex64, { SReg2, 0, 0 } },156 {"push", 1, 0x0fa0, X, Cpu386|Cpu64, q_Suf|Seg3ShortForm|DefaultSize|NoRex64, { SReg3, 0, 0 } },152 {"push", 1, 0x50, X, Cpu64, wq_Suf|ShortForm|DefaultSize|NoRex64, { WordReg, 0, 0 } }, 153 {"push", 1, 0xff, 6, Cpu64, wq_Suf|Modrm|DefaultSize|NoRex64, { WordReg|WordMem, 0, 0 } }, 154 {"push", 1, 0x6a, X, Cpu186|Cpu64, wq_Suf|DefaultSize|NoRex64, { Imm8S, 0, 0} }, 155 {"push", 1, 0x68, X, Cpu186|Cpu64, wq_Suf|DefaultSize|NoRex64, { Imm32S|Imm16, 0, 0} }, 156 {"push", 1, 0x06, X, Cpu64, wq_Suf|Seg2ShortForm|DefaultSize|NoRex64, { SReg2, 0, 0 } }, 157 {"push", 1, 0x0fa0, X, Cpu386|Cpu64, wq_Suf|Seg3ShortForm|DefaultSize|NoRex64, { SReg3, 0, 0 } }, 157 158 158 159 {"pusha", 0, 0x60, X, Cpu186|CpuNo64, wl_Suf|DefaultSize, { 0, 0, 0 } }, … … 165 166 {"pop", 1, 0x0fa1, X, Cpu386|CpuNo64, wl_Suf|Seg3ShortForm|DefaultSize, { SReg3, 0, 0 } }, 166 167 /* In 64bit mode, the operand size is implicitly 64bit. */ 167 {"pop", 1, 0x58, X, Cpu64, q_Suf|ShortForm|DefaultSize|NoRex64, { Reg64, 0, 0 } },168 {"pop", 1, 0x8f, 0, Cpu64, q_Suf|Modrm|DefaultSize|NoRex64, { Reg64|WordMem, 0, 0 } },169 {"pop", 1, 0x07, X, Cpu64, q_Suf|Seg2ShortForm|DefaultSize|NoRex64, { SReg2, 0, 0 } },170 {"pop", 1, 0x0fa1, X, Cpu64, q_Suf|Seg3ShortForm|DefaultSize|NoRex64, { SReg3, 0, 0 } },168 {"pop", 1, 0x58, X, Cpu64, wq_Suf|ShortForm|DefaultSize|NoRex64, { WordReg, 0, 0 } }, 169 {"pop", 1, 0x8f, 0, Cpu64, wq_Suf|Modrm|DefaultSize|NoRex64, { WordReg|WordMem, 0, 0 } }, 170 {"pop", 1, 0x07, X, Cpu64, wq_Suf|Seg2ShortForm|DefaultSize|NoRex64, { SReg2, 0, 0 } }, 171 {"pop", 1, 0x0fa1, X, Cpu64, wq_Suf|Seg3ShortForm|DefaultSize|NoRex64, { SReg3, 0, 0 } }, 171 172 172 173 {"popa", 0, 0x61, X, Cpu186|CpuNo64, wl_Suf|DefaultSize, { 0, 0, 0 } }, … … 177 178 In the 64bit code, xchg eax, eax is reused for new nop instruction. 178 179 */ 179 {"xchg", 2, 0x90, X, CpuNo64, wl_Suf|ShortForm, { WordReg, Acc, 0 } },180 {"xchg", 2, 0x90, X, CpuNo64, wl_Suf|ShortForm, { Acc, WordReg, 0 } },180 {"xchg", 2, 0x90, X, 0, wlq_Suf|ShortForm, { WordReg, Acc, 0 } }, 181 {"xchg", 2, 0x90, X, 0, wlq_Suf|ShortForm, { Acc, WordReg, 0 } }, 181 182 {"xchg", 2, 0x86, X, 0, bwlq_Suf|W|Modrm, { Reg, Reg|AnyMem, 0 } }, 182 183 {"xchg", 2, 0x86, X, 0, bwlq_Suf|W|Modrm, { Reg|AnyMem, Reg, 0 } }, 183 184 184 185 /* In/out from ports. */ 185 {"in", 2, 0xe4, X, 0, bwl q_Suf|W, { Imm8, Acc, 0 } },186 {"in", 2, 0xec, X, 0, bwl q_Suf|W, { InOutPortReg, Acc, 0 } },187 {"in", 1, 0xe4, X, 0, bwl q_Suf|W, { Imm8, 0, 0 } },188 {"in", 1, 0xec, X, 0, bwl q_Suf|W, { InOutPortReg, 0, 0 } },189 {"out", 2, 0xe6, X, 0, bwl q_Suf|W, { Acc, Imm8, 0 } },190 {"out", 2, 0xee, X, 0, bwl q_Suf|W, { Acc, InOutPortReg, 0 } },191 {"out", 1, 0xe6, X, 0, bwl q_Suf|W, { Imm8, 0, 0 } },192 {"out", 1, 0xee, X, 0, bwl q_Suf|W, { InOutPortReg, 0, 0 } },186 {"in", 2, 0xe4, X, 0, bwl_Suf|W, { Imm8, Acc, 0 } }, 187 {"in", 2, 0xec, X, 0, bwl_Suf|W, { InOutPortReg, Acc, 0 } }, 188 {"in", 1, 0xe4, X, 0, bwl_Suf|W, { Imm8, 0, 0 } }, 189 {"in", 1, 0xec, X, 0, bwl_Suf|W, { InOutPortReg, 0, 0 } }, 190 {"out", 2, 0xe6, X, 0, bwl_Suf|W, { Acc, Imm8, 0 } }, 191 {"out", 2, 0xee, X, 0, bwl_Suf|W, { Acc, InOutPortReg, 0 } }, 192 {"out", 1, 0xe6, X, 0, bwl_Suf|W, { Imm8, 0, 0 } }, 193 {"out", 1, 0xee, X, 0, bwl_Suf|W, { InOutPortReg, 0, 0 } }, 193 194 194 195 /* Load effective address. */ … … 211 212 {"sahf", 0, 0x9e, X, CpuNo64,NoSuf, { 0, 0, 0} }, 212 213 {"pushf", 0, 0x9c, X, CpuNo64,wlq_Suf|DefaultSize, { 0, 0, 0} }, 213 {"pushf", 0, 0x9c, X, Cpu64, q_Suf|DefaultSize|NoRex64,{ 0, 0, 0} },214 {"pushf", 0, 0x9c, X, Cpu64, wq_Suf|DefaultSize|NoRex64,{ 0, 0, 0} }, 214 215 {"popf", 0, 0x9d, X, CpuNo64,wlq_Suf|DefaultSize, { 0, 0, 0} }, 215 {"popf", 0, 0x9d, X, Cpu64, q_Suf|DefaultSize|NoRex64,{ 0, 0, 0} },216 {"popf", 0, 0x9d, X, Cpu64, wq_Suf|DefaultSize|NoRex64,{ 0, 0, 0} }, 216 217 {"stc", 0, 0xf9, X, 0, NoSuf, { 0, 0, 0} }, 217 218 {"std", 0, 0xfd, X, 0, NoSuf, { 0, 0, 0} }, … … 371 372 /* Control transfer instructions. */ 372 373 {"call", 1, 0xe8, X, 0, wlq_Suf|JumpDword|DefaultSize, { Disp16|Disp32, 0, 0} }, 373 {"call", 1, 0xff, 2, 0, wlq_Suf|Modrm|DefaultSize, { WordReg|WordMem|JumpAbsolute, 0, 0} }, 374 {"call", 1, 0xff, 2, CpuNo64, wl_Suf|Modrm|DefaultSize, { WordReg|WordMem|JumpAbsolute, 0, 0} }, 375 {"call", 1, 0xff, 2, Cpu64, wq_Suf|Modrm|DefaultSize|NoRex64,{ WordReg|WordMem|JumpAbsolute, 0, 0} }, 374 376 /* Intel Syntax */ 375 377 {"call", 2, 0x9a, X, CpuNo64,wlq_Suf|JumpInterSegment|DefaultSize, { Imm16, Imm16|Imm32, 0} }, … … 382 384 #define JUMP_PC_RELATIVE 0xeb 383 385 {"jmp", 1, 0xeb, X, 0, NoSuf|Jump, { Disp, 0, 0} }, 384 {"jmp", 1, 0xff, 4, 0, wlq_Suf|Modrm, { WordReg|WordMem|JumpAbsolute, 0, 0} }, 386 {"jmp", 1, 0xff, 4, CpuNo64, wl_Suf|Modrm, { WordReg|WordMem|JumpAbsolute, 0, 0} }, 387 {"jmp", 1, 0xff, 4, Cpu64, wq_Suf|Modrm|NoRex64, { WordReg|WordMem|JumpAbsolute, 0, 0} }, 385 388 /* Intel Syntax */ 386 389 {"jmp", 2, 0xea, X, CpuNo64,wl_Suf|JumpInterSegment, { Imm16, Imm16|Imm32, 0} }, … … 433 436 434 437 /* jcxz vs. jecxz is chosen on the basis of the address size prefix. */ 435 {"jcxz", 1, 0xe3, X, 0, NoSuf|JumpByte|Size16, { Disp, 0, 0} }, 436 {"jecxz", 1, 0xe3, X, 0, NoSuf|JumpByte|Size32, { Disp, 0, 0} }, 438 {"jcxz", 1, 0xe3, X, CpuNo64,NoSuf|JumpByte|Size16, { Disp, 0, 0} }, 439 {"jecxz", 1, 0xe3, X, CpuNo64,NoSuf|JumpByte|Size32, { Disp, 0, 0} }, 440 {"jecxz", 1, 0x67e3, X, Cpu64,NoSuf|JumpByte|Size32, { Disp, 0, 0} }, 441 {"jrcxz", 1, 0xe3, X, Cpu64, NoSuf|JumpByte|Size64|NoRex64, { Disp, 0, 0} }, 437 442 438 443 /* The loop instructions also use the address size prefix to select … … 440 445 instructions emit an address size prefix rather than a data size 441 446 prefix. */ 442 {"loop", 1, 0xe2, X, 0, wlq_Suf|JumpByte, { Disp, 0, 0} }, 443 {"loopz", 1, 0xe1, X, 0, wlq_Suf|JumpByte, { Disp, 0, 0} }, 444 {"loope", 1, 0xe1, X, 0, wlq_Suf|JumpByte, { Disp, 0, 0} }, 445 {"loopnz", 1, 0xe0, X, 0, wlq_Suf|JumpByte, { Disp, 0, 0} }, 446 {"loopne", 1, 0xe0, X, 0, wlq_Suf|JumpByte, { Disp, 0, 0} }, 447 {"loop", 1, 0xe2, X, CpuNo64,wl_Suf|JumpByte,{ Disp, 0, 0} }, 448 {"loop", 1, 0xe2, X, Cpu64, lq_Suf|JumpByte|NoRex64,{ Disp, 0, 0} }, 449 {"loopz", 1, 0xe1, X, CpuNo64,wl_Suf|JumpByte,{ Disp, 0, 0} }, 450 {"loopz", 1, 0xe1, X, Cpu64, lq_Suf|JumpByte|NoRex64,{ Disp, 0, 0} }, 451 {"loope", 1, 0xe1, X, CpuNo64,wl_Suf|JumpByte,{ Disp, 0, 0} }, 452 {"loope", 1, 0xe1, X, Cpu64, lq_Suf|JumpByte|NoRex64,{ Disp, 0, 0} }, 453 {"loopnz", 1, 0xe0, X, CpuNo64,wl_Suf|JumpByte,{ Disp, 0, 0} }, 454 {"loopnz", 1, 0xe0, X, Cpu64, lq_Suf|JumpByte|NoRex64,{ Disp, 0, 0} }, 455 {"loopne", 1, 0xe0, X, CpuNo64,wl_Suf|JumpByte,{ Disp, 0, 0} }, 456 {"loopne", 1, 0xe0, X, Cpu64, lq_Suf|JumpByte|NoRex64,{ Disp, 0, 0} }, 447 457 448 458 /* Set byte on flag instructions. */ … … 483 493 {"scmp", 0, 0xa6, X, 0, bwlq_Suf|W|IsString, { 0, 0, 0} }, 484 494 {"scmp", 2, 0xa6, X, 0, bwlq_Suf|W|IsString, { AnyMem|EsSeg, AnyMem, 0} }, 485 {"ins", 0, 0x6c, X, Cpu186, bwl q_Suf|W|IsString, { 0, 0, 0} },486 {"ins", 2, 0x6c, X, Cpu186, bwl q_Suf|W|IsString, { InOutPortReg, AnyMem|EsSeg, 0} },487 {"outs", 0, 0x6e, X, Cpu186, bwl q_Suf|W|IsString, { 0, 0, 0} },488 {"outs", 2, 0x6e, X, Cpu186, bwl q_Suf|W|IsString, { AnyMem, InOutPortReg, 0} },495 {"ins", 0, 0x6c, X, Cpu186, bwl_Suf|W|IsString, { 0, 0, 0} }, 496 {"ins", 2, 0x6c, X, Cpu186, bwl_Suf|W|IsString, { InOutPortReg, AnyMem|EsSeg, 0} }, 497 {"outs", 0, 0x6e, X, Cpu186, bwl_Suf|W|IsString, { 0, 0, 0} }, 498 {"outs", 2, 0x6e, X, Cpu186, bwl_Suf|W|IsString, { AnyMem, InOutPortReg, 0} }, 489 499 {"lods", 0, 0xac, X, 0, bwlq_Suf|W|IsString, { 0, 0, 0} }, 490 500 {"lods", 1, 0xac, X, 0, bwlq_Suf|W|IsString, { AnyMem, 0, 0} }, … … 554 564 {"sgdt", 1, 0x0f01, 0, Cpu286, wlq_Suf|Modrm, { WordMem, 0, 0} }, 555 565 {"sidt", 1, 0x0f01, 1, Cpu286, wlq_Suf|Modrm, { WordMem, 0, 0} }, 556 {"sldt", 1, 0x0f00, 0, Cpu286, wlq_Suf|Modrm, { WordReg|WordMem, 0, 0} }, 557 {"smsw", 1, 0x0f01, 4, Cpu286, wlq_Suf|Modrm, { WordReg|WordMem, 0, 0} }, 558 {"str", 1, 0x0f00, 1, Cpu286, w_Suf|Modrm|IgnoreSize,{ Reg16|ShortMem, 0, 0} }, 566 {"sldt", 1, 0x0f00, 0, Cpu286, wlq_Suf|Modrm, { WordReg|InvMem, 0, 0} }, 567 {"sldt", 1, 0x0f00, 0, Cpu286, w_Suf|Modrm|IgnoreSize,{ ShortMem, 0, 0} }, 568 {"smsw", 1, 0x0f01, 4, Cpu286, wlq_Suf|Modrm, { WordReg|InvMem, 0, 0} }, 569 {"smsw", 1, 0x0f01, 4, Cpu286, w_Suf|Modrm|IgnoreSize,{ ShortMem, 0, 0} }, 570 {"str", 1, 0x0f00, 1, Cpu286, wlq_Suf|Modrm, { WordReg|InvMem, 0, 0} }, 571 {"str", 1, 0x0f00, 1, Cpu286, w_Suf|Modrm|IgnoreSize,{ ShortMem, 0, 0} }, 559 572 560 573 {"verr", 1, 0x0f00, 4, Cpu286, w_Suf|Modrm|IgnoreSize,{ Reg16|ShortMem, 0, 0} }, … … 969 982 {"movd", 2, 0x660f7e,X,CpuSSE2,FP|Modrm, { RegXMM, Reg32|LLongMem, 0 } }, 970 983 /* Real MMX instructions. */ 984 {"movd", 2, 0x0f6e, X, CpuMMX, FP|Modrm, { Reg64|LLongMem, RegMMX, 0 } }, 985 {"movd", 2, 0x0f7e, X, CpuMMX, FP|Modrm, { RegMMX, Reg64|LLongMem, 0 } }, 986 {"movd", 2, 0x660f6e,X,CpuSSE2,FP|Modrm, { Reg64|LLongMem, RegXMM, 0 } }, 987 {"movd", 2, 0x660f7e,X,CpuSSE2,FP|Modrm, { RegXMM, Reg64|LLongMem, 0 } }, 988 /* In the 64bit mode the short form mov immediate is redefined to have 989 64bit displacement value. */ 971 990 {"movq", 2, 0x0f6f, X, CpuMMX, FP|Modrm, { RegMMX|LongMem, RegMMX, 0 } }, 972 991 {"movq", 2, 0x0f7f, X, CpuMMX, FP|Modrm, { RegMMX, RegMMX|LongMem, 0 } }, 973 992 {"movq", 2, 0xf30f7e,X,CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, 974 993 {"movq", 2, 0x660fd6,X,CpuSSE2,FP|Modrm, { RegXMM, RegXMM|LLongMem, 0 } }, 975 /* In the 64bit mode the short form mov immediate is redefined to have976 64bit displacement value. */977 994 {"movq", 2, 0x88, X, Cpu64, NoSuf|D|W|Modrm|Size64,{ Reg64, Reg64|AnyMem, 0 } }, 978 995 {"movq", 2, 0xc6, 0, Cpu64, NoSuf|W|Modrm|Size64, { Imm32S, Reg64|WordMem, 0 } }, … … 1138 1155 {"movlps", 2, 0x0f12, X, CpuSSE, FP|Modrm, { LLongMem, RegXMM, 0 } }, 1139 1156 {"movlps", 2, 0x0f13, X, CpuSSE, FP|Modrm, { RegXMM, LLongMem, 0 } }, 1140 {"movmskps", 2, 0x0f50, X, CpuSSE, FP|Modrm, { RegXMM|InvMem, Reg32, 0 } },1157 {"movmskps", 2, 0x0f50, X, CpuSSE, lq_Suf|IgnoreSize|Modrm, { RegXMM|InvMem, Reg32|Reg64, 0 } }, 1141 1158 {"movntps", 2, 0x0f2b, X, CpuSSE, FP|Modrm, { RegXMM, LLongMem, 0 } }, 1142 1159 {"movntq", 2, 0x0fe7, X, CpuSSE, FP|Modrm, { RegMMX, LLongMem, 0 } }, … … 1153 1170 {"pavgw", 2, 0x0fe3, X, CpuSSE, FP|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, 1154 1171 {"pavgw", 2, 0x660fe3, X, CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, 1155 {"pextrw", 3, 0x0fc5, X, CpuSSE, FP|Modrm, { Imm8, RegMMX|InvMem, Reg32} },1156 {"pextrw", 3, 0x660fc5, X, CpuSSE2, FP|Modrm, { Imm8, RegXMM|InvMem, Reg32} },1157 {"pinsrw", 3, 0x0fc4, X, CpuSSE, FP|Modrm, { Imm8, Reg32|ShortMem, RegMMX } },1158 {"pinsrw", 3, 0x660fc4, X, CpuSSE2, FP|Modrm, { Imm8, Reg32|ShortMem, RegXMM } },1172 {"pextrw", 3, 0x0fc5, X, CpuSSE, lq_Suf|IgnoreSize|Modrm, { Imm8, RegMMX|InvMem, Reg32|Reg64 } }, 1173 {"pextrw", 3, 0x660fc5, X, CpuSSE2,lq_Suf|IgnoreSize|Modrm, { Imm8, RegXMM|InvMem, Reg32|Reg64 } }, 1174 {"pinsrw", 3, 0x0fc4, X, CpuSSE, lq_Suf|IgnoreSize|Modrm, { Imm8, Reg32|Reg64|ShortMem, RegMMX } }, 1175 {"pinsrw", 3, 0x660fc4, X, CpuSSE2, lq_Suf|IgnoreSize|Modrm, { Imm8, Reg32|Reg64|ShortMem, RegXMM } }, 1159 1176 {"pmaxsw", 2, 0x0fee, X, CpuSSE, FP|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, 1160 1177 {"pmaxsw", 2, 0x660fee, X, CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, … … 1165 1182 {"pminub", 2, 0x0fda, X, CpuSSE, FP|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, 1166 1183 {"pminub", 2, 0x660fda, X, CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, 1167 {"pmovmskb", 2, 0x0fd7, X, CpuSSE, FP|Modrm, { RegMMX|InvMem, Reg32, 0 } },1168 {"pmovmskb", 2, 0x660fd7, X, CpuSSE2, FP|Modrm, { RegXMM|InvMem, Reg32, 0 } },1184 {"pmovmskb", 2, 0x0fd7, X, CpuSSE, lq_Suf|IgnoreSize|Modrm, { RegMMX|InvMem, Reg32|Reg64, 0 } }, 1185 {"pmovmskb", 2, 0x660fd7, X, CpuSSE2,lq_Suf|IgnoreSize|Modrm, { RegXMM|InvMem, Reg32|Reg64, 0 } }, 1169 1186 {"pmulhuw", 2, 0x0fe4, X, CpuSSE, FP|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, 1170 1187 {"pmulhuw", 2, 0x660fe4, X, CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, … … 1215 1232 {"cmpunordsd",2, 0xf20fc2, 3, CpuSSE2, FP|Modrm|ImmExt,{ RegXMM|LongMem, RegXMM, 0 } }, 1216 1233 {"cmppd", 3, 0x660fc2, X, CpuSSE2, FP|Modrm, { Imm8, RegXMM|LLongMem, RegXMM } }, 1234 /* Intel mode string compare. */ 1235 {"cmpsd", 0, 0xa7, X, 0, NoSuf|Size32|IsString, { 0, 0, 0} }, 1236 {"cmpsd", 2, 0xa7, X, 0, NoSuf|Size32|IsString, { AnyMem, AnyMem|EsSeg, 0} }, 1217 1237 {"cmpsd", 3, 0xf20fc2, X, CpuSSE2, FP|Modrm, { Imm8, RegXMM|LongMem, RegXMM } }, 1218 1238 {"comisd", 2, 0x660f2f, X, CpuSSE2, FP|Modrm, { RegXMM|LongMem, RegXMM, 0 } }, … … 1231 1251 {"movlpd", 2, 0x660f12, X, CpuSSE2, FP|Modrm, { LLongMem, RegXMM, 0 } }, 1232 1252 {"movlpd", 2, 0x660f13, X, CpuSSE2, FP|Modrm, { RegXMM, LLongMem, 0 } }, 1233 {"movmskpd", 2, 0x660f50, X, CpuSSE2, FP|Modrm, { RegXMM|InvMem, Reg32, 0 } },1253 {"movmskpd", 2, 0x660f50, X, CpuSSE2, lq_Suf|IgnoreSize|Modrm, { RegXMM|InvMem, Reg32|Reg64, 0 } }, 1234 1254 {"movntpd", 2, 0x660f2b, X, CpuSSE2, FP|Modrm, { RegXMM, LLongMem, 0 } }, 1255 /* Intel mode string move. */ 1256 {"movsd", 0, 0xa5, X, 0, NoSuf|Size32|IsString, { 0, 0, 0} }, 1257 {"movsd", 2, 0xa5, X, 0, NoSuf|Size32|IsString, { AnyMem, AnyMem|EsSeg, 0} }, 1235 1258 {"movsd", 2, 0xf20f10, X, CpuSSE2, FP|Modrm, { RegXMM|LongMem, RegXMM, 0 } }, 1236 1259 {"movsd", 2, 0xf20f11, X, CpuSSE2, FP|Modrm, { RegXMM, RegXMM|LongMem, 0 } }, -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/i860.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 97 97 The order of opcodes does not affect the disassembler. */ 98 98 99 static struct i860_opcode i860_opcodes[] =99 static const struct i860_opcode i860_opcodes[] = 100 100 { 101 101 /* REG-Format Instructions. */ -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/ia64.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* ia64.h -- Header file for ia64 opcode table 2 Copyright (C) 1998, 1999 David Mosberger-Tang <davidm@hpl.hp.com> 3 4 See the file HP-COPYRIGHT for additional information. */ 2 Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc. 3 Contributed by David Mosberger-Tang <davidm@hpl.hp.com> */ 5 4 6 5 #ifndef opcode_ia64_h … … 9 8 #include <sys/types.h> 10 9 11 #include <bfd.h>10 #include "bfd.h" 12 11 13 12 … … 40 39 41 40 /* Changes to this enumeration must be propagated to the operand table in 42 bfd/cpu-ia64-opc.c 43 */ 41 bfd/cpu-ia64-opc.c 42 */ 44 43 enum ia64_opnd 45 44 { … … 47 46 48 47 /* constants */ 48 IA64_OPND_AR_CSD, /* application register csd (ar.csd) */ 49 49 IA64_OPND_AR_CCV, /* application register ccv (ar.ccv) */ 50 50 IA64_OPND_AR_PFS, /* application register pfs (ar.pfs) */ … … 134 134 IA64_OPND_TGT25c, /* signed 25-bit (ip + 16*bits 13-32, 36) */ 135 135 IA64_OPND_TGT64, /* 64-bit (ip + 16*bits 13-32, 36, 2-40(L)) */ 136 IA64_OPND_LDXMOV, /* any symbol, generates R_IA64_LDXMOV. */ 136 137 137 138 IA64_OPND_COUNT /* # of operand types (MUST BE LAST!) */ … … 288 289 short ent_index; 289 290 290 /* Opcode dependencies. */ 291 /* Opcode dependencies. */ 291 292 const struct ia64_opcode_dependency *dependencies; 292 293 }; -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/m68hc11.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* m68hc11.h -- Header file for Motorola 68HC11 & 68HC12 opcode table 2 Copyright 1999, 2000 Free Software Foundation, Inc.3 Written by Stephane Carrez (stcarrez@ worldnet.fr)2 Copyright 1999, 2000, 2002, 2003 Free Software Foundation, Inc. 3 Written by Stephane Carrez (stcarrez@nerim.fr) 4 4 5 5 This file is part of GDB, GAS, and the GNU binutils. … … 192 192 #define M6811_SPIF 0x80 /* SPI Transfer Complete flag */ 193 193 #define M6811_WCOL 0x40 /* Write Collision */ 194 #define M6811_MODF 0x 20 /* Mode Fault */194 #define M6811_MODF 0x10 /* Mode Fault */ 195 195 196 196 /* Flags of the ADCTL register. */ … … 213 213 #define M6811_OC1M7 0x80 /* Output Compare 7 */ 214 214 #define M6811_OC1M6 0x40 /* 6 */ 215 #define M6811_OC1M5 0x 40 /* 5 */216 #define M6811_OC1M4 0x 40 /* 4 */215 #define M6811_OC1M5 0x20 /* 5 */ 216 #define M6811_OC1M4 0x10 /* 4 */ 217 217 #define M6811_OC1M3 0x08 /* 3 */ 218 218 … … 342 342 #define M6812_OP_D_IDX 0x1000 /* Indirect indexed: [D,r] */ 343 343 #define M6812_OP_D_IDX_2 0x2000 /* [N,r] N:16-bits */ 344 #define M6811_OP_MASK 0x0FFFF 344 #define M6812_OP_PAGE 0x4000 /* Page number */ 345 #define M6811_OP_MASK 0x07FFF 346 #define M6811_OP_BRANCH 0x00008000 /* Branch, jsr, call */ 345 347 #define M6811_OP_BITMASK 0x00010000 /* Bitmask: #<val-8> */ 346 348 #define M6811_OP_JUMP_REL 0x00020000 /* Pc-Relative: <val-8> */ … … 377 379 #define M6811_OP_LOW_ADDR 0x02000000 378 380 381 #define M68HC12_BANK_VIRT 0x010000 382 #define M68HC12_BANK_MASK 0x00003fff 383 #define M68HC12_BANK_BASE 0x00008000 384 #define M68HC12_BANK_SHIFT 14 385 #define M68HC12_BANK_PAGE_MASK 0x0ff 386 387 379 388 /* CPU identification. */ 380 389 #define cpu6811 0x01 381 390 #define cpu6812 0x02 391 #define cpu6812s 0x04 382 392 383 393 /* The opcode table is an array of struct m68hc11_opcode. */ … … 416 426 417 427 #endif /* _OPCODE_M68HC11_H */ 418 -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/m88k.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 /* Table of opcodes for the motorola88k family.2 Copyright 1989, 1990, 1991, 1993 Free Software Foundation, Inc.1 /* Table of opcodes for the Motorola M88k family. 2 Copyright 1989, 1990, 1991, 1993, 2001 Free Software Foundation, Inc. 3 3 4 4 This file is part of GDB and GAS. … … 35 35 * are initialized by init_disasm(). 36 36 * 37 * Structure Format38 *39 * struct INSTAB {40 * UPINT opcode;41 * char *mnemonic;42 * struct OPSPEC op1,op2,op3;43 * struct SIM_FLAGS flgs;44 * struct INSTAB *next;45 * }46 *47 * struct OPSPEC {48 * UPINT offset:5;49 * UPINT width:6;50 * UPINT type:5;51 * }52 *53 37 * Revision History 54 38 * … … 62 46 #include <stdio.h> 63 47 64 65 /* 66 * This file contains the structures and constants needed to build the M88000 67 * simulator. It is the main include file, containing all the 68 * structures, macros and definitions except for the floating point 69 * instruction set. 70 */ 71 72 /* 73 * The following flag informs the Simulator as to what type of byte ordering 74 * will be used. For instance, a BOFLAG = 1 indicates a DEC VAX and IBM type 75 * of ordering shall be used. 76 */ 77 78 /* # define BOFLAG 1 */ /* BYTE ORDERING FLAG */ 79 80 /* define the number of bits in the primary opcode field of the instruction, 81 * the destination field, the source 1 and source 2 fields. 82 */ 83 # define OP 8 /* size of opcode field */ 84 # define DEST 6 /* size of destination */ 85 # define SOURCE1 6 /* size of source1 */ 86 # define SOURCE2 6 /* size of source2 */ 87 88 # define REGs 32 /* number of registers */ 89 90 # define WORD long 91 # define FLAG unsigned 92 # define STATE short 93 94 # define TRUE 1 95 # define FALSE 0 96 97 # define READ 0 98 # define WRITE 1 48 /* Define the number of bits in the primary opcode field of the instruction, 49 the destination field, the source 1 and source 2 fields. */ 50 51 /* Size of opcode field. */ 52 #define OP 8 53 54 /* Size of destination. */ 55 #define DEST 6 56 57 /* Size of source1. */ 58 #define SOURCE1 6 59 60 /* Size of source2. */ 61 #define SOURCE2 6 62 63 /* Number of registers. */ 64 #define REGs 32 65 66 /* Type definitions. */ 67 68 typedef unsigned int UINT; 69 #define WORD long 70 #define FLAG unsigned 71 #define STATE short 99 72 100 73 /* The next four equates define the priorities that the various classes 101 74 * of instructions have regarding writing results back into registers and 102 * signalling exceptions. 103 */ 75 * signalling exceptions. */ 76 104 77 /* PMEM is also defined in <sys/param.h> on Delta 88's. Sigh! */ 105 78 #undef PMEM 106 79 107 # define PINT 0 /* Integer Priority */ 108 # define PFLT 1 /* Floating Point Priority */ 109 # define PMEM 2 /* Memory Priority */ 110 # define NA 3 /* Not Applicable, instruction doesnt write to regs */ 111 # define HIPRI 3 /* highest of these priorities */ 80 /* Integer priority. */ 81 #define PINT 0 82 83 /* Floating point priority. */ 84 #define PFLT 1 85 86 /* Memory priority. */ 87 #define PMEM 2 88 89 /* Not applicable, instruction doesn't write to regs. */ 90 #define NA 3 91 92 /* Highest of these priorities. */ 93 #define HIPRI 3 112 94 113 95 /* The instruction registers are an artificial mechanism to speed up … … 123 105 */ 124 106 125 struct IR_FIELDS { 126 unsigned op:OP, 127 dest: DEST, 128 src1: SOURCE1, 129 src2: SOURCE2; 130 int ltncy, 131 extime, 132 wb_pri; /* writeback priority */ 133 unsigned imm_flags:2,/* immediate size */ 134 rs1_used:1, /* register source 1 used */ 135 rs2_used:1, /* register source 2 used */ 136 rsd_used:1, /* register source/dest. used */ 137 c_flag:1, /* complement */ 138 u_flag:1, /* upper half word */ 139 n_flag:1, /* execute next */ 140 wb_flag:1, /* uses writeback slot */ 141 dest_64:1, /* dest size */ 142 s1_64:1, /* source 1 size */ 143 s2_64:1, /* source 2 size */ 144 scale_flag:1, /* scaled register */ 145 brk_flg:1; 146 }; 147 148 struct mem_segs { 149 struct mem_wrd *seg; /* pointer (returned by calloc) to segment */ 150 unsigned long baseaddr; /* base load address from file headers */ 151 unsigned long endaddr; /* Ending address of segment */ 152 int flags; /* segment control flags (none defined 12/5/86) */ 107 struct IR_FIELDS 108 { 109 unsigned op:OP, 110 dest: DEST, 111 src1: SOURCE1, 112 src2: SOURCE2; 113 int ltncy, 114 extime, 115 /* Writeback priority. */ 116 wb_pri; 117 /* Immediate size. */ 118 unsigned imm_flags:2, 119 /* Register source 1 used. */ 120 rs1_used:1, 121 /* Register source 2 used. */ 122 rs2_used:1, 123 /* Register source/dest. used. */ 124 rsd_used:1, 125 /* Complement. */ 126 c_flag:1, 127 /* Upper half word. */ 128 u_flag:1, 129 /* Execute next. */ 130 n_flag:1, 131 /* Uses writeback slot. */ 132 wb_flag:1, 133 /* Dest size. */ 134 dest_64:1, 135 /* Source 1 size. */ 136 s1_64:1, 137 /* Source 2 size. */ 138 s2_64:1, 139 scale_flag:1, 140 /* Scaled register. */ 141 brk_flg:1; 142 }; 143 144 struct mem_segs 145 { 146 /* Pointer (returned by calloc) to segment. */ 147 struct mem_wrd *seg; 148 149 /* Base load address from file headers. */ 150 unsigned long baseaddr; 151 152 /* Ending address of segment. */ 153 unsigned long endaddr; 154 155 /* Segment control flags (none defined). */ 156 int flags; 153 157 }; 154 158 … … 156 160 #define MEMSEGSIZE (sizeof(struct mem_segs))/* size of mem_segs structure */ 157 161 158 162 #if 0 159 163 #define BRK_RD (0x01) /* break on memory read */ 160 164 #define BRK_WR (0x02) /* break on memory write */ 161 165 #define BRK_EXEC (0x04) /* break on execution */ 162 166 #define BRK_CNT (0x08) /* break on terminal count */ 163 164 165 struct mem_wrd { 166 struct IR_FIELDS opcode; /* simulator instruction break down */ 167 union { 168 unsigned long l; /* memory element break down */ 169 unsigned short s[2]; 170 unsigned char c[4]; 171 } mem; 172 }; 173 174 #define MEMWRDSIZE (sizeof(struct mem_wrd)) /* size of each 32 bit memory model */ 175 176 /* External declarations */ 177 178 extern struct mem_segs memory[]; 179 extern struct PROCESSOR m78000; 180 181 struct PROCESSOR { 182 unsigned WORD 183 ip, /* execute instruction pointer */ 184 vbr, /* vector base register */ 185 psr; /* processor status register */ 186 187 WORD S1bus, /* source 1 */ 188 S2bus, /* source 2 */ 189 Dbus, /* destination */ 190 DAbus, /* data address bus */ 191 ALU, 192 Regs[REGs], /* data registers */ 193 time_left[REGs], /* max clocks before reg is available */ 194 wb_pri[REGs], /* writeback priority of reg */ 195 SFU0_regs[REGs], /* integer unit control regs */ 196 SFU1_regs[REGs], /* floating point control regs */ 197 Scoreboard[REGs], 198 Vbr; 199 unsigned WORD scoreboard, 200 Psw, 201 Tpsw; 202 FLAG jump_pending:1; /* waiting for a jump instr. */ 203 }; 204 205 # define i26bit 1 /* size of immediate field */ 206 # define i16bit 2 207 # define i10bit 3 208 209 /* Definitions for fields in psr */ 210 211 # define mode 31 212 # define rbo 30 213 # define ser 29 214 # define carry 28 215 # define sf7m 11 216 # define sf6m 10 217 # define sf5m 9 218 # define sf4m 8 219 # define sf3m 7 220 # define sf2m 6 221 # define sf1m 5 222 # define mam 4 223 # define inm 3 224 # define exm 2 225 # define trm 1 226 # define ovfm 0 227 228 #define MODEMASK (1<<(mode-1)) 229 # define SILENT 0 /* simulate without output to crt */ 230 # define VERBOSE 1 /* simulate in verbose mode */ 231 # define PR_INSTR 2 /* only print instructions */ 232 233 # define RESET 16 /* reset phase */ 234 235 # define PHASE1 0 /* data path phases */ 236 # define PHASE2 1 237 238 /* the 1 clock operations */ 239 240 # define ADDU 1 241 # define ADDC 2 242 # define ADDUC 3 243 # define ADD 4 244 245 # define SUBU ADD+1 246 # define SUBB ADD+2 247 # define SUBUB ADD+3 248 # define SUB ADD+4 249 250 # define AND_ ADD+5 251 # define OR ADD+6 252 # define XOR ADD+7 253 # define CMP ADD+8 254 255 /* the LOADS */ 256 257 # define LDAB CMP+1 258 # define LDAH CMP+2 259 # define LDA CMP+3 260 # define LDAD CMP+4 261 262 # define LDB LDAD+1 263 # define LDH LDAD+2 264 # define LD LDAD+3 265 # define LDD LDAD+4 266 # define LDBU LDAD+5 267 # define LDHU LDAD+6 268 269 /* the STORES */ 270 271 # define STB LDHU+1 272 # define STH LDHU+2 273 # define ST LDHU+3 274 # define STD LDHU+4 275 276 /* the exchange */ 277 278 # define XMEMBU LDHU+5 279 # define XMEM LDHU+6 280 281 /* the branches */ 282 # define JSR STD+1 283 # define BSR STD+2 284 # define BR STD+3 285 # define JMP STD+4 286 # define BB1 STD+5 287 # define BB0 STD+6 288 # define RTN STD+7 289 # define BCND STD+8 290 291 /* the TRAPS */ 292 # define TB1 BCND+1 293 # define TB0 BCND+2 294 # define TCND BCND+3 295 # define RTE BCND+4 296 # define TBND BCND+5 297 298 /* the MISC instructions */ 299 # define MUL TBND + 1 300 # define DIV MUL +2 301 # define DIVU MUL +3 302 # define MASK MUL +4 303 # define FF0 MUL +5 304 # define FF1 MUL +6 305 # define CLR MUL +7 306 # define SET MUL +8 307 # define EXT MUL +9 308 # define EXTU MUL +10 309 # define MAK MUL +11 310 # define ROT MUL +12 311 312 /* control register manipulations */ 313 314 # define LDCR ROT +1 315 # define STCR ROT +2 316 # define XCR ROT +3 317 318 # define FLDCR ROT +4 319 # define FSTCR ROT +5 320 # define FXCR ROT +6 321 322 323 # define NOP XCR +1 324 325 /* floating point instructions */ 326 327 # define FADD NOP +1 328 # define FSUB NOP +2 329 # define FMUL NOP +3 330 # define FDIV NOP +4 331 # define FSQRT NOP +5 332 # define FCMP NOP +6 333 # define FIP NOP +7 334 # define FLT NOP +8 335 # define INT NOP +9 336 # define NINT NOP +10 337 # define TRNC NOP +11 338 # define FLDC NOP +12 339 # define FSTC NOP +13 340 # define FXC NOP +14 341 342 # define UEXT(src,off,wid) ((((unsigned int)(src))>>(off)) & ((1<<(wid)) - 1)) 343 # define SEXT(src,off,wid) (((((int)(src))<<(32-((off)+(wid)))) >>(32-(wid))) ) 344 # define MAKE(src,off,wid) \ 345 ((((unsigned int)(src)) & ((1<<(wid)) - 1)) << (off)) 346 347 # define opword(n) (unsigned long) (memaddr->mem.l) 348 349 /* Constants and Masks */ 167 #endif 168 169 struct mem_wrd 170 { 171 /* Simulator instruction break down. */ 172 struct IR_FIELDS opcode; 173 union { 174 /* Memory element break down. */ 175 unsigned long l; 176 unsigned short s[2]; 177 unsigned char c[4]; 178 } mem; 179 }; 180 181 /* Size of each 32 bit memory model. */ 182 #define MEMWRDSIZE (sizeof (struct mem_wrd)) 183 184 extern struct mem_segs memory[]; 185 extern struct PROCESSOR m78000; 186 187 struct PROCESSOR 188 { 189 unsigned WORD 190 /* Execute instruction pointer. */ 191 ip, 192 /* Vector base register. */ 193 vbr, 194 /* Processor status register. */ 195 psr; 196 197 /* Source 1. */ 198 WORD S1bus, 199 /* Source 2. */ 200 S2bus, 201 /* Destination. */ 202 Dbus, 203 /* Data address bus. */ 204 DAbus, 205 ALU, 206 /* Data registers. */ 207 Regs[REGs], 208 /* Max clocks before reg is available. */ 209 time_left[REGs], 210 /* Writeback priority of reg. */ 211 wb_pri[REGs], 212 /* Integer unit control regs. */ 213 SFU0_regs[REGs], 214 /* Floating point control regs. */ 215 SFU1_regs[REGs], 216 Scoreboard[REGs], 217 Vbr; 218 unsigned WORD scoreboard, 219 Psw, 220 Tpsw; 221 /* Waiting for a jump instruction. */ 222 FLAG jump_pending:1; 223 }; 224 225 /* Size of immediate field. */ 226 227 #define i26bit 1 228 #define i16bit 2 229 #define i10bit 3 230 231 /* Definitions for fields in psr. */ 232 233 #define mode 31 234 #define rbo 30 235 #define ser 29 236 #define carry 28 237 #define sf7m 11 238 #define sf6m 10 239 #define sf5m 9 240 #define sf4m 8 241 #define sf3m 7 242 #define sf2m 6 243 #define sf1m 5 244 #define mam 4 245 #define inm 3 246 #define exm 2 247 #define trm 1 248 #define ovfm 0 249 250 /* The 1 clock operations. */ 251 252 #define ADDU 1 253 #define ADDC 2 254 #define ADDUC 3 255 #define ADD 4 256 257 #define SUBU ADD+1 258 #define SUBB ADD+2 259 #define SUBUB ADD+3 260 #define SUB ADD+4 261 262 #define AND_ ADD+5 263 #define OR ADD+6 264 #define XOR ADD+7 265 #define CMP ADD+8 266 267 /* Loads. */ 268 269 #define LDAB CMP+1 270 #define LDAH CMP+2 271 #define LDA CMP+3 272 #define LDAD CMP+4 273 274 #define LDB LDAD+1 275 #define LDH LDAD+2 276 #define LD LDAD+3 277 #define LDD LDAD+4 278 #define LDBU LDAD+5 279 #define LDHU LDAD+6 280 281 /* Stores. */ 282 283 #define STB LDHU+1 284 #define STH LDHU+2 285 #define ST LDHU+3 286 #define STD LDHU+4 287 288 /* Exchange. */ 289 290 #define XMEMBU LDHU+5 291 #define XMEM LDHU+6 292 293 /* Branches. */ 294 295 #define JSR STD+1 296 #define BSR STD+2 297 #define BR STD+3 298 #define JMP STD+4 299 #define BB1 STD+5 300 #define BB0 STD+6 301 #define RTN STD+7 302 #define BCND STD+8 303 304 /* Traps. */ 305 306 #define TB1 BCND+1 307 #define TB0 BCND+2 308 #define TCND BCND+3 309 #define RTE BCND+4 310 #define TBND BCND+5 311 312 /* Misc. */ 313 314 #define MUL TBND + 1 315 #define DIV MUL +2 316 #define DIVU MUL +3 317 #define MASK MUL +4 318 #define FF0 MUL +5 319 #define FF1 MUL +6 320 #define CLR MUL +7 321 #define SET MUL +8 322 #define EXT MUL +9 323 #define EXTU MUL +10 324 #define MAK MUL +11 325 #define ROT MUL +12 326 327 /* Control register manipulations. */ 328 329 #define LDCR ROT +1 330 #define STCR ROT +2 331 #define XCR ROT +3 332 333 #define FLDCR ROT +4 334 #define FSTCR ROT +5 335 #define FXCR ROT +6 336 337 #define NOP XCR +1 338 339 /* Floating point instructions. */ 340 341 #define FADD NOP +1 342 #define FSUB NOP +2 343 #define FMUL NOP +3 344 #define FDIV NOP +4 345 #define FSQRT NOP +5 346 #define FCMP NOP +6 347 #define FIP NOP +7 348 #define FLT NOP +8 349 #define INT NOP +9 350 #define NINT NOP +10 351 #define TRNC NOP +11 352 #define FLDC NOP +12 353 #define FSTC NOP +13 354 #define FXC NOP +14 355 356 #define UEXT(src,off,wid) \ 357 ((((unsigned int)(src)) >> (off)) & ((1 << (wid)) - 1)) 358 359 #define SEXT(src,off,wid) \ 360 (((((int)(src))<<(32 - ((off) + (wid)))) >>(32 - (wid))) ) 361 362 #define MAKE(src,off,wid) \ 363 ((((unsigned int)(src)) & ((1 << (wid)) - 1)) << (off)) 364 365 #define opword(n) (unsigned long) (memaddr->mem.l) 366 367 /* Constants and masks. */ 350 368 351 369 #define SFU0 0x80000000 … … 361 379 #define CTRLMASK 0xfc00f800 362 380 363 /* Operands types */ 364 365 enum operand_type { 381 /* Operands types. */ 382 383 enum operand_type 384 { 366 385 HEX = 1, 367 386 REG = 2, … … 369 388 IND = 3, 370 389 BF = 4, 371 REGSC = 5 /* scaled register */, 372 CRREG = 6 /* control register */, 373 FCRREG = 7 /* floating point control register */, 390 /* Scaled register. */ 391 REGSC = 5, 392 /* Control register. */ 393 CRREG = 6, 394 /* Floating point control register. */ 395 FCRREG = 7, 374 396 PCREL = 8, 375 397 CONDMASK = 9, 376 XREG = 10, /* extended register */ 377 DEC = 11, /* decimal */ 378 }; 379 380 /* Hashing Specification */ 398 /* Extended register. */ 399 XREG = 10, 400 /* Decimal. */ 401 DEC = 11 402 }; 403 404 /* Hashing specification. */ 381 405 382 406 #define HASHVAL 79 383 407 384 /* Type definitions */ 385 386 typedef unsigned int UINT; 387 388 /* Structure templates */ 389 390 #if never 391 typedef struct { 392 unsigned int offset:5; 393 unsigned int width:6; 394 unsigned int type:5; 408 /* Structure templates. */ 409 410 typedef struct 411 { 412 unsigned int offset; 413 unsigned int width; 414 enum operand_type type; 395 415 } OPSPEC; 396 #endif 397 398 typedef struct { 399 unsigned int offset; 400 unsigned int width; 401 enum operand_type type; 402 } OPSPEC; 403 404 struct SIM_FLAGS { 405 int ltncy, /* latency (max number of clocks needed to execute) */ 406 extime, /* execution time (min number of clocks needed to execute) */ 407 wb_pri; /* writeback slot priority */ 408 unsigned op:OP, /* simulator version of opcode */ 409 imm_flags:2, /* 10,16 or 26 bit immediate flags */ 410 rs1_used:1, /* register source 1 used */ 411 rs2_used:1, /* register source 2 used */ 412 rsd_used:1, /* register source/dest used */ 413 c_flag:1, /* complement */ 414 u_flag:1, /* upper half word */ 415 n_flag:1, /* execute next */ 416 wb_flag:1, /* uses writeback slot */ 417 dest_64:1, /* double precision dest */ 418 s1_64:1, /* double precision source 1 */ 419 s2_64:1, /* double precision source 2 */ 420 scale_flag:1; /* register is scaled */ 416 417 struct SIM_FLAGS 418 { 419 int ltncy, /* latency (max number of clocks needed to execute). */ 420 extime, /* execution time (min number of clocks needed to execute). */ 421 wb_pri; /* writeback slot priority. */ 422 unsigned op:OP, /* simulator version of opcode. */ 423 imm_flags:2, /* 10,16 or 26 bit immediate flags. */ 424 rs1_used:1, /* register source 1 used. */ 425 rs2_used:1, /* register source 2 used. */ 426 rsd_used:1, /* register source/dest used. */ 427 c_flag:1, /* complement. */ 428 u_flag:1, /* upper half word. */ 429 n_flag:1, /* execute next. */ 430 wb_flag:1, /* uses writeback slot. */ 431 dest_64:1, /* double precision dest. */ 432 s1_64:1, /* double precision source 1. */ 433 s2_64:1, /* double precision source 2. */ 434 scale_flag:1; /* register is scaled. */ 421 435 }; 422 436 423 437 typedef struct INSTRUCTAB { 424 unsigned int opcode; 425 char *mnemonic; 426 OPSPEC op1,op2,op3; 427 struct SIM_FLAGS flgs; 428 struct INSTRUCTAB *next; 438 unsigned int opcode; 439 char *mnemonic; 440 OPSPEC op1,op2,op3; 441 struct SIM_FLAGS flgs; 429 442 } INSTAB; 430 443 … … 433 446 #define NO_OPERAND {0,0,0} 434 447 435 /* Opcode Mnemonic Op 1 Spec Op 2 Spec Op 3 Spec Simflags Next */ 436 437 static INSTAB instructions[] = { 438 {0xf400c800,"jsr ",{0,5,REG} ,NO_OPERAND ,NO_OPERAND , {2,2,NA,JSR , 0,0,1,0,0,0,0,1,0,0,0,0}, NULL }, 439 {0xf400cc00,"jsr.n ",{0,5,REG} ,NO_OPERAND ,NO_OPERAND , {1,1,NA,JSR , 0,0,1,0,0,0,1,1,0,0,0,0}, NULL }, 440 {0xf400c000,"jmp ",{0,5,REG} ,NO_OPERAND ,NO_OPERAND , {2,2,NA,JMP , 0,0,1,0,0,0,0,1,0,0,0,0}, NULL }, 441 {0xf400c400,"jmp.n ",{0,5,REG} ,NO_OPERAND ,NO_OPERAND , {1,1,NA,JMP , 0,0,1,0,0,0,1,1,0,0,0,0}, NULL }, 442 {0xc8000000,"bsr ",{0,26,PCREL},NO_OPERAND ,NO_OPERAND , {2,2,NA,BSR , i26bit,0,0,0,0,0,0,1,0,0,0,0}, NULL }, 443 {0xcc000000,"bsr.n ",{0,26,PCREL},NO_OPERAND ,NO_OPERAND , {1,1,NA,BSR , i26bit,0,0,0,0,0,1,1,0,0,0,0}, NULL }, 444 {0xc0000000,"br ",{0,26,PCREL},NO_OPERAND ,NO_OPERAND , {2,2,NA,BR , i26bit,0,0,0,0,0,0,1,0,0,0,0}, NULL }, 445 {0xc4000000,"br.n ",{0,26,PCREL},NO_OPERAND ,NO_OPERAND , {1,1,NA,BR , i26bit,0,0,0,0,0,1,1,0,0,0,0}, NULL }, 446 {0xd0000000,"bb0 ",{21,5,HEX} ,{16,5,REG} ,{0,16,PCREL},{2,2,NA,BB0, i16bit,0,1,0,0,0,0,1,0,0,0,0}, NULL }, 447 {0xd4000000,"bb0.n ",{21,5,HEX} ,{16,5,REG} ,{0,16,PCREL},{1,1,NA,BB0, i16bit,0,1,0,0,0,1,1,0,0,0,0}, NULL }, 448 {0xd8000000,"bb1 ",{21,5,HEX},{16,5,REG} ,{0,16,PCREL},{2,2,NA,BB1, i16bit,0,1,0,0,0,0,1,0,0,0,0}, NULL }, 449 {0xdc000000,"bb1.n ",{21,5,HEX},{16,5,REG} ,{0,16,PCREL},{1,1,NA,BB1, i16bit,0,1,0,0,0,1,1,0,0,0,0}, NULL }, 450 {0xf000d000,"tb0 ",{21,5,HEX} ,{16,5,REG} ,{0,10,HEX}, {2,2,NA,TB0 , i10bit,0,1,0,0,0,0,1,0,0,0,0}, NULL }, 451 {0xf000d800,"tb1 ",{21,5,HEX} ,{16,5,REG} ,{0,10,HEX}, {2,2,NA,TB1 , i10bit,0,1,0,0,0,0,1,0,0,0,0}, NULL }, 452 {0xe8000000,"bcnd ",{21,5,CONDMASK},{16,5,REG},{0,16,PCREL},{2,2,NA,BCND, i16bit,0,1,0,0,0,0,1,0,0,0,0}, NULL }, 453 {0xec000000,"bcnd.n ",{21,5,CONDMASK},{16,5,REG},{0,16,PCREL},{1,1,NA,BCND, i16bit,0,1,0,0,0,1,1,0,0,0,0}, NULL }, 454 {0xf000e800,"tcnd ",{21,5,CONDMASK},{16,5,REG},{0,10,HEX}, {2,2,NA,TCND, i10bit,0,1,0,0,0,0,1,0,0,0,0}, NULL }, 455 {0xf8000000,"tbnd ",{16,5,REG} ,{0,16,HEX} ,NO_OPERAND , {2,2,NA,TBND, i10bit,1,0,0,0,0,0,1,0,0,0,0}, NULL }, 456 {0xf400f800,"tbnd ",{16,5,REG} ,{0,5,REG} ,NO_OPERAND , {2,2,NA,TBND, 0,1,1,0,0,0,0,1,0,0,0,0}, NULL }, 457 {0xf400fc00,"rte ",NO_OPERAND ,NO_OPERAND ,NO_OPERAND , {2,2,NA,RTE , 0,0,0,0,0,0,0,1,0,0,0,0}, NULL }, 458 {0x1c000000,"ld.b ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {3,1,PMEM,LDB ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL }, 459 {0xf4001c00,"ld.b ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {3,1,PMEM,LDB , 0,1,1,1,0,0,0,1,0,0,0,0}, NULL }, 460 {0x0c000000,"ld.bu ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {3,1,PMEM,LDBU, i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL }, 461 {0xf4000c00,"ld.bu ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {3,1,PMEM,LDBU ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL }, 462 {0x18000000,"ld.h ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {3,1,PMEM,LDH ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL }, 463 {0xf4001800,"ld.h ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {3,1,PMEM,LDH ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL }, 464 {0xf4001a00,"ld.h ",{21,5,REG} ,{16,5,REG} ,{0,5,REGSC},{3,1,PMEM,LDH ,0,1,1,1,0,0,0,1,0,0,0,1}, NULL }, 465 {0x08000000,"ld.hu ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {3,1,PMEM,LDHU, i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL }, 466 {0xf4000800,"ld.hu ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {3,1,PMEM,LDHU ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL }, 467 {0xf4000a00,"ld.hu ",{21,5,REG} ,{16,5,REG} ,{0,5,REGSC},{3,1,PMEM,LDHU ,0,1,1,1,0,0,0,1,0,0,0,1}, NULL }, 468 {0x14000000,"ld ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {3,1,PMEM,LD ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL }, 469 {0xf4001400,"ld ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {3,1,PMEM,LD ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL }, 470 {0xf4001600,"ld ",{21,5,REG} ,{16,5,REG} ,{0,5,REGSC},{3,1,PMEM,LD ,0,1,1,1,0,0,0,1,0,0,0,1}, NULL }, 471 {0x10000000,"ld.d ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {3,1,PMEM,LDD ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL }, 472 {0xf4001000,"ld.d ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {3,1,PMEM,LDD ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL }, 473 {0xf4001200,"ld.d ",{21,5,REG} ,{16,5,REG} ,{0,5,REGSC},{3,1,PMEM,LDD ,0,1,1,1,0,0,0,1,0,0,0,1}, NULL }, 474 {0xf4001500,"ld.usr ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {3,1,PMEM,LD ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL }, 475 {0xf4001700,"ld.usr ",{21,5,REG} ,{16,5,REG} ,{0,5,REGSC},{3,1,PMEM,LD ,0,1,1,1,0,0,0,1,0,0,0,1}, NULL }, 476 {0x2c000000,"st.b ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {1,1,NA,STB ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL }, 477 {0xf4002c00,"st.b ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,NA,STB ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL }, 478 {0x28000000,"st.h ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {1,1,NA,STH ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL }, 479 {0xf4002800,"st.h ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,NA,STH ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL }, 480 {0xf4002a00,"st.h ",{21,5,REG} ,{16,5,REG} ,{0,5,REGSC},{1,1,NA,STH ,0,1,1,1,0,0,0,1,0,0,0,1}, NULL }, 481 {0x24000000,"st ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {1,1,NA,ST ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL }, 482 {0xf4002400,"st ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,NA,ST ,0,1,1,1,0,0,0,1,0,0,0,0} ,NULL }, 483 {0xf4002600,"st ",{21,5,REG} ,{16,5,REG} ,{0,5,REGSC},{1,1,NA,ST ,0,1,1,1,0,0,0,1,0,0,0,1} ,NULL }, 484 {0x20000000,"st.d ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {1,1,NA,STD ,i16bit,0,1,0,0,0,0,1,0,0,0,0} ,NULL }, 485 {0xf4002000,"st.d ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,NA,STD ,0,1,1,1,0,0,0,1,0,0,0,0} ,NULL }, 486 {0xf4002200,"st.d ",{21,5,REG} ,{16,5,REG} ,{0,5,REGSC},{1,1,NA,STD ,0,1,1,1,0,0,0,1,0,0,0,1} ,NULL }, 487 {0xf4002500,"st.usr ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,NA,ST ,0,1,1,1,0,0,0,1,0,0,0,0} ,NULL }, 488 {0xf4002700,"st.usr ",{21,5,REG} ,{16,5,REG} ,{0,5,REGSC},{1,1,NA,ST ,0,1,1,1,0,0,0,1,0,0,0,1} ,NULL }, 489 /* m88100 only: 490 {0x00000000,"xmem.bu ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {3,1,PMEM,XMEMBU ,i16bit,1,1,1,0,0,0,1,0,0,0,0} ,NULL }, 491 */ 492 {0xf4000000,"xmem.bu ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {3,1,PMEM,XMEM ,0,1,1,1,0,0,0,1,0,0,0,0} ,NULL }, 493 /* m88100 only: 494 {0x04000000,"xmem ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {3,1,PMEM,XMEM ,i16bit,1,1,1,0,0,0,1,0,0,0,0} ,NULL }, 495 */ 496 {0xf4000400,"xmem ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {3,1,PMEM,XMEM ,0,1,1,1,0,0,0,1,0,0,0,0} ,NULL }, 497 {0xf4000600,"xmem ",{21,5,REG} ,{16,5,REG} ,{0,5,REGSC},{3,1,PMEM,XMEM ,0,1,1,1,0,0,0,1,0,0,0,1} ,NULL }, 498 {0xf4000500,"xmem.usr ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {3,1,PMEM,XMEM ,0,1,1,1,0,0,0,1,0,0,0,0} ,NULL }, 499 {0xf4000700,"xmem.usr ",{21,5,REG} ,{16,5,REG} ,{0,5,REGSC},{3,1,PMEM,XMEM ,0,1,1,1,0,0,0,1,0,0,0,1} ,NULL }, 500 /* m88100 only: 501 {0xf4003e00,"lda.b ",{21,5,REG} ,{16,5,REG} ,{0,5,REGSC},{1,1,PINT,LDAH, 0,1,1,1,0,0,0,0,0,0,0,1} ,NULL }, 502 */ 503 {0xf4003e00,"lda.x ",{21,5,REG} ,{16,5,REG} ,{0,5,REGSC},{1,1,PINT,LDAH, 0,1,1,1,0,0,0,0,0,0,0,1} ,NULL }, 504 {0xf4003a00,"lda.h ",{21,5,REG} ,{16,5,REG} ,{0,5,REGSC},{1,1,PINT,LDAH, 0,1,1,1,0,0,0,0,0,0,0,1} ,NULL }, 505 {0xf4003600,"lda ",{21,5,REG} ,{16,5,REG} ,{0,5,REGSC},{1,1,PINT,LDA , 0,1,1,1,0,0,0,0,0,0,0,1} ,NULL }, 506 {0xf4003200,"lda.d ",{21,5,REG} ,{16,5,REG} ,{0,5,REGSC},{1,1,PINT,LDAD, 0,1,1,1,0,0,0,0,0,0,0,1} ,NULL }, 507 508 {0x80004000,"ldcr ",{21,5,REG} ,{5,6,CRREG} ,NO_OPERAND ,{1,1,PINT,LDCR, 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 509 {0x80008000,"stcr ",{16,5,REG} ,{5,6,CRREG} ,NO_OPERAND ,{1,1,PINT,STCR, 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 510 {0x8000c000,"xcr ",{21,5,REG} ,{16,5,REG} ,{5,6,CRREG},{1,1,PINT,XCR, 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 511 512 {0xf4006000,"addu ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,ADDU, 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 513 {0xf4006200,"addu.ci ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,ADDU, 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 514 {0xf4006100,"addu.co ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,ADDU, 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 515 {0xf4006300,"addu.cio ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,ADDU, 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 516 {0xf4006400,"subu ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,SUBU, 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 517 {0xf4006600,"subu.ci ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,SUBU, 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 518 {0xf4006500,"subu.co ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,SUBU, 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 519 {0xf4006700,"subu.cio ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,SUBU, 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 520 {0xf4006800,"divu ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {32,32,PINT,DIVU, 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 521 {0xf4006900,"divu.d ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,}, NULL }, 522 {0xf4006e00,"muls ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,}, NULL }, 523 {0xf4006c00,"mulu ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,4,PINT,MUL, 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 524 {0xf4007000,"add ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,ADD , 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 525 {0xf4007200,"add.ci ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,ADD , 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 526 {0xf4007100,"add.co ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,ADD , 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 527 {0xf4007300,"add.cio ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,ADD , 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 528 {0xf4007400,"sub ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,SUB , 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 529 {0xf4007600,"sub.ci ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,SUB , 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 530 {0xf4007500,"sub.co ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,SUB , 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 531 {0xf4007700,"sub.cio ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,SUB , 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 532 {0xf4007800,"divs ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {32,32,PINT,DIV , 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 533 {0xf4007c00,"cmp ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,CMP, 0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 534 535 {0x60000000,"addu ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {1,1,PINT,ADDU, i16bit,1,0,1,0,0,0,0,0,0,0,0} ,NULL }, 536 {0x64000000,"subu ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {1,1,PINT,SUBU, i16bit,1,0,1,0,0,0,0,0,0,0,0} ,NULL }, 537 538 {0x68000000,"divu ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {32,32,PINT,DIVU, i16bit,1,0,1,0,0,0,0,0,0,0,0} ,NULL }, 539 {0x6c000000,"mulu ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {4,1,PINT,MUL, i16bit,1,0,1,0,0,0,0,0,0,0,0} ,NULL }, 540 {0x70000000,"add ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {1,1,PINT,ADD, i16bit,1,0,1,0,0,0,0,0,0,0,0} ,NULL }, 541 {0x74000000,"sub ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {1,1,PINT,SUB, i16bit,1,0,1,0,0,0,0,0,0,0,0} ,NULL }, 542 {0x78000000,"divs ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {32,32,PINT,DIV, i16bit,1,0,1,0,0,0,0,0,0,0,0} ,NULL }, 543 {0x7c000000,"cmp ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {1,1,PINT,CMP, i16bit,1,0,1,0,0,0,0,0,0,0,0} ,NULL }, 544 545 {0xf4004000,"and ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,AND_ ,0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 546 {0xf4004400,"and.c ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,AND_ ,0,1,1,1,1,0,0,0,0,0,0,0} ,NULL }, 547 {0xf4005800,"or ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,OR ,0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 548 {0xf4005c00,"or.c ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,OR ,0,1,1,1,1,0,0,0,0,0,0,0} ,NULL }, 549 {0xf4005000,"xor ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,XOR ,0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 550 {0xf4005400,"xor.c ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,XOR ,0,1,1,1,1,0,0,0,0,0,0,0} ,NULL }, 551 {0x40000000,"and ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {1,1,PINT,AND_ ,i16bit,1,0,1,0,0,0,0,0,0,0,0} ,NULL }, 552 {0x44000000,"and.u ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {1,1,PINT,AND_ ,i16bit,1,0,1,0,1,0,0,0,0,0,0} ,NULL }, 553 {0x58000000,"or ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {1,1,PINT,OR ,i16bit,1,0,1,0,0,0,0,0,0,0,0} ,NULL }, 554 {0x5c000000,"or.u ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {1,1,PINT,OR ,i16bit,1,0,1,0,1,0,0,0,0,0,0} ,NULL }, 555 {0x50000000,"xor ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {1,1,PINT,XOR ,i16bit,1,0,1,0,0,0,0,0,0,0,0} ,NULL }, 556 {0x54000000,"xor.u ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {1,1,PINT,XOR ,i16bit,1,0,1,0,1,0,0,0,0,0,0} ,NULL }, 557 {0x48000000,"mask ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {1,1,PINT,MASK ,i16bit,1,0,1,0,0,0,0,0,0,0,0} ,NULL }, 558 {0x4c000000,"mask.u ",{21,5,REG} ,{16,5,REG} ,{0,16,HEX}, {1,1,PINT,MASK ,i16bit,1,0,1,0,1,0,0,0,0,0,0} ,NULL }, 559 {0xf400ec00,"ff0 ",{21,5,REG} ,{0,5,REG} ,NO_OPERAND , {1,1,PINT,FF0 ,0,0,1,1,0,0,0,0,0,0,0,0} ,NULL }, 560 {0xf400e800,"ff1 ",{21,5,REG} ,{0,5,REG} ,NO_OPERAND , {1,1,PINT,FF1 ,0,0,1,1,0,0,0,0,0,0,0,0} ,NULL }, 561 {0xf0008000,"clr ",{21,5,REG} ,{16,5,REG} ,{0,10,BF} , {1,1,PINT,CLR ,i10bit,1,0,1,0,0,0,0,0,0,0,0} ,NULL }, 562 {0xf0008800,"set ",{21,5,REG} ,{16,5,REG} ,{0,10,BF} , {1,1,PINT,SET ,i10bit,1,0,1,0,0,0,0,0,0,0,0} ,NULL }, 563 {0xf0009000,"ext ",{21,5,REG} ,{16,5,REG} ,{0,10,BF} , {1,1,PINT,EXT ,i10bit,1,0,1,0,0,0,0,0,0,0,0} ,NULL }, 564 {0xf0009800,"extu ",{21,5,REG} ,{16,5,REG} ,{0,10,BF} , {1,1,PINT,EXTU ,i10bit,1,0,1,0,0,0,0,0,0,0,0} ,NULL }, 565 {0xf000a000,"mak ",{21,5,REG} ,{16,5,REG} ,{0,10,BF} , {1,1,PINT,MAK ,i10bit,1,0,1,0,0,0,0,0,0,0,0} ,NULL }, 566 {0xf000a800,"rot ",{21,5,REG} ,{16,5,REG} ,{0,10,BF} , {1,1,PINT,ROT ,i10bit,1,0,1,0,0,0,0,0,0,0,0} ,NULL }, 567 {0xf4008000,"clr ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,CLR ,0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 568 {0xf4008800,"set ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,SET ,0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 569 {0xf4009000,"ext ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,EXT ,0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 570 {0xf4009800,"extu ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,EXTU ,0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 571 {0xf400a000,"mak ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,MAK ,0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 572 {0xf400a800,"rot ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {1,1,PINT,ROT ,0,1,1,1,0,0,0,0,0,0,0,0} ,NULL }, 573 574 {0x84002800,"fadd.sss ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {5,1,PFLT,FADD ,0,1,1,1,0,0,0,1,0,0,0,0} ,NULL }, 575 {0x84002880,"fadd.ssd ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {6,2,PFLT,FADD ,0,1,1,1,0,0,0,1,0,0,1,0} ,NULL }, 576 {0x84002a00,"fadd.sds ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {6,2,PFLT,FADD ,0,1,1,1,0,0,0,1,0,1,0,0} ,NULL }, 577 {0x84002a80,"fadd.sdd ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {6,2,PFLT,FADD ,0,1,1,1,0,0,0,1,0,1,1,0} ,NULL }, 578 {0x84002820,"fadd.dss ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {6,2,PFLT,FADD ,0,1,1,1,0,0,0,1,1,0,0,0} ,NULL }, 579 {0x840028a0,"fadd.dsd ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {6,2,PFLT,FADD ,0,1,1,1,0,0,0,1,1,0,1,0} ,NULL }, 580 {0x84002a20,"fadd.dds ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {6,2,PFLT,FADD ,0,1,1,1,0,0,0,1,1,1,0,0} ,NULL }, 581 {0x84002aa0,"fadd.ddd ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {6,2,PFLT,FADD ,0,1,1,1,0,0,0,1,1,1,1,0} ,NULL }, 582 {0x84003000,"fsub.sss ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {5,1,PFLT,FSUB ,0,1,1,1,0,0,0,1,0,0,0,0} ,NULL }, 583 {0x84003080,"fsub.ssd ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {6,2,PFLT,FSUB ,0,1,1,1,0,0,0,1,0,0,1,0} ,NULL }, 584 {0x84003200,"fsub.sds ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {6,2,PFLT,FSUB ,0,1,1,1,0,0,0,1,0,1,0,0} ,NULL }, 585 {0x84003280,"fsub.sdd ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {6,2,PFLT,FSUB ,0,1,1,1,0,0,0,1,0,1,1,0} ,NULL }, 586 {0x84003020,"fsub.dss ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {6,2,PFLT,FSUB ,0,1,1,1,0,0,0,1,1,0,0,0} ,NULL }, 587 {0x840030a0,"fsub.dsd ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {6,2,PFLT,FSUB ,0,1,1,1,0,0,0,1,1,0,1,0} ,NULL }, 588 {0x84003220,"fsub.dds ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {6,2,PFLT,FSUB ,0,1,1,1,0,0,0,1,1,1,0,0} ,NULL }, 589 {0x840032a0,"fsub.ddd ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {6,2,PFLT,FSUB ,0,1,1,1,0,0,0,1,1,1,1,0} ,NULL }, 590 {0x84000000,"fmul.sss ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {6,1,PFLT,FMUL ,0,1,1,1,0,0,0,1,0,0,0,0} ,NULL }, 591 {0x84000080,"fmul.ssd ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {9,2,PFLT,FMUL ,0,1,1,1,0,0,0,1,0,0,1,0} ,NULL }, 592 {0x84000200,"fmul.sds ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {9,2,PFLT,FMUL ,0,1,1,1,0,0,0,1,0,1,0,0} ,NULL }, 593 {0x84000280,"fmul.sdd ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {9,2,PFLT,FMUL ,0,1,1,1,0,0,0,1,0,1,1,0} ,NULL }, 594 {0x84000020,"fmul.dss ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {9,2,PFLT,FMUL ,0,1,1,1,0,0,0,1,1,0,0,0} ,NULL }, 595 {0x840000a0,"fmul.dsd ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {9,2,PFLT,FMUL ,0,1,1,1,0,0,0,1,1,0,1,0} ,NULL }, 596 {0x84000220,"fmul.dds ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {9,2,PFLT,FMUL ,0,1,1,1,0,0,0,1,1,1,0,0} ,NULL }, 597 {0x840002a0,"fmul.ddd ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {9,2,PFLT,FMUL ,0,1,1,1,0,0,0,1,1,1,1,0} ,NULL }, 598 {0x84007000,"fdiv.sss ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {30,30,PFLT,FDIV ,0,1,1,1,0,0,0,1,0,0,0,0} ,NULL }, 599 {0x84007080,"fdiv.ssd ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {60,60,PFLT,FDIV ,0,1,1,1,0,0,0,1,0,0,1,0} ,NULL }, 600 {0x84007200,"fdiv.sds ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {60,60,PFLT,FDIV ,0,1,1,1,0,0,0,1,0,1,0,0} ,NULL }, 601 {0x84007280,"fdiv.sdd ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {60,60,PFLT,FDIV ,0,1,1,1,0,0,0,1,0,1,1,0} ,NULL }, 602 {0x84007020,"fdiv.dss ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {60,60,PFLT,FDIV ,0,1,1,1,0,0,0,1,1,0,0,0} ,NULL }, 603 {0x840070a0,"fdiv.dsd ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {60,60,PFLT,FDIV ,0,1,1,1,0,0,0,1,1,0,1,0} ,NULL }, 604 {0x84007220,"fdiv.dds ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {60,60,PFLT,FDIV ,0,1,1,1,0,0,0,1,1,1,0,0} ,NULL }, 605 {0x840072a0,"fdiv.ddd ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {60,60,PFLT,FDIV ,0,1,1,1,0,0,0,1,1,1,1,0} ,NULL }, 606 {0x84007800,"fsqrt.ss ",{21,5,REG} ,{0,5,REG} ,NO_OPERAND , {5,1,PFLT,FLT ,0,0,1,1,0,0,0,1,0,0,0,0} ,NULL }, 607 {0x84007820,"fsqrt.sd ",{21,5,REG} ,{0,5,REG} ,NO_OPERAND , {5,1,PFLT,FLT ,0,0,1,1,0,0,0,1,0,0,0,0} ,NULL }, 608 {0x84007880,"fsqrt.ds ",{21,5,REG} ,{0,5,REG} ,NO_OPERAND , {5,1,PFLT,FLT ,0,0,1,1,0,0,0,1,0,0,0,0} ,NULL }, 609 {0x840078a0,"fsqrt.dd ",{21,5,REG} ,{0,5,REG} ,NO_OPERAND , {6,1,PFLT,FLT ,0,0,1,1,0,0,0,1,1,0,0,0} ,NULL }, 610 {0x84003800,"fcmp.ss ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {5,1,PFLT,FCMP ,0,1,1,1,0,0,0,1,0,0,0,0} ,NULL }, 611 {0x84003880,"fcmp.sd ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {6,1,PFLT,FCMP ,0,1,1,1,0,0,0,1,0,1,0,0} ,NULL }, 612 {0x84003a00,"fcmp.ds ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {6,1,PFLT,FCMP ,0,1,1,1,0,0,0,1,1,0,0,0} ,NULL }, 613 {0x84003a80,"fcmp.dd ",{21,5,REG} ,{16,5,REG} ,{0,5,REG} , {6,1,PFLT,FCMP ,0,1,1,1,0,0,0,1,1,1,0,0} ,NULL }, 614 {0x84002000,"flt.s ",{21,5,REG} ,{0,5,REG} ,NO_OPERAND , {5,1,PFLT,FLT ,0,0,1,1,0,0,0,1,0,0,0,0} ,NULL }, 615 {0x84002020,"flt.d ",{21,5,REG} ,{0,5,REG} ,NO_OPERAND , {6,1,PFLT,FLT ,0,0,1,1,0,0,0,1,1,0,0,0} ,NULL }, 616 {0x84004800,"int.s ",{21,5,REG} ,{0,5,REG} ,NO_OPERAND , {5,1,PFLT,INT ,0,0,1,1,0,0,0,1,0,0,0,0} ,NULL }, 617 {0x84004880,"int.d ",{21,5,REG} ,{0,5,REG} ,NO_OPERAND , {6,1,PFLT,INT ,0,0,1,1,0,0,0,1,1,0,0,0} ,NULL }, 618 {0x84005000,"nint.s ",{21,5,REG} ,{0,5,REG} ,NO_OPERAND , {5,1,PFLT,INT ,0,0,1,1,0,0,0,1,0,0,0,0} ,NULL }, 619 {0x84005080,"nint.d ",{21,5,REG} ,{0,5,REG} ,NO_OPERAND , {6,1,PFLT,INT ,0,0,1,1,0,0,0,1,1,0,0,0} ,NULL }, 620 {0x84005800,"trnc.s ",{21,5,REG} ,{0,5,REG} ,NO_OPERAND , {5,1,PFLT,TRNC ,0,0,1,1,0,0,0,1,0,0,0,0} ,NULL }, 621 {0x84005880,"trnc.d ",{21,5,REG} ,{0,5,REG} ,NO_OPERAND , {6,1,PFLT,TRNC ,0,0,1,1,0,0,0,1,1,0,0,0} ,NULL }, 622 623 {0x80004800,"fldcr ",{21,5,REG} ,{5,6,FCRREG} ,NO_OPERAND , {1,1,PFLT,FLDC ,0,0,1,1,0,0,0,1,0,0,0,0} ,NULL }, 624 {0x80008800,"fstcr ",{16,5,REG} ,{5,6,FCRREG} ,NO_OPERAND , {1,1,PFLT,FSTC ,0,0,1,1,0,0,0,1,0,0,0,0} ,NULL }, 625 {0x8000c800,"fxcr ",{21,5,REG} ,{16,5,REG} ,{5,6,FCRREG} , {1,1,PFLT,FXC ,0,0,1,1,0,0,0,1,0,0,0,0} ,NULL }, 626 627 /* The following are new for the 88110. */ 628 629 {0x8400aaa0,"fadd.ddd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 630 {0x8400aa80,"fadd.dds ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 631 {0x8400aac0,"fadd.ddx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 632 {0x8400aa20,"fadd.dsd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 633 {0x8400aa00,"fadd.dss ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 634 {0x8400aa40,"fadd.dsx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 635 {0x8400ab20,"fadd.dxd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 636 {0x8400ab00,"fadd.dxs ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 637 {0x8400ab40,"fadd.dxx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 638 {0x8400a8a0,"fadd.sdd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 639 {0x8400a880,"fadd.sds ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 640 {0x8400a8c0,"fadd.sdx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 641 {0x8400a820,"fadd.ssd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 642 {0x8400a800,"fadd.sss ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 643 {0x8400a840,"fadd.ssx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 644 {0x8400a920,"fadd.sxd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 645 {0x8400a900,"fadd.sxs ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 646 {0x8400a940,"fadd.sxx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 647 {0x8400aca0,"fadd.xdd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 648 {0x8400ac80,"fadd.xds ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 649 {0x8400acc0,"fadd.xdx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 650 {0x8400ac20,"fadd.xsd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 651 {0x8400ac00,"fadd.xss ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 652 {0x8400ac40,"fadd.xsx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 653 {0x8400ad20,"fadd.xxd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 654 {0x8400ad00,"fadd.xxs ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 655 {0x8400ad40,"fadd.xxx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 656 657 {0x8400ba80,"fcmp.sdd ",{21,5,REG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 658 {0x8400ba00,"fcmp.sds ",{21,5,REG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 659 {0x8400bb00,"fcmp.sdx ",{21,5,REG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 660 {0x8400b880,"fcmp.ssd ",{21,5,REG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 661 {0x8400b800,"fcmp.sss ",{21,5,REG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 662 {0x8400b900,"fcmp.ssx ",{21,5,REG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 663 {0x8400bc80,"fcmp.sxd ",{21,5,REG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 664 {0x8400bc00,"fcmp.sxs ",{21,5,REG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 665 {0x8400bd00,"fcmp.sxx ",{21,5,REG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 666 667 {0x8400baa0,"fcmpu.sdd ",{21,5,REG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 668 {0x8400ba20,"fcmpu.sds ",{21,5,REG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 669 {0x8400bb20,"fcmpu.sdx ",{21,5,REG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 670 {0x8400b8a0,"fcmpu.ssd ",{21,5,REG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 671 {0x8400b820,"fcmpu.sss ",{21,5,REG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 672 {0x8400b920,"fcmpu.ssx ",{21,5,REG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 673 {0x8400bca0,"fcmpu.sxd ",{21,5,REG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 674 {0x8400bc20,"fcmpu.sxs ",{21,5,REG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 675 {0x8400bd20,"fcmpu.sxx ",{21,5,REG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 676 677 {0x84000820,"fcvt.sd ",{21,5,REG} ,{0,5,REG} ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 678 {0x84000880,"fcvt.ds ",{21,5,REG} ,{0,5,REG} ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 679 680 {0x84008880,"fcvt.ds ",{21,5,XREG} ,{0,5,XREG} ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 681 {0x840088c0,"fcvt.dx ",{21,5,XREG} ,{0,5,XREG} ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 682 {0x84008820,"fcvt.sd ",{21,5,XREG} ,{0,5,XREG} ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 683 {0x84008840,"fcvt.sx ",{21,5,XREG} ,{0,5,XREG} ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 684 {0x84008920,"fcvt.xd ",{21,5,XREG} ,{0,5,XREG} ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 685 {0x84008900,"fcvt.xs ",{21,5,XREG} ,{0,5,XREG} ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 686 687 {0x8400f2a0,"fdiv.ddd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 688 {0x8400f280,"fdiv.dds ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 689 {0x8400f2c0,"fdiv.ddx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 690 {0x8400f220,"fdiv.dsd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 691 {0x8400f200,"fdiv.dss ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 692 {0x8400f240,"fdiv.dsx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 693 {0x8400f320,"fdiv.dxd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 694 {0x8400f300,"fdiv.dxs ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 695 {0x8400f340,"fdiv.dxx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 696 {0x8400f0a0,"fdiv.sdd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 697 {0x8400f080,"fdiv.sds ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 698 {0x8400f0c0,"fdiv.sdx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 699 {0x8400f020,"fdiv.ssd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 700 {0x8400f000,"fdiv.sss ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 701 {0x8400f040,"fdiv.ssx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 702 {0x8400f120,"fdiv.sxd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 703 {0x8400f100,"fdiv.sxs ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 704 {0x8400f140,"fdiv.sxx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 705 {0x8400f4a0,"fdiv.xdd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 706 {0x8400f480,"fdiv.xds ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 707 {0x8400f4c0,"fdiv.xdx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 708 {0x8400f420,"fdiv.xsd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 709 {0x8400f400,"fdiv.xss ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 710 {0x8400f440,"fdiv.xsx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 711 {0x8400f520,"fdiv.xxd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 712 {0x8400f500,"fdiv.xxs ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 713 {0x8400f540,"fdiv.xxx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 714 715 {0x84002220,"flt.ds ",{21,5,XREG} ,{0,5,REG} ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 716 {0x84002200,"flt.ss ",{21,5,XREG} ,{0,5,REG} ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 717 {0x84002240,"flt.xs ",{21,5,XREG} ,{0,5,REG} ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 718 719 {0x840082a0,"fmul.ddd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 720 {0x84008280,"fmul.dds ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 721 {0x840082c0,"fmul.ddx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 722 {0x84008220,"fmul.dsd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 723 {0x84008200,"fmul.dss ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 724 {0x84008240,"fmul.dsx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 725 {0x84008320,"fmul.dxd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 726 {0x84008300,"fmul.dxs ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 727 {0x84008340,"fmul.dxx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 728 {0x840080a0,"fmul.sdd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 729 {0x84008080,"fmul.sds ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 730 {0x840080c0,"fmul.sdx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 731 {0x84008020,"fmul.ssd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 732 {0x84008000,"fmul.sss ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 733 {0x84008040,"fmul.ssx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 734 {0x84008120,"fmul.sxd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 735 {0x84008100,"fmul.sxs ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 736 {0x84008140,"fmul.sxx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 737 {0x840084a0,"fmul.xdd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 738 {0x84008480,"fmul.xds ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 739 {0x840084c0,"fmul.xdx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 740 {0x84008420,"fmul.xsd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 741 {0x84008400,"fmul.xss ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 742 {0x84008440,"fmul.xsx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 743 {0x84008520,"fmul.xxd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 744 {0x84008500,"fmul.xxs ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 745 {0x84008540,"fmul.xxx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 746 747 {0x8400f8a0,"fsqrt.dd ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 748 {0x8400f880,"fsqrt.ds ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 749 {0x8400f8c0,"fsqrt.dx ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 750 {0x8400f820,"fsqrt.sd ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 751 {0x8400f800,"fsqrt.ss ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 752 {0x8400f840,"fsqrt.sx ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 753 {0x8400f920,"fsqrt.xd ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 754 {0x8400f900,"fsqrt.xs ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 755 {0x8400f940,"fsqrt.xx ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 756 757 {0x8400b2a0,"fsub.ddd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 758 {0x8400b280,"fsub.dds ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 759 {0x8400b2c0,"fsub.ddx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 760 {0x8400b220,"fsub.dsd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 761 {0x8400b200,"fsub.dss ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 762 {0x8400b240,"fsub.dsx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 763 {0x8400b320,"fsub.dxd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 764 {0x8400b300,"fsub.dxs ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 765 {0x8400b340,"fsub.dxx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 766 {0x8400b0a0,"fsub.sdd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 767 {0x8400b080,"fsub.sds ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 768 {0x8400b0c0,"fsub.sdx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 769 {0x8400b020,"fsub.ssd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 770 {0x8400b000,"fsub.sss ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 771 {0x8400b040,"fsub.ssx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 772 {0x8400b120,"fsub.sxd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 773 {0x8400b100,"fsub.sxs ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 774 {0x8400b140,"fsub.sxx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 775 {0x8400b4a0,"fsub.xdd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 776 {0x8400b480,"fsub.xds ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 777 {0x8400b4c0,"fsub.xdx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 778 {0x8400b420,"fsub.xsd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 779 {0x8400b400,"fsub.xss ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 780 {0x8400b440,"fsub.xsx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 781 {0x8400b520,"fsub.xxd ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 782 {0x8400b500,"fsub.xxs ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 783 {0x8400b540,"fsub.xxx ",{21,5,XREG} ,{16,5,XREG} ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 784 785 {0x8400fc00,"illop", {0,2,DEC}, NO_OPERAND, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 786 787 {0x8400c800,"int.ss ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 788 {0x8400c880,"int.sd ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 789 {0x8400c900,"int.sx ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 790 791 {0x04000000,"ld ", {21,5,XREG}, {16,5,REG}, {0,16,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 792 {0x00000000,"ld.d ", {21,5,XREG}, {16,5,REG}, {0,16,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 793 {0x3c000000,"ld.x ", {21,5,XREG}, {16,5,REG}, {0,16,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 794 795 {0xf0001400,"ld ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 796 {0xf0001000,"ld.d ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 797 {0xf0001800,"ld.x ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 798 {0xf0001500,"ld.usr ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 799 {0xf0001100,"ld.d.usr ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 800 {0xf0001900,"ld.x.usr ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 801 802 {0xf0001600,"ld ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 803 {0xf0001200,"ld.d ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 804 {0xf0001a00,"ld.x ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 805 {0xf0001700,"ld.usr ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 806 {0xf0001300,"ld.d.usr ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 807 {0xf0001b00,"ld.x.usr ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 808 809 {0x8400c000,"mov.s ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 810 {0x8400c080,"mov.d ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 811 {0x84004200,"mov.s ", {21,5,XREG}, {0,5,REG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 812 {0x84004280,"mov.d ", {21,5,XREG}, {0,5,REG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 813 {0x8400c300,"mov ", {21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 814 815 {0xf4006d00,"mulu.d ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 816 817 {0x8400d080,"nint.sd ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 818 {0x8400d000,"nint.ss ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 819 {0x8400d100,"nint.sx ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 820 821 {0x88002020,"padd.b ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 822 {0x88002040,"padd.h ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 823 {0x88002060,"padd ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 824 825 {0x880021e0,"padds.s ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 826 {0x880021a0,"padds.s.b ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 827 {0x880021c0,"padds.s.h ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 828 {0x880020e0,"padds.u ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 829 {0x880020a0,"padds.u.b ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 830 {0x880020c0,"padds.u.h ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 831 {0x88002160,"padds.us ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 832 {0x88002120,"padds.us.b ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 833 {0x88002140,"padds.us.h ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 834 835 {0x88003860,"pcmp ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 836 837 {0x88000000,"pmul ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 838 839 {0x88006260,"ppack.16 ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 840 {0x88006240,"ppack.16.h ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 841 {0x88006460,"ppack.32 ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 842 {0x88006420,"ppack.32.b ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 843 {0x88006440,"ppack.32.h ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 844 {0x88006160,"ppack.8 ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 845 846 {0x88007200,"prot ", {21,5,REG}, {16,5,REG}, {5,6,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 847 {0x88007800,"prot ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 848 849 {0x88003020,"psub.b ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 850 {0x88003040,"psub.h ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 851 {0x88003060,"psub ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 852 853 {0x880031e0,"psubs.s ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 854 {0x880031a0,"psubs.s.b ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 855 {0x880031c0,"psubs.s.h ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 856 {0x880030e0,"psubs.u ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 857 {0x880030a0,"psubs.u.b ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 858 {0x880030c0,"psubs.u.h ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 859 {0x88003160,"psubs.us ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 860 {0x88003120,"psubs.us.b ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 861 {0x88003140,"psubs.us.h ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 862 863 {0x88006800,"punpk.n ", {21,5,REG}, {16,5,REG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 864 {0x88006820,"punpk.b ", {21,5,REG}, {16,5,REG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 865 866 {0x34000000,"st ", {21,5,XREG}, {16,5,REG}, {0,16,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 867 {0x30000000,"st.d ", {21,5,XREG}, {16,5,REG}, {0,16,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 868 {0x38000000,"st.x ", {21,5,XREG}, {16,5,REG}, {0,16,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 869 870 {0xf4002c80,"st.b.wt ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 871 {0xf4002880,"st.h.wt ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 872 {0xf4002480,"st.wt ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 873 {0xf4002080,"st.d.wt ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 874 {0xf4002d80,"st.b.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 875 {0xf4002980,"st.h.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 876 {0xf4002580,"st.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 877 {0xf4002180,"st.d.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 878 879 {0xf0002400,"st ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 880 {0xf0002000,"st.d ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 881 {0xf0002100,"st.d.usr ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 882 {0xf0002180,"st.d.usr.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 883 {0xf0002080,"st.d.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 884 {0xf0002500,"st.usr ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 885 {0xf0002580,"st.usr.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 886 {0xf0002480,"st.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 887 {0xf0002800,"st.x ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 888 {0xf0002900,"st.x.usr ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 889 {0xf0002980,"st.x.usr.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 890 {0xf0002880,"st.x.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 891 892 {0xf4002f80,"st.b.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 893 {0xf4002e80,"st.b.wt ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 894 {0xf4002380,"st.d.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 895 {0xf4002280,"st.d.wt ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 896 {0xf4002b80,"st.h.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 897 {0xf4002a80,"st.h.wt ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 898 {0xf4002780,"st.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 899 {0xf4002680,"st.wt ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 900 901 {0xf0002600,"st ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 902 {0xf0002200,"st.d ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 903 {0xf0002300,"st.d.usr ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 904 {0xf0002380,"st.d.usr.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 905 {0xf0002280,"st.d.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 906 {0xf0002700,"st.usr ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 907 {0xf0002780,"st.usr.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 908 {0xf0002680,"st.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 909 {0xf0002a00,"st.x ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 910 {0xf0002b00,"st.x.usr ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 911 {0xf0002b80,"st.x.usr.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 912 {0xf0002a80,"st.x.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 913 914 {0x8400d880,"trnc.sd ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 915 {0x8400d800,"trnc.ss ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 916 {0x8400d900,"trnc.sx ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL }, 917 918 }; 448 extern const INSTAB instructions[]; 919 449 920 450 /* -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/mips.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* mips.h. Mips opcode list for GDB, the GNU debugger. 2 Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 2 Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 3 3 Free Software Foundation, Inc. 4 4 Contributed by Ralph Campbell and OSF … … 134 134 #define OP_SH_CODE19 6 /* 19 bit wait code. */ 135 135 #define OP_MASK_CODE19 0x7ffff 136 #define OP_SH_ALN 21 137 #define OP_MASK_ALN 0x7 138 #define OP_SH_VSEL 21 139 #define OP_MASK_VSEL 0x1f 140 #define OP_MASK_VECBYTE 0x7 /* Selector field is really 4 bits, 141 but 0x8-0xf don't select bytes. */ 142 #define OP_SH_VECBYTE 22 143 #define OP_MASK_VECALIGN 0x7 /* Vector byte-align (alni.ob) op. */ 144 #define OP_SH_VECALIGN 21 145 #define OP_MASK_INSMSB 0x1f /* "ins" MSB. */ 146 #define OP_SH_INSMSB 11 147 #define OP_MASK_EXTMSBD 0x1f /* "ext" MSBD. */ 148 #define OP_SH_EXTMSBD 11 149 150 #define OP_OP_COP0 0x10 151 #define OP_OP_COP1 0x11 152 #define OP_OP_COP2 0x12 153 #define OP_OP_COP3 0x13 154 #define OP_OP_LWC1 0x31 155 #define OP_OP_LWC2 0x32 156 #define OP_OP_LWC3 0x33 /* a.k.a. pref */ 157 #define OP_OP_LDC1 0x35 158 #define OP_OP_LDC2 0x36 159 #define OP_OP_LDC3 0x37 /* a.k.a. ld */ 160 #define OP_OP_SWC1 0x39 161 #define OP_OP_SWC2 0x3a 162 #define OP_OP_SWC3 0x3b 163 #define OP_OP_SDC1 0x3d 164 #define OP_OP_SDC2 0x3e 165 #define OP_OP_SDC3 0x3f /* a.k.a. sd */ 166 167 /* Values in the 'VSEL' field. */ 168 #define MDMX_FMTSEL_IMM_QH 0x1d 169 #define MDMX_FMTSEL_IMM_OB 0x1e 170 #define MDMX_FMTSEL_VEC_QH 0x15 171 #define MDMX_FMTSEL_VEC_OB 0x16 136 172 137 173 /* This structure holds information for a particular instruction. */ … … 162 198 }; 163 199 164 /* These are the characters which may appear sin the args field of an200 /* These are the characters which may appear in the args field of an 165 201 instruction. They appear in the order in which the fields appear 166 202 when the instruction is used. Commas and parentheses in the args … … 180 216 "j" 16 bit signed immediate (OP_*_DELTA) 181 217 "k" 5 bit cache opcode in target register position (OP_*_CACHE) 218 Also used for immediate operands in vr5400 vector insns. 182 219 "o" 16 bit signed offset (OP_*_DELTA) 183 220 "p" 16 bit PC relative branch target address (OP_*_DELTA) … … 196 233 "x" accept and ignore register name 197 234 "z" must be zero register 235 "K" 5 bit Hardware Register (rdhwr instruction) (OP_*_RD) 236 "+A" 5 bit ins/ext position, which becomes LSB (OP_*_SHAMT). 237 Enforces: 0 <= pos < 32. 238 "+B" 5 bit ins size, which becomes MSB (OP_*_INSMSB). 239 Requires that "+A" occur first to set position. 240 Enforces: 0 < (pos+size) <= 32. 241 "+C" 5 bit ext size, which becomes MSBD (OP_*_EXTMSBD). 242 Requires that "+A" occur first to set position. 243 Enforces: 0 < (pos+size) <= 32. 198 244 199 245 Floating point instructions: … … 210 256 "E" 5 bit target register (OP_*_RT) 211 257 "G" 5 bit destination register (OP_*_RD) 258 "H" 3 bit sel field for (d)mtc* and (d)mfc* (OP_*_SEL) 212 259 "P" 5 bit performance-monitor register (OP_*_PERFREG) 213 "H" 3 bit sel field (OP_*_SEL) 260 "e" 5 bit vector register byte specifier (OP_*_VECBYTE) 261 "%" 3 bit immediate vr5400 vector alignment operand (OP_*_VECALIGN) 262 see also "k" above 263 "+D" Combined destination register ("G") and sel ("H") for CP0 ops, 264 for pretty-printing in disassembly only. 214 265 215 266 Macro instructions: … … 221 272 "l" 32 bit floating point constant in .lit4 222 273 274 MDMX instruction operands (note that while these use the FP register 275 fields, they accept both $fN and $vN names for the registers): 276 "O" MDMX alignment offset (OP_*_ALN) 277 "Q" MDMX vector/scalar/immediate source (OP_*_VSEL and OP_*_FT) 278 "X" MDMX destination register (OP_*_FD) 279 "Y" MDMX source register (OP_*_FS) 280 "Z" MDMX source register (OP_*_FT) 281 223 282 Other: 224 283 "()" parens surrounding optional value 225 284 "," separates operands 285 "[]" brackets around index for vector-op scalar operand specifier (vr5400) 286 "+" Start of extension sequence. 226 287 227 288 Characters used so far, for quick reference when adding more: 228 "<>()," 229 "ABCDEFGHIJLMNPRSTUVW" 230 "abcdfhijklopqrstuvwxz" 289 "%[]<>(),+" 290 "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 291 "abcdefhijklopqrstuvwxz" 292 293 Extension character sequences used so far ("+" followed by the 294 following), for quick reference when adding more: 295 "ABCD" 231 296 */ 232 297 … … 298 363 /* Instruction synchronize shared memory. */ 299 364 #define INSN_SYNC 0x80000000 365 /* Instruction reads MDMX accumulator. XXX FIXME: No bits left! */ 366 #define INSN_READ_MDMX_ACC 0 367 /* Instruction writes MDMX accumulator. XXX FIXME: No bits left! */ 368 #define INSN_WRITE_MDMX_ACC 0 300 369 301 370 /* Instruction is actually a macro. It should be ignored by the … … 305 374 /* Masks used to mark instructions to indicate which MIPS ISA level 306 375 they were introduced in. ISAs, as defined below, are logical 307 ORs of these bits, indicating that they support the instructions376 ORs of these bits, indicating that they support the instructions 308 377 defined at the given level. */ 309 378 310 #define INSN_ISA_MASK 0x0000ffff 311 #define INSN_ISA1 0x00000010 312 #define INSN_ISA2 0x00000020 313 #define INSN_ISA3 0x00000040 314 #define INSN_ISA4 0x00000080 315 #define INSN_ISA5 0x00000100 316 #define INSN_ISA32 0x00000200 317 #define INSN_ISA64 0x00000400 379 #define INSN_ISA_MASK 0x00000fff 380 #define INSN_ISA1 0x00000001 381 #define INSN_ISA2 0x00000002 382 #define INSN_ISA3 0x00000004 383 #define INSN_ISA4 0x00000008 384 #define INSN_ISA5 0x00000010 385 #define INSN_ISA32 0x00000020 386 #define INSN_ISA64 0x00000040 387 #define INSN_ISA32R2 0x00000080 388 389 /* Masks used for MIPS-defined ASEs. */ 390 #define INSN_ASE_MASK 0x0000f000 391 392 /* MIPS 16 ASE */ 393 #define INSN_MIPS16 0x00002000 394 /* MIPS-3D ASE */ 395 #define INSN_MIPS3D 0x00004000 396 /* MDMX ASE */ 397 #define INSN_MDMX 0x00008000 318 398 319 399 /* Chip specific instructions. These are bitmasks. */ … … 327 407 /* Toshiba R3900 instruction. */ 328 408 #define INSN_3900 0x00080000 329 /* 32-bit code running on a ISA3+ CPU. */ 330 #define INSN_GP32 0x00100000 409 /* MIPS R10000 instruction. */ 410 #define INSN_10000 0x00100000 411 /* Broadcom SB-1 instruction. */ 412 #define INSN_SB1 0x00200000 413 /* NEC VR4111/VR4181 instruction. */ 414 #define INSN_4111 0x00400000 415 /* NEC VR4120 instruction. */ 416 #define INSN_4120 0x00800000 417 /* NEC VR5400 instruction. */ 418 #define INSN_5400 0x01000000 419 /* NEC VR5500 instruction. */ 420 #define INSN_5500 0x02000000 331 421 332 422 /* MIPS ISA defines, use instead of hardcoding ISA level. */ … … 338 428 #define ISA_MIPS4 (ISA_MIPS3 | INSN_ISA4) 339 429 #define ISA_MIPS5 (ISA_MIPS4 | INSN_ISA5) 430 340 431 #define ISA_MIPS32 (ISA_MIPS2 | INSN_ISA32) 341 432 #define ISA_MIPS64 (ISA_MIPS5 | INSN_ISA32 | INSN_ISA64) 433 434 #define ISA_MIPS32R2 (ISA_MIPS32 | INSN_ISA32R2) 342 435 343 436 /* CPU defines, use instead of hardcoding processor number. Keep this 344 437 in sync with bfd/archures.c in order for machine selection to work. */ 345 438 #define CPU_UNKNOWN 0 /* Gas internal use. */ 346 #define CPU_R2000 2000347 439 #define CPU_R3000 3000 348 440 #define CPU_R3900 3900 … … 351 443 #define CPU_VR4100 4100 352 444 #define CPU_R4111 4111 445 #define CPU_VR4120 4120 353 446 #define CPU_R4300 4300 354 447 #define CPU_R4400 4400 … … 356 449 #define CPU_R4650 4650 357 450 #define CPU_R5000 5000 451 #define CPU_VR5400 5400 452 #define CPU_VR5500 5500 358 453 #define CPU_R6000 6000 359 454 #define CPU_R8000 8000 … … 362 457 #define CPU_MIPS16 16 363 458 #define CPU_MIPS32 32 364 #define CPU_MIPS32 _4K 3204113 /* 32, 04, octal 'K'. */459 #define CPU_MIPS32R2 33 365 460 #define CPU_MIPS5 5 366 461 #define CPU_MIPS64 64 367 462 #define CPU_SB1 12310201 /* octal 'SB', 01. */ 368 463 369 /* Test for membership in an ISA including chip specific ISAs. 370 INSN is pointer to an element of the opcode table; ISA is the 371 specified ISA to test against; and CPU is the CPU specific ISA 372 to test, or zero if no CPU specific ISA test is desired. 373 The gp32 arg is set when you need to force 32-bit register usage on 374 a machine with 64-bit registers; see the documentation under -mgp32 375 in the MIPS gas docs. */ 376 377 #define OPCODE_IS_MEMBER(insn, isa, cpu, gp32) \ 378 ((((insn)->membership & isa) != 0 \ 379 && ((insn)->membership & INSN_GP32 ? gp32 : 1) \ 380 ) \ 464 /* Test for membership in an ISA including chip specific ISAs. INSN 465 is pointer to an element of the opcode table; ISA is the specified 466 ISA/ASE bitmask to test against; and CPU is the CPU specific ISA to 467 test, or zero if no CPU specific ISA test is desired. */ 468 469 #define OPCODE_IS_MEMBER(insn, isa, cpu) \ 470 (((insn)->membership & isa) != 0 \ 381 471 || (cpu == CPU_R4650 && ((insn)->membership & INSN_4650) != 0) \ 382 472 || (cpu == CPU_R4010 && ((insn)->membership & INSN_4010) != 0) \ 383 || ((cpu == CPU_VR4100 || cpu == CPU_R4111) \ 384 && ((insn)->membership & INSN_4100) != 0) \ 385 || (cpu == CPU_R3900 && ((insn)->membership & INSN_3900) != 0)) 473 || (cpu == CPU_VR4100 && ((insn)->membership & INSN_4100) != 0) \ 474 || (cpu == CPU_R3900 && ((insn)->membership & INSN_3900) != 0) \ 475 || ((cpu == CPU_R10000 || cpu == CPU_R12000) \ 476 && ((insn)->membership & INSN_10000) != 0) \ 477 || (cpu == CPU_SB1 && ((insn)->membership & INSN_SB1) != 0) \ 478 || (cpu == CPU_R4111 && ((insn)->membership & INSN_4111) != 0) \ 479 || (cpu == CPU_VR4120 && ((insn)->membership & INSN_4120) != 0) \ 480 || (cpu == CPU_VR5400 && ((insn)->membership & INSN_5400) != 0) \ 481 || (cpu == CPU_VR5500 && ((insn)->membership & INSN_5500) != 0) \ 482 || 0) /* Please keep this term for easier source merging. */ 386 483 387 484 /* This is a list of macro expanded instructions. … … 509 606 M_LWR_AB, 510 607 M_LWU_AB, 608 M_MOVE, 511 609 M_MUL, 512 610 M_MUL_I, … … 521 619 M_REMU_3, 522 620 M_REMU_3I, 621 M_DROL, 523 622 M_ROL, 623 M_DROL_I, 524 624 M_ROL_I, 625 M_DROR, 525 626 M_ROR, 627 M_DROR_I, 526 628 M_ROR_I, 527 629 M_S_DA, -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/ns32k.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* ns32k-opcode.h -- Opcode table for National Semi 32k processor 2 Copyright 1987, 1991, 1994 Free Software Foundation, Inc.2 Copyright 1987, 1991, 1994, 2002 Free Software Foundation, Inc. 3 3 4 4 This file is part of GAS, the GNU Assembler. … … 38 38 The operands in the source instruction are checked for inconsistent 39 39 semantics. 40 40 41 41 F : 32 bit float general form 42 42 L : 64 bit float " … … 81 81 */ 82 82 struct ns32k_opcode { 83 c har *name;83 const char *name; 84 84 unsigned char opcode_id_size; /* not used by the assembler */ 85 85 unsigned char opcode_size; 86 86 unsigned long opcode_seed; 87 c har *operands;87 const char *operands; 88 88 unsigned char im_size; /* not used by dissassembler */ 89 c har *default_args;/* default to those args when none given */89 const char *default_args; /* default to those args when none given */ 90 90 char default_modec; /* default to this addr-mode when ambigous 91 91 ie when the argument of a general addr-mode … … 104 104 /* particular opcode */ 105 105 { 106 int obits; /* number of opcode bits */107 int ibits; /* number of instruction bits */108 ns32k_opcodeT code;/* op-code (may be > 8 bits!) */109 c har *args; /* how to compile said opcode */106 int obits; /* number of opcode bits */ 107 int ibits; /* number of instruction bits */ 108 ns32k_opcodeT code; /* op-code (may be > 8 bits!) */ 109 const char *args; /* how to compile said opcode */ 110 110 }; 111 111 112 112 struct not /* ns32k opcode text */ 113 113 { 114 c har * name;/* opcode name: lowercase string [key] */115 struct not_wot 114 const char *name; /* opcode name: lowercase string [key] */ 115 struct not_wot detail; /* rest of opcode table [datum] */ 116 116 }; 117 117 118 118 /* Instructions look like this: 119 119 120 120 basic instruction--1, 2, or 3 bytes 121 121 index byte for operand A, if operand A is indexed--1 byte … … 131 131 132 132 Each operand has a digit and a letter. 133 133 134 134 The digit gives the position in the assembly language. The letter, 135 135 one of the following, tells us what kind of operand it is. */ … … 483 483 }; 484 484 485 static const int numopcodes=sizeof(ns32k_opcodes)/sizeof(ns32k_opcodes[0]);486 487 static const struct ns32k_opcode *const endop = ns32k_opcodes+sizeof(ns32k_opcodes)/sizeof(ns32k_opcodes[0]);488 489 485 #define MAX_ARGS 4 490 486 #define ARG_LEN 50 -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/pj.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 37 37 38 38 39 typedef struct 39 typedef struct pj_opc_info_t 40 40 { 41 41 short opcode; … … 43 43 char len; 44 44 unsigned char arg[2]; 45 const char *name; 45 union { 46 const char *name; 47 void (*func) PARAMS ((struct pj_opc_info_t *, char *)); 48 } u; 46 49 } pj_opc_info_t; -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/ppc.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* ppc.h -- Header file for PowerPC opcode table 2 Copyright 1994, 1995, 1999, 2000 Free Software Foundation, Inc. 2 Copyright 1994, 1995, 1999, 2000, 2001, 2002 3 Free Software Foundation, Inc. 3 4 Written by Ian Lance Taylor, Cygnus Support 4 5 … … 90 91 91 92 /* Opcode is supported by Altivec Vector Unit */ 92 #define PPC_OPCODE_ALTIVEC (01000) 93 #define PPC_OPCODE_ALTIVEC (01000) 94 95 /* Opcode is supported by PowerPC 403 processor. */ 96 #define PPC_OPCODE_403 (02000) 97 98 /* Opcode is supported by PowerPC BookE processor. */ 99 #define PPC_OPCODE_BOOKE (04000) 100 101 /* Opcode is only supported by 64-bit PowerPC BookE processor. */ 102 #define PPC_OPCODE_BOOKE64 (010000) 103 104 /* Opcode is only supported by Power4 architecture. */ 105 #define PPC_OPCODE_POWER4 (020000) 106 107 /* Opcode isn't supported by Power4 architecture. */ 108 #define PPC_OPCODE_NOPOWER4 (040000) 109 110 /* Opcode is only supported by POWERPC Classic architecture. */ 111 #define PPC_OPCODE_CLASSIC (0100000) 112 113 /* Opcode is only supported by e500x2 Core. */ 114 #define PPC_OPCODE_SPE (0200000) 115 116 /* Opcode is supported by e500x2 Integer select APU. */ 117 #define PPC_OPCODE_ISEL (0400000) 118 119 /* Opcode is an e500 SPE floating point instruction. */ 120 #define PPC_OPCODE_EFS (01000000) 121 122 /* Opcode is supported by branch locking APU. */ 123 #define PPC_OPCODE_BRLOCK (02000000) 124 125 /* Opcode is supported by performance monitor APU. */ 126 #define PPC_OPCODE_PMR (04000000) 127 128 /* Opcode is supported by cache locking APU. */ 129 #define PPC_OPCODE_CACHELCK (010000000) 130 131 /* Opcode is supported by machine check APU. */ 132 #define PPC_OPCODE_RFMCI (020000000) 93 133 94 134 /* A macro to extract the major opcode from an instruction. */ … … 123 163 can accept any value). */ 124 164 unsigned long (*insert) PARAMS ((unsigned long instruction, long op, 165 int dialect, 125 166 const char **errmsg)); 126 167 … … 142 183 this operand (i.e., the instruction does not match). If the 143 184 operand is valid, *INVALID will not be changed. */ 144 long (*extract) PARAMS ((unsigned long instruction, int *invalid)); 185 long (*extract) PARAMS ((unsigned long instruction, int dialect, 186 int *invalid)); 145 187 146 188 /* One bit syntax flags. */ … … 231 273 #define PPC_OPERAND_VR (010000) 232 274 275 /* This operand is for the DS field in a DS form instruction. */ 276 #define PPC_OPERAND_DS (020000) 233 277 234 278 -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/sparc.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* Definitions for opcode table for the sparc. 2 Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2000 2 Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2000, 2002 3 3 Free Software Foundation, Inc. 4 4 … … 21 21 Boston, MA 02111-1307, USA. */ 22 22 23 #include <ansidecl.h>23 #include "ansidecl.h" 24 24 25 25 /* The SPARC opcode table (and other related data) is defined in -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/tic54x.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 20 20 02111-1307, USA. */ 21 21 22 #ifndef _ TIC54X_H_23 #define _ TIC54X_H_22 #ifndef _opcode_tic54x_h_ 23 #define _opcode_tic54x_h_ 24 24 25 25 typedef struct _symbol … … 87 87 /* The opcode mnemonic */ 88 88 const char *name; 89 90 89 unsigned int words; /* insn size in words */ 91 90 int minops, maxops; /* min/max operand count */ … … 142 141 #define FL_SMR 0x200 /* Smem read (for flagging write-only *+ARx */ 143 142 143 #define FL_PAR 0x400 /* Parallel instruction. */ 144 144 145 unsigned short opcode2, mask2; /* some insns have an extended opcode */ 146 147 const char* parname; 148 enum optype paroperand_types[MAX_OPERANDS]; 145 149 146 150 } template; 147 151 148 typedef struct _partemplate {149 char *name;150 char *parname;151 unsigned int words; /* length in words */152 int minops, maxops; /* min/max operand count for 2nd part of insn */153 unsigned short opcode;154 unsigned short mask;155 enum optype operand_types[MAX_OPERANDS];156 enum optype paroperand_types[MAX_OPERANDS];157 } partemplate;158 159 152 extern const template tic54x_unknown_opcode; 160 153 extern const template tic54x_optab[]; 161 extern const partemplate tic54x_paroptab[];154 extern const template tic54x_paroptab[]; 162 155 extern const symbol mmregs[], regs[]; 163 156 extern const symbol condition_codes[], cc2_codes[], status_bits[]; 164 157 extern const symbol cc3_codes[]; 165 158 extern const char *misc_symbols[]; 159 struct disassemble_info; 160 extern const template* tic54x_get_insn (struct disassemble_info *, 161 bfd_vma, unsigned short, int *); 166 162 167 #endif /* TIC54X_H*/163 #endif /* _opcode_tic54x_h_ */ -
Property cvs2svn:cvs-rev
changed from
-
branches/GNU/src/binutils/include/opcode/v850.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* v850.h -- Header file for NEC V850 opcode table 2 Copyright 1996, 1997 Free Software Foundation, Inc.2 Copyright 1996, 1997, 2001 Free Software Foundation, Inc. 3 3 Written by J.T. Conklin, Cygnus Support 4 4 … … 155 155 #define V850_NOT_R0 0x80 156 156 157 /* CYGNUS LOCAL v850e */158 157 /* push/pop type instruction, V850E specific. */ 159 158 #define V850E_PUSH_POP 0x100 -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.