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
Files:
98 edited

Legend:

Unmodified
Added
Removed
  • branches/GNU/src/binutils/include/ChangeLog

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1 2001-06-07  Alan Modra  <amodra@bigpond.net.au>
    2 
    3         * Many files: Update copyright notices.
    4 
    5 2001-05-28  Philip Blundell  <philb@gnu.org>
    6 
    7         From 2001-05-11  Jakub Jelinek  <jakub@redhat.com>
    8         * elf/ia64.h (ELF_STRING_ia64_unwind_once): Define.
    9         (ELF_STRING_ia64_unwind_info_once): Define.
     12003-05-21  Nick Clifton  <nickc@redhat.com>
     2
     3        * bfdlink.h (struct bfd_link_hash_table): Fix typo in comment.
     4
     52003-05-09  Alan Modra  <amodra@bigpond.net.au>
     6
     7        * xtensa-isa-internal.h (xtensa_isa_module_struct): Remove const on
     8        gen_num_opcodes_fn return type.
     9
     102003-04-28  H.J. Lu <hjl@gnu.org>
     11
     12        * bfdlink.h (bfd_link_info): Add relax_finalizing.
     13
     142003-04-23  H.J. Lu <hjl@gnu.org>
     15
     16        * bfdlink.h (bfd_link_callbacks): Add error_handler.
     17
     182003-04-04  Svein E. Seldal  <Svein.Seldal@solidas.com>
     19
     20        * coff/tic4x.h: Namespace cleanup. Replace s/c4x/tic4x
     21        and s/c3x/tic3x/
     22        * coff/tc-tic4x.h: Ditto
     23        * opcode/tic4x.h: Ditto
     24
     252003-04-02  Bob Wilson  <bob.wilson@acm.org>
     26
     27        * xtensa-config.h: Remove comment indicating that this is a
     28        generated file.
     29
     302003-04-01  Bob Wilson  <bob.wilson@acm.org>
     31
     32        * dis-asm.h (print_insn_xtensa): Declare.
     33        * xtensa-config.h: New file.
     34        * xtensa-isa-internal.h: Likewise.
     35        * xtensa-isa.h: Likewise.
     36
     372003-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
     38
     39        * ansidecl.h (ATTRIBUTE_NONNULL, ATTRIBUTE_NULL_PRINTF,
     40        ATTRIBUTE_NULL_PRINTF_1, ATTRIBUTE_NULL_PRINTF_2,
     41        ATTRIBUTE_NULL_PRINTF_3, ATTRIBUTE_NULL_PRINTF_4,
     42        ATTRIBUTE_NULL_PRINTF_5): New.
     43        (ATTRIBUTE_PRINTF): Add ATTRIBUTE_NONNULL.
     44
     452003-03-17  Jan Hubicka  <jh@suse.cz>
     46
     47        * hashtab.h (htab_traverse_noresize): Declare.
     48
     492003-02-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
     50
     51        * libiberty.h: Document return value of physmem routines.
     52
     532003-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
     54
     55        * libiberty.h (physmem_total, physmem_available): Prototype.
     56
     572003-02-20  Daniel Jacobowitz  <drow@mvista.com>
     58
     59        * libiberty.h (lrealpath): Add declaration.
     60
     612003-01-31  Grant Grundler  <grundler@dsl2.external.hp.com>
     62
     63        * hppa.h (ldwa, ldda): Add ordered opcodes.
     64
     652003-01-26  Daniel Jacobowitz  <drow@mvista.com>
     66
     67        * hashtab.h (htab_alloc_with_arg, htab_free_with_arg): Add new types.
     68        (struct htab): Add alloc_arg, alloc_with_arg_f, free_with_arg_f.
     69        (htab_create_alloc_ex): New prototype.
     70        (htab_set_functions_ex): New prototype.
     71
     722003-01-25  Jakub Jelinek  <jakub@redhat.com>
     73
     74        * elf/sparc.h: Add TLS relocs.  Move R_SPARC_REV32 to 252.
     75
     762003-01-20  Svein E. Seldal  <Svein.Seldal@solidas.com>
     77
     78        * coff/tic4x.h (TICOFF_TARGET_MACHINE_GET): Fixed define bug
     79        * coff/ti.h (TICOFF_TARGET_MACHINE_GET): Added macros
     80
     812002-07-17  Geoffrey Keating  <geoffk@redhat.com>
     82
     83        * splay-tree.h (GTY): Define if undefined.
     84        (splay_tree_allocate_fn): Return PTR for compatibility, not void *.
     85        (struct splay_tree_node_s): Support gengtype.
     86        (struct splay_tree_s): Likewise.  Make allocate_data a PTR,
     87        not a void *.
     88
     892002-01-02  Ben Elliston  <bje@redhat.com>
     90
     91        * dis-asm.h (print_insn_iq2000): Declare.
     92
     932002-12-24    Dmitry Diky <diwil@mail.ru>
     94
     95        * dis-asm.h: Add msp430 disassembler prototype.
     96
     972002-12-27  Chris Demetriou  <cgd@broadcom.com>
     98
     99        * dis-asm.h (print_mips_disassembler_options): Prototype.
     100
     1012002-12-23  Alan Modra  <amodra@bigpond.net.au>
     102
     103        * bfdlink.h (struct bfd_link_info): Add "strip_discarded".
     104
     1052002-12-20  Alan Modra  <amodra@bigpond.net.au>
     106
     107        * bfdlink.h (struct bfd_link_info): Replace bfd_boolean fields with
     108        bit-fields.  Rearrange to put all like types together.
     109
     1102002-11-30  Alan Modra  <amodra@bigpond.net.au>
     111
     112        * bfdlink.h: Replace boolean with bfd_boolean.  Formatting.
     113
     1142002-11-23  Simon Burge  <simonb@wasabisystems.com>
     115
     116        * libiberty.h (basename): Add NetBSD to the list.
     117
     1182002-11-22  Daniel Jacobowitz  <drow@mvista.com>
     119
     120        * libiberty.h (make_relative_prefix): Add prototype.
     121
     1222002-11-16  Klee Dienes  <kdienes@apple.com>
     123
     124        * opcode/m88k.h (INSTAB): Remove 'next' field.
     125        (instruction): Remove definition; replace with extern declaration
     126        and mark as const.
     127
     1282002-11-14  Egor Duda  <deo@logos-m.ru>
     129
     130        * bfdlink.h (struct bfd_link_info): Add new boolean
     131        field pei386_runtime_pseudo_reloc.
     132
     1332002-10-26  Roger Sayle  <roger@eyesopen.com>
     134
     135        * partition.h:  Close the extern "C" scope when compiling with C++.
     136
     1372002-10-26  Roger Sayle  <roger@eyesopen.com>
     138            DJ Delorie <dj@redhat.com>
     139
     140        PR bootstrap/8351
     141        * getopt.h: Avoid prototyping getopt with no arguments in C++.
     142
     1432002-10-24  Nathan Tallent  <eraxxon@alumni.rice.edu>
     144
     145        * ansidecl.h (__STDC__): Add (__alpha && __cplusplus) to the
     146        list of platform compilers that may look, smell and act
     147        like __STDC__ but that may not define it.
     148
     1492002-10-11  David O'Brien  <obrien@FreeBSD.org>
     150
     151        * getopt.h: getopt is in unistd.h (based on SUSv2).
     152
     1532002-09-26  Jakub Jelinek  <jakub@redhat.com>
     154
     155        * elf/x86-64.h: Add TLS relocs.
     156
     1572002-09-26  Andrew Cagney  <ac131313@redhat.com>
     158
     159        * regs/: Delete directory.
     160
     1612002-09-19  Alexandre Oliva  <aoliva@redhat.com>
     162
     163        * libiberty.h (asprintf, vasprintf): Don't declare them if the
     164        corresponding HAVE_DECL_ macro is 1.
     165
     1662002-09-19  Jakub Jelinek  <jakub@redhat.com>
     167
     168        * elf/i386.h (R_386_TLS_TPOFF, R_386_TLS_IE, R_386_TLS_GOTIE):
     169        Define.
     170
     1712002-09-19  Nathan Tallent  <eraxxon@alumni.rice.edu>
     172
     173        * dis-asm.h: Remove (errant) trailing semicolon (;) from the
     174        extern "C" { } declaration.
     175
     1762002-09-04  Nick Clifton  <nickc@redhat.com>
     177
     178        * dis-asm.h (print_ppc_disassembler_options): Prototype.
     179
     1802002-08-28  Michael Hayes <m.hayes@elec.canterbury.ac.nz>
     181
     182        * coff/internal.h: Add new relocation types.
     183        * coff/ti.h: Add file-header flags for tic4x code.
     184        * dis-asm.h: Add standard disassembler for tic4x.
     185        * opcode/tic4x.h: New file.
     186        * coff/tic4x.h: New file
     187
     1882002-08-07  H.J. Lu <hjl@gnu.org>
     189
     190        * bfdlink.h (bfd_link_info): Add allow_undefined_version.
     191        (bfd_elf_version_expr): Add symver and script.
     192
     1932002-07-31  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
     194
     195        * bfdlink.h (bfd_link_common_skip_ar_symbols): New enum.
     196        (struct bfd_link_info): Add new field 'common_skip_ar_symbols'.
     197
     1982002-07-25  Richard Sandiford  <rsandifo@redhat.com>
     199
     200        * opcode/mips.h (CPU_R2000): Remove.
     201
     2022002-07-19  Denis Chertykov  <denisc@overta.ru>
     203            Matthew Green  <mrg@redhat.com>
     204
     205        * dis-asm.h (print_insn_ip2k): Declare.
     206
     2072002-07-10  Jakub Jelinek  <jakub@redhat.com>
     208
     209        * elf/common.h (SHT_GNU_LIBLIST, DT_GNU_PRELINKED,
     210        DT_GNU_CONFLICT*, DT_GNU_LIBLIST*): Define.
     211
     2122002-07-01  Alan Modra  <amodra@bigpond.net.au>
     213
     214        * bfdlink.h (struct bfd_sym_chain): Declare.
     215        (struct bfd_link_info): Add gc_sym_list.  Formatting fixes.
     216
     2172002-06-25  Alan Modra  <amodra@bigpond.net.au>
     218
     219        * demangle.h: #include "ansidecl.h" rather than #include <ansidecl.h>.
     220        * fibheap.h: Likewise.
     221        * hashtab.h: Likewise.
     222        * partition.h: Likewise.
     223        * sort.h: Likewise.
     224        * splay-tree.h: Likewise.
     225
     2262002-06-24  Alan Modra  <amodra@bigpond.net.au>
     227
     228        * libiberty.h (basename): Don't declare if HAVE_DECL_BASENAME.
     229        * getopt.h (getopt): Don't declare if HAVE_DECL_GETOPT.
     230
     2312002-06-18  Dave Brolley  <brolley@redhat.com>
     232
     233        From Catherine Moore:
     234        * dis-asm.h (print_insn_frv): New prototype.
     235
     2362002-06-09  Andrew Cagney  <cagney@redhat.com>
     237
     238        * remote-sim.h: Move to directory gdb/.
     239        * callback.h: Move to directory gdb/.
     240
     2412002-06-07  Charles Wilson  <cwilson@ece.gatech.edu>
     242
     243        * bfdlink.h (struct bfd_link_info): Change type of
     244        pei386_auto_import field to int so that -1 can mean enabled by
     245        default and 1 can mean enabled by command line switch.
     246
     2472002-06-06  DJ Delorie  <dj@redhat.com>
     248
     249        * hashtab.h (htab): Rearrange new members for backward
     250        compatibility.
     251        (htab_create): Don't use a macro that requires other headers.
     252
     2532002-06-05  Geoffrey Keating  <geoffk@redhat.com>
     254
     255        * hashtab.h (htab_create): Restore prototype for backward
     256        compatibility.
     257        (htab_try_create): Likewise.
     258
     2592002-05-22  Geoffrey Keating  <geoffk@redhat.com>
     260
     261        * hashtab.h (struct htab): Update for change to length specifier.
     262
     2632002-05-10  Geoffrey Keating  <geoffk@redhat.com>
     264
     265        * hashtab.h (GTY): Define if undefined.
     266        (htab_alloc): New typedef.
     267        (htab_free): New typedef.
     268        (struct htab): Support gengtype; allow user-specified memory
     269        allocation.
     270        (htab_create_alloc): New.
     271        (htab_create): Replace with #define.
     272        (htab_try_create): Delete.
     273
     2742002-05-31  Michal Ludvig  <mludvig@suse.cz>
     275
     276        * elf/dwarf2.h (DW_CFA_low_user, DW_CFA_high_user): Renamed
     277        to DW_CFA_lo_user, DW_CFA_hi_user respectively.
     278       
     2792002-05-28  Kuang Hwa Lin <kuang@sbcglobal.net>
     280
     281        * dis-asm.h: Prototype print_insn_dlx.
     282
     2832002-05-23  Andrew Cagney  <ac131313@redhat.com>
     284
     285        * sim-d10v.h: Delete file.  Moved to include/gdb/.
     286
     2872002-05-23  Jakub Jelinek  <jakub@redhat.com>
     288
     289        * elf/common.h (PT_TLS, SHF_TLS, STT_TLS, DF_STATIC_TLS): Define.
     290        * elf/ia64.h (R_IA64_LTOFF_TPREL22): Renamed from R_IA64_LTOFF_TP22.
     291        * elf/i386.h: Add TLS relocs.
     292
     2932002-05-21  H.J. Lu  (hjl@gnu.org)
     294
     295        * bfdlink.h (bfd_link_info): Add allow_multiple_definition.
     296
     2972002-05-17  J"orn Rennecke <joern.rennecke@superh.com>
     298
     299        * dis-asm.h (print_insn_shl, print_insn_sh64l): Remove prototype.
     300
     3012002-04-16  David S. Miller  <davem@redhat.com>
     302
     303        * xregex2.h (__restrict_arr): Define to __restrict on GCC
     304        3.1 and later.  Do not redefine.
     305
     3062002-04-01  Phil Edwards  <pme@gcc.gnu.org>
     307
     308        * dyn-string.h:  Also allow IN_GLIBCPP_V3 to redefine names.
     309
     3102002-03-10  Daniel Jacobowitz <drow@mvista.com>
     311
     312        * gdb: New directory.
     313
     3142002-03-06  Andrew Cagney  <ac131313@redhat.com>
     315
     316        * floatformat.h (floatformat_arm_ext): Delete declaration.
     317
     3182002-02-21  Jim Blandy  <jimb@redhat.com>
     319
     320        Allow the user to specify functions for allocating memory for
     321        splay tree roots and nodes.
     322        * splay-tree.h (splay_tree_allocate_fn, splay_tree_deallocate_fn):
     323        New types.
     324        (splay_tree): New fields: `allocate', `deallocate', and
     325        `allocate_data'.
     326        (splay_tree_new_with_allocator): New function declaration.
     327
     3282002-02-15  Alan Modra  <amodra@bigpond.net.au>
     329
     330        Support arbitrary length fill patterns.
     331        * bfdlink.h (enum bfd_link_order_type): Remove bfd_fill_link_order.
     332        (struct bfd_link_order): Remove fill.  Add data.size.
     333
     3342002-02-08  Alexandre Oliva  <aoliva@redhat.com>
     335
     336        Contribute sh64-elf.
     337        2000-11-25  Hans-Peter Nilsson  <hpn@cygnus.com>
     338        * dis-asm.h (print_insn_sh64): New prototype.
     339        (print_insn_sh64l): New prototype.
     340        (print_insn_sh64x_media): New prototype.
     341
     3422002-02-05  Frank Ch. Eigler  <fche@redhat.com>
     343
     344        * dis-asm.h (disassemble_info): New field `insn_sets'.
     345        (INIT_DISASSEMBLE_INFO): Clear it.
     346
     3472002-02-05  Jason Merrill  <jason@redhat.com>
     348
     349        * demangle.h (cplus_demangle_v3): Add "options" parm.
     350        (cplus_demangle_v3_type): Remove prototype.
     351        (DMGL_VERBOSE): New macro.
     352        (DMGL_TYPES): New macro.
     353
     3542002-02-02  H.J. Lu  (hjl@gnu.org)
     355
     356        * demangle.h (cplus_demangle_v3_type): New prototype.
     357
     3582002-01-31  Ivan Guzvinec  <ivang@opencores.org>
     359
     360        * dis-asm.h : Add support for or32 targets
     361
     3622002-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
     363
     364        * libiberty.h (C_alloca): Add ATTRIBUTE_MALLOC.
     365
     3662002-01-27  David O'Brien  <obrien@FreeBSD.org>
     367
     368        * cgen.h (BFD_VERSION): Use BFD_VERSION_DATE instead.
     369
     3702001-12-14  Nick Clifton  <nickc@cambridge.redhat.com>
     371
     372        * dis-asm.h (INIT_DISASSEMBLE_INFO_NO_ARCH): Initialise the
     373        disassembler_options field (to NULL).
     374
     3752001-12-13  Jakub Jelinek  <jakub@redhat.com>
     376
     377        * bfdlink.h (struct bfd_link_info): Add eh_frame_hdr field.
     378
     3792001-12-07  Geoffrey Keating  <geoffk@redhat.com>
     380
     381        * dis-asm.h (print_insn_xstormy16): Declare.
     382
     3832001-12-06  Richard Henderson  <rth@redhat.com>
     384
     385        * demangle.h (no_demangling): New.
     386        (NO_DEMANGLING_STYLE_STRING): New.
     387
     3882001-11-14  Alan Modra  <amodra@bigpond.net.au>
     389
     390        * dis-asm.h (print_insn_i386): Declare.
     391
     3922001-11-11  Timothy Wall  <twall@alum.mit.edu>
     393
     394        * dis-asm.h: Fix comment to refer to octets rather than bytes.
     395
     3962001-10-30  Hans-Peter Nilsson  <hp@bitrange.com>
     397
     398        * dis-asm.h (print_insn_mmix): Add prototype.
     399
     4002001-10-24  Neil Booth  <neil@daikokuya.demon.co.uk>
     401
     402        * safe-ctype.h (_sch_isbasic, IS_ISOBASIC): New.
     403
     4042001-10-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
     405
     406        * libiberty.h (hex_init): Revert delete.
     407
     408        * libiberty.h (_hex_value): Const-ify.
     409        (hex_init): Delete.
     410
     4112001-10-16  Christopher Faylor  <cgf@redhat.com>
     412
     413        * filenames.h: Add cygwin to the list of dosish style path systems.
     414
     4152001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
     416
     417        * demangle.h (demangler_engine): Const-ify.
     418        * libiberty.h (buildargv): Likewise.
     419
     4202001-10-03  Vassili Karpov  <malc@pulsesoft.com>
     421
     422        * bfdlink.h (struct bfd_link_info): Add nocopyreloc field.
     423
     4242001-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
     425
     426        * libiberty.h (reconcat): New function.
     427
     4282001-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
     429
     430        * libiberty.h (concat, concat_length, concat_copy, concat_copy2,
     431        ACONCAT): Improve comments.
     432
     4332001-09-18  Alan Modra  <amodra@bigpond.net.au>
     434
     435        * objalloc.h (OBJALLOC_ALIGN): Define using offsetof.
     436
     4372001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
     438
     439        * libiberty.h (concat_length, concat_copy, concat_copy2,
     440        libiberty_concat_ptr, ACONCAT): New.
     441
     442        * libiberty.h (ASTRDUP): New macro.
     443        libiberty_optr, libiberty_nptr, libiberty_len): Declare.
     444
     4452001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
     446
     447        * ansidecl.h: Update comments reflecting previous change.
     448
     4492001-08-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
     450
     451        * ansidecl.h (VA_OPEN, VA_CLOSE): Allow multiple uses.
     452
     4532001-08-25  Nick Clifton  <nickc@cambridge.redhat.com>
     454
     455        * bfdlink.h (struct bfd_link_info): Change 'spare_dynamic_tags' to
     456        unsigned to remove a compile time warning message.
     457
     4582001-08-24  H.J. Lu  <hjl@gnu.org>
     459
     460        * bfdlink.h (bfd_link_hash_table_type): New. The linker hash
     461        table type, bfd_link_generic_hash_table and
     462        bfd_link_elf_hash_table.
     463        (bfd_link_hash_table): Add a new field, type, for the linker
     464        hash table type.
     465
     4662001-08-23  Jakub Jelinek  <jakub@redhat.com>
     467
     468        * bfdlink.h (struct bfd_link_info): Add combreloc and
     469        spare_dynamic_tags fields.
     470
     4712001-08-23  Lars Brinkhoff  <lars@nocrew.org>
     472
     473        * dyn-string.h, fibheap.h, partition.h, sort.h, splay-tree.h:
     474        replace "GNU CC" with "GCC".
     475
     4762001-08-21  Richard Henderson  <rth@redhat.com>
     477
     478        * fibheap.h: Tidy formatting.
     479        (fibnode_t): Limit degree to 31 bits to avoid warning.
     480
     4812001-08-20  Daniel Berlin  <dan@cgsoftware.com>
     482
     483        * fibheap.h: New file. Fibonacci heap.
     484
     4852001-08-20  Andrew Cagney  <ac131313@redhat.com>
     486
     487        * floatformat.h (floatformat_arm_ext): Document as deprecated.
     488        (floatformat_arm_ext_big, floatformat_arm_ext_littlebyte_bigword)
     489        (floatformat_ia64_spill_little, floatformat_ia64_quad_little)
     490        (floatformat_ia64_spill_big, floatformat_ia64_quad_big)
     491        (floatformat_m88110_harris_ext): Declare.
     492
     4932001-08-18  Zack Weinberg  <zackw@panix.com>
     494
     495        * ansidecl.h: Reorganize for readability, remove documentation
     496        of obsolete macros, document PARAMS and VPARAMS.  Add new
     497        macros VA_OPEN, VA_CLOSE, and VA_FIXEDARG for nicer variadic
     498        function implementation.
     499
     5002001-08-16  Richard Henderson  <rth@redhat.com>
     501
     502        * hashtab.h (htab_hash_string): Declare.
     503
     5042001-08-10  Andrew Cagney  <ac131313@redhat.com>
     505
     506        * libiberty.h (lbasename): Change function declaration to return a
     507        const char pointer.
     508
     5092001-08-02  Mark Kettenis  <kettenis@gnu.org>
     510
     511        * xregex.h (_REGEX_RE_COMP): Define.
     512        (re_comp): Define to xre_comp.
     513        (re_exec): Define to xre_exec.
     514
     5152001-08-02  Charles Wilson  <cwilson@ece.gatech.edu>
     516
     517        * bfdlink.h (struct bfd_link_info): add new boolean
     518        field pei386_auto_import.
     519
     5202001-07-18  Andreas Jaeger  <aj@suse.de>
     521
     522        * xregex2.h: Place under LGPL version 2.1.
     523
     5242001-07-10  Jeff Johnston  <jjohnstn@redhat.com>
     525
     526        * xregex.h: New file to support libiberty regex.
     527        * xregex2.h: Ditto.
     528
     5292001-06-15  Hans-Peter Nilsson  <hp@axis.com>
     530
     531        * bfdlink.h (struct bfd_link_info): New member export_dynamic.
     532
     5332001-05-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
     534
     535        * partition.h: Fix misspelling of `implementation'.
     536
     5372001-05-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
     538
     539        * ansidecl.h (NULL_PTR): Delete.
     540
     5412001-05-07  Zack Weinberg  <zackw@stanford.edu>
     542
     543        * demangle.h: Use PARAMS for all prototypes.
     544        * ternary.h: Use PARAMS for all prototypes.  Use PTR, not void *.
     545        Make arguments constant where possible.
     546
     5472001-05-07  Mark Mitchell  <mark@codesourcery.com>
     548
     549        * splay-tree.h (splay_tree_max): New function.
     550        (splay_tree_min): Likewise.
     551
     5522001-04-27  Johan Rydberg  <jrydberg@opencores.org>
     553
     554        * dis-asm.h (print_insn_openrisc): Add prototype.
     555
     5562001-04-15  Daniel Berlin  <dan@cgsoftware.com>
     557
     558        * ternary.h: New file - Ternary search tree header.
     559
     5602001-04-13  Jakub Jelinek  <jakub@redhat.com>
     561
     562        * bfdlink.h (bfd_link_discard): Add discard_sec_merge.
     563
     5642001-04-03  Zack Weinberg  <zackw@stanford.edu>
     565
     566        * ansidecl.h: All logic from gcc/gansidecl.h moved here.
     567
     5682001-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
     569
     570        * libiberty.h (alloca): Handle setting C_ALLOCA.
     571
     5722001-03-20  Jim Blandy  <jimb@redhat.com>
     573
     574        * demangle.h (enum gnu_v3_constructor_kinds,
     575        is_gnu_v3_mangled_ctor, enum gnu_v3_destructor_kinds,
     576        is_gnu_v3_mangled_dtor): New declarations.
     577
     5782001-03-14  Nick Clifton  <nickc@redhat.com>
     579
     580        * ansidecl.h: Fix copyright dates.
     581        * demangle.h: Fix copyright dates.
     582        * floatformat.h: Fix copyright dates.
     583        * fnmatch.h: Fix copyright dates.
     584        * getopt.h: Fix copyright dates.
     585        * libiberty.h: Add FSF copyright notice.
     586        * md5.h: Fix copyright dates.
     587        * obstack.h: Fix copyright dates.
     588        * splay-tree.h: Fix copyright dates.
     589
     5902001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
     591            John David Anglin  <dave@hiauly1.hia.nrc.ca>
     592
     593        * libiberty.h: Add lbasename.
     594
     5952001-03-06  Zack Weinberg  <zackw@stanford.edu>
     596
     597        * libiberty.h: Prototype C_alloca; define alloca to either
     598        __builtin_alloca or C_alloca as appropriate.
     599
     6002001-03-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
     601
     602        * safe-ctype.h (_sch_test): Cast enum bit to unsigned short int for pcc
     603        compatibility.
     604
     6052001-02-18  lars brinkhoff  <lars@nocrew.org>
     606
     607        * dis-asm.h: Add PDP-11 target.
     608
     6092001-02-09  Martin Schwidefsky  <schwidefsky@de.ibm.com>
     610
     611        * dis-asm.h: Add linux target for S/390.
    10612
    116132001-01-11  Peter Targett  <peter.targett@arccores.com>
     
    49651        * getopt.h obstack.h: Standarize copyright statement.
    50652
    51 2000-12-05  Richard Henderson  <rth@redhat.com>
     6532000-12-04  Richard Henderson  <rth@redhat.com>
    52654
    53655        * demangle.h: Change "new_abi" to "v3" everywhere.
    54656
    55 2000-11-29  Zack Weinberg  <zack@wolery.stanford.edu>
     6572000-11-22  Zack Weinberg  <zack@wolery.stanford.edu>
    56658
    57659        * libiberty.h: Move #includes to top.  Prototype xmalloc_failed.
     
    18032405Thu Oct 24 22:11:11 1991  John Gilmore  (gnu at cygnus.com)
    18042406
    1805         RS/6000 support, by Metin G. Ozisik, Mimi Phûông-Thåo Võ, and
     2407        RS/6000 support, by Metin G. Ozisik, Mimi Phûông-Thåo Võ, and
    18062408        John Gilmore.
    18072409
  • branches/GNU/src/binutils/include/ansidecl.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* ANSI and traditional C compatability macros
    2    Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000
     2   Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
    33   Free Software Foundation, Inc.
    44   This file is part of the GNU C Library.
     
    2222   ANSI C is assumed if __STDC__ is #defined.
    2323
    24    Macro        ANSI C definition       Traditional C definition
    25    -----        ---- - ----------       ----------- - ----------
    26    PTR          `void *'                `char *'
    27    LONG_DOUBLE  `long double'           `double'
    28    VOLATILE     `volatile'              `'
    29    SIGNED       `signed'                `'
    30    PTRCONST     `void *const'           `char *'
    31    ANSI_PROTOTYPES  1                   not defined
    32 
    33    CONST is also defined, but is obsolete.  Just use const.
    34 
    35    obsolete --     DEFUN (name, arglist, args)
    36 
    37         Defines function NAME.
    38 
    39         ARGLIST lists the arguments, separated by commas and enclosed in
    40         parentheses.  ARGLIST becomes the argument list in traditional C.
    41 
    42         ARGS list the arguments with their types.  It becomes a prototype in
    43         ANSI C, and the type declarations in traditional C.  Arguments should
    44         be separated with `AND'.  For functions with a variable number of
    45         arguments, the last thing listed should be `DOTS'.
    46 
    47    obsolete --     DEFUN_VOID (name)
    48 
    49         Defines a function NAME, which takes no arguments.
    50 
    51    obsolete --     EXFUN (name, (prototype))    -- obsolete.
    52 
    53         Replaced by PARAMS.  Do not use; will disappear someday soon.
    54         Was used in external function declarations.
    55         In ANSI C it is `NAME PROTOTYPE' (so PROTOTYPE should be enclosed in
    56         parentheses).  In traditional C it is `NAME()'.
    57         For a function that takes no arguments, PROTOTYPE should be `(void)'.
    58 
    59    obsolete --     PROTO (type, name, (prototype)    -- obsolete.
    60 
    61         This one has also been replaced by PARAMS.  Do not use.
    62 
    63    PARAMS ((args))
    64 
    65         We could use the EXFUN macro to handle prototype declarations, but
    66         the name is misleading and the result is ugly.  So we just define a
    67         simple macro to handle the parameter lists, as in:
    68 
    69               static int foo PARAMS ((int, char));
    70 
    71         This produces:  `static int foo();' or `static int foo (int, char);'
    72 
    73         EXFUN would have done it like this:
    74 
    75               static int EXFUN (foo, (int, char));
    76 
    77         but the function is not external...and it's hard to visually parse
    78         the function name out of the mess.   EXFUN should be considered
    79         obsolete; new code should be written to use PARAMS.
    80 
    81    DOTS is also obsolete.
    82 
    83    Examples:
    84 
    85         extern int printf PARAMS ((const char *format, ...));
    86 */
     24   Macro                ANSI C definition       Traditional C definition
     25   -----                ---- - ----------       ----------- - ----------
     26   ANSI_PROTOTYPES      1                       not defined
     27   PTR                  `void *'                `char *'
     28   PTRCONST             `void *const'           `char *'
     29   LONG_DOUBLE          `long double'           `double'
     30   const                not defined             `'
     31   volatile             not defined             `'
     32   signed               not defined             `'
     33   VA_START(ap, var)    va_start(ap, var)       va_start(ap)
     34
     35   Note that it is safe to write "void foo();" indicating a function
     36   with no return value, in all K+R compilers we have been able to test.
     37
     38   For declaring functions with prototypes, we also provide these:
     39
     40   PARAMS ((prototype))
     41   -- for functions which take a fixed number of arguments.  Use this
     42   when declaring the function.  When defining the function, write a
     43   K+R style argument list.  For example:
     44
     45        char *strcpy PARAMS ((char *dest, char *source));
     46        ...
     47        char *
     48        strcpy (dest, source)
     49             char *dest;
     50             char *source;
     51        { ... }
     52
     53
     54   VPARAMS ((prototype, ...))
     55   -- for functions which take a variable number of arguments.  Use
     56   PARAMS to declare the function, VPARAMS to define it.  For example:
     57
     58        int printf PARAMS ((const char *format, ...));
     59        ...
     60        int
     61        printf VPARAMS ((const char *format, ...))
     62        {
     63           ...
     64        }
     65
     66   For writing functions which take variable numbers of arguments, we
     67   also provide the VA_OPEN, VA_CLOSE, and VA_FIXEDARG macros.  These
     68   hide the differences between K+R <varargs.h> and C89 <stdarg.h> more
     69   thoroughly than the simple VA_START() macro mentioned above.
     70
     71   VA_OPEN and VA_CLOSE are used *instead of* va_start and va_end.
     72   Immediately after VA_OPEN, put a sequence of VA_FIXEDARG calls
     73   corresponding to the list of fixed arguments.  Then use va_arg
     74   normally to get the variable arguments, or pass your va_list object
     75   around.  You do not declare the va_list yourself; VA_OPEN does it
     76   for you.
     77
     78   Here is a complete example:
     79
     80        int
     81        printf VPARAMS ((const char *format, ...))
     82        {
     83           int result;
     84
     85           VA_OPEN (ap, format);
     86           VA_FIXEDARG (ap, const char *, format);
     87
     88           result = vfprintf (stdout, format, ap);
     89           VA_CLOSE (ap);
     90
     91           return result;
     92        }
     93
     94
     95   You can declare variables either before or after the VA_OPEN,
     96   VA_FIXEDARG sequence.  Also, VA_OPEN and VA_CLOSE are the beginning
     97   and end of a block.  They must appear at the same nesting level,
     98   and any variables declared after VA_OPEN go out of scope at
     99   VA_CLOSE.  Unfortunately, with a K+R compiler, that includes the
     100   argument list.  You can have multiple instances of VA_OPEN/VA_CLOSE
     101   pairs in a single function in case you need to traverse the
     102   argument list more than once.
     103
     104   For ease of writing code which uses GCC extensions but needs to be
     105   portable to other compilers, we provide the GCC_VERSION macro that
     106   simplifies testing __GNUC__ and __GNUC_MINOR__ together, and various
     107   wrappers around __attribute__.  Also, __extension__ will be #defined
     108   to nothing if it doesn't work.  See below.
     109
     110   This header also defines a lot of obsolete macros:
     111   CONST, VOLATILE, SIGNED, PROTO, EXFUN, DEFUN, DEFUN_VOID,
     112   AND, DOTS, NOARGS.  Don't use them.  */
    87113
    88114#ifndef _ANSIDECL_H
    89 
    90 #define _ANSIDECL_H     1
    91 
     115#define _ANSIDECL_H     1
    92116
    93117/* Every source file includes this file,
    94118   so they will all get the switch for lint.  */
    95119/* LINTLIBRARY */
    96 
    97 
    98 #if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32)
    99 /* All known AIX compilers implement these things (but don't always
    100    define __STDC__).  The RISC/OS MIPS compiler defines these things
    101    in SVR4 mode, but does not define __STDC__.  */
    102 
    103 #define PTR             void *
    104 #define PTRCONST        void *CONST
    105 #define LONG_DOUBLE     long double
    106 
    107 #ifndef IN_GCC
    108 #define AND             ,
    109 #define NOARGS          void
    110 #define VOLATILE        volatile
    111 #define SIGNED          signed
    112 #endif /* ! IN_GCC */
    113 
    114 #define PARAMS(paramlist)               paramlist
    115 #define ANSI_PROTOTYPES                 1
    116 
    117 #define VPARAMS(ARGS)                   ARGS
    118 #define VA_START(va_list,var)           va_start(va_list,var)
    119 
    120 /* These are obsolete.  Do not use.  */
    121 #ifndef IN_GCC
    122 #define CONST                           const
    123 #define DOTS                            , ...
    124 #define PROTO(type, name, arglist)      type name arglist
    125 #define EXFUN(name, proto)              name proto
    126 #define DEFUN(name, arglist, args)      name(args)
    127 #define DEFUN_VOID(name)                name(void)
    128 #endif /* ! IN_GCC */
    129 
    130 #else   /* Not ANSI C.  */
    131 
    132 #define PTR             char *
    133 #define PTRCONST        PTR
    134 #define LONG_DOUBLE     double
    135 
    136 #ifndef IN_GCC
    137 #define AND             ;
    138 #define NOARGS
    139 #define VOLATILE
    140 #define SIGNED
    141 #endif /* !IN_GCC */
    142 
    143 #ifndef const /* some systems define it in header files for non-ansi mode */
    144 #define const
    145 #endif
    146 
    147 #define PARAMS(paramlist)               ()
    148 
    149 #define VPARAMS(ARGS)                   (va_alist) va_dcl
    150 #define VA_START(va_list,var)           va_start(va_list)
    151 
    152 /* These are obsolete.  Do not use.  */
    153 #ifndef IN_GCC
    154 #define CONST
    155 #define DOTS
    156 #define PROTO(type, name, arglist)      type name ()
    157 #define EXFUN(name, proto)              name()
    158 #define DEFUN(name, arglist, args)      name arglist args;
    159 #define DEFUN_VOID(name)                name()
    160 #endif /* ! IN_GCC */
    161 
    162 #endif  /* ANSI C.  */
    163 
    164120
    165121/* Using MACRO(x,y) in cpp #if conditionals does not work with some
     
    181137#endif /* GCC_VERSION */
    182138
     139#if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32) || (defined(__alpha) && defined(__cplusplus))
     140/* All known AIX compilers implement these things (but don't always
     141   define __STDC__).  The RISC/OS MIPS compiler defines these things
     142   in SVR4 mode, but does not define __STDC__.  */
     143/* eraxxon@alumni.rice.edu: The Compaq C++ compiler, unlike many other
     144   C++ compilers, does not define __STDC__, though it acts as if this
     145   was so. (Verified versions: 5.7, 6.2, 6.3, 6.5) */
     146
     147#define ANSI_PROTOTYPES 1
     148#define PTR             void *
     149#define PTRCONST        void *const
     150#define LONG_DOUBLE     long double
     151
     152#define PARAMS(ARGS)            ARGS
     153#define VPARAMS(ARGS)           ARGS
     154#define VA_START(VA_LIST, VAR)  va_start(VA_LIST, VAR)
     155
     156/* variadic function helper macros */
     157/* "struct Qdmy" swallows the semicolon after VA_OPEN/VA_FIXEDARG's
     158   use without inhibiting further decls and without declaring an
     159   actual variable.  */
     160#define VA_OPEN(AP, VAR)        { va_list AP; va_start(AP, VAR); { struct Qdmy
     161#define VA_CLOSE(AP)            } va_end(AP); }
     162#define VA_FIXEDARG(AP, T, N)   struct Qdmy
     163 
     164#undef const
     165#undef volatile
     166#undef signed
     167
     168/* inline requires special treatment; it's in C99, and GCC >=2.7 supports
     169   it too, but it's not in C89.  */
     170#undef inline
     171#if __STDC_VERSION__ > 199901L
     172/* it's a keyword */
     173#else
     174# if GCC_VERSION >= 2007
     175#  define inline __inline__   /* __inline__ prevents -pedantic warnings */
     176# else
     177#  define inline  /* nothing */
     178# endif
     179#endif
     180
     181/* These are obsolete.  Do not use.  */
     182#ifndef IN_GCC
     183#define CONST           const
     184#define VOLATILE        volatile
     185#define SIGNED          signed
     186
     187#define PROTO(type, name, arglist)      type name arglist
     188#define EXFUN(name, proto)              name proto
     189#define DEFUN(name, arglist, args)      name(args)
     190#define DEFUN_VOID(name)                name(void)
     191#define AND             ,
     192#define DOTS            , ...
     193#define NOARGS          void
     194#endif /* ! IN_GCC */
     195
     196#else   /* Not ANSI C.  */
     197
     198#undef  ANSI_PROTOTYPES
     199#define PTR             char *
     200#define PTRCONST        PTR
     201#define LONG_DOUBLE     double
     202
     203#define PARAMS(args)            ()
     204#define VPARAMS(args)           (va_alist) va_dcl
     205#define VA_START(va_list, var)  va_start(va_list)
     206
     207#define VA_OPEN(AP, VAR)                { va_list AP; va_start(AP); { struct Qdmy
     208#define VA_CLOSE(AP)                    } va_end(AP); }
     209#define VA_FIXEDARG(AP, TYPE, NAME)     TYPE NAME = va_arg(AP, TYPE)
     210
     211/* some systems define these in header files for non-ansi mode */
     212#undef const
     213#undef volatile
     214#undef signed
     215#undef inline
     216#define const
     217#define volatile
     218#define signed
     219#define inline
     220
     221#ifndef IN_GCC
     222#define CONST
     223#define VOLATILE
     224#define SIGNED
     225
     226#define PROTO(type, name, arglist)      type name ()
     227#define EXFUN(name, proto)              name()
     228#define DEFUN(name, arglist, args)      name arglist args;
     229#define DEFUN_VOID(name)                name()
     230#define AND             ;
     231#define DOTS
     232#define NOARGS
     233#endif /* ! IN_GCC */
     234
     235#endif  /* ANSI C.  */
     236
    183237/* Define macros for some gcc attributes.  This permits us to use the
    184238   macros freely, and know that they will come into play for the
     
    215269#endif /* ATTRIBUTE_NORETURN */
    216270
     271/* Attribute `nonnull' was valid as of gcc 3.3.  */
     272#ifndef ATTRIBUTE_NONNULL
     273# if (GCC_VERSION >= 3003)
     274#  define ATTRIBUTE_NONNULL(m) __attribute__ ((__nonnull__ (m)))
     275# else
     276#  define ATTRIBUTE_NONNULL(m)
     277# endif /* GNUC >= 3.3 */
     278#endif /* ATTRIBUTE_NONNULL */
     279
     280/* Use ATTRIBUTE_PRINTF when the format specifier must not be NULL.
     281   This was the case for the `printf' format attribute by itself
     282   before GCC 3.3, but as of 3.3 we need to add the `nonnull'
     283   attribute to retain this behavior.  */
    217284#ifndef ATTRIBUTE_PRINTF
    218 #define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n)))
     285#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) ATTRIBUTE_NONNULL(m)
    219286#define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2)
    220287#define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3)
     
    224291#endif /* ATTRIBUTE_PRINTF */
    225292
     293/* Use ATTRIBUTE_NULL_PRINTF when the format specifier may be NULL.  A
     294   NULL format specifier was allowed as of gcc 3.3.  */
     295#ifndef ATTRIBUTE_NULL_PRINTF
     296# if (GCC_VERSION >= 3003)
     297#  define ATTRIBUTE_NULL_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n)))
     298# else
     299#  define ATTRIBUTE_NULL_PRINTF(m, n)
     300# endif /* GNUC >= 3.3 */
     301# define ATTRIBUTE_NULL_PRINTF_1 ATTRIBUTE_NULL_PRINTF(1, 2)
     302# define ATTRIBUTE_NULL_PRINTF_2 ATTRIBUTE_NULL_PRINTF(2, 3)
     303# define ATTRIBUTE_NULL_PRINTF_3 ATTRIBUTE_NULL_PRINTF(3, 4)
     304# define ATTRIBUTE_NULL_PRINTF_4 ATTRIBUTE_NULL_PRINTF(4, 5)
     305# define ATTRIBUTE_NULL_PRINTF_5 ATTRIBUTE_NULL_PRINTF(5, 6)
     306#endif /* ATTRIBUTE_NULL_PRINTF */
     307
    226308/* We use __extension__ in some places to suppress -pedantic warnings
    227309   about GCC extensions.  This feature didn't work properly before
     
    231313#endif
    232314
     315/* Bootstrap support:  Adjust certain macros defined by Autoconf,
     316   which are only valid for the stage1 compiler.  If we detect
     317   a modern version of GCC, we are probably in stage2 or beyond,
     318   so unconditionally reset the values.  Note that const, inline,
     319   etc. have been dealt with above.  */
     320#if (GCC_VERSION >= 2007)
     321# ifndef HAVE_LONG_DOUBLE
     322#  define HAVE_LONG_DOUBLE 1
     323# endif
     324#endif /* GCC >= 2.7 */
     325
    233326#endif  /* ansidecl.h   */
  • branches/GNU/src/binutils/include/aout/ChangeLog

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1 2001-06-07  Alan Modra  <amodra@bigpond.net.au>
    2 
    3         * Many files: Update copyright notices.
    4 
    5 Mon Apr  3 13:29:08 2000  Hans-Peter Nilsson  <hp@axis.com>
     12003-03-06  Elias Athanasopoulos  <elathan@phys.uoa.gr>
     2
     3        * aout64.h (BYTES_IN_WORD): Define if necessary.
     4
     52001-09-18  Alan Modra  <amodra@bigpond.net.au>
     6
     7        * aout64.h: Formatting fixes.
     8        (N_TXTADDR): Evaluate to a bfd_vma.
     9        (N_DATADDR): Avoid negative unsigned warning.
     10        * hp300hpux.h: Formatting fixes.
     11        (N_DATADDR): Avoid negative unsigned warning.
     12
     132000-04-03  Hans-Peter Nilsson  <hp@axis.com>
    614
    715        * aout64.h (RELOC_EXT_BITS_EXTERN_BIG): Wrap definition in #ifndef.
     
    1725        defined as 0.
    1826
    19 Sun Jun 28 11:33:48 1998  Peter Schauer  <pes@regent.e-technik.tu-muenchen.de>
     271998-06-28  Peter Schauer  <pes@regent.e-technik.tu-muenchen.de>
    2028
    2129        * stab.def:  Add N_ALIAS from SunPro F77.
    2230
    23 Mon Mar 11 12:15:52 1996  Ian Lance Taylor  <ian@cygnus.com>
     311996-03-11  Ian Lance Taylor  <ian@cygnus.com>
    2432
    2533        * stab.def: Use __define_stab_duplicate rather than __define_stab
     
    2836        stab.def.
    2937
    30 Fri Oct 27 17:47:16 1995  Niklas Hallqvist  <niklas@appli.se>
     381995-10-27  Niklas Hallqvist  <niklas@appli.se>
    3139
    3240        * aout64.h, host.h, hp300hpux.h, sun4.h: Changed PAGE_SIZE to
    3341        TARGET_PAGE_SIZE.
    3442
    35 Tue Sep 12 12:07:02 1995  Ian Lance Taylor  <ian@cygnus.com>
     431995-09-12  Ian Lance Taylor  <ian@cygnus.com>
    3644
    3745        * sun4.h (struct internal_sun4_dynamic_link): Change all fields
    3846        from long to unsigned long.
    3947
    40 Wed Jul 12 00:15:13 1995  Ken Raeburn  <raeburn@kr-pc.cygnus.com>
     481995-07-12  Ken Raeburn  <raeburn@kr-pc.cygnus.com>
    4149
    4250        * sun4.h (PAGE_SIZE): Undefine before defining.
    4351
    44 Thu Jun 16 14:22:55 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
     521994-09-04  Richard Earnshaw (rwe@pegasus.esprit.ec.org)
     53
     54        * aout64.h: Only define QMAGIC if it isn't already defined.
     55
     561994-06-16  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
    4557
    4658        * aout64.h (BMAGIC): Define.
    4759
    48 Sat Jun 11 16:16:09 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
     601994-06-11  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
    4961
    5062        Add weak symbols as an extension to a.out.
     
    5264        * stab.def: Update symbol value table.
    5365
    54 Thu Jun  2 17:13:38 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
     661994-06-02  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
    5567
    5668        * sun4.h (EXTERNAL_SUN4_DYNAMIC_DEBUGGER_SIZE): Correct from 28 to
    5769        24.  Fix up ld_got comment.
    5870
    59 Wed Mar 30 00:31:49 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
     711994-03-30  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
    6072
    6173        * dynix3.h:  Cleanup, adapt to current bfd version.
    6274
    63 Sat Feb 26 10:25:53 1994  Ian Lance Taylor  (ian@cygnus.com)
     751994-02-26  Ian Lance Taylor  (ian@cygnus.com)
    6476
    6577        * aout64.h: Add casts to avoid warnings from SVR4 cc.
    6678
    67 Fri Feb 11 12:56:04 1994  Stan Shebs  (shebs@andros.cygnus.com)
     791994-02-11  Stan Shebs  (shebs@andros.cygnus.com)
    6880
    6981        * ar.h (ARMAG, ARMAGB, ARFMAG): Change '\n' to '\012', for greater
    7082        portability.
    7183
    72 Fri Jan 21 00:59:06 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
     841994-01-21  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
    7385
    7486        * sun4.h: Added information about SunOS shared libraries.
    7587
    76 Fri Jan  7 08:20:13 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)
     881994-01-07  Jim Kingdon  (kingdon@deneb.cygnus.com)
    7789
    7890        * aout64.h (N_TXTADDR): Add comment regarding OMAGIC and NMAGIC.
    7991
    80 Sat Dec 25 14:55:41 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
     921993-12-25  Jim Kingdon  (kingdon@lioth.cygnus.com)
    8193
    8294        * aout64.h (N_DATOFF): Don't pad (revert change of 8 Jul 1993).
    8395
    84 Tue Nov 16 15:43:46 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
     961993-11-16  Jim Kingdon  (kingdon@lioth.cygnus.com)
    8597
    8698        * aout64.h: New macros ZMAGIC_DISK_BLOCK_SIZE and N_DISK_BLOCK_SIZE
     
    88100        (N_TXTOFF, N_DATOFF): Use them.
    89101
    90 Thu Nov  4 00:33:48 1993  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
     1021993-11-04  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
    91103
    92104        * aout64.h (RELOC_STD_BITS_RELATIVE_LITTLE): Fixed value to match
     
    94106        (RELOC_STD_BITS_JMPTABLE_LITTLE): Likewise.
    95107
    96 Wed Nov  3 13:48:27 1993  David J. Mackenzie  (djm@thepub.cygnus.com)
     1081993-11-03  David J. Mackenzie  (djm@thepub.cygnus.com)
    97109
    98110        * aout64.h (RELOC_STD_BITS_BASEREL_LITTLE): Make it 0x10 (Ken's
    99111        suggestion) to avoid conflict with RELOC_STD_BITS_EXTERN_LITTLE.
    100112
    101 Fri Oct 29 15:09:52 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
     1131993-10-29  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
    102114
    103115        * hp300hpux.h (N_SHARED_LIB): Define to be 0.
    104116
    105 Mon Sep 13 21:00:56 1993  John Gilmore  (gnu@cygnus.com)
     1171993-09-13  John Gilmore  (gnu@cygnus.com)
    106118
    107119        * ar.h (ARMAP_TIME_OFFSET):  Add and describe.
     
    111123        * aout64.h [ARCH_SIZE != 64]: Allow N_BADMAG to be overridden.
    112124
    113 Mon Aug 16 14:30:14 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
     1251993-08-16  Jim Kingdon  (kingdon@lioth.cygnus.com)
    114126
    115127        * stab_gnu.h: Include aout/stab.def not just stab.def.
    116128
    117 Sun Jul 18 21:41:47 1993  Jim Kingdon  (kingdon@rtl.cygnus.com)
     1291993-07-18  Jim Kingdon  (kingdon@rtl.cygnus.com)
    118130
    119131        * dynix3.h: New, for symmetry running dynix.
    120132
    121 Thu Jul  8 12:52:22 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
     1331993-07-08  Jim Kingdon  (kingdon@lioth.cygnus.com)
    122134
    123135        * aout64.h (N_BADMAG): Recognize QMAGIC.
     
    125137        N_DATOFF: Pad text size if we need to.
    126138
    127 Fri Jun 18 19:19:38 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
     1391993-06-18  Jim Kingdon  (kingdon@lioth.cygnus.com)
    128140
    129141        * stab.def (N_ECOML): Fix comment.
    130142
    131 Mon May 31 09:21:30 1993  Jim Kingdon  (kingdon@cygnus.com)
     1431993-05-31  Jim Kingdon  (kingdon@cygnus.com)
    132144
    133145        * stab.def: Remove Solaris information on N_FUN stabstring grammar;
    134146        I've transferred it to gdb/doc/stabs.texinfo, where it belongs.
    135147
    136 Mon May 10 05:48:43 1993  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
     1481993-05-10  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
    137149
    138150        * hp300hpux.h: Patch from Glenn Engel for linker problem and
     
    144156        (N_HEADER_IN_TEXT, N_DATADDR): New macros.
    145157
    146 Thu Apr 29 12:07:37 1993  Ken Raeburn  (raeburn@deneb.cygnus.com)
     1581993-04-29  Ken Raeburn  (raeburn@deneb.cygnus.com)
    147159
    148160        * hp300hpux.h: New file from Glenn Engel, glenne@lsid.hp.com.
    149161
    150 Tue Apr 27 05:51:04 1993  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
     1621993-04-27  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
    151163
    152164        * aout64.h (struct external_exec, *MAGIC, N_BADMAG): Don't define
     
    157169        `external_nlist' is already defined as a macro.
    158170
    159 Sat Aug 15 04:23:02 1992  John Gilmore  (gnu@cygnus.com)
     1711992-08-15  John Gilmore  (gnu@cygnus.com)
    160172
    161173        * adobe.h:  Add description of a.out.adobe format.
    162174
    163 Fri Jul  3 00:36:52 1992  John Gilmore  (gnu at cygnus.com)
     1751992-07-03  John Gilmore  (gnu at cygnus.com)
    164176
    165177        * stab.def:  Update more Solaris definitions.
    166178        * stab_gnu.h:  Add N_SO language types, and Solaris basic float types.
    167179
    168 Sun Jun 14 10:53:53 1992  John Gilmore  (gnu at cygnus.com)
     1801992-06-14  John Gilmore  (gnu at cygnus.com)
    169181
    170182        * stab.def:  Update descriptions of Solaris-2 stabs; add N_UNDF.
    171183
    172 Thu Jun 11 01:12:07 1992  John Gilmore  (gnu at cygnus.com)
     1841992-06-11  John Gilmore  (gnu at cygnus.com)
    173185
    174186        * stab.def:  Add N_OBJ and N_OPT from Solaris-2.
    175187
    176 Thu Jan 30 18:12:44 1992  John Gilmore  (gnu at cygnus.com)
    177 
    178         * aout/aout64.h: N_TXTSIZE needs some more parentheses.
     1881992-01-30  John Gilmore  (gnu at cygnus.com)
     189
     190        * aout64.h: N_TXTSIZE needs some more parentheses.
    179191        I don't trust C precedence.
    180192
    181 Wed Dec 18 14:32:01 1991  Per Bothner  (bothner at cygnus.com)
    182 
    183         * aout/aout64.h:  Move common sunos-specific test
     1931991-12-18  Per Bothner  (bothner at cygnus.com)
     194
     195        * aout64.h:  Move common sunos-specific test
    184196        to recognize shared libraries into new macro N_SHARED_LIB.
    185         Use it to simplify&reformat N_TXTADDR, N_TXTOFF, N_TXTSIZE.
    186 
    187 Sat Nov 30 20:34:52 1991  Steve Chamberlain  (sac at rtl.cygnus.com)
    188 
    189         * ChangeLog, aout64.h, ar.h, encap.h, host.h, hp.h, ranlib.h,
    190         reloc.h, stab.def, stab_gnu.h, sun4.h: All moved from the
    191         devo/include directory
     197        Use it to simplify & reformat N_TXTADDR, N_TXTOFF, N_TXTSIZE.
     198
     1991991-11-30  Steve Chamberlain  (sac at rtl.cygnus.com)
     200
     201        * aout64.h, ar.h, encap.h, host.h, hp.h, ranlib.h, reloc.h,
     202        stab.def, stab_gnu.h, sun4.h: All moved from the devo/include
     203        directory.
    192204
    193205
  • branches/GNU/src/binutils/include/aout/aout64.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* `a.out' object-file definitions, including extensions to 64-bit fields
    22
    3    Copyright 2001 Free Software Foundation, Inc.
     3   Copyright 2001, 2003 Free Software Foundation, Inc.
    44
    55   This program is free software; you can redistribute it and/or modify
     
    2020#define __A_OUT_64_H__
    2121
    22 /* This is the layout on disk of the 32-bit or 64-bit exec header. */
     22#ifndef BYTES_IN_WORD
     23#define BYTES_IN_WORD 4
     24#endif
     25
     26/* This is the layout on disk of the 32-bit or 64-bit exec header.  */
    2327
    2428#ifndef external_exec
    2529struct external_exec
    2630{
    27   bfd_byte e_info[4];           /* magic number and stuff               */
    28   bfd_byte e_text[BYTES_IN_WORD]; /* length of text section in bytes    */
    29   bfd_byte e_data[BYTES_IN_WORD]; /* length of data section in bytes    */
    30   bfd_byte e_bss[BYTES_IN_WORD]; /* length of bss area in bytes                 */
    31   bfd_byte e_syms[BYTES_IN_WORD]; /* length of symbol table in bytes    */
    32   bfd_byte e_entry[BYTES_IN_WORD]; /* start address                     */
    33   bfd_byte e_trsize[BYTES_IN_WORD]; /* length of text relocation info   */
    34   bfd_byte e_drsize[BYTES_IN_WORD]; /* length of data relocation info   */
     31  bfd_byte e_info[4];               /* Magic number and stuff.  */
     32  bfd_byte e_text[BYTES_IN_WORD];   /* Length of text section in bytes.  */
     33  bfd_byte e_data[BYTES_IN_WORD];   /* Length of data section in bytes.  */
     34  bfd_byte e_bss[BYTES_IN_WORD];    /* Length of bss area in bytes.  */
     35  bfd_byte e_syms[BYTES_IN_WORD];   /* Length of symbol table in bytes.  */
     36  bfd_byte e_entry[BYTES_IN_WORD];  /* Start address.  */
     37  bfd_byte e_trsize[BYTES_IN_WORD]; /* Length of text relocation info.  */
     38  bfd_byte e_drsize[BYTES_IN_WORD]; /* Length of data relocation info.  */
    3539};
    3640
    3741#define EXEC_BYTES_SIZE (4 + BYTES_IN_WORD * 7)
    3842
    39 /* Magic numbers for a.out files */
     43/* Magic numbers for a.out files. */
    4044
    4145#if ARCH_SIZE==64
    42 #define OMAGIC 0x1001           /* Code indicating object file  */
     46#define OMAGIC 0x1001           /* Code indicating object file.  */
    4347#define ZMAGIC 0x1002           /* Code indicating demand-paged executable.  */
    4448#define NMAGIC 0x1003           /* Code indicating pure executable.  */
     
    5054                        && N_MAGIC(x) != ZMAGIC)
    5155#else
    52 #define OMAGIC 0407             /* ...object file or impure executable.  */
     56#define OMAGIC 0407             /* Object file or impure executable.  */
    5357#define NMAGIC 0410             /* Code indicating pure executable.  */
    5458#define ZMAGIC 0413             /* Code indicating demand-paged executable.  */
     
    127131    * QMAGIC is always like a ZMAGIC for which N_HEADER_IN_TEXT is true,
    128132    and for which the starting address is TARGET_PAGE_SIZE (or should this be
    129     SEGMENT_SIZE?) (TEXT_START_ADDR only applies to ZMAGIC, not to QMAGIC).
    130     */
     133    SEGMENT_SIZE?) (TEXT_START_ADDR only applies to ZMAGIC, not to QMAGIC).  */
    131134
    132135/* This macro is only relevant for ZMAGIC files; QMAGIC always has the header
    133136   in the text.  */
    134137#ifndef N_HEADER_IN_TEXT
    135 #define N_HEADER_IN_TEXT(x) (((x).a_entry & (TARGET_PAGE_SIZE-1)) >= EXEC_BYTES_SIZE)
     138#define N_HEADER_IN_TEXT(x) \
     139  (((x).a_entry & (TARGET_PAGE_SIZE-1)) >= EXEC_BYTES_SIZE)
    136140#endif
    137141
     
    153157#ifndef N_TXTADDR
    154158#define N_TXTADDR(x) \
    155     (/* The address of a QMAGIC file is always one page in, */ \
    156      /* with the header in the text.  */ \
    157      N_IS_QMAGIC (x) ? TARGET_PAGE_SIZE + EXEC_BYTES_SIZE : \
    158      N_MAGIC(x) != ZMAGIC ? 0 : /* object file or NMAGIC */\
    159      N_SHARED_LIB(x) ? 0 :      \
    160      N_HEADER_IN_TEXT(x)  ?     \
    161             TEXT_START_ADDR + EXEC_BYTES_SIZE : /* no padding */\
    162             TEXT_START_ADDR                     /* a page of padding */\
    163     )
     159    (/* The address of a QMAGIC file is always one page in,             \
     160        with the header in the text.  */                                \
     161     N_IS_QMAGIC (x)                                                    \
     162     ? (bfd_vma) TARGET_PAGE_SIZE + EXEC_BYTES_SIZE                     \
     163     : (N_MAGIC (x) != ZMAGIC                                           \
     164        ? (bfd_vma) 0   /* Object file or NMAGIC.  */                   \
     165        : (N_SHARED_LIB (x)                                             \
     166           ? (bfd_vma) 0                                                \
     167           : (N_HEADER_IN_TEXT (x)                                      \
     168              ? (bfd_vma) TEXT_START_ADDR + EXEC_BYTES_SIZE             \
     169              : (bfd_vma) TEXT_START_ADDR))))
    164170#endif
    165171
     
    179185/* Offset in an a.out of the start of the text section. */
    180186#ifndef N_TXTOFF
    181 #define N_TXTOFF(x)     \
    182     (/* For {O,N,Q}MAGIC, no padding.  */ \
    183      N_MAGIC(x) != ZMAGIC ? EXEC_BYTES_SIZE : \
    184      N_SHARED_LIB(x) ? 0 : \
    185      N_HEADER_IN_TEXT(x) ?      \
    186             EXEC_BYTES_SIZE :                   /* no padding */\
    187             ZMAGIC_DISK_BLOCK_SIZE              /* a page of padding */\
    188     )
     187#define N_TXTOFF(x)                                                     \
     188    (/* For {O,N,Q}MAGIC, no padding.  */                               \
     189     N_MAGIC (x) != ZMAGIC                                              \
     190     ? EXEC_BYTES_SIZE                                                  \
     191     : (N_SHARED_LIB (x)                                                \
     192        ? 0                                                             \
     193        : (N_HEADER_IN_TEXT (x)                                         \
     194           ? EXEC_BYTES_SIZE            /* No padding.  */              \
     195           : ZMAGIC_DISK_BLOCK_SIZE     /* A page of padding.  */)))
    189196#endif
    190197/* Size of the text section.  It's always as stated, except that we
     
    195202#ifndef N_TXTSIZE
    196203#define N_TXTSIZE(x) \
    197     (/* For QMAGIC, we don't consider the header part of the text section.  */\
    198      N_IS_QMAGIC (x) ? (x).a_text - EXEC_BYTES_SIZE : \
    199      (N_MAGIC(x) != ZMAGIC || N_SHARED_LIB(x)) ? (x).a_text : \
    200      N_HEADER_IN_TEXT(x)  ?     \
    201             (x).a_text - EXEC_BYTES_SIZE:       /* no padding */\
    202             (x).a_text                          /* a page of padding */\
    203     )
     204  (/* For QMAGIC, we don't consider the header part of the text section.  */\
     205   N_IS_QMAGIC (x)                                                      \
     206   ? (x).a_text - EXEC_BYTES_SIZE                                       \
     207   : ((N_MAGIC (x) != ZMAGIC || N_SHARED_LIB (x))                       \
     208      ? (x).a_text                                                      \
     209      : (N_HEADER_IN_TEXT (x)                                           \
     210         ? (x).a_text - EXEC_BYTES_SIZE /* No padding.  */              \
     211         : (x).a_text                   /* A page of padding.  */ )))
    204212#endif
    205213/* The address of the data segment in virtual memory.
    206214   It is the text segment address, plus text segment size, rounded
    207    up to a N_SEGSIZE boundary for pure or pageable files. */
     215   up to a N_SEGSIZE boundary for pure or pageable files.  */
    208216#ifndef N_DATADDR
    209217#define N_DATADDR(x) \
    210     (N_MAGIC(x)==OMAGIC? (N_TXTADDR(x)+N_TXTSIZE(x)) \
    211      :  (N_SEGSIZE(x) + ((N_TXTADDR(x)+N_TXTSIZE(x)-1) & ~(N_SEGSIZE(x)-1))))
     218  (N_MAGIC (x) == OMAGIC                                                \
     219   ? (N_TXTADDR (x) + N_TXTSIZE (x))                                    \
     220   : (N_SEGSIZE (x) + ((N_TXTADDR (x) + N_TXTSIZE (x) - 1)              \
     221                       & ~ (bfd_vma) (N_SEGSIZE (x) - 1))))
    212222#endif
    213223/* The address of the BSS segment -- immediately after the data segment.  */
    214224
    215 #define N_BSSADDR(x)    (N_DATADDR(x) + (x).a_data)
     225#define N_BSSADDR(x)    (N_DATADDR (x) + (x).a_data)
    216226
    217227/* Offsets of the various portions of the file after the text segment.  */
     
    230240
    231241#ifndef N_DATOFF
    232 #define N_DATOFF(x) \
    233  (N_TXTOFF(x) + N_TXTSIZE(x))
    234 #endif
    235 
     242#define N_DATOFF(x)     (N_TXTOFF (x) + N_TXTSIZE (x))
     243#endif
    236244#ifndef N_TRELOFF
    237 #define N_TRELOFF(x)    ( N_DATOFF(x) + (x).a_data )
     245#define N_TRELOFF(x)    (N_DATOFF (x) + (x).a_data)
    238246#endif
    239247#ifndef N_DRELOFF
    240 #define N_DRELOFF(x)    ( N_TRELOFF(x) + (x).a_trsize )
     248#define N_DRELOFF(x)    (N_TRELOFF (x) + (x).a_trsize)
    241249#endif
    242250#ifndef N_SYMOFF
    243 #define N_SYMOFF(x)     ( N_DRELOFF(x) + (x).a_drsize )
     251#define N_SYMOFF(x)     (N_DRELOFF (x) + (x).a_drsize)
    244252#endif
    245253#ifndef N_STROFF
    246 #define N_STROFF(x)     ( N_SYMOFF(x) + (x).a_syms )
     254#define N_STROFF(x)     (N_SYMOFF (x) + (x).a_syms)
    247255#endif
    248256
     
    250258/* Symbols */
    251259#ifndef external_nlist
    252 struct external_nlist {
    253   bfd_byte e_strx[BYTES_IN_WORD];       /* index into string table of name */
    254   bfd_byte e_type[1];                   /* type of symbol */
    255   bfd_byte e_other[1];                  /* misc info (usually empty) */
    256   bfd_byte e_desc[2];                   /* description field */
    257   bfd_byte e_value[BYTES_IN_WORD];      /* value of symbol */
     260struct external_nlist
     261{
     262  bfd_byte e_strx[BYTES_IN_WORD];       /* Index into string table of name.  */
     263  bfd_byte e_type[1];                   /* Type of symbol.  */
     264  bfd_byte e_other[1];                  /* Misc info (usually empty).  */
     265  bfd_byte e_desc[2];                   /* Description field.  */
     266  bfd_byte e_value[BYTES_IN_WORD];      /* Value of symbol.  */
    258267};
    259268#define EXTERNAL_NLIST_SIZE (BYTES_IN_WORD+4+BYTES_IN_WORD)
    260269#endif
    261270
    262 struct internal_nlist {
    263   unsigned long n_strx;                 /* index into string table of name */
    264   unsigned char n_type;                 /* type of symbol */
    265   unsigned char n_other;                /* misc info (usually empty) */
    266   unsigned short n_desc;                /* description field */
    267   bfd_vma n_value;                      /* value of symbol */
     271struct internal_nlist
     272{
     273  unsigned long n_strx;                 /* Index into string table of name.  */
     274  unsigned char n_type;                 /* Type of symbol.  */
     275  unsigned char n_other;                /* Misc info (usually empty).  */
     276  unsigned short n_desc;                /* Description field.  */
     277  bfd_vma n_value;                      /* Value of symbol.  */
    268278};
    269279
    270280/* The n_type field is the symbol type, containing:  */
    271281
    272 #define N_UNDF  0       /* Undefined symbol */
    273 #define N_ABS   2       /* Absolute symbol -- defined at particular addr */
    274 #define N_TEXT  4       /* Text sym -- defined at offset in text seg */
    275 #define N_DATA  6       /* Data sym -- defined at offset in data seg */
    276 #define N_BSS   8       /* BSS  sym -- defined at offset in zero'd seg */
    277 #define N_COMM  0x12    /* Common symbol (visible after shared lib dynlink) */
    278 #define N_FN    0x1f    /* File name of .o file */
    279 #define N_FN_SEQ 0x0C   /* N_FN from Sequent compilers (sigh) */
     282#define N_UNDF  0       /* Undefined symbol. */
     283#define N_ABS   2       /* Absolute symbol -- defined at particular addr. */
     284#define N_TEXT  4       /* Text sym -- defined at offset in text seg. */
     285#define N_DATA  6       /* Data sym -- defined at offset in data seg. */
     286#define N_BSS   8       /* BSS  sym -- defined at offset in zero'd seg. */
     287#define N_COMM  0x12    /* Common symbol (visible after shared lib dynlink). */
     288#define N_FN    0x1f    /* File name of .o file. */
     289#define N_FN_SEQ 0x0C   /* N_FN from Sequent compilers (sigh). */
    280290/* Note: N_EXT can only be usefully OR-ed with N_UNDF, N_ABS, N_TEXT,
    281291   N_DATA, or N_BSS.  When the low-order bit of other types is set,
    282292   (e.g. N_WARNING versus N_FN), they are two different types.  */
    283 #define N_EXT   1       /* External symbol (as opposed to local-to-this-file) */
     293#define N_EXT   1       /* External symbol (as opposed to local-to-this-file). */
    284294#define N_TYPE  0x1e
    285 #define N_STAB  0xe0    /* If any of these bits are on, it's a debug symbol */
     295#define N_STAB  0xe0    /* If any of these bits are on, it's a debug symbol. */
    286296
    287297#define N_INDR 0x0a
     
    299309
    300310/* These appear as input to LD, in a .o file.  */
    301 #define N_SETA  0x14            /* Absolute set element symbol */
    302 #define N_SETT  0x16            /* Text set element symbol */
    303 #define N_SETD  0x18            /* Data set element symbol */
    304 #define N_SETB  0x1A            /* Bss set element symbol */
     311#define N_SETA  0x14            /* Absolute set element symbol. */
     312#define N_SETT  0x16            /* Text set element symbol. */
     313#define N_SETD  0x18            /* Data set element symbol. */
     314#define N_SETB  0x1A            /* Bss set element symbol. */
    305315
    306316/* This is output from LD.  */
     
    333343  the target with a displacement of 16 or 32 bits. On the sparc, move
    334344  instructions use an offset of 14 bits, so the offset is stored in
    335   the reloc field, and the data in the section is ignored.
    336 */
     345  the reloc field, and the data in the section is ignored.  */
    337346
    338347/* This structure describes a single relocation to be performed.
     
    341350   Likewise, the data-relocation section applies to the data section.  */
    342351
    343 struct reloc_std_external {
    344   bfd_byte      r_address[BYTES_IN_WORD];       /* offset of of data to relocate        */
    345   bfd_byte r_index[3];  /* symbol table index of symbol         */
    346   bfd_byte r_type[1];   /* relocation type                      */
     352struct reloc_std_external
     353{
     354  bfd_byte r_address[BYTES_IN_WORD];    /* Offset of of data to relocate.  */
     355  bfd_byte r_index[3];                  /* Symbol table index of symbol.  */
     356  bfd_byte r_type[1];                   /* Relocation type.  */
    347357};
    348358
     
    367377#define RELOC_STD_BITS_RELATIVE_LITTLE  ((unsigned int) 0x40)
    368378
    369 #define RELOC_STD_SIZE  (BYTES_IN_WORD + 3 + 1)         /* Bytes per relocation entry */
     379#define RELOC_STD_SIZE  (BYTES_IN_WORD + 3 + 1)         /* Bytes per relocation entry. */
    370380
    371381struct reloc_std_internal
     
    390400  /* The next three bits are for SunOS shared libraries, and seem to
    391401     be undocumented.  */
    392   unsigned int r_baserel:1;     /* Linkage table relative */
    393   unsigned int r_jmptable:1;    /* pc-relative to jump table */
    394   unsigned int r_relative:1;    /* "relative relocation" */
     402  unsigned int r_baserel:1;     /* Linkage table relative. */
     403  unsigned int r_jmptable:1;    /* pc-relative to jump table. */
     404  unsigned int r_relative:1;    /* "relative relocation". */
    395405  /* unused */
    396   unsigned int r_pad:1;         /* Padding -- set to zero */
    397 };
    398 
    399 
    400 /* EXTENDED RELOCS  */
    401 
    402 struct reloc_ext_external {
    403   bfd_byte r_address[BYTES_IN_WORD];    /* offset of of data to relocate        */
    404   bfd_byte r_index[3];  /* symbol table index of symbol         */
    405   bfd_byte r_type[1];   /* relocation type                      */
    406   bfd_byte r_addend[BYTES_IN_WORD];     /* datum addend                         */
     406  unsigned int r_pad:1;         /* Padding -- set to zero.  */
     407};
     408
     409
     410/* EXTENDED RELOCS.   */
     411
     412struct reloc_ext_external
     413{
     414  bfd_byte r_address[BYTES_IN_WORD];    /* Offset of of data to relocate.  */
     415  bfd_byte r_index[3];                  /* Symbol table index of symbol.  */
     416  bfd_byte r_type[1];                   /* Relocation type.  */
     417  bfd_byte r_addend[BYTES_IN_WORD];     /* Datum addend.  */
    407418};
    408419
     
    431442#endif
    432443
    433 /* Bytes per relocation entry */
     444/* Bytes per relocation entry. */
    434445#define RELOC_EXT_SIZE  (BYTES_IN_WORD + 3 + 1 + BYTES_IN_WORD)
    435446
    436447enum reloc_type
    437448{
    438   /* simple relocations */
     449  /* Simple relocations. */
    439450  RELOC_8,                      /* data[0:7] = addend + sv              */
    440451  RELOC_16,                     /* data[0:15] = addend + sv             */
    441452  RELOC_32,                     /* data[0:31] = addend + sv             */
    442   /* pc-rel displacement */
     453  /* PC-rel displacement. */
    443454  RELOC_DISP8,                  /* data[0:7] = addend - pc + sv         */
    444455  RELOC_DISP16,                 /* data[0:15] = addend - pc + sv        */
    445456  RELOC_DISP32,                 /* data[0:31] = addend - pc + sv        */
    446   /* Special */
     457  /* Special. */
    447458  RELOC_WDISP30,                /* data[0:29] = (addend + sv - pc)>>2   */
    448459  RELOC_WDISP22,                /* data[0:21] = (addend + sv - pc)>>2   */
     
    453464  RELOC_SFA_BASE,               
    454465  RELOC_SFA_OFF13,
    455   /* P.I.C. (base-relative) */
     466  /* P.I.C. (base-relative). */
    456467  RELOC_BASE10,                 /* Not sure - maybe we can do this the */
    457468  RELOC_BASE13,                 /* right way now */
    458469  RELOC_BASE22,
    459   /* for some sort of pc-rel P.I.C. (?) */
     470  /* For some sort of pc-rel P.I.C. (?) */
    460471  RELOC_PC10,
    461472  RELOC_PC22,
    462   /* P.I.C. jump table */
     473  /* P.I.C. jump table. */
    463474  RELOC_JMP_TBL,
    464   /* reputedly for shared libraries somehow */
     475  /* Reputedly for shared libraries somehow. */
    465476  RELOC_SEGOFF16,
    466477  RELOC_GLOB_DAT,
     
    474485  RELOC_HLO10,                  /* data[0:9] = (addend + sv) >> 32      */
    475486 
    476   /* 29K relocation types */
     487  /* 29K relocation types. */
    477488  RELOC_JUMPTARG,
    478489  RELOC_CONST,
    479490  RELOC_CONSTH,
    480491 
    481   /* All the new ones I can think of, for sparc v9 */
    482 
     492  /* All the new ones I can think of, for sparc v9.  */
    483493  RELOC_64,                     /* data[0:63] = addend + sv             */
    484494  RELOC_DISP64,                 /* data[0:63] = addend - pc + sv        */
     
    490500     Since this is a clean slate, can we throw away the ones we dont
    491501     understand ? Should we sort the values ? What about using a
    492      microcode format like the 68k ?
    493      */
     502     microcode format like the 68k ?  */
    494503  NO_RELOC
    495504  };
    496505
    497506
    498 struct reloc_internal {
    499   bfd_vma r_address;            /* offset of of data to relocate        */
    500   long  r_index;                /* symbol table index of symbol         */
    501   enum reloc_type r_type;       /* relocation type                      */
    502   bfd_vma r_addend;             /* datum addend                         */
     507struct reloc_internal
     508{
     509  bfd_vma r_address;            /* Offset of of data to relocate.  */
     510  long  r_index;                /* Symbol table index of symbol.  */
     511  enum reloc_type r_type;       /* Relocation type.  */
     512  bfd_vma r_addend;             /* Datum addend.  */
    503513};
    504514
     
    507517
    508518   Q.
    509    What about archive indexes ?
    510 
    511  */
     519   What about archive indexes ?  */
    512520
    513521#endif                          /* __A_OUT_64_H__ */
  • branches/GNU/src/binutils/include/aout/dynix3.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    2323
    2424/* struct exec for Dynix 3
    25  *
    26  * a_gdtbl and a_bootstrap are only for standalone binaries.
    27  * Shared data fields are not supported by the kernel as of Dynix 3.1,
    28  * but are supported by Dynix compiler programs.
    29  */
    30 struct dynix_external_exec {
    31         unsigned char e_info[4];
    32         unsigned char e_text[4];
    33         unsigned char e_data[4];
    34         unsigned char e_bss[4];
    35         unsigned char e_syms[4];
    36         unsigned char e_entry[4];
    37         unsigned char e_trsize[4];
    38         unsigned char e_drsize[4];
    39         unsigned char e_g_code[8], e_g_data[8], e_g_desc[8];
    40         unsigned char e_shdata[4];
    41         unsigned char e_shbss[4];
    42         unsigned char e_shdrsize[4];
    43         unsigned char e_bootstrap[44];
    44         unsigned char e_reserved[12];
    45         unsigned char e_version[4];
    46 };
     25 
     26   a_gdtbl and a_bootstrap are only for standalone binaries.
     27   Shared data fields are not supported by the kernel as of Dynix 3.1,
     28   but are supported by Dynix compiler programs.  */
     29struct dynix_external_exec
     30  {
     31    unsigned char e_info[4];
     32    unsigned char e_text[4];
     33    unsigned char e_data[4];
     34    unsigned char e_bss[4];
     35    unsigned char e_syms[4];
     36    unsigned char e_entry[4];
     37    unsigned char e_trsize[4];
     38    unsigned char e_drsize[4];
     39    unsigned char e_g_code[8];
     40    unsigned char e_g_data[8];
     41    unsigned char e_g_desc[8];
     42    unsigned char e_shdata[4];
     43    unsigned char e_shbss[4];
     44    unsigned char e_shdrsize[4];
     45    unsigned char e_bootstrap[44];
     46    unsigned char e_reserved[12];
     47    unsigned char e_version[4];
     48  };
    4749
    4850#define EXEC_BYTES_SIZE (128)
    4951
    50 /*
    51  * All executables under Dynix are demand paged with read-only text,
    52  * Thus no NMAGIC.
    53  *
    54  * ZMAGIC has a page of 0s at virtual 0,
    55  * XMAGIC has an invalid page at virtual 0
    56  */
     52/* All executables under Dynix are demand paged with read-only text,
     53   Thus no NMAGIC.
     54 
     55   ZMAGIC has a page of 0s at virtual 0,
     56   XMAGIC has an invalid page at virtual 0.  */
    5757#define OMAGIC  0x12eb          /* .o */
    5858#define ZMAGIC  0x22eb          /* zero @ 0, demand load */
  • branches/GNU/src/binutils/include/aout/hp300hpux.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* Special version of <a.out.h> for use under hp-ux.
    2    Copyright 1988, 1993, 1995 Free Software Foundation, Inc. */
     2   Copyright 1988, 1993, 1995, 2001 Free Software Foundation, Inc. */
    33
    44struct hp300hpux_exec_bytes
     
    7474
    7575#define N_DATADDR(x) \
    76     ((N_MAGIC(x)==OMAGIC || N_MAGIC(x)==HPUX_DOT_O_MAGIC) ? \
    77         (N_TXTADDR(x)+N_TXTSIZE(x)) \
    78      :  (N_SEGSIZE(x) + ((N_TXTADDR(x)+N_TXTSIZE(x)-1) & ~(N_SEGSIZE(x)-1))))
     76  ((N_MAGIC (x) == OMAGIC || N_MAGIC (x) == HPUX_DOT_O_MAGIC)           \
     77   ? (N_TXTADDR (x) + N_TXTSIZE (x))                                    \
     78   : (N_SEGSIZE (x) + ((N_TXTADDR (x) + N_TXTSIZE (x) - 1)              \
     79                       & ~ (bfd_vma) (N_SEGSIZE (x) - 1))))
    7980
    80 #define _N_BADMACH(x)                                                   \
    81 (((N_MACHTYPE (x)) != HP9000S200_ID) &&                                 \
    82  ((N_MACHTYPE (x)) != HP98x6_ID))
     81#define _N_BADMACH(x) \
     82  (((N_MACHTYPE (x)) != HP9000S200_ID) && ((N_MACHTYPE (x)) != HP98x6_ID))
    8383
    8484#define _N_BADMAG(x)      (N_MAGIC(x) != HPUX_DOT_O_MAGIC \
  • branches/GNU/src/binutils/include/bfdlink.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* bfdlink.h -- header file for BFD link routines
    2    Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
     2   Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002
    33   Free Software Foundation, Inc.
    44   Written by Steve Chamberlain and Ian Lance Taylor, Cygnus Support.
    55
    6 This file is part of BFD, the Binary File Descriptor library.
    7 
    8 This program is free software; you can redistribute it and/or modify
    9 it under the terms of the GNU General Public License as published by
    10 the Free Software Foundation; either version 2 of the License, or
    11 (at your option) any later version.
    12 
    13 This program is distributed in the hope that it will be useful,
    14 but WITHOUT ANY WARRANTY; without even the implied warranty of
    15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16 GNU General Public License for more details.
    17 
    18 You should have received a copy of the GNU General Public License
    19 along with this program; if not, write to the Free Software
    20 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
     6   This file is part of BFD, the Binary File Descriptor library.
     7
     8   This program is free software; you can redistribute it and/or modify
     9   it under the terms of the GNU General Public License as published by
     10   the Free Software Foundation; either version 2 of the License, or
     11   (at your option) any later version.
     12
     13   This program is distributed in the hope that it will be useful,
     14   but WITHOUT ANY WARRANTY; without even the implied warranty of
     15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     16   GNU General Public License for more details.
     17
     18   You should have received a copy of the GNU General Public License
     19   along with this program; if not, write to the Free Software
     20   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    2121
    2222#ifndef BFDLINK_H
     
    3636enum bfd_link_discard
    3737{
     38  discard_sec_merge,    /* Discard local temporary symbols in SEC_MERGE
     39                           sections.  */
    3840  discard_none,         /* Don't discard any locals.  */
    3941  discard_l,            /* Discard local temporary symbols.  */
    4042  discard_all           /* Discard all locals.  */
    4143};
     44
     45/* Describes the type of hash table entry structure being used.
     46   Different hash table structure have different fields and so
     47   support different linking features.  */
     48enum bfd_link_hash_table_type
     49  {
     50    bfd_link_generic_hash_table,
     51    bfd_link_elf_hash_table
     52  };
    4253
    4354
     
    5566  bfd_link_hash_indirect,       /* Symbol is an indirect link.  */
    5667  bfd_link_hash_warning         /* Like indirect, but warn if referenced.  */
     68};
     69
     70enum bfd_link_common_skip_ar_aymbols
     71{
     72  bfd_link_common_skip_none,
     73  bfd_link_common_skip_text,
     74  bfd_link_common_skip_data,
     75  bfd_link_common_skip_all
    5776};
    5877
     
    111130        {
    112131          /* The linker needs to know three things about common
    113              symbols: the size, the alignment, and the section in
    114              which the symbol should be placed.  We store the size
    115              here, and we allocate a small structure to hold the
    116              section and the alignment.  The alignment is stored as a
    117              power of two.  We don't store all the information
    118              directly because we don't want to increase the size of
    119              the union; this structure is a major space user in the
    120              linker.  */
     132             symbols: the size, the alignment, and the section in
     133             which the symbol should be placed.  We store the size
     134             here, and we allocate a small structure to hold the
     135             section and the alignment.  The alignment is stored as a
     136             power of two.  We don't store all the information
     137             directly because we don't want to increase the size of
     138             the union; this structure is a major space user in the
     139             linker.  */
    121140          bfd_size_type size;   /* Common symbol size.  */
    122141          struct bfd_link_hash_common_entry
     
    146165  /* Entries are added to the tail of the undefs list.  */
    147166  struct bfd_link_hash_entry *undefs_tail;
    148 };
    149 
    150 /* Look up an entry in a link hash table.  If FOLLOW is true, this
     167  /* The type of the link hash table.  */
     168  enum bfd_link_hash_table_type type;
     169};
     170
     171/* Look up an entry in a link hash table.  If FOLLOW is TRUE, this
    151172   follows bfd_link_hash_indirect and bfd_link_hash_warning links to
    152173   the real symbol.  */
    153174extern struct bfd_link_hash_entry *bfd_link_hash_lookup
    154   PARAMS ((struct bfd_link_hash_table *, const char *, boolean create,
    155            boolean copy, boolean follow));
     175  PARAMS ((struct bfd_link_hash_table *, const char *, bfd_boolean create,
     176           bfd_boolean copy, bfd_boolean follow));
    156177
    157178/* Look up an entry in the main linker hash table if the symbol might
     
    160181
    161182extern struct bfd_link_hash_entry *bfd_wrapped_link_hash_lookup
    162   PARAMS ((bfd *, struct bfd_link_info *, const char *, boolean, boolean,
    163            boolean));
     183  PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean,
     184           bfd_boolean, bfd_boolean));
    164185
    165186/* Traverse a link hash table.  */
    166187extern void bfd_link_hash_traverse
    167188  PARAMS ((struct bfd_link_hash_table *,
    168            boolean (*) (struct bfd_link_hash_entry *, PTR),
     189           bfd_boolean (*) (struct bfd_link_hash_entry *, PTR),
    169190           PTR));
    170191
     
    173194  PARAMS ((struct bfd_link_hash_table *, struct bfd_link_hash_entry *));
    174195
     196struct bfd_sym_chain
     197{
     198  struct bfd_sym_chain *next;
     199  const char *name;
     200};
     201
    175202
    176203/* This structure holds all the information needed to communicate
     
    179206struct bfd_link_info
    180207{
    181   /* Function callbacks.  */
    182   const struct bfd_link_callbacks *callbacks;
    183   /* true if BFD should generate a relocateable object file.  */
    184   boolean relocateable;
    185   /* true if BFD should generate relocation information in the final executable.  */
    186   boolean emitrelocations;
    187   /* true if BFD should generate a "task linked" object file,
    188      similar to relocatable but also with globals converted to statics. */
    189   boolean task_link;
    190   /* true if BFD should generate a shared object.  */
    191   boolean shared;
    192   /* true if BFD should pre-bind symbols in a shared object.  */
    193   boolean symbolic;
    194   /* true if shared objects should be linked directly, not shared.  */
    195   boolean static_link;
    196   /* true if the output file should be in a traditional format.  This
     208  /* TRUE if BFD should generate a relocatable object file.  */
     209  unsigned int relocateable: 1;
     210
     211  /* TRUE if BFD should generate relocation information in the final
     212     executable.  */
     213  unsigned int emitrelocations: 1;
     214
     215  /* TRUE if BFD should generate a "task linked" object file,
     216     similar to relocatable but also with globals converted to
     217     statics.  */
     218  unsigned int task_link: 1;
     219
     220  /* TRUE if BFD should generate a shared object.  */
     221  unsigned int shared: 1;
     222
     223  /* TRUE if BFD should pre-bind symbols in a shared object.  */
     224  unsigned int symbolic: 1;
     225
     226  /* TRUE if BFD should export all symbols in the dynamic symbol table
     227     of an executable, rather than only those used.  */
     228  unsigned int export_dynamic: 1;
     229
     230  /* TRUE if shared objects should be linked directly, not shared.  */
     231  unsigned int static_link: 1;
     232
     233  /* TRUE if the output file should be in a traditional format.  This
    197234     is equivalent to the setting of the BFD_TRADITIONAL_FORMAT flag
    198235     on the output file, but may be checked when reading the input
    199236     files.  */
    200   boolean traditional_format;
    201   /* true if we want to produced optimized output files.  This might
     237  unsigned int traditional_format: 1;
     238
     239  /* TRUE if we want to produced optimized output files.  This might
    202240     need much more time and therefore must be explicitly selected.  */
    203   boolean optimize;
    204   /* true if BFD should generate errors for undefined symbols
     241  unsigned int optimize: 1;
     242
     243  /* TRUE if BFD should generate errors for undefined symbols
    205244     even if generating a shared object.  */
    206   boolean no_undefined;
    207   /* true if BFD should allow undefined symbols in shared objects even
     245  unsigned int no_undefined: 1;
     246
     247  /* TRUE if BFD should allow undefined symbols in shared objects even
    208248     when no_undefined is set to disallow undefined symbols.  The net
    209249     result will be that undefined symbols in regular objects will
     
    217257     select an appropriate memset function.  Apparently it is also
    218258     normal for HPPA shared libraries to have undefined symbols.  */
    219   boolean allow_shlib_undefined;
     259  unsigned int allow_shlib_undefined: 1;
     260
     261  /* TRUE if ok to have multiple definition.  */
     262  unsigned int allow_multiple_definition: 1;
     263
     264  /* TRUE if ok to have version with no definition.  */
     265  unsigned int allow_undefined_version: 1;
     266
     267  /* TRUE if symbols should be retained in memory, FALSE if they
     268     should be freed and reread.  */
     269  unsigned int keep_memory: 1;
     270
     271  /* TRUE if every symbol should be reported back via the notice
     272     callback.  */
     273  unsigned int notice_all: 1;
     274
     275  /* TRUE if executable should not contain copy relocs.
     276     Setting this true may result in a non-sharable text segment.  */
     277  unsigned int nocopyreloc: 1;
     278
     279  /* TRUE if the new ELF dynamic tags are enabled. */
     280  unsigned int new_dtags: 1;
     281
     282  /* TRUE if non-PLT relocs should be merged into one reloc section
     283     and sorted so that relocs against the same symbol come together.  */
     284  unsigned int combreloc: 1;
     285
     286  /* TRUE if .eh_frame_hdr section and PT_GNU_EH_FRAME ELF segment
     287     should be created.  */
     288  unsigned int eh_frame_hdr: 1;
     289
     290  /* TRUE if global symbols in discarded sections should be stripped.  */
     291  unsigned int strip_discarded: 1;
     292
     293  /* TRUE if relaxation is being finalized.  */
     294  unsigned int relax_finalizing: 1;
     295
    220296  /* Which symbols to strip.  */
    221297  enum bfd_link_strip strip;
     298
    222299  /* Which local symbols to discard.  */
    223300  enum bfd_link_discard discard;
    224   /* true if symbols should be retained in memory, false if they
    225      should be freed and reread.  */
    226   boolean keep_memory;
     301
     302  /* Criteria for skipping symbols when detemining
     303     whether to include an object from an archive. */
     304  enum bfd_link_common_skip_ar_aymbols common_skip_ar_aymbols;
     305
     306  /* Function callbacks.  */
     307  const struct bfd_link_callbacks *callbacks;
     308
     309  /* Hash table handled by BFD.  */
     310  struct bfd_link_hash_table *hash;
     311
     312  /* Hash table of symbols to keep.  This is NULL unless strip is
     313     strip_some.  */
     314  struct bfd_hash_table *keep_hash;
     315
     316  /* Hash table of symbols to report back via the notice callback.  If
     317     this is NULL, and notice_all is FALSE, then no symbols are
     318     reported back.  */
     319  struct bfd_hash_table *notice_hash;
     320
     321  /* Hash table of symbols which are being wrapped (the --wrap linker
     322     option).  If this is NULL, no symbols are being wrapped.  */
     323  struct bfd_hash_table *wrap_hash;
     324
    227325  /* The list of input BFD's involved in the link.  These are chained
    228326     together via the link_next field.  */
    229327  bfd *input_bfds;
     328
    230329  /* If a symbol should be created for each input BFD, this is section
    231330     where those symbols should be placed.  It must be a section in
     
    234333     linker command language.  */
    235334  asection *create_object_symbols_section;
    236   /* Hash table handled by BFD.  */
    237   struct bfd_link_hash_table *hash;
    238   /* Hash table of symbols to keep.  This is NULL unless strip is
    239      strip_some.  */
    240   struct bfd_hash_table *keep_hash;
    241   /* true if every symbol should be reported back via the notice
    242      callback.  */
    243   boolean notice_all;
    244   /* Hash table of symbols to report back via the notice callback.  If
    245      this is NULL, and notice_all is false, then no symbols are
    246      reported back.  */
    247   struct bfd_hash_table *notice_hash;
    248   /* Hash table of symbols which are being wrapped (the --wrap linker
    249      option).  If this is NULL, no symbols are being wrapped.  */
    250   struct bfd_hash_table *wrap_hash;
     335
     336  /* List of global symbol names that are starting points for marking
     337     sections against garbage collection.  */
     338  struct bfd_sym_chain *gc_sym_list;
     339
    251340  /* If a base output file is wanted, then this points to it */
    252341  PTR base_file;
    253 
    254   /* If non-zero, specifies that branches which are problematic for the
    255   MPC860 C0 (or earlier) should be checked for and modified.  It gives the
    256   number of bytes that should be checked at the end of each text page. */
    257   int mpc860c0;
    258342
    259343  /* The function to call when the executable or shared object is
    260344     loaded.  */
    261345  const char *init_function;
     346
    262347  /* The function to call when the executable or shared object is
    263348     unloaded.  */
    264349  const char *fini_function;
    265350
    266   /* true if the new ELF dynamic tags are enabled. */
    267   boolean new_dtags;
     351  /* If non-zero, specifies that branches which are problematic for the
     352     MPC860 C0 (or earlier) should be checked for and modified.  It gives the
     353     number of bytes that should be checked at the end of each text page.  */
     354  int mpc860c0;
     355
     356  /* Non-zero if auto-import thunks for DATA items in pei386 DLLs
     357     should be generated/linked against.  Set to 1 if this feature
     358     is explicitly requested by the user, -1 if enabled by default.  */
     359  int pei386_auto_import;
     360
     361  /* Non-zero if runtime relocs for DATA items with non-zero addends
     362     in pei386 DLLs should be generated.  Set to 1 if this feature
     363     is explicitly requested by the user, -1 if enabled by default.  */
     364  int pei386_runtime_pseudo_reloc;
     365
     366  /* How many spare .dynamic DT_NULL entries should be added?  */
     367  unsigned int spare_dynamic_tags;
    268368
    269369  /* May be used to set DT_FLAGS for ELF. */
     
    277377   called by the BFD linker routines.  The first argument to each
    278378   callback function is the bfd_link_info structure being used.  Each
    279    function returns a boolean value.  If the function returns false,
     379   function returns a boolean value.  If the function returns FALSE,
    280380   then the BFD function which called it will return with a failure
    281381   indication.  */
     
    287387     name of the symbol which caused the archive element to be pulled
    288388     in.  */
    289   boolean (*add_archive_element) PARAMS ((struct bfd_link_info *,
    290                                           bfd *abfd,
    291                                           const char *name));
     389  bfd_boolean (*add_archive_element)
     390    PARAMS ((struct bfd_link_info *, bfd *abfd, const char *name));
    292391  /* A function which is called when a symbol is found with multiple
    293392     definitions.  NAME is the symbol which is defined multiple times.
     
    296395     the new value.  OBFD may be NULL.  OSEC and NSEC may be
    297396     bfd_com_section or bfd_ind_section.  */
    298   boolean (*multiple_definition) PARAMS ((struct bfd_link_info *,
    299                                           const char *name,
    300                                           bfd *obfd,
    301                                           asection *osec,
    302                                           bfd_vma oval,
    303                                           bfd *nbfd,
    304                                           asection *nsec,
    305                                           bfd_vma nval));
     397  bfd_boolean (*multiple_definition)
     398    PARAMS ((struct bfd_link_info *, const char *name,
     399             bfd *obfd, asection *osec, bfd_vma oval,
     400             bfd *nbfd, asection *nsec, bfd_vma nval));
    306401  /* A function which is called when a common symbol is defined
    307402     multiple times.  NAME is the symbol appearing multiple times.
     
    315410     bfd_link_hash_indirect.  If NTYPE is bfd_link_hash_common, NSIZE
    316411     is the size of the new symbol.  */
    317   boolean (*multiple_common) PARAMS ((struct bfd_link_info *,
    318                                       const char *name,
    319                                       bfd *obfd,
    320                                       enum bfd_link_hash_type otype,
    321                                       bfd_vma osize,
    322                                       bfd *nbfd,
    323                                       enum bfd_link_hash_type ntype,
    324                                       bfd_vma nsize));
     412  bfd_boolean (*multiple_common)
     413    PARAMS ((struct bfd_link_info *, const char *name,
     414             bfd *obfd, enum bfd_link_hash_type otype, bfd_vma osize,
     415             bfd *nbfd, enum bfd_link_hash_type ntype, bfd_vma nsize));
    325416  /* A function which is called to add a symbol to a set.  ENTRY is
    326417     the link hash table entry for the set itself (e.g.,
     
    329420     get the size of the entry when generating an executable file.
    330421     ABFD, SEC and VALUE identify the value to add to the set.  */
    331   boolean (*add_to_set) PARAMS ((struct bfd_link_info *,
    332                                 struct bfd_link_hash_entry *entry,
    333                                  bfd_reloc_code_real_type reloc,
    334                                  bfd *abfd, asection *sec, bfd_vma value));
     422  bfd_boolean (*add_to_set)
     423    PARAMS ((struct bfd_link_info *, struct bfd_link_hash_entry *entry,
     424             bfd_reloc_code_real_type reloc, bfd *abfd, asection *sec,
     425            bfd_vma value));
    335426  /* A function which is called when the name of a g++ constructor or
    336427     destructor is found.  This is only called by some object file
    337      formats.  CONSTRUCTOR is true for a constructor, false for a
     428     formats.  CONSTRUCTOR is TRUE for a constructor, FALSE for a
    338429     destructor.  This will use BFD_RELOC_CTOR when generating a
    339430     relocateable file.  NAME is the name of the symbol found.  ABFD,
    340431     SECTION and VALUE are the value of the symbol.  */
    341   boolean (*constructor) PARAMS ((struct bfd_link_info *,
    342                                   boolean constructor,
    343                                   const char *name, bfd *abfd, asection *sec,
    344                                   bfd_vma value));
     432  bfd_boolean (*constructor)
     433    PARAMS ((struct bfd_link_info *, bfd_boolean constructor,
     434             const char *name, bfd *abfd, asection *sec, bfd_vma value));
    345435  /* A function which is called to issue a linker warning.  For
    346436     example, this is called when there is a reference to a warning
     
    350440     which trigerred the warning; either ABFD or SECTION or both may
    351441     be NULL if the location is not known.  */
    352   boolean (*warning) PARAMS ((struct bfd_link_info *,
    353                               const char *warning, const char *symbol,
    354                               bfd *abfd, asection *section,
    355                               bfd_vma address));
     442  bfd_boolean (*warning)
     443    PARAMS ((struct bfd_link_info *, const char *warning, const char *symbol,
     444             bfd *abfd, asection *section, bfd_vma address));
    356445  /* A function which is called when a relocation is attempted against
    357446     an undefined symbol.  NAME is the symbol which is undefined.
     
    359448     reference is made. FATAL indicates whether an undefined symbol is
    360449     a fatal error or not. In some cases SECTION may be NULL.  */
    361   boolean (*undefined_symbol) PARAMS ((struct bfd_link_info *,
    362                                        const char *name, bfd *abfd,
    363                                        asection *section,
    364                                        bfd_vma address,
    365                                        boolean fatal));
     450  bfd_boolean (*undefined_symbol)
     451    PARAMS ((struct bfd_link_info *, const char *name, bfd *abfd,
     452             asection *section, bfd_vma address, bfd_boolean fatal));
    366453  /* A function which is called when a reloc overflow occurs.  NAME is
    367454     the name of the symbol or section the reloc is against,
     
    371458     bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
    372459     ABFD will be NULL.  */
    373   boolean (*reloc_overflow) PARAMS ((struct bfd_link_info *,
    374                                      const char *name,
    375                                      const char *reloc_name, bfd_vma addend,
    376                                      bfd *abfd, asection *section,
    377                                      bfd_vma address));
     460  bfd_boolean (*reloc_overflow)
     461    PARAMS ((struct bfd_link_info *, const char *name, const char *reloc_name,
     462             bfd_vma addend, bfd *abfd, asection *section, bfd_vma address));
    378463  /* A function which is called when a dangerous reloc is performed.
    379464     The canonical example is an a29k IHCONST reloc which does not
     
    383468     bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
    384469     ABFD will be NULL.  */
    385   boolean (*reloc_dangerous) PARAMS ((struct bfd_link_info *,
    386                                       const char *message,
    387                                       bfd *abfd, asection *section,
    388                                       bfd_vma address));
     470  bfd_boolean (*reloc_dangerous)
     471    PARAMS ((struct bfd_link_info *, const char *message,
     472             bfd *abfd, asection *section, bfd_vma address));
    389473  /* A function which is called when a reloc is found to be attached
    390474     to a symbol which is not being written out.  NAME is the name of
     
    393477     bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
    394478     ABFD will be NULL.  */
    395   boolean (*unattached_reloc) PARAMS ((struct bfd_link_info *,
    396                                        const char *name,
    397                                        bfd *abfd, asection *section,
    398                                        bfd_vma address));
     479  bfd_boolean (*unattached_reloc)
     480    PARAMS ((struct bfd_link_info *, const char *name,
     481             bfd *abfd, asection *section, bfd_vma address));
    399482  /* A function which is called when a symbol in notice_hash is
    400483     defined or referenced.  NAME is the symbol.  ABFD, SECTION and
    401484     ADDRESS are the value of the symbol.  If SECTION is
    402485     bfd_und_section, this is a reference.  */
    403   boolean (*notice) PARAMS ((struct bfd_link_info *, const char *name,
    404                              bfd *abfd, asection *section, bfd_vma address));
     486  bfd_boolean (*notice)
     487    PARAMS ((struct bfd_link_info *, const char *name,
     488             bfd *abfd, asection *section, bfd_vma address));
     489  /* A function which is called for reporting a linker error. ID is the
     490     error identifier. The remaining input is the same as einfo () in
     491     ld.  */
     492  bfd_boolean (*error_handler)
     493    PARAMS ((int id, const char * fmt, ...));
    405494};
    406495
     
    415504  bfd_undefined_link_order,     /* Undefined.  */
    416505  bfd_indirect_link_order,      /* Built from a section.  */
    417   bfd_fill_link_order,          /* Fill with a 16 bit constant.  */
    418506  bfd_data_link_order,          /* Set to explicit data.  */
    419507  bfd_section_reloc_link_order, /* Relocate against a section.  */
     
    424512   attached to the section whose contents they are describing.  */
    425513
    426 struct bfd_link_order 
     514struct bfd_link_order
    427515{
    428516  /* Next link_order in chain.  */
     
    431519  enum bfd_link_order_type type;
    432520  /* Offset within output section.  */
    433   bfd_vma offset; 
     521  bfd_vma offset;
    434522  /* Size within output section.  */
    435523  bfd_size_type size;
    436524  /* Type specific information.  */
    437   union 
     525  union
    438526    {
    439       struct 
     527      struct
    440528        {
    441529          /* Section to include.  If this is used, then
     
    449537      struct
    450538        {
    451           /* Value to fill with.  */
    452           unsigned int value;
    453         } fill;
    454       struct
    455         {
    456           /* Data to put into file.  The size field gives the number
    457              of bytes which this field points to.  */
     539          /* Size of contents, or zero when contents size == size
     540             within output section.
     541             A non-zero value allows filling of the output section
     542             with an arbitrary repeated pattern.  */
     543          unsigned int size;
     544          /* Data to put into file.  */
    458545          bfd_byte *contents;
    459546        } data;
     
    521608  const char *pattern;
    522609  /* Matching function.  */
    523   int (*match) PARAMS((struct bfd_elf_version_expr *, const char *));
     610  int (*match) PARAMS ((struct bfd_elf_version_expr *, const char *));
     611  /* Defined by ".symver".  */
     612  unsigned int symver: 1;
     613  /* Defined by version script.  */
     614  unsigned int script : 1;
    524615};
    525616
  • branches/GNU/src/binutils/include/bout.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    5252#define BMAGIC  0415
    5353/* We don't accept the following (see N_BADMAG macro).
    54  * They're just here so GNU code will compile.
    55  */
     54   They're just here so GNU code will compile.  */
    5655#define OMAGIC  0407            /* old impure format */
    5756#define NMAGIC  0410            /* read-only text */
     
    5958
    6059/* FILE HEADER
    61  *      All 'lengths' are given as a number of bytes.
    62  *      All 'alignments' are for relinkable files only;  an alignment of
    63  *              'n' indicates the corresponding segment must begin at an
    64  *              address that is a multiple of (2**n).
    65  */
    66 struct external_exec {
    67         /* Standard stuff */
    68         unsigned char e_info[4];        /* Identifies this as a b.out file */
    69         unsigned char e_text[4];        /* Length of text */
    70         unsigned char e_data[4];        /* Length of data */
    71         unsigned char e_bss[4];         /* Length of uninitialized data area */
    72         unsigned char e_syms[4];        /* Length of symbol table */
    73         unsigned char e_entry[4];       /* Runtime start address */
    74         unsigned char e_trsize[4];      /* Length of text relocation info */
    75         unsigned char e_drsize[4];      /* Length of data relocation info */
     60        All 'lengths' are given as a number of bytes.
     61        All 'alignments' are for relinkable files only;  an alignment of
     62                'n' indicates the corresponding segment must begin at an
     63                address that is a multiple of (2**n).  */
     64struct external_exec
     65  {
     66    /* Standard stuff */
     67    unsigned char e_info[4];    /* Identifies this as a b.out file */
     68    unsigned char e_text[4];    /* Length of text */
     69    unsigned char e_data[4];    /* Length of data */
     70    unsigned char e_bss[4];     /* Length of uninitialized data area */
     71    unsigned char e_syms[4];    /* Length of symbol table */
     72    unsigned char e_entry[4];   /* Runtime start address */
     73    unsigned char e_trsize[4];  /* Length of text relocation info */
     74    unsigned char e_drsize[4];  /* Length of data relocation info */
    7675
    77         /* Added for i960 */
    78         unsigned char e_tload[4];       /* Text runtime load address */
    79         unsigned char e_dload[4];       /* Data runtime load address */
    80         unsigned char e_talign[1];      /* Alignment of text segment */
    81         unsigned char e_dalign[1];      /* Alignment of data segment */
    82         unsigned char e_balign[1];      /* Alignment of bss segment */
    83         unsigned char e_relaxable[1];   /* Assembled with enough info to allow linker to relax */
    84 };
     76    /* Added for i960 */
     77    unsigned char e_tload[4];   /* Text runtime load address */
     78    unsigned char e_dload[4];   /* Data runtime load address */
     79    unsigned char e_talign[1];  /* Alignment of text segment */
     80    unsigned char e_dalign[1];  /* Alignment of data segment */
     81    unsigned char e_balign[1];  /* Alignment of bss segment */
     82    unsigned char e_relaxable[1];/* Assembled with enough info to allow linker to relax */
     83  };
    8584
    8685#define EXEC_BYTES_SIZE (sizeof (struct external_exec))
    8786
    8887/* These macros use the a_xxx field names, since they operate on the exec
    89    structure after it's been byte-swapped and realigned on the host machine. */
     88   structure after it's been byte-swapped and realigned on the host machine.  */
    9089#define N_BADMAG(x)     (((x).a_info)!=BMAGIC)
    9190#define N_TXTOFF(x)     EXEC_BYTES_SIZE
     
    104103#endif
    105104
    106 /* A single entry in the symbol table
    107  */
    108 struct nlist {
    109         union {
    110                 char    *n_name;
    111                 struct nlist *n_next;
    112                 long    n_strx;         /* Index into string table      */
    113         } n_un;
    114         unsigned char n_type;   /* See below                            */
    115         char    n_other;        /* Used in i80960 support -- see below  */
    116         short   n_desc;
    117         unsigned long n_value;
    118 };
     105/* A single entry in the symbol table.  */
     106struct nlist
     107  {
     108    union
     109      {
     110        char*          n_name;
     111        struct nlist * n_next;
     112        long           n_strx;  /* Index into string table      */
     113      } n_un;
     114
     115    unsigned char n_type;       /* See below                            */
     116    char          n_other;      /* Used in i80960 support -- see below  */
     117    short         n_desc;
     118    unsigned long n_value;
     119  };
    119120
    120121
    121 /* Legal values of n_type
    122  */
     122/* Legal values of n_type.  */
    123123#define N_UNDF  0       /* Undefined symbol     */
    124124#define N_ABS   2       /* Absolute symbol      */
     
    133133
    134134/* MEANING OF 'n_other'
    135  *
    136  * If non-zero, the 'n_other' fields indicates either a leaf procedure or
    137  * a system procedure, as follows:
    138  *
    139  *      1 <= n_other <= 32 :
    140  *              The symbol is the entry point to a system procedure.
    141  *              'n_value' is the address of the entry, as for any other
    142  *              procedure.  The system procedure number (which can be used in
    143  *              a 'calls' instruction) is (n_other-1).  These entries come from
    144  *              '.sysproc' directives.
    145  *
    146  *      n_other == N_CALLNAME
    147  *              the symbol is the 'call' entry point to a leaf procedure.
    148  *              The *next* symbol in the symbol table must be the corresponding
    149  *              'bal' entry point to the procedure (see following).  These
    150  *              entries come from '.leafproc' directives in which two different
    151  *              symbols are specified (the first one is represented here).
    152  *     
    153  *
    154  *      n_other == N_BALNAME
    155  *              the symbol is the 'bal' entry point to a leaf procedure.
    156  *              These entries result from '.leafproc' directives in which only
    157  *              one symbol is specified, or in which the same symbol is
    158  *              specified twice.
    159  *
    160  * Note that an N_CALLNAME entry *must* have a corresponding N_BALNAME entry,
    161  * but not every N_BALNAME entry must have an N_CALLNAME entry.
    162  */
     135 
     136  If non-zero, the 'n_other' fields indicates either a leaf procedure or
     137  a system procedure, as follows:
     138 
     139        1 <= n_other <= 32 :
     140                The symbol is the entry point to a system procedure.
     141                'n_value' is the address of the entry, as for any other
     142                procedure.  The system procedure number (which can be used in
     143                a 'calls' instruction) is (n_other-1).  These entries come from
     144                '.sysproc' directives.
     145 
     146        n_other == N_CALLNAME
     147                the symbol is the 'call' entry point to a leaf procedure.
     148                The *next* symbol in the symbol table must be the corresponding
     149                'bal' entry point to the procedure (see following).  These
     150                entries come from '.leafproc' directives in which two different
     151                symbols are specified (the first one is represented here).
     152       
     153 
     154        n_other == N_BALNAME
     155                the symbol is the 'bal' entry point to a leaf procedure.
     156                These entries result from '.leafproc' directives in which only
     157                one symbol is specified, or in which the same symbol is
     158                specified twice.
     159 
     160  Note that an N_CALLNAME entry *must* have a corresponding N_BALNAME entry,
     161  but not every N_BALNAME entry must have an N_CALLNAME entry.  */
    163162#define N_CALLNAME      ((char)-1)
    164163#define N_BALNAME       ((char)-2)
     
    168167
    169168#define b_out_relocation_info relocation_info
    170 struct relocation_info {
    171         int      r_address;     /* File address of item to be relocated */
    172         unsigned
     169struct relocation_info
     170  {
     171    int  r_address;     /* File address of item to be relocated.  */
     172    unsigned
    173173#define r_index r_symbolnum
    174                 r_symbolnum:24,/* Index of symbol on which relocation is based,
    175                                 *       if r_extern is set.  Otherwise set to
    176                                 *       either N_TEXT, N_DATA, or N_BSS to
    177                                 *       indicate section on which relocation is
    178                                 *       based.
    179                                 */
    180                 r_pcrel:1,      /* 1 => relocate PC-relative; else absolute
    181                                  *      On i960, pc-relative implies 24-bit
    182                                  *      address, absolute implies 32-bit.
    183                                  */
    184                 r_length:2,     /* Number of bytes to relocate:
    185                                  *      0 => 1 byte
    186                                  *      1 => 2 bytes -- used for 13 bit pcrel
    187                                  *      2 => 4 bytes
    188                                  */
    189                 r_extern:1,
    190                 r_bsr:1,        /* Something for the GNU NS32K assembler */
    191                 r_disp:1,       /* Something for the GNU NS32K assembler */
    192                 r_callj:1,      /* 1 if relocation target is an i960 'callj' */
    193                 r_relaxable:1;  /* 1 if enough info is left to relax
    194                                    the data */
     174    r_symbolnum:24,     /* Index of symbol on which relocation is based,
     175                           if r_extern is set.  Otherwise set to
     176                           either N_TEXT, N_DATA, or N_BSS to
     177                           indicate section on which relocation is
     178                           based.  */
     179      r_pcrel:1,        /* 1 => relocate PC-relative; else absolute
     180                           On i960, pc-relative implies 24-bit
     181                           address, absolute implies 32-bit.  */
     182      r_length:2,       /* Number of bytes to relocate:
     183                           0 => 1 byte
     184                           1 => 2 bytes -- used for 13 bit pcrel
     185                           2 => 4 bytes.  */
     186      r_extern:1,
     187      r_bsr:1,          /* Something for the GNU NS32K assembler.  */
     188      r_disp:1,         /* Something for the GNU NS32K assembler.  */
     189      r_callj:1,        /* 1 if relocation target is an i960 'callj'.  */
     190      r_relaxable:1;    /* 1 if enough info is left to relax the data.  */
    195191};
  • branches/GNU/src/binutils/include/coff/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-02-09  David Mosberger  <davidm@hpl.hp.com>
     12003-04-24 Dhananjay Deshpande <dhananjayd@kpitcummins.com>
     2
     3        * coff/h8300.h (H8300HNMAGIC, H8300SNMAGIC): New.
     4        (H8300HNBADMAG, H8300SNBADMAG): New.
     5
     62003-04-15  Rohit Kumar Srivastava <rohits@kpitcummins.com>
     7
     8        * sh.h: Replace occurrances of 'Hitachi' with 'Renesas'.
     9        * h8300.h: Likewise.
     10        * h8500.h: Likewise.
     11
     122003-03-25  Stan Cox   <scox@redhat.com>
     13            Nick Clifton  <nickc@redhat.com>
     14           
     15        Contribute support for Intel's iWMMXt chip - an ARM variant:
     16
     17        * arm.h (ARM_NOTE_SECTION): Define.
     18
     192002-11-30  Alan Modra  <amodra@bigpond.net.au>
     20
     21        * ecoff.h: Replace boolean with bfd_boolean.
     22        * xcoff.h: Likewise.
     23
     242002-03-18  Tom Rix  <trix@redhat.com>
     25
     26        * rs6k64.h: Add U64_TOCMAGIC, AIX 5 64 bit magic number.
     27
     282002-02-01  Tom Rix  <trix@redhat.com>
     29
     30        * xcoff.h: Conditionally support <aiaff> for pre AIX 4.3.
     31 
     322002-01-31  Ivan Guzvinec  <ivang@opencores.org>
     33
     34        * or32.h: New file.
     35
     362001-12-24  Tom Rix  <trix@redhat.com>
     37
     38        * xcoff.h (xcoff_big_format_p): Make <bigaf> the default archive
     39        format.
     40        (XCOFFARMAG_ELEMENT_SIZE, XCOFFARMAGBIG_ELEMENT_SIZE): Define for
     41        archive header ascii elements. 
     42
     432001-12-17  Tom Rix  <trix@redhat.com>
     44
     45        * xcoff.h :  Add .except and .typchk section string and styp flags.
     46        Fix xcoff_big_format_p macro. 
     47
     482001-12-16  Tom Rix  <trix@redhat.com>
     49
     50        * xcoff.h : Clean up formatting.
     51
     522002-01-15  Richard Earnshaw  <rearnsha@arm.com>
     53
     54        * arm.h (F_VFP_FLOAT): Define.
     55
     562001-11-11  Timothy Wall  <twall@alum.mit.edu>
     57
     58        * ti.h: Move arch-specific stuff from here...
     59        (COFF_ADJUST_SYM_IN/OUT): Optionally put page flag into symbol
     60        value.
     61        * tic54x.h: ...to here.
     62       
     632001-10-26  Christian Groessler  <cpg@aladdin.de>
     64
     65        * external.h (GET_LINENO_LNNO): Fix usage of H_GET_32/16.
     66        (PUT_LINENO_LNNO): Likewise with H_PUT_32/16.
     67
     682001-09-21  Nick Clifton  <nickc@cambridge.redhat.com>
     69
     70        * ti.h (GET_SCNHDR_PAGE): Fix compile time warning.
     71
     722001-09-18  Alan Modra  <amodra@bigpond.net.au>
     73
     74        * external.h (GET_LINENO_LNNO): Use H_GET_32/16.
     75        (PUT_LINENO_LNNO): Use H_PUT_32/16.
     76        * m88k.h (GET_LNSZ_SIZE, GET_LNSZ_LNNO, GET_SCN_NRELOC,
     77        GET_SCN_NLINNO): Use H_GET_32.
     78        (PUT_LNSZ_LNNO, PUT_LNSZ_SIZE, PUT_SCN_NRELOC, PUT_SCN_NLINNO):
     79        Use H_PUT_32.
     80        * ti.h: Formatting fixes.  Make use of H_GET_* and H_PUT_* throughout.
     81        * xcoff.h: White space changes.
     82
     832001-09-05  Tom Rix <trix@redhat.com>
     84
     85        * xcoff.h : Add XCOFF_SYSCALL32 and XCOFF_SYSCALL64 hash table flags.
     86       
     872001-08-27  Andreas Jaeger  <aj@suse.de>
     88
     89        * xcoff.h (struct __rtinit): Make proper prototype for rtl.
     90
     91Fri Aug 24 01:18:51 2001  J"orn Rennecke <amylaar@redhat.com>
     92
     93        * internal.h (R_JMP2, R_JMPL2, R_MOVL2): Comment spelling fix.
     94
     952001-04-05  Tom Rix <trix@redhat.com>
     96
     97        * rs6000.h : move xcoff32 external structures from xcofflink.
     98        * rs6k64.h : move xcoff64 external structures from xcofflink.
     99        * internal.h : promote 32 bit structure elements to 64 bit
     100        for xcoff64 support
     101        * xcoff.h : New file.
     102       
     1032001-03-23  Nick Clifton  <nickc@redhat.com>
     104
     105        * a29k.h: Fix compile time warning.
     106        * external.h: Fix compile time warning.
     107        * m88k.h: Fix compile time warning.
     108
     1092001-03-13  Nick Clifton  <nickc@redhat.com>
     110
     111        * external.h: New file. Common structure definitions found in
     112        other COFF header files.
     113
     114        * a29k.h: Use external.h.
     115        * apollo.h: Use external.h.
     116        * arm.h: Use external.h.
     117        * h8300.h: Use external.h.
     118        * h8500.h: Use external.h.
     119        * i386.h: Use external.h.
     120        * i860.h: Use external.h.
     121        * ia64.h: Use external.h.
     122        * m68k.h: Use external.h.
     123        * m88k.h: Use external.h.
     124        * mcore.h: Use external.h.
     125        * mips.h: Use external.h.
     126        * mipspe.h: Use external.h.
     127        * powerpc.h: Use external.h.
     128        * rs6000.h: Use external.h.
     129        * rs6k64.h: Use external.h.
     130        * sh.h: Use external.h.
     131        * sparc.h: Use external.h.
     132        * tic30.h: Use external.h.
     133        * tic80.h: Use external.h.
     134        * w65.h: Use external.h.
     135        * we32k.h: Use external.h.
     136        * z8k.h: Use external.h.
     137
     1382001-02-09  David Mosberger  <davidm@hpl.hp.com>
     139
    5140        * pe.h (PEPAOUTSZ): Rename from PEP64AOUTSZ.
    6141        Rename from PEPAOUTHDR.
    7142
    8 2001-06-07  Alan Modra  <amodra@bigpond.net.au>
    9 
    10         * Many files: Update copyright notices.
    11 
    12 2001-02-17  Philip Blundell  <philb@gnu.org>
    13 
    14         From 2001-01-23  H.J. Lu  <hjl@gnu.org>
     1432001-01-23  H.J. Lu  <hjl@gnu.org>
     144
    15145        * pe.h (struct external_PEI_DOS_hdr): New.
    16146        (struct external_PEI_IMAGE_hdr): New.
  • branches/GNU/src/binutils/include/coff/a29k.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    2323#endif
    2424
    25 /****************************************************************/
    26 
    27 /*
    28 ** File Header and related definitions
    29 */
    30 
    31 struct external_filehdr
    32 {
    33         char f_magic[2];        /* magic number          */
    34         char f_nscns[2];        /* number of sections      */
    35         char f_timdat[4];       /* time & date stamp        */
    36         char f_symptr[4];       /* file pointer to symtab       */
    37         char f_nsyms[4];        /* number of symtab entries     */
    38         char f_opthdr[2];       /* sizeof(optional hdr)  */
    39         char f_flags[2];        /* flags                        */
    40 };
    41 
    42 #define FILHDR  struct external_filehdr
    43 #define FILHSZ  20
    44 
    45 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
     25#define L_LNNO_SIZE 2
     26#include "coff/external.h"
    4627
    4728/*
     
    5334#define SIPRBOMAGIC     0573    /* Am29000 (Byte 0 is LSB) */
    5435
    55 
    5636#define A29K_MAGIC_BIG          SIPFBOMAGIC     
    5737#define A29K_MAGIC_LITTLE       SIPRBOMAGIC     
    58 #define A29KBADMAG(x)   (((x).f_magic!=A29K_MAGIC_BIG) && \
    59                           ((x).f_magic!=A29K_MAGIC_LITTLE))
     38#define A29KBADMAG(x)   ( ((x).f_magic != A29K_MAGIC_BIG) && \
     39                          ((x).f_magic != A29K_MAGIC_LITTLE))
    6040
    6141#define OMAGIC A29K_MAGIC_BIG
     
    7151/*--------------------------------------------------------------*/
    7252
    73 /*
    74 ** Optional (a.out) header
    75 */
    76 
    77 typedef struct external_aouthdr
    78 {
    79   char  magic[2];              /* type of file                   */
    80   char  vstamp[2];            /* version stamp                  */
    81   char  tsize[4];              /* text size in bytes, padded to FW bdry*/
    82   char  dsize[4];              /* initialized data "  "         */
    83   char  bsize[4];              /* uninitialized data "   "           */
    84   char  entry[4];              /* entry pt.                         */
    85   char  text_start[4];    /* base of text used for this file */
    86   char  data_start[4];    /* base of data used for this file */
    87 } AOUTHDR;
    88 
    89 #define AOUTSZ 28
    90 #define AOUTHDRSZ 28
    9153
    9254/* aouthdr magic numbers */
     
    9456#define SHMAGIC 0406            /* NYU/Ultra3 shared data executable
    9557                                   (writable text) */
    96 
     58#undef  _ETEXT
    9759#define _ETEXT          "_etext"
    9860
    9961/*--------------------------------------------------------------*/
    10062
    101 /*
    102 ** Section header and related definitions
    103 */
    10463
    105 struct external_scnhdr
    106 {
    107         char        s_name[8];      /* section name              */
    108         char        s_paddr[4];     /* physical address, aliased s_nlib */
    109         char        s_vaddr[4];     /* virtual address        */
    110         char        s_size[4];      /* section size              */
    111         char        s_scnptr[4];    /* file ptr to raw data for section */
    112         char        s_relptr[4];    /* file ptr to relocation       */
    113         char        s_lnnoptr[4];   /* file ptr to line numbers     */
    114         char        s_nreloc[2];    /* number of relocation entries */
    115         char        s_nlnno[2];     /* number of line number entries*/
    116         char        s_flags[4];     /* flags                    */
    117 };
    118 
    119 #define SCNHDR  struct  external_scnhdr
    120 #define SCNHSZ  40
    121 
    122 /*
    123  * names of "special" sections
    124  */
    125 #define _TEXT   ".text"
    126 #define _DATA   ".data"
    127 #define _BSS    ".bss"
     64/* More names of "special" sections.  */
    12865#define _LIT    ".lit"
    12966
     
    15188*/
    15289
    153 struct external_reloc {
     90struct external_reloc
     91{
    15492  char r_vaddr[4];      /* (virtual) address of reference */
    15593  char r_symndx[4];     /* index into symbol table */
     
    200138/*--------------------------------------------------------------*/
    201139
    202 /*
    203 ** Line number entry declaration and related definitions
    204 */
    205 
    206 struct external_lineno
    207 {
    208    union {
    209          char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/
    210          char l_paddr[4];  /* (physical) address of line number    */
    211    } l_addr;
    212    char l_lnno[2];      /* line number    */
    213 };
    214 
    215 #define LINENO          struct external_lineno
    216 #define LINESZ          6               /* sizeof (LINENO) */
    217 
    218 /*--------------------------------------------------------------*/
    219 
    220 /*
    221 ** Symbol entry declaration and related definitions
    222 */
    223 
    224 #define E_SYMNMLEN      8       /* Number of characters in a symbol name */
    225 
    226 struct external_syment
    227 {
    228   union {
    229     char e_name[E_SYMNMLEN];
    230     struct {
    231       char e_zeroes[4];
    232       char e_offset[4];
    233     } e;
    234   } e;
    235   char e_value[4];
    236   char e_scnum[2];
    237   char e_type[2];
    238   char e_sclass[1];
    239   char e_numaux[1];
    240 };
    241 
    242 #define SYMENT  struct external_syment
    243 #define SYMESZ  18
    244 
    245140/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
    246141
     
    252147#define C_EXTREG        20              /* external global register */
    253148#define C_DEFREG        21              /* ext. def. of global register */
    254 
    255 
    256 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
    257 
    258 /*
    259 ** Derived symbol mask/shifts.
    260 */
    261 
    262 #define N_BTMASK        (0xf)
    263 #define N_BTSHFT        (4)
    264 #define N_TMASK         (0x30)
    265 #define N_TSHIFT        (2)
    266 
    267 /*--------------------------------------------------------------*/
    268 
    269 /*
    270 ** Auxiliary symbol table entry declaration and related
    271 ** definitions.
    272 */
    273 
    274 #define E_FILNMLEN      14      /* # characters in a file name    */
    275 #define E_DIMNUM        4       /* # array dimensions in auxiliary entry */
    276 
    277 union external_auxent {
    278         struct {
    279                 char x_tagndx[4];       /* str, un, or enum tag indx */
    280                 union {
    281                         struct {
    282                             char  x_lnno[2]; /* declaration line number */
    283                             char  x_size[2]; /* str/union/array size */
    284                         } x_lnsz;
    285                         char x_fsize[4];        /* size of function */
    286                 } x_misc;
    287                 union {
    288                         struct {                /* if ISFCN, tag, or .bb */
    289                             char x_lnnoptr[4];  /* ptr to fcn line # */
    290                             char x_endndx[4];   /* entry ndx past block end */
    291                         } x_fcn;
    292                         struct {                /* if ISARY, up to 4 dimen. */
    293                             char x_dimen[E_DIMNUM][2];
    294                         } x_ary;
    295                 } x_fcnary;
    296                 char x_tvndx[2];                /* tv index */
    297         } x_sym;
    298 
    299         union {
    300                 char x_fname[E_FILNMLEN];
    301                 struct {
    302                         char x_zeroes[4];
    303                         char x_offset[4];
    304                 } x_n;
    305         } x_file;
    306 
    307         struct {
    308                 char x_scnlen[4];                      /* section length */
    309                 char x_nreloc[2];       /* # relocation entries */
    310                 char x_nlinno[2];       /* # line numbers */
    311         } x_scn;
    312 
    313         struct {
    314                 char x_tvfill[4];       /* tv fill value */
    315                 char x_tvlen[2];        /* length of .tv */
    316                 char x_tvran[2][2];     /* tv range */
    317         } x_tv;  /* info about .tv section (in auxent of symbol .tv)) */
    318 };
    319 
    320 #define AUXENT          union external_auxent
    321 #define AUXESZ          18     
  • branches/GNU/src/binutils/include/coff/alpha.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    2020/********************** FILE HEADER **********************/
    2121
    22 struct external_filehdr {
     22struct external_filehdr
     23{
    2324  unsigned char f_magic[2];     /* magic number                 */
    2425  unsigned char f_nscns[2];     /* number of sections           */
     
    4445
    4546/********************** AOUT "OPTIONAL HEADER" **********************/
    46 
    4747
    4848typedef struct external_aouthdr
     
    7171/********************** SECTION HEADER **********************/
    7272
    73 struct external_scnhdr {
     73struct external_scnhdr
     74{
    7475  unsigned char s_name[8];      /* section name                 */
    7576  unsigned char s_paddr[8];     /* physical address, aliased s_nlib */
     
    8990/********************** RELOCATION DIRECTIVES **********************/
    9091
    91 struct external_reloc {
     92struct external_reloc
     93{
    9294  unsigned char r_vaddr[8];
    9395  unsigned char r_symndx[4];
     
    167169/* File header as a set of bytes */
    168170
    169 struct hdr_ext {
     171struct hdr_ext
     172{
    170173        unsigned char   h_magic[2];
    171174        unsigned char   h_vstamp[2];
     
    197200/* File descriptor external record */
    198201
    199 struct fdr_ext {
     202struct fdr_ext
     203{
    200204        unsigned char   f_adr[8];
    201205        unsigned char   f_cbLineOffset[8];
  • branches/GNU/src/binutils/include/coff/apollo.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1717   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    1818
    19 /********************** FILE HEADER **********************/
    20 
    21 struct external_filehdr {
    22         char f_magic[2];        /* magic number                 */
    23         char f_nscns[2];        /* number of sections           */
    24         char f_timdat[4];       /* time & date stamp            */
    25         char f_symptr[4];       /* file pointer to symtab       */
    26         char f_nsyms[4];        /* number of symtab entries     */
    27         char f_opthdr[2];       /* sizeof(optional hdr)         */
    28         char f_flags[2];        /* flags                        */
    29 };
    30 
     19#define DO_NOT_DEFINE_AOUTHDR
     20#define L_LNNO_SIZE 2
     21#include "coff/external.h"
    3122
    3223/* Motorola 68000/68008/68010/68020 */
     
    4839  ((x).f_magic!=MC68KROMAGIC) && ((x).f_magic!=MC68KPGMAGIC) && ((x).f_magic!=M68MAGIC) && ((x).f_magic!=M68TVMAGIC)  && \
    4940  ((x).f_magic!=APOLLOM68KMAGIC) )
    50 
    51 
    52 #define FILHDR  struct external_filehdr
    53 #define FILHSZ  20
    54 
    5541
    5642/********************** AOUT "OPTIONAL HEADER" **********************/
     
    7662#define AOUTSZ 44
    7763
     64/* Apollo allowa for larger section names by allowing
     65   them to be in the string table.  */
    7866
    79 
    80 /********************** SECTION HEADER **********************/
    81 
    82 struct external_scnhdr {
    83         /* Apollo allow for larger section names by  allowing it to be in
    84          * the string table.
    85          */
    86         char            s_name[8];
    87         char            s_paddr[4];     /* physical address, aliased s_nlib */
    88         char            s_vaddr[4];     /* virtual address              */
    89         char            s_size[4];      /* section size                 */
    90         char            s_scnptr[4];    /* file ptr to raw data for section */
    91         char            s_relptr[4];    /* file ptr to relocation       */
    92         char            s_lnnoptr[4];   /* file ptr to line numbers     */
    93         char            s_nreloc[2];    /* number of relocation entries */
    94         char            s_nlnno[2];     /* number of line number entries*/
    95         char            s_flags[4];     /* flags                        */
    96 };
    97 
    98 /* If s_zeores is all zeroes, s_offset gives the real location of the name
    99  * in the string table.
    100  */
     67/* If s_zeores is all zeroes, s_offset gives the real
     68   location of the name in the string table.  */
    10169
    10270#define s_zeroes section_name.s_name
    10371#define s_offset (section_name.s_name+4)
    10472
    105 /*
    106  * names of "special" sections
    107  */
    108 #define _TEXT   ".text"
    109 #define _DATA   ".data"
    110 #define _BSS    ".bss"
     73/* More names of "special" sections.  */
    11174#define _TV     ".tv"
    11275#define _INIT   ".init"
     
    12386#define _UNWIND ".unwind"               /* Stack unwind information */
    12487
    125 #define SCNHDR  struct external_scnhdr
    126 #define SCNHSZ  40
    127 
    128 
    129 /********************** LINE NUMBERS **********************/
    130 
    131 /* 1 line number entry for every "breakpointable" source line in a section.
    132  * Line numbers are grouped on a per function basis; first entry in a function
    133  * grouping will have l_lnno = 0 and in place of physical address will be the
    134  * symbol table index of the function name.
    135  */
    136 struct external_lineno {
    137         union {
    138                 char l_symndx[4];       /* function name symbol index, iff l_lnno == 0*/
    139                 char l_paddr[4];        /* (physical) address of line number    */
    140         } l_addr;
    141         char l_lnno[2]; /* line number          */
    142 };
    143 
    144 
    145 #define LINENO  struct external_lineno
    146 #define LINESZ  6
    147 
    148 
    149 /********************** SYMBOLS **********************/
    150 
    151 #define E_SYMNMLEN      8       /* # characters in a symbol name        */
    152 #define E_FILNMLEN      14      /* # characters in a file name          */
    153 #define E_DIMNUM        4       /* # array dimensions in auxiliary entry */
    154 
    155 struct external_syment
    156 {
    157   union {
    158     char e_name[E_SYMNMLEN];
    159     struct {
    160       char e_zeroes[4];
    161       char e_offset[4];
    162     } e;
    163   } e;
    164   char e_value[4];
    165   char e_scnum[2];
    166   char e_type[2];
    167   char e_sclass[1];
    168   char e_numaux[1];
    169 };
    170 
    171 
    172 
    173 #define N_BTMASK        (017)
    174 #define N_TMASK         (060)
    175 #define N_BTSHFT        (4)
    176 #define N_TSHIFT        (2)
    177  
    178 
    179 union external_auxent {
    180         struct {
    181                 char x_tagndx[4];       /* str, un, or enum tag indx */
    182                 union {
    183                         struct {
    184                             char  x_lnno[2]; /* declaration line number */
    185                             char  x_size[2]; /* str/union/array size */
    186                         } x_lnsz;
    187                         char x_fsize[4];        /* size of function */
    188                 } x_misc;
    189                 union {
    190                         struct {                /* if ISFCN, tag, or .bb */
    191                             char x_lnnoptr[4];  /* ptr to fcn line # */
    192                             char x_endndx[4];   /* entry ndx past block end */
    193                         } x_fcn;
    194                         struct {                /* if ISARY, up to 4 dimen. */
    195                             char x_dimen[E_DIMNUM][2];
    196                         } x_ary;
    197                 } x_fcnary;
    198                 char x_tvndx[2];                /* tv index */
    199         } x_sym;
    200 
    201         union {
    202                 char x_fname[E_FILNMLEN];
    203                 struct {
    204                         char x_zeroes[4];
    205                         char x_offset[4];
    206                 } x_n;
    207         } x_file;
    208 
    209         struct {
    210                 char x_scnlen[4];                       /* section length */
    211                 char x_nreloc[2];       /* # relocation entries */
    212                 char x_nlinno[2];       /* # line numbers */
    213         } x_scn;
    214 
    215         struct {
    216                 char x_tvfill[4];       /* tv fill value */
    217                 char x_tvlen[2];        /* length of .tv */
    218                 char x_tvran[2][2];     /* tv range */
    219         } x_tv;         /* info about .tv section (in auxent of symbol .tv)) */
    220 
    221 
    222 };
    223 
    224 #define SYMENT  struct external_syment
    225 #define SYMESZ  18     
    226 #define AUXENT  union external_auxent
    227 #define AUXESZ  18
    228 
    229 
    230 
    23188/********************** RELOCATION DIRECTIVES **********************/
    23289
    233 
    234 struct external_reloc {
     90struct external_reloc
     91{
    23592  char r_vaddr[4];
    23693  char r_symndx[4];
     
    24198
    24299};
    243 
    244100
    245101#define RELOC struct external_reloc
  • branches/GNU/src/binutils/include/coff/arm.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* ARM COFF support for BFD.
    2    Copyright 1998, 1999, 2000 Free Software Foundation, Inc.
     2   Copyright 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
    33
    44   This file is part of BFD, the Binary File Descriptor library.
     
    2020#define COFFARM 1
    2121
    22 /********************** FILE HEADER **********************/
    23 
    24 struct external_filehdr
    25 {
    26         char f_magic[2];        /* magic number                 */
    27         char f_nscns[2];        /* number of sections           */
    28         char f_timdat[4];       /* time & date stamp            */
    29         char f_symptr[4];       /* file pointer to symtab       */
    30         char f_nsyms[4];        /* number of symtab entries     */
    31         char f_opthdr[2];       /* sizeof(optional hdr)         */
    32         char f_flags[2];        /* flags                        */
    33 };
     22#define L_LNNO_SIZE 2
     23#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
     24#include "coff/external.h"
    3425
    3526/* Bits for f_flags:
    36  *      F_RELFLG        relocation info stripped from file
    37  *      F_EXEC          file is executable (no unresolved external references)
    38  *      F_LNNO          line numbers stripped from file
    39  *      F_LSYMS         local symbols stripped from file
    40  *      F_INTERWORK     file supports switching between ARM and Thumb instruction sets
    41  *      F_INTERWORK_SET the F_INTERWORK bit is valid
    42  *      F_APCS_FLOAT    code passes float arguments in float registers
    43  *      F_PIC           code is reentrant/position-independent
    44  *      F_AR32WR        file has byte ordering of an AR32WR machine (e.g. vax)
    45  *      F_APCS_26       file uses 26 bit ARM Procedure Calling Standard
    46  *      F_APCS_SET      the F_APCS_26, F_APCS_FLOAT and F_PIC bits have been initialised
    47  *      F_SOFT_FLOAT    code does not use floating point instructions
    48  */
     27        F_RELFLG        relocation info stripped from file
     28        F_EXEC          file is executable (no unresolved external references)
     29        F_LNNO          line numbers stripped from file
     30        F_LSYMS         local symbols stripped from file
     31        F_INTERWORK     file supports switching between ARM and Thumb instruction sets
     32        F_INTERWORK_SET the F_INTERWORK bit is valid
     33        F_APCS_FLOAT    code passes float arguments in float registers
     34        F_PIC           code is reentrant/position-independent
     35        F_AR32WR        file has byte ordering of an AR32WR machine (e.g. vax)
     36        F_APCS_26       file uses 26 bit ARM Procedure Calling Standard
     37        F_APCS_SET      the F_APCS_26, F_APCS_FLOAT and F_PIC bits have been initialised
     38        F_SOFT_FLOAT    code does not use floating point instructions.  */
    4939
    5040#define F_RELFLG        (0x0001)
     
    6151#define F_APCS_SET      (0x0800)
    6252#define F_SOFT_FLOAT    (0x2000)
     53#define F_VFP_FLOAT     (0x4000)
    6354
    6455/* Bits stored in flags field of the internal_f structure */
     
    7869
    7970/*
    80  * ARMMAGIC ought to encoded the procesor type,
    81  * but it is too late to change it now, instead
    82  * the flags field of the internal_f structure
    83  * is used as shown above.
    84  *
    85  * XXX - NC 5/6/97
    86  */
     71  ARMMAGIC ought to encoded the procesor type,
     72  but it is too late to change it now, instead
     73  the flags field of the internal_f structure
     74  is used as shown above.
     75 
     76  XXX - NC 5/6/97.  */
    8777
    8878#define ARMMAGIC        0xa00  /* I just made this up */
     
    9686#define ARMBADMAG(x) (((x).f_magic != ARMMAGIC) && ((x).f_magic != ARMPEMAGIC) && ((x).f_magic != THUMBPEMAGIC))
    9787
    98 #define FILHDR  struct external_filehdr
    99 #define FILHSZ  20
    100 
    101 
    102 /********************** AOUT "OPTIONAL HEADER" **********************/
    103 
    104 
    105 typedef struct
    106 {
    107   char  magic[2];               /* type of file                         */
    108   char  vstamp[2];              /* version stamp                        */
    109   char  tsize[4];               /* text size in bytes, padded to FW bdry*/
    110   char  dsize[4];               /* initialized data "  "                */
    111   char  bsize[4];               /* uninitialized data "   "             */
    112   char  entry[4];               /* entry pt.                            */
    113   char  text_start[4];          /* base of text used for this file */
    114   char  data_start[4];          /* base of data used for this file */
    115 }
    116 AOUTHDR;
    117 
    118 
    119 #define AOUTSZ 28
    120 #define AOUTHDRSZ 28
    121 
    12288#define OMAGIC          0404    /* object files, eg as output */
    12389#define ZMAGIC          0413    /* demand load format, eg normal ld output */
    12490#define STMAGIC         0401    /* target shlib */
    12591#define SHMAGIC         0443    /* host   shlib */
    126 
    12792
    12893/* define some NT default values */
     
    13398#define NT_DEF_COMMIT        0x1000
    13499
    135 /********************** SECTION HEADER **********************/
    136 struct external_scnhdr
    137 {
    138         char            s_name[8];      /* section name                 */
    139         char            s_paddr[4];     /* physical address, aliased s_nlib */
    140         char            s_vaddr[4];     /* virtual address              */
    141         char            s_size[4];      /* section size                 */
    142         char            s_scnptr[4];    /* file ptr to raw data for section */
    143         char            s_relptr[4];    /* file ptr to relocation       */
    144         char            s_lnnoptr[4];   /* file ptr to line numbers     */
    145         char            s_nreloc[2];    /* number of relocation entries */
    146         char            s_nlnno[2];     /* number of line number entries*/
    147         char            s_flags[4];     /* flags                        */
    148 };
    149 
    150 #define SCNHDR  struct external_scnhdr
    151 #define SCNHSZ  40
    152 
    153 /*
    154  * names of "special" sections
    155  */
    156 #define _TEXT   ".text"
    157 #define _DATA   ".data"
    158 #define _BSS    ".bss"
    159 #define _COMMENT ".comment"
    160 #define _LIB ".lib"
    161 
    162100/* We use the .rdata section to hold read only data.  */
    163101#define _LIT    ".rdata"
    164 
    165 /********************** LINE NUMBERS **********************/
    166 
    167 /* 1 line number entry for every "breakpointable" source line in a section.
    168  * Line numbers are grouped on a per function basis; first entry in a function
    169  * grouping will have l_lnno = 0 and in place of physical address will be the
    170  * symbol table index of the function name.
    171  */
    172 struct external_lineno
    173 {
    174         union
    175         {
    176                 char l_symndx[4];       /* function name symbol index, iff l_lnno == 0*/
    177                 char l_paddr[4];        /* (physical) address of line number    */
    178         } l_addr;
    179         char l_lnno[2]; /* line number          */
    180 };
    181 
    182 
    183 #define LINENO  struct external_lineno
    184 #define LINESZ  6
    185 
    186 
    187 /********************** SYMBOLS **********************/
    188 
    189 #define E_SYMNMLEN      8       /* # characters in a symbol name        */
    190 #define E_FILNMLEN      14      /* # characters in a file name          */
    191 #define E_DIMNUM        4       /* # array dimensions in auxiliary entry */
    192 
    193 struct external_syment
    194 {
    195   union
    196   {
    197     char e_name[E_SYMNMLEN];
    198     struct
    199     {
    200       char e_zeroes[4];
    201       char e_offset[4];
    202     } e;
    203   } e;
    204   char e_value[4];
    205   char e_scnum[2];
    206   char e_type[2];
    207   char e_sclass[1];
    208   char e_numaux[1];
    209 };
    210 
    211 #define N_BTMASK        (0xf)
    212 #define N_TMASK         (0x30)
    213 #define N_BTSHFT        (4)
    214 #define N_TSHIFT        (2)
    215 
    216 union external_auxent
    217 {
    218         struct
    219         {
    220                 char x_tagndx[4];       /* str, un, or enum tag indx */
    221                 union
    222                 {
    223                         struct
    224                         {
    225                             char  x_lnno[2]; /* declaration line number */
    226                             char  x_size[2]; /* str/union/array size */
    227                         } x_lnsz;
    228                         char x_fsize[4];        /* size of function */
    229                 } x_misc;
    230                 union
    231                 {
    232                         struct                  /* if ISFCN, tag, or .bb */
    233                         {
    234                             char x_lnnoptr[4];  /* ptr to fcn line # */
    235                             char x_endndx[4];   /* entry ndx past block end */
    236                         } x_fcn;
    237                         struct                  /* if ISARY, up to 4 dimen. */
    238                         {
    239                             char x_dimen[E_DIMNUM][2];
    240                         } x_ary;
    241                 } x_fcnary;
    242                 char x_tvndx[2];                /* tv index */
    243         } x_sym;
    244 
    245         union
    246         {
    247                 char x_fname[E_FILNMLEN];
    248                 struct
    249                 {
    250                         char x_zeroes[4];
    251                         char x_offset[4];
    252                 } x_n;
    253         } x_file;
    254 
    255         struct
    256         {
    257                 char x_scnlen[4];       /* section length */
    258                 char x_nreloc[2];       /* # relocation entries */
    259                 char x_nlinno[2];       /* # line numbers */
    260                 char x_checksum[4];     /* section COMDAT checksum */
    261                 char x_associated[2];   /* COMDAT associated section index */
    262                 char x_comdat[1];       /* COMDAT selection number */
    263         } x_scn;
    264 
    265         struct
    266         {
    267                 char x_tvfill[4];       /* tv fill value */
    268                 char x_tvlen[2];        /* length of .tv */
    269                 char x_tvran[2][2];     /* tv range */
    270         } x_tv;         /* info about .tv section (in auxent of symbol .tv)) */
    271 };
    272 
    273 #define SYMENT  struct external_syment
    274 #define SYMESZ  18     
    275 #define AUXENT  union external_auxent
    276 #define AUXESZ  18
    277 
    278 #define _ETEXT  "etext"
    279102
    280103/********************** RELOCATION DIRECTIVES **********************/
     
    302125#define RELSZ 14
    303126#endif
     127
     128#define ARM_NOTE_SECTION ".note"
  • branches/GNU/src/binutils/include/coff/ecoff.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    33   symconst.h.
    44
    5    Copyright 2001 Free Software Foundation, Inc.
     5   Copyright 2001, 2002 Free Software Foundation, Inc.
    66
    77   This program is free software; you can redistribute it and/or modify
     
    99   the Free Software Foundation; either version 2 of the License, or
    1010   (at your option) any later version.
    11    
     11
    1212   This program is distributed in the hope that it will be useful,
    1313   but WITHOUT ANY WARRANTY; without even the implied warranty of
    1414   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1515   GNU General Public License for more details.
    16    
     16
    1717   You should have received a copy of the GNU General Public License
    1818   along with this program; if not, write to the Free Software
    1919   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    20    
     20
    2121#ifndef ECOFF_H
    2222#define ECOFF_H
     
    431431     ecoff_debug_info structure.  The section argument is used for
    432432     ELF, not straight ECOFF.  */
    433   boolean (*read_debug_info) PARAMS ((bfd *, asection *,
    434                                       struct ecoff_debug_info *));
     433  bfd_boolean (*read_debug_info)
     434    PARAMS ((bfd *, asection *, struct ecoff_debug_info *));
    435435};
    436436
  • branches/GNU/src/binutils/include/coff/go32exe.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1919#define STUBSIZE 2048
    2020
    21 struct external_filehdr_go32_exe {
    22         char stub[STUBSIZE];    /* the stub to load the image   */
    23         /* the standard COFF header */
    24         char f_magic[2];        /* magic number                 */
    25         char f_nscns[2];        /* number of sections           */
    26         char f_timdat[4];       /* time & date stamp            */
    27         char f_symptr[4];       /* file pointer to symtab       */
    28         char f_nsyms[4];        /* number of symtab entries     */
    29         char f_opthdr[2];       /* sizeof(optional hdr)         */
    30         char f_flags[2];        /* flags                        */
    31 };
     21struct external_filehdr_go32_exe
     22  {
     23    char stub[STUBSIZE];/* the stub to load the image   */
     24                        /* the standard COFF header     */
     25    char f_magic[2];    /* magic number                 */
     26    char f_nscns[2];    /* number of sections           */
     27    char f_timdat[4];   /* time & date stamp            */
     28    char f_symptr[4];   /* file pointer to symtab       */
     29    char f_nsyms[4];    /* number of symtab entries     */
     30    char f_opthdr[2];   /* sizeof(optional hdr)         */
     31    char f_flags[2];    /* flags                        */
     32  };
    3233
    3334#undef FILHDR
  • branches/GNU/src/binutils/include/coff/h8300.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1 /* coff information for Hitachi H8/300 and H8/300-H
     1/* coff information for Renesas H8/300 and H8/300-H
    22
    3    Copyright 2001 Free Software Foundation, Inc.
     3   Copyright 2001, 2003 Free Software Foundation, Inc.
    44
    55   This program is free software; you can redistribute it and/or modify
     
    1717   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    1818
    19 /********************** FILE HEADER **********************/
    20 
    21 struct external_filehdr {
    22         char f_magic[2];        /* magic number                 */
    23         char f_nscns[2];        /* number of sections           */
    24         char f_timdat[4];       /* time & date stamp            */
    25         char f_symptr[4];       /* file pointer to symtab       */
    26         char f_nsyms[4];        /* number of symtab entries     */
    27         char f_opthdr[2];       /* sizeof(optional hdr)         */
    28         char f_flags[2];        /* flags                        */
    29 };
    30 
    31 
     19#define L_LNNO_SIZE 4
     20#include "coff/external.h"
    3221
    3322#define H8300MAGIC      0x8300
    3423#define H8300HMAGIC     0x8301
    3524#define H8300SMAGIC     0x8302
     25#define H8300HNMAGIC    0x8303
     26#define H8300SNMAGIC    0x8304
    3627
    37 #define H8300BADMAG(x) (((x).f_magic!=H8300MAGIC))
    38 #define H8300HBADMAG(x) (((x).f_magic!=H8300HMAGIC))
    39 #define H8300SBADMAG(x) (((x).f_magic!=H8300SMAGIC))
     28#define H8300BADMAG(x)   (((x).f_magic != H8300MAGIC))
     29#define H8300HBADMAG(x)  (((x).f_magic != H8300HMAGIC))
     30#define H8300SBADMAG(x)  (((x).f_magic != H8300SMAGIC))
     31#define H8300HNBADMAG(x) (((x).f_magic != H8300HNMAGIC))
     32#define H8300SNBADMAG(x) (((x).f_magic != H8300SNMAGIC))
    4033
    41 #define FILHDR  struct external_filehdr
    42 #define FILHSZ  20
    43 
    44 
    45 /********************** AOUT "OPTIONAL HEADER" **********************/
    46 
    47 
    48 typedef struct
    49 {
    50   char  magic[2];               /* type of file                         */
    51   char  vstamp[2];              /* version stamp                        */
    52   char  tsize[4];               /* text size in bytes, padded to FW bdry*/
    53   char  dsize[4];               /* initialized data "  "                */
    54   char  bsize[4];               /* uninitialized data "   "             */
    55   char  entry[4];               /* entry pt.                            */
    56   char  text_start[4];          /* base of text used for this file */
    57   char  data_start[4];          /* base of data used for this file */
    58 }
    59 AOUTHDR;
    60 
    61 
    62 #define AOUTHDRSZ 28
    63 #define AOUTSZ 28
    64 
    65 
    66 
    67 
    68 /********************** SECTION HEADER **********************/
    69 
    70 
    71 struct external_scnhdr {
    72         char            s_name[8];      /* section name                 */
    73         char            s_paddr[4];     /* physical address, aliased s_nlib */
    74         char            s_vaddr[4];     /* virtual address              */
    75         char            s_size[4];      /* section size                 */
    76         char            s_scnptr[4];    /* file ptr to raw data for section */
    77         char            s_relptr[4];    /* file ptr to relocation       */
    78         char            s_lnnoptr[4];   /* file ptr to line numbers     */
    79         char            s_nreloc[2];    /* number of relocation entries */
    80         char            s_nlnno[2];     /* number of line number entries*/
    81         char            s_flags[4];     /* flags                        */
    82 };
    83 
    84 /*
    85  * names of "special" sections
    86  */
    87 #define _TEXT   ".text"
    88 #define _DATA   ".data"
    89 #define _BSS    ".bss"
    90 
    91 
    92 #define SCNHDR  struct external_scnhdr
    93 #define SCNHSZ  40
    94 
    95 
    96 /********************** LINE NUMBERS **********************/
    97 
    98 /* 1 line number entry for every "breakpointable" source line in a section.
    99  * Line numbers are grouped on a per function basis; first entry in a function
    100  * grouping will have l_lnno = 0 and in place of physical address will be the
    101  * symbol table index of the function name.
    102  */
    103 struct external_lineno {
    104         union {
    105                 char l_symndx[4];       /* function name symbol index, iff l_lnno == 0*/
    106                 char l_paddr[4];        /* (physical) address of line number    */
    107         } l_addr;
    108         char l_lnno[4]; /* line number          */
    109 };
    110 
    111 #define GET_LINENO_LNNO(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) (ext->l_lnno));
    112 #define PUT_LINENO_LNNO(abfd,val, ext) bfd_h_put_32(abfd,val,  (bfd_byte *) (ext->l_lnno));
    113 
    114 #define LINENO  struct external_lineno
    115 #define LINESZ  8
    116 
    117 
    118 /********************** SYMBOLS **********************/
    119 
    120 #define E_SYMNMLEN      8       /* # characters in a symbol name        */
    121 #define E_FILNMLEN      14      /* # characters in a file name          */
    122 #define E_DIMNUM        4       /* # array dimensions in auxiliary entry */
    123 
    124 struct external_syment
    125 {
    126   union {
    127     char e_name[E_SYMNMLEN];
    128     struct {
    129       char e_zeroes[4];
    130       char e_offset[4];
    131     } e;
    132   } e;
    133   char e_value[4];
    134   char e_scnum[2];
    135   char e_type[2];
    136   char e_sclass[1];
    137   char e_numaux[1];
    138 };
    139 
    140 
    141 
    142 #define N_BTMASK        (017)
    143 #define N_TMASK         (060)
    144 #define N_BTSHFT        (4)
    145 #define N_TSHIFT        (2)
    146  
    147 
    148 union external_auxent {
    149         struct {
    150                 char x_tagndx[4];       /* str, un, or enum tag indx */
    151                 union {
    152                         struct {
    153                             char  x_lnno[2]; /* declaration line number */
    154                             char  x_size[2]; /* str/union/array size */
    155                         } x_lnsz;
    156                         char x_fsize[4];        /* size of function */
    157                 } x_misc;
    158                 union {
    159                         struct {                /* if ISFCN, tag, or .bb */
    160                             char x_lnnoptr[4];  /* ptr to fcn line # */
    161                             char x_endndx[4];   /* entry ndx past block end */
    162                         } x_fcn;
    163                         struct {                /* if ISARY, up to 4 dimen. */
    164                             char x_dimen[E_DIMNUM][2];
    165                         } x_ary;
    166                 } x_fcnary;
    167                 char x_tvndx[2];                /* tv index */
    168         } x_sym;
    169 
    170         union {
    171                 char x_fname[E_FILNMLEN];
    172                 struct {
    173                         char x_zeroes[4];
    174                         char x_offset[4];
    175                 } x_n;
    176         } x_file;
    177 
    178         struct {
    179                 char x_scnlen[4];                       /* section length */
    180                 char x_nreloc[2];       /* # relocation entries */
    181                 char x_nlinno[2];       /* # line numbers */
    182         } x_scn;
    183 
    184         struct {
    185                 char x_tvfill[4];       /* tv fill value */
    186                 char x_tvlen[2];        /* length of .tv */
    187                 char x_tvran[2][2];     /* tv range */
    188         } x_tv;         /* info about .tv section (in auxent of symbol .tv)) */
    189 
    190 
    191 };
    192 
    193 #define SYMENT  struct external_syment
    194 #define SYMESZ  18     
    195 #define AUXENT  union external_auxent
    196 #define AUXESZ  18
    197 
    198 
    199 
    200 /********************** RELOCATION DIRECTIVES **********************/
     34/* Relocation directives.  */
    20135
    20236/* The external reloc has an offset field, because some of the reloc
    20337   types on the h8 don't have room in the instruction for the entire
    204    offset - eg the strange jump and high page addressing modes */
     38   offset - eg the strange jump and high page addressing modes. */
    20539
    206 struct external_reloc {
     40struct external_reloc
     41{
    20742  char r_vaddr[4];
    20843  char r_symndx[4];
     
    21247};
    21348
    214 
    21549#define RELOC struct external_reloc
    21650#define RELSZ 16
  • branches/GNU/src/binutils/include/coff/h8500.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1 /* coff information for Hitachi H8/500
     1/* coff information for Renesas H8/500
    22   
    3    Copyright 2001 Free Software Foundation, Inc.
     3   Copyright 2001, 2003 Free Software Foundation, Inc.
    44
    55   This program is free software; you can redistribute it and/or modify
     
    1717   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    1818
    19 /********************** FILE HEADER **********************/
    20 
    21 struct external_filehdr {
    22         char f_magic[2];        /* magic number                 */
    23         char f_nscns[2];        /* number of sections           */
    24         char f_timdat[4];       /* time & date stamp            */
    25         char f_symptr[4];       /* file pointer to symtab       */
    26         char f_nsyms[4];        /* number of symtab entries     */
    27         char f_opthdr[2];       /* sizeof(optional hdr)         */
    28         char f_flags[2];        /* flags                        */
    29 };
    30 
    31 
     19#define L_LNNO_SIZE 4
     20#include "coff/external.h"
    3221
    3322#define H8500MAGIC      0x8500
    3423
    35 
    36 #define H8500BADMAG(x) ((0xffff && ((x).f_magic)!=H8500MAGIC))
    37 
    38 #define FILHDR  struct external_filehdr
    39 #define FILHSZ  20
    40 
    41 
    42 /********************** AOUT "OPTIONAL HEADER" **********************/
    43 
    44 
    45 typedef struct
    46 {
    47   char  magic[2];               /* type of file                         */
    48   char  vstamp[2];              /* version stamp                        */
    49   char  tsize[4];               /* text size in bytes, padded to FW bdry*/
    50   char  dsize[4];               /* initialized data "  "                */
    51   char  bsize[4];               /* uninitialized data "   "             */
    52   char  entry[4];               /* entry pt.                            */
    53   char  text_start[4];          /* base of text used for this file */
    54   char  data_start[4];          /* base of data used for this file */
    55 }
    56 AOUTHDR;
    57 
    58 
    59 #define AOUTHDRSZ 28
    60 #define AOUTSZ 28
    61 
    62 
    63 
    64 
    65 /********************** SECTION HEADER **********************/
    66 
    67 
    68 struct external_scnhdr {
    69         char            s_name[8];      /* section name                 */
    70         char            s_paddr[4];     /* physical address, aliased s_nlib */
    71         char            s_vaddr[4];     /* virtual address              */
    72         char            s_size[4];      /* section size                 */
    73         char            s_scnptr[4];    /* file ptr to raw data for section */
    74         char            s_relptr[4];    /* file ptr to relocation       */
    75         char            s_lnnoptr[4];   /* file ptr to line numbers     */
    76         char            s_nreloc[2];    /* number of relocation entries */
    77         char            s_nlnno[2];     /* number of line number entries*/
    78         char            s_flags[4];     /* flags                        */
    79 };
    80 
    81 /*
    82  * names of "special" sections
    83  */
    84 #define _TEXT   ".text"
    85 #define _DATA   ".data"
    86 #define _BSS    ".bss"
    87 
    88 
    89 #define SCNHDR  struct external_scnhdr
    90 #define SCNHSZ  40
    91 
    92 
    93 /********************** LINE NUMBERS **********************/
    94 
    95 /* 1 line number entry for every "breakpointable" source line in a section.
    96  * Line numbers are grouped on a per function basis; first entry in a function
    97  * grouping will have l_lnno = 0 and in place of physical address will be the
    98  * symbol table index of the function name.
    99  */
    100 struct external_lineno {
    101         union {
    102                 char l_symndx[4];       /* function name symbol index, iff l_lnno == 0*/
    103                 char l_paddr[4];        /* (physical) address of line number    */
    104         } l_addr;
    105         char l_lnno[4]; /* line number          */
    106 };
    107 
    108 #define GET_LINENO_LNNO(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) (ext->l_lnno));
    109 #define PUT_LINENO_LNNO(abfd,val, ext) bfd_h_put_32(abfd,val,  (bfd_byte *) (ext->l_lnno));
    110 
    111 #define LINENO  struct external_lineno
    112 #define LINESZ  8
    113 
    114 
    115 /********************** SYMBOLS **********************/
    116 
    117 #define E_SYMNMLEN      8       /* # characters in a symbol name        */
    118 #define E_FILNMLEN      14      /* # characters in a file name          */
    119 #define E_DIMNUM        4       /* # array dimensions in auxiliary entry */
    120 
    121 struct external_syment
    122 {
    123   union {
    124     char e_name[E_SYMNMLEN];
    125     struct {
    126       char e_zeroes[4];
    127       char e_offset[4];
    128     } e;
    129   } e;
    130   char e_value[4];
    131   char e_scnum[2];
    132   char e_type[2];
    133   char e_sclass[1];
    134   char e_numaux[1];
    135 };
    136 
    137 
    138 
    139 #define N_BTMASK        (017)
    140 #define N_TMASK         (060)
    141 #define N_BTSHFT        (4)
    142 #define N_TSHIFT        (2)
    143  
    144 
    145 union external_auxent {
    146         struct {
    147                 char x_tagndx[4];       /* str, un, or enum tag indx */
    148                 union {
    149                         struct {
    150                             char  x_lnno[2]; /* declaration line number */
    151                             char  x_size[2]; /* str/union/array size */
    152                         } x_lnsz;
    153                         char x_fsize[4];        /* size of function */
    154                 } x_misc;
    155                 union {
    156                         struct {                /* if ISFCN, tag, or .bb */
    157                             char x_lnnoptr[4];  /* ptr to fcn line # */
    158                             char x_endndx[4];   /* entry ndx past block end */
    159                         } x_fcn;
    160                         struct {                /* if ISARY, up to 4 dimen. */
    161                             char x_dimen[E_DIMNUM][2];
    162                         } x_ary;
    163                 } x_fcnary;
    164                 char x_tvndx[2];                /* tv index */
    165         } x_sym;
    166 
    167         union {
    168                 char x_fname[E_FILNMLEN];
    169                 struct {
    170                         char x_zeroes[4];
    171                         char x_offset[4];
    172                 } x_n;
    173         } x_file;
    174 
    175         struct {
    176                 char x_scnlen[4];                       /* section length */
    177                 char x_nreloc[2];       /* # relocation entries */
    178                 char x_nlinno[2];       /* # line numbers */
    179         } x_scn;
    180 
    181         struct {
    182                 char x_tvfill[4];       /* tv fill value */
    183                 char x_tvlen[2];        /* length of .tv */
    184                 char x_tvran[2][2];     /* tv range */
    185         } x_tv;         /* info about .tv section (in auxent of symbol .tv)) */
    186 
    187 
    188 };
    189 
    190 #define SYMENT  struct external_syment
    191 #define SYMESZ  18     
    192 #define AUXENT  union external_auxent
    193 #define AUXESZ  18
    194 
    195 
     24#define H8500BADMAG(x) ((0xffff && ((x).f_magic) != H8500MAGIC))
    19625
    19726/********************** RELOCATION DIRECTIVES **********************/
     
    19928/* The external reloc has an offset field, because some of the reloc
    20029   types on the h8 don't have room in the instruction for the entire
    201    offset - eg the strange jump and high page addressing modes */
     30   offset - eg the strange jump and high page addressing modes. */
    20231
    203 struct external_reloc {
     32struct external_reloc
     33{
    20434  char r_vaddr[4];
    20535  char r_symndx[4];
     
    20939};
    21040
    211 
    21241#define RELOC struct external_reloc
    21342#define RELSZ 16
  • branches/GNU/src/binutils/include/coff/i386.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1717   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    1818
    19 
    20 /********************** FILE HEADER **********************/
    21 
    22 struct external_filehdr {
    23         char f_magic[2];        /* magic number                 */
    24         char f_nscns[2];        /* number of sections           */
    25         char f_timdat[4];       /* time & date stamp            */
    26         char f_symptr[4];       /* file pointer to symtab       */
    27         char f_nsyms[4];        /* number of symtab entries     */
    28         char f_opthdr[2];       /* sizeof(optional hdr)         */
    29         char f_flags[2];        /* flags                        */
    30 };
     19#define L_LNNO_SIZE 2
     20#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
     21#include "coff/external.h"
    3122
    3223/* Bits for f_flags:
    33  *      F_RELFLG        relocation info stripped from file
    34  *      F_EXEC          file is executable (no unresolved external references)
    35  *      F_LNNO          line numbers stripped from file
    36  *      F_LSYMS         local symbols stripped from file
    37  *      F_AR32WR        file has byte ordering of an AR32WR machine (e.g. vax)
    38  */
     24        F_RELFLG        relocation info stripped from file
     25        F_EXEC          file is executable (no unresolved external references)
     26        F_LNNO          line numbers stripped from file
     27        F_LSYMS         local symbols stripped from file
     28        F_AR32WR        file has byte ordering of an AR32WR machine (e.g. vax).  */
    3929
    4030#define F_RELFLG        (0x0001)
     
    4232#define F_LNNO          (0x0004)
    4333#define F_LSYMS         (0x0008)
    44 
    45 
    4634
    4735#define I386MAGIC       0x14c
     
    5341#define LYNXCOFFMAGIC   0415
    5442
    55 #define I386BADMAG(x) (((x).f_magic != I386MAGIC) \
     43#define I386BADMAG(x) (  ((x).f_magic != I386MAGIC) \
    5644                       && (x).f_magic != I386AIXMAGIC \
    5745                       && (x).f_magic != I386PTXMAGIC \
    5846                       && (x).f_magic != LYNXCOFFMAGIC)
    59 
    60 #define FILHDR  struct external_filehdr
    61 #define FILHSZ  20
    62 
    63 
    64 /********************** AOUT "OPTIONAL HEADER" **********************/
    65 
    66 
    67 typedef struct
    68 {
    69   char  magic[2];               /* type of file                         */
    70   char  vstamp[2];              /* version stamp                        */
    71   char  tsize[4];               /* text size in bytes, padded to FW bdry*/
    72   char  dsize[4];               /* initialized data "  "                */
    73   char  bsize[4];               /* uninitialized data "   "             */
    74   char  entry[4];               /* entry pt.                            */
    75   char  text_start[4];          /* base of text used for this file */
    76   char  data_start[4];          /* base of data used for this file */
    77 
    78 
    79 }
    80 AOUTHDR;
    81 
    82 
    83 #define AOUTSZ 28
    84 #define AOUTHDRSZ 28
    8547
    8648#define OMAGIC          0404    /* object files, eg as output */
     
    8850#define STMAGIC         0401    /* target shlib */
    8951#define SHMAGIC         0443    /* host   shlib */
    90 
    9152
    9253/* define some NT default values */
     
    9758#define NT_DEF_COMMIT        0x1000
    9859
    99 /********************** SECTION HEADER **********************/
    100 
    101 
    102 struct external_scnhdr {
    103         char            s_name[8];      /* section name                 */
    104         char            s_paddr[4];     /* physical address, aliased s_nlib */
    105         char            s_vaddr[4];     /* virtual address              */
    106         char            s_size[4];      /* section size                 */
    107         char            s_scnptr[4];    /* file ptr to raw data for section */
    108         char            s_relptr[4];    /* file ptr to relocation       */
    109         char            s_lnnoptr[4];   /* file ptr to line numbers     */
    110         char            s_nreloc[2];    /* number of relocation entries */
    111         char            s_nlnno[2];     /* number of line number entries*/
    112         char            s_flags[4];     /* flags                        */
    113 };
    114 
    115 #define SCNHDR  struct external_scnhdr
    116 #define SCNHSZ  40
    117 
    118 /*
    119  * names of "special" sections
    120  */
    121 #define _TEXT   ".text"
    122 #define _DATA   ".data"
    123 #define _BSS    ".bss"
    124 #define _COMMENT ".comment"
    125 #define _LIB ".lib"
    126 
    127 /********************** LINE NUMBERS **********************/
    128 
    129 /* 1 line number entry for every "breakpointable" source line in a section.
    130  * Line numbers are grouped on a per function basis; first entry in a function
    131  * grouping will have l_lnno = 0 and in place of physical address will be the
    132  * symbol table index of the function name.
    133  */
    134 struct external_lineno {
    135         union {
    136                 char l_symndx[4];       /* function name symbol index, iff l_lnno == 0*/
    137                 char l_paddr[4];        /* (physical) address of line number    */
    138         } l_addr;
    139         char l_lnno[2]; /* line number          */
    140 };
    141 
    142 
    143 #define LINENO  struct external_lineno
    144 #define LINESZ  6
    145 
    146 
    147 /********************** SYMBOLS **********************/
    148 
    149 #define E_SYMNMLEN      8       /* # characters in a symbol name        */
    150 #define E_FILNMLEN      14      /* # characters in a file name          */
    151 #define E_DIMNUM        4       /* # array dimensions in auxiliary entry */
    152 
    153 struct external_syment
    154 {
    155   union {
    156     char e_name[E_SYMNMLEN];
    157     struct {
    158       char e_zeroes[4];
    159       char e_offset[4];
    160     } e;
    161   } e;
    162   char e_value[4];
    163   char e_scnum[2];
    164   char e_type[2];
    165   char e_sclass[1];
    166   char e_numaux[1];
    167 };
    168 
    169 #define N_BTMASK        (0xf)
    170 #define N_TMASK         (0x30)
    171 #define N_BTSHFT        (4)
    172 #define N_TSHIFT        (2)
    173  
    174 union external_auxent {
    175         struct {
    176                 char x_tagndx[4];       /* str, un, or enum tag indx */
    177                 union {
    178                         struct {
    179                             char  x_lnno[2]; /* declaration line number */
    180                             char  x_size[2]; /* str/union/array size */
    181                         } x_lnsz;
    182                         char x_fsize[4];        /* size of function */
    183                 } x_misc;
    184                 union {
    185                         struct {                /* if ISFCN, tag, or .bb */
    186                             char x_lnnoptr[4];  /* ptr to fcn line # */
    187                             char x_endndx[4];   /* entry ndx past block end */
    188                         } x_fcn;
    189                         struct {                /* if ISARY, up to 4 dimen. */
    190                             char x_dimen[E_DIMNUM][2];
    191                         } x_ary;
    192                 } x_fcnary;
    193                 char x_tvndx[2];                /* tv index */
    194         } x_sym;
    195 
    196         union {
    197                 char x_fname[E_FILNMLEN];
    198                 struct {
    199                         char x_zeroes[4];
    200                         char x_offset[4];
    201                 } x_n;
    202         } x_file;
    203 
    204         struct {
    205                 char x_scnlen[4];       /* section length */
    206                 char x_nreloc[2];       /* # relocation entries */
    207                 char x_nlinno[2];       /* # line numbers */
    208                 char x_checksum[4];     /* section COMDAT checksum */
    209                 char x_associated[2];   /* COMDAT associated section index */
    210                 char x_comdat[1];       /* COMDAT selection number */
    211         } x_scn;
    212 
    213         struct {
    214                 char x_tvfill[4];       /* tv fill value */
    215                 char x_tvlen[2];        /* length of .tv */
    216                 char x_tvran[2][2];     /* tv range */
    217         } x_tv;         /* info about .tv section (in auxent of symbol .tv)) */
    218 
    219 
    220 };
    221 
    222 #define SYMENT  struct external_syment
    223 #define SYMESZ  18     
    224 #define AUXENT  union external_auxent
    225 #define AUXESZ  18
    226 
    227 
    228 #       define _ETEXT   "etext"
    229 
    230 
    23160/********************** RELOCATION DIRECTIVES **********************/
    23261
    233 
    234 
    235 struct external_reloc {
     62struct external_reloc
     63{
    23664  char r_vaddr[4];
    23765  char r_symndx[4];
     
    23967};
    24068
    241 
    24269#define RELOC struct external_reloc
    24370#define RELSZ 10
  • branches/GNU/src/binutils/include/coff/i860.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1717   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    1818
    19 /********************** FILE HEADER **********************/
     19/* This file was hacked from i386.h   [dolan@ssd.intel.com] */
    2020
    21 struct external_filehdr {
    22         char f_magic[2];        /* magic number                 */
    23         char f_nscns[2];        /* number of sections           */
    24         char f_timdat[4];       /* time & date stamp            */
    25         char f_symptr[4];       /* file pointer to symtab       */
    26         char f_nsyms[4];        /* number of symtab entries     */
    27         char f_opthdr[2];       /* sizeof(optional hdr)         */
    28         char f_flags[2];        /* flags                        */
    29 };
    30 
     21#define L_LNNO_SIZE 2
     22#include "coff/external.h"
    3123
    3224/* Bits for f_flags:
    33  *      F_RELFLG        relocation info stripped from file
    34  *      F_EXEC          file is executable (no unresolved external references)
    35  *      F_LNNO          line numbers stripped from file
    36  *      F_LSYMS         local symbols stripped from file
    37  *      F_AR32WR        file has byte ordering of an AR32WR machine (e.g. vax)
    38  */
     25        F_RELFLG        relocation info stripped from file
     26        F_EXEC          file is executable (no unresolved external references)
     27        F_LNNO          line numbers stripped from file
     28        F_LSYMS         local symbols stripped from file
     29        F_AR32WR        file has byte ordering of an AR32WR machine (e.g. vax).  */
    3930
    4031#define F_RELFLG        (0x0001)
     
    4334#define F_LSYMS         (0x0008)
    4435
    45 
    46 
    4736#define I860MAGIC       0x14d
    4837
    4938#define I860BADMAG(x)   ((x).f_magic != I860MAGIC)
    5039
    51 #define FILHDR  struct external_filehdr
    52 #define FILHSZ  20
    53 
    54 
    55 /********************** AOUT "OPTIONAL HEADER" **********************/
    56 
    57 
    58 typedef struct
    59 {
    60   char  magic[2];               /* type of file                         */
    61   char  vstamp[2];              /* version stamp                        */
    62   char  tsize[4];               /* text size in bytes, padded to FW bdry*/
    63   char  dsize[4];               /* initialized data "  "                */
    64   char  bsize[4];               /* uninitialized data "   "             */
    65   char  entry[4];               /* entry pt.                            */
    66   char  text_start[4];          /* base of text used for this file */
    67   char  data_start[4];          /* base of data used for this file */
    68 }
    69 AOUTHDR;
    70 
    71 
    72 #define AOUTSZ 28
    73 #define AOUTHDRSZ 28
    74 
    7540/* FIXME: What are the a.out magic numbers?  */
    7641
    77 /********************** SECTION HEADER **********************/
    78 
    79 
    80 struct external_scnhdr {
    81         char            s_name[8];      /* section name                 */
    82         char            s_paddr[4];     /* physical address, aliased s_nlib */
    83         char            s_vaddr[4];     /* virtual address              */
    84         char            s_size[4];      /* section size                 */
    85         char            s_scnptr[4];    /* file ptr to raw data for section */
    86         char            s_relptr[4];    /* file ptr to relocation       */
    87         char            s_lnnoptr[4];   /* file ptr to line numbers     */
    88         char            s_nreloc[2];    /* number of relocation entries */
    89         char            s_nlnno[2];     /* number of line number entries*/
    90         char            s_flags[4];     /* flags                        */
    91 };
    92 
    93 #define SCNHDR  struct external_scnhdr
    94 #define SCNHSZ  40
    95 
    96 /*
    97  * names of "special" sections
    98  */
    99 #define _TEXT   ".text"
    100 #define _DATA   ".data"
    101 #define _BSS    ".bss"
    102 #define _COMMENT ".comment"
    103 #define _LIB ".lib"
    104 
    105 /********************** LINE NUMBERS **********************/
    106 
    107 /* 1 line number entry for every "breakpointable" source line in a section.
    108  * Line numbers are grouped on a per function basis; first entry in a function
    109  * grouping will have l_lnno = 0 and in place of physical address will be the
    110  * symbol table index of the function name.
    111  */
    112 struct external_lineno {
    113         union {
    114                 char l_symndx[4];       /* function name symbol index, iff l_lnno == 0*/
    115                 char l_paddr[4];        /* (physical) address of line number    */
    116         } l_addr;
    117         char l_lnno[2]; /* line number          */
    118 };
    119 
    120 
    121 #define LINENO  struct external_lineno
    122 #define LINESZ  6
    123 
    124 
    125 /********************** SYMBOLS **********************/
    126 
    127 #define E_SYMNMLEN      8       /* # characters in a symbol name        */
    128 #define E_FILNMLEN      14      /* # characters in a file name          */
    129 #define E_DIMNUM        4       /* # array dimensions in auxiliary entry */
    130 
    131 struct external_syment
    132 {
    133   union {
    134     char e_name[E_SYMNMLEN];
    135     struct {
    136       char e_zeroes[4];
    137       char e_offset[4];
    138     } e;
    139   } e;
    140   char e_value[4];
    141   char e_scnum[2];
    142   char e_type[2];
    143   char e_sclass[1];
    144   char e_numaux[1];
    145 };
    146 
    147 #define N_BTMASK        (0xf)
    148 #define N_TMASK         (0x30)
    149 #define N_BTSHFT        (4)
    150 #define N_TSHIFT        (2)
    151  
    152 union external_auxent {
    153         struct {
    154                 char x_tagndx[4];       /* str, un, or enum tag indx */
    155                 union {
    156                         struct {
    157                             char  x_lnno[2]; /* declaration line number */
    158                             char  x_size[2]; /* str/union/array size */
    159                         } x_lnsz;
    160                         char x_fsize[4];        /* size of function */
    161                 } x_misc;
    162                 union {
    163                         struct {                /* if ISFCN, tag, or .bb */
    164                             char x_lnnoptr[4];  /* ptr to fcn line # */
    165                             char x_endndx[4];   /* entry ndx past block end */
    166                         } x_fcn;
    167                         struct {                /* if ISARY, up to 4 dimen. */
    168                             char x_dimen[E_DIMNUM][2];
    169                         } x_ary;
    170                 } x_fcnary;
    171                 char x_tvndx[2];                /* tv index */
    172         } x_sym;
    173 
    174         union {
    175                 char x_fname[E_FILNMLEN];
    176                 struct {
    177                         char x_zeroes[4];
    178                         char x_offset[4];
    179                 } x_n;
    180         } x_file;
    181 
    182         struct {
    183                 char x_scnlen[4];                       /* section length */
    184                 char x_nreloc[2];       /* # relocation entries */
    185                 char x_nlinno[2];       /* # line numbers */
    186         } x_scn;
    187 
    188         struct {
    189                 char x_tvfill[4];       /* tv fill value */
    190                 char x_tvlen[2];        /* length of .tv */
    191                 char x_tvran[2][2];     /* tv range */
    192         } x_tv;         /* info about .tv section (in auxent of symbol .tv)) */
    193 
    194 
    195 };
    196 
    197 #define SYMENT  struct external_syment
    198 #define SYMESZ  18     
    199 #define AUXENT  union external_auxent
    200 #define AUXESZ  18
    201 
    202 
    203 #       define _ETEXT   "etext"
    204 
     42#define _ETEXT  "etext"
    20543
    20644/********************** RELOCATION DIRECTIVES **********************/
    20745
    208 
    209 
    210 struct external_reloc {
     46struct external_reloc
     47{
    21148  char r_vaddr[4];
    21249  char r_symndx[4];
     
    21451};
    21552
    216 
    21753#define RELOC struct external_reloc
    21854#define RELSZ 10
  • branches/GNU/src/binutils/include/coff/i960.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    2121/********************** FILE HEADER **********************/
    2222
    23 struct external_filehdr {
    24         char f_magic[2];        /* magic number                 */
    25         char f_nscns[2];        /* number of sections           */
    26         char f_timdat[4];       /* time & date stamp            */
    27         char f_symptr[4];       /* file pointer to symtab       */
    28         char f_nsyms[4];        /* number of symtab entries     */
    29         char f_opthdr[2];       /* sizeof(optional hdr)         */
    30         char f_flags[2];        /* flags                        */
     23struct external_filehdr
     24{
     25  char f_magic[2];      /* magic number                 */
     26  char f_nscns[2];      /* number of sections           */
     27  char f_timdat[4];     /* time & date stamp            */
     28  char f_symptr[4];     /* file pointer to symtab       */
     29  char f_nsyms[4];      /* number of symtab entries     */
     30  char f_opthdr[2];     /* sizeof(optional hdr)         */
     31  char f_flags[2];      /* flags                        */
    3132};
    3233
     
    6667/********************** AOUT "OPTIONAL HEADER" **********************/
    6768
    68 typedef struct {
    69         unsigned long   phys_addr;
    70         unsigned long   bitarray;
     69typedef struct
     70{
     71  unsigned long phys_addr;
     72  unsigned long bitarray;
    7173} TAGBITS;
    72 
    73 
    7474
    7575typedef struct
     
    100100/********************** SECTION HEADER **********************/
    101101
    102 
    103 struct external_scnhdr {
    104         char            s_name[8];      /* section name                 */
    105         char            s_paddr[4];     /* physical address, aliased s_nlib */
    106         char            s_vaddr[4];     /* virtual address              */
    107         char            s_size[4];      /* section size                 */
    108         char            s_scnptr[4];    /* file ptr to raw data for section */
    109         char            s_relptr[4];    /* file ptr to relocation       */
    110         char            s_lnnoptr[4];   /* file ptr to line numbers     */
    111         char            s_nreloc[2];    /* number of relocation entries */
    112         char            s_nlnno[2];     /* number of line number entries*/
    113         char            s_flags[4];     /* flags                        */
    114         char            s_align[4];     /* section alignment            */
     102struct external_scnhdr
     103{
     104  char          s_name[8];      /* section name                 */
     105  char          s_paddr[4];     /* physical address, aliased s_nlib */
     106  char          s_vaddr[4];     /* virtual address              */
     107  char          s_size[4];      /* section size                 */
     108  char          s_scnptr[4];    /* file ptr to raw data for section */
     109  char          s_relptr[4];    /* file ptr to relocation       */
     110  char          s_lnnoptr[4];   /* file ptr to line numbers     */
     111  char          s_nreloc[2];    /* number of relocation entries */
     112  char          s_nlnno[2];     /* number of line number entries*/
     113  char          s_flags[4];     /* flags                        */
     114  char          s_align[4];     /* section alignment            */
    115115};
    116116
     
    133133 * symbol table index of the function name.
    134134 */
    135 struct external_lineno {
    136         union {
    137                 char l_symndx[4];       /* function name symbol index, iff l_lnno == 0*/
    138                 char l_paddr[4];        /* (physical) address of line number    */
    139         } l_addr;
    140         char l_lnno[2];         /* line number          */
    141         char padding[2];        /* force alignment      */
     135struct external_lineno
     136{
     137  union
     138  {
     139    char l_symndx[4];   /* function name symbol index, iff l_lnno == 0*/
     140    char l_paddr[4];    /* (physical) address of line number    */
     141  } l_addr;
     142
     143  char l_lnno[2];               /* line number          */
     144  char padding[2];      /* force alignment      */
    142145};
    143146
     
    145148#define LINENO  struct external_lineno
    146149#define LINESZ  8
    147 
    148150
    149151/********************** SYMBOLS **********************/
     
    155157struct external_syment
    156158{
    157   union {
     159  union
     160  {
    158161    char e_name[E_SYMNMLEN];
    159     struct {
     162
     163    struct
     164    {
    160165      char e_zeroes[4];
    161166      char e_offset[4];
    162167    } e;
    163168  } e;
     169
    164170  char e_value[4];
    165171  char e_scnum[2];
     
    171177};
    172178
    173 
    174 
    175 
    176179#define N_BTMASK        (0x1f)
    177180#define N_TMASK         (0x60)
     
    179182#define N_TSHIFT        (2)
    180183 
    181 union external_auxent {
    182         struct {
    183                 char x_tagndx[4];       /* str, un, or enum tag indx */
    184                 union {
    185                         struct {
    186                             char  x_lnno[2]; /* declaration line number */
    187                             char  x_size[2]; /* str/union/array size */
    188                         } x_lnsz;
    189                         char x_fsize[4];        /* size of function */
    190                 } x_misc;
    191                 union {
    192                         struct {                /* if ISFCN, tag, or .bb */
    193                             char x_lnnoptr[4];  /* ptr to fcn line # */
    194                             char x_endndx[4];   /* entry ndx past block end */
    195                         } x_fcn;
    196                         struct {                /* if ISARY, up to 4 dimen. */
    197                             char x_dimen[E_DIMNUM][2];
    198                         } x_ary;
    199                 } x_fcnary;
    200                 char x_tvndx[2];                /* tv index */
    201         } x_sym;
    202 
    203         union {
    204                 char x_fname[E_FILNMLEN];
    205                 struct {
    206                         char x_zeroes[4];
    207                         char x_offset[4];
    208                 } x_n;
    209         } x_file;
    210 
    211         struct {
    212                 char x_scnlen[4];                       /* section length */
    213                 char x_nreloc[2];       /* # relocation entries */
    214                 char x_nlinno[2];       /* # line numbers */
    215         } x_scn;
    216 
    217         struct {
    218                 char x_tvfill[4];       /* tv fill value */
    219                 char x_tvlen[2];        /* length of .tv */
    220                 char x_tvran[2][2];     /* tv range */
    221         } x_tv;         /* info about .tv section (in auxent of symbol .tv)) */
    222 
    223         /******************************************
    224          *  I960-specific *2nd* aux. entry formats
    225          ******************************************/
    226         struct {
    227           /* This is a very old typo that keeps getting propagated. */
     184union external_auxent
     185{
     186  struct
     187  {
     188    char x_tagndx[4];   /* str, un, or enum tag indx */
     189
     190    union
     191    {
     192      struct
     193      {
     194        char  x_lnno[2]; /* declaration line number */
     195        char  x_size[2]; /* str/union/array size */
     196      } x_lnsz;
     197
     198      char x_fsize[4];  /* size of function */
     199
     200    } x_misc;
     201
     202    union
     203    {
     204      struct            /* if ISFCN, tag, or .bb */
     205      {
     206        char x_lnnoptr[4];      /* ptr to fcn line # */
     207        char x_endndx[4];       /* entry ndx past block end */
     208      } x_fcn;
     209
     210      struct            /* if ISARY, up to 4 dimen. */
     211      {
     212        char x_dimen[E_DIMNUM][2];
     213      } x_ary;
     214
     215    } x_fcnary;
     216
     217    char x_tvndx[2];            /* tv index */
     218
     219  } x_sym;
     220
     221  union
     222  {
     223    char x_fname[E_FILNMLEN];
     224
     225    struct
     226    {
     227      char x_zeroes[4];
     228      char x_offset[4];
     229    } x_n;
     230
     231  } x_file;
     232
     233  struct
     234  {
     235    char x_scnlen[4];                   /* section length */
     236    char x_nreloc[2];   /* # relocation entries */
     237    char x_nlinno[2];   /* # line numbers */
     238
     239  } x_scn;
     240
     241  struct
     242  {
     243    char x_tvfill[4];   /* tv fill value */
     244    char x_tvlen[2];    /* length of .tv */
     245    char x_tvran[2][2]; /* tv range */
     246
     247  } x_tv;               /* info about .tv section (in auxent of symbol .tv)) */
     248
     249  /******************************************
     250   *  I960-specific *2nd* aux. entry formats
     251   ******************************************/
     252  struct
     253  {
     254    /* This is a very old typo that keeps getting propagated. */
    228255#define x_stdindx x_stindx
    229                 char x_stindx[4];       /* sys. table entry */
    230         } x_sc; /* system call entry */
    231 
    232         struct {
    233                 char x_balntry[4]; /* BAL entry point */
    234         } x_bal; /* BAL-callable function */
    235 
    236         struct {
    237                 char x_timestamp[4];            /* time stamp */
    238                 char    x_idstring[20];         /* producer identity string */
    239         } x_ident;                              /* Producer ident info */
    240 
    241 };
    242 
    243 
     256    char x_stindx[4];   /* sys. table entry */
     257  } x_sc;       /* system call entry */
     258
     259  struct
     260  {
     261    char x_balntry[4]; /* BAL entry point */
     262  } x_bal; /* BAL-callable function */
     263
     264  struct
     265  {
     266    char x_timestamp[4];                /* time stamp */
     267    char        x_idstring[20];         /* producer identity string */
     268
     269  } x_ident;                            /* Producer ident info */
     270};
    244271
    245272#define SYMENT  struct external_syment
     
    252279/********************** RELOCATION DIRECTIVES **********************/
    253280
    254 struct external_reloc {
     281struct external_reloc
     282{
    255283  char r_vaddr[4];
    256284  char r_symndx[4];
  • branches/GNU/src/binutils/include/coff/ia64.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1717   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    1818
    19 
    20 /********************** FILE HEADER **********************/
    21 
    22 struct external_filehdr {
    23         char f_magic[2];        /* magic number                 */
    24         char f_nscns[2];        /* number of sections           */
    25         char f_timdat[4];       /* time & date stamp            */
    26         char f_symptr[4];       /* file pointer to symtab       */
    27         char f_nsyms[4];        /* number of symtab entries     */
    28         char f_opthdr[2];       /* sizeof(optional hdr)         */
    29         char f_flags[2];        /* flags                        */
    30 };
     19#define DO_NOT_DEFINE_AOUTHDR
     20#define L_LNNO_SIZE 2
     21#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
     22#include "coff/external.h"
    3123
    3224#define IA64MAGIC       0x200
     
    4739#define F_LSYMS         (0x0008)
    4840
    49 
    50 #define FILHDR  struct external_filehdr
    51 #define FILHSZ  20
    52 
    53 
    5441/********************** AOUT "OPTIONAL HEADER" **********************/
    55 
    56 
    5742typedef struct
    5843{
     
    8368#define SHMAGIC         0443    /* host   shlib */
    8469
    85 
    8670/* define some NT default values */
    8771/*  #define NT_IMAGE_BASE        0x400000 moved to internal.h */
     
    9175#define NT_DEF_COMMIT        0x1000
    9276
    93 /********************** SECTION HEADER **********************/
    94 
    95 
    96 struct external_scnhdr {
    97         char            s_name[8];      /* section name                 */
    98         char            s_paddr[4];     /* physical address, aliased s_nlib */
    99         char            s_vaddr[4];     /* virtual address              */
    100         char            s_size[4];      /* section size                 */
    101         char            s_scnptr[4];    /* file ptr to raw data for section */
    102         char            s_relptr[4];    /* file ptr to relocation       */
    103         char            s_lnnoptr[4];   /* file ptr to line numbers     */
    104         char            s_nreloc[2];    /* number of relocation entries */
    105         char            s_nlnno[2];     /* number of line number entries*/
    106         char            s_flags[4];     /* flags                        */
    107 };
    108 
    109 #define SCNHDR  struct external_scnhdr
    110 #define SCNHSZ  40
    111 
    112 /*
    113  * names of "special" sections
    114  */
    115 #define _TEXT   ".text"
    116 #define _DATA   ".data"
    117 #define _BSS    ".bss"
    118 #define _COMMENT ".comment"
    119 #define _LIB ".lib"
    120 
    121 /********************** LINE NUMBERS **********************/
    122 
    123 /* 1 line number entry for every "breakpointable" source line in a section.
    124  * Line numbers are grouped on a per function basis; first entry in a function
    125  * grouping will have l_lnno = 0 and in place of physical address will be the
    126  * symbol table index of the function name.
    127  */
    128 struct external_lineno {
    129         union {
    130                 char l_symndx[4];       /* function name symbol index, iff l_lnno == 0*/
    131                 char l_paddr[4];        /* (physical) address of line number    */
    132         } l_addr;
    133         char l_lnno[2]; /* line number          */
    134 };
    135 
    136 
    137 #define LINENO  struct external_lineno
    138 #define LINESZ  6
    139 
    140 
    141 /********************** SYMBOLS **********************/
    142 
    143 #define E_SYMNMLEN      8       /* # characters in a symbol name        */
    144 #define E_FILNMLEN      14      /* # characters in a file name          */
    145 #define E_DIMNUM        4       /* # array dimensions in auxiliary entry */
    146 
    147 struct external_syment
    148 {
    149   union {
    150     char e_name[E_SYMNMLEN];
    151     struct {
    152       char e_zeroes[4];
    153       char e_offset[4];
    154     } e;
    155   } e;
    156   char e_value[4];
    157   char e_scnum[2];
    158   char e_type[2];
    159   char e_sclass[1];
    160   char e_numaux[1];
    161 };
    162 
    163 #define N_BTMASK        (0xf)
    164 #define N_TMASK         (0x30)
    165 #define N_BTSHFT        (4)
    166 #define N_TSHIFT        (2)
    167  
    168 union external_auxent {
    169         struct {
    170                 char x_tagndx[4];       /* str, un, or enum tag indx */
    171                 union {
    172                         struct {
    173                             char  x_lnno[2]; /* declaration line number */
    174                             char  x_size[2]; /* str/union/array size */
    175                         } x_lnsz;
    176                         char x_fsize[4];        /* size of function */
    177                 } x_misc;
    178                 union {
    179                         struct {                /* if ISFCN, tag, or .bb */
    180                             char x_lnnoptr[4];  /* ptr to fcn line # */
    181                             char x_endndx[4];   /* entry ndx past block end */
    182                         } x_fcn;
    183                         struct {                /* if ISARY, up to 4 dimen. */
    184                             char x_dimen[E_DIMNUM][2];
    185                         } x_ary;
    186                 } x_fcnary;
    187                 char x_tvndx[2];                /* tv index */
    188         } x_sym;
    189 
    190         union {
    191                 char x_fname[E_FILNMLEN];
    192                 struct {
    193                         char x_zeroes[4];
    194                         char x_offset[4];
    195                 } x_n;
    196         } x_file;
    197 
    198         struct {
    199                 char x_scnlen[4];       /* section length */
    200                 char x_nreloc[2];       /* # relocation entries */
    201                 char x_nlinno[2];       /* # line numbers */
    202                 char x_checksum[4];     /* section COMDAT checksum */
    203                 char x_associated[2];   /* COMDAT associated section index */
    204                 char x_comdat[1];       /* COMDAT selection number */
    205         } x_scn;
    206 
    207         struct {
    208                 char x_tvfill[4];       /* tv fill value */
    209                 char x_tvlen[2];        /* length of .tv */
    210                 char x_tvran[2][2];     /* tv range */
    211         } x_tv;         /* info about .tv section (in auxent of symbol .tv)) */
    212 
    213 
    214 };
    215 
    216 #define SYMENT  struct external_syment
    217 #define SYMESZ  18     
    218 #define AUXENT  union external_auxent
    219 #define AUXESZ  18
    220 
    221 
    222 #       define _ETEXT   "etext"
    223 
    224 
    22577/********************** RELOCATION DIRECTIVES **********************/
    22678
    227 
    228 
    229 struct external_reloc {
     79struct external_reloc
     80{
    23081  char r_vaddr[4];
    23182  char r_symndx[4];
     
    23384};
    23485
    235 
    23686#define RELOC struct external_reloc
    23787#define RELSZ 10
  • branches/GNU/src/binutils/include/coff/internal.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    6262  struct internal_extra_pe_filehdr pe;
    6363
    64   /* standard coff  internal info */
     64  /* Standard coff internal info. */
    6565  unsigned short f_magic;       /* magic number                 */
    6666  unsigned short f_nscns;       /* number of sections           */
     
    7575
    7676/* Bits for f_flags:
    77  *      F_RELFLG        relocation info stripped from file
    78  *      F_EXEC          file is executable (no unresolved external references)
    79  *      F_LNNO          line numbers stripped from file
    80  *      F_LSYMS         local symbols stripped from file
    81  *      F_AR16WR        file is 16-bit little-endian
    82  *      F_AR32WR        file is 32-bit little-endian
    83  *      F_AR32W         file is 32-bit big-endian
    84  *      F_DYNLOAD       rs/6000 aix: dynamically loadable w/imports & exports
    85  *      F_SHROBJ        rs/6000 aix: file is a shared object
    86  *      F_DLL           PE format DLL
    87  */
     77        F_RELFLG        relocation info stripped from file
     78        F_EXEC          file is executable (no unresolved external references)
     79        F_LNNO          line numbers stripped from file
     80        F_LSYMS         local symbols stripped from file
     81        F_AR16WR        file is 16-bit little-endian
     82        F_AR32WR        file is 32-bit little-endian
     83        F_AR32W         file is 32-bit big-endian
     84        F_DYNLOAD       rs/6000 aix: dynamically loadable w/imports & exports
     85        F_SHROBJ        rs/6000 aix: file is a shared object
     86        F_DLL           PE format DLL.  */
    8887
    8988#define F_RELFLG        (0x0001)
     
    9897#define F_DLL           (0x2000)
    9998
    100 /* extra structure which is used in the optional header */
     99/* Extra structure which is used in the optional header. */
    101100typedef struct _IMAGE_DATA_DIRECTORY
    102101{
     
    175174
    176175  /* RS/6000 stuff */
    177   unsigned long o_toc;          /* address of TOC                       */
     176  bfd_vma o_toc;                /* address of TOC                       */
    178177  short o_snentry;              /* section number for entry point */
    179178  short o_sntext;               /* section number for text      */
     
    186185  short o_modtype;              /* Module type field, 1R,RE,RO  */
    187186  short o_cputype;              /* Encoded CPU type             */
    188   unsigned long o_maxstack;     /* max stack size allowed.      */
    189   unsigned long o_maxdata;      /* max data size allowed.       */
     187  bfd_vma o_maxstack;   /* max stack size allowed.      */
     188  bfd_vma o_maxdata;    /* max data size allowed.       */
    190189
    191190  /* ECOFF stuff */
     
    201200  long vid[2];                  /* Version id */
    202201
    203 
    204202  struct internal_extra_pe_aouthdr pe;
    205 
    206203};
    207204
     
    323320};
    324321
    325 /*
    326  * s_flags "type"
    327  */
     322/* s_flags "type".  */
    328323#define STYP_REG         (0x0000)       /* "regular": allocated, relocated, loaded */
    329324#define STYP_DSECT       (0x0001)       /* "dummy":  relocated only*/
     
    344339#define STYP_LIB         (0x0800)       /* for .lib: same as INFO */
    345340#define STYP_MERGE       (0x2000)       /* merge section -- combines with text, data or bss sections only */
    346 #define STYP_REVERSE_PAD (0x4000)       /* section will be padded with no-op instructions wherever padding is necessary and there is a
    347                                        
    348                                                                              word of contiguous bytes
    349                                                                              beginning on a word boundary. */
     341#define STYP_REVERSE_PAD (0x4000)       /* section will be padded with no-op instructions
     342                                           wherever padding is necessary and there is a
     343                                           word of contiguous bytes beginning on a word
     344                                          boundary. */
    350345
    351346#define STYP_LIT        0x8020  /* Literal data (like STYP_TEXT) */
    352347
    353348
    354 
    355349/********************** LINE NUMBERS **********************/
    356350
    357351/* 1 line number entry for every "breakpointable" source line in a section.
    358  * Line numbers are grouped on a per function basis; first entry in a function
    359  * grouping will have l_lnno = 0 and in place of physical address will be the
    360  * symbol table index of the function name.
    361  */
     352   Line numbers are grouped on a per function basis; first entry in a function
     353   grouping will have l_lnno = 0 and in place of physical address will be the
     354   symbol table index of the function name.  */
    362355
    363356struct internal_lineno
     
    365358  union
    366359  {
    367     long l_symndx;              /* function name symbol index, iff l_lnno == 0*/
    368     long l_paddr;               /* (physical) address of line number    */
     360    bfd_signed_vma l_symndx;            /* function name symbol index, iff l_lnno == 0*/
     361    bfd_signed_vma l_paddr;             /* (physical) address of line number    */
    369362  }     l_addr;
    370363  unsigned long l_lnno;         /* line number          */
     
    389382    char *_n_nptr[2];           /* allows for overlaying        */
    390383  }     _n;
    391   long n_value;                 /* value of symbol              */
     384  bfd_vma n_value;                      /* value of symbol              */
    392385  short n_scnum;                /* section number               */
    393386  unsigned short n_flags;       /* copy of flags from filhdr    */
     
    401394#define n_offset        _n._n_n._n_offset
    402395
    403 
    404396/* Relocatable symbols have number of the section in which they are defined,
    405    or one of the following: */
     397   or one of the following:  */
    406398
    407399#define N_UNDEF ((short)0)      /* undefined symbol */
     
    411403#define P_TV    ((short)-4)     /* indicates symbol needs postload transfer vector*/
    412404
    413 /*
    414  * Type of a symbol, in low N bits of the word
    415  */
     405/* Type of a symbol, in low N bits of the word.  */
     406
    416407#define T_NULL          0
    417408#define T_VOID          1       /* function argument (only used by compiler) */
     
    432423#define T_LNGDBL        16      /* long double          */
    433424
    434 /*
    435  * derived types, in n_type
    436 */
     425/* Derived types, in n_type.  */
     426
    437427#define DT_NON          (0)     /* no derived type */
    438428#define DT_PTR          (1)     /* pointer */
     
    479469      struct
    480470      {                         /* if ISFCN, tag, or .bb */
    481         long x_lnnoptr;         /* ptr to fcn line # */
     471        bfd_signed_vma x_lnnoptr;               /* ptr to fcn line # */
    482472        union
    483473        {                       /* entry ndx past block end */
     
    530520    union
    531521      {                         /* csect length or enclosing csect */
    532         long l;
     522        bfd_signed_vma l;
    533523        struct coff_ptr_struct *p;
    534524      } x_scnlen;
     
    611601
    612602#define R_DIR16          1
     603#define R_REL24          5
    613604#define R_DIR32          6
    614605#define R_IMAGEBASE      7
     
    619610#define R_PCRWORD       19
    620611#define R_PCRLONG       20
     612#define R_PCR24         21
    621613#define R_IPRSHORT      24
    622614#define R_IPRLONG       26
     
    625617#define R_TAGWORD       31
    626618#define R_JUMPTARG      32      /* strange 29k 00xx00xx reloc */
     619#define R_PARTLS16      32
     620#define R_PARTMS8       33
    627621
    628622#define R_PCR16L       128
     
    650644
    651645/* This reloc identifies a bra with an 8-bit pc-relative
    652    target that was formerlly a jmp insn with a 16bit target.  */
     646   target that was formerly a jmp insn with a 16bit target.  */
    653647#define R_JMP2          0x44
    654648
     
    662656
    663657/* This reloc identifies a bra with an 8-bit pc-relative
    664    target that was formerlly a jmp insn with a 24bit target.  */
     658   target that was formerly a jmp insn with a 24bit target.  */
    665659#define R_JMPL2         0x47
    666660
     
    690684#define R_MOVL1         0x4c
    691685
    692 /* This reloc identifies mov.[wl] insns which formerlly had
     686/* This reloc identifies mov.[wl] insns which formerly had
    693687   a 32/24bit absolute address and now have a 16bit absolute address.  */
    694688#define R_MOVL2         0x4d
  • branches/GNU/src/binutils/include/coff/m68k.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    2020#define GNU_COFF_M68K_H 1
    2121
    22 /********************** FILE HEADER **********************/
    23 
    24 struct external_filehdr {
    25         char f_magic[2];        /* magic number                 */
    26         char f_nscns[2];        /* number of sections           */
    27         char f_timdat[4];       /* time & date stamp            */
    28         char f_symptr[4];       /* file pointer to symtab       */
    29         char f_nsyms[4];        /* number of symtab entries     */
    30         char f_opthdr[2];       /* sizeof(optional hdr)         */
    31         char f_flags[2];        /* flags                        */
    32 };
    33 
     22#define L_LNNO_SIZE 2
     23#include "coff/external.h"
    3424
    3525/* Motorola 68000/68008/68010/68020 */
     
    4232#define M68TVMAGIC      0211
    4333
    44 /* this is the magic of the Bull dpx/2 */
     34/* This is the magic of the Bull dpx/2 */
    4535#define MC68KBCSMAGIC   0526
    4636
     
    5343/* This intentionally does not include MC68KBCSMAGIC; it only includes
    5444   magic numbers which imply that names do not have underscores.  */
    55 #define M68KBADMAG(x) (((x).f_magic!=MC68MAGIC) && ((x).f_magic!=MC68KWRMAGIC) && ((x).f_magic!=MC68TVMAGIC) && \
    56   ((x).f_magic!=MC68KROMAGIC) && ((x).f_magic!=MC68KPGMAGIC) && ((x).f_magic!=M68MAGIC) && ((x).f_magic!=M68TVMAGIC) && ((x).f_magic!=LYNXCOFFMAGIC) )
     45#define M68KBADMAG(x) (((x).f_magic != MC68MAGIC) \
     46                    && ((x).f_magic != MC68KWRMAGIC) \
     47                    && ((x).f_magic != MC68TVMAGIC) \
     48                    && ((x).f_magic != MC68KROMAGIC) \
     49                    && ((x).f_magic != MC68KPGMAGIC) \
     50                    && ((x).f_magic != M68MAGIC) \
     51                    && ((x).f_magic != M68TVMAGIC) \
     52                    && ((x).f_magic != LYNXCOFFMAGIC))
    5753
    5854/* Magic numbers for the a.out header.  */
     
    6359#define PAGEMAGICPEXECPAGED   0413 /* pure executable (paged) */
    6460
    65 #define FILHDR  struct external_filehdr
    66 #define FILHSZ  20
    67 
    68 
    69 /********************** AOUT "OPTIONAL HEADER" **********************/
    70 
    71 
    72 typedef struct
    73 {
    74   char  magic[2];               /* type of file                         */
    75   char  vstamp[2];              /* version stamp                        */
    76   char  tsize[4];               /* text size in bytes, padded to FW bdry*/
    77   char  dsize[4];               /* initialized data "  "                */
    78   char  bsize[4];               /* uninitialized data "   "             */
    79   char  entry[4];               /* entry pt.                            */
    80   char  text_start[4];          /* base of text used for this file */
    81   char  data_start[4];          /* base of data used for this file */
    82 }
    83 AOUTHDR;
    84 
    85 #define AOUTSZ 28
    86 #define AOUTHDRSZ 28
    87 
    88 
    89 /********************** SECTION HEADER **********************/
    90 
    91 
    92 struct external_scnhdr {
    93         char            s_name[8];      /* section name                 */
    94         char            s_paddr[4];     /* physical address, aliased s_nlib */
    95         char            s_vaddr[4];     /* virtual address              */
    96         char            s_size[4];      /* section size                 */
    97         char            s_scnptr[4];    /* file ptr to raw data for section */
    98         char            s_relptr[4];    /* file ptr to relocation       */
    99         char            s_lnnoptr[4];   /* file ptr to line numbers     */
    100         char            s_nreloc[2];    /* number of relocation entries */
    101         char            s_nlnno[2];     /* number of line number entries*/
    102         char            s_flags[4];     /* flags                        */
    103 };
    104 
    105 /*
    106  * names of "special" sections
    107  */
    108 #define _TEXT   ".text"
    109 #define _DATA   ".data"
    110 #define _BSS    ".bss"
    111 #define _COMMENT ".comment"
    112 
    113 #define SCNHDR  struct external_scnhdr
    114 #define SCNHSZ  40
    115 
    116 
    117 /********************** LINE NUMBERS **********************/
    118 
    119 /* 1 line number entry for every "breakpointable" source line in a section.
    120  * Line numbers are grouped on a per function basis; first entry in a function
    121  * grouping will have l_lnno = 0 and in place of physical address will be the
    122  * symbol table index of the function name.
    123  */
    124 struct external_lineno {
    125         union {
    126                 char l_symndx[4];       /* function name symbol index, iff l_lnno == 0*/
    127                 char l_paddr[4];        /* (physical) address of line number    */
    128         } l_addr;
    129         char l_lnno[2]; /* line number          */
    130 };
    131 
    132 
    133 #define LINENO  struct external_lineno
    134 #define LINESZ  6
    135 
    136 
    137 /********************** SYMBOLS **********************/
    138 
    139 #define E_SYMNMLEN      8       /* # characters in a symbol name        */
    140 #define E_FILNMLEN      14      /* # characters in a file name          */
    141 #define E_DIMNUM        4       /* # array dimensions in auxiliary entry */
    142 
    143 struct external_syment
    144 {
    145   union {
    146     char e_name[E_SYMNMLEN];
    147     struct {
    148       char e_zeroes[4];
    149       char e_offset[4];
    150     } e;
    151   } e;
    152   char e_value[4];
    153   char e_scnum[2];
    154   char e_type[2];
    155   char e_sclass[1];
    156   char e_numaux[1];
    157 };
    158 
    159 
    160 
    161 #define N_BTMASK        (017)
    162 #define N_TMASK         (060)
    163 #define N_BTSHFT        (4)
    164 #define N_TSHIFT        (2)
    165  
    166 
    167 union external_auxent {
    168         struct {
    169                 char x_tagndx[4];       /* str, un, or enum tag indx */
    170                 union {
    171                         struct {
    172                             char  x_lnno[2]; /* declaration line number */
    173                             char  x_size[2]; /* str/union/array size */
    174                         } x_lnsz;
    175                         char x_fsize[4];        /* size of function */
    176                 } x_misc;
    177                 union {
    178                         struct {                /* if ISFCN, tag, or .bb */
    179                             char x_lnnoptr[4];  /* ptr to fcn line # */
    180                             char x_endndx[4];   /* entry ndx past block end */
    181                         } x_fcn;
    182                         struct {                /* if ISARY, up to 4 dimen. */
    183                             char x_dimen[E_DIMNUM][2];
    184                         } x_ary;
    185                 } x_fcnary;
    186                 char x_tvndx[2];                /* tv index */
    187         } x_sym;
    188 
    189         union {
    190                 char x_fname[E_FILNMLEN];
    191                 struct {
    192                         char x_zeroes[4];
    193                         char x_offset[4];
    194                 } x_n;
    195         } x_file;
    196 
    197         struct {
    198                 char x_scnlen[4];                       /* section length */
    199                 char x_nreloc[2];       /* # relocation entries */
    200                 char x_nlinno[2];       /* # line numbers */
    201         } x_scn;
    202 
    203         struct {
    204                 char x_tvfill[4];       /* tv fill value */
    205                 char x_tvlen[2];        /* length of .tv */
    206                 char x_tvran[2][2];     /* tv range */
    207         } x_tv;         /* info about .tv section (in auxent of symbol .tv)) */
    208 
    209 
    210 };
    211 
    212 #define SYMENT  struct external_syment
    213 #define SYMESZ  18     
    214 #define AUXENT  union external_auxent
    215 #define AUXESZ  18
    216 
    217 
    218 
    21961/********************** RELOCATION DIRECTIVES **********************/
    22062
    221 
    222 struct external_reloc {
     63struct external_reloc
     64{
    22365  char r_vaddr[4];
    22466  char r_symndx[4];
     
    22769  char r_offset[4];
    22870#endif
    229 
    23071};
    231 
    23272
    23373#define RELOC struct external_reloc
  • branches/GNU/src/binutils/include/coff/m88k.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1717   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    1818
    19 /********************** FILE HEADER **********************/
    20 struct external_filehdr {
    21         char f_magic[2];        /* magic number                 */
    22         char f_nscns[2];        /* number of sections           */
    23         char f_timdat[4];       /* time & date stamp            */
    24         char f_symptr[4];       /* file pointer to symtab       */
    25         char f_nsyms[4];        /* number of symtab entries     */
    26         char f_opthdr[2];       /* sizeof(optional hdr)         */
    27         char f_flags[2];        /* flags                        */
    28 };
     19#define DO_NOT_DEFINE_SCNHDR
     20#define L_LNNO_SIZE 4
     21#define DO_NOT_DEFINE_SYMENT
     22#define DO_NOT_DEFINE_AUXENT
     23#include "coff/external.h"
    2924
    3025#define MC88MAGIC  0540           /* 88k BCS executable */
     
    3227#define MC88OMAGIC 0555           /* Object file        */
    3328
    34 #define MC88BADMAG(x) (((x).f_magic!=MC88MAGIC) &&((x).f_magic!=MC88DMAGIC) && ((x).f_magic != MC88OMAGIC))
     29#define MC88BADMAG(x) (((x).f_magic != MC88MAGIC) \
     30                    && ((x).f_magic != MC88DMAGIC) \
     31                    && ((x).f_magic != MC88OMAGIC))
    3532
    36 #define FILHDR  struct external_filehdr
    37 #define FILHSZ  20
    38 
    39 
    40 /********************** AOUT "OPTIONAL HEADER" **********************/
    41 
    42 
    43 #define PAGEMAGIC3 0414 /* Split i&d, zero mapped */
     33#define PAGEMAGIC3   0414 /* Split i&d, zero mapped */
    4434#define PAGEMAGICBCS 0413
    4535
    46 
    47 typedef struct
    48 {
    49   char  magic[2];               /* type of file                         */
    50   char  vstamp[2];              /* version stamp                        */
    51   char  tsize[4];               /* text size in bytes, padded to FW bdry*/
    52   char  dsize[4];               /* initialized data "  "                */
    53   char  bsize[4];               /* uninitialized data "   "             */
    54   char  entry[4];               /* entry pt.                            */
    55   char  text_start[4];          /* base of text used for this file */
    56   char  data_start[4];          /* base of data used for this file */
    57 }
    58 AOUTHDR;
    59 
    60 
    61 /* compute size of a header */
    62 
    63 #define AOUTSZ 28
    64 #define AOUTHDRSZ 28
    65 
    66 
    6736/********************** SECTION HEADER **********************/
    68 
    6937
    7038struct external_scnhdr
     
    8250};
    8351
    84 
    8552#define SCNHDR  struct external_scnhdr
    8653#define SCNHSZ  44
    8754
    88 /*
    89  * names of "special" sections
    90  */
     55/* Names of "special" sections.  */
    9156#define _TEXT   ".text"
    9257#define _DATA   ".data"
    9358#define _BSS    ".bss"
    9459#define _COMMENT ".comment"
    95 
    96 /********************** LINE NUMBERS **********************/
    97 
    98 /* 1 line number entry for every "breakpointable" source line in a section.
    99  * Line numbers are grouped on a per function basis; first entry in a function
    100  * grouping will have l_lnno = 0 and in place of physical address will be the
    101  * symbol table index of the function name.
    102  */
    103 struct external_lineno{
    104         union {
    105                 char l_symndx[4];       /* function name symbol index, iff l_lnno == 0*/
    106                 char l_paddr[4];        /* (physical) address of line number    */
    107         } l_addr;
    108 
    109         char l_lnno[4];
    110 
    111 };
    112 
    113 #define LINENO  struct external_lineno
    114 #define LINESZ  8
    11560
    11661
     
    12368struct external_syment
    12469{
    125   union {
     70  union
     71  {
    12672    char e_name[E_SYMNMLEN];
    127     struct {
     73
     74    struct
     75    {
    12876      char e_zeroes[4];
    12977      char e_offset[4];
    13078    } e;
     79
    13180  } e;
     81
    13282  char e_value[4];
    13383  char e_scnum[2];
     
    13888};
    13989
    140 
    141 
    142 
    14390#define N_BTMASK        017
    14491#define N_TMASK         060
     
    14693#define N_TSHIFT        2
    14794
    148 
    14995/* Note that this isn't the same shape as other coffs */
    150 union external_auxent {
    151   struct {
     96union external_auxent
     97{
     98  struct
     99  {
    152100    char x_tagndx[4];           /* str, un, or enum tag indx */
    153101    /* 4 */
    154     union {
     102   
     103    union
     104    {
    155105      char x_fsize[4];          /* size of function */
    156       struct {
     106
     107      struct
     108      {
    157109        char  x_lnno[4];        /* declaration line number */
    158110        char  x_size[4];        /* str/union/array size */
    159111      } x_lnsz;
     112
    160113    } x_misc;
    161114   
    162115    /* 12 */
    163     union {
    164       struct {                  /* if ISFCN, tag, or .bb */
     116    union
     117    {
     118      struct                    /* if ISFCN, tag, or .bb */
     119      {
    165120        char x_lnnoptr[4];      /* ptr to fcn line # */
    166121        char x_endndx[4];               /* entry ndx past block end */
    167122      } x_fcn;
    168       struct {                  /* if ISARY, up to 4 dimen. */
     123
     124      struct                    /* if ISARY, up to 4 dimen. */
     125      {
    169126        char x_dimen[E_DIMNUM][2];
    170127      } x_ary;
     128
    171129    } x_fcnary;
    172130    /* 20 */
     
    174132  } x_sym;
    175133 
    176   union {
     134  union
     135  {
    177136    char x_fname[E_FILNMLEN];
    178     struct {
     137
     138    struct
     139    {
    179140      char x_zeroes[4];
    180141      char x_offset[4];
    181142    } x_n;
     143
    182144  } x_file;
    183145 
    184   struct {
     146  struct
     147  {
    185148    char x_scnlen[4];           /* section length */
    186149    char x_nreloc[4];           /* # relocation entries */
     
    188151  } x_scn;
    189152 
    190   struct {
     153  struct
     154  {
    191155    char x_tvfill[4];           /* tv fill value */
    192156    char x_tvlen[2];            /* length of .tv */
    193157    char x_tvran[2][2];         /* tv range */
    194158  } x_tv;                       /* info about .tv section (in auxent of symbol .tv)) */
    195 
    196159};
    197160
    198 #define GET_FCN_LNNOPTR(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *)ext->x_sym.x_fcnary.x_fcn.x_lnnoptr)
    199 #define GET_FCN_ENDNDX(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) ext->x_sym.x_fcnary.x_fcn.x_endndx)
    200 #define PUT_FCN_LNNOPTR(abfd, in, ext)  bfd_h_put_32(abfd,  in, (bfd_byte *) ext->x_sym.x_fcnary.x_fcn.x_lnnoptr)
    201 #define PUT_FCN_ENDNDX(abfd, in, ext) bfd_h_put_32(abfd, in, (bfd_byte *)   ext->x_sym.x_fcnary.x_fcn.x_endndx)
    202 #define GET_LNSZ_SIZE(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) ext->x_sym.x_misc.x_lnsz.x_size)
    203 #define GET_LNSZ_LNNO(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) ext->x_sym.x_misc.x_lnsz.x_lnno)
    204 #define PUT_LNSZ_LNNO(abfd, in, ext) bfd_h_put_32(abfd, in, (bfd_byte *) ext->x_sym.x_misc.x_lnsz.x_lnno)
    205 #define PUT_LNSZ_SIZE(abfd, in, ext) bfd_h_put_32(abfd, in, (bfd_byte *) ext->x_sym.x_misc.x_lnsz.x_size)
    206 #define GET_SCN_SCNLEN(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) ext->x_scn.x_scnlen)
    207 #define GET_SCN_NRELOC(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) ext->x_scn.x_nreloc)
    208 #define GET_SCN_NLINNO(abfd, ext)  bfd_h_get_32(abfd, (bfd_byte *) ext->x_scn.x_nlinno)
    209 #define PUT_SCN_SCNLEN(abfd,in, ext) bfd_h_put_32(abfd, in, (bfd_byte *) ext->x_scn.x_scnlen)
    210 #define PUT_SCN_NRELOC(abfd,in, ext) bfd_h_put_32(abfd, in, (bfd_byte *)ext->x_scn.x_nreloc)
    211 #define PUT_SCN_NLINNO(abfd,in, ext)  bfd_h_put_32(abfd,in, (bfd_byte *) ext->x_scn.x_nlinno)
    212 #define GET_LINENO_LNNO(abfd, ext)  bfd_h_get_32(abfd, (bfd_byte *) (ext->l_lnno))
    213 #define PUT_LINENO_LNNO(abfd,val, ext)  bfd_h_put_32(abfd,val,  (bfd_byte *) (ext->l_lnno));
    214 
    215 
     161#define GET_LNSZ_SIZE(abfd, ext) \
     162  H_GET_32 (abfd, ext->x_sym.x_misc.x_lnsz.x_size)
     163#define GET_LNSZ_LNNO(abfd, ext) \
     164  H_GET_32 (abfd, ext->x_sym.x_misc.x_lnsz.x_lnno)
     165#define PUT_LNSZ_LNNO(abfd, in, ext) \
     166  H_PUT_32 (abfd, in, ext->x_sym.x_misc.x_lnsz.x_lnno)
     167#define PUT_LNSZ_SIZE(abfd, in, ext) \
     168  H_PUT_32 (abfd, in, ext->x_sym.x_misc.x_lnsz.x_size)
     169#define GET_SCN_NRELOC(abfd, ext) \
     170  H_GET_32 (abfd, ext->x_scn.x_nreloc)
     171#define GET_SCN_NLINNO(abfd, ext) \
     172  H_GET_32 (abfd, ext->x_scn.x_nlinno)
     173#define PUT_SCN_NRELOC(abfd, in, ext) \
     174  H_PUT_32 (abfd, in, ext->x_scn.x_nreloc)
     175#define PUT_SCN_NLINNO(abfd, in, ext) \
     176  H_PUT_32 (abfd,in, ext->x_scn.x_nlinno)
    216177
    217178#define SYMENT  struct external_syment
     
    220181#define AUXESZ  20
    221182
    222 
    223183/********************** RELOCATION DIRECTIVES **********************/
    224184
    225 struct external_reloc {
     185struct external_reloc
     186{
    226187  char r_vaddr[4];
    227188  char r_symndx[4];
  • branches/GNU/src/binutils/include/coff/mcore.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    2323#define _COFF_MORE_H
    2424
     25#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
     26#define L_LNNO_SIZE 2
     27#include "coff/external.h"
     28
     29#define MCOREMAGIC      0xb00  /* I just made this up */
     30
     31#define MCOREBADMAG(x) (((x).f_magic != MCOREMAGIC))
    2532
    2633#define E_DIMNUM        4       /* # array dimensions in auxiliary entry */
     
    3744#define PEMCORE
    3845
    39 typedef struct
    40 {
    41   char  magic      [2];         /* type of file                         */
    42   char  vstamp     [2];         /* version stamp                        */
    43   char  tsize      [4];         /* text size in bytes, padded to FW bdry*/
    44   char  dsize      [4];         /* initialized data "  "                */
    45   char  bsize      [4];         /* uninitialized data "   "             */
    46   char  entry      [4];         /* entry pt.                            */
    47   char  text_start [4];         /* base of text used for this file */
    48   char  data_start [4];         /* base of data used for this file */
    49 }
    50 AOUTHDR;
    51 
    52 #define AOUTSZ 28
    53 #define AOUTHDRSZ 28
    54 
    5546#define OMAGIC          0404    /* object files, eg as output */
    5647#define ZMAGIC          0413    /* demand load format, eg normal ld output */
     
    6152#define IMAGE_NT_OPTIONAL_HDR_MAGIC        0x10b
    6253
    63 
    6454/* Define some NT default values. */
    6555#define NT_SECTION_ALIGNMENT 0x1000
     
    6757#define NT_DEF_RESERVE       0x100000
    6858#define NT_DEF_COMMIT        0x1000
    69 
    7059
    7160struct external_reloc
     
    8069#define RELSZ 14
    8170
    82 #define MCOREMAGIC      0xb00  /* I just made this up */
    83 
    84 #define MCOREBADMAG(x) (((x).f_magic!= MCOREMAGIC))
    85 
    86 struct external_filehdr
    87 {
    88   char f_magic  [2];    /* magic number                 */
    89   char f_nscns  [2];    /* number of sections           */
    90   char f_timdat [4];    /* time & date stamp            */
    91   char f_symptr [4];    /* file pointer to symtab       */
    92   char f_nsyms  [4];    /* number of symtab entries     */
    93   char f_opthdr [2];    /* sizeof(optional hdr)         */
    94   char f_flags  [2];    /* flags                        */
    95 };
    96 
    97 #define FILHDR  struct external_filehdr
    98 #define FILHSZ  20
    99 
    100 
    101 #define E_SYMNMLEN      8       /* # characters in a symbol name        */
    102 #define E_FILNMLEN      14      /* # characters in a file name          */
    103 #define E_DIMNUM        4       /* # array dimensions in auxiliary entry */
    104 
    105 struct external_syment
    106 {
    107   union
    108   {
    109     char e_name [E_SYMNMLEN];
    110     struct
    111     {
    112       char e_zeroes [4];
    113       char e_offset [4];
    114     } e;
    115   } e;
    116  
    117   char e_value  [4];
    118   char e_scnum  [2];
    119   char e_type   [2];
    120   char e_sclass [1];
    121   char e_numaux [1];
    122 };
    123 
    124 #define N_BTMASK        0xf
    125 #define N_TMASK         0x30
    126 #define N_BTSHFT        4
    127 #define N_TSHIFT        2
    128 
    129 union external_auxent
    130 {
    131   struct
    132   {
    133     char x_tagndx [4];          /* str, un, or enum tag indx */
    134    
    135     union
    136     {
    137       struct
    138       {
    139         char  x_lnno [2];       /* declaration line number */
    140         char  x_size [2];       /* str/union/array size */
    141       } x_lnsz;
    142 
    143       char x_fsize [4];         /* size of function */
    144 
    145     } x_misc;
    146 
    147     union
    148     {
    149       struct                    /* if ISFCN, tag, or .bb */
    150       {
    151         char x_lnnoptr [4];     /* ptr to fcn line # */
    152         char x_endndx  [4];     /* entry ndx past block end */
    153       } x_fcn;
    154 
    155       struct                    /* if ISARY, up to 4 dimen. */
    156       {
    157         char x_dimen [E_DIMNUM][2];
    158       } x_ary;
    159      
    160     } x_fcnary;
    161 
    162     char x_tvndx [2];           /* tv index */
    163 
    164   } x_sym;
    165 
    166   union
    167   {
    168     char x_fname [E_FILNMLEN];
    169    
    170     struct
    171     {
    172       char x_zeroes [4];
    173       char x_offset [4];
    174     } x_n;
    175    
    176   } x_file;
    177 
    178   struct
    179   {
    180     char x_scnlen     [4];      /* section length */
    181     char x_nreloc     [2];      /* # relocation entries */
    182     char x_nlinno     [2];      /* # line numbers */
    183     char x_checksum   [4];      /* section COMDAT checksum */
    184     char x_associated [2];      /* COMDAT associated section index */
    185     char x_comdat     [1];      /* COMDAT selection number */
    186   } x_scn;
    187 
    188   struct
    189   {
    190     char x_tvfill [4];          /* tv fill value */
    191     char x_tvlen  [2];          /* length of .tv */
    192     char x_tvran  [2][2];       /* tv range */
    193   } x_tv;                       /* info about .tv section (in auxent of symbol .tv)) */
    194 };
    195 
    196 #define SYMENT  struct external_syment
    197 #define SYMESZ  18     
    198 #define AUXENT  union external_auxent
    199 #define AUXESZ  18
    200 
    201 /* 1 line number entry for every "breakpointable" source line in a section.
    202    Line numbers are grouped on a per function basis; first entry in a function
    203    grouping will have l_lnno = 0 and in place of physical address will be the
    204    symbol table index of the function name.  */
    205 struct external_lineno
    206 {
    207   union
    208   {
    209     char l_symndx [4];  /* function name symbol index, iff l_lnno == 0*/
    210     char l_paddr  [4];  /* (physical) address of line number    */
    211   } l_addr;
    212 
    213   char l_lnno [2];      /* line number          */
    214 };
    215 
    216 #define LINENO  struct external_lineno
    217 #define LINESZ  6
    218 
    219 #define GET_LINENO_LNNO(abfd, ext)     bfd_h_get_32 (abfd, (bfd_byte *) (ext->l_lnno));
    220 #define PUT_LINENO_LNNO(abfd,val, ext) bfd_h_put_32 (abfd, val, (bfd_byte *) (ext->l_lnno));
    221 
    222 struct external_scnhdr
    223 {
    224   char  s_name    [8];  /* section name                 */
    225   char  s_paddr   [4];  /* physical address, aliased s_nlib */
    226   char  s_vaddr   [4];  /* virtual address              */
    227   char  s_size    [4];  /* section size                 */
    228   char  s_scnptr  [4];  /* file ptr to raw data for section */
    229   char  s_relptr  [4];  /* file ptr to relocation       */
    230   char  s_lnnoptr [4];  /* file ptr to line numbers     */
    231   char  s_nreloc  [2];  /* number of relocation entries */
    232   char  s_nlnno   [2];  /* number of line number entries*/
    233   char  s_flags   [4];  /* flags                        */
    234 };
    235 
    236 #define SCNHDR  struct external_scnhdr
    237 #define SCNHSZ  40
    238 
    239 /* Names of "special" sections.  */
    240 #define _TEXT   ".text"
    241 #define _DATA   ".data"
    242 #define _BSS    ".bss"
    243 
    244 
    245 
    24671#endif /* __COFF_MCORE_H */
  • branches/GNU/src/binutils/include/coff/mips.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1818   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    1919
    20 /********************** FILE HEADER **********************/
    21 
    22 struct external_filehdr {
    23   unsigned char f_magic[2];     /* magic number                 */
    24   unsigned char f_nscns[2];     /* number of sections           */
    25   unsigned char f_timdat[4];    /* time & date stamp            */
    26   unsigned char f_symptr[4];    /* file pointer to symtab       */
    27   unsigned char f_nsyms[4];     /* number of symtab entries     */
    28   unsigned char f_opthdr[2];    /* sizeof(optional hdr)         */
    29   unsigned char f_flags[2];     /* flags                        */
    30 };
     20#define DO_NOT_DEFINE_AOUTHDR
     21#define L_LNNO_SIZE 4
     22#include "coff/external.h"
    3123
    3224/* Magic numbers are defined in coff/ecoff.h.  */
     
    3931                              ((x).f_magic!=MIPS_MAGIC_BIG3))
    4032
    41 #define FILHDR  struct external_filehdr
    42 #define FILHSZ  20
    4333
    4434/********************** AOUT "OPTIONAL HEADER" **********************/
    45 
    4635
    4736typedef struct external_aouthdr
     
    6655#define AOUTHDRSZ 56
    6756
    68 /********************** SECTION HEADER **********************/
    69 
    70 struct external_scnhdr {
    71   unsigned char s_name[8];      /* section name                 */
    72   unsigned char s_paddr[4];     /* physical address, aliased s_nlib */
    73   unsigned char s_vaddr[4];     /* virtual address              */
    74   unsigned char s_size[4];      /* section size                 */
    75   unsigned char s_scnptr[4];    /* file ptr to raw data for section */
    76   unsigned char s_relptr[4];    /* file ptr to relocation       */
    77   unsigned char s_lnnoptr[4];   /* file ptr to line numbers     */
    78   unsigned char s_nreloc[2];    /* number of relocation entries */
    79   unsigned char s_nlnno[2];     /* number of line number entries*/
    80   unsigned char s_flags[4];     /* flags                        */
    81 };
    82 
    83 #define SCNHDR  struct external_scnhdr
    84 #define SCNHSZ  40
    85 
    8657/********************** RELOCATION DIRECTIVES **********************/
    8758
    88 struct external_reloc {
    89   unsigned char r_vaddr[4];
    90   unsigned char r_bits[4];
    91 };
     59struct external_reloc
     60  {
     61    unsigned char r_vaddr[4];
     62    unsigned char r_bits[4];
     63  };
    9264
    9365#define RELOC struct external_reloc
     
    179151/* File header as a set of bytes */
    180152
    181 struct hdr_ext {
     153struct hdr_ext
     154{
    182155        unsigned char   h_magic[2];
    183156        unsigned char   h_vstamp[2];
     
    209182/* File descriptor external record */
    210183
    211 struct fdr_ext {
     184struct fdr_ext
     185{
    212186        unsigned char   f_adr[4];
    213187        unsigned char   f_rss[4];
     
    255229/* Procedure descriptor external record */
    256230
    257 struct pdr_ext {
     231struct pdr_ext
     232{
    258233        unsigned char   p_adr[4];
    259234        unsigned char   p_isym[4];
     
    274249/* Runtime procedure table */
    275250
    276 struct rpdr_ext {
     251struct rpdr_ext
     252{
    277253        unsigned char   p_adr[4];
    278254        unsigned char   p_regmask[4];
     
    290266/* Line numbers */
    291267
    292 struct line_ext {
     268struct line_ext
     269{
    293270        unsigned char   l_line[4];
    294271};
     
    296273/* Symbol external record */
    297274
    298 struct sym_ext {
     275struct sym_ext
     276{
    299277        unsigned char   s_iss[4];
    300278        unsigned char   s_value[4];
     
    336314/* External symbol external record */
    337315
    338 struct ext_ext {
     316struct ext_ext
     317{
    339318        unsigned char   es_bits1[1];
    340319        unsigned char   es_bits2[1];
     
    354333/* Dense numbers external record */
    355334
    356 struct dnr_ext {
     335struct dnr_ext
     336{
    357337        unsigned char   d_rfd[4];
    358338        unsigned char   d_index[4];
     
    361341/* Relative file descriptor */
    362342
    363 struct rfd_ext {
     343struct rfd_ext
     344{
    364345  unsigned char rfd[4];
    365346};
     
    367348/* Optimizer symbol external record */
    368349
    369 struct opt_ext {
     350struct opt_ext
     351{
    370352  unsigned char o_bits1[1];
    371353  unsigned char o_bits2[1];
  • branches/GNU/src/binutils/include/coff/mipspe.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1717   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    1818
    19 /********************** FILE HEADER **********************/
    20 
    21 struct external_filehdr {
    22         char f_magic[2];        /* magic number                 */
    23         char f_nscns[2];        /* number of sections           */
    24         char f_timdat[4];       /* time & date stamp            */
    25         char f_symptr[4];       /* file pointer to symtab       */
    26         char f_nsyms[4];        /* number of symtab entries     */
    27         char f_opthdr[2];       /* sizeof(optional hdr)         */
    28         char f_flags[2];        /* flags                        */
    29 };
    30 
    31 
     19#define L_LNNO_SIZE 2
     20#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
     21#include "coff/external.h"
    3222
    3323#define MIPS_ARCH_MAGIC_WINCE   0x0166  /* Windows CE - little endian */
    3424#define MIPS_PE_MAGIC           0x010b
    3525
    36 #define MIPSBADMAG(x) \
    37  ((x).f_magic!=MIPS_ARCH_MAGIC_WINCE)
    38 
    39 #define FILHDR  struct external_filehdr
    40 #define FILHSZ  20
    41 
    42 
    43 /********************** AOUT "OPTIONAL HEADER" **********************/
    44 
    45 
    46 typedef struct
    47 {
    48   char  magic[2];               /* type of file                         */
    49   char  vstamp[2];              /* version stamp                        */
    50   char  tsize[4];               /* text size in bytes, padded to FW bdry*/
    51   char  dsize[4];               /* initialized data "  "                */
    52   char  bsize[4];               /* uninitialized data "   "             */
    53   char  entry[4];               /* entry pt.                            */
    54   char  text_start[4];          /* base of text used for this file */
    55   char  data_start[4];          /* base of data used for this file */
    56 }
    57 AOUTHDR;
    58 
    59 
    60 #define AOUTHDRSZ 28
    61 #define AOUTSZ 28
    62 
    63 
    64 
     26#define MIPSBADMAG(x) ((x).f_magic != MIPS_ARCH_MAGIC_WINCE)
    6527
    6628/* define some NT default values */
     
    7133#define NT_DEF_COMMIT        0x1000
    7234
    73 /********************** SECTION HEADER **********************/
    74 
    75 
    76 struct external_scnhdr {
    77         char            s_name[8];      /* section name                 */
    78         char            s_paddr[4];     /* physical address, aliased s_nlib */
    79         char            s_vaddr[4];     /* virtual address              */
    80         char            s_size[4];      /* section size                 */
    81         char            s_scnptr[4];    /* file ptr to raw data for section */
    82         char            s_relptr[4];    /* file ptr to relocation       */
    83         char            s_lnnoptr[4];   /* file ptr to line numbers     */
    84         char            s_nreloc[2];    /* number of relocation entries */
    85         char            s_nlnno[2];     /* number of line number entries*/
    86         char            s_flags[4];     /* flags                        */
    87 };
    88 
    89 /*
    90  * names of "special" sections
    91  */
    92 #define _TEXT   ".text"
    93 #define _DATA   ".data"
    94 #define _BSS    ".bss"
    95 
    96 
    97 #define SCNHDR  struct external_scnhdr
    98 #define SCNHSZ  40
    99 
    100 
    101 /********************** LINE NUMBERS **********************/
    102 
    103 /* 1 line number entry for every "breakpointable" source line in a section.
    104  * Line numbers are grouped on a per function basis; first entry in a function
    105  * grouping will have l_lnno = 0 and in place of physical address will be the
    106  * symbol table index of the function name.
    107  */
    108 struct external_lineno {
    109         union {
    110                 char l_symndx[4];       /* function name symbol index, iff l_lnno == 0*/
    111                 char l_paddr[4];        /* (physical) address of line number    */
    112         } l_addr;
    113         char l_lnno[2]; /* line number          */
    114 };
    115 
    116 #define GET_LINENO_LNNO(abfd, ext) bfd_h_get_16(abfd, (bfd_byte *) (ext->l_lnno));
    117 #define PUT_LINENO_LNNO(abfd,val, ext) bfd_h_put_16(abfd,val,  (bfd_byte *) (ext->l_lnno));
    118 
    119 #define LINENO  struct external_lineno
    120 #define LINESZ  6
    121 
    122 
    123 /********************** SYMBOLS **********************/
    124 
    125 #define E_SYMNMLEN      8       /* # characters in a symbol name        */
    126 #define E_FILNMLEN      14      /* # characters in a file name          */
    127 #define E_DIMNUM        4       /* # array dimensions in auxiliary entry */
    128 
    129 struct external_syment
    130 {
    131   union {
    132     char e_name[E_SYMNMLEN];
    133     struct {
    134       char e_zeroes[4];
    135       char e_offset[4];
    136     } e;
    137   } e;
    138   char e_value[4];
    139   char e_scnum[2];
    140   char e_type[2];
    141   char e_sclass[1];
    142   char e_numaux[1];
    143 };
    144 
    145 
    146 
    147 #define N_BTMASK        (017)
    148 #define N_TMASK         (060)
    149 #define N_BTSHFT        (4)
    150 #define N_TSHIFT        (2)
    151  
    152 
    153 union external_auxent {
    154         struct {
    155                 char x_tagndx[4];       /* str, un, or enum tag indx */
    156                 union {
    157                         struct {
    158                             char  x_lnno[2]; /* declaration line number */
    159                             char  x_size[2]; /* str/union/array size */
    160                         } x_lnsz;
    161                         char x_fsize[4];        /* size of function */
    162                 } x_misc;
    163                 union {
    164                         struct {                /* if ISFCN, tag, or .bb */
    165                             char x_lnnoptr[4];  /* ptr to fcn line # */
    166                             char x_endndx[4];   /* entry ndx past block end */
    167                         } x_fcn;
    168                         struct {                /* if ISARY, up to 4 dimen. */
    169                             char x_dimen[E_DIMNUM][2];
    170                         } x_ary;
    171                 } x_fcnary;
    172                 char x_tvndx[2];                /* tv index */
    173         } x_sym;
    174 
    175         union {
    176                 char x_fname[E_FILNMLEN];
    177                 struct {
    178                         char x_zeroes[4];
    179                         char x_offset[4];
    180                 } x_n;
    181         } x_file;
    182 
    183         struct {
    184                 char x_scnlen[4];                       /* section length */
    185                 char x_nreloc[2];       /* # relocation entries */
    186                 char x_nlinno[2];       /* # line numbers */
    187                 char x_checksum[4];     /* section COMDAT checksum */
    188                 char x_associated[2];   /* COMDAT associated section index */
    189                 char x_comdat[1];       /* COMDAT selection number */
    190         } x_scn;
    191 
    192         struct {
    193                 char x_tvfill[4];       /* tv fill value */
    194                 char x_tvlen[2];        /* length of .tv */
    195                 char x_tvran[2][2];     /* tv range */
    196         } x_tv;         /* info about .tv section (in auxent of symbol .tv)) */
    197 
    198 
    199 };
    200 
    201 #define SYMENT  struct external_syment
    202 #define SYMESZ  18     
    203 #define AUXENT  union external_auxent
    204 #define AUXESZ  18
    205 
    206 
    207 
    20835/********************** RELOCATION DIRECTIVES **********************/
    20936
    21037/* The external reloc has an offset field, because some of the reloc
    21138   types on the h8 don't have room in the instruction for the entire
    212    offset - eg the strange jump and high page addressing modes */
     39   offset - eg the strange jump and high page addressing modes. */
    21340
    214 struct external_reloc {
     41struct external_reloc
     42{
    21543  char r_vaddr[4];
    21644  char r_symndx[4];
    21745  char r_type[2];
    21846};
    219 
    22047
    22148#define RELOC struct external_reloc
  • branches/GNU/src/binutils/include/coff/powerpc.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1919 
    2020   Initial release: Kim Knuttila (krk@cygnus.com)  */
    21 
    22 /********************** FILE HEADER **********************/
    23 
    24 struct external_filehdr {
    25   char f_magic[2];      /* magic number                 */
    26   char f_nscns[2];      /* number of sections           */
    27   char f_timdat[4];     /* time & date stamp            */
    28   char f_symptr[4];     /* file pointer to symtab       */
    29   char f_nsyms[4];      /* number of symtab entries     */
    30   char f_opthdr[2];     /* sizeof(optional hdr)         */
    31   char f_flags[2];      /* flags                        */
    32 };
    33 
    34 #define FILHDR  struct external_filehdr
    35 #define FILHSZ  20
     21#define L_LNNO_SIZE 2
     22#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
     23#include "coff/external.h"
    3624
    3725/* Bits for f_flags:
    38  *      F_RELFLG        relocation info stripped from file
    39  *      F_EXEC          file is executable (no unresolved external references)
    40  *      F_LNNO          line numbers stripped from file
    41  *      F_LSYMS         local symbols stripped from file
    42  *      F_AR32WR        file has byte ordering of an AR32WR machine (e.g. vax)
    43  */
     26        F_RELFLG        relocation info stripped from file
     27        F_EXEC          file is executable (no unresolved external references)
     28        F_LNNO          line numbers stripped from file
     29        F_LSYMS         local symbols stripped from file
     30        F_AR32WR        file has byte ordering of an AR32WR machine (e.g. vax).  */
    4431
    4532#define F_RELFLG        (0x0001)
     
    5845#define PPCBADMAG(x) ((x).f_magic != PPCMAGIC)
    5946
    60 /********************** AOUT "OPTIONAL HEADER" **********************/
    61 
    62 typedef struct
    63 {
    64   char  magic[2];               /* type of file                         */
    65   char  vstamp[2];              /* version stamp                        */
    66   char  tsize[4];               /* text size in bytes, padded to FW bdry*/
    67   char  dsize[4];               /* initialized data "  "                */
    68   char  bsize[4];               /* uninitialized data "   "             */
    69   char  entry[4];               /* entry pt.                            */
    70   char  text_start[4];          /* base of text used for this file */
    71   char  data_start[4];          /* base of data used for this file */
    72 }
    73 AOUTHDR;
    74 
    75 #define AOUTSZ 28
    76 #define AOUTHDRSZ 28
    77 
    78 /********************** SECTION HEADER **********************/
    79 
    80 struct external_scnhdr {
    81   char          s_name[8];      /* section name                     */
    82   char          s_paddr[4];     /* physical address, aliased s_nlib */
    83   char          s_vaddr[4];     /* virtual address                  */
    84   char          s_size[4];      /* section size                     */
    85   char          s_scnptr[4];    /* file ptr to raw data for section */
    86   char          s_relptr[4];    /* file ptr to relocation           */
    87   char          s_lnnoptr[4];   /* file ptr to line numbers         */
    88   char          s_nreloc[2];    /* number of relocation entries     */
    89   char          s_nlnno[2];     /* number of line number entries    */
    90   char          s_flags[4];     /* flags                            */
    91 };
    92 
    93 #define SCNHDR  struct external_scnhdr
    94 #define SCNHSZ  40
    95 
    96 /*
    97  * names of "special" sections
    98  */
    99 #define _TEXT   ".text"
    100 #define _DATA   ".data"
    101 #define _BSS    ".bss"
    102 #define _COMMENT ".comment"
    103 #define _LIB ".lib"
    104 
    105 /********************** LINE NUMBERS **********************/
    106 
    107 /* 1 line number entry for every "breakpointable" source line in a section.
    108  * Line numbers are grouped on a per function basis; first entry in a function
    109  * grouping will have l_lnno = 0 and in place of physical address will be the
    110  * symbol table index of the function name.
    111  */
    112 struct external_lineno {
    113   union {
    114     char l_symndx[4];   /* function name symbol index, iff l_lnno == 0 */
    115     char l_paddr[4];    /* (physical) address of line number           */
    116   } l_addr;
    117   char l_lnno[2];       /* line number                                 */
    118 };
    119 
    120 #define LINENO  struct external_lineno
    121 #define LINESZ  6
    122 
    123 /********************** SYMBOLS **********************/
    124 
    125 #define E_SYMNMLEN      8     /* # characters in a symbol name       */
    126 
    127 /* Allow the file name length to be overridden in the including file   */
    128 #ifndef E_FILNMLEN
    129 #define E_FILNMLEN      14
    130 #endif
    131 
    132 #define E_DIMNUM        4     /* # array dimensions in auxiliary entry */
    133 
    134 struct external_syment
    135 {
    136   union {
    137     char e_name[E_SYMNMLEN];
    138     struct {
    139       char e_zeroes[4];
    140       char e_offset[4];
    141     } e;
    142   } e;
    143   char e_value[4];
    144   char e_scnum[2];
    145   char e_type[2];
    146   char e_sclass[1];
    147   char e_numaux[1];
    148 };
    149 
    150 #define SYMENT  struct external_syment
    151 #define SYMESZ  18     
    152 
    153 #define N_BTMASK        (0xf)
    154 #define N_TMASK         (0x30)
    155 #define N_BTSHFT        (4)
    156 #define N_TSHIFT        (2)
    157  
    158 union external_auxent {
    159   struct {
    160     char x_tagndx[4];              /* str, un, or enum tag indx       */
    161     union {
    162       struct {
    163         char  x_lnno[2];           /* declaration line number         */
    164         char  x_size[2];           /* str/union/array size            */
    165       } x_lnsz;
    166       char x_fsize[4];             /* size of function                */
    167     } x_misc;
    168     union {
    169       struct {                     /* if ISFCN, tag, or .bb           */
    170         char x_lnnoptr[4];         /* ptr to fcn line #               */
    171         char x_endndx[4];          /* entry ndx past block end        */
    172       } x_fcn;
    173       struct {                     /* if ISARY, up to 4 dimen.        */
    174         char x_dimen[E_DIMNUM][2];
    175       } x_ary;
    176     } x_fcnary;
    177     char x_tvndx[2];               /* tv index                        */
    178   } x_sym;
    179  
    180   union {
    181     char x_fname[E_FILNMLEN];
    182     struct {
    183       char x_zeroes[4];
    184       char x_offset[4];
    185     } x_n;
    186   } x_file;
    187  
    188   struct {
    189     char x_scnlen[4];              /* section length                  */
    190     char x_nreloc[2];              /* # relocation entries            */
    191     char x_nlinno[2];              /* # line numbers                  */
    192     char x_checksum[4];            /* section COMDAT checksum         */
    193     char x_associated[2];          /* COMDAT associated section index */
    194     char x_comdat[1];              /* COMDAT selection number         */
    195   } x_scn;
    196 };
    197 
    198 #define AUXENT  union external_auxent
    199 #define AUXESZ  18
    200 
    201 #define _ETEXT  "etext"
    202 
    20347/********************** RELOCATION DIRECTIVES **********************/
    20448
    205 struct external_reloc {
     49struct external_reloc
     50{
    20651  char r_vaddr[4];
    20752  char r_symndx[4];
  • branches/GNU/src/binutils/include/coff/rs6000.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    6767#define AOUTHDRSZ 72
    6868
    69 #define RS6K_AOUTHDR_OMAGIC     0x0107  /* old: text & data writeable */
    70 #define RS6K_AOUTHDR_NMAGIC     0x0108  /* new: text r/o, data r/w */
    71 #define RS6K_AOUTHDR_ZMAGIC     0x010B  /* paged: text r/o, both page-aligned */
    72 
    73 
    7469/********************** SECTION HEADER **********************/
    7570
     
    8883};
    8984
    90 /*
    91  * names of "special" sections
    92  */
    93 #define _TEXT   ".text"
    94 #define _DATA   ".data"
    95 #define _BSS    ".bss"
    96 #define _PAD    ".pad"
    97 #define _LOADER ".loader"
    98 
    9985#define SCNHDR  struct external_scnhdr
    10086#define SCNHSZ  40
    101 
    102 /* XCOFF uses a special .loader section with type STYP_LOADER.  */
    103 #define STYP_LOADER 0x1000
    104 
    105 /* XCOFF uses a special .debug section with type STYP_DEBUG.  */
    106 #define STYP_DEBUG 0x2000
    107 
    108 /* XCOFF handles line number or relocation overflow by creating
    109    another section header with STYP_OVRFLO set.  */
    110 #define STYP_OVRFLO 0x8000
    11187
    11288/********************** LINE NUMBERS **********************/
     
    242218/* For new sections we havn't heard of before */
    243219#define DEFAULT_SECTION_ALIGNMENT 4
     220
     221/* The ldhdr structure.  This appears at the start of the .loader
     222   section.  */
     223
     224struct external_ldhdr
     225{
     226  bfd_byte l_version[4];
     227  bfd_byte l_nsyms[4];
     228  bfd_byte l_nreloc[4];
     229  bfd_byte l_istlen[4];
     230  bfd_byte l_nimpid[4];
     231  bfd_byte l_impoff[4];
     232  bfd_byte l_stlen[4];
     233  bfd_byte l_stoff[4];
     234};
     235
     236#define LDHDRSZ (8 * 4)
     237
     238struct external_ldsym
     239{
     240  union
     241    {
     242      bfd_byte _l_name[SYMNMLEN];
     243      struct
     244        {
     245          bfd_byte _l_zeroes[4];
     246          bfd_byte _l_offset[4];
     247        } _l_l;
     248    } _l;
     249  bfd_byte l_value[4];
     250  bfd_byte l_scnum[2];
     251  bfd_byte l_smtype[1];
     252  bfd_byte l_smclas[1];
     253  bfd_byte l_ifile[4];
     254  bfd_byte l_parm[4];
     255};
     256
     257#define LDSYMSZ (8 + 3 * 4 + 2 + 2)
     258
     259struct external_ldrel
     260{
     261  bfd_byte l_vaddr[4];
     262  bfd_byte l_symndx[4];
     263  bfd_byte l_rtype[2];
     264  bfd_byte l_rsecnm[2];
     265};
     266
     267#define LDRELSZ (2 * 4 + 2 * 2)
  • branches/GNU/src/binutils/include/coff/rs6k64.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* IBM RS/6000 "XCOFF64" file definitions for BFD.
    2    Copyright (C) 2000 Free Software Foundation, Inc. 
     2   Copyright (C) 2000, 2002 Free Software Foundation, Inc. 
    33
    44   This program is free software; you can redistribute it and/or modify
     
    1414   You should have received a copy of the GNU General Public License
    1515   along with this program; if not, write to the Free Software
    16    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
    17 */
     16   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    1817
    1918/********************** FILE HEADER **********************/
    2019
    21 struct external_filehdr {
    22         char f_magic[2];        /* magic number                 */
    23         char f_nscns[2];        /* number of sections           */
    24         char f_timdat[4];       /* time & date stamp            */
    25         char f_symptr[8];/* file pointer to symtab      */
    26         char f_opthdr[2];       /* sizeof(optional hdr)         */
    27         char f_flags[2];        /* flags                        */
    28         char f_nsyms[4];        /* number of symtab entries     */
    29 };
    30 
    31         /* IBM RS/6000 */
    32 #define U803XTOCMAGIC 0757      /* readonly text segments and TOC, XCOFF64 */
    33 
    34 #define BADMAG(x) ((x).f_magic != U803XTOCMAGIC)
     20struct external_filehdr
     21{
     22  char f_magic[2];      /* magic number                 */
     23  char f_nscns[2];      /* number of sections           */
     24  char f_timdat[4];     /* time & date stamp            */
     25  char f_symptr[8];     /* file pointer to symtab       */
     26  char f_opthdr[2];     /* sizeof(optional hdr)         */
     27  char f_flags[2];      /* flags                        */
     28  char f_nsyms[4];      /* number of symtab entries     */
     29};
     30
     31/* IBM RS/6000.  */
     32#define U803XTOCMAGIC 0757      /* Aix 4.3 64-bit XCOFF */
     33#define U64_TOCMAGIC  0767      /* AIX 5+ 64-bit XCOFF */
     34#define BADMAG(x) ((x).f_magic != U803XTOCMAGIC && (x).f_magic != U64_TOCMAGIC)
    3535
    3636#define FILHDR  struct external_filehdr
     
    3838
    3939/********************** AOUT "OPTIONAL HEADER" **********************/
    40 
    4140
    4241typedef struct
     
    4544  unsigned char vstamp[2];              /* version stamp                */
    4645  unsigned char o_debugger[4];          /* reserved                     */
    47   unsigned char text_start[8];  /* base of text used for this file */
    48   unsigned char data_start[8];  /* base of data used for this file */
    49   unsigned char o_toc[8];       /* address of TOC */
     46  unsigned char text_start[8];          /* base of text used for this file */
     47  unsigned char data_start[8];          /* base of data used for this file */
     48  unsigned char o_toc[8];               /* address of TOC */
    5049  unsigned char o_snentry[2];           /* section number of entry point */
    5150  unsigned char o_sntext[2];            /* section number of .text section */
     
    6362  unsigned char bsize[8];               /* uninitialized data "   "     */
    6463  unsigned char entry[8];               /* entry pt.                    */
    65   unsigned char o_maxstack[8];  /* max stack size (??)          */
    66   unsigned char o_maxdata[8];   /* max data size (??)           */
     64  unsigned char o_maxstack[8];          /* max stack size (??)          */
     65  unsigned char o_maxdata[8];           /* max data size (??)           */
    6766  unsigned char o_resv3[16];            /* reserved                     */
    6867}
     
    7372#define AOUTHDRSZ 72
    7473
    75 #define RS6K_AOUTHDR_OMAGIC     0x0107  /* old: text & data writeable */
    76 #define RS6K_AOUTHDR_NMAGIC     0x0108  /* new: text r/o, data r/w */
    77 #define RS6K_AOUTHDR_ZMAGIC     0x010B  /* paged: text r/o, both page-aligned */
    78 
    79 
    8074/********************** SECTION HEADER **********************/
    8175
    82 
    83 struct external_scnhdr {
    84         char    s_name[8];              /* section name                 */
    85         char    s_paddr[8];     /* physical address, aliased s_nlib */
    86         char    s_vaddr[8];     /* virtual address              */
    87         char    s_size[8];      /* section size                 */
    88         char    s_scnptr[8];    /* file ptr to raw data for section */
    89         char    s_relptr[8];    /* file ptr to relocation       */
    90         char    s_lnnoptr[8];   /* file ptr to line numbers     */
    91         char    s_nreloc[4];    /* number of relocation entries */
    92         char    s_nlnno[4];     /* number of line number entries*/
    93         char    s_flags[4];             /* flags                        */
    94         char    s_pad[4];               /* padding */ 
    95 };
    96 
    97 /*
    98  * names of "special" sections
    99  */
    100 #define _TEXT   ".text"
    101 #define _DATA   ".data"
    102 #define _BSS    ".bss"
    103 #define _PAD    ".pad"
    104 #define _LOADER ".loader"
     76struct external_scnhdr
     77{
     78  char  s_name[8];      /* section name                 */
     79  char  s_paddr[8];     /* physical address, aliased s_nlib */
     80  char  s_vaddr[8];     /* virtual address              */
     81  char  s_size[8];      /* section size                 */
     82  char  s_scnptr[8];    /* file ptr to raw data for section */
     83  char  s_relptr[8];    /* file ptr to relocation       */
     84  char  s_lnnoptr[8];   /* file ptr to line numbers     */
     85  char  s_nreloc[4];    /* number of relocation entries */
     86  char  s_nlnno[4];     /* number of line number entries*/
     87  char  s_flags[4];     /* flags                        */
     88  char  s_pad[4];       /* padding */ 
     89};
    10590
    10691#define SCNHDR  struct external_scnhdr
     
    10893#define SCNHSZ  72
    10994
    110 /* XCOFF uses a special .loader section with type STYP_LOADER.  */
    111 #define STYP_LOADER 0x1000
    112 
    113 /* XCOFF uses a special .debug section with type STYP_DEBUG.  */
    114 #define STYP_DEBUG 0x2000
    115 
    116 /* XCOFF handles line number or relocation overflow by creating
    117    another section header with STYP_OVRFLO set.  */
    118 #define STYP_OVRFLO 0x8000
    119 
    12095/********************** LINE NUMBERS **********************/
    12196
    12297/* 1 line number entry for every "breakpointable" source line in a section.
    123  * Line numbers are grouped on a per function basis; first entry in a function
    124  * grouping will have l_lnno = 0 and in place of physical address will be the
    125  * symbol table index of the function name.
    126  */
    127 struct external_lineno {
    128         union {
    129                 char l_symndx[8];/* function name symbol index, iff l_lnno == 0*/
    130                 char l_paddr[8];        /* (physical) address of line number    */
    131         } l_addr;
    132         char l_lnno[4];         /* line number          */
    133 };
    134 
     98   Line numbers are grouped on a per function basis; first entry in a function
     99   grouping will have l_lnno = 0 and in place of physical address will be the
     100   symbol table index of the function name.  */
     101
     102struct external_lineno
     103{
     104  union
     105  {
     106    char l_symndx[4];   /* function name symbol index, iff l_lnno == 0*/
     107    char l_paddr[8];    /* (physical) address of line number    */
     108  } l_addr;
     109
     110  char l_lnno[4];       /* line number          */
     111};
    135112
    136113#define LINENO  struct external_lineno
    137114
    138115#define LINESZ  12
    139 
    140116
    141117/********************** SYMBOLS **********************/
     
    147123struct external_syment
    148124{
    149   union {
    150     char e_value[8];
    151   } e;
     125  char e_value[8];
    152126  char e_offset[4];
    153127  char e_scnum[2];
     
    157131};
    158132
    159 
    160 
    161133#define N_BTMASK        (017)
    162134#define N_TMASK         (060)
    163135#define N_BTSHFT        (4)
    164136#define N_TSHIFT        (2)
    165  
    166 
    167 union external_auxent {
    168 
     137
     138union external_auxent
     139{
    169140    struct {
    170141        union {
     
    222193#define SYMNAME_IN_DEBUG(symptr) ((symptr)->n_sclass & DBXMASK)
    223194
    224 /* Values for auxtype field in XCOFF64, taken from AIX 4.3 sym.h */
     195/* Values for auxtype field in XCOFF64, taken from AIX 4.3 sym.h. */
    225196#define _AUX_EXCEPT     255
    226197#define _AUX_FCN        254
     
    229200#define _AUX_CSECT      251
    230201
    231 
    232 
    233202/********************** RELOCATION DIRECTIVES **********************/
    234203
    235 
    236 struct external_reloc {
     204struct external_reloc
     205{
    237206  char r_vaddr[8];
    238207  char r_symndx[4];
     
    240209  char r_type[1];
    241210};
    242 
    243211
    244212#define RELOC struct external_reloc
     
    250218/* For new sections we havn't heard of before */
    251219#define DEFAULT_SECTION_ALIGNMENT 4
     220
     221/* The ldhdr structure.  This appears at the start of the .loader
     222   section.  */
     223
     224struct external_ldhdr
     225{
     226  bfd_byte l_version[4];
     227  bfd_byte l_nsyms[4];
     228  bfd_byte l_nreloc[4];
     229  bfd_byte l_istlen[4];
     230  bfd_byte l_nimpid[4];
     231  bfd_byte l_stlen[4];
     232  bfd_byte l_impoff[8];
     233  bfd_byte l_stoff[8];
     234  bfd_byte l_symoff[8];
     235  bfd_byte l_rldoff[8];
     236};
     237#define LDHDRSZ (56)
     238
     239struct external_ldsym
     240{
     241  bfd_byte l_value[8];
     242  bfd_byte l_offset[4];
     243  bfd_byte l_scnum[2];
     244  bfd_byte l_smtype[1];
     245  bfd_byte l_smclas[1];
     246  bfd_byte l_ifile[4];
     247  bfd_byte l_parm[4];
     248};
     249
     250#define LDSYMSZ (24)
     251
     252struct external_ldrel
     253{
     254  bfd_byte l_vaddr[8];
     255  bfd_byte l_rtype[2];
     256  bfd_byte l_rsecnm[2];
     257  bfd_byte l_symndx[4];
     258};
     259
     260#define LDRELSZ (16)
  • branches/GNU/src/binutils/include/coff/sh.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1 /* coff information for Hitachi SH
     1/* coff information for Renesas SH
    22   
    3    Copyright 2001 Free Software Foundation, Inc.
     3   Copyright 2001, 2003 Free Software Foundation, Inc.
    44
    55   This program is free software; you can redistribute it and/or modify
     
    1717   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    1818
    19 /********************** FILE HEADER **********************/
    20 
    21 struct external_filehdr {
    22         char f_magic[2];        /* magic number                 */
    23         char f_nscns[2];        /* number of sections           */
    24         char f_timdat[4];       /* time & date stamp            */
    25         char f_symptr[4];       /* file pointer to symtab       */
    26         char f_nsyms[4];        /* number of symtab entries     */
    27         char f_opthdr[2];       /* sizeof(optional hdr)         */
    28         char f_flags[2];        /* flags                        */
    29 };
    30 
    31 
     19#ifdef COFF_WITH_PE
     20#define L_LNNO_SIZE 2
     21#else
     22#define L_LNNO_SIZE 4
     23#endif
     24#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
     25#include "coff/external.h"
    3226
    3327#define SH_ARCH_MAGIC_BIG       0x0500
     
    3630#define SH_PE_MAGIC             0x010b
    3731
    38 
    3932#define SHBADMAG(x) \
    40  (((x).f_magic!=SH_ARCH_MAGIC_BIG) && \
    41   ((x).f_magic!=SH_ARCH_MAGIC_WINCE) && \
    42   ((x).f_magic!=SH_ARCH_MAGIC_LITTLE))
    43 
    44 #define FILHDR  struct external_filehdr
    45 #define FILHSZ  20
    46 
    47 
    48 /********************** AOUT "OPTIONAL HEADER" **********************/
    49 
    50 
    51 typedef struct
    52 {
    53   char  magic[2];               /* type of file                         */
    54   char  vstamp[2];              /* version stamp                        */
    55   char  tsize[4];               /* text size in bytes, padded to FW bdry*/
    56   char  dsize[4];               /* initialized data "  "                */
    57   char  bsize[4];               /* uninitialized data "   "             */
    58   char  entry[4];               /* entry pt.                            */
    59   char  text_start[4];          /* base of text used for this file */
    60   char  data_start[4];          /* base of data used for this file */
    61 }
    62 AOUTHDR;
    63 
    64 
    65 #define AOUTHDRSZ 28
    66 #define AOUTSZ 28
    67 
    68 
     33 (((x).f_magic != SH_ARCH_MAGIC_BIG) && \
     34  ((x).f_magic != SH_ARCH_MAGIC_WINCE) && \
     35  ((x).f_magic != SH_ARCH_MAGIC_LITTLE))
    6936
    7037/* Define some NT default values.  */
     
    7542#define NT_DEF_COMMIT        0x1000
    7643
    77 /********************** SECTION HEADER **********************/
    78 
    79 
    80 struct external_scnhdr {
    81         char            s_name[8];      /* section name                 */
    82         char            s_paddr[4];     /* physical address, aliased s_nlib */
    83         char            s_vaddr[4];     /* virtual address              */
    84         char            s_size[4];      /* section size                 */
    85         char            s_scnptr[4];    /* file ptr to raw data for section */
    86         char            s_relptr[4];    /* file ptr to relocation       */
    87         char            s_lnnoptr[4];   /* file ptr to line numbers     */
    88         char            s_nreloc[2];    /* number of relocation entries */
    89         char            s_nlnno[2];     /* number of line number entries*/
    90         char            s_flags[4];     /* flags                        */
    91 };
    92 
    93 /*
    94  * names of "special" sections
    95  */
    96 #define _TEXT   ".text"
    97 #define _DATA   ".data"
    98 #define _BSS    ".bss"
    99 
    100 
    101 #define SCNHDR  struct external_scnhdr
    102 #define SCNHSZ  40
    103 
    104 
    105 /********************** LINE NUMBERS **********************/
    106 
    107 /* 1 line number entry for every "breakpointable" source line in a section.
    108  * Line numbers are grouped on a per function basis; first entry in a function
    109  * grouping will have l_lnno = 0 and in place of physical address will be the
    110  * symbol table index of the function name.
    111  */
    112 struct external_lineno {
    113         union {
    114                 char l_symndx[4];       /* function name symbol index, iff l_lnno == 0*/
    115                 char l_paddr[4];        /* (physical) address of line number    */
    116         } l_addr;
    117 #ifdef COFF_WITH_PE
    118         char l_lnno[2]; /* line number          */
    119 #else
    120         char l_lnno[4]; /* line number          */
    121 #endif
    122 };
    123 
    124 #define GET_LINENO_LNNO(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) (ext->l_lnno));
    125 #define PUT_LINENO_LNNO(abfd,val, ext) bfd_h_put_32(abfd,val,  (bfd_byte *) (ext->l_lnno));
    126 
    127 #define LINENO  struct external_lineno
    128 #ifdef COFF_WITH_PE
    129 #define LINESZ  6
    130 #undef GET_LINENO_LNNO
    131 #define GET_LINENO_LNNO(abfd, ext) bfd_h_get_16(abfd, (bfd_byte *) (ext->l_lnno));
    132 #undef PUT_LINENO_LNNO
    133 #define PUT_LINENO_LNNO(abfd,val, ext) bfd_h_put_16(abfd,val,  (bfd_byte *) (ext->l_lnno));
    134 #else
    135 #define LINESZ  8
    136 #endif
    137 
    138 
    139 /********************** SYMBOLS **********************/
    140 
    141 #define E_SYMNMLEN      8       /* # characters in a symbol name        */
    142 #define E_FILNMLEN      14      /* # characters in a file name          */
    143 #define E_DIMNUM        4       /* # array dimensions in auxiliary entry */
    144 
    145 struct external_syment
    146 {
    147   union {
    148     char e_name[E_SYMNMLEN];
    149     struct {
    150       char e_zeroes[4];
    151       char e_offset[4];
    152     } e;
    153   } e;
    154   char e_value[4];
    155   char e_scnum[2];
    156   char e_type[2];
    157   char e_sclass[1];
    158   char e_numaux[1];
    159 };
    160 
    161 
    162 
    163 #define N_BTMASK        (017)
    164 #define N_TMASK         (060)
    165 #define N_BTSHFT        (4)
    166 #define N_TSHIFT        (2)
    167  
    168 
    169 union external_auxent {
    170         struct {
    171                 char x_tagndx[4];       /* str, un, or enum tag indx */
    172                 union {
    173                         struct {
    174                             char  x_lnno[2]; /* declaration line number */
    175                             char  x_size[2]; /* str/union/array size */
    176                         } x_lnsz;
    177                         char x_fsize[4];        /* size of function */
    178                 } x_misc;
    179                 union {
    180                         struct {                /* if ISFCN, tag, or .bb */
    181                             char x_lnnoptr[4];  /* ptr to fcn line # */
    182                             char x_endndx[4];   /* entry ndx past block end */
    183                         } x_fcn;
    184                         struct {                /* if ISARY, up to 4 dimen. */
    185                             char x_dimen[E_DIMNUM][2];
    186                         } x_ary;
    187                 } x_fcnary;
    188                 char x_tvndx[2];                /* tv index */
    189         } x_sym;
    190 
    191         union {
    192                 char x_fname[E_FILNMLEN];
    193                 struct {
    194                         char x_zeroes[4];
    195                         char x_offset[4];
    196                 } x_n;
    197         } x_file;
    198 
    199         struct {
    200                 char x_scnlen[4];                       /* section length */
    201                 char x_nreloc[2];       /* # relocation entries */
    202                 char x_nlinno[2];       /* # line numbers */
    203                 char x_checksum[4];     /* section COMDAT checksum */
    204                 char x_associated[2];   /* COMDAT associated section index */
    205                 char x_comdat[1];       /* COMDAT selection number */
    206         } x_scn;
    207 
    208         struct {
    209                 char x_tvfill[4];       /* tv fill value */
    210                 char x_tvlen[2];        /* length of .tv */
    211                 char x_tvran[2][2];     /* tv range */
    212         } x_tv;         /* info about .tv section (in auxent of symbol .tv)) */
    213 
    214 
    215 };
    216 
    217 #define SYMENT  struct external_syment
    218 #define SYMESZ  18     
    219 #define AUXENT  union external_auxent
    220 #define AUXESZ  18
    221 
    222 
    223 
    22444/********************** RELOCATION DIRECTIVES **********************/
    22545
    22646/* The external reloc has an offset field, because some of the reloc
    22747   types on the h8 don't have room in the instruction for the entire
    228    offset - eg the strange jump and high page addressing modes */
     48   offset - eg the strange jump and high page addressing modes. */
    22949
    23050#ifndef COFF_WITH_PE
    231 struct external_reloc {
     51struct external_reloc
     52{
    23253  char r_vaddr[4];
    23354  char r_symndx[4];
     
    23758};
    23859#else
    239 struct external_reloc {
     60struct external_reloc
     61{
    24062  char r_vaddr[4];
    24163  char r_symndx[4];
     
    24365};
    24466#endif
    245 
    24667
    24768#define RELOC struct external_reloc
  • branches/GNU/src/binutils/include/coff/sparc.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    2323   be used with different systems while still yielding the same results.  */
    2424
    25 /********************** FILE HEADER **********************/
    26 
    27 struct external_filehdr
    28 {
    29   char f_magic[2];              /* magic number                 */
    30   char f_nscns[2];              /* number of sections           */
    31   char f_timdat[4];             /* time & date stamp            */
    32   char f_symptr[4];             /* file pointer to symtab       */
    33   char f_nsyms[4];              /* number of symtab entries     */
    34   char f_opthdr[2];             /* sizeof(optional hdr)         */
    35   char f_flags[2];              /* flags                        */
    36 };
     25#define L_LNNO_SIZE 2
     26#define DO_NOT_DEFINE_SYMENT
     27#define DO_NOT_DEFINE_AUXENT
     28#include "coff/external.h"
    3729
    3830#define F_RELFLG        (0x0001)        /* relocation info stripped */
     
    4739#define LYNXCOFFMAGIC   (0415)
    4840
    49 #define FILHDR  struct external_filehdr
    50 #define FILHSZ  20
    51 
    52 /********************** AOUT "OPTIONAL HEADER" **********************/
    53 
    54 typedef struct
    55 {
    56   char magic[2];                /* type of file                         */
    57   char vstamp[2];               /* version stamp                        */
    58   char tsize[4];                /* text size in bytes, padded to FW bdry*/
    59   char dsize[4];                /* initialized data "  "                */
    60   char bsize[4];                /* uninitialized data "   "             */
    61   char entry[4];                /* entry pt.                            */
    62   char text_start[4];           /* base of text used for this file */
    63   char data_start[4];           /* base of data used for this file */
    64 }
    65 AOUTHDR;
    66 
    67 #define AOUTSZ 28
    68 #define AOUTHDRSZ 28
    69 
    7041#define OMAGIC          0404    /* object files, eg as output */
    7142#define ZMAGIC          0413    /* demand load format, eg normal ld output */
     
    7344#define SHMAGIC         0443    /* host   shlib */
    7445
    75 /********************** SECTION HEADER **********************/
     46/* More names of "special" sections. */
    7647
    77 struct external_scnhdr
    78 {
    79   char s_name[8];               /* section name                 */
    80   char s_paddr[4];              /* physical address, aliased s_nlib */
    81   char s_vaddr[4];              /* virtual address              */
    82   char s_size[4];               /* section size                 */
    83   char s_scnptr[4];             /* file ptr to raw data for section */
    84   char s_relptr[4];             /* file ptr to relocation       */
    85   char s_lnnoptr[4];            /* file ptr to line numbers     */
    86   char s_nreloc[2];             /* number of relocation entries */
    87   char s_nlnno[2];              /* number of line number entries*/
    88   char s_flags[4];              /* flags                        */
    89 };
    90 
    91 #define SCNHDR  struct external_scnhdr
    92 #define SCNHSZ  40
    93 
    94 /* Names of "special" sections. */
    95 
    96 #define _TEXT   ".text"
    97 #define _DATA   ".data"
    98 #define _BSS    ".bss"
    9948#define _TV     ".tv"
    10049#define _INIT   ".init"
    10150#define _FINI   ".fini"
    102 #define _COMMENT ".comment"
    103 #define _LIB ".lib"
    104 
    105 /********************** LINE NUMBERS **********************/
    106 
    107 /* 1 line number entry for every "breakpointable" source line in a section.
    108    Line numbers are grouped on a per function basis; first entry in a function
    109    grouping will have l_lnno = 0 and in place of physical address will be the
    110    symbol table index of the function name. */
    111 
    112 struct external_lineno
    113 {
    114   union {
    115     char l_symndx[4];           /* fn name symbol index, iff l_lnno == 0 */
    116     char l_paddr[4];            /* (physical) address of line number */
    117   } l_addr;
    118   char l_lnno[2];               /* line number */
    119 };
    120 
    121 #define LINENO  struct external_lineno
    122 #define LINESZ  (6)
    12351
    12452/********************** SYMBOLS **********************/
     
    214142/********************** RELOCATION DIRECTIVES **********************/
    215143
    216 struct external_reloc {
     144struct external_reloc
     145{
    217146  char r_vaddr[4];
    218147  char r_symndx[4];
  • branches/GNU/src/binutils/include/coff/ti.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1818   along with this program; if not, write to the Free Software
    1919   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    20 
    2120#ifndef COFF_TI_H
    2221#define COFF_TI_H
    2322
     23/* Note "coff/external.h is not used because TI adds extra fields to the structures.  */
     24
    2425/********************** FILE HEADER **********************/
    2526
    26 struct external_filehdr {
    27         char f_magic[2];        /* magic number                 */
    28         char f_nscns[2];        /* number of sections           */
    29         char f_timdat[4];       /* time & date stamp            */
    30         char f_symptr[4];       /* file pointer to symtab       */
    31         char f_nsyms[4];        /* number of symtab entries     */
    32         char f_opthdr[2];       /* sizeof(optional hdr)         */
    33         char f_flags[2];        /* flags                        */
    34         char f_target_id[2];    /* magic no. (TI COFF-specific) */
    35 };
     27struct external_filehdr
     28  {
     29    char f_magic[2];    /* magic number                 */
     30    char f_nscns[2];    /* number of sections           */
     31    char f_timdat[4];   /* time & date stamp            */
     32    char f_symptr[4];   /* file pointer to symtab       */
     33    char f_nsyms[4];    /* number of symtab entries     */
     34    char f_opthdr[2];   /* sizeof(optional hdr)         */
     35    char f_flags[2];    /* flags                        */
     36    char f_target_id[2];    /* magic no. (TI COFF-specific) */
     37  };
    3638
    3739/* COFF0 has magic number in f_magic, and omits f_target_id from the file
     
    5456#ifndef TICOFF_TARGET_ARCH
    5557#error "TICOFF_TARGET_ARCH needs to be defined for your CPU"
     58#endif
     59
     60#ifndef TICOFF_TARGET_MACHINE_GET
     61#define TICOFF_TARGET_MACHINE_GET(FLAGS) 0
     62#endif
     63
     64#ifndef TICOFF_TARGET_MACHINE_SET
     65#define TICOFF_TARGET_MACHINE_SET(FLAGSP, MACHINE)
    5666#endif
    5767
     
    90100/* we need to read/write an extra field in the coff file header */
    91101#ifndef COFF_ADJUST_FILEHDR_IN_POST
    92 #define COFF_ADJUST_FILEHDR_IN_POST(abfd,src,dst) \
    93 do { ((struct internal_filehdr *)(dst))->f_target_id = \
    94 bfd_h_get_16(abfd, (bfd_byte *)(((FILHDR *)(src))->f_target_id)); \
    95 } while(0)
     102#define COFF_ADJUST_FILEHDR_IN_POST(abfd, src, dst) \
     103  do                                                                    \
     104    {                                                                   \
     105      ((struct internal_filehdr *)(dst))->f_target_id =                 \
     106        H_GET_16 (abfd, ((FILHDR *)(src))->f_target_id);                \
     107    }                                                                   \
     108  while (0)
    96109#endif
    97110
    98111#ifndef COFF_ADJUST_FILEHDR_OUT_POST
    99 #define COFF_ADJUST_FILEHDR_OUT_POST(abfd,src,dst) \
    100 do { bfd_h_put_16(abfd, ((struct internal_filehdr *)(src))->f_target_id, \
    101              (bfd_byte *)(((FILHDR *)(dst))->f_target_id)); \
    102 } while(0)
     112#define COFF_ADJUST_FILEHDR_OUT_POST(abfd, src, dst) \
     113  do                                                                    \
     114    {                                                                   \
     115      H_PUT_16 (abfd, ((struct internal_filehdr *)(src))->f_target_id,  \
     116               ((FILHDR *)(dst))->f_target_id);                         \
     117    }                                                                   \
     118  while (0)
    103119#endif
    104120
     
    111127#define F_EXEC          (0x0002)
    112128#define F_LNNO          (0x0004)
     129#define F_VERS          (0x0010) /* TMS320C4x code */
    113130/* F_LSYMS needs to be redefined in your source file */
    114131#define F_LSYMS_TICOFF  (0x0010) /* normal COFF is 0x8 */
     
    199216   accordingly
    200217 */
    201 #define GET_SCNHDR_NRELOC(ABFD,PTR) \
    202 (COFF2_P(ABFD) ? bfd_h_get_32 (ABFD,PTR) : bfd_h_get_16 (ABFD, PTR))
    203 #define PUT_SCNHDR_NRELOC(ABFD,VAL,PTR) \
    204 (COFF2_P(ABFD) ? bfd_h_put_32 (ABFD,VAL,PTR) : bfd_h_put_16 (ABFD,VAL,PTR))
    205 #define GET_SCNHDR_NLNNO(ABFD,PTR) \
    206 (COFF2_P(ABFD) ? bfd_h_get_32 (ABFD,PTR) : bfd_h_get_16 (ABFD, (PTR)-2))
    207 #define PUT_SCNHDR_NLNNO(ABFD,VAL,PTR) \
    208 (COFF2_P(ABFD) ? bfd_h_put_32 (ABFD,VAL,PTR) : bfd_h_put_16 (ABFD,VAL,(PTR)-2))
    209 #define GET_SCNHDR_FLAGS(ABFD,PTR) \
    210 (COFF2_P(ABFD) ? bfd_h_get_32 (ABFD,PTR) : bfd_h_get_16 (ABFD, (PTR)-4))
    211 #define PUT_SCNHDR_FLAGS(ABFD,VAL,PTR) \
    212 (COFF2_P(ABFD) ? bfd_h_put_32 (ABFD,VAL,PTR) : bfd_h_put_16 (ABFD,VAL,(PTR)-4))
    213 #define GET_SCNHDR_PAGE(ABFD,PTR) \
    214 (COFF2_P(ABFD) ? bfd_h_get_16 (ABFD,PTR) : bfd_h_get_8 (ABFD, (PTR)-7))
     218#define GET_SCNHDR_NRELOC(ABFD, PTR) \
     219  (COFF2_P (ABFD) ? H_GET_32 (ABFD, PTR) : H_GET_16 (ABFD, PTR))
     220#define PUT_SCNHDR_NRELOC(ABFD, VAL, PTR) \
     221  (COFF2_P (ABFD) ? H_PUT_32 (ABFD, VAL, PTR) : H_PUT_16 (ABFD, VAL, PTR))
     222#define GET_SCNHDR_NLNNO(ABFD, PTR) \
     223  (COFF2_P (ABFD) ? H_GET_32 (ABFD, PTR) : H_GET_16 (ABFD, (PTR) -2))
     224#define PUT_SCNHDR_NLNNO(ABFD, VAL, PTR) \
     225  (COFF2_P (ABFD) ? H_PUT_32 (ABFD, VAL, PTR) : H_PUT_16 (ABFD, VAL, (PTR) -2))
     226#define GET_SCNHDR_FLAGS(ABFD, PTR) \
     227  (COFF2_P (ABFD) ? H_GET_32 (ABFD, PTR) : H_GET_16 (ABFD, (PTR) -4))
     228#define PUT_SCNHDR_FLAGS(ABFD, VAL, PTR) \
     229  (COFF2_P (ABFD) ? H_PUT_32 (ABFD, VAL, PTR) : H_PUT_16 (ABFD, VAL, (PTR) -4))
     230#define GET_SCNHDR_PAGE(ABFD, PTR) \
     231  (COFF2_P (ABFD) ? H_GET_16 (ABFD, PTR) : (unsigned) H_GET_8 (ABFD, (PTR) -7))
    215232/* on output, make sure that the "reserved" field is zero */
    216 #define PUT_SCNHDR_PAGE(ABFD,VAL,PTR) \
    217 (COFF2_P(ABFD) ? bfd_h_put_16 (ABFD,VAL,PTR) : \
    218 bfd_h_put_8 (ABFD,VAL,(PTR)-7), bfd_h_put_8 (ABFD, 0, (PTR)-8))
     233#define PUT_SCNHDR_PAGE(ABFD, VAL, PTR) \
     234  (COFF2_P (ABFD) \
     235   ? H_PUT_16 (ABFD, VAL, PTR) \
     236   : H_PUT_8 (ABFD, VAL, (PTR) -7), H_PUT_8 (ABFD, 0, (PTR) -8))
    219237
    220238/* TI COFF stores section size as number of bytes (address units, not octets),
    221239   so adjust to be number of octets, which is what BFD expects */
    222 #define GET_SCNHDR_SIZE(ABFD,SZP) \
    223 (bfd_h_get_32(ABFD,SZP)*bfd_octets_per_byte(ABFD))
    224 #define PUT_SCNHDR_SIZE(ABFD,SZ,SZP) \
    225 bfd_h_put_32(ABFD,(SZ)/bfd_octets_per_byte(ABFD),SZP)
    226 
    227 #define COFF_ADJUST_SCNHDR_IN_POST(ABFD,EXT,INT) \
    228 do { ((struct internal_scnhdr *)(INT))->s_page = \
    229 GET_SCNHDR_PAGE(ABFD,(bfd_byte *)((SCNHDR *)(EXT))->s_page); \
    230 } while(0)
     240#define GET_SCNHDR_SIZE(ABFD, SZP) \
     241  (H_GET_32 (ABFD, SZP) * bfd_octets_per_byte (ABFD))
     242#define PUT_SCNHDR_SIZE(ABFD, SZ, SZP) \
     243  H_PUT_32 (ABFD, (SZ) / bfd_octets_per_byte (ABFD), SZP)
     244
     245#define COFF_ADJUST_SCNHDR_IN_POST(ABFD, EXT, INT) \
     246  do                                                                    \
     247    {                                                                   \
     248      ((struct internal_scnhdr *)(INT))->s_page =                       \
     249        GET_SCNHDR_PAGE (ABFD, ((SCNHDR *)(EXT))->s_page);              \
     250    }                                                                   \
     251   while (0)
    231252
    232253/* The line number and reloc overflow checking in coff_swap_scnhdr_out in
     
    235256   fields.
    236257 */
    237 #define COFF_ADJUST_SCNHDR_OUT_POST(ABFD,INT,EXT) \
    238 do { \
    239 PUT_SCNHDR_NLNNO(ABFD,((struct internal_scnhdr *)(INT))->s_nlnno,\
    240                 (bfd_byte *)((SCNHDR *)(EXT))->s_nlnno); \
    241 PUT_SCNHDR_NRELOC(ABFD,((struct internal_scnhdr *)(INT))->s_nreloc,\
    242                 (bfd_byte *)((SCNHDR *)(EXT))->s_nreloc); \
    243 PUT_SCNHDR_FLAGS(ABFD,((struct internal_scnhdr *)(INT))->s_flags, \
    244                 (bfd_byte *)((SCNHDR *)(EXT))->s_flags); \
    245 PUT_SCNHDR_PAGE(ABFD,((struct internal_scnhdr *)(INT))->s_page, \
    246                 (bfd_byte *)((SCNHDR *)(EXT))->s_page); \
    247 } while(0)
    248 
    249 /* Page macros
    250 
    251    The first GDB port requires flags in its remote memory access commands to
    252    distinguish between data/prog space.  Hopefully we can make this go away
    253    eventually.  Stuff the page in the upper bits of a 32-bit address, since
    254    the c5x family only uses 16 or 23 bits.
    255 
    256    c2x, c5x and most c54x devices have 16-bit addresses, but the c548 has
    257    23-bit program addresses.  Make sure the page flags don't interfere.
    258    These flags are used by GDB to identify the destination page for
    259    addresses.
    260 */
    261 
    262 /* recognized load pages */
    263 #define PG_PROG         0x0         /* PROG page */
    264 #define PG_DATA         0x1         /* DATA page */
    265 
    266 #define ADDR_MASK       0x00FFFFFF
    267 #define PG_TO_FLAG(p)   (((unsigned long)(p) & 0xFF) << 24)
    268 #define FLAG_TO_PG(f)   (((f) >> 24) & 0xFF)
     258#define COFF_ADJUST_SCNHDR_OUT_POST(ABFD, INT, EXT) \
     259  do                                                                       \
     260    {                                                                      \
     261      PUT_SCNHDR_NLNNO (ABFD, ((struct internal_scnhdr *)(INT))->s_nlnno,  \
     262                        ((SCNHDR *)(EXT))->s_nlnno);                       \
     263      PUT_SCNHDR_NRELOC (ABFD, ((struct internal_scnhdr *)(INT))->s_nreloc,\
     264                         ((SCNHDR *)(EXT))->s_nreloc);                     \
     265      PUT_SCNHDR_FLAGS (ABFD, ((struct internal_scnhdr *)(INT))->s_flags,  \
     266                        ((SCNHDR *)(EXT))->s_flags);                       \
     267      PUT_SCNHDR_PAGE (ABFD, ((struct internal_scnhdr *)(INT))->s_page,    \
     268                       ((SCNHDR *)(EXT))->s_page);                         \
     269    }                                                                      \
     270   while (0)
    269271
    270272/*
     
    385387
    386388/* section lengths are in target bytes (not host bytes) */
    387 #define GET_SCN_SCNLEN(ABFD,EXT) \
    388 (bfd_h_get_32(ABFD,(bfd_byte *)(EXT)->x_scn.x_scnlen)*bfd_octets_per_byte(ABFD))
    389 #define PUT_SCN_SCNLEN(ABFD,INT,EXT) \
    390 bfd_h_put_32(ABFD,(INT)/bfd_octets_per_byte(ABFD),\
    391              (bfd_byte *)(EXT)->x_scn.x_scnlen)
     389#define GET_SCN_SCNLEN(ABFD, EXT) \
     390  (H_GET_32 (ABFD, (EXT)->x_scn.x_scnlen) * bfd_octets_per_byte (ABFD))
     391#define PUT_SCN_SCNLEN(ABFD, INT, EXT) \
     392  H_PUT_32 (ABFD, (INT) / bfd_octets_per_byte (ABFD), (EXT)->x_scn.x_scnlen)
    392393
    393394/* lnsz size is in bits in COFF file, in bytes in BFD */
    394395#define GET_LNSZ_SIZE(abfd, ext) \
    395 (bfd_h_get_16(abfd, (bfd_byte *)ext->x_sym.x_misc.x_lnsz.x_size) / \
    396  (class != C_FIELD ? 8 : 1))
     396 (H_GET_16 (abfd, ext->x_sym.x_misc.x_lnsz.x_size) / (class != C_FIELD ? 8 : 1))
    397397
    398398#define PUT_LNSZ_SIZE(abfd, in, ext) \
    399  bfd_h_put_16(abfd, ((class != C_FIELD) ? (in)*8 : (in)), \
    400               (bfd_byte*) ext->x_sym.x_misc.x_lnsz.x_size)
     399  H_PUT_16 (abfd, ((class != C_FIELD) ? (in) * 8 : (in)), \
     400          ext->x_sym.x_misc.x_lnsz.x_size)
    401401 
    402 /* TI COFF stores offsets for MOS and MOU in bits; BFD expects bytes */
    403 #define COFF_ADJUST_SYM_IN_POST(ABFD,EXT,INT) \
    404 do { struct internal_syment *dst = (struct internal_syment *)(INT); \
    405 if (dst->n_sclass == C_MOS || dst->n_sclass == C_MOU) dst->n_value /= 8; \
    406 } while (0)
    407 
    408 #define COFF_ADJUST_SYM_OUT_POST(ABFD,INT,EXT) \
    409 do { struct internal_syment *src = (struct internal_syment *)(INT); \
    410 SYMENT *dst = (SYMENT *)(EXT); \
    411 if(src->n_sclass == C_MOU || src->n_sclass == C_MOS) \
    412 bfd_h_put_32(abfd,src->n_value * 8,(bfd_byte *)dst->e_value); \
    413 } while (0)
     402/* TI COFF stores offsets for MOS and MOU in bits; BFD expects bytes
     403   Also put the load page flag of the section into the symbol value if it's an
     404   address.  */
     405#ifndef NEEDS_PAGE
     406#define NEEDS_PAGE(X) 0
     407#define PAGE_MASK 0
     408#endif
     409#define COFF_ADJUST_SYM_IN_POST(ABFD, EXT, INT) \
     410  do                                                                    \
     411    {                                                                   \
     412      struct internal_syment *dst = (struct internal_syment *)(INT);    \
     413      if (dst->n_sclass == C_MOS || dst->n_sclass == C_MOU)             \
     414        dst->n_value /= 8;                                              \
     415      else if (NEEDS_PAGE (dst->n_sclass)) {                            \
     416        asection *scn = coff_section_from_bfd_index (abfd, dst->n_scnum); \
     417        dst->n_value |= (scn->lma & PAGE_MASK);                         \
     418      }                                                                 \
     419    }                                                                   \
     420   while (0)
     421
     422#define COFF_ADJUST_SYM_OUT_POST(ABFD, INT, EXT) \
     423  do                                                                    \
     424    {                                                                   \
     425       struct internal_syment *src = (struct internal_syment *)(INT);   \
     426       SYMENT *dst = (SYMENT *)(EXT);                                   \
     427       if (src->n_sclass == C_MOU || src->n_sclass == C_MOS)            \
     428         H_PUT_32 (abfd, src->n_value * 8, dst->e_value);               \
     429       else if (NEEDS_PAGE (src->n_sclass)) {                           \
     430         H_PUT_32 (abfd, src->n_value &= ~PAGE_MASK, dst->e_value);     \
     431       }                                                                \
     432    }                                                                   \
     433   while (0)
    414434
    415435/* Detect section-relative absolute symbols so they get flagged with a sym
    416436   index of -1.
    417437*/
    418 #define SECTION_RELATIVE_ABSOLUTE_SYMBOL_P(RELOC,SECT) \
    419 ((*(RELOC)->sym_ptr_ptr)->section->output_section == (SECT) \
    420  && (RELOC)->howto->name[0] == 'A')
     438#define SECTION_RELATIVE_ABSOLUTE_SYMBOL_P(RELOC, SECT) \
     439  ((*(RELOC)->sym_ptr_ptr)->section->output_section == (SECT) \
     440   && (RELOC)->howto->name[0] == 'A')
    421441
    422442/********************** RELOCATION DIRECTIVES **********************/
    423443
    424 struct external_reloc_v0 {
     444struct external_reloc_v0
     445{
    425446  char r_vaddr[4];
    426447  char r_symndx[2];
     
    429450};
    430451
    431 struct external_reloc {
     452struct external_reloc
     453{
    432454  char r_vaddr[4];
    433455  char r_symndx[4];
  • branches/GNU/src/binutils/include/coff/tic30.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1717   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    1818
    19 /********************** FILE HEADER **********************/
    20 
    21 struct external_filehdr {
    22         char f_magic[2];        /* magic number                 */
    23         char f_nscns[2];        /* number of sections           */
    24         char f_timdat[4];       /* time & date stamp            */
    25         char f_symptr[4];       /* file pointer to symtab       */
    26         char f_nsyms[4];        /* number of symtab entries     */
    27         char f_opthdr[2];       /* sizeof(optional hdr)         */
    28         char f_flags[2];        /* flags                        */
    29 };
    30 
     19#define L_LNNO_SIZE 4
     20#include "coff/external.h"
    3121
    3222#define TIC30MAGIC      0xC000
    3323
    34 #define TIC30BADMAG(x) (((x).f_magic!=TIC30MAGIC))
    35 
    36 #define FILHDR  struct external_filehdr
    37 #define FILHSZ  20
    38 
    39 
    40 /********************** AOUT "OPTIONAL HEADER" **********************/
    41 
    42 
    43 typedef struct
    44 {
    45   char  magic[2];               /* type of file                         */
    46   char  vstamp[2];              /* version stamp                        */
    47   char  tsize[4];               /* text size in bytes, padded to FW bdry*/
    48   char  dsize[4];               /* initialized data "  "                */
    49   char  bsize[4];               /* uninitialized data "   "             */
    50   char  entry[4];               /* entry pt.                            */
    51   char  text_start[4];          /* base of text used for this file */
    52   char  data_start[4];          /* base of data used for this file */
    53 }
    54 AOUTHDR;
    55 
    56 
    57 #define AOUTHDRSZ 28
    58 #define AOUTSZ 28
    59 
    60 
    61 
    62 
    63 /********************** SECTION HEADER **********************/
    64 
    65 
    66 struct external_scnhdr {
    67         char            s_name[8];      /* section name                 */
    68         char            s_paddr[4];     /* physical address, aliased s_nlib */
    69         char            s_vaddr[4];     /* virtual address              */
    70         char            s_size[4];      /* section size                 */
    71         char            s_scnptr[4];    /* file ptr to raw data for section */
    72         char            s_relptr[4];    /* file ptr to relocation       */
    73         char            s_lnnoptr[4];   /* file ptr to line numbers     */
    74         char            s_nreloc[2];    /* number of relocation entries */
    75         char            s_nlnno[2];     /* number of line number entries*/
    76         char            s_flags[4];     /* flags                        */
    77 };
    78 
    79 /*
    80  * names of "special" sections
    81  */
    82 #define _TEXT   ".text"
    83 #define _DATA   ".data"
    84 #define _BSS    ".bss"
    85 
    86 
    87 #define SCNHDR  struct external_scnhdr
    88 #define SCNHSZ  40
    89 
    90 
    91 /********************** LINE NUMBERS **********************/
    92 
    93 /* 1 line number entry for every "breakpointable" source line in a section.
    94  * Line numbers are grouped on a per function basis; first entry in a function
    95  * grouping will have l_lnno = 0 and in place of physical address will be the
    96  * symbol table index of the function name.
    97  */
    98 struct external_lineno {
    99         union {
    100                 char l_symndx[4];       /* function name symbol index, iff l_lnno == 0*/
    101                 char l_paddr[4];        /* (physical) address of line number    */
    102         } l_addr;
    103         char l_lnno[4]; /* line number          */
    104 };
    105 
    106 #define GET_LINENO_LNNO(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) (ext->l_lnno));
    107 #define PUT_LINENO_LNNO(abfd,val, ext) bfd_h_put_32(abfd,val,  (bfd_byte *) (ext->l_lnno));
    108 
    109 #define LINENO  struct external_lineno
    110 #define LINESZ  8
    111 
    112 
    113 /********************** SYMBOLS **********************/
    114 
    115 #define E_SYMNMLEN      8       /* # characters in a symbol name        */
    116 #define E_FILNMLEN      14      /* # characters in a file name          */
    117 #define E_DIMNUM        4       /* # array dimensions in auxiliary entry */
    118 
    119 struct external_syment
    120 {
    121   union {
    122     char e_name[E_SYMNMLEN];
    123     struct {
    124       char e_zeroes[4];
    125       char e_offset[4];
    126     } e;
    127   } e;
    128   char e_value[4];
    129   char e_scnum[2];
    130   char e_type[2];
    131   char e_sclass[1];
    132   char e_numaux[1];
    133 };
    134 
    135 
    136 
    137 #define N_BTMASK        (017)
    138 #define N_TMASK         (060)
    139 #define N_BTSHFT        (4)
    140 #define N_TSHIFT        (2)
    141  
    142 
    143 union external_auxent {
    144   struct {
    145         char x_tagndx[4];       /* str, un, or enum tag indx */
    146         union {
    147           struct {
    148                 char  x_lnno[2]; /* declaration line number */
    149                 char  x_size[2]; /* str/union/array size */
    150           } x_lnsz;
    151           char x_fsize[4];      /* size of function */
    152         } x_misc;
    153         union {
    154           struct {              /* if ISFCN, tag, or .bb */
    155                 char x_lnnoptr[4];      /* ptr to fcn line # */
    156                 char x_endndx[4];       /* entry ndx past block end */
    157           } x_fcn;
    158           struct {              /* if ISARY, up to 4 dimen. */
    159                 char x_dimen[E_DIMNUM][2];
    160           } x_ary;
    161         } x_fcnary;
    162         char x_tvndx[2];                /* tv index */
    163   } x_sym;
    164  
    165   union {
    166         char x_fname[E_FILNMLEN];
    167         struct {
    168           char x_zeroes[4];
    169           char x_offset[4];
    170         } x_n;
    171   } x_file;
    172  
    173   struct {
    174         char x_scnlen[4];                       /* section length */
    175         char x_nreloc[2];       /* # relocation entries */
    176         char x_nlinno[2];       /* # line numbers */
    177   } x_scn;
    178  
    179   struct {
    180         char x_tvfill[4];       /* tv fill value */
    181         char x_tvlen[2];        /* length of .tv */
    182         char x_tvran[2][2];     /* tv range */
    183   } x_tv;               /* info about .tv section (in auxent of symbol .tv)) */
    184  
    185 
    186 };
    187 
    188 #define SYMENT  struct external_syment
    189 #define SYMESZ  18     
    190 #define AUXENT  union external_auxent
    191 #define AUXESZ  18
    192 
    193 
     24#define TIC30BADMAG(x) (((x).f_magic != TIC30MAGIC))
    19425
    19526/********************** RELOCATION DIRECTIVES **********************/
     
    19930   offset - eg with segments */
    20031
    201 struct external_reloc {
     32struct external_reloc
     33{
    20234  char r_vaddr[4];
    20335  char r_symndx[4];
     
    20638  char r_stuff[2];
    20739};
    208 
    20940
    21041#define RELOC struct external_reloc
  • branches/GNU/src/binutils/include/coff/tic54x.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1919
    2020#ifndef COFF_TIC54X_H
     21#define COFF_TIC54X_H
    2122
    22 #define COFF_TIC54X_H
    2323#define TIC54X_TARGET_ID 0x98
    2424#define TIC54XALGMAGIC  0x009B  /* c54x algebraic assembler output */
     
    3030#define TICOFF_DEFAULT_MAGIC TICOFF1MAGIC /* we use COFF1 for compatibility */
    3131
     32/* Page macros
     33
     34   The first GDB port requires flags in its remote memory access commands to
     35   distinguish between data/prog space.  Hopefully we can make this go away
     36   eventually.  Stuff the page in the upper bits of a 32-bit address, since
     37   the c5x family only uses 16 or 23 bits.
     38
     39   c2x, c5x and most c54x devices have 16-bit addresses, but the c548 has
     40   23-bit program addresses.  Make sure the page flags don't interfere.
     41   These flags are used by GDB to identify the destination page for
     42   addresses.
     43*/
     44
     45/* Recognized load pages (by common convention).  */
     46#define PG_PROG         0x0         /* PROG page */
     47#define PG_DATA         0x1         /* DATA page */
     48#define PG_IO           0x2         /* I/O page */
     49
     50/** Indicate whether the given storage class requires a page flag.  */
     51#define NEEDS_PAGE(X) ((X)==C_EXT)
     52#define PAGE_MASK       0xFF000000
     53#define ADDR_MASK       0x00FFFFFF
     54#define PG_TO_FLAG(p)   (((unsigned long)(p) & 0xFF) << 24)
     55#define FLAG_TO_PG(f)   (((f) >> 24) & 0xFF)
     56
    3257#include "coff/ti.h"
    3358
  • branches/GNU/src/binutils/include/coff/tic80.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1717   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    1818
     19#define DO_NOT_DEFINE_FILHDR
     20#define DO_NOT_DEFINE_SCNHDR
     21#define L_LNNO_SIZE 2
     22#include "coff/external.h"
     23
    1924/********************** FILE HEADER **********************/
    2025
    21 struct external_filehdr {
    22         char f_magic[2];        /* magic number                 */
    23         char f_nscns[2];        /* number of sections           */
    24         char f_timdat[4];       /* time & date stamp            */
    25         char f_symptr[4];       /* file pointer to symtab       */
    26         char f_nsyms[4];        /* number of symtab entries     */
    27         char f_opthdr[2];       /* sizeof(optional hdr)         */
    28         char f_flags[2];        /* flags                        */
    29         char f_target_id[2];    /* target id (TIc80 specific)   */
     26struct external_filehdr
     27  {
     28    char f_magic[2];    /* magic number                 */
     29    char f_nscns[2];    /* number of sections           */
     30    char f_timdat[4];   /* time & date stamp            */
     31    char f_symptr[4];   /* file pointer to symtab       */
     32    char f_nsyms[4];    /* number of symtab entries     */
     33    char f_opthdr[2];   /* sizeof(optional hdr)         */
     34    char f_flags[2];    /* flags                        */
     35    char f_target_id[2];/* target id (TIc80 specific)   */
    3036};
    3137
     
    3844#define FILHSZ  22
    3945
    40 
    41 /********************** AOUT "OPTIONAL HEADER" **********************/
    42 
    43 
    44 typedef struct
    45 {
    46   char  magic[2];               /* type of file                         */
    47   char  vstamp[2];              /* version stamp                        */
    48   char  tsize[4];               /* text size in bytes, padded to FW bdry*/
    49   char  dsize[4];               /* initialized data "  "                */
    50   char  bsize[4];               /* uninitialized data "   "             */
    51   char  entry[4];               /* entry pt.                            */
    52   char  text_start[4];          /* base of text used for this file */
    53   char  data_start[4];          /* base of data used for this file */
    54 }
    55 AOUTHDR;
    56 
    5746#define TIC80_AOUTHDR_MAGIC     0x108   /* Goes in the optional file header magic number field */
    58 
    59 #define AOUTHDRSZ 28
    60 #define AOUTSZ 28
    61 
    62 
    63 
    6447
    6548/********************** SECTION HEADER **********************/
    6649
    67 
    68 struct external_scnhdr {
     50struct external_scnhdr
     51{
    6952        char            s_name[8];      /* section name                 */
    7053        char            s_paddr[4];     /* physical address, aliased s_nlib */
     
    8164};
    8265
    83 /*
    84  * names of "special" sections
    85  */
     66/* Names of "special" sections.  */
    8667#define _TEXT   ".text"
    8768#define _DATA   ".data"
     
    9374#define _SYSMEM ".sysmem"
    9475
    95 
    9676#define SCNHDR  struct external_scnhdr
    9777#define SCNHSZ  40
    98 
    99 
    100 /********************** LINE NUMBERS **********************/
    101 
    102 /* 1 line number entry for every "breakpointable" source line in a section.
    103  * Line numbers are grouped on a per function basis; first entry in a function
    104  * grouping will have l_lnno = 0 and in place of physical address will be the
    105  * symbol table index of the function name.
    106  */
    107 struct external_lineno {
    108         union {
    109                 char l_symndx[4];       /* function name symbol index, iff l_lnno == 0*/
    110                 char l_paddr[4];        /* (physical) address of line number    */
    111         } l_addr;
    112         char l_lnno[2];                 /* line number  */
    113 };
    114 
    115 #define GET_LINENO_LNNO(abfd, ext) bfd_h_get_16(abfd, (bfd_byte *) (ext->l_lnno));
    116 #define PUT_LINENO_LNNO(abfd,val, ext) bfd_h_put_16(abfd,val,  (bfd_byte *) (ext->l_lnno));
    117 
    118 #define LINENO  struct external_lineno
    119 #define LINESZ  6
    120 
    121 
    122 /********************** SYMBOLS **********************/
    123 
    124 #define E_SYMNMLEN      8       /* # characters in a symbol name        */
    125 #define E_FILNMLEN      14      /* # characters in a file name          */
    126 #define E_DIMNUM        4       /* # array dimensions in auxiliary entry */
    127 
    128 struct external_syment
    129 {
    130   union {
    131     char e_name[E_SYMNMLEN];
    132     struct {
    133       char e_zeroes[4];
    134       char e_offset[4];
    135     } e;
    136   } e;
    137   char e_value[4];
    138   char e_scnum[2];
    139   char e_type[2];
    140   char e_sclass[1];
    141   char e_numaux[1];
    142 };
    143 
    144 
    145 
    146 #define N_BTMASK        (017)
    147 #define N_TMASK         (060)
    148 #define N_BTSHFT        (4)
    149 #define N_TSHIFT        (2)
    15078 
    151 /* FIXME - need to correlate with TIc80 Code Generation Tools User's Guide, CG:A-25 */
    152 union external_auxent {
    153         struct {
    154                 char x_tagndx[4];       /* str, un, or enum tag indx */
    155                 union {
    156                         struct {
    157                             char  x_lnno[2]; /* declaration line number */
    158                             char  x_size[2]; /* str/union/array size */
    159                         } x_lnsz;
    160                         char x_fsize[4];        /* size of function */
    161                 } x_misc;
    162                 union {
    163                         struct {                /* if ISFCN, tag, or .bb */
    164                             char x_lnnoptr[4];  /* ptr to fcn line # */
    165                             char x_endndx[4];   /* entry ndx past block end */
    166                         } x_fcn;
    167                         struct {                /* if ISARY, up to 4 dimen. */
    168                             char x_dimen[E_DIMNUM][2];
    169                         } x_ary;
    170                 } x_fcnary;
    171                 char x_tvndx[2];                /* tv index */
    172         } x_sym;
    173 
    174         union {
    175                 char x_fname[E_FILNMLEN];
    176                 struct {
    177                         char x_zeroes[4];
    178                         char x_offset[4];
    179                 } x_n;
    180         } x_file;
    181 
    182         struct {
    183                 char x_scnlen[4];                       /* section length */
    184                 char x_nreloc[2];       /* # relocation entries */
    185                 char x_nlinno[2];       /* # line numbers */
    186         } x_scn;
    187 
    188         struct {
    189                 char x_tvfill[4];       /* tv fill value */
    190                 char x_tvlen[2];        /* length of .tv */
    191                 char x_tvran[2][2];     /* tv range */
    192         } x_tv;         /* info about .tv section (in auxent of symbol .tv)) */
    193 
    194 
    195 };
    196 
    197 #define SYMENT  struct external_syment
    198 #define SYMESZ  18     
    199 #define AUXENT  union external_auxent
    200 #define AUXESZ  18
    201 
    202 
     79/* FIXME - need to correlate external_auxent with
     80   TIc80 Code Generation Tools User's Guide, CG:A-25 */
    20381
    20482/********************** RELOCATION DIRECTIVES **********************/
     
    20684/* The external reloc has an offset field, because some of the reloc
    20785   types on the h8 don't have room in the instruction for the entire
    208    offset - eg the strange jump and high page addressing modes */
     86   offset - eg the strange jump and high page addressing modes. */
    20987
    210 struct external_reloc {
     88struct external_reloc
     89{
    21190  char r_vaddr[4];
    21291  char r_symndx[4];
     
    21493  char r_type[2];
    21594};
    216 
    21795
    21896#define RELOC struct external_reloc
  • branches/GNU/src/binutils/include/coff/w65.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1717   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    1818
    19 /********************** FILE HEADER **********************/
    20 
    21 struct external_filehdr {
    22         char f_magic[2];        /* magic number                 */
    23         char f_nscns[2];        /* number of sections           */
    24         char f_timdat[4];       /* time & date stamp            */
    25         char f_symptr[4];       /* file pointer to symtab       */
    26         char f_nsyms[4];        /* number of symtab entries     */
    27         char f_opthdr[2];       /* sizeof(optional hdr)         */
    28         char f_flags[2];        /* flags                        */
    29 };
    30 
    31 
     19#define L_LNNO_SIZE 4
     20#include "coff/external.h"
    3221
    3322#define W65MAGIC        0x6500
    3423
    35 
    36 #define W65BADMAG(x) (((x).f_magic!=W65MAGIC))
    37 
    38 #define FILHDR  struct external_filehdr
    39 #define FILHSZ  20
    40 
    41 
    42 /********************** AOUT "OPTIONAL HEADER" **********************/
    43 
    44 
    45 typedef struct
    46 {
    47   char  magic[2];               /* type of file                         */
    48   char  vstamp[2];              /* version stamp                        */
    49   char  tsize[4];               /* text size in bytes, padded to FW bdry*/
    50   char  dsize[4];               /* initialized data "  "                */
    51   char  bsize[4];               /* uninitialized data "   "             */
    52   char  entry[4];               /* entry pt.                            */
    53   char  text_start[4];          /* base of text used for this file */
    54   char  data_start[4];          /* base of data used for this file */
    55 }
    56 AOUTHDR;
    57 
    58 
    59 #define AOUTHDRSZ 28
    60 #define AOUTSZ 28
    61 
    62 
    63 
    64 
    65 /********************** SECTION HEADER **********************/
    66 
    67 
    68 struct external_scnhdr {
    69         char            s_name[8];      /* section name                 */
    70         char            s_paddr[4];     /* physical address, aliased s_nlib */
    71         char            s_vaddr[4];     /* virtual address              */
    72         char            s_size[4];      /* section size                 */
    73         char            s_scnptr[4];    /* file ptr to raw data for section */
    74         char            s_relptr[4];    /* file ptr to relocation       */
    75         char            s_lnnoptr[4];   /* file ptr to line numbers     */
    76         char            s_nreloc[2];    /* number of relocation entries */
    77         char            s_nlnno[2];     /* number of line number entries*/
    78         char            s_flags[4];     /* flags                        */
    79 };
    80 
    81 /*
    82  * names of "special" sections
    83  */
    84 #define _TEXT   ".text"
    85 #define _DATA   ".data"
    86 #define _BSS    ".bss"
    87 
    88 
    89 #define SCNHDR  struct external_scnhdr
    90 #define SCNHSZ  40
    91 
    92 
    93 /********************** LINE NUMBERS **********************/
    94 
    95 /* 1 line number entry for every "breakpointable" source line in a section.
    96  * Line numbers are grouped on a per function basis; first entry in a function
    97  * grouping will have l_lnno = 0 and in place of physical address will be the
    98  * symbol table index of the function name.
    99  */
    100 struct external_lineno {
    101         union {
    102                 char l_symndx[4];       /* function name symbol index, iff l_lnno == 0*/
    103                 char l_paddr[4];        /* (physical) address of line number    */
    104         } l_addr;
    105         char l_lnno[4]; /* line number          */
    106 };
    107 
    108 #define GET_LINENO_LNNO(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) (ext->l_lnno));
    109 #define PUT_LINENO_LNNO(abfd,val, ext) bfd_h_put_32(abfd,val,  (bfd_byte *) (ext->l_lnno));
    110 
    111 #define LINENO  struct external_lineno
    112 #define LINESZ  8
    113 
    114 
    115 /********************** SYMBOLS **********************/
    116 
    117 #define E_SYMNMLEN      8       /* # characters in a symbol name        */
    118 #define E_FILNMLEN      14      /* # characters in a file name          */
    119 #define E_DIMNUM        4       /* # array dimensions in auxiliary entry */
    120 
    121 struct external_syment
    122 {
    123   union {
    124     char e_name[E_SYMNMLEN];
    125     struct {
    126       char e_zeroes[4];
    127       char e_offset[4];
    128     } e;
    129   } e;
    130   char e_value[4];
    131   char e_scnum[2];
    132   char e_type[2];
    133   char e_sclass[1];
    134   char e_numaux[1];
    135 };
    136 
    137 
    138 
    139 #define N_BTMASK        (017)
    140 #define N_TMASK         (060)
    141 #define N_BTSHFT        (4)
    142 #define N_TSHIFT        (2)
    143  
    144 
    145 union external_auxent {
    146         struct {
    147                 char x_tagndx[4];       /* str, un, or enum tag indx */
    148                 union {
    149                         struct {
    150                             char  x_lnno[2]; /* declaration line number */
    151                             char  x_size[2]; /* str/union/array size */
    152                         } x_lnsz;
    153                         char x_fsize[4];        /* size of function */
    154                 } x_misc;
    155                 union {
    156                         struct {                /* if ISFCN, tag, or .bb */
    157                             char x_lnnoptr[4];  /* ptr to fcn line # */
    158                             char x_endndx[4];   /* entry ndx past block end */
    159                         } x_fcn;
    160                         struct {                /* if ISARY, up to 4 dimen. */
    161                             char x_dimen[E_DIMNUM][2];
    162                         } x_ary;
    163                 } x_fcnary;
    164                 char x_tvndx[2];                /* tv index */
    165         } x_sym;
    166 
    167         union {
    168                 char x_fname[E_FILNMLEN];
    169                 struct {
    170                         char x_zeroes[4];
    171                         char x_offset[4];
    172                 } x_n;
    173         } x_file;
    174 
    175         struct {
    176                 char x_scnlen[4];                       /* section length */
    177                 char x_nreloc[2];       /* # relocation entries */
    178                 char x_nlinno[2];       /* # line numbers */
    179         } x_scn;
    180 
    181         struct {
    182                 char x_tvfill[4];       /* tv fill value */
    183                 char x_tvlen[2];        /* length of .tv */
    184                 char x_tvran[2][2];     /* tv range */
    185         } x_tv;         /* info about .tv section (in auxent of symbol .tv)) */
    186 
    187 
    188 };
    189 
    190 #define SYMENT  struct external_syment
    191 #define SYMESZ  18     
    192 #define AUXENT  union external_auxent
    193 #define AUXESZ  18
    194 
    195 
     24#define W65BADMAG(x) (((x).f_magic != W65MAGIC))
    19625
    19726/********************** RELOCATION DIRECTIVES **********************/
     
    20130   offset - eg the strange jump and high page addressing modes */
    20231
    203 struct external_reloc {
     32struct external_reloc
     33{
    20434  char r_vaddr[4];
    20535  char r_symndx[4];
     
    20939};
    21040
    211 
    21241#define RELOC struct external_reloc
    21342#define RELSZ 16
  • branches/GNU/src/binutils/include/coff/we32k.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1616   along with this program; if not, write to the Free Software
    1717   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    18 
    19 /********************** FILE HEADER **********************/
    20 
    21 struct external_filehdr {
    22         char f_magic[2];        /* magic number                 */
    23         char f_nscns[2];        /* number of sections           */
    24         char f_timdat[4];       /* time & date stamp            */
    25         char f_symptr[4];       /* file pointer to symtab       */
    26         char f_nsyms[4];        /* number of symtab entries     */
    27         char f_opthdr[2];       /* sizeof(optional hdr)         */
    28         char f_flags[2];        /* flags                        */
    29 };
    30 
     18#define L_LNNO_SIZE 2
     19#include "coff/external.h"
    3120
    3221/* Bits for f_flags:
    33  *      F_RELFLG        relocation info stripped from file
    34  *      F_EXEC          file is executable (no unresolved external references)
    35  *      F_LNNO          line numbers stripped from file
    36  *      F_LSYMS         local symbols stripped from file
    37  *      F_AR32WR        file has byte ordering of an AR32WR machine (e.g. vax)
    38  */
     22        F_RELFLG        relocation info stripped from file
     23        F_EXEC          file is executable (no unresolved external references)
     24        F_LNNO          line numbers stripped from file
     25        F_LSYMS         local symbols stripped from file
     26        F_AR32WR        file has byte ordering of an AR32WR machine (e.g. vax).  */
    3927
    4028#define F_RELFLG        (0x0001)
     
    4937#define MTVMAGIC        0x171   /* we32k with transfer vector */
    5038#define RBOMAGIC        0x172   /* reserved */
    51 #define WE32KBADMAG(x) (((x).f_magic != WE32KMAGIC) \
     39#define WE32KBADMAG(x) (   ((x).f_magic != WE32KMAGIC) \
    5240                        && ((x).f_magic != FBOMAGIC) \
    5341                        && ((x).f_magic != RBOMAGIC) \
    5442                        && ((x).f_magic != MTVMAGIC))
    5543
    56 #define FILHDR  struct external_filehdr
    57 #define FILHSZ  20
    58 
    59 
    60 /********************** AOUT "OPTIONAL HEADER" **********************/
    61 
    62 
    63 typedef struct
    64 {
    65   char  magic[2];               /* type of file                         */
    66   char  vstamp[2];              /* version stamp                        */
    67   char  tsize[4];               /* text size in bytes, padded to FW bdry*/
    68   char  dsize[4];               /* initialized data "  "                */
    69   char  bsize[4];               /* uninitialized data "   "             */
    70   char  entry[4];               /* entry pt.                            */
    71   char  text_start[4];          /* base of text used for this file */
    72   char  data_start[4];          /* base of data used for this file */
    73 }
    74 AOUTHDR;
    75 
    76 #define AOUTSZ 28
    77 #define AOUTHDRSZ 28
    78 
    79 /********************** SECTION HEADER **********************/
    80 
    81 
    82 struct external_scnhdr {
    83         char            s_name[8];      /* section name                 */
    84         char            s_paddr[4];     /* physical address, aliased s_nlib */
    85         char            s_vaddr[4];     /* virtual address              */
    86         char            s_size[4];      /* section size                 */
    87         char            s_scnptr[4];    /* file ptr to raw data for section */
    88         char            s_relptr[4];    /* file ptr to relocation       */
    89         char            s_lnnoptr[4];   /* file ptr to line numbers     */
    90         char            s_nreloc[2];    /* number of relocation entries */
    91         char            s_nlnno[2];     /* number of line number entries*/
    92         char            s_flags[4];     /* flags                        */
    93 };
    94 
    95 #define SCNHDR  struct external_scnhdr
    96 #define SCNHSZ  40
    97 
    98 /*
    99  * names of "special" sections
    100  */
    101 #define _TEXT   ".text"
    102 #define _DATA   ".data"
    103 #define _BSS    ".bss"
     44/* More names of "special" sections.  */
    10445#define _TV     ".tv"
    10546#define _INIT   ".init"
    10647#define _FINI   ".fini"
    10748
    108 /********************** LINE NUMBERS **********************/
    109 
    110 /* 1 line number entry for every "breakpointable" source line in a section.
    111  * Line numbers are grouped on a per function basis; first entry in a function
    112  * grouping will have l_lnno = 0 and in place of physical address will be the
    113  * symbol table index of the function name.
    114  */
    115 struct external_lineno {
    116         union {
    117                 char l_symndx[4];       /* function name symbol index, iff l_lnno == 0*/
    118                 char l_paddr[4];        /* (physical) address of line number    */
    119         } l_addr;
    120         char l_lnno[2]; /* line number          */
    121 };
    122 
    123 
    124 #define LINENO  struct external_lineno
    125 #define LINESZ  6
    126 
    127 
    128 /********************** SYMBOLS **********************/
    129 
    130 #define E_SYMNMLEN      8       /* # characters in a symbol name        */
    131 #define E_FILNMLEN      14      /* # characters in a file name          */
    132 #define E_DIMNUM        4       /* # array dimensions in auxiliary entry */
    133 
    134 struct external_syment
    135 {
    136   union {
    137     char e_name[E_SYMNMLEN];
    138     struct {
    139       char e_zeroes[4];
    140       char e_offset[4];
    141     } e;
    142   } e;
    143   char e_value[4];
    144   char e_scnum[2];
    145   char e_type[2];
    146   char e_sclass[1];
    147   char e_numaux[1];
    148 };
    149 
    150 #define N_BTMASK        (0xf)
    151 #define N_TMASK         (0x30)
    152 #define N_BTSHFT        (4)
    153 #define N_TSHIFT        (2)
    154  
    155 union external_auxent {
    156         struct {
    157                 char x_tagndx[4];       /* str, un, or enum tag indx */
    158                 union {
    159                         struct {
    160                             char  x_lnno[2]; /* declaration line number */
    161                             char  x_size[2]; /* str/union/array size */
    162                         } x_lnsz;
    163                         char x_fsize[4];        /* size of function */
    164                 } x_misc;
    165                 union {
    166                         struct {                /* if ISFCN, tag, or .bb */
    167                             char x_lnnoptr[4];  /* ptr to fcn line # */
    168                             char x_endndx[4];   /* entry ndx past block end */
    169                         } x_fcn;
    170                         struct {                /* if ISARY, up to 4 dimen. */
    171                             char x_dimen[E_DIMNUM][2];
    172                         } x_ary;
    173                 } x_fcnary;
    174                 char x_tvndx[2];                /* tv index */
    175         } x_sym;
    176 
    177         union {
    178                 char x_fname[E_FILNMLEN];
    179                 struct {
    180                         char x_zeroes[4];
    181                         char x_offset[4];
    182                 } x_n;
    183         } x_file;
    184 
    185         struct {
    186                 char x_scnlen[4];                       /* section length */
    187                 char x_nreloc[2];       /* # relocation entries */
    188                 char x_nlinno[2];       /* # line numbers */
    189         } x_scn;
    190 
    191         struct {
    192                 char x_tvfill[4];       /* tv fill value */
    193                 char x_tvlen[2];        /* length of .tv */
    194                 char x_tvran[2][2];     /* tv range */
    195         } x_tv;         /* info about .tv section (in auxent of symbol .tv)) */
    196 
    197 
    198 };
    199 
    200 #define SYMENT  struct external_syment
    201 #define SYMESZ  18     
    202 #define AUXENT  union external_auxent
    203 #define AUXESZ  18
    204 
    205 
    206 #       define _ETEXT   "etext"
    207 
    208 
    20949/********************** RELOCATION DIRECTIVES **********************/
    21050
    211 
    212 
    213 struct external_reloc {
     51struct external_reloc
     52{
    21453  char r_vaddr[4];
    21554  char r_symndx[4];
     
    21756};
    21857
    219 
    22058#define RELOC struct external_reloc
    22159#define RELSZ 10
  • branches/GNU/src/binutils/include/coff/z8k.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1717   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    1818
    19 /********************** FILE HEADER **********************/
    20 
    21 struct external_filehdr {
    22         char f_magic[2];        /* magic number                 */
    23         char f_nscns[2];        /* number of sections           */
    24         char f_timdat[4];       /* time & date stamp            */
    25         char f_symptr[4];       /* file pointer to symtab       */
    26         char f_nsyms[4];        /* number of symtab entries     */
    27         char f_opthdr[2];       /* sizeof(optional hdr)         */
    28         char f_flags[2];        /* flags                        */
    29 };
    30 
     19#define L_LNNO_SIZE 4
     20#include "coff/external.h"
    3121
    3222/* Type of cpu is stored in flags */
     
    3525#define F_MACHMASK 0xf000
    3626
    37 #define Z8KMAGIC        0x8000
     27#define Z8KMAGIC   0x8000
    3828
    39 #define Z8KBADMAG(x) (((x).f_magic!=Z8KMAGIC))
    40 
    41 #define FILHDR  struct external_filehdr
    42 #define FILHSZ  20
    43 
    44 
    45 /********************** AOUT "OPTIONAL HEADER" **********************/
    46 
    47 
    48 typedef struct
    49 {
    50   char  magic[2];               /* type of file                         */
    51   char  vstamp[2];              /* version stamp                        */
    52   char  tsize[4];               /* text size in bytes, padded to FW bdry*/
    53   char  dsize[4];               /* initialized data "  "                */
    54   char  bsize[4];               /* uninitialized data "   "             */
    55   char  entry[4];               /* entry pt.                            */
    56   char  text_start[4];          /* base of text used for this file */
    57   char  data_start[4];          /* base of data used for this file */
    58 }
    59 AOUTHDR;
    60 
    61 
    62 #define AOUTHDRSZ 28
    63 #define AOUTSZ 28
    64 
    65 
    66 
    67 
    68 /********************** SECTION HEADER **********************/
    69 
    70 
    71 struct external_scnhdr {
    72         char            s_name[8];      /* section name                 */
    73         char            s_paddr[4];     /* physical address, aliased s_nlib */
    74         char            s_vaddr[4];     /* virtual address              */
    75         char            s_size[4];      /* section size                 */
    76         char            s_scnptr[4];    /* file ptr to raw data for section */
    77         char            s_relptr[4];    /* file ptr to relocation       */
    78         char            s_lnnoptr[4];   /* file ptr to line numbers     */
    79         char            s_nreloc[2];    /* number of relocation entries */
    80         char            s_nlnno[2];     /* number of line number entries*/
    81         char            s_flags[4];     /* flags                        */
    82 };
    83 
    84 /*
    85  * names of "special" sections
    86  */
    87 #define _TEXT   ".text"
    88 #define _DATA   ".data"
    89 #define _BSS    ".bss"
    90 
    91 
    92 #define SCNHDR  struct external_scnhdr
    93 #define SCNHSZ  40
    94 
    95 
    96 /********************** LINE NUMBERS **********************/
    97 
    98 /* 1 line number entry for every "breakpointable" source line in a section.
    99  * Line numbers are grouped on a per function basis; first entry in a function
    100  * grouping will have l_lnno = 0 and in place of physical address will be the
    101  * symbol table index of the function name.
    102  */
    103 struct external_lineno {
    104         union {
    105                 char l_symndx[4];       /* function name symbol index, iff l_lnno == 0*/
    106                 char l_paddr[4];        /* (physical) address of line number    */
    107         } l_addr;
    108         char l_lnno[4]; /* line number          */
    109 };
    110 
    111 #define GET_LINENO_LNNO(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) (ext->l_lnno));
    112 #define PUT_LINENO_LNNO(abfd,val, ext) bfd_h_put_32(abfd,val,  (bfd_byte *) (ext->l_lnno));
    113 
    114 #define LINENO  struct external_lineno
    115 #define LINESZ  8
    116 
    117 
    118 /********************** SYMBOLS **********************/
    119 
    120 #define E_SYMNMLEN      8       /* # characters in a symbol name        */
    121 #define E_FILNMLEN      14      /* # characters in a file name          */
    122 #define E_DIMNUM        4       /* # array dimensions in auxiliary entry */
    123 
    124 struct external_syment
    125 {
    126   union {
    127     char e_name[E_SYMNMLEN];
    128     struct {
    129       char e_zeroes[4];
    130       char e_offset[4];
    131     } e;
    132   } e;
    133   char e_value[4];
    134   char e_scnum[2];
    135   char e_type[2];
    136   char e_sclass[1];
    137   char e_numaux[1];
    138 };
    139 
    140 
    141 
    142 #define N_BTMASK        (017)
    143 #define N_TMASK         (060)
    144 #define N_BTSHFT        (4)
    145 #define N_TSHIFT        (2)
     29#define Z8KBADMAG(x) (((x).f_magic != Z8KMAGIC))
    14630 
    147 
    148 union external_auxent {
    149         struct {
    150                 char x_tagndx[4];       /* str, un, or enum tag indx */
    151                 union {
    152                         struct {
    153                             char  x_lnno[2]; /* declaration line number */
    154                             char  x_size[2]; /* str/union/array size */
    155                         } x_lnsz;
    156                         char x_fsize[4];        /* size of function */
    157                 } x_misc;
    158                 union {
    159                         struct {                /* if ISFCN, tag, or .bb */
    160                             char x_lnnoptr[4];  /* ptr to fcn line # */
    161                             char x_endndx[4];   /* entry ndx past block end */
    162                         } x_fcn;
    163                         struct {                /* if ISARY, up to 4 dimen. */
    164                             char x_dimen[E_DIMNUM][2];
    165                         } x_ary;
    166                 } x_fcnary;
    167                 char x_tvndx[2];                /* tv index */
    168         } x_sym;
    169 
    170         union {
    171                 char x_fname[E_FILNMLEN];
    172                 struct {
    173                         char x_zeroes[4];
    174                         char x_offset[4];
    175                 } x_n;
    176         } x_file;
    177 
    178         struct {
    179                 char x_scnlen[4];                       /* section length */
    180                 char x_nreloc[2];       /* # relocation entries */
    181                 char x_nlinno[2];       /* # line numbers */
    182         } x_scn;
    183 
    184         struct {
    185                 char x_tvfill[4];       /* tv fill value */
    186                 char x_tvlen[2];        /* length of .tv */
    187                 char x_tvran[2][2];     /* tv range */
    188         } x_tv;         /* info about .tv section (in auxent of symbol .tv)) */
    189 
    190 
    191 };
    192 
    193 #define SYMENT  struct external_syment
    194 #define SYMESZ  18     
    195 #define AUXENT  union external_auxent
    196 #define AUXESZ  18
    197 
    198 
    199 
    20031/********************** RELOCATION DIRECTIVES **********************/
    20132
    20233/* The external reloc has an offset field, because some of the reloc
    20334   types on the z8k don't have room in the instruction for the entire
    204    offset - eg with segments */
     35   offset - eg with segments. */
    20536
    206 struct external_reloc {
     37struct external_reloc
     38{
    20739  char r_vaddr[4];
    20840  char r_symndx[4];
     
    21244};
    21345
    214 
    21546#define RELOC struct external_reloc
    21647#define RELSZ 16
  • branches/GNU/src/binutils/include/demangle.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* Defs for interface to demanglers.
    2    Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000
     2   Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002
    33   Free Software Foundation, Inc.
    44   
     
    2222#define DEMANGLE_H
    2323
    24 #include <ansidecl.h>
     24#include "ansidecl.h"
    2525
    2626/* Options passed to cplus_demangle (in 2nd parameter). */
     
    3030#define DMGL_ANSI        (1 << 1)       /* Include const, volatile, etc */
    3131#define DMGL_JAVA        (1 << 2)       /* Demangle as Java rather than C++. */
     32#define DMGL_VERBOSE     (1 << 3)       /* Include implementation details.  */
     33#define DMGL_TYPES       (1 << 4)       /* Also try to demangle type encodings.  */
    3234
    3335#define DMGL_AUTO        (1 << 8)
     
    5557extern enum demangling_styles
    5658{
     59  no_demangling = -1,
    5760  unknown_demangling = 0,
    5861  auto_demangling = DMGL_AUTO,
     
    6972/* Define string names for the various demangling styles. */
    7073
     74#define NO_DEMANGLING_STYLE_STRING            "none"
    7175#define AUTO_DEMANGLING_STYLE_STRING          "auto"
    7276#define GNU_DEMANGLING_STYLE_STRING           "gnu"
     
    9599   pulled from gdb into libiberty because it is useful to binutils also.  */
    96100
    97 extern struct demangler_engine
     101extern const struct demangler_engine
    98102{
    99   const char *demangling_style_name;
    100   enum demangling_styles demangling_style;
    101   const char *demangling_style_doc;
     103  const char *const demangling_style_name;
     104  const enum demangling_styles demangling_style;
     105  const char *const demangling_style_doc;
    102106} libiberty_demanglers[];
    103107
     
    122126cplus_demangle_name_to_style PARAMS ((const char *name));
    123127
    124 /* V3 ABI demangling entry point, defined in cp-demangle.c.  */
     128/* V3 ABI demangling entry points, defined in cp-demangle.c.  */
    125129extern char*
    126 cplus_demangle_v3 PARAMS ((const char* mangled));
     130cplus_demangle_v3 PARAMS ((const char* mangled, int options));
     131
     132extern char*
     133java_demangle_v3 PARAMS ((const char* mangled));
     134
     135
     136enum gnu_v3_ctor_kinds {
     137  gnu_v3_complete_object_ctor = 1,
     138  gnu_v3_base_object_ctor,
     139  gnu_v3_complete_object_allocating_ctor
     140};
     141
     142/* Return non-zero iff NAME is the mangled form of a constructor name
     143   in the G++ V3 ABI demangling style.  Specifically, return an `enum
     144   gnu_v3_ctor_kinds' value indicating what kind of constructor
     145   it is.  */
     146extern enum gnu_v3_ctor_kinds
     147        is_gnu_v3_mangled_ctor PARAMS ((const char *name));
     148
     149
     150enum gnu_v3_dtor_kinds {
     151  gnu_v3_deleting_dtor = 1,
     152  gnu_v3_complete_object_dtor,
     153  gnu_v3_base_object_dtor
     154};
     155
     156/* Return non-zero iff NAME is the mangled form of a destructor name
     157   in the G++ V3 ABI demangling style.  Specifically, return an `enum
     158   gnu_v3_dtor_kinds' value, indicating what kind of destructor
     159   it is.  */
     160extern enum gnu_v3_dtor_kinds
     161        is_gnu_v3_mangled_dtor PARAMS ((const char *name));
    127162
    128163#endif  /* DEMANGLE_H */
  • branches/GNU/src/binutils/include/dis-asm.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* Interface between the opcode library and its callers.
    22
    3    Copyright 2001 Free Software Foundation, Inc.
     3   Copyright 2001, 2002 Free Software Foundation, Inc.
    44   
    55   This program is free software; you can redistribute it and/or modify
     
    7474  /* Endianness (for bi-endian cpus).  Mono-endian cpus can ignore this.  */
    7575  enum bfd_endian endian;
     76  /* An arch/mach-specific bitmask of selected instruction subsets, mainly
     77     for processors with run-time-switchable instruction sets.  The default,
     78     zero, means that there is no constraint.  CGEN-based opcodes ports
     79     may use ISA_foo masks.  */
     80  unsigned long insn_sets;
    7681
    7782  /* Some targets need information about the current section to accurately
     
    146151
    147152  /* Number of octets per incremented target address
    148      Normally one, but some DSPs have byte sizes of 16 or 32 bits
    149    */
     153     Normally one, but some DSPs have byte sizes of 16 or 32 bits.  */
    150154  unsigned int octets_per_byte;
    151155
     
    174178
    175179/* Standard disassemblers.  Disassemble one instruction at the given
    176    target address.  Return number of bytes processed.  */
     180   target address.  Return number of octets processed.  */
    177181typedef int (*disassembler_ftype)
    178182     PARAMS((bfd_vma, disassemble_info *));
     
    180184extern int print_insn_big_mips          PARAMS ((bfd_vma, disassemble_info*));
    181185extern int print_insn_little_mips       PARAMS ((bfd_vma, disassemble_info*));
     186extern int print_insn_i386              PARAMS ((bfd_vma, disassemble_info *));
    182187extern int print_insn_i386_att          PARAMS ((bfd_vma, disassemble_info*));
    183188extern int print_insn_i386_intel        PARAMS ((bfd_vma, disassemble_info*));
     
    194199extern int print_insn_h8500             PARAMS ((bfd_vma, disassemble_info*));
    195200extern int print_insn_alpha             PARAMS ((bfd_vma, disassemble_info*));
    196 extern disassembler_ftype arc_get_disassembler PARAMS ((void *));
    197201extern int print_insn_big_arm           PARAMS ((bfd_vma, disassemble_info*));
    198202extern int print_insn_little_arm        PARAMS ((bfd_vma, disassemble_info*));
     
    200204extern int print_insn_big_a29k          PARAMS ((bfd_vma, disassemble_info*));
    201205extern int print_insn_little_a29k       PARAMS ((bfd_vma, disassemble_info*));
     206extern int print_insn_avr               PARAMS ((bfd_vma, disassemble_info*));
     207extern int print_insn_d10v              PARAMS ((bfd_vma, disassemble_info*));
     208extern int print_insn_d30v              PARAMS ((bfd_vma, disassemble_info*));
     209extern int print_insn_dlx               PARAMS ((bfd_vma, disassemble_info*));
     210extern int print_insn_fr30              PARAMS ((bfd_vma, disassemble_info*));
     211extern int print_insn_hppa              PARAMS ((bfd_vma, disassemble_info*));
    202212extern int print_insn_i860              PARAMS ((bfd_vma, disassemble_info*));
    203213extern int print_insn_i960              PARAMS ((bfd_vma, disassemble_info*));
    204 extern int print_insn_sh                PARAMS ((bfd_vma, disassemble_info*));
    205 extern int print_insn_shl               PARAMS ((bfd_vma, disassemble_info*));
    206 extern int print_insn_hppa              PARAMS ((bfd_vma, disassemble_info*));
    207 extern int print_insn_fr30              PARAMS ((bfd_vma, disassemble_info*));
     214extern int print_insn_ip2k              PARAMS ((bfd_vma, disassemble_info*));
    208215extern int print_insn_m32r              PARAMS ((bfd_vma, disassemble_info*));
    209216extern int print_insn_m88k              PARAMS ((bfd_vma, disassemble_info*));
    210217extern int print_insn_mcore             PARAMS ((bfd_vma, disassemble_info*));
     218extern int print_insn_mmix              PARAMS ((bfd_vma, disassemble_info*));
    211219extern int print_insn_mn10200           PARAMS ((bfd_vma, disassemble_info*));
    212220extern int print_insn_mn10300           PARAMS ((bfd_vma, disassemble_info*));
     221extern int print_insn_msp430            PARAMS ((bfd_vma, disassemble_info*));
    213222extern int print_insn_ns32k             PARAMS ((bfd_vma, disassemble_info*));
     223extern int print_insn_openrisc          PARAMS ((bfd_vma, disassemble_info*));
     224extern int print_insn_big_or32          PARAMS ((bfd_vma, disassemble_info*));
     225extern int print_insn_little_or32       PARAMS ((bfd_vma, disassemble_info*));
     226extern int print_insn_pdp11             PARAMS ((bfd_vma, disassemble_info*));
     227extern int print_insn_pj                PARAMS ((bfd_vma, disassemble_info*));
    214228extern int print_insn_big_powerpc       PARAMS ((bfd_vma, disassemble_info*));
    215229extern int print_insn_little_powerpc    PARAMS ((bfd_vma, disassemble_info*));
    216230extern int print_insn_rs6000            PARAMS ((bfd_vma, disassemble_info*));
    217 extern int print_insn_w65               PARAMS ((bfd_vma, disassemble_info*));
    218 extern disassembler_ftype cris_get_disassembler PARAMS ((bfd *));
    219 extern int print_insn_d10v              PARAMS ((bfd_vma, disassemble_info*));
    220 extern int print_insn_d30v              PARAMS ((bfd_vma, disassemble_info*));
    221 extern int print_insn_v850              PARAMS ((bfd_vma, disassemble_info*));
     231extern int print_insn_s390              PARAMS ((bfd_vma, disassemble_info*));
     232extern int print_insn_sh                PARAMS ((bfd_vma, disassemble_info*));
    222233extern int print_insn_tic30             PARAMS ((bfd_vma, disassemble_info*));
    223 extern int print_insn_vax               PARAMS ((bfd_vma, disassemble_info*));
     234extern int print_insn_tic4x             PARAMS ((bfd_vma, disassemble_info*));
    224235extern int print_insn_tic54x            PARAMS ((bfd_vma, disassemble_info*));
    225236extern int print_insn_tic80             PARAMS ((bfd_vma, disassemble_info*));
    226 extern int print_insn_pj                PARAMS ((bfd_vma, disassemble_info*));
    227 extern int print_insn_avr               PARAMS ((bfd_vma, disassemble_info*));
    228 
     237extern int print_insn_v850              PARAMS ((bfd_vma, disassemble_info*));
     238extern int print_insn_vax               PARAMS ((bfd_vma, disassemble_info*));
     239extern int print_insn_w65               PARAMS ((bfd_vma, disassemble_info*));
     240extern int print_insn_xstormy16         PARAMS ((bfd_vma, disassemble_info*));
     241extern int print_insn_xtensa            PARAMS ((bfd_vma, disassemble_info*));
     242extern int print_insn_sh64              PARAMS ((bfd_vma, disassemble_info *));
     243extern int print_insn_sh64x_media       PARAMS ((bfd_vma, disassemble_info *));
     244extern int print_insn_frv               PARAMS ((bfd_vma, disassemble_info *));
     245extern int print_insn_iq2000            PARAMS ((bfd_vma, disassemble_info *));
     246
     247extern disassembler_ftype arc_get_disassembler PARAMS ((void *));
     248extern disassembler_ftype cris_get_disassembler PARAMS ((bfd *));
     249
     250extern void print_mips_disassembler_options PARAMS ((FILE *));
     251extern void print_ppc_disassembler_options PARAMS ((FILE *));
    229252extern void print_arm_disassembler_options PARAMS ((FILE *));
    230253extern void parse_arm_disassembler_option  PARAMS ((char *));
     
    270293  (INFO).arch = bfd_arch_unknown, \
    271294  (INFO).mach = 0, \
     295  (INFO).insn_sets = 0, \
    272296  (INFO).endian = BFD_ENDIAN_UNKNOWN, \
    273297  (INFO).octets_per_byte = 1, \
     
    297321  (INFO).bytes_per_chunk = 0, \
    298322  (INFO).display_endian = BFD_ENDIAN_UNKNOWN, \
     323  (INFO).disassembler_options = NULL, \
    299324  (INFO).insn_info_valid = 0
    300325
    301326#ifdef __cplusplus
    302 };
     327}
    303328#endif
    304329
  • branches/GNU/src/binutils/include/dyn-string.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* An abstract string datatype.
    2    Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
     2   Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
    33   Contributed by Mark Mitchell (mark@markmitchell.com).
    44
    5 This file is part of GNU CC.
     5This file is part of GCC.
    66   
    7 GNU CC is free software; you can redistribute it and/or modify
     7GCC is free software; you can redistribute it and/or modify
    88it under the terms of the GNU General Public License as published by
    99the Free Software Foundation; either version 2, or (at your option)
    1010any later version.
    1111
    12 GNU CC is distributed in the hope that it will be useful,
     12GCC is distributed in the hope that it will be useful,
    1313but WITHOUT ANY WARRANTY; without even the implied warranty of
    1414MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     
    1616
    1717You should have received a copy of the GNU General Public License
    18 along with GNU CC; see the file COPYING.  If not, write to
     18along with GCC; see the file COPYING.  If not, write to
    1919the Free Software Foundation, 59 Temple Place - Suite 330,
    2020Boston, MA 02111-1307, USA.  */
     
    4646   demangler are given implementation-reserved names.  */
    4747
    48 #ifdef IN_LIBGCC2
     48#if defined(IN_LIBGCC2) || defined(IN_GLIBCPP_V3)
    4949
    5050#define dyn_string_init                 __cxa_dyn_string_init
     
    6767#define dyn_string_eq                   __cxa_dyn_string_eq
    6868
    69 #endif /* IN_LIBGCC2 */
     69#endif /* IN_LIBGCC2 || IN_GLIBCPP_V3 */
    7070
    7171
  • branches/GNU/src/binutils/include/elf/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-15  Ralf Baechle  <ralf@gnu.org>
     12003-06-03  Nick Clifton  <nickc@redhat.com>
     2
     3        * v850.h (R_V850_32): Rename to R_V850_ABS32.
     4        Add R_V850_REL32.
     5
     62003-04-24 Dhananjay Deshpande <dhananjayd@kpitcummins.com>
     7
     8        * elf/h8.h (E_H8_MACH_H8300HN, E_H8_MACH_H8300SN): New
     9
     102003-04-23  J"orn Rennecke <joern.rennecke@superh.com>
     11
     12        * common.h (EM_SH): Amend comment to refer to SuperH.
     13
     142003-04-22  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
     15
     16        * common.h: Replace references to Mitsubishi M32R with
     17        references to Renesas M32R.
     18
     192003-04-15  Rohit Kumar Srivastava <rohits@kpitcummins.com>
     20
     21        * common.h: Replace occurrances of 'Hitachi' with 'Renesas'.
     22
     232003-04-01  Bob Wilson  <bob.wilson@acm.org>
     24
     25        * elf/common.h (EM_XTENSA_OLD): Define.
     26        * elf/xtensa.h: New file.
     27
     282003-04-01  Nick Clifton  <nickc@redhat.com>
     29
     30        * arm.h (ARM_NOTE_SECTION): Include .gnu in the string.
     31
     322003-03-25  Stan Cox   <scox@redhat.com>
     33            Nick Clifton  <nickc@redhat.com>
     34           
     35        Contribute support for Intel's iWMMXt chip - an ARM variant:
     36
     37        * arm.h (ARM_NOTE_SECTION): Define.
     38
     392003-03-03  J"orn Rennecke <joern.rennecke@superh.com>
     40
     41        * sh.h (EF_SH_MERGE_MACH): Make sure SH2E & SH3/SH3E merge to SH3E,
     42        and SH2E & SH4 merge to SH4, not SH2E.
     43
     442003-02-21  Ian Wienand  <ianw@gelato.unsw.edu.au>
     45
     46        * ia64.h (SHT_IA_64_LOPSREG, SHT_IA_64_HIPSREG,
     47        SHT_IA_64_PRIORITY_INIT): Define.
     48
     492003-02-18  Alan Modra  <amodra@bigpond.net.au>
     50
     51        * ppc64.h (IS_PPC64_TLS_RELOC): Rename from IS_TLS_RELOC.
     52
     53        * ppc.h: Replace DTPMOD64, TPREL64, DTPREL64 with DTPMOD32 etc.
     54        (IS_PPC_TLS_RELOC): Define.
     55
     562003-02-10  Nick Clifton  <nickc@redhat.com>
     57
     58        * arm.h (EF_ARM_MAVERICK_FLOAT): Define.
     59
     602003-02-05  Alan Modra  <amodra@bigpond.net.au>
     61
     62        * ppc.h: Add TLS relocs.  Format.
     63        * ppc64.h: Likewise.
     64
     652003-01-27  Alexandre Oliva  <aoliva@redhat.com>
     66
     67        * mips.h (EF_MIPS_XGOT): Define.
     68
     692003-01-24  Martin Schwidefsky  <schwidefsky@de.ibm.com>
     70
     71        * s390.h: Add s390 TLS relocations.
     72
     732003-01-23  Nick Clifton  <nickc@redhat.com>
     74
     75        * Add sh2e support:
     76
     77        2002-04-02  Alexandre Oliva  <aoliva@redhat.com>
     78
     79                * sh.h (EF_SH_MERGE_MACH): Handle SH2E.
     80
     81        2002-04-02  Elena Zannoni  <ezannoni@redhat.com>
     82
     83                * sh.h (EF_SH2E): New.
     84
     852003-01-23  Alan Modra  <amodra@bigpond.net.au>
     86
     87        * sh.h: Split out various bits to bfd/elf32-sh64.h.
     88
     892003-01-20  Martin Schwidefsky  <schwidefsky@de.ibm.com>
     90
     91        * s390.h: Rename R_390_GOTOFF to R_390_GOTOFF32. Add new gotoff,
     92        gotplt and pltoff relocations.
     93
     942003-01-17  Alan Modra  <amodra@bigpond.net.au>
     95
     96        * common.h: Formatting, typo fixes.
     97        (DT_ENCODING): Correct value.
     98
     992003-01-17  Fabio Alemagna  <falemagn@aros.org>
     100
     101        * common.h (ELFOSABI_AROS): Define.
     102        (ELFOSABI_OPENVMS): Likewise.
     103        (ELFOSABI_NSK): Likewise.
     104
     1052003-01-16  Alan Modra  <amodra@bigpond.net.au>
     106
     107        * ppc.h: Split out ppc64 definitions to..
     108        * pcc64.h: ..here.  New file.
     109        (R_PPC64_REL30): Rename from R_PPC64_ADDR30.
     110
     1112003-01-13 Dmitry Diky <diwil@mail.ru>
     112
     113        * elf/common.h (EM_MSP430): Change e_machine value to officially
     114        assigned.
     115
     1162003-01-02  Ben Elliston  <bje@redhat.com>
     117
     118        * common.h (EM_IQ2000): Define.
     119        * iq2000.h: New file.
     120
     1212002-12-30  Chris Demetriou  <cgd@broadcom.com>
     122
     123        * mips.h (E_MIPS_ARCH_32R2): New define.
     124
     1252002-12-24    Dmitry Diky <diwil@mail.ru>
     126
     127        * common.h: Define msp430 machine numbers.
     128        * msp430.h: New file.  Define msp430 relocs.
     129
     1302002-12-20  DJ Delorie  <dj@redhat.com>
     131
     132        * xstormy16.h: Add XSTORMY16_12.
     133
     1342002-12-16  Andrew MacLeod  <amacleod@redhat.com>
     135
     136        * xstormy16.h (START_RELOC_NUMBERS) Add relocation numbers
     137        for R_XSTORMY16_LO16 and R_XSTORMY16_HI16.
     138
     1392002-12-10  James Cownie <jcownie@etnus.com>
     140
     141        * dwarf2.h (DW_TAG_upc_shared_type, DW_TAG_upc_strict_type,
     142        DW_TAG_upc_relaxed_type, DW_AT_upc_threads_scaled, DW_LANG_Upc):
     143        Define.
     144
     1452002-12-01  Stephane Carrez  <stcarrez@nerim.fr>
     146
     147        * m68hc11.h (EF_M68HC12_MACH, EF_M68HCS12_MACH): Define.
     148        (EF_M68HC11_MACH_MASK, EF_M68HC11_MACH): Define.
     149        (EF_M68HC11_MERGE_MACH, EF_M68HC11_CAN_MERGE_MACH): Define.
     150
     1512002-11-30  Alan Modra  <amodra@bigpond.net.au>
     152
     153        * mmix.h: Replace boolean with bfd_boolean.
     154        * sh.h: Likewise.
     155
     1562002-11-28  Alan Modra  <amodra@bigpond.net.au>
     157
     158        * internal.h (elf32_internal_ehdr, Elf32_Internal_Ehdr,
     159        elf64_internal_ehdr, Elf64_Internal_Ehdr, elf32_internal_phdr,
     160        Elf32_Internal_Phdr, elf64_internal_phdr, Elf64_Internal_Phdr,
     161        elf32_internal_shdr, Elf32_Internal_Shdr, elf64_internal_shdr,
     162        Elf64_Internal_Shdr, elf32_internal_sym, elf64_internal_sym,
     163        Elf32_Internal_Sym, Elf64_Internal_Sym, Elf32_Internal_Note,
     164        elf32_internal_note, elf32_internal_rel, Elf32_Internal_Rel,
     165        elf64_internal_rel, Elf64_Internal_Rel, elf32_internal_rela,
     166        elf64_internal_rela, Elf32_Internal_Rela, Elf64_Internal_Rela,
     167        elf32_internal_dyn, elf64_internal_dyn, Elf32_Internal_Dyn,
     168        Elf64_Internal_Dyn, elf32_internal_verdef, elf64_internal_verdef,
     169        elf32_internal_verdaux, elf64_internal_verdaux, elf32_internal_verneed,
     170        elf64_internal_verneed, elf32_internal_vernaux, elf64_internal_vernaux,
     171        elf32_internal_versym, elf64_internal_versym, Elf32_Internal_Verdef,
     172        Elf64_Internal_Verdef, Elf32_Internal_Verdaux, Elf64_Internal_Verdaux,
     173        Elf32_Internal_Verneed, Elf64_Internal_Verneed, Elf32_Internal_Vernaux,
     174        Elf64_Internal_Vernaux, Elf32_Internal_Versym, Elf64_Internal_Versym,
     175        Elf32_Internal_Syminfo, Elf64_Internal_Syminfo): Delete.
     176        (Elf_Internal_Rel): Delete.
     177
     1782002-10-11  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
     179
     180        * sh.h: Add SH TLS relocs.
     181
     1822002-09-30  Gavin Romig-Koch  <gavin@redhat.com>
     183            Ken Raeburn  <raeburn@cygnus.com>
     184            Aldy Hernandez  <aldyh@redhat.com>
     185            Eric Christopher  <echristo@redhat.com>
     186            Richard Sandiford  <rsandifo@redhat.com>
     187
     188        * mips.h (E_MIPS_MACH_4120, E_MIPS_MACH_5400, E_MIPS_MACH_5500): New.
     189
     1902002-09-12  Roland McGrath  <roland@redhat.com>
     191
     192        * dwarf2.h: Updates from GCC version of thie file:
     193        (enum dwarf_location_atom): DW_OP_calli -> DW_OP_call_ref.
     194        Add DW_OP_GNU_push_tls_address.
     195        (DW_OP_lo_user): Change to 0xe0.
     196
     1972002-08-28  Catherine Moore  <clm@redhat.com>
     198
     199        * elf/v850.h (R_V850_LONGCALL, R_V850_ALIGN,
     200        R_V850_LONGJUMP): New relocations.
     201
     2022002-08-15  Alan Modra  <amodra@bigpond.net.au>
     203
     204        * i370.h: Define relocs using reloc-macros.h.
     205
     2062002-08-13  Stephane Carrez  <stcarrez@nerim.fr>
     207
     208        * m68hc11.h (E_M68HC12_BANKS, E_M68HC11_I32, E_M68HC11_F64,
     209        EF_M68HC11_ABI): Define for ABI specification.
     210        (STO_M68HC12_FAR, STO_M68HC12_INTERRUPT): Symbol flags for
     211        linker and debugger.
     212        (R_M68HC11_24, R_M68HC11_LO16, R_M68HC11_PAGE): New relocs.
     213        (R_M68HC11_RL_JUMP, R_M68HC11_RL_GROUP): New reloc for linker
     214        relaxation.
     215
     2162002-07-15  Denis Chertykov  <denisc@overta.ru>
     217            Frank Ch. Eigler  <fche@redhat.com>
     218            Ben Elliston  <bje@redhat.com>
     219            Alan Lehotsky  <alehotsky@cygnus.com>
     220            John Healy  <jhealy@redhat.com>
     221            Graham Stott  <grahams@redhat.com>
     222            Jeff Johnston  <jjohnstn@redhat.com>
     223
     224        * common.h (EM_IP2K): New macro.
     225        (EM_IP2K_OLD): New macro.
     226        * ip2k.h: New file.
     227
     2282002-07-01  Matt Thomas  <matt@3am-software.com>
     229
     230        * vax.h: Rename EF_* to EF_VAX_*.
     231
     2322002-06-18  Dave Brolley  <brolley@redhat.com>
     233
     234        From Catherine Moore, Michael Meissner, Dave Brolley:
     235        * common.h (EM_CYGNUS_FRV): New macro.
     236        * frv.h: New file.
     237
     2382002-06-06  Lars Brinkhoff  <lars@nocrew.org>
     239
     240        * common.h: Change registry@sco.com to registry@caldera.com.
     241        (EM_PDP10, EM_PDP11): Define.
     242
     2432002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
     244
     245        * sh.h (_bfd_sh64_crange_qsort_cmpb, _bfd_sh64_crange_qsort_cmpl)
     246        (_bfd_sh64_crange_bsearch_cmpb, _bfd_sh64_crange_bsearch_cmpl): New
     247        prototypes.
     248
     2492002-06-01  Richard Henderson  <rth@redhat.com>
     250
     251        * alpha.h (LITUSE_ALPHA_ADDR, LITUSE_ALPHA_BASE, LITUSE_ALPHA_BYTOFF,
     252        LITUSE_ALPHA_JSR, LITUSE_ALPHA_TLSGD, LITUSE_ALPHA_TLSLDM): New.
     253
     2542002-05-30  Richard Henderson  <rth@redhat.com>
     255
     256        * alpha.h (R_ALPHA_TLSGD, R_ALPHA_TLSLDM, R_ALPHA_DTPMOD64,
     257        R_ALPHA_GOTDTPREL, R_ALPHA_DTPREL64, R_ALPHA_DTPRELHI,
     258        R_ALPHA_DTPRELLO, R_ALPHA_DTPREL16, R_ALPHA_GOTTPREL, R_ALPHA_TPREL64,
     259        R_ALPHA_TPRELHI, R_ALPHA_TPRELLO, R_ALPHA_TPREL16): New.
     260
     2612002-05-29  Matt Thomas  <matt@3am-software.com>
     262
     263        * vax.h: New file
     264
     2652002-05-28  Kuang Hwa Lin <kuang@sbcglobal.net>
     266
     267        * common.h (EM_DLX): Define.
     268        * dlx.h: New file.
     269
     2702002-05-08  Jason Thorpe  <thorpej@wasabisystems.com>
     271
     272        * common.h (NT_GNU_ABI_TAG): Define.
     273        (GNU_ABI_TAG_LINUX): Define.
     274        (GNU_ABI_TAG_HURD): Define.
     275        (GNU_ABI_TAG_SOLARIS): Define.
     276        (NT_NETBSD_IDENT): Define.
     277        (NT_FREEBSD_ABI_TAG): Define.
     278
     2792002-04-24  Elena Zannoni  <ezannoni@redhat.com>
     280
     281        * dwarf2.h: Add DW_AT_GNU_vector.
     282
     2832002-02-13  Matt Fredette  <fredette@netbsd.org>
     284
     285        * m68k.h (EF_M68000): Define.
     286
     2872002-02-12  Alan Modra  <amodra@bigpond.net.au>
     288
     289        * ppc.h (DT_PPC64_OPD, DT_PPC64_OPDSZ): Define.
     290
     2912002-02-09  Richard Henderson  <rth@redhat.com>
     292
     293        * alpha.h (R_ALPHA_BRSGP): New.
     294
     2952002-02-08  Alexandre Oliva  <aoliva@redhat.com>
     296
     297        Contribute sh64-elf.
     298        2002-01-23  Alexandre Oliva  <aoliva@redhat.com>
     299        * sh.h (R_SH_GOTPLT32, R_SH_GOT_LOW16, R_SH_GOT_MEDLOW16,
     300        R_SH_GOT_MEDHI16, R_SH_GOT_HI16, R_SH_GOTPLT_LOW16,
     301        R_SH_GOTPLT_MEDLOW16, R_SH_GOTPLT_MEDHI16, R_SH_GOTPLT_HI16,
     302        R_SH_PLT_LOW16, R_SH_PLT_MEDLOW16, R_SH_PLT_MEDHI16,
     303        R_SH_PLT_HI16, R_SH_GOTOFF_LOW16, R_SH_GOTOFF_MEDLOW16,
     304        R_SH_GOTOFF_MEDHI16, R_SH_GOTOFF_HI16, R_SH_GOTPC_LOW16,
     305        R_SH_GOTPC_MEDLOW16, R_SH_GOTPC_MEDHI16, R_SH_GOTPC_HI16,
     306        R_SH_GOT10BY4, R_SH_GOTPLT10BY4, R_SH_GOT10BY8,
     307        R_SH_GOTPLT10BY8, R_SH_COPY64, R_SH_GLOB_DAT64, R_SH_JMP_SLOT64,
     308        R_SH_RELATIVE64): New relocs.
     309        (R_SH_FIRST_INVALID_RELOC_4): Adjust.
     310        2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
     311        * sh.h: Renumbered and renamed some SH5 relocations to match
     312        official numbers and names; moved unmaching ones to the range
     313        0xf2-0xff.
     314        2001-01-06  Hans-Peter Nilsson  <hpn@cygnus.com>
     315        * sh.h (sh64_get_contents_type): Declare.
     316        (sh64_address_is_shmedia): Likewise.
     317        2000-12-30  Hans-Peter Nilsson  <hpn@cygnus.com>
     318        * sh.h (sh64_elf_crange): New type.
     319        (struct sh64_section_data): New.
     320        (sh64_elf_section_data): New macro.
     321        (EF_SH5): Rename back from EF_SH64.
     322        2000-12-18  Hans-Peter Nilsson  <hpn@cygnus.com>
     323        * sh.h (SHF_SH5_ISA32_MIXED, SHT_SH5_CR_SORTED,
     324        SH64_CRANGES_SECTION_NAME, SH64_CRANGE_SIZE,
     325        SH64_CRANGE_CR_ADDR_OFFSET, SH64_CRANGE_CR_SIZE_OFFSET,
     326        SH64_CRANGE_CR_TYPE_OFFSET): New macros.
     327        2000-12-12  Hans-Peter Nilsson  <hpn@cygnus.com>
     328        * sh.h (EF_SH64): Don't define EF_SH64_ABI64.
     329        2000-11-27  Hans-Peter Nilsson  <hpn@cygnus.com>
     330        * sh.h (EF_SH64_32BIT_ABI, EF_SH64_64BIT_ABI): Delete.
     331        (EF_SH64_ABI64): New.
     332        2000-11-23  Hans-Peter Nilsson  <hpn@cygnus.com>
     333        * sh.h (EF_SH64): Rename from EF_SH5.
     334        (EF_SH64_32BIT_ABI): New.
     335        (EF_SH64_64BIT_ABI): New.
     336        (R_SH_PT_16, R_SH_SHMEDIA_CODE
     337        R_SH_IMMU5, R_SH_IMMS6, R_SH_IMMU6, R_SH_IMMS10, R_SH_IMMS10BY2,
     338        R_SH_IMMS10BY4, R_SH_IMMS10BY8, R_SH_IMMS16, R_SH_IMMU16,
     339        R_SH_IMM_LOW16, R_SH_IMM_LOW16_PCREL, R_SH_IMM_MEDLOW16,
     340        R_SH_IMM_MEDLOW16_PCREL, R_SH_IMM_MEDHI16, R_SH_IMM_MEDHI16_PCREL,
     341        R_SH_IMM_HI16, R_SH_IMM_HI16_PCREL, R_SH_64, R_SH_64_PCREL): New
     342        relocs.
     343        2000-09-01  Ben Elliston  <bje@redhat.com>
     344        * sh.h (EF_SH5): Define.
     345
     3462002-02-01  Hans-Peter Nilsson  <hp@bitrange.com>
     347
     348        * mmix.h: Tweak comments.
     349        (MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME): New.
     350        [BFD_ARCH_SIZE] (_bfd_mmix_prepare_linker_allocated_gregs,
     351        _bfd_mmix_finalize_linker_allocated_gregs,
     352        _bfd_mmix_check_all_relocs): Provide prototypes.
     353
     3542002-01-31  Ivan Guzvinec  <ivang@opencores.org>
     355
     356        * or32.h: New file.
     357        * common.h: Add support for or32 targets.
     358
     3592002-01-28  Jason Merrill  <jason@redhat.com>
     360
     361        * dwarf2.h: Sync with gcc version.
     362
     3632002-01-16  Alan Modra  <amodra@bigpond.net.au>
     364
     365        * ppc.h (DT_PPC64_GLINK): Define.
     366
     3672002-01-15  Richard Earnshaw  <rearnsha@arm.com>
     368
     369        * arm.h (F_VFP_FLOAT, EF_ARM_VFP_FLOAT): Define.
     370
     3712002-01-09  Jason Thorpe  <thorpej@wasabisystems.com>
     372
     373        * common.h: Update copyright years.
     374        (NT_NETBSDCORE_PROCINFO): Define.
     375        (NT_NETBSDCORE_FIRSTMACH): Define.
     376
     3772002-01-06  Steve Ellcey  <sje@cup.hp.com>
     378
     379        * ia64.h (ELF_STRING_ia64_unwind_hdr): New Macro for HP-UX.
     380        (SHT_IA_64_HP_OPT_ANOT): Ditto
     381        (PT_IA_64_HP_OPT_ANOT): Ditto
     382        (PT_IA_64_HP_HSL_ANOT): Ditto
     383        (PT_IA_64_HP_STACK): Ditto
     384        (SHN_IA_64_ANSI_COMMON): Ditto
     385
     3862001-12-17  Alan Modra  <amodra@bigpond.net.au>
     387
     388        * external.h (Elf_External_Sym_Shndx): Declare.
     389        * internal.h (struct elf_internal_sym <st_shndx>): Make it an
     390        unsigned int.
     391        * common.h (SHN_BAD): Define.
     392
     3932001-12-13  Jakub Jelinek  <jakub@redhat.com>
     394
     395        * elf/common.h (PT_GNU_EH_FRAME): Define.
     396
     3972001-12-11  Alan Modra  <amodra@bigpond.net.au>
     398
     399        * common.h (SHN_XINDEX): Comment typo fix.
     400        * internal.h (Elf_Internal_Ehdr): Change existing "unsigned short"
     401        size, count and index fields to "unsigned int".
     402
     4032001-12-07  Geoffrey Keating  <geoffk@redhat.com>
     404            Richard Henderson  <rth@redhat.com>
     405
     406        * common.h (EM_XSTORMY16): Define.
     407        * xstormy16.h: New file.
     408
     4092001-11-15  Alan Modra  <amodra@bigpond.net.au>
     410
     411        * common.h (NT_ARCH): Define.  Remove incorrect comment.
     412
     4132001-11-11  Geoffrey Keating  <geoffk@redhat.com>
     414
     415        * dwarf2.h (dwarf_line_number_ops): Add DWARF 3 opcodes.
     416
     4172001-10-30  Hans-Peter Nilsson  <hp@bitrange.com>
     418
     419        * mmix.h: New file.
     420
     4212001-10-23  Alan Modra  <amodra@bigpond.net.au>
     422
     423        * internal.h: White space changes to keep lines under 80 chars.
     424
     4252001-10-16  Jeff Holcomb  <jeffh@redhat.com>
     426
     427        * internal.h (elf_internal_shdr): Make contents a unsigned char *.
     428
     4292001-09-18  Alan Modra  <amodra@bigpond.net.au>
     430
     431        * internal.h (elf_internal_rela): Make r_addend a bfd_vma.
     432
     4332001-09-13  Alexandre Oliva  <aoliva@redhat.com>
     434
     435        * common.h (EM_OPENRISC_OLD): Renamed the old EM_OPENRISC entry.
     436
     4372001-09-12  Alexandre Oliva  <aoliva@redhat.com>
     438
     439        * common.h (EM_AVR_OLD): Renamed from...
     440        (EM_AVR): this, redefined as in the current ELF standard.
     441        (EM_PJ_OLD): Renamed from...
     442        (EM_PJ): this, redefined as in the current ELF standard.
     443        (EM_R30, EM_D10V, EM_D30V, EM_V850, EM_M32R, EM_MN10300,
     444        EM_MN10200, EM_OPENRISC, EM_ARC_A5, EM_XTENSA): Defined as in
     445        the current ELF standard.
     446        (EM_CYGNUS_ARC): Removed, unused for a long time.
     447
     4482001-09-04  Richard Henderson  <rth@redhat.com>
     449
     450        * alpha.h (R_ALPHA_OP*, R_ALPHA_IMMED*, R_ALPHA_GPVALUE): Remove.
     451        (R_ALPHA_GPREL16): Rename from R_ALPHA_IMMED_GP_16.
     452
     4532001-08-30  Eric Christopher  <echristo@redhat.com>
     454
     455        * mips.h: Remove E_MIPS_MACH_MIPS32_4K.
     456
     4572001-08-29  Jeff Law <law@redhat.com>
     458
     459        * h8.h (EF_H8_MACH): New mask for encoded machine type.
     460        (E_H8_MACH_H8300, E_H8_MACH_H8300H, E_H8_MACH_H8300S): New
     461        machine types.
     462
     4632001-08-26  J"orn Rennecke <amylaar@redhat.com>
     464
     465        * h8.h: New file.
     466
     4672001-08-27  Staffan Ulfberg  <staffanu@swox.se>
     468
     469        * ppc.h: Add relocs from the 64-bit PowerPC ELF ABI revision 1.2.
     470
     4712001-06-30  Daniel Berlin  <dan@cgsoftware.com>
     472
     473        * dwarf2.h: Remerge with gcc version,
     474        including all new DWARF 2.1 extensions.
     475
     4762001-06-29  James Cownie <jcownie@etnus.com>
     477
     478        * dwarf2.h: Add DWARF 2.1 attribues.
     479
     4802001-06-15  Per Bothner  <per@bothner.com>
     481
     482        * dwarf2.h:  Partial merge with gcc version.
     483        (enum dwarf_descrim_list):  Fix typo -> dwarf_discrim_list.
     484        (DW_LANG_Java):  Use value from dwarf 2.1 draft (also used in gcc).
     485
     4862001-05-15  Ralf Baechle  <ralf@gnu.org>
     487
    5488        * common.h: Remove definition of EM_MIPS_RS4_BE.  The constant was
    6489        never in active use and is used otherwise by the ABI.
    7490
    8         2001-05-07  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
     4912001-05-11  Jakub Jelinek  <jakub@redhat.com>
     492
     493        * ia64.h (ELF_STRING_ia64_unwind_once): Define.
     494        (ELF_STRING_ia64_unwind_info_once): Define.
     495
     4962001-05-07  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
     497
    9498        * external.h: Fix typo.
    10499        * mips.h: Add/Extend many comments with reference to the MIPS ELF64
     
    25514        (OHW_R10KLDL): Define.
    26515
    27         2001-04-24  Todd Fries  <todd@fries.net>
     5162001-04-24  Todd Fries  <todd@fries.net>
     517
    28518        * sparc.h: Fix typo.
    29519
    30         2001-03-23  Nick Clifton  <nickc@redhat.com>
     5202001-04-20  Johan Rydberg  <jrydberg@opencores.org>
     521
     522        * openrisc.h: New file.
     523        * common.h (EM_OPENRISC): New constant.
     524
     5252001-04-23  Bo Thorsen  <bo@suse.de>
     526
     527        * x86-64.h: Add vtable support.
     528
     5292001-03-23  Nick Clifton  <nickc@redhat.com>
     530
    31531        * mips.h: Remove extraneous whitespace.
    32532
    33 2001-06-07  Alan Modra  <amodra@bigpond.net.au>
    34 
    35         * Many files: Update copyright notices.
     5332001-03-22  Hans-Peter Nilsson  <hp@axis.com>
     534
     535        * cris.h: Add leading comment about PC-relative location.
     536        (R_CRIS_COPY, R_CRIS_GLOB_DAT, R_CRIS_JUMP_SLOT, R_CRIS_RELATIVE,
     537        R_CRIS_16_GOT, R_CRIS_32_GOT, R_CRIS_16_GOTPLT, R_CRIS_32_GOTPLT,
     538        R_CRIS_32_GOTREL, R_CRIS_32_PLT_GOTREL, R_CRIS_32_PLT_PCREL):
     539        New relocs.
     540
     5412001-02-27  Philip Blundell  <pb@futuretv.com>
     542
     543        * arm.h: Add new definitions from ARM document SWS ESPC 0003 B-01.
     544        (EF_PIC, et al.): Rename to EF_ARM_xx.
     545
     5462001-02-09  Martin Schwidefsky  <schwidefsky@de.ibm.com>
     547
     548        * common.h: Add linux target for S/390.
     549        * s390.h: New file.
    36550
    375512001-01-11  Peter Targett  <peter.targett@arccores.com>
     
    535672000-10-16  Chris Demetriou  <cgd@sibyte.com>
    54568
    55         * mips.h (E_MIPS_ARCH_32): New constant.
    56         (E_MIPS_MACH_MIPS32, E_MIPS_MACH_MIPS32_4K): Replace the
    57         former with the latter.
    58 
    59         * mips.h (E_MIPS_ARCH_5, E_MIPS_ARCH_64): New definitions.
    60 
    61         * mips.h (E_MIPS_MACH_SB1): New constant.
     569        * mips.h (E_MIPS_ARCH_32): New constant.
     570        (E_MIPS_MACH_MIPS32, E_MIPS_MACH_MIPS32_4K): Replace the
     571        former with the latter.
     572
     573        * mips.h (E_MIPS_ARCH_5, E_MIPS_ARCH_64): New definitions.
     574
     575        * mips.h (E_MIPS_MACH_SB1): New constant.
    62576
    635772000-11-30  Jan Hubicka  <jh@suse.cz>
    64578
    65         * common.h (EM_X86_64): New macro.
    66         * x86-64.h: New file.
     579        * common.h (EM_X86_64): New macro.
     580        * x86-64.h: New file.
    67581
    685822000-11-27  Hans-Peter Nilsson  <hp@axis.com>
     
    252766        (ELFOSABI_OPENBSD): Likewise.
    253767
    254 Fri Apr 21 13:20:53 2000  Richard Henderson  <rth@cygnus.com>
    255                           David Mosberger  <davidm@hpl.hp.com>
     7682000-04-21  Richard Henderson  <rth@cygnus.com>
     769            David Mosberger  <davidm@hpl.hp.com>
    256770
    257771        * ia64.h: New file.
     
    287801        (PF_ARM_ABS): Define.
    288802
    289 Wed Apr  5 22:08:59 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
     8032000-04-05  J"orn Rennecke <amylaar@cygnus.co.uk>
    290804
    291805        * sh.h (R_SH_LOOP_START, R_SH_LOOP_END): New RELOC_NUMBERs.
     
    316830        * common.h (ELFOSABI_LINUX): Define.
    317831
    318 Thu Feb 17 00:18:33 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
     8322000-02-17  J"orn Rennecke <amylaar@cygnus.co.uk>
    319833
    320834        * sh.h: (EF_SH_MACH_MASK, EF_SH_UNKNOWN, EF_SH1, EF_SH2): New macros.
  • branches/GNU/src/binutils/include/elf/alpha.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    8181  RELOC_NUMBER (R_ALPHA_SREL64, 11)     /* PC relative 64 bit */
    8282
    83 /* Inherited these from ECOFF, but they are not particularly useful
    84    and are depreciated.  And not implemented in the BFD, btw.  */
    85   RELOC_NUMBER (R_ALPHA_OP_PUSH, 12)    /* OP stack push */
    86   RELOC_NUMBER (R_ALPHA_OP_STORE, 13)   /* OP stack pop and store */
    87   RELOC_NUMBER (R_ALPHA_OP_PSUB, 14)    /* OP stack subtract */
    88   RELOC_NUMBER (R_ALPHA_OP_PRSHIFT, 15) /* OP stack right shift */
     83  /* Skip 12 - 16; deprecated ECOFF relocs.  */
    8984
    90   RELOC_NUMBER (R_ALPHA_GPVALUE, 16)
    91   RELOC_NUMBER (R_ALPHA_GPRELHIGH, 17)
    92   RELOC_NUMBER (R_ALPHA_GPRELLOW, 18)
    93   RELOC_NUMBER (R_ALPHA_IMMED_GP_16, 19)
    94   RELOC_NUMBER (R_ALPHA_IMMED_GP_HI32, 20)
    95   RELOC_NUMBER (R_ALPHA_IMMED_SCN_HI32, 21)
    96   RELOC_NUMBER (R_ALPHA_IMMED_BR_HI32, 22)
    97   RELOC_NUMBER (R_ALPHA_IMMED_LO32, 23)
     85  RELOC_NUMBER (R_ALPHA_GPRELHIGH, 17)  /* GP relative 32 bit, high 16 bits */
     86  RELOC_NUMBER (R_ALPHA_GPRELLOW, 18)   /* GP relative 32 bit, low 16 bits */
     87  RELOC_NUMBER (R_ALPHA_GPREL16, 19)    /* GP relative 16 bit */
    9888
    99 /* These relocations are specific to shared libraries.  */
     89  /* Skip 20 - 23; deprecated ECOFF relocs.  */
     90
     91  /* These relocations are specific to shared libraries.  */
    10092  RELOC_NUMBER (R_ALPHA_COPY, 24)       /* Copy symbol at runtime */
    10193  RELOC_NUMBER (R_ALPHA_GLOB_DAT, 25)   /* Create GOT entry */
     
    10395  RELOC_NUMBER (R_ALPHA_RELATIVE, 27)   /* Adjust by program base */
    10496
     97  /* Like BRADDR, but assert that the source and target object file
     98     share the same GP value, and adjust the target address for
     99     STO_ALPHA_STD_GPLOAD.  */
     100  RELOC_NUMBER (R_ALPHA_BRSGP, 28)
     101
     102  /* Thread-Local Storage.  */
     103  RELOC_NUMBER (R_ALPHA_TLSGD, 29)
     104  RELOC_NUMBER (R_ALPHA_TLSLDM, 30)
     105  RELOC_NUMBER (R_ALPHA_DTPMOD64, 31)
     106  RELOC_NUMBER (R_ALPHA_GOTDTPREL, 32)
     107  RELOC_NUMBER (R_ALPHA_DTPREL64, 33)
     108  RELOC_NUMBER (R_ALPHA_DTPRELHI, 34)
     109  RELOC_NUMBER (R_ALPHA_DTPRELLO, 35)
     110  RELOC_NUMBER (R_ALPHA_DTPREL16, 36)
     111  RELOC_NUMBER (R_ALPHA_GOTTPREL, 37)
     112  RELOC_NUMBER (R_ALPHA_TPREL64, 38)
     113  RELOC_NUMBER (R_ALPHA_TPRELHI, 39)
     114  RELOC_NUMBER (R_ALPHA_TPRELLO, 40)
     115  RELOC_NUMBER (R_ALPHA_TPREL16, 41)
     116
    105117END_RELOC_NUMBERS (R_ALPHA_max)
    106118
     119#define LITUSE_ALPHA_ADDR       0
     120#define LITUSE_ALPHA_BASE       1
     121#define LITUSE_ALPHA_BYTOFF     2
     122#define LITUSE_ALPHA_JSR        3
     123#define LITUSE_ALPHA_TLSGD      4
     124#define LITUSE_ALPHA_TLSLDM     5
     125
    107126#endif /* _ELF_ALPHA_H */
  • branches/GNU/src/binutils/include/elf/arm.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* ARM ELF support for BFD.
    2    Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
     2   Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    33
    44   This file is part of BFD, the Binary File Descriptor library.
     
    2626#define EF_ARM_RELEXEC     0x01
    2727#define EF_ARM_HASENTRY    0x02
    28 #define EF_INTERWORK       0x04
    29 #define EF_APCS_26         0x08
    30 #define EF_APCS_FLOAT      0x10
    31 #define EF_PIC             0x20
    32 #define EF_ALIGN8          0x40         /* 8-bit structure alignment is in use.  */
    33 #define EF_NEW_ABI         0x80
    34 #define EF_OLD_ABI         0x100
    35 #define EF_SOFT_FLOAT      0x200
     28#define EF_ARM_INTERWORK   0x04
     29#define EF_ARM_APCS_26     0x08
     30#define EF_ARM_APCS_FLOAT  0x10
     31#define EF_ARM_PIC         0x20
     32#define EF_ARM_ALIGN8      0x40         /* 8-bit structure alignment is in use.  */
     33#define EF_ARM_NEW_ABI     0x80
     34#define EF_ARM_OLD_ABI     0x100
     35#define EF_ARM_SOFT_FLOAT  0x200
     36#define EF_ARM_VFP_FLOAT   0x400
     37#define EF_ARM_MAVERICK_FLOAT 0x800
    3638
    37 /* Other constants defined in the ARM ELF spec. version A-08.  */
     39/* Other constants defined in the ARM ELF spec. version B-01.  */
    3840#define EF_ARM_SYMSARESORTED 0x04       /* NB conflicts with EF_INTERWORK */
     41#define EF_ARM_DYNSYMSUSESEGIDX 0x08    /* NB conflicts with EF_APCS26 */
     42#define EF_ARM_MAPSYMSFIRST 0x10        /* NB conflicts with EF_APCS_FLOAT */
    3943#define EF_ARM_EABIMASK      0xFF000000
    4044
     
    4246#define EF_ARM_EABI_UNKNOWN  0x00000000
    4347#define EF_ARM_EABI_VER1     0x01000000
     48#define EF_ARM_EABI_VER2     0x02000000
    4449
    4550/* Local aliases for some flags to match names used by COFF port.  */
    46 #define F_INTERWORK        EF_INTERWORK
    47 #define F_APCS26           EF_APCS_26
    48 #define F_APCS_FLOAT       EF_APCS_FLOAT
    49 #define F_PIC              EF_PIC
    50 #define F_SOFT_FLOAT       EF_SOFT_FLOAT
     51#define F_INTERWORK        EF_ARM_INTERWORK
     52#define F_APCS26           EF_ARM_APCS_26
     53#define F_APCS_FLOAT       EF_ARM_APCS_FLOAT
     54#define F_PIC              EF_ARM_PIC
     55#define F_SOFT_FLOAT       EF_ARM_SOFT_FLOAT
     56#define F_VFP_FLOAT        EF_ARM_VFP_FLOAT
    5157
    5258/* Additional symbol types for Thumb.  */
     
    110116#else /* not OLD_ARM_ABI */
    111117  FAKE_RELOC   (FIRST_INVALID_RELOC1,  28)
    112   FAKE_RELOC   (LAST_INVALID_RELOC1,   99)
     118  FAKE_RELOC   (LAST_INVALID_RELOC1,   31)
     119  RELOC_NUMBER (R_ARM_ALU_PCREL7_0,    32)
     120  RELOC_NUMBER (R_ARM_ALU_PCREL15_8,   33)
     121  RELOC_NUMBER (R_ARM_ALU_PCREL23_15,  34)
     122  RELOC_NUMBER (R_ARM_LDR_SBREL11_0,   35)
     123  RELOC_NUMBER (R_ARM_ALU_SBREL19_12,  36)
     124  RELOC_NUMBER (R_ARM_ALU_SBREL27_20,  37)
     125  FAKE_RELOC   (FIRST_INVALID_RELOC2,  38)
     126  FAKE_RELOC   (LAST_INVALID_RELOC2,   99)
    113127  RELOC_NUMBER (R_ARM_GNU_VTENTRY,    100)
    114128  RELOC_NUMBER (R_ARM_GNU_VTINHERIT,  101)
    115129  RELOC_NUMBER (R_ARM_THM_PC11,       102)   /* Cygnus extension to abi: Thumb unconditional branch.  */
    116130  RELOC_NUMBER (R_ARM_THM_PC9,        103)   /* Cygnus extension to abi: Thumb conditional branch.  */
    117   FAKE_RELOC   (FIRST_INVALID_RELOC2, 104)
    118   FAKE_RELOC   (LAST_INVALID_RELOC2,  248)
     131  FAKE_RELOC   (FIRST_INVALID_RELOC3, 104)
     132  FAKE_RELOC   (LAST_INVALID_RELOC3,  248)
    119133  RELOC_NUMBER (R_ARM_RXPC25,         249)
    120134#endif /* not OLD_ARM_ABI */
     
    127141END_RELOC_NUMBERS (R_ARM_max)
    128142
     143/* The name of the note section used to identify arm variants.  */
     144#define ARM_NOTE_SECTION ".note.gnu.arm.ident"
     145     
    129146#endif /* _ELF_ARM_H */
  • branches/GNU/src/binutils/include/elf/common.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* ELF support for BFD.
    22   Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
    3    2001
     3   2001, 2002, 2003
    44   Free Software Foundation, Inc.
    55
     
    88   Programming Support Tools".
    99
    10 This file is part of BFD, the Binary File Descriptor library.
    11 
    12 This program is free software; you can redistribute it and/or modify
    13 it under the terms of the GNU General Public License as published by
    14 the Free Software Foundation; either version 2 of the License, or
    15 (at your option) any later version.
    16 
    17 This program is distributed in the hope that it will be useful,
    18 but WITHOUT ANY WARRANTY; without even the implied warranty of
    19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    20 GNU General Public License for more details.
    21 
    22 You should have received a copy of the GNU General Public License
    23 along with this program; if not, write to the Free Software
    24 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
     10   This file is part of BFD, the Binary File Descriptor library.
     11
     12   This program is free software; you can redistribute it and/or modify
     13   it under the terms of the GNU General Public License as published by
     14   the Free Software Foundation; either version 2 of the License, or
     15   (at your option) any later version.
     16
     17   This program is distributed in the hope that it will be useful,
     18   but WITHOUT ANY WARRANTY; without even the implied warranty of
     19   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     20   GNU General Public License for more details.
     21
     22   You should have received a copy of the GNU General Public License
     23   along with this program; if not, write to the Free Software
     24   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    2525
    2626
     
    2828   that are common to both the internal and external representations.
    2929   For example, ELFMAG0 is the byte 0x7F in both the internal (in-memory)
    30    and external (in-file) representations. */
     30   and external (in-file) representations.  */
    3131
    3232#ifndef _ELF_COMMON_H
    3333#define _ELF_COMMON_H
    3434
    35 /* Fields in e_ident[] */
     35/* Fields in e_ident[]. */
    3636
    3737#define EI_MAG0         0       /* File identification byte 0 index */
    38 #define ELFMAG0         0x7F    /* Magic number byte 0 */
     38#define ELFMAG0            0x7F /* Magic number byte 0 */
    3939
    4040#define EI_MAG1         1       /* File identification byte 1 index */
    41 #define ELFMAG1         'E'     /* Magic number byte 1 */
     41#define ELFMAG1             'E' /* Magic number byte 1 */
    4242
    4343#define EI_MAG2         2       /* File identification byte 2 index */
    44 #define ELFMAG2         'L'     /* Magic number byte 2 */
     44#define ELFMAG2             'L' /* Magic number byte 2 */
    4545
    4646#define EI_MAG3         3       /* File identification byte 3 index */
    47 #define ELFMAG3         'F'     /* Magic number byte 3 */
     47#define ELFMAG3             'F' /* Magic number byte 3 */
    4848
    4949#define EI_CLASS        4       /* File class */
    50 #define ELFCLASSNONE    0       /* Invalid class */
    51 #define ELFCLASS32      1       /* 32-bit objects */
    52 #define ELFCLASS64      2       /* 64-bit objects */
     50#define ELFCLASSNONE          0 /* Invalid class */
     51#define ELFCLASS32            1 /* 32-bit objects */
     52#define ELFCLASS64            2 /* 64-bit objects */
    5353
    5454#define EI_DATA         5       /* Data encoding */
    55 #define ELFDATANONE     0       /* Invalid data encoding */
    56 #define ELFDATA2LSB     1       /* 2's complement, little endian */
    57 #define ELFDATA2MSB     2       /* 2's complement, big endian */
     55#define ELFDATANONE           0 /* Invalid data encoding */
     56#define ELFDATA2LSB           1 /* 2's complement, little endian */
     57#define ELFDATA2MSB           2 /* 2's complement, big endian */
    5858
    5959#define EI_VERSION      6       /* File version */
    6060
    61 #define EI_OSABI        7       /* Operating System/ABI indication */
    62 #define ELFOSABI_NONE   0       /* UNIX System V ABI */
    63 #define ELFOSABI_HPUX   1       /* HP-UX operating system */
    64 #define ELFOSABI_NETBSD 2       /* NetBSD */
    65 #define ELFOSABI_LINUX  3       /* GNU/Linux */
    66 #define ELFOSABI_HURD   4       /* GNU/Hurd */
    67 #define ELFOSABI_SOLARIS 6      /* Solaris */
    68 #define ELFOSABI_AIX    7       /* AIX */
    69 #define ELFOSABI_IRIX   8       /* IRIX */
    70 #define ELFOSABI_FREEBSD 9      /* FreeBSD */
    71 #define ELFOSABI_TRU64  10      /* TRU64 UNIX */
    72 #define ELFOSABI_MODESTO 11     /* Novell Modesto */
    73 #define ELFOSABI_OPENBSD 12     /* OpenBSD */
    74 #define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
    75 #define ELFOSABI_ARM   97       /* ARM */
    76 
    77 #define EI_ABIVERSION   8       /* ABI version */
     61#define EI_OSABI        7       /* Operating System/ABI indication */
     62#define ELFOSABI_NONE         0 /* UNIX System V ABI */
     63#define ELFOSABI_HPUX         1 /* HP-UX operating system */
     64#define ELFOSABI_NETBSD       2 /* NetBSD */
     65#define ELFOSABI_LINUX        3 /* GNU/Linux */
     66#define ELFOSABI_HURD         4 /* GNU/Hurd */
     67#define ELFOSABI_SOLARIS      6 /* Solaris */
     68#define ELFOSABI_AIX          7 /* AIX */
     69#define ELFOSABI_IRIX         8 /* IRIX */
     70#define ELFOSABI_FREEBSD      9 /* FreeBSD */
     71#define ELFOSABI_TRU64       10 /* TRU64 UNIX */
     72#define ELFOSABI_MODESTO     11 /* Novell Modesto */
     73#define ELFOSABI_OPENBSD     12 /* OpenBSD */
     74#define ELFOSABI_OPENVMS     13 /* OpenVMS */
     75#define ELFOSABI_NSK         14 /* Hewlett-Packard Non-Stop Kernel */
     76#define ELFOSABI_AROS        15 /* Amiga Research OS */
     77#define ELFOSABI_ARM         97 /* ARM */
     78#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
     79
     80#define EI_ABIVERSION   8       /* ABI version */
    7881
    7982#define EI_PAD          9       /* Start of padding bytes */
     
    8790#define ET_DYN          3       /* Shared object file */
    8891#define ET_CORE         4       /* Core file */
    89 #define ET_LOOS         0xFE00  /* Operating system-specific */
    90 #define ET_HIOS         0xFEFF  /* Operating system-specific */
     92#define ET_LOOS         0xFE00  /* Operating system-specific */
     93#define ET_HIOS         0xFEFF  /* Operating system-specific */
    9194#define ET_LOPROC       0xFF00  /* Processor-specific */
    9295#define ET_HIPROC       0xFFFF  /* Processor-specific */
    9396
    9497/* Values for e_machine, which identifies the architecture.  These numbers
    95    are officially assigned by registry@sco.com.  See below for a list of
     98   are officially assigned by registry@caldera.com.  See below for a list of
    9699   ad-hoc numbers used during initial development.  */
    97100
    98 #define EM_NONE         0       /* No machine */
    99 #define EM_M32          1       /* AT&T WE 32100 */
    100 #define EM_SPARC        2       /* SUN SPARC */
    101 #define EM_386          3       /* Intel 80386 */
    102 #define EM_68K          4       /* Motorola m68k family */
    103 #define EM_88K          5       /* Motorola m88k family */
    104 #define EM_486          6       /* Intel 80486 *//* Reserved for future use */
    105 #define EM_860          7       /* Intel 80860 */
    106 #define EM_MIPS         8       /* MIPS R3000 (officially, big-endian only) */
    107 #define EM_S370         9       /* IBM System/370 */
    108 #define EM_MIPS_RS3_LE 10       /* MIPS R3000 little-endian (Oct 4 1999 Draft)*/ /* Depreciated */
    109 
    110 #define EM_PARISC      15       /* HPPA */
    111 
    112 #define EM_VPP550      17       /* Fujitsu VPP500 */
    113 #define EM_SPARC32PLUS 18       /* Sun's "v8plus" */
    114 #define EM_960         19       /* Intel 80960 */
    115 #define EM_PPC         20       /* PowerPC */
    116 #define EM_PPC64       21       /* 64-bit PowerPC */
    117 
    118 #define EM_V800        36       /* NEC V800 series */
    119 #define EM_FR20        37       /* Fujitsu FR20 */
    120 #define EM_RH32        38       /* TRW RH32 */
    121 #define EM_MCORE       39       /* Motorola M*Core */ /* May also be taken by Fujitsu MMA */
    122 #define EM_RCE         39       /* Old name for MCore */
    123 #define EM_ARM         40       /* ARM */
    124 #define EM_OLD_ALPHA   41       /* Digital Alpha */
    125 #define EM_SH          42       /* Hitachi SH */
    126 #define EM_SPARCV9     43       /* SPARC v9 64-bit */
    127 #define EM_TRICORE     44       /* Siemens Tricore embedded processor */
    128 #define EM_ARC         45       /* ARC Cores */
    129 #define EM_H8_300      46       /* Hitachi H8/300 */
    130 #define EM_H8_300H     47       /* Hitachi H8/300H */
    131 #define EM_H8S         48       /* Hitachi H8S */
    132 #define EM_H8_500      49       /* Hitachi H8/500 */
    133 #define EM_IA_64       50       /* Intel IA-64 Processor */
    134 #define EM_MIPS_X      51       /* Stanford MIPS-X */
    135 #define EM_COLDFIRE    52       /* Motorola Coldfire */
    136 #define EM_68HC12      53       /* Motorola M68HC12 */
    137 #define EM_MMA         54       /* Fujitsu Multimedia Accelerator */
    138 #define EM_PCP         55       /* Siemens PCP */
    139 #define EM_NCPU        56       /* Sony nCPU embedded RISC processor */
    140 #define EM_NDR1        57       /* Denso NDR1 microprocesspr */
    141 #define EM_STARCORE    58       /* Motorola Star*Core processor */
    142 #define EM_ME16        59       /* Toyota ME16 processor */
    143 #define EM_ST100       60       /* STMicroelectronics ST100 processor */
    144 #define EM_TINYJ       61       /* Advanced Logic Corp. TinyJ embedded processor */
    145 #define EM_X86_64      62       /* Advanced Micro Devices X86-64 processor */
    146 
    147 #define EM_FX66        66       /* Siemens FX66 microcontroller */
    148 #define EM_ST9PLUS     67       /* STMicroelectronics ST9+ 8/16 bit microcontroller */
    149 #define EM_ST7         68       /* STMicroelectronics ST7 8-bit microcontroller */
    150 #define EM_68HC16      69       /* Motorola MC68HC16 Microcontroller */
    151 #define EM_68HC11      70       /* Motorola MC68HC11 Microcontroller */
    152 #define EM_68HC08      71       /* Motorola MC68HC08 Microcontroller */
    153 #define EM_68HC05      72       /* Motorola MC68HC05 Microcontroller */
    154 #define EM_SVX         73       /* Silicon Graphics SVx */
    155 #define EM_ST19        74       /* STMicroelectronics ST19 8-bit cpu */
    156 #define EM_VAX         75       /* Digital VAX */
    157 #define EM_CRIS        76       /* Axis Communications 32-bit embedded processor */
    158 #define EM_JAVELIN     77       /* Infineon Technologies 32-bit embedded cpu */
    159 #define EM_FIREPATH    78       /* Element 14 64-bit DSP processor */
    160 #define EM_ZSP         79       /* LSI Logic's 16-bit DSP processor */
    161 #define EM_MMIX        80       /* Donald Knuth's educational 64-bit processor */
    162 #define EM_HUANY       81       /* Harvard's machine-independent format */
    163 #define EM_PRISM       82       /* SiTera Prism */
     101#define EM_NONE           0     /* No machine */
     102#define EM_M32            1     /* AT&T WE 32100 */
     103#define EM_SPARC          2     /* SUN SPARC */
     104#define EM_386            3     /* Intel 80386 */
     105#define EM_68K            4     /* Motorola m68k family */
     106#define EM_88K            5     /* Motorola m88k family */
     107#define EM_486            6     /* Intel 80486 *//* Reserved for future use */
     108#define EM_860            7     /* Intel 80860 */
     109#define EM_MIPS           8     /* MIPS R3000 (officially, big-endian only) */
     110#define EM_S370           9     /* IBM System/370 */
     111#define EM_MIPS_RS3_LE   10     /* MIPS R3000 little-endian (Oct 4 1999 Draft) Deprecated */
     112
     113#define EM_PARISC        15     /* HPPA */
     114
     115#define EM_VPP550        17     /* Fujitsu VPP500 */
     116#define EM_SPARC32PLUS   18     /* Sun's "v8plus" */
     117#define EM_960           19     /* Intel 80960 */
     118#define EM_PPC           20     /* PowerPC */
     119#define EM_PPC64         21     /* 64-bit PowerPC */
     120#define EM_S390          22     /* IBM S/390 */
     121
     122#define EM_V800          36     /* NEC V800 series */
     123#define EM_FR20          37     /* Fujitsu FR20 */
     124#define EM_RH32          38     /* TRW RH32 */
     125#define EM_MCORE         39     /* Motorola M*Core */ /* May also be taken by Fujitsu MMA */
     126#define EM_RCE           39     /* Old name for MCore */
     127#define EM_ARM           40     /* ARM */
     128#define EM_OLD_ALPHA     41     /* Digital Alpha */
     129#define EM_SH            42     /* Renesas (formerly Hitachi) / SuperH SH */
     130#define EM_SPARCV9       43     /* SPARC v9 64-bit */
     131#define EM_TRICORE       44     /* Siemens Tricore embedded processor */
     132#define EM_ARC           45     /* ARC Cores */
     133#define EM_H8_300        46     /* Renesas (formerly Hitachi) H8/300 */
     134#define EM_H8_300H       47     /* Renesas (formerly Hitachi) H8/300H */
     135#define EM_H8S           48     /* Renesas (formerly Hitachi) H8S */
     136#define EM_H8_500        49     /* Renesas (formerly Hitachi) H8/500 */
     137#define EM_IA_64         50     /* Intel IA-64 Processor */
     138#define EM_MIPS_X        51     /* Stanford MIPS-X */
     139#define EM_COLDFIRE      52     /* Motorola Coldfire */
     140#define EM_68HC12        53     /* Motorola M68HC12 */
     141#define EM_MMA           54     /* Fujitsu Multimedia Accelerator */
     142#define EM_PCP           55     /* Siemens PCP */
     143#define EM_NCPU          56     /* Sony nCPU embedded RISC processor */
     144#define EM_NDR1          57     /* Denso NDR1 microprocesspr */
     145#define EM_STARCORE      58     /* Motorola Star*Core processor */
     146#define EM_ME16          59     /* Toyota ME16 processor */
     147#define EM_ST100         60     /* STMicroelectronics ST100 processor */
     148#define EM_TINYJ         61     /* Advanced Logic Corp. TinyJ embedded processor */
     149#define EM_X86_64        62     /* Advanced Micro Devices X86-64 processor */
     150
     151#define EM_PDP10         64     /* Digital Equipment Corp. PDP-10 */
     152#define EM_PDP11         65     /* Digital Equipment Corp. PDP-11 */
     153#define EM_FX66          66     /* Siemens FX66 microcontroller */
     154#define EM_ST9PLUS       67     /* STMicroelectronics ST9+ 8/16 bit microcontroller */
     155#define EM_ST7           68     /* STMicroelectronics ST7 8-bit microcontroller */
     156#define EM_68HC16        69     /* Motorola MC68HC16 Microcontroller */
     157#define EM_68HC11        70     /* Motorola MC68HC11 Microcontroller */
     158#define EM_68HC08        71     /* Motorola MC68HC08 Microcontroller */
     159#define EM_68HC05        72     /* Motorola MC68HC05 Microcontroller */
     160#define EM_SVX           73     /* Silicon Graphics SVx */
     161#define EM_ST19          74     /* STMicroelectronics ST19 8-bit cpu */
     162#define EM_VAX           75     /* Digital VAX */
     163#define EM_CRIS          76     /* Axis Communications 32-bit embedded processor */
     164#define EM_JAVELIN       77     /* Infineon Technologies 32-bit embedded cpu */
     165#define EM_FIREPATH      78     /* Element 14 64-bit DSP processor */
     166#define EM_ZSP           79     /* LSI Logic's 16-bit DSP processor */
     167#define EM_MMIX          80     /* Donald Knuth's educational 64-bit processor */
     168#define EM_HUANY         81     /* Harvard's machine-independent format */
     169#define EM_PRISM         82     /* SiTera Prism */
     170#define EM_AVR           83     /* Atmel AVR 8-bit microcontroller */
     171#define EM_FR30          84     /* Fujitsu FR30 */
     172#define EM_D10V          85     /* Mitsubishi D10V */
     173#define EM_D30V          86     /* Mitsubishi D30V */
     174#define EM_V850          87     /* NEC v850 */
     175#define EM_M32R          88     /* Renesas M32R (formerly Mitsubishi M32R) */
     176#define EM_MN10300       89     /* Matsushita MN10300 */
     177#define EM_MN10200       90     /* Matsushita MN10200 */
     178#define EM_PJ            91     /* picoJava */
     179#define EM_OPENRISC      92     /* OpenRISC 32-bit embedded processor */
     180#define EM_ARC_A5        93     /* ARC Cores Tangent-A5 */
     181#define EM_XTENSA        94     /* Tensilica Xtensa Architecture */
     182#define EM_IP2K         101     /* Ubicom IP2022 micro controller */
     183#define EM_MSP430       105     /* TI msp430 micro controller */
    164184
    165185/* If it is necessary to assign new unofficial EM_* values, please pick large
     
    172192
    173193   Normally, each entity or maintainer responsible for a machine with an
    174    unofficial e_machine number should eventually ask registry@sco.com for
    175    an officially blessed number to be added to the list above.  */
    176 
    177 #define EM_PJ          99       /* picoJava */
     194   unofficial e_machine number should eventually ask registry@caldera.com for
     195   an officially blessed number to be added to the list above.  */
     196
     197#define EM_PJ_OLD      99       /* picoJava */
    178198
    179199/* Cygnus PowerPC ELF backend.  Written in the absence of an ABI.  */
     
    187207#define EM_PPC_OLD      17
    188208
    189 /* Cygnus ARC ELF backend.  Written in the absence of an ABI.  */
    190 #define EM_CYGNUS_ARC 0x9040
     209/* (Deprecated) Temporary number for the OpenRISC processor.  */
     210#define EM_OR32         0x8472
    191211
    192212/* Cygnus M32R ELF backend.  Written in the absence of an ABI.  */
    193 #define EM_CYGNUS_M32R 0x9041
     213#define EM_CYGNUS_M32R  0x9041
    194214
    195215/* Alpha backend magic number.  Written in the absence of an ABI.  */
    196216#define EM_ALPHA        0x9026
     217
     218/* old S/390 backend magic number. Written in the absence of an ABI.  */
     219#define EM_S390_OLD     0xa390
    197220
    198221/* D10V backend magic number.  Written in the absence of an ABI.  */
     
    215238/* AVR magic number
    216239   Written in the absense of an ABI.  */
    217 #define EM_AVR                  0x1057
     240#define EM_AVR_OLD              0x1057
     241
     242/* OpenRISC magic number
     243   Written in the absense of an ABI.  */
     244#define EM_OPENRISC_OLD         0x3426
     245
     246/* DLX magic number
     247   Written in the absense of an ABI.  */
     248#define EM_DLX                  0x5aa5
     249
     250#define EM_XSTORMY16            0xad45
     251
     252/* FRV magic number - no EABI available??.  */
     253#define EM_CYGNUS_FRV           0x5441
     254
     255/* Ubicom IP2xxx; no ABI */
     256#define EM_IP2K_OLD             0x8217 
     257
     258/* MSP430 magic number
     259      Written in the absense everything.  */
     260#define EM_MSP430_OLD           0x1059
     261
     262/* Vitesse IQ2000.  */
     263#define EM_IQ2000               0xFEBA
     264
     265/* Old, unofficial value for Xtensa.  */
     266#define EM_XTENSA_OLD           0xabc7
    218267
    219268/* See the above comment before you add a new EM_* value here.  */
     
    226275/* Values for program header, p_type field.  */
    227276
    228 #define PT_NULL         0               /* Program header table entry unused */
     277#define PT_NULL         0               /* Program header table entry unused */
    229278#define PT_LOAD         1               /* Loadable program segment */
    230279#define PT_DYNAMIC      2               /* Dynamic linking information */
     
    233282#define PT_SHLIB        5               /* Reserved, unspecified semantics */
    234283#define PT_PHDR         6               /* Entry for header table itself */
    235 #define PT_LOOS         0x60000000      /* OS-specific */
    236 #define PT_HIOS         0x6fffffff      /* OS-specific */
     284#define PT_TLS          7               /* Thread local storage segment */
     285#define PT_LOOS         0x60000000      /* OS-specific */
     286#define PT_HIOS         0x6fffffff      /* OS-specific */
    237287#define PT_LOPROC       0x70000000      /* Processor-specific */
    238288#define PT_HIPROC       0x7FFFFFFF      /* Processor-specific */
     289
     290#define PT_GNU_EH_FRAME (PT_LOOS + 0x474e550)
    239291
    240292/* Program segment permissions, in program header p_flags field.  */
     
    262314#define SHT_DYNSYM      11              /* Dynamic linking symbol table */
    263315
    264 #define SHT_INIT_ARRAY    14            /* Array of ptrs to init functions */
    265 #define SHT_FINI_ARRAY    15            /* Array of ptrs to finish functions */
     316#define SHT_INIT_ARRAY    14            /* Array of ptrs to init functions */
     317#define SHT_FINI_ARRAY    15            /* Array of ptrs to finish functions */
    266318#define SHT_PREINIT_ARRAY 16            /* Array of ptrs to pre-init funcs */
    267 #define SHT_GROUP         17            /* Section contains a section group */
     319#define SHT_GROUP         17            /* Section contains a section group */
    268320#define SHT_SYMTAB_SHNDX  18            /* Indicies for SHN_XINDEX entries */
    269321
    270 #define SHT_LOOS        0x60000000      /* First of OS specific semantics */
    271 #define SHT_HIOS        0x6fffffff      /* Last of OS specific semantics */
     322#define SHT_LOOS        0x60000000      /* First of OS specific semantics */
     323#define SHT_HIOS        0x6fffffff      /* Last of OS specific semantics */
     324
     325#define SHT_GNU_LIBLIST 0x6ffffff7      /* List of prelink dependencies */
    272326
    273327/* The next three section types are defined by Solaris, and are named
     
    296350#define SHF_STRINGS     (1 << 5)        /* Contains null terminated character strings */
    297351#define SHF_INFO_LINK   (1 << 6)        /* sh_info holds section header table index */
    298 #define SHF_LINK_ORDER  (1 << 7)        /* Preserve section ordering when linking */
     352#define SHF_LINK_ORDER  (1 << 7)        /* Preserve section ordering when linking */
    299353#define SHF_OS_NONCONFORMING (1 << 8)   /* OS specific processing required */
    300354#define SHF_GROUP       (1 << 9)        /* Member of a section group */
     355#define SHF_TLS         (1 << 10)       /* Thread local storage section */
    301356
    302357/* #define SHF_MASKOS   0x0F000000    *//* OS-specific semantics */
     
    310365#define NT_PRPSINFO     3               /* Contains copy of prpsinfo struct */
    311366#define NT_TASKSTRUCT   4               /* Contains copy of task struct */
    312 #define NT_PRXFPREG     0x46e62b7f      /* Contains a user_xfpregs_struct; */
     367#define NT_PRXFPREG     0x46e62b7f      /* Contains a user_xfpregs_struct; */
    313368                                        /*   note name must be "LINUX".  */
    314369
     
    322377#define NT_WIN32PSTATUS 18              /* Has a struct win32_pstatus */
    323378
     379
     380/* Note segments for core files on NetBSD systems.  Note name
     381   must start with "NetBSD-CORE".  */
     382
     383#define NT_NETBSDCORE_PROCINFO  1       /* Has a struct procinfo */
     384#define NT_NETBSDCORE_FIRSTMACH 32      /* start of machdep note types */
     385
     386
    324387/* Values of note segment descriptor types for object files.  */
    325 /* (Only for hppa right now.  Should this be moved elsewhere?)  */
    326388
    327389#define NT_VERSION      1               /* Contains a version string.  */
     390#define NT_ARCH         2               /* Contains an architecture string.  */
     391
     392/* Values for GNU .note.ABI-tag notes.  Note name is "GNU".  */
     393
     394#define NT_GNU_ABI_TAG          1
     395#define GNU_ABI_TAG_LINUX       0
     396#define GNU_ABI_TAG_HURD        1
     397#define GNU_ABI_TAG_SOLARIS     2
     398
     399/* Values for NetBSD .note.netbsd.ident notes.  Note name is "NetBSD".  */
     400
     401#define NT_NETBSD_IDENT         1
     402
     403/* Values for FreeBSD .note.ABI-tag notes.  Note name is "FreeBSD".  */
     404
     405#define NT_FREEBSD_ABI_TAG      1
    328406
    329407/* These three macros disassemble and assemble a symbol table st_info field,
     
    360438#define STB_GLOBAL      1               /* Symbol visible outside obj */
    361439#define STB_WEAK        2               /* Like globals, lower precedence */
    362 #define STB_LOOS        10              /* OS-specific semantics */
    363 #define STB_HIOS        12              /* OS-specific semantics */
     440#define STB_LOOS        10              /* OS-specific semantics */
     441#define STB_HIOS        12              /* OS-specific semantics */
    364442#define STB_LOPROC      13              /* Application-specific semantics */
    365443#define STB_HIPROC      15              /* Application-specific semantics */
     
    371449#define STT_FILE        4               /* Symbol gives a file name */
    372450#define STT_COMMON      5               /* An uninitialised common block */
    373 #define STT_LOOS        10              /* OS-specific semantics */
    374 #define STT_HIOS        12              /* OS-specific semantics */
     451#define STT_TLS         6               /* Thread local data object */
     452#define STT_LOOS        10              /* OS-specific semantics */
     453#define STT_HIOS        12              /* OS-specific semantics */
    375454#define STT_LOPROC      13              /* Application-specific semantics */
    376455#define STT_HIPROC      15              /* Application-specific semantics */
     
    383462#define SHN_LOPROC      0xFF00          /* Begin range of appl-specific */
    384463#define SHN_HIPROC      0xFF1F          /* End range of appl-specific */
    385 #define SHN_LOOS        0xFF20          /* OS specific semantics, lo */
    386 #define SHN_HIOS        0xFF3F          /* OS specific semantics, hi */
    387 #define SHN_ABS         0xFFF1          /* Associated symbol is absolute */
    388 #define SHN_COMMON      0xFFF2          /* Associated symbol is in common */
    389 #define SHN_XINDEX      0xFFFF          /* Section index it held elsewhere */
    390 #define SHN_HIRESERVE   0xFFFF          /* End range of reserved indices */
     464#define SHN_LOOS        0xFF20          /* OS specific semantics, lo */
     465#define SHN_HIOS        0xFF3F          /* OS specific semantics, hi */
     466#define SHN_ABS         0xFFF1          /* Associated symbol is absolute */
     467#define SHN_COMMON      0xFFF2          /* Associated symbol is in common */
     468#define SHN_XINDEX      0xFFFF          /* Section index is held elsewhere */
     469#define SHN_HIRESERVE   0xFFFF          /* End range of reserved indices */
     470#define SHN_BAD         ((unsigned) -1) /* Used internally by bfd */
    391471
    392472/* The following constants control how a symbol may be accessed once it has
     
    434514#define DT_TEXTREL      22
    435515#define DT_JMPREL       23
    436 #define DT_BIND_NOW     24
    437 #define DT_INIT_ARRAY   25
    438 #define DT_FINI_ARRAY   26
     516#define DT_BIND_NOW     24
     517#define DT_INIT_ARRAY   25
     518#define DT_FINI_ARRAY   26
    439519#define DT_INIT_ARRAYSZ 27
    440520#define DT_FINI_ARRAYSZ 28
    441 #define DT_RUNPATH      29
    442 #define DT_FLAGS        30
    443 
    444 #define DT_ENCODING     32
     521#define DT_RUNPATH      29
     522#define DT_FLAGS        30
     523#define DT_ENCODING     31
    445524#define DT_PREINIT_ARRAY   32
    446525#define DT_PREINIT_ARRAYSZ 33
     
    448527/* Note, the Oct 4, 1999 draft of the ELF ABI changed the values
    449528   for DT_LOOS and DT_HIOS.  Some implementations however, use
    450    values outside of the new range (see below).  */
     529   values outside of the new range (see below).  */
    451530#define OLD_DT_LOOS     0x60000000
    452 #define DT_LOOS         0x6000000d
    453 #define DT_HIOS         0x6fff0000
    454 #define OLD_DT_HIOS     0x6fffffff
    455 
    456 #define DT_LOPROC       0x70000000
    457 #define DT_HIPROC       0x7fffffff
     531#define DT_LOOS         0x6000000d
     532#define DT_HIOS         0x6fff0000
     533#define OLD_DT_HIOS     0x6fffffff
     534
     535#define DT_LOPROC       0x70000000
     536#define DT_HIPROC       0x7fffffff
    458537
    459538/* The next four dynamic tags are used on Solaris.  We support them
    460    everywhere.  Note these values lie outside of the (new) range for
    461    OS specific values.  This is a deliberate special case and we
     539   everywhere.  Note these values lie outside of the (new) range for
     540   OS specific values.  This is a deliberate special case and we
    462541   maintain it for backwards compatability.  */
    463542#define DT_VALRNGLO     0x6ffffd00
     543#define DT_GNU_PRELINKED 0x6ffffdf5
     544#define DT_GNU_CONFLICTSZ 0x6ffffdf6
     545#define DT_GNU_LIBLISTSZ 0x6ffffdf7
    464546#define DT_CHECKSUM     0x6ffffdf8
    465547#define DT_PLTPADSZ     0x6ffffdf9
     
    473555
    474556#define DT_ADDRRNGLO    0x6ffffe00
     557#define DT_GNU_CONFLICT 0x6ffffef8
     558#define DT_GNU_LIBLIST  0x6ffffef9
    475559#define DT_CONFIG       0x6ffffefa
    476560#define DT_DEPAUDIT     0x6ffffefb
     
    513597#define DTF_1_CONFEXP   0x00000002
    514598
    515 /* Flag values used in the DT_POSFLAG_1 .dynamic entry.  */
     599/* Flag values used in the DT_POSFLAG_1 .dynamic entry.  */
    516600#define DF_P1_LAZYLOAD  0x00000001
    517601#define DF_P1_GROUPPERM 0x00000002
     
    533617#define DF_1_CONLFAT    0x00002000
    534618
    535 /* Flag values for the DT_FLAGS entry.  */
     619/* Flag values for the DT_FLAGS entry.  */
    536620#define DF_ORIGIN       (1 << 0)
    537621#define DF_SYMBOLIC     (1 << 1)
    538622#define DF_TEXTREL      (1 << 2)
    539623#define DF_BIND_NOW     (1 << 3)
     624#define DF_STATIC_TLS   (1 << 4)
    540625
    541626/* These constants are used for the version number of a Elf32_Verdef
     
    599684#define SYMINFO_NUM             2
    600685
    601 /* Section Group Flags.  */
     686/* Section Group Flags.  */
    602687
    603688#define GRP_COMDAT              0x1     /* A COMDAT group */
  • branches/GNU/src/binutils/include/elf/cris.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    3131  RELOC_NUMBER (R_CRIS_16,              2)
    3232  RELOC_NUMBER (R_CRIS_32,              3)
     33
     34  /* The "PC" position is the location right after the relocation.  */
    3335  RELOC_NUMBER (R_CRIS_8_PCREL,         4)
    3436  RELOC_NUMBER (R_CRIS_16_PCREL,        5)
     
    3739  RELOC_NUMBER (R_CRIS_GNU_VTINHERIT,   7)
    3840  RELOC_NUMBER (R_CRIS_GNU_VTENTRY,     8)
     41
     42  /* Copy contents at dynlinking.  Generated by the linker.
     43     The BFD equivalent is BFD_RELOC_CRIS_COPY.  */
     44  RELOC_NUMBER (R_CRIS_COPY, 9)
     45
     46  /* Create GOT entry.  Generated by the linker.
     47     The BFD equivalent is BFD_RELOC_CRIS_GLOB_DAT.  */
     48  RELOC_NUMBER (R_CRIS_GLOB_DAT, 10)
     49
     50  /* Create PLT entry.  Generated by the linker.
     51     The BFD equivalent is BFD_RELOC_CRIS_JUMP_SLOT.  */
     52  RELOC_NUMBER (R_CRIS_JUMP_SLOT, 11)
     53
     54  /* Adjust by program base.  Generated by the linker.
     55     The BFD equivalent is BFD_RELOC_CRIS_RELATIVE.  */
     56  RELOC_NUMBER (R_CRIS_RELATIVE, 12)
     57
     58  /* A 16-bit offset to entry in GOT and request to create GOT entry for
     59     that symbol.
     60     The BFD equivalent is BFD_RELOC_CRIS_16_GOT.  */
     61  RELOC_NUMBER (R_CRIS_16_GOT, 13)
     62
     63  /* A 32-bit offset to entry in GOT and request to create GOT entry for
     64     that symbol.
     65     The BFD equivalent is BFD_RELOC_CRIS_32_GOT.  */
     66  RELOC_NUMBER (R_CRIS_32_GOT, 14)
     67
     68  /* A 16-bit offset to entry in PLT part of GOT and request to create PLT
     69     entry for that symbol.
     70     The BFD equivalent is BFD_RELOC_CRIS_16_GOTPLT.  */
     71  RELOC_NUMBER (R_CRIS_16_GOTPLT, 15)
     72
     73  /* A 32-bit offset to entry in PLT part of GOT and request to create PLT
     74     entry for that symbol.
     75     The BFD equivalent is BFD_RELOC_CRIS_32_GOTPLT.  */
     76  RELOC_NUMBER (R_CRIS_32_GOTPLT, 16)
     77
     78  /* A 32-bit offset from GOT to (local) symbol: no GOT entry should be
     79     necessary.
     80     The BFD equivalent is BFD_RELOC_CRIS_32_GOTREL.  */
     81  RELOC_NUMBER (R_CRIS_32_GOTREL, 17)
     82
     83  /* A 32-bit offset from GOT to entry for this symbol in PLT and request
     84     to create PLT entry for symbol.
     85     The BFD equivalent is BFD_RELOC_CRIS_32_GOTREL.  */
     86  RELOC_NUMBER (R_CRIS_32_PLT_GOTREL, 18)
     87
     88  /* A 32-bit offset from location after this relocation (addend specifies
     89     offset) to entry for this symbol in PLT and request to create PLT
     90     entry for symbol.
     91     The BFD equivalent is BFD_RELOC_CRIS_32_PLT_PCREL.  */
     92  RELOC_NUMBER (R_CRIS_32_PLT_PCREL, 19)
    3993
    4094  /* No other relocs must be visible outside the assembler.  */
  • branches/GNU/src/binutils/include/elf/dwarf2.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1 /* Declarations and definitions of codes relating to the DWARF symbolic
     1/* Declarations and definitions of codes relating to the DWARF2 symbolic
    22   debugging information format.
    3    Copyright 1992, 1993, 1995, 1996, 1999 Free Software Foundation, Inc.
     3   Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002
     4   Free Software Foundation, Inc.
    45
    56   Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
     
    1011   (rfg@netcom.com), November 1990.
    1112
    12 This file is part of GNU CC.
    13 
    14 GNU CC is free software; you can redistribute it and/or modify it
    15 under the terms of the GNU General Public License as published by the
    16 Free Software Foundation; either version 2, or (at your option) any
    17 later version.
    18 
    19 GNU CC is distributed in the hope that it will be useful, but WITHOUT
    20 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    21 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    22 for more details.
    23 
    24 You should have received a copy of the GNU General Public License
    25 along with GNU CC; see the file COPYING.  If not, write to the Free
    26 Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
     13   This file is part of GCC.
     14
     15   GCC is free software; you can redistribute it and/or modify it under
     16   the terms of the GNU General Public License as published by the Free
     17   Software Foundation; either version 2, or (at your option) any later
     18   version.
     19
     20   GCC is distributed in the hope that it will be useful, but WITHOUT
     21   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     22   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
     23   License for more details.
     24
     25   You should have received a copy of the GNU General Public License
     26   along with GCC; see the file COPYING.  If not, write to the Free
     27   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
     28   02111-1307, USA.  */
    2729
    2830/* This file is derived from the DWARF specification (a public document)
     
    3032   Programming Languages Special Interest Group (UI/PLSIG) and distributed
    3133   by UNIX International.  Copies of this specification are available from
    32    UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.  */
     34   UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
     35
     36   This file also now contains definitions from the DWARF 3 specification.  */
     37
     38/* This file is shared between GCC and GDB, and should not contain
     39   prototypes.  */
    3340
    3441#ifndef _ELF_DWARF2_H
     
    8188DWARF2_Internal_PubNames;
    8289
    83 /* Strcuture found in .debug_info section.  */
     90/* Structure found in .debug_info section.  */
    8491typedef struct
    8592{
     
    122129
    123130/* Tag names and codes.  */
    124 
    125131enum dwarf_tag
    126132  {
     
    173179    DW_TAG_variable = 0x34,
    174180    DW_TAG_volatile_type = 0x35,
    175     /* SGI/MIPS Extensions */
     181    /* DWARF 3.  */
     182    DW_TAG_dwarf_procedure = 0x36,
     183    DW_TAG_restrict_type = 0x37,
     184    DW_TAG_interface_type = 0x38,
     185    DW_TAG_namespace = 0x39,
     186    DW_TAG_imported_module = 0x3a,
     187    DW_TAG_unspecified_type = 0x3b,
     188    DW_TAG_partial_unit = 0x3c,
     189    DW_TAG_imported_unit = 0x3d,
     190    /* SGI/MIPS Extensions.  */
    176191    DW_TAG_MIPS_loop = 0x4081,
    177     /* GNU extensions */
    178     DW_TAG_format_label = 0x4101,       /* for FORTRAN 77 and Fortran 90 */
    179     DW_TAG_function_template = 0x4102,  /* for C++ */
    180     DW_TAG_class_template = 0x4103      /* for C++ */
     192    /* GNU extensions.  */
     193    DW_TAG_format_label = 0x4101,       /* For FORTRAN 77 and Fortran 90.  */
     194    DW_TAG_function_template = 0x4102,  /* For C++.  */
     195    DW_TAG_class_template = 0x4103,     /* For C++.  */
     196    DW_TAG_GNU_BINCL = 0x4104,
     197    DW_TAG_GNU_EINCL = 0x4105,
     198    /* Extensions for UPC.  See: http://upc.gwu.edu/~upc.  */
     199    DW_TAG_upc_shared_type = 0x8765,
     200    DW_TAG_upc_strict_type = 0x8766,
     201    DW_TAG_upc_relaxed_type = 0x8767
    181202  };
    182203
     
    184205#define DW_TAG_hi_user  0xffff
    185206
    186 /* flag that tells whether entry has a child or not */
     207/* Flag that tells whether entry has a child or not. */
    187208#define DW_children_no   0
    188209#define DW_children_yes  1
     
    280301    DW_AT_virtuality = 0x4c,
    281302    DW_AT_vtable_elem_location = 0x4d,
    282     /* SGI/MIPS Extensions */
     303    /* DWARF 3 values.  */
     304    DW_AT_allocated     = 0x4e,
     305    DW_AT_associated    = 0x4f,
     306    DW_AT_data_location = 0x50,
     307    DW_AT_stride        = 0x51,
     308    DW_AT_entry_pc      = 0x52,
     309    DW_AT_use_UTF8      = 0x53,
     310    DW_AT_extension     = 0x54,
     311    DW_AT_ranges        = 0x55,
     312    DW_AT_trampoline    = 0x56,
     313    DW_AT_call_column   = 0x57,
     314    DW_AT_call_file     = 0x58,
     315    DW_AT_call_line     = 0x59,
     316    /* SGI/MIPS extensions.  */
    283317    DW_AT_MIPS_fde = 0x2001,
    284318    DW_AT_MIPS_loop_begin = 0x2002,
     
    293327    DW_AT_MIPS_has_inlines = 0x200b,
    294328    /* GNU extensions.  */
    295     DW_AT_sf_names = 0x2101,
    296     DW_AT_src_info = 0x2102,
    297     DW_AT_mac_info = 0x2103,
     329    DW_AT_sf_names   = 0x2101,
     330    DW_AT_src_info   = 0x2102,
     331    DW_AT_mac_info   = 0x2103,
    298332    DW_AT_src_coords = 0x2104,
    299333    DW_AT_body_begin = 0x2105,
    300     DW_AT_body_end = 0x2106
    301   };
    302 
    303 #define DW_AT_lo_user   0x2000  /* implementation-defined range start */
    304 #define DW_AT_hi_user   0x3ff0  /* implementation-defined range end */
     334    DW_AT_body_end   = 0x2106,
     335    DW_AT_GNU_vector = 0x2107,
     336    /* VMS extensions.  */
     337    DW_AT_VMS_rtnbeg_pd_address = 0x2201,
     338    /* UPC extension.  */
     339    DW_AT_upc_threads_scaled = 0x3210
     340  };
     341
     342#define DW_AT_lo_user   0x2000  /* Implementation-defined range start.  */
     343#define DW_AT_hi_user   0x3ff0  /* Implementation-defined range end.  */
    305344
    306345/* Location atom names and codes.  */
    307 
    308346enum dwarf_location_atom
    309347  {
     
    452490    DW_OP_deref_size = 0x94,
    453491    DW_OP_xderef_size = 0x95,
    454     DW_OP_nop = 0x96
    455   };
    456 
    457 #define DW_OP_lo_user   0x80    /* implementation-defined range start */
    458 #define DW_OP_hi_user   0xff    /* implementation-defined range end */
     492    DW_OP_nop = 0x96,
     493    /* DWARF 3 extensions.  */
     494    DW_OP_push_object_address = 0x97,
     495    DW_OP_call2 = 0x98,
     496    DW_OP_call4 = 0x99,
     497    DW_OP_call_ref = 0x9a,
     498    /* GNU extensions.  */
     499    DW_OP_GNU_push_tls_address = 0xe0
     500  };
     501
     502#define DW_OP_lo_user   0xe0    /* Implementation-defined range start.  */
     503#define DW_OP_hi_user   0xff    /* Implementation-defined range end.  */
    459504
    460505/* Type encodings.  */
    461 
    462506enum dwarf_type
    463507  {
     
    470514    DW_ATE_signed_char = 0x6,
    471515    DW_ATE_unsigned = 0x7,
    472     DW_ATE_unsigned_char = 0x8
     516    DW_ATE_unsigned_char = 0x8,
     517    /* DWARF 3.  */
     518    DW_ATE_imaginary_float = 0x9
    473519  };
    474520
     
    483529  };
    484530
    485 /* access attribute */
     531/* Access attribute. */
    486532enum dwarf_access_attribute
    487533  {
     
    491537  };
    492538
    493 /* visibility */
     539/* Visibility. */
    494540enum dwarf_visibility_attribute
    495541  {
     
    499545  };
    500546
    501 /* virtuality */
     547/* Virtuality. */
    502548enum dwarf_virtuality_attribute
    503549  {
     
    507553  };
    508554
    509 /* case sensitivity */
     555/* Case sensitivity. */
    510556enum dwarf_id_case
    511557  {
     
    516562  };
    517563
    518 /* calling convention */
     564/* Calling convention. */
    519565enum dwarf_calling_convention
    520566  {
     
    527573#define DW_CC_hi_user 0xff
    528574
    529 /* inline attribute */
     575/* Inline attribute. */
    530576enum dwarf_inline_attribute
    531577  {
     
    536582  };
    537583
    538 /* descriminant lists */
    539 enum dwarf_descrim_list
     584/* Discriminant lists. */
     585enum dwarf_discrim_list
    540586  {
    541587    DW_DSC_label = 0,
     
    543589  };
    544590
    545 /* line number opcodes */
     591/* Line number opcodes. */
    546592enum dwarf_line_number_ops
    547593  {
     
    555601    DW_LNS_set_basic_block = 7,
    556602    DW_LNS_const_add_pc = 8,
    557     DW_LNS_fixed_advance_pc = 9
    558   };
    559 
    560 /* line number extended opcodes */
     603    DW_LNS_fixed_advance_pc = 9,
     604    /* DWARF 3.  */
     605    DW_LNS_set_prologue_end = 10,
     606    DW_LNS_set_epilogue_begin = 11,
     607    DW_LNS_set_isa = 12
     608  };
     609
     610/* Line number extended opcodes.  */
    561611enum dwarf_line_number_x_ops
    562612  {
     
    566616  };
    567617
    568 /* call frame information */
     618/* Call frame information. */
    569619enum dwarf_call_frame_info
    570620  {
     
    587637    DW_CFA_def_cfa_register = 0x0d,
    588638    DW_CFA_def_cfa_offset = 0x0e,
    589     /* SGI/MIPS specific */
    590     DW_CFA_MIPS_advance_loc8 = 0x1d
     639
     640    /* DWARF 3.  */
     641    DW_CFA_def_cfa_expression = 0x0f,
     642    DW_CFA_expression = 0x10,
     643    DW_CFA_offset_extended_sf = 0x11,
     644    DW_CFA_def_cfa_sf = 0x12,
     645    DW_CFA_def_cfa_offset_sf = 0x13,
     646
     647    /* SGI/MIPS specific.  */
     648    DW_CFA_MIPS_advance_loc8 = 0x1d,
     649
     650    /* GNU extensions.  */
     651    DW_CFA_GNU_window_save = 0x2d,
     652    DW_CFA_GNU_args_size = 0x2e,
     653    DW_CFA_GNU_negative_offset_extended = 0x2f
    591654  };
    592655
     
    595658
    596659#define DW_CFA_extended   0
    597 #define DW_CFA_low_user   0x1c
    598 #define DW_CFA_high_user  0x3f
     660#define DW_CFA_lo_user    0x1c
     661#define DW_CFA_hi_user    0x3f
    599662
    600663#define DW_CHILDREN_no               0x00
     
    604667
    605668/* Source language names and codes.  */
    606 
    607669enum dwarf_source_language
    608670  {
     
    617679    DW_LANG_Pascal83 = 0x0009,
    618680    DW_LANG_Modula2 = 0x000a,
    619     DW_LANG_Java = 0x9af4,
    620     DW_LANG_Mips_Assembler = 0x8001
    621   };
    622 
    623 
    624 #define DW_LANG_lo_user 0x8000  /* implementation-defined range start */
    625 #define DW_LANG_hi_user 0xffff  /* implementation-defined range start */
     681    DW_LANG_Java = 0x000b,
     682    /* DWARF 3.  */
     683    DW_LANG_C99 = 0x000c,
     684    DW_LANG_Ada95 = 0x000d,
     685    DW_LANG_Fortran95 = 0x000e,
     686    /* MIPS.  */
     687    DW_LANG_Mips_Assembler = 0x8001,
     688    /* UPC.  */
     689    DW_LANG_Upc = 0x8765
     690  };
     691
     692#define DW_LANG_lo_user 0x8000  /* Implementation-defined range start.  */
     693#define DW_LANG_hi_user 0xffff  /* Implementation-defined range start.  */
    626694
    627695/* Names and codes for macro information.  */
    628 
    629696enum dwarf_macinfo_record_type
    630697  {
     
    636703  };
    637704
     705
     706/* @@@ For use with GNU frame unwind information.  */
     707
     708#define DW_EH_PE_absptr         0x00
     709#define DW_EH_PE_omit           0xff
     710
     711#define DW_EH_PE_uleb128        0x01
     712#define DW_EH_PE_udata2         0x02
     713#define DW_EH_PE_udata4         0x03
     714#define DW_EH_PE_udata8         0x04
     715#define DW_EH_PE_sleb128        0x09
     716#define DW_EH_PE_sdata2         0x0A
     717#define DW_EH_PE_sdata4         0x0B
     718#define DW_EH_PE_sdata8         0x0C
     719#define DW_EH_PE_signed         0x08
     720
     721#define DW_EH_PE_pcrel          0x10
     722#define DW_EH_PE_textrel        0x20
     723#define DW_EH_PE_datarel        0x30
     724#define DW_EH_PE_funcrel        0x40
     725#define DW_EH_PE_aligned        0x50
     726
     727#define DW_EH_PE_indirect       0x80
     728
    638729#endif /* _ELF_DWARF2_H */
  • branches/GNU/src/binutils/include/elf/external.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    144144} Elf64_External_Sym;
    145145
     146typedef struct {
     147  unsigned char est_shndx[4];           /* Section index */
     148} Elf_External_Sym_Shndx;
     149
    146150/* Note segments */
    147151
  • branches/GNU/src/binutils/include/elf/i370.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* i370 ELF support for BFD.
    2    Copyright 2000 Free Software Foundation, Inc.
     2   Copyright 2000, 2002 Free Software Foundation, Inc.
    33
    44This file is part of BFD, the Binary File Descriptor library.
     
    2424#define _ELF_I370_H
    2525
     26#include "elf/reloc-macros.h"
     27
    2628/* Processor specific section headers, sh_type field */
    2729
     
    4244                                                   are not to be furhter \
    4345                                                   relocated.  */
     46
     47/* i370 relocations
     48   Note that there is really just one relocation that we currently
     49   support (and only one that we seem to need, at the moment), and
     50   that is the 31-bit address relocation.  Note that the 370/390
     51   only supports a 31-bit (2GB) address space.  */
     52
     53START_RELOC_NUMBERS (i370_reloc_type)
     54  RELOC_NUMBER (R_I370_NONE,      0)
     55  RELOC_NUMBER (R_I370_ADDR31,    1)
     56  RELOC_NUMBER (R_I370_ADDR32,    2)
     57  RELOC_NUMBER (R_I370_ADDR16,    3)
     58  RELOC_NUMBER (R_I370_REL31,     4)
     59  RELOC_NUMBER (R_I370_REL32,     5) 
     60  RELOC_NUMBER (R_I370_ADDR12,    6)
     61  RELOC_NUMBER (R_I370_REL12,     7)
     62  RELOC_NUMBER (R_I370_ADDR8,     8)
     63  RELOC_NUMBER (R_I370_REL8,      9)
     64  RELOC_NUMBER (R_I370_COPY,     10)
     65  RELOC_NUMBER (R_I370_RELATIVE, 11)
     66END_RELOC_NUMBERS (R_I370_max)
     67
    4468#endif /* _ELF_I370_H */
    45 
    46 
  • branches/GNU/src/binutils/include/elf/i386.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    3535     RELOC_NUMBER (R_386_GOTOFF,    9)  /* 32 bit offset to GOT */
    3636     RELOC_NUMBER (R_386_GOTPC,    10)  /* 32 bit PC relative offset to GOT */
    37      FAKE_RELOC   (FIRST_INVALID_RELOC, 11)
    38      FAKE_RELOC   (LAST_INVALID_RELOC,  19)
     37     RELOC_NUMBER (R_386_32PLT,    11)  /* Used by Sun */
     38     FAKE_RELOC   (FIRST_INVALID_RELOC, 12)
     39     FAKE_RELOC   (LAST_INVALID_RELOC,  13)
     40     RELOC_NUMBER (R_386_TLS_TPOFF,14)
     41     RELOC_NUMBER (R_386_TLS_IE,   15)
     42     RELOC_NUMBER (R_386_TLS_GOTIE,16)
     43     RELOC_NUMBER (R_386_TLS_LE,   17)
     44     RELOC_NUMBER (R_386_TLS_GD,   18)
     45     RELOC_NUMBER (R_386_TLS_LDM,  19)
    3946     RELOC_NUMBER (R_386_16,       20)
    4047     RELOC_NUMBER (R_386_PC16,     21)
    4148     RELOC_NUMBER (R_386_8,        22)
    4249     RELOC_NUMBER (R_386_PC8,      23)
     50     RELOC_NUMBER (R_386_TLS_GD_32,    24)
     51     RELOC_NUMBER (R_386_TLS_GD_PUSH,  25)
     52     RELOC_NUMBER (R_386_TLS_GD_CALL,  26)
     53     RELOC_NUMBER (R_386_TLS_GD_POP,   27)
     54     RELOC_NUMBER (R_386_TLS_LDM_32,   28)
     55     RELOC_NUMBER (R_386_TLS_LDM_PUSH, 29)
     56     RELOC_NUMBER (R_386_TLS_LDM_CALL, 30)
     57     RELOC_NUMBER (R_386_TLS_LDM_POP,  31)
     58     RELOC_NUMBER (R_386_TLS_LDO_32,   32)
     59     RELOC_NUMBER (R_386_TLS_IE_32,    33)
     60     RELOC_NUMBER (R_386_TLS_LE_32,    34)
     61     RELOC_NUMBER (R_386_TLS_DTPMOD32, 35)
     62     RELOC_NUMBER (R_386_TLS_DTPOFF32, 36)
     63     RELOC_NUMBER (R_386_TLS_TPOFF32,  37)
     64
    4365     /* These are GNU extensions to enable C++ vtable garbage collection.  */
    4466     RELOC_NUMBER (R_386_GNU_VTINHERIT, 250)
  • branches/GNU/src/binutils/include/elf/ia64.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* IA-64 ELF support for BFD.
    2    Copyright 1998, 1999, 2000 Free Software Foundation, Inc.
     2   Copyright 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
    33   Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
    44
    5 This file is part of BFD, the Binary File Descriptor library.
    6 
    7 This program is free software; you can redistribute it and/or modify
    8 it under the terms of the GNU General Public License as published by
    9 the Free Software Foundation; either version 2 of the License, or
    10 (at your option) any later version.
    11 
    12 This program is distributed in the hope that it will be useful,
    13 but WITHOUT ANY WARRANTY; without even the implied warranty of
    14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    15 GNU General Public License for more details.
    16 
    17 You should have received a copy of the GNU General Public License
    18 along with this program; if not, write to the Free Software
    19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    20 
     5   This file is part of BFD, the Binary File Descriptor library.
     6
     7   This program is free software; you can redistribute it and/or modify
     8   it under the terms of the GNU General Public License as published by
     9   the Free Software Foundation; either version 2 of the License, or
     10   (at your option) any later version.
     11
     12   This program is distributed in the hope that it will be useful,
     13   but WITHOUT ANY WARRANTY; without even the implied warranty of
     14   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15   GNU General Public License for more details.
     16
     17   You should have received a copy of the GNU General Public License
     18   along with this program; if not, write to the Free Software
     19   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    2120
    2221#ifndef _ELF_IA64_H
     
    2524/* Bits in the e_flags field of the Elf64_Ehdr:  */
    2625
    27 #define EF_IA_64_MASKOS  0x0000000f     /* os-specific flags */
    28 #define EF_IA_64_ARCH    0xff000000     /* arch. version mask */
     26#define EF_IA_64_MASKOS  0x0000000f     /* OS-specific flags. */
     27#define EF_IA_64_ARCH    0xff000000     /* Arch. version mask. */
    2928
    3029/* ??? These four definitions are not part of the SVR4 ABI.
    3130   They were present in David's initial code drop, so it is probable
    3231   that they are used by HP/UX.  */
    33 #define EF_IA_64_TRAPNIL (1 << 0)       /* trap NIL pointer dereferences */
    34 #define EF_IA_64_EXT     (1 << 2)       /* program uses arch. extensions */
    35 #define EF_IA_64_BE      (1 << 3)       /* PSR BE bit set (big-endian) */
    36 #define EFA_IA_64_EAS2_3 0x23000000     /* ia64 EAS 2.3 */
    37 
    38 #define EF_IA_64_ABI64              (1 << 4) /* 64-bit ABI */
     32#define EF_IA_64_TRAPNIL (1 << 0)       /* Trap NIL pointer dereferences. */
     33#define EF_IA_64_EXT     (1 << 2)       /* Program uses arch. extensions. */
     34#define EF_IA_64_BE      (1 << 3)       /* PSR BE bit set (big-endian). */
     35#define EFA_IA_64_EAS2_3 0x23000000     /* IA64 EAS 2.3. */
     36
     37#define EF_IA_64_ABI64              (1 << 4) /* 64-bit ABI. */
    3938/* Not used yet.  */
    4039#define EF_IA_64_REDUCEDFP          (1 << 5) /* Only FP6-FP11 used.  */
    41 #define EF_IA_64_CONS_GP            (1 << 6) /* gp as program wide constant. */
    42 #define EF_IA_64_NOFUNCDESC_CONS_GP (1 << 7) /* And no function descriptors. */
     40#define EF_IA_64_CONS_GP            (1 << 6) /* gp as program wide constant.  */
     41#define EF_IA_64_NOFUNCDESC_CONS_GP (1 << 7) /* And no function descriptors.  */
    4342/* Not used yet.  */
    4443#define EF_IA_64_ABSOLUTE           (1 << 8) /* Load at absolute addresses.  */
     
    5049#define ELF_STRING_ia64_unwind_once     ".gnu.linkonce.ia64unw."
    5150#define ELF_STRING_ia64_unwind_info_once ".gnu.linkonce.ia64unwi."
     51/* .IA_64.unwind_hdr is only used by HP-UX.  */
     52#define ELF_STRING_ia64_unwind_hdr      ".IA_64.unwind_hdr"
    5253
    5354/* Bits in the sh_flags field of Elf64_Shdr:  */
    5455
    55 #define SHF_IA_64_SHORT         0x10000000      /* section near gp */
    56 #define SHF_IA_64_NORECOV       0x20000000      /* spec insns w/o recovery */
     56#define SHF_IA_64_SHORT         0x10000000      /* Section near gp. */
     57#define SHF_IA_64_NORECOV       0x20000000      /* Spec insns w/o recovery. */
    5758
    5859/* Possible values for sh_type in Elf64_Shdr: */
    5960
    60 #define SHT_IA_64_EXT           (SHT_LOPROC + 0)        /* extension bits */
    61 #define SHT_IA_64_UNWIND        (SHT_LOPROC + 1)        /* unwind bits */
     61#define SHT_IA_64_EXT           (SHT_LOPROC + 0)        /* Extension bits.  */
     62#define SHT_IA_64_UNWIND        (SHT_LOPROC + 1)        /* Unwind bits.  */
     63#define SHT_IA_64_LOPSREG       (SHT_LOPROC + 0x8000000)
     64/* ABI says (SHT_LOPROC + 0xfffffff) but I think it's a typo -- this makes sense.  */
     65#define SHT_IA_64_HIPSREG       (SHT_LOPROC + 0x8ffffff)
     66#define SHT_IA_64_PRIORITY_INIT (SHT_LOPROC + 0x9000000)
     67
     68/* SHT_IA_64_HP_OPT_ANOT is only generated by HPUX compilers for its
     69   optimization annotation section.  GCC does not generate it but we
     70   want readelf to know what they are.  Do not use two capital Ns in
     71   annotate or sed will turn it into 32 or 64 during the build.  */
     72#define SHT_IA_64_HP_OPT_ANOT   0x60000004
    6273
    6374/* Bits in the p_flags field of Elf64_Phdr:  */
     
    6778/* Possible values for p_type in Elf64_Phdr:  */
    6879
    69 #define PT_IA_64_ARCHEXT        (PT_LOPROC + 0) /* arch extension bits */
    70 #define PT_IA_64_UNWIND         (PT_LOPROC + 1) /* ia64 unwind bits */
     80#define PT_IA_64_ARCHEXT        (PT_LOPROC + 0) /* Arch extension bits,  */
     81#define PT_IA_64_UNWIND         (PT_LOPROC + 1) /* IA64 unwind bits.  */
     82
     83/* HP-UX specific values for p_type in Elf64_Phdr.
     84   These values are currently just used to make
     85   readelf more usable on HP-UX.  */
     86
     87#define PT_IA_64_HP_OPT_ANOT    (PT_LOOS + 0x12)
     88#define PT_IA_64_HP_HSL_ANOT    (PT_LOOS + 0x13)
     89#define PT_IA_64_HP_STACK       (PT_LOOS + 0x14)
    7190
    7291/* Possible values for d_tag in Elf64_Dyn:  */
     
    7493#define DT_IA_64_PLT_RESERVE    (DT_LOPROC + 0)
    7594
    76 /* ia64-specific relocation types: */
     95/* This section only used by HP-UX, The HP linker gives weak symbols
     96   precedence over regular common symbols.  We want common to override
     97   weak.  Using this common instead of SHN_COMMON does that.  */
     98#define SHN_IA_64_ANSI_COMMON 0xFF00
     99
     100/* IA64-specific relocation types: */
    77101
    78102/* Relocs apply to specific instructions within a bundle.  The least
     
    171195  RELOC_NUMBER (R_IA64_TPREL64LSB, 0x97) /* @tprel(sym+add), data8 LSB */
    172196
    173   RELOC_NUMBER (R_IA64_LTOFF_TP22, 0x9a) /* @ltoff(@tprel(s+a)), add imm22 */
     197  RELOC_NUMBER (R_IA64_LTOFF_TPREL22, 0x9a) /* @ltoff(@tprel(s+a)), add imm22 */
    174198
    175199  RELOC_NUMBER (R_IA64_DTPMOD64MSB, 0xa6) /* @dtpmod(sym+add), data8 MSB */
  • branches/GNU/src/binutils/include/elf/internal.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* ELF support for BFD.
    2    Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000
     2   Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001, 2002
    33   Free Software Foundation, Inc.
    44
     
    4343
    4444typedef struct elf_internal_ehdr {
    45   unsigned char         e_ident[EI_NIDENT];     /* ELF "magic number" */
    46   bfd_vma               e_entry;                /* Entry point virtual address */
    47   bfd_size_type         e_phoff;                /* Program header table file offset */
    48   bfd_size_type         e_shoff;                /* Section header table file offset */
    49   unsigned long         e_version;              /* Identifies object file version */
    50   unsigned long         e_flags;                /* Processor-specific flags */
    51   unsigned short        e_type;                 /* Identifies object file type */
    52   unsigned short        e_machine;              /* Specifies required architecture */
    53   unsigned short        e_ehsize;               /* ELF header size in bytes */
    54   unsigned short        e_phentsize;            /* Program header table entry size */
    55   unsigned short        e_phnum;                /* Program header table entry count */
    56   unsigned short        e_shentsize;            /* Section header table entry size */
    57   unsigned short        e_shnum;                /* Section header table entry count */
    58   unsigned short        e_shstrndx;             /* Section header string table index */
     45  unsigned char         e_ident[EI_NIDENT]; /* ELF "magic number" */
     46  bfd_vma               e_entry;        /* Entry point virtual address */
     47  bfd_size_type         e_phoff;        /* Program header table file offset */
     48  bfd_size_type         e_shoff;        /* Section header table file offset */
     49  unsigned long         e_version;      /* Identifies object file version */
     50  unsigned long         e_flags;        /* Processor-specific flags */
     51  unsigned short        e_type;         /* Identifies object file type */
     52  unsigned short        e_machine;      /* Specifies required architecture */
     53  unsigned int          e_ehsize;       /* ELF header size in bytes */
     54  unsigned int          e_phentsize;    /* Program header table entry size */
     55  unsigned int          e_phnum;        /* Program header table entry count */
     56  unsigned int          e_shentsize;    /* Section header table entry size */
     57  unsigned int          e_shnum;        /* Section header table entry count */
     58  unsigned int          e_shstrndx;     /* Section header string table index */
    5959} Elf_Internal_Ehdr;
    60 
    61 #define elf32_internal_ehdr elf_internal_ehdr
    62 #define Elf32_Internal_Ehdr Elf_Internal_Ehdr
    63 #define elf64_internal_ehdr elf_internal_ehdr
    64 #define Elf64_Internal_Ehdr Elf_Internal_Ehdr
    6560
    6661/* Program header */
     
    7873
    7974typedef struct elf_internal_phdr Elf_Internal_Phdr;
    80 #define elf32_internal_phdr elf_internal_phdr
    81 #define Elf32_Internal_Phdr Elf_Internal_Phdr
    82 #define elf64_internal_phdr elf_internal_phdr
    83 #define Elf64_Internal_Phdr Elf_Internal_Phdr
    8475
    8576/* Section header */
     
    9990  /* The internal rep also has some cached info associated with it. */
    10091  asection *    bfd_section;            /* Associated BFD section.  */
    101   PTR           contents;               /* Section contents.  */
     92  unsigned char *contents;              /* Section contents.  */
    10293} Elf_Internal_Shdr;
    103 
    104 #define elf32_internal_shdr elf_internal_shdr
    105 #define Elf32_Internal_Shdr Elf_Internal_Shdr
    106 #define elf64_internal_shdr elf_internal_shdr
    107 #define Elf64_Internal_Shdr Elf_Internal_Shdr
    10894
    10995/* Symbol table entry */
     
    115101  unsigned char st_info;                /* Type and binding attributes */
    116102  unsigned char st_other;               /* Visibilty, and target specific */
    117   unsigned short st_shndx;              /* Associated section index */
     103  unsigned int st_shndx;               /* Associated section index */
    118104};
    119105
    120106typedef struct elf_internal_sym Elf_Internal_Sym;
    121 
    122 #define elf32_internal_sym elf_internal_sym
    123 #define elf64_internal_sym elf_internal_sym
    124 #define Elf32_Internal_Sym Elf_Internal_Sym
    125 #define Elf64_Internal_Sym Elf_Internal_Sym
    126107
    127108/* Note segments */
     
    135116  bfd_vma       descpos;                /* File offset of the descdata */
    136117} Elf_Internal_Note;
    137 #define Elf32_Internal_Note     Elf_Internal_Note
    138 #define elf32_internal_note     elf_internal_note
    139118
    140119/* Relocation Entries */
    141 
    142 typedef struct elf_internal_rel {
    143   bfd_vma       r_offset;       /* Location at which to apply the action */
    144   /* This needs to support 64-bit values in elf64.  */
    145   bfd_vma       r_info;         /* index and type of relocation */
    146 } Elf_Internal_Rel;
    147 
    148 #define elf32_internal_rel elf_internal_rel
    149 #define Elf32_Internal_Rel Elf_Internal_Rel
    150 #define elf64_internal_rel elf_internal_rel
    151 #define Elf64_Internal_Rel Elf_Internal_Rel
    152120
    153121typedef struct elf_internal_rela {
    154122  bfd_vma       r_offset;       /* Location at which to apply the action */
    155123  bfd_vma       r_info;         /* Index and Type of relocation */
    156   bfd_signed_vma r_addend;      /* Constant addend used to compute value */
     124  bfd_vma       r_addend;       /* Constant addend used to compute value */
    157125} Elf_Internal_Rela;
    158 
    159 #define elf32_internal_rela elf_internal_rela
    160 #define elf64_internal_rela elf_internal_rela
    161 #define Elf32_Internal_Rela Elf_Internal_Rela
    162 #define Elf64_Internal_Rela Elf_Internal_Rela
    163126
    164127/* dynamic section structure */
     
    174137} Elf_Internal_Dyn;
    175138
    176 #define elf32_internal_dyn elf_internal_dyn
    177 #define elf64_internal_dyn elf_internal_dyn
    178 #define Elf32_Internal_Dyn Elf_Internal_Dyn
    179 #define Elf64_Internal_Dyn Elf_Internal_Dyn
    180 
    181139/* This structure appears in a SHT_GNU_verdef section.  */
    182140
     
    257215} Elf_Internal_Syminfo;
    258216
    259 
    260 #define elf32_internal_verdef elf_internal_verdef
    261 #define elf64_internal_verdef elf_internal_verdef
    262 #define elf32_internal_verdaux elf_internal_verdaux
    263 #define elf64_internal_verdaux elf_internal_verdaux
    264 #define elf32_internal_verneed elf_internal_verneed
    265 #define elf64_internal_verneed elf_internal_verneed
    266 #define elf32_internal_vernaux elf_internal_vernaux
    267 #define elf64_internal_vernaux elf_internal_vernaux
    268 #define elf32_internal_versym elf_internal_versym
    269 #define elf64_internal_versym elf_internal_versym
    270 
    271 #define Elf32_Internal_Verdef Elf_Internal_Verdef
    272 #define Elf64_Internal_Verdef Elf_Internal_Verdef
    273 #define Elf32_Internal_Verdaux Elf_Internal_Verdaux
    274 #define Elf64_Internal_Verdaux Elf_Internal_Verdaux
    275 #define Elf32_Internal_Verneed Elf_Internal_Verneed
    276 #define Elf64_Internal_Verneed Elf_Internal_Verneed
    277 #define Elf32_Internal_Vernaux Elf_Internal_Vernaux
    278 #define Elf64_Internal_Vernaux Elf_Internal_Vernaux
    279 #define Elf32_Internal_Versym Elf_Internal_Versym
    280 #define Elf64_Internal_Versym Elf_Internal_Versym
    281 #define Elf32_Internal_Syminfo Elf_Internal_Syminfo
    282 #define Elf64_Internal_Syminfo Elf_Internal_Syminfo
    283217
    284218/* This structure is used to describe how sections should be assigned
  • branches/GNU/src/binutils/include/elf/m68hc11.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* m68hc11 & m68hc12 ELF support for BFD.
    2    Copyright 1999, 2000 Free Software Foundation, Inc.
     2   Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    33
    44   This file is part of BFD, the Binary File Descriptor library.
     
    3838  RELOC_NUMBER (R_M68HC11_GNU_VTINHERIT, 9)
    3939  RELOC_NUMBER (R_M68HC11_GNU_VTENTRY, 10)
     40
     41  RELOC_NUMBER (R_M68HC11_24, 11)
     42  RELOC_NUMBER (R_M68HC11_LO16, 12)
     43  RELOC_NUMBER (R_M68HC11_PAGE, 13)
     44
     45     /* GNU extension for linker relaxation.
     46        Mark beginning of a jump instruction (any form).  */
     47  RELOC_NUMBER (R_M68HC11_RL_JUMP, 20)
     48
     49     /* Mark beginning of Gcc relaxation group instruction.  */
     50  RELOC_NUMBER (R_M68HC11_RL_GROUP, 21)
    4051END_RELOC_NUMBERS (R_M68HC11_max)
    4152
     53/* Processor specific flags for the ELF header e_flags field.  */
     54
     55/* ABI identification.  */
     56#define EF_M68HC11_ABI  0x00000000F
     57
     58/* Integers are 32-bit long.  */
     59#define E_M68HC11_I32   0x000000001
     60
     61/* Doubles are 64-bit long.  */
     62#define E_M68HC11_F64   0x000000002
     63
     64/* Uses 68HC12 memory banks.  */
     65#define E_M68HC12_BANKS 0x000000004
     66
     67#define EF_M68HC11_MACH_MASK 0xF0
     68#define EF_M68HC11_GENERIC   0x00 /* Generic 68HC12/backward compatibility.  */
     69#define EF_M68HC12_MACH      0x10 /* 68HC12 microcontroller.  */
     70#define EF_M68HCS12_MACH     0x20 /* 68HCS12 microcontroller.  */
     71#define EF_M68HC11_MACH(mach) ((mach) & EF_M68HC11_MACH_MASK)
     72
     73/* True if we can merge machines.  A generic HC12 can work on any proc
     74   but once we have specific code, merge is not possible.  */
     75#define EF_M68HC11_CAN_MERGE_MACH(mach1, mach2) \
     76  ((EF_M68HC11_MACH (mach1) == EF_M68HC11_MACH (mach2)) \
     77   || (EF_M68HC11_MACH (mach1) == EF_M68HC11_GENERIC) \
     78   || (EF_M68HC11_MACH (mach2) == EF_M68HC11_GENERIC))
     79
     80#define EF_M68HC11_MERGE_MACH(mach1, mach2) \
     81  (((EF_M68HC11_MACH (mach1) == EF_M68HC11_MACH (mach2)) \
     82    || (EF_M68HC11_MACH (mach1) == EF_M68HC11_GENERIC)) ? \
     83      EF_M68HC11_MACH (mach2) : EF_M68HC11_MACH (mach1))
     84
     85
     86
     87/* Special values for the st_other field in the symbol table.  These
     88   are used for 68HC12 to identify far functions (must be called with
     89   'call' and returns with 'rtc').  */
     90#define STO_M68HC12_FAR 0x80
     91
     92/* Identify interrupt handlers.  This is used by the debugger to
     93   correctly compute the stack frame.  */
     94#define STO_M68HC12_INTERRUPT 0x40
     95     
    4296#endif
  • branches/GNU/src/binutils/include/elf/m68k.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    5454
    5555#define EF_CPU32    0x00810000
     56#define EF_M68000   0x01000000
    5657
    5758#endif
  • branches/GNU/src/binutils/include/elf/mips.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    100100#define EF_MIPS_CPIC            0x00000004
    101101
     102/* ???  Unknown flag, set in IRIX 6's BSDdup2.o in libbsd.a.  */
     103#define EF_MIPS_XGOT            0x00000008
     104
    102105/* Code in file uses UCODE (obsolete) */
    103106#define EF_MIPS_UCODE           0x00000010
     
    146149#define E_MIPS_ARCH_64          0x60000000
    147150
     151/* -mips32r2 code.  */
     152#define E_MIPS_ARCH_32R2        0x70000000
     153
    148154/* The ABI of the file.  Also see EF_MIPS_ABI2 above. */
    149155#define EF_MIPS_ABI             0x0000F000
     
    173179
    174180#define E_MIPS_MACH_3900        0x00810000
    175 
    176181#define E_MIPS_MACH_4010        0x00820000
    177182#define E_MIPS_MACH_4100        0x00830000
    178183#define E_MIPS_MACH_4650        0x00850000
     184#define E_MIPS_MACH_4120        0x00870000
    179185#define E_MIPS_MACH_4111        0x00880000
    180 #define E_MIPS_MACH_MIPS32_4K   0x00890000
    181186#define E_MIPS_MACH_SB1         0x008a0000
     187#define E_MIPS_MACH_5400        0x00910000
     188#define E_MIPS_MACH_5500        0x00980000
    182189
    183190
  • branches/GNU/src/binutils/include/elf/ppc.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* PPC ELF support for BFD.
    2    Copyright 1995, 1996, 1998, 2000 Free Software Foundation, Inc.
     2   Copyright 1995, 1996, 1998, 2000, 2001, 2002, 2003
     3   Free Software Foundation, Inc.
    34
    45   By Michael Meissner, Cygnus Support, <meissner@cygnus.com>, from information
     
    3233/* Relocations.  */
    3334START_RELOC_NUMBERS (elf_ppc_reloc_type)
    34   RELOC_NUMBER (R_PPC_NONE, 0)
    35   RELOC_NUMBER (R_PPC_ADDR32, 1)
    36   RELOC_NUMBER (R_PPC_ADDR24, 2)
    37   RELOC_NUMBER (R_PPC_ADDR16, 3)
    38   RELOC_NUMBER (R_PPC_ADDR16_LO, 4)
    39   RELOC_NUMBER (R_PPC_ADDR16_HI, 5)
    40   RELOC_NUMBER (R_PPC_ADDR16_HA, 6)
    41   RELOC_NUMBER (R_PPC_ADDR14, 7)
    42   RELOC_NUMBER (R_PPC_ADDR14_BRTAKEN, 8)
    43   RELOC_NUMBER (R_PPC_ADDR14_BRNTAKEN, 9)
    44   RELOC_NUMBER (R_PPC_REL24, 10)
    45   RELOC_NUMBER (R_PPC_REL14, 11)
    46   RELOC_NUMBER (R_PPC_REL14_BRTAKEN, 12)
    47   RELOC_NUMBER (R_PPC_REL14_BRNTAKEN, 13)
    48   RELOC_NUMBER (R_PPC_GOT16, 14)
    49   RELOC_NUMBER (R_PPC_GOT16_LO, 15)
    50   RELOC_NUMBER (R_PPC_GOT16_HI, 16)
    51   RELOC_NUMBER (R_PPC_GOT16_HA, 17)
    52   RELOC_NUMBER (R_PPC_PLTREL24, 18)
    53   RELOC_NUMBER (R_PPC_COPY, 19)
    54   RELOC_NUMBER (R_PPC_GLOB_DAT, 20)
    55   RELOC_NUMBER (R_PPC_JMP_SLOT, 21)
    56   RELOC_NUMBER (R_PPC_RELATIVE, 22)
    57   RELOC_NUMBER (R_PPC_LOCAL24PC, 23)
    58   RELOC_NUMBER (R_PPC_UADDR32, 24)
    59   RELOC_NUMBER (R_PPC_UADDR16, 25)
    60   RELOC_NUMBER (R_PPC_REL32, 26)
    61   RELOC_NUMBER (R_PPC_PLT32, 27)
    62   RELOC_NUMBER (R_PPC_PLTREL32, 28)
    63   RELOC_NUMBER (R_PPC_PLT16_LO, 29)
    64   RELOC_NUMBER (R_PPC_PLT16_HI, 30)
    65   RELOC_NUMBER (R_PPC_PLT16_HA, 31)
    66   RELOC_NUMBER (R_PPC_SDAREL16, 32)
    67   RELOC_NUMBER (R_PPC_SECTOFF, 33)
    68   RELOC_NUMBER (R_PPC_SECTOFF_LO, 34)
    69   RELOC_NUMBER (R_PPC_SECTOFF_HI, 35)
    70   RELOC_NUMBER (R_PPC_SECTOFF_HA, 36)
     35  RELOC_NUMBER (R_PPC_NONE,               0)
     36  RELOC_NUMBER (R_PPC_ADDR32,             1)
     37  RELOC_NUMBER (R_PPC_ADDR24,             2)
     38  RELOC_NUMBER (R_PPC_ADDR16,             3)
     39  RELOC_NUMBER (R_PPC_ADDR16_LO,          4)
     40  RELOC_NUMBER (R_PPC_ADDR16_HI,          5)
     41  RELOC_NUMBER (R_PPC_ADDR16_HA,          6)
     42  RELOC_NUMBER (R_PPC_ADDR14,             7)
     43  RELOC_NUMBER (R_PPC_ADDR14_BRTAKEN,     8)
     44  RELOC_NUMBER (R_PPC_ADDR14_BRNTAKEN,    9)
     45  RELOC_NUMBER (R_PPC_REL24,             10)
     46  RELOC_NUMBER (R_PPC_REL14,             11)
     47  RELOC_NUMBER (R_PPC_REL14_BRTAKEN,     12)
     48  RELOC_NUMBER (R_PPC_REL14_BRNTAKEN,    13)
     49  RELOC_NUMBER (R_PPC_GOT16,             14)
     50  RELOC_NUMBER (R_PPC_GOT16_LO,          15)
     51  RELOC_NUMBER (R_PPC_GOT16_HI,          16)
     52  RELOC_NUMBER (R_PPC_GOT16_HA,          17)
     53  RELOC_NUMBER (R_PPC_PLTREL24,          18)
     54  RELOC_NUMBER (R_PPC_COPY,              19)
     55  RELOC_NUMBER (R_PPC_GLOB_DAT,          20)
     56  RELOC_NUMBER (R_PPC_JMP_SLOT,          21)
     57  RELOC_NUMBER (R_PPC_RELATIVE,          22)
     58  RELOC_NUMBER (R_PPC_LOCAL24PC,         23)
     59  RELOC_NUMBER (R_PPC_UADDR32,           24)
     60  RELOC_NUMBER (R_PPC_UADDR16,           25)
     61  RELOC_NUMBER (R_PPC_REL32,             26)
     62  RELOC_NUMBER (R_PPC_PLT32,             27)
     63  RELOC_NUMBER (R_PPC_PLTREL32,          28)
     64  RELOC_NUMBER (R_PPC_PLT16_LO,          29)
     65  RELOC_NUMBER (R_PPC_PLT16_HI,          30)
     66  RELOC_NUMBER (R_PPC_PLT16_HA,          31)
     67  RELOC_NUMBER (R_PPC_SDAREL16,          32)
     68  RELOC_NUMBER (R_PPC_SECTOFF,           33)
     69  RELOC_NUMBER (R_PPC_SECTOFF_LO,        34)
     70  RELOC_NUMBER (R_PPC_SECTOFF_HI,        35)
     71  RELOC_NUMBER (R_PPC_SECTOFF_HA,        36)
     72  RELOC_NUMBER (R_PPC_ADDR30,            37)
     73
     74  /* Relocs added to support TLS.  */
     75  RELOC_NUMBER (R_PPC_TLS,               67)
     76  RELOC_NUMBER (R_PPC_DTPMOD32,          68)
     77  RELOC_NUMBER (R_PPC_TPREL16,           69)
     78  RELOC_NUMBER (R_PPC_TPREL16_LO,        70)
     79  RELOC_NUMBER (R_PPC_TPREL16_HI,        71)
     80  RELOC_NUMBER (R_PPC_TPREL16_HA,        72)
     81  RELOC_NUMBER (R_PPC_TPREL32,           73)
     82  RELOC_NUMBER (R_PPC_DTPREL16,          74)
     83  RELOC_NUMBER (R_PPC_DTPREL16_LO,       75)
     84  RELOC_NUMBER (R_PPC_DTPREL16_HI,       76)
     85  RELOC_NUMBER (R_PPC_DTPREL16_HA,       77)
     86  RELOC_NUMBER (R_PPC_DTPREL32,          78)
     87  RELOC_NUMBER (R_PPC_GOT_TLSGD16,       79)
     88  RELOC_NUMBER (R_PPC_GOT_TLSGD16_LO,    80)
     89  RELOC_NUMBER (R_PPC_GOT_TLSGD16_HI,    81)
     90  RELOC_NUMBER (R_PPC_GOT_TLSGD16_HA,    82)
     91  RELOC_NUMBER (R_PPC_GOT_TLSLD16,       83)
     92  RELOC_NUMBER (R_PPC_GOT_TLSLD16_LO,    84)
     93  RELOC_NUMBER (R_PPC_GOT_TLSLD16_HI,    85)
     94  RELOC_NUMBER (R_PPC_GOT_TLSLD16_HA,    86)
     95  RELOC_NUMBER (R_PPC_GOT_TPREL16,       87)
     96  RELOC_NUMBER (R_PPC_GOT_TPREL16_LO,    88)
     97  RELOC_NUMBER (R_PPC_GOT_TPREL16_HI,    89)
     98  RELOC_NUMBER (R_PPC_GOT_TPREL16_HA,    90)
     99  RELOC_NUMBER (R_PPC_GOT_DTPREL16,      91)
     100  RELOC_NUMBER (R_PPC_GOT_DTPREL16_LO,   92)
     101  RELOC_NUMBER (R_PPC_GOT_DTPREL16_HI,   93)
     102  RELOC_NUMBER (R_PPC_GOT_DTPREL16_HA,   94)
    71103
    72104/* The remaining relocs are from the Embedded ELF ABI, and are not
    73105   in the SVR4 ELF ABI.  */
    74   RELOC_NUMBER (R_PPC_EMB_NADDR32, 101)
    75   RELOC_NUMBER (R_PPC_EMB_NADDR16, 102)
    76   RELOC_NUMBER (R_PPC_EMB_NADDR16_LO, 103)
    77   RELOC_NUMBER (R_PPC_EMB_NADDR16_HI, 104)
    78   RELOC_NUMBER (R_PPC_EMB_NADDR16_HA, 105)
    79   RELOC_NUMBER (R_PPC_EMB_SDAI16, 106)
    80   RELOC_NUMBER (R_PPC_EMB_SDA2I16, 107)
    81   RELOC_NUMBER (R_PPC_EMB_SDA2REL, 108)
    82   RELOC_NUMBER (R_PPC_EMB_SDA21, 109)
    83   RELOC_NUMBER (R_PPC_EMB_MRKREF, 110)
    84   RELOC_NUMBER (R_PPC_EMB_RELSEC16, 111)
    85   RELOC_NUMBER (R_PPC_EMB_RELST_LO, 112)
    86   RELOC_NUMBER (R_PPC_EMB_RELST_HI, 113)
    87   RELOC_NUMBER (R_PPC_EMB_RELST_HA, 114)
    88   RELOC_NUMBER (R_PPC_EMB_BIT_FLD, 115)
    89   RELOC_NUMBER (R_PPC_EMB_RELSDA, 116)
     106  RELOC_NUMBER (R_PPC_EMB_NADDR32,      101)
     107  RELOC_NUMBER (R_PPC_EMB_NADDR16,      102)
     108  RELOC_NUMBER (R_PPC_EMB_NADDR16_LO,   103)
     109  RELOC_NUMBER (R_PPC_EMB_NADDR16_HI,   104)
     110  RELOC_NUMBER (R_PPC_EMB_NADDR16_HA,   105)
     111  RELOC_NUMBER (R_PPC_EMB_SDAI16,       106)
     112  RELOC_NUMBER (R_PPC_EMB_SDA2I16,      107)
     113  RELOC_NUMBER (R_PPC_EMB_SDA2REL,      108)
     114  RELOC_NUMBER (R_PPC_EMB_SDA21,        109)
     115  RELOC_NUMBER (R_PPC_EMB_MRKREF,       110)
     116  RELOC_NUMBER (R_PPC_EMB_RELSEC16,     111)
     117  RELOC_NUMBER (R_PPC_EMB_RELST_LO,     112)
     118  RELOC_NUMBER (R_PPC_EMB_RELST_HI,     113)
     119  RELOC_NUMBER (R_PPC_EMB_RELST_HA,     114)
     120  RELOC_NUMBER (R_PPC_EMB_BIT_FLD,      115)
     121  RELOC_NUMBER (R_PPC_EMB_RELSDA,       116)
    90122
    91123  /* These are GNU extensions to enable C++ vtable garbage collection.  */
    92   RELOC_NUMBER (R_PPC_GNU_VTINHERIT, 253)
    93   RELOC_NUMBER (R_PPC_GNU_VTENTRY, 254)
     124  RELOC_NUMBER (R_PPC_GNU_VTINHERIT,    253)
     125  RELOC_NUMBER (R_PPC_GNU_VTENTRY,      254)
    94126
    95127/* This is a phony reloc to handle any old fashioned TOC16 references
    96128   that may still be in object files.  */
    97   RELOC_NUMBER (R_PPC_TOC16, 255)
     129  RELOC_NUMBER (R_PPC_TOC16,            255)
    98130
    99131END_RELOC_NUMBERS (R_PPC_max)
    100132
     133#define IS_PPC_TLS_RELOC(R) \
     134  ((R) >= R_PPC_TLS && (R) <= R_PPC_GOT_DTPREL16_HA)
    101135
    102136/* Processor specific flags for the ELF header e_flags field.  */
  • branches/GNU/src/binutils/include/elf/sh.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* SH ELF support for BFD.
    2    Copyright 1998, 2000 Free Software Foundation, Inc.
     2   Copyright 1998, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
    33
    44   This file is part of BFD, the Binary File Descriptor library.
     
    3434#define EF_SH3E            8
    3535#define EF_SH4             9
     36#define EF_SH2E            11
     37
     38/* This one can only mix in objects from other EF_SH5 objects.  */
     39#define EF_SH5            10
    3640
    3741#define EF_SH_MERGE_MACH(mach1, mach2) \
     
    4347      || ((mach2) < EF_SH3 && (mach1) == EF_SH_UNKNOWN)) \
    4448   ? EF_SH3 \
     49   : ((mach1) == EF_SH2E && EF_SH_HAS_FP (mach2)) \
     50   ? (mach2) \
     51   : ((mach2) == EF_SH2E && EF_SH_HAS_FP (mach1)) \
     52   ? (mach1) \
     53   : (((mach1) == EF_SH2E && (mach2) == EF_SH_UNKNOWN) \
     54      || ((mach2) == EF_SH2E && (mach1) == EF_SH_UNKNOWN)) \
     55   ? EF_SH2E \
    4556   : (((mach1) == EF_SH3E && (mach2) == EF_SH_UNKNOWN) \
    4657      || ((mach2) == EF_SH3E && (mach1) == EF_SH_UNKNOWN)) \
    4758   ? EF_SH4 \
    48    : ((mach1) > (mach2) ? (mach1) : (mach2)))
     59   : (((mach1) == EF_SH2E ? 7 : (mach1)) > ((mach2) == EF_SH2E ? 7 : (mach2)) \
     60      ? (mach1) : (mach2)))
     61
     62/* Flags for the st_other symbol field.
     63   Keep away from the STV_ visibility flags (bit 0..1).  */
     64
     65/* A reference to this symbol should by default add 1.  */
     66#define STO_SH5_ISA32 (1 << 2)
     67
     68/* Section contains only SHmedia code (no SHcompact code).  */
     69#define SHF_SH5_ISA32           0x40000000
     70
     71/* Section contains both SHmedia and SHcompact code, and possibly also
     72   constants.  */
     73#define SHF_SH5_ISA32_MIXED     0x20000000
     74
     75/* If applied to a .cranges section, marks that the section is sorted by
     76   increasing cr_addr values.  */
     77#define SHT_SH5_CR_SORTED 0x80000001
     78
     79/* Symbol should be handled as DataLabel (attached to global SHN_UNDEF
     80   symbols).  */
     81#define STT_DATALABEL STT_LOPROC
    4982
    5083#include "elf/reloc-macros.h"
     
    80113  RELOC_NUMBER (R_SH_LOOP_END, 37)
    81114  FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_2, 38)
    82   FAKE_RELOC (R_SH_LAST_INVALID_RELOC_2, 159)
     115  FAKE_RELOC (R_SH_LAST_INVALID_RELOC_2, 44)
     116  RELOC_NUMBER (R_SH_DIR5U, 45)
     117  RELOC_NUMBER (R_SH_DIR6U, 46)
     118  RELOC_NUMBER (R_SH_DIR6S, 47)
     119  RELOC_NUMBER (R_SH_DIR10S, 48)
     120  RELOC_NUMBER (R_SH_DIR10SW, 49)
     121  RELOC_NUMBER (R_SH_DIR10SL, 50)
     122  RELOC_NUMBER (R_SH_DIR10SQ, 51)
     123  FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_3, 52)
     124  FAKE_RELOC (R_SH_LAST_INVALID_RELOC_3, 143)
     125  RELOC_NUMBER (R_SH_TLS_GD_32, 144)
     126  RELOC_NUMBER (R_SH_TLS_LD_32, 145)
     127  RELOC_NUMBER (R_SH_TLS_LDO_32, 146)
     128  RELOC_NUMBER (R_SH_TLS_IE_32, 147)
     129  RELOC_NUMBER (R_SH_TLS_LE_32, 148)
     130  RELOC_NUMBER (R_SH_TLS_DTPMOD32, 149)
     131  RELOC_NUMBER (R_SH_TLS_DTPOFF32, 150)
     132  RELOC_NUMBER (R_SH_TLS_TPOFF32, 151)
     133  FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_4, 152)
     134  FAKE_RELOC (R_SH_LAST_INVALID_RELOC_4, 159)
    83135  RELOC_NUMBER (R_SH_GOT32, 160)
    84136  RELOC_NUMBER (R_SH_PLT32, 161)
     
    89141  RELOC_NUMBER (R_SH_GOTOFF, 166)
    90142  RELOC_NUMBER (R_SH_GOTPC, 167)
     143  RELOC_NUMBER (R_SH_GOTPLT32, 168)
     144  RELOC_NUMBER (R_SH_GOT_LOW16, 169)
     145  RELOC_NUMBER (R_SH_GOT_MEDLOW16, 170)
     146  RELOC_NUMBER (R_SH_GOT_MEDHI16, 171)
     147  RELOC_NUMBER (R_SH_GOT_HI16, 172)
     148  RELOC_NUMBER (R_SH_GOTPLT_LOW16, 173)
     149  RELOC_NUMBER (R_SH_GOTPLT_MEDLOW16, 174)
     150  RELOC_NUMBER (R_SH_GOTPLT_MEDHI16, 175)
     151  RELOC_NUMBER (R_SH_GOTPLT_HI16, 176)
     152  RELOC_NUMBER (R_SH_PLT_LOW16, 177)
     153  RELOC_NUMBER (R_SH_PLT_MEDLOW16, 178)
     154  RELOC_NUMBER (R_SH_PLT_MEDHI16, 179)
     155  RELOC_NUMBER (R_SH_PLT_HI16, 180)
     156  RELOC_NUMBER (R_SH_GOTOFF_LOW16, 181)
     157  RELOC_NUMBER (R_SH_GOTOFF_MEDLOW16, 182)
     158  RELOC_NUMBER (R_SH_GOTOFF_MEDHI16, 183)
     159  RELOC_NUMBER (R_SH_GOTOFF_HI16, 184)
     160  RELOC_NUMBER (R_SH_GOTPC_LOW16, 185)
     161  RELOC_NUMBER (R_SH_GOTPC_MEDLOW16, 186)
     162  RELOC_NUMBER (R_SH_GOTPC_MEDHI16, 187)
     163  RELOC_NUMBER (R_SH_GOTPC_HI16, 188)
     164  RELOC_NUMBER (R_SH_GOT10BY4, 189)
     165  RELOC_NUMBER (R_SH_GOTPLT10BY4, 190)
     166  RELOC_NUMBER (R_SH_GOT10BY8, 191)
     167  RELOC_NUMBER (R_SH_GOTPLT10BY8, 192)
     168  RELOC_NUMBER (R_SH_COPY64, 193)
     169  RELOC_NUMBER (R_SH_GLOB_DAT64, 194)
     170  RELOC_NUMBER (R_SH_JMP_SLOT64, 195)
     171  RELOC_NUMBER (R_SH_RELATIVE64, 196)
     172  FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_5, 197)
     173  FAKE_RELOC (R_SH_LAST_INVALID_RELOC_5, 241)
     174  RELOC_NUMBER (R_SH_SHMEDIA_CODE, 242)
     175  RELOC_NUMBER (R_SH_PT_16, 243)
     176  RELOC_NUMBER (R_SH_IMMS16, 244)
     177  RELOC_NUMBER (R_SH_IMMU16, 245)
     178  RELOC_NUMBER (R_SH_IMM_LOW16, 246)
     179  RELOC_NUMBER (R_SH_IMM_LOW16_PCREL, 247)
     180  RELOC_NUMBER (R_SH_IMM_MEDLOW16, 248)
     181  RELOC_NUMBER (R_SH_IMM_MEDLOW16_PCREL, 249)
     182  RELOC_NUMBER (R_SH_IMM_MEDHI16, 250)
     183  RELOC_NUMBER (R_SH_IMM_MEDHI16_PCREL, 251)
     184  RELOC_NUMBER (R_SH_IMM_HI16, 252)
     185  RELOC_NUMBER (R_SH_IMM_HI16_PCREL, 253)
     186  RELOC_NUMBER (R_SH_64, 254)
     187  RELOC_NUMBER (R_SH_64_PCREL, 255)
    91188END_RELOC_NUMBERS (R_SH_max)
    92189
  • branches/GNU/src/binutils/include/elf/sparc.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* SPARC ELF support for BFD.
    2    Copyright 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
     2   Copyright 1996, 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
    33   By Doug Evans, Cygnus Support, <dje@cygnus.com>.
    44
     
    127127  RELOC_NUMBER (R_SPARC_UA16, 55)
    128128
    129   /* little endian data relocs */
    130   RELOC_NUMBER (R_SPARC_REV32, 56)
    131 
     129  RELOC_NUMBER (R_SPARC_TLS_GD_HI22, 56)
     130  RELOC_NUMBER (R_SPARC_TLS_GD_LO10, 57)
     131  RELOC_NUMBER (R_SPARC_TLS_GD_ADD, 58)
     132  RELOC_NUMBER (R_SPARC_TLS_GD_CALL, 59)
     133  RELOC_NUMBER (R_SPARC_TLS_LDM_HI22, 60)
     134  RELOC_NUMBER (R_SPARC_TLS_LDM_LO10, 61)
     135  RELOC_NUMBER (R_SPARC_TLS_LDM_ADD, 62)
     136  RELOC_NUMBER (R_SPARC_TLS_LDM_CALL, 63)
     137  RELOC_NUMBER (R_SPARC_TLS_LDO_HIX22, 64)
     138  RELOC_NUMBER (R_SPARC_TLS_LDO_LOX10, 65)
     139  RELOC_NUMBER (R_SPARC_TLS_LDO_ADD, 66)
     140  RELOC_NUMBER (R_SPARC_TLS_IE_HI22, 67)
     141  RELOC_NUMBER (R_SPARC_TLS_IE_LO10, 68)
     142  RELOC_NUMBER (R_SPARC_TLS_IE_LD, 69)
     143  RELOC_NUMBER (R_SPARC_TLS_IE_LDX, 70)
     144  RELOC_NUMBER (R_SPARC_TLS_IE_ADD, 71)
     145  RELOC_NUMBER (R_SPARC_TLS_LE_HIX22, 72)
     146  RELOC_NUMBER (R_SPARC_TLS_LE_LOX10, 73)
     147  RELOC_NUMBER (R_SPARC_TLS_DTPMOD32, 74)
     148  RELOC_NUMBER (R_SPARC_TLS_DTPMOD64, 75)
     149  RELOC_NUMBER (R_SPARC_TLS_DTPOFF32, 76)
     150  RELOC_NUMBER (R_SPARC_TLS_DTPOFF64, 77)
     151  RELOC_NUMBER (R_SPARC_TLS_TPOFF32, 78)
     152  RELOC_NUMBER (R_SPARC_TLS_TPOFF64, 79)
     153 
    132154  EMPTY_RELOC  (R_SPARC_max_std)
    133155
    134156  RELOC_NUMBER (R_SPARC_GNU_VTINHERIT, 250)
    135157  RELOC_NUMBER (R_SPARC_GNU_VTENTRY, 251)
     158  RELOC_NUMBER (R_SPARC_REV32, 252)
    136159
    137160END_RELOC_NUMBERS (R_SPARC_max)
  • branches/GNU/src/binutils/include/elf/v850.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* V850 ELF support for BFD.
    2    Copyright 1997, 1998, 2000 Free Software Foundation, Inc.
     2   Copyright 1997, 1998, 2000, 2002 Free Software Foundation, Inc.
    33   Created by Michael Meissner, Cygnus Support <meissner@cygnus.com>
    44
    5 This file is part of BFD, the Binary File Descriptor library.
     5   This file is part of BFD, the Binary File Descriptor library.
    66
    7 This program is free software; you can redistribute it and/or modify
    8 it under the terms of the GNU General Public License as published by
    9 the Free Software Foundation; either version 2 of the License, or
    10 (at your option) any later version.
     7   This program is free software; you can redistribute it and/or modify
     8   it under the terms of the GNU General Public License as published by
     9   the Free Software Foundation; either version 2 of the License, or
     10   (at your option) any later version.
    1111
    12 This program is distributed in the hope that it will be useful,
    13 but WITHOUT ANY WARRANTY; without even the implied warranty of
    14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    15 GNU General Public License for more details.
     12   This program is distributed in the hope that it will be useful,
     13   but WITHOUT ANY WARRANTY; without even the implied warranty of
     14   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15   GNU General Public License for more details.
    1616
    17 You should have received a copy of the GNU General Public License
    18 along with this program; if not, write to the Free Software
    19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
     17   You should have received a copy of the GNU General Public License
     18   along with this program; if not, write to the Free Software
     19   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    2020
    2121/* This file holds definitions specific to the MIPS ELF ABI.  Note
     
    3636#define E_V850E_ARCH            0x10000000
    3737
    38 /* v850ea code.  */
    39 #define E_V850EA_ARCH           0x20000000
    4038
     39/* Flags for the st_other field.  */
     40#define V850_OTHER_SDA          0x01    /* Symbol had SDA relocations.  */
     41#define V850_OTHER_ZDA          0x02    /* Symbol had ZDA relocations.  */
     42#define V850_OTHER_TDA          0x04    /* Symbol had TDA relocations.  */
     43#define V850_OTHER_TDA_BYTE     0x08    /* Symbol had TDA byte relocations.  */
     44#define V850_OTHER_ERROR        0x80    /* Symbol had an error reported.  */
    4145
    42 /* Flags for the st_other field */
    43 #define V850_OTHER_SDA          0x01    /* symbol had SDA relocations */
    44 #define V850_OTHER_ZDA          0x02    /* symbol had ZDA relocations */
    45 #define V850_OTHER_TDA          0x04    /* symbol had TDA relocations */
    46 #define V850_OTHER_TDA_BYTE     0x08    /* symbol had TDA byte relocations */
    47 #define V850_OTHER_ERROR        0x80    /* symbol had an error reported */
    48 
    49 /* V850 relocations */
     46/* V850 relocations.  */
    5047#include "elf/reloc-macros.h"
    5148
     
    5754     RELOC_NUMBER (R_V850_HI16, 4)
    5855     RELOC_NUMBER (R_V850_LO16, 5)
    59      RELOC_NUMBER (R_V850_32, 6)
     56     RELOC_NUMBER (R_V850_ABS32, 6)
    6057     RELOC_NUMBER (R_V850_16, 7)
    6158     RELOC_NUMBER (R_V850_8, 8)
     
    7673     RELOC_NUMBER (R_V850_GNU_VTINHERIT, 23)
    7774     RELOC_NUMBER (R_V850_GNU_VTENTRY, 24)
     75     RELOC_NUMBER (R_V850_LONGCALL, 25)
     76     RELOC_NUMBER (R_V850_LONGJUMP, 26)
     77     RELOC_NUMBER (R_V850_ALIGN, 27)
     78     RELOC_NUMBER (R_V850_REL32, 28)
    7879END_RELOC_NUMBERS (R_V850_max)
    7980
     
    106107#define SHT_V850_ZCOMMON        0x70000002
    107108
    108 
    109109#endif /* _ELF_V850_H */
  • branches/GNU/src/binutils/include/elf/x86-64.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* x86_64 ELF support for BFD.
    2    Copyright (C) 2000 Free Software Foundation, Inc.
     2   Copyright (C) 2000, 2002 Free Software Foundation, Inc.
    33   Contributed by Jan Hubicka <jh@suse.cz>
    44
     
    2626START_RELOC_NUMBERS (elf_x86_64_reloc_type)
    2727     RELOC_NUMBER (R_X86_64_NONE,     0)      /* No reloc */
    28      RELOC_NUMBER (R_X86_64_64,               1)      /* Direct 64 bit  */
     28     RELOC_NUMBER (R_X86_64_64,       1)      /* Direct 64 bit  */
    2929     RELOC_NUMBER (R_X86_64_PC32,     2)      /* PC relative 32 bit signed */
    3030     RELOC_NUMBER (R_X86_64_GOT32,    3)      /* 32 bit GOT entry */
     
    3232     RELOC_NUMBER (R_X86_64_COPY,     5)      /* Copy symbol at runtime */
    3333     RELOC_NUMBER (R_X86_64_GLOB_DAT, 6)      /* Create GOT entry */
    34      RELOC_NUMBER (R_X86_64_JUMP_SLOT,        7)      /* Create PLT entry */
     34     RELOC_NUMBER (R_X86_64_JUMP_SLOT,7)      /* Create PLT entry */
    3535     RELOC_NUMBER (R_X86_64_RELATIVE, 8)      /* Adjust by program base */
    3636     RELOC_NUMBER (R_X86_64_GOTPCREL, 9)      /* 32 bit signed pc relative
    3737                                                 offset to GOT */
    38      RELOC_NUMBER (R_X86_64_32,               10)     /* Direct 32 bit zero extended */
    39      RELOC_NUMBER (R_X86_64_32S,              11)     /* Direct 32 bit sign extended */
    40      RELOC_NUMBER (R_X86_64_16,               12)     /* Direct 16 bit zero extended */
     38     RELOC_NUMBER (R_X86_64_32,       10)     /* Direct 32 bit zero extended */
     39     RELOC_NUMBER (R_X86_64_32S,      11)     /* Direct 32 bit sign extended */
     40     RELOC_NUMBER (R_X86_64_16,       12)     /* Direct 16 bit zero extended */
    4141     RELOC_NUMBER (R_X86_64_PC16,     13)     /* 16 bit sign extended pc relative*/
    42      RELOC_NUMBER (R_X86_64_8,                14)     /* Direct 8 bit sign extended */
    43      RELOC_NUMBER (R_X86_64_PC8,              15)     /* 8 bit sign extended pc relative*/
     42     RELOC_NUMBER (R_X86_64_8,        14)     /* Direct 8 bit sign extended */
     43     RELOC_NUMBER (R_X86_64_PC8,      15)     /* 8 bit sign extended pc relative*/
     44     RELOC_NUMBER (R_X86_64_DTPMOD64, 16)     /* ID of module containing symbol */
     45     RELOC_NUMBER (R_X86_64_DTPOFF64, 17)     /* Offset in TLS block */
     46     RELOC_NUMBER (R_X86_64_TPOFF64,  18)     /* Offset in initial TLS block */
     47     RELOC_NUMBER (R_X86_64_TLSGD,    19)     /* PC relative offset to GD GOT block */
     48     RELOC_NUMBER (R_X86_64_TLSLD,    20)     /* PC relative offset to LD GOT block */
     49     RELOC_NUMBER (R_X86_64_DTPOFF32, 21)     /* Offset in TLS block */
     50     RELOC_NUMBER (R_X86_64_GOTTPOFF, 22)     /* PC relative offset to IE GOT entry */
     51     RELOC_NUMBER (R_X86_64_TPOFF32,  23)     /* Offset in initial TLS block */
     52     RELOC_NUMBER (R_X86_64_GNU_VTINHERIT, 250)       /* GNU C++ hack  */
     53     RELOC_NUMBER (R_X86_64_GNU_VTENTRY, 251)         /* GNU C++ hack  */
    4454END_RELOC_NUMBERS (R_X86_64_max)
    4555
  • branches/GNU/src/binutils/include/filenames.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    66   some of them have case-insensitive file names.
    77
    8    Copyright 2000 Free Software Foundation, Inc.
     8   Copyright 2000, 2001 Free Software Foundation, Inc.
    99
    1010This file is part of BFD, the Binary File Descriptor library.
     
    2727#define FILENAMES_H
    2828
    29 #if defined(__MSDOS__) || defined(_WIN32) || defined(__OS2__)
     29#if defined(__MSDOS__) || defined(_WIN32) || defined(__OS2__) || defined (__CYGWIN__)
    3030
    3131#ifndef HAVE_DOS_BASED_FILE_SYSTEM
  • branches/GNU/src/binutils/include/floatformat.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    9696extern const struct floatformat floatformat_i960_ext;
    9797extern const struct floatformat floatformat_m88110_ext;
    98 extern const struct floatformat floatformat_arm_ext;
     98extern const struct floatformat floatformat_m88110_harris_ext;
     99extern const struct floatformat floatformat_arm_ext_big;
     100extern const struct floatformat floatformat_arm_ext_littlebyte_bigword;
     101/* IA-64 Floating Point register spilt into memory.  */
     102extern const struct floatformat floatformat_ia64_spill_big;
     103extern const struct floatformat floatformat_ia64_spill_little;
     104extern const struct floatformat floatformat_ia64_quad_big;
     105extern const struct floatformat floatformat_ia64_quad_little;
    99106
    100107/* Convert from FMT to a double.
  • branches/GNU/src/binutils/include/getopt.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* Declarations for getopt.
    2    Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998, 2000
    3    Free Software Foundation, Inc.
     2   Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998, 2000,
     3   2002 Free Software Foundation, Inc.
    44
    55   NOTE: The canonical source of this file is maintained with the GNU C Library.
     
    106106   to find the declaration so provide a fully prototyped one.  If it
    107107   is 1, we found it so don't provide any declaration at all.  */
    108 #if defined (__GNU_LIBRARY__) || (defined (HAVE_DECL_GETOPT) && !HAVE_DECL_GETOPT)
     108#if !HAVE_DECL_GETOPT
     109#if defined (__GNU_LIBRARY__) || defined (HAVE_DECL_GETOPT)
    109110/* Many other libraries have conflicting prototypes for getopt, with
    110    differences in the consts, in stdlib.h.  To avoid compilation
     111   differences in the consts, in unistd.h.  To avoid compilation
    111112   errors, only prototype getopt for the GNU C library.  */
    112113extern int getopt (int argc, char *const *argv, const char *shortopts);
    113 #else /* not __GNU_LIBRARY__ */
    114 # if !defined (HAVE_DECL_GETOPT)
     114#else
     115#ifndef __cplusplus
    115116extern int getopt ();
    116 # endif
    117 #endif /* __GNU_LIBRARY__ */
     117#endif /* __cplusplus */
     118#endif
     119#endif /* !HAVE_DECL_GETOPT */
     120
    118121extern int getopt_long (int argc, char *const *argv, const char *shortopts,
    119122                        const struct option *longopts, int *longind);
  • branches/GNU/src/binutils/include/hashtab.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* An expandable hash tables datatype. 
    2    Copyright (C) 1999, 2000 Free Software Foundation, Inc.
     2   Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
    33   Contributed by Vladimir Makarov (vmakarov@cygnus.com).
    44
     
    3737#endif /* __cplusplus */
    3838
    39 #include <ansidecl.h>
     39#include "ansidecl.h"
     40
     41#ifndef GTY
     42#define GTY(X)
     43#endif
    4044
    4145/* The type for a hash code.  */
     
    6468typedef int (*htab_trav) PARAMS ((void **, void *));
    6569
     70/* Memory-allocation function, with the same functionality as calloc().
     71   Iff it returns NULL, the hash table implementation will pass an error
     72   code back to the user, so if your code doesn't handle errors,
     73   best if you use xcalloc instead.  */
     74typedef PTR (*htab_alloc) PARAMS ((size_t, size_t));
     75
     76/* We also need a free() routine.  */
     77typedef void (*htab_free) PARAMS ((PTR));
     78
     79/* Memory allocation and deallocation; variants which take an extra
     80   argument.  */
     81typedef PTR (*htab_alloc_with_arg) PARAMS ((void *, size_t, size_t));
     82typedef void (*htab_free_with_arg) PARAMS ((void *, void *));
     83
    6684/* Hash tables are of the following type.  The structure
    6785   (implementation) of this type is not needed for using the hash
    6886   tables.  All work with hash table should be executed only through
    69    functions mentioned below. */
     87   functions mentioned below.  The size of this structure is subject to
     88   change.  */
    7089
    71 struct htab
     90struct htab GTY(())
    7291{
    7392  /* Pointer to hash function.  */
     
    81100
    82101  /* Table itself.  */
    83   PTR *entries;
     102  PTR * GTY ((use_param (""), length ("%h.size"))) entries;
    84103
    85104  /* Current size (in entries) of the hash table */
     
    100119  unsigned int collisions;
    101120
    102   /* This is non-zero if we are allowed to return NULL for function calls
    103      that allocate memory.  */
    104   int return_allocation_failure;
     121  /* Pointers to allocate/free functions.  */
     122  htab_alloc alloc_f;
     123  htab_free free_f;
     124
     125  /* Alternate allocate/free functions, which take an extra argument.  */
     126  PTR GTY((skip (""))) alloc_arg;
     127  htab_alloc_with_arg alloc_with_arg_f;
     128  htab_free_with_arg free_with_arg_f;
    105129};
    106130
     
    112136/* The prototypes of the package functions. */
    113137
    114 extern htab_t   htab_create     PARAMS ((size_t, htab_hash,
    115                                          htab_eq, htab_del));
     138extern htab_t   htab_create_alloc       PARAMS ((size_t, htab_hash,
     139                                                 htab_eq, htab_del,
     140                                                 htab_alloc, htab_free));
    116141
    117 /* This function is like htab_create, but may return NULL if memory
    118    allocation fails, and also signals that htab_find_slot_with_hash and
    119    htab_find_slot are allowed to return NULL when inserting.  */
    120 extern htab_t   htab_try_create PARAMS ((size_t, htab_hash,
    121                                          htab_eq, htab_del));
     142extern htab_t   htab_create_alloc_ex    PARAMS ((size_t, htab_hash,
     143                                                    htab_eq, htab_del,
     144                                                    PTR, htab_alloc_with_arg,
     145                                                    htab_free_with_arg));
     146
     147/* Backward-compatibility functions.  */
     148extern htab_t htab_create PARAMS ((size_t, htab_hash, htab_eq, htab_del));
     149extern htab_t htab_try_create PARAMS ((size_t, htab_hash, htab_eq, htab_del));
     150
     151extern void     htab_set_functions_ex   PARAMS ((htab_t, htab_hash,
     152                                                 htab_eq, htab_del,
     153                                                 PTR, htab_alloc_with_arg,
     154                                                 htab_free_with_arg));
     155
    122156extern void     htab_delete     PARAMS ((htab_t));
    123157extern void     htab_empty      PARAMS ((htab_t));
     
    135169
    136170extern void     htab_traverse   PARAMS ((htab_t, htab_trav, void *));
     171extern void     htab_traverse_noresize  PARAMS ((htab_t, htab_trav, void *));
    137172
    138173extern size_t   htab_size       PARAMS ((htab_t));
     
    146181extern htab_eq htab_eq_pointer;
    147182
     183/* A hash function for null-terminated strings.  */
     184extern hashval_t htab_hash_string PARAMS ((const PTR));
     185
    148186#ifdef __cplusplus
    149187}
  • branches/GNU/src/binutils/include/libiberty.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* Function declarations for libiberty.
    22
    3    Copyright 2001 Free Software Foundation, Inc.
     3   Copyright 2001, 2002 Free Software Foundation, Inc.
    44   
    55   Note - certain prototypes declared in this header file are for
     
    5252   malloc.  Use freeargv to free the vector.  */
    5353
    54 extern char **buildargv PARAMS ((char *)) ATTRIBUTE_MALLOC;
     54extern char **buildargv PARAMS ((const char *)) ATTRIBUTE_MALLOC;
    5555
    5656/* Free a vector returned by buildargv.  */
     
    7474   to find the declaration so provide a fully prototyped one.  If it
    7575   is 1, we found it so don't provide any declaration at all.  */
    76 #if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || (defined (HAVE_DECL_BASENAME) && !HAVE_DECL_BASENAME)
     76#if !HAVE_DECL_BASENAME
     77#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (HAVE_DECL_BASENAME)
    7778extern char *basename PARAMS ((const char *));
    7879#else
    79 # if !defined (HAVE_DECL_BASENAME)
    8080extern char *basename ();
    81 # endif
    82 #endif
    83 
    84 /* Concatenate an arbitrary number of strings, up to (char *) NULL.
    85    Allocates memory using xmalloc.  */
     81#endif
     82#endif
     83
     84/* A well-defined basename () that is always compiled in.  */
     85
     86extern const char *lbasename PARAMS ((const char *));
     87
     88/* A well-defined realpath () that is always compiled in.  */
     89
     90extern char *lrealpath PARAMS ((const char *));
     91
     92/* Concatenate an arbitrary number of strings.  You must pass NULL as
     93   the last argument of this function, to terminate the list of
     94   strings.  Allocates memory using xmalloc.  */
    8695
    8796extern char *concat PARAMS ((const char *, ...)) ATTRIBUTE_MALLOC;
     97
     98/* Concatenate an arbitrary number of strings.  You must pass NULL as
     99   the last argument of this function, to terminate the list of
     100   strings.  Allocates memory using xmalloc.  The first argument is
     101   not one of the strings to be concatenated, but if not NULL is a
     102   pointer to be freed after the new string is created, similar to the
     103   way xrealloc works.  */
     104
     105extern char *reconcat PARAMS ((char *, const char *, ...)) ATTRIBUTE_MALLOC;
     106
     107/* Determine the length of concatenating an arbitrary number of
     108   strings.  You must pass NULL as the last argument of this function,
     109   to terminate the list of strings.  */
     110
     111extern unsigned long concat_length PARAMS ((const char *, ...));
     112
     113/* Concatenate an arbitrary number of strings into a SUPPLIED area of
     114   memory.  You must pass NULL as the last argument of this function,
     115   to terminate the list of strings.  The supplied memory is assumed
     116   to be large enough.  */
     117
     118extern char *concat_copy PARAMS ((char *, const char *, ...));
     119
     120/* Concatenate an arbitrary number of strings into a GLOBAL area of
     121   memory.  You must pass NULL as the last argument of this function,
     122   to terminate the list of strings.  The supplied memory is assumed
     123   to be large enough.  */
     124
     125extern char *concat_copy2 PARAMS ((const char *, ...));
     126
     127/* This is the global area used by concat_copy2.  */
     128
     129extern char *libiberty_concat_ptr;
     130
     131/* Concatenate an arbitrary number of strings.  You must pass NULL as
     132   the last argument of this function, to terminate the list of
     133   strings.  Allocates memory using alloca.  The arguments are
     134   evaluated twice!  */
     135#define ACONCAT(ACONCAT_PARAMS) \
     136  (libiberty_concat_ptr = alloca (concat_length ACONCAT_PARAMS + 1), \
     137   concat_copy2 ACONCAT_PARAMS)
    88138
    89139/* Check whether two file descriptors refer to the same file.  */
     
    99149
    100150extern long get_run_time PARAMS ((void));
     151
     152/* Generate a relocated path to some installation directory.  Allocates
     153   return value using malloc.  */
     154
     155extern char *make_relative_prefix PARAMS ((const char *, const char *,
     156                                           const char *));
    101157
    102158/* Choose a temporary directory to use for scratch files.  */
     
    191247extern PTR xmemdup PARAMS ((const PTR, size_t, size_t)) ATTRIBUTE_MALLOC;
    192248
     249/* Physical memory routines.  Return values are in BYTES.  */
     250extern double physmem_total PARAMS ((void));
     251extern double physmem_available PARAMS ((void));
     252
    193253/* hex character manipulation routines */
    194254
    195255#define _hex_array_size 256
    196256#define _hex_bad        99
    197 extern char _hex_value[_hex_array_size];
     257extern const char _hex_value[_hex_array_size];
    198258extern void hex_init PARAMS ((void));
    199259#define hex_p(c)        (hex_value (c) != _hex_bad)
     
    219279extern int pwait PARAMS ((int, int *, int));
    220280
     281#if !HAVE_DECL_ASPRINTF
    221282/* Like sprintf but provides a pointer to malloc'd storage, which must
    222283   be freed by the caller.  */
    223284
    224285extern int asprintf PARAMS ((char **, const char *, ...)) ATTRIBUTE_PRINTF_2;
    225 
     286#endif
     287
     288#if !HAVE_DECL_VASPRINTF
    226289/* Like vsprintf but provides a pointer to malloc'd storage, which
    227290   must be freed by the caller.  */
     
    229292extern int vasprintf PARAMS ((char **, const char *, va_list))
    230293  ATTRIBUTE_PRINTF(2,0);
     294#endif
    231295
    232296#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
     297
     298/* Drastically simplified alloca configurator.  If we're using GCC,
     299   we use __builtin_alloca; otherwise we use the C alloca.  The C
     300   alloca is always available.  You can override GCC by defining
     301   USE_C_ALLOCA yourself.  The canonical autoconf macro C_ALLOCA is
     302   also set/unset as it is often used to indicate whether code needs
     303   to call alloca(0).  */
     304extern PTR C_alloca PARAMS ((size_t)) ATTRIBUTE_MALLOC;
     305#undef alloca
     306#if GCC_VERSION >= 2000 && !defined USE_C_ALLOCA
     307# define alloca(x) __builtin_alloca(x)
     308# undef C_ALLOCA
     309# define ASTRDUP(X) \
     310  (__extension__ ({ const char *const libiberty_optr = (X); \
     311   const unsigned long libiberty_len = strlen (libiberty_optr) + 1; \
     312   char *const libiberty_nptr = alloca (libiberty_len); \
     313   (char *) memcpy (libiberty_nptr, libiberty_optr, libiberty_len); }))
     314#else
     315# define alloca(x) C_alloca(x)
     316# undef USE_C_ALLOCA
     317# define USE_C_ALLOCA 1
     318# undef C_ALLOCA
     319# define C_ALLOCA 1
     320extern const char *libiberty_optr;
     321extern char *libiberty_nptr;
     322extern unsigned long libiberty_len;
     323# define ASTRDUP(X) \
     324  (libiberty_optr = (X), \
     325   libiberty_len = strlen (libiberty_optr) + 1, \
     326   libiberty_nptr = alloca (libiberty_len), \
     327   (char *) memcpy (libiberty_nptr, libiberty_optr, libiberty_len))
     328#endif
    233329
    234330#ifdef __cplusplus
  • branches/GNU/src/binutils/include/mpw/ChangeLog

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1 2001-06-07  Alan Modra  <amodra@bigpond.net.au>
    2 
    3         * mpw.h: Update copyright notice.
    4 
    51Tue Feb 27 12:23:04 1996  Raymond Jou  <rjou@mexican.cygnus.com>
    62
  • branches/GNU/src/binutils/include/nlm/ChangeLog

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1 2001-06-07  Alan Modra  <amodra@bigpond.net.au>
     12001-10-02  Alan Modra  <amodra@bigpond.net.au>
    22
    3         * Many files: Update copyright notices.
     3        * common.h (NLM_CAT, NLM_CAT3): Don't define.
     4        (NLM_CAT4): Update conditions under which this is defined.  Document
     5        why CONCAT4 can't be used.
    46
    57Fri May  6 13:31:04 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
  • branches/GNU/src/binutils/include/nlm/common.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* NLM (NetWare Loadable Module) support for BFD.
    2    Copyright 1993 Free Software Foundation, Inc.
     2   Copyright 1993, 2001 Free Software Foundation, Inc.
    33
    44   Written by Fred Fish @ Cygnus Support
     
    2424   that are common to both the internal and external representations. */
    2525
    26 /* Semi-portable string concatenation in cpp.
    27    The NLM_CAT4 hack is to avoid a problem with some strict ANSI C
    28    preprocessors.  The problem is, "32_" or "64_" are not a valid
    29    preprocessing tokens, and we don't want extra underscores (e.g.,
    30    "nlm_32_").  The XNLM_CAT2 macro will cause the inner NLM_CAT macros
    31    to be evaluated first, producing still-valid pp-tokens.  Then the
    32    final concatenation can be done.  (Sigh.)  */
    33 
    34 #ifdef SABER
    35 #  define NLM_CAT(a,b)          a##b
    36 #  define NLM_CAT3(a,b,c)       a##b##c
    37 #  define NLM_CAT4(a,b,c,d)     a##b##c##d
    38 #else
    39 #  ifdef __STDC__
    40 #    define NLM_CAT(a,b)        a##b
    41 #    define NLM_CAT3(a,b,c)     a##b##c
    42 #    define XNLM_CAT2(a,b)      NLM_CAT(a,b)
    43 #    define NLM_CAT4(a,b,c,d)   XNLM_CAT2(NLM_CAT(a,b),NLM_CAT(c,d))
    44 #  else
    45 #    define NLM_CAT(a,b)        a/**/b
    46 #    define NLM_CAT3(a,b,c)     a/**/b/**/c
    47 #    define NLM_CAT4(a,b,c,d)   a/**/b/**/c/**/d
    48 #  endif
    49 #endif
    50 
    5126/* If NLM_ARCH_SIZE is not defined, default to 32.  NLM_ARCH_SIZE is
    5227   optionally defined by the application. */
     
    5429#ifndef NLM_ARCH_SIZE
    5530#  define NLM_ARCH_SIZE                 32
     31#endif
     32
     33/* Due to horrible details of ANSI macro expansion, we can't use CONCAT4
     34   for NLM_NAME.  CONCAT2 is used in BFD_JUMP_TABLE macros, and some of
     35   them will expand to tokens that themselves are macros defined in terms
     36   of NLM_NAME.  If NLM_NAME were defined using CONCAT4 (which is itself
     37   defined in bfd-in.h using CONCAT2), ANSI preprocessor rules say that
     38   the CONCAT2 within NLM_NAME should not be expanded.
     39   So use another name.  */
     40#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
     41#ifdef SABER
     42#define NLM_CAT4(a,b,c,d) a##b##c##d
     43#else
     44/* This hack is to avoid a problem with some strict ANSI C preprocessors.
     45   The problem is, "32_" is not a valid preprocessing token, and we don't
     46   want extra underscores (e.g., "nlm_32_").  The NLM_XCAT2 macro will
     47   cause the inner CAT2 macros to be evaluated first, producing
     48   still-valid pp-tokens.  Then the final concatenation can be done.  */
     49#define NLM_CAT2(a,b)     a##b
     50#define NLM_XCAT2(a,b)    NLM_CAT2(a,b)
     51#define NLM_CAT4(a,b,c,d) NLM_XCAT2(NLM_CAT2(a,b),NLM_CAT2(c,d))
     52#endif
     53#else
     54#define NLM_CAT4(a,b,c,d) a/**/b/**/c/**/d
    5655#endif
    5756
  • branches/GNU/src/binutils/include/objalloc.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* objalloc.h -- routines to allocate memory for objects
    2    Copyright 1997 Free Software Foundation, Inc.
     2   Copyright 1997, 2001 Free Software Foundation, Inc.
    33   Written by Ian Lance Taylor, Cygnus Solutions.
    44
     
    5757#include <stddef.h>
    5858#endif
    59 #define OBJALLOC_ALIGN \
    60   ((ptrdiff_t) ((char *) &((struct objalloc_align *) 0)->d - (char *) 0))
    61 #else
    62 #define OBJALLOC_ALIGN \
    63   ((long) ((char *) &((struct objalloc_align *) 0)->d - (char *) 0))
    6459#endif
     60#ifndef offsetof
     61#define offsetof(TYPE, MEMBER) ((unsigned long) &((TYPE *)0)->MEMBER)
     62#endif
     63#define OBJALLOC_ALIGN offsetof (struct objalloc_align, d)
    6564
    6665/* Create an objalloc structure.  Returns NULL if malloc fails.  */
  • 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
  • branches/GNU/src/binutils/include/partition.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* List implementation of a partition of consecutive integers.
    2    Copyright (C) 2000, 2001 Free Software Foundation, Inc.
     2   Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
    33   Contributed by CodeSourcery, LLC.
    44
    5    This file is part of GNU CC.
     5   This file is part of GCC.
    66
    7    GNU CC is free software; you can redistribute it and/or modify
     7   GCC is free software; you can redistribute it and/or modify
    88   it under the terms of the GNU General Public License as published by
    99   the Free Software Foundation; either version 2, or (at your option)
    1010   any later version.
    1111
    12    GNU CC is distributed in the hope that it will be useful,
     12   GCC is distributed in the hope that it will be useful,
    1313   but WITHOUT ANY WARRANTY; without even the implied warranty of
    1414   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     
    1616
    1717   You should have received a copy of the GNU General Public License
    18    along with GNU CC; see the file COPYING.  If not, write to
     18   along with GCC; see the file COPYING.  If not, write to
    1919   the Free Software Foundation, 59 Temple Place - Suite 330,
    2020   Boston, MA 02111-1307, USA.  */
     
    4141#endif /* __cplusplus */
    4242
    43 #include <ansidecl.h>
     43#include "ansidecl.h"
    4444#include <stdio.h>
    4545
     
    7979    ((partition__)->elements[(element__)].class_element)
    8080
     81#ifdef __cplusplus
     82}
     83#endif /* __cplusplus */
     84
    8185#endif /* _PARTITION_H */
  • branches/GNU/src/binutils/include/safe-ctype.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    6464  _sch_isidnum  = _sch_isidst|_sch_isdigit,     /* A-Za-z0-9_ */
    6565  _sch_isgraph  = _sch_isalnum|_sch_ispunct,    /* isprint and not space */
    66   _sch_iscppsp  = _sch_isvsp|_sch_isnvsp        /* isspace + \0 */
     66  _sch_iscppsp  = _sch_isvsp|_sch_isnvsp,       /* isspace + \0 */
     67  _sch_isbasic  = _sch_isprint|_sch_iscppsp     /* basic charset of ISO C
     68                                                   (plus ` and @)  */
    6769};
    6870
     
    7072extern const unsigned short _sch_istable[256];
    7173
    72 #define _sch_test(c, bit) (_sch_istable[(c) & 0xff] & (bit))
     74#define _sch_test(c, bit) (_sch_istable[(c) & 0xff] & (unsigned short)(bit))
    7375
    7476#define ISALPHA(c)  _sch_test(c, _sch_isalpha)
     
    8789#define ISIDNUM(c)      _sch_test(c, _sch_isidnum)
    8890#define ISIDST(c)       _sch_test(c, _sch_isidst)
     91#define IS_ISOBASIC(c)  _sch_test(c, _sch_isbasic)
    8992#define IS_VSPACE(c)    _sch_test(c, _sch_isvsp)
    9093#define IS_NVSPACE(c)   _sch_test(c, _sch_isnvsp)
  • branches/GNU/src/binutils/include/sort.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* Sorting algorithms.
    2    Copyright (C) 2000 Free Software Foundation, Inc.
     2   Copyright (C) 2000, 2002 Free Software Foundation, Inc.
    33   Contributed by Mark Mitchell <mark@codesourcery.com>.
    44
    5 This file is part of GNU CC.
     5This file is part of GCC.
    66   
    7 GNU CC is free software; you can redistribute it and/or modify it
     7GCC is free software; you can redistribute it and/or modify it
    88under the terms of the GNU General Public License as published by
    99the Free Software Foundation; either version 2, or (at your option)
    1010any later version.
    1111
    12 GNU CC is distributed in the hope that it will be useful, but
     12GCC is distributed in the hope that it will be useful, but
    1313WITHOUT ANY WARRANTY; without even the implied warranty of
    1414MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     
    1616
    1717You should have received a copy of the GNU General Public License
    18 along with GNU CC; see the file COPYING.  If not, write to
     18along with GCC; see the file COPYING.  If not, write to
    1919the Free Software Foundation, 59 Temple Place - Suite 330,
    2020Boston, MA 02111-1307, USA.  */
     
    3232#endif /* __cplusplus */
    3333
    34 #include <ansidecl.h>
     34#include "ansidecl.h"
    3535
    3636/* Sort an array of pointers.  */
  • branches/GNU/src/binutils/include/splay-tree.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* A splay-tree datatype. 
    2    Copyright 1998, 1999, 2000 Free Software Foundation, Inc.
     2   Copyright 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
    33   Contributed by Mark Mitchell (mark@markmitchell.com).
    44
    5 This file is part of GNU CC.
     5This file is part of GCC.
    66   
    7 GNU CC is free software; you can redistribute it and/or modify it
     7GCC is free software; you can redistribute it and/or modify it
    88under the terms of the GNU General Public License as published by
    99the Free Software Foundation; either version 2, or (at your option)
    1010any later version.
    1111
    12 GNU CC is distributed in the hope that it will be useful, but
     12GCC is distributed in the hope that it will be useful, but
    1313WITHOUT ANY WARRANTY; without even the implied warranty of
    1414MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     
    1616
    1717You should have received a copy of the GNU General Public License
    18 along with GNU CC; see the file COPYING.  If not, write to
     18along with GCC; see the file COPYING.  If not, write to
    1919the Free Software Foundation, 59 Temple Place - Suite 330,
    2020Boston, MA 02111-1307, USA.  */
     
    3535#endif /* __cplusplus */
    3636
    37 #include <ansidecl.h>
     37#include "ansidecl.h"
     38
     39#ifndef GTY
     40#define GTY(X)
     41#endif
    3842
    3943/* Use typedefs for the key and data types to facilitate changing
     
    6266typedef int (*splay_tree_foreach_fn) PARAMS((splay_tree_node, void*));
    6367
     68/* The type of a function used to allocate memory for tree root and
     69   node structures.  The first argument is the number of bytes needed;
     70   the second is a data pointer the splay tree functions pass through
     71   to the allocator.  This function must never return zero.  */
     72typedef PTR (*splay_tree_allocate_fn) PARAMS((int, void *));
     73
     74/* The type of a function used to free memory allocated using the
     75   corresponding splay_tree_allocate_fn.  The first argument is the
     76   memory to be freed; the latter is a data pointer the splay tree
     77   functions pass through to the freer.  */
     78typedef void (*splay_tree_deallocate_fn) PARAMS((void *, void *));
     79
    6480/* The nodes in the splay tree.  */
    65 struct splay_tree_node_s
     81struct splay_tree_node_s GTY(())
    6682{
    6783  /* The key.  */
    68   splay_tree_key key;
     84  splay_tree_key GTY ((use_param1 (""))) key;
    6985
    7086  /* The value.  */
    71   splay_tree_value value;
     87  splay_tree_value GTY ((use_param2 (""))) value;
    7288
    7389  /* The left and right children, respectively.  */
    74   splay_tree_node left;
    75   splay_tree_node right;
     90  splay_tree_node GTY ((use_params (""))) left;
     91  splay_tree_node GTY ((use_params (""))) right;
    7692};
    7793
    7894/* The splay tree itself.  */
    79 typedef struct splay_tree_s
     95struct splay_tree_s GTY(())
    8096{
    8197  /* The root of the tree.  */
    82   splay_tree_node root;
     98  splay_tree_node GTY ((use_params (""))) root;
    8399
    84100  /* The comparision function.  */
     
    90106  /* The deallocate-value function.  NULL if no cleanup is necessary.  */
    91107  splay_tree_delete_value_fn delete_value;
    92 } *splay_tree;
     108
     109  /* Allocate/free functions, and a data pointer to pass to them.  */
     110  splay_tree_allocate_fn allocate;
     111  splay_tree_deallocate_fn deallocate;
     112  PTR GTY((skip (""))) allocate_data;
     113
     114};
     115typedef struct splay_tree_s *splay_tree;
    93116
    94117extern splay_tree splay_tree_new        PARAMS((splay_tree_compare_fn,
    95118                                                splay_tree_delete_key_fn,
    96119                                                splay_tree_delete_value_fn));
     120extern splay_tree splay_tree_new_with_allocator
     121                                        PARAMS((splay_tree_compare_fn,
     122                                                splay_tree_delete_key_fn,
     123                                                splay_tree_delete_value_fn,
     124                                                splay_tree_allocate_fn,
     125                                                splay_tree_deallocate_fn,
     126                                                void *));
    97127extern void splay_tree_delete           PARAMS((splay_tree));
    98128extern splay_tree_node splay_tree_insert         
     
    111141                                        PARAMS((splay_tree,
    112142                                                splay_tree_key));
     143extern splay_tree_node splay_tree_max
     144                                        PARAMS((splay_tree));
     145extern splay_tree_node splay_tree_min
     146                                        PARAMS((splay_tree));
    113147extern int splay_tree_foreach           PARAMS((splay_tree,
    114148                                                splay_tree_foreach_fn,
Note: See TracChangeset for help on using the changeset viewer.