summaryrefslogtreecommitdiffstats
path: root/binutils-2.22/include
diff options
context:
space:
mode:
Diffstat (limited to 'binutils-2.22/include')
-rw-r--r--binutils-2.22/include/ChangeLog189
-rw-r--r--binutils-2.22/include/ansidecl.h6
-rw-r--r--binutils-2.22/include/bfdlink.h9
-rw-r--r--binutils-2.22/include/demangle.h22
-rw-r--r--binutils-2.22/include/dis-asm.h10
-rw-r--r--binutils-2.22/include/dwarf2.def685
-rw-r--r--binutils-2.22/include/dwarf2.h709
-rw-r--r--binutils-2.22/include/elf/ChangeLog168
-rw-r--r--binutils-2.22/include/elf/avr.h26
-rw-r--r--binutils-2.22/include/elf/common.h22
-rwxr-xr-xbinutils-2.22/include/elf/epiphany.h59
-rw-r--r--binutils-2.22/include/elf/m68hc11.h15
-rw-r--r--binutils-2.22/include/elf/mips.h9
-rw-r--r--binutils-2.22/include/elf/mn10300.h9
-rw-r--r--binutils-2.22/include/elf/ppc.h27
-rw-r--r--binutils-2.22/include/elf/rl78.h119
-rw-r--r--binutils-2.22/include/elf/rx.h3
-rw-r--r--binutils-2.22/include/elf/s390.h1
-rw-r--r--binutils-2.22/include/elf/sparc.h15
-rw-r--r--binutils-2.22/include/elf/tilegx.h48
-rw-r--r--binutils-2.22/include/elf/tilepro.h18
-rw-r--r--binutils-2.22/include/elf/xgate.h77
-rw-r--r--binutils-2.22/include/filenames.h6
-rw-r--r--binutils-2.22/include/gdb/ChangeLog28
-rw-r--r--binutils-2.22/include/gdb/callback.h12
-rw-r--r--binutils-2.22/include/gdb/fileio.h2
-rw-r--r--binutils-2.22/include/gdb/gdb-index.h99
-rw-r--r--binutils-2.22/include/gdb/remote-sim.h4
-rw-r--r--binutils-2.22/include/gdb/signals.def302
-rw-r--r--binutils-2.22/include/gdb/signals.h8
-rw-r--r--binutils-2.22/include/gdb/sim-arm.h3
-rw-r--r--binutils-2.22/include/gdb/sim-bfin.h2
-rw-r--r--binutils-2.22/include/gdb/sim-cr16.h2
-rw-r--r--binutils-2.22/include/gdb/sim-d10v.h3
-rw-r--r--binutils-2.22/include/gdb/sim-frv.h2
-rw-r--r--binutils-2.22/include/gdb/sim-h8300.h3
-rw-r--r--binutils-2.22/include/gdb/sim-lm32.h2
-rw-r--r--binutils-2.22/include/gdb/sim-m32c.h3
-rw-r--r--binutils-2.22/include/gdb/sim-ppc.h2
-rw-r--r--binutils-2.22/include/gdb/sim-rl78.h76
-rw-r--r--binutils-2.22/include/gdb/sim-rx.h2
-rw-r--r--binutils-2.22/include/gdb/sim-sh.h4
-rw-r--r--binutils-2.22/include/leb128.h136
-rw-r--r--binutils-2.22/include/libiberty.h4
-rw-r--r--binutils-2.22/include/mach-o/ChangeLog32
-rw-r--r--binutils-2.22/include/mach-o/codesign.h85
-rw-r--r--binutils-2.22/include/mach-o/external.h63
-rw-r--r--binutils-2.22/include/mach-o/loader.h19
-rw-r--r--binutils-2.22/include/mach-o/reloc.h22
-rw-r--r--binutils-2.22/include/obstack.h6
-rw-r--r--binutils-2.22/include/opcode/ChangeLog95
-rw-r--r--binutils-2.22/include/opcode/avr.h12
-rw-r--r--binutils-2.22/include/opcode/crx.h4
-rw-r--r--binutils-2.22/include/opcode/i386.h2
-rw-r--r--binutils-2.22/include/opcode/m68hc11.h50
-rw-r--r--binutils-2.22/include/opcode/mips.h18
-rw-r--r--binutils-2.22/include/opcode/ppc.h54
-rw-r--r--binutils-2.22/include/opcode/rl78.h168
-rw-r--r--binutils-2.22/include/opcode/sparc.h57
-rw-r--r--binutils-2.22/include/opcode/tilegx.h2
-rw-r--r--binutils-2.22/include/opcode/tilepro.h2
-rw-r--r--binutils-2.22/include/opcode/xgate.h120
-rw-r--r--binutils-2.22/include/plugin-api.h3
-rw-r--r--binutils-2.22/include/splay-tree.h19
-rw-r--r--binutils-2.22/include/timeval-utils.h40
-rw-r--r--binutils-2.22/include/vms/ChangeLog4
-rw-r--r--binutils-2.22/include/vms/lbr.h3
67 files changed, 2874 insertions, 957 deletions
diff --git a/binutils-2.22/include/ChangeLog b/binutils-2.22/include/ChangeLog
index af96977..3f16e04 100644
--- a/binutils-2.22/include/ChangeLog
+++ b/binutils-2.22/include/ChangeLog
@@ -1,16 +1,184 @@
-2011-10-25 Alan Modra <amodra@gmail.com>
+2012-07-24 Stephan McCamant <smcc@cs.berkeley.edu>
+ Dr David Alan Gilbert <dave@treblig.org>
+
+ PR binutils/13135
+ * dis-asm.h (fprintf_ftype): Add ATTRIBUTE_FPTR_PRINTF_2.
+
+2012-07-13 Doug Evans <dje@google.com>
+
+ * filenames.h: #include "hashtab.h".
+ (filename_hash, filename_eq): Declare.
+
+2012-07-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ * elf/s390.h (START_RELOC_NUMBERS): Define R_390_IRELATIVE reloc.
+
+2012-06-18 Doug Evans <dje@google.com>
+
+ * dwarf2.def (DW_OP): Add DW_OP_GNU_const_index.
+
+2012-06-12 Rafael Ávila de Espíndola <respindola@mozilla.com>
+
+ * plugin-api.h (ld_plugin_output_file_type): Add LDPO_PIE.
+
+2012-06-08 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2.def (DW_FORM_GNU_ref_alt, DW_FORM_GNU_strp_alt): New
+ forms.
+ * dwarf2.h (enum dwarf_macro_record_type): Add
+ DW_MACRO_GNU_define_indirect_alt, DW_MACRO_GNU_undef_indirect_alt
+ and DW_MACRO_GNU_transparent_include_alt.
+
+2012-05-23 Doug Evans <dje@google.com>
+
+ * leb128.h: #include stdint.h, inttypes.h.
+ (read_uleb128_to_uint64): Renamed from read_uleb128_to_ull.
+ Change to take a uint64_t * argument instead of unsigned long long.
+ (read_sleb128_to_uint64): Renamed from read_sleb128_to_ll.
+ Change to take an int64_t * argument instead of long long.
+
+2012-05-22 Doug Evans <dje@google.com>
+
+ * leb128.h: New file.
+
+2012-05-19 Gary Funck <gary@intrepid.com>
+
+ * dwarf2.def: Update comment re: UPC extensions to reference
+ DWARF4 specification.
+
+2012-05-15 James Murray <jsm@jsm-net.demon.co.uk>
+
+ * dis-asm.h (print_insn_m9s12x): Prototype.
+ (print_insn_m9s12xg): Prototype.
+
+2012-05-03 Sean Keys <skeys@ipdatasys.com>
+
+ * dis-asm.h (print_insn_xgate): Define.
+ (print_insn_xgate): Ditto.
+ Added new files for XGATE port.
+
+2012-05-02 Cary Coutant <ccoutant@google.com>
+
+ * dwarf2.def: Remove DW_FORM_GNU_ref_index,
+ replace DW_AT_GNU_ref_base with DW_AT_GNU_ranges_base.
+
+2012-04-28 Doug Evans <dje@google.com>
+
+ * dwarf2.def (DW_OP): Add DW_OP_GNU_addr_index.
+
+2012-04-27 Tom Tromey <tromey@redhat.com>
+
+ * dwarf2.h: Wrap function declarations in extern "C".
+
+2012-04-27 Tom Tromey <tromey@redhat.com>
+
+ * dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
+ (enum dwarf_location_atom, enum dwarf_type, enum
+ dwarf_call_frame_info): Remove.
+ (DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
+ (DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
+ Include dwarf2.def.
+ (get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
+ (get_DW_OP_name, get_DW_ATE_name): Declare.
+ * dwarf2.def: New file, from dwarf2.h.
+
+2012-04-12 David S. Miller <davem@davemloft.net>
+
+ * elf/sparc.h (R_SPARC_WDISP10): New reloc.
+ * opcode/sparc.h: Define '=' as generating R_SPARC_WDISP10.
+
+2012-04-10 Tristan Gingold <gingold@adacore.com>
+
+ * splay-tree.h: Conditionnaly includes stdint.h and inttypes.h
+ (libi_uhostptr_t, libi_shostptr_t): Remove, replaced by uintptr_t.
+
+2012-04-09 Roland McGrath <mcgrathr@google.com>
+
+ * bfdlink.h (struct bfd_link_info): Add new member user_phdrs.
+
+2012-03-15 Alan Modra <amodra@gmail.com>
+
+ * dis-asm.h (disassemble_init_powerpc): Declare.
+
+2009-11-06 Jonas Maebe <jonas.maebe@elis.ugent.be>
+
+ Add DWARF attribute value for the "Borland fastcall" calling
+ convention.
+ * elf/dwarf2.h: Add DW_CC_GNU_borland_fastcall_i386 constant.
+
+2012-01-31 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/13616
+ * bfdlink.h (bfd_link_order): Update comments on data size.
+
+2012-01-26 Cary Coutant <ccoutant@google.com>
+
+ * dwarf2.h (enum dwarf_form): Add Fission extensions.
+ (enum dwarf_attribute): Likewise.
+
+2012-01-06 Jason Merrill <jason@redhat.com>
+
+ PR c++/6057
+ PR c++/48051
+ PR c++/50855
+ PR c++/51322
+ * demangle.h (enum demangle_component_type): Add
+ DEMANGLE_COMPONENT_INITIALIZER_LIST, DEMANGLE_COMPONENT_NULLARY.
+
+2011-12-14 Iain Sandoe <iains@gcc.gnu.org>
+
+ * mach-o/loader.h (bfd_mach_o_section_type): define
+ BFD_MACH_O_S_ATTR_NONE to 0.
+
+2011-11-07 Richard Henderson <rth@redhat.com>
+
+ Merged from transactional-memory.
+
+ * demangle.h (enum gnu_v3_ctor_kinds): Add gnu_v3_object_ctor_group.
+ (enum gnu_v3_dtor_kinds): Add gnu_v3_object_dtor_group.
+ (DEMANGLE_COMPONENT_TRANSACTION_CLONE): New.
+ (DEMANGLE_COMPONENT_NONTRANSACTION_CLONE): New.
+
+2011-11-01 DJ Delorie <dj@redhat.com>
+
+ * dis-asm.h (print_insn_rl78): Declare.
+
+2011-10-25 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ * dis-asm.h (print_insn_epiphany): Declare.
+
+2011-10-21 Ulrich Drepper <drepper@gmail.com>
+
+ * obstack.h [!GNUC] (obstack_free): Avoid cast to int.
+
+2011-10-21 Marc Glisse <marc.glisse@inria.fr>
+
+ * ansidecl.h (ENUM_BITFIELD): Always use enum in C++
+
+2011-10-19 Alan Modra <amodra@gmail.com>
- Apply mainline patches.
- 2011-10-19 Alan Modra <amodra@gmail.com>
PR ld/13254
* bfdlink.h (struct bfd_link_info): Add error_textrel.
- 2011-09-26 Cary Coutant <ccoutant@google.com>
+2011-09-28 Doug Evans <dje@google.com>
+
+ * timeval-utils.h: New file.
+
+ * libiberty.h (countargv): Declare.
+
+2011-09-26 Cary Coutant <ccoutant@google.com>
+
gcc PR lto/47247
* plugin-api.h (enum ld_plugin_symbol_resolution): Add
LDPR_PREVAILING_DEF_IRONLY_EXP.
(enum ld_plugin_tag): Add LDPT_GET_SYMBOLS_V2.
+2011-09-23 Cary Coutant <ccoutant@google.com>
+
+ PR 40831
+ * demangle.h (enum demangle_component_type): Add
+ DEMANGLE_COMPONENT_CLONE.
+
2011-09-15 H.J. Lu <hongjiu.lu@intel.com>
PR ld/12975
@@ -132,12 +300,6 @@
* bfdlink.h (struct bfd_link_hash_entry): Remove u.undef.weak field.
-2011-05-09 Paul Brook <paul@codesourcery.com>
-
- * elf/tic6x.h (ELF_STRING_C6000_unwind,
- ELF_STRING_C6000_unwind_info, ELF_STRING_C6000_unwind_once,
- ELF_STRING_C6000_unwind_info_once): Define.
-
2011-04-30 Jakub Jelinek <jakub@redhat.com>
* dwarf2.h (DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
@@ -432,11 +594,6 @@
(disassemble_init_for_target): Ditto.
(init_disassemble_info): Ditto.
-2009-12-03 David Daney <ddaney@caviumnetworks.com>
- Adam Nemet <adambnemet@gmail.com>
-
- * elf/mips.h (E_MIPS_MACH_OCTEON2): New machine flag.
-
2009-11-18 Alan Modra <amodra@bigpond.net.au>
* alloca-conf.h: Clarify comment.
@@ -445,7 +602,7 @@
Add DWARF attribute value for the "Borland fastcall" calling
convention.
- * elf/dwarf2.h: Add DW_CC_GNU_borland_fastcall_i386 constant.
+ * dwarf2.h: Add DW_CC_GNU_borland_fastcall_i386 constant.
2009-10-23 Kai Tietz <kai.tietz@onevision.com>
diff --git a/binutils-2.22/include/ansidecl.h b/binutils-2.22/include/ansidecl.h
index c39ce2f..23d85bf 100644
--- a/binutils-2.22/include/ansidecl.h
+++ b/binutils-2.22/include/ansidecl.h
@@ -416,10 +416,12 @@ So instead we use the macro below and test it against specific values. */
#define EXPORTED_CONST const
#endif
-/* Be conservative and only use enum bitfields with GCC.
+/* Be conservative and only use enum bitfields with C++ or GCC.
FIXME: provide a complete autoconf test for buggy enum bitfields. */
-#if (GCC_VERSION > 2000)
+#ifdef __cplusplus
+#define ENUM_BITFIELD(TYPE) enum TYPE
+#elif (GCC_VERSION > 2000)
#define ENUM_BITFIELD(TYPE) __extension__ enum TYPE
#else
#define ENUM_BITFIELD(TYPE) unsigned int
diff --git a/binutils-2.22/include/bfdlink.h b/binutils-2.22/include/bfdlink.h
index be85329..d900b47 100644
--- a/binutils-2.22/include/bfdlink.h
+++ b/binutils-2.22/include/bfdlink.h
@@ -229,7 +229,7 @@ typedef enum {with_flags, without_flags} flag_type;
/* A section flag list. */
struct flag_info_list
{
- flag_type with;
+ flag_type with;
const char *name;
bfd_boolean valid;
struct flag_info_list *next;
@@ -405,6 +405,9 @@ struct bfd_link_info
/* TRUE if we should warn alternate ELF machine code. */
unsigned int warn_alternate_em: 1;
+ /* TRUE if the linker script contained an explicit PHDRS command. */
+ unsigned int user_phdrs: 1;
+
/* Char that may appear as the first char of a symbol, but should be
skipped (like symbol_leading_char) when looking up symbols in
wrap_hash. Used by PowerPC Linux for 'dot' symbols. */
@@ -674,8 +677,8 @@ struct bfd_link_order
} indirect;
struct
{
- /* Size of contents, or zero when contents size == size
- within output section.
+ /* Size of contents, or zero when contents should be filled by
+ the architecture-dependent fill function.
A non-zero value allows filling of the output section
with an arbitrary repeated pattern. */
unsigned int size;
diff --git a/binutils-2.22/include/demangle.h b/binutils-2.22/include/demangle.h
index 53f6c54..34b3ed3 100644
--- a/binutils-2.22/include/demangle.h
+++ b/binutils-2.22/include/demangle.h
@@ -172,7 +172,8 @@ ada_demangle (const char *mangled, int options);
enum gnu_v3_ctor_kinds {
gnu_v3_complete_object_ctor = 1,
gnu_v3_base_object_ctor,
- gnu_v3_complete_object_allocating_ctor
+ gnu_v3_complete_object_allocating_ctor,
+ gnu_v3_object_ctor_group
};
/* Return non-zero iff NAME is the mangled form of a constructor name
@@ -186,7 +187,8 @@ extern enum gnu_v3_ctor_kinds
enum gnu_v3_dtor_kinds {
gnu_v3_deleting_dtor = 1,
gnu_v3_complete_object_dtor,
- gnu_v3_base_object_dtor
+ gnu_v3_base_object_dtor,
+ gnu_v3_object_dtor_group
};
/* Return non-zero iff NAME is the mangled form of a destructor name
@@ -342,6 +344,9 @@ enum demangle_component_type
template argument, and the right subtree is either NULL or
another TEMPLATE_ARGLIST node. */
DEMANGLE_COMPONENT_TEMPLATE_ARGLIST,
+ /* An initializer list. The left subtree is either an explicit type or
+ NULL, and the right subtree is a DEMANGLE_COMPONENT_ARGLIST. */
+ DEMANGLE_COMPONENT_INITIALIZER_LIST,
/* An operator. This holds information about a standard
operator. */
DEMANGLE_COMPONENT_OPERATOR,
@@ -351,6 +356,8 @@ enum demangle_component_type
/* A typecast, represented as a unary operator. The one subtree is
the type to which the argument should be cast. */
DEMANGLE_COMPONENT_CAST,
+ /* A nullary expression. The left subtree is the operator. */
+ DEMANGLE_COMPONENT_NULLARY,
/* A unary expression. The left subtree is the operator, and the
right subtree is the single argument. */
DEMANGLE_COMPONENT_UNARY,
@@ -401,8 +408,17 @@ enum demangle_component_type
DEMANGLE_COMPONENT_DEFAULT_ARG,
/* An unnamed type. */
DEMANGLE_COMPONENT_UNNAMED_TYPE,
+ /* A transactional clone. This has one subtree, the encoding for
+ which it is providing alternative linkage. */
+ DEMANGLE_COMPONENT_TRANSACTION_CLONE,
+ /* A non-transactional clone entry point. In the i386/x86_64 abi,
+ the unmangled symbol of a tm_callable becomes a thunk and the
+ non-transactional function version is mangled thus. */
+ DEMANGLE_COMPONENT_NONTRANSACTION_CLONE,
/* A pack expansion. */
- DEMANGLE_COMPONENT_PACK_EXPANSION
+ DEMANGLE_COMPONENT_PACK_EXPANSION,
+ /* A cloned function. */
+ DEMANGLE_COMPONENT_CLONE
};
/* Types which are only used internally. */
diff --git a/binutils-2.22/include/dis-asm.h b/binutils-2.22/include/dis-asm.h
index d654211..661e7cf 100644
--- a/binutils-2.22/include/dis-asm.h
+++ b/binutils-2.22/include/dis-asm.h
@@ -1,7 +1,7 @@
/* Interface between the opcode library and its callers.
Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, 2010,
- 2011 Free Software Foundation, Inc.
+ 2011, 2012 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -35,7 +35,7 @@ extern "C" {
#include <stdio.h>
#include "bfd.h"
- typedef int (*fprintf_ftype) (void *, const char*, ...) /*ATTRIBUTE_FPTR_PRINTF_2*/;
+ typedef int (*fprintf_ftype) (void *, const char*, ...) ATTRIBUTE_FPTR_PRINTF_2;
enum dis_insn_type
{
@@ -233,6 +233,7 @@ extern int print_insn_crx (bfd_vma, disassemble_info *);
extern int print_insn_d10v (bfd_vma, disassemble_info *);
extern int print_insn_d30v (bfd_vma, disassemble_info *);
extern int print_insn_dlx (bfd_vma, disassemble_info *);
+extern int print_insn_epiphany (bfd_vma, disassemble_info *);
extern int print_insn_fr30 (bfd_vma, disassemble_info *);
extern int print_insn_frv (bfd_vma, disassemble_info *);
extern int print_insn_h8300 (bfd_vma, disassemble_info *);
@@ -259,6 +260,8 @@ extern int print_insn_m32c (bfd_vma, disassemble_info *);
extern int print_insn_m32r (bfd_vma, disassemble_info *);
extern int print_insn_m68hc11 (bfd_vma, disassemble_info *);
extern int print_insn_m68hc12 (bfd_vma, disassemble_info *);
+extern int print_insn_m9s12x (bfd_vma, disassemble_info *);
+extern int print_insn_m9s12xg (bfd_vma, disassemble_info *);
extern int print_insn_m68k (bfd_vma, disassemble_info *);
extern int print_insn_m88k (bfd_vma, disassemble_info *);
extern int print_insn_mcore (bfd_vma, disassemble_info *);
@@ -292,12 +295,14 @@ extern int print_insn_v850 (bfd_vma, disassemble_info *);
extern int print_insn_vax (bfd_vma, disassemble_info *);
extern int print_insn_w65 (bfd_vma, disassemble_info *);
extern int print_insn_xc16x (bfd_vma, disassemble_info *);
+extern int print_insn_xgate (bfd_vma, disassemble_info *);
extern int print_insn_xstormy16 (bfd_vma, disassemble_info *);
extern int print_insn_xtensa (bfd_vma, disassemble_info *);
extern int print_insn_z80 (bfd_vma, disassemble_info *);
extern int print_insn_z8001 (bfd_vma, disassemble_info *);
extern int print_insn_z8002 (bfd_vma, disassemble_info *);
extern int print_insn_rx (bfd_vma, disassemble_info *);
+extern int print_insn_rl78 (bfd_vma, disassemble_info *);
extern disassembler_ftype arc_get_disassembler (void *);
extern disassembler_ftype cris_get_disassembler (bfd *);
@@ -312,6 +317,7 @@ extern int get_arm_regname_num_options (void);
extern int set_arm_regname_option (int);
extern int get_arm_regnames (int, const char **, const char **, const char *const **);
extern bfd_boolean arm_symbol_is_valid (asymbol *, struct disassemble_info *);
+extern void disassemble_init_powerpc (struct disassemble_info *);
/* Fetch the disassembler for a given BFD, if that support is available. */
extern disassembler_ftype disassembler (bfd *);
diff --git a/binutils-2.22/include/dwarf2.def b/binutils-2.22/include/dwarf2.def
new file mode 100644
index 0000000..3c3dfcc
--- /dev/null
+++ b/binutils-2.22/include/dwarf2.def
@@ -0,0 +1,685 @@
+/* -*- c -*-
+ Declarations and definitions of codes relating to the DWARF2 and
+ DWARF3 symbolic debugging information formats.
+ Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
+ 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+ Free Software Foundation, Inc.
+
+ Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
+ Office (AJPO), Florida State University and Silicon Graphics Inc.
+ provided support for this effort -- June 21, 1995.
+
+ Derived from the DWARF 1 implementation written by Ron Guilmette
+ (rfg@netcom.com), November 1990.
+
+ This file is part of GCC.
+
+ GCC is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 3, or (at your option) any later
+ version.
+
+ GCC is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ Under Section 7 of GPL version 3, you are granted additional
+ permissions described in the GCC Runtime Library Exception, version
+ 3.1, as published by the Free Software Foundation.
+
+ You should have received a copy of the GNU General Public License and
+ a copy of the GCC Runtime Library Exception along with this program;
+ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* This file is derived from the DWARF specification (a public document)
+ Revision 2.0.0 (July 27, 1993) developed by the UNIX International
+ Programming Languages Special Interest Group (UI/PLSIG) and distributed
+ by UNIX International. Copies of this specification are available from
+ UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
+
+ This file also now contains definitions from the DWARF 3 specification
+ published Dec 20, 2005, available from: http://dwarf.freestandards.org.
+
+ This file also now contains definitions from the DWARF 4
+ specification, available from: http://dwarfstd.org/ */
+
+/* This file declares various DWARF-related constants using a set of
+ macros which can be redefined by the including file.
+
+ The macros are in sections. Each section corresponds to a single
+ set of DWARF constants and has a corresponding key. The key is
+ used in all the macro names.
+
+ The sections are TAG (for DW_TAG_ constants), FORM (DW_FORM_), AT
+ (DW_AT_), OP (DW_OP_), ATE (DW_ATE_), and CFA (DW_CFA_).
+
+ Using TAG as an example, the following macros may be used for each
+ key:
+
+ DW_FIRST_TAG(name, value) - Introduce the first DW_TAG constant.
+
+ DW_TAG(name, value) - Define a subsequent constant.
+
+ DW_TAG_DUP(name, value) - Define a subsequent constant whose value
+ is a duplicate of some other constant. Not all keys use the _DUP
+ macro form. If more than one name shares a value, then the base
+ (DW_TAG) form will be the preferred name and DW_TAG_DUP will hold
+ any alternate names.
+
+ DW_END_TAG - Invoked at the end of the DW_TAG constants. */
+
+DW_FIRST_TAG (DW_TAG_padding, 0x00)
+DW_TAG (DW_TAG_array_type, 0x01)
+DW_TAG (DW_TAG_class_type, 0x02)
+DW_TAG (DW_TAG_entry_point, 0x03)
+DW_TAG (DW_TAG_enumeration_type, 0x04)
+DW_TAG (DW_TAG_formal_parameter, 0x05)
+DW_TAG (DW_TAG_imported_declaration, 0x08)
+DW_TAG (DW_TAG_label, 0x0a)
+DW_TAG (DW_TAG_lexical_block, 0x0b)
+DW_TAG (DW_TAG_member, 0x0d)
+DW_TAG (DW_TAG_pointer_type, 0x0f)
+DW_TAG (DW_TAG_reference_type, 0x10)
+DW_TAG (DW_TAG_compile_unit, 0x11)
+DW_TAG (DW_TAG_string_type, 0x12)
+DW_TAG (DW_TAG_structure_type, 0x13)
+DW_TAG (DW_TAG_subroutine_type, 0x15)
+DW_TAG (DW_TAG_typedef, 0x16)
+DW_TAG (DW_TAG_union_type, 0x17)
+DW_TAG (DW_TAG_unspecified_parameters, 0x18)
+DW_TAG (DW_TAG_variant, 0x19)
+DW_TAG (DW_TAG_common_block, 0x1a)
+DW_TAG (DW_TAG_common_inclusion, 0x1b)
+DW_TAG (DW_TAG_inheritance, 0x1c)
+DW_TAG (DW_TAG_inlined_subroutine, 0x1d)
+DW_TAG (DW_TAG_module, 0x1e)
+DW_TAG (DW_TAG_ptr_to_member_type, 0x1f)
+DW_TAG (DW_TAG_set_type, 0x20)
+DW_TAG (DW_TAG_subrange_type, 0x21)
+DW_TAG (DW_TAG_with_stmt, 0x22)
+DW_TAG (DW_TAG_access_declaration, 0x23)
+DW_TAG (DW_TAG_base_type, 0x24)
+DW_TAG (DW_TAG_catch_block, 0x25)
+DW_TAG (DW_TAG_const_type, 0x26)
+DW_TAG (DW_TAG_constant, 0x27)
+DW_TAG (DW_TAG_enumerator, 0x28)
+DW_TAG (DW_TAG_file_type, 0x29)
+DW_TAG (DW_TAG_friend, 0x2a)
+DW_TAG (DW_TAG_namelist, 0x2b)
+DW_TAG (DW_TAG_namelist_item, 0x2c)
+DW_TAG (DW_TAG_packed_type, 0x2d)
+DW_TAG (DW_TAG_subprogram, 0x2e)
+DW_TAG (DW_TAG_template_type_param, 0x2f)
+DW_TAG (DW_TAG_template_value_param, 0x30)
+DW_TAG (DW_TAG_thrown_type, 0x31)
+DW_TAG (DW_TAG_try_block, 0x32)
+DW_TAG (DW_TAG_variant_part, 0x33)
+DW_TAG (DW_TAG_variable, 0x34)
+DW_TAG (DW_TAG_volatile_type, 0x35)
+/* DWARF 3. */
+DW_TAG (DW_TAG_dwarf_procedure, 0x36)
+DW_TAG (DW_TAG_restrict_type, 0x37)
+DW_TAG (DW_TAG_interface_type, 0x38)
+DW_TAG (DW_TAG_namespace, 0x39)
+DW_TAG (DW_TAG_imported_module, 0x3a)
+DW_TAG (DW_TAG_unspecified_type, 0x3b)
+DW_TAG (DW_TAG_partial_unit, 0x3c)
+DW_TAG (DW_TAG_imported_unit, 0x3d)
+DW_TAG (DW_TAG_condition, 0x3f)
+DW_TAG (DW_TAG_shared_type, 0x40)
+/* DWARF 4. */
+DW_TAG (DW_TAG_type_unit, 0x41)
+DW_TAG (DW_TAG_rvalue_reference_type, 0x42)
+DW_TAG (DW_TAG_template_alias, 0x43)
+
+DW_TAG_DUP (DW_TAG_lo_user, 0x4080)
+DW_TAG_DUP (DW_TAG_hi_user, 0xffff)
+
+/* SGI/MIPS Extensions. */
+DW_TAG (DW_TAG_MIPS_loop, 0x4081)
+
+/* HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . */
+DW_TAG (DW_TAG_HP_array_descriptor, 0x4090)
+DW_TAG (DW_TAG_HP_Bliss_field, 0x4091)
+DW_TAG (DW_TAG_HP_Bliss_field_set, 0x4092)
+
+/* GNU extensions. */
+DW_TAG (DW_TAG_format_label, 0x4101) /* For FORTRAN 77 and Fortran 90. */
+DW_TAG (DW_TAG_function_template, 0x4102) /* For C++. */
+DW_TAG (DW_TAG_class_template, 0x4103) /* For C++. */
+DW_TAG (DW_TAG_GNU_BINCL, 0x4104)
+DW_TAG (DW_TAG_GNU_EINCL, 0x4105)
+/* Template template parameter.
+ See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */
+DW_TAG (DW_TAG_GNU_template_template_param, 0x4106)
+
+/* Template parameter pack extension, specified at
+ http://wiki.dwarfstd.org/index.php?title=C%2B%2B0x:_Variadic_templates
+ The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
+ are properly part of DWARF 5. */
+DW_TAG (DW_TAG_GNU_template_parameter_pack, 0x4107)
+DW_TAG (DW_TAG_GNU_formal_parameter_pack, 0x4108)
+/* The GNU call site extension, specified at
+ http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open .
+ The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
+ are properly part of DWARF 5. */
+DW_TAG (DW_TAG_GNU_call_site, 0x4109)
+DW_TAG (DW_TAG_GNU_call_site_parameter, 0x410a)
+/* Extensions for UPC. See: http://dwarfstd.org/doc/DWARF4.pdf. */
+DW_TAG (DW_TAG_upc_shared_type, 0x8765)
+DW_TAG (DW_TAG_upc_strict_type, 0x8766)
+DW_TAG (DW_TAG_upc_relaxed_type, 0x8767)
+/* PGI (STMicroelectronics) extensions. No documentation available. */
+DW_TAG (DW_TAG_PGI_kanji_type, 0xA000)
+DW_TAG (DW_TAG_PGI_interface_block, 0xA020)
+DW_END_TAG
+
+DW_FIRST_FORM (DW_FORM_addr, 0x01)
+DW_FORM (DW_FORM_block2, 0x03)
+DW_FORM (DW_FORM_block4, 0x04)
+DW_FORM (DW_FORM_data2, 0x05)
+DW_FORM (DW_FORM_data4, 0x06)
+DW_FORM (DW_FORM_data8, 0x07)
+DW_FORM (DW_FORM_string, 0x08)
+DW_FORM (DW_FORM_block, 0x09)
+DW_FORM (DW_FORM_block1, 0x0a)
+DW_FORM (DW_FORM_data1, 0x0b)
+DW_FORM (DW_FORM_flag, 0x0c)
+DW_FORM (DW_FORM_sdata, 0x0d)
+DW_FORM (DW_FORM_strp, 0x0e)
+DW_FORM (DW_FORM_udata, 0x0f)
+DW_FORM (DW_FORM_ref_addr, 0x10)
+DW_FORM (DW_FORM_ref1, 0x11)
+DW_FORM (DW_FORM_ref2, 0x12)
+DW_FORM (DW_FORM_ref4, 0x13)
+DW_FORM (DW_FORM_ref8, 0x14)
+DW_FORM (DW_FORM_ref_udata, 0x15)
+DW_FORM (DW_FORM_indirect, 0x16)
+/* DWARF 4. */
+DW_FORM (DW_FORM_sec_offset, 0x17)
+DW_FORM (DW_FORM_exprloc, 0x18)
+DW_FORM (DW_FORM_flag_present, 0x19)
+DW_FORM (DW_FORM_ref_sig8, 0x20)
+/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
+DW_FORM (DW_FORM_GNU_addr_index, 0x1f01)
+DW_FORM (DW_FORM_GNU_str_index, 0x1f02)
+/* Extensions for DWZ multifile.
+ See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open . */
+DW_FORM (DW_FORM_GNU_ref_alt, 0x1f20)
+DW_FORM (DW_FORM_GNU_strp_alt, 0x1f21)
+DW_END_FORM
+
+DW_FIRST_AT (DW_AT_sibling, 0x01)
+DW_AT (DW_AT_location, 0x02)
+DW_AT (DW_AT_name, 0x03)
+DW_AT (DW_AT_ordering, 0x09)
+DW_AT (DW_AT_subscr_data, 0x0a)
+DW_AT (DW_AT_byte_size, 0x0b)
+DW_AT (DW_AT_bit_offset, 0x0c)
+DW_AT (DW_AT_bit_size, 0x0d)
+DW_AT (DW_AT_element_list, 0x0f)
+DW_AT (DW_AT_stmt_list, 0x10)
+DW_AT (DW_AT_low_pc, 0x11)
+DW_AT (DW_AT_high_pc, 0x12)
+DW_AT (DW_AT_language, 0x13)
+DW_AT (DW_AT_member, 0x14)
+DW_AT (DW_AT_discr, 0x15)
+DW_AT (DW_AT_discr_value, 0x16)
+DW_AT (DW_AT_visibility, 0x17)
+DW_AT (DW_AT_import, 0x18)
+DW_AT (DW_AT_string_length, 0x19)
+DW_AT (DW_AT_common_reference, 0x1a)
+DW_AT (DW_AT_comp_dir, 0x1b)
+DW_AT (DW_AT_const_value, 0x1c)
+DW_AT (DW_AT_containing_type, 0x1d)
+DW_AT (DW_AT_default_value, 0x1e)
+DW_AT (DW_AT_inline, 0x20)
+DW_AT (DW_AT_is_optional, 0x21)
+DW_AT (DW_AT_lower_bound, 0x22)
+DW_AT (DW_AT_producer, 0x25)
+DW_AT (DW_AT_prototyped, 0x27)
+DW_AT (DW_AT_return_addr, 0x2a)
+DW_AT (DW_AT_start_scope, 0x2c)
+DW_AT (DW_AT_bit_stride, 0x2e)
+DW_AT (DW_AT_upper_bound, 0x2f)
+DW_AT (DW_AT_abstract_origin, 0x31)
+DW_AT (DW_AT_accessibility, 0x32)
+DW_AT (DW_AT_address_class, 0x33)
+DW_AT (DW_AT_artificial, 0x34)
+DW_AT (DW_AT_base_types, 0x35)
+DW_AT (DW_AT_calling_convention, 0x36)
+DW_AT (DW_AT_count, 0x37)
+DW_AT (DW_AT_data_member_location, 0x38)
+DW_AT (DW_AT_decl_column, 0x39)
+DW_AT (DW_AT_decl_file, 0x3a)
+DW_AT (DW_AT_decl_line, 0x3b)
+DW_AT (DW_AT_declaration, 0x3c)
+DW_AT (DW_AT_discr_list, 0x3d)
+DW_AT (DW_AT_encoding, 0x3e)
+DW_AT (DW_AT_external, 0x3f)
+DW_AT (DW_AT_frame_base, 0x40)
+DW_AT (DW_AT_friend, 0x41)
+DW_AT (DW_AT_identifier_case, 0x42)
+DW_AT (DW_AT_macro_info, 0x43)
+DW_AT (DW_AT_namelist_items, 0x44)
+DW_AT (DW_AT_priority, 0x45)
+DW_AT (DW_AT_segment, 0x46)
+DW_AT (DW_AT_specification, 0x47)
+DW_AT (DW_AT_static_link, 0x48)
+DW_AT (DW_AT_type, 0x49)
+DW_AT (DW_AT_use_location, 0x4a)
+DW_AT (DW_AT_variable_parameter, 0x4b)
+DW_AT (DW_AT_virtuality, 0x4c)
+DW_AT (DW_AT_vtable_elem_location, 0x4d)
+/* DWARF 3 values. */
+DW_AT (DW_AT_allocated, 0x4e)
+DW_AT (DW_AT_associated, 0x4f)
+DW_AT (DW_AT_data_location, 0x50)
+DW_AT (DW_AT_byte_stride, 0x51)
+DW_AT (DW_AT_entry_pc, 0x52)
+DW_AT (DW_AT_use_UTF8, 0x53)
+DW_AT (DW_AT_extension, 0x54)
+DW_AT (DW_AT_ranges, 0x55)
+DW_AT (DW_AT_trampoline, 0x56)
+DW_AT (DW_AT_call_column, 0x57)
+DW_AT (DW_AT_call_file, 0x58)
+DW_AT (DW_AT_call_line, 0x59)
+DW_AT (DW_AT_description, 0x5a)
+DW_AT (DW_AT_binary_scale, 0x5b)
+DW_AT (DW_AT_decimal_scale, 0x5c)
+DW_AT (DW_AT_small, 0x5d)
+DW_AT (DW_AT_decimal_sign, 0x5e)
+DW_AT (DW_AT_digit_count, 0x5f)
+DW_AT (DW_AT_picture_string, 0x60)
+DW_AT (DW_AT_mutable, 0x61)
+DW_AT (DW_AT_threads_scaled, 0x62)
+DW_AT (DW_AT_explicit, 0x63)
+DW_AT (DW_AT_object_pointer, 0x64)
+DW_AT (DW_AT_endianity, 0x65)
+DW_AT (DW_AT_elemental, 0x66)
+DW_AT (DW_AT_pure, 0x67)
+DW_AT (DW_AT_recursive, 0x68)
+/* DWARF 4. */
+DW_AT (DW_AT_signature, 0x69)
+DW_AT (DW_AT_main_subprogram, 0x6a)
+DW_AT (DW_AT_data_bit_offset, 0x6b)
+DW_AT (DW_AT_const_expr, 0x6c)
+DW_AT (DW_AT_enum_class, 0x6d)
+DW_AT (DW_AT_linkage_name, 0x6e)
+
+DW_AT_DUP (DW_AT_lo_user, 0x2000) /* Implementation-defined range start. */
+DW_AT_DUP (DW_AT_hi_user, 0x3fff) /* Implementation-defined range end. */
+
+/* SGI/MIPS extensions. */
+DW_AT (DW_AT_MIPS_fde, 0x2001)
+DW_AT (DW_AT_MIPS_loop_begin, 0x2002)
+DW_AT (DW_AT_MIPS_tail_loop_begin, 0x2003)
+DW_AT (DW_AT_MIPS_epilog_begin, 0x2004)
+DW_AT (DW_AT_MIPS_loop_unroll_factor, 0x2005)
+DW_AT (DW_AT_MIPS_software_pipeline_depth, 0x2006)
+DW_AT (DW_AT_MIPS_linkage_name, 0x2007)
+DW_AT (DW_AT_MIPS_stride, 0x2008)
+DW_AT (DW_AT_MIPS_abstract_name, 0x2009)
+DW_AT (DW_AT_MIPS_clone_origin, 0x200a)
+DW_AT (DW_AT_MIPS_has_inlines, 0x200b)
+/* HP extensions. */
+DW_AT (DW_AT_HP_block_index, 0x2000)
+DW_AT_DUP (DW_AT_HP_unmodifiable, 0x2001) /* Same as DW_AT_MIPS_fde. */
+DW_AT_DUP (DW_AT_HP_prologue, 0x2005) /* Same as DW_AT_MIPS_loop_unroll. */
+DW_AT_DUP (DW_AT_HP_epilogue, 0x2008) /* Same as DW_AT_MIPS_stride. */
+DW_AT (DW_AT_HP_actuals_stmt_list, 0x2010)
+DW_AT (DW_AT_HP_proc_per_section, 0x2011)
+DW_AT (DW_AT_HP_raw_data_ptr, 0x2012)
+DW_AT (DW_AT_HP_pass_by_reference, 0x2013)
+DW_AT (DW_AT_HP_opt_level, 0x2014)
+DW_AT (DW_AT_HP_prof_version_id, 0x2015)
+DW_AT (DW_AT_HP_opt_flags, 0x2016)
+DW_AT (DW_AT_HP_cold_region_low_pc, 0x2017)
+DW_AT (DW_AT_HP_cold_region_high_pc, 0x2018)
+DW_AT (DW_AT_HP_all_variables_modifiable, 0x2019)
+DW_AT (DW_AT_HP_linkage_name, 0x201a)
+DW_AT (DW_AT_HP_prof_flags, 0x201b) /* In comp unit of procs_info for -g. */
+DW_AT (DW_AT_HP_unit_name, 0x201f)
+DW_AT (DW_AT_HP_unit_size, 0x2020)
+DW_AT (DW_AT_HP_widened_byte_size, 0x2021)
+DW_AT (DW_AT_HP_definition_points, 0x2022)
+DW_AT (DW_AT_HP_default_location, 0x2023)
+DW_AT (DW_AT_HP_is_result_param, 0x2029)
+
+/* GNU extensions. */
+DW_AT (DW_AT_sf_names, 0x2101)
+DW_AT (DW_AT_src_info, 0x2102)
+DW_AT (DW_AT_mac_info, 0x2103)
+DW_AT (DW_AT_src_coords, 0x2104)
+DW_AT (DW_AT_body_begin, 0x2105)
+DW_AT (DW_AT_body_end, 0x2106)
+DW_AT (DW_AT_GNU_vector, 0x2107)
+/* Thread-safety annotations.
+ See http://gcc.gnu.org/wiki/ThreadSafetyAnnotation . */
+DW_AT (DW_AT_GNU_guarded_by, 0x2108)
+DW_AT (DW_AT_GNU_pt_guarded_by, 0x2109)
+DW_AT (DW_AT_GNU_guarded, 0x210a)
+DW_AT (DW_AT_GNU_pt_guarded, 0x210b)
+DW_AT (DW_AT_GNU_locks_excluded, 0x210c)
+DW_AT (DW_AT_GNU_exclusive_locks_required, 0x210d)
+DW_AT (DW_AT_GNU_shared_locks_required, 0x210e)
+/* One-definition rule violation detection.
+ See http://gcc.gnu.org/wiki/DwarfSeparateTypeInfo . */
+DW_AT (DW_AT_GNU_odr_signature, 0x210f)
+/* Template template argument name.
+ See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */
+DW_AT (DW_AT_GNU_template_name, 0x2110)
+/* The GNU call site extension.
+ See http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open . */
+DW_AT (DW_AT_GNU_call_site_value, 0x2111)
+DW_AT (DW_AT_GNU_call_site_data_value, 0x2112)
+DW_AT (DW_AT_GNU_call_site_target, 0x2113)
+DW_AT (DW_AT_GNU_call_site_target_clobbered, 0x2114)
+DW_AT (DW_AT_GNU_tail_call, 0x2115)
+DW_AT (DW_AT_GNU_all_tail_call_sites, 0x2116)
+DW_AT (DW_AT_GNU_all_call_sites, 0x2117)
+DW_AT (DW_AT_GNU_all_source_call_sites, 0x2118)
+/* Section offset into .debug_macro section. */
+DW_AT (DW_AT_GNU_macros, 0x2119)
+/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
+DW_AT (DW_AT_GNU_dwo_name, 0x2130)
+DW_AT (DW_AT_GNU_dwo_id, 0x2131)
+DW_AT (DW_AT_GNU_ranges_base, 0x2132)
+DW_AT (DW_AT_GNU_addr_base, 0x2133)
+DW_AT (DW_AT_GNU_pubnames, 0x2134)
+DW_AT (DW_AT_GNU_pubtypes, 0x2135)
+/* VMS extensions. */
+DW_AT (DW_AT_VMS_rtnbeg_pd_address, 0x2201)
+/* GNAT extensions. */
+/* GNAT descriptive type.
+ See http://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type . */
+DW_AT (DW_AT_use_GNAT_descriptive_type, 0x2301)
+DW_AT (DW_AT_GNAT_descriptive_type, 0x2302)
+/* UPC extension. */
+DW_AT (DW_AT_upc_threads_scaled, 0x3210)
+/* PGI (STMicroelectronics) extensions. */
+DW_AT (DW_AT_PGI_lbase, 0x3a00)
+DW_AT (DW_AT_PGI_soffset, 0x3a01)
+DW_AT (DW_AT_PGI_lstride, 0x3a02)
+DW_END_AT
+
+DW_FIRST_OP (DW_OP_addr, 0x03)
+DW_OP (DW_OP_deref, 0x06)
+DW_OP (DW_OP_const1u, 0x08)
+DW_OP (DW_OP_const1s, 0x09)
+DW_OP (DW_OP_const2u, 0x0a)
+DW_OP (DW_OP_const2s, 0x0b)
+DW_OP (DW_OP_const4u, 0x0c)
+DW_OP (DW_OP_const4s, 0x0d)
+DW_OP (DW_OP_const8u, 0x0e)
+DW_OP (DW_OP_const8s, 0x0f)
+DW_OP (DW_OP_constu, 0x10)
+DW_OP (DW_OP_consts, 0x11)
+DW_OP (DW_OP_dup, 0x12)
+DW_OP (DW_OP_drop, 0x13)
+DW_OP (DW_OP_over, 0x14)
+DW_OP (DW_OP_pick, 0x15)
+DW_OP (DW_OP_swap, 0x16)
+DW_OP (DW_OP_rot, 0x17)
+DW_OP (DW_OP_xderef, 0x18)
+DW_OP (DW_OP_abs, 0x19)
+DW_OP (DW_OP_and, 0x1a)
+DW_OP (DW_OP_div, 0x1b)
+DW_OP (DW_OP_minus, 0x1c)
+DW_OP (DW_OP_mod, 0x1d)
+DW_OP (DW_OP_mul, 0x1e)
+DW_OP (DW_OP_neg, 0x1f)
+DW_OP (DW_OP_not, 0x20)
+DW_OP (DW_OP_or, 0x21)
+DW_OP (DW_OP_plus, 0x22)
+DW_OP (DW_OP_plus_uconst, 0x23)
+DW_OP (DW_OP_shl, 0x24)
+DW_OP (DW_OP_shr, 0x25)
+DW_OP (DW_OP_shra, 0x26)
+DW_OP (DW_OP_xor, 0x27)
+DW_OP (DW_OP_bra, 0x28)
+DW_OP (DW_OP_eq, 0x29)
+DW_OP (DW_OP_ge, 0x2a)
+DW_OP (DW_OP_gt, 0x2b)
+DW_OP (DW_OP_le, 0x2c)
+DW_OP (DW_OP_lt, 0x2d)
+DW_OP (DW_OP_ne, 0x2e)
+DW_OP (DW_OP_skip, 0x2f)
+DW_OP (DW_OP_lit0, 0x30)
+DW_OP (DW_OP_lit1, 0x31)
+DW_OP (DW_OP_lit2, 0x32)
+DW_OP (DW_OP_lit3, 0x33)
+DW_OP (DW_OP_lit4, 0x34)
+DW_OP (DW_OP_lit5, 0x35)
+DW_OP (DW_OP_lit6, 0x36)
+DW_OP (DW_OP_lit7, 0x37)
+DW_OP (DW_OP_lit8, 0x38)
+DW_OP (DW_OP_lit9, 0x39)
+DW_OP (DW_OP_lit10, 0x3a)
+DW_OP (DW_OP_lit11, 0x3b)
+DW_OP (DW_OP_lit12, 0x3c)
+DW_OP (DW_OP_lit13, 0x3d)
+DW_OP (DW_OP_lit14, 0x3e)
+DW_OP (DW_OP_lit15, 0x3f)
+DW_OP (DW_OP_lit16, 0x40)
+DW_OP (DW_OP_lit17, 0x41)
+DW_OP (DW_OP_lit18, 0x42)
+DW_OP (DW_OP_lit19, 0x43)
+DW_OP (DW_OP_lit20, 0x44)
+DW_OP (DW_OP_lit21, 0x45)
+DW_OP (DW_OP_lit22, 0x46)
+DW_OP (DW_OP_lit23, 0x47)
+DW_OP (DW_OP_lit24, 0x48)
+DW_OP (DW_OP_lit25, 0x49)
+DW_OP (DW_OP_lit26, 0x4a)
+DW_OP (DW_OP_lit27, 0x4b)
+DW_OP (DW_OP_lit28, 0x4c)
+DW_OP (DW_OP_lit29, 0x4d)
+DW_OP (DW_OP_lit30, 0x4e)
+DW_OP (DW_OP_lit31, 0x4f)
+DW_OP (DW_OP_reg0, 0x50)
+DW_OP (DW_OP_reg1, 0x51)
+DW_OP (DW_OP_reg2, 0x52)
+DW_OP (DW_OP_reg3, 0x53)
+DW_OP (DW_OP_reg4, 0x54)
+DW_OP (DW_OP_reg5, 0x55)
+DW_OP (DW_OP_reg6, 0x56)
+DW_OP (DW_OP_reg7, 0x57)
+DW_OP (DW_OP_reg8, 0x58)
+DW_OP (DW_OP_reg9, 0x59)
+DW_OP (DW_OP_reg10, 0x5a)
+DW_OP (DW_OP_reg11, 0x5b)
+DW_OP (DW_OP_reg12, 0x5c)
+DW_OP (DW_OP_reg13, 0x5d)
+DW_OP (DW_OP_reg14, 0x5e)
+DW_OP (DW_OP_reg15, 0x5f)
+DW_OP (DW_OP_reg16, 0x60)
+DW_OP (DW_OP_reg17, 0x61)
+DW_OP (DW_OP_reg18, 0x62)
+DW_OP (DW_OP_reg19, 0x63)
+DW_OP (DW_OP_reg20, 0x64)
+DW_OP (DW_OP_reg21, 0x65)
+DW_OP (DW_OP_reg22, 0x66)
+DW_OP (DW_OP_reg23, 0x67)
+DW_OP (DW_OP_reg24, 0x68)
+DW_OP (DW_OP_reg25, 0x69)
+DW_OP (DW_OP_reg26, 0x6a)
+DW_OP (DW_OP_reg27, 0x6b)
+DW_OP (DW_OP_reg28, 0x6c)
+DW_OP (DW_OP_reg29, 0x6d)
+DW_OP (DW_OP_reg30, 0x6e)
+DW_OP (DW_OP_reg31, 0x6f)
+DW_OP (DW_OP_breg0, 0x70)
+DW_OP (DW_OP_breg1, 0x71)
+DW_OP (DW_OP_breg2, 0x72)
+DW_OP (DW_OP_breg3, 0x73)
+DW_OP (DW_OP_breg4, 0x74)
+DW_OP (DW_OP_breg5, 0x75)
+DW_OP (DW_OP_breg6, 0x76)
+DW_OP (DW_OP_breg7, 0x77)
+DW_OP (DW_OP_breg8, 0x78)
+DW_OP (DW_OP_breg9, 0x79)
+DW_OP (DW_OP_breg10, 0x7a)
+DW_OP (DW_OP_breg11, 0x7b)
+DW_OP (DW_OP_breg12, 0x7c)
+DW_OP (DW_OP_breg13, 0x7d)
+DW_OP (DW_OP_breg14, 0x7e)
+DW_OP (DW_OP_breg15, 0x7f)
+DW_OP (DW_OP_breg16, 0x80)
+DW_OP (DW_OP_breg17, 0x81)
+DW_OP (DW_OP_breg18, 0x82)
+DW_OP (DW_OP_breg19, 0x83)
+DW_OP (DW_OP_breg20, 0x84)
+DW_OP (DW_OP_breg21, 0x85)
+DW_OP (DW_OP_breg22, 0x86)
+DW_OP (DW_OP_breg23, 0x87)
+DW_OP (DW_OP_breg24, 0x88)
+DW_OP (DW_OP_breg25, 0x89)
+DW_OP (DW_OP_breg26, 0x8a)
+DW_OP (DW_OP_breg27, 0x8b)
+DW_OP (DW_OP_breg28, 0x8c)
+DW_OP (DW_OP_breg29, 0x8d)
+DW_OP (DW_OP_breg30, 0x8e)
+DW_OP (DW_OP_breg31, 0x8f)
+DW_OP (DW_OP_regx, 0x90)
+DW_OP (DW_OP_fbreg, 0x91)
+DW_OP (DW_OP_bregx, 0x92)
+DW_OP (DW_OP_piece, 0x93)
+DW_OP (DW_OP_deref_size, 0x94)
+DW_OP (DW_OP_xderef_size, 0x95)
+DW_OP (DW_OP_nop, 0x96)
+/* DWARF 3 extensions. */
+DW_OP (DW_OP_push_object_address, 0x97)
+DW_OP (DW_OP_call2, 0x98)
+DW_OP (DW_OP_call4, 0x99)
+DW_OP (DW_OP_call_ref, 0x9a)
+DW_OP (DW_OP_form_tls_address, 0x9b)
+DW_OP (DW_OP_call_frame_cfa, 0x9c)
+DW_OP (DW_OP_bit_piece, 0x9d)
+
+/* DWARF 4 extensions. */
+DW_OP (DW_OP_implicit_value, 0x9e)
+DW_OP (DW_OP_stack_value, 0x9f)
+
+DW_OP_DUP (DW_OP_lo_user, 0xe0) /* Implementation-defined range start. */
+DW_OP_DUP (DW_OP_hi_user, 0xff) /* Implementation-defined range end. */
+
+/* GNU extensions. */
+DW_OP (DW_OP_GNU_push_tls_address, 0xe0)
+/* The following is for marking variables that are uninitialized. */
+DW_OP (DW_OP_GNU_uninit, 0xf0)
+DW_OP (DW_OP_GNU_encoded_addr, 0xf1)
+/* The GNU implicit pointer extension.
+ See http://www.dwarfstd.org/ShowIssue.php?issue=100831.1&type=open . */
+DW_OP (DW_OP_GNU_implicit_pointer, 0xf2)
+/* The GNU entry value extension.
+ See http://www.dwarfstd.org/ShowIssue.php?issue=100909.1&type=open . */
+DW_OP (DW_OP_GNU_entry_value, 0xf3)
+/* The GNU typed stack extension.
+ See http://www.dwarfstd.org/doc/040408.1.html . */
+DW_OP (DW_OP_GNU_const_type, 0xf4)
+DW_OP (DW_OP_GNU_regval_type, 0xf5)
+DW_OP (DW_OP_GNU_deref_type, 0xf6)
+DW_OP (DW_OP_GNU_convert, 0xf7)
+DW_OP (DW_OP_GNU_reinterpret, 0xf9)
+/* The GNU parameter ref extension. */
+DW_OP (DW_OP_GNU_parameter_ref, 0xfa)
+/* Extension for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
+DW_OP (DW_OP_GNU_addr_index, 0xfb)
+DW_OP (DW_OP_GNU_const_index, 0xfc)
+/* HP extensions. */
+DW_OP_DUP (DW_OP_HP_unknown, 0xe0) /* Ouch, the same as GNU_push_tls_address. */
+DW_OP (DW_OP_HP_is_value, 0xe1)
+DW_OP (DW_OP_HP_fltconst4, 0xe2)
+DW_OP (DW_OP_HP_fltconst8, 0xe3)
+DW_OP (DW_OP_HP_mod_range, 0xe4)
+DW_OP (DW_OP_HP_unmod_range, 0xe5)
+DW_OP (DW_OP_HP_tls, 0xe6)
+/* PGI (STMicroelectronics) extensions. */
+DW_OP (DW_OP_PGI_omp_thread_num, 0xf8)
+DW_END_OP
+
+DW_FIRST_ATE (DW_ATE_void, 0x0)
+DW_ATE (DW_ATE_address, 0x1)
+DW_ATE (DW_ATE_boolean, 0x2)
+DW_ATE (DW_ATE_complex_float, 0x3)
+DW_ATE (DW_ATE_float, 0x4)
+DW_ATE (DW_ATE_signed, 0x5)
+DW_ATE (DW_ATE_signed_char, 0x6)
+DW_ATE (DW_ATE_unsigned, 0x7)
+DW_ATE (DW_ATE_unsigned_char, 0x8)
+/* DWARF 3. */
+DW_ATE (DW_ATE_imaginary_float, 0x9)
+DW_ATE (DW_ATE_packed_decimal, 0xa)
+DW_ATE (DW_ATE_numeric_string, 0xb)
+DW_ATE (DW_ATE_edited, 0xc)
+DW_ATE (DW_ATE_signed_fixed, 0xd)
+DW_ATE (DW_ATE_unsigned_fixed, 0xe)
+DW_ATE (DW_ATE_decimal_float, 0xf)
+/* DWARF 4. */
+DW_ATE (DW_ATE_UTF, 0x10)
+
+DW_ATE_DUP (DW_ATE_lo_user, 0x80)
+DW_ATE_DUP (DW_ATE_hi_user, 0xff)
+
+/* HP extensions. */
+DW_ATE (DW_ATE_HP_float80, 0x80) /* Floating-point (80 bit). */
+DW_ATE (DW_ATE_HP_complex_float80, 0x81) /* Complex floating-point (80 bit). */
+DW_ATE (DW_ATE_HP_float128, 0x82) /* Floating-point (128 bit). */
+DW_ATE (DW_ATE_HP_complex_float128, 0x83) /* Complex fp (128 bit). */
+DW_ATE (DW_ATE_HP_floathpintel, 0x84) /* Floating-point (82 bit IA64). */
+DW_ATE (DW_ATE_HP_imaginary_float80, 0x85)
+DW_ATE (DW_ATE_HP_imaginary_float128, 0x86)
+DW_ATE (DW_ATE_HP_VAX_float, 0x88) /* F or G floating. */
+DW_ATE (DW_ATE_HP_VAX_float_d, 0x89) /* D floating. */
+DW_ATE (DW_ATE_HP_packed_decimal, 0x8a) /* Cobol. */
+DW_ATE (DW_ATE_HP_zoned_decimal, 0x8b) /* Cobol. */
+DW_ATE (DW_ATE_HP_edited, 0x8c) /* Cobol. */
+DW_ATE (DW_ATE_HP_signed_fixed, 0x8d) /* Cobol. */
+DW_ATE (DW_ATE_HP_unsigned_fixed, 0x8e) /* Cobol. */
+DW_ATE (DW_ATE_HP_VAX_complex_float, 0x8f) /* F or G floating complex. */
+DW_ATE (DW_ATE_HP_VAX_complex_float_d, 0x90) /* D floating complex. */
+
+DW_END_ATE
+
+DW_FIRST_CFA (DW_CFA_advance_loc, 0x40)
+DW_CFA (DW_CFA_offset, 0x80)
+DW_CFA (DW_CFA_restore, 0xc0)
+DW_CFA (DW_CFA_nop, 0x00)
+DW_CFA (DW_CFA_set_loc, 0x01)
+DW_CFA (DW_CFA_advance_loc1, 0x02)
+DW_CFA (DW_CFA_advance_loc2, 0x03)
+DW_CFA (DW_CFA_advance_loc4, 0x04)
+DW_CFA (DW_CFA_offset_extended, 0x05)
+DW_CFA (DW_CFA_restore_extended, 0x06)
+DW_CFA (DW_CFA_undefined, 0x07)
+DW_CFA (DW_CFA_same_value, 0x08)
+DW_CFA (DW_CFA_register, 0x09)
+DW_CFA (DW_CFA_remember_state, 0x0a)
+DW_CFA (DW_CFA_restore_state, 0x0b)
+DW_CFA (DW_CFA_def_cfa, 0x0c)
+DW_CFA (DW_CFA_def_cfa_register, 0x0d)
+DW_CFA (DW_CFA_def_cfa_offset, 0x0e)
+/* DWARF 3. */
+DW_CFA (DW_CFA_def_cfa_expression, 0x0f)
+DW_CFA (DW_CFA_expression, 0x10)
+DW_CFA (DW_CFA_offset_extended_sf, 0x11)
+DW_CFA (DW_CFA_def_cfa_sf, 0x12)
+DW_CFA (DW_CFA_def_cfa_offset_sf, 0x13)
+DW_CFA (DW_CFA_val_offset, 0x14)
+DW_CFA (DW_CFA_val_offset_sf, 0x15)
+DW_CFA (DW_CFA_val_expression, 0x16)
+
+DW_CFA (DW_CFA_lo_user, 0x1c)
+DW_CFA (DW_CFA_hi_user, 0x3f)
+
+/* SGI/MIPS specific. */
+DW_CFA (DW_CFA_MIPS_advance_loc8, 0x1d)
+/* GNU extensions. */
+DW_CFA (DW_CFA_GNU_window_save, 0x2d)
+DW_CFA (DW_CFA_GNU_args_size, 0x2e)
+DW_CFA (DW_CFA_GNU_negative_offset_extended, 0x2f)
+
+DW_END_CFA
diff --git a/binutils-2.22/include/dwarf2.h b/binutils-2.22/include/dwarf2.h
index 37cb83f..2c1aeb6 100644
--- a/binutils-2.22/include/dwarf2.h
+++ b/binutils-2.22/include/dwarf2.h
@@ -1,7 +1,7 @@
/* Declarations and definitions of codes relating to the DWARF2 and
DWARF3 symbolic debugging information formats.
Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
- 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+ 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
@@ -41,588 +41,71 @@
This file also now contains definitions from the DWARF 3 specification
published Dec 20, 2005, available from: http://dwarf.freestandards.org. */
-/* This file is shared between GCC and GDB, and should not contain
- prototypes. */
-
#ifndef _DWARF2_H
#define _DWARF2_H
-/* Tag names and codes. */
-enum dwarf_tag
- {
- DW_TAG_padding = 0x00,
- DW_TAG_array_type = 0x01,
- DW_TAG_class_type = 0x02,
- DW_TAG_entry_point = 0x03,
- DW_TAG_enumeration_type = 0x04,
- DW_TAG_formal_parameter = 0x05,
- DW_TAG_imported_declaration = 0x08,
- DW_TAG_label = 0x0a,
- DW_TAG_lexical_block = 0x0b,
- DW_TAG_member = 0x0d,
- DW_TAG_pointer_type = 0x0f,
- DW_TAG_reference_type = 0x10,
- DW_TAG_compile_unit = 0x11,
- DW_TAG_string_type = 0x12,
- DW_TAG_structure_type = 0x13,
- DW_TAG_subroutine_type = 0x15,
- DW_TAG_typedef = 0x16,
- DW_TAG_union_type = 0x17,
- DW_TAG_unspecified_parameters = 0x18,
- DW_TAG_variant = 0x19,
- DW_TAG_common_block = 0x1a,
- DW_TAG_common_inclusion = 0x1b,
- DW_TAG_inheritance = 0x1c,
- DW_TAG_inlined_subroutine = 0x1d,
- DW_TAG_module = 0x1e,
- DW_TAG_ptr_to_member_type = 0x1f,
- DW_TAG_set_type = 0x20,
- DW_TAG_subrange_type = 0x21,
- DW_TAG_with_stmt = 0x22,
- DW_TAG_access_declaration = 0x23,
- DW_TAG_base_type = 0x24,
- DW_TAG_catch_block = 0x25,
- DW_TAG_const_type = 0x26,
- DW_TAG_constant = 0x27,
- DW_TAG_enumerator = 0x28,
- DW_TAG_file_type = 0x29,
- DW_TAG_friend = 0x2a,
- DW_TAG_namelist = 0x2b,
- DW_TAG_namelist_item = 0x2c,
- DW_TAG_packed_type = 0x2d,
- DW_TAG_subprogram = 0x2e,
- DW_TAG_template_type_param = 0x2f,
- DW_TAG_template_value_param = 0x30,
- DW_TAG_thrown_type = 0x31,
- DW_TAG_try_block = 0x32,
- DW_TAG_variant_part = 0x33,
- DW_TAG_variable = 0x34,
- DW_TAG_volatile_type = 0x35,
- /* DWARF 3. */
- DW_TAG_dwarf_procedure = 0x36,
- DW_TAG_restrict_type = 0x37,
- DW_TAG_interface_type = 0x38,
- DW_TAG_namespace = 0x39,
- DW_TAG_imported_module = 0x3a,
- DW_TAG_unspecified_type = 0x3b,
- DW_TAG_partial_unit = 0x3c,
- DW_TAG_imported_unit = 0x3d,
- DW_TAG_condition = 0x3f,
- DW_TAG_shared_type = 0x40,
- /* DWARF 4. */
- DW_TAG_type_unit = 0x41,
- DW_TAG_rvalue_reference_type = 0x42,
- DW_TAG_template_alias = 0x43,
-
- DW_TAG_lo_user = 0x4080,
- DW_TAG_hi_user = 0xffff,
-
- /* SGI/MIPS Extensions. */
- DW_TAG_MIPS_loop = 0x4081,
-
- /* HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . */
- DW_TAG_HP_array_descriptor = 0x4090,
- DW_TAG_HP_Bliss_field = 0x4091,
- DW_TAG_HP_Bliss_field_set = 0x4092,
-
- /* GNU extensions. */
- DW_TAG_format_label = 0x4101, /* For FORTRAN 77 and Fortran 90. */
- DW_TAG_function_template = 0x4102, /* For C++. */
- DW_TAG_class_template = 0x4103, /* For C++. */
- DW_TAG_GNU_BINCL = 0x4104,
- DW_TAG_GNU_EINCL = 0x4105,
- /* Template template parameter.
- See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */
- DW_TAG_GNU_template_template_param = 0x4106,
-
- /* Template parameter pack extension, specified at
- http://wiki.dwarfstd.org/index.php?title=C%2B%2B0x:_Variadic_templates
- The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
- are properly part of DWARF 5. */
- DW_TAG_GNU_template_parameter_pack = 0x4107,
- DW_TAG_GNU_formal_parameter_pack = 0x4108,
- /* The GNU call site extension, specified at
- http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open .
- The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
- are properly part of DWARF 5. */
- DW_TAG_GNU_call_site = 0x4109,
- DW_TAG_GNU_call_site_parameter = 0x410a,
- /* Extensions for UPC. See: http://upc.gwu.edu/~upc. */
- DW_TAG_upc_shared_type = 0x8765,
- DW_TAG_upc_strict_type = 0x8766,
- DW_TAG_upc_relaxed_type = 0x8767,
- /* PGI (STMicroelectronics) extensions. No documentation available. */
- DW_TAG_PGI_kanji_type = 0xA000,
- DW_TAG_PGI_interface_block = 0xA020
- };
+#define DW_TAG(name, value) , name = value
+#define DW_TAG_DUP(name, value) , name = value
+#define DW_FORM(name, value) , name = value
+#define DW_AT(name, value) , name = value
+#define DW_AT_DUP(name, value) , name = value
+#define DW_OP(name, value) , name = value
+#define DW_OP_DUP(name, value) , name = value
+#define DW_ATE(name, value) , name = value
+#define DW_ATE_DUP(name, value) , name = value
+#define DW_CFA(name, value) , name = value
+
+#define DW_FIRST_TAG(name, value) enum dwarf_tag { \
+ name = value
+#define DW_END_TAG };
+#define DW_FIRST_FORM(name, value) enum dwarf_form { \
+ name = value
+#define DW_END_FORM };
+#define DW_FIRST_AT(name, value) enum dwarf_attribute { \
+ name = value
+#define DW_END_AT };
+#define DW_FIRST_OP(name, value) enum dwarf_location_atom { \
+ name = value
+#define DW_END_OP };
+#define DW_FIRST_ATE(name, value) enum dwarf_type { \
+ name = value
+#define DW_END_ATE };
+#define DW_FIRST_CFA(name, value) enum dwarf_call_frame_info { \
+ name = value
+#define DW_END_CFA };
+
+#include "dwarf2.def"
+
+#undef DW_FIRST_TAG
+#undef DW_END_TAG
+#undef DW_FIRST_FORM
+#undef DW_END_FORM
+#undef DW_FIRST_AT
+#undef DW_END_AT
+#undef DW_FIRST_OP
+#undef DW_END_OP
+#undef DW_FIRST_ATE
+#undef DW_END_ATE
+#undef DW_FIRST_CFA
+#undef DW_END_CFA
+
+#undef DW_TAG
+#undef DW_TAG_DUP
+#undef DW_FORM
+#undef DW_AT
+#undef DW_AT_DUP
+#undef DW_OP
+#undef DW_OP_DUP
+#undef DW_ATE
+#undef DW_ATE_DUP
+#undef DW_CFA
/* Flag that tells whether entry has a child or not. */
#define DW_children_no 0
#define DW_children_yes 1
-/* Form names and codes. */
-enum dwarf_form
- {
- DW_FORM_addr = 0x01,
- DW_FORM_block2 = 0x03,
- DW_FORM_block4 = 0x04,
- DW_FORM_data2 = 0x05,
- DW_FORM_data4 = 0x06,
- DW_FORM_data8 = 0x07,
- DW_FORM_string = 0x08,
- DW_FORM_block = 0x09,
- DW_FORM_block1 = 0x0a,
- DW_FORM_data1 = 0x0b,
- DW_FORM_flag = 0x0c,
- DW_FORM_sdata = 0x0d,
- DW_FORM_strp = 0x0e,
- DW_FORM_udata = 0x0f,
- DW_FORM_ref_addr = 0x10,
- DW_FORM_ref1 = 0x11,
- DW_FORM_ref2 = 0x12,
- DW_FORM_ref4 = 0x13,
- DW_FORM_ref8 = 0x14,
- DW_FORM_ref_udata = 0x15,
- DW_FORM_indirect = 0x16,
- /* DWARF 4. */
- DW_FORM_sec_offset = 0x17,
- DW_FORM_exprloc = 0x18,
- DW_FORM_flag_present = 0x19,
- DW_FORM_ref_sig8 = 0x20
- };
-
-/* Attribute names and codes. */
-enum dwarf_attribute
- {
- DW_AT_sibling = 0x01,
- DW_AT_location = 0x02,
- DW_AT_name = 0x03,
- DW_AT_ordering = 0x09,
- DW_AT_subscr_data = 0x0a,
- DW_AT_byte_size = 0x0b,
- DW_AT_bit_offset = 0x0c,
- DW_AT_bit_size = 0x0d,
- DW_AT_element_list = 0x0f,
- DW_AT_stmt_list = 0x10,
- DW_AT_low_pc = 0x11,
- DW_AT_high_pc = 0x12,
- DW_AT_language = 0x13,
- DW_AT_member = 0x14,
- DW_AT_discr = 0x15,
- DW_AT_discr_value = 0x16,
- DW_AT_visibility = 0x17,
- DW_AT_import = 0x18,
- DW_AT_string_length = 0x19,
- DW_AT_common_reference = 0x1a,
- DW_AT_comp_dir = 0x1b,
- DW_AT_const_value = 0x1c,
- DW_AT_containing_type = 0x1d,
- DW_AT_default_value = 0x1e,
- DW_AT_inline = 0x20,
- DW_AT_is_optional = 0x21,
- DW_AT_lower_bound = 0x22,
- DW_AT_producer = 0x25,
- DW_AT_prototyped = 0x27,
- DW_AT_return_addr = 0x2a,
- DW_AT_start_scope = 0x2c,
- DW_AT_bit_stride = 0x2e,
#define DW_AT_stride_size DW_AT_bit_stride /* Note: The use of DW_AT_stride_size is deprecated. */
- DW_AT_upper_bound = 0x2f,
- DW_AT_abstract_origin = 0x31,
- DW_AT_accessibility = 0x32,
- DW_AT_address_class = 0x33,
- DW_AT_artificial = 0x34,
- DW_AT_base_types = 0x35,
- DW_AT_calling_convention = 0x36,
- DW_AT_count = 0x37,
- DW_AT_data_member_location = 0x38,
- DW_AT_decl_column = 0x39,
- DW_AT_decl_file = 0x3a,
- DW_AT_decl_line = 0x3b,
- DW_AT_declaration = 0x3c,
- DW_AT_discr_list = 0x3d,
- DW_AT_encoding = 0x3e,
- DW_AT_external = 0x3f,
- DW_AT_frame_base = 0x40,
- DW_AT_friend = 0x41,
- DW_AT_identifier_case = 0x42,
- DW_AT_macro_info = 0x43,
- DW_AT_namelist_items = 0x44,
- DW_AT_priority = 0x45,
- DW_AT_segment = 0x46,
- DW_AT_specification = 0x47,
- DW_AT_static_link = 0x48,
- DW_AT_type = 0x49,
- DW_AT_use_location = 0x4a,
- DW_AT_variable_parameter = 0x4b,
- DW_AT_virtuality = 0x4c,
- DW_AT_vtable_elem_location = 0x4d,
- /* DWARF 3 values. */
- DW_AT_allocated = 0x4e,
- DW_AT_associated = 0x4f,
- DW_AT_data_location = 0x50,
- DW_AT_byte_stride = 0x51,
#define DW_AT_stride DW_AT_byte_stride /* Note: The use of DW_AT_stride is deprecated. */
- DW_AT_entry_pc = 0x52,
- DW_AT_use_UTF8 = 0x53,
- DW_AT_extension = 0x54,
- DW_AT_ranges = 0x55,
- DW_AT_trampoline = 0x56,
- DW_AT_call_column = 0x57,
- DW_AT_call_file = 0x58,
- DW_AT_call_line = 0x59,
- DW_AT_description = 0x5a,
- DW_AT_binary_scale = 0x5b,
- DW_AT_decimal_scale = 0x5c,
- DW_AT_small = 0x5d,
- DW_AT_decimal_sign = 0x5e,
- DW_AT_digit_count = 0x5f,
- DW_AT_picture_string = 0x60,
- DW_AT_mutable = 0x61,
- DW_AT_threads_scaled = 0x62,
- DW_AT_explicit = 0x63,
- DW_AT_object_pointer = 0x64,
- DW_AT_endianity = 0x65,
- DW_AT_elemental = 0x66,
- DW_AT_pure = 0x67,
- DW_AT_recursive = 0x68,
- /* DWARF 4. */
- DW_AT_signature = 0x69,
- DW_AT_main_subprogram = 0x6a,
- DW_AT_data_bit_offset = 0x6b,
- DW_AT_const_expr = 0x6c,
- DW_AT_enum_class = 0x6d,
- DW_AT_linkage_name = 0x6e,
-
- DW_AT_lo_user = 0x2000, /* Implementation-defined range start. */
- DW_AT_hi_user = 0x3fff, /* Implementation-defined range end. */
-
- /* SGI/MIPS extensions. */
- DW_AT_MIPS_fde = 0x2001,
- DW_AT_MIPS_loop_begin = 0x2002,
- DW_AT_MIPS_tail_loop_begin = 0x2003,
- DW_AT_MIPS_epilog_begin = 0x2004,
- DW_AT_MIPS_loop_unroll_factor = 0x2005,
- DW_AT_MIPS_software_pipeline_depth = 0x2006,
- DW_AT_MIPS_linkage_name = 0x2007,
- DW_AT_MIPS_stride = 0x2008,
- DW_AT_MIPS_abstract_name = 0x2009,
- DW_AT_MIPS_clone_origin = 0x200a,
- DW_AT_MIPS_has_inlines = 0x200b,
- /* HP extensions. */
- DW_AT_HP_block_index = 0x2000,
- DW_AT_HP_unmodifiable = 0x2001, /* Same as DW_AT_MIPS_fde. */
- DW_AT_HP_prologue = 0x2005, /* Same as DW_AT_MIPS_loop_unroll. */
- DW_AT_HP_epilogue = 0x2008, /* Same as DW_AT_MIPS_stride. */
- DW_AT_HP_actuals_stmt_list = 0x2010,
- DW_AT_HP_proc_per_section = 0x2011,
- DW_AT_HP_raw_data_ptr = 0x2012,
- DW_AT_HP_pass_by_reference = 0x2013,
- DW_AT_HP_opt_level = 0x2014,
- DW_AT_HP_prof_version_id = 0x2015,
- DW_AT_HP_opt_flags = 0x2016,
- DW_AT_HP_cold_region_low_pc = 0x2017,
- DW_AT_HP_cold_region_high_pc = 0x2018,
- DW_AT_HP_all_variables_modifiable = 0x2019,
- DW_AT_HP_linkage_name = 0x201a,
- DW_AT_HP_prof_flags = 0x201b, /* In comp unit of procs_info for -g. */
- DW_AT_HP_unit_name = 0x201f,
- DW_AT_HP_unit_size = 0x2020,
- DW_AT_HP_widened_byte_size = 0x2021,
- DW_AT_HP_definition_points = 0x2022,
- DW_AT_HP_default_location = 0x2023,
- DW_AT_HP_is_result_param = 0x2029,
-
- /* GNU extensions. */
- DW_AT_sf_names = 0x2101,
- DW_AT_src_info = 0x2102,
- DW_AT_mac_info = 0x2103,
- DW_AT_src_coords = 0x2104,
- DW_AT_body_begin = 0x2105,
- DW_AT_body_end = 0x2106,
- DW_AT_GNU_vector = 0x2107,
- /* Thread-safety annotations.
- See http://gcc.gnu.org/wiki/ThreadSafetyAnnotation . */
- DW_AT_GNU_guarded_by = 0x2108,
- DW_AT_GNU_pt_guarded_by = 0x2109,
- DW_AT_GNU_guarded = 0x210a,
- DW_AT_GNU_pt_guarded = 0x210b,
- DW_AT_GNU_locks_excluded = 0x210c,
- DW_AT_GNU_exclusive_locks_required = 0x210d,
- DW_AT_GNU_shared_locks_required = 0x210e,
- /* One-definition rule violation detection.
- See http://gcc.gnu.org/wiki/DwarfSeparateTypeInfo . */
- DW_AT_GNU_odr_signature = 0x210f,
- /* Template template argument name.
- See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */
- DW_AT_GNU_template_name = 0x2110,
- /* The GNU call site extension.
- See http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open . */
- DW_AT_GNU_call_site_value = 0x2111,
- DW_AT_GNU_call_site_data_value = 0x2112,
- DW_AT_GNU_call_site_target = 0x2113,
- DW_AT_GNU_call_site_target_clobbered = 0x2114,
- DW_AT_GNU_tail_call = 0x2115,
- DW_AT_GNU_all_tail_call_sites = 0x2116,
- DW_AT_GNU_all_call_sites = 0x2117,
- DW_AT_GNU_all_source_call_sites = 0x2118,
- /* Section offset into .debug_macro section. */
- DW_AT_GNU_macros = 0x2119,
- /* VMS extensions. */
- DW_AT_VMS_rtnbeg_pd_address = 0x2201,
- /* GNAT extensions. */
- /* GNAT descriptive type.
- See http://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type . */
- DW_AT_use_GNAT_descriptive_type = 0x2301,
- DW_AT_GNAT_descriptive_type = 0x2302,
- /* UPC extension. */
- DW_AT_upc_threads_scaled = 0x3210,
- /* PGI (STMicroelectronics) extensions. */
- DW_AT_PGI_lbase = 0x3a00,
- DW_AT_PGI_soffset = 0x3a01,
- DW_AT_PGI_lstride = 0x3a02
- };
-
-/* Location atom names and codes. */
-enum dwarf_location_atom
- {
- DW_OP_addr = 0x03,
- DW_OP_deref = 0x06,
- DW_OP_const1u = 0x08,
- DW_OP_const1s = 0x09,
- DW_OP_const2u = 0x0a,
- DW_OP_const2s = 0x0b,
- DW_OP_const4u = 0x0c,
- DW_OP_const4s = 0x0d,
- DW_OP_const8u = 0x0e,
- DW_OP_const8s = 0x0f,
- DW_OP_constu = 0x10,
- DW_OP_consts = 0x11,
- DW_OP_dup = 0x12,
- DW_OP_drop = 0x13,
- DW_OP_over = 0x14,
- DW_OP_pick = 0x15,
- DW_OP_swap = 0x16,
- DW_OP_rot = 0x17,
- DW_OP_xderef = 0x18,
- DW_OP_abs = 0x19,
- DW_OP_and = 0x1a,
- DW_OP_div = 0x1b,
- DW_OP_minus = 0x1c,
- DW_OP_mod = 0x1d,
- DW_OP_mul = 0x1e,
- DW_OP_neg = 0x1f,
- DW_OP_not = 0x20,
- DW_OP_or = 0x21,
- DW_OP_plus = 0x22,
- DW_OP_plus_uconst = 0x23,
- DW_OP_shl = 0x24,
- DW_OP_shr = 0x25,
- DW_OP_shra = 0x26,
- DW_OP_xor = 0x27,
- DW_OP_bra = 0x28,
- DW_OP_eq = 0x29,
- DW_OP_ge = 0x2a,
- DW_OP_gt = 0x2b,
- DW_OP_le = 0x2c,
- DW_OP_lt = 0x2d,
- DW_OP_ne = 0x2e,
- DW_OP_skip = 0x2f,
- DW_OP_lit0 = 0x30,
- DW_OP_lit1 = 0x31,
- DW_OP_lit2 = 0x32,
- DW_OP_lit3 = 0x33,
- DW_OP_lit4 = 0x34,
- DW_OP_lit5 = 0x35,
- DW_OP_lit6 = 0x36,
- DW_OP_lit7 = 0x37,
- DW_OP_lit8 = 0x38,
- DW_OP_lit9 = 0x39,
- DW_OP_lit10 = 0x3a,
- DW_OP_lit11 = 0x3b,
- DW_OP_lit12 = 0x3c,
- DW_OP_lit13 = 0x3d,
- DW_OP_lit14 = 0x3e,
- DW_OP_lit15 = 0x3f,
- DW_OP_lit16 = 0x40,
- DW_OP_lit17 = 0x41,
- DW_OP_lit18 = 0x42,
- DW_OP_lit19 = 0x43,
- DW_OP_lit20 = 0x44,
- DW_OP_lit21 = 0x45,
- DW_OP_lit22 = 0x46,
- DW_OP_lit23 = 0x47,
- DW_OP_lit24 = 0x48,
- DW_OP_lit25 = 0x49,
- DW_OP_lit26 = 0x4a,
- DW_OP_lit27 = 0x4b,
- DW_OP_lit28 = 0x4c,
- DW_OP_lit29 = 0x4d,
- DW_OP_lit30 = 0x4e,
- DW_OP_lit31 = 0x4f,
- DW_OP_reg0 = 0x50,
- DW_OP_reg1 = 0x51,
- DW_OP_reg2 = 0x52,
- DW_OP_reg3 = 0x53,
- DW_OP_reg4 = 0x54,
- DW_OP_reg5 = 0x55,
- DW_OP_reg6 = 0x56,
- DW_OP_reg7 = 0x57,
- DW_OP_reg8 = 0x58,
- DW_OP_reg9 = 0x59,
- DW_OP_reg10 = 0x5a,
- DW_OP_reg11 = 0x5b,
- DW_OP_reg12 = 0x5c,
- DW_OP_reg13 = 0x5d,
- DW_OP_reg14 = 0x5e,
- DW_OP_reg15 = 0x5f,
- DW_OP_reg16 = 0x60,
- DW_OP_reg17 = 0x61,
- DW_OP_reg18 = 0x62,
- DW_OP_reg19 = 0x63,
- DW_OP_reg20 = 0x64,
- DW_OP_reg21 = 0x65,
- DW_OP_reg22 = 0x66,
- DW_OP_reg23 = 0x67,
- DW_OP_reg24 = 0x68,
- DW_OP_reg25 = 0x69,
- DW_OP_reg26 = 0x6a,
- DW_OP_reg27 = 0x6b,
- DW_OP_reg28 = 0x6c,
- DW_OP_reg29 = 0x6d,
- DW_OP_reg30 = 0x6e,
- DW_OP_reg31 = 0x6f,
- DW_OP_breg0 = 0x70,
- DW_OP_breg1 = 0x71,
- DW_OP_breg2 = 0x72,
- DW_OP_breg3 = 0x73,
- DW_OP_breg4 = 0x74,
- DW_OP_breg5 = 0x75,
- DW_OP_breg6 = 0x76,
- DW_OP_breg7 = 0x77,
- DW_OP_breg8 = 0x78,
- DW_OP_breg9 = 0x79,
- DW_OP_breg10 = 0x7a,
- DW_OP_breg11 = 0x7b,
- DW_OP_breg12 = 0x7c,
- DW_OP_breg13 = 0x7d,
- DW_OP_breg14 = 0x7e,
- DW_OP_breg15 = 0x7f,
- DW_OP_breg16 = 0x80,
- DW_OP_breg17 = 0x81,
- DW_OP_breg18 = 0x82,
- DW_OP_breg19 = 0x83,
- DW_OP_breg20 = 0x84,
- DW_OP_breg21 = 0x85,
- DW_OP_breg22 = 0x86,
- DW_OP_breg23 = 0x87,
- DW_OP_breg24 = 0x88,
- DW_OP_breg25 = 0x89,
- DW_OP_breg26 = 0x8a,
- DW_OP_breg27 = 0x8b,
- DW_OP_breg28 = 0x8c,
- DW_OP_breg29 = 0x8d,
- DW_OP_breg30 = 0x8e,
- DW_OP_breg31 = 0x8f,
- DW_OP_regx = 0x90,
- DW_OP_fbreg = 0x91,
- DW_OP_bregx = 0x92,
- DW_OP_piece = 0x93,
- DW_OP_deref_size = 0x94,
- DW_OP_xderef_size = 0x95,
- DW_OP_nop = 0x96,
- /* DWARF 3 extensions. */
- DW_OP_push_object_address = 0x97,
- DW_OP_call2 = 0x98,
- DW_OP_call4 = 0x99,
- DW_OP_call_ref = 0x9a,
- DW_OP_form_tls_address = 0x9b,
- DW_OP_call_frame_cfa = 0x9c,
- DW_OP_bit_piece = 0x9d,
-
- /* DWARF 4 extensions. */
- DW_OP_implicit_value = 0x9e,
- DW_OP_stack_value = 0x9f,
-
- DW_OP_lo_user = 0xe0, /* Implementation-defined range start. */
- DW_OP_hi_user = 0xff, /* Implementation-defined range end. */
-
- /* GNU extensions. */
- DW_OP_GNU_push_tls_address = 0xe0,
- /* The following is for marking variables that are uninitialized. */
- DW_OP_GNU_uninit = 0xf0,
- DW_OP_GNU_encoded_addr = 0xf1,
- /* The GNU implicit pointer extension.
- See http://www.dwarfstd.org/ShowIssue.php?issue=100831.1&type=open . */
- DW_OP_GNU_implicit_pointer = 0xf2,
- /* The GNU entry value extension.
- See http://www.dwarfstd.org/ShowIssue.php?issue=100909.1&type=open . */
- DW_OP_GNU_entry_value = 0xf3,
- /* The GNU typed stack extension.
- See http://www.dwarfstd.org/doc/040408.1.html . */
- DW_OP_GNU_const_type = 0xf4,
- DW_OP_GNU_regval_type = 0xf5,
- DW_OP_GNU_deref_type = 0xf6,
- DW_OP_GNU_convert = 0xf7,
- DW_OP_GNU_reinterpret = 0xf9,
- /* The GNU parameter ref extension. */
- DW_OP_GNU_parameter_ref = 0xfa,
- /* HP extensions. */
- DW_OP_HP_unknown = 0xe0, /* Ouch, the same as GNU_push_tls_address. */
- DW_OP_HP_is_value = 0xe1,
- DW_OP_HP_fltconst4 = 0xe2,
- DW_OP_HP_fltconst8 = 0xe3,
- DW_OP_HP_mod_range = 0xe4,
- DW_OP_HP_unmod_range = 0xe5,
- DW_OP_HP_tls = 0xe6,
- /* PGI (STMicroelectronics) extensions. */
- DW_OP_PGI_omp_thread_num = 0xf8
- };
-
-/* Type encodings. */
-enum dwarf_type
- {
- DW_ATE_void = 0x0,
- DW_ATE_address = 0x1,
- DW_ATE_boolean = 0x2,
- DW_ATE_complex_float = 0x3,
- DW_ATE_float = 0x4,
- DW_ATE_signed = 0x5,
- DW_ATE_signed_char = 0x6,
- DW_ATE_unsigned = 0x7,
- DW_ATE_unsigned_char = 0x8,
- /* DWARF 3. */
- DW_ATE_imaginary_float = 0x9,
- DW_ATE_packed_decimal = 0xa,
- DW_ATE_numeric_string = 0xb,
- DW_ATE_edited = 0xc,
- DW_ATE_signed_fixed = 0xd,
- DW_ATE_unsigned_fixed = 0xe,
- DW_ATE_decimal_float = 0xf,
- /* DWARF 4. */
- DW_ATE_UTF = 0x10,
-
- DW_ATE_lo_user = 0x80,
- DW_ATE_hi_user = 0xff,
-
- /* HP extensions. */
- DW_ATE_HP_float80 = 0x80, /* Floating-point (80 bit). */
- DW_ATE_HP_complex_float80 = 0x81, /* Complex floating-point (80 bit). */
- DW_ATE_HP_float128 = 0x82, /* Floating-point (128 bit). */
- DW_ATE_HP_complex_float128 = 0x83, /* Complex fp (128 bit). */
- DW_ATE_HP_floathpintel = 0x84, /* Floating-point (82 bit IA64). */
- DW_ATE_HP_imaginary_float80 = 0x85,
- DW_ATE_HP_imaginary_float128 = 0x86,
- DW_ATE_HP_VAX_float = 0x88, /* F or G floating. */
- DW_ATE_HP_VAX_float_d = 0x89, /* D floating. */
- DW_ATE_HP_packed_decimal = 0x8a, /* Cobol. */
- DW_ATE_HP_zoned_decimal = 0x8b, /* Cobol. */
- DW_ATE_HP_edited = 0x8c, /* Cobol. */
- DW_ATE_HP_signed_fixed = 0x8d, /* Cobol. */
- DW_ATE_HP_unsigned_fixed = 0x8e, /* Cobol. */
- DW_ATE_HP_VAX_complex_float = 0x8f, /* F or G floating complex. */
- DW_ATE_HP_VAX_complex_float_d = 0x90 /* D floating complex. */
- };
/* Decimal sign encodings. */
enum dwarf_decimal_sign_encoding
@@ -776,48 +259,6 @@ enum dwarf_line_number_hp_sfc_ops
DW_LNE_HP_SFC_associate = 3
};
-/* Call frame information. */
-enum dwarf_call_frame_info
- {
- DW_CFA_advance_loc = 0x40,
- DW_CFA_offset = 0x80,
- DW_CFA_restore = 0xc0,
- DW_CFA_nop = 0x00,
- DW_CFA_set_loc = 0x01,
- DW_CFA_advance_loc1 = 0x02,
- DW_CFA_advance_loc2 = 0x03,
- DW_CFA_advance_loc4 = 0x04,
- DW_CFA_offset_extended = 0x05,
- DW_CFA_restore_extended = 0x06,
- DW_CFA_undefined = 0x07,
- DW_CFA_same_value = 0x08,
- DW_CFA_register = 0x09,
- DW_CFA_remember_state = 0x0a,
- DW_CFA_restore_state = 0x0b,
- DW_CFA_def_cfa = 0x0c,
- DW_CFA_def_cfa_register = 0x0d,
- DW_CFA_def_cfa_offset = 0x0e,
- /* DWARF 3. */
- DW_CFA_def_cfa_expression = 0x0f,
- DW_CFA_expression = 0x10,
- DW_CFA_offset_extended_sf = 0x11,
- DW_CFA_def_cfa_sf = 0x12,
- DW_CFA_def_cfa_offset_sf = 0x13,
- DW_CFA_val_offset = 0x14,
- DW_CFA_val_offset_sf = 0x15,
- DW_CFA_val_expression = 0x16,
-
- DW_CFA_lo_user = 0x1c,
- DW_CFA_hi_user = 0x3f,
-
- /* SGI/MIPS specific. */
- DW_CFA_MIPS_advance_loc8 = 0x1d,
- /* GNU extensions. */
- DW_CFA_GNU_window_save = 0x2d,
- DW_CFA_GNU_args_size = 0x2e,
- DW_CFA_GNU_negative_offset_extended = 0x2f
- };
-
#define DW_CIE_ID 0xffffffff
#define DW64_CIE_ID 0xffffffffffffffffULL
#define DW_CIE_VERSION 1
@@ -892,6 +333,11 @@ enum dwarf_macro_record_type
DW_MACRO_GNU_define_indirect = 5,
DW_MACRO_GNU_undef_indirect = 6,
DW_MACRO_GNU_transparent_include = 7,
+ /* Extensions for DWZ multifile.
+ See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open . */
+ DW_MACRO_GNU_define_indirect_alt = 8,
+ DW_MACRO_GNU_undef_indirect_alt = 9,
+ DW_MACRO_GNU_transparent_include_alt = 10,
DW_MACRO_GNU_lo_user = 0xe0,
DW_MACRO_GNU_hi_user = 0xff
};
@@ -919,4 +365,37 @@ enum dwarf_macro_record_type
#define DW_EH_PE_indirect 0x80
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* Return the name of a DW_TAG_ constant, or NULL if the value is not
+ recognized. */
+extern const char *get_DW_TAG_name (unsigned int tag);
+
+/* Return the name of a DW_AT_ constant, or NULL if the value is not
+ recognized. */
+extern const char *get_DW_AT_name (unsigned int attr);
+
+/* Return the name of a DW_FORM_ constant, or NULL if the value is not
+ recognized. */
+extern const char *get_DW_FORM_name (unsigned int form);
+
+/* Return the name of a DW_OP_ constant, or NULL if the value is not
+ recognized. */
+extern const char *get_DW_OP_name (unsigned int op);
+
+/* Return the name of a DW_ATE_ constant, or NULL if the value is not
+ recognized. */
+extern const char *get_DW_ATE_name (unsigned int enc);
+
+/* Return the name of a DW_CFA_ constant, or NULL if the value is not
+ recognized. */
+extern const char *get_DW_CFA_name (unsigned int opc);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
#endif /* _DWARF2_H */
diff --git a/binutils-2.22/include/elf/ChangeLog b/binutils-2.22/include/elf/ChangeLog
index 3b2c88b..ef84aa3 100644
--- a/binutils-2.22/include/elf/ChangeLog
+++ b/binutils-2.22/include/elf/ChangeLog
@@ -1,9 +1,160 @@
-2011-10-25 Alan Modra <amodra@gmail.com>
+2012-06-28 Iain Sandoe <iain@codesourcery.com>
+
+ * common.h (AT_L1I_CACHESHAPE, AT_L1D_CACHESHAPE,
+ AT_L2_CACHESHAPE, AT_L3_CACHESHAPE): New defines.
+
+2012-05-16 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/13503
+ * avr.h (RELOC_NUMBERS): Rename R_AVR_8_HHI8 to R_AVR_8_HLO8.
+
+2012-05-15 James Murray <jsm@jsm-net.demon.co.uk>
+
+ * m68hc11.h (R_M68HC12_16B, R_M68HC12_PCREL_9, R_M68HC12_PCREL_10)
+ R_M68HC12_HI8XG, R_M68HC12_LO8XG): New relocations.
+ (E_M68HC11_XGATE_RAMOFFSET): Define.
+
+2012-05-14 James Lemke <jwlemke@codesourcery.com>
+ * ppc.h (SEC_PPC_VLE): Remove.
+
+2012-05-14 Catherine Moore <clm@codesourcery.com>
+ James Lemke <jwlemke@codesourcery.com>
+
+ * ppc.h (R_PPC_VLE_REL8): New reloction.
+ (R_PPC_VLE_REL15): Likewise.
+ (R_PPC_VLE_REL24): Likewise.
+ (R_PPC_VLE_LO16A): Likewise.
+ (R_PPC_VLE_LO16D): Likewise.
+ (R_PPC_VLE_HI16A): Likewise.
+ (R_PPC_VLE_HI16D): Likewise.
+ (R_PPC_VLE_HA16A): Likewise.
+ (R_PPC_VLE_HA16D): Likewise.
+ (R_PPC_VLE_SDA21): Likewise.
+ (R_PPC_VLE_SDA21_LO): Likewise.
+ (R_PPC_VLE_SDAREL_LO16A): Likewise.
+ (R_PPC_VLE_SDAREL_LO16D): Likewise.
+ (R_PPC_VLE_SDAREL_HI16A): Likewise.
+ (R_PPC_VLE_SDAREL_HI16D): Likewise.
+ (R_PPC_VLE_SDAREL_HA16A): Likewise.
+ (R_PPC_VLE_SDAREL_HA16D): Likewise.
+ (SEC_PPC_VLE): Remove.
+ (PF_PPC_VLE): New program header flag.
+ (SHF_PPC_VLE): New section header flag.
+ (vle_opcodes, vle_num_opcodes): New.
+ (VLE_OP): New macro.
+ (VLE_OP_TO_SEG): New macro.
+
+2012-05-11 Georg-Johann Lay <avr@gjlay.de
+
+ PR target/13503
+ * elf/avr.h (RELOC_NUMBERS): Add values for R_AVR_8_LO8,
+ R_AVR_8_HI8, R_AVR_8_HHI8.
+
+2012-05-03 Sean Keys <skeys@ipdatasys.com>
+
+ * xgate.h: Mininal file to support XGATE relocations.
+
+2012-04-27 David S. Miller <davem@davemloft.net>
+
+ * sparc.h: Add new ELF_SPARC_HWCAP_* defines for crypto,
+ pause, and compare-and-branch instructions.
+
+2012-03-07 Nick Clifton <nickc@redhat.com>
+
+ * mn10300.h (elf_mn10300_reloc_type): Add R_MN10300_TLS_GD,
+ R_MN10300_TLS_LD, R_MN10300_TLS_LDO, R_MN10300_TLS_GOTIE,
+ R_MN10300_TLS_IE, R_MN10300_TLS_LE, R_MN10300_TLS_DPTMOD,
+ R_MN10300_TLS_DTPOFF and R_MN10300_TLS_TPOFF.
+
+2012-02-25 Walter Lee <walt@tilera.com>
+
+ * tilegx.h (R_TILEGX_IMM16_X0_HW1_GOT): Delete.
+ (R_TILEGX_IMM16_X1_HW1_GOT): Ditto.
+ (R_TILEGX_IMM16_X0_HW2_GOT): Ditto.
+ (R_TILEGX_IMM16_X1_HW2_GOT): Ditto.
+ (R_TILEGX_IMM16_X0_HW3_GOT): Ditto.
+ (R_TILEGX_IMM16_X1_HW3_GOT): Ditto.
+ (R_TILEGX_IMM16_X0_HW2_LAST_GOT): Ditto.
+ (R_TILEGX_IMM16_X1_HW2_LAST_GOT): Ditto.
+ (R_TILEGX_IMM16_X0_HW1_TLS_GD): Ditto.
+ (R_TILEGX_IMM16_X1_HW1_TLS_GD): Ditto.
+ (R_TILEGX_IMM16_X0_HW2_TLS_GD): Ditto.
+ (R_TILEGX_IMM16_X1_HW2_TLS_GD): Ditto.
+ (R_TILEGX_IMM16_X0_HW3_TLS_GD): Ditto.
+ (R_TILEGX_IMM16_X1_HW3_TLS_GD): Ditto.
+ (R_TILEGX_IMM16_X0_HW2_LAST_TLS_GD): Ditto.
+ (R_TILEGX_IMM16_X1_HW2_LAST_TLS_GD): Ditto.
+ (R_TILEGX_IMM16_X0_HW1_TLS_IE): Ditto.
+ (R_TILEGX_IMM16_X1_HW1_TLS_IE): Ditto.
+ (R_TILEGX_IMM16_X0_HW2_TLS_IE): Ditto.
+ (R_TILEGX_IMM16_X1_HW2_TLS_IE): Ditto.
+ (R_TILEGX_IMM16_X0_HW3_TLS_IE): Ditto.
+ (R_TILEGX_IMM16_X1_HW3_TLS_IE): Ditto.
+ (R_TILEGX_IMM16_X0_HW2_LAST_TLS_IE): Ditto.
+ (R_TILEGX_IMM16_X1_HW2_LAST_TLS_IE): Ditto.
+ (R_TILEGX_IMM16_X0_HW0_TLS_LE): New relocation.
+ (R_TILEGX_IMM16_X1_HW0_TLS_LE): Ditto.
+ (R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE): Ditto.
+ (R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE): Ditto.
+ (R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE): Ditto.
+ (R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE): Ditto.
+ (R_TILEGX_TLS_GD_CALL): Ditto.
+ (R_TILEGX_IMM8_X0_TLS_GD_ADD): Ditto.
+ (R_TILEGX_IMM8_X1_TLS_GD_ADD): Ditto.
+ (R_TILEGX_IMM8_Y0_TLS_GD_ADD): Ditto.
+ (R_TILEGX_IMM8_Y1_TLS_GD_ADD): Ditto.
+ (R_TILEGX_TLS_IE_LOAD): Ditto.
+ (R_TILEGX_IMM8_X0_TLS_ADD): Ditto.
+ (R_TILEGX_IMM8_X1_TLS_ADD): Ditto.
+ (R_TILEGX_IMM8_Y0_TLS_ADD): Ditto.
+ (R_TILEGX_IMM8_Y1_TLS_ADD): Ditto.
+ * tilepro.h (R_TILEPRO_TLS_GD_CALL): New relocation.
+ (R_TILEPRO_IMM8_X0_TLS_GD_ADD): Ditto.
+ (R_TILEPRO_IMM8_X1_TLS_GD_ADD): Ditto.
+ (R_TILEPRO_IMM8_Y0_TLS_GD_ADD): Ditto.
+ (R_TILEPRO_IMM8_Y1_TLS_GD_ADD): Ditto.
+ (R_TILEPRO_TLS_IE_LOAD): Ditto.
+ (R_TILEPRO_IMM16_X0_TLS_LE): Ditto.
+ (R_TILEPRO_IMM16_X1_TLS_LE): Ditto.
+ (R_TILEPRO_IMM16_X0_TLS_LE_LO): Ditto.
+ (R_TILEPRO_IMM16_X1_TLS_LE_LO): Ditto.
+ (R_TILEPRO_IMM16_X0_TLS_LE_HI): Ditto.
+ (R_TILEPRO_IMM16_X1_TLS_LE_HI): Ditto.
+ (R_TILEPRO_IMM16_X0_TLS_LE_HA): Ditto.
+ (R_TILEPRO_IMM16_X1_TLS_LE_HA): Ditto.
+
+2011-12-22 DJ Delorie <dj@redhat.com>
+
+ * rl78.h (R_RL78_RH_RELAX, R_RL78_RH_SFR, R_RL78_RH_SADDR): New.
+ (RL78_RELAXA_BRA, RL78_RELAXA_ADDR16: New.
+
+2011-12-19 Chung-Lin Tang <cltang@codesourcery.com>
+
+ * mips.h (elf_mips_reloc_type): Add R_MIPS16_TLS_* entries.
+
+2011-12-06 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * common.h (NT_S390_LAST_BREAK): Define.
+ (NT_S390_SYSTEM_CALL): Likewise.
+
+2011-11-01 DJ Delorie <dj@redhat.com>
+
+ * common.h (EM_RL78, EM_78K0R): New.
+ * rl78.h: New.
+
+2011-10-25 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ * epiphany.h: New file.
+ * common.h (EM_ADAPTEVA_EPIPHANY): Define.
+
+2011-10-10 Alan Modra <amodra@gmail.com>
- Apply mainline patches
- 2011-10-10 Alan Modra <amodra@gmail.com>
* ppc64.h (R_PPC64_TOCSAVE): Add.
+2011-10-05 DJ Delorie <dj@redhat.com>
+
+ * rx.h (E_FLAG_RX_PID): New.
+
2011-09-21 David S. Miller <davem@davemloft.net>
* sparc.h (Tag_GNU_Sparc_HWCAPS): New object attribute.
@@ -82,6 +233,12 @@
* arm.h (arm_st_branch_type): Add ST_BRANCH_UNKNOWN.
+2011-05-09 Paul Brook <paul@codesourcery.com>
+
+ * tic6x.h (ELF_STRING_C6000_unwind,
+ ELF_STRING_C6000_unwind_info, ELF_STRING_C6000_unwind_once,
+ ELF_STRING_C6000_unwind_info_once): Define.
+
2011-04-15 Sergio Durigan Junior <sergiodj@redhat.com>
* common.h (NT_STAPSDT): New define.
@@ -366,6 +523,11 @@
R_PPC_RELAX32PC_PLT): Delete.
(R_PPC_RELAX, R_PPC_RELAX_PLT, R_PPC_RELAX_PLTREL24): Define.
+2009-12-03 David Daney <ddaney@caviumnetworks.com>
+ Adam Nemet <adambnemet@gmail.com>
+
+ * mips.h (E_MIPS_MACH_OCTEON2): New machine flag.
+
2009-11-28 Joseph Myers <joseph@codesourcery.com>
* common.h (ELFOSABI_FENIXOS, EM_TI_C6000, EM_TI_C2000,
diff --git a/binutils-2.22/include/elf/avr.h b/binutils-2.22/include/elf/avr.h
index 11d43f9..b45d902 100644
--- a/binutils-2.22/include/elf/avr.h
+++ b/binutils-2.22/include/elf/avr.h
@@ -1,5 +1,6 @@
/* AVR ELF support for BFD.
- Copyright 1999, 2000, 2004, 2006, 2010 Free Software Foundation, Inc.
+ Copyright 1999, 2000, 2004, 2006, 2010, 2012
+ Free Software Foundation, Inc.
Contributed by Denis Chertykov <denisc@overta.ru>
This file is part of BFD, the Binary File Descriptor library.
@@ -30,16 +31,16 @@
as reference for the relocations so that linker relaxation is possible. */
#define EF_AVR_LINKRELAX_PREPARED 0x80
-#define E_AVR_MACH_AVR1 1
-#define E_AVR_MACH_AVR2 2
-#define E_AVR_MACH_AVR25 25
-#define E_AVR_MACH_AVR3 3
-#define E_AVR_MACH_AVR31 31
-#define E_AVR_MACH_AVR35 35
-#define E_AVR_MACH_AVR4 4
-#define E_AVR_MACH_AVR5 5
-#define E_AVR_MACH_AVR51 51
-#define E_AVR_MACH_AVR6 6
+#define E_AVR_MACH_AVR1 1
+#define E_AVR_MACH_AVR2 2
+#define E_AVR_MACH_AVR25 25
+#define E_AVR_MACH_AVR3 3
+#define E_AVR_MACH_AVR31 31
+#define E_AVR_MACH_AVR35 35
+#define E_AVR_MACH_AVR4 4
+#define E_AVR_MACH_AVR5 5
+#define E_AVR_MACH_AVR51 51
+#define E_AVR_MACH_AVR6 6
#define E_AVR_MACH_XMEGA1 101
#define E_AVR_MACH_XMEGA2 102
#define E_AVR_MACH_XMEGA3 103
@@ -77,6 +78,9 @@ START_RELOC_NUMBERS (elf_avr_reloc_type)
RELOC_NUMBER (R_AVR_LO8_LDI_GS, 24)
RELOC_NUMBER (R_AVR_HI8_LDI_GS, 25)
RELOC_NUMBER (R_AVR_8, 26)
+ RELOC_NUMBER (R_AVR_8_LO8, 27)
+ RELOC_NUMBER (R_AVR_8_HI8, 28)
+ RELOC_NUMBER (R_AVR_8_HLO8, 29)
END_RELOC_NUMBERS (R_AVR_max)
#endif /* _ELF_AVR_H */
diff --git a/binutils-2.22/include/elf/common.h b/binutils-2.22/include/elf/common.h
index e46ae33..58e489a 100644
--- a/binutils-2.22/include/elf/common.h
+++ b/binutils-2.22/include/elf/common.h
@@ -1,6 +1,6 @@
/* ELF support for BFD.
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+ 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
Written by Fred Fish @ Cygnus Support, from information published
@@ -296,6 +296,8 @@
#define EM_MICROBLAZE 189 /* Xilinx MicroBlaze 32-bit RISC soft processor core */
#define EM_CUDA 190 /* NVIDIA CUDA architecture */
#define EM_TILEGX 191 /* Tilera TILE-Gx multicore architecture family */
+#define EM_RL78 197 /* Renesas RL78 family. */
+#define EM_78K0R 199 /* Renesas 78K0R. */
/* If it is necessary to assign new unofficial EM_* values, please pick large
random numbers (0x8523, 0xa7f2, etc.) to minimize the chances of collision
@@ -401,6 +403,8 @@
#define EM_MICROBLAZE_OLD 0xbaab /* Old MicroBlaze */
+#define EM_ADAPTEVA_EPIPHANY 0x1223 /* Adapteva's Epiphany architecture. */
+
/* See the above comment before you add a new EM_* value here. */
/* Values for e_version. */
@@ -539,6 +543,10 @@
/* note name must be "LINUX". */
#define NT_S390_PREFIX 0x305 /* S390 prefix register */
/* note name must be "LINUX". */
+#define NT_S390_LAST_BREAK 0x306 /* S390 breaking event address */
+ /* note name must be "LINUX". */
+#define NT_S390_SYSTEM_CALL 0x307 /* S390 system call restart data */
+ /* note name must be "LINUX". */
#define NT_ARM_VFP 0x400 /* ARM VFP registers */
/* note name must be "LINUX". */
@@ -927,6 +935,18 @@
#define AT_SYSINFO 32
#define AT_SYSINFO_EHDR 33 /* Pointer to ELF header of system-supplied DSO. */
+/* More complete cache descriptions than AT_[DIU]CACHEBSIZE. If the
+ value is -1, then the cache doesn't exist. Otherwise:
+
+ bit 0-3: Cache set-associativity; 0 means fully associative.
+ bit 4-7: Log2 of cacheline size.
+ bit 8-31: Size of the entire cache >> 8. */
+
+#define AT_L1I_CACHESHAPE 34
+#define AT_L1D_CACHESHAPE 35
+#define AT_L2_CACHESHAPE 36
+#define AT_L3_CACHESHAPE 37
+
#define AT_SUN_UID 2000 /* Effective user ID. */
#define AT_SUN_RUID 2001 /* Real user ID. */
#define AT_SUN_GID 2002 /* Effective group ID. */
diff --git a/binutils-2.22/include/elf/epiphany.h b/binutils-2.22/include/elf/epiphany.h
new file mode 100755
index 0000000..bb2dcff
--- /dev/null
+++ b/binutils-2.22/include/elf/epiphany.h
@@ -0,0 +1,59 @@
+/* Adapteva EPIPHANY ELF support for BFD.
+ Copyright (C) 2009, 2011 Free Software Foundation, Inc.
+ Contributed by Embecosm on behalf of Adapteva, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _ELF_EPIPHANY_H
+#define _ELF_EPIPHANY_H
+
+#include "elf/reloc-macros.h"
+
+/* Relocations. */
+START_RELOC_NUMBERS (elf_epiphany_reloc_type)
+ RELOC_NUMBER (R_EPIPHANY_NONE, 0)
+
+ /* Absolute address relocations. */
+ RELOC_NUMBER (R_EPIPHANY_8, 1)
+ RELOC_NUMBER (R_EPIPHANY_16, 2)
+ RELOC_NUMBER (R_EPIPHANY_32, 3)
+
+ /* PC-relative relocations. */
+ RELOC_NUMBER (R_EPIPHANY_8_PCREL, 4)
+ RELOC_NUMBER (R_EPIPHANY_16_PCREL,5)
+ RELOC_NUMBER (R_EPIPHANY_32_PCREL,6)
+
+ /* special forms for 8/24 bit branch displacements. */
+ RELOC_NUMBER (R_EPIPHANY_SIMM8, 7)
+ RELOC_NUMBER (R_EPIPHANY_SIMM24, 8)
+
+ /* HIGH and LOW relocations taking part of a 32 bit address and
+ depositing it into the IMM16 field of a destination. */
+ RELOC_NUMBER (R_EPIPHANY_HIGH, 9)
+ RELOC_NUMBER (R_EPIPHANY_LOW,10)
+
+ /* 11 bit signed immediate value. */
+ RELOC_NUMBER (R_EPIPHANY_SIMM11, 11)
+ /* 11 bit magnitude addressing displacement. */
+ RELOC_NUMBER (R_EPIPHANY_IMM11, 12)
+
+ /* 8 bit immediate for MOV.S R,IMM8. */
+ RELOC_NUMBER (R_EPIPHANY_IMM8, 13)
+
+END_RELOC_NUMBERS(R_EPIPHANY_max)
+
+#endif /* _ELF_EPIPHANY_H */
diff --git a/binutils-2.22/include/elf/m68hc11.h b/binutils-2.22/include/elf/m68hc11.h
index ca325d9..9a37a44 100644
--- a/binutils-2.22/include/elf/m68hc11.h
+++ b/binutils-2.22/include/elf/m68hc11.h
@@ -1,5 +1,5 @@
/* m68hc11 & m68hc12 ELF support for BFD.
- Copyright 1999, 2000, 2001, 2002, 2010 Free Software Foundation, Inc.
+ Copyright 1999, 2000, 2001, 2002, 2010, 2012 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -42,6 +42,12 @@ START_RELOC_NUMBERS (elf_m68hc11_reloc_type)
RELOC_NUMBER (R_M68HC11_LO16, 12)
RELOC_NUMBER (R_M68HC11_PAGE, 13)
+ RELOC_NUMBER (R_M68HC12_16B, 15)
+ RELOC_NUMBER (R_M68HC12_PCREL_9, 16)
+ RELOC_NUMBER (R_M68HC12_PCREL_10, 17)
+ RELOC_NUMBER (R_M68HC12_HI8XG, 18)
+ RELOC_NUMBER (R_M68HC12_LO8XG, 19)
+
/* GNU extension for linker relaxation.
Mark beginning of a jump instruction (any form). */
RELOC_NUMBER (R_M68HC11_RL_JUMP, 20)
@@ -64,6 +70,9 @@ END_RELOC_NUMBERS (R_M68HC11_max)
/* Uses 68HC12 memory banks. */
#define E_M68HC12_BANKS 0x000000004
+/* XGATE ram offsetting. */
+#define E_M68HC11_XGATE_RAMOFFSET 0x000000100
+
#define EF_M68HC11_MACH_MASK 0xF0
#define EF_M68HC11_GENERIC 0x00 /* Generic 68HC12/backward compatibility. */
#define EF_M68HC12_MACH 0x10 /* 68HC12 microcontroller. */
@@ -86,10 +95,10 @@ END_RELOC_NUMBERS (R_M68HC11_max)
/* Special values for the st_other field in the symbol table. These
are used for 68HC12 to identify far functions (must be called with
'call' and returns with 'rtc'). */
-#define STO_M68HC12_FAR 0x80
+#define STO_M68HC12_FAR 0x80
/* Identify interrupt handlers. This is used by the debugger to
correctly compute the stack frame. */
-#define STO_M68HC12_INTERRUPT 0x40
+#define STO_M68HC12_INTERRUPT 0x40
#endif
diff --git a/binutils-2.22/include/elf/mips.h b/binutils-2.22/include/elf/mips.h
index db5fa54..c2c5922 100644
--- a/binutils-2.22/include/elf/mips.h
+++ b/binutils-2.22/include/elf/mips.h
@@ -98,7 +98,14 @@ START_RELOC_NUMBERS (elf_mips_reloc_type)
RELOC_NUMBER (R_MIPS16_CALL16, 103)
RELOC_NUMBER (R_MIPS16_HI16, 104)
RELOC_NUMBER (R_MIPS16_LO16, 105)
- FAKE_RELOC (R_MIPS16_max, 106)
+ RELOC_NUMBER (R_MIPS16_TLS_GD, 106)
+ RELOC_NUMBER (R_MIPS16_TLS_LDM, 107)
+ RELOC_NUMBER (R_MIPS16_TLS_DTPREL_HI16, 108)
+ RELOC_NUMBER (R_MIPS16_TLS_DTPREL_LO16, 109)
+ RELOC_NUMBER (R_MIPS16_TLS_GOTTPREL, 110)
+ RELOC_NUMBER (R_MIPS16_TLS_TPREL_HI16, 111)
+ RELOC_NUMBER (R_MIPS16_TLS_TPREL_LO16, 112)
+ FAKE_RELOC (R_MIPS16_max, 113)
/* These relocations are specific to VxWorks. */
RELOC_NUMBER (R_MIPS_COPY, 126)
RELOC_NUMBER (R_MIPS_JUMP_SLOT, 127)
diff --git a/binutils-2.22/include/elf/mn10300.h b/binutils-2.22/include/elf/mn10300.h
index 444787b..529b389 100644
--- a/binutils-2.22/include/elf/mn10300.h
+++ b/binutils-2.22/include/elf/mn10300.h
@@ -51,6 +51,15 @@ START_RELOC_NUMBERS (elf_mn10300_reloc_type)
RELOC_NUMBER (R_MN10300_GLOB_DAT, 21)
RELOC_NUMBER (R_MN10300_JMP_SLOT, 22)
RELOC_NUMBER (R_MN10300_RELATIVE, 23)
+ RELOC_NUMBER (R_MN10300_TLS_GD, 24)
+ RELOC_NUMBER (R_MN10300_TLS_LD, 25)
+ RELOC_NUMBER (R_MN10300_TLS_LDO, 26)
+ RELOC_NUMBER (R_MN10300_TLS_GOTIE, 27)
+ RELOC_NUMBER (R_MN10300_TLS_IE, 28)
+ RELOC_NUMBER (R_MN10300_TLS_LE, 29)
+ RELOC_NUMBER (R_MN10300_TLS_DTPMOD, 30)
+ RELOC_NUMBER (R_MN10300_TLS_DTPOFF, 31)
+ RELOC_NUMBER (R_MN10300_TLS_TPOFF, 32)
RELOC_NUMBER (R_MN10300_SYM_DIFF, 33)
RELOC_NUMBER (R_MN10300_ALIGN, 34)
END_RELOC_NUMBERS (R_MN10300_MAX)
diff --git a/binutils-2.22/include/elf/ppc.h b/binutils-2.22/include/elf/ppc.h
index 8e27855..f80a1e8 100644
--- a/binutils-2.22/include/elf/ppc.h
+++ b/binutils-2.22/include/elf/ppc.h
@@ -131,6 +131,25 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
RELOC_NUMBER (R_PPC_EMB_BIT_FLD, 115)
RELOC_NUMBER (R_PPC_EMB_RELSDA, 116)
+/* PowerPC VLE relocations. */
+ RELOC_NUMBER (R_PPC_VLE_REL8, 216)
+ RELOC_NUMBER (R_PPC_VLE_REL15, 217)
+ RELOC_NUMBER (R_PPC_VLE_REL24, 218)
+ RELOC_NUMBER (R_PPC_VLE_LO16A, 219)
+ RELOC_NUMBER (R_PPC_VLE_LO16D, 220)
+ RELOC_NUMBER (R_PPC_VLE_HI16A, 221)
+ RELOC_NUMBER (R_PPC_VLE_HI16D, 222)
+ RELOC_NUMBER (R_PPC_VLE_HA16A, 223)
+ RELOC_NUMBER (R_PPC_VLE_HA16D, 224)
+ RELOC_NUMBER (R_PPC_VLE_SDA21, 225)
+ RELOC_NUMBER (R_PPC_VLE_SDA21_LO, 226)
+ RELOC_NUMBER (R_PPC_VLE_SDAREL_LO16A, 227)
+ RELOC_NUMBER (R_PPC_VLE_SDAREL_LO16D, 228)
+ RELOC_NUMBER (R_PPC_VLE_SDAREL_HI16A, 229)
+ RELOC_NUMBER (R_PPC_VLE_SDAREL_HI16D, 230)
+ RELOC_NUMBER (R_PPC_VLE_SDAREL_HA16A, 231)
+ RELOC_NUMBER (R_PPC_VLE_SDAREL_HA16D, 232)
+
/* Support STT_GNU_IFUNC plt calls. */
RELOC_NUMBER (R_PPC_IRELATIVE, 248)
@@ -166,9 +185,11 @@ END_RELOC_NUMBERS (R_PPC_max)
#define EF_PPC_RELOCATABLE 0x00010000 /* PowerPC -mrelocatable flag. */
#define EF_PPC_RELOCATABLE_LIB 0x00008000 /* PowerPC -mrelocatable-lib flag. */
-/* This bit is reserved by BFD for processor specific stuff. Name
- it properly so that we can easily stay consistent elsewhere. */
-#define SEC_PPC_VLE SEC_TIC54X_BLOCK
+/* Processor specific program headers, p_flags field. */
+#define PF_PPC_VLE 0x10000000 /* PowerPC VLE. */
+
+/* Processor specific section headers, sh_flags field. */
+#define SHF_PPC_VLE 0x10000000 /* PowerPC VLE text section. */
/* Processor specific section headers, sh_type field. */
diff --git a/binutils-2.22/include/elf/rl78.h b/binutils-2.22/include/elf/rl78.h
new file mode 100644
index 0000000..82959e1
--- /dev/null
+++ b/binutils-2.22/include/elf/rl78.h
@@ -0,0 +1,119 @@
+/* RL78 ELF support for BFD.
+ Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _ELF_RL78_H
+#define _ELF_RL78_H
+
+#include "elf/reloc-macros.h"
+
+/* Note that there are a few internal relocation types used by the
+ linker to do link-time relaxation. If you update this file, please
+ check elf32-rl78.c to see if any of the internal relocations need to
+ be, er, relocated. */
+
+/* Preliminary relocations. */
+START_RELOC_NUMBERS (elf_rl78_reloc_type)
+
+ RELOC_NUMBER (R_RL78_NONE, 0x00)
+ /* These are for data, and are bi-endian. */
+ RELOC_NUMBER (R_RL78_DIR32, 0x01) /* Was: R_RL78_32. */
+ RELOC_NUMBER (R_RL78_DIR24S, 0x02) /* Was: R_RL78_24. */
+ RELOC_NUMBER (R_RL78_DIR16, 0x03)
+ RELOC_NUMBER (R_RL78_DIR16U, 0x04) /* Was: R_RL78_16_UNS. */
+ RELOC_NUMBER (R_RL78_DIR16S, 0x05) /* Was: R_RL78_16. */
+ RELOC_NUMBER (R_RL78_DIR8, 0x06)
+ RELOC_NUMBER (R_RL78_DIR8U, 0x07) /* Was: R_RL78_8_UNS. */
+ RELOC_NUMBER (R_RL78_DIR8S, 0x08) /* Was: R_RL78_8. */
+
+ /* Signed pc-relative values. */
+ RELOC_NUMBER (R_RL78_DIR24S_PCREL, 0x09) /* Was: R_RL78_24_PCREL. */
+ RELOC_NUMBER (R_RL78_DIR16S_PCREL, 0x0a) /* Was: R_RL78_16_PCREL. */
+ RELOC_NUMBER (R_RL78_DIR8S_PCREL, 0x0b) /* Was: R_RL78_8_PCREL. */
+
+ /* These are for fields in the instructions. */
+ RELOC_NUMBER (R_RL78_DIR16UL, 0x0c)
+ RELOC_NUMBER (R_RL78_DIR16UW, 0x0d)
+ RELOC_NUMBER (R_RL78_DIR8UL, 0x0e)
+ RELOC_NUMBER (R_RL78_DIR8UW, 0x0f)
+ RELOC_NUMBER (R_RL78_DIR32_REV, 0x10)
+ RELOC_NUMBER (R_RL78_DIR16_REV, 0x11)
+ RELOC_NUMBER (R_RL78_DIR3U_PCREL, 0x12)
+
+ /* These are extensions added by Red Hat. */
+ RELOC_NUMBER (R_RL78_RH_RELAX, 0x2d) /* Marks opcodes suitable for linker relaxation. */
+ RELOC_NUMBER (R_RL78_RH_SFR, 0x2e) /* SFR addresses - internal use only. */
+ RELOC_NUMBER (R_RL78_RH_SADDR, 0x2f) /* SADDR addresses - internal use only.. */
+
+ /* These are for complex relocs. */
+ RELOC_NUMBER (R_RL78_ABS32, 0x41)
+ RELOC_NUMBER (R_RL78_ABS24S, 0x42)
+ RELOC_NUMBER (R_RL78_ABS16, 0x43)
+ RELOC_NUMBER (R_RL78_ABS16U, 0x44)
+ RELOC_NUMBER (R_RL78_ABS16S, 0x45)
+ RELOC_NUMBER (R_RL78_ABS8, 0x46)
+ RELOC_NUMBER (R_RL78_ABS8U, 0x47)
+ RELOC_NUMBER (R_RL78_ABS8S, 0x48)
+ RELOC_NUMBER (R_RL78_ABS24S_PCREL, 0x49)
+ RELOC_NUMBER (R_RL78_ABS16S_PCREL, 0x4a)
+ RELOC_NUMBER (R_RL78_ABS8S_PCREL, 0x4b)
+ RELOC_NUMBER (R_RL78_ABS16UL, 0x4c)
+ RELOC_NUMBER (R_RL78_ABS16UW, 0x4d)
+ RELOC_NUMBER (R_RL78_ABS8UL, 0x4e)
+ RELOC_NUMBER (R_RL78_ABS8UW, 0x4f)
+ RELOC_NUMBER (R_RL78_ABS32_REV, 0x50)
+ RELOC_NUMBER (R_RL78_ABS16_REV, 0x51)
+
+ RELOC_NUMBER (R_RL78_SYM, 0x80)
+ RELOC_NUMBER (R_RL78_OPneg, 0x81)
+ RELOC_NUMBER (R_RL78_OPadd, 0x82)
+ RELOC_NUMBER (R_RL78_OPsub, 0x83)
+ RELOC_NUMBER (R_RL78_OPmul, 0x84)
+ RELOC_NUMBER (R_RL78_OPdiv, 0x85)
+ RELOC_NUMBER (R_RL78_OPshla, 0x86)
+ RELOC_NUMBER (R_RL78_OPshra, 0x87)
+ RELOC_NUMBER (R_RL78_OPsctsize, 0x88)
+ RELOC_NUMBER (R_RL78_OPscttop, 0x8d)
+ RELOC_NUMBER (R_RL78_OPand, 0x90)
+ RELOC_NUMBER (R_RL78_OPor, 0x91)
+ RELOC_NUMBER (R_RL78_OPxor, 0x92)
+ RELOC_NUMBER (R_RL78_OPnot, 0x93)
+ RELOC_NUMBER (R_RL78_OPmod, 0x94)
+ RELOC_NUMBER (R_RL78_OPromtop, 0x95)
+ RELOC_NUMBER (R_RL78_OPramtop, 0x96)
+
+END_RELOC_NUMBERS (R_RL78_max)
+
+#define EF_RL78_CPU_RL78 0x00000079 /* FIXME: correct value? */
+#define EF_RL78_CPU_MASK 0x0000007F /* specific cpu bits. */
+#define EF_RL78_ALL_FLAGS (EF_RL78_CPU_MASK)
+
+/* Values for the e_flags field in the ELF header. */
+#define E_FLAG_RL78_64BIT_DOUBLES (1 << 0)
+#define E_FLAG_RL78_DSP (1 << 1) /* Defined in the RL78 CPU Object file specification, but not explained. */
+
+/* These define the addend field of R_RL78_RH_RELAX relocations. */
+#define RL78_RELAXA_BRA 0x00000010 /* Any type of branch (must be decoded). */
+#define RL78_RELAXA_ADDR16 0x00000020 /* addr16->sfr/saddr opportunity */
+#define RL78_RELAXA_RNUM 0x0000000f /* Number of associated relocations. */
+/* These mark the place where alignment is requested, and the place where the filler bytes end. */
+#define RL78_RELAXA_ALIGN 0x10000000 /* Start alignment; the remaining bits are the alignment value. */
+#define RL78_RELAXA_ELIGN 0x20000000 /* End alignment; the remaining bits are the alignment value. */
+#define RL78_RELAXA_ANUM 0x00ffffff /* Alignment amount, in bytes (i.e. .balign). */
+
+#endif /* _ELF_RL78_H */
diff --git a/binutils-2.22/include/elf/rx.h b/binutils-2.22/include/elf/rx.h
index e8794f3..baaa1aa 100644
--- a/binutils-2.22/include/elf/rx.h
+++ b/binutils-2.22/include/elf/rx.h
@@ -116,7 +116,8 @@ END_RELOC_NUMBERS (R_RX_max)
/* Values for the e_flags field in the ELF header. */
#define E_FLAG_RX_64BIT_DOUBLES (1 << 0)
-#define E_FLAG_RX_DSP (1 << 1) /* Defined in the RX CPU Object file specification, but not explained. */
+#define E_FLAG_RX_DSP (1 << 1) /* Defined in the RX CPU Object file specification, but not explained. */
+#define E_FLAG_RX_PID (1 << 2) /* Unofficial - DJ */
/* These define the addend field of R_RX_RH_RELAX relocations. */
#define RX_RELAXA_IMM6 0x00000010 /* Imm8/16/24/32 at bit offset 6. */
diff --git a/binutils-2.22/include/elf/s390.h b/binutils-2.22/include/elf/s390.h
index 807b7e8..a5b4217 100644
--- a/binutils-2.22/include/elf/s390.h
+++ b/binutils-2.22/include/elf/s390.h
@@ -119,6 +119,7 @@ START_RELOC_NUMBERS (elf_s390_reloc_type)
RELOC_NUMBER (R_390_GOTPLT20, 59) /* 20 bit offset to jump slot. */
RELOC_NUMBER (R_390_TLS_GOTIE20, 60)/* 20 bit GOT offset for statis TLS
block offset. */
+ RELOC_NUMBER (R_390_IRELATIVE, 61) /* IFUNC relocation. */
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_390_GNU_VTINHERIT, 250)
RELOC_NUMBER (R_390_GNU_VTENTRY, 251)
diff --git a/binutils-2.22/include/elf/sparc.h b/binutils-2.22/include/elf/sparc.h
index fc8a765..d182f4d 100644
--- a/binutils-2.22/include/elf/sparc.h
+++ b/binutils-2.22/include/elf/sparc.h
@@ -162,6 +162,7 @@ START_RELOC_NUMBERS (elf_sparc_reloc_type)
RELOC_NUMBER (R_SPARC_H34, 85)
RELOC_NUMBER (R_SPARC_SIZE32, 86)
RELOC_NUMBER (R_SPARC_SIZE64, 87)
+ RELOC_NUMBER (R_SPARC_WDISP10, 88)
EMPTY_RELOC (R_SPARC_max_std)
@@ -212,5 +213,19 @@ enum
#define ELF_SPARC_HWCAP_IMA 0x00008000 /* integer multiply-add */
#define ELF_SPARC_HWCAP_ASI_CACHE_SPARING \
0x00010000 /* cache sparing ASIs */
+#define ELF_SPARC_HWCAP_AES 0x00020000 /* AES crypto insns */
+#define ELF_SPARC_HWCAP_DES 0x00040000 /* DES crypto insns */
+#define ELF_SPARC_HWCAP_KASUMI 0x00080000 /* KASUMI crypto insns */
+#define ELF_SPARC_HWCAP_CAMELLIA \
+ 0x00100000 /* CAMELLIA crypto insns */
+#define ELF_SPARC_HWCAP_MD5 0x00200000 /* MD5 hashing insns */
+#define ELF_SPARC_HWCAP_SHA1 0x00400000 /* SHA1 hashing insns */
+#define ELF_SPARC_HWCAP_SHA256 0x00800000 /* SHA256 hashing insns */
+#define ELF_SPARC_HWCAP_SHA512 0x01000000 /* SHA512 hashing insns */
+#define ELF_SPARC_HWCAP_MPMUL 0x02000000 /* Multiple Precision Multiply */
+#define ELF_SPARC_HWCAP_MONT 0x04000000 /* Montgomery Mult/Sqrt */
+#define ELF_SPARC_HWCAP_PAUSE 0x08000000 /* Pause insn */
+#define ELF_SPARC_HWCAP_CBCOND 0x10000000 /* Compare and Branch insns */
+#define ELF_SPARC_HWCAP_CRC32C 0x20000000 /* CRC32C insn */
#endif /* _ELF_SPARC_H */
diff --git a/binutils-2.22/include/elf/tilegx.h b/binutils-2.22/include/elf/tilegx.h
index d276f2e..004ce28 100644
--- a/binutils-2.22/include/elf/tilegx.h
+++ b/binutils-2.22/include/elf/tilegx.h
@@ -104,48 +104,37 @@ START_RELOC_NUMBERS (elf_tilegx_reloc_type)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_GOT, 64)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_GOT, 65)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_GOT, 66)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_GOT, 67)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_GOT, 68)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_GOT, 69)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3_GOT, 70)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3_GOT, 71)
+ /* Relocs 66-71 are currently not defined. */
+
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_GOT, 72)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_GOT, 73)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_GOT, 74)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_GOT, 75)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST_GOT, 76)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST_GOT, 77)
+ /* Relocs 76-77 are currently not defined. */
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_TLS_GD, 78)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_TLS_GD, 79)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_TLS_GD, 80)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_TLS_GD, 81)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_TLS_GD, 82)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_TLS_GD, 83)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3_TLS_GD, 84)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3_TLS_GD, 85)
+ RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_TLS_LE, 80)
+ RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_TLS_LE, 81)
+ RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE, 82)
+ RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE, 83)
+ RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE, 84)
+ RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE, 85)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD, 86)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD, 87)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD, 88)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD, 89)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST_TLS_GD, 90)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST_TLS_GD, 91)
+ /* Relocs 90-91 are currently not defined. */
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_TLS_IE, 92)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_TLS_IE, 93)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_TLS_IE, 94)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_TLS_IE, 95)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_TLS_IE, 96)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_TLS_IE, 97)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3_TLS_IE, 98)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3_TLS_IE, 99)
+ /* Relocs 94-99 are currently not defined. */
+
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE, 100)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE, 101)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE, 102)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE, 103)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST_TLS_IE, 104)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST_TLS_IE, 105)
+ /* Relocs 104-105 are currently not defined. */
RELOC_NUMBER (R_TILEGX_TLS_DTPMOD64, 106)
RELOC_NUMBER (R_TILEGX_TLS_DTPOFF64, 107)
@@ -154,6 +143,17 @@ START_RELOC_NUMBERS (elf_tilegx_reloc_type)
RELOC_NUMBER (R_TILEGX_TLS_DTPOFF32, 110)
RELOC_NUMBER (R_TILEGX_TLS_TPOFF32, 111)
+ RELOC_NUMBER (R_TILEGX_TLS_GD_CALL, 112)
+ RELOC_NUMBER (R_TILEGX_IMM8_X0_TLS_GD_ADD, 113)
+ RELOC_NUMBER (R_TILEGX_IMM8_X1_TLS_GD_ADD, 114)
+ RELOC_NUMBER (R_TILEGX_IMM8_Y0_TLS_GD_ADD, 115)
+ RELOC_NUMBER (R_TILEGX_IMM8_Y1_TLS_GD_ADD, 116)
+ RELOC_NUMBER (R_TILEGX_TLS_IE_LOAD, 117)
+ RELOC_NUMBER (R_TILEGX_IMM8_X0_TLS_ADD, 118)
+ RELOC_NUMBER (R_TILEGX_IMM8_X1_TLS_ADD, 119)
+ RELOC_NUMBER (R_TILEGX_IMM8_Y0_TLS_ADD, 120)
+ RELOC_NUMBER (R_TILEGX_IMM8_Y1_TLS_ADD, 121)
+
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_TILEGX_GNU_VTINHERIT, 128)
RELOC_NUMBER (R_TILEGX_GNU_VTENTRY, 129)
diff --git a/binutils-2.22/include/elf/tilepro.h b/binutils-2.22/include/elf/tilepro.h
index 899697f..0079a2f 100644
--- a/binutils-2.22/include/elf/tilepro.h
+++ b/binutils-2.22/include/elf/tilepro.h
@@ -96,7 +96,14 @@ START_RELOC_NUMBERS (elf_tilepro_reloc_type)
RELOC_NUMBER (R_TILEPRO_DEST_IMM8_X1, 55)
- /* Relocs 56-65 are currently not defined. */
+ /* Relocs 56-59 are currently not defined. */
+
+ RELOC_NUMBER (R_TILEPRO_TLS_GD_CALL, 60)
+ RELOC_NUMBER (R_TILEPRO_IMM8_X0_TLS_GD_ADD, 61)
+ RELOC_NUMBER (R_TILEPRO_IMM8_X1_TLS_GD_ADD, 62)
+ RELOC_NUMBER (R_TILEPRO_IMM8_Y0_TLS_GD_ADD, 63)
+ RELOC_NUMBER (R_TILEPRO_IMM8_Y1_TLS_GD_ADD, 64)
+ RELOC_NUMBER (R_TILEPRO_TLS_IE_LOAD, 65)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD, 66)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD, 67)
@@ -120,6 +127,15 @@ START_RELOC_NUMBERS (elf_tilepro_reloc_type)
RELOC_NUMBER (R_TILEPRO_TLS_DTPOFF32, 83)
RELOC_NUMBER (R_TILEPRO_TLS_TPOFF32, 84)
+ RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE, 85)
+ RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE, 86)
+ RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE_LO, 87)
+ RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE_LO, 88)
+ RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE_HI, 89)
+ RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE_HI, 90)
+ RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE_HA, 91)
+ RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE_HA, 92)
+
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_TILEPRO_GNU_VTINHERIT, 128)
RELOC_NUMBER (R_TILEPRO_GNU_VTENTRY, 129)
diff --git a/binutils-2.22/include/elf/xgate.h b/binutils-2.22/include/elf/xgate.h
new file mode 100644
index 0000000..33286a8
--- /dev/null
+++ b/binutils-2.22/include/elf/xgate.h
@@ -0,0 +1,77 @@
+/* XGATE ELF support for BFD.
+ Copyright 2010, 2011, 2012 Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _ELF_XGATE_H
+#define _ELF_XGATE_H
+
+#include "elf/reloc-macros.h"
+
+/* Relocation types. */
+START_RELOC_NUMBERS (elf_xgate_reloc_type)
+ RELOC_NUMBER (R_XGATE_NONE, 0)
+ RELOC_NUMBER (R_XGATE_8, 1)
+ RELOC_NUMBER (R_XGATE_PCREL_8, 2)
+ RELOC_NUMBER (R_XGATE_16, 3)
+ RELOC_NUMBER (R_XGATE_32, 4)
+ RELOC_NUMBER (R_XGATE_PCREL_16, 5)
+ /* These are GNU extensions to enable C++ vtable garbage collection. */
+ RELOC_NUMBER (R_XGATE_GNU_VTINHERIT, 6)
+ RELOC_NUMBER (R_XGATE_GNU_VTENTRY, 7)
+
+ RELOC_NUMBER (R_XGATE_24, 8)
+ RELOC_NUMBER (R_XGATE_LO16, 9)
+ RELOC_NUMBER (R_XGATE_GPAGE, 10)
+ RELOC_NUMBER (R_XGATE_PCREL_9, 11)
+ RELOC_NUMBER (R_XGATE_PCREL_10, 12)
+ RELOC_NUMBER (R_XGATE_IMM8_LO, 13)
+ RELOC_NUMBER (R_XGATE_IMM8_HI, 14)
+ RELOC_NUMBER (R_XGATE_IMM3, 15)
+ RELOC_NUMBER (R_XGATE_IMM4, 16)
+ RELOC_NUMBER (R_XGATE_IMM5, 17)
+
+ /* GNU extension for linker relaxation.
+ Mark beginning of a jump instruction (any form). */
+ RELOC_NUMBER (R_XGATE_RL_JUMP, 18)
+
+ /* Mark beginning of Gcc relaxation group instruction. */
+ RELOC_NUMBER (R_XGATE_RL_GROUP, 19)
+END_RELOC_NUMBERS (R_XGATE_max)
+
+/* Processor specific flags for the ELF header e_flags field. */
+
+/* ABI identification. */
+#define EF_XGATE_ABI 0x00000000F
+
+/* Integers are 32-bit long. */
+#define E_XGATE_I32 0x000000001
+
+/* Doubles are 64-bit long. */
+#define E_XGATE_F64 0x000000002
+
+#define EF_XGATE_MACH_MASK 0xF0
+
+#define EF_XGATE_MACH 0x80 /* XGATE microcontroller. */
+
+#define E_M68HCS12X_GLOBAL 0x100
+
+/* Identify interrupt handlers. This is used by the debugger to
+ correctly compute the stack frame. */
+#define STO_XGATE_INTERRUPT 0x40
+
+#endif
diff --git a/binutils-2.22/include/filenames.h b/binutils-2.22/include/filenames.h
index 75ec330..e799a51 100644
--- a/binutils-2.22/include/filenames.h
+++ b/binutils-2.22/include/filenames.h
@@ -26,6 +26,8 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef FILENAMES_H
#define FILENAMES_H
+#include "hashtab.h" /* for hashval_t */
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -84,6 +86,10 @@ extern int filename_cmp (const char *s1, const char *s2);
extern int filename_ncmp (const char *s1, const char *s2,
size_t n);
+extern hashval_t filename_hash (const void *s);
+
+extern int filename_eq (const void *s1, const void *s2);
+
#ifdef __cplusplus
}
#endif
diff --git a/binutils-2.22/include/gdb/ChangeLog b/binutils-2.22/include/gdb/ChangeLog
index dabaa5b..833f913 100644
--- a/binutils-2.22/include/gdb/ChangeLog
+++ b/binutils-2.22/include/gdb/ChangeLog
@@ -1,3 +1,31 @@
+2012-06-23 Doug Evans <dje@google.com>
+
+ * gdb-index.h: New file.
+
+2012-05-24 Pedro Alves <palves@redhat.com>
+
+ PR gdb/7205
+
+ Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout.
+
+2012-05-24 Pedro Alves <palves@redhat.com>
+
+ PR gdb/7205
+
+ Replace target_signal with gdb_signal throughout.
+
+2012-04-12 Mike Frysinger <vapier@gentoo.org>
+
+ * callback.h (CB_SYS_argc, CB_SYS_argnlen, CB_SYS_argn): Define.
+
+2012-02-03 Kevin Buettner <kevinb@redhat.com>
+
+ * sim-rl78.h: New file.
+
+2011-12-03 Mike Frysinger <vapier@gentoo.org>
+
+ * callback.h (cb_get_string): New prototype.
+
2011-04-14 Mike Frysinger <vapier@gentoo.org>
* remote-sim.h (sim_complete_command): New prototype.
diff --git a/binutils-2.22/include/gdb/callback.h b/binutils-2.22/include/gdb/callback.h
index a1f79f9..d8d1472 100644
--- a/binutils-2.22/include/gdb/callback.h
+++ b/binutils-2.22/include/gdb/callback.h
@@ -1,5 +1,5 @@
/* Remote target system call callback support.
- Copyright 1997, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright 1997, 2007-2012 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of GDB.
@@ -231,6 +231,11 @@ extern host_callback default_callback;
#define CB_SYS_truncate 21
#define CB_SYS_ftruncate 22
#define CB_SYS_pipe 23
+
+/* New ARGV support. */
+#define CB_SYS_argc 24
+#define CB_SYS_argnlen 25
+#define CB_SYS_argn 26
/* Struct use to pass and return information necessary to perform a
system call. */
@@ -309,7 +314,7 @@ int cb_target_to_host_open (host_callback *, int);
int cb_target_to_host_signal (host_callback *, int);
/* Translate host signal number to target. */
-int cb_host_to_target_signal (host_callback *, int);
+int cb_host_to_gdb_signal (host_callback *, int);
/* Translate host stat struct to target.
If stat struct ptr is NULL, just compute target stat struct size.
@@ -324,6 +329,9 @@ int cb_is_stdin (host_callback *, int);
int cb_is_stdout (host_callback *, int);
int cb_is_stderr (host_callback *, int);
+/* Read a string out of the target. */
+int cb_get_string (host_callback *, CB_SYSCALL *, char *, int, unsigned long);
+
/* Perform a system call. */
CB_RC cb_syscall (host_callback *, CB_SYSCALL *);
diff --git a/binutils-2.22/include/gdb/fileio.h b/binutils-2.22/include/gdb/fileio.h
index fc44760..06b2ecf 100644
--- a/binutils-2.22/include/gdb/fileio.h
+++ b/binutils-2.22/include/gdb/fileio.h
@@ -1,6 +1,6 @@
/* Hosted File I/O interface definitions, for GDB, the GNU Debugger.
- Copyright 2003, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright 2003, 2007-2012 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/binutils-2.22/include/gdb/gdb-index.h b/binutils-2.22/include/gdb/gdb-index.h
new file mode 100644
index 0000000..92c3398
--- /dev/null
+++ b/binutils-2.22/include/gdb/gdb-index.h
@@ -0,0 +1,99 @@
+/* Public attributes of the .gdb_index section.
+ Copyright 2012 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* This file contains values for understanding the .gdb_index section
+ needed by more than just GDB, e.g. readelf. */
+
+#ifndef GDB_INDEX_H
+#define GDB_INDEX_H
+
+/* Each symbol in .gdb_index refers to a set of CUs that defines the symbol.
+ Each CU is represented by a 32 bit number that is the index of the CU in
+ the CU table, plus some attributes of the use of the symbol in that CU.
+
+ The values are defined such that if all the bits are zero, then no
+ special meaning is assigned to any of them. This is done to preserve
+ compatibility with older indices. The way this is done is to specify
+ that if the GDB_INDEX_SYMBOL_KIND value is zero then all other attribute
+ bits must be zero.
+
+ 0-23 CU index
+ 24-27 reserved
+ 28-30 symbol kind
+ 31 0 == global, 1 == static
+
+ Bits 24-27 are reserved because it's easier to relax restrictions than
+ it is to impose them after the fact. At present 24 bits to represent
+ the CU index is plenty. If we need more bits for the CU index or for
+ attributes then we have them. */
+
+/* Whether the symbol is in GLOBAL_BLOCK (== 0) or STATIC_BLOCK (== 1). */
+#define GDB_INDEX_SYMBOL_STATIC_SHIFT 31
+#define GDB_INDEX_SYMBOL_STATIC_MASK 1
+#define GDB_INDEX_SYMBOL_STATIC_VALUE(cu_index) \
+ (((cu_index) >> GDB_INDEX_SYMBOL_STATIC_SHIFT) & GDB_INDEX_SYMBOL_STATIC_MASK)
+#define GDB_INDEX_SYMBOL_STATIC_SET_VALUE(cu_index, value) \
+ do { \
+ (cu_index) |= (((value) & GDB_INDEX_SYMBOL_STATIC_MASK) \
+ << GDB_INDEX_SYMBOL_STATIC_SHIFT); \
+ } while (0)
+
+/* The kind of the symbol.
+ We don't use GDB's internal values as these numbers are published
+ so that other tools can build and read .gdb_index. */
+
+typedef enum {
+ /* Special value to indicate no attributes are present. */
+ GDB_INDEX_SYMBOL_KIND_NONE = 0,
+ GDB_INDEX_SYMBOL_KIND_TYPE = 1,
+ GDB_INDEX_SYMBOL_KIND_VARIABLE = 2,
+ GDB_INDEX_SYMBOL_KIND_FUNCTION = 3,
+ GDB_INDEX_SYMBOL_KIND_OTHER = 4,
+ /* We currently allocate 3 bits to record the symbol kind.
+ Give the unused bits a value so gdb will print them sensibly. */
+ GDB_INDEX_SYMBOL_KIND_UNUSED5 = 5,
+ GDB_INDEX_SYMBOL_KIND_UNUSED6 = 6,
+ GDB_INDEX_SYMBOL_KIND_UNUSED7 = 7,
+} gdb_index_symbol_kind;
+
+#define GDB_INDEX_SYMBOL_KIND_SHIFT 28
+#define GDB_INDEX_SYMBOL_KIND_MASK 7
+#define GDB_INDEX_SYMBOL_KIND_VALUE(cu_index) \
+ ((gdb_index_symbol_kind) (((cu_index) >> GDB_INDEX_SYMBOL_KIND_SHIFT) \
+ & GDB_INDEX_SYMBOL_KIND_MASK))
+#define GDB_INDEX_SYMBOL_KIND_SET_VALUE(cu_index, value) \
+ do { \
+ (cu_index) |= (((value) & GDB_INDEX_SYMBOL_KIND_MASK) \
+ << GDB_INDEX_SYMBOL_KIND_SHIFT); \
+ } while (0)
+
+#define GDB_INDEX_RESERVED_SHIFT 24
+#define GDB_INDEX_RESERVED_MASK 15
+#define GDB_INDEX_RESERVED_VALUE(cu_index) \
+ (((cu_index) >> GDB_INDEX_RESERVED_SHIFT) & GDB_INDEX_RESERVED_MASK)
+
+/* CU index. */
+#define GDB_INDEX_CU_BITSIZE 24
+#define GDB_INDEX_CU_MASK ((1 << GDB_INDEX_CU_BITSIZE) - 1)
+#define GDB_INDEX_CU_VALUE(cu_index) ((cu_index) & GDB_INDEX_CU_MASK)
+#define GDB_INDEX_CU_SET_VALUE(cu_index, value) \
+ do { \
+ (cu_index) |= (value) & GDB_INDEX_CU_MASK; \
+ } while (0)
+
+#endif /* GDB_INDEX_H */
diff --git a/binutils-2.22/include/gdb/remote-sim.h b/binutils-2.22/include/gdb/remote-sim.h
index 14a86a8..cef0dd9 100644
--- a/binutils-2.22/include/gdb/remote-sim.h
+++ b/binutils-2.22/include/gdb/remote-sim.h
@@ -1,7 +1,7 @@
/* This file defines the interface between the simulator and gdb.
- Copyright 1993, 1994, 1996, 1997, 1998, 2000, 2002, 2007, 2008, 2009, 2010,
- 2011 Free Software Foundation, Inc.
+ Copyright 1993-1994, 1996-1998, 2000, 2002, 2007-2012 Free Software
+ Foundation, Inc.
This file is part of GDB.
diff --git a/binutils-2.22/include/gdb/signals.def b/binutils-2.22/include/gdb/signals.def
index 7e08c90..ef4c8d4 100644
--- a/binutils-2.22/include/gdb/signals.def
+++ b/binutils-2.22/include/gdb/signals.def
@@ -1,5 +1,5 @@
/* Target signal numbers for GDB and the GDB remote protocol.
- Copyright 2010, 2011 Free Software Foundation, Inc.
+ Copyright 2010-2012 Free Software Foundation, Inc.
This file is part of GDB.
@@ -18,173 +18,173 @@
/* Used some places (e.g. stop_signal) to record the concept that
there is no signal. */
-SET (TARGET_SIGNAL_0, 0, "0", "Signal 0")
-#define TARGET_SIGNAL_FIRST TARGET_SIGNAL_0
-SET (TARGET_SIGNAL_HUP, 1, "SIGHUP", "Hangup")
-SET (TARGET_SIGNAL_INT, 2, "SIGINT", "Interrupt")
-SET (TARGET_SIGNAL_QUIT, 3, "SIGQUIT", "Quit")
-SET (TARGET_SIGNAL_ILL, 4, "SIGILL", "Illegal instruction")
-SET (TARGET_SIGNAL_TRAP, 5, "SIGTRAP", "Trace/breakpoint trap")
-SET (TARGET_SIGNAL_ABRT, 6, "SIGABRT", "Aborted")
-SET (TARGET_SIGNAL_EMT, 7, "SIGEMT", "Emulation trap")
-SET (TARGET_SIGNAL_FPE, 8, "SIGFPE", "Arithmetic exception")
-SET (TARGET_SIGNAL_KILL, 9, "SIGKILL", "Killed")
-SET (TARGET_SIGNAL_BUS, 10, "SIGBUS", "Bus error")
-SET (TARGET_SIGNAL_SEGV, 11, "SIGSEGV", "Segmentation fault")
-SET (TARGET_SIGNAL_SYS, 12, "SIGSYS", "Bad system call")
-SET (TARGET_SIGNAL_PIPE, 13, "SIGPIPE", "Broken pipe")
-SET (TARGET_SIGNAL_ALRM, 14, "SIGALRM", "Alarm clock")
-SET (TARGET_SIGNAL_TERM, 15, "SIGTERM", "Terminated")
-SET (TARGET_SIGNAL_URG, 16, "SIGURG", "Urgent I/O condition")
-SET (TARGET_SIGNAL_STOP, 17, "SIGSTOP", "Stopped (signal)")
-SET (TARGET_SIGNAL_TSTP, 18, "SIGTSTP", "Stopped (user)")
-SET (TARGET_SIGNAL_CONT, 19, "SIGCONT", "Continued")
-SET (TARGET_SIGNAL_CHLD, 20, "SIGCHLD", "Child status changed")
-SET (TARGET_SIGNAL_TTIN, 21, "SIGTTIN", "Stopped (tty input)")
-SET (TARGET_SIGNAL_TTOU, 22, "SIGTTOU", "Stopped (tty output)")
-SET (TARGET_SIGNAL_IO, 23, "SIGIO", "I/O possible")
-SET (TARGET_SIGNAL_XCPU, 24, "SIGXCPU", "CPU time limit exceeded")
-SET (TARGET_SIGNAL_XFSZ, 25, "SIGXFSZ", "File size limit exceeded")
-SET (TARGET_SIGNAL_VTALRM, 26, "SIGVTALRM", "Virtual timer expired")
-SET (TARGET_SIGNAL_PROF, 27, "SIGPROF", "Profiling timer expired")
-SET (TARGET_SIGNAL_WINCH, 28, "SIGWINCH", "Window size changed")
-SET (TARGET_SIGNAL_LOST, 29, "SIGLOST", "Resource lost")
-SET (TARGET_SIGNAL_USR1, 30, "SIGUSR1", "User defined signal 1")
-SET (TARGET_SIGNAL_USR2, 31, "SIGUSR2", "User defined signal 2")
-SET (TARGET_SIGNAL_PWR, 32, "SIGPWR", "Power fail/restart")
+SET (GDB_SIGNAL_0, 0, "0", "Signal 0")
+#define GDB_SIGNAL_FIRST GDB_SIGNAL_0
+SET (GDB_SIGNAL_HUP, 1, "SIGHUP", "Hangup")
+SET (GDB_SIGNAL_INT, 2, "SIGINT", "Interrupt")
+SET (GDB_SIGNAL_QUIT, 3, "SIGQUIT", "Quit")
+SET (GDB_SIGNAL_ILL, 4, "SIGILL", "Illegal instruction")
+SET (GDB_SIGNAL_TRAP, 5, "SIGTRAP", "Trace/breakpoint trap")
+SET (GDB_SIGNAL_ABRT, 6, "SIGABRT", "Aborted")
+SET (GDB_SIGNAL_EMT, 7, "SIGEMT", "Emulation trap")
+SET (GDB_SIGNAL_FPE, 8, "SIGFPE", "Arithmetic exception")
+SET (GDB_SIGNAL_KILL, 9, "SIGKILL", "Killed")
+SET (GDB_SIGNAL_BUS, 10, "SIGBUS", "Bus error")
+SET (GDB_SIGNAL_SEGV, 11, "SIGSEGV", "Segmentation fault")
+SET (GDB_SIGNAL_SYS, 12, "SIGSYS", "Bad system call")
+SET (GDB_SIGNAL_PIPE, 13, "SIGPIPE", "Broken pipe")
+SET (GDB_SIGNAL_ALRM, 14, "SIGALRM", "Alarm clock")
+SET (GDB_SIGNAL_TERM, 15, "SIGTERM", "Terminated")
+SET (GDB_SIGNAL_URG, 16, "SIGURG", "Urgent I/O condition")
+SET (GDB_SIGNAL_STOP, 17, "SIGSTOP", "Stopped (signal)")
+SET (GDB_SIGNAL_TSTP, 18, "SIGTSTP", "Stopped (user)")
+SET (GDB_SIGNAL_CONT, 19, "SIGCONT", "Continued")
+SET (GDB_SIGNAL_CHLD, 20, "SIGCHLD", "Child status changed")
+SET (GDB_SIGNAL_TTIN, 21, "SIGTTIN", "Stopped (tty input)")
+SET (GDB_SIGNAL_TTOU, 22, "SIGTTOU", "Stopped (tty output)")
+SET (GDB_SIGNAL_IO, 23, "SIGIO", "I/O possible")
+SET (GDB_SIGNAL_XCPU, 24, "SIGXCPU", "CPU time limit exceeded")
+SET (GDB_SIGNAL_XFSZ, 25, "SIGXFSZ", "File size limit exceeded")
+SET (GDB_SIGNAL_VTALRM, 26, "SIGVTALRM", "Virtual timer expired")
+SET (GDB_SIGNAL_PROF, 27, "SIGPROF", "Profiling timer expired")
+SET (GDB_SIGNAL_WINCH, 28, "SIGWINCH", "Window size changed")
+SET (GDB_SIGNAL_LOST, 29, "SIGLOST", "Resource lost")
+SET (GDB_SIGNAL_USR1, 30, "SIGUSR1", "User defined signal 1")
+SET (GDB_SIGNAL_USR2, 31, "SIGUSR2", "User defined signal 2")
+SET (GDB_SIGNAL_PWR, 32, "SIGPWR", "Power fail/restart")
/* Similar to SIGIO. Perhaps they should have the same number. */
-SET (TARGET_SIGNAL_POLL, 33, "SIGPOLL", "Pollable event occurred")
-SET (TARGET_SIGNAL_WIND, 34, "SIGWIND", "SIGWIND")
-SET (TARGET_SIGNAL_PHONE, 35, "SIGPHONE", "SIGPHONE")
-SET (TARGET_SIGNAL_WAITING, 36, "SIGWAITING", "Process's LWPs are blocked")
-SET (TARGET_SIGNAL_LWP, 37, "SIGLWP", "Signal LWP")
-SET (TARGET_SIGNAL_DANGER, 38, "SIGDANGER", "Swap space dangerously low")
-SET (TARGET_SIGNAL_GRANT, 39, "SIGGRANT", "Monitor mode granted")
-SET (TARGET_SIGNAL_RETRACT, 40, "SIGRETRACT",
+SET (GDB_SIGNAL_POLL, 33, "SIGPOLL", "Pollable event occurred")
+SET (GDB_SIGNAL_WIND, 34, "SIGWIND", "SIGWIND")
+SET (GDB_SIGNAL_PHONE, 35, "SIGPHONE", "SIGPHONE")
+SET (GDB_SIGNAL_WAITING, 36, "SIGWAITING", "Process's LWPs are blocked")
+SET (GDB_SIGNAL_LWP, 37, "SIGLWP", "Signal LWP")
+SET (GDB_SIGNAL_DANGER, 38, "SIGDANGER", "Swap space dangerously low")
+SET (GDB_SIGNAL_GRANT, 39, "SIGGRANT", "Monitor mode granted")
+SET (GDB_SIGNAL_RETRACT, 40, "SIGRETRACT",
"Need to relinquish monitor mode")
-SET (TARGET_SIGNAL_MSG, 41, "SIGMSG", "Monitor mode data available")
-SET (TARGET_SIGNAL_SOUND, 42, "SIGSOUND", "Sound completed")
-SET (TARGET_SIGNAL_SAK, 43, "SIGSAK", "Secure attention")
-SET (TARGET_SIGNAL_PRIO, 44, "SIGPRIO", "SIGPRIO")
-SET (TARGET_SIGNAL_REALTIME_33, 45, "SIG33", "Real-time event 33")
-SET (TARGET_SIGNAL_REALTIME_34, 46, "SIG34", "Real-time event 34")
-SET (TARGET_SIGNAL_REALTIME_35, 47, "SIG35", "Real-time event 35")
-SET (TARGET_SIGNAL_REALTIME_36, 48, "SIG36", "Real-time event 36")
-SET (TARGET_SIGNAL_REALTIME_37, 49, "SIG37", "Real-time event 37")
-SET (TARGET_SIGNAL_REALTIME_38, 50, "SIG38", "Real-time event 38")
-SET (TARGET_SIGNAL_REALTIME_39, 51, "SIG39", "Real-time event 39")
-SET (TARGET_SIGNAL_REALTIME_40, 52, "SIG40", "Real-time event 40")
-SET (TARGET_SIGNAL_REALTIME_41, 53, "SIG41", "Real-time event 41")
-SET (TARGET_SIGNAL_REALTIME_42, 54, "SIG42", "Real-time event 42")
-SET (TARGET_SIGNAL_REALTIME_43, 55, "SIG43", "Real-time event 43")
-SET (TARGET_SIGNAL_REALTIME_44, 56, "SIG44", "Real-time event 44")
-SET (TARGET_SIGNAL_REALTIME_45, 57, "SIG45", "Real-time event 45")
-SET (TARGET_SIGNAL_REALTIME_46, 58, "SIG46", "Real-time event 46")
-SET (TARGET_SIGNAL_REALTIME_47, 59, "SIG47", "Real-time event 47")
-SET (TARGET_SIGNAL_REALTIME_48, 60, "SIG48", "Real-time event 48")
-SET (TARGET_SIGNAL_REALTIME_49, 61, "SIG49", "Real-time event 49")
-SET (TARGET_SIGNAL_REALTIME_50, 62, "SIG50", "Real-time event 50")
-SET (TARGET_SIGNAL_REALTIME_51, 63, "SIG51", "Real-time event 51")
-SET (TARGET_SIGNAL_REALTIME_52, 64, "SIG52", "Real-time event 52")
-SET (TARGET_SIGNAL_REALTIME_53, 65, "SIG53", "Real-time event 53")
-SET (TARGET_SIGNAL_REALTIME_54, 66, "SIG54", "Real-time event 54")
-SET (TARGET_SIGNAL_REALTIME_55, 67, "SIG55", "Real-time event 55")
-SET (TARGET_SIGNAL_REALTIME_56, 68, "SIG56", "Real-time event 56")
-SET (TARGET_SIGNAL_REALTIME_57, 69, "SIG57", "Real-time event 57")
-SET (TARGET_SIGNAL_REALTIME_58, 70, "SIG58", "Real-time event 58")
-SET (TARGET_SIGNAL_REALTIME_59, 71, "SIG59", "Real-time event 59")
-SET (TARGET_SIGNAL_REALTIME_60, 72, "SIG60", "Real-time event 60")
-SET (TARGET_SIGNAL_REALTIME_61, 73, "SIG61", "Real-time event 61")
-SET (TARGET_SIGNAL_REALTIME_62, 74, "SIG62", "Real-time event 62")
-SET (TARGET_SIGNAL_REALTIME_63, 75, "SIG63", "Real-time event 63")
+SET (GDB_SIGNAL_MSG, 41, "SIGMSG", "Monitor mode data available")
+SET (GDB_SIGNAL_SOUND, 42, "SIGSOUND", "Sound completed")
+SET (GDB_SIGNAL_SAK, 43, "SIGSAK", "Secure attention")
+SET (GDB_SIGNAL_PRIO, 44, "SIGPRIO", "SIGPRIO")
+SET (GDB_SIGNAL_REALTIME_33, 45, "SIG33", "Real-time event 33")
+SET (GDB_SIGNAL_REALTIME_34, 46, "SIG34", "Real-time event 34")
+SET (GDB_SIGNAL_REALTIME_35, 47, "SIG35", "Real-time event 35")
+SET (GDB_SIGNAL_REALTIME_36, 48, "SIG36", "Real-time event 36")
+SET (GDB_SIGNAL_REALTIME_37, 49, "SIG37", "Real-time event 37")
+SET (GDB_SIGNAL_REALTIME_38, 50, "SIG38", "Real-time event 38")
+SET (GDB_SIGNAL_REALTIME_39, 51, "SIG39", "Real-time event 39")
+SET (GDB_SIGNAL_REALTIME_40, 52, "SIG40", "Real-time event 40")
+SET (GDB_SIGNAL_REALTIME_41, 53, "SIG41", "Real-time event 41")
+SET (GDB_SIGNAL_REALTIME_42, 54, "SIG42", "Real-time event 42")
+SET (GDB_SIGNAL_REALTIME_43, 55, "SIG43", "Real-time event 43")
+SET (GDB_SIGNAL_REALTIME_44, 56, "SIG44", "Real-time event 44")
+SET (GDB_SIGNAL_REALTIME_45, 57, "SIG45", "Real-time event 45")
+SET (GDB_SIGNAL_REALTIME_46, 58, "SIG46", "Real-time event 46")
+SET (GDB_SIGNAL_REALTIME_47, 59, "SIG47", "Real-time event 47")
+SET (GDB_SIGNAL_REALTIME_48, 60, "SIG48", "Real-time event 48")
+SET (GDB_SIGNAL_REALTIME_49, 61, "SIG49", "Real-time event 49")
+SET (GDB_SIGNAL_REALTIME_50, 62, "SIG50", "Real-time event 50")
+SET (GDB_SIGNAL_REALTIME_51, 63, "SIG51", "Real-time event 51")
+SET (GDB_SIGNAL_REALTIME_52, 64, "SIG52", "Real-time event 52")
+SET (GDB_SIGNAL_REALTIME_53, 65, "SIG53", "Real-time event 53")
+SET (GDB_SIGNAL_REALTIME_54, 66, "SIG54", "Real-time event 54")
+SET (GDB_SIGNAL_REALTIME_55, 67, "SIG55", "Real-time event 55")
+SET (GDB_SIGNAL_REALTIME_56, 68, "SIG56", "Real-time event 56")
+SET (GDB_SIGNAL_REALTIME_57, 69, "SIG57", "Real-time event 57")
+SET (GDB_SIGNAL_REALTIME_58, 70, "SIG58", "Real-time event 58")
+SET (GDB_SIGNAL_REALTIME_59, 71, "SIG59", "Real-time event 59")
+SET (GDB_SIGNAL_REALTIME_60, 72, "SIG60", "Real-time event 60")
+SET (GDB_SIGNAL_REALTIME_61, 73, "SIG61", "Real-time event 61")
+SET (GDB_SIGNAL_REALTIME_62, 74, "SIG62", "Real-time event 62")
+SET (GDB_SIGNAL_REALTIME_63, 75, "SIG63", "Real-time event 63")
/* Used internally by Solaris threads. See signal(5) on Solaris. */
-SET (TARGET_SIGNAL_CANCEL, 76, "SIGCANCEL", "LWP internal signal")
+SET (GDB_SIGNAL_CANCEL, 76, "SIGCANCEL", "LWP internal signal")
/* Yes, this pains me, too. But LynxOS didn't have SIG32, and now
GNU/Linux does, and we can't disturb the numbering, since it's
part of the remote protocol. Note that in some GDB's
- TARGET_SIGNAL_REALTIME_32 is number 76. */
-SET (TARGET_SIGNAL_REALTIME_32, 77, "SIG32", "Real-time event 32")
+ GDB_SIGNAL_REALTIME_32 is number 76. */
+SET (GDB_SIGNAL_REALTIME_32, 77, "SIG32", "Real-time event 32")
/* Yet another pain, IRIX 6 has SIG64. */
-SET (TARGET_SIGNAL_REALTIME_64, 78, "SIG64", "Real-time event 64")
+SET (GDB_SIGNAL_REALTIME_64, 78, "SIG64", "Real-time event 64")
/* Yet another pain, GNU/Linux MIPS might go up to 128. */
-SET (TARGET_SIGNAL_REALTIME_65, 79, "SIG65", "Real-time event 65")
-SET (TARGET_SIGNAL_REALTIME_66, 80, "SIG66", "Real-time event 66")
-SET (TARGET_SIGNAL_REALTIME_67, 81, "SIG67", "Real-time event 67")
-SET (TARGET_SIGNAL_REALTIME_68, 82, "SIG68", "Real-time event 68")
-SET (TARGET_SIGNAL_REALTIME_69, 83, "SIG69", "Real-time event 69")
-SET (TARGET_SIGNAL_REALTIME_70, 84, "SIG70", "Real-time event 70")
-SET (TARGET_SIGNAL_REALTIME_71, 85, "SIG71", "Real-time event 71")
-SET (TARGET_SIGNAL_REALTIME_72, 86, "SIG72", "Real-time event 72")
-SET (TARGET_SIGNAL_REALTIME_73, 87, "SIG73", "Real-time event 73")
-SET (TARGET_SIGNAL_REALTIME_74, 88, "SIG74", "Real-time event 74")
-SET (TARGET_SIGNAL_REALTIME_75, 89, "SIG75", "Real-time event 75")
-SET (TARGET_SIGNAL_REALTIME_76, 90, "SIG76", "Real-time event 76")
-SET (TARGET_SIGNAL_REALTIME_77, 91, "SIG77", "Real-time event 77")
-SET (TARGET_SIGNAL_REALTIME_78, 92, "SIG78", "Real-time event 78")
-SET (TARGET_SIGNAL_REALTIME_79, 93, "SIG79", "Real-time event 79")
-SET (TARGET_SIGNAL_REALTIME_80, 94, "SIG80", "Real-time event 80")
-SET (TARGET_SIGNAL_REALTIME_81, 95, "SIG81", "Real-time event 81")
-SET (TARGET_SIGNAL_REALTIME_82, 96, "SIG82", "Real-time event 82")
-SET (TARGET_SIGNAL_REALTIME_83, 97, "SIG83", "Real-time event 83")
-SET (TARGET_SIGNAL_REALTIME_84, 98, "SIG84", "Real-time event 84")
-SET (TARGET_SIGNAL_REALTIME_85, 99, "SIG85", "Real-time event 85")
-SET (TARGET_SIGNAL_REALTIME_86, 100, "SIG86", "Real-time event 86")
-SET (TARGET_SIGNAL_REALTIME_87, 101, "SIG87", "Real-time event 87")
-SET (TARGET_SIGNAL_REALTIME_88, 102, "SIG88", "Real-time event 88")
-SET (TARGET_SIGNAL_REALTIME_89, 103, "SIG89", "Real-time event 89")
-SET (TARGET_SIGNAL_REALTIME_90, 104, "SIG90", "Real-time event 90")
-SET (TARGET_SIGNAL_REALTIME_91, 105, "SIG91", "Real-time event 91")
-SET (TARGET_SIGNAL_REALTIME_92, 106, "SIG92", "Real-time event 92")
-SET (TARGET_SIGNAL_REALTIME_93, 107, "SIG93", "Real-time event 93")
-SET (TARGET_SIGNAL_REALTIME_94, 108, "SIG94", "Real-time event 94")
-SET (TARGET_SIGNAL_REALTIME_95, 109, "SIG95", "Real-time event 95")
-SET (TARGET_SIGNAL_REALTIME_96, 110, "SIG96", "Real-time event 96")
-SET (TARGET_SIGNAL_REALTIME_97, 111, "SIG97", "Real-time event 97")
-SET (TARGET_SIGNAL_REALTIME_98, 112, "SIG98", "Real-time event 98")
-SET (TARGET_SIGNAL_REALTIME_99, 113, "SIG99", "Real-time event 99")
-SET (TARGET_SIGNAL_REALTIME_100, 114, "SIG100", "Real-time event 100")
-SET (TARGET_SIGNAL_REALTIME_101, 115, "SIG101", "Real-time event 101")
-SET (TARGET_SIGNAL_REALTIME_102, 116, "SIG102", "Real-time event 102")
-SET (TARGET_SIGNAL_REALTIME_103, 117, "SIG103", "Real-time event 103")
-SET (TARGET_SIGNAL_REALTIME_104, 118, "SIG104", "Real-time event 104")
-SET (TARGET_SIGNAL_REALTIME_105, 119, "SIG105", "Real-time event 105")
-SET (TARGET_SIGNAL_REALTIME_106, 120, "SIG106", "Real-time event 106")
-SET (TARGET_SIGNAL_REALTIME_107, 121, "SIG107", "Real-time event 107")
-SET (TARGET_SIGNAL_REALTIME_108, 122, "SIG108", "Real-time event 108")
-SET (TARGET_SIGNAL_REALTIME_109, 123, "SIG109", "Real-time event 109")
-SET (TARGET_SIGNAL_REALTIME_110, 124, "SIG110", "Real-time event 110")
-SET (TARGET_SIGNAL_REALTIME_111, 125, "SIG111", "Real-time event 111")
-SET (TARGET_SIGNAL_REALTIME_112, 126, "SIG112", "Real-time event 112")
-SET (TARGET_SIGNAL_REALTIME_113, 127, "SIG113", "Real-time event 113")
-SET (TARGET_SIGNAL_REALTIME_114, 128, "SIG114", "Real-time event 114")
-SET (TARGET_SIGNAL_REALTIME_115, 129, "SIG115", "Real-time event 115")
-SET (TARGET_SIGNAL_REALTIME_116, 130, "SIG116", "Real-time event 116")
-SET (TARGET_SIGNAL_REALTIME_117, 131, "SIG117", "Real-time event 117")
-SET (TARGET_SIGNAL_REALTIME_118, 132, "SIG118", "Real-time event 118")
-SET (TARGET_SIGNAL_REALTIME_119, 133, "SIG119", "Real-time event 119")
-SET (TARGET_SIGNAL_REALTIME_120, 134, "SIG120", "Real-time event 120")
-SET (TARGET_SIGNAL_REALTIME_121, 135, "SIG121", "Real-time event 121")
-SET (TARGET_SIGNAL_REALTIME_122, 136, "SIG122", "Real-time event 122")
-SET (TARGET_SIGNAL_REALTIME_123, 137, "SIG123", "Real-time event 123")
-SET (TARGET_SIGNAL_REALTIME_124, 138, "SIG124", "Real-time event 124")
-SET (TARGET_SIGNAL_REALTIME_125, 139, "SIG125", "Real-time event 125")
-SET (TARGET_SIGNAL_REALTIME_126, 140, "SIG126", "Real-time event 126")
-SET (TARGET_SIGNAL_REALTIME_127, 141, "SIG127", "Real-time event 127")
+SET (GDB_SIGNAL_REALTIME_65, 79, "SIG65", "Real-time event 65")
+SET (GDB_SIGNAL_REALTIME_66, 80, "SIG66", "Real-time event 66")
+SET (GDB_SIGNAL_REALTIME_67, 81, "SIG67", "Real-time event 67")
+SET (GDB_SIGNAL_REALTIME_68, 82, "SIG68", "Real-time event 68")
+SET (GDB_SIGNAL_REALTIME_69, 83, "SIG69", "Real-time event 69")
+SET (GDB_SIGNAL_REALTIME_70, 84, "SIG70", "Real-time event 70")
+SET (GDB_SIGNAL_REALTIME_71, 85, "SIG71", "Real-time event 71")
+SET (GDB_SIGNAL_REALTIME_72, 86, "SIG72", "Real-time event 72")
+SET (GDB_SIGNAL_REALTIME_73, 87, "SIG73", "Real-time event 73")
+SET (GDB_SIGNAL_REALTIME_74, 88, "SIG74", "Real-time event 74")
+SET (GDB_SIGNAL_REALTIME_75, 89, "SIG75", "Real-time event 75")
+SET (GDB_SIGNAL_REALTIME_76, 90, "SIG76", "Real-time event 76")
+SET (GDB_SIGNAL_REALTIME_77, 91, "SIG77", "Real-time event 77")
+SET (GDB_SIGNAL_REALTIME_78, 92, "SIG78", "Real-time event 78")
+SET (GDB_SIGNAL_REALTIME_79, 93, "SIG79", "Real-time event 79")
+SET (GDB_SIGNAL_REALTIME_80, 94, "SIG80", "Real-time event 80")
+SET (GDB_SIGNAL_REALTIME_81, 95, "SIG81", "Real-time event 81")
+SET (GDB_SIGNAL_REALTIME_82, 96, "SIG82", "Real-time event 82")
+SET (GDB_SIGNAL_REALTIME_83, 97, "SIG83", "Real-time event 83")
+SET (GDB_SIGNAL_REALTIME_84, 98, "SIG84", "Real-time event 84")
+SET (GDB_SIGNAL_REALTIME_85, 99, "SIG85", "Real-time event 85")
+SET (GDB_SIGNAL_REALTIME_86, 100, "SIG86", "Real-time event 86")
+SET (GDB_SIGNAL_REALTIME_87, 101, "SIG87", "Real-time event 87")
+SET (GDB_SIGNAL_REALTIME_88, 102, "SIG88", "Real-time event 88")
+SET (GDB_SIGNAL_REALTIME_89, 103, "SIG89", "Real-time event 89")
+SET (GDB_SIGNAL_REALTIME_90, 104, "SIG90", "Real-time event 90")
+SET (GDB_SIGNAL_REALTIME_91, 105, "SIG91", "Real-time event 91")
+SET (GDB_SIGNAL_REALTIME_92, 106, "SIG92", "Real-time event 92")
+SET (GDB_SIGNAL_REALTIME_93, 107, "SIG93", "Real-time event 93")
+SET (GDB_SIGNAL_REALTIME_94, 108, "SIG94", "Real-time event 94")
+SET (GDB_SIGNAL_REALTIME_95, 109, "SIG95", "Real-time event 95")
+SET (GDB_SIGNAL_REALTIME_96, 110, "SIG96", "Real-time event 96")
+SET (GDB_SIGNAL_REALTIME_97, 111, "SIG97", "Real-time event 97")
+SET (GDB_SIGNAL_REALTIME_98, 112, "SIG98", "Real-time event 98")
+SET (GDB_SIGNAL_REALTIME_99, 113, "SIG99", "Real-time event 99")
+SET (GDB_SIGNAL_REALTIME_100, 114, "SIG100", "Real-time event 100")
+SET (GDB_SIGNAL_REALTIME_101, 115, "SIG101", "Real-time event 101")
+SET (GDB_SIGNAL_REALTIME_102, 116, "SIG102", "Real-time event 102")
+SET (GDB_SIGNAL_REALTIME_103, 117, "SIG103", "Real-time event 103")
+SET (GDB_SIGNAL_REALTIME_104, 118, "SIG104", "Real-time event 104")
+SET (GDB_SIGNAL_REALTIME_105, 119, "SIG105", "Real-time event 105")
+SET (GDB_SIGNAL_REALTIME_106, 120, "SIG106", "Real-time event 106")
+SET (GDB_SIGNAL_REALTIME_107, 121, "SIG107", "Real-time event 107")
+SET (GDB_SIGNAL_REALTIME_108, 122, "SIG108", "Real-time event 108")
+SET (GDB_SIGNAL_REALTIME_109, 123, "SIG109", "Real-time event 109")
+SET (GDB_SIGNAL_REALTIME_110, 124, "SIG110", "Real-time event 110")
+SET (GDB_SIGNAL_REALTIME_111, 125, "SIG111", "Real-time event 111")
+SET (GDB_SIGNAL_REALTIME_112, 126, "SIG112", "Real-time event 112")
+SET (GDB_SIGNAL_REALTIME_113, 127, "SIG113", "Real-time event 113")
+SET (GDB_SIGNAL_REALTIME_114, 128, "SIG114", "Real-time event 114")
+SET (GDB_SIGNAL_REALTIME_115, 129, "SIG115", "Real-time event 115")
+SET (GDB_SIGNAL_REALTIME_116, 130, "SIG116", "Real-time event 116")
+SET (GDB_SIGNAL_REALTIME_117, 131, "SIG117", "Real-time event 117")
+SET (GDB_SIGNAL_REALTIME_118, 132, "SIG118", "Real-time event 118")
+SET (GDB_SIGNAL_REALTIME_119, 133, "SIG119", "Real-time event 119")
+SET (GDB_SIGNAL_REALTIME_120, 134, "SIG120", "Real-time event 120")
+SET (GDB_SIGNAL_REALTIME_121, 135, "SIG121", "Real-time event 121")
+SET (GDB_SIGNAL_REALTIME_122, 136, "SIG122", "Real-time event 122")
+SET (GDB_SIGNAL_REALTIME_123, 137, "SIG123", "Real-time event 123")
+SET (GDB_SIGNAL_REALTIME_124, 138, "SIG124", "Real-time event 124")
+SET (GDB_SIGNAL_REALTIME_125, 139, "SIG125", "Real-time event 125")
+SET (GDB_SIGNAL_REALTIME_126, 140, "SIG126", "Real-time event 126")
+SET (GDB_SIGNAL_REALTIME_127, 141, "SIG127", "Real-time event 127")
-SET (TARGET_SIGNAL_INFO, 142, "SIGINFO", "Information request")
+SET (GDB_SIGNAL_INFO, 142, "SIGINFO", "Information request")
/* Some signal we don't know about. */
-SET (TARGET_SIGNAL_UNKNOWN, 143, NULL, "Unknown signal")
+SET (GDB_SIGNAL_UNKNOWN, 143, NULL, "Unknown signal")
/* Use whatever signal we use when one is not specifically specified
(for passing to proceed and so on). */
-SET (TARGET_SIGNAL_DEFAULT, 144, NULL,
- "Internal error: printing TARGET_SIGNAL_DEFAULT")
+SET (GDB_SIGNAL_DEFAULT, 144, NULL,
+ "Internal error: printing GDB_SIGNAL_DEFAULT")
/* Mach exceptions. In versions of GDB before 5.2, these were just before
- TARGET_SIGNAL_INFO if you were compiling on a Mach host (and missing
+ GDB_SIGNAL_INFO if you were compiling on a Mach host (and missing
otherwise). */
SET (TARGET_EXC_BAD_ACCESS, 145, "EXC_BAD_ACCESS", "Could not access memory")
SET (TARGET_EXC_BAD_INSTRUCTION, 146, "EXC_BAD_INSTRUCTION",
@@ -197,4 +197,4 @@ SET (TARGET_EXC_BREAKPOINT, 150, "EXC_BREAKPOINT", "Breakpoint")
/* If you are adding a new signal, add it just above this comment. */
/* Last and unused enum value, for sizing arrays, etc. */
-SET (TARGET_SIGNAL_LAST, 151, NULL, "TARGET_SIGNAL_MAGIC")
+SET (GDB_SIGNAL_LAST, 151, NULL, "GDB_SIGNAL_MAGIC")
diff --git a/binutils-2.22/include/gdb/signals.h b/binutils-2.22/include/gdb/signals.h
index 7364397..a59d3b5 100644
--- a/binutils-2.22/include/gdb/signals.h
+++ b/binutils-2.22/include/gdb/signals.h
@@ -1,7 +1,5 @@
/* Target signal numbers for GDB and the GDB remote protocol.
- Copyright 1986, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
- 1998, 1999, 2000, 2001, 2002, 2007, 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
+ Copyright 1986, 1988-2002, 2007-2012 Free Software Foundation, Inc.
This file is part of GDB.
@@ -47,9 +45,9 @@
etc. are doing to address these issues. */
/* For an explanation of what each signal means, see
- target_signal_to_string. */
+ gdb_signal_to_string. */
-enum target_signal
+enum gdb_signal
{
#define SET(symbol, constant, name, string) \
symbol = constant,
diff --git a/binutils-2.22/include/gdb/sim-arm.h b/binutils-2.22/include/gdb/sim-arm.h
index 3004d8c..1210e94 100644
--- a/binutils-2.22/include/gdb/sim-arm.h
+++ b/binutils-2.22/include/gdb/sim-arm.h
@@ -1,7 +1,6 @@
/* This file defines the interface between the Arm simulator and GDB.
- Copyright 2002, 2003, 2007, 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
+ Copyright 2002-2003, 2007-2012 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/binutils-2.22/include/gdb/sim-bfin.h b/binutils-2.22/include/gdb/sim-bfin.h
index 3a006b8..52a3632 100644
--- a/binutils-2.22/include/gdb/sim-bfin.h
+++ b/binutils-2.22/include/gdb/sim-bfin.h
@@ -1,6 +1,6 @@
/* This file defines the interface between the Blackfin simulator and GDB.
- Copyright (C) 2005-2011 Free Software Foundation, Inc.
+ Copyright (C) 2005-2012 Free Software Foundation, Inc.
Contributed by Analog Devices.
This file is part of GDB.
diff --git a/binutils-2.22/include/gdb/sim-cr16.h b/binutils-2.22/include/gdb/sim-cr16.h
index 1e1c0dd..86449be 100644
--- a/binutils-2.22/include/gdb/sim-cr16.h
+++ b/binutils-2.22/include/gdb/sim-cr16.h
@@ -1,6 +1,6 @@
/* This file defines the interface between the cr16 simulator and gdb.
- Copyright 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright 2008-2012 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/binutils-2.22/include/gdb/sim-d10v.h b/binutils-2.22/include/gdb/sim-d10v.h
index 9f65191..e40b1fe 100644
--- a/binutils-2.22/include/gdb/sim-d10v.h
+++ b/binutils-2.22/include/gdb/sim-d10v.h
@@ -1,7 +1,6 @@
/* This file defines the interface between the d10v simulator and gdb.
- Copyright 1999, 2002, 2007, 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
+ Copyright 1999, 2002, 2007-2012 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/binutils-2.22/include/gdb/sim-frv.h b/binutils-2.22/include/gdb/sim-frv.h
index fe206b2..c7ab2a5 100644
--- a/binutils-2.22/include/gdb/sim-frv.h
+++ b/binutils-2.22/include/gdb/sim-frv.h
@@ -1,6 +1,6 @@
/* This file defines the interface between the FR-V simulator and GDB.
- Copyright 2003, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright 2003, 2007-2012 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/binutils-2.22/include/gdb/sim-h8300.h b/binutils-2.22/include/gdb/sim-h8300.h
index bc1ab7b..2b578e8 100644
--- a/binutils-2.22/include/gdb/sim-h8300.h
+++ b/binutils-2.22/include/gdb/sim-h8300.h
@@ -1,6 +1,5 @@
/* This file defines the interface between the h8300 simulator and gdb.
- Copyright (C) 2002, 2007, 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
+ Copyright (C) 2002, 2007-2012 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/binutils-2.22/include/gdb/sim-lm32.h b/binutils-2.22/include/gdb/sim-lm32.h
index ad94a9f..72a26c3 100644
--- a/binutils-2.22/include/gdb/sim-lm32.h
+++ b/binutils-2.22/include/gdb/sim-lm32.h
@@ -1,7 +1,7 @@
/* This file defines the interface between the LM32 simulator and GDB.
Contributed by Jon Beniston <jon@beniston.com>
- Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/binutils-2.22/include/gdb/sim-m32c.h b/binutils-2.22/include/gdb/sim-m32c.h
index 2d742f4..4d74312 100644
--- a/binutils-2.22/include/gdb/sim-m32c.h
+++ b/binutils-2.22/include/gdb/sim-m32c.h
@@ -1,6 +1,5 @@
/* This file defines the interface between the m32c simulator and gdb.
- Copyright (C) 2005, 2007, 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
+ Copyright (C) 2005, 2007-2012 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/binutils-2.22/include/gdb/sim-ppc.h b/binutils-2.22/include/gdb/sim-ppc.h
index 3b61a5d..f4562dc 100644
--- a/binutils-2.22/include/gdb/sim-ppc.h
+++ b/binutils-2.22/include/gdb/sim-ppc.h
@@ -1,6 +1,6 @@
/* sim-ppc.h --- interface between PowerPC simulator and GDB.
- Copyright 2004, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright 2004, 2007-2012 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/binutils-2.22/include/gdb/sim-rl78.h b/binutils-2.22/include/gdb/sim-rl78.h
new file mode 100644
index 0000000..941ee04
--- /dev/null
+++ b/binutils-2.22/include/gdb/sim-rl78.h
@@ -0,0 +1,76 @@
+/* sim-rx.h --- interface between rl78 simulator and GDB.
+
+ Copyright 2011-2012 Free Software Foundation, Inc.
+
+ Contributed by Red Hat.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#if !defined (SIM_RL78_H)
+#define SIM_RL78_H
+
+enum sim_rl78_regnum
+{
+ sim_rl78_bank0_r0_regnum,
+ sim_rl78_bank0_r1_regnum,
+ sim_rl78_bank0_r2_regnum,
+ sim_rl78_bank0_r3_regnum,
+ sim_rl78_bank0_r4_regnum,
+ sim_rl78_bank0_r5_regnum,
+ sim_rl78_bank0_r6_regnum,
+ sim_rl78_bank0_r7_regnum,
+
+ sim_rl78_bank1_r0_regnum,
+ sim_rl78_bank1_r1_regnum,
+ sim_rl78_bank1_r2_regnum,
+ sim_rl78_bank1_r3_regnum,
+ sim_rl78_bank1_r4_regnum,
+ sim_rl78_bank1_r5_regnum,
+ sim_rl78_bank1_r6_regnum,
+ sim_rl78_bank1_r7_regnum,
+
+ sim_rl78_bank2_r0_regnum,
+ sim_rl78_bank2_r1_regnum,
+ sim_rl78_bank2_r2_regnum,
+ sim_rl78_bank2_r3_regnum,
+ sim_rl78_bank2_r4_regnum,
+ sim_rl78_bank2_r5_regnum,
+ sim_rl78_bank2_r6_regnum,
+ sim_rl78_bank2_r7_regnum,
+
+ sim_rl78_bank3_r0_regnum,
+ sim_rl78_bank3_r1_regnum,
+ sim_rl78_bank3_r2_regnum,
+ sim_rl78_bank3_r3_regnum,
+ sim_rl78_bank3_r4_regnum,
+ sim_rl78_bank3_r5_regnum,
+ sim_rl78_bank3_r6_regnum,
+ sim_rl78_bank3_r7_regnum,
+
+ sim_rl78_psw_regnum,
+ sim_rl78_es_regnum,
+ sim_rl78_cs_regnum,
+ sim_rl78_pc_regnum,
+
+ sim_rl78_spl_regnum,
+ sim_rl78_sph_regnum,
+ sim_rl78_pmc_regnum,
+ sim_rl78_mem_regnum,
+
+ sim_rl78_num_regs
+};
+
+#endif /* SIM_RL78_H */
diff --git a/binutils-2.22/include/gdb/sim-rx.h b/binutils-2.22/include/gdb/sim-rx.h
index ac3ffe9..783dffe 100644
--- a/binutils-2.22/include/gdb/sim-rx.h
+++ b/binutils-2.22/include/gdb/sim-rx.h
@@ -1,6 +1,6 @@
/* sim-rx.h --- interface between RX simulator and GDB.
- Copyright 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright 2008-2012 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/binutils-2.22/include/gdb/sim-sh.h b/binutils-2.22/include/gdb/sim-sh.h
index 6c08d2d..ce2bfa5 100644
--- a/binutils-2.22/include/gdb/sim-sh.h
+++ b/binutils-2.22/include/gdb/sim-sh.h
@@ -1,6 +1,6 @@
/* This file defines the interface between the sh simulator and gdb.
- Copyright (C) 2000, 2002, 2004, 2007, 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2004, 2007-2012 Free Software Foundation,
+ Inc.
This file is part of GDB.
diff --git a/binutils-2.22/include/leb128.h b/binutils-2.22/include/leb128.h
new file mode 100644
index 0000000..f584f72
--- /dev/null
+++ b/binutils-2.22/include/leb128.h
@@ -0,0 +1,136 @@
+/* Utilities for reading leb128 values.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+
+This file is part of the libiberty library.
+Libiberty is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public
+License as published by the Free Software Foundation; either
+version 2 of the License, or (at your option) any later version.
+
+Libiberty is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with libiberty; see the file COPYING.LIB. If not, write
+to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
+Boston, MA 02110-1301, USA. */
+
+/* The functions defined here can be speed critical.
+ Since they are all pretty small we keep things simple and just define
+ them all as "static inline".
+
+ WARNING: This file is used by GDB which is stuck at C90. :-(
+ Though it can use stdint.h, inttypes.h.
+ Therefore if you want to add support for "long long" you need
+ to wrap it in #ifdef CC_HAS_LONG_LONG. */
+
+#ifndef LEB128_H
+#define LEB128_H
+
+/* Get a definition for inline. */
+#include "ansidecl.h"
+
+/* Get a definition for NULL, size_t. */
+#include <stddef.h>
+
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
+
+/* Decode the unsigned LEB128 constant at BUF into the variable pointed to
+ by R, and return the number of bytes read.
+ If we read off the end of the buffer, zero is returned,
+ and nothing is stored in R.
+
+ Note: The result is an int instead of a pointer to the next byte to be
+ read to avoid const-vs-non-const problems. */
+
+static inline size_t
+read_uleb128_to_uint64 (const unsigned char *buf, const unsigned char *buf_end,
+ uint64_t *r)
+{
+ const unsigned char *p = buf;
+ unsigned int shift = 0;
+ uint64_t result = 0;
+ unsigned char byte;
+
+ while (1)
+ {
+ if (p >= buf_end)
+ return 0;
+
+ byte = *p++;
+ result |= ((uint64_t) (byte & 0x7f)) << shift;
+ if ((byte & 0x80) == 0)
+ break;
+ shift += 7;
+ }
+
+ *r = result;
+ return p - buf;
+}
+
+/* Decode the signed LEB128 constant at BUF into the variable pointed to
+ by R, and return the number of bytes read.
+ If we read off the end of the buffer, zero is returned,
+ and nothing is stored in R.
+
+ Note: The result is an int instead of a pointer to the next byte to be
+ read to avoid const-vs-non-const problems. */
+
+static inline size_t
+read_sleb128_to_int64 (const unsigned char *buf, const unsigned char *buf_end,
+ int64_t *r)
+{
+ const unsigned char *p = buf;
+ unsigned int shift = 0;
+ int64_t result = 0;
+ unsigned char byte;
+
+ while (1)
+ {
+ if (p >= buf_end)
+ return 0;
+
+ byte = *p++;
+ result |= ((uint64_t) (byte & 0x7f)) << shift;
+ shift += 7;
+ if ((byte & 0x80) == 0)
+ break;
+ }
+ if (shift < (sizeof (*r) * 8) && (byte & 0x40) != 0)
+ result |= -(((uint64_t) 1) << shift);
+
+ *r = result;
+ return p - buf;
+}
+
+/* Return the number of bytes to read to skip past an LEB128 number in BUF.
+ If the end isn't found before reaching BUF_END, return zero.
+
+ Note: The result is an int instead of a pointer to the next byte to be
+ read to avoid const-vs-non-const problems. */
+
+static inline size_t
+skip_leb128 (const unsigned char *buf, const unsigned char *buf_end)
+{
+ const unsigned char *p = buf;
+ unsigned char byte;
+
+ while (1)
+ {
+ if (p == buf_end)
+ return 0;
+
+ byte = *p++;
+ if ((byte & 0x80) == 0)
+ return p - buf;
+ }
+}
+
+#endif /* LEB128_H */
diff --git a/binutils-2.22/include/libiberty.h b/binutils-2.22/include/libiberty.h
index 32eb83a..cacde80 100644
--- a/binutils-2.22/include/libiberty.h
+++ b/binutils-2.22/include/libiberty.h
@@ -91,6 +91,10 @@ extern void expandargv PARAMS ((int *, char ***));
extern int writeargv PARAMS ((char **, FILE *));
+/* Return the number of elements in argv. */
+
+extern int countargv (char**);
+
/* Return the last component of a path name. Note that we can't use a
prototype here because the parameter is declared inconsistently
across different systems, sometimes as "char *" and sometimes as
diff --git a/binutils-2.22/include/mach-o/ChangeLog b/binutils-2.22/include/mach-o/ChangeLog
index 2276d01..19eacd0 100644
--- a/binutils-2.22/include/mach-o/ChangeLog
+++ b/binutils-2.22/include/mach-o/ChangeLog
@@ -1,3 +1,35 @@
+2012-02-23 Iain Sandoe <idsandoe@googlemail.com>
+
+ * external.h: Add comments about relocations fields. Add macros
+ for non-scattered relocations. Move scattered relocation macros to
+ here.
+ * reloc.h: Remove macros related to external representation of reloc
+ fields.
+
+2012-01-12 Iain Sandoe <idsandoe@googlemail.com>
+
+ * loader.h (BFD_MACH_O_INDIRECT_SYM_LOCAL): New.
+ (BFD_MACH_O_INDIRECT_SYM_ABS): New
+
+2012-01-04 Tristan Gingold <gingold@adacore.com>
+
+ * external.h (mach_o_fvmlib_command_external): New structure.
+
+2012-01-04 Tristan Gingold <gingold@adacore.com>
+
+ * loader.h: Update copyright year.
+ (bfd_mach_o_cpu_subtype): Add ARM subtypes.
+
+2012-01-04 Tristan Gingold <gingold@adacore.com>
+
+ * external.h: Update copyright year.
+ (mach_o_symtab_command_external): Add comments.
+ (mach_o_encryption_info_command_external): New structure.
+
+2011-12-16 Tristan Gingold <gingold@adacore.com>
+
+ * codesign.h: New file.
+
2011-08-08 Tristan Gingold <gingold@adacore.com>
* loader.h (bfd_mach_o_load_command_type): Add
diff --git a/binutils-2.22/include/mach-o/codesign.h b/binutils-2.22/include/mach-o/codesign.h
new file mode 100644
index 0000000..ee2f792
--- /dev/null
+++ b/binutils-2.22/include/mach-o/codesign.h
@@ -0,0 +1,85 @@
+/* Mach-O support for BFD.
+ Copyright 2011
+ Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _MACH_O_CODESIGN_H
+#define _MACH_O_CODESIGN_H
+
+/* Codesign blob magics. */
+
+/* Superblob containing all the components. */
+#define BFD_MACH_O_CS_MAGIC_EMBEDDED_SIGNATURE 0xfade0cc0
+
+/* Individual code requirement. */
+#define BFD_MACH_O_CS_MAGIC_REQUIREMENT 0xfade0c00
+
+/* Collection of code requirements, indexed by type. */
+#define BFD_MACH_O_CS_MAGIC_REQUIREMENTS 0xfade0c01
+
+/* Directory. */
+#define BFD_MACH_O_CS_MAGIC_CODEDIRECTORY 0xfade0c02
+
+/* Entitlements blob. */
+#define BFD_MACH_O_CS_MAGIC_EMBEDDED_ENTITLEMENTS 0xfade7171
+
+/* Blob container. */
+#define BFD_MACH_O_CS_MAGIC_BLOB_WRAPPER 0xfade0b01
+
+struct mach_o_codesign_codedirectory_external_v1
+{
+ /* All the fields are in network byte order (big endian). */
+ unsigned char version[4];
+ unsigned char flags[4];
+ unsigned char hash_offset[4];
+ unsigned char ident_offset[4];
+ unsigned char nbr_special_slots[4];
+ unsigned char nbr_code_slots[4];
+ unsigned char code_limit[4];
+ unsigned char hash_size[1];
+ unsigned char hash_type[1];
+ unsigned char spare1[1];
+ unsigned char page_size[1];
+ unsigned char spare2[4];
+};
+
+struct mach_o_codesign_codedirectory_v1
+{
+ unsigned int version;
+ unsigned int flags;
+ unsigned int hash_offset;
+ unsigned int ident_offset;
+ unsigned int nbr_special_slots;
+ unsigned int nbr_code_slots;
+ unsigned int code_limit;
+ unsigned char hash_size;
+ unsigned char hash_type;
+ unsigned char spare1;
+ unsigned char page_size;
+ unsigned int spare2;
+};
+
+/* Value for hash_type. */
+#define BFD_MACH_O_CS_NO_HASH 0
+#define BFD_MACH_O_CS_HASH_SHA1 1
+#define BFD_MACH_O_CS_HASH_SHA256 2
+#define BFD_MACH_O_CS_HASH_PRESTANDARD_SKEIN_160x256 32 /* Skein, 160 bits */
+#define BFD_MACH_O_CS_HASH_PRESTANDARD_SKEIN_256x512 33 /* Skein, 256 bits */
+
+#endif /* _MACH_O_CODESIGN_H */
diff --git a/binutils-2.22/include/mach-o/external.h b/binutils-2.22/include/mach-o/external.h
index ebb09a7..41a2932 100644
--- a/binutils-2.22/include/mach-o/external.h
+++ b/binutils-2.22/include/mach-o/external.h
@@ -1,5 +1,5 @@
/* Mach-O support for BFD.
- Copyright 2011
+ Copyright 2011, 2012
Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -116,12 +116,51 @@ struct mach_o_reloc_info_external
};
#define BFD_MACH_O_RELENT_SIZE 8
+/* Relocations are based on 'address' being a section offset and an assumption
+ that sections are never more than 2^24-1 bytes in size. Relocation data
+ also carry information on type/size/PC-relative/extern and whether scattered
+ or not [stored in the MSB of the r_address]. */
+
+#define BFD_MACH_O_SR_SCATTERED 0x80000000
+
+/* For a non-scattered reloc, the relocation info is found in r_symbolnum.
+ Bytes 1 to 3 contain the symbol number (0xffffff, in a non-scattered PAIR).
+ Byte 4 contains the relocation info - but with differing bit-positions
+ dependent on target endian-ness - as below. */
+
+#define BFD_MACH_O_LE_PCREL 0x01
+#define BFD_MACH_O_LE_LENGTH_SHIFT 1
+#define BFD_MACH_O_LE_EXTERN 0x08
+#define BFD_MACH_O_LE_TYPE_SHIFT 4
+
+#define BFD_MACH_O_BE_PCREL 0x80
+#define BFD_MACH_O_BE_LENGTH_SHIFT 5
+#define BFD_MACH_O_BE_EXTERN 0x10
+#define BFD_MACH_O_BE_TYPE_SHIFT 0
+
+/* The field sizes are the same for both BE and LE. */
+#define BFD_MACH_O_LENGTH_MASK 0x03
+#define BFD_MACH_O_TYPE_MASK 0x0f
+
+/* For a scattered reloc entry the info is contained in r_address. There
+ is no need to discriminate on target endian-ness, since the design was
+ arranged to produce the same layout on both. Scattered relocations are
+ only used for local items, therefore there is no 'extern' field. */
+
+#define BFD_MACH_O_SR_PCREL 0x40000000
+#define BFD_MACH_O_GET_SR_LENGTH(s) (((s) >> 28) & 0x3)
+#define BFD_MACH_O_GET_SR_TYPE(s) (((s) >> 24) & 0x0f)
+#define BFD_MACH_O_GET_SR_ADDRESS(s) ((s) & 0x00ffffff)
+#define BFD_MACH_O_SET_SR_LENGTH(l) (((l) & 0x3) << 28)
+#define BFD_MACH_O_SET_SR_TYPE(t) (((t) & 0xf) << 24)
+#define BFD_MACH_O_SET_SR_ADDRESS(s) ((s) & 0x00ffffff)
+
struct mach_o_symtab_command_external
{
- unsigned char symoff[4];
- unsigned char nsyms[4];
- unsigned char stroff[4];
- unsigned char strsize[4];
+ unsigned char symoff[4]; /* File offset of the symbol table. */
+ unsigned char nsyms[4]; /* Number of symbols. */
+ unsigned char stroff[4]; /* File offset of the string table. */
+ unsigned char strsize[4]; /* String table size. */
};
struct mach_o_nlist_external
@@ -255,6 +294,20 @@ struct mach_o_version_min_command_external
unsigned char reserved[4];
};
+struct mach_o_encryption_info_command_external
+{
+ unsigned char cryptoff[4]; /* File offset of the encrypted area. */
+ unsigned char cryptsize[4]; /* Size of the encrypted area. */
+ unsigned char cryptid[4]; /* Encryption method. */
+};
+
+struct mach_o_fvmlib_command_external
+{
+ unsigned char name[4]; /* Offset of the name. */
+ unsigned char minor_version[4];
+ unsigned char header_addr[4];
+};
+
struct mach_o_fat_header_external
{
unsigned char magic[4];
diff --git a/binutils-2.22/include/mach-o/loader.h b/binutils-2.22/include/mach-o/loader.h
index 357f65e..1b9b15e 100644
--- a/binutils-2.22/include/mach-o/loader.h
+++ b/binutils-2.22/include/mach-o/loader.h
@@ -1,5 +1,5 @@
/* Mach-O support for BFD.
- Copyright 2011
+ Copyright 2011, 2012
Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -56,7 +56,16 @@ bfd_mach_o_cpu_type;
typedef enum bfd_mach_o_cpu_subtype
{
- BFD_MACH_O_CPU_SUBTYPE_X86_ALL = 3
+ /* i386. */
+ BFD_MACH_O_CPU_SUBTYPE_X86_ALL = 3,
+
+ /* arm. */
+ BFD_MACH_O_CPU_SUBTYPE_ARM_ALL = 0,
+ BFD_MACH_O_CPU_SUBTYPE_ARM_V4T = 5,
+ BFD_MACH_O_CPU_SUBTYPE_ARM_V6 = 6,
+ BFD_MACH_O_CPU_SUBTYPE_ARM_V5TEJ = 7,
+ BFD_MACH_O_CPU_SUBTYPE_ARM_XSCALE = 8,
+ BFD_MACH_O_CPU_SUBTYPE_ARM_V7 = 9
}
bfd_mach_o_cpu_subtype;
@@ -246,6 +255,9 @@ bfd_mach_o_section_type;
typedef enum bfd_mach_o_section_attribute
{
+ /* Section has no specified attibutes. */
+ BFD_MACH_O_S_ATTR_NONE = 0,
+
/* Section has local relocation entries. */
BFD_MACH_O_S_ATTR_LOC_RELOC = 0x00000100,
@@ -308,6 +320,9 @@ bfd_mach_o_section_attribute;
#define BFD_MACH_O_N_NO_DEAD_STRIP 0x20
#define BFD_MACH_O_N_WEAK_REF 0x40
#define BFD_MACH_O_N_WEAK_DEF 0x80
+
+#define BFD_MACH_O_INDIRECT_SYM_LOCAL 0x80000000
+#define BFD_MACH_O_INDIRECT_SYM_ABS 0x40000000
/* Thread constants. */
diff --git a/binutils-2.22/include/mach-o/reloc.h b/binutils-2.22/include/mach-o/reloc.h
index 93ebb8b..bab31ef 100644
--- a/binutils-2.22/include/mach-o/reloc.h
+++ b/binutils-2.22/include/mach-o/reloc.h
@@ -1,5 +1,5 @@
/* Mach-O support for BFD.
- Copyright 2011
+ Copyright 2011, 2012
Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -22,26 +22,6 @@
#ifndef _MACH_O_RELOC_H
#define _MACH_O_RELOC_H
-/* Fields for a normal (non-scattered) entry. */
-#define BFD_MACH_O_R_PCREL 0x01000000
-#define BFD_MACH_O_GET_R_LENGTH(s) (((s) >> 25) & 0x3)
-#define BFD_MACH_O_R_EXTERN 0x08000000
-#define BFD_MACH_O_GET_R_TYPE(s) (((s) >> 28) & 0x0f)
-#define BFD_MACH_O_GET_R_SYMBOLNUM(s) ((s) & 0x00ffffff)
-#define BFD_MACH_O_SET_R_LENGTH(l) (((l) & 0x3) << 25)
-#define BFD_MACH_O_SET_R_TYPE(t) (((t) & 0xf) << 28)
-#define BFD_MACH_O_SET_R_SYMBOLNUM(s) ((s) & 0x00ffffff)
-
-/* Fields for a scattered entry. */
-#define BFD_MACH_O_SR_SCATTERED 0x80000000
-#define BFD_MACH_O_SR_PCREL 0x40000000
-#define BFD_MACH_O_GET_SR_LENGTH(s) (((s) >> 28) & 0x3)
-#define BFD_MACH_O_GET_SR_TYPE(s) (((s) >> 24) & 0x0f)
-#define BFD_MACH_O_GET_SR_ADDRESS(s) ((s) & 0x00ffffff)
-#define BFD_MACH_O_SET_SR_LENGTH(l) (((l) & 0x3) << 28)
-#define BFD_MACH_O_SET_SR_TYPE(t) (((t) & 0xf) << 24)
-#define BFD_MACH_O_SET_SR_ADDRESS(s) ((s) & 0x00ffffff)
-
/* Generic relocation types (used by i386). */
#define BFD_MACH_O_GENERIC_RELOC_VANILLA 0
#define BFD_MACH_O_GENERIC_RELOC_PAIR 1
diff --git a/binutils-2.22/include/obstack.h b/binutils-2.22/include/obstack.h
index 4aec3a4..23487ba 100644
--- a/binutils-2.22/include/obstack.h
+++ b/binutils-2.22/include/obstack.h
@@ -532,9 +532,9 @@ __extension__ \
# define obstack_free(h,obj) \
( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \
(((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
- ? (int) ((h)->next_free = (h)->object_base \
- = (h)->temp + (char *) (h)->chunk) \
- : (((obstack_free) ((h), (h)->temp + (char *) (h)->chunk), 0), 0)))
+ ? (((h)->next_free = (h)->object_base \
+ = (h)->temp + (char *) (h)->chunk), 0) \
+ : ((obstack_free) ((h), (h)->temp + (char *) (h)->chunk), 0)))
#endif /* not __GNUC__ or not __STDC__ */
diff --git a/binutils-2.22/include/opcode/ChangeLog b/binutils-2.22/include/opcode/ChangeLog
index 8f070a1..4b8d300 100644
--- a/binutils-2.22/include/opcode/ChangeLog
+++ b/binutils-2.22/include/opcode/ChangeLog
@@ -1,3 +1,98 @@
+2012-07-06 Maciej W. Rozycki <macro@codesourcery.com>
+
+ * mips.h: Fix a typo in description.
+
+2012-06-07 Georg-Johann Lay <avr@gjlay.de>
+
+ * avr.h: (AVR_ISA_XCH): New define.
+ (AVR_ISA_XMEGA): Use it.
+ (XCH, LAS, LAT, LAC): New XMEGA opcodes.
+
+2012-05-15 James Murray <jsm@jsm-net.demon.co.uk>
+
+ * m68hc11.h: Add XGate definitions.
+ (struct m68hc11_opcode): Add xg_mask field.
+
+2012-05-14 Catherine Moore <clm@codesourcery.com>
+ Maciej W. Rozycki <macro@codesourcery.com>
+ Rhonda Wittels <rhonda@codesourcery.com>
+
+ * ppc.h (PPC_OPCODE_VLE): New definition.
+ (PPC_OP_SA): New macro.
+ (PPC_OP_SE_VLE): New macro.
+ (PPC_OP): Use a variable shift amount.
+ (powerpc_operand): Update comments.
+ (PPC_OPSHIFT_INV): New macro.
+ (PPC_OPERAND_CR): Replace with...
+ (PPC_OPERAND_CR_BIT): ...this and
+ (PPC_OPERAND_CR_REG): ...this.
+
+
+2012-05-03 Sean Keys <skeys@ipdatasys.com>
+
+ * xgate.h: Header file for XGATE assembler.
+
+2012-04-27 David S. Miller <davem@davemloft.net>
+
+ * sparc.h: Document new arg code' )' for crypto RS3
+ immediates.
+
+ * sparc.h (struct sparc_opcode): New field 'hwcaps'.
+ F_MUL32, F_DIV32, F_FDMULD, F_V8PLUS, F_POPC, F_VIS, F_VIS2,
+ F_ASI_BLK_INIT, F_FMAF, F_VIS3, F_HPC, F_RANDOM, F_TRANS,
+ F_FJFMAU, F_IMA, F_ASI_CACHE_SPARING, F_HWCAP_MASK): Delete.
+ (HWCAP_MUL32, HWCAP_DIV32, HWCAP_FSMULD, HWCAP_V8PLUS, HWCAP_POPC,
+ HWCAP_VIS, HWCAP_VIS2, HWCAP_ASI_BLK_INIT, HWCAP_FMAF,
+ HWCAP_VIS3, HWCAP_HPC, HWCAP_RANDOM, HWCAP_TRANS, HWCAP_FJFMAU,
+ HWCAP_IMA, HWCAP_ASI_CACHE_SPARING, HWCAP_AES, HWCAP_DES,
+ HWCAP_KASUMI, HWCAP_CAMELLIA, HWCAP_MD5, HWCAP_SHA1,
+ HWCAP_SHA256, HWCAP_SHA512, HWCAP_MPMUL, HWCAP_MONT, HWCAP_PAUSE,
+ HWCAP_CBCOND, HWCAP_CRC32): New defines.
+
+2012-03-10 Edmar Wienskoski <edmar@freescale.com>
+
+ * ppc.h: Add PPC_OPCODE_ALTIVEC2, PPC_OPCODE_E6500, PPC_OPCODE_TMR.
+
+2012-02-27 Alan Modra <amodra@gmail.com>
+
+ * crx.h (cst4_map): Update declaration.
+
+2012-02-25 Walter Lee <walt@tilera.com>
+
+ * tilegx.h (tilegx_mnemonic): Add TILEGX_OPC_LD4S_TLS,
+ TILEGX_OPC_LD_TLS.
+ * tilepro.h (tilepro_mnemonic): Add TILEPRO_OPC_LW_TLS,
+ TILEPRO_OPC_LW_TLS_SN.
+
+2012-02-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ * i386.h (XACQUIRE_PREFIX_OPCODE): New.
+ (XRELEASE_PREFIX_OPCODE): Likewise.
+
+2011-12-08 Andrew Pinski <apinski@cavium.com>
+ Adam Nemet <anemet@caviumnetworks.com>
+
+ * mips.h (INSN_CHIP_MASK): Update according to INSN_OCTEON2.
+ (INSN_OCTEON2): New macro.
+ (CPU_OCTEON2): New macro.
+ (OPCODE_IS_MEMBER): Add Octeon2.
+
+2011-11-29 Andrew Pinski <apinski@cavium.com>
+
+ * mips.h (INSN_CHIP_MASK): Update according to INSN_OCTEONP.
+ (INSN_OCTEONP): New macro.
+ (CPU_OCTEONP): New macro.
+ (OPCODE_IS_MEMBER): Add Octeon+.
+ (M_SAA_AB, M_SAAD_AB, M_SAA_OB, M_SAAD_OB): New enum values.
+
+2011-11-01 DJ Delorie <dj@redhat.com>
+
+ * rl78.h: New file.
+
+2011-10-24 Maciej W. Rozycki <macro@codesourcery.com>
+
+ * mips.h: Fix a typo in description.
+
2011-09-21 David S. Miller <davem@davemloft.net>
* sparc.h (struct sparc_opcode): Expand 'flags' to unsigned int.
diff --git a/binutils-2.22/include/opcode/avr.h b/binutils-2.22/include/opcode/avr.h
index a6d7b47..6e86c07 100644
--- a/binutils-2.22/include/opcode/avr.h
+++ b/binutils-2.22/include/opcode/avr.h
@@ -1,6 +1,6 @@
/* Opcode table for the Atmel AVR micro controllers.
- Copyright 2000, 2001, 2004, 2006, 2008, 2010 Free Software Foundation, Inc.
+ Copyright 2000, 2001, 2004, 2006, 2008, 2010, 2012 Free Software Foundation, Inc.
Contributed by Denis Chertykov <denisc@overta.ru>
This program is free software; you can redistribute it and/or modify
@@ -33,6 +33,7 @@
#define AVR_ISA_MOVW 0x1000 /* device has MOVW */
#define AVR_ISA_SPMX 0x2000 /* device has SPM Z[+] */
#define AVR_ISA_DES 0x4000 /* device has DES */
+#define AVR_ISA_XCH 0x8000 /* device has XCH, LAC, LAS, LAT */
#define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM)
#define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM)
@@ -52,7 +53,7 @@
#define AVR_ISA_M323 (AVR_ISA_M161 | AVR_ISA_BRK)
#define AVR_ISA_M128 (AVR_ISA_M323 | AVR_ISA_ELPM | AVR_ISA_ELPMX)
#define AVR_ISA_M256 (AVR_ISA_M128 | AVR_ISA_EIND)
-#define AVR_ISA_XMEGA (AVR_ISA_M256 | AVR_ISA_SPMX | AVR_ISA_DES)
+#define AVR_ISA_XMEGA (AVR_ISA_M256 | AVR_ISA_SPMX | AVR_ISA_DES | AVR_ISA_XCH)
#define AVR_ISA_AVR1 AVR_ISA_TINY1
#define AVR_ISA_AVR2 AVR_ISA_2xxx
@@ -124,7 +125,6 @@
0x0001...0x00ff (255) (known to be decoded as `nop' by the old core)
"100100xxxxxxx011" (128) 0x9[0-3][0-9a-f][3b]
"100100xxxxxx1000" (64) 0x9[0-3][0-9a-f]8
- "1001001xxxxx01xx" (128) 0x9[23][0-9a-f][4-7]
"1001010xxxxx0100" (32) 0x9[45][0-9a-f]4
"1001010x001x1001" (4) 0x9[45][23]9
"1001010x01xx1001" (8) 0x9[45][4-7]9
@@ -265,6 +265,12 @@ AVR_INSN (push, "r", "1001001rrrrr1111", 1, AVR_ISA_2xxx, 0x920f)
AVR_INSN (ror, "r", "1001010rrrrr0111", 1, AVR_ISA_1200, 0x9407)
AVR_INSN (swap, "r", "1001010rrrrr0010", 1, AVR_ISA_1200, 0x9402)
+ /* Atomic memory operations for XMEGA. List before `sts'. */
+AVR_INSN (xch, "z,r", "1001001rrrrr0100", 1, AVR_ISA_XCH, 0x9204)
+AVR_INSN (las, "z,r", "1001001rrrrr0101", 1, AVR_ISA_XCH, 0x9205)
+AVR_INSN (lac, "z,r", "1001001rrrrr0110", 1, AVR_ISA_XCH, 0x9206)
+AVR_INSN (lat, "z,r", "1001001rrrrr0111", 1, AVR_ISA_XCH, 0x9207)
+
/* Known to be decoded as `nop' by the old core. */
AVR_INSN (movw, "v,v", "00000001ddddrrrr", 1, AVR_ISA_MOVW, 0x0100)
AVR_INSN (muls, "d,d", "00000010ddddrrrr", 1, AVR_ISA_MUL, 0x0200)
diff --git a/binutils-2.22/include/opcode/crx.h b/binutils-2.22/include/opcode/crx.h
index 5c484bf..6081ea3 100644
--- a/binutils-2.22/include/opcode/crx.h
+++ b/binutils-2.22/include/opcode/crx.h
@@ -1,5 +1,5 @@
/* crx.h -- Header file for CRX opcode and register tables.
- Copyright 2004, 2010 Free Software Foundation, Inc.
+ Copyright 2004, 2010, 2012 Free Software Foundation, Inc.
Contributed by Tomer Levi, NSC, Israel.
Originally written for GAS 2.12 by Tomer Levi, NSC, Israel.
Updates, BFDizing, GNUifying and ELF support by Tomer Levi.
@@ -384,7 +384,7 @@ extern const int crx_num_traps;
#define NUMTRAPS crx_num_traps
/* cst4 operand mapping. */
-extern const long cst4_map[];
+extern const int cst4_map[];
extern const int cst4_maps;
/* Table of instructions with no operands. */
diff --git a/binutils-2.22/include/opcode/i386.h b/binutils-2.22/include/opcode/i386.h
index b635334..ad6d3c6 100644
--- a/binutils-2.22/include/opcode/i386.h
+++ b/binutils-2.22/include/opcode/i386.h
@@ -76,6 +76,8 @@
#define SS_PREFIX_OPCODE 0x36
#define REPNE_PREFIX_OPCODE 0xf2
#define REPE_PREFIX_OPCODE 0xf3
+#define XACQUIRE_PREFIX_OPCODE 0xf2
+#define XRELEASE_PREFIX_OPCODE 0xf3
#define TWO_BYTE_OPCODE_ESCAPE 0x0f
#define NOP_OPCODE (char) 0x90
diff --git a/binutils-2.22/include/opcode/m68hc11.h b/binutils-2.22/include/opcode/m68hc11.h
index 83f5a9a..1a00200 100644
--- a/binutils-2.22/include/opcode/m68hc11.h
+++ b/binutils-2.22/include/opcode/m68hc11.h
@@ -1,5 +1,6 @@
/* m68hc11.h -- Header file for Motorola 68HC11 & 68HC12 opcode table
- Copyright 1999, 2000, 2002, 2003, 2010 Free Software Foundation, Inc.
+ Copyright 1999, 2000, 2002, 2003, 2010, 2012
+ Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@nerim.fr)
This file is part of GDB, GAS, and the GNU binutils.
@@ -37,8 +38,7 @@
of the M6811_INIT register. At init time, the I/O registers are
mapped at 0x1000. Address of registers is then:
- 0x1000 + M6811_xxx
-*/
+ 0x1000 + M6811_xxx. */
#define M6811_PORTA 0x00 /* Port A register */
#define M6811__RES1 0x01 /* Unused/Reserved */
#define M6811_PIOC 0x02 /* Parallel I/O Control register */
@@ -364,6 +364,26 @@
#define M6812_INDEXED 0x20000000 /* n,r n = 5, 9 or 16-bits */
#define M6812_OP_IDX_P2 0x40000000
+/* XGATE defines.
+ These overlap with HC11/12 as above but not used at the same time. */
+#define M68XG_OP_NONE 0x0001
+#define M68XG_OP_IMM3 0x0002
+#define M68XG_OP_R 0x0004
+#define M68XG_OP_R_R 0x0008
+#define M68XG_OP_R_IMM4 0x0010
+#define M68XG_OP_R_R_R 0x0020
+#define M68XG_OP_REL9 0x0040
+#define M68XG_OP_REL10 0x0080
+#define M68XG_OP_R_R_OFFS5 0x0100
+#define M68XG_OP_RD_RB_RI 0x0200
+#define M68XG_OP_RD_RB_RIp 0x0400
+#define M68XG_OP_RD_RB_mRI 0x0800
+#define M68XG_OP_R_IMM8 0x1000
+#define M68XG_OP_R_IMM16 0x2000
+#define M68XG_OP_REG 0x4000 /* Register operand 1. */
+#define M68XG_OP_REG_2 0x8000 /* Register operand 2. */
+#define M68XG_MAX_OPERANDS 3 /* Max operands of triadic r1, r2, r3. */
+
/* Markers to identify some instructions. */
#define M6812_OP_EXG_MARKER 0x01000000 /* exg r1,r2 */
#define M6812_OP_TFR_MARKER 0x02000000 /* tfr r1,r2 */
@@ -374,35 +394,43 @@
#define M6812_OP_IBCC_MARKER 0x02000000 /* ibeq/ibne */
#define M6812_OP_TBCC_MARKER 0x01000000
+/* XGATE markers. */
+#define M68XG_OP_B_MARKER 0x04000000 /* bXX rel9 */
+#define M68XG_OP_BRA_MARKER 0x02000000 /* bra rel10 */
+
#define M6812_OP_TRAP_ID 0x80000000 /* trap #N */
#define M6811_OP_HIGH_ADDR 0x01000000 /* Used internally by gas. */
#define M6811_OP_LOW_ADDR 0x02000000
-#define M68HC12_BANK_VIRT 0x010000
-#define M68HC12_BANK_MASK 0x00003fff
-#define M68HC12_BANK_BASE 0x00008000
-#define M68HC12_BANK_SHIFT 14
-#define M68HC12_BANK_PAGE_MASK 0x0ff
+#define M68HC12_BANK_VIRT 0x010000
+#define M68HC12_BANK_MASK 0x00003fff
+#define M68HC12_BANK_BASE 0x00008000
+#define M68HC12_BANK_SHIFT 14
+#define M68HC12_BANK_PAGE_MASK 0x0ff
/* CPU identification. */
#define cpu6811 0x01
#define cpu6812 0x02
#define cpu6812s 0x04
+#define cpu9s12x 0x08 /* 9S12X main cpu. */
+#define cpuxgate 0x10 /* The XGATE module itself. */
/* The opcode table is an array of struct m68hc11_opcode. */
-struct m68hc11_opcode {
- const char* name; /* Op-code name */
+struct m68hc11_opcode
+{
+ const char * name; /* Op-code name. */
long format;
unsigned char size;
- unsigned char opcode;
+ unsigned int opcode;
unsigned char cycles_low;
unsigned char cycles_high;
unsigned char set_flags_mask;
unsigned char clr_flags_mask;
unsigned char chg_flags_mask;
unsigned char arch;
+ unsigned int xg_mask; /* Mask with zero in register place for xgate. */
};
/* Alias definition for 68HC12. */
diff --git a/binutils-2.22/include/opcode/mips.h b/binutils-2.22/include/opcode/mips.h
index e6703f8..9232508 100644
--- a/binutils-2.22/include/opcode/mips.h
+++ b/binutils-2.22/include/opcode/mips.h
@@ -713,10 +713,12 @@ static const unsigned int mips_isa_table[] =
{ 0x0001, 0x0003, 0x0607, 0x1e0f, 0x3e1f, 0x0a23, 0x3e63, 0x3ebf, 0x3fff };
/* Masks used for Chip specific instructions. */
-#define INSN_CHIP_MASK 0xc3ff0c20
+#define INSN_CHIP_MASK 0xc3ff0f20
/* Cavium Networks Octeon instructions. */
#define INSN_OCTEON 0x00000800
+#define INSN_OCTEONP 0x00000200
+#define INSN_OCTEON2 0x00000100
/* Masks used for MIPS-defined ASEs. */
#define INSN_ASE_MASK 0x3c00f010
@@ -823,6 +825,8 @@ static const unsigned int mips_isa_table[] =
#define CPU_LOONGSON_2F 3002
#define CPU_LOONGSON_3A 3003
#define CPU_OCTEON 6501
+#define CPU_OCTEONP 6601
+#define CPU_OCTEON2 6502
#define CPU_XLR 887682 /* decimal 'XLR' */
/* Test for membership in an ISA including chip specific ISAs. INSN
@@ -859,6 +863,10 @@ static const unsigned int mips_isa_table[] =
&& ((insn)->membership & INSN_LOONGSON_3A) != 0) \
|| (cpu == CPU_OCTEON \
&& ((insn)->membership & INSN_OCTEON) != 0) \
+ || (cpu == CPU_OCTEONP \
+ && ((insn)->membership & INSN_OCTEONP) != 0) \
+ || (cpu == CPU_OCTEON2 \
+ && ((insn)->membership & INSN_OCTEON2) != 0) \
|| (cpu == CPU_XLR && ((insn)->membership & INSN_XLR) != 0) \
|| 0) /* Please keep this term for easier source merging. */
@@ -1065,6 +1073,10 @@ enum
M_S_DOB,
M_S_DAB,
M_S_S,
+ M_SAA_AB,
+ M_SAA_OB,
+ M_SAAD_AB,
+ M_SAAD_OB,
M_SC_AB,
M_SC_OB,
M_SCD_AB,
@@ -1616,7 +1628,7 @@ extern const int bfd_mips16_num_opcodes;
"c" 10-bit higher breakpoint code (MICROMIPSOP_*_CODE)
"d" 5-bit destination register specifier (MICROMIPSOP_*_RD)
"h" 5-bit PREFX hint (MICROMIPSOP_*_PREFX)
- "i" 16 bit unsigned immediate (MICROMIPSOP_*_IMMEDIATE)
+ "i" 16-bit unsigned immediate (MICROMIPSOP_*_IMMEDIATE)
"j" 16-bit signed immediate (MICROMIPSOP_*_DELTA)
"k" 5-bit cache opcode in target register position (MICROMIPSOP_*_CACHE)
"n" register list for 32-bit LWM/SWM instruction (MICROMIPSOP_*_RT)
@@ -1634,7 +1646,7 @@ extern const int bfd_mips16_num_opcodes;
"y" 5-bit source 3 register for ALNV.PS (MICROMIPSOP_*_RS3)
"z" must be zero register
"C" 23-bit coprocessor function code (MICROMIPSOP_*_COPZ)
- "B" 8-bit syscall/wait function code (MICROMIPSOP_*_CODE10)
+ "B" 10-bit syscall/wait function code (MICROMIPSOP_*_CODE10)
"K" 5-bit Hardware Register (RDHWR instruction) (MICROMIPSOP_*_RS)
"+A" 5-bit INS/EXT/DINS/DEXT/DINSM/DEXTM position, which becomes
diff --git a/binutils-2.22/include/opcode/ppc.h b/binutils-2.22/include/opcode/ppc.h
index a0119dc..2e789d6 100644
--- a/binutils-2.22/include/opcode/ppc.h
+++ b/binutils-2.22/include/opcode/ppc.h
@@ -1,6 +1,6 @@
/* ppc.h -- Header file for PowerPC opcode table
Copyright 1994, 1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+ 2007, 2008, 2009, 2010, 2012 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Support
This file is part of GDB, GAS, and the GNU binutils.
@@ -65,6 +65,8 @@ struct powerpc_opcode
instructions. */
extern const struct powerpc_opcode powerpc_opcodes[];
extern const int powerpc_num_opcodes;
+extern const struct powerpc_opcode vle_opcodes[];
+extern const int vle_num_opcodes;
/* Values defined for the flags field of a struct powerpc_opcode. */
@@ -174,8 +176,29 @@ extern const int powerpc_num_opcodes;
/* Opcode which is supported by the e500 family */
#define PPC_OPCODE_E500 0x100000000ull
+/* Opcode is supported by Extended Altivec Vector Unit */
+#define PPC_OPCODE_ALTIVEC2 0x200000000ull
+
+/* Opcode is supported by Power E6500 */
+#define PPC_OPCODE_E6500 0x400000000ull
+
+/* Opcode is supported by Thread management APU */
+#define PPC_OPCODE_TMR 0x800000000ull
+
+/* Opcode which is supported by the VLE extension. */
+#define PPC_OPCODE_VLE 0x1000000000ull
+
/* A macro to extract the major opcode from an instruction. */
#define PPC_OP(i) (((i) >> 26) & 0x3f)
+
+/* A macro to determine if the instruction is a 2-byte VLE insn. */
+#define PPC_OP_SE_VLE(m) ((m) <= 0xffff)
+
+/* A macro to extract the major opcode from a VLE instruction. */
+#define VLE_OP(i,m) (((i) >> ((m) <= 0xffff ? 10 : 26)) & 0x3f)
+
+/* A macro to convert a VLE opcode to a VLE opcode segment. */
+#define VLE_OP_TO_SEG(i) ((i) >> 1)
/* The operands table is an array of struct powerpc_operand. */
@@ -184,16 +207,22 @@ struct powerpc_operand
/* A bitmask of bits in the operand. */
unsigned int bitm;
- /* How far the operand is left shifted in the instruction.
- -1 to indicate that BITM and SHIFT cannot be used to determine
- where the operand goes in the insn. */
+ /* The shift operation to be applied to the operand. No shift
+ is made if this is zero. For positive values, the operand
+ is shifted left by SHIFT. For negative values, the operand
+ is shifted right by -SHIFT. Use PPC_OPSHIFT_INV to indicate
+ that BITM and SHIFT cannot be used to determine where the
+ operand goes in the insn. */
int shift;
/* Insertion function. This is used by the assembler. To insert an
operand value into an instruction, check this field.
If it is NULL, execute
- i |= (op & o->bitm) << o->shift;
+ if (o->shift >= 0)
+ i |= (op & o->bitm) << o->shift;
+ else
+ i |= (op & o->bitm) >> -o->shift;
(i is the instruction which we are filling in, o is a pointer to
this structure, and op is the operand value).
@@ -211,7 +240,10 @@ struct powerpc_operand
extract this operand type from an instruction, check this field.
If it is NULL, compute
- op = (i >> o->shift) & o->bitm;
+ if (o->shift >= 0)
+ op = (i >> o->shift) & o->bitm;
+ else
+ op = (i << -o->shift) & o->bitm;
if ((o->flags & PPC_OPERAND_SIGNED) != 0)
sign_extend (op);
(i is the instruction, o is a pointer to this structure, and op
@@ -235,6 +267,11 @@ struct powerpc_operand
extern const struct powerpc_operand powerpc_operands[];
extern const unsigned int num_powerpc_operands;
+/* Use with the shift field of a struct powerpc_operand to indicate
+ that BITM and SHIFT cannot be used to determine where the operand
+ goes in the insn. */
+#define PPC_OPSHIFT_INV (-1 << 31)
+
/* Values defined for the flags field of a struct powerpc_operand. */
/* This operand takes signed values. */
@@ -268,7 +305,7 @@ extern const unsigned int num_powerpc_operands;
cr4 4 cr5 5 cr6 6 cr7 7
These may be combined arithmetically, as in cr2*4+gt. These are
only supported on the PowerPC, not the POWER. */
-#define PPC_OPERAND_CR (0x10)
+#define PPC_OPERAND_CR_BIT (0x10)
/* This operand names a register. The disassembler uses this to print
register names with a leading 'r'. */
@@ -333,6 +370,9 @@ extern const unsigned int num_powerpc_operands;
/* This operand names a vector-scalar unit register. The disassembler
prints these with a leading 'vs'. */
#define PPC_OPERAND_VSR (0x100000)
+
+/* This is a CR FIELD that does not use symbolic names. */
+#define PPC_OPERAND_CR_REG (0x200000)
/* The POWER and PowerPC assemblers use a few macros. We keep them
with the operands table for simplicity. The macro table is an
diff --git a/binutils-2.22/include/opcode/rl78.h b/binutils-2.22/include/opcode/rl78.h
new file mode 100644
index 0000000..0f3c64d
--- /dev/null
+++ b/binutils-2.22/include/opcode/rl78.h
@@ -0,0 +1,168 @@
+/* Opcode decoder for the Renesas RL78
+ Copyright 2011
+ Free Software Foundation, Inc.
+ Written by DJ Delorie <dj@redhat.com>
+
+ This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+ 02110-1301, USA. */
+
+/* The RL78 decoder in libopcodes is used by the simulator, gdb's
+ analyzer, and the disassembler. Given an opcode data source, it
+ decodes the next opcode into the following structures. */
+
+#ifndef RL78_OPCODES_H_INCLUDED
+#define RL78_OPCODES_H_INCLUDED
+
+/* For the purposes of these structures, the RL78 registers are as
+ follows, despite most of these being memory-mapped and
+ bank-switched: */
+typedef enum {
+ RL78_Reg_None,
+ /* The order of these matches the encodings. */
+ RL78_Reg_X,
+ RL78_Reg_A,
+ RL78_Reg_C,
+ RL78_Reg_B,
+ RL78_Reg_E,
+ RL78_Reg_D,
+ RL78_Reg_L,
+ RL78_Reg_H,
+ /* The order of these matches the encodings. */
+ RL78_Reg_AX,
+ RL78_Reg_BC,
+ RL78_Reg_DE,
+ RL78_Reg_HL,
+ /* Unordered. */
+ RL78_Reg_SP,
+ RL78_Reg_PSW,
+ RL78_Reg_CS,
+ RL78_Reg_ES,
+ RL78_Reg_PMC,
+ RL78_Reg_MEM
+} RL78_Register;
+
+typedef enum
+{
+ RL78_Byte = 0,
+ RL78_Word
+} RL78_Size;
+
+typedef enum {
+ RL78_Condition_T,
+ RL78_Condition_F,
+ RL78_Condition_C,
+ RL78_Condition_NC,
+ RL78_Condition_H,
+ RL78_Condition_NH,
+ RL78_Condition_Z,
+ RL78_Condition_NZ
+} RL78_Condition;
+
+typedef enum {
+ RL78_Operand_None = 0,
+ RL78_Operand_Immediate, /* #addend */
+ RL78_Operand_Register, /* reg */
+ RL78_Operand_Indirect, /* [reg + reg2 + addend] */
+ RL78_Operand_Bit, /* reg.bit */
+ RL78_Operand_BitIndirect, /* [reg+reg2+addend].bit */
+ RL78_Operand_PreDec, /* [--reg] = push */
+ RL78_Operand_PostInc /* [reg++] = pop */
+} RL78_Operand_Type;
+
+typedef enum
+{
+ RLO_unknown,
+ RLO_add, /* d += s */
+ RLO_addc, /* d += s + CY */
+ RLO_and, /* d &= s (byte, word, bit) */
+ RLO_branch, /* pc = d */
+ RLO_branch_cond, /* pc = d if cond(src) */
+ RLO_branch_cond_clear, /* pc = d if cond(src), and clear(src) */
+ RLO_break, /* BRK */
+ RLO_call, /* call */
+ RLO_cmp, /* cmp d, s */
+ RLO_divhu, /* DIVHU */
+ RLO_divwu, /* DIVWU */
+ RLO_halt, /* HALT */
+ RLO_mov, /* d = s */
+ RLO_mach, /* MACH */
+ RLO_machu, /* MACHU */
+ RLO_mulu, /* MULU */
+ RLO_mulh, /* MULH */
+ RLO_mulhu, /* MULHU */
+ RLO_nop, /* NOP */
+ RLO_or, /* d |= s */
+ RLO_ret, /* RET */
+ RLO_reti, /* RETI */
+ RLO_rol, /* d <<= s, MSB to LSB and CY */
+ RLO_rolc, /* d <<= s, MSB to CY, CY, to LSB */
+ RLO_ror, /* d >>= s, LSB to MSB and CY */
+ RLO_rorc, /* d >>= s, LSB to CY, CY, to MSB */
+ RLO_sar, /* d >>= s, signed */
+ RLO_sel, /* rb = s */
+ RLO_shr, /* d >>= s, unsigned */
+ RLO_shl, /* d <<= s */
+ RLO_skip, /* skip next insn is cond(s) */
+ RLO_stop, /* STOP */
+ RLO_sub, /* d -= s */
+ RLO_subc, /* d -= s - CY */
+ RLO_xch, /* swap d, s */
+ RLO_xor, /* d ^= s */
+} RL78_Opcode_ID;
+
+typedef struct {
+ RL78_Operand_Type type;
+ int addend;
+ RL78_Register reg : 8;
+ RL78_Register reg2 : 8;
+ unsigned char bit_number : 4;
+ unsigned char condition : 3;
+ unsigned char use_es : 1;
+} RL78_Opcode_Operand;
+
+/* PSW flag bits */
+#define RL78_PSW_IE 0x80
+#define RL78_PSW_Z 0x40
+#define RL78_PSW_RBS1 0x20
+#define RL78_PSW_AC 0x10
+#define RL78_PSW_RBS0 0x08
+#define RL78_PSW_ISP1 0x04
+#define RL78_PSW_ISP0 0x02
+#define RL78_PSW_CY 0x01
+
+#define RL78_SFR_SP 0xffff8
+#define RL78_SFR_PSW 0xffffa
+#define RL78_SFR_CS 0xffffc
+#define RL78_SFR_ES 0xffffd
+#define RL78_SFR_PMC 0xffffe
+#define RL78_SFR_MEM 0xfffff
+
+typedef struct
+{
+ int lineno;
+ RL78_Opcode_ID id:24;
+ unsigned flags:8; /* PSW mask, for side effects only */
+ int n_bytes;
+ char * syntax;
+ RL78_Size size;
+ /* By convention, these are destination, source. */
+ RL78_Opcode_Operand op[2];
+} RL78_Opcode_Decoded;
+
+int rl78_decode_opcode (unsigned long, RL78_Opcode_Decoded *, int (*)(void *), void *);
+
+#endif
diff --git a/binutils-2.22/include/opcode/sparc.h b/binutils-2.22/include/opcode/sparc.h
index 7ae3641..b1c5e42 100644
--- a/binutils-2.22/include/opcode/sparc.h
+++ b/binutils-2.22/include/opcode/sparc.h
@@ -99,6 +99,7 @@ typedef struct sparc_opcode
const char *args;
/* This was called "delayed" in versions before the flags. */
unsigned int flags;
+ unsigned int hwcaps;
short architecture; /* Bitmask of sparc_opcode_arch_val's. */
} sparc_opcode;
@@ -110,25 +111,39 @@ typedef struct sparc_opcode
#define F_JSR 0x00000010 /* Subroutine call. */
#define F_FLOAT 0x00000020 /* Floating point instruction (not a branch). */
#define F_FBR 0x00000040 /* Floating point branch. */
-#define F_MUL32 0x00000100 /* umul/umulcc/smul/smulcc insns */
-#define F_DIV32 0x00000200 /* udiv/udivcc/sdiv/sdivcc insns */
-#define F_FSMULD 0x00000400 /* 'fsmuld' insn */
-#define F_V8PLUS 0x00000800 /* v9 insns available to 32bit */
-#define F_POPC 0x00001000 /* 'popc' insn */
-#define F_VIS 0x00002000 /* VIS insns */
-#define F_VIS2 0x00004000 /* VIS2 insns */
-#define F_ASI_BLK_INIT 0x00008000 /* block init ASIs */
-#define F_FMAF 0x00010000 /* fused multiply-add */
-#define F_VIS3 0x00020000 /* VIS3 insns */
-#define F_HPC 0x00040000 /* HPC insns */
-#define F_RANDOM 0x00080000 /* 'random' insn */
-#define F_TRANS 0x00100000 /* transaction insns */
-#define F_FJFMAU 0x00200000 /* unfused multiply-add */
-#define F_IMA 0x00400000 /* integer multiply-add */
-#define F_ASI_CACHE_SPARING \
- 0x00800000 /* cache sparing ASIs */
-
-#define F_HWCAP_MASK 0x00ffff00
+
+/* These must match the HWCAP_* values precisely. */
+#define HWCAP_MUL32 0x00000001 /* umul/umulcc/smul/smulcc insns */
+#define HWCAP_DIV32 0x00000002 /* udiv/udivcc/sdiv/sdivcc insns */
+#define HWCAP_FSMULD 0x00000004 /* 'fsmuld' insn */
+#define HWCAP_V8PLUS 0x00000008 /* v9 insns available to 32bit */
+#define HWCAP_POPC 0x00000010 /* 'popc' insn */
+#define HWCAP_VIS 0x00000020 /* VIS insns */
+#define HWCAP_VIS2 0x00000040 /* VIS2 insns */
+#define HWCAP_ASI_BLK_INIT \
+ 0x00000080 /* block init ASIs */
+#define HWCAP_FMAF 0x00000100 /* fused multiply-add */
+#define HWCAP_VIS3 0x00000400 /* VIS3 insns */
+#define HWCAP_HPC 0x00000800 /* HPC insns */
+#define HWCAP_RANDOM 0x00001000 /* 'random' insn */
+#define HWCAP_TRANS 0x00002000 /* transaction insns */
+#define HWCAP_FJFMAU 0x00004000 /* unfused multiply-add */
+#define HWCAP_IMA 0x00008000 /* integer multiply-add */
+#define HWCAP_ASI_CACHE_SPARING \
+ 0x00010000 /* cache sparing ASIs */
+#define HWCAP_AES 0x00020000 /* AES crypto insns */
+#define HWCAP_DES 0x00040000 /* DES crypto insns */
+#define HWCAP_KASUMI 0x00080000 /* KASUMI crypto insns */
+#define HWCAP_CAMELLIA 0x00100000 /* CAMELLIA crypto insns */
+#define HWCAP_MD5 0x00200000 /* MD5 hashing insns */
+#define HWCAP_SHA1 0x00400000 /* SHA1 hashing insns */
+#define HWCAP_SHA256 0x00800000 /* SHA256 hashing insns */
+#define HWCAP_SHA512 0x01000000 /* SHA512 hashing insns */
+#define HWCAP_MPMUL 0x02000000 /* Multiple Precision Multiply */
+#define HWCAP_MONT 0x04000000 /* Montgomery Mult/Sqrt */
+#define HWCAP_PAUSE 0x08000000 /* Pause insn */
+#define HWCAP_CBCOND 0x10000000 /* Compare and Branch insns */
+#define HWCAP_CRC32C 0x20000000 /* CRC32C insn */
/* All sparc opcodes are 32 bits, except for the `set' instruction (really a
macro), which is 64 bits. It is handled as a special case.
@@ -208,7 +223,9 @@ typedef struct sparc_opcode
0 32/64 bit immediate for set or setx (v9) insns
_ Ancillary state register in rd (v9a)
/ Ancillary state register in rs1 (v9a)
- ( entire floating point state register (%efsr). */
+ ( entire floating point state register (%efsr)
+ ) 5 bit immediate placed in RS3 field
+ = 2+8 bit PC relative immediate. (v9) */
#define OP2(x) (((x) & 0x7) << 22) /* Op2 field of format2 insns. */
#define OP3(x) (((x) & 0x3f) << 19) /* Op3 field of format3 insns. */
diff --git a/binutils-2.22/include/opcode/tilegx.h b/binutils-2.22/include/opcode/tilegx.h
index 95a9ca7..c11fc16 100644
--- a/binutils-2.22/include/opcode/tilegx.h
+++ b/binutils-2.22/include/opcode/tilegx.h
@@ -34,6 +34,8 @@ typedef enum
TILEGX_OPC_BPT,
TILEGX_OPC_INFO,
TILEGX_OPC_INFOL,
+ TILEGX_OPC_LD4S_TLS,
+ TILEGX_OPC_LD_TLS,
TILEGX_OPC_MOVE,
TILEGX_OPC_MOVEI,
TILEGX_OPC_MOVELI,
diff --git a/binutils-2.22/include/opcode/tilepro.h b/binutils-2.22/include/opcode/tilepro.h
index 91e2a2b..767926b 100644
--- a/binutils-2.22/include/opcode/tilepro.h
+++ b/binutils-2.22/include/opcode/tilepro.h
@@ -36,6 +36,8 @@ typedef enum
TILEPRO_OPC_INFOL,
TILEPRO_OPC_J,
TILEPRO_OPC_JAL,
+ TILEPRO_OPC_LW_TLS,
+ TILEPRO_OPC_LW_TLS_SN,
TILEPRO_OPC_MOVE,
TILEPRO_OPC_MOVE_SN,
TILEPRO_OPC_MOVEI,
diff --git a/binutils-2.22/include/opcode/xgate.h b/binutils-2.22/include/opcode/xgate.h
new file mode 100644
index 0000000..77a521f
--- /dev/null
+++ b/binutils-2.22/include/opcode/xgate.h
@@ -0,0 +1,120 @@
+/* xgate.h -- Freescale XGATE opcode list
+ Copyright 2010, 2011, 2012 Free Software Foundation, Inc.
+ Written by Sean Keys (skeys@ipdatasys.com)
+
+ This file is part of the GNU opcodes library.
+
+ This library is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ It is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this file; see the file COPYING. If not, write to the
+ Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _OPCODE_XGATE_H
+#define _OPCODE_XGATE_H
+
+/* XGATE CCR flag definitions. */
+#define XGATE_N_BIT 0x08 /* XGN - Sign Flag */
+#define XGATE_Z_BIT 0x04 /* XGZ - Zero Flag */
+#define XGATE_V_BIT 0x02 /* XGV - Overflow Flag */
+#define XGATE_C_BIT 0x01 /* XGC - Carry Flag */
+
+/* Access Detail Notation
+ V — Vector fetch: always an aligned word read, lasts for at least one RISC core cycle
+ P — Program word fetch: always an aligned word read, lasts for at least one RISC core cycle
+ r — 8-bit data read: lasts for at least one RISC core cycle
+ R — 16-bit data read: lasts for at least one RISC core cycle
+ w — 8-bit data write: lasts for at least one RISC core cycle
+ W — 16-bit data write: lasts for at least one RISC core cycle
+ A — Alignment cycle: no read or write, lasts for zero or one RISC core cycles
+ f — Free cycle: no read or write, lasts for one RISC core cycles. */
+#define XGATE_CYCLE_V 0x01
+#define XGATE_CYCLE_P 0x02
+#define XGATE_CYCLE_r 0x04
+#define XGATE_CYCLE_R 0x08
+#define XGATE_CYCLE_w 0x10
+#define XGATE_CYCLE_W 0x20
+#define XGATE_CYCLE_A 0x40
+#define XGATE_CYCLE_f 0x80
+
+/* Opcode format abbreviations. */
+#define XG_INH 0x0001 /* Inherent. */
+#define XG_I 0x0002 /* 3-bit immediate address. */
+#define XG_R_I 0x0004 /* Register followed by 4/8-bit immediate value. */
+#define XG_R_R 0x0008 /* Register followed by a register. */
+#define XG_R_R_R 0x0010 /* Register followed by two registers. */
+#define XG_R 0x0020 /* Single register. */
+#define XG_PC 0x0040 /* PC relative 10 or 11 bit. */
+#define XG_R_C 0x0080 /* General register followed by ccr register. */
+#define XG_C_R 0x0100 /* CCR register followed by a general register. */
+#define XG_R_P 0x0200 /* General register followed by pc register. */
+#define XG_R_R_I 0x0400 /* Two general registers followed by an immediate value. */
+#define XG_PCREL 0x0800 /* Immediate value that is relative to the current pc. */
+
+/* XGATE operand formats as stored in the XGATE_opcode table.
+ They are only used by GAS to recognize operands. */
+#define XGATE_OP_INH ""
+#define XGATE_OP_TRI "r,r,r"
+#define XGATE_OP_DYA "r,r"
+#define XGATE_OP_IMM16 "r,if"
+#define XGATE_OP_IMM8 "r,i8"
+#define XGATE_OP_IMM4 "r,i4"
+#define XGATE_OP_IMM3 "i3"
+#define XGATE_OP_MON "r"
+#define XGATE_OP_MON_R_C "r,c"
+#define XGATE_OP_MON_C_R "c,r"
+#define XGATE_OP_MON_R_P "r,p"
+#define XGATE_OP_IDR "r,r,+"
+#define XGATE_OP_IDO5 "r,r,i5"
+#define XGATE_OP_REL9 "b9"
+#define XGATE_OP_REL10 "ba"
+#define XGATE_OP_DYA_MON "=r"
+/* Macro definitions. */
+#define XGATE_OP_IMM16mADD "r,if; addl addh"
+#define XGATE_OP_IMM16mAND "r,if; andl andh"
+#define XGATE_OP_IMM16mCPC "r,if; cmpl cpch"
+#define XGATE_OP_IMM16mSUB "r,if; subl subh"
+#define XGATE_OP_IMM16mLDW "r,if; ldl ldh"
+
+/* CPU variant identification. */
+#define XGATE_V1 0x1
+#define XGATE_V2 0x2
+#define XGATE_V3 0x4
+
+/* Max opcodes per opcode handle. */
+#define MAX_OPCODES 0x05
+
+#define MAX_DETECT_CHARS 0x10
+
+/* The opcode table definitions. */
+struct xgate_opcode
+{
+ char * name; /* Op-code name. */
+ char * constraints; /* Constraint chars. */
+ char * format; /* Bit definitions. */
+ unsigned int sh_format; /* Shorthand format mask. */
+ unsigned int size; /* Opcode size in bytes. */
+ unsigned int bin_opcode; /* Binary opcode with operands masked off. */
+ unsigned char cycles_min; /* Minimum cpu cycles needed. */
+ unsigned char cycles_max; /* Maximum cpu cycles needed. */
+ unsigned char set_flags_mask; /* CCR flags set. */
+ unsigned char clr_flags_mask; /* CCR flags cleared. */
+ unsigned char chg_flags_mask; /* CCR flags changed. */
+ unsigned char arch; /* CPU variant. */
+};
+
+/* The opcode table. The table contains all the opcodes (all pages).
+ You can't rely on the order. */
+extern const struct xgate_opcode xgate_opcodes[];
+extern const int xgate_num_opcodes;
+
+#endif /* _OPCODE_XGATE_H */
diff --git a/binutils-2.22/include/plugin-api.h b/binutils-2.22/include/plugin-api.h
index 122424c..3220142 100644
--- a/binutils-2.22/include/plugin-api.h
+++ b/binutils-2.22/include/plugin-api.h
@@ -66,7 +66,8 @@ enum ld_plugin_output_file_type
{
LDPO_REL,
LDPO_EXEC,
- LDPO_DYN
+ LDPO_DYN,
+ LDPO_PIE
};
/* An input file managed by the plugin library. */
diff --git a/binutils-2.22/include/splay-tree.h b/binutils-2.22/include/splay-tree.h
index 480b2c4..a26135a 100644
--- a/binutils-2.22/include/splay-tree.h
+++ b/binutils-2.22/include/splay-tree.h
@@ -37,18 +37,11 @@ extern "C" {
#include "ansidecl.h"
-#ifndef _WIN64
- typedef unsigned long int libi_uhostptr_t;
- typedef long int libi_shostptr_t;
-#else
-#ifdef __GNUC__
- __extension__
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
#endif
- typedef unsigned long long libi_uhostptr_t;
-#ifdef __GNUC__
- __extension__
-#endif
- typedef long long libi_shostptr_t;
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
#endif
#ifndef GTY
@@ -59,8 +52,8 @@ extern "C" {
these types, if necessary. These types should be sufficiently wide
that any pointer or scalar can be cast to these types, and then
cast back, without loss of precision. */
-typedef libi_uhostptr_t splay_tree_key;
-typedef libi_uhostptr_t splay_tree_value;
+typedef uintptr_t splay_tree_key;
+typedef uintptr_t splay_tree_value;
/* Forward declaration for a node in the tree. */
typedef struct splay_tree_node_s *splay_tree_node;
diff --git a/binutils-2.22/include/timeval-utils.h b/binutils-2.22/include/timeval-utils.h
new file mode 100644
index 0000000..1caf9b3
--- /dev/null
+++ b/binutils-2.22/include/timeval-utils.h
@@ -0,0 +1,40 @@
+/* Basic struct timeval utilities.
+ Copyright (C) 2011 Free Software Foundation, Inc.
+
+This file is part of the libiberty library.
+Libiberty is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public
+License as published by the Free Software Foundation; either
+version 2 of the License, or (at your option) any later version.
+
+Libiberty is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with libiberty; see the file COPYING.LIB. If not,
+write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
+Boston, MA 02110-1301, USA. */
+
+#ifndef TIMEVAL_UTILS_H
+#define TIMEVAL_UTILS_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* forward decl */
+struct timeval;
+
+extern void timeval_add (struct timeval *result,
+ const struct timeval *a, const struct timeval *b);
+
+extern void timeval_sub (struct timeval *result,
+ const struct timeval *a, const struct timeval *b);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* TIMEVAL_UTILS_H */
diff --git a/binutils-2.22/include/vms/ChangeLog b/binutils-2.22/include/vms/ChangeLog
index 788d8d8..bb2dfeb 100644
--- a/binutils-2.22/include/vms/ChangeLog
+++ b/binutils-2.22/include/vms/ChangeLog
@@ -1,3 +1,7 @@
+2012-03-08 Tristan Gingold <gingold@adacore.com>
+
+ * lbr.h (struct vms_lhd): Add comments.
+
2010-05-27 Tristan Gingold <gingold@adacore.com>
* lbr.h: Improve comments.
diff --git a/binutils-2.22/include/vms/lbr.h b/binutils-2.22/include/vms/lbr.h
index bdb436a..fd3c256 100644
--- a/binutils-2.22/include/vms/lbr.h
+++ b/binutils-2.22/include/vms/lbr.h
@@ -87,7 +87,10 @@ struct vms_lhd
unsigned char nextvbn[4];
/* Free pre-allocated index block. */
+ /* Number of free blocks. */
unsigned char freidxblk[4];
+ /* VBN of a simply linked list of free blocks. The list is terminated by a
+ nul VBN. */
unsigned char freeidx[4];
/* Highest pre-allocated index block and in use. */