Ignore:
Timestamp:
Aug 16, 2003, 6:59:22 PM (22 years ago)
Author:
bird
Message:

binutils v2.14 - offical sources.

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 to 1.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>
     12003-05-13  Stephane Carrez  <stcarrez@nerim.fr>
     2
     3        * m68hc11.h (M68HC12_BANK_VIRT): Define to 0x010000
     4
     52003-04-07  Michael Snyder  <msnyder@redhat.com>
     6
     7        * h8300.h (ldc/stc): Fix up src/dst swaps.
     8
     92003-04-09  J. Grant  <jg-binutils@jguk.org>
     10
     11        * mips.h: Correct comment typo.
     12
     132003-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
     192003-03-17 D.Venkatasubramanian <dvenkat@noida.hcltech.com>
     20
     21        * h8300.h (O_SYS_CMDLINE): New pseudo opcode for command line
     22        processing.
     23
     242003-02-21  Noida D.Venkatasubramanian  <dvenkat@noida.hcltech.com>
     25
     26        * h8300.h (ldmac, stmac): Replace MACREG with MS32 and MD32.
     27
     282003-01-23  Alan Modra  <amodra@bigpond.net.au>
     29
     30        * m68hc11.h (cpu6812s): Define.
     31
     322003-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
     392003-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
     452002-12-31  Chris Demetriou  <cgd@broadcom.com>
     46
     47        * mips.h: Note that the "+D" operand type name is now used.
     48
     492002-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
     572002-12-24    Dmitry Diky <diwil@mail.ru>
     58
     59        * msp430.h: New file.  Defines msp430 opcodes.
     60
     612002-12-30 D.Venkatasubramanian <dvenkat@noida.hcltech.com>
     62
     63        * h8300.h: Added some more pseudo opcodes for system call
     64        processing.
     65
     662002-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
     732002-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
     842002-12-13  Alan Modra  <amodra@bigpond.net.au>
     85
     86        * pj.h (pj_opc_info_t): Add union.
     87
     882002-12-04  David Mosberger  <davidm@hpl.hp.com>
     89
     90        * ia64.h: Fix copyright message.
     91        (IA64_OPND_AR_CSD): New operand kind.
     92
     932002-12-03  Richard Henderson  <rth@redhat.com>
     94
     95        * ia64.h (enum ia64_opnd): Add IA64_OPND_LDXMOV.
     96
     972002-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
     1022002-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       
     1092002-11-19  Svein E. Seldal  <Svein.Seldal@solidas.com>
     110
     111        * tic4x.h (c4x_insts): Fixed LDHI constraint
     112
     1132002-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
     1202002-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
     1262002-11-18  Svein E. Seldal  <Svein.Seldal@solidas.com>
     127
     128        * tic4x.h: File reordering. Added enhanced opcodes.
     129
     1302002-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
     1352002-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
     1402002-10-14  Alan Modra  <amodra@bigpond.net.au>
     141
     142        * cgen.h: Test __BFD_H_SEEN__ rather than BFD_VERSION_DATE.
     143
     1442002-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
     1582002-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
     1712002-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
     1792002-07-09  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
     180
     181        * mips.h (INSN_MIPS16): New define.
     182
     1832002-07-08  Alan Modra  <amodra@bigpond.net.au>
     184
     185        * i386.h: Remove IgnoreSize from movsx and movzx.
     186
     1872002-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
     1962002-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
     2042002-05-28  Kuang Hwa Lin <kuang@sbcglobal.net>
     205
     206        * dlx.h: New file.
     207
     2082002-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
     2132002-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
     2172002-05-17  Andrey Volkov  <avolkov@sources.redhat.com>
     218
     219        * h8300.h: Corrected defs of all control regs
     220        and eepmov instr.
     221                     
     2222002-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
     2272002-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
     2342002-03-05  Paul Koning  <pkoning@equallogic.com>
     235
     236        * pdp11.h: Add format codes for float instruction formats.
     237
     2382002-02-25  Alan Modra  <amodra@bigpond.net.au>
     239
     240        * ppc.h (PPC_OPCODE_POWER4, PPC_OPCODE_NOPOWER4): Define.
     241
     242Mon 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
     246Mon 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
     2572002-01-31  Ivan Guzvinec  <ivang@opencores.org>
     258
     259        * or32.h: New file.
     260
     2612002-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
     2662002-01-21  Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>
     267
     268        * h8300.h: Comment typo fix.
     269
     2702002-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
     275Mon 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
     2872001-12-04  Alexandre Oliva  <aoliva@redhat.com>
     288
     289        * d10v.h (OPERAND_NOSP): New macro.
     290
     2912001-11-29  Alexandre Oliva  <aoliva@redhat.com>
     292
     293        * d10v.h (OPERAND_SP): New macro.
     294
     2952001-11-15  Alan Modra  <amodra@bigpond.net.au>
     296
     297        * ppc.h (struct powerpc_operand <insert, extract>): Add dialect param.
     298
     2992001-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
     3042001-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
     3102001-11-04  Chris Demetriou  <cgd@broadcom.com>
     311
     312        * mips.h (OPCODE_IS_MEMBER): Remove extra space.
     313
     3142001-10-30  Hans-Peter Nilsson  <hp@bitrange.com>
     315
     316        * mmix.h: New file.
     317
     3182001-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
     3232001-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
     3282001-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
     3342001-10-17  matthew green  <mrg@redhat.com>
     335
     336        * ppc.h (PPC_OPCODE_BOOKE64): Fix typo.
     337
     3382001-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
     3442001-09-27  Nick Clifton  <nickc@cambridge.redhat.com>
     345
     346        * v850.h: Remove spurious comment.
     347
     3482001-09-21  Nick Clifton  <nickc@cambridge.redhat.com>
     349
     350        * h8300.h: Fix compile time warning messages
     351
     3522001-09-04  Richard Henderson  <rth@redhat.com>
     353
     354        * alpha.h (struct alpha_operand): Pack elements into bitfields.
     355
     3562001-08-31  Eric Christopher  <echristo@redhat.com>
     357
     358        * mips.h: Remove CPU_MIPS32_4K.
     359
     3602001-08-27  Torbjorn Granlund  <tege@swox.com>
     361
     362        * ppc.h (PPC_OPERAND_DS): Define.
     363
     3642001-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
     3722001-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
     3772001-08-10  Alan Modra  <amodra@one.net.au>
     378
     379        * ppc.h: Revert 2001-08-08.
     380
     3812001-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
     3872001-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
     3922001-08-01  Aldy Hernandez  <aldyh@redhat.com>
     393
     394        * mips.h (INSN_ISA_MASK): Nuke bits 12-15.
     395
     3962001-07-12  Jeff Johnston  <jjohnstn@redhat.com>
     397
     398        * cgen.h (CGEN_INSN): Add regex support.
     399        (build_insn_regex): Declare.
     400
     4012001-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
     4062001-07-07  Ben Elliston  <bje@redhat.com>
     407
     408        * m88k.h: Clean up and reformat. Remove unused code.
     409
     4102001-06-14  Geoffrey Keating  <geoffk@redhat.com>
     411
     412        * cgen.h (cgen_keyword): Add nonalpha_chars field.
     413
     4142001-05-23  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
     415
    5416        * mips.h (CPU_R12000): Define.
    6417
    7         2001-05-15  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
     4182001-05-23  John Healy  <jhealy@redhat.com>
     419
     420        * cgen.h: Increased CGEN_MAX_SYNTAX_ELEMENTS to 48.
     421
     4222001-05-15  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
     423
    8424        * 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 know
    15         about mcf5407.
    16 
    17         2001-02-10  Nick Clifton  <nickc@redhat.com>
    18         * mips.h: Remove extraneous whitespace.  Formating change to allow
    19         for future contribution.
    20 
    21 2001-06-07  Alan Modra  <amodra@bigpond.net.au>
    22 
    23         * Many files: Update copyright notices.
    24425
    254262001-05-12  Alan Modra  <amodra@one.net.au>
     
    34435        and pextrw to swap reg/rm assignments.
    35436
     4372001-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
    364422001-03-24  Alan Modra  <alan@linuxcare.com.au>
    37443
     
    39445        Add InvMem to first operand of "maskmovdqu".
    40446
     4472001-03-22  Hans-Peter Nilsson  <hp@axis.com>
     448
     449        * cris.h (ADD_PC_INCR_OPCODE): New macro.
     450
     4512001-03-21  Kazu Hirata  <kazu@hxi.com>
     452
     453        * h8300.h: Fix formatting.
     454
    414552001-03-22  Alan Modra  <alan@linuxcare.com.au>
    42456
     
    47461        * i386.h (REGNAM_AL, REGNAM_AX, REGNAM_EAX): Define.
    48462
    49 Mon Feb 12 17:39:31 CET 2001  Jan Hubicka  <jh@suse.cz>
     4632001-02-28  Igor Shevlyakov  <igor@windriver.com>
     464
     465        * m68k.h: new defines for Coldfire V4. Update mcf to know
     466        about mcf5407.
     467
     4682001-02-18  lars brinkhoff  <lars@nocrew.org>
     469
     470        * pdp11.h: New file.
     471
     4722001-02-12  Jan Hubicka  <jh@suse.cz>
    50473
    51474        * i386.h (i386_optab): SSE integer converison instructions have
    52475        64bit versions on x86-64.
     476
     4772001-02-10  Nick Clifton  <nickc@redhat.com>
     478
     479        * mips.h: Remove extraneous whitespace.  Formating change to allow
     480        for future contribution.
     481
     4822001-02-09  Martin Schwidefsky  <schwidefsky@de.ibm.com>
     483
     484        * s390.h: New file.
     485
     4862001-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.
    53491
    544922001-01-24  Karsten Keil  <kkeil@suse.de>
     
    63501        Remove duplicate "ldw j(s,b),x".  Sort some entries.
    64502
    65 Sat Jan 13 09:56:32 MET 2001  Jan Hubicka  <jh@suse.cz>
     5032001-01-13  Jan Hubicka  <jh@suse.cz>
    66504
    67505        * i386.h (i386_optab): Fix pusha and ret templates.
     
    118556        * i386.h (i386_optab): Replace "Imm" with "EncImm".
    119557        (i386_regtab): Add flags field.
    120        
     558
    1215592000-12-12  Nick Clifton  <nickc@redhat.com>
    122560
     
    143581        (ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4, ISA_MIPS5,
    144582        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.
    146584        (CPU_UNKNOWN): New constant to indicate unknown CPU.
    147585        (CPU_4K, CPU_MIPS32_4K): Rename the former to the latter,
     
    151589
    152590        * mips.h (INSN_ISA64, ISA_MIPS5, ISA_MIPS64): New
    153         definitions. 
     591        definitions.
    154592
    155593        * mips.h (CPU_SB1): New constant.
     
    165603
    1666042000-09-13  Anders Norlander  <anorland@acc.umu.se>
    167        
     605
    168606        * mips.h: Use defines instead of hard-coded processor numbers.
    169607        (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,
    171609        CPU_R5000, CPU_R6000, CPU_R8000, CPU_R10000, CPU_MIPS32, CPU_4K,
    172610        CPU_4KC, CPU_4KM, CPU_4KP): Define..
    173611        (OPCODE_IS_MEMBER): Use new defines.
    174         (OP_MASK_SEL, OP_SH_SEL): Define.
     612        (OP_MASK_SEL, OP_SH_SEL): Define.
    175613        (OP_MASK_CODE20, OP_SH_CODE20): Define.
    176         Add 'P' to used characters.
    177         Use 'H' for coprocessor select field.
     614        Add 'P' to used characters.
     615        Use 'H' for coprocessor select field.
    178616        Use 'm' for 20 bit breakpoint code.
    179         Document new arg characters and add to used characters.
    180         (INSN_MIPS32): New define for MIPS32 extensions.
    181         (OPCODE_IS_MEMBER): Recognize MIPS32 instructions.
     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.
    182620
    1836212000-09-05  Alan Modra  <alan@linuxcare.com.au>
     
    359797        (CGEN_CPU_TABLE): flags: new field.
    360798        Add prototypes for new functions.
    361        
     799
    3628002000-02-24  Alan Modra  <alan@spri.levels.unisa.edu.au>
    363801
     
    477915
    478916        * hppa.h (pa_opcodes): Use 'fX' for first register operand
    479         in xmpyu. 
     917        in xmpyu.
    480918
    481919        * hppa.h (pa_opcodes): Fix mask for probe and probei.
     
    5631001        * hppa.h (pa_opcodes): Mark all PA2.0 opcodes with FLAG_STRICT.
    5641002
    565         * hppa.h (pa_opcodes):  Change xmpyu, fmpyfadd, 
     1003        * hppa.h (pa_opcodes):  Change xmpyu, fmpyfadd,
    5661004        and fmpynfadd to use 'J' and 'K' instead of 'E' and 'X'.
    5671005
     
    5911029
    5921030        * hppa.h (pa_opcodes): Move integer arithmetic instructions after
    593         integer logical instructions. 
     1031        integer logical instructions.
    5941032
    59510331999-05-28  Linus Nordberg  <linus.nordberg@canit.se>
     
    6081046Wed May 26 16:57:44 1999  Jeffrey A Law  (law@cygnus.com)
    6091047
    610         * hppa.h (pa_opcodes): Add second entry for "comb", "comib", 
     1048        * hppa.h (pa_opcodes): Add second entry for "comb", "comib",
    6111049        "addb", and "addib" to be used by the disassembler.
    6121050
     
    7191157
    7201158Mon Feb  1 21:09:14 1999  Catherine Moore  <clm@cygnus.com>
    721  
     1159
    7221160        * i386.h (d_Suf, x_Suf, sld_Suf, sldx_Suf, bwld_Suf):  Define.
    7231161        (x_FP, d_FP, dls_FP, sldx_FP):  Define.
     
    7421180        CGEN_MODE_UINT.
    7431181
    744 Sat Jan 16 01:29:25 1999  Jeffrey A Law  (law@cygnus.com)
     11821999-01-16  Jeffrey A Law  (law@cygnus.com)
    7451183
    7461184        * hppa.h (bv): Fix mask.
     
    7601198
    7611199        The following is part of a change made by Edith Epstein
    762         <eepstein@sophia.cygnus.com> as part of a project to merge in
    763         changes by HP; HP did not create ChangeLog entries.
     1200        <eepstein@sophia.cygnus.com> as part of a project to merge in
     1201        changes by HP; HP did not create ChangeLog entries.
    7641202
    7651203        * hppa.h (completer_chars): list of chars to not put a space
    766         after.
     1204        after.
    7671205
    7681206Sun Dec  6 13:21:34 1998  Ian Lance Taylor  <ian@cygnus.com>
    7691207
    7701208        * i386.h (i386_optab): Permit w suffix on processor control and
    771         status word instructions.
     1209        status word instructions.
    7721210
    77312111998-11-30  Doug Evans  <devans@casey.cygnus.com>
     
    8301268
    8311269        * hppa.h: Add "fid".
    832        
     1270
    8331271Sun Oct  4 21:00:00 1998  Alan Modra  <alan@spri.levels.unisa.edu.au>
    8341272
     
    8841322        * mn10300.h: Add "machine" field for instructions.
    8851323        (MN103, AM30): Define machine types.
    886        
     1324
    8871325Fri Jun 19 16:09:09 1998  Alan Modra  <alan@spri.levels.unisa.edu.au>
    8881326
     
    14891927
    14901928        * alpha.h: Don't include "bfd.h"; private relocation types are now
    1491         negative to minimize problems with shared libraries.  Organize
    1492         instruction subsets by AMASK extensions and PALcode
    1493         implementation.
     1929        negative to minimize problems with shared libraries.  Organize
     1930        instruction subsets by AMASK extensions and PALcode
     1931        implementation.
    14941932        (struct alpha_operand): Move flags slot for better packing.
    14951933
     
    15441982
    15451983        * v850.h (v850_operands): Add insert and extract fields, pointers
    1546         to functions used to handle unusual operand encoding.
     1984        to functions used to handle unusual operand encoding.
    15471985        (V850_OPERAND_REG, V850_OPERAND_SRG, V850_OPERAND_CC,
    1548         V850_OPERAND_SIGNED): Defined.
     1986        V850_OPERAND_SIGNED): Defined.
    15491987
    15501988Wed Aug 21 17:45:10 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
     
    15601998
    15611999        * mips.h (OP_SH_LOCC, OP_SH_HICC, OP_MASK_CC, OP_SH_COP1NORM,
    1562         OP_MASK_COP1NORM, OP_SH_COP1SPEC, OP_MASK_COP1SPEC,
    1563         OP_MASK_COP1SCLR, OP_MASK_COP1CMP, OP_SH_COP1CMP, OP_SH_FORMAT,
    1564         OP_MASK_FORMAT, OP_SH_TRUE, OP_MASK_TRUE, OP_SH_GE, OP_MASK_GE,
    1565         OP_SH_UNSIGNED, OP_MASK_UNSIGNED, OP_SH_HINT, OP_MASK_HINT):
    1566         Defined.
     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.
    15672005
    15682006Fri Aug 16 00:15:15 1996  Jeffrey A Law  (law@cygnus.com)
     
    15742012
    15752013        * d10v.h: Add some additional defines to support the
    1576         assembler in determining which operations can be done in parallel.
     2014        assembler in determining which operations can be done in parallel.
    15772015
    15782016Tue Aug  6 11:13:22 1996  Jeffrey A Law  (law@cygnus.com)
     
    15902028
    15912029        * d10v.h: Changes for divs, parallel-only instructions, and
    1592         signed numbers.
     2030        signed numbers.
    15932031
    15942032Mon Jul 22 11:21:15 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
     
    16122050Wed Jul  3 14:30:12 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
    16132051
    1614         * m68k.h (mcf5200): New macro.
     2052        * m68k.h (mcf5200): New macro.
    16152053        Document names of coldfire control registers.
    16162054
     
    17622200
    17632201        * mips.h: Added INSN_4100 flag to mark NEC VR4100 specific
    1764         instructions.
     2202        instructions.
    17652203
    17662204Mon Oct 16 10:28:15 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
  • branches/GNU/src/binutils/include/opcode/a29k.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* 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.
    33
    44This file is part of GDB and GAS.
     
    6363};
    6464
    65 #ifndef CONST
    66 #define CONST
    67 #endif /* CONST */
    68 
    69 static CONST struct a29k_opcode a29k_opcodes[] =
     65static const struct a29k_opcode a29k_opcodes[] =
    7066{
    7167
     
    283279};
    284280
    285 CONST unsigned int num_opcodes = (((sizeof a29k_opcodes) / (sizeof a29k_opcodes[0])) - 1);
     281const unsigned int num_opcodes = (((sizeof a29k_opcodes) / (sizeof a29k_opcodes[0])) - 1);
  • branches/GNU/src/binutils/include/opcode/alpha.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    8383{
    8484  /* The number of bits in the operand.  */
    85   int bits;
     85  unsigned int bits : 5;
    8686
    8787  /* How far the operand is left shifted in the instruction.  */
    88   int shift;
     88  unsigned int shift : 5;
    8989
    9090  /* The default relocation type for this operand.  */
    91   int default_reloc;
     91  signed int default_reloc : 16;
    9292
    9393  /* One bit syntax flags.  */
    94   unsigned flags;
     94  unsigned int flags : 16;
    9595
    9696  /* Insertion function.  This is used by the assembler.  To insert an
  • branches/GNU/src/binutils/include/opcode/arc.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    9999/* this is an "insert at front" linked list per Metaware spec
    100100   that new definitions override older ones.  */
    101 struct arc_opcode *arc_ext_opcodes;
     101extern struct arc_opcode *arc_ext_opcodes;
    102102
    103103struct arc_operand_value {
     
    118118  struct arc_ext_operand_value *next;
    119119  struct arc_operand_value operand;
    120 } *arc_ext_operands;
     120};
     121
     122extern struct arc_ext_operand_value *arc_ext_operands;
    121123
    122124struct arc_operand {
     
    314316int arc_opcode_supported PARAMS ((const struct arc_opcode *));
    315317int arc_opval_supported PARAMS ((const struct arc_operand_value *));
     318int arc_limm_fixup_adjust PARAMS ((arc_insn));
     319int arc_insn_is_j PARAMS ((arc_insn));
     320int arc_insn_not_jl PARAMS ((arc_insn));
     321int arc_operand_type PARAMS ((int));
     322struct arc_operand_value *get_ext_suffix PARAMS ((char *));
     323int arc_get_noshortcut_flag PARAMS ((void));
  • branches/GNU/src/binutils/include/opcode/avr.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    2626#define AVR_ISA_MUL   0x0040 /* device has new core (MUL, MOVW, ...) */
    2727#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[+] */
    2929#define AVR_ISA_SPM   0x0200 /* device can program itself */
     30#define AVR_ISA_BRK   0x0400 /* device has BREAK (on-chip debug) */
    3031#define AVR_ISA_EIND  0x0800 /* device has >128K program memory (none yet) */
    3132
    3233#define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM)
    3334#define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM)
    34 #define AVR_ISA_M83  (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)
    3536#define AVR_ISA_M603 (AVR_ISA_2xxx | AVR_ISA_MEGA)
    3637#define AVR_ISA_M103 (AVR_ISA_M603 | AVR_ISA_ELPM)
    3738#define AVR_ISA_M161 (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_LPMX | AVR_ISA_SPM)
    3839#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)
    3942
    4043#define AVR_ISA_ALL   0xFFFF
     
    8790   the disassembler will only see the first match.
    8891
    89    Remaining undefined opcodes (1700 total - some of them might work
     92   Remaining undefined opcodes (1699 total - some of them might work
    9093   as normal instructions if not all of the bits are decoded):
    9194
     
    101104   "10010101001x1000"    (2) 0x95[23]8
    102105   "1001010101xx1000"    (4) 0x95[4-7]8
    103    "1001010110x11000"    (2) 0x95[9b]8
     106   "1001010110111000"    (1) 0x95b8
    104107   "1001010111111000"    (1) 0x95f8 (`espm' removed in databook update)
    105108   "11111xxxxxxx1xxx" (1024) 0xf[8-9a-f][0-9a-f][8-9a-f]
     
    140143AVR_INSN (reti, "",    "1001010100011000", 1, AVR_ISA_1200, 0x9518)
    141144AVR_INSN (sleep,"",    "1001010110001000", 1, AVR_ISA_1200, 0x9588)
     145AVR_INSN (break,"",    "1001010110011000", 1, AVR_ISA_BRK,  0x9598)
    142146AVR_INSN (wdr,  "",    "1001010110101000", 1, AVR_ISA_1200, 0x95a8)
    143147AVR_INSN (spm,  "",    "1001010111101000", 1, AVR_ISA_SPM,  0x95e8)
  • branches/GNU/src/binutils/include/opcode/cgen.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* Header file for targets using CGEN: Cpu tools GENerator.
    22
    3 Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
     3Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
     4Free Software Foundation, Inc.
    45
    56This file is part of GDB, the GNU debugger, and the GNU Binutils.
     
    2728   Or perhaps one could duplicate its definition in another file.
    2829   Until such time, this file conditionally compiles definitions that require
    29    bfd_vma using BFD_VERSION.  */
     30   bfd_vma using __BFD_H_SEEN__.  */
    3031
    3132/* Enums must be defined before they can be used.
     
    203204  /* one of enum mach_attr */
    204205  int num;
     206  /* parameter from mach->cpu */
     207  unsigned int insn_chunk_bitsize;
    205208} CGEN_MACH;
    206209
     
    281284   The result is an error message or NULL if success.  */
    282285
    283 #ifdef BFD_VERSION
     286#ifdef __BFD_H_SEEN__
    284287typedef const char * (cgen_insert_fn)
    285288     PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *insn_,
     
    302305   The result is the length of the insn in bits or zero if not recognized.  */
    303306
    304 #ifdef BFD_VERSION
     307#ifdef __BFD_H_SEEN__
    305308typedef int (cgen_extract_fn)
    306309     PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *insn_,
     
    321324   LEN is the length of the insn, in bits.  */
    322325
    323 #ifdef BFD_VERSION
     326#ifdef __BFD_H_SEEN__
    324327typedef void (cgen_print_fn)
    325328     PARAMS ((CGEN_CPU_DESC, PTR info_, const CGEN_INSN *insn_,
     
    387390};
    388391
    389 #ifdef BFD_VERSION /* Don't require bfd.h unnecessarily.  */
     392#ifdef __BFD_H_SEEN__ /* Don't require bfd.h unnecessarily.  */
    390393typedef const char * (cgen_parse_operand_fn)
    391394     PARAMS ((CGEN_CPU_DESC,
     
    522525  /* Pointer to null keyword "" entry if present.  */
    523526  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];
    524532} CGEN_KEYWORD;
    525533
     
    567575extern const char *cgen_parse_keyword
    568576     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.  */
    570578extern const char *cgen_parse_signed_integer
    571579     PARAMS ((CGEN_CPU_DESC, const char **, int, long *));
     
    613621#define CGEN_OPERAND_NIL CGEN_OPERAND_MAX
    614622
     623/* A tree of these structs represents the multi-ifield
     624   structure of an operand's hw-index value, if it exists.  */
     625
     626struct cgen_ifld;
     627
     628typedef 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}
     639CGEN_MAYBE_MULTI_IFLD;
     640
    615641/* This struct defines each entry in the operand table.  */
    616642
     
    641667  unsigned char length;
    642668
     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;
    643674#if 0 /* ??? Interesting idea but relocs tend to get too complicated,
    644675         and ABI dependent, for simple table lookups to work.  */
     
    749780
    750781/* This should be at least as large as necessary for any target. */
    751 #define CGEN_MAX_SYNTAX_BYTES 40
     782#define CGEN_MAX_SYNTAX_ELEMENTS 48
    752783
    753784/* A target may know its own precise maximum.  Assert that it falls below
    754785   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
    764792typedef unsigned short CGEN_SYNTAX_CHAR_TYPE;
    765 #endif
    766793
    767794typedef struct
    768795{
    769   CGEN_SYNTAX_CHAR_TYPE syntax[CGEN_MAX_SYNTAX_BYTES];
     796  CGEN_SYNTAX_CHAR_TYPE syntax[CGEN_MAX_SYNTAX_ELEMENTS];
    770797} CGEN_SYNTAX;
    771798
     
    10211048  const CGEN_OPCODE *opcode;
    10221049  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)
    10231055};
    10241056
     
    11831215  unsigned int word_bitsize;
    11841216
     1217  /* Instruction chunk size (in bits), for purposes of endianness
     1218     conversion.  */
     1219  unsigned int insn_chunk_bitsize;
     1220
    11851221  /* Indicator if sizes are unknown.
    11861222     This is used by default_insn_bitsize,base_insn_bitsize if there is a
     
    12371273     PARAMS ((CGEN_CPU_DESC, int opindex_, const char **,
    12381274              CGEN_FIELDS *fields_));
    1239 #ifdef BFD_VERSION
     1275#ifdef __BFD_H_SEEN__
    12401276  const char * (*insert_operand)
    12411277     PARAMS ((CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_,
     
    12701306  void (*set_int_operand)
    12711307       PARAMS ((CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, int value_));
    1272 #ifdef BFD_VERSION
     1308#ifdef __BFD_H_SEEN__
    12731309  bfd_vma (*get_vma_operand)
    12741310       PARAMS ((CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_));
     
    13761412extern void CGEN_SYM (init_opcode_table) PARAMS ((CGEN_CPU_DESC cd_));
    13771413
     1414/* build the insn selection regex.
     1415   called by init_opcode_table */
     1416
     1417extern char * CGEN_SYM(build_insn_regex) PARAMS ((CGEN_INSN *insn_));
     1418
    13781419/* Initialize the ibld table for use.
    13791420   Called by init_asm/init_dis.  */
  • branches/GNU/src/binutils/include/opcode/convex.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* Information for instruction disassembly on the Convex.
    2    Copyright 1989, 1993 Free Software Foundation, Inc.
     2   Copyright 1989, 1993, 2002 Free Software Foundation, Inc.
    33
    44This file is part of GDB.
     
    1717along with this program; if not, write to the Free Software
    1818Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    19 
    20 #ifndef CONST
    21 #define CONST
    22 #endif  /* CONST */
    2319
    2420#define xxx 0
     
    6864#define TID 21
    6965
    70 CONST char *op[] = {
     66const char *op[] = {
    7167  "",
    7268  "v0\0v1\0v2\0v3\0v4\0v5\0v6\0v7",
     
    9389};
    9490
    95 CONST struct formstr format0[] = {
     91const struct formstr format0[] = {
    9692  {0,0,rrr,V,S,S},      /* mov */
    9793  {0,0,rrr,S,S,V},      /* mov */
     
    160156};
    161157
    162 CONST struct formstr format1[] = {
     158const struct formstr format1[] = {
    163159  {11,0,xxx,0,0,0},     /* exit */
    164160  {12,0,a3,0,0,0},      /* jmp */
     
    227223};
    228224
    229 CONST struct formstr format2[] = {
     225const struct formstr format2[] = {
    230226  {28,5,rr,A,A,0},      /* cvtw.b */
    231227  {28,6,rr,A,A,0},      /* cvtw.h */
     
    358354};
    359355
    360 CONST struct formstr format3[] = {
     356const struct formstr format3[] = {
    361357  {32,3,rr,V,V,0},      /* cvtd.s */
    362358  {31,4,rr,V,V,0},      /* cvts.d */
     
    425421};
    426422
    427 CONST struct formstr format4[] = {
     423const struct formstr format4[] = {
    428424  {46,0,nops,0,0,0},    /* nop */
    429425  {47,0,pcrel,0,0,0},   /* br */
     
    436432};
    437433
    438 CONST struct formstr format5[] = {
     434const struct formstr format5[] = {
    439435  {51,5,rr,V,V,0},      /* ldvi.b */
    440436  {51,6,rr,V,V,0},      /* ldvi.h */
     
    455451};
    456452
    457 CONST struct formstr format6[] = {
     453const struct formstr format6[] = {
    458454  {53,0,r,A,0,0},       /* ldsdr */
    459455  {54,0,r,A,0,0},       /* ldkdr */
     
    522518};
    523519
    524 CONST struct formstr format7[] = {
     520const struct formstr format7[] = {
    525521  {84,5,r,V,0,0},       /* sum.b */
    526522  {84,6,r,V,0,0},       /* sum.h */
     
    557553};
    558554
    559 CONST struct formstr formatx[] = {
    560   {0,0,0,0,0,0},
    561 };
    562 
    563 CONST struct formstr format1a[] = {
     555const struct formstr formatx[] = {
     556  {0,0,0,0,0,0},
     557};
     558
     559const struct formstr format1a[] = {
    564560  {91,0,imr,A,0,0},     /* halt */
    565561  {92,0,a4,0,0,0},      /* sysc */
     
    596592};
    597593
    598 CONST struct formstr format1b[] = {
     594const struct formstr format1b[] = {
    599595  {18,4,imr,S,0,0},     /* ld.d */
    600596  {18,10,imr,S,0,0},    /* ld.u */
     
    631627};
    632628
    633 CONST struct formstr e0_format0[] = {
     629const struct formstr e0_format0[] = {
    634630  {10,3,rrr,S,V,V},     /* sub.s */
    635631  {10,4,rrr,S,V,V},     /* sub.d */
     
    698694};
    699695
    700 CONST struct formstr e0_format1[] = {
     696const struct formstr e0_format1[] = {
    701697  {0,0,0,0,0,0},
    702698  {94,0,a3,0,0,0},      /* tst */
     
    765761};
    766762
    767 CONST struct formstr e0_format2[] = {
     763const struct formstr e0_format2[] = {
    768764  {28,5,rr,V,V,0},      /* cvtw.b */
    769765  {28,6,rr,V,V,0},      /* cvtw.h */
     
    896892};
    897893
    898 CONST struct formstr e0_format3[] = {
     894const struct formstr e0_format3[] = {
    899895  {32,11,rr,V,V,0},     /* cvtd.s.f */
    900896  {31,12,rr,V,V,0},     /* cvts.d.f */
     
    963959};
    964960
    965 CONST struct 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 CONST struct formstr e0_format5[] = {
     961const 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
     972const struct formstr e0_format5[] = {
    977973  {51,13,rr,V,V,0},     /* ldvi.b.f */
    978974  {51,14,rr,V,V,0},     /* ldvi.h.f */
     
    993989};
    994990
    995 CONST struct formstr e0_format6[] = {
     991const struct formstr e0_format6[] = {
    996992  {0,0,rxl,S,CIR,0},    /* mov */
    997993  {0,0,lr,CIR,S,0},     /* mov */
     
    10601056};
    10611057
    1062 CONST struct formstr e0_format7[] = {
     1058const struct formstr e0_format7[] = {
    10631059  {84,13,r,V,0,0},      /* sum.b.f */
    10641060  {84,14,r,V,0,0},      /* sum.h.f */
     
    10951091};
    10961092
    1097 CONST struct formstr e1_format0[] = {
     1093const struct formstr e1_format0[] = {
    10981094  {0,0,0,0,0,0},
    10991095  {0,0,0,0,0,0},
     
    11621158};
    11631159
    1164 CONST struct formstr e1_format1[] = {
     1160const struct formstr e1_format1[] = {
    11651161  {0,0,0,0,0,0},
    11661162  {0,0,0,0,0,0},
     
    12291225};
    12301226
    1231 CONST struct formstr e1_format2[] = {
     1227const struct formstr e1_format2[] = {
    12321228  {0,0,0,0,0,0},
    12331229  {0,0,0,0,0,0},
     
    13601356};
    13611357
    1362 CONST struct formstr e1_format3[] = {
     1358const struct formstr e1_format3[] = {
    13631359  {32,18,rr,V,V,0},     /* cvtd.s.t */
    13641360  {31,19,rr,V,V,0},     /* cvts.d.t */
     
    14271423};
    14281424
    1429 CONST struct 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 CONST struct formstr e1_format5[] = {
     1425const 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
     1436const struct formstr e1_format5[] = {
    14411437  {51,20,rr,V,V,0},     /* ldvi.b.t */
    14421438  {51,21,rr,V,V,0},     /* ldvi.h.t */
     
    14571453};
    14581454
    1459 CONST struct 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 CONST struct formstr e1_format7[] = {
     1455const 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
     1522const struct formstr e1_format7[] = {
    15271523  {84,20,r,V,0,0},      /* sum.b.t */
    15281524  {84,21,r,V,0,0},      /* sum.h.t */
  • branches/GNU/src/binutils/include/opcode/cris.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    5151  cris_ver_v0_3,
    5252
    53   /* Only for v3 or higher (ETRAX 1..4 and beyond).  */
     53  /* Only for v3 or higher (ETRAX 4 and beyond).  */
    5454  cris_ver_v3p,
    5555
     
    161161#define JUMP_PC_INCR_OPCODE \
    162162 (JUMP_INDIR_OPCODE + AUTOINCR_BIT * 0x0100 + REG_PC)
     163#define ADD_PC_INCR_OPCODE \
     164 (0xfa00 + (2 << 4) + AUTOINCR_BIT * 0x0100 + REG_PC)
    163165
    164166/* Nop.  */
  • branches/GNU/src/binutils/include/opcode/d10v.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* 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.
    33   Written by Martin Hunt (hunt@cygnus.com), Cygnus Support
    44
     
    182182#define RESTRICTED_NUM3 (0x80000)
    183183
     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
    184192/* Structure to hold information about predefined registers.  */
    185193struct pd_reg
     
    191199
    192200extern const struct pd_reg d10v_predefined_registers[];
    193 int d10v_reg_name_cnt();
     201int d10v_reg_name_cnt PARAMS ((void));
    194202
    195203/* an expressionS only has one register type, so we fake it */
  • branches/GNU/src/binutils/include/opcode/d30v.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    3333
    3434extern const struct pd_reg pre_defined_registers[];
    35 int reg_name_cnt();
     35int reg_name_cnt PARAMS ((void));
    3636
    3737/* the number of control registers */
  • branches/GNU/src/binutils/include/opcode/h8300.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* 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
    33   Free Software Foundation, Inc.
    44   Written by Steve Chamberlain <sac@cygnus.com>.
     
    2222
    2323/* Instructions are stored as a sequence of nibbles.
    24    If the nibble has value 15 or less then the representation is complete.
     24   If the nibble has value 15 or less than the representation is complete.
    2525   Otherwise, we record what it contains with several flags.  */
    2626
     
    4949#define L_P             0x08
    5050#define L_24            0x10
    51 #define MEMRELAX        0x20                    /* move insn which may relax */
     51#define MEMRELAX        0x20                    /* Move insn which may relax. */
    5252#define SRC             0x40
    5353#define DST             0x80
     
    6767#define DISPREG         0x100000
    6868#define IGNORE          0x200000
    69 #define E               0x400000                /* FIXME: end of nibble sequence? */
     69#define E               0x400000                /* FIXME: end of nibble sequence?  */
    7070#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. */
    7373#define CCR             0x4000000
    7474#define ABS             0x8000000
     
    7878#define MEMIND          0x80000000
    7979
    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)
    125128
    126129#if 1
    127 #define OR8 RS8         /* ??? OR as in One Register? */
     130#define OR8 RS8         /* ??? OR as in One Register?  */
    128131#define OR16 RS16
    129132#define OR32 RS32
     
    152155  struct arg args;
    153156  struct code data;
    154   int length;
    155   int noperands;
    156   int idx;
    157   int size;
    158157};
    159158
     
    161160
    162161#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}}}
    168167
    169168
     
    173172
    174173#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}}}
    176175
    177176#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}}}
    180179
    181180#define SOP(code, x,name) \
     
    184183#define NEW_SOP(code, in,x,name) \
    185184{code, in, x,  name
    186 #define EOP  ,0,0,0,0 }
     185#define EOP  }
    187186
    188187#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}}}
    191190
    192191#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}}}
    194193
    195194#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}}}
    202201
    203202
     
    216215
    217216
    218 #define O(op, size) (op*4+size)
     217#define O(op, size) (op * 4 + size)
    219218
    220219#define O_RECOMPILE 0
     
    306305#define O_STMAC 87
    307306#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.  */
    308319#define SB 0
    309320#define SW 1
     
    311322#define SN 3
    312323
    313 
    314324/* FIXME: Lots of insns have "E, 0, 0, 0, 0" in the nibble code sequences.
    315325   Methinks the zeroes aren't necessary.  Once confirmed, nuke 'em.  */
    316326
    317 struct h8_opcode h8_opcodes[] =
     327const struct h8_opcode h8_opcodes[] =
    318328{
    319329  TWOOP(O(O_ADD,SB),"add.b", 0x8, 0x0,0x8),
     
    334344  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,
    335345
    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,
    338348
    339349  BITOP(O(O_BAND,SB), IMM3|B30,"band",0x7,0x6,0x7,0xC,0x7,0xE,0x0),
     
    392402  NEW_SOP(O(O_DEC, SL),0,2,"dec.l") ,{{DBIT,RD32,E }},{{0x1,0xB,0x7|DBIT,RD32|B30,E}} EOP,
    393403
    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,20,"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,
    396406   
    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,
    402412   
    403413  NEW_SOP(O(O_EXTS,SW),0,2,"exts.w"),{{OR16,E,0}},{{0x1,0x7,0xD,OR16,E   }}EOP,
     
    420430  SOP(O(O_JSR,SB),8,"jsr"),{{SRC|MEMIND,E,0}},{{0x5,0xF,SRC|MEMIND,IGNORE,E,0,0,0,0}}EOP,
    421431
    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,
    439449
    440450  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,
     
    521531  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,
    522532
    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,
    525535
    526536  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,
     
    545555  SOP(O(O_SLEEP,SN),2,"sleep"),{{E,0,0}},{{ 0x0,0x1,0x8,0x0,E,0,0,0,0}} EOP,
    546556
    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,
    566576
    567577  SOP(O(O_SUB,SB),2,"sub.b"),{{RS8,RD8,E}},{{ 0x1,0x8,RS8,RD8,E,0,0,0,0}}EOP,
     
    586596  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,
    587597
    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,
    590600
    591601  NEW_SOP(O(O_CLRMAC,SN),1,2,"clrmac"),{{E, 0, 0}},{{0x0,0x1,0xa,0x0,E}} EOP,
    592602  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,MACREG,E}},{{0x0,0x3,MACREG,RS32,E}} EOP,
    594   NEW_SOP(O(O_STMAC,SL),1,2,"stmac"),{{MACREG,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, 
    595605  NEW_SOP(O(O_LDM,SL),0,6,"ldm.l"),{{RSINC, RS32, E}},{{ 0x0,0x1,IGNORE,0x0,0x6,0xD,0x7,IGNORE,E}}EOP,
    596606  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}}}
    598608};
    599609#else
    600 extern struct h8_opcode h8_opcodes[];
     610extern const struct h8_opcode h8_opcodes[];
    601611#endif
  • branches/GNU/src/binutils/include/opcode/hppa.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* Table of opcodes for the PA-RISC.
    22   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000,
    3    2001
     3   2001, 2002
    44   Free Software Foundation, Inc.
    55
     
    171171
    172172   cx   indexed load completer.
     173   cX   indexed load completer.  Like cx, but emits a space after
     174        in disassembler.
    173175   cm   short load and store completer.
     176   cM   short load and store completer.  Like cm, but emits a space
     177        after in disassembler.
    174178   cq   long load and store completer (like cm, but inserted into a
    175179        different location in the target instruction).
    176180   cs   store bytes short completer.
     181   cA   store bytes short completer.  Like cs, but emits a space
     182        after in disassembler.
    177183   ce   long load/store completer for LDW/STW with a different encoding than the
    178184        others
     
    266272
    267273
     274#if 0
    268275/* List of characters not to put a space after.  Note that
    269276   "," is included, as the "spopN" operations use literal
    270277   commas in their completer sections.  */
    271278static const char *const completer_chars = ",CcY<>?!@+&U~FfGHINnOoZMadu|/=0123%e$m}";
     279#endif
    272280
    273281/* The order of the opcodes in this table is significant:
     
    285293{ "ldi",        0x34000000, 0xffe00000, "l,x", pa20w, 0},/* ldo val(r0),r */
    286294{ "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},
    291295
    292296{ "cmpib",      0xec000000, 0xfc000000, "?Qn5,b,w", pa20, FLAG_STRICT},
     
    302306   assembler.  */
    303307{ "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},
    305309{ "addb",       0xa0000000, 0xfc000000, "?@nx,b,w", pa10, 0}, /* addb{tf} */
    306310/* This entry is for the disassembler only.  It will never be used by
    307311   assembler.  */
    308312{ "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},
    310314{ "addib",      0xa4000000, 0xfc000000, "?@n5,b,w", pa10, 0}, /* addib{tf}*/
    311315/* This entry is for the disassembler only.  It will never be used by
     
    328332{ "ldw",        0x0c000080, 0xfc0013c0, "cxccx(s,b),t", pa10, FLAG_STRICT},
    329333{ "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},
    330336{ "ldw",        0x0c0010a0, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
    331337{ "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},
    334338{ "ldw",        0x4c000000, 0xfc000000, "ce<(b),x", pa20w, FLAG_STRICT},
    335339{ "ldw",        0x4c000000, 0xfc000000, "ceJ(s,b),x", pa10, FLAG_STRICT},
     
    343347{ "ldh",        0x0c000040, 0xfc0013c0, "cxccx(s,b),t", pa10, FLAG_STRICT},
    344348{ "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},
    345351{ "ldh",        0x0c001060, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
    346352{ "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},
    349353{ "ldh",        0x44000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT},
    350354{ "ldh",        0x44000000, 0xfc000000, "j(s,b),x", pa10, 0},
     
    352356{ "ldb",        0x0c000000, 0xfc0013c0, "cxccx(s,b),t", pa10, FLAG_STRICT},
    353357{ "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},
    354360{ "ldb",        0x0c001020, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
    355361{ "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},
    358362{ "ldb",        0x40000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT},
    359363{ "ldb",        0x40000000, 0xfc000000, "j(s,b),x", pa10, 0},
     
    365369{ "std",        0x70000000, 0xfc000002, "cqx,&(b)", pa20w, FLAG_STRICT},
    366370{ "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},
    367373{ "stw",        0x0c0012a0, 0xfc0013ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
    368374{ "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},
    371375{ "stw",        0x6c000000, 0xfc000000, "cex,<(b)", pa20w, FLAG_STRICT},
    372376{ "stw",        0x6c000000, 0xfc000000, "cex,J(s,b)", pa10, FLAG_STRICT},
     
    378382{ "stw",        0x68000000, 0xfc000000, "x,j(s,b)", pa10, 0},
    379383{ "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},
    380386{ "sth",        0x0c001260, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
    381387{ "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},
    384388{ "sth",        0x64000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
    385389{ "sth",        0x64000000, 0xfc000000, "x,j(s,b)", pa10, 0},
    386390{ "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},
    387393{ "stb",        0x0c001220, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
    388394{ "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},
    391395{ "stb",        0x60000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
    392396{ "stb",        0x60000000, 0xfc000000, "x,j(s,b)", pa10, 0},
     
    396400{ "stwm",       0x6c000000, 0xfc000000, "x,j(s,b)", pa10, 0},
    397401{ "stwm",       0x6c000000, 0xfc000000, "x,j(b)", pa10, 0},
    398 { "ldwx",       0x0c000080, 0xfc001fc0, "cxx(s,b),t", pa10, 0},
    399 { "ldwx",       0x0c000080, 0xfc001fc0, "cxx(b),t", pa10, 0},
    400 { "ldhx",       0x0c000040, 0xfc001fc0, "cxx(s,b),t", pa10, 0},
    401 { "ldhx",       0x0c000040, 0xfc001fc0, "cxx(b),t", pa10, 0},
    402 { "ldbx",       0x0c000000, 0xfc001fc0, "cxx(s,b),t", pa10, 0},
    403 { "ldbx",       0x0c000000, 0xfc001fc0, "cxx(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},
    404408{ "ldwa",       0x0c000180, 0xfc00d3c0, "cxccx(b),t", pa10, FLAG_STRICT},
    405409{ "ldwa",       0x0c001180, 0xfc00d3c0, "cmcc5(b),t", pa10, FLAG_STRICT},
     410{ "ldwa",       0x0c0011a0, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT},
    406411{ "ldcw",       0x0c0001c0, 0xfc0013c0, "cxcdx(s,b),t", pa10, FLAG_STRICT},
    407412{ "ldcw",       0x0c0001c0, 0xfc0013c0, "cxcdx(b),t", pa10, FLAG_STRICT},
    408413{ "ldcw",       0x0c0011c0, 0xfc0013c0, "cmcd5(s,b),t", pa10, FLAG_STRICT},
    409414{ "ldcw",       0x0c0011c0, 0xfc0013c0, "cmcd5(b),t", pa10, FLAG_STRICT},
     415{ "stwa",       0x0c001380, 0xfc00d3c0, "cmcCx,V(b)", pa10, FLAG_STRICT},
    410416{ "stwa",       0x0c0013a0, 0xfc00d3ff, "cocCx,@(b)", pa20, FLAG_STRICT},
    411 { "stwa",       0x0c001380, 0xfc00d3c0, "cmcCx,V(b)", pa10, FLAG_STRICT},
    412417{ "stby",       0x0c001300, 0xfc0013c0, "cscCx,V(s,b)", pa10, FLAG_STRICT},
    413418{ "stby",       0x0c001300, 0xfc0013c0, "cscCx,V(b)", pa10, FLAG_STRICT},
    414419{ "ldda",       0x0c000100, 0xfc00d3c0, "cxccx(b),t", pa20, FLAG_STRICT},
    415420{ "ldda",       0x0c001100, 0xfc00d3c0, "cmcc5(b),t", pa20, FLAG_STRICT},
     421{ "ldda",       0x0c001120, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT},
    416422{ "ldcd",       0x0c000140, 0xfc0013c0, "cxcdx(s,b),t", pa20, FLAG_STRICT},
    417423{ "ldcd",       0x0c000140, 0xfc0013c0, "cxcdx(b),t", pa20, FLAG_STRICT},
     
    422428{ "stda",       0x0c0013c0, 0xfc0013c0, "cmcCx,V(s,b)", pa20, FLAG_STRICT},
    423429{ "stda",       0x0c0013c0, 0xfc0013c0, "cmcCx,V(b)", pa20, FLAG_STRICT},
    424 { "ldwax",      0x0c000180, 0xfc00dfc0, "cxx(b),t", pa10, 0},
    425 { "ldcwx",      0x0c0001c0, 0xfc001fc0, "cxx(s,b),t", pa10, 0},
    426 { "ldcwx",      0x0c0001c0, 0xfc001fc0, "cxx(b),t", pa10, 0},
    427 { "ldws",       0x0c001080, 0xfc001fc0, "cm5(s,b),t", pa10, 0},
    428 { "ldws",       0x0c001080, 0xfc001fc0, "cm5(b),t", pa10, 0},
    429 { "ldhs",       0x0c001040, 0xfc001fc0, "cm5(s,b),t", pa10, 0},
    430 { "ldhs",       0x0c001040, 0xfc001fc0, "cm5(b),t", pa10, 0},
    431 { "ldbs",       0x0c001000, 0xfc001fc0, "cm5(s,b),t", pa10, 0},
    432 { "ldbs",       0x0c001000, 0xfc001fc0, "cm5(b),t", pa10, 0},
    433 { "ldwas",      0x0c001180, 0xfc00dfc0, "cm5(b),t", pa10, 0},
    434 { "ldcws",      0x0c0011c0, 0xfc001fc0, "cm5(s,b),t", pa10, 0},
    435 { "ldcws",      0x0c0011c0, 0xfc001fc0, "cm5(b),t", pa10, 0},
    436 { "stws",       0x0c001280, 0xfc001fc0, "cmx,V(s,b)", pa10, 0},
    437 { "stws",       0x0c001280, 0xfc001fc0, "cmx,V(b)", pa10, 0},
    438 { "sths",       0x0c001240, 0xfc001fc0, "cmx,V(s,b)", pa10, 0},
    439 { "sths",       0x0c001240, 0xfc001fc0, "cmx,V(b)", pa10, 0},
    440 { "stbs",       0x0c001200, 0xfc001fc0, "cmx,V(s,b)", pa10, 0},
    441 { "stbs",       0x0c001200, 0xfc001fc0, "cmx,V(b)", pa10, 0},
    442 { "stwas",      0x0c001380, 0xfc00dfc0, "cmx,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},
    443449{ "stdby",      0x0c001340, 0xfc0013c0, "cscCx,V(s,b)", pa20, FLAG_STRICT},
    444450{ "stdby",      0x0c001340, 0xfc0013c0, "cscCx,V(b)", pa20, FLAG_STRICT},
    445 { "stbys",      0x0c001300, 0xfc001fc0, "csx,V(s,b)", pa10, 0},
    446 { "stbys",      0x0c001300, 0xfc001fc0, "csx,V(b)", pa10, 0},
     451{ "stbys",      0x0c001300, 0xfc001fc0, "cAx,V(s,b)", pa10, 0},
     452{ "stbys",      0x0c001300, 0xfc001fc0, "cAx,V(b)", pa10, 0},
    447453
    448454/* Immediate instructions.  */
     
    483489{ "addibt",     0xa4000000, 0xfc000000, "?dn5,b,w", pa10, 0},
    484490{ "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},
    485493{ "bb",         0xc0006000, 0xffe06000, "?Bnx,!,w", pa20, FLAG_STRICT},
    486494{ "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},
    489495{ "bvb",        0xc0004000, 0xffe04000, "?bnx,w", pa10, 0},
    490496{ "clrbts",     0xe8004005, 0xffffffff, "", pa20, FLAG_STRICT},
     
    702708/* Floating Point Coprocessor Instructions.  */
    703709 
    704 { "fldw",       0x24001020, 0xfc1f33a0, "cocc@(s,b),fT", pa20, FLAG_STRICT},
    705 { "fldw",       0x24001020, 0xfc1f33a0, "cocc@(b),fT", pa20, FLAG_STRICT},
    706710{ "fldw",       0x24000000, 0xfc001380, "cxccx(s,b),fT", pa10, FLAG_STRICT},
    707711{ "fldw",       0x24000000, 0xfc001380, "cxccx(b),fT", pa10, FLAG_STRICT},
    708712{ "fldw",       0x24001000, 0xfc001380, "cmcc5(s,b),fT", pa10, FLAG_STRICT},
    709713{ "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},
    710716{ "fldw",       0x5c000000, 0xfc000004, "y(b),fe", pa20w, FLAG_STRICT},
    711717{ "fldw",       0x58000000, 0xfc000000, "cJy(b),fe", pa20w, FLAG_STRICT},
    712718{ "fldw",       0x5c000000, 0xfc000004, "d(b),fe", pa20, FLAG_STRICT},
    713719{ "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},
    716720{ "fldd",       0x2c000000, 0xfc0013c0, "cxccx(s,b),ft", pa10, FLAG_STRICT},
    717721{ "fldd",       0x2c000000, 0xfc0013c0, "cxccx(b),ft", pa10, FLAG_STRICT},
    718722{ "fldd",       0x2c001000, 0xfc0013c0, "cmcc5(s,b),ft", pa10, FLAG_STRICT},
    719723{ "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},
    720726{ "fldd",       0x50000002, 0xfc000002, "cq&(b),fx", pa20w, FLAG_STRICT},
    721727{ "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},
    724728{ "fstw",       0x24000200, 0xfc001380, "cxcCfT,x(s,b)", pa10, FLAG_STRICT},
    725729{ "fstw",       0x24000200, 0xfc001380, "cxcCfT,x(b)", pa10, FLAG_STRICT},
    726730{ "fstw",       0x24001200, 0xfc001380, "cmcCfT,5(s,b)", pa10, FLAG_STRICT},
    727731{ "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},
    728734{ "fstw",       0x7c000000, 0xfc000004, "fE,y(b)", pa20w, FLAG_STRICT},
    729735{ "fstw",       0x78000000, 0xfc000000, "cJfe,y(b)", pa20w, FLAG_STRICT},
    730736{ "fstw",       0x7c000000, 0xfc000004, "fe,d(b)", pa20, FLAG_STRICT},
    731737{ "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},
    734738{ "fstd",       0x2c000200, 0xfc0013c0, "cxcCft,x(s,b)", pa10, FLAG_STRICT},
    735739{ "fstd",       0x2c000200, 0xfc0013c0, "cxcCft,x(b)", pa10, FLAG_STRICT},
    736740{ "fstd",       0x2c001200, 0xfc0013c0, "cmcCft,5(s,b)", pa10, FLAG_STRICT},
    737741{ "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},
    738744{ "fstd",       0x70000002, 0xfc000002, "cqfx,&(b)", pa20w, FLAG_STRICT},
    739745{ "fstd",       0x70000002, 0xfc000002, "cqfx,#(b)", pa20, FLAG_STRICT},
    740 { "fldwx",      0x24000000, 0xfc001f80, "cxx(s,b),fT", pa10, 0},
    741 { "fldwx",      0x24000000, 0xfc001f80, "cxx(b),fT", pa10, 0},
    742 { "flddx",      0x2c000000, 0xfc001fc0, "cxx(s,b),ft", pa10, 0},
    743 { "flddx",      0x2c000000, 0xfc001fc0, "cxx(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},
    744750{ "fstwx",      0x24000200, 0xfc001f80, "cxfT,x(s,b)", pa10, 0},
    745751{ "fstwx",      0x24000200, 0xfc001f80, "cxfT,x(b)", pa10, 0},
     
    816822{ "spop3",      0x10000600, 0xfc000600, "v,0Nx,b", pa10, 0},
    817823{ "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
    850862};
    851863
  • branches/GNU/src/binutils/include/opcode/i386.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    6363#define wlq_Suf (No_bSuf|No_sSuf|No_xSuf)
    6464#define lq_Suf (No_bSuf|No_wSuf|No_sSuf|No_xSuf)
     65#define wq_Suf (No_bSuf|No_lSuf|No_sSuf|No_xSuf)
    6566#define sl_Suf (No_bSuf|No_wSuf|No_xSuf|No_qSuf)
    6667#define sldx_Suf (No_bSuf|No_wSuf|No_qSuf)
     
    121122/* Intel Syntax next 5 insns */
    122123{"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} },
    124125{"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} },
    126127{"movsx",  2,   0x63, X, Cpu64,  l_Suf|Modrm|Rex64,             { Reg32|WordMem, Reg64, 0} },
    127128
     
    135136/* Intel Syntax next 4 insns */
    136137{"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} },
    138139/* These instructions are not particulary usefull, since the zero extend
    139140   32->64 is implicit, but we can encode them.  */
    140141{"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} },
    142143
    143144/* Push instructions.  */
     
    149150{"push",   1, 0x0fa0, X, Cpu386|CpuNo64, wl_Suf|Seg3ShortForm|DefaultSize, { SReg3, 0, 0 } },
    150151/* 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 } },
    157158
    158159{"pusha",  0,   0x60, X, Cpu186|CpuNo64, wl_Suf|DefaultSize,    { 0, 0, 0 } },
     
    165166{"pop",    1, 0x0fa1, X, Cpu386|CpuNo64, wl_Suf|Seg3ShortForm|DefaultSize, { SReg3, 0, 0 } },
    166167/* 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 } },
    171172
    172173{"popa",   0,   0x61, X, Cpu186|CpuNo64, wl_Suf|DefaultSize,            { 0, 0, 0 } },
     
    177178   In the 64bit code, xchg eax, eax is reused for new nop instruction.
    178179 */
    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 } },
    181182{"xchg",   2,   0x86, X, 0,      bwlq_Suf|W|Modrm,      { Reg, Reg|AnyMem, 0 } },
    182183{"xchg",   2,   0x86, X, 0,      bwlq_Suf|W|Modrm,      { Reg|AnyMem, Reg, 0 } },
    183184
    184185/* In/out from ports.  */
    185 {"in",     2,   0xe4, X, 0,      bwlq_Suf|W,            { Imm8, Acc, 0 } },
    186 {"in",     2,   0xec, X, 0,      bwlq_Suf|W,            { InOutPortReg, Acc, 0 } },
    187 {"in",     1,   0xe4, X, 0,      bwlq_Suf|W,            { Imm8, 0, 0 } },
    188 {"in",     1,   0xec, X, 0,      bwlq_Suf|W,            { InOutPortReg, 0, 0 } },
    189 {"out",    2,   0xe6, X, 0,      bwlq_Suf|W,            { Acc, Imm8, 0 } },
    190 {"out",    2,   0xee, X, 0,      bwlq_Suf|W,            { Acc, InOutPortReg, 0 } },
    191 {"out",    1,   0xe6, X, 0,      bwlq_Suf|W,            { Imm8, 0, 0 } },
    192 {"out",    1,   0xee, X, 0,      bwlq_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 } },
    193194
    194195/* Load effective address.  */
     
    211212{"sahf",   0,   0x9e, X, CpuNo64,NoSuf,                 { 0, 0, 0} },
    212213{"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} },
    214215{"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} },
    216217{"stc",    0,   0xf9, X, 0,      NoSuf,                 { 0, 0, 0} },
    217218{"std",    0,   0xfd, X, 0,      NoSuf,                 { 0, 0, 0} },
     
    371372/* Control transfer instructions.  */
    372373{"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} },
    374376/* Intel Syntax */
    375377{"call",   2,   0x9a, X, CpuNo64,wlq_Suf|JumpInterSegment|DefaultSize, { Imm16, Imm16|Imm32, 0} },
     
    382384#define JUMP_PC_RELATIVE 0xeb
    383385{"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} },
    385388/* Intel Syntax */
    386389{"jmp",    2,   0xea, X, CpuNo64,wl_Suf|JumpInterSegment, { Imm16, Imm16|Imm32, 0} },
     
    433436
    434437/* 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} },
    437442
    438443/* The loop instructions also use the address size prefix to select
     
    440445   instructions emit an address size prefix rather than a data size
    441446   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} },
    447457
    448458/* Set byte on flag instructions.  */
     
    483493{"scmp",   0,   0xa6, X, 0,      bwlq_Suf|W|IsString,   { 0, 0, 0} },
    484494{"scmp",   2,   0xa6, X, 0,      bwlq_Suf|W|IsString,   { AnyMem|EsSeg, AnyMem, 0} },
    485 {"ins",    0,   0x6c, X, Cpu186, bwlq_Suf|W|IsString,   { 0, 0, 0} },
    486 {"ins",    2,   0x6c, X, Cpu186, bwlq_Suf|W|IsString,   { InOutPortReg, AnyMem|EsSeg, 0} },
    487 {"outs",   0,   0x6e, X, Cpu186, bwlq_Suf|W|IsString,   { 0, 0, 0} },
    488 {"outs",   2,   0x6e, X, Cpu186, bwlq_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} },
    489499{"lods",   0,   0xac, X, 0,      bwlq_Suf|W|IsString,   { 0, 0, 0} },
    490500{"lods",   1,   0xac, X, 0,      bwlq_Suf|W|IsString,   { AnyMem, 0, 0} },
     
    554564{"sgdt",   1, 0x0f01, 0, Cpu286, wlq_Suf|Modrm,         { WordMem, 0, 0} },
    555565{"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} },
    559572
    560573{"verr",   1, 0x0f00, 4, Cpu286, w_Suf|Modrm|IgnoreSize,{ Reg16|ShortMem, 0, 0} },
     
    969982{"movd",     2, 0x660f7e,X,CpuSSE2,FP|Modrm,            { RegXMM, Reg32|LLongMem, 0 } },
    970983/* 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.  */
    971990{"movq",     2, 0x0f6f, X, CpuMMX, FP|Modrm,            { RegMMX|LongMem, RegMMX, 0 } },
    972991{"movq",     2, 0x0f7f, X, CpuMMX, FP|Modrm,            { RegMMX, RegMMX|LongMem, 0 } },
    973992{"movq",     2, 0xf30f7e,X,CpuSSE2,FP|Modrm,            { RegXMM|LLongMem, RegXMM, 0 } },
    974993{"movq",     2, 0x660fd6,X,CpuSSE2,FP|Modrm,            { RegXMM, RegXMM|LLongMem, 0 } },
    975 /* In the 64bit mode the short form mov immediate is redefined to have
    976    64bit displacement value.  */
    977994{"movq",   2,   0x88, X, Cpu64,  NoSuf|D|W|Modrm|Size64,{ Reg64, Reg64|AnyMem, 0 } },
    978995{"movq",   2,   0xc6, 0, Cpu64,  NoSuf|W|Modrm|Size64,  { Imm32S, Reg64|WordMem, 0 } },
     
    11381155{"movlps",    2, 0x0f12,    X, CpuSSE, FP|Modrm,        { LLongMem, RegXMM, 0 } },
    11391156{"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 } },
    11411158{"movntps",   2, 0x0f2b,    X, CpuSSE, FP|Modrm,        { RegXMM, LLongMem, 0 } },
    11421159{"movntq",    2, 0x0fe7,    X, CpuSSE, FP|Modrm,        { RegMMX, LLongMem, 0 } },
     
    11531170{"pavgw",     2, 0x0fe3,    X, CpuSSE, FP|Modrm,        { RegMMX|LLongMem, RegMMX, 0 } },
    11541171{"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 } },
    11591176{"pmaxsw",    2, 0x0fee,    X, CpuSSE, FP|Modrm,        { RegMMX|LLongMem, RegMMX, 0 } },
    11601177{"pmaxsw",    2, 0x660fee,  X, CpuSSE2,FP|Modrm,        { RegXMM|LLongMem, RegXMM, 0 } },
     
    11651182{"pminub",    2, 0x0fda,    X, CpuSSE, FP|Modrm,        { RegMMX|LLongMem, RegMMX, 0 } },
    11661183{"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 } },
    11691186{"pmulhuw",   2, 0x0fe4,    X, CpuSSE, FP|Modrm,        { RegMMX|LLongMem, RegMMX, 0 } },
    11701187{"pmulhuw",   2, 0x660fe4,  X, CpuSSE2,FP|Modrm,        { RegXMM|LLongMem, RegXMM, 0 } },
     
    12151232{"cmpunordsd",2, 0xf20fc2,  3, CpuSSE2, FP|Modrm|ImmExt,{ RegXMM|LongMem, RegXMM, 0 } },
    12161233{"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} },
    12171237{"cmpsd",     3, 0xf20fc2,  X, CpuSSE2, FP|Modrm,       { Imm8, RegXMM|LongMem, RegXMM } },
    12181238{"comisd",    2, 0x660f2f,  X, CpuSSE2, FP|Modrm,       { RegXMM|LongMem, RegXMM, 0 } },
     
    12311251{"movlpd",    2, 0x660f12,  X, CpuSSE2, FP|Modrm,       { LLongMem, RegXMM, 0 } },
    12321252{"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 } },
    12341254{"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} },
    12351258{"movsd",     2, 0xf20f10,  X, CpuSSE2, FP|Modrm,       { RegXMM|LongMem, RegXMM, 0 } },
    12361259{"movsd",     2, 0xf20f11,  X, CpuSSE2, FP|Modrm,       { RegXMM, RegXMM|LongMem, 0 } },
  • branches/GNU/src/binutils/include/opcode/i860.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    9797   The order of opcodes does not affect the disassembler.  */
    9898
    99 static struct i860_opcode i860_opcodes[] =
     99static const struct i860_opcode i860_opcodes[] =
    100100{
    101101/* REG-Format Instructions.  */
  • branches/GNU/src/binutils/include/opcode/ia64.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* 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> */
    54
    65#ifndef opcode_ia64_h
     
    98#include <sys/types.h>
    109
    11 #include <bfd.h>
     10#include "bfd.h"
    1211
    1312
     
    4039
    4140/* 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 */
    4443enum ia64_opnd
    4544  {
     
    4746
    4847    /* constants */
     48    IA64_OPND_AR_CSD,   /* application register csd (ar.csd) */
    4949    IA64_OPND_AR_CCV,   /* application register ccv (ar.ccv) */
    5050    IA64_OPND_AR_PFS,   /* application register pfs (ar.pfs) */
     
    134134    IA64_OPND_TGT25c,   /* signed 25-bit (ip + 16*bits 13-32, 36) */
    135135    IA64_OPND_TGT64,    /* 64-bit (ip + 16*bits 13-32, 36, 2-40(L)) */
     136    IA64_OPND_LDXMOV,   /* any symbol, generates R_IA64_LDXMOV.  */
    136137
    137138    IA64_OPND_COUNT     /* # of operand types (MUST BE LAST!) */
     
    288289    short ent_index;
    289290
    290     /* Opcode dependencies. */ 
     291    /* Opcode dependencies. */
    291292    const struct ia64_opcode_dependency *dependencies;
    292293  };
  • branches/GNU/src/binutils/include/opcode/m68hc11.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* 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)
    44
    55This file is part of GDB, GAS, and the GNU binutils.
     
    192192#define M6811_SPIF      0x80    /* SPI Transfer Complete flag */
    193193#define M6811_WCOL      0x40    /* Write Collision */
    194 #define M6811_MODF      0x20    /* Mode Fault */
     194#define M6811_MODF      0x10    /* Mode Fault */
    195195
    196196/* Flags of the ADCTL register.  */
     
    213213#define M6811_OC1M7     0x80    /* Output Compare 7 */
    214214#define M6811_OC1M6     0x40    /*                6 */
    215 #define M6811_OC1M5     0x40    /*                5 */
    216 #define M6811_OC1M4     0x40    /*                4 */
     215#define M6811_OC1M5     0x20    /*                5 */
     216#define M6811_OC1M4     0x10    /*                4 */
    217217#define M6811_OC1M3     0x08    /*                3 */
    218218
     
    342342#define M6812_OP_D_IDX        0x1000   /* Indirect indexed: [D,r] */
    343343#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 */
    345347#define M6811_OP_BITMASK      0x00010000 /* Bitmask:             #<val-8>    */
    346348#define M6811_OP_JUMP_REL     0x00020000 /* Pc-Relative:         <val-8>     */
     
    377379#define M6811_OP_LOW_ADDR     0x02000000
    378380
     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
    379388/* CPU identification.  */
    380389#define cpu6811 0x01
    381390#define cpu6812 0x02
     391#define cpu6812s 0x04
    382392
    383393/* The opcode table is an array of struct m68hc11_opcode.  */
     
    416426
    417427#endif /* _OPCODE_M68HC11_H */
    418 
  • branches/GNU/src/binutils/include/opcode/m88k.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1 /* Table of opcodes for the motorola 88k 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.
    33
    44This file is part of GDB and GAS.
     
    3535 *      are initialized by init_disasm().
    3636 *
    37  *                              Structure Format
    38  *
    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  *
    5337 *                              Revision History
    5438 *
     
    6246#include <stdio.h>
    6347
    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
     68typedef unsigned int UINT;
     69#define    WORD    long
     70#define    FLAG    unsigned
     71#define    STATE   short
    9972
    10073/* The next four equates define the priorities that the various classes
    10174 * of instructions have regarding writing results back into registers and
    102  * signalling exceptions.
    103  */
     75 * signalling exceptions.  */
     76
    10477/* PMEM is also defined in <sys/param.h> on Delta 88's.  Sigh!  */
    10578#undef PMEM
    10679
    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
    11294
    11395/* The instruction registers are an artificial mechanism to speed up
     
    123105 */
    124106
    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) */
     107struct 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
     144struct  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;                   
    153157};
    154158
     
    156160#define MEMSEGSIZE      (sizeof(struct mem_segs))/* size of mem_segs structure */
    157161
    158 
     162#if 0
    159163#define BRK_RD          (0x01)                  /* break on memory read */
    160164#define BRK_WR          (0x02)                  /* break on memory write */
    161165#define BRK_EXEC        (0x04)                  /* break on execution */
    162166#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
     169struct 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
     184extern struct mem_segs memory[];
     185extern struct PROCESSOR m78000;
     186
     187struct 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.  */
    350368
    351369#define SFU0       0x80000000
     
    361379#define CTRLMASK   0xfc00f800
    362380
    363 /* Operands types */
    364 
    365 enum operand_type {
     381/* Operands types.  */
     382
     383enum operand_type
     384{
    366385  HEX = 1,
    367386  REG = 2,
     
    369388  IND = 3,
    370389  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,
    374396  PCREL = 8,
    375397  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.  */
    381405
    382406#define HASHVAL     79
    383407
    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
     410typedef struct
     411{
     412  unsigned int offset;
     413  unsigned int width;
     414  enum operand_type type;
    395415} 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
     417struct 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.  */
    421435};
    422436
    423437typedef 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;
    429442} INSTAB;
    430443
     
    433446#define NO_OPERAND {0,0,0}
    434447
    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 };
     448extern const INSTAB  instructions[];
    919449
    920450/*
  • branches/GNU/src/binutils/include/opcode/mips.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* 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
    33   Free Software Foundation, Inc.
    44   Contributed by Ralph Campbell and OSF
     
    134134#define OP_SH_CODE19            6       /* 19 bit wait code.  */
    135135#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
    136172
    137173/* This structure holds information for a particular instruction.  */
     
    162198};
    163199
    164 /* These are the characters which may appears in the args field of an
     200/* These are the characters which may appear in the args field of an
    165201   instruction.  They appear in the order in which the fields appear
    166202   when the instruction is used.  Commas and parentheses in the args
     
    180216   "j" 16 bit signed immediate (OP_*_DELTA)
    181217   "k" 5 bit cache opcode in target register position (OP_*_CACHE)
     218       Also used for immediate operands in vr5400 vector insns.
    182219   "o" 16 bit signed offset (OP_*_DELTA)
    183220   "p" 16 bit PC relative branch target address (OP_*_DELTA)
     
    196233   "x" accept and ignore register name
    197234   "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.
    198244
    199245   Floating point instructions:
     
    210256   "E" 5 bit target register (OP_*_RT)
    211257   "G" 5 bit destination register (OP_*_RD)
     258   "H" 3 bit sel field for (d)mtc* and (d)mfc* (OP_*_SEL)
    212259   "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.
    214265
    215266   Macro instructions:
     
    221272   "l" 32 bit floating point constant in .lit4
    222273
     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
    223282   Other:
    224283   "()" parens surrounding optional value
    225284   ","  separates operands
     285   "[]" brackets around index for vector-op scalar operand specifier (vr5400)
     286   "+"  Start of extension sequence.
    226287
    227288   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"
    231296*/
    232297
     
    298363/* Instruction synchronize shared memory.  */
    299364#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
    300369
    301370/* Instruction is actually a macro.  It should be ignored by the
     
    305374/* Masks used to mark instructions to indicate which MIPS ISA level
    306375   they were introduced in.  ISAs, as defined below, are logical
    307    ORs of these bits, indicatingthat they support the instructions
     376   ORs of these bits, indicating that they support the instructions
    308377   defined at the given level.  */
    309378
    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
    318398
    319399/* Chip specific instructions.  These are bitmasks.  */
     
    327407/* Toshiba R3900 instruction.  */
    328408#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
    331421
    332422/* MIPS ISA defines, use instead of hardcoding ISA level.  */
     
    338428#define       ISA_MIPS4       (ISA_MIPS3 | INSN_ISA4)
    339429#define       ISA_MIPS5       (ISA_MIPS4 | INSN_ISA5)
     430
    340431#define       ISA_MIPS32      (ISA_MIPS2 | INSN_ISA32)
    341432#define       ISA_MIPS64      (ISA_MIPS5 | INSN_ISA32 | INSN_ISA64)
     433
     434#define       ISA_MIPS32R2    (ISA_MIPS32 | INSN_ISA32R2)
    342435
    343436/* CPU defines, use instead of hardcoding processor number. Keep this
    344437   in sync with bfd/archures.c in order for machine selection to work.  */
    345438#define CPU_UNKNOWN     0               /* Gas internal use.  */
    346 #define CPU_R2000       2000
    347439#define CPU_R3000       3000
    348440#define CPU_R3900       3900
     
    351443#define CPU_VR4100      4100
    352444#define CPU_R4111       4111
     445#define CPU_VR4120      4120
    353446#define CPU_R4300       4300
    354447#define CPU_R4400       4400
     
    356449#define CPU_R4650       4650
    357450#define CPU_R5000       5000
     451#define CPU_VR5400      5400
     452#define CPU_VR5500      5500
    358453#define CPU_R6000       6000
    359454#define CPU_R8000       8000
     
    362457#define CPU_MIPS16      16
    363458#define CPU_MIPS32      32
    364 #define CPU_MIPS32_4K   3204113         /* 32, 04, octal 'K'.  */
     459#define CPU_MIPS32R2    33
    365460#define CPU_MIPS5       5
    366461#define CPU_MIPS64      64
    367462#define CPU_SB1         12310201        /* octal 'SB', 01.  */
    368463
    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                                    \
    381471     || (cpu == CPU_R4650 && ((insn)->membership & INSN_4650) != 0)     \
    382472     || (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.  */
    386483
    387484/* This is a list of macro expanded instructions.
     
    509606  M_LWR_AB,
    510607  M_LWU_AB,
     608  M_MOVE,
    511609  M_MUL,
    512610  M_MUL_I,
     
    521619  M_REMU_3,
    522620  M_REMU_3I,
     621  M_DROL,
    523622  M_ROL,
     623  M_DROL_I,
    524624  M_ROL_I,
     625  M_DROR,
    525626  M_ROR,
     627  M_DROR_I,
    526628  M_ROR_I,
    527629  M_S_DA,
  • branches/GNU/src/binutils/include/opcode/ns32k.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* 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.
    33
    44This file is part of GAS, the GNU Assembler.
     
    3838   The operands in the source instruction are checked for inconsistent
    3939   semantics.
    40  
     40
    4141        F : 32 bit float        general form
    4242        L : 64 bit float            "
     
    8181*/
    8282struct ns32k_opcode {
    83   char *name;
     83  const char *name;
    8484  unsigned char opcode_id_size; /* not used by the assembler */
    8585  unsigned char opcode_size;
    8686  unsigned long opcode_seed;
    87   char *operands;
     87  const char *operands;
    8888  unsigned char im_size;        /* not used by dissassembler */
    89   char *default_args;           /* default to those args when none given */
     89  const char *default_args;     /* default to those args when none given */
    9090  char default_modec;           /* default to this addr-mode when ambigous
    9191                                   ie when the argument of a general addr-mode
     
    104104                                /* particular opcode */
    105105{
    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   char *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 */
    110110};
    111111
    112112struct not                      /* ns32k opcode text */
    113113{
    114   char *            name;       /* opcode name: lowercase string  [key]  */
    115   struct not_wot    detail;     /* rest of opcode table          [datum] */
     114  const char *name;             /* opcode name: lowercase string  [key]  */
     115  struct not_wot detail;        /* rest of opcode table          [datum] */
    116116};
    117117
    118118/* Instructions look like this:
    119    
     119
    120120   basic instruction--1, 2, or 3 bytes
    121121   index byte for operand A, if operand A is indexed--1 byte
     
    131131
    132132   Each operand has a digit and a letter.
    133    
     133
    134134   The digit gives the position in the assembly language.  The letter,
    135135   one of the following, tells us what kind of operand it is.  */
     
    483483};
    484484
    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 
    489485#define MAX_ARGS 4
    490486#define ARG_LEN 50
  • branches/GNU/src/binutils/include/opcode/pj.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    3737
    3838                 
    39 typedef struct
     39typedef struct pj_opc_info_t
    4040{
    4141  short opcode;
     
    4343  char len;
    4444  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;
    4649} pj_opc_info_t;
  • branches/GNU/src/binutils/include/opcode/ppc.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* 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.
    34   Written by Ian Lance Taylor, Cygnus Support
    45
     
    9091
    9192/* 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)
    93133
    94134/* A macro to extract the major opcode from an instruction.  */
     
    123163     can accept any value).  */
    124164  unsigned long (*insert) PARAMS ((unsigned long instruction, long op,
     165                                   int dialect,
    125166                                   const char **errmsg));
    126167
     
    142183     this operand (i.e., the instruction does not match).  If the
    143184     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));
    145187
    146188  /* One bit syntax flags.  */
     
    231273#define PPC_OPERAND_VR (010000)
    232274
     275/* This operand is for the DS field in a DS form instruction.  */
     276#define PPC_OPERAND_DS (020000)
    233277
    234278
  • branches/GNU/src/binutils/include/opcode/sparc.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* 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
    33   Free Software Foundation, Inc.
    44
     
    2121Boston, MA 02111-1307, USA.  */
    2222
    23 #include <ansidecl.h>
     23#include "ansidecl.h"
    2424
    2525/* The SPARC opcode table (and other related data) is defined in
  • branches/GNU/src/binutils/include/opcode/tic54x.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    202002111-1307, USA.  */
    2121
    22 #ifndef _TIC54X_H_
    23 #define _TIC54X_H_
     22#ifndef _opcode_tic54x_h_
     23#define _opcode_tic54x_h_
    2424
    2525typedef struct _symbol
     
    8787  /* The opcode mnemonic */
    8888  const char *name;
    89 
    9089  unsigned int words; /* insn size in words */
    9190  int minops, maxops; /* min/max operand count */
     
    142141#define FL_SMR      0x200 /* Smem read (for flagging write-only *+ARx */
    143142
     143#define FL_PAR      0x400 /* Parallel instruction. */
     144
    144145  unsigned short opcode2, mask2;   /* some insns have an extended opcode */
     146
     147  const char* parname;
     148  enum optype paroperand_types[MAX_OPERANDS];
    145149
    146150} template;
    147151
    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 
    159152extern const template tic54x_unknown_opcode;
    160153extern const template tic54x_optab[];
    161 extern const partemplate tic54x_paroptab[];
     154extern const template tic54x_paroptab[];
    162155extern const symbol mmregs[], regs[];
    163156extern const symbol condition_codes[], cc2_codes[], status_bits[];
    164157extern const symbol cc3_codes[];
    165158extern const char *misc_symbols[];
     159struct disassemble_info;
     160extern const template* tic54x_get_insn (struct disassemble_info *,
     161                                        bfd_vma, unsigned short, int *);
    166162
    167 #endif /* TIC54X_H */
     163#endif /* _opcode_tic54x_h_ */
  • branches/GNU/src/binutils/include/opcode/v850.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* 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.
    33   Written by J.T. Conklin, Cygnus Support
    44
     
    155155#define V850_NOT_R0             0x80
    156156
    157 /* CYGNUS LOCAL v850e */
    158157/* push/pop type instruction, V850E specific.  */
    159158#define V850E_PUSH_POP          0x100
Note: See TracChangeset for help on using the changeset viewer.