patches/binutils/2.18a/130-avr32-atmel-v1.0.1.patch
changeset 2664 346263a07115
parent 1371 802c132f1f71
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/patches/binutils/2.18a/130-avr32-atmel-v1.0.1.patch	Sun Sep 11 18:18:53 2011 +0200
     1.3 @@ -0,0 +1,52747 @@
     1.4 +--- a/bfd/archures.c
     1.5 ++++ b/bfd/archures.c
     1.6 +@@ -346,6 +346,11 @@ DESCRIPTION
     1.7 + .#define bfd_mach_avr4		4
     1.8 + .#define bfd_mach_avr5		5
     1.9 + .#define bfd_mach_avr6		6
    1.10 ++.  bfd_arch_avr32,     {* Atmel AVR32 *}
    1.11 ++.#define bfd_mach_avr32_ap	7000
    1.12 ++.#define bfd_mach_avr32_uc	3000
    1.13 ++.#define bfd_mach_avr32_ucr1    3001
    1.14 ++.#define bfd_mach_avr32_ucr2    3002
    1.15 + .  bfd_arch_bfin,        {* ADI Blackfin *}
    1.16 + .#define bfd_mach_bfin          1
    1.17 + .  bfd_arch_cr16,       {* National Semiconductor CompactRISC (ie CR16). *}
    1.18 +@@ -438,6 +443,7 @@ extern const bfd_arch_info_type bfd_alph
    1.19 + extern const bfd_arch_info_type bfd_arc_arch;
    1.20 + extern const bfd_arch_info_type bfd_arm_arch;
    1.21 + extern const bfd_arch_info_type bfd_avr_arch;
    1.22 ++extern const bfd_arch_info_type bfd_avr32_arch;
    1.23 + extern const bfd_arch_info_type bfd_bfin_arch;
    1.24 + extern const bfd_arch_info_type bfd_cr16_arch;
    1.25 + extern const bfd_arch_info_type bfd_cr16c_arch;
    1.26 +@@ -509,6 +515,7 @@ static const bfd_arch_info_type * const 
    1.27 +     &bfd_arc_arch,
    1.28 +     &bfd_arm_arch,
    1.29 +     &bfd_avr_arch,
    1.30 ++    &bfd_avr32_arch,
    1.31 +     &bfd_bfin_arch,
    1.32 +     &bfd_cr16_arch,
    1.33 +     &bfd_cr16c_arch,
    1.34 +--- a/bfd/config.bfd
    1.35 ++++ b/bfd/config.bfd
    1.36 +@@ -335,6 +335,10 @@ case "${targ}" in
    1.37 +     targ_underscore=yes
    1.38 +     ;;
    1.39 + 
    1.40 ++  avr32-*-*)
    1.41 ++    targ_defvec=bfd_elf32_avr32_vec
    1.42 ++    ;;
    1.43 ++
    1.44 +   c30-*-*aout* | tic30-*-*aout*)
    1.45 +     targ_defvec=tic30_aout_vec
    1.46 +     ;;
    1.47 +--- a/bfd/configure.in
    1.48 ++++ b/bfd/configure.in
    1.49 +@@ -8,7 +8,7 @@ AC_CONFIG_SRCDIR([libbfd.c])
    1.50 + AC_CANONICAL_TARGET
    1.51 + AC_ISC_POSIX
    1.52 + 
    1.53 +-AM_INIT_AUTOMAKE(bfd, 2.18)
    1.54 ++AM_INIT_AUTOMAKE(bfd, 2.18.atmel.1.0.1.avr32linux.1)
    1.55 + 
    1.56 + dnl These must be called before AM_PROG_LIBTOOL, because it may want
    1.57 + dnl to call AC_CHECK_PROG.
    1.58 +@@ -619,6 +619,7 @@ do
    1.59 +     bfd_efi_app_ia64_vec)	tb="$tb efi-app-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
    1.60 +     bfd_elf32_am33lin_vec)	tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
    1.61 +     bfd_elf32_avr_vec)		tb="$tb elf32-avr.lo elf32.lo $elf" ;;
    1.62 ++    bfd_elf32_avr32_vec)	tb="$tb elf32-avr32.lo elf32.lo $elf" ;;
    1.63 +     bfd_elf32_bfin_vec)		tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
    1.64 +     bfd_elf32_bfinfdpic_vec)	tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
    1.65 +     bfd_elf32_big_generic_vec) 	tb="$tb elf32-gen.lo elf32.lo $elf" ;;
    1.66 +--- /dev/null
    1.67 ++++ b/bfd/cpu-avr32.c
    1.68 +@@ -0,0 +1,51 @@
    1.69 ++/* BFD library support routines for AVR32.
    1.70 ++   Copyright 2003-2006 Atmel Corporation.
    1.71 ++
    1.72 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
    1.73 ++
    1.74 ++   This is part of BFD, the Binary File Descriptor library.
    1.75 ++
    1.76 ++   This program is free software; you can redistribute it and/or modify
    1.77 ++   it under the terms of the GNU General Public License as published by
    1.78 ++   the Free Software Foundation; either version 2 of the License, or
    1.79 ++   (at your option) any later version.
    1.80 ++
    1.81 ++   This program is distributed in the hope that it will be useful,
    1.82 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
    1.83 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1.84 ++   GNU General Public License for more details.
    1.85 ++
    1.86 ++   You should have received a copy of the GNU General Public License
    1.87 ++   along with this program; if not, write to the Free Software
    1.88 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    1.89 ++
    1.90 ++#include "bfd.h"
    1.91 ++#include "sysdep.h"
    1.92 ++#include "libbfd.h"
    1.93 ++
    1.94 ++#define N(machine, print, default, next)			\
    1.95 ++  {								\
    1.96 ++    32,				/* 32 bits in a word */		\
    1.97 ++    32,				/* 32 bits in an address */	\
    1.98 ++    8,				/* 8 bits in a byte */		\
    1.99 ++    bfd_arch_avr32,		/* architecture */		\
   1.100 ++    machine,			/* machine */			\
   1.101 ++    "avr32",			/* arch name */			\
   1.102 ++    print,			/* printable name */		\
   1.103 ++    1,				/* section align power */	\
   1.104 ++    default,			/* the default machine? */	\
   1.105 ++    bfd_default_compatible,					\
   1.106 ++    bfd_default_scan,						\
   1.107 ++    next,							\
   1.108 ++  }
   1.109 ++
   1.110 ++static const bfd_arch_info_type cpu_info[] =
   1.111 ++{
   1.112 ++  N(bfd_mach_avr32_ap, "avr32:ap", FALSE, &cpu_info[1]),
   1.113 ++  N(bfd_mach_avr32_uc, "avr32:uc", FALSE, &cpu_info[2]),
   1.114 ++  N(bfd_mach_avr32_ucr1, "avr32:ucr1", FALSE, &cpu_info[3]),
   1.115 ++  N(bfd_mach_avr32_ucr2, "avr32:ucr2", FALSE, NULL),
   1.116 ++};
   1.117 ++
   1.118 ++const bfd_arch_info_type bfd_avr32_arch =
   1.119 ++  N(bfd_mach_avr32_ap, "avr32", TRUE, &cpu_info[0]);
   1.120 +--- /dev/null
   1.121 ++++ b/bfd/elf32-avr32.c
   1.122 +@@ -0,0 +1,3915 @@
   1.123 ++/* AVR32-specific support for 32-bit ELF.
   1.124 ++   Copyright 2003-2006 Atmel Corporation.
   1.125 ++
   1.126 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
   1.127 ++
   1.128 ++   This file is part of BFD, the Binary File Descriptor library.
   1.129 ++
   1.130 ++   This program is free software; you can redistribute it and/or modify
   1.131 ++   it under the terms of the GNU General Public License as published by
   1.132 ++   the Free Software Foundation; either version 2 of the License, or
   1.133 ++   (at your option) any later version.
   1.134 ++
   1.135 ++   This program is distributed in the hope that it will be useful,
   1.136 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
   1.137 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   1.138 ++   GNU General Public License for more details.
   1.139 ++
   1.140 ++   You should have received a copy of the GNU General Public License
   1.141 ++   along with this program; if not, write to the Free Software
   1.142 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
   1.143 ++
   1.144 ++#include "bfd.h"
   1.145 ++#include "sysdep.h"
   1.146 ++#include "bfdlink.h"
   1.147 ++#include "libbfd.h"
   1.148 ++#include "elf-bfd.h"
   1.149 ++#include "elf/avr32.h"
   1.150 ++#include "elf32-avr32.h"
   1.151 ++
   1.152 ++#define xDEBUG
   1.153 ++#define xRELAX_DEBUG
   1.154 ++
   1.155 ++#ifdef DEBUG
   1.156 ++# define pr_debug(fmt, args...) fprintf(stderr, fmt, ##args)
   1.157 ++#else
   1.158 ++# define pr_debug(fmt, args...) do { } while (0)
   1.159 ++#endif
   1.160 ++
   1.161 ++#ifdef RELAX_DEBUG
   1.162 ++# define RDBG(fmt, args...) fprintf(stderr, fmt, ##args)
   1.163 ++#else
   1.164 ++# define RDBG(fmt, args...) do { } while (0)
   1.165 ++#endif
   1.166 ++
   1.167 ++/* When things go wrong, we want it to blow up, damnit! */
   1.168 ++#undef BFD_ASSERT
   1.169 ++#undef abort
   1.170 ++#define BFD_ASSERT(expr)					\
   1.171 ++  do								\
   1.172 ++    {								\
   1.173 ++      if (!(expr))						\
   1.174 ++	{							\
   1.175 ++	  bfd_assert(__FILE__, __LINE__);			\
   1.176 ++	  abort();						\
   1.177 ++	}							\
   1.178 ++    }								\
   1.179 ++  while (0)
   1.180 ++
   1.181 ++/* The name of the dynamic interpreter. This is put in the .interp section. */
   1.182 ++#define ELF_DYNAMIC_INTERPRETER		"/lib/ld.so.1"
   1.183 ++
   1.184 ++#define AVR32_GOT_HEADER_SIZE		8
   1.185 ++#define AVR32_FUNCTION_STUB_SIZE	8
   1.186 ++
   1.187 ++#define ELF_R_INFO(x, y) ELF32_R_INFO(x, y)
   1.188 ++#define ELF_R_TYPE(x) ELF32_R_TYPE(x)
   1.189 ++#define ELF_R_SYM(x) ELF32_R_SYM(x)
   1.190 ++
   1.191 ++#define NOP_OPCODE 0xd703
   1.192 ++
   1.193 ++
   1.194 ++/* Mapping between BFD relocations and ELF relocations */
   1.195 ++
   1.196 ++static reloc_howto_type *
   1.197 ++bfd_elf32_bfd_reloc_type_lookup(bfd *abfd, bfd_reloc_code_real_type code);
   1.198 ++
   1.199 ++static reloc_howto_type *
   1.200 ++bfd_elf32_bfd_reloc_name_lookup(bfd *abfd, const char *r_name);
   1.201 ++
   1.202 ++static void
   1.203 ++avr32_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst);
   1.204 ++
   1.205 ++/* Generic HOWTO */
   1.206 ++#define GENH(name, align, size, bitsize, pcrel, bitpos, complain, mask)	\
   1.207 ++  HOWTO(name, align, size, bitsize, pcrel, bitpos,			\
   1.208 ++	complain_overflow_##complain, bfd_elf_generic_reloc, #name,	\
   1.209 ++	FALSE, 0, mask, pcrel)
   1.210 ++
   1.211 ++static reloc_howto_type elf_avr32_howto_table[] = {
   1.212 ++  /*   NAME		 ALN SZ BSZ PCREL  BP COMPLAIN  MASK	    */
   1.213 ++  GENH(R_AVR32_NONE,	  0, 0, 0,  FALSE, 0, dont,	0x00000000),
   1.214 ++
   1.215 ++  GENH(R_AVR32_32,	  0, 2, 32, FALSE, 0, dont,	0xffffffff),
   1.216 ++  GENH(R_AVR32_16,	  0, 1, 16, FALSE, 0, bitfield,	0x0000ffff),
   1.217 ++  GENH(R_AVR32_8,	  0, 0,  8, FALSE, 0, bitfield,	0x000000ff),
   1.218 ++  GENH(R_AVR32_32_PCREL,  0, 2, 32, TRUE,  0, signed,   0xffffffff),
   1.219 ++  GENH(R_AVR32_16_PCREL,  0, 1, 16, TRUE,  0, signed,   0x0000ffff),
   1.220 ++  GENH(R_AVR32_8_PCREL,	  0, 0,  8, TRUE,  0, signed,   0x000000ff),
   1.221 ++
   1.222 ++  /* Difference between two symbol (sym2 - sym1).  The reloc encodes
   1.223 ++     the value of sym1.  The field contains the difference before any
   1.224 ++     relaxing is done.  */
   1.225 ++  GENH(R_AVR32_DIFF32,	  0, 2, 32, FALSE, 0, dont,	0xffffffff),
   1.226 ++  GENH(R_AVR32_DIFF16,	  0, 1, 16, FALSE, 0, signed,	0x0000ffff),
   1.227 ++  GENH(R_AVR32_DIFF8,	  0, 0,  8, FALSE, 0, signed,	0x000000ff),
   1.228 ++
   1.229 ++  GENH(R_AVR32_GOT32,	  0, 2, 32, FALSE, 0, signed,	0xffffffff),
   1.230 ++  GENH(R_AVR32_GOT16,	  0, 1, 16, FALSE, 0, signed,	0x0000ffff),
   1.231 ++  GENH(R_AVR32_GOT8,	  0, 0,  8, FALSE, 0, signed,	0x000000ff),
   1.232 ++
   1.233 ++  GENH(R_AVR32_21S,	  0, 2, 21, FALSE, 0, signed,	0x1e10ffff),
   1.234 ++  GENH(R_AVR32_16U,	  0, 2, 16, FALSE, 0, unsigned,	0x0000ffff),
   1.235 ++  GENH(R_AVR32_16S,	  0, 2, 16, FALSE, 0, signed,	0x0000ffff),
   1.236 ++  GENH(R_AVR32_8S,	  0, 1,  8, FALSE, 4, signed,	0x00000ff0),
   1.237 ++  GENH(R_AVR32_8S_EXT,	  0, 2,  8, FALSE, 0, signed,	0x000000ff),
   1.238 ++
   1.239 ++  GENH(R_AVR32_22H_PCREL, 1, 2, 21, TRUE,  0, signed,	0x1e10ffff),
   1.240 ++  GENH(R_AVR32_18W_PCREL, 2, 2, 16, TRUE,  0, signed,	0x0000ffff),
   1.241 ++  GENH(R_AVR32_16B_PCREL, 0, 2, 16, TRUE,  0, signed,	0x0000ffff),
   1.242 ++  GENH(R_AVR32_16N_PCREL, 0, 2, 16, TRUE,  0, signed,	0x0000ffff),
   1.243 ++  GENH(R_AVR32_14UW_PCREL, 2, 2, 12, TRUE, 0, unsigned, 0x0000f0ff),
   1.244 ++  GENH(R_AVR32_11H_PCREL, 1, 1, 10, TRUE,  4, signed,	0x00000ff3),
   1.245 ++  GENH(R_AVR32_10UW_PCREL, 2, 2, 8, TRUE,  0, unsigned, 0x000000ff),
   1.246 ++  GENH(R_AVR32_9H_PCREL,  1, 1,  8, TRUE,  4, signed,	0x00000ff0),
   1.247 ++  GENH(R_AVR32_9UW_PCREL, 2, 1,  7, TRUE,  4, unsigned,	0x000007f0),
   1.248 ++
   1.249 ++  GENH(R_AVR32_HI16,	 16, 2, 16, FALSE, 0, dont,	0x0000ffff),
   1.250 ++  GENH(R_AVR32_LO16,	  0, 2, 16, FALSE, 0, dont,	0x0000ffff),
   1.251 ++
   1.252 ++  GENH(R_AVR32_GOTPC,	  0, 2, 32, FALSE, 0, dont,	0xffffffff),
   1.253 ++  GENH(R_AVR32_GOTCALL,   2, 2, 21, FALSE, 0, signed,	0x1e10ffff),
   1.254 ++  GENH(R_AVR32_LDA_GOT,	  2, 2, 21, FALSE, 0, signed,	0x1e10ffff),
   1.255 ++  GENH(R_AVR32_GOT21S,	  0, 2, 21, FALSE, 0, signed,	0x1e10ffff),
   1.256 ++  GENH(R_AVR32_GOT18SW,	  2, 2, 16, FALSE, 0, signed,	0x0000ffff),
   1.257 ++  GENH(R_AVR32_GOT16S,	  0, 2, 16, FALSE, 0, signed,	0x0000ffff),
   1.258 ++  GENH(R_AVR32_GOT7UW,	  2, 1,  5, FALSE, 4, unsigned, 0x000001f0),
   1.259 ++
   1.260 ++  GENH(R_AVR32_32_CPENT,  0, 2, 32, FALSE, 0, dont,	0xffffffff),
   1.261 ++  GENH(R_AVR32_CPCALL,	  2, 2, 16, TRUE,  0, signed,	0x0000ffff),
   1.262 ++  GENH(R_AVR32_16_CP,	  0, 2, 16, TRUE,  0, signed,	0x0000ffff),
   1.263 ++  GENH(R_AVR32_9W_CP,	  2, 1,  7, TRUE,  4, unsigned, 0x000007f0),
   1.264 ++
   1.265 ++  GENH(R_AVR32_RELATIVE,  0, 2, 32, FALSE, 0, signed,	0xffffffff),
   1.266 ++  GENH(R_AVR32_GLOB_DAT,  0, 2, 32, FALSE, 0, dont,	0xffffffff),
   1.267 ++  GENH(R_AVR32_JMP_SLOT,  0, 2, 32, FALSE, 0, dont,	0xffffffff),
   1.268 ++
   1.269 ++  GENH(R_AVR32_ALIGN,	  0, 1, 0,  FALSE, 0, unsigned, 0x00000000),
   1.270 ++
   1.271 ++  GENH(R_AVR32_15S,	  2, 2, 15, FALSE, 0, signed,	0x00007fff),
   1.272 ++};
   1.273 ++
   1.274 ++struct elf_reloc_map
   1.275 ++{
   1.276 ++  bfd_reloc_code_real_type bfd_reloc_val;
   1.277 ++  unsigned char elf_reloc_val;
   1.278 ++};
   1.279 ++
   1.280 ++static const struct elf_reloc_map avr32_reloc_map[] =
   1.281 ++{
   1.282 ++  { BFD_RELOC_NONE,			R_AVR32_NONE },
   1.283 ++
   1.284 ++  { BFD_RELOC_32,			R_AVR32_32 },
   1.285 ++  { BFD_RELOC_16,			R_AVR32_16 },
   1.286 ++  { BFD_RELOC_8,			R_AVR32_8 },
   1.287 ++  { BFD_RELOC_32_PCREL,			R_AVR32_32_PCREL },
   1.288 ++  { BFD_RELOC_16_PCREL,			R_AVR32_16_PCREL },
   1.289 ++  { BFD_RELOC_8_PCREL,			R_AVR32_8_PCREL },
   1.290 ++  { BFD_RELOC_AVR32_DIFF32,		R_AVR32_DIFF32 },
   1.291 ++  { BFD_RELOC_AVR32_DIFF16,		R_AVR32_DIFF16 },
   1.292 ++  { BFD_RELOC_AVR32_DIFF8,		R_AVR32_DIFF8 },
   1.293 ++  { BFD_RELOC_AVR32_GOT32,		R_AVR32_GOT32 },
   1.294 ++  { BFD_RELOC_AVR32_GOT16,		R_AVR32_GOT16 },
   1.295 ++  { BFD_RELOC_AVR32_GOT8,		R_AVR32_GOT8 },
   1.296 ++
   1.297 ++  { BFD_RELOC_AVR32_21S,		R_AVR32_21S },
   1.298 ++  { BFD_RELOC_AVR32_16U,		R_AVR32_16U },
   1.299 ++  { BFD_RELOC_AVR32_16S,		R_AVR32_16S },
   1.300 ++  { BFD_RELOC_AVR32_SUB5,		R_AVR32_16S },
   1.301 ++  { BFD_RELOC_AVR32_8S_EXT,		R_AVR32_8S_EXT },
   1.302 ++  { BFD_RELOC_AVR32_8S,			R_AVR32_8S },
   1.303 ++
   1.304 ++  { BFD_RELOC_AVR32_22H_PCREL,		R_AVR32_22H_PCREL },
   1.305 ++  { BFD_RELOC_AVR32_18W_PCREL,		R_AVR32_18W_PCREL },
   1.306 ++  { BFD_RELOC_AVR32_16B_PCREL,		R_AVR32_16B_PCREL },
   1.307 ++  { BFD_RELOC_AVR32_16N_PCREL,		R_AVR32_16N_PCREL },
   1.308 ++  { BFD_RELOC_AVR32_11H_PCREL,		R_AVR32_11H_PCREL },
   1.309 ++  { BFD_RELOC_AVR32_10UW_PCREL,		R_AVR32_10UW_PCREL },
   1.310 ++  { BFD_RELOC_AVR32_9H_PCREL,		R_AVR32_9H_PCREL },
   1.311 ++  { BFD_RELOC_AVR32_9UW_PCREL,		R_AVR32_9UW_PCREL },
   1.312 ++
   1.313 ++  { BFD_RELOC_HI16,			R_AVR32_HI16 },
   1.314 ++  { BFD_RELOC_LO16,			R_AVR32_LO16 },
   1.315 ++
   1.316 ++  { BFD_RELOC_AVR32_GOTPC,		R_AVR32_GOTPC },
   1.317 ++  { BFD_RELOC_AVR32_GOTCALL,		R_AVR32_GOTCALL },
   1.318 ++  { BFD_RELOC_AVR32_LDA_GOT,		R_AVR32_LDA_GOT },
   1.319 ++  { BFD_RELOC_AVR32_GOT21S,		R_AVR32_GOT21S },
   1.320 ++  { BFD_RELOC_AVR32_GOT18SW,		R_AVR32_GOT18SW },
   1.321 ++  { BFD_RELOC_AVR32_GOT16S,		R_AVR32_GOT16S },
   1.322 ++  /* GOT7UW should never be generated by the assembler */
   1.323 ++
   1.324 ++  { BFD_RELOC_AVR32_32_CPENT,		R_AVR32_32_CPENT },
   1.325 ++  { BFD_RELOC_AVR32_CPCALL,		R_AVR32_CPCALL },
   1.326 ++  { BFD_RELOC_AVR32_16_CP,		R_AVR32_16_CP },
   1.327 ++  { BFD_RELOC_AVR32_9W_CP,		R_AVR32_9W_CP },
   1.328 ++
   1.329 ++  { BFD_RELOC_AVR32_ALIGN,		R_AVR32_ALIGN },
   1.330 ++
   1.331 ++  { BFD_RELOC_AVR32_15S,		R_AVR32_15S },
   1.332 ++};
   1.333 ++
   1.334 ++static reloc_howto_type *
   1.335 ++bfd_elf32_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
   1.336 ++				 bfd_reloc_code_real_type code)
   1.337 ++{
   1.338 ++  unsigned int i;
   1.339 ++
   1.340 ++  for (i = 0; i < sizeof(avr32_reloc_map) / sizeof(struct elf_reloc_map); i++)
   1.341 ++    {
   1.342 ++      if (avr32_reloc_map[i].bfd_reloc_val == code)
   1.343 ++	return &elf_avr32_howto_table[avr32_reloc_map[i].elf_reloc_val];
   1.344 ++    }
   1.345 ++
   1.346 ++  return NULL;
   1.347 ++}
   1.348 ++
   1.349 ++static reloc_howto_type *
   1.350 ++bfd_elf32_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
   1.351 ++                 const char *r_name)
   1.352 ++{
   1.353 ++  unsigned int i;
   1.354 ++
   1.355 ++  for (i = 0;
   1.356 ++       i < sizeof (elf_avr32_howto_table) / sizeof (elf_avr32_howto_table[0]);
   1.357 ++       i++)
   1.358 ++    if (elf_avr32_howto_table[i].name != NULL
   1.359 ++    && strcasecmp (elf_avr32_howto_table[i].name, r_name) == 0)
   1.360 ++      return &elf_avr32_howto_table[i];
   1.361 ++
   1.362 ++  return NULL;
   1.363 ++}
   1.364 ++
   1.365 ++/* Set the howto pointer for an AVR32 ELF reloc.  */
   1.366 ++static void
   1.367 ++avr32_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
   1.368 ++		     arelent *cache_ptr,
   1.369 ++		     Elf_Internal_Rela *dst)
   1.370 ++{
   1.371 ++  unsigned int r_type;
   1.372 ++
   1.373 ++  r_type = ELF32_R_TYPE (dst->r_info);
   1.374 ++  BFD_ASSERT (r_type < (unsigned int) R_AVR32_max);
   1.375 ++  cache_ptr->howto = &elf_avr32_howto_table[r_type];
   1.376 ++}
   1.377 ++
   1.378 ++
   1.379 ++/* AVR32 ELF linker hash table and associated hash entries. */
   1.380 ++
   1.381 ++static struct bfd_hash_entry *
   1.382 ++avr32_elf_link_hash_newfunc(struct bfd_hash_entry *entry,
   1.383 ++			    struct bfd_hash_table *table,
   1.384 ++			    const char *string);
   1.385 ++static void
   1.386 ++avr32_elf_copy_indirect_symbol(struct bfd_link_info *info,
   1.387 ++			       struct elf_link_hash_entry *dir,
   1.388 ++			       struct elf_link_hash_entry *ind);
   1.389 ++static struct bfd_link_hash_table *
   1.390 ++avr32_elf_link_hash_table_create(bfd *abfd);
   1.391 ++
   1.392 ++/*
   1.393 ++  Try to limit memory usage to something reasonable when sorting the
   1.394 ++  GOT.  If just a couple of entries end up getting more references
   1.395 ++  than this, it won't affect performance at all, but if there are many
   1.396 ++  of them, we could end up with the wrong symbols being assigned the
   1.397 ++  first GOT entries.
   1.398 ++*/
   1.399 ++#define MAX_NR_GOT_HOLES	2048
   1.400 ++
   1.401 ++/*
   1.402 ++  AVR32 GOT entry.  We need to keep track of refcounts and offsets
   1.403 ++  simultaneously, since we need the offsets during relaxation, and we
   1.404 ++  also want to be able to drop GOT entries during relaxation. In
   1.405 ++  addition to this, we want to keep the list of GOT entries sorted so
   1.406 ++  that we can keep the most-used entries at the lowest offsets.
   1.407 ++*/
   1.408 ++struct got_entry
   1.409 ++{
   1.410 ++  struct got_entry *next;
   1.411 ++  struct got_entry **pprev;
   1.412 ++  int refcount;
   1.413 ++  bfd_signed_vma offset;
   1.414 ++};
   1.415 ++
   1.416 ++struct elf_avr32_link_hash_entry
   1.417 ++{
   1.418 ++  struct elf_link_hash_entry root;
   1.419 ++
   1.420 ++  /* Number of runtime relocations against this symbol.  */
   1.421 ++  unsigned int possibly_dynamic_relocs;
   1.422 ++
   1.423 ++  /* If there are anything but R_AVR32_GOT18 relocations against this
   1.424 ++     symbol, it means that someone may be taking the address of the
   1.425 ++     function, and we should therefore not create a stub.  */
   1.426 ++  bfd_boolean no_fn_stub;
   1.427 ++
   1.428 ++  /* If there is a R_AVR32_32 relocation in a read-only section
   1.429 ++     against this symbol, we could be in trouble. If we're linking a
   1.430 ++     shared library or this symbol is defined in one, it means we must
   1.431 ++     emit a run-time reloc for it and that's not allowed in read-only
   1.432 ++     sections.  */
   1.433 ++  asection *readonly_reloc_sec;
   1.434 ++  bfd_vma readonly_reloc_offset;
   1.435 ++
   1.436 ++  /* Record which frag (if any) contains the symbol.  This is used
   1.437 ++     during relaxation in order to avoid having to update all symbols
   1.438 ++     whenever we move something.  For local symbols, this information
   1.439 ++     is in the local_sym_frag member of struct elf_obj_tdata.  */
   1.440 ++  struct fragment *sym_frag;
   1.441 ++};
   1.442 ++#define avr32_elf_hash_entry(ent) ((struct elf_avr32_link_hash_entry *)(ent))
   1.443 ++
   1.444 ++struct elf_avr32_link_hash_table
   1.445 ++{
   1.446 ++  struct elf_link_hash_table root;
   1.447 ++
   1.448 ++  /* Shortcuts to get to dynamic linker sections.  */
   1.449 ++  asection *sgot;
   1.450 ++  asection *srelgot;
   1.451 ++  asection *sstub;
   1.452 ++
   1.453 ++  /* We use a variation of Pigeonhole Sort to sort the GOT.  After the
   1.454 ++     initial refcounts have been determined, we initialize
   1.455 ++     nr_got_holes to the highest refcount ever seen and allocate an
   1.456 ++     array of nr_got_holes entries for got_hole.  Each GOT entry is
   1.457 ++     then stored in this array at the index given by its refcount.
   1.458 ++
   1.459 ++     When a GOT entry has its refcount decremented during relaxation,
   1.460 ++     it is moved to a lower index in the got_hole array.
   1.461 ++   */
   1.462 ++  struct got_entry **got_hole;
   1.463 ++  int nr_got_holes;
   1.464 ++
   1.465 ++  /* Dynamic relocations to local symbols.  Only used when linking a
   1.466 ++     shared library and -Bsymbolic is not given.  */
   1.467 ++  unsigned int local_dynamic_relocs;
   1.468 ++
   1.469 ++  bfd_boolean relocations_analyzed;
   1.470 ++  bfd_boolean symbols_adjusted;
   1.471 ++  bfd_boolean repeat_pass;
   1.472 ++  bfd_boolean direct_data_refs;
   1.473 ++  unsigned int relax_iteration;
   1.474 ++  unsigned int relax_pass;
   1.475 ++};
   1.476 ++#define avr32_elf_hash_table(p)				\
   1.477 ++  ((struct elf_avr32_link_hash_table *)((p)->hash))
   1.478 ++
   1.479 ++static struct bfd_hash_entry *
   1.480 ++avr32_elf_link_hash_newfunc(struct bfd_hash_entry *entry,
   1.481 ++			    struct bfd_hash_table *table,
   1.482 ++			    const char *string)
   1.483 ++{
   1.484 ++  struct elf_avr32_link_hash_entry *ret = avr32_elf_hash_entry(entry);
   1.485 ++
   1.486 ++  /* Allocate the structure if it hasn't already been allocated by a
   1.487 ++     subclass */
   1.488 ++  if (ret == NULL)
   1.489 ++    ret = (struct elf_avr32_link_hash_entry *)
   1.490 ++      bfd_hash_allocate(table, sizeof(struct elf_avr32_link_hash_entry));
   1.491 ++
   1.492 ++  if (ret == NULL)
   1.493 ++    return NULL;
   1.494 ++
   1.495 ++  memset(ret, 0, sizeof(struct elf_avr32_link_hash_entry));
   1.496 ++
   1.497 ++  /* Give the superclass a chance */
   1.498 ++  ret = (struct elf_avr32_link_hash_entry *)
   1.499 ++    _bfd_elf_link_hash_newfunc((struct bfd_hash_entry *)ret, table, string);
   1.500 ++
   1.501 ++  return (struct bfd_hash_entry *)ret;
   1.502 ++}
   1.503 ++
   1.504 ++/* Copy data from an indirect symbol to its direct symbol, hiding the
   1.505 ++   old indirect symbol.  Process additional relocation information.
   1.506 ++   Also called for weakdefs, in which case we just let
   1.507 ++   _bfd_elf_link_hash_copy_indirect copy the flags for us.  */
   1.508 ++
   1.509 ++static void
   1.510 ++avr32_elf_copy_indirect_symbol(struct bfd_link_info *info,
   1.511 ++			       struct elf_link_hash_entry *dir,
   1.512 ++			       struct elf_link_hash_entry *ind)
   1.513 ++{
   1.514 ++  struct elf_avr32_link_hash_entry *edir, *eind;
   1.515 ++
   1.516 ++  _bfd_elf_link_hash_copy_indirect (info, dir, ind);
   1.517 ++
   1.518 ++  if (ind->root.type != bfd_link_hash_indirect)
   1.519 ++    return;
   1.520 ++
   1.521 ++  edir = (struct elf_avr32_link_hash_entry *)dir;
   1.522 ++  eind = (struct elf_avr32_link_hash_entry *)ind;
   1.523 ++
   1.524 ++  edir->possibly_dynamic_relocs += eind->possibly_dynamic_relocs;
   1.525 ++  edir->no_fn_stub = edir->no_fn_stub || eind->no_fn_stub;
   1.526 ++}
   1.527 ++
   1.528 ++static struct bfd_link_hash_table *
   1.529 ++avr32_elf_link_hash_table_create(bfd *abfd)
   1.530 ++{
   1.531 ++  struct elf_avr32_link_hash_table *ret;
   1.532 ++
   1.533 ++  ret = bfd_zmalloc(sizeof(*ret));
   1.534 ++  if (ret == NULL)
   1.535 ++    return NULL;
   1.536 ++
   1.537 ++  if (! _bfd_elf_link_hash_table_init(&ret->root, abfd,
   1.538 ++				      avr32_elf_link_hash_newfunc,
   1.539 ++                      sizeof (struct elf_avr32_link_hash_entry)))
   1.540 ++    {
   1.541 ++      free(ret);
   1.542 ++      return NULL;
   1.543 ++    }
   1.544 ++
   1.545 ++  /* Prevent the BFD core from creating bogus got_entry pointers */
   1.546 ++  ret->root.init_got_refcount.glist = NULL;
   1.547 ++  ret->root.init_plt_refcount.glist = NULL;
   1.548 ++  ret->root.init_got_offset.glist = NULL;
   1.549 ++  ret->root.init_plt_offset.glist = NULL;
   1.550 ++
   1.551 ++  return &ret->root.root;
   1.552 ++}
   1.553 ++
   1.554 ++
   1.555 ++/* Initial analysis and creation of dynamic sections and symbols */
   1.556 ++
   1.557 ++static asection *
   1.558 ++create_dynamic_section(bfd *dynobj, const char *name, flagword flags,
   1.559 ++		       unsigned int align_power);
   1.560 ++static struct elf_link_hash_entry *
   1.561 ++create_dynamic_symbol(bfd *dynobj, struct bfd_link_info *info,
   1.562 ++		      const char *name, asection *sec,
   1.563 ++		      bfd_vma offset);
   1.564 ++static bfd_boolean
   1.565 ++avr32_elf_create_got_section (bfd *dynobj, struct bfd_link_info *info);
   1.566 ++static bfd_boolean
   1.567 ++avr32_elf_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info);
   1.568 ++static bfd_boolean
   1.569 ++avr32_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec,
   1.570 ++		    const Elf_Internal_Rela *relocs);
   1.571 ++static bfd_boolean
   1.572 ++avr32_elf_adjust_dynamic_symbol(struct bfd_link_info *info,
   1.573 ++				struct elf_link_hash_entry *h);
   1.574 ++
   1.575 ++static asection *
   1.576 ++create_dynamic_section(bfd *dynobj, const char *name, flagword flags,
   1.577 ++		       unsigned int align_power)
   1.578 ++{
   1.579 ++  asection *sec;
   1.580 ++
   1.581 ++  sec = bfd_make_section(dynobj, name);
   1.582 ++  if (!sec
   1.583 ++      || !bfd_set_section_flags(dynobj, sec, flags)
   1.584 ++      || !bfd_set_section_alignment(dynobj, sec, align_power))
   1.585 ++    return NULL;
   1.586 ++
   1.587 ++  return sec;
   1.588 ++}
   1.589 ++
   1.590 ++static struct elf_link_hash_entry *
   1.591 ++create_dynamic_symbol(bfd *dynobj, struct bfd_link_info *info,
   1.592 ++		      const char *name, asection *sec,
   1.593 ++		      bfd_vma offset)
   1.594 ++{
   1.595 ++  struct bfd_link_hash_entry *bh = NULL;
   1.596 ++  struct elf_link_hash_entry *h;
   1.597 ++  const struct elf_backend_data *bed = get_elf_backend_data (dynobj);
   1.598 ++
   1.599 ++  if (!(_bfd_generic_link_add_one_symbol
   1.600 ++	(info, dynobj, name, BSF_GLOBAL, sec, offset, NULL, FALSE,
   1.601 ++	 bed->collect, &bh)))
   1.602 ++    return NULL;
   1.603 ++
   1.604 ++  h = (struct elf_link_hash_entry *)bh;
   1.605 ++  h->def_regular = 1;
   1.606 ++  h->type = STT_OBJECT;
   1.607 ++  h->other = STV_HIDDEN;
   1.608 ++
   1.609 ++  return h;
   1.610 ++}
   1.611 ++
   1.612 ++static bfd_boolean
   1.613 ++avr32_elf_create_got_section (bfd *dynobj, struct bfd_link_info *info)
   1.614 ++{
   1.615 ++  struct elf_avr32_link_hash_table *htab;
   1.616 ++  flagword flags;
   1.617 ++  const struct elf_backend_data *bed = get_elf_backend_data (dynobj);
   1.618 ++
   1.619 ++  htab = avr32_elf_hash_table(info);
   1.620 ++  flags = bed->dynamic_sec_flags;
   1.621 ++
   1.622 ++  if (htab->sgot)
   1.623 ++    return TRUE;
   1.624 ++
   1.625 ++  htab->sgot = create_dynamic_section(dynobj, ".got", flags, 2);
   1.626 ++  if (!htab->srelgot)
   1.627 ++    htab->srelgot = create_dynamic_section(dynobj, ".rela.got",
   1.628 ++					   flags | SEC_READONLY, 2);
   1.629 ++
   1.630 ++  if (!htab->sgot || !htab->srelgot)
   1.631 ++    return FALSE;
   1.632 ++
   1.633 ++  htab->root.hgot = create_dynamic_symbol(dynobj, info, "_GLOBAL_OFFSET_TABLE_",
   1.634 ++					  htab->sgot, 0);
   1.635 ++  if (!htab->root.hgot)
   1.636 ++    return FALSE;
   1.637 ++
   1.638 ++  /* Make room for the GOT header */
   1.639 ++  htab->sgot->size += bed->got_header_size;
   1.640 ++
   1.641 ++  return TRUE;
   1.642 ++}
   1.643 ++
   1.644 ++/* (1) Create all dynamic (i.e. linker generated) sections that we may
   1.645 ++   need during the link */
   1.646 ++
   1.647 ++static bfd_boolean
   1.648 ++avr32_elf_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info)
   1.649 ++{
   1.650 ++  struct elf_avr32_link_hash_table *htab;
   1.651 ++  flagword flags;
   1.652 ++  const struct elf_backend_data *bed = get_elf_backend_data (dynobj);
   1.653 ++
   1.654 ++  pr_debug("(1) create dynamic sections\n");
   1.655 ++
   1.656 ++  htab = avr32_elf_hash_table(info);
   1.657 ++  flags = bed->dynamic_sec_flags;
   1.658 ++
   1.659 ++  if (!avr32_elf_create_got_section (dynobj, info))
   1.660 ++    return FALSE;
   1.661 ++
   1.662 ++  if (!htab->sstub)
   1.663 ++    htab->sstub = create_dynamic_section(dynobj, ".stub",
   1.664 ++					 flags | SEC_READONLY | SEC_CODE, 2);
   1.665 ++
   1.666 ++  if (!htab->sstub)
   1.667 ++    return FALSE;
   1.668 ++
   1.669 ++  return TRUE;
   1.670 ++}
   1.671 ++
   1.672 ++/* (2) Go through all the relocs and count any potential GOT- or
   1.673 ++   PLT-references to each symbol */
   1.674 ++
   1.675 ++static bfd_boolean
   1.676 ++avr32_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec,
   1.677 ++		    const Elf_Internal_Rela *relocs)
   1.678 ++{
   1.679 ++  Elf_Internal_Shdr *symtab_hdr;
   1.680 ++  struct elf_avr32_link_hash_table *htab;
   1.681 ++  struct elf_link_hash_entry **sym_hashes;
   1.682 ++  const Elf_Internal_Rela *rel, *rel_end;
   1.683 ++  struct got_entry **local_got_ents;
   1.684 ++  struct got_entry *got;
   1.685 ++  const struct elf_backend_data *bed = get_elf_backend_data (abfd);
   1.686 ++  asection *sgot;
   1.687 ++  bfd *dynobj;
   1.688 ++
   1.689 ++  pr_debug("(2) check relocs for %s:<%s> (size 0x%lx)\n",
   1.690 ++	   abfd->filename, sec->name, sec->size);
   1.691 ++
   1.692 ++  if (info->relocatable)
   1.693 ++    return TRUE;
   1.694 ++
   1.695 ++  dynobj = elf_hash_table(info)->dynobj;
   1.696 ++  symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
   1.697 ++  sym_hashes = elf_sym_hashes(abfd);
   1.698 ++  htab = avr32_elf_hash_table(info);
   1.699 ++  local_got_ents = elf_local_got_ents(abfd);
   1.700 ++  sgot = htab->sgot;
   1.701 ++
   1.702 ++  rel_end = relocs + sec->reloc_count;
   1.703 ++  for (rel = relocs; rel < rel_end; rel++)
   1.704 ++    {
   1.705 ++      unsigned long r_symndx, r_type;
   1.706 ++      struct elf_avr32_link_hash_entry *h;
   1.707 ++
   1.708 ++      r_symndx = ELF32_R_SYM(rel->r_info);
   1.709 ++      r_type = ELF32_R_TYPE(rel->r_info);
   1.710 ++
   1.711 ++      /* Local symbols use local_got_ents, while others store the same
   1.712 ++	 information in the hash entry */
   1.713 ++      if (r_symndx < symtab_hdr->sh_info)
   1.714 ++	{
   1.715 ++	  pr_debug("  (2a) processing local symbol %lu\n", r_symndx);
   1.716 ++	  h = NULL;
   1.717 ++	}
   1.718 ++      else
   1.719 ++	{
   1.720 ++	  h = (struct elf_avr32_link_hash_entry *)
   1.721 ++	    sym_hashes[r_symndx - symtab_hdr->sh_info];
   1.722 ++	  while (h->root.type == bfd_link_hash_indirect
   1.723 ++		 || h->root.type == bfd_link_hash_warning)
   1.724 ++	    h = (struct elf_avr32_link_hash_entry *)h->root.root.u.i.link;
   1.725 ++	  pr_debug("  (2a) processing symbol %s\n", h->root.root.root.string);
   1.726 ++	}
   1.727 ++
   1.728 ++      /* Some relocs require special sections to be created.  */
   1.729 ++      switch (r_type)
   1.730 ++	{
   1.731 ++	case R_AVR32_GOT32:
   1.732 ++	case R_AVR32_GOT16:
   1.733 ++	case R_AVR32_GOT8:
   1.734 ++	case R_AVR32_GOT21S:
   1.735 ++	case R_AVR32_GOT18SW:
   1.736 ++	case R_AVR32_GOT16S:
   1.737 ++	case R_AVR32_GOT7UW:
   1.738 ++	case R_AVR32_LDA_GOT:
   1.739 ++	case R_AVR32_GOTCALL:
   1.740 ++	  if (rel->r_addend)
   1.741 ++	    {
   1.742 ++	      if (info->callbacks->reloc_dangerous
   1.743 ++		  (info, _("Non-zero addend on GOT-relative relocation"),
   1.744 ++		   abfd, sec, rel->r_offset) == FALSE)
   1.745 ++		return FALSE;
   1.746 ++	    }
   1.747 ++	  /* fall through */
   1.748 ++	case R_AVR32_GOTPC:
   1.749 ++	  if (dynobj == NULL)
   1.750 ++	    elf_hash_table(info)->dynobj = dynobj = abfd;
   1.751 ++	  if (sgot == NULL && !avr32_elf_create_got_section(dynobj, info))
   1.752 ++	    return FALSE;
   1.753 ++	  break;
   1.754 ++	case R_AVR32_32:
   1.755 ++	  /* We may need to create .rela.dyn later on.  */
   1.756 ++	  if (dynobj == NULL
   1.757 ++	      && (info->shared || h != NULL)
   1.758 ++	      && (sec->flags & SEC_ALLOC))
   1.759 ++	    elf_hash_table(info)->dynobj = dynobj = abfd;
   1.760 ++	  break;
   1.761 ++	}
   1.762 ++
   1.763 ++      if (h != NULL && r_type != R_AVR32_GOT18SW)
   1.764 ++	h->no_fn_stub = TRUE;
   1.765 ++
   1.766 ++      switch (r_type)
   1.767 ++	{
   1.768 ++	case R_AVR32_GOT32:
   1.769 ++	case R_AVR32_GOT16:
   1.770 ++	case R_AVR32_GOT8:
   1.771 ++	case R_AVR32_GOT21S:
   1.772 ++	case R_AVR32_GOT18SW:
   1.773 ++	case R_AVR32_GOT16S:
   1.774 ++	case R_AVR32_GOT7UW:
   1.775 ++	case R_AVR32_LDA_GOT:
   1.776 ++	case R_AVR32_GOTCALL:
   1.777 ++	  if (h != NULL)
   1.778 ++	    {
   1.779 ++	      got = h->root.got.glist;
   1.780 ++	      if (!got)
   1.781 ++		{
   1.782 ++		  got = bfd_zalloc(abfd, sizeof(struct got_entry));
   1.783 ++		  if (!got)
   1.784 ++		    return FALSE;
   1.785 ++		  h->root.got.glist = got;
   1.786 ++		}
   1.787 ++	    }
   1.788 ++	  else
   1.789 ++	    {
   1.790 ++	      if (!local_got_ents)
   1.791 ++		{
   1.792 ++		  bfd_size_type size;
   1.793 ++		  bfd_size_type i;
   1.794 ++		  struct got_entry *tmp_entry;
   1.795 ++
   1.796 ++		  size = symtab_hdr->sh_info;
   1.797 ++		  size *= sizeof(struct got_entry *) + sizeof(struct got_entry);
   1.798 ++		  local_got_ents = bfd_zalloc(abfd, size);
   1.799 ++		  if (!local_got_ents)
   1.800 ++		    return FALSE;
   1.801 ++
   1.802 ++		  elf_local_got_ents(abfd) = local_got_ents;
   1.803 ++
   1.804 ++		  tmp_entry = (struct got_entry *)(local_got_ents
   1.805 ++						   + symtab_hdr->sh_info);
   1.806 ++		  for (i = 0; i < symtab_hdr->sh_info; i++)
   1.807 ++		    local_got_ents[i] = &tmp_entry[i];
   1.808 ++		}
   1.809 ++
   1.810 ++	      got = local_got_ents[r_symndx];
   1.811 ++	    }
   1.812 ++
   1.813 ++	  got->refcount++;
   1.814 ++	  if (got->refcount > htab->nr_got_holes)
   1.815 ++	    htab->nr_got_holes = got->refcount;
   1.816 ++	  break;
   1.817 ++
   1.818 ++	case R_AVR32_32:
   1.819 ++	  if ((info->shared || h != NULL)
   1.820 ++	      && (sec->flags & SEC_ALLOC))
   1.821 ++	    {
   1.822 ++	      if (htab->srelgot == NULL)
   1.823 ++		{
   1.824 ++		  htab->srelgot = create_dynamic_section(dynobj, ".rela.got",
   1.825 ++							 bed->dynamic_sec_flags
   1.826 ++							 | SEC_READONLY, 2);
   1.827 ++		  if (htab->srelgot == NULL)
   1.828 ++		    return FALSE;
   1.829 ++		}
   1.830 ++
   1.831 ++	      if (sec->flags & SEC_READONLY
   1.832 ++		  && !h->readonly_reloc_sec)
   1.833 ++		{
   1.834 ++		  h->readonly_reloc_sec = sec;
   1.835 ++		  h->readonly_reloc_offset = rel->r_offset;
   1.836 ++		}
   1.837 ++
   1.838 ++	      if (h != NULL)
   1.839 ++		{
   1.840 ++		  pr_debug("Non-GOT reference to symbol %s\n",
   1.841 ++			   h->root.root.root.string);
   1.842 ++		  h->possibly_dynamic_relocs++;
   1.843 ++		}
   1.844 ++	      else
   1.845 ++		{
   1.846 ++		  pr_debug("Non-GOT reference to local symbol %lu\n",
   1.847 ++			   r_symndx);
   1.848 ++		  htab->local_dynamic_relocs++;
   1.849 ++		}
   1.850 ++	    }
   1.851 ++
   1.852 ++	  break;
   1.853 ++
   1.854 ++	  /* TODO: GNU_VTINHERIT and GNU_VTENTRY */
   1.855 ++	}
   1.856 ++    }
   1.857 ++
   1.858 ++  return TRUE;
   1.859 ++}
   1.860 ++
   1.861 ++/* (3) Adjust a symbol defined by a dynamic object and referenced by a
   1.862 ++   regular object.  The current definition is in some section of the
   1.863 ++   dynamic object, but we're not including those sections.  We have to
   1.864 ++   change the definition to something the rest of the link can
   1.865 ++   understand.  */
   1.866 ++
   1.867 ++static bfd_boolean
   1.868 ++avr32_elf_adjust_dynamic_symbol(struct bfd_link_info *info,
   1.869 ++				struct elf_link_hash_entry *h)
   1.870 ++{
   1.871 ++  struct elf_avr32_link_hash_table *htab;
   1.872 ++  struct elf_avr32_link_hash_entry *havr;
   1.873 ++  bfd *dynobj;
   1.874 ++
   1.875 ++  pr_debug("(3) adjust dynamic symbol %s\n", h->root.root.string);
   1.876 ++
   1.877 ++  htab = avr32_elf_hash_table(info);
   1.878 ++  havr = (struct elf_avr32_link_hash_entry *)h;
   1.879 ++  dynobj = elf_hash_table(info)->dynobj;
   1.880 ++
   1.881 ++  /* Make sure we know what is going on here.  */
   1.882 ++  BFD_ASSERT (dynobj != NULL
   1.883 ++	      && (h->u.weakdef != NULL
   1.884 ++		  || (h->def_dynamic
   1.885 ++		      && h->ref_regular
   1.886 ++		      && !h->def_regular)));
   1.887 ++
   1.888 ++  /* We don't want dynamic relocations in read-only sections. */
   1.889 ++  if (havr->readonly_reloc_sec)
   1.890 ++    {
   1.891 ++      if (info->callbacks->reloc_dangerous
   1.892 ++	  (info, _("dynamic relocation in read-only section"),
   1.893 ++	   havr->readonly_reloc_sec->owner, havr->readonly_reloc_sec,
   1.894 ++	   havr->readonly_reloc_offset) == FALSE)
   1.895 ++	return FALSE;
   1.896 ++    }
   1.897 ++
   1.898 ++  /* If this is a function, create a stub if possible and set the
   1.899 ++     symbol to the stub location.  */
   1.900 ++  if (0 && !havr->no_fn_stub)
   1.901 ++    {
   1.902 ++      if (!h->def_regular)
   1.903 ++	{
   1.904 ++	  asection *s = htab->sstub;
   1.905 ++
   1.906 ++	  BFD_ASSERT(s != NULL);
   1.907 ++
   1.908 ++	  h->root.u.def.section = s;
   1.909 ++	  h->root.u.def.value = s->size;
   1.910 ++	  h->plt.offset = s->size;
   1.911 ++	  s->size += AVR32_FUNCTION_STUB_SIZE;
   1.912 ++
   1.913 ++	  return TRUE;
   1.914 ++	}
   1.915 ++    }
   1.916 ++  else if (h->type == STT_FUNC)
   1.917 ++    {
   1.918 ++      /* This will set the entry for this symbol in the GOT to 0, and
   1.919 ++	 the dynamic linker will take care of this. */
   1.920 ++      h->root.u.def.value = 0;
   1.921 ++      return TRUE;
   1.922 ++    }
   1.923 ++
   1.924 ++  /* If this is a weak symbol, and there is a real definition, the
   1.925 ++     processor independent code will have arranged for us to see the
   1.926 ++     real definition first, and we can just use the same value.  */
   1.927 ++  if (h->u.weakdef != NULL)
   1.928 ++    {
   1.929 ++      BFD_ASSERT(h->u.weakdef->root.type == bfd_link_hash_defined
   1.930 ++		 || h->u.weakdef->root.type == bfd_link_hash_defweak);
   1.931 ++      h->root.u.def.section = h->u.weakdef->root.u.def.section;
   1.932 ++      h->root.u.def.value = h->u.weakdef->root.u.def.value;
   1.933 ++      return TRUE;
   1.934 ++    }
   1.935 ++
   1.936 ++  /* This is a reference to a symbol defined by a dynamic object which
   1.937 ++     is not a function.  */
   1.938 ++
   1.939 ++  return TRUE;
   1.940 ++}
   1.941 ++
   1.942 ++
   1.943 ++/* Garbage-collection of unused sections */
   1.944 ++
   1.945 ++static asection *
   1.946 ++avr32_elf_gc_mark_hook(asection *sec,
   1.947 ++		       struct bfd_link_info *info ATTRIBUTE_UNUSED,
   1.948 ++		       Elf_Internal_Rela *rel,
   1.949 ++		       struct elf_link_hash_entry *h,
   1.950 ++		       Elf_Internal_Sym *sym)
   1.951 ++{
   1.952 ++  if (h)
   1.953 ++    {
   1.954 ++      switch (ELF32_R_TYPE(rel->r_info))
   1.955 ++	{
   1.956 ++	  /* TODO: VTINHERIT/VTENTRY */
   1.957 ++	default:
   1.958 ++	  switch (h->root.type)
   1.959 ++	    {
   1.960 ++	    case bfd_link_hash_defined:
   1.961 ++	    case bfd_link_hash_defweak:
   1.962 ++	      return h->root.u.def.section;
   1.963 ++
   1.964 ++	    case bfd_link_hash_common:
   1.965 ++	      return h->root.u.c.p->section;
   1.966 ++
   1.967 ++	    default:
   1.968 ++	      break;
   1.969 ++	    }
   1.970 ++	}
   1.971 ++    }
   1.972 ++  else
   1.973 ++    return bfd_section_from_elf_index(sec->owner, sym->st_shndx);
   1.974 ++
   1.975 ++  return NULL;
   1.976 ++}
   1.977 ++
   1.978 ++/* Update the GOT entry reference counts for the section being removed. */
   1.979 ++static bfd_boolean
   1.980 ++avr32_elf_gc_sweep_hook(bfd *abfd,
   1.981 ++			struct bfd_link_info *info ATTRIBUTE_UNUSED,
   1.982 ++			asection *sec,
   1.983 ++			const Elf_Internal_Rela *relocs)
   1.984 ++{
   1.985 ++  Elf_Internal_Shdr *symtab_hdr;
   1.986 ++  struct elf_avr32_link_hash_entry **sym_hashes;
   1.987 ++  struct got_entry **local_got_ents;
   1.988 ++  const Elf_Internal_Rela *rel, *relend;
   1.989 ++
   1.990 ++  if (!(sec->flags & SEC_ALLOC))
   1.991 ++    return TRUE;
   1.992 ++
   1.993 ++  symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
   1.994 ++  sym_hashes = (struct elf_avr32_link_hash_entry **)elf_sym_hashes(abfd);
   1.995 ++  local_got_ents = elf_local_got_ents(abfd);
   1.996 ++
   1.997 ++  relend = relocs + sec->reloc_count;
   1.998 ++  for (rel = relocs; rel < relend; rel++)
   1.999 ++    {
  1.1000 ++      unsigned long r_symndx;
  1.1001 ++      unsigned int r_type;
  1.1002 ++      struct elf_avr32_link_hash_entry *h = NULL;
  1.1003 ++
  1.1004 ++      r_symndx = ELF32_R_SYM(rel->r_info);
  1.1005 ++      if (r_symndx >= symtab_hdr->sh_info)
  1.1006 ++	{
  1.1007 ++	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
  1.1008 ++	  while (h->root.root.type == bfd_link_hash_indirect
  1.1009 ++		 || h->root.root.type == bfd_link_hash_warning)
  1.1010 ++	    h = (struct elf_avr32_link_hash_entry *)h->root.root.u.i.link;
  1.1011 ++	}
  1.1012 ++
  1.1013 ++      r_type = ELF32_R_TYPE(rel->r_info);
  1.1014 ++
  1.1015 ++      switch (r_type)
  1.1016 ++	{
  1.1017 ++	case R_AVR32_GOT32:
  1.1018 ++	case R_AVR32_GOT16:
  1.1019 ++	case R_AVR32_GOT8:
  1.1020 ++	case R_AVR32_GOT21S:
  1.1021 ++	case R_AVR32_GOT18SW:
  1.1022 ++	case R_AVR32_GOT16S:
  1.1023 ++	case R_AVR32_GOT7UW:
  1.1024 ++	case R_AVR32_LDA_GOT:
  1.1025 ++	case R_AVR32_GOTCALL:
  1.1026 ++	  if (h)
  1.1027 ++	    h->root.got.glist->refcount--;
  1.1028 ++	  else
  1.1029 ++	    local_got_ents[r_symndx]->refcount--;
  1.1030 ++	  break;
  1.1031 ++
  1.1032 ++	case R_AVR32_32:
  1.1033 ++	  if (info->shared || h)
  1.1034 ++	    {
  1.1035 ++	      if (h)
  1.1036 ++		h->possibly_dynamic_relocs--;
  1.1037 ++	      else
  1.1038 ++		avr32_elf_hash_table(info)->local_dynamic_relocs--;
  1.1039 ++	    }
  1.1040 ++
  1.1041 ++	default:
  1.1042 ++	  break;
  1.1043 ++	}
  1.1044 ++    }
  1.1045 ++
  1.1046 ++  return TRUE;
  1.1047 ++}
  1.1048 ++
  1.1049 ++/* Sizing and refcounting of dynamic sections */
  1.1050 ++
  1.1051 ++static void
  1.1052 ++insert_got_entry(struct elf_avr32_link_hash_table *htab, struct got_entry *got);
  1.1053 ++static void
  1.1054 ++unref_got_entry(struct elf_avr32_link_hash_table *htab, struct got_entry *got);
  1.1055 ++static void
  1.1056 ++ref_got_entry(struct elf_avr32_link_hash_table *htab, struct got_entry *got);
  1.1057 ++static bfd_boolean
  1.1058 ++assign_got_offsets(struct elf_avr32_link_hash_table *htab);
  1.1059 ++static bfd_boolean
  1.1060 ++allocate_dynrelocs(struct elf_link_hash_entry *h, void *_info);
  1.1061 ++static bfd_boolean
  1.1062 ++avr32_elf_size_dynamic_sections (bfd *output_bfd,
  1.1063 ++				 struct bfd_link_info *info);
  1.1064 ++
  1.1065 ++static void
  1.1066 ++insert_got_entry(struct elf_avr32_link_hash_table *htab, struct got_entry *got)
  1.1067 ++{
  1.1068 ++  /* Any entries with got_refcount > htab->nr_got_holes end up in the
  1.1069 ++   * last pigeonhole without any sorting. We expect the number of such
  1.1070 ++   * entries to be small, so it is very unlikely to affect
  1.1071 ++   * performance.  */
  1.1072 ++  int entry = got->refcount;
  1.1073 ++
  1.1074 ++  if (entry > htab->nr_got_holes)
  1.1075 ++    entry = htab->nr_got_holes;
  1.1076 ++
  1.1077 ++  got->pprev = &htab->got_hole[entry];
  1.1078 ++  got->next = htab->got_hole[entry];
  1.1079 ++
  1.1080 ++  if (got->next)
  1.1081 ++    got->next->pprev = &got->next;
  1.1082 ++
  1.1083 ++  htab->got_hole[entry] = got;
  1.1084 ++}
  1.1085 ++
  1.1086 ++/* Decrement the refcount of a GOT entry and update its position in
  1.1087 ++   the pigeonhole array.  */
  1.1088 ++static void
  1.1089 ++unref_got_entry(struct elf_avr32_link_hash_table *htab, struct got_entry *got)
  1.1090 ++{
  1.1091 ++  BFD_ASSERT(got->refcount > 0);
  1.1092 ++
  1.1093 ++  if (got->next)
  1.1094 ++    got->next->pprev = got->pprev;
  1.1095 ++
  1.1096 ++  *(got->pprev) = got->next;
  1.1097 ++  got->refcount--;
  1.1098 ++  insert_got_entry(htab, got);
  1.1099 ++}
  1.1100 ++
  1.1101 ++static void
  1.1102 ++ref_got_entry(struct elf_avr32_link_hash_table *htab, struct got_entry *got)
  1.1103 ++{
  1.1104 ++  if (got->next)
  1.1105 ++    got->next->pprev = got->pprev;
  1.1106 ++
  1.1107 ++  *(got->pprev) = got->next;
  1.1108 ++  got->refcount++;
  1.1109 ++  insert_got_entry(htab, got);
  1.1110 ++
  1.1111 ++  BFD_ASSERT(got->refcount > 0);
  1.1112 ++}
  1.1113 ++
  1.1114 ++/* Assign offsets to all GOT entries we intend to keep.  The entries
  1.1115 ++   that are referenced most often are placed at low offsets so that we
  1.1116 ++   can use compact instructions as much as possible.
  1.1117 ++
  1.1118 ++   Returns TRUE if any offsets or the total size of the GOT changed.  */
  1.1119 ++
  1.1120 ++static bfd_boolean
  1.1121 ++assign_got_offsets(struct elf_avr32_link_hash_table *htab)
  1.1122 ++{
  1.1123 ++  struct got_entry *got;
  1.1124 ++  bfd_size_type got_size = 0;
  1.1125 ++  bfd_boolean changed = FALSE;
  1.1126 ++  bfd_signed_vma offset;
  1.1127 ++  int i;
  1.1128 ++
  1.1129 ++  /* The GOT header provides the address of the DYNAMIC segment, so
  1.1130 ++     we need that even if the GOT is otherwise empty.  */
  1.1131 ++  if (htab->root.dynamic_sections_created)
  1.1132 ++    got_size = AVR32_GOT_HEADER_SIZE;
  1.1133 ++
  1.1134 ++  for (i = htab->nr_got_holes; i > 0; i--)
  1.1135 ++    {
  1.1136 ++      got = htab->got_hole[i];
  1.1137 ++      while (got)
  1.1138 ++	{
  1.1139 ++	  if (got->refcount > 0)
  1.1140 ++	    {
  1.1141 ++	      offset = got_size;
  1.1142 ++	      if (got->offset != offset)
  1.1143 ++		{
  1.1144 ++		  RDBG("GOT offset changed: %ld -> %ld\n",
  1.1145 ++		       got->offset, offset);
  1.1146 ++		  changed = TRUE;
  1.1147 ++		}
  1.1148 ++	      got->offset = offset;
  1.1149 ++	      got_size += 4;
  1.1150 ++	    }
  1.1151 ++	  got = got->next;
  1.1152 ++	}
  1.1153 ++    }
  1.1154 ++
  1.1155 ++  if (htab->sgot->size != got_size)
  1.1156 ++    {
  1.1157 ++      RDBG("GOT size changed: %lu -> %lu\n", htab->sgot->size,
  1.1158 ++	   got_size);
  1.1159 ++      changed = TRUE;
  1.1160 ++    }
  1.1161 ++  htab->sgot->size = got_size;
  1.1162 ++
  1.1163 ++  RDBG("assign_got_offsets: total size %lu (%s)\n",
  1.1164 ++       got_size, changed ? "changed" : "no change");
  1.1165 ++
  1.1166 ++  return changed;
  1.1167 ++}
  1.1168 ++
  1.1169 ++static bfd_boolean
  1.1170 ++allocate_dynrelocs(struct elf_link_hash_entry *h, void *_info)
  1.1171 ++{
  1.1172 ++  struct bfd_link_info *info = _info;
  1.1173 ++  struct elf_avr32_link_hash_table *htab;
  1.1174 ++  struct elf_avr32_link_hash_entry *havr;
  1.1175 ++  struct got_entry *got;
  1.1176 ++
  1.1177 ++  pr_debug("  (4b) allocate_dynrelocs: %s\n", h->root.root.string);
  1.1178 ++
  1.1179 ++  if (h->root.type == bfd_link_hash_indirect)
  1.1180 ++    return TRUE;
  1.1181 ++
  1.1182 ++  if (h->root.type == bfd_link_hash_warning)
  1.1183 ++    /* When warning symbols are created, they **replace** the "real"
  1.1184 ++       entry in the hash table, thus we never get to see the real
  1.1185 ++       symbol in a hash traversal.  So look at it now.  */
  1.1186 ++    h = (struct elf_link_hash_entry *) h->root.u.i.link;
  1.1187 ++
  1.1188 ++  htab = avr32_elf_hash_table(info);
  1.1189 ++  havr = (struct elf_avr32_link_hash_entry *)h;
  1.1190 ++
  1.1191 ++  got = h->got.glist;
  1.1192 ++
  1.1193 ++  /* If got is NULL, the symbol is never referenced through the GOT */
  1.1194 ++  if (got && got->refcount > 0)
  1.1195 ++    {
  1.1196 ++      insert_got_entry(htab, got);
  1.1197 ++
  1.1198 ++      /* Shared libraries need relocs for all GOT entries unless the
  1.1199 ++	 symbol is forced local or -Bsymbolic is used.  Others need
  1.1200 ++	 relocs for everything that is not guaranteed to be defined in
  1.1201 ++	 a regular object.  */
  1.1202 ++      if ((info->shared
  1.1203 ++	   && !info->symbolic
  1.1204 ++	   && h->dynindx != -1)
  1.1205 ++	  || (htab->root.dynamic_sections_created
  1.1206 ++	      && h->def_dynamic
  1.1207 ++	      && !h->def_regular))
  1.1208 ++	htab->srelgot->size += sizeof(Elf32_External_Rela);
  1.1209 ++    }
  1.1210 ++
  1.1211 ++  if (havr->possibly_dynamic_relocs
  1.1212 ++      && (info->shared
  1.1213 ++	  || (elf_hash_table(info)->dynamic_sections_created
  1.1214 ++	      && h->def_dynamic
  1.1215 ++	      && !h->def_regular)))
  1.1216 ++    {
  1.1217 ++      pr_debug("Allocating %d dynamic reloc against symbol %s...\n",
  1.1218 ++	       havr->possibly_dynamic_relocs, h->root.root.string);
  1.1219 ++      htab->srelgot->size += (havr->possibly_dynamic_relocs
  1.1220 ++			      * sizeof(Elf32_External_Rela));
  1.1221 ++    }
  1.1222 ++
  1.1223 ++  return TRUE;
  1.1224 ++}
  1.1225 ++
  1.1226 ++/* (4) Calculate the sizes of the linker-generated sections and
  1.1227 ++   allocate memory for them.  */
  1.1228 ++
  1.1229 ++static bfd_boolean
  1.1230 ++avr32_elf_size_dynamic_sections (bfd *output_bfd,
  1.1231 ++				 struct bfd_link_info *info)
  1.1232 ++{
  1.1233 ++  struct elf_avr32_link_hash_table *htab;
  1.1234 ++  bfd *dynobj;
  1.1235 ++  asection *s;
  1.1236 ++  bfd *ibfd;
  1.1237 ++  bfd_boolean relocs;
  1.1238 ++
  1.1239 ++  pr_debug("(4) size dynamic sections\n");
  1.1240 ++
  1.1241 ++  htab = avr32_elf_hash_table(info);
  1.1242 ++  dynobj = htab->root.dynobj;
  1.1243 ++  BFD_ASSERT(dynobj != NULL);
  1.1244 ++
  1.1245 ++  if (htab->root.dynamic_sections_created)
  1.1246 ++    {
  1.1247 ++      /* Initialize the contents of the .interp section to the name of
  1.1248 ++	 the dynamic loader */
  1.1249 ++      if (info->executable)
  1.1250 ++	{
  1.1251 ++	  s = bfd_get_section_by_name(dynobj, ".interp");
  1.1252 ++	  BFD_ASSERT(s != NULL);
  1.1253 ++	  s->size = sizeof(ELF_DYNAMIC_INTERPRETER);
  1.1254 ++	  s->contents = (unsigned char *)ELF_DYNAMIC_INTERPRETER;
  1.1255 ++	}
  1.1256 ++    }
  1.1257 ++
  1.1258 ++  if (htab->nr_got_holes > 0)
  1.1259 ++    {
  1.1260 ++      /* Allocate holes for the pigeonhole sort algorithm */
  1.1261 ++      pr_debug("Highest GOT refcount: %d\n", htab->nr_got_holes);
  1.1262 ++
  1.1263 ++      /* Limit the memory usage by clipping the number of pigeonholes
  1.1264 ++       * at a predefined maximum. All entries with a higher refcount
  1.1265 ++       * will end up in the last pigeonhole.  */
  1.1266 ++    if (htab->nr_got_holes >= MAX_NR_GOT_HOLES)
  1.1267 ++    {
  1.1268 ++        htab->nr_got_holes = MAX_NR_GOT_HOLES - 1;
  1.1269 ++
  1.1270 ++        pr_debug("Limiting maximum number of GOT pigeonholes to %u\n",
  1.1271 ++                    htab->nr_got_holes);
  1.1272 ++    }
  1.1273 ++      htab->got_hole = bfd_zalloc(output_bfd,
  1.1274 ++				  sizeof(struct got_entry *)
  1.1275 ++				  * (htab->nr_got_holes + 1));
  1.1276 ++      if (!htab->got_hole)
  1.1277 ++	return FALSE;
  1.1278 ++
  1.1279 ++      /* Set up .got offsets for local syms.  */
  1.1280 ++      for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next)
  1.1281 ++	{
  1.1282 ++	  struct got_entry **local_got;
  1.1283 ++	  struct got_entry **end_local_got;
  1.1284 ++	  Elf_Internal_Shdr *symtab_hdr;
  1.1285 ++	  bfd_size_type locsymcount;
  1.1286 ++
  1.1287 ++	  pr_debug("  (4a) processing file %s...\n", ibfd->filename);
  1.1288 ++
  1.1289 ++	  BFD_ASSERT(bfd_get_flavour(ibfd) == bfd_target_elf_flavour);
  1.1290 ++
  1.1291 ++	  local_got = elf_local_got_ents(ibfd);
  1.1292 ++	  if (!local_got)
  1.1293 ++	    continue;
  1.1294 ++
  1.1295 ++	  symtab_hdr = &elf_tdata(ibfd)->symtab_hdr;
  1.1296 ++	  locsymcount = symtab_hdr->sh_info;
  1.1297 ++	  end_local_got = local_got + locsymcount;
  1.1298 ++
  1.1299 ++	  for (; local_got < end_local_got; ++local_got)
  1.1300 ++	    insert_got_entry(htab, *local_got);
  1.1301 ++	}
  1.1302 ++    }
  1.1303 ++
  1.1304 ++  /* Allocate global sym .got entries and space for global sym
  1.1305 ++     dynamic relocs */
  1.1306 ++  elf_link_hash_traverse(&htab->root, allocate_dynrelocs, info);
  1.1307 ++
  1.1308 ++  /* Now that we have sorted the GOT entries, we are ready to
  1.1309 ++     assign offsets and determine the initial size of the GOT. */
  1.1310 ++  if (htab->sgot)
  1.1311 ++    assign_got_offsets(htab);
  1.1312 ++
  1.1313 ++  /* Allocate space for local sym dynamic relocs */
  1.1314 ++  BFD_ASSERT(htab->local_dynamic_relocs == 0 || info->shared);
  1.1315 ++  if (htab->local_dynamic_relocs)
  1.1316 ++    htab->srelgot->size += (htab->local_dynamic_relocs
  1.1317 ++			    * sizeof(Elf32_External_Rela));
  1.1318 ++
  1.1319 ++  /* We now have determined the sizes of the various dynamic
  1.1320 ++     sections. Allocate memory for them. */
  1.1321 ++  relocs = FALSE;
  1.1322 ++  for (s = dynobj->sections; s; s = s->next)
  1.1323 ++    {
  1.1324 ++      if ((s->flags & SEC_LINKER_CREATED) == 0)
  1.1325 ++	continue;
  1.1326 ++
  1.1327 ++      if (s == htab->sgot
  1.1328 ++	  || s == htab->sstub)
  1.1329 ++	{
  1.1330 ++	  /* Strip this section if we don't need it */
  1.1331 ++	}
  1.1332 ++      else if (strncmp (bfd_get_section_name(dynobj, s), ".rela", 5) == 0)
  1.1333 ++	{
  1.1334 ++	  if (s->size != 0)
  1.1335 ++	    relocs = TRUE;
  1.1336 ++
  1.1337 ++	  s->reloc_count = 0;
  1.1338 ++	}
  1.1339 ++      else
  1.1340 ++	{
  1.1341 ++	  /* It's not one of our sections */
  1.1342 ++	  continue;
  1.1343 ++	}
  1.1344 ++
  1.1345 ++      if (s->size == 0)
  1.1346 ++	{
  1.1347 ++	  /* Strip unneeded sections */
  1.1348 ++	  pr_debug("Stripping section %s from output...\n", s->name);
  1.1349 ++	  /* deleted function in 2.17
  1.1350 ++      _bfd_strip_section_from_output(info, s);
  1.1351 ++      */
  1.1352 ++	  continue;
  1.1353 ++	}
  1.1354 ++
  1.1355 ++      s->contents = bfd_zalloc(dynobj, s->size);
  1.1356 ++      if (s->contents == NULL)
  1.1357 ++	return FALSE;
  1.1358 ++    }
  1.1359 ++
  1.1360 ++  if (htab->root.dynamic_sections_created)
  1.1361 ++    {
  1.1362 ++      /* Add some entries to the .dynamic section.  We fill in the
  1.1363 ++	 values later, in sh_elf_finish_dynamic_sections, but we
  1.1364 ++	 must add the entries now so that we get the correct size for
  1.1365 ++	 the .dynamic section.  The DT_DEBUG entry is filled in by the
  1.1366 ++	 dynamic linker and used by the debugger.  */
  1.1367 ++#define add_dynamic_entry(TAG, VAL) _bfd_elf_add_dynamic_entry(info, TAG, VAL)
  1.1368 ++
  1.1369 ++      if (!add_dynamic_entry(DT_PLTGOT, 0))
  1.1370 ++	return FALSE;
  1.1371 ++      if (!add_dynamic_entry(DT_AVR32_GOTSZ, 0))
  1.1372 ++	return FALSE;
  1.1373 ++
  1.1374 ++      if (info->executable)
  1.1375 ++	{
  1.1376 ++	  if (!add_dynamic_entry(DT_DEBUG, 0))
  1.1377 ++	    return FALSE;
  1.1378 ++	}
  1.1379 ++      if (relocs)
  1.1380 ++	{
  1.1381 ++	  if (!add_dynamic_entry(DT_RELA, 0)
  1.1382 ++	      || !add_dynamic_entry(DT_RELASZ, 0)
  1.1383 ++	      || !add_dynamic_entry(DT_RELAENT,
  1.1384 ++				    sizeof(Elf32_External_Rela)))
  1.1385 ++	    return FALSE;
  1.1386 ++	}
  1.1387 ++    }
  1.1388 ++#undef add_dynamic_entry
  1.1389 ++
  1.1390 ++  return TRUE;
  1.1391 ++}
  1.1392 ++
  1.1393 ++
  1.1394 ++/* Access to internal relocations, section contents and symbols.
  1.1395 ++   (stolen from the xtensa port)  */
  1.1396 ++
  1.1397 ++static Elf_Internal_Rela *
  1.1398 ++retrieve_internal_relocs (bfd *abfd, asection *sec, bfd_boolean keep_memory);
  1.1399 ++static void
  1.1400 ++pin_internal_relocs (asection *sec, Elf_Internal_Rela *internal_relocs);
  1.1401 ++static void
  1.1402 ++release_internal_relocs (asection *sec, Elf_Internal_Rela *internal_relocs);
  1.1403 ++static bfd_byte *
  1.1404 ++retrieve_contents (bfd *abfd, asection *sec, bfd_boolean keep_memory);
  1.1405 ++/*
  1.1406 ++static void
  1.1407 ++pin_contents (asection *sec, bfd_byte *contents);
  1.1408 ++*/
  1.1409 ++static void
  1.1410 ++release_contents (asection *sec, bfd_byte *contents);
  1.1411 ++static Elf_Internal_Sym *
  1.1412 ++retrieve_local_syms (bfd *input_bfd, bfd_boolean keep_memory);
  1.1413 ++/*
  1.1414 ++static void
  1.1415 ++pin_local_syms (bfd *input_bfd, Elf_Internal_Sym *isymbuf);
  1.1416 ++*/
  1.1417 ++static void
  1.1418 ++release_local_syms (bfd *input_bfd, Elf_Internal_Sym *isymbuf);
  1.1419 ++
  1.1420 ++/* During relaxation, we need to modify relocations, section contents,
  1.1421 ++   and symbol definitions, and we need to keep the original values from
  1.1422 ++   being reloaded from the input files, i.e., we need to "pin" the
  1.1423 ++   modified values in memory.  We also want to continue to observe the
  1.1424 ++   setting of the "keep-memory" flag.  The following functions wrap the
  1.1425 ++   standard BFD functions to take care of this for us.  */
  1.1426 ++
  1.1427 ++static Elf_Internal_Rela *
  1.1428 ++retrieve_internal_relocs (bfd *abfd, asection *sec, bfd_boolean keep_memory)
  1.1429 ++{
  1.1430 ++  /* _bfd_elf_link_read_relocs knows about caching, so no need for us
  1.1431 ++     to be clever here.  */
  1.1432 ++  return _bfd_elf_link_read_relocs(abfd, sec, NULL, NULL, keep_memory);
  1.1433 ++}
  1.1434 ++
  1.1435 ++static void
  1.1436 ++pin_internal_relocs (asection *sec, Elf_Internal_Rela *internal_relocs)
  1.1437 ++{
  1.1438 ++  elf_section_data (sec)->relocs = internal_relocs;
  1.1439 ++}
  1.1440 ++
  1.1441 ++static void
  1.1442 ++release_internal_relocs (asection *sec, Elf_Internal_Rela *internal_relocs)
  1.1443 ++{
  1.1444 ++  if (internal_relocs
  1.1445 ++      && elf_section_data (sec)->relocs != internal_relocs)
  1.1446 ++    free (internal_relocs);
  1.1447 ++}
  1.1448 ++
  1.1449 ++static bfd_byte *
  1.1450 ++retrieve_contents (bfd *abfd, asection *sec, bfd_boolean keep_memory)
  1.1451 ++{
  1.1452 ++  bfd_byte *contents;
  1.1453 ++  bfd_size_type sec_size;
  1.1454 ++
  1.1455 ++  sec_size = bfd_get_section_limit (abfd, sec);
  1.1456 ++  contents = elf_section_data (sec)->this_hdr.contents;
  1.1457 ++
  1.1458 ++  if (contents == NULL && sec_size != 0)
  1.1459 ++    {
  1.1460 ++      if (!bfd_malloc_and_get_section (abfd, sec, &contents))
  1.1461 ++	{
  1.1462 ++	  if (contents)
  1.1463 ++	    free (contents);
  1.1464 ++	  return NULL;
  1.1465 ++	}
  1.1466 ++      if (keep_memory)
  1.1467 ++	elf_section_data (sec)->this_hdr.contents = contents;
  1.1468 ++    }
  1.1469 ++  return contents;
  1.1470 ++}
  1.1471 ++
  1.1472 ++/*
  1.1473 ++static void
  1.1474 ++pin_contents (asection *sec, bfd_byte *contents)
  1.1475 ++{
  1.1476 ++  elf_section_data (sec)->this_hdr.contents = contents;
  1.1477 ++}
  1.1478 ++*/
  1.1479 ++static void
  1.1480 ++release_contents (asection *sec, bfd_byte *contents)
  1.1481 ++{
  1.1482 ++  if (contents && elf_section_data (sec)->this_hdr.contents != contents)
  1.1483 ++    free (contents);
  1.1484 ++}
  1.1485 ++
  1.1486 ++static Elf_Internal_Sym *
  1.1487 ++retrieve_local_syms (bfd *input_bfd, bfd_boolean keep_memory)
  1.1488 ++{
  1.1489 ++  Elf_Internal_Shdr *symtab_hdr;
  1.1490 ++  Elf_Internal_Sym *isymbuf;
  1.1491 ++  size_t locsymcount;
  1.1492 ++
  1.1493 ++  symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
  1.1494 ++  locsymcount = symtab_hdr->sh_info;
  1.1495 ++
  1.1496 ++  isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
  1.1497 ++  if (isymbuf == NULL && locsymcount != 0)
  1.1498 ++    {
  1.1499 ++      isymbuf = bfd_elf_get_elf_syms (input_bfd, symtab_hdr, locsymcount, 0,
  1.1500 ++				      NULL, NULL, NULL);
  1.1501 ++      if (isymbuf && keep_memory)
  1.1502 ++	symtab_hdr->contents = (unsigned char *) isymbuf;
  1.1503 ++    }
  1.1504 ++
  1.1505 ++  return isymbuf;
  1.1506 ++}
  1.1507 ++
  1.1508 ++/*
  1.1509 ++static void
  1.1510 ++pin_local_syms (bfd *input_bfd, Elf_Internal_Sym *isymbuf)
  1.1511 ++{
  1.1512 ++  elf_tdata (input_bfd)->symtab_hdr.contents = (unsigned char *)isymbuf;
  1.1513 ++}
  1.1514 ++
  1.1515 ++*/
  1.1516 ++static void
  1.1517 ++release_local_syms (bfd *input_bfd, Elf_Internal_Sym *isymbuf)
  1.1518 ++{
  1.1519 ++  if (isymbuf && (elf_tdata (input_bfd)->symtab_hdr.contents
  1.1520 ++		  != (unsigned char *)isymbuf))
  1.1521 ++    free (isymbuf);
  1.1522 ++}
  1.1523 ++
  1.1524 ++/* Data structures used during relaxation. */
  1.1525 ++
  1.1526 ++enum relax_state_id {
  1.1527 ++  RS_ERROR = -1,
  1.1528 ++  RS_NONE = 0,
  1.1529 ++  RS_ALIGN,
  1.1530 ++  RS_CPENT,
  1.1531 ++  RS_PIC_CALL,
  1.1532 ++  RS_PIC_MCALL,
  1.1533 ++  RS_PIC_RCALL2,
  1.1534 ++  RS_PIC_RCALL1,
  1.1535 ++  RS_PIC_LDA,
  1.1536 ++  RS_PIC_LDW4,
  1.1537 ++  RS_PIC_LDW3,
  1.1538 ++  RS_PIC_SUB5,
  1.1539 ++  RS_NOPIC_MCALL,
  1.1540 ++  RS_NOPIC_RCALL2,
  1.1541 ++  RS_NOPIC_RCALL1,
  1.1542 ++  RS_NOPIC_LDW4,
  1.1543 ++  RS_NOPIC_LDDPC,
  1.1544 ++  RS_NOPIC_SUB5,
  1.1545 ++  RS_NOPIC_MOV2,
  1.1546 ++  RS_NOPIC_MOV1,
  1.1547 ++  RS_RCALL2,
  1.1548 ++  RS_RCALL1,
  1.1549 ++  RS_BRC2,
  1.1550 ++  RS_BRC1,
  1.1551 ++  RS_BRAL,
  1.1552 ++  RS_RJMP,
  1.1553 ++  RS_MAX,
  1.1554 ++};
  1.1555 ++
  1.1556 ++enum reference_type {
  1.1557 ++  REF_ABSOLUTE,
  1.1558 ++  REF_PCREL,
  1.1559 ++  REF_CPOOL,
  1.1560 ++  REF_GOT,
  1.1561 ++};
  1.1562 ++
  1.1563 ++struct relax_state
  1.1564 ++{
  1.1565 ++  const char *name;
  1.1566 ++  enum relax_state_id id;
  1.1567 ++  enum relax_state_id direct;
  1.1568 ++  enum relax_state_id next;
  1.1569 ++  enum relax_state_id prev;
  1.1570 ++
  1.1571 ++  enum reference_type reftype;
  1.1572 ++
  1.1573 ++  unsigned int r_type;
  1.1574 ++
  1.1575 ++  bfd_vma opcode;
  1.1576 ++  bfd_vma opcode_mask;
  1.1577 ++
  1.1578 ++  bfd_signed_vma range_min;
  1.1579 ++  bfd_signed_vma range_max;
  1.1580 ++
  1.1581 ++  bfd_size_type size;
  1.1582 ++};
  1.1583 ++
  1.1584 ++/*
  1.1585 ++ * This is for relocs that
  1.1586 ++ *   a) has an addend or is of type R_AVR32_DIFF32, and
  1.1587 ++ *   b) references a different section than it's in, and
  1.1588 ++ *   c) references a section that is relaxable
  1.1589 ++ *
  1.1590 ++ * as well as relocs that references the constant pool, in which case
  1.1591 ++ * the add_frag member points to the frag containing the constant pool
  1.1592 ++ * entry.
  1.1593 ++ *
  1.1594 ++ * Such relocs must be fixed up whenever we delete any code. Sections
  1.1595 ++ * that don't have any relocs with all of the above properties don't
  1.1596 ++ * have any additional reloc data, but sections that do will have
  1.1597 ++ * additional data for all its relocs.
  1.1598 ++ */
  1.1599 ++struct avr32_reloc_data
  1.1600 ++{
  1.1601 ++  struct fragment *add_frag;
  1.1602 ++  struct fragment *sub_frag;
  1.1603 ++};
  1.1604 ++
  1.1605 ++/*
  1.1606 ++ * A 'fragment' is a relaxable entity, that is, code may be added or
  1.1607 ++ * deleted at the end of a fragment. When this happens, all subsequent
  1.1608 ++ * fragments in the list will have their offsets updated.
  1.1609 ++ */
  1.1610 ++struct fragment
  1.1611 ++{
  1.1612 ++  enum relax_state_id state;
  1.1613 ++  enum relax_state_id initial_state;
  1.1614 ++
  1.1615 ++  Elf_Internal_Rela *rela;
  1.1616 ++  bfd_size_type size;
  1.1617 ++  bfd_vma offset;
  1.1618 ++  int size_adjust;
  1.1619 ++  int offset_adjust;
  1.1620 ++  bfd_boolean has_grown;
  1.1621 ++
  1.1622 ++  /* Only used by constant pool entries.  When this drops to zero, the
  1.1623 ++     frag is discarded (i.e. size_adjust is set to -4.)  */
  1.1624 ++  int refcount;
  1.1625 ++};
  1.1626 ++
  1.1627 ++struct avr32_relax_data
  1.1628 ++{
  1.1629 ++  unsigned int frag_count;
  1.1630 ++  struct fragment *frag;
  1.1631 ++  struct avr32_reloc_data *reloc_data;
  1.1632 ++
  1.1633 ++  /* TRUE if this section has one or more relaxable relocations */
  1.1634 ++  bfd_boolean is_relaxable;
  1.1635 ++  unsigned int iteration;
  1.1636 ++};
  1.1637 ++
  1.1638 ++struct avr32_section_data
  1.1639 ++{
  1.1640 ++  struct bfd_elf_section_data elf;
  1.1641 ++  struct avr32_relax_data relax_data;
  1.1642 ++};
  1.1643 ++
  1.1644 ++/* Relax state definitions */
  1.1645 ++
  1.1646 ++#define PIC_MOV2_OPCODE		0xe0600000
  1.1647 ++#define PIC_MOV2_MASK		0xe1e00000
  1.1648 ++#define PIC_MOV2_RANGE_MIN	(-1048576 * 4)
  1.1649 ++#define PIC_MOV2_RANGE_MAX	(1048575 * 4)
  1.1650 ++#define PIC_MCALL_OPCODE	0xf0160000
  1.1651 ++#define PIC_MCALL_MASK		0xffff0000
  1.1652 ++#define PIC_MCALL_RANGE_MIN	(-131072)
  1.1653 ++#define PIC_MCALL_RANGE_MAX	(131068)
  1.1654 ++#define RCALL2_OPCODE		0xe0a00000
  1.1655 ++#define RCALL2_MASK		0xe1ef0000
  1.1656 ++#define RCALL2_RANGE_MIN	(-2097152)
  1.1657 ++#define RCALL2_RANGE_MAX	(2097150)
  1.1658 ++#define RCALL1_OPCODE		0xc00c0000
  1.1659 ++#define RCALL1_MASK		0xf00c0000
  1.1660 ++#define RCALL1_RANGE_MIN	(-1024)
  1.1661 ++#define RCALL1_RANGE_MAX	(1022)
  1.1662 ++#define PIC_LDW4_OPCODE		0xecf00000
  1.1663 ++#define PIC_LDW4_MASK		0xfff00000
  1.1664 ++#define PIC_LDW4_RANGE_MIN	(-32768)
  1.1665 ++#define PIC_LDW4_RANGE_MAX	(32767)
  1.1666 ++#define PIC_LDW3_OPCODE		0x6c000000
  1.1667 ++#define PIC_LDW3_MASK		0xfe000000
  1.1668 ++#define PIC_LDW3_RANGE_MIN	(0)
  1.1669 ++#define PIC_LDW3_RANGE_MAX	(124)
  1.1670 ++#define SUB5_PC_OPCODE		0xfec00000
  1.1671 ++#define SUB5_PC_MASK		0xfff00000
  1.1672 ++#define SUB5_PC_RANGE_MIN	(-32768)
  1.1673 ++#define SUB5_PC_RANGE_MAX	(32767)
  1.1674 ++#define NOPIC_MCALL_OPCODE	0xf01f0000
  1.1675 ++#define NOPIC_MCALL_MASK	0xffff0000
  1.1676 ++#define NOPIC_MCALL_RANGE_MIN	PIC_MCALL_RANGE_MIN
  1.1677 ++#define NOPIC_MCALL_RANGE_MAX	PIC_MCALL_RANGE_MAX
  1.1678 ++#define NOPIC_LDW4_OPCODE	0xfef00000
  1.1679 ++#define NOPIC_LDW4_MASK		0xfff00000
  1.1680 ++#define NOPIC_LDW4_RANGE_MIN	PIC_LDW4_RANGE_MIN
  1.1681 ++#define NOPIC_LDW4_RANGE_MAX	PIC_LDW4_RANGE_MAX
  1.1682 ++#define LDDPC_OPCODE		0x48000000
  1.1683 ++#define LDDPC_MASK		0xf8000000
  1.1684 ++#define LDDPC_RANGE_MIN		0
  1.1685 ++#define LDDPC_RANGE_MAX		508
  1.1686 ++
  1.1687 ++#define NOPIC_MOV2_OPCODE  0xe0600000
  1.1688 ++#define NOPIC_MOV2_MASK        0xe1e00000
  1.1689 ++#define NOPIC_MOV2_RANGE_MIN   (-1048576)
  1.1690 ++#define NOPIC_MOV2_RANGE_MAX   (1048575)
  1.1691 ++#define NOPIC_MOV1_OPCODE  0x30000000
  1.1692 ++#define NOPIC_MOV1_MASK        0xf0000000
  1.1693 ++#define NOPIC_MOV1_RANGE_MIN   (-128)
  1.1694 ++#define NOPIC_MOV1_RANGE_MAX   (127)
  1.1695 ++
  1.1696 ++/* Only brc2 variants with cond[3] == 0 is considered, since the
  1.1697 ++   others are not relaxable.  bral is a special case and is handled
  1.1698 ++   separately.  */
  1.1699 ++#define BRC2_OPCODE		0xe0800000
  1.1700 ++#define BRC2_MASK		0xe1e80000
  1.1701 ++#define BRC2_RANGE_MIN		(-2097152)
  1.1702 ++#define BRC2_RANGE_MAX		(2097150)
  1.1703 ++#define BRC1_OPCODE		0xc0000000
  1.1704 ++#define BRC1_MASK		0xf0080000
  1.1705 ++#define BRC1_RANGE_MIN		(-256)
  1.1706 ++#define BRC1_RANGE_MAX		(254)
  1.1707 ++#define BRAL_OPCODE		0xe08f0000
  1.1708 ++#define BRAL_MASK		0xe1ef0000
  1.1709 ++#define BRAL_RANGE_MIN		BRC2_RANGE_MIN
  1.1710 ++#define BRAL_RANGE_MAX		BRC2_RANGE_MAX
  1.1711 ++#define RJMP_OPCODE		0xc0080000
  1.1712 ++#define RJMP_MASK		0xf00c0000
  1.1713 ++#define RJMP_RANGE_MIN		(-1024)
  1.1714 ++#define RJMP_RANGE_MAX		(1022)
  1.1715 ++
  1.1716 ++/* Define a relax state using the GOT  */
  1.1717 ++#define RG(id, dir, next, prev, r_type, opc, size)			\
  1.1718 ++  { "RS_"#id, RS_##id, RS_##dir, RS_##next, RS_##prev, REF_GOT,		\
  1.1719 ++      R_AVR32_##r_type,	opc##_OPCODE, opc##_MASK,			\
  1.1720 ++      opc##_RANGE_MIN, opc##_RANGE_MAX, size }
  1.1721 ++/* Define a relax state using the Constant Pool  */
  1.1722 ++#define RC(id, dir, next, prev, r_type, opc, size)			\
  1.1723 ++  { "RS_"#id, RS_##id, RS_##dir, RS_##next, RS_##prev, REF_CPOOL,	\
  1.1724 ++      R_AVR32_##r_type,	opc##_OPCODE, opc##_MASK,			\
  1.1725 ++      opc##_RANGE_MIN, opc##_RANGE_MAX, size }
  1.1726 ++
  1.1727 ++/* Define a relax state using pc-relative direct reference  */
  1.1728 ++#define RP(id, dir, next, prev, r_type, opc, size)			\
  1.1729 ++  { "RS_"#id, RS_##id, RS_##dir, RS_##next, RS_##prev, REF_PCREL,	\
  1.1730 ++      R_AVR32_##r_type,	opc##_OPCODE, opc##_MASK,			\
  1.1731 ++      opc##_RANGE_MIN, opc##_RANGE_MAX, size }
  1.1732 ++
  1.1733 ++/* Define a relax state using non-pc-relative direct reference */
  1.1734 ++#define RD(id, dir, next, prev, r_type, opc, size)         \
  1.1735 ++  { "RS_"#id, RS_##id, RS_##dir, RS_##next, RS_##prev, REF_ABSOLUTE,   \
  1.1736 ++      R_AVR32_##r_type,    opc##_OPCODE, opc##_MASK,           \
  1.1737 ++      opc##_RANGE_MIN, opc##_RANGE_MAX, size }
  1.1738 ++
  1.1739 ++/* Define a relax state that will be handled specially  */
  1.1740 ++#define RS(id, r_type, size)						\
  1.1741 ++  { "RS_"#id, RS_##id, RS_NONE, RS_NONE, RS_NONE, REF_ABSOLUTE,		\
  1.1742 ++      R_AVR32_##r_type, 0, 0, 0, 0, size }
  1.1743 ++
  1.1744 ++const struct relax_state relax_state[RS_MAX] = {
  1.1745 ++  RS(NONE, NONE, 0),
  1.1746 ++  RS(ALIGN, ALIGN, 0),
  1.1747 ++  RS(CPENT, 32_CPENT, 4),
  1.1748 ++
  1.1749 ++  RG(PIC_CALL, PIC_RCALL1, PIC_MCALL, NONE, GOTCALL, PIC_MOV2, 10),
  1.1750 ++  RG(PIC_MCALL, PIC_RCALL1, NONE, PIC_CALL, GOT18SW, PIC_MCALL, 4),
  1.1751 ++  RP(PIC_RCALL2, NONE, PIC_RCALL1, PIC_MCALL, 22H_PCREL, RCALL2, 4),
  1.1752 ++  RP(PIC_RCALL1, NONE, NONE, PIC_RCALL2, 11H_PCREL, RCALL1, 2),
  1.1753 ++
  1.1754 ++  RG(PIC_LDA, PIC_SUB5, PIC_LDW4, NONE, LDA_GOT, PIC_MOV2, 8),
  1.1755 ++  RG(PIC_LDW4, PIC_SUB5, PIC_LDW3, PIC_LDA, GOT16S, PIC_LDW4, 4),
  1.1756 ++  RG(PIC_LDW3, PIC_SUB5, NONE, PIC_LDW4, GOT7UW, PIC_LDW3, 2),
  1.1757 ++  RP(PIC_SUB5, NONE, NONE, PIC_LDW3, 16N_PCREL, SUB5_PC, 4),
  1.1758 ++
  1.1759 ++  RC(NOPIC_MCALL, NOPIC_RCALL1, NONE, NONE, CPCALL, NOPIC_MCALL, 4),
  1.1760 ++  RP(NOPIC_RCALL2, NONE, NOPIC_RCALL1, NOPIC_MCALL, 22H_PCREL, RCALL2, 4),
  1.1761 ++  RP(NOPIC_RCALL1, NONE, NONE, NOPIC_RCALL2, 11H_PCREL, RCALL1, 2),
  1.1762 ++
  1.1763 ++  RC(NOPIC_LDW4, NOPIC_MOV1, NOPIC_LDDPC, NONE, 16_CP, NOPIC_LDW4, 4),
  1.1764 ++  RC(NOPIC_LDDPC, NOPIC_MOV1, NONE, NOPIC_LDW4, 9W_CP, LDDPC, 2),
  1.1765 ++  RP(NOPIC_SUB5, NOPIC_MOV1, NONE, NOPIC_LDDPC, 16N_PCREL, SUB5_PC, 4),
  1.1766 ++  RD(NOPIC_MOV2, NONE, NOPIC_MOV1, NOPIC_SUB5, 21S, NOPIC_MOV2, 4),
  1.1767 ++  RD(NOPIC_MOV1, NONE, NONE, NOPIC_MOV2, 8S, NOPIC_MOV1, 2),
  1.1768 ++
  1.1769 ++  RP(RCALL2, NONE, RCALL1, NONE, 22H_PCREL, RCALL2, 4),
  1.1770 ++  RP(RCALL1, NONE, NONE, RCALL2, 11H_PCREL, RCALL1, 2),
  1.1771 ++  RP(BRC2, NONE, BRC1, NONE, 22H_PCREL, BRC2, 4),
  1.1772 ++  RP(BRC1, NONE, NONE, BRC2, 9H_PCREL, BRC1, 2),
  1.1773 ++  RP(BRAL, NONE, RJMP, NONE, 22H_PCREL, BRAL, 4),
  1.1774 ++  RP(RJMP, NONE, NONE, BRAL, 11H_PCREL, RJMP, 2),
  1.1775 ++};
  1.1776 ++
  1.1777 ++static bfd_boolean
  1.1778 ++avr32_elf_new_section_hook(bfd *abfd, asection *sec)
  1.1779 ++{
  1.1780 ++  struct avr32_section_data *sdata;
  1.1781 ++
  1.1782 ++  sdata = bfd_zalloc(abfd, sizeof(struct avr32_section_data));
  1.1783 ++  if (!sdata)
  1.1784 ++    return FALSE;
  1.1785 ++
  1.1786 ++  sec->used_by_bfd = sdata;
  1.1787 ++  return _bfd_elf_new_section_hook(abfd, sec);
  1.1788 ++}
  1.1789 ++
  1.1790 ++static struct avr32_relax_data *
  1.1791 ++avr32_relax_data(asection *sec)
  1.1792 ++{
  1.1793 ++  struct avr32_section_data *sdata;
  1.1794 ++
  1.1795 ++  BFD_ASSERT(sec->used_by_bfd);
  1.1796 ++
  1.1797 ++  sdata = (struct avr32_section_data *)elf_section_data(sec);
  1.1798 ++  return &sdata->relax_data;
  1.1799 ++}
  1.1800 ++
  1.1801 ++/* Link-time relaxation */
  1.1802 ++
  1.1803 ++static bfd_boolean
  1.1804 ++avr32_elf_relax_section(bfd *abfd, asection *sec,
  1.1805 ++			struct bfd_link_info *info, bfd_boolean *again);
  1.1806 ++
  1.1807 ++enum relax_pass_id {
  1.1808 ++  RELAX_PASS_SIZE_FRAGS,
  1.1809 ++  RELAX_PASS_MOVE_DATA,
  1.1810 ++};
  1.1811 ++
  1.1812 ++/* Stolen from the xtensa port */
  1.1813 ++static int
  1.1814 ++internal_reloc_compare (const void *ap, const void *bp)
  1.1815 ++{
  1.1816 ++  const Elf_Internal_Rela *a = (const Elf_Internal_Rela *) ap;
  1.1817 ++  const Elf_Internal_Rela *b = (const Elf_Internal_Rela *) bp;
  1.1818 ++
  1.1819 ++  if (a->r_offset != b->r_offset)
  1.1820 ++    return (a->r_offset - b->r_offset);
  1.1821 ++
  1.1822 ++  /* We don't need to sort on these criteria for correctness,
  1.1823 ++     but enforcing a more strict ordering prevents unstable qsort
  1.1824 ++     from behaving differently with different implementations.
  1.1825 ++     Without the code below we get correct but different results
  1.1826 ++     on Solaris 2.7 and 2.8.  We would like to always produce the
  1.1827 ++     same results no matter the host.  */
  1.1828 ++
  1.1829 ++  if (a->r_info != b->r_info)
  1.1830 ++    return (a->r_info - b->r_info);
  1.1831 ++
  1.1832 ++  return (a->r_addend - b->r_addend);
  1.1833 ++}
  1.1834 ++
  1.1835 ++static enum relax_state_id
  1.1836 ++get_pcrel22_relax_state(bfd *abfd, asection *sec, struct bfd_link_info *info,
  1.1837 ++			const Elf_Internal_Rela *rela)
  1.1838 ++{
  1.1839 ++  bfd_byte *contents;
  1.1840 ++  bfd_vma insn;
  1.1841 ++  enum relax_state_id rs = RS_NONE;
  1.1842 ++
  1.1843 ++  contents = retrieve_contents(abfd, sec, info->keep_memory);
  1.1844 ++  if (!contents)
  1.1845 ++    return RS_ERROR;
  1.1846 ++
  1.1847 ++  insn = bfd_get_32(abfd, contents + rela->r_offset);
  1.1848 ++  if ((insn & RCALL2_MASK) == RCALL2_OPCODE)
  1.1849 ++    rs = RS_RCALL2;
  1.1850 ++  else if ((insn & BRAL_MASK) == BRAL_OPCODE)
  1.1851 ++    /* Optimizing bral -> rjmp gets us into all kinds of
  1.1852 ++       trouble with jump tables. Better not do it.  */
  1.1853 ++    rs = RS_NONE;
  1.1854 ++  else if ((insn & BRC2_MASK) == BRC2_OPCODE)
  1.1855 ++    rs = RS_BRC2;
  1.1856 ++
  1.1857 ++  release_contents(sec, contents);
  1.1858 ++
  1.1859 ++  return rs;
  1.1860 ++}
  1.1861 ++
  1.1862 ++static enum relax_state_id
  1.1863 ++get_initial_relax_state(bfd *abfd, asection *sec, struct bfd_link_info *info,
  1.1864 ++			const Elf_Internal_Rela *rela)
  1.1865 ++{
  1.1866 ++  switch (ELF_R_TYPE(rela->r_info))
  1.1867 ++    {
  1.1868 ++    case R_AVR32_GOTCALL:
  1.1869 ++      return RS_PIC_CALL;
  1.1870 ++    case R_AVR32_GOT18SW:
  1.1871 ++      return RS_PIC_MCALL;
  1.1872 ++    case R_AVR32_LDA_GOT:
  1.1873 ++      return RS_PIC_LDA;
  1.1874 ++    case R_AVR32_GOT16S:
  1.1875 ++      return RS_PIC_LDW4;
  1.1876 ++    case R_AVR32_CPCALL:
  1.1877 ++      return RS_NOPIC_MCALL;
  1.1878 ++    case R_AVR32_16_CP:
  1.1879 ++      return RS_NOPIC_LDW4;
  1.1880 ++    case R_AVR32_9W_CP:
  1.1881 ++      return RS_NOPIC_LDDPC;
  1.1882 ++    case R_AVR32_ALIGN:
  1.1883 ++      return RS_ALIGN;
  1.1884 ++    case R_AVR32_32_CPENT:
  1.1885 ++      return RS_CPENT;
  1.1886 ++    case R_AVR32_22H_PCREL:
  1.1887 ++      return get_pcrel22_relax_state(abfd, sec, info, rela);
  1.1888 ++    case R_AVR32_9H_PCREL:
  1.1889 ++      return RS_BRC1;
  1.1890 ++    default:
  1.1891 ++      return RS_NONE;
  1.1892 ++    }
  1.1893 ++}
  1.1894 ++
  1.1895 ++static bfd_boolean
  1.1896 ++reloc_is_cpool_ref(const Elf_Internal_Rela *rela)
  1.1897 ++{
  1.1898 ++  switch (ELF_R_TYPE(rela->r_info))
  1.1899 ++    {
  1.1900 ++    case R_AVR32_CPCALL:
  1.1901 ++    case R_AVR32_16_CP:
  1.1902 ++    case R_AVR32_9W_CP:
  1.1903 ++      return TRUE;
  1.1904 ++    default:
  1.1905 ++      return FALSE;
  1.1906 ++    }
  1.1907 ++}
  1.1908 ++
  1.1909 ++static struct fragment *
  1.1910 ++new_frag(bfd *abfd ATTRIBUTE_UNUSED, asection *sec,
  1.1911 ++	 struct avr32_relax_data *rd, enum relax_state_id state,
  1.1912 ++	 Elf_Internal_Rela *rela)
  1.1913 ++{
  1.1914 ++  struct fragment *frag;
  1.1915 ++  bfd_size_type r_size;
  1.1916 ++  bfd_vma r_offset;
  1.1917 ++  unsigned int i = rd->frag_count;
  1.1918 ++
  1.1919 ++  BFD_ASSERT(state >= RS_NONE && state < RS_MAX);
  1.1920 ++
  1.1921 ++  rd->frag_count++;
  1.1922 ++  frag = bfd_realloc(rd->frag, sizeof(struct fragment) * rd->frag_count);
  1.1923 ++  if (!frag)
  1.1924 ++    return NULL;
  1.1925 ++  rd->frag = frag;
  1.1926 ++
  1.1927 ++  frag += i;
  1.1928 ++  memset(frag, 0, sizeof(struct fragment));
  1.1929 ++
  1.1930 ++  if (state == RS_ALIGN)
  1.1931 ++    r_size = (((rela->r_offset + (1 << rela->r_addend) - 1)
  1.1932 ++	       & ~((1 << rela->r_addend) - 1)) - rela->r_offset);
  1.1933 ++  else
  1.1934 ++    r_size = relax_state[state].size;
  1.1935 ++
  1.1936 ++  if (rela)
  1.1937 ++    r_offset = rela->r_offset;
  1.1938 ++  else
  1.1939 ++    r_offset = sec->size;
  1.1940 ++
  1.1941 ++  if (i == 0)
  1.1942 ++    {
  1.1943 ++      frag->offset = 0;
  1.1944 ++      frag->size = r_offset + r_size;
  1.1945 ++    }
  1.1946 ++  else
  1.1947 ++    {
  1.1948 ++      frag->offset = rd->frag[i - 1].offset + rd->frag[i - 1].size;
  1.1949 ++      frag->size = r_offset + r_size - frag->offset;
  1.1950 ++    }
  1.1951 ++
  1.1952 ++  if (state != RS_CPENT)
  1.1953 ++    /* Make sure we don't discard this frag */
  1.1954 ++    frag->refcount = 1;
  1.1955 ++
  1.1956 ++  frag->initial_state = frag->state = state;
  1.1957 ++  frag->rela = rela;
  1.1958 ++
  1.1959 ++  return frag;
  1.1960 ++}
  1.1961 ++
  1.1962 ++static struct fragment *
  1.1963 ++find_frag(asection *sec, bfd_vma offset)
  1.1964 ++{
  1.1965 ++  struct fragment *first, *last;
  1.1966 ++  struct avr32_relax_data *rd = avr32_relax_data(sec);
  1.1967 ++
  1.1968 ++  if (rd->frag_count == 0)
  1.1969 ++    return NULL;
  1.1970 ++
  1.1971 ++  first = &rd->frag[0];
  1.1972 ++  last = &rd->frag[rd->frag_count - 1];
  1.1973 ++
  1.1974 ++  /* This may be a reloc referencing the end of a section.  The last
  1.1975 ++     frag will never have a reloc associated with it, so its size will
  1.1976 ++     never change, thus the offset adjustment of the last frag will
  1.1977 ++     always be the same as the offset adjustment of the end of the
  1.1978 ++     section.  */
  1.1979 ++  if (offset == sec->size)
  1.1980 ++    {
  1.1981 ++      BFD_ASSERT(last->offset + last->size == sec->size);
  1.1982 ++      BFD_ASSERT(!last->rela);
  1.1983 ++      return last;
  1.1984 ++    }
  1.1985 ++
  1.1986 ++  while (first <= last)
  1.1987 ++    {
  1.1988 ++      struct fragment *mid;
  1.1989 ++
  1.1990 ++      mid = (last - first) / 2 + first;
  1.1991 ++      if ((mid->offset + mid->size) <= offset)
  1.1992 ++	first = mid + 1;
  1.1993 ++      else if (mid->offset > offset)
  1.1994 ++	last = mid - 1;
  1.1995 ++      else
  1.1996 ++	return mid;
  1.1997 ++    }
  1.1998 ++
  1.1999 ++  return NULL;
  1.2000 ++}
  1.2001 ++
  1.2002 ++/* Look through all relocs in a section and determine if any relocs
  1.2003 ++   may be affected by relaxation in other sections.  If so, allocate
  1.2004 ++   an array of additional relocation data which links the affected
  1.2005 ++   relocations to the frag(s) where the relaxation may occur.
  1.2006 ++
  1.2007 ++   This function also links cpool references to cpool entries and
  1.2008 ++   increments the refcount of the latter when this happens.  */
  1.2009 ++
  1.2010 ++static bfd_boolean
  1.2011 ++allocate_reloc_data(bfd *abfd, asection *sec, Elf_Internal_Rela *relocs,
  1.2012 ++		    struct bfd_link_info *info)
  1.2013 ++{
  1.2014 ++  Elf_Internal_Shdr *symtab_hdr;
  1.2015 ++  Elf_Internal_Sym *isymbuf = NULL;
  1.2016 ++  struct avr32_relax_data *rd;
  1.2017 ++  unsigned int i;
  1.2018 ++  bfd_boolean ret = FALSE;
  1.2019 ++
  1.2020 ++  symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
  1.2021 ++  rd = avr32_relax_data(sec);
  1.2022 ++
  1.2023 ++  RDBG("%s<%s>: allocate_reloc_data\n", abfd->filename, sec->name);
  1.2024 ++
  1.2025 ++  for (i = 0; i < sec->reloc_count; i++)
  1.2026 ++    {
  1.2027 ++      Elf_Internal_Rela *rel = &relocs[i];
  1.2028 ++      asection *sym_sec;
  1.2029 ++      unsigned long r_symndx;
  1.2030 ++      bfd_vma sym_value;
  1.2031 ++
  1.2032 ++      if (!rel->r_addend && ELF_R_TYPE(rel->r_info) != R_AVR32_DIFF32
  1.2033 ++	  && !reloc_is_cpool_ref(rel))
  1.2034 ++	continue;
  1.2035 ++
  1.2036 ++      r_symndx = ELF_R_SYM(rel->r_info);
  1.2037 ++
  1.2038 ++      if (r_symndx < symtab_hdr->sh_info)
  1.2039 ++	{
  1.2040 ++	  Elf_Internal_Sym *isym;
  1.2041 ++
  1.2042 ++	  if (!isymbuf)
  1.2043 ++	    isymbuf = retrieve_local_syms(abfd, info->keep_memory);
  1.2044 ++	  if (!isymbuf)
  1.2045 ++	    return FALSE;
  1.2046 ++
  1.2047 ++	  isym = &isymbuf[r_symndx];
  1.2048 ++	  sym_sec = bfd_section_from_elf_index(abfd, isym->st_shndx);
  1.2049 ++	  sym_value = isym->st_value;
  1.2050 ++	}
  1.2051 ++      else
  1.2052 ++	{
  1.2053 ++	  struct elf_link_hash_entry *h;
  1.2054 ++
  1.2055 ++	  h = elf_sym_hashes(abfd)[r_symndx - symtab_hdr->sh_info];
  1.2056 ++
  1.2057 ++	  while (h->root.type == bfd_link_hash_indirect
  1.2058 ++		 || h->root.type == bfd_link_hash_warning)
  1.2059 ++	    h = (struct elf_link_hash_entry *)h->root.u.i.link;
  1.2060 ++
  1.2061 ++	  if (h->root.type != bfd_link_hash_defined
  1.2062 ++	      && h->root.type != bfd_link_hash_defweak)
  1.2063 ++	    continue;
  1.2064 ++
  1.2065 ++	  sym_sec = h->root.u.def.section;
  1.2066 ++	  sym_value = h->root.u.def.value;
  1.2067 ++	}
  1.2068 ++
  1.2069 ++      if (sym_sec && avr32_relax_data(sym_sec)->is_relaxable)
  1.2070 ++	{
  1.2071 ++	  bfd_size_type size;
  1.2072 ++	  struct fragment *frag;
  1.2073 ++
  1.2074 ++	  if (!rd->reloc_data)
  1.2075 ++	    {
  1.2076 ++	      size = sizeof(struct avr32_reloc_data) * sec->reloc_count;
  1.2077 ++	      rd->reloc_data = bfd_zalloc(abfd, size);
  1.2078 ++	      if (!rd->reloc_data)
  1.2079 ++		goto out;
  1.2080 ++	    }
  1.2081 ++
  1.2082 ++	  RDBG("[%3d] 0x%04lx: target: 0x%lx + 0x%lx",
  1.2083 ++	       i, rel->r_offset, sym_value, rel->r_addend);
  1.2084 ++
  1.2085 ++	  frag = find_frag(sym_sec, sym_value + rel->r_addend);
  1.2086 ++	  BFD_ASSERT(frag);
  1.2087 ++	  rd->reloc_data[i].add_frag = frag;
  1.2088 ++
  1.2089 ++	  RDBG(" -> %s<%s>:%04lx\n", sym_sec->owner->filename, sym_sec->name,
  1.2090 ++	       frag->rela ? frag->rela->r_offset : sym_sec->size);
  1.2091 ++
  1.2092 ++	  if (reloc_is_cpool_ref(rel))
  1.2093 ++	    {
  1.2094 ++	      BFD_ASSERT(ELF_R_TYPE(frag->rela->r_info) == R_AVR32_32_CPENT);
  1.2095 ++	      frag->refcount++;
  1.2096 ++	    }
  1.2097 ++
  1.2098 ++	  if (ELF_R_TYPE(rel->r_info) == R_AVR32_DIFF32)
  1.2099 ++	    {
  1.2100 ++	      bfd_byte *contents;
  1.2101 ++	      bfd_signed_vma diff;
  1.2102 ++
  1.2103 ++	      contents = retrieve_contents(abfd, sec, info->keep_memory);
  1.2104 ++	      if (!contents)
  1.2105 ++		goto out;
  1.2106 ++
  1.2107 ++	      diff = bfd_get_signed_32(abfd, contents + rel->r_offset);
  1.2108 ++	      frag = find_frag(sym_sec, sym_value + rel->r_addend + diff);
  1.2109 ++	      BFD_ASSERT(frag);
  1.2110 ++	      rd->reloc_data[i].sub_frag = frag;
  1.2111 ++
  1.2112 ++	      release_contents(sec, contents);
  1.2113 ++	    }
  1.2114 ++	}
  1.2115 ++    }
  1.2116 ++
  1.2117 ++  ret = TRUE;
  1.2118 ++
  1.2119 ++ out:
  1.2120 ++  release_local_syms(abfd, isymbuf);
  1.2121 ++  return ret;
  1.2122 ++}
  1.2123 ++
  1.2124 ++static bfd_boolean
  1.2125 ++global_sym_set_frag(struct elf_avr32_link_hash_entry *havr,
  1.2126 ++		    struct bfd_link_info *info ATTRIBUTE_UNUSED)
  1.2127 ++{
  1.2128 ++  struct fragment *frag;
  1.2129 ++  asection *sec;
  1.2130 ++
  1.2131 ++  if (havr->root.root.type != bfd_link_hash_defined
  1.2132 ++      && havr->root.root.type != bfd_link_hash_defweak)
  1.2133 ++    return TRUE;
  1.2134 ++
  1.2135 ++  sec = havr->root.root.u.def.section;
  1.2136 ++  if (bfd_is_const_section(sec)
  1.2137 ++      || !avr32_relax_data(sec)->is_relaxable)
  1.2138 ++    return TRUE;
  1.2139 ++
  1.2140 ++  frag = find_frag(sec, havr->root.root.u.def.value);
  1.2141 ++  if (!frag)
  1.2142 ++    {
  1.2143 ++      unsigned int i;
  1.2144 ++      struct avr32_relax_data *rd = avr32_relax_data(sec);
  1.2145 ++
  1.2146 ++      RDBG("In %s: No frag for %s <%s+%lu> (limit %lu)\n",
  1.2147 ++	   sec->owner->filename, havr->root.root.root.string,
  1.2148 ++	   sec->name, havr->root.root.u.def.value, sec->size);
  1.2149 ++      for (i = 0; i < rd->frag_count; i++)
  1.2150 ++	RDBG("    %8lu - %8lu\n", rd->frag[i].offset,
  1.2151 ++	     rd->frag[i].offset + rd->frag[i].size);
  1.2152 ++    }
  1.2153 ++  BFD_ASSERT(frag);
  1.2154 ++
  1.2155 ++  havr->sym_frag = frag;
  1.2156 ++  return TRUE;
  1.2157 ++}
  1.2158 ++
  1.2159 ++static bfd_boolean
  1.2160 ++analyze_relocations(struct bfd_link_info *info)
  1.2161 ++{
  1.2162 ++  bfd *abfd;
  1.2163 ++  asection *sec;
  1.2164 ++
  1.2165 ++  /* Divide all relaxable sections into fragments */
  1.2166 ++  for (abfd = info->input_bfds; abfd; abfd = abfd->link_next)
  1.2167 ++    {
  1.2168 ++      if (!(elf_elfheader(abfd)->e_flags & EF_AVR32_LINKRELAX))
  1.2169 ++	{
  1.2170 ++	  if (!(*info->callbacks->warning)
  1.2171 ++	      (info, _("input is not relaxable"), NULL, abfd, NULL, 0))
  1.2172 ++	    return FALSE;
  1.2173 ++	  continue;
  1.2174 ++	}
  1.2175 ++
  1.2176 ++      for (sec = abfd->sections; sec; sec = sec->next)
  1.2177 ++	{
  1.2178 ++	  struct avr32_relax_data *rd;
  1.2179 ++	  struct fragment *frag;
  1.2180 ++	  Elf_Internal_Rela *relocs;
  1.2181 ++	  unsigned int i;
  1.2182 ++	  bfd_boolean ret = TRUE;
  1.2183 ++
  1.2184 ++	  if (!(sec->flags & SEC_RELOC) || sec->reloc_count == 0)
  1.2185 ++	    continue;
  1.2186 ++
  1.2187 ++	  rd = avr32_relax_data(sec);
  1.2188 ++
  1.2189 ++	  relocs = retrieve_internal_relocs(abfd, sec, info->keep_memory);
  1.2190 ++	  if (!relocs)
  1.2191 ++	    return FALSE;
  1.2192 ++
  1.2193 ++	  qsort(relocs, sec->reloc_count, sizeof(Elf_Internal_Rela),
  1.2194 ++		internal_reloc_compare);
  1.2195 ++
  1.2196 ++	  for (i = 0; i < sec->reloc_count; i++)
  1.2197 ++	    {
  1.2198 ++	      enum relax_state_id state;
  1.2199 ++
  1.2200 ++	      ret = FALSE;
  1.2201 ++	      state = get_initial_relax_state(abfd, sec, info, &relocs[i]);
  1.2202 ++	      if (state == RS_ERROR)
  1.2203 ++		break;
  1.2204 ++
  1.2205 ++	      if (state)
  1.2206 ++		{
  1.2207 ++		  frag = new_frag(abfd, sec, rd, state, &relocs[i]);
  1.2208 ++		  if (!frag)
  1.2209 ++		    break;
  1.2210 ++
  1.2211 ++		  pin_internal_relocs(sec, relocs);
  1.2212 ++		  rd->is_relaxable = TRUE;
  1.2213 ++		}
  1.2214 ++
  1.2215 ++	      ret = TRUE;
  1.2216 ++	    }
  1.2217 ++
  1.2218 ++	  release_internal_relocs(sec, relocs);
  1.2219 ++	  if (!ret)
  1.2220 ++	    return ret;
  1.2221 ++
  1.2222 ++	  if (rd->is_relaxable)
  1.2223 ++	    {
  1.2224 ++	      frag = new_frag(abfd, sec, rd, RS_NONE, NULL);
  1.2225 ++	      if (!frag)
  1.2226 ++		return FALSE;
  1.2227 ++	    }
  1.2228 ++	}
  1.2229 ++    }
  1.2230 ++
  1.2231 ++  /* Link each global symbol to the fragment where it's defined.  */
  1.2232 ++  elf_link_hash_traverse(elf_hash_table(info), global_sym_set_frag, info);
  1.2233 ++
  1.2234 ++  /* Do the same for local symbols. */
  1.2235 ++  for (abfd = info->input_bfds; abfd; abfd = abfd->link_next)
  1.2236 ++    {
  1.2237 ++      Elf_Internal_Sym *isymbuf, *isym;
  1.2238 ++      struct fragment **local_sym_frag;
  1.2239 ++      unsigned int i, sym_count;
  1.2240 ++
  1.2241 ++      sym_count = elf_tdata(abfd)->symtab_hdr.sh_info;
  1.2242 ++      if (sym_count == 0)
  1.2243 ++	continue;
  1.2244 ++
  1.2245 ++      local_sym_frag = bfd_zalloc(abfd, sym_count * sizeof(struct fragment *));
  1.2246 ++      if (!local_sym_frag)
  1.2247 ++	return FALSE;
  1.2248 ++      elf_tdata(abfd)->local_sym_frag = local_sym_frag;
  1.2249 ++
  1.2250 ++      isymbuf = retrieve_local_syms(abfd, info->keep_memory);
  1.2251 ++      if (!isymbuf)
  1.2252 ++	return FALSE;
  1.2253 ++
  1.2254 ++      for (i = 0; i < sym_count; i++)
  1.2255 ++	{
  1.2256 ++	  struct avr32_relax_data *rd;
  1.2257 ++	  struct fragment *frag;
  1.2258 ++	  asection *sec;
  1.2259 ++
  1.2260 ++	  isym = &isymbuf[i];
  1.2261 ++
  1.2262 ++	  sec = bfd_section_from_elf_index(abfd, isym->st_shndx);
  1.2263 ++	  if (!sec)
  1.2264 ++	    continue;
  1.2265 ++
  1.2266 ++	  rd = avr32_relax_data(sec);
  1.2267 ++	  if (!rd->is_relaxable)
  1.2268 ++	    continue;
  1.2269 ++
  1.2270 ++	  frag = find_frag(sec, isym->st_value);
  1.2271 ++	  BFD_ASSERT(frag);
  1.2272 ++
  1.2273 ++	  local_sym_frag[i] = frag;
  1.2274 ++	}
  1.2275 ++
  1.2276 ++      release_local_syms(abfd, isymbuf);
  1.2277 ++    }
  1.2278 ++
  1.2279 ++  /* And again for relocs with addends and constant pool references */
  1.2280 ++  for (abfd = info->input_bfds; abfd; abfd = abfd->link_next)
  1.2281 ++    for (sec = abfd->sections; sec; sec = sec->next)
  1.2282 ++      {
  1.2283 ++	Elf_Internal_Rela *relocs;
  1.2284 ++	bfd_boolean ret;
  1.2285 ++
  1.2286 ++	if (!(sec->flags & SEC_RELOC) || sec->reloc_count == 0)
  1.2287 ++	  continue;
  1.2288 ++
  1.2289 ++	relocs = retrieve_internal_relocs(abfd, sec, info->keep_memory);
  1.2290 ++	if (!relocs)
  1.2291 ++	  return FALSE;
  1.2292 ++
  1.2293 ++	ret = allocate_reloc_data(abfd, sec, relocs, info);
  1.2294 ++
  1.2295 ++	release_internal_relocs(sec, relocs);
  1.2296 ++	if (ret == FALSE)
  1.2297 ++	  return ret;
  1.2298 ++      }
  1.2299 ++
  1.2300 ++  return TRUE;
  1.2301 ++}
  1.2302 ++
  1.2303 ++static bfd_boolean
  1.2304 ++rs_is_good_enough(const struct relax_state *rs, struct fragment *frag,
  1.2305 ++		  bfd_vma symval, bfd_vma addr, struct got_entry *got,
  1.2306 ++		  struct avr32_reloc_data *ind_data,
  1.2307 ++		  bfd_signed_vma offset_adjust)
  1.2308 ++{
  1.2309 ++  bfd_signed_vma target = 0;
  1.2310 ++
  1.2311 ++  switch (rs->reftype)
  1.2312 ++    {
  1.2313 ++    case REF_ABSOLUTE:
  1.2314 ++      target = symval;
  1.2315 ++      break;
  1.2316 ++    case REF_PCREL:
  1.2317 ++      target = symval - addr;
  1.2318 ++      break;
  1.2319 ++    case REF_CPOOL:
  1.2320 ++      /* cpool frags are always in the same section and always after
  1.2321 ++	 all frags referring to it.  So it's always correct to add in
  1.2322 ++	 offset_adjust here.  */
  1.2323 ++      target = (ind_data->add_frag->offset + ind_data->add_frag->offset_adjust
  1.2324 ++		+ offset_adjust - frag->offset - frag->offset_adjust);
  1.2325 ++      break;
  1.2326 ++    case REF_GOT:
  1.2327 ++      target = got->offset;
  1.2328 ++      break;
  1.2329 ++    default:
  1.2330 ++      abort();
  1.2331 ++    }
  1.2332 ++
  1.2333 ++  if (target >= rs->range_min && target <= rs->range_max)
  1.2334 ++    return TRUE;
  1.2335 ++  else
  1.2336 ++    return FALSE;
  1.2337 ++}
  1.2338 ++
  1.2339 ++static bfd_boolean
  1.2340 ++avr32_size_frags(bfd *abfd, asection *sec, struct bfd_link_info *info)
  1.2341 ++{
  1.2342 ++  struct elf_avr32_link_hash_table *htab;
  1.2343 ++  struct avr32_relax_data *rd;
  1.2344 ++  Elf_Internal_Shdr *symtab_hdr;
  1.2345 ++  Elf_Internal_Rela *relocs = NULL;
  1.2346 ++  Elf_Internal_Sym *isymbuf = NULL;
  1.2347 ++  struct got_entry **local_got_ents;
  1.2348 ++  struct fragment **local_sym_frag;
  1.2349 ++  bfd_boolean ret = FALSE;
  1.2350 ++  bfd_signed_vma delta = 0;
  1.2351 ++  unsigned int i;
  1.2352 ++
  1.2353 ++  htab = avr32_elf_hash_table(info);
  1.2354 ++  rd = avr32_relax_data(sec);
  1.2355 ++
  1.2356 ++  if (sec == htab->sgot)
  1.2357 ++    {
  1.2358 ++      RDBG("Relaxing GOT section (vma: 0x%lx)\n",
  1.2359 ++	   sec->output_section->vma + sec->output_offset);
  1.2360 ++      if (assign_got_offsets(htab))
  1.2361 ++	htab->repeat_pass = TRUE;
  1.2362 ++      return TRUE;
  1.2363 ++    }
  1.2364 ++
  1.2365 ++  if (!rd->is_relaxable)
  1.2366 ++    return TRUE;
  1.2367 ++
  1.2368 ++  if (!sec->rawsize)
  1.2369 ++    sec->rawsize = sec->size;
  1.2370 ++
  1.2371 ++  symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
  1.2372 ++  relocs = retrieve_internal_relocs(abfd, sec, info->keep_memory);
  1.2373 ++  if (!relocs)
  1.2374 ++    goto out;
  1.2375 ++
  1.2376 ++  isymbuf = retrieve_local_syms(abfd, info->keep_memory);
  1.2377 ++  if (!isymbuf)
  1.2378 ++    goto out;
  1.2379 ++
  1.2380 ++  local_got_ents = elf_local_got_ents(abfd);
  1.2381 ++  local_sym_frag = elf_tdata(abfd)->local_sym_frag;
  1.2382 ++
  1.2383 ++  RDBG("size_frags: %s<%s>\n  vma: 0x%08lx, size: 0x%08lx\n",
  1.2384 ++       abfd->filename, sec->name,
  1.2385 ++       sec->output_section->vma + sec->output_offset, sec->size);
  1.2386 ++
  1.2387 ++  for (i = 0; i < rd->frag_count; i++)
  1.2388 ++    {
  1.2389 ++      struct fragment *frag = &rd->frag[i];
  1.2390 ++      struct avr32_reloc_data *r_data = NULL, *ind_data = NULL;
  1.2391 ++      const struct relax_state *state, *next_state;
  1.2392 ++      struct fragment *target_frag = NULL;
  1.2393 ++      asection *sym_sec = NULL;
  1.2394 ++      Elf_Internal_Rela *rela;
  1.2395 ++      struct got_entry *got;
  1.2396 ++      bfd_vma symval, r_offset, addend, addr;
  1.2397 ++      bfd_signed_vma size_adjust = 0, distance;
  1.2398 ++      unsigned long r_symndx;
  1.2399 ++      bfd_boolean defined = TRUE, dynamic = FALSE;
  1.2400 ++      unsigned char sym_type;
  1.2401 ++
  1.2402 ++      frag->offset_adjust += delta;
  1.2403 ++      state = next_state = &relax_state[frag->state];
  1.2404 ++      rela = frag->rela;
  1.2405 ++
  1.2406 ++      BFD_ASSERT(state->id == frag->state);
  1.2407 ++
  1.2408 ++      RDBG("  0x%04lx%c%d: %s [size %ld]", rela ? rela->r_offset : sec->rawsize,
  1.2409 ++	   (frag->offset_adjust < 0)?'-':'+',
  1.2410 ++	   abs(frag->offset_adjust), state->name, state->size);
  1.2411 ++
  1.2412 ++      if (!rela)
  1.2413 ++	{
  1.2414 ++	  RDBG(": no reloc, ignoring\n");
  1.2415 ++	  continue;
  1.2416 ++	}
  1.2417 ++
  1.2418 ++      BFD_ASSERT((unsigned int)(rela - relocs) < sec->reloc_count);
  1.2419 ++      BFD_ASSERT(state != RS_NONE);
  1.2420 ++
  1.2421 ++      r_offset = rela->r_offset + frag->offset_adjust;
  1.2422 ++      addr = sec->output_section->vma + sec->output_offset + r_offset;
  1.2423 ++
  1.2424 ++      switch (frag->state)
  1.2425 ++	{
  1.2426 ++	case RS_ALIGN:
  1.2427 ++	  size_adjust = ((addr + (1 << rela->r_addend) - 1)
  1.2428 ++			 & ~((1 << rela->r_addend) - 1));
  1.2429 ++	  size_adjust -= (sec->output_section->vma + sec->output_offset
  1.2430 ++			  + frag->offset + frag->offset_adjust
  1.2431 ++			  + frag->size + frag->size_adjust);
  1.2432 ++
  1.2433 ++	  RDBG(": adjusting size %lu -> %lu\n", frag->size + frag->size_adjust,
  1.2434 ++	       frag->size + frag->size_adjust + size_adjust);
  1.2435 ++	  break;
  1.2436 ++
  1.2437 ++	case RS_CPENT:
  1.2438 ++	  if (frag->refcount == 0 && frag->size_adjust == 0)
  1.2439 ++	    {
  1.2440 ++	      RDBG(": discarding frag\n");
  1.2441 ++	      size_adjust = -4;
  1.2442 ++	    }
  1.2443 ++	  else if (frag->refcount > 0 && frag->size_adjust < 0)
  1.2444 ++	    {
  1.2445 ++	      RDBG(": un-discarding frag\n");
  1.2446 ++	      size_adjust = 4;
  1.2447 ++	    }
  1.2448 ++	  break;
  1.2449 ++
  1.2450 ++	default:
  1.2451 ++	  if (rd->reloc_data)
  1.2452 ++	    r_data = &rd->reloc_data[frag->rela - relocs];
  1.2453 ++
  1.2454 ++	  /* If this is a cpool reference, we want the symbol that the
  1.2455 ++	     cpool entry refers to, not the symbol for the cpool entry
  1.2456 ++	     itself, as we already know what frag it's in.  */
  1.2457 ++	  if (relax_state[frag->initial_state].reftype == REF_CPOOL)
  1.2458 ++	    {
  1.2459 ++	      Elf_Internal_Rela *irela = r_data->add_frag->rela;
  1.2460 ++
  1.2461 ++	      r_symndx = ELF_R_SYM(irela->r_info);
  1.2462 ++	      addend = irela->r_addend;
  1.2463 ++
  1.2464 ++	      /* The constant pool must be in the same section as the
  1.2465 ++		 reloc referring to it.  */
  1.2466 ++	      BFD_ASSERT((unsigned long)(irela - relocs) < sec->reloc_count);
  1.2467 ++
  1.2468 ++	      ind_data = r_data;
  1.2469 ++	      r_data = &rd->reloc_data[irela - relocs];
  1.2470 ++	    }
  1.2471 ++	  else
  1.2472 ++	    {
  1.2473 ++	      r_symndx = ELF_R_SYM(rela->r_info);
  1.2474 ++	      addend = rela->r_addend;
  1.2475 ++	    }
  1.2476 ++
  1.2477 ++	  /* Get the value of the symbol referred to by the reloc.  */
  1.2478 ++	  if (r_symndx < symtab_hdr->sh_info)
  1.2479 ++	    {
  1.2480 ++	      Elf_Internal_Sym *isym;
  1.2481 ++
  1.2482 ++	      isym = isymbuf + r_symndx;
  1.2483 ++	      symval = 0;
  1.2484 ++
  1.2485 ++	      RDBG(" local sym %lu: ", r_symndx);
  1.2486 ++
  1.2487 ++	      if (isym->st_shndx == SHN_UNDEF)
  1.2488 ++		defined = FALSE;
  1.2489 ++	      else if (isym->st_shndx == SHN_ABS)
  1.2490 ++		sym_sec = bfd_abs_section_ptr;
  1.2491 ++	      else if (isym->st_shndx == SHN_COMMON)
  1.2492 ++		sym_sec = bfd_com_section_ptr;
  1.2493 ++	      else
  1.2494 ++		sym_sec = bfd_section_from_elf_index(abfd, isym->st_shndx);
  1.2495 ++
  1.2496 ++	      symval = isym->st_value;
  1.2497 ++	      sym_type = ELF_ST_TYPE(isym->st_info);
  1.2498 ++	      target_frag = local_sym_frag[r_symndx];
  1.2499 ++
  1.2500 ++	      if (local_got_ents)
  1.2501 ++		got = local_got_ents[r_symndx];
  1.2502 ++	      else
  1.2503 ++		got = NULL;
  1.2504 ++	    }
  1.2505 ++	  else
  1.2506 ++	    {
  1.2507 ++	      /* Global symbol */
  1.2508 ++	      unsigned long index;
  1.2509 ++	      struct elf_link_hash_entry *h;
  1.2510 ++	      struct elf_avr32_link_hash_entry *havr;
  1.2511 ++
  1.2512 ++	      index = r_symndx - symtab_hdr->sh_info;
  1.2513 ++	      h = elf_sym_hashes(abfd)[index];
  1.2514 ++	      BFD_ASSERT(h != NULL);
  1.2515 ++
  1.2516 ++	      while (h->root.type == bfd_link_hash_indirect
  1.2517 ++		     || h->root.type == bfd_link_hash_warning)
  1.2518 ++		h = (struct elf_link_hash_entry *)h->root.u.i.link;
  1.2519 ++
  1.2520 ++	      havr = (struct elf_avr32_link_hash_entry *)h;
  1.2521 ++	      got = h->got.glist;
  1.2522 ++
  1.2523 ++	      symval = 0;
  1.2524 ++
  1.2525 ++	      RDBG(" %s: ", h->root.root.string);
  1.2526 ++
  1.2527 ++	      if (h->root.type != bfd_link_hash_defined
  1.2528 ++		  && h->root.type != bfd_link_hash_defweak)
  1.2529 ++		{
  1.2530 ++		  RDBG("(undef)");
  1.2531 ++		  defined = FALSE;
  1.2532 ++		}
  1.2533 ++	      else if ((info->shared && !info->symbolic && h->dynindx != -1)
  1.2534 ++		       || (htab->root.dynamic_sections_created
  1.2535 ++			   && h->def_dynamic && !h->def_regular))
  1.2536 ++		{
  1.2537 ++		  RDBG("(dynamic)");
  1.2538 ++		  dynamic = TRUE;
  1.2539 ++		  sym_sec = h->root.u.def.section;
  1.2540 ++		}
  1.2541 ++	      else
  1.2542 ++		{
  1.2543 ++		  sym_sec = h->root.u.def.section;
  1.2544 ++		  symval = h->root.u.def.value;
  1.2545 ++		  target_frag = havr->sym_frag;
  1.2546 ++		}
  1.2547 ++
  1.2548 ++	      sym_type = h->type;
  1.2549 ++	    }
  1.2550 ++
  1.2551 ++	  /* Thanks to elf32-ppc for this one.  */
  1.2552 ++	  if (sym_sec && sym_sec->sec_info_type == ELF_INFO_TYPE_MERGE)
  1.2553 ++	    {
  1.2554 ++	      /* At this stage in linking, no SEC_MERGE symbol has been
  1.2555 ++		 adjusted, so all references to such symbols need to be
  1.2556 ++		 passed through _bfd_merged_section_offset.  (Later, in
  1.2557 ++		 relocate_section, all SEC_MERGE symbols *except* for
  1.2558 ++		 section symbols have been adjusted.)
  1.2559 ++
  1.2560 ++	         SEC_MERGE sections are not relaxed by us, as they
  1.2561 ++	         shouldn't contain any code.  */
  1.2562 ++
  1.2563 ++	      BFD_ASSERT(!target_frag && !(r_data && r_data->add_frag));
  1.2564 ++
  1.2565 ++	      /* gas may reduce relocations against symbols in SEC_MERGE
  1.2566 ++		 sections to a relocation against the section symbol when
  1.2567 ++		 the original addend was zero.  When the reloc is against
  1.2568 ++		 a section symbol we should include the addend in the
  1.2569 ++		 offset passed to _bfd_merged_section_offset, since the
  1.2570 ++		 location of interest is the original symbol.  On the
  1.2571 ++		 other hand, an access to "sym+addend" where "sym" is not
  1.2572 ++		 a section symbol should not include the addend;  Such an
  1.2573 ++		 access is presumed to be an offset from "sym";  The
  1.2574 ++		 location of interest is just "sym".  */
  1.2575 ++	      RDBG("\n    MERGE: %s: 0x%lx+0x%lx+0x%lx -> ",
  1.2576 ++		   (sym_type == STT_SECTION)?"section":"not section",
  1.2577 ++		   sym_sec->output_section->vma + sym_sec->output_offset,
  1.2578 ++		   symval, addend);
  1.2579 ++
  1.2580 ++	      if (sym_type == STT_SECTION)
  1.2581 ++		symval += addend;
  1.2582 ++
  1.2583 ++	      symval = (_bfd_merged_section_offset
  1.2584 ++			(abfd, &sym_sec,
  1.2585 ++			 elf_section_data(sym_sec)->sec_info, symval));
  1.2586 ++
  1.2587 ++	      if (sym_type != STT_SECTION)
  1.2588 ++		symval += addend;
  1.2589 ++	    }
  1.2590 ++	  else
  1.2591 ++	    symval += addend;
  1.2592 ++
  1.2593 ++	  if (defined && !dynamic)
  1.2594 ++	    {
  1.2595 ++	      RDBG("0x%lx+0x%lx",
  1.2596 ++		   sym_sec->output_section->vma + sym_sec->output_offset,
  1.2597 ++		   symval);
  1.2598 ++	      symval += sym_sec->output_section->vma + sym_sec->output_offset;
  1.2599 ++	    }
  1.2600 ++
  1.2601 ++	  if (r_data && r_data->add_frag)
  1.2602 ++	    /* If the add_frag pointer is set, it means that this reloc
  1.2603 ++	       has an addend that may be affected by relaxation.  */
  1.2604 ++	    target_frag = r_data->add_frag;
  1.2605 ++
  1.2606 ++	  if (target_frag)
  1.2607 ++	    {
  1.2608 ++	      symval += target_frag->offset_adjust;
  1.2609 ++
  1.2610 ++	      /* If target_frag comes after this frag in the same
  1.2611 ++		 section, we should assume that it will be moved by
  1.2612 ++		 the same amount we are.  */
  1.2613 ++	      if ((target_frag - rd->frag) < (int)rd->frag_count
  1.2614 ++		  && target_frag > frag)
  1.2615 ++		symval += delta;
  1.2616 ++	    }
  1.2617 ++
  1.2618 ++	  distance = symval - addr;
  1.2619 ++
  1.2620 ++	  /* First, try to make a direct reference.  If the symbol is
  1.2621 ++	     dynamic or undefined, we must take care not to change its
  1.2622 ++	     reference type, that is, we can't make it direct.
  1.2623 ++
  1.2624 ++	     Also, it seems like some sections may actually be resized
  1.2625 ++	     after the relaxation code is done, so we can't really
  1.2626 ++	     trust that our "distance" is correct.  There's really no
  1.2627 ++	     easy solution to this problem, so we'll just disallow
  1.2628 ++	     direct references to SEC_DATA sections.
  1.2629 ++
  1.2630 ++	     Oh, and .bss isn't actually SEC_DATA, so we disallow
  1.2631 ++	     !SEC_HAS_CONTENTS as well. */
  1.2632 ++	  if (!dynamic && defined
  1.2633 ++	      && (htab->direct_data_refs
  1.2634 ++		  || (!(sym_sec->flags & SEC_DATA)
  1.2635 ++		      && (sym_sec->flags & SEC_HAS_CONTENTS)))
  1.2636 ++	      && next_state->direct)
  1.2637 ++	    {
  1.2638 ++	      next_state = &relax_state[next_state->direct];
  1.2639 ++	      RDBG(" D-> %s", next_state->name);
  1.2640 ++	    }
  1.2641 ++
  1.2642 ++	  /* Iterate backwards until we find a state that fits.  */
  1.2643 ++	  while (next_state->prev
  1.2644 ++		 && !rs_is_good_enough(next_state, frag, symval, addr,
  1.2645 ++				       got, ind_data, delta))
  1.2646 ++	    {
  1.2647 ++	      next_state = &relax_state[next_state->prev];
  1.2648 ++	      RDBG(" P-> %s", next_state->name);
  1.2649 ++	    }
  1.2650 ++
  1.2651 ++	  /* Then try to find the best possible state.  */
  1.2652 ++	  while (next_state->next)
  1.2653 ++	    {
  1.2654 ++	      const struct relax_state *candidate;
  1.2655 ++
  1.2656 ++	      candidate = &relax_state[next_state->next];
  1.2657 ++	      if (!rs_is_good_enough(candidate, frag, symval, addr, got,
  1.2658 ++				     ind_data, delta))
  1.2659 ++		break;
  1.2660 ++
  1.2661 ++	      next_state = candidate;
  1.2662 ++	      RDBG(" N-> %s", next_state->name);
  1.2663 ++	    }
  1.2664 ++
  1.2665 ++	  RDBG(" [size %ld]\n", next_state->size);
  1.2666 ++
  1.2667 ++	  BFD_ASSERT(next_state->id);
  1.2668 ++	  BFD_ASSERT(!dynamic || next_state->reftype == REF_GOT);
  1.2669 ++
  1.2670 ++	  size_adjust = next_state->size - state->size;
  1.2671 ++
  1.2672 ++	  /* There's a theoretical possibility that shrinking one frag
  1.2673 ++	     may cause another to grow, which may cause the first one to
  1.2674 ++	     grow as well, and we're back where we started.  Avoid this
  1.2675 ++	     scenario by disallowing a frag that has grown to ever
  1.2676 ++	     shrink again.  */
  1.2677 ++	  if (state->reftype == REF_GOT && next_state->reftype != REF_GOT)
  1.2678 ++	    {
  1.2679 ++	      if (frag->has_grown)
  1.2680 ++		next_state = state;
  1.2681 ++	      else
  1.2682 ++		unref_got_entry(htab, got);
  1.2683 ++	    }
  1.2684 ++	  else if (state->reftype != REF_GOT && next_state->reftype == REF_GOT)
  1.2685 ++	    {
  1.2686 ++	      ref_got_entry(htab, got);
  1.2687 ++	      frag->has_grown = TRUE;
  1.2688 ++	    }
  1.2689 ++	  else if (state->reftype == REF_CPOOL
  1.2690 ++		   && next_state->reftype != REF_CPOOL)
  1.2691 ++	    {
  1.2692 ++	      if (frag->has_grown)
  1.2693 ++		next_state = state;
  1.2694 ++	      else
  1.2695 ++		ind_data->add_frag->refcount--;
  1.2696 ++	    }
  1.2697 ++	  else if (state->reftype != REF_CPOOL
  1.2698 ++		   && next_state->reftype == REF_CPOOL)
  1.2699 ++	    {
  1.2700 ++	      ind_data->add_frag->refcount++;
  1.2701 ++	      frag->has_grown = TRUE;
  1.2702 ++	    }
  1.2703 ++	  else
  1.2704 ++	    {
  1.2705 ++	      if (frag->has_grown && size_adjust < 0)
  1.2706 ++		next_state = state;
  1.2707 ++	      else if (size_adjust > 0)
  1.2708 ++		frag->has_grown = TRUE;
  1.2709 ++	    }
  1.2710 ++
  1.2711 ++	  size_adjust = next_state->size - state->size;
  1.2712 ++	  frag->state = next_state->id;
  1.2713 ++
  1.2714 ++	  break;
  1.2715 ++	}
  1.2716 ++
  1.2717 ++      if (size_adjust)
  1.2718 ++	htab->repeat_pass = TRUE;
  1.2719 ++
  1.2720 ++      frag->size_adjust += size_adjust;
  1.2721 ++      sec->size += size_adjust;
  1.2722 ++      delta += size_adjust;
  1.2723 ++
  1.2724 ++      BFD_ASSERT((frag->offset + frag->offset_adjust
  1.2725 ++		  + frag->size + frag->size_adjust)
  1.2726 ++		 == (frag[1].offset + frag[1].offset_adjust + delta));
  1.2727 ++    }
  1.2728 ++
  1.2729 ++  ret = TRUE;
  1.2730 ++
  1.2731 ++ out:
  1.2732 ++  release_local_syms(abfd, isymbuf);
  1.2733 ++  release_internal_relocs(sec, relocs);
  1.2734 ++  return ret;
  1.2735 ++}
  1.2736 ++
  1.2737 ++static bfd_boolean
  1.2738 ++adjust_global_symbol(struct elf_avr32_link_hash_entry *havr,
  1.2739 ++		     struct bfd_link_info *info ATTRIBUTE_UNUSED)
  1.2740 ++{
  1.2741 ++  struct elf_link_hash_entry *h = &havr->root;
  1.2742 ++
  1.2743 ++  if (havr->sym_frag && (h->root.type == bfd_link_hash_defined
  1.2744 ++			 || h->root.type == bfd_link_hash_defweak))
  1.2745 ++    {
  1.2746 ++      RDBG("adjust_global_symbol: %s 0x%08lx -> 0x%08lx\n",
  1.2747 ++	   h->root.root.string, h->root.u.def.value,
  1.2748 ++	   h->root.u.def.value + havr->sym_frag->offset_adjust);
  1.2749 ++      h->root.u.def.value += havr->sym_frag->offset_adjust;
  1.2750 ++    }
  1.2751 ++  return TRUE;
  1.2752 ++}
  1.2753 ++
  1.2754 ++static bfd_boolean
  1.2755 ++adjust_syms(struct bfd_link_info *info)
  1.2756 ++{
  1.2757 ++  struct elf_avr32_link_hash_table *htab;
  1.2758 ++  bfd *abfd;
  1.2759 ++
  1.2760 ++  htab = avr32_elf_hash_table(info);
  1.2761 ++  elf_link_hash_traverse(&htab->root, adjust_global_symbol, info);
  1.2762 ++
  1.2763 ++  for (abfd = info->input_bfds; abfd; abfd = abfd->link_next)
  1.2764 ++    {
  1.2765 ++      Elf_Internal_Sym *isymbuf;
  1.2766 ++      struct fragment **local_sym_frag, *frag;
  1.2767 ++      unsigned int i, sym_count;
  1.2768 ++
  1.2769 ++      sym_count = elf_tdata(abfd)->symtab_hdr.sh_info;
  1.2770 ++      if (sym_count == 0)
  1.2771 ++	continue;
  1.2772 ++
  1.2773 ++      isymbuf = retrieve_local_syms(abfd, info->keep_memory);
  1.2774 ++      if (!isymbuf)
  1.2775 ++	return FALSE;
  1.2776 ++
  1.2777 ++      local_sym_frag = elf_tdata(abfd)->local_sym_frag;
  1.2778 ++
  1.2779 ++      for (i = 0; i < sym_count; i++)
  1.2780 ++	{
  1.2781 ++	  frag = local_sym_frag[i];
  1.2782 ++	  if (frag)
  1.2783 ++	    {
  1.2784 ++	      RDBG("adjust_local_symbol: %s[%u] 0x%08lx -> 0x%08lx\n",
  1.2785 ++		   abfd->filename, i, isymbuf[i].st_value,
  1.2786 ++		   isymbuf[i].st_value + frag->offset_adjust);
  1.2787 ++	      isymbuf[i].st_value += frag->offset_adjust;
  1.2788 ++	    }
  1.2789 ++	}
  1.2790 ++
  1.2791 ++      release_local_syms(abfd, isymbuf);
  1.2792 ++    }
  1.2793 ++
  1.2794 ++  htab->symbols_adjusted = TRUE;
  1.2795 ++  return TRUE;
  1.2796 ++}
  1.2797 ++
  1.2798 ++static bfd_boolean
  1.2799 ++adjust_relocs(bfd *abfd, asection *sec, struct bfd_link_info *info)
  1.2800 ++{
  1.2801 ++  struct avr32_relax_data *rd;
  1.2802 ++  Elf_Internal_Rela *relocs;
  1.2803 ++  Elf_Internal_Shdr *symtab_hdr;
  1.2804 ++  unsigned int i;
  1.2805 ++  bfd_boolean ret = FALSE;
  1.2806 ++
  1.2807 ++  rd = avr32_relax_data(sec);
  1.2808 ++  if (!rd->reloc_data)
  1.2809 ++    return TRUE;
  1.2810 ++
  1.2811 ++  RDBG("adjust_relocs: %s<%s> (count: %u)\n", abfd->filename, sec->name,
  1.2812 ++       sec->reloc_count);
  1.2813 ++
  1.2814 ++  relocs = retrieve_internal_relocs(abfd, sec, info->keep_memory);
  1.2815 ++  if (!relocs)
  1.2816 ++    return FALSE;
  1.2817 ++
  1.2818 ++  symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
  1.2819 ++
  1.2820 ++  for (i = 0; i < sec->reloc_count; i++)
  1.2821 ++    {
  1.2822 ++      Elf_Internal_Rela *rela = &relocs[i];
  1.2823 ++      struct avr32_reloc_data *r_data = &rd->reloc_data[i];
  1.2824 ++      struct fragment *sym_frag;
  1.2825 ++      unsigned long r_symndx;
  1.2826 ++
  1.2827 ++      if (r_data->add_frag)
  1.2828 ++	{
  1.2829 ++	  r_symndx = ELF_R_SYM(rela->r_info);
  1.2830 ++
  1.2831 ++	  if (r_symndx < symtab_hdr->sh_info)
  1.2832 ++	    sym_frag = elf_tdata(abfd)->local_sym_frag[r_symndx];
  1.2833 ++	  else
  1.2834 ++	    {
  1.2835 ++	      struct elf_link_hash_entry *h;
  1.2836 ++
  1.2837 ++	      h = elf_sym_hashes(abfd)[r_symndx - symtab_hdr->sh_info];
  1.2838 ++
  1.2839 ++	      while (h->root.type == bfd_link_hash_indirect
  1.2840 ++		     || h->root.type == bfd_link_hash_warning)
  1.2841 ++		h = (struct elf_link_hash_entry *)h->root.u.i.link;
  1.2842 ++
  1.2843 ++	      BFD_ASSERT(h->root.type == bfd_link_hash_defined
  1.2844 ++			 || h->root.type == bfd_link_hash_defweak);
  1.2845 ++
  1.2846 ++	      sym_frag = ((struct elf_avr32_link_hash_entry *)h)->sym_frag;
  1.2847 ++	    }
  1.2848 ++
  1.2849 ++	  RDBG("    addend: 0x%08lx -> 0x%08lx\n",
  1.2850 ++	       rela->r_addend,
  1.2851 ++	       rela->r_addend + r_data->add_frag->offset_adjust
  1.2852 ++	       - (sym_frag ? sym_frag->offset_adjust : 0));
  1.2853 ++
  1.2854 ++	  /* If this is against a section symbol, we won't find any
  1.2855 ++	     sym_frag, so we'll just adjust the addend.  */
  1.2856 ++	  rela->r_addend += r_data->add_frag->offset_adjust;
  1.2857 ++	  if (sym_frag)
  1.2858 ++	    rela->r_addend -= sym_frag->offset_adjust;
  1.2859 ++
  1.2860 ++	  if (r_data->sub_frag)
  1.2861 ++	    {
  1.2862 ++	      bfd_byte *contents;
  1.2863 ++	      bfd_signed_vma diff;
  1.2864 ++
  1.2865 ++	      contents = retrieve_contents(abfd, sec, info->keep_memory);
  1.2866 ++	      if (!contents)
  1.2867 ++		goto out;
  1.2868 ++
  1.2869 ++	      /* I realize now that sub_frag is misnamed.  It's
  1.2870 ++		 actually add_frag which is subtracted in this
  1.2871 ++		 case...  */
  1.2872 ++	      diff = bfd_get_signed_32(abfd, contents + rela->r_offset);
  1.2873 ++	      diff += (r_data->sub_frag->offset_adjust
  1.2874 ++		       - r_data->add_frag->offset_adjust);
  1.2875 ++	      bfd_put_32(abfd, diff, contents + rela->r_offset);
  1.2876 ++
  1.2877 ++	      RDBG("   0x%lx: DIFF32 updated: 0x%lx\n", rela->r_offset, diff);
  1.2878 ++
  1.2879 ++	      release_contents(sec, contents);
  1.2880 ++	    }
  1.2881 ++	}
  1.2882 ++      else
  1.2883 ++	BFD_ASSERT(!r_data->sub_frag);
  1.2884 ++    }
  1.2885 ++
  1.2886 ++  ret = TRUE;
  1.2887 ++
  1.2888 ++ out:
  1.2889 ++  release_internal_relocs(sec, relocs);
  1.2890 ++  return ret;
  1.2891 ++}
  1.2892 ++
  1.2893 ++static bfd_boolean
  1.2894 ++avr32_move_data(bfd *abfd, asection *sec, struct bfd_link_info *info)
  1.2895 ++{
  1.2896 ++  struct elf_avr32_link_hash_table *htab;
  1.2897 ++  struct avr32_relax_data *rd;
  1.2898 ++  struct fragment *frag, *fragend;
  1.2899 ++  Elf_Internal_Rela *relocs = NULL;
  1.2900 ++  bfd_byte *contents = NULL;
  1.2901 ++  unsigned int i;
  1.2902 ++  bfd_boolean ret = FALSE;
  1.2903 ++
  1.2904 ++  htab = avr32_elf_hash_table(info);
  1.2905 ++  rd = avr32_relax_data(sec);
  1.2906 ++
  1.2907 ++  if (!htab->symbols_adjusted)
  1.2908 ++    if (!adjust_syms(info))
  1.2909 ++      return FALSE;
  1.2910 ++
  1.2911 ++  if (rd->is_relaxable)
  1.2912 ++    {
  1.2913 ++      /* Resize the section first, so that we can be sure that enough
  1.2914 ++	 memory is allocated in case the section has grown.  */
  1.2915 ++      if (sec->size > sec->rawsize
  1.2916 ++	  && elf_section_data(sec)->this_hdr.contents)
  1.2917 ++	{
  1.2918 ++	  /* We must not use cached data if the section has grown.  */
  1.2919 ++	  free(elf_section_data(sec)->this_hdr.contents);
  1.2920 ++	  elf_section_data(sec)->this_hdr.contents = NULL;
  1.2921 ++	}
  1.2922 ++
  1.2923 ++      relocs = retrieve_internal_relocs(abfd, sec, info->keep_memory);
  1.2924 ++      if (!relocs)
  1.2925 ++	goto out;
  1.2926 ++      contents = retrieve_contents(abfd, sec, info->keep_memory);
  1.2927 ++      if (!contents)
  1.2928 ++	goto out;
  1.2929 ++
  1.2930 ++      fragend = rd->frag + rd->frag_count;
  1.2931 ++
  1.2932 ++      RDBG("move_data: %s<%s>: relocs=%p, contents=%p\n",
  1.2933 ++	   abfd->filename, sec->name, relocs, contents);
  1.2934 ++
  1.2935 ++      /* First, move the data into place. We must take care to move
  1.2936 ++	 frags in the right order so that we don't accidentally
  1.2937 ++	 overwrite parts of the next frag.  */
  1.2938 ++      for (frag = rd->frag; frag < fragend; frag++)
  1.2939 ++	{
  1.2940 ++	  RDBG("    0x%08lx%c0x%x: size 0x%lx%c0x%x\n",
  1.2941 ++	       frag->offset, frag->offset_adjust >= 0 ? '+' : '-',
  1.2942 ++	       abs(frag->offset_adjust),
  1.2943 ++	       frag->size, frag->size_adjust >= 0 ? '+' : '-',
  1.2944 ++	       abs(frag->size_adjust));
  1.2945 ++	  if (frag->offset_adjust > 0)
  1.2946 ++	    {
  1.2947 ++	      struct fragment *prev = frag - 1;
  1.2948 ++	      struct fragment *last;
  1.2949 ++
  1.2950 ++	      for (last = frag; last < fragend && last->offset_adjust > 0;
  1.2951 ++		   last++) ;
  1.2952 ++
  1.2953 ++	      if (last == fragend)
  1.2954 ++		last--;
  1.2955 ++
  1.2956 ++	      for (frag = last; frag != prev; frag--)
  1.2957 ++		{
  1.2958 ++		  if (frag->offset_adjust
  1.2959 ++		      && frag->size + frag->size_adjust > 0)
  1.2960 ++		    {
  1.2961 ++		      RDBG("memmove 0x%lx -> 0x%lx (size %lu)\n",
  1.2962 ++			   frag->offset, frag->offset + frag->offset_adjust,
  1.2963 ++			   frag->size + frag->size_adjust);
  1.2964 ++		      memmove(contents + frag->offset + frag->offset_adjust,
  1.2965 ++			      contents + frag->offset,
  1.2966 ++			      frag->size + frag->size_adjust);
  1.2967 ++		    }
  1.2968 ++		}
  1.2969 ++	      frag = last;
  1.2970 ++	    }
  1.2971 ++	  else if (frag->offset_adjust && frag->size + frag->size_adjust > 0)
  1.2972 ++	    {
  1.2973 ++	      RDBG("memmove 0x%lx -> 0x%lx (size %lu)\n",
  1.2974 ++		   frag->offset, frag->offset + frag->offset_adjust,
  1.2975 ++		   frag->size + frag->size_adjust);
  1.2976 ++	      memmove(contents + frag->offset + frag->offset_adjust,
  1.2977 ++		      contents + frag->offset,
  1.2978 ++		      frag->size + frag->size_adjust);
  1.2979 ++	    }
  1.2980 ++	}
  1.2981 ++
  1.2982 ++      i = 0;
  1.2983 ++
  1.2984 ++      for (frag = rd->frag; frag < fragend; frag++)
  1.2985 ++	{
  1.2986 ++	  const struct relax_state *state, *istate;
  1.2987 ++	  struct avr32_reloc_data *r_data = NULL;
  1.2988 ++
  1.2989 ++	  istate = &relax_state[frag->initial_state];
  1.2990 ++	  state = &relax_state[frag->state];
  1.2991 ++
  1.2992 ++	  if (rd->reloc_data)
  1.2993 ++	    r_data = &rd->reloc_data[frag->rela - relocs];
  1.2994 ++
  1.2995 ++	  BFD_ASSERT((long)(frag->size + frag->size_adjust) >= 0);
  1.2996 ++	  BFD_ASSERT(state->reftype != REF_CPOOL
  1.2997 ++		     || r_data->add_frag->refcount > 0);
  1.2998 ++
  1.2999 ++	  if (istate->reftype == REF_CPOOL && state->reftype != REF_CPOOL)
  1.3000 ++	    {
  1.3001 ++	      struct fragment *ifrag;
  1.3002 ++
  1.3003 ++	      /* An indirect reference through the cpool has been
  1.3004 ++		 converted to a direct reference.  We must update the
  1.3005 ++		 reloc to point to the symbol itself instead of the
  1.3006 ++		 constant pool entry.  The reloc type will be updated
  1.3007 ++		 later.  */
  1.3008 ++	      ifrag = r_data->add_frag;
  1.3009 ++	      frag->rela->r_info = ifrag->rela->r_info;
  1.3010 ++	      frag->rela->r_addend = ifrag->rela->r_addend;
  1.3011 ++
  1.3012 ++	      /* Copy the reloc data so the addend will be adjusted
  1.3013 ++		 correctly later.  */
  1.3014 ++	      *r_data = rd->reloc_data[ifrag->rela - relocs];
  1.3015 ++	    }
  1.3016 ++
  1.3017 ++	  /* Move all relocs covered by this frag.  */
  1.3018 ++	  if (frag->rela)
  1.3019 ++	    BFD_ASSERT(&relocs[i] <= frag->rela);
  1.3020 ++	  else
  1.3021 ++	    BFD_ASSERT((frag + 1) == fragend && frag->state == RS_NONE);
  1.3022 ++
  1.3023 ++	  if (frag == rd->frag)
  1.3024 ++	    BFD_ASSERT(i == 0);
  1.3025 ++	  else
  1.3026 ++	    BFD_ASSERT(&relocs[i] > frag[-1].rela);
  1.3027 ++
  1.3028 ++	  /* If non-null, frag->rela is the last relocation in the
  1.3029 ++	     fragment.  frag->rela can only be null in the last
  1.3030 ++	     fragment, so in that case, we'll just do the rest.  */
  1.3031 ++	  for (; (i < sec->reloc_count
  1.3032 ++		  && (!frag->rela || &relocs[i] <= frag->rela)); i++)
  1.3033 ++	    {
  1.3034 ++	      RDBG("[%4u] r_offset 0x%08lx -> 0x%08lx\n", i, relocs[i].r_offset,
  1.3035 ++		   relocs[i].r_offset + frag->offset_adjust);
  1.3036 ++	      relocs[i].r_offset += frag->offset_adjust;
  1.3037 ++	    }
  1.3038 ++
  1.3039 ++	  if (frag->refcount == 0)
  1.3040 ++	    {
  1.3041 ++	      /* If this frag is to be discarded, make sure we won't
  1.3042 ++		 relocate it later on.  */
  1.3043 ++	      BFD_ASSERT(frag->state == RS_CPENT);
  1.3044 ++	      frag->rela->r_info = ELF_R_INFO(ELF_R_SYM(frag->rela->r_info),
  1.3045 ++					    R_AVR32_NONE);
  1.3046 ++	    }
  1.3047 ++	  else if (frag->state == RS_ALIGN)
  1.3048 ++	    {
  1.3049 ++	      bfd_vma addr, addr_end;
  1.3050 ++
  1.3051 ++	      addr = frag->rela->r_offset;
  1.3052 ++	      addr_end = (frag->offset + frag->offset_adjust
  1.3053 ++			  + frag->size + frag->size_adjust);
  1.3054 ++
  1.3055 ++	      /* If the section is executable, insert NOPs.
  1.3056 ++		 Otherwise, insert zeroes.  */
  1.3057 ++	      if (sec->flags & SEC_CODE)
  1.3058 ++		{
  1.3059 ++		  if (addr & 1)
  1.3060 ++		    {
  1.3061 ++		      bfd_put_8(abfd, 0, contents + addr);
  1.3062 ++		      addr++;
  1.3063 ++		    }
  1.3064 ++
  1.3065 ++		  BFD_ASSERT(!((addr_end - addr) & 1));
  1.3066 ++
  1.3067 ++		  while (addr < addr_end)
  1.3068 ++		    {
  1.3069 ++		      bfd_put_16(abfd, NOP_OPCODE, contents + addr);
  1.3070 ++		      addr += 2;
  1.3071 ++		    }
  1.3072 ++		}
  1.3073 ++	      else
  1.3074 ++		memset(contents + addr, 0, addr_end - addr);
  1.3075 ++	    }
  1.3076 ++	  else if (state->opcode_mask)
  1.3077 ++	    {
  1.3078 ++	      bfd_vma insn;
  1.3079 ++
  1.3080 ++	      /* Update the opcode and the relocation type unless it's a
  1.3081 ++		 "special" relax state (i.e. RS_NONE, RS_ALIGN or
  1.3082 ++		 RS_CPENT.), in which case the opcode mask is zero.  */
  1.3083 ++	      insn = bfd_get_32(abfd, contents + frag->rela->r_offset);
  1.3084 ++	      insn &= ~state->opcode_mask;
  1.3085 ++	      insn |= state->opcode;
  1.3086 ++	      RDBG("    0x%lx: inserting insn %08lx\n",
  1.3087 ++		   frag->rela->r_offset, insn);
  1.3088 ++	      bfd_put_32(abfd, insn, contents + frag->rela->r_offset);
  1.3089 ++
  1.3090 ++	      frag->rela->r_info = ELF_R_INFO(ELF_R_SYM(frag->rela->r_info),
  1.3091 ++					      state->r_type);
  1.3092 ++	    }
  1.3093 ++
  1.3094 ++	  if ((frag + 1) == fragend)
  1.3095 ++	    BFD_ASSERT((frag->offset + frag->size + frag->offset_adjust
  1.3096 ++			+ frag->size_adjust) == sec->size);
  1.3097 ++	  else
  1.3098 ++	    BFD_ASSERT((frag->offset + frag->size + frag->offset_adjust
  1.3099 ++			+ frag->size_adjust)
  1.3100 ++		       == (frag[1].offset + frag[1].offset_adjust));
  1.3101 ++	}
  1.3102 ++    }
  1.3103 ++
  1.3104 ++  /* Adjust reloc addends and DIFF32 differences */
  1.3105 ++  if (!adjust_relocs(abfd, sec, info))
  1.3106 ++    return FALSE;
  1.3107 ++
  1.3108 ++  ret = TRUE;
  1.3109 ++
  1.3110 ++ out:
  1.3111 ++  release_contents(sec, contents);
  1.3112 ++  release_internal_relocs(sec, relocs);
  1.3113 ++  return ret;
  1.3114 ++}
  1.3115 ++
  1.3116 ++static bfd_boolean
  1.3117 ++avr32_elf_relax_section(bfd *abfd, asection *sec,
  1.3118 ++			struct bfd_link_info *info, bfd_boolean *again)
  1.3119 ++{
  1.3120 ++  struct elf_avr32_link_hash_table *htab;
  1.3121 ++  struct avr32_relax_data *rd;
  1.3122 ++
  1.3123 ++  *again = FALSE;
  1.3124 ++  if (info->relocatable)
  1.3125 ++    return TRUE;
  1.3126 ++
  1.3127 ++  htab = avr32_elf_hash_table(info);
  1.3128 ++  if ((!(sec->flags & SEC_RELOC) || sec->reloc_count == 0)
  1.3129 ++      && sec != htab->sgot)
  1.3130 ++    return TRUE;
  1.3131 ++
  1.3132 ++  if (!htab->relocations_analyzed)
  1.3133 ++    {
  1.3134 ++      if (!analyze_relocations(info))
  1.3135 ++	return FALSE;
  1.3136 ++      htab->relocations_analyzed = TRUE;
  1.3137 ++    }
  1.3138 ++
  1.3139 ++  rd = avr32_relax_data(sec);
  1.3140 ++
  1.3141 ++  if (rd->iteration != htab->relax_iteration)
  1.3142 ++    {
  1.3143 ++      if (!htab->repeat_pass)
  1.3144 ++	htab->relax_pass++;
  1.3145 ++      htab->relax_iteration++;
  1.3146 ++      htab->repeat_pass = FALSE;
  1.3147 ++    }
  1.3148 ++
  1.3149 ++  rd->iteration++;
  1.3150 ++
  1.3151 ++  switch (htab->relax_pass)
  1.3152 ++    {
  1.3153 ++    case RELAX_PASS_SIZE_FRAGS:
  1.3154 ++      if (!avr32_size_frags(abfd, sec, info))
  1.3155 ++	return FALSE;
  1.3156 ++      *again = TRUE;
  1.3157 ++      break;
  1.3158 ++    case RELAX_PASS_MOVE_DATA:
  1.3159 ++      if (!avr32_move_data(abfd, sec, info))
  1.3160 ++	return FALSE;
  1.3161 ++      break;
  1.3162 ++  }
  1.3163 ++
  1.3164 ++  return TRUE;
  1.3165 ++}
  1.3166 ++
  1.3167 ++
  1.3168 ++/* Relocation */
  1.3169 ++
  1.3170 ++static bfd_reloc_status_type
  1.3171 ++avr32_check_reloc_value(asection *sec, Elf_Internal_Rela *rela,
  1.3172 ++			bfd_signed_vma relocation, reloc_howto_type *howto);
  1.3173 ++static bfd_reloc_status_type
  1.3174 ++avr32_final_link_relocate(reloc_howto_type *howto, bfd *input_bfd,
  1.3175 ++			  asection *input_section, bfd_byte *contents,
  1.3176 ++			  Elf_Internal_Rela *rel, bfd_vma value);
  1.3177 ++static bfd_boolean
  1.3178 ++avr32_elf_relocate_section(bfd *output_bfd, struct bfd_link_info *info,
  1.3179 ++			   bfd *input_bfd, asection *input_section,
  1.3180 ++			   bfd_byte *contents, Elf_Internal_Rela *relocs,
  1.3181 ++			   Elf_Internal_Sym *local_syms,
  1.3182 ++			   asection **local_sections);
  1.3183 ++
  1.3184 ++
  1.3185 ++#define symbol_address(symbol) \
  1.3186 ++  symbol->value + symbol->section->output_section->vma \
  1.3187 ++  + symbol->section->output_offset
  1.3188 ++
  1.3189 ++#define avr32_elf_insert_field(size, field, abfd, reloc_entry, data)	\
  1.3190 ++  do									\
  1.3191 ++    {									\
  1.3192 ++      unsigned long x;							\
  1.3193 ++      x = bfd_get_##size (abfd, data + reloc_entry->address);		\
  1.3194 ++      x &= ~reloc_entry->howto->dst_mask;				\
  1.3195 ++      x |= field & reloc_entry->howto->dst_mask;			\
  1.3196 ++      bfd_put_##size (abfd, (bfd_vma) x, data + reloc_entry->address);	\
  1.3197 ++    }									\
  1.3198 ++  while(0)
  1.3199 ++
  1.3200 ++static bfd_reloc_status_type
  1.3201 ++avr32_check_reloc_value(asection *sec ATTRIBUTE_UNUSED,
  1.3202 ++			Elf_Internal_Rela *rela ATTRIBUTE_UNUSED,
  1.3203 ++			bfd_signed_vma relocation,
  1.3204 ++			reloc_howto_type *howto)
  1.3205 ++{
  1.3206 ++  bfd_vma reloc_u;
  1.3207 ++
  1.3208 ++  /* We take "complain_overflow_dont" to mean "don't complain on
  1.3209 ++     alignment either". This way, we don't have to special-case
  1.3210 ++     R_AVR32_HI16 */
  1.3211 ++  if (howto->complain_on_overflow == complain_overflow_dont)
  1.3212 ++    return bfd_reloc_ok;
  1.3213 ++
  1.3214 ++  /* Check if the value is correctly aligned */
  1.3215 ++  if (relocation & ((1 << howto->rightshift) - 1))
  1.3216 ++    {
  1.3217 ++      RDBG("misaligned: %s<%s+%lx>: %s: 0x%lx (align %u)\n",
  1.3218 ++	   sec->owner->filename, sec->name, rela->r_offset,
  1.3219 ++	   howto->name, relocation, howto->rightshift);
  1.3220 ++      return bfd_reloc_overflow;
  1.3221 ++    }
  1.3222 ++
  1.3223 ++  /* Now, get rid of the unnecessary bits */
  1.3224 ++  relocation >>= howto->rightshift;
  1.3225 ++  reloc_u = (bfd_vma)relocation;
  1.3226 ++
  1.3227 ++  switch (howto->complain_on_overflow)
  1.3228 ++    {
  1.3229 ++    case complain_overflow_unsigned:
  1.3230 ++    case complain_overflow_bitfield:
  1.3231 ++      if (reloc_u > (unsigned long)((1 << howto->bitsize) - 1))
  1.3232 ++	{
  1.3233 ++	  RDBG("unsigned overflow: %s<%s+%lx>: %s: 0x%lx (size %u)\n",
  1.3234 ++	       sec->owner->filename, sec->name, rela->r_offset,
  1.3235 ++	       howto->name, reloc_u, howto->bitsize);
  1.3236 ++	  RDBG("reloc vma: 0x%lx\n",
  1.3237 ++	       sec->output_section->vma + sec->output_offset + rela->r_offset);
  1.3238 ++
  1.3239 ++	  return bfd_reloc_overflow;
  1.3240 ++	}
  1.3241 ++      break;
  1.3242 ++    case complain_overflow_signed:
  1.3243 ++      if (relocation > (1 << (howto->bitsize - 1)) - 1)
  1.3244 ++	{
  1.3245 ++	  RDBG("signed overflow: %s<%s+%lx>: %s: 0x%lx (size %u)\n",
  1.3246 ++	       sec->owner->filename, sec->name, rela->r_offset,
  1.3247 ++	       howto->name, reloc_u, howto->bitsize);
  1.3248 ++	  RDBG("reloc vma: 0x%lx\n",
  1.3249 ++	       sec->output_section->vma + sec->output_offset + rela->r_offset);
  1.3250 ++
  1.3251 ++	  return bfd_reloc_overflow;
  1.3252 ++	}
  1.3253 ++      if (relocation < -(1 << (howto->bitsize - 1)))
  1.3254 ++	{
  1.3255 ++	  RDBG("signed overflow: %s<%s+%lx>: %s: -0x%lx (size %u)\n",
  1.3256 ++	       sec->owner->filename, sec->name, rela->r_offset,
  1.3257 ++	       howto->name, -relocation, howto->bitsize);
  1.3258 ++	  RDBG("reloc vma: 0x%lx\n",
  1.3259 ++	       sec->output_section->vma + sec->output_offset + rela->r_offset);
  1.3260 ++
  1.3261 ++	  return bfd_reloc_overflow;
  1.3262 ++	}
  1.3263 ++      break;
  1.3264 ++    default:
  1.3265 ++      abort();
  1.3266 ++    }
  1.3267 ++
  1.3268 ++  return bfd_reloc_ok;
  1.3269 ++}
  1.3270 ++
  1.3271 ++
  1.3272 ++static bfd_reloc_status_type
  1.3273 ++avr32_final_link_relocate(reloc_howto_type *howto,
  1.3274 ++			  bfd *input_bfd,
  1.3275 ++			  asection *input_section,
  1.3276 ++			  bfd_byte *contents,
  1.3277 ++			  Elf_Internal_Rela *rel,
  1.3278 ++			  bfd_vma value)
  1.3279 ++{
  1.3280 ++  bfd_vma field;
  1.3281 ++  bfd_vma relocation;
  1.3282 ++  bfd_reloc_status_type status;
  1.3283 ++  bfd_byte *p = contents + rel->r_offset;
  1.3284 ++  unsigned long x;
  1.3285 ++
  1.3286 ++  pr_debug("  (6b) final link relocate\n");
  1.3287 ++
  1.3288 ++  /* Sanity check the address */
  1.3289 ++  if (rel->r_offset > input_section->size)
  1.3290 ++    {
  1.3291 ++      (*_bfd_error_handler)
  1.3292 ++	("%B: %A+0x%lx: offset out of range (section size: 0x%lx)",
  1.3293 ++	 input_bfd, input_section, rel->r_offset, input_section->size);
  1.3294 ++      return bfd_reloc_outofrange;
  1.3295 ++    }
  1.3296 ++
  1.3297 ++  relocation = value + rel->r_addend;
  1.3298 ++
  1.3299 ++  if (howto->pc_relative)
  1.3300 ++    {
  1.3301 ++      bfd_vma addr;
  1.3302 ++
  1.3303 ++      addr = input_section->output_section->vma
  1.3304 ++	+ input_section->output_offset + rel->r_offset;
  1.3305 ++      addr &= ~0UL << howto->rightshift;
  1.3306 ++      relocation -= addr;
  1.3307 ++    }
  1.3308 ++
  1.3309 ++  switch (ELF32_R_TYPE(rel->r_info))
  1.3310 ++    {
  1.3311 ++    case R_AVR32_16N_PCREL:
  1.3312 ++      /* sub reg, pc, . - (sym + addend) */
  1.3313 ++      relocation = -relocation;
  1.3314 ++      break;
  1.3315 ++    }
  1.3316 ++
  1.3317 ++  status = avr32_check_reloc_value(input_section, rel, relocation, howto);
  1.3318 ++
  1.3319 ++  relocation >>= howto->rightshift;
  1.3320 ++  if (howto->bitsize == 21)
  1.3321 ++    field = (relocation & 0xffff)
  1.3322 ++      | ((relocation & 0x10000) << 4)
  1.3323 ++      | ((relocation & 0x1e0000) << 8);
  1.3324 ++  else if (howto->bitsize == 12)
  1.3325 ++    field = (relocation & 0xff) | ((relocation & 0xf00) << 4);
  1.3326 ++  else if (howto->bitsize == 10)
  1.3327 ++    field = ((relocation & 0xff) << 4)
  1.3328 ++      | ((relocation & 0x300) >> 8);
  1.3329 ++  else
  1.3330 ++    field = relocation << howto->bitpos;
  1.3331 ++
  1.3332 ++  switch (howto->size)
  1.3333 ++    {
  1.3334 ++    case 0:
  1.3335 ++      x = bfd_get_8 (input_bfd, p);
  1.3336 ++      x &= ~howto->dst_mask;
  1.3337 ++      x |= field & howto->dst_mask;
  1.3338 ++      bfd_put_8 (input_bfd, (bfd_vma) x, p);
  1.3339 ++      break;
  1.3340 ++    case 1:
  1.3341 ++      x = bfd_get_16 (input_bfd, p);
  1.3342 ++      x &= ~howto->dst_mask;
  1.3343 ++      x |= field & howto->dst_mask;
  1.3344 ++      bfd_put_16 (input_bfd, (bfd_vma) x, p);
  1.3345 ++      break;
  1.3346 ++    case 2:
  1.3347 ++      x = bfd_get_32 (input_bfd, p);
  1.3348 ++      x &= ~howto->dst_mask;
  1.3349 ++      x |= field & howto->dst_mask;
  1.3350 ++      bfd_put_32 (input_bfd, (bfd_vma) x, p);
  1.3351 ++      break;
  1.3352 ++    default:
  1.3353 ++      abort();
  1.3354 ++    }
  1.3355 ++
  1.3356 ++  return status;
  1.3357 ++}
  1.3358 ++
  1.3359 ++/* (6) Apply relocations to the normal (non-dynamic) sections */
  1.3360 ++
  1.3361 ++static bfd_boolean
  1.3362 ++avr32_elf_relocate_section(bfd *output_bfd, struct bfd_link_info *info,
  1.3363 ++			   bfd *input_bfd, asection *input_section,
  1.3364 ++			   bfd_byte *contents, Elf_Internal_Rela *relocs,
  1.3365 ++			   Elf_Internal_Sym *local_syms,
  1.3366 ++			   asection **local_sections)
  1.3367 ++{
  1.3368 ++  struct elf_avr32_link_hash_table *htab;
  1.3369 ++  Elf_Internal_Shdr *symtab_hdr;
  1.3370 ++  Elf_Internal_Rela *rel, *relend;
  1.3371 ++  struct elf_link_hash_entry **sym_hashes;
  1.3372 ++  struct got_entry **local_got_ents;
  1.3373 ++  asection *sgot;
  1.3374 ++  asection *srelgot;
  1.3375 ++
  1.3376 ++  pr_debug("(6) relocate section %s:<%s> (size 0x%lx)\n",
  1.3377 ++	   input_bfd->filename, input_section->name, input_section->size);
  1.3378 ++
  1.3379 ++  /* If we're doing a partial link, we don't have to do anything since
  1.3380 ++     we're using RELA relocations */
  1.3381 ++  if (info->relocatable)
  1.3382 ++    return TRUE;
  1.3383 ++
  1.3384 ++  htab = avr32_elf_hash_table(info);
  1.3385 ++  symtab_hdr = &elf_tdata(input_bfd)->symtab_hdr;
  1.3386 ++  sym_hashes = elf_sym_hashes(input_bfd);
  1.3387 ++  local_got_ents = elf_local_got_ents(input_bfd);
  1.3388 ++  sgot = htab->sgot;
  1.3389 ++  srelgot = htab->srelgot;
  1.3390 ++
  1.3391 ++  relend = relocs + input_section->reloc_count;
  1.3392 ++  for (rel = relocs; rel < relend; rel++)
  1.3393 ++    {
  1.3394 ++      unsigned long r_type, r_symndx;
  1.3395 ++      reloc_howto_type *howto;
  1.3396 ++      Elf_Internal_Sym *sym = NULL;
  1.3397 ++      struct elf_link_hash_entry *h = NULL;
  1.3398 ++      asection *sec = NULL;
  1.3399 ++      bfd_vma value;
  1.3400 ++      bfd_vma offset;
  1.3401 ++      bfd_reloc_status_type status;
  1.3402 ++
  1.3403 ++      r_type = ELF32_R_TYPE(rel->r_info);
  1.3404 ++      r_symndx = ELF32_R_SYM(rel->r_info);
  1.3405 ++
  1.3406 ++      if (r_type == R_AVR32_NONE
  1.3407 ++	  || r_type == R_AVR32_ALIGN
  1.3408 ++	  || r_type == R_AVR32_DIFF32
  1.3409 ++	  || r_type == R_AVR32_DIFF16
  1.3410 ++	  || r_type == R_AVR32_DIFF8)
  1.3411 ++	continue;
  1.3412 ++
  1.3413 ++      /* Sanity check */
  1.3414 ++      if (r_type > R_AVR32_max)
  1.3415 ++	{
  1.3416 ++	  bfd_set_error(bfd_error_bad_value);
  1.3417 ++	  return FALSE;
  1.3418 ++	}
  1.3419 ++
  1.3420 ++      howto = &elf_avr32_howto_table[r_type];
  1.3421 ++
  1.3422 ++      if (r_symndx < symtab_hdr->sh_info)
  1.3423 ++	{
  1.3424 ++	  sym = local_syms + r_symndx;
  1.3425 ++	  sec = local_sections[r_symndx];
  1.3426 ++
  1.3427 ++	  pr_debug("  (6a) processing %s against local symbol %lu\n",
  1.3428 ++		   howto->name, r_symndx);
  1.3429 ++
  1.3430 ++	  /* The following function changes rel->r_addend behind our back. */
  1.3431 ++	  value = _bfd_elf_rela_local_sym(output_bfd, sym, &sec, rel);
  1.3432 ++	  pr_debug("    => value: %lx, addend: %lx\n", value, rel->r_addend);
  1.3433 ++	}
  1.3434 ++      else
  1.3435 ++	{
  1.3436 ++	  if (sym_hashes == NULL)
  1.3437 ++	    return FALSE;
  1.3438 ++
  1.3439 ++	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
  1.3440 ++	  while (h->root.type == bfd_link_hash_indirect
  1.3441 ++		 || h->root.type == bfd_link_hash_warning)
  1.3442 ++	    h = (struct elf_link_hash_entry *)h->root.u.i.link;
  1.3443 ++
  1.3444 ++	  pr_debug("  (6a) processing %s against symbol %s\n",
  1.3445 ++		   howto->name, h->root.root.string);
  1.3446 ++
  1.3447 ++	  if (h->root.type == bfd_link_hash_defined
  1.3448 ++	      || h->root.type == bfd_link_hash_defweak)
  1.3449 ++	    {
  1.3450 ++	      bfd_boolean dyn;
  1.3451 ++
  1.3452 ++	      dyn = htab->root.dynamic_sections_created;
  1.3453 ++	      sec = h->root.u.def.section;
  1.3454 ++
  1.3455 ++	      if (sec->output_section)
  1.3456 ++		value = (h->root.u.def.value
  1.3457 ++			 + sec->output_section->vma
  1.3458 ++			 + sec->output_offset);
  1.3459 ++	      else
  1.3460 ++		value = h->root.u.def.value;
  1.3461 ++	    }
  1.3462 ++	  else if (h->root.type == bfd_link_hash_undefweak)
  1.3463 ++	    value = 0;
  1.3464 ++	  else if (info->unresolved_syms_in_objects == RM_IGNORE
  1.3465 ++		   && ELF_ST_VISIBILITY(h->other) == STV_DEFAULT)
  1.3466 ++	    value = 0;
  1.3467 ++	  else
  1.3468 ++	    {
  1.3469 ++	      bfd_boolean err;
  1.3470 ++	      err = (info->unresolved_syms_in_objects == RM_GENERATE_ERROR
  1.3471 ++		     || ELF_ST_VISIBILITY(h->other) != STV_DEFAULT);
  1.3472 ++	      if (!info->callbacks->undefined_symbol
  1.3473 ++		  (info, h->root.root.string, input_bfd,
  1.3474 ++		   input_section, rel->r_offset, err))
  1.3475 ++		return FALSE;
  1.3476 ++	      value = 0;
  1.3477 ++	    }
  1.3478 ++
  1.3479 ++	  pr_debug("    => value: %lx, addend: %lx\n", value, rel->r_addend);
  1.3480 ++	}
  1.3481 ++
  1.3482 ++      switch (r_type)
  1.3483 ++	{
  1.3484 ++	case R_AVR32_GOT32:
  1.3485 ++	case R_AVR32_GOT16:
  1.3486 ++	case R_AVR32_GOT8:
  1.3487 ++	case R_AVR32_GOT21S:
  1.3488 ++	case R_AVR32_GOT18SW:
  1.3489 ++	case R_AVR32_GOT16S:
  1.3490 ++	case R_AVR32_GOT7UW:
  1.3491 ++	case R_AVR32_LDA_GOT:
  1.3492 ++	case R_AVR32_GOTCALL:
  1.3493 ++	  BFD_ASSERT(sgot != NULL);
  1.3494 ++
  1.3495 ++	  if (h != NULL)
  1.3496 ++	    {
  1.3497 ++	      BFD_ASSERT(h->got.glist->refcount > 0);
  1.3498 ++	      offset = h->got.glist->offset;
  1.3499 ++
  1.3500 ++	      BFD_ASSERT(offset < sgot->size);
  1.3501 ++	      if (!elf_hash_table(info)->dynamic_sections_created
  1.3502 ++		  || (h->def_regular
  1.3503 ++		      && (!info->shared
  1.3504 ++			  || info->symbolic
  1.3505 ++			  || h->dynindx == -1)))
  1.3506 ++		{
  1.3507 ++		  /* This is actually a static link, or it is a
  1.3508 ++		     -Bsymbolic link and the symbol is defined
  1.3509 ++		     locally, or the symbol was forced to be local.  */
  1.3510 ++		  bfd_put_32(output_bfd, value, sgot->contents + offset);
  1.3511 ++		}
  1.3512 ++	    }
  1.3513 ++	  else
  1.3514 ++	    {
  1.3515 ++	      BFD_ASSERT(local_got_ents &&
  1.3516 ++			 local_got_ents[r_symndx]->refcount > 0);
  1.3517 ++	      offset = local_got_ents[r_symndx]->offset;
  1.3518 ++
  1.3519 ++	      /* Local GOT entries don't have relocs.  If this is a
  1.3520 ++		 shared library, the dynamic linker will add the load
  1.3521 ++		 address to the initial value at startup.  */
  1.3522 ++	      BFD_ASSERT(offset < sgot->size);
  1.3523 ++	      pr_debug("Initializing GOT entry at offset %lu: 0x%lx\n",
  1.3524 ++		       offset, value);
  1.3525 ++	      bfd_put_32 (output_bfd, value, sgot->contents + offset);
  1.3526 ++	    }
  1.3527 ++
  1.3528 ++	  value = sgot->output_offset + offset;
  1.3529 ++	  pr_debug("GOT reference: New value %lx\n", value);
  1.3530 ++	  break;
  1.3531 ++
  1.3532 ++	case R_AVR32_GOTPC:
  1.3533 ++	  /* This relocation type is for constant pool entries used in
  1.3534 ++	     the calculation "Rd = PC - (PC - GOT)", where the
  1.3535 ++	     constant pool supplies the constant (PC - GOT)
  1.3536 ++	     offset. The symbol value + addend indicates where the
  1.3537 ++	     value of PC is taken. */
  1.3538 ++	  value -= sgot->output_section->vma;
  1.3539 ++	  break;
  1.3540 ++
  1.3541 ++	case R_AVR32_32_PCREL:
  1.3542 ++	  /* We must adjust r_offset to account for discarded data in
  1.3543 ++	     the .eh_frame section.  This is probably not the right
  1.3544 ++	     way to do this, since AFAICS all other architectures do
  1.3545 ++	     it some other way.  I just can't figure out how...  */
  1.3546 ++	  {
  1.3547 ++	    bfd_vma r_offset;
  1.3548 ++
  1.3549 ++	    r_offset = _bfd_elf_section_offset(output_bfd, info,
  1.3550 ++					       input_section,
  1.3551 ++					       rel->r_offset);
  1.3552 ++	    if (r_offset == (bfd_vma)-1
  1.3553 ++		|| r_offset == (bfd_vma)-2)
  1.3554 ++	      continue;
  1.3555 ++	    rel->r_offset = r_offset;
  1.3556 ++	  }
  1.3557 ++	  break;
  1.3558 ++
  1.3559 ++	case R_AVR32_32:
  1.3560 ++	  /* We need to emit a run-time relocation in the following cases:
  1.3561 ++	       - we're creating a shared library
  1.3562 ++	       - the symbol is not defined in any regular objects
  1.3563 ++
  1.3564 ++	     Of course, sections that aren't going to be part of the
  1.3565 ++	     run-time image will not get any relocs, and undefined
  1.3566 ++	     symbols won't have any either (only weak undefined
  1.3567 ++	     symbols should get this far).  */
  1.3568 ++	  if ((info->shared
  1.3569 ++	       || (elf_hash_table(info)->dynamic_sections_created
  1.3570 ++		   && h != NULL
  1.3571 ++		   && h->def_dynamic
  1.3572 ++		   && !h->def_regular))
  1.3573 ++	      && r_symndx != 0
  1.3574 ++	      && (input_section->flags & SEC_ALLOC))
  1.3575 ++	    {
  1.3576 ++	      Elf_Internal_Rela outrel;
  1.3577 ++	      bfd_byte *loc;
  1.3578 ++	      bfd_boolean skip, relocate;
  1.3579 ++	      struct elf_avr32_link_hash_entry *avrh;
  1.3580 ++
  1.3581 ++	      pr_debug("Going to generate dynamic reloc...\n");
  1.3582 ++
  1.3583 ++	      skip = FALSE;
  1.3584 ++	      relocate = FALSE;
  1.3585 ++
  1.3586 ++	      outrel.r_offset = _bfd_elf_section_offset(output_bfd, info,
  1.3587 ++							input_section,
  1.3588 ++							rel->r_offset);
  1.3589 ++	      if (outrel.r_offset == (bfd_vma)-1)
  1.3590 ++		skip = TRUE;
  1.3591 ++	      else if (outrel.r_offset == (bfd_vma)-2)
  1.3592 ++		skip = TRUE, relocate = TRUE;
  1.3593 ++
  1.3594 ++	      outrel.r_offset += (input_section->output_section->vma
  1.3595 ++				  + input_section->output_offset);
  1.3596 ++
  1.3597 ++	      pr_debug("    ... offset %lx, dynindx %ld\n",
  1.3598 ++		       outrel.r_offset, h ? h->dynindx : -1);
  1.3599 ++
  1.3600 ++	      if (skip)
  1.3601 ++		memset(&outrel, 0, sizeof(outrel));
  1.3602 ++	      else
  1.3603 ++		{
  1.3604 ++		  avrh = (struct elf_avr32_link_hash_entry *)h;
  1.3605 ++		  /* h->dynindx may be -1 if this symbol was marked to
  1.3606 ++		     become local.  */
  1.3607 ++		  if (h == NULL
  1.3608 ++		      || ((info->symbolic || h->dynindx == -1)
  1.3609 ++			  && h->def_regular))
  1.3610 ++		    {
  1.3611 ++		      relocate = TRUE;
  1.3612 ++		      outrel.r_info = ELF32_R_INFO(0, R_AVR32_RELATIVE);
  1.3613 ++		      outrel.r_addend = value + rel->r_addend;
  1.3614 ++		      pr_debug("    ... R_AVR32_RELATIVE\n");
  1.3615 ++		    }
  1.3616 ++		  else
  1.3617 ++		    {
  1.3618 ++		      BFD_ASSERT(h->dynindx != -1);
  1.3619 ++		      relocate = TRUE;
  1.3620 ++		      outrel.r_info = ELF32_R_INFO(h->dynindx, R_AVR32_GLOB_DAT);
  1.3621 ++		      outrel.r_addend = rel->r_addend;
  1.3622 ++		      pr_debug("    ... R_AVR32_GLOB_DAT\n");
  1.3623 ++		    }
  1.3624 ++		}
  1.3625 ++
  1.3626 ++	      pr_debug("srelgot reloc_count: %d, size %lu\n",
  1.3627 ++		       srelgot->reloc_count, srelgot->size);
  1.3628 ++
  1.3629 ++	      loc = srelgot->contents;
  1.3630 ++	      loc += srelgot->reloc_count++ * sizeof(Elf32_External_Rela);
  1.3631 ++	      bfd_elf32_swap_reloca_out(output_bfd, &outrel, loc);
  1.3632 ++
  1.3633 ++	      BFD_ASSERT(srelgot->reloc_count * sizeof(Elf32_External_Rela)
  1.3634 ++			 <= srelgot->size);
  1.3635 ++
  1.3636 ++	      if (!relocate)
  1.3637 ++		continue;
  1.3638 ++	    }
  1.3639 ++	  break;
  1.3640 ++	}
  1.3641 ++
  1.3642 ++      status = avr32_final_link_relocate(howto, input_bfd, input_section,
  1.3643 ++					 contents, rel, value);
  1.3644 ++
  1.3645 ++      switch (status)
  1.3646 ++	{
  1.3647 ++	case bfd_reloc_ok:
  1.3648 ++	  break;
  1.3649 ++
  1.3650 ++	case bfd_reloc_overflow:
  1.3651 ++	  {
  1.3652 ++	    const char *name;
  1.3653 ++
  1.3654 ++	    if (h != NULL)
  1.3655 ++	      name = h->root.root.string;
  1.3656 ++	    else
  1.3657 ++	      {
  1.3658 ++		name = bfd_elf_string_from_elf_section(input_bfd,
  1.3659 ++						       symtab_hdr->sh_link,
  1.3660 ++						       sym->st_name);
  1.3661 ++		if (name == NULL)
  1.3662 ++		  return FALSE;
  1.3663 ++		if (*name == '\0')
  1.3664 ++		  name = bfd_section_name(input_bfd, sec);
  1.3665 ++	      }
  1.3666 ++	    if (!((*info->callbacks->reloc_overflow)
  1.3667 ++		  (info, (h ? &h->root : NULL), name, howto->name,
  1.3668 ++		   rel->r_addend, input_bfd, input_section, rel->r_offset)))
  1.3669 ++	      return FALSE;
  1.3670 ++	  }
  1.3671 ++	  break;
  1.3672 ++
  1.3673 ++	case bfd_reloc_outofrange:
  1.3674 ++	default:
  1.3675 ++	  abort();
  1.3676 ++	}
  1.3677 ++    }
  1.3678 ++
  1.3679 ++  return TRUE;
  1.3680 ++}
  1.3681 ++
  1.3682 ++
  1.3683 ++/* Additional processing of dynamic sections after relocation */
  1.3684 ++
  1.3685 ++static bfd_boolean
  1.3686 ++avr32_elf_finish_dynamic_symbol(bfd *output_bfd, struct bfd_link_info *info,
  1.3687 ++				struct elf_link_hash_entry *h,
  1.3688 ++				Elf_Internal_Sym *sym);
  1.3689 ++static bfd_boolean
  1.3690 ++avr32_elf_finish_dynamic_sections(bfd *output_bfd, struct bfd_link_info *info);
  1.3691 ++
  1.3692 ++
  1.3693 ++/* (7) Initialize the contents of a dynamic symbol and/or emit
  1.3694 ++   relocations for it */
  1.3695 ++
  1.3696 ++static bfd_boolean
  1.3697 ++avr32_elf_finish_dynamic_symbol(bfd *output_bfd, struct bfd_link_info *info,
  1.3698 ++				struct elf_link_hash_entry *h,
  1.3699 ++				Elf_Internal_Sym *sym)
  1.3700 ++{
  1.3701 ++  struct elf_avr32_link_hash_table *htab;
  1.3702 ++  struct got_entry *got;
  1.3703 ++
  1.3704 ++  pr_debug("(7) finish dynamic symbol: %s\n", h->root.root.string);
  1.3705 ++
  1.3706 ++  htab = avr32_elf_hash_table(info);
  1.3707 ++  got = h->got.glist;
  1.3708 ++
  1.3709 ++  if (got && got->refcount > 0)
  1.3710 ++    {
  1.3711 ++      asection *sgot;
  1.3712 ++      asection *srelgot;
  1.3713 ++      Elf_Internal_Rela rel;
  1.3714 ++      bfd_byte *loc;
  1.3715 ++
  1.3716 ++      /* This symbol has an entry in the GOT. Set it up. */
  1.3717 ++      sgot = htab->sgot;
  1.3718 ++      srelgot = htab->srelgot;
  1.3719 ++      BFD_ASSERT(sgot && srelgot);
  1.3720 ++
  1.3721 ++      rel.r_offset = (sgot->output_section->vma
  1.3722 ++		      + sgot->output_offset
  1.3723 ++		      + got->offset);
  1.3724 ++
  1.3725 ++      /* If this is a static link, or it is a -Bsymbolic link and the
  1.3726 ++	 symbol is defined locally or was forced to be local because
  1.3727 ++	 of a version file, we just want to emit a RELATIVE reloc. The
  1.3728 ++	 entry in the global offset table will already have been
  1.3729 ++	 initialized in the relocate_section function. */
  1.3730 ++      if ((info->shared
  1.3731 ++	   && !info->symbolic
  1.3732 ++	   && h->dynindx != -1)
  1.3733 ++	  || (htab->root.dynamic_sections_created
  1.3734 ++	      && h->def_dynamic
  1.3735 ++	      && !h->def_regular))
  1.3736 ++	{
  1.3737 ++	  bfd_put_32(output_bfd, 0, sgot->contents + got->offset);
  1.3738 ++	  rel.r_info = ELF32_R_INFO(h->dynindx, R_AVR32_GLOB_DAT);
  1.3739 ++	  rel.r_addend = 0;
  1.3740 ++
  1.3741 ++	  pr_debug("GOT reloc R_AVR32_GLOB_DAT, dynindx: %ld\n", h->dynindx);
  1.3742 ++	  pr_debug("    srelgot reloc_count: %d, size: %lu\n",
  1.3743 ++		   srelgot->reloc_count, srelgot->size);
  1.3744 ++
  1.3745 ++	  loc = (srelgot->contents
  1.3746 ++		 + srelgot->reloc_count++ * sizeof(Elf32_External_Rela));
  1.3747 ++	  bfd_elf32_swap_reloca_out(output_bfd, &rel, loc);
  1.3748 ++
  1.3749 ++	  BFD_ASSERT(srelgot->reloc_count * sizeof(Elf32_External_Rela)
  1.3750 ++		     <= srelgot->size);
  1.3751 ++	}
  1.3752 ++    }
  1.3753 ++
  1.3754 ++  /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute */
  1.3755 ++  if (strcmp(h->root.root.string, "_DYNAMIC") == 0
  1.3756 ++      || strcmp(h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
  1.3757 ++    sym->st_shndx = SHN_ABS;
  1.3758 ++
  1.3759 ++  return TRUE;
  1.3760 ++}
  1.3761 ++
  1.3762 ++/* (8) Do any remaining initialization of the dynamic sections */
  1.3763 ++
  1.3764 ++static bfd_boolean
  1.3765 ++avr32_elf_finish_dynamic_sections(bfd *output_bfd, struct bfd_link_info *info)
  1.3766 ++{
  1.3767 ++  struct elf_avr32_link_hash_table *htab;
  1.3768 ++  asection *sgot, *sdyn;
  1.3769 ++
  1.3770 ++  pr_debug("(8) finish dynamic sections\n");
  1.3771 ++
  1.3772 ++  htab = avr32_elf_hash_table(info);
  1.3773 ++  sgot = htab->sgot;
  1.3774 ++  sdyn = bfd_get_section_by_name(htab->root.dynobj, ".dynamic");
  1.3775 ++
  1.3776 ++  if (htab->root.dynamic_sections_created)
  1.3777 ++    {
  1.3778 ++      Elf32_External_Dyn *dyncon, *dynconend;
  1.3779 ++
  1.3780 ++      BFD_ASSERT(sdyn && sgot && sgot->size >= AVR32_GOT_HEADER_SIZE);
  1.3781 ++
  1.3782 ++      dyncon = (Elf32_External_Dyn *)sdyn->contents;
  1.3783 ++      dynconend = (Elf32_External_Dyn *)(sdyn->contents + sdyn->size);
  1.3784 ++      for (; dyncon < dynconend; dyncon++)
  1.3785 ++	{
  1.3786 ++	  Elf_Internal_Dyn dyn;
  1.3787 ++	  asection *s;
  1.3788 ++
  1.3789 ++	  bfd_elf32_swap_dyn_in(htab->root.dynobj, dyncon, &dyn);
  1.3790 ++
  1.3791 ++	  switch (dyn.d_tag)
  1.3792 ++	    {
  1.3793 ++	    default:
  1.3794 ++	      break;
  1.3795 ++
  1.3796 ++	    case DT_PLTGOT:
  1.3797 ++	      s = sgot->output_section;
  1.3798 ++	      BFD_ASSERT(s != NULL);
  1.3799 ++	      dyn.d_un.d_ptr = s->vma;
  1.3800 ++	      bfd_elf32_swap_dyn_out(output_bfd, &dyn, dyncon);
  1.3801 ++	      break;
  1.3802 ++
  1.3803 ++	    case DT_AVR32_GOTSZ:
  1.3804 ++	      s = sgot->output_section;
  1.3805 ++	      BFD_ASSERT(s != NULL);
  1.3806 ++	      dyn.d_un.d_val = s->size;
  1.3807 ++	      bfd_elf32_swap_dyn_out(output_bfd, &dyn, dyncon);
  1.3808 ++	      break;
  1.3809 ++	    }
  1.3810 ++	}
  1.3811 ++
  1.3812 ++      /* Fill in the first two entries in the global offset table */
  1.3813 ++      bfd_put_32(output_bfd,
  1.3814 ++		 sdyn->output_section->vma + sdyn->output_offset,
  1.3815 ++		 sgot->contents);
  1.3816 ++
  1.3817 ++      /* The runtime linker will fill this one in with the address of
  1.3818 ++	 the run-time link map */
  1.3819 ++      bfd_put_32(output_bfd, 0, sgot->contents + 4);
  1.3820 ++    }
  1.3821 ++
  1.3822 ++  if (sgot)
  1.3823 ++    elf_section_data(sgot->output_section)->this_hdr.sh_entsize = 4;
  1.3824 ++
  1.3825 ++  return TRUE;
  1.3826 ++}
  1.3827 ++
  1.3828 ++
  1.3829 ++/* AVR32-specific private ELF data */
  1.3830 ++
  1.3831 ++static bfd_boolean
  1.3832 ++avr32_elf_set_private_flags(bfd *abfd, flagword flags);
  1.3833 ++static bfd_boolean
  1.3834 ++avr32_elf_copy_private_bfd_data(bfd *ibfd, bfd *obfd);
  1.3835 ++static bfd_boolean
  1.3836 ++avr32_elf_merge_private_bfd_data(bfd *ibfd, bfd *obfd);
  1.3837 ++static bfd_boolean
  1.3838 ++avr32_elf_print_private_bfd_data(bfd *abfd, void *ptr);
  1.3839 ++
  1.3840 ++static bfd_boolean
  1.3841 ++avr32_elf_set_private_flags(bfd *abfd, flagword flags)
  1.3842 ++{
  1.3843 ++  elf_elfheader(abfd)->e_flags = flags;
  1.3844 ++  elf_flags_init(abfd) = TRUE;
  1.3845 ++
  1.3846 ++  return TRUE;
  1.3847 ++}
  1.3848 ++
  1.3849 ++/* Copy backend specific data from one object module to another.  */
  1.3850 ++
  1.3851 ++static bfd_boolean
  1.3852 ++avr32_elf_copy_private_bfd_data(bfd *ibfd, bfd *obfd)
  1.3853 ++{
  1.3854 ++  elf_elfheader(obfd)->e_flags = elf_elfheader(ibfd)->e_flags;
  1.3855 ++  return TRUE;
  1.3856 ++}
  1.3857 ++
  1.3858 ++/* Merge backend specific data from an object file to the output
  1.3859 ++   object file when linking.  */
  1.3860 ++
  1.3861 ++static bfd_boolean
  1.3862 ++avr32_elf_merge_private_bfd_data(bfd *ibfd, bfd *obfd)
  1.3863 ++{
  1.3864 ++  flagword out_flags, in_flags;
  1.3865 ++
  1.3866 ++  pr_debug("(0) merge_private_bfd_data: %s -> %s\n",
  1.3867 ++	   ibfd->filename, obfd->filename);
  1.3868 ++
  1.3869 ++  in_flags = elf_elfheader(ibfd)->e_flags;
  1.3870 ++  out_flags = elf_elfheader(obfd)->e_flags;
  1.3871 ++
  1.3872 ++  if (elf_flags_init(obfd))
  1.3873 ++    {
  1.3874 ++      /* If one of the inputs are non-PIC, the output must be
  1.3875 ++	 considered non-PIC.  The same applies to linkrelax.  */
  1.3876 ++      if (!(in_flags & EF_AVR32_PIC))
  1.3877 ++	out_flags &= ~EF_AVR32_PIC;
  1.3878 ++      if (!(in_flags & EF_AVR32_LINKRELAX))
  1.3879 ++	out_flags &= ~EF_AVR32_LINKRELAX;
  1.3880 ++    }
  1.3881 ++  else
  1.3882 ++    {
  1.3883 ++      elf_flags_init(obfd) = TRUE;
  1.3884 ++      out_flags = in_flags;
  1.3885 ++    }
  1.3886 ++
  1.3887 ++  elf_elfheader(obfd)->e_flags = out_flags;
  1.3888 ++
  1.3889 ++  return TRUE;
  1.3890 ++}
  1.3891 ++
  1.3892 ++static bfd_boolean
  1.3893 ++avr32_elf_print_private_bfd_data(bfd *abfd, void *ptr)
  1.3894 ++{
  1.3895 ++  FILE *file = (FILE *)ptr;
  1.3896 ++  unsigned long flags;
  1.3897 ++
  1.3898 ++  BFD_ASSERT(abfd != NULL && ptr != NULL);
  1.3899 ++
  1.3900 ++  _bfd_elf_print_private_bfd_data(abfd, ptr);
  1.3901 ++
  1.3902 ++  flags = elf_elfheader(abfd)->e_flags;
  1.3903 ++
  1.3904 ++  fprintf(file, _("private flags = %lx:"), elf_elfheader(abfd)->e_flags);
  1.3905 ++
  1.3906 ++  if (flags & EF_AVR32_PIC)
  1.3907 ++    fprintf(file, " [PIC]");
  1.3908 ++  if (flags & EF_AVR32_LINKRELAX)
  1.3909 ++    fprintf(file, " [linker relaxable]");
  1.3910 ++
  1.3911 ++  flags &= ~(EF_AVR32_PIC | EF_AVR32_LINKRELAX);
  1.3912 ++
  1.3913 ++  if (flags)
  1.3914 ++    fprintf(file, _("<Unrecognized flag bits set>"));
  1.3915 ++
  1.3916 ++  fputc('\n', file);
  1.3917 ++
  1.3918 ++  return TRUE;
  1.3919 ++}
  1.3920 ++
  1.3921 ++/* Set avr32-specific linker options.  */
  1.3922 ++void bfd_elf32_avr32_set_options(struct bfd_link_info *info,
  1.3923 ++				 int direct_data_refs)
  1.3924 ++{
  1.3925 ++  struct elf_avr32_link_hash_table *htab;
  1.3926 ++
  1.3927 ++  htab = avr32_elf_hash_table (info);
  1.3928 ++  htab->direct_data_refs = !!direct_data_refs;
  1.3929 ++}
  1.3930 ++
  1.3931 ++
  1.3932 ++
  1.3933 ++/* Understanding core dumps */
  1.3934 ++
  1.3935 ++static bfd_boolean
  1.3936 ++avr32_elf_grok_prstatus(bfd *abfd, Elf_Internal_Note *note);
  1.3937 ++static bfd_boolean
  1.3938 ++avr32_elf_grok_psinfo(bfd *abfd, Elf_Internal_Note *note);
  1.3939 ++
  1.3940 ++static bfd_boolean
  1.3941 ++avr32_elf_grok_prstatus(bfd *abfd, Elf_Internal_Note *note)
  1.3942 ++{
  1.3943 ++  /* Linux/AVR32B elf_prstatus */
  1.3944 ++  if (note->descsz != 148)
  1.3945 ++    return FALSE;
  1.3946 ++
  1.3947 ++  /* pr_cursig */
  1.3948 ++  elf_tdata(abfd)->core_signal = bfd_get_16(abfd, note->descdata + 12);
  1.3949 ++
  1.3950 ++  /* pr_pid */
  1.3951 ++  elf_tdata(abfd)->core_pid = bfd_get_32(abfd, note->descdata + 24);
  1.3952 ++
  1.3953 ++  /* Make a ".reg/999" section for pr_reg. The size is for 16
  1.3954 ++     general-purpose registers, SR and r12_orig (18 * 4 = 72).  */
  1.3955 ++  return _bfd_elfcore_make_pseudosection(abfd, ".reg", 72,
  1.3956 ++					 note->descpos + 72);
  1.3957 ++}
  1.3958 ++
  1.3959 ++static bfd_boolean
  1.3960 ++avr32_elf_grok_psinfo(bfd *abfd, Elf_Internal_Note *note)
  1.3961 ++{
  1.3962 ++  /* Linux/AVR32B elf_prpsinfo */
  1.3963 ++  if (note->descsz != 128)
  1.3964 ++    return FALSE;
  1.3965 ++
  1.3966 ++  elf_tdata(abfd)->core_program
  1.3967 ++    = _bfd_elfcore_strndup(abfd, note->descdata + 32, 16);
  1.3968 ++  elf_tdata(abfd)->core_command
  1.3969 ++    = _bfd_elfcore_strndup(abfd, note->descdata + 48, 80);
  1.3970 ++
  1.3971 ++  /* Note that for some reason, a spurious space is tacked
  1.3972 ++     onto the end of the args in some (at least one anyway)
  1.3973 ++     implementations, so strip it off if it exists.  */
  1.3974 ++
  1.3975 ++  {
  1.3976 ++    char *command = elf_tdata (abfd)->core_command;
  1.3977 ++    int n = strlen (command);
  1.3978 ++
  1.3979 ++    if (0 < n && command[n - 1] == ' ')
  1.3980 ++      command[n - 1] = '\0';
  1.3981 ++  }
  1.3982 ++
  1.3983 ++  return TRUE;
  1.3984 ++}
  1.3985 ++
  1.3986 ++
  1.3987 ++#define ELF_ARCH			bfd_arch_avr32
  1.3988 ++#define ELF_MACHINE_CODE		EM_AVR32
  1.3989 ++#define ELF_MAXPAGESIZE			0x1000
  1.3990 ++
  1.3991 ++#define TARGET_BIG_SYM			bfd_elf32_avr32_vec
  1.3992 ++#define TARGET_BIG_NAME			"elf32-avr32"
  1.3993 ++
  1.3994 ++#define elf_backend_grok_prstatus	avr32_elf_grok_prstatus
  1.3995 ++#define elf_backend_grok_psinfo		avr32_elf_grok_psinfo
  1.3996 ++
  1.3997 ++/* Only RELA relocations are used */
  1.3998 ++#define elf_backend_may_use_rel_p	0
  1.3999 ++#define elf_backend_may_use_rela_p	1
  1.4000 ++#define elf_backend_default_use_rela_p	1
  1.4001 ++#define elf_backend_rela_normal		1
  1.4002 ++#define elf_info_to_howto_rel		NULL
  1.4003 ++#define elf_info_to_howto		avr32_info_to_howto
  1.4004 ++
  1.4005 ++#define bfd_elf32_bfd_copy_private_bfd_data	avr32_elf_copy_private_bfd_data
  1.4006 ++#define bfd_elf32_bfd_merge_private_bfd_data	avr32_elf_merge_private_bfd_data
  1.4007 ++#define bfd_elf32_bfd_set_private_flags		avr32_elf_set_private_flags
  1.4008 ++#define bfd_elf32_bfd_print_private_bfd_data	avr32_elf_print_private_bfd_data
  1.4009 ++#define bfd_elf32_new_section_hook		avr32_elf_new_section_hook
  1.4010 ++
  1.4011 ++#define elf_backend_gc_mark_hook		avr32_elf_gc_mark_hook
  1.4012 ++#define elf_backend_gc_sweep_hook		avr32_elf_gc_sweep_hook
  1.4013 ++#define elf_backend_relocate_section	avr32_elf_relocate_section
  1.4014 ++#define elf_backend_copy_indirect_symbol avr32_elf_copy_indirect_symbol
  1.4015 ++#define elf_backend_create_dynamic_sections avr32_elf_create_dynamic_sections
  1.4016 ++#define bfd_elf32_bfd_link_hash_table_create avr32_elf_link_hash_table_create
  1.4017 ++#define elf_backend_adjust_dynamic_symbol avr32_elf_adjust_dynamic_symbol
  1.4018 ++#define elf_backend_size_dynamic_sections avr32_elf_size_dynamic_sections
  1.4019 ++#define elf_backend_finish_dynamic_symbol avr32_elf_finish_dynamic_symbol
  1.4020 ++#define elf_backend_finish_dynamic_sections avr32_elf_finish_dynamic_sections
  1.4021 ++
  1.4022 ++#define bfd_elf32_bfd_relax_section	avr32_elf_relax_section
  1.4023 ++
  1.4024 ++/* Find out which symbols need an entry in .got. */
  1.4025 ++#define elf_backend_check_relocs	avr32_check_relocs
  1.4026 ++#define elf_backend_can_refcount	1
  1.4027 ++#define elf_backend_can_gc_sections	1
  1.4028 ++#define elf_backend_plt_readonly	1
  1.4029 ++#define elf_backend_plt_not_loaded	1
  1.4030 ++#define elf_backend_want_plt_sym	0
  1.4031 ++#define elf_backend_plt_alignment	2
  1.4032 ++#define elf_backend_want_dynbss		0
  1.4033 ++#define elf_backend_want_got_plt	0
  1.4034 ++#define elf_backend_want_got_sym	1
  1.4035 ++#define elf_backend_got_header_size	AVR32_GOT_HEADER_SIZE
  1.4036 ++
  1.4037 ++#include "elf32-target.h"
  1.4038 +--- /dev/null
  1.4039 ++++ b/bfd/elf32-avr32.h
  1.4040 +@@ -0,0 +1,23 @@
  1.4041 ++/* AVR32-specific support for 32-bit ELF.
  1.4042 ++   Copyright 2007 Atmel Corporation.
  1.4043 ++
  1.4044 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
  1.4045 ++
  1.4046 ++   This file is part of BFD, the Binary File Descriptor library.
  1.4047 ++
  1.4048 ++   This program is free software; you can redistribute it and/or modify
  1.4049 ++   it under the terms of the GNU General Public License as published by
  1.4050 ++   the Free Software Foundation; either version 2 of the License, or
  1.4051 ++   (at your option) any later version.
  1.4052 ++
  1.4053 ++   This program is distributed in the hope that it will be useful,
  1.4054 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
  1.4055 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1.4056 ++   GNU General Public License for more details.
  1.4057 ++
  1.4058 ++   You should have received a copy of the GNU General Public License
  1.4059 ++   along with this program; if not, write to the Free Software
  1.4060 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  1.4061 ++
  1.4062 ++void bfd_elf32_avr32_set_options(struct bfd_link_info *info,
  1.4063 ++				 int direct_data_refs);
  1.4064 +--- a/bfd/elf-bfd.h
  1.4065 ++++ b/bfd/elf-bfd.h
  1.4066 +@@ -1400,6 +1400,10 @@ struct elf_obj_tdata
  1.4067 +      find_nearest_line.  */
  1.4068 +   struct mips_elf_find_line *find_line_info;
  1.4069 + 
  1.4070 ++  /* Used by AVR32 ELF relaxation code.  Contains an array of pointers
  1.4071 ++     for each local symbol to the fragment where it is defined.  */
  1.4072 ++  struct fragment **local_sym_frag;
  1.4073 ++
  1.4074 +   /* A place to stash dwarf1 info for this bfd.  */
  1.4075 +   struct dwarf1_debug *dwarf1_find_line_info;
  1.4076 + 
  1.4077 +--- a/bfd/Makefile.am
  1.4078 ++++ b/bfd/Makefile.am
  1.4079 +@@ -63,6 +63,7 @@ ALL_MACHINES = \
  1.4080 + 	cpu-arc.lo \
  1.4081 + 	cpu-arm.lo \
  1.4082 + 	cpu-avr.lo \
  1.4083 ++	cpu-avr32.lo \
  1.4084 + 	cpu-bfin.lo \
  1.4085 + 	cpu-cr16.lo \
  1.4086 + 	cpu-cr16c.lo \
  1.4087 +@@ -243,6 +244,7 @@ BFD32_BACKENDS = \
  1.4088 + 	elf32-arc.lo \
  1.4089 + 	elf32-arm.lo \
  1.4090 + 	elf32-avr.lo \
  1.4091 ++	elf32-avr32.lo \
  1.4092 + 	elf32-bfin.lo \
  1.4093 + 	elf32-cr16.lo \
  1.4094 + 	elf32-cr16c.lo \
  1.4095 +@@ -1328,6 +1330,10 @@ elf32-cr16.lo: elf32-cr16.c $(INCDIR)/fi
  1.4096 +   $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h elf-bfd.h \
  1.4097 +   $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
  1.4098 +   $(INCDIR)/elf/cr16.h $(INCDIR)/elf/reloc-macros.h elf32-target.h
  1.4099 ++elf32-avr32.lo: elf32-avr32.c $(INCDIR)/filenames.h elf-bfd.h \
  1.4100 ++  $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
  1.4101 ++  $(INCDIR)/bfdlink.h $(INCDIR)/elf/avr32.h $(INCDIR)/elf/reloc-macros.h \
  1.4102 ++  elf32-target.h
  1.4103 + elf32-cr16c.lo: elf32-cr16c.c $(INCDIR)/filenames.h \
  1.4104 +   $(INCDIR)/hashtab.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/cr16c.h \
  1.4105 +   $(INCDIR)/elf/reloc-macros.h elf-bfd.h $(INCDIR)/elf/common.h \
  1.4106 +--- a/bfd/reloc.c
  1.4107 ++++ b/bfd/reloc.c
  1.4108 +@@ -3948,6 +3948,131 @@ ENUMDOC
  1.4109 +   instructions
  1.4110 + 
  1.4111 + ENUM
  1.4112 ++  BFD_RELOC_AVR32_DIFF32
  1.4113 ++ENUMX
  1.4114 ++  BFD_RELOC_AVR32_DIFF16
  1.4115 ++ENUMX
  1.4116 ++  BFD_RELOC_AVR32_DIFF8
  1.4117 ++ENUMDOC
  1.4118 ++  Difference between two labels: L2 - L1. The value of L1 is encoded
  1.4119 ++  as sym + addend, while the initial difference after assembly is
  1.4120 ++  inserted into the object file by the assembler.
  1.4121 ++ENUM
  1.4122 ++  BFD_RELOC_AVR32_GOT32
  1.4123 ++ENUMX
  1.4124 ++  BFD_RELOC_AVR32_GOT16
  1.4125 ++ENUMX
  1.4126 ++  BFD_RELOC_AVR32_GOT8
  1.4127 ++ENUMDOC
  1.4128 ++  Reference to a symbol through the Global Offset Table. The linker
  1.4129 ++  will allocate an entry for symbol in the GOT and insert the offset
  1.4130 ++  of this entry as the relocation value.
  1.4131 ++ENUM
  1.4132 ++  BFD_RELOC_AVR32_21S
  1.4133 ++ENUMX
  1.4134 ++  BFD_RELOC_AVR32_16U
  1.4135 ++ENUMX
  1.4136 ++  BFD_RELOC_AVR32_16S
  1.4137 ++ENUMX
  1.4138 ++  BFD_RELOC_AVR32_SUB5
  1.4139 ++ENUMX
  1.4140 ++  BFD_RELOC_AVR32_8S_EXT
  1.4141 ++ENUMX
  1.4142 ++  BFD_RELOC_AVR32_8S
  1.4143 ++ENUMX
  1.4144 ++  BFD_RELOC_AVR32_15S
  1.4145 ++ENUMDOC
  1.4146 ++  Normal (non-pc-relative) code relocations. Alignment and signedness
  1.4147 ++  is indicated by the suffixes. S means signed, U means unsigned. W
  1.4148 ++  means word-aligned, H means halfword-aligned, neither means
  1.4149 ++  byte-aligned (no alignment.) SUB5 is the same relocation as 16S.
  1.4150 ++ENUM
  1.4151 ++  BFD_RELOC_AVR32_22H_PCREL
  1.4152 ++ENUMX
  1.4153 ++  BFD_RELOC_AVR32_18W_PCREL
  1.4154 ++ENUMX
  1.4155 ++  BFD_RELOC_AVR32_16B_PCREL
  1.4156 ++ENUMX
  1.4157 ++  BFD_RELOC_AVR32_16N_PCREL
  1.4158 ++ENUMX
  1.4159 ++  BFD_RELOC_AVR32_14UW_PCREL
  1.4160 ++ENUMX
  1.4161 ++  BFD_RELOC_AVR32_11H_PCREL
  1.4162 ++ENUMX
  1.4163 ++  BFD_RELOC_AVR32_10UW_PCREL
  1.4164 ++ENUMX
  1.4165 ++  BFD_RELOC_AVR32_9H_PCREL
  1.4166 ++ENUMX
  1.4167 ++  BFD_RELOC_AVR32_9UW_PCREL
  1.4168 ++ENUMDOC
  1.4169 ++  PC-relative relocations are signed if neither 'U' nor 'S' is
  1.4170 ++  specified. However, we explicitly tack on a 'B' to indicate no
  1.4171 ++  alignment, to avoid confusion with data relocs. All of these resolve
  1.4172 ++  to sym + addend - offset, except the one with 'N' (negated) suffix.
  1.4173 ++  This particular one resolves to offset - sym - addend.
  1.4174 ++ENUM
  1.4175 ++  BFD_RELOC_AVR32_GOTPC
  1.4176 ++ENUMDOC
  1.4177 ++  Subtract the link-time address of the GOT from (symbol + addend)
  1.4178 ++  and insert the result.
  1.4179 ++ENUM
  1.4180 ++  BFD_RELOC_AVR32_GOTCALL
  1.4181 ++ENUMX
  1.4182 ++  BFD_RELOC_AVR32_LDA_GOT
  1.4183 ++ENUMX
  1.4184 ++  BFD_RELOC_AVR32_GOT21S
  1.4185 ++ENUMX
  1.4186 ++  BFD_RELOC_AVR32_GOT18SW
  1.4187 ++ENUMX
  1.4188 ++  BFD_RELOC_AVR32_GOT16S
  1.4189 ++ENUMDOC
  1.4190 ++  Reference to a symbol through the GOT. The linker will allocate an
  1.4191 ++  entry for symbol in the GOT and insert the offset of this entry as
  1.4192 ++  the relocation value. addend must be zero. As usual, 'S' means
  1.4193 ++  signed, 'W' means word-aligned, etc.
  1.4194 ++ENUM
  1.4195 ++  BFD_RELOC_AVR32_32_CPENT
  1.4196 ++ENUMDOC
  1.4197 ++  32-bit constant pool entry. I don't think 8- and 16-bit entries make
  1.4198 ++  a whole lot of sense.
  1.4199 ++ENUM
  1.4200 ++  BFD_RELOC_AVR32_CPCALL
  1.4201 ++ENUMX
  1.4202 ++  BFD_RELOC_AVR32_16_CP
  1.4203 ++ENUMX
  1.4204 ++  BFD_RELOC_AVR32_9W_CP
  1.4205 ++ENUMDOC
  1.4206 ++  Constant pool references. Some of these relocations are signed,
  1.4207 ++  others are unsigned. It doesn't really matter, since the constant
  1.4208 ++  pool always comes after the code that references it.
  1.4209 ++ENUM
  1.4210 ++  BFD_RELOC_AVR32_ALIGN
  1.4211 ++ENUMDOC
  1.4212 ++  sym must be the absolute symbol. The addend specifies the alignment
  1.4213 ++  order, e.g. if addend is 2, the linker must add padding so that the
  1.4214 ++  next address is aligned to a 4-byte boundary.
  1.4215 ++ENUM
  1.4216 ++  BFD_RELOC_AVR32_14UW
  1.4217 ++ENUMX
  1.4218 ++  BFD_RELOC_AVR32_10UW
  1.4219 ++ENUMX
  1.4220 ++  BFD_RELOC_AVR32_10SW
  1.4221 ++ENUMX
  1.4222 ++  BFD_RELOC_AVR32_STHH_W
  1.4223 ++ENUMX
  1.4224 ++  BFD_RELOC_AVR32_7UW
  1.4225 ++ENUMX
  1.4226 ++  BFD_RELOC_AVR32_6S
  1.4227 ++ENUMX
  1.4228 ++  BFD_RELOC_AVR32_6UW
  1.4229 ++ENUMX
  1.4230 ++  BFD_RELOC_AVR32_4UH
  1.4231 ++ENUMX
  1.4232 ++  BFD_RELOC_AVR32_3U
  1.4233 ++ENUMDOC
  1.4234 ++  Code relocations that will never make it to the output file.
  1.4235 ++
  1.4236 ++ENUM
  1.4237 +   BFD_RELOC_390_12
  1.4238 + ENUMDOC
  1.4239 +    Direct 12 bit.
  1.4240 +--- a/bfd/targets.c
  1.4241 ++++ b/bfd/targets.c
  1.4242 +@@ -564,6 +564,7 @@ extern const bfd_target bfd_efi_app_ia32
  1.4243 + extern const bfd_target bfd_efi_app_x86_64_vec;
  1.4244 + extern const bfd_target bfd_efi_app_ia64_vec;
  1.4245 + extern const bfd_target bfd_elf32_avr_vec;
  1.4246 ++extern const bfd_target bfd_elf32_avr32_vec;
  1.4247 + extern const bfd_target bfd_elf32_bfin_vec;
  1.4248 + extern const bfd_target bfd_elf32_bfinfdpic_vec;
  1.4249 + extern const bfd_target bfd_elf32_big_generic_vec;
  1.4250 +@@ -884,6 +885,7 @@ static const bfd_target * const _bfd_tar
  1.4251 + 	&bfd_efi_app_ia64_vec,
  1.4252 + #endif
  1.4253 + 	&bfd_elf32_avr_vec,
  1.4254 ++	&bfd_elf32_avr32_vec,
  1.4255 + 	&bfd_elf32_bfin_vec,
  1.4256 + 	&bfd_elf32_bfinfdpic_vec,
  1.4257 + 
  1.4258 +--- a/binutils/Makefile.am
  1.4259 ++++ b/binutils/Makefile.am
  1.4260 +@@ -577,7 +577,7 @@ readelf.o: readelf.c sysdep.h $(INCDIR)/
  1.4261 +   $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h bucomm.h dwarf.h \
  1.4262 +   $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
  1.4263 +   $(INCDIR)/elf/h8.h $(INCDIR)/elf/reloc-macros.h $(INCDIR)/elf/alpha.h \
  1.4264 +-  $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h $(INCDIR)/elf/avr.h \
  1.4265 ++  $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h $(INCDIR)/elf/avr.h $(INCDIR)/elf/avr32.h\
  1.4266 +   $(INCDIR)/elf/bfin.h $(INCDIR)/elf/cris.h $(INCDIR)/elf/crx.h \
  1.4267 +   $(INCDIR)/elf/d10v.h $(INCDIR)/elf/d30v.h $(INCDIR)/elf/dlx.h \
  1.4268 +   $(INCDIR)/elf/fr30.h $(INCDIR)/elf/frv.h $(INCDIR)/elf/hppa.h \
  1.4269 +--- a/binutils/readelf.c
  1.4270 ++++ b/binutils/readelf.c
  1.4271 +@@ -21,7 +21,7 @@
  1.4272 +    along with this program; if not, write to the Free Software
  1.4273 +    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
  1.4274 +    02110-1301, USA.  */
  1.4275 +-
  1.4276 ++
  1.4277 + /* The difference between readelf and objdump:
  1.4278 + 
  1.4279 +   Both programs are capable of displaying the contents of ELF format files,
  1.4280 +@@ -40,7 +40,7 @@
  1.4281 +   There is also the case that readelf can provide more information about an
  1.4282 +   ELF file than is provided by objdump.  In particular it can display DWARF
  1.4283 +   debugging information which (at the moment) objdump cannot.  */
  1.4284 +-
  1.4285 ++
  1.4286 + #include "sysdep.h"
  1.4287 + #include <assert.h>
  1.4288 + #include <sys/stat.h>
  1.4289 +@@ -109,6 +109,7 @@
  1.4290 + #include "elf/arc.h"
  1.4291 + #include "elf/arm.h"
  1.4292 + #include "elf/avr.h"
  1.4293 ++#include "elf/avr32.h"
  1.4294 + #include "elf/bfin.h"
  1.4295 + #include "elf/cr16.h"
  1.4296 + #include "elf/cris.h"
  1.4297 +@@ -303,7 +304,7 @@ static void (*byte_put) (unsigned char *
  1.4298 + #define streq(a,b)	  (strcmp ((a), (b)) == 0)
  1.4299 + #define strneq(a,b,n)	  (strncmp ((a), (b), (n)) == 0)
  1.4300 + #define const_strneq(a,b) (strncmp ((a), (b), sizeof (b) - 1) == 0)
  1.4301 +-
  1.4302 ++
  1.4303 + static void *
  1.4304 + get_data (void *var, FILE *file, long offset, size_t size, size_t nmemb,
  1.4305 + 	  const char *reason)
  1.4306 +@@ -614,6 +615,7 @@ guess_is_rela (unsigned long e_machine)
  1.4307 +     case EM_ALPHA:
  1.4308 +     case EM_ALTERA_NIOS2:
  1.4309 +     case EM_AVR:
  1.4310 ++    case EM_AVR32:
  1.4311 +     case EM_AVR_OLD:
  1.4312 +     case EM_BLACKFIN:
  1.4313 +     case EM_CR16:
  1.4314 +@@ -1006,6 +1008,10 @@ dump_relocations (FILE *file,
  1.4315 + 	  rtype = elf_avr_reloc_type (type);
  1.4316 + 	  break;
  1.4317 + 
  1.4318 ++	case EM_AVR32:
  1.4319 ++	  rtype = elf_avr32_reloc_type (type);
  1.4320 ++	  break;
  1.4321 ++
  1.4322 + 	case EM_OLD_SPARCV9:
  1.4323 + 	case EM_SPARC32PLUS:
  1.4324 + 	case EM_SPARCV9:
  1.4325 +@@ -1763,6 +1769,7 @@ get_machine_name (unsigned e_machine)
  1.4326 +     case EM_VAX:		return "Digital VAX";
  1.4327 +     case EM_AVR_OLD:
  1.4328 +     case EM_AVR:		return "Atmel AVR 8-bit microcontroller";
  1.4329 ++    case EM_AVR32:		return "Atmel AVR32";
  1.4330 +     case EM_CRIS:		return "Axis Communications 32-bit embedded processor";
  1.4331 +     case EM_JAVELIN:		return "Infineon Technologies 32-bit embedded cpu";
  1.4332 +     case EM_FIREPATH:		return "Element 14 64-bit DSP processor";
  1.4333 +--- a/gas/as.c
  1.4334 ++++ b/gas/as.c
  1.4335 +@@ -441,10 +441,10 @@ parse_args (int * pargc, char *** pargv)
  1.4336 +        the end of the preceeding line so that it is simpler to
  1.4337 +        selectively add and remove lines from this list.  */
  1.4338 +     {"alternate", no_argument, NULL, OPTION_ALTERNATE}
  1.4339 +-    /* The entry for "a" is here to prevent getopt_long_only() from
  1.4340 +-       considering that -a is an abbreviation for --alternate.  This is
  1.4341 +-       necessary because -a=<FILE> is a valid switch but getopt would
  1.4342 +-       normally reject it since --alternate does not take an argument.  */
  1.4343 ++    /* The next two entries are here to prevent getopt_long_only() from
  1.4344 ++       considering that -a or -al is an abbreviation for --alternate.
  1.4345 ++       This is necessary because -a=<FILE> is a valid switch but getopt
  1.4346 ++       would normally reject it since --alternate does not take an argument.  */
  1.4347 +     ,{"a", optional_argument, NULL, 'a'}
  1.4348 +     /* Handle -al=<FILE>.  */
  1.4349 +     ,{"al", optional_argument, NULL, OPTION_AL}
  1.4350 +@@ -803,8 +803,15 @@ This program has absolutely no warranty.
  1.4351 + 	case 'a':
  1.4352 + 	  if (optarg)
  1.4353 + 	    {
  1.4354 +-	      if (optarg != old_argv[optind] && optarg[-1] == '=')
  1.4355 +-		--optarg;
  1.4356 ++	      /* If optarg is part of the -a switch and not a separate argument
  1.4357 ++		 in its own right, then scan backwards to the just after the -a.
  1.4358 ++		 This means skipping over both '=' and 'l' which might have been
  1.4359 ++		 taken to be part of the -a switch itself.  */
  1.4360 ++	      if (optarg != old_argv[optind])
  1.4361 ++		{
  1.4362 ++		  while (optarg[-1] == '=' || optarg[-1] == 'l')
  1.4363 ++		    --optarg;
  1.4364 ++		}
  1.4365 + 
  1.4366 + 	      if (md_parse_option (optc, optarg) != 0)
  1.4367 + 		break;
  1.4368 +@@ -1234,7 +1241,7 @@ main (int argc, char ** argv)
  1.4369 +     keep_it = 0;
  1.4370 + 
  1.4371 +   if (!keep_it)
  1.4372 +-    unlink_if_ordinary (out_file_name);
  1.4373 ++    unlink (out_file_name);
  1.4374 + 
  1.4375 +   input_scrub_end ();
  1.4376 + 
  1.4377 +--- /dev/null
  1.4378 ++++ b/gas/config/tc-avr32.c
  1.4379 +@@ -0,0 +1,4806 @@
  1.4380 ++/* Assembler implementation for AVR32.
  1.4381 ++   Copyright 2003-2006 Atmel Corporation.
  1.4382 ++
  1.4383 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
  1.4384 ++
  1.4385 ++   This file is part of GAS, the GNU Assembler.
  1.4386 ++
  1.4387 ++   GAS is free software; you can redistribute it and/or modify it
  1.4388 ++   under the terms of the GNU General Public License as published by
  1.4389 ++   the Free Software Foundation; either version 2, or (at your option)
  1.4390 ++   any later version.
  1.4391 ++
  1.4392 ++   GAS is distributed in the hope that it will be useful, but WITHOUT
  1.4393 ++   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  1.4394 ++   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
  1.4395 ++   License for more details.
  1.4396 ++
  1.4397 ++   You should have received a copy of the GNU General Public License
  1.4398 ++   along with GAS; see the file COPYING.  If not, write to the Free
  1.4399 ++   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
  1.4400 ++   02111-1307, USA.  */
  1.4401 ++
  1.4402 ++#include <stdio.h>
  1.4403 ++#include "as.h"
  1.4404 ++#include "safe-ctype.h"
  1.4405 ++#include "subsegs.h"
  1.4406 ++#include "symcat.h"
  1.4407 ++#include "opcodes/avr32-opc.h"
  1.4408 ++#include "opcodes/avr32-asm.h"
  1.4409 ++#include "elf/avr32.h"
  1.4410 ++#include "dwarf2dbg.h"
  1.4411 ++
  1.4412 ++#define xDEBUG
  1.4413 ++#define xOPC_CONSISTENCY_CHECK
  1.4414 ++
  1.4415 ++#ifdef DEBUG
  1.4416 ++# define pr_debug(fmt, args...) fprintf(stderr, fmt, ##args)
  1.4417 ++#else
  1.4418 ++# define pr_debug(fmt, args...)
  1.4419 ++#endif
  1.4420 ++
  1.4421 ++/* 3 MSB of instruction word indicate group. Group 7 -> extended */
  1.4422 ++#define AVR32_COMPACT_P(opcode) ((opcode[0] & 0xe0) != 0xe0)
  1.4423 ++
  1.4424 ++#define streq(a, b)		(strcmp(a, b) == 0)
  1.4425 ++#define skip_whitespace(str)	do { while(*(str) == ' ') ++(str); } while(0)
  1.4426 ++
  1.4427 ++/* Flags given on the command line */
  1.4428 ++static int avr32_pic	= FALSE;
  1.4429 ++int linkrelax	= FALSE;
  1.4430 ++int avr32_iarcompat	= FALSE;
  1.4431 ++
  1.4432 ++/* This array holds the chars that always start a comment. */
  1.4433 ++const char comment_chars[]		= "#";
  1.4434 ++
  1.4435 ++/* This array holds the chars that only start a comment at the
  1.4436 ++   beginning of a line.  We must include '#' here because the compiler
  1.4437 ++   may produce #APP and #NO_APP in its output.  */
  1.4438 ++const char line_comment_chars[]		= "#";
  1.4439 ++
  1.4440 ++/* These may be used instead of newline (same as ';' in C).  */
  1.4441 ++const char line_separator_chars[]	= ";";
  1.4442 ++
  1.4443 ++/* Chars that can be used to separate mantissa from exponent in
  1.4444 ++   floating point numbers.  */
  1.4445 ++const char EXP_CHARS[]			= "eE";
  1.4446 ++
  1.4447 ++/* Chars that mean this number is a floating point constant.  */
  1.4448 ++const char FLT_CHARS[]			= "dD";
  1.4449 ++
  1.4450 ++/* Pre-defined "_GLOBAL_OFFSET_TABLE_"  */
  1.4451 ++symbolS *GOT_symbol;
  1.4452 ++
  1.4453 ++static struct hash_control *avr32_mnemonic_htab;
  1.4454 ++
  1.4455 ++struct avr32_ifield_data
  1.4456 ++{
  1.4457 ++  bfd_vma value;
  1.4458 ++  /* FIXME: Get rid of align_order and complain. complain is never
  1.4459 ++     used, align_order is used in one place.  Try to use the relax
  1.4460 ++     table instead.  */
  1.4461 ++  unsigned int align_order;
  1.4462 ++};
  1.4463 ++
  1.4464 ++struct avr32_insn
  1.4465 ++{
  1.4466 ++  const struct avr32_syntax *syntax;
  1.4467 ++  expressionS immediate;
  1.4468 ++  int pcrel;
  1.4469 ++  int force_extended;
  1.4470 ++  unsigned int next_slot;
  1.4471 ++  bfd_reloc_code_real_type r_type;
  1.4472 ++  struct avr32_ifield_data field_value[AVR32_MAX_FIELDS];
  1.4473 ++};
  1.4474 ++
  1.4475 ++static struct avr32_insn current_insn;
  1.4476 ++
  1.4477 ++/* The target specific pseudo-ops we support. */
  1.4478 ++static void s_rseg (int);
  1.4479 ++static void s_cpool(int);
  1.4480 ++
  1.4481 ++const pseudo_typeS md_pseudo_table[] =
  1.4482 ++{
  1.4483 ++  /* Make sure that .word is 32 bits */
  1.4484 ++  { "word", cons, 4 },
  1.4485 ++  { "file", (void (*) PARAMS ((int))) dwarf2_directive_file, 0 },
  1.4486 ++  { "loc", dwarf2_directive_loc, 0 },
  1.4487 ++
  1.4488 ++  /* .lcomm requires an explicit alignment parameter */
  1.4489 ++  { "lcomm", s_lcomm, 1 },
  1.4490 ++
  1.4491 ++  /* AVR32-specific pseudo-ops */
  1.4492 ++  { "cpool", s_cpool, 0},
  1.4493 ++
  1.4494 ++  /* IAR compatible pseudo-ops */
  1.4495 ++  { "program", s_ignore, 0 },
  1.4496 ++  { "public", s_globl, 0 },
  1.4497 ++  { "extern", s_ignore, 0 },
  1.4498 ++  { "module", s_ignore, 0 },
  1.4499 ++  { "rseg", s_rseg, 0 },
  1.4500 ++  { "dc8", cons, 1 },
  1.4501 ++  { "dc16", cons, 2 },
  1.4502 ++  { "dc32", cons, 4 },
  1.4503 ++
  1.4504 ++  { NULL, NULL, 0 }
  1.4505 ++};
  1.4506 ++
  1.4507 ++/* Questionable stuff starts here */
  1.4508 ++
  1.4509 ++enum avr32_opinfo {
  1.4510 ++  AVR32_OPINFO_NONE = BFD_RELOC_NONE,
  1.4511 ++  AVR32_OPINFO_GOT,
  1.4512 ++  AVR32_OPINFO_TLSGD,
  1.4513 ++  AVR32_OPINFO_HI,
  1.4514 ++  AVR32_OPINFO_LO,
  1.4515 ++};
  1.4516 ++
  1.4517 ++enum avr32_arch {
  1.4518 ++  ARCH_TYPE_AP,
  1.4519 ++  ARCH_TYPE_UCR1,
  1.4520 ++  ARCH_TYPE_UCR2,
  1.4521 ++};
  1.4522 ++
  1.4523 ++struct arch_type_s
  1.4524 ++{
  1.4525 ++  /* Architecture name */
  1.4526 ++  char *name;
  1.4527 ++  /* Instruction Set Architecture Flags */
  1.4528 ++  unsigned long isa_flags;
  1.4529 ++};
  1.4530 ++
  1.4531 ++struct part_type_s
  1.4532 ++{
  1.4533 ++  /* Part name */
  1.4534 ++  char *name;
  1.4535 ++  /* Architecture type */
  1.4536 ++  unsigned int arch;
  1.4537 ++};
  1.4538 ++
  1.4539 ++static struct arch_type_s arch_types[] =
  1.4540 ++{
  1.4541 ++  {"ap", AVR32_V1 | AVR32_SIMD | AVR32_DSP | AVR32_PICO},
  1.4542 ++  {"ucr1", AVR32_V1 | AVR32_DSP | AVR32_RMW},
  1.4543 ++  {"ucr2", AVR32_V1 | AVR32_V2 | AVR32_DSP | AVR32_RMW},
  1.4544 ++  {"all-insn", AVR32_V1 | AVR32_V2 | AVR32_SIMD | AVR32_DSP | AVR32_RMW | AVR32_FP | AVR32_PICO},
  1.4545 ++  {NULL, 0}
  1.4546 ++};
  1.4547 ++
  1.4548 ++static struct part_type_s part_types[] = {
  1.4549 ++  {"ap7000", ARCH_TYPE_AP},
  1.4550 ++  {"ap7001", ARCH_TYPE_AP},
  1.4551 ++  {"ap7002", ARCH_TYPE_AP},
  1.4552 ++  {"ap7200", ARCH_TYPE_AP},
  1.4553 ++  {"uc3a0128", ARCH_TYPE_UCR2},
  1.4554 ++  {"uc3a0256", ARCH_TYPE_UCR2},
  1.4555 ++  {"uc3a0512es", ARCH_TYPE_UCR1},
  1.4556 ++  {"uc3a0512", ARCH_TYPE_UCR2},
  1.4557 ++  {"uc3a1128", ARCH_TYPE_UCR2},
  1.4558 ++  {"uc3a1256es", ARCH_TYPE_UCR1},
  1.4559 ++  {"uc3a1256", ARCH_TYPE_UCR2},
  1.4560 ++  {"uc3a1512es", ARCH_TYPE_UCR1},
  1.4561 ++  {"uc3a1512", ARCH_TYPE_UCR2},
  1.4562 ++  {"uc3a364", ARCH_TYPE_UCR2},
  1.4563 ++  {"uc3a364s", ARCH_TYPE_UCR2},
  1.4564 ++  {"uc3a3128", ARCH_TYPE_UCR2},
  1.4565 ++  {"uc3a3128s", ARCH_TYPE_UCR2},
  1.4566 ++  {"uc3a3256", ARCH_TYPE_UCR2},
  1.4567 ++  {"uc3a3256s", ARCH_TYPE_UCR2},
  1.4568 ++  {"uc3b064", ARCH_TYPE_UCR1},
  1.4569 ++  {"uc3b0128", ARCH_TYPE_UCR1},
  1.4570 ++  {"uc3b0256es", ARCH_TYPE_UCR1},
  1.4571 ++  {"uc3b0256", ARCH_TYPE_UCR1},
  1.4572 ++  {"uc3b164", ARCH_TYPE_UCR1},
  1.4573 ++  {"uc3b1128", ARCH_TYPE_UCR1},
  1.4574 ++  {"uc3b1256es", ARCH_TYPE_UCR1},
  1.4575 ++  {"uc3b1256", ARCH_TYPE_UCR1},
  1.4576 ++  {NULL, 0}
  1.4577 ++};
  1.4578 ++
  1.4579 ++/* Current architecture type.  */
  1.4580 ++static struct arch_type_s default_arch = {"all-insn", AVR32_V1 | AVR32_V2 | AVR32_SIMD | AVR32_DSP | AVR32_RMW | AVR32_FP | AVR32_PICO };
  1.4581 ++static struct arch_type_s *avr32_arch = &default_arch;
  1.4582 ++
  1.4583 ++/* Display nicely formatted list of known part- and architecture names.  */
  1.4584 ++
  1.4585 ++static void
  1.4586 ++show_arch_list (FILE *stream)
  1.4587 ++{
  1.4588 ++  int i, x;
  1.4589 ++
  1.4590 ++  fprintf (stream, _("Known architecture names:"));
  1.4591 ++  x = 1000;
  1.4592 ++
  1.4593 ++  for (i = 0; arch_types[i].name; i++)
  1.4594 ++    {
  1.4595 ++      int len = strlen (arch_types[i].name);
  1.4596 ++
  1.4597 ++      x += len + 1;
  1.4598 ++
  1.4599 ++      if (x < 75)
  1.4600 ++	fprintf (stream, " %s", arch_types[i].name);
  1.4601 ++      else
  1.4602 ++	{
  1.4603 ++	  fprintf (stream, "\n  %s", arch_types[i].name);
  1.4604 ++	  x = len + 2;
  1.4605 ++	}
  1.4606 ++    }
  1.4607 ++
  1.4608 ++  fprintf (stream, "\n");
  1.4609 ++}
  1.4610 ++
  1.4611 ++static void
  1.4612 ++show_part_list (FILE *stream)
  1.4613 ++{
  1.4614 ++  int i, x;
  1.4615 ++
  1.4616 ++  fprintf (stream, _("Known part names:"));
  1.4617 ++  x = 1000;
  1.4618 ++
  1.4619 ++  for (i = 0; part_types[i].name; i++)
  1.4620 ++    {
  1.4621 ++      int len = strlen(part_types[i].name);
  1.4622 ++
  1.4623 ++      x += len + 1;
  1.4624 ++
  1.4625 ++      if (x < 75)
  1.4626 ++	fprintf (stream, " %s", part_types[i].name);
  1.4627 ++      else
  1.4628 ++	{
  1.4629 ++	  fprintf(stream, "\n  %s", part_types[i].name);
  1.4630 ++	  x = len + 2;
  1.4631 ++	}
  1.4632 ++    }
  1.4633 ++
  1.4634 ++  fprintf (stream, "\n");
  1.4635 ++}
  1.4636 ++
  1.4637 ++const char *md_shortopts = "";
  1.4638 ++struct option md_longopts[] =
  1.4639 ++{
  1.4640 ++#define OPTION_ARCH		(OPTION_MD_BASE)
  1.4641 ++#define OPTION_PART		(OPTION_ARCH + 1)
  1.4642 ++#define OPTION_IAR		(OPTION_PART + 1)
  1.4643 ++#define OPTION_PIC		(OPTION_IAR + 1)
  1.4644 ++#define OPTION_NOPIC		(OPTION_PIC + 1)
  1.4645 ++#define OPTION_LINKRELAX	(OPTION_NOPIC + 1)
  1.4646 ++#define OPTION_NOLINKRELAX	(OPTION_LINKRELAX + 1)
  1.4647 ++#define OPTION_DIRECT_DATA_REFS (OPTION_NOLINKRELAX + 1)
  1.4648 ++  {"march",		required_argument, NULL, OPTION_ARCH},
  1.4649 ++  {"mpart",		required_argument, NULL, OPTION_PART},
  1.4650 ++  {"iar",		no_argument, NULL, OPTION_IAR},
  1.4651 ++  {"pic",		no_argument, NULL, OPTION_PIC},
  1.4652 ++  {"no-pic",		no_argument, NULL, OPTION_NOPIC},
  1.4653 ++  {"linkrelax",		no_argument, NULL, OPTION_LINKRELAX},
  1.4654 ++  {"no-linkrelax",	no_argument, NULL, OPTION_NOLINKRELAX},
  1.4655 ++  /* deprecated alias for -mpart=xxx */
  1.4656 ++  {"mcpu",		required_argument, NULL, OPTION_PART},
  1.4657 ++  {NULL,		no_argument, NULL, 0}
  1.4658 ++};
  1.4659 ++
  1.4660 ++size_t md_longopts_size = sizeof (md_longopts);
  1.4661 ++
  1.4662 ++void
  1.4663 ++md_show_usage (FILE *stream)
  1.4664 ++{
  1.4665 ++  fprintf (stream, _("\
  1.4666 ++AVR32 options:\n\
  1.4667 ++  -march=[arch-name]      Select cpu architecture. [Default `all-insn']\n\
  1.4668 ++  -mpart=[part-name]      Select specific part. [Default `none']\n\
  1.4669 ++  --pic                   Produce Position-Independent Code\n\
  1.4670 ++  --no-pic                Don't produce Position-Independent Code\n\
  1.4671 ++  --linkrelax             Produce output suitable for linker relaxing\n\
  1.4672 ++  --no-linkrelax          Don't produce output suitable for linker relaxing\n"));
  1.4673 ++  show_arch_list(stream);
  1.4674 ++}
  1.4675 ++
  1.4676 ++int
  1.4677 ++md_parse_option (int c, char *arg ATTRIBUTE_UNUSED)
  1.4678 ++{
  1.4679 ++  switch (c)
  1.4680 ++    {
  1.4681 ++    case OPTION_ARCH:
  1.4682 ++      {
  1.4683 ++	int i;
  1.4684 ++	char *s = alloca (strlen (arg) + 1);
  1.4685 ++
  1.4686 ++	{
  1.4687 ++	  char *t = s;
  1.4688 ++	  char *arg1 = arg;
  1.4689 ++
  1.4690 ++	  do
  1.4691 ++	    *t = TOLOWER (*arg1++);
  1.4692 ++	  while (*t++);
  1.4693 ++	}
  1.4694 ++
  1.4695 ++        /* Add backward compability */
  1.4696 ++        if (strcmp ("uc", s)== 0)
  1.4697 ++          {
  1.4698 ++            as_warn("Deprecated arch `%s' specified. "
  1.4699 ++                    "Please use '-march=ucr1' instead. "
  1.4700 ++                    "Converting to arch 'ucr1'\n",
  1.4701 ++                     s);
  1.4702 ++            s="ucr1";
  1.4703 ++          }
  1.4704 ++
  1.4705 ++	for (i = 0; arch_types[i].name; ++i)
  1.4706 ++	  if (strcmp (arch_types[i].name, s) == 0)
  1.4707 ++	    break;
  1.4708 ++
  1.4709 ++	if (!arch_types[i].name)
  1.4710 ++	  {
  1.4711 ++	    show_arch_list (stderr);
  1.4712 ++	    as_fatal (_("unknown architecture: %s\n"), arg);
  1.4713 ++	  }
  1.4714 ++
  1.4715 ++        avr32_arch = &arch_types[i];
  1.4716 ++	break;
  1.4717 ++      }
  1.4718 ++    case OPTION_PART:
  1.4719 ++      {
  1.4720 ++	int i;
  1.4721 ++	char *s = alloca (strlen (arg) + 1);
  1.4722 ++	char *t = s;
  1.4723 ++	char *p = arg;
  1.4724 ++
  1.4725 ++	/* If arch type has already been set, don't bother.
  1.4726 ++	   -march= always overrides -mpart=  */
  1.4727 ++	if (avr32_arch != &default_arch)
  1.4728 ++	  break;
  1.4729 ++
  1.4730 ++	do
  1.4731 ++	  *t = TOLOWER (*p++);
  1.4732 ++	while (*t++);
  1.4733 ++
  1.4734 ++	for (i = 0; part_types[i].name; ++i)
  1.4735 ++	  if (strcmp (part_types[i].name, s) == 0)
  1.4736 ++	    break;
  1.4737 ++
  1.4738 ++	if (!part_types[i].name)
  1.4739 ++	  {
  1.4740 ++	    show_part_list (stderr);
  1.4741 ++	    as_fatal (_("unknown part: %s\n"), arg);
  1.4742 ++	  }
  1.4743 ++
  1.4744 ++	avr32_arch = &arch_types[part_types[i].arch];
  1.4745 ++	break;
  1.4746 ++      }
  1.4747 ++    case OPTION_IAR:
  1.4748 ++      avr32_iarcompat = 1;
  1.4749 ++      break;
  1.4750 ++    case OPTION_PIC:
  1.4751 ++      avr32_pic = 1;
  1.4752 ++      break;
  1.4753 ++    case OPTION_NOPIC:
  1.4754 ++      avr32_pic = 0;
  1.4755 ++      break;
  1.4756 ++    case OPTION_LINKRELAX:
  1.4757 ++      linkrelax = 1;
  1.4758 ++      break;
  1.4759 ++    case OPTION_NOLINKRELAX:
  1.4760 ++      linkrelax = 0;
  1.4761 ++      break;
  1.4762 ++    default:
  1.4763 ++      return 0;
  1.4764 ++    }
  1.4765 ++  return 1;
  1.4766 ++}
  1.4767 ++
  1.4768 ++/* Can't use symbol_new here, so have to create a symbol and then at
  1.4769 ++   a later date assign it a value. Thats what these functions do.
  1.4770 ++
  1.4771 ++   Shamelessly stolen from ARM.  */
  1.4772 ++
  1.4773 ++static void
  1.4774 ++symbol_locate (symbolS *    symbolP,
  1.4775 ++	       const char * name,	/* It is copied, the caller can modify.  */
  1.4776 ++	       segT         segment,	/* Segment identifier (SEG_<something>).  */
  1.4777 ++	       valueT       valu,	/* Symbol value.  */
  1.4778 ++	       fragS *      frag)	/* Associated fragment.  */
  1.4779 ++{
  1.4780 ++  unsigned int name_length;
  1.4781 ++  char * preserved_copy_of_name;
  1.4782 ++
  1.4783 ++  name_length = strlen (name) + 1;   /* +1 for \0.  */
  1.4784 ++  obstack_grow (&notes, name, name_length);
  1.4785 ++  preserved_copy_of_name = obstack_finish (&notes);
  1.4786 ++#ifdef STRIP_UNDERSCORE
  1.4787 ++  if (preserved_copy_of_name[0] == '_')
  1.4788 ++    preserved_copy_of_name++;
  1.4789 ++#endif
  1.4790 ++
  1.4791 ++#ifdef tc_canonicalize_symbol_name
  1.4792 ++  preserved_copy_of_name =
  1.4793 ++    tc_canonicalize_symbol_name (preserved_copy_of_name);
  1.4794 ++#endif
  1.4795 ++
  1.4796 ++  S_SET_NAME (symbolP, preserved_copy_of_name);
  1.4797 ++
  1.4798 ++  S_SET_SEGMENT (symbolP, segment);
  1.4799 ++  S_SET_VALUE (symbolP, valu);
  1.4800 ++  symbol_clear_list_pointers (symbolP);
  1.4801 ++
  1.4802 ++  symbol_set_frag (symbolP, frag);
  1.4803 ++
  1.4804 ++  /* Link to end of symbol chain.  */
  1.4805 ++  {
  1.4806 ++    extern int symbol_table_frozen;
  1.4807 ++
  1.4808 ++    if (symbol_table_frozen)
  1.4809 ++      abort ();
  1.4810 ++  }
  1.4811 ++
  1.4812 ++  symbol_append (symbolP, symbol_lastP, & symbol_rootP, & symbol_lastP);
  1.4813 ++
  1.4814 ++  obj_symbol_new_hook (symbolP);
  1.4815 ++
  1.4816 ++#ifdef tc_symbol_new_hook
  1.4817 ++  tc_symbol_new_hook (symbolP);
  1.4818 ++#endif
  1.4819 ++
  1.4820 ++#ifdef DEBUG_SYMS
  1.4821 ++  verify_symbol_chain (symbol_rootP, symbol_lastP);
  1.4822 ++#endif /* DEBUG_SYMS  */
  1.4823 ++}
  1.4824 ++
  1.4825 ++struct cpool_entry
  1.4826 ++{
  1.4827 ++  int			refcount;
  1.4828 ++  offsetT		offset;
  1.4829 ++  expressionS		exp;
  1.4830 ++};
  1.4831 ++
  1.4832 ++struct cpool
  1.4833 ++{
  1.4834 ++  struct cpool		*next;
  1.4835 ++  int			used;
  1.4836 ++  struct cpool_entry	*literals;
  1.4837 ++  unsigned int		padding;
  1.4838 ++  unsigned int		next_free_entry;
  1.4839 ++  unsigned int		id;
  1.4840 ++  symbolS		*symbol;
  1.4841 ++  segT			section;
  1.4842 ++  subsegT		sub_section;
  1.4843 ++};
  1.4844 ++
  1.4845 ++struct cpool *cpool_list = NULL;
  1.4846 ++
  1.4847 ++static struct cpool *
  1.4848 ++find_cpool(segT section, subsegT sub_section)
  1.4849 ++{
  1.4850 ++  struct cpool *pool;
  1.4851 ++
  1.4852 ++  for (pool = cpool_list; pool != NULL; pool = pool->next)
  1.4853 ++    {
  1.4854 ++      if (!pool->used
  1.4855 ++	  && pool->section == section
  1.4856 ++	  && pool->sub_section == sub_section)
  1.4857 ++	break;
  1.4858 ++    }
  1.4859 ++
  1.4860 ++  return pool;
  1.4861 ++}
  1.4862 ++
  1.4863 ++static struct cpool *
  1.4864 ++find_or_make_cpool(segT section, subsegT sub_section)
  1.4865 ++{
  1.4866 ++  static unsigned int next_cpool_id = 0;
  1.4867 ++  struct cpool *pool;
  1.4868 ++
  1.4869 ++  pool = find_cpool(section, sub_section);
  1.4870 ++
  1.4871 ++  if (!pool)
  1.4872 ++    {
  1.4873 ++      pool = xmalloc(sizeof(*pool));
  1.4874 ++      if (!pool)
  1.4875 ++	return NULL;
  1.4876 ++
  1.4877 ++      pool->used = 0;
  1.4878 ++      pool->literals = NULL;
  1.4879 ++      pool->padding = 0;
  1.4880 ++      pool->next_free_entry = 0;
  1.4881 ++      pool->section = section;
  1.4882 ++      pool->sub_section = sub_section;
  1.4883 ++      pool->next = cpool_list;
  1.4884 ++      pool->symbol = NULL;
  1.4885 ++
  1.4886 ++      cpool_list = pool;
  1.4887 ++    }
  1.4888 ++
  1.4889 ++  /* NULL symbol means that the pool is new or has just been emptied.  */
  1.4890 ++  if (!pool->symbol)
  1.4891 ++    {
  1.4892 ++      pool->symbol = symbol_create(FAKE_LABEL_NAME, undefined_section,
  1.4893 ++				   0, &zero_address_frag);
  1.4894 ++      pool->id = next_cpool_id++;
  1.4895 ++    }
  1.4896 ++
  1.4897 ++  return pool;
  1.4898 ++}
  1.4899 ++
  1.4900 ++static struct cpool *
  1.4901 ++add_to_cpool(expressionS *exp, unsigned int *index, int ref)
  1.4902 ++{
  1.4903 ++  struct cpool *pool;
  1.4904 ++  unsigned int entry;
  1.4905 ++
  1.4906 ++  pool = find_or_make_cpool(now_seg, now_subseg);
  1.4907 ++
  1.4908 ++  /* Check if this constant is already in the pool.  */
  1.4909 ++  for (entry = 0; entry < pool->next_free_entry; entry++)
  1.4910 ++    {
  1.4911 ++      if ((pool->literals[entry].exp.X_op == exp->X_op)
  1.4912 ++	  && (exp->X_op == O_constant)
  1.4913 ++	  && (pool->literals[entry].exp.X_add_number
  1.4914 ++	      == exp->X_add_number)
  1.4915 ++	  && (pool->literals[entry].exp.X_unsigned
  1.4916 ++	      == exp->X_unsigned))
  1.4917 ++	break;
  1.4918 ++
  1.4919 ++      if ((pool->literals[entry].exp.X_op == exp->X_op)
  1.4920 ++	  && (exp->X_op == O_symbol)
  1.4921 ++	  && (pool->literals[entry].exp.X_add_number
  1.4922 ++	      == exp->X_add_number)
  1.4923 ++	  && (pool->literals[entry].exp.X_add_symbol
  1.4924 ++	      == exp->X_add_symbol)
  1.4925 ++	  && (pool->literals[entry].exp.X_op_symbol
  1.4926 ++	      == exp->X_op_symbol))
  1.4927 ++	break;
  1.4928 ++    }
  1.4929 ++
  1.4930 ++  /* Create an entry if we didn't find a match */
  1.4931 ++  if (entry == pool->next_free_entry)
  1.4932 ++    {
  1.4933 ++      pool->literals = xrealloc(pool->literals,
  1.4934 ++				sizeof(struct cpool_entry) * (entry + 1));
  1.4935 ++      pool->literals[entry].exp = *exp;
  1.4936 ++      pool->literals[entry].refcount = 0;
  1.4937 ++      pool->next_free_entry++;
  1.4938 ++    }
  1.4939 ++
  1.4940 ++  if (index)
  1.4941 ++    *index = entry;
  1.4942 ++  if (ref)
  1.4943 ++    pool->literals[entry].refcount++;
  1.4944 ++
  1.4945 ++  return pool;
  1.4946 ++}
  1.4947 ++
  1.4948 ++struct avr32_operand
  1.4949 ++{
  1.4950 ++  int id;
  1.4951 ++  int is_signed;
  1.4952 ++  int is_pcrel;
  1.4953 ++  int align_order;
  1.4954 ++  int (*match)(char *str);
  1.4955 ++  void (*parse)(const struct avr32_operand *op, char *str, int opindex);
  1.4956 ++};
  1.4957 ++
  1.4958 ++static int
  1.4959 ++match_anything(char *str ATTRIBUTE_UNUSED)
  1.4960 ++{
  1.4961 ++  return 1;
  1.4962 ++}
  1.4963 ++
  1.4964 ++static int
  1.4965 ++match_intreg(char *str)
  1.4966 ++{
  1.4967 ++  int regid, ret = 1;
  1.4968 ++
  1.4969 ++  regid = avr32_parse_intreg(str);
  1.4970 ++  if (regid < 0)
  1.4971 ++    ret = 0;
  1.4972 ++
  1.4973 ++  pr_debug("match_intreg: `%s': %d\n", str, ret);
  1.4974 ++
  1.4975 ++  return ret;
  1.4976 ++}
  1.4977 ++
  1.4978 ++static int
  1.4979 ++match_intreg_predec(char *str)
  1.4980 ++{
  1.4981 ++  int regid;
  1.4982 ++
  1.4983 ++  if (str[0] != '-' || str[1] != '-')
  1.4984 ++    return 0;
  1.4985 ++
  1.4986 ++  regid = avr32_parse_intreg(str + 2);
  1.4987 ++  if (regid < 0)
  1.4988 ++    return 0;
  1.4989 ++
  1.4990 ++  return 1;
  1.4991 ++}
  1.4992 ++
  1.4993 ++static int
  1.4994 ++match_intreg_postinc(char *str)
  1.4995 ++{
  1.4996 ++  int regid, ret = 1;
  1.4997 ++  char *p, c;
  1.4998 ++
  1.4999 ++  for (p = str; *p; p++)
  1.5000 ++    if (*p == '+')
  1.5001 ++      break;
  1.5002 ++
  1.5003 ++  if (p[0] != '+' || p[1] != '+')
  1.5004 ++    return 0;
  1.5005 ++
  1.5006 ++  c = *p, *p = 0;
  1.5007 ++  regid = avr32_parse_intreg(str);
  1.5008 ++  if (regid < 0)
  1.5009 ++    ret = 0;
  1.5010 ++
  1.5011 ++  *p = c;
  1.5012 ++  return ret;
  1.5013 ++}
  1.5014 ++
  1.5015 ++static int
  1.5016 ++match_intreg_lsl(char *str)
  1.5017 ++{
  1.5018 ++  int regid, ret = 1;
  1.5019 ++  char *p, c;
  1.5020 ++
  1.5021 ++  for (p = str; *p; p++)
  1.5022 ++    if (*p == '<')
  1.5023 ++      break;
  1.5024 ++
  1.5025 ++  if (p[0] && p[1] != '<')
  1.5026 ++    return 0;
  1.5027 ++
  1.5028 ++  c = *p, *p = 0;
  1.5029 ++  regid = avr32_parse_intreg(str);
  1.5030 ++  if (regid < 0)
  1.5031 ++    ret = 0;
  1.5032 ++
  1.5033 ++  *p = c;
  1.5034 ++  return ret;
  1.5035 ++}
  1.5036 ++
  1.5037 ++static int
  1.5038 ++match_intreg_lsr(char *str)
  1.5039 ++{
  1.5040 ++  int regid, ret = 1;
  1.5041 ++  char *p, c;
  1.5042 ++
  1.5043 ++  for (p = str; *p; p++)
  1.5044 ++    if (*p == '>')
  1.5045 ++      break;
  1.5046 ++
  1.5047 ++  if (p[0] && p[1] != '>')
  1.5048 ++    return 0;
  1.5049 ++
  1.5050 ++  c = *p, *p = 0;
  1.5051 ++
  1.5052 ++  regid = avr32_parse_intreg(str);
  1.5053 ++  if (regid < 0)
  1.5054 ++    ret = 0;
  1.5055 ++
  1.5056 ++  *p = c;
  1.5057 ++  return ret;
  1.5058 ++}
  1.5059 ++
  1.5060 ++static int
  1.5061 ++match_intreg_part(char *str)
  1.5062 ++{
  1.5063 ++  int regid, ret = 1;
  1.5064 ++  char *p, c;
  1.5065 ++
  1.5066 ++  for (p = str; *p; p++)
  1.5067 ++    if (*p == ':')
  1.5068 ++      break;
  1.5069 ++
  1.5070 ++  if (p[0] != ':' || !ISPRINT(p[1]) || p[2] != '\0')
  1.5071 ++    return 0;
  1.5072 ++
  1.5073 ++  c = *p, *p = 0;
  1.5074 ++  regid = avr32_parse_intreg(str);
  1.5075 ++  if (regid < 0)
  1.5076 ++    ret = 0;
  1.5077 ++
  1.5078 ++  *p = c;
  1.5079 ++
  1.5080 ++  return ret;
  1.5081 ++}
  1.5082 ++
  1.5083 ++#define match_intreg_disp match_anything
  1.5084 ++
  1.5085 ++static int
  1.5086 ++match_intreg_index(char *str)
  1.5087 ++{
  1.5088 ++  int regid, ret = 1;
  1.5089 ++  char *p, *end, c;
  1.5090 ++
  1.5091 ++  for (p = str; *p; p++)
  1.5092 ++    if (*p == '[')
  1.5093 ++      break;
  1.5094 ++
  1.5095 ++  /* don't allow empty displacement here (it makes no sense) */
  1.5096 ++  if (p[0] != '[')
  1.5097 ++    return 0;
  1.5098 ++
  1.5099 ++  for (end = p + 1; *end; end++) ;
  1.5100 ++  if (*(--end) != ']')
  1.5101 ++    return 0;
  1.5102 ++
  1.5103 ++  c = *end, *end = 0;
  1.5104 ++  if (!match_intreg_lsl(p + 1))
  1.5105 ++    ret = 0;
  1.5106 ++  *end = c;
  1.5107 ++
  1.5108 ++  if (ret)
  1.5109 ++    {
  1.5110 ++      c = *p, *p = 0;
  1.5111 ++      regid = avr32_parse_intreg(str);
  1.5112 ++      if (regid < 0)
  1.5113 ++	ret = 0;
  1.5114 ++      *p = c;
  1.5115 ++    }
  1.5116 ++
  1.5117 ++  return ret;
  1.5118 ++}
  1.5119 ++
  1.5120 ++static int
  1.5121 ++match_intreg_xindex(char *str)
  1.5122 ++{
  1.5123 ++  int regid, ret = 1;
  1.5124 ++  char *p, *end, c;
  1.5125 ++
  1.5126 ++  for (p = str; *p; p++)
  1.5127 ++    if (*p == '[')
  1.5128 ++      break;
  1.5129 ++
  1.5130 ++  /* empty displacement makes no sense here either */
  1.5131 ++  if (p[0] != '[')
  1.5132 ++    return 0;
  1.5133 ++
  1.5134 ++  for (end = p + 1; *end; end++)
  1.5135 ++    if (*end == '<')
  1.5136 ++      break;
  1.5137 ++
  1.5138 ++  if (!streq(end, "<<2]"))
  1.5139 ++    return 0;
  1.5140 ++
  1.5141 ++  c = *end, *end = 0;
  1.5142 ++  if (!match_intreg_part(p + 1))
  1.5143 ++    ret = 0;
  1.5144 ++  *end = c;
  1.5145 ++
  1.5146 ++  if (ret)
  1.5147 ++    {
  1.5148 ++      c = *p, *p = 0;
  1.5149 ++      regid = avr32_parse_intreg(str);
  1.5150 ++      if (regid < 0)
  1.5151 ++	ret = 0;
  1.5152 ++      *p = c;
  1.5153 ++    }
  1.5154 ++
  1.5155 ++  return ret;
  1.5156 ++}
  1.5157 ++
  1.5158 ++/* The PC_UDISP_W operator may show up as a label or as a pc[disp]
  1.5159 ++   expression.  So there's no point in attempting to match this...  */
  1.5160 ++#define match_pc_disp	match_anything
  1.5161 ++
  1.5162 ++static int
  1.5163 ++match_sp(char *str)
  1.5164 ++{
  1.5165 ++  /* SP in any form will do */
  1.5166 ++  return avr32_parse_intreg(str) == AVR32_REG_SP;
  1.5167 ++}
  1.5168 ++
  1.5169 ++static int
  1.5170 ++match_sp_disp(char *str)
  1.5171 ++{
  1.5172 ++  int regid, ret = 1;
  1.5173 ++  char *p, c;
  1.5174 ++
  1.5175 ++  for (p = str; *p; p++)
  1.5176 ++    if (*p == '[')
  1.5177 ++      break;
  1.5178 ++
  1.5179 ++  /* allow empty displacement, meaning zero */
  1.5180 ++  if (p[0] == '[')
  1.5181 ++    {
  1.5182 ++      char *end;
  1.5183 ++      for (end = p + 1; *end; end++) ;
  1.5184 ++      if (end[-1] != ']')
  1.5185 ++	return 0;
  1.5186 ++    }
  1.5187 ++
  1.5188 ++  c = *p, *p = 0;
  1.5189 ++  regid = avr32_parse_intreg(str);
  1.5190 ++  if (regid != AVR32_REG_SP)
  1.5191 ++    ret = 0;
  1.5192 ++
  1.5193 ++  *p = c;
  1.5194 ++  return ret;
  1.5195 ++}
  1.5196 ++
  1.5197 ++static int
  1.5198 ++match_cpno(char *str)
  1.5199 ++{
  1.5200 ++  if (strncasecmp(str, "cp", 2) != 0)
  1.5201 ++    return 0;
  1.5202 ++  return 1;
  1.5203 ++}
  1.5204 ++
  1.5205 ++static int
  1.5206 ++match_cpreg(char *str)
  1.5207 ++{
  1.5208 ++  if (strncasecmp(str, "cr", 2) != 0)
  1.5209 ++    return 0;
  1.5210 ++  return 1;
  1.5211 ++}
  1.5212 ++
  1.5213 ++/* We allow complex expressions, and register names may show up as
  1.5214 ++   symbols.  Just make sure immediate expressions are always matched
  1.5215 ++   last.  */
  1.5216 ++#define match_const		match_anything
  1.5217 ++#define match_jmplabel		match_anything
  1.5218 ++#define match_number		match_anything
  1.5219 ++
  1.5220 ++/* Mnemonics that take reglists never accept anything else */
  1.5221 ++#define match_reglist8		match_anything
  1.5222 ++#define match_reglist9		match_anything
  1.5223 ++#define match_reglist16		match_anything
  1.5224 ++#define match_reglist_ldm	match_anything
  1.5225 ++#define match_reglist_cp8	match_anything
  1.5226 ++#define match_reglist_cpd8	match_anything
  1.5227 ++
  1.5228 ++/* Ditto for retval, jospinc and mcall */
  1.5229 ++#define match_retval		match_anything
  1.5230 ++#define match_jospinc		match_anything
  1.5231 ++#define match_mcall		match_anything
  1.5232 ++
  1.5233 ++/* COH is used to select between two different syntaxes */
  1.5234 ++static int
  1.5235 ++match_coh(char *str)
  1.5236 ++{
  1.5237 ++  return strcasecmp(str, "coh") == 0;
  1.5238 ++}
  1.5239 ++
  1.5240 ++static int
  1.5241 ++match_fpreg(char *str)
  1.5242 ++{
  1.5243 ++  unsigned long regid;
  1.5244 ++  char *endptr;
  1.5245 ++
  1.5246 ++  if ((str[0] != 'f' && str[0] != 'F')
  1.5247 ++      || (str[1] != 'r' && str[1] != 'R'))
  1.5248 ++    return 0;
  1.5249 ++
  1.5250 ++  str += 2;
  1.5251 ++  regid = strtoul(str, &endptr, 10);
  1.5252 ++  if (!*str || *endptr)
  1.5253 ++    return 0;
  1.5254 ++
  1.5255 ++  return 1;
  1.5256 ++}
  1.5257 ++
  1.5258 ++static int
  1.5259 ++match_picoreg(char *str)
  1.5260 ++{
  1.5261 ++  int regid;
  1.5262 ++
  1.5263 ++  regid = avr32_parse_picoreg(str);
  1.5264 ++  if (regid < 0)
  1.5265 ++    return 0;
  1.5266 ++  return 1;
  1.5267 ++}
  1.5268 ++
  1.5269 ++#define match_pico_reglist_w	match_anything
  1.5270 ++#define match_pico_reglist_d	match_anything
  1.5271 ++
  1.5272 ++static int
  1.5273 ++match_pico_in(char *str)
  1.5274 ++{
  1.5275 ++  unsigned long regid;
  1.5276 ++  char *end;
  1.5277 ++
  1.5278 ++  if (strncasecmp(str, "in", 2) != 0)
  1.5279 ++    return 0;
  1.5280 ++
  1.5281 ++  str += 2;
  1.5282 ++  regid = strtoul(str, &end, 10);
  1.5283 ++  if (!*str || *end)
  1.5284 ++    return 0;
  1.5285 ++
  1.5286 ++  return 1;
  1.5287 ++}
  1.5288 ++
  1.5289 ++static int
  1.5290 ++match_pico_out0(char *str)
  1.5291 ++{
  1.5292 ++  if (strcasecmp(str, "out0") != 0)
  1.5293 ++    return 0;
  1.5294 ++  return 1;
  1.5295 ++}
  1.5296 ++
  1.5297 ++static int
  1.5298 ++match_pico_out1(char *str)
  1.5299 ++{
  1.5300 ++  if (strcasecmp(str, "out1") != 0)
  1.5301 ++    return 0;
  1.5302 ++  return 1;
  1.5303 ++}
  1.5304 ++
  1.5305 ++static int
  1.5306 ++match_pico_out2(char *str)
  1.5307 ++{
  1.5308 ++  if (strcasecmp(str, "out2") != 0)
  1.5309 ++    return 0;
  1.5310 ++  return 1;
  1.5311 ++}
  1.5312 ++
  1.5313 ++static int
  1.5314 ++match_pico_out3(char *str)
  1.5315 ++{
  1.5316 ++  if (strcasecmp(str, "out3") != 0)
  1.5317 ++    return 0;
  1.5318 ++  return 1;
  1.5319 ++}
  1.5320 ++
  1.5321 ++static void parse_nothing(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  1.5322 ++			  char *str ATTRIBUTE_UNUSED,
  1.5323 ++			  int opindex ATTRIBUTE_UNUSED)
  1.5324 ++{
  1.5325 ++  /* Do nothing (this is used for "match-only" operands like COH) */
  1.5326 ++}
  1.5327 ++
  1.5328 ++static void
  1.5329 ++parse_const(const struct avr32_operand *op, char *str,
  1.5330 ++	    int opindex ATTRIBUTE_UNUSED)
  1.5331 ++{
  1.5332 ++  expressionS *exp = &current_insn.immediate;
  1.5333 ++  expressionS *sym_exp;
  1.5334 ++  int slot;
  1.5335 ++  char *save;
  1.5336 ++
  1.5337 ++  pr_debug("parse_const: `%s' (signed: %d, pcrel: %d, align: %d)\n",
  1.5338 ++	   str, op->is_signed, op->is_pcrel, op->align_order);
  1.5339 ++
  1.5340 ++  save = input_line_pointer;
  1.5341 ++  input_line_pointer = str;
  1.5342 ++
  1.5343 ++  expression(exp);
  1.5344 ++
  1.5345 ++  slot = current_insn.next_slot++;
  1.5346 ++  current_insn.field_value[slot].align_order = op->align_order;
  1.5347 ++  current_insn.pcrel = op->is_pcrel;
  1.5348 ++
  1.5349 ++  switch (exp->X_op)
  1.5350 ++    {
  1.5351 ++    case O_illegal:
  1.5352 ++      as_bad(_("illegal operand"));
  1.5353 ++      break;
  1.5354 ++    case O_absent:
  1.5355 ++      as_bad(_("missing operand"));
  1.5356 ++      break;
  1.5357 ++    case O_constant:
  1.5358 ++      pr_debug("  -> constant: %ld\n", (long)exp->X_add_number);
  1.5359 ++      current_insn.field_value[slot].value = exp->X_add_number;
  1.5360 ++      break;
  1.5361 ++    case O_uminus:
  1.5362 ++      pr_debug("  -> uminus\n");
  1.5363 ++      sym_exp = symbol_get_value_expression(exp->X_add_symbol);
  1.5364 ++      switch (sym_exp->X_op) {
  1.5365 ++      case O_subtract:
  1.5366 ++	pr_debug("     -> subtract: switching operands\n");
  1.5367 ++	exp->X_op_symbol = sym_exp->X_add_symbol;
  1.5368 ++	exp->X_add_symbol = sym_exp->X_op_symbol;
  1.5369 ++	exp->X_op = O_subtract;
  1.5370 ++	/* TODO: Remove the old X_add_symbol */
  1.5371 ++	break;
  1.5372 ++      default:
  1.5373 ++	as_bad(_("Expression too complex\n"));
  1.5374 ++	break;
  1.5375 ++      }
  1.5376 ++      break;
  1.5377 ++#if 0
  1.5378 ++    case O_subtract:
  1.5379 ++      /* Any expression subtracting a symbol from the current section
  1.5380 ++	 can be made PC-relative by adding the right offset.  */
  1.5381 ++      if (S_GET_SEGMENT(exp->X_op_symbol) == now_seg)
  1.5382 ++	current_insn.pcrel = TRUE;
  1.5383 ++      pr_debug("  -> subtract: pcrel? %s\n",
  1.5384 ++	       current_insn.pcrel ? "yes" : "no");
  1.5385 ++      /* fall through */
  1.5386 ++#endif
  1.5387 ++    default:
  1.5388 ++      pr_debug("  -> (%p <%d> %p + %d)\n",
  1.5389 ++	       exp->X_add_symbol, exp->X_op, exp->X_op_symbol,
  1.5390 ++	       exp->X_add_number);
  1.5391 ++      current_insn.field_value[slot].value = 0;
  1.5392 ++      break;
  1.5393 ++    }
  1.5394 ++
  1.5395 ++  input_line_pointer = save;
  1.5396 ++}
  1.5397 ++
  1.5398 ++static void
  1.5399 ++parse_jmplabel(const struct avr32_operand *op, char *str,
  1.5400 ++	       int opindex ATTRIBUTE_UNUSED)
  1.5401 ++{
  1.5402 ++  expressionS *exp = &current_insn.immediate;
  1.5403 ++  int slot;
  1.5404 ++  char *save;
  1.5405 ++
  1.5406 ++  pr_debug("parse_jmplabel: `%s' (signed: %d, pcrel: %d, align: %d)\n",
  1.5407 ++	   str, op->is_signed, op->is_pcrel, op->align_order);
  1.5408 ++
  1.5409 ++  save = input_line_pointer;
  1.5410 ++  input_line_pointer = str;
  1.5411 ++
  1.5412 ++  expression(exp);
  1.5413 ++
  1.5414 ++  slot = current_insn.next_slot++;
  1.5415 ++  current_insn.field_value[slot].align_order = op->align_order;
  1.5416 ++  current_insn.pcrel = TRUE;
  1.5417 ++
  1.5418 ++  switch (exp->X_op)
  1.5419 ++    {
  1.5420 ++    case O_illegal:
  1.5421 ++      as_bad(_("illegal operand"));
  1.5422 ++      break;
  1.5423 ++    case O_absent:
  1.5424 ++      as_bad(_("missing operand"));
  1.5425 ++      break;
  1.5426 ++    case O_constant:
  1.5427 ++      pr_debug("  -> constant: %ld\n", (long)exp->X_add_number);
  1.5428 ++      current_insn.field_value[slot].value = exp->X_add_number;
  1.5429 ++      current_insn.pcrel = 0;
  1.5430 ++      break;
  1.5431 ++    default:
  1.5432 ++      pr_debug("  -> (%p <%d> %p + %d)\n",
  1.5433 ++	       exp->X_add_symbol, exp->X_op, exp->X_op_symbol,
  1.5434 ++	       exp->X_add_number);
  1.5435 ++      current_insn.field_value[slot].value = 0;
  1.5436 ++      break;
  1.5437 ++    }
  1.5438 ++
  1.5439 ++  input_line_pointer = save;
  1.5440 ++}
  1.5441 ++
  1.5442 ++static void
  1.5443 ++parse_intreg(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  1.5444 ++	     char *str, int opindex ATTRIBUTE_UNUSED)
  1.5445 ++{
  1.5446 ++  int regid, slot;
  1.5447 ++
  1.5448 ++  pr_debug("parse_intreg: `%s'\n", str);
  1.5449 ++
  1.5450 ++  regid = avr32_parse_intreg(str);
  1.5451 ++  assert(regid >= 0);
  1.5452 ++
  1.5453 ++  slot = current_insn.next_slot++;
  1.5454 ++  current_insn.field_value[slot].value = regid;
  1.5455 ++  current_insn.field_value[slot].align_order = op->align_order;
  1.5456 ++}
  1.5457 ++
  1.5458 ++static void
  1.5459 ++parse_intreg_predec(const struct avr32_operand *op, char *str, int opindex)
  1.5460 ++{
  1.5461 ++  parse_intreg(op, str + 2, opindex);
  1.5462 ++}
  1.5463 ++
  1.5464 ++static void
  1.5465 ++parse_intreg_postinc(const struct avr32_operand *op, char *str, int opindex)
  1.5466 ++{
  1.5467 ++  char *p, c;
  1.5468 ++
  1.5469 ++  pr_debug("parse_intreg_postinc: `%s'\n", str);
  1.5470 ++
  1.5471 ++  for (p = str; *p != '+'; p++) ;
  1.5472 ++
  1.5473 ++  c = *p, *p = 0;
  1.5474 ++  parse_intreg(op, str, opindex);
  1.5475 ++  *p = c;
  1.5476 ++}
  1.5477 ++
  1.5478 ++static void
  1.5479 ++parse_intreg_shift(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  1.5480 ++		   char *str, int opindex ATTRIBUTE_UNUSED)
  1.5481 ++{
  1.5482 ++  int regid, slot, shift = 0;
  1.5483 ++  char *p, c;
  1.5484 ++  char shiftop;
  1.5485 ++
  1.5486 ++  pr_debug("parse Ry<<sa: `%s'\n", str);
  1.5487 ++
  1.5488 ++  for (p = str; *p; p++)
  1.5489 ++    if (*p == '<' || *p == '>')
  1.5490 ++      break;
  1.5491 ++
  1.5492 ++  shiftop = *p;
  1.5493 ++
  1.5494 ++  c = *p, *p = 0;
  1.5495 ++  regid = avr32_parse_intreg(str);
  1.5496 ++  assert(regid >= 0);
  1.5497 ++  *p = c;
  1.5498 ++
  1.5499 ++  if (c)
  1.5500 ++    {
  1.5501 ++      if (p[0] != shiftop || p[1] != shiftop)
  1.5502 ++	as_bad(_("expected shift operator in `%s'"), p);
  1.5503 ++      else
  1.5504 ++	{
  1.5505 ++	  expressionS exp;
  1.5506 ++	  char *saved;
  1.5507 ++
  1.5508 ++	  saved = input_line_pointer;
  1.5509 ++	  input_line_pointer = p + 2;
  1.5510 ++	  expression(&exp);
  1.5511 ++	  input_line_pointer = saved;
  1.5512 ++
  1.5513 ++	  if (exp.X_op != O_constant)
  1.5514 ++	    as_bad(_("shift amount must be a numeric constant"));
  1.5515 ++	  else
  1.5516 ++	    shift = exp.X_add_number;
  1.5517 ++	}
  1.5518 ++    }
  1.5519 ++
  1.5520 ++  slot = current_insn.next_slot++;
  1.5521 ++  current_insn.field_value[slot].value = regid;
  1.5522 ++  slot = current_insn.next_slot++;
  1.5523 ++  current_insn.field_value[slot].value = shift;
  1.5524 ++}
  1.5525 ++
  1.5526 ++/* The match() function selected the right opcode, so it doesn't
  1.5527 ++   matter which way we shift any more.  */
  1.5528 ++#define parse_intreg_lsl	parse_intreg_shift
  1.5529 ++#define parse_intreg_lsr	parse_intreg_shift
  1.5530 ++
  1.5531 ++static void
  1.5532 ++parse_intreg_part(const struct avr32_operand *op, char *str,
  1.5533 ++		  int opindex ATTRIBUTE_UNUSED)
  1.5534 ++{
  1.5535 ++  static const char bparts[] = { 'b', 'l', 'u', 't' };
  1.5536 ++  static const char hparts[] = { 'b', 't' };
  1.5537 ++  unsigned int slot, sel;
  1.5538 ++  int regid;
  1.5539 ++  char *p, c;
  1.5540 ++
  1.5541 ++  pr_debug("parse reg:part `%s'\n", str);
  1.5542 ++
  1.5543 ++  for (p = str; *p; p++)
  1.5544 ++    if (*p == ':')
  1.5545 ++      break;
  1.5546 ++
  1.5547 ++  c = *p, *p = 0;
  1.5548 ++  regid = avr32_parse_intreg(str);
  1.5549 ++  assert(regid >= 0);
  1.5550 ++  *p = c;
  1.5551 ++
  1.5552 ++  assert(c == ':');
  1.5553 ++
  1.5554 ++  if (op->align_order)
  1.5555 ++    {
  1.5556 ++      for (sel = 0; sel < sizeof(hparts); sel++)
  1.5557 ++	if (TOLOWER(p[1]) == hparts[sel])
  1.5558 ++	  break;
  1.5559 ++
  1.5560 ++      if (sel >= sizeof(hparts))
  1.5561 ++	{
  1.5562 ++	  as_bad(_("invalid halfword selector `%c' (must be either b or t)"),
  1.5563 ++		 p[1]);
  1.5564 ++	  sel = 0;
  1.5565 ++	}
  1.5566 ++    }
  1.5567 ++  else
  1.5568 ++    {
  1.5569 ++      for (sel = 0; sel < sizeof(bparts); sel++)
  1.5570 ++	if (TOLOWER(p[1]) == bparts[sel])
  1.5571 ++	  break;
  1.5572 ++
  1.5573 ++      if (sel >= sizeof(bparts))
  1.5574 ++	{
  1.5575 ++	  as_bad(_("invalid byte selector `%c' (must be one of b,l,u,t)"),
  1.5576 ++		 p[1]);
  1.5577 ++	  sel = 0;
  1.5578 ++	}
  1.5579 ++    }
  1.5580 ++
  1.5581 ++  slot = current_insn.next_slot++;
  1.5582 ++  current_insn.field_value[slot].value = regid;
  1.5583 ++  slot = current_insn.next_slot++;
  1.5584 ++  current_insn.field_value[slot].value = sel;
  1.5585 ++}
  1.5586 ++
  1.5587 ++/* This is the parser for "Rp[displacement]" expressions.  In addition
  1.5588 ++   to the "official" syntax, we accept a label as a replacement for
  1.5589 ++   the register expression.  This syntax implies Rp=PC and the
  1.5590 ++   displacement is the pc-relative distance to the label.  */
  1.5591 ++static void
  1.5592 ++parse_intreg_disp(const struct avr32_operand *op, char *str, int opindex)
  1.5593 ++{
  1.5594 ++  expressionS *exp = &current_insn.immediate;
  1.5595 ++  int slot, regid;
  1.5596 ++  char *save, *p, c;
  1.5597 ++
  1.5598 ++  pr_debug("parse_intreg_disp: `%s' (signed: %d, pcrel: %d, align: %d)\n",
  1.5599 ++	   str, op->is_signed, op->is_pcrel, op->align_order);
  1.5600 ++
  1.5601 ++  for (p = str; *p; p++)
  1.5602 ++    if (*p == '[')
  1.5603 ++      break;
  1.5604 ++
  1.5605 ++  slot = current_insn.next_slot++;
  1.5606 ++
  1.5607 ++  /* First, check if we have a valid register either before '[' or as
  1.5608 ++     the sole expression.  If so, we use the Rp[disp] syntax.  */
  1.5609 ++  c = *p, *p = 0;
  1.5610 ++  regid = avr32_parse_intreg(str);
  1.5611 ++  *p = c;
  1.5612 ++
  1.5613 ++  if (regid >= 0)
  1.5614 ++    {
  1.5615 ++      current_insn.field_value[slot].value = regid;
  1.5616 ++
  1.5617 ++      slot = current_insn.next_slot++;
  1.5618 ++      current_insn.field_value[slot].align_order = op->align_order;
  1.5619 ++
  1.5620 ++      if (c == '[')
  1.5621 ++	{
  1.5622 ++	  save = input_line_pointer;
  1.5623 ++	  input_line_pointer = p + 1;
  1.5624 ++
  1.5625 ++	  expression(exp);
  1.5626 ++
  1.5627 ++	  if (*input_line_pointer != ']')
  1.5628 ++	    as_bad(_("junk after displacement expression"));
  1.5629 ++
  1.5630 ++	  input_line_pointer = save;
  1.5631 ++
  1.5632 ++	  switch (exp->X_op)
  1.5633 ++	    {
  1.5634 ++	    case O_illegal:
  1.5635 ++	      as_bad(_("illegal displacement expression"));
  1.5636 ++	      break;
  1.5637 ++	    case O_absent:
  1.5638 ++	      as_bad(_("missing displacement expression"));
  1.5639 ++	      break;
  1.5640 ++	    case O_constant:
  1.5641 ++	      pr_debug("  -> constant: %ld\n", exp->X_add_number);
  1.5642 ++	      current_insn.field_value[slot].value = exp->X_add_number;
  1.5643 ++	      break;
  1.5644 ++#if 0
  1.5645 ++	    case O_subtract:
  1.5646 ++	      if (S_GET_SEGMENT(exp->X_op_symbol) == now_seg)
  1.5647 ++		current_insn.pcrel = TRUE;
  1.5648 ++	      pr_debug("  -> subtract: pcrel? %s\n",
  1.5649 ++		       current_insn.pcrel ? "yes" : "no");
  1.5650 ++	      /* fall through */
  1.5651 ++#endif
  1.5652 ++	    default:
  1.5653 ++	      pr_debug("  -> (%p <%d> %p + %d)\n",
  1.5654 ++		       exp->X_add_symbol, exp->X_op, exp->X_op_symbol,
  1.5655 ++		       exp->X_add_number);
  1.5656 ++	      current_insn.field_value[slot].value = 0;
  1.5657 ++	    }
  1.5658 ++	}
  1.5659 ++      else
  1.5660 ++	{
  1.5661 ++	  exp->X_op = O_constant;
  1.5662 ++	  exp->X_add_number = 0;
  1.5663 ++	  current_insn.field_value[slot].value = 0;
  1.5664 ++	}
  1.5665 ++    }
  1.5666 ++  else
  1.5667 ++    {
  1.5668 ++      /* Didn't find a valid register.  Try parsing it as a label.  */
  1.5669 ++      current_insn.field_value[slot].value = AVR32_REG_PC;
  1.5670 ++      parse_jmplabel(op, str, opindex);
  1.5671 ++    }
  1.5672 ++}
  1.5673 ++
  1.5674 ++static void
  1.5675 ++parse_intreg_index(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  1.5676 ++		   char *str, int opindex ATTRIBUTE_UNUSED)
  1.5677 ++{
  1.5678 ++  int slot, regid;
  1.5679 ++  char *p, *end, c;
  1.5680 ++
  1.5681 ++  for (p = str; *p; p++)
  1.5682 ++    if (*p == '[')
  1.5683 ++      break;
  1.5684 ++
  1.5685 ++  assert(*p);
  1.5686 ++
  1.5687 ++  c = *p, *p = 0;
  1.5688 ++  regid = avr32_parse_intreg(str);
  1.5689 ++  assert(regid >= 0);
  1.5690 ++  *p = c;
  1.5691 ++
  1.5692 ++  slot = current_insn.next_slot++;
  1.5693 ++  current_insn.field_value[slot].value = regid;
  1.5694 ++
  1.5695 ++  p++;
  1.5696 ++  for (end = p; *end; end++)
  1.5697 ++    if (*end == ']' || *end == '<')
  1.5698 ++      break;
  1.5699 ++
  1.5700 ++  assert(*end);
  1.5701 ++
  1.5702 ++  c = *end, *end = 0;
  1.5703 ++  regid = avr32_parse_intreg(p);
  1.5704 ++  assert(regid >= 0);
  1.5705 ++  *end = c;
  1.5706 ++
  1.5707 ++  slot = current_insn.next_slot++;
  1.5708 ++  current_insn.field_value[slot].value = regid;
  1.5709 ++
  1.5710 ++  slot = current_insn.next_slot++;
  1.5711 ++  current_insn.field_value[slot].value = 0;
  1.5712 ++
  1.5713 ++  if (*end == '<')
  1.5714 ++    {
  1.5715 ++      expressionS exp;
  1.5716 ++      char *save;
  1.5717 ++
  1.5718 ++      p = end + 2;
  1.5719 ++      for (end = p; *end; end++)
  1.5720 ++	if (*end == ']')
  1.5721 ++	  break;
  1.5722 ++
  1.5723 ++      assert(*end == ']');
  1.5724 ++
  1.5725 ++      c = *end, *end = 0;
  1.5726 ++      save = input_line_pointer;
  1.5727 ++      input_line_pointer = p;
  1.5728 ++      expression(&exp);
  1.5729 ++
  1.5730 ++      if (*input_line_pointer)
  1.5731 ++	as_bad(_("junk after shift expression"));
  1.5732 ++
  1.5733 ++      *end = c;
  1.5734 ++      input_line_pointer = save;
  1.5735 ++
  1.5736 ++      if (exp.X_op == O_constant)
  1.5737 ++	current_insn.field_value[slot].value = exp.X_add_number;
  1.5738 ++      else
  1.5739 ++	as_bad(_("shift expression too complex"));
  1.5740 ++    }
  1.5741 ++}
  1.5742 ++
  1.5743 ++static void
  1.5744 ++parse_intreg_xindex(const struct avr32_operand *op, char *str, int opindex)
  1.5745 ++{
  1.5746 ++  int slot, regid;
  1.5747 ++  char *p, *end, c;
  1.5748 ++
  1.5749 ++  for (p = str; *p; p++)
  1.5750 ++    if (*p == '[')
  1.5751 ++      break;
  1.5752 ++
  1.5753 ++  assert(*p);
  1.5754 ++
  1.5755 ++  c = *p, *p = 0;
  1.5756 ++  regid = avr32_parse_intreg(str);
  1.5757 ++  assert(regid >= 0);
  1.5758 ++  *p = c;
  1.5759 ++
  1.5760 ++  slot = current_insn.next_slot++;
  1.5761 ++  current_insn.field_value[slot].value = regid;
  1.5762 ++
  1.5763 ++  p++;
  1.5764 ++  for (end = p; *end; end++)
  1.5765 ++    if (*end == '<')
  1.5766 ++      break;
  1.5767 ++
  1.5768 ++  assert(*end);
  1.5769 ++
  1.5770 ++  c = *end, *end = 0;
  1.5771 ++  parse_intreg_part(op, p, opindex);
  1.5772 ++  *end = c;
  1.5773 ++}
  1.5774 ++
  1.5775 ++static void
  1.5776 ++parse_pc_disp(const struct avr32_operand *op, char *str, int opindex)
  1.5777 ++{
  1.5778 ++  char *p, c;
  1.5779 ++
  1.5780 ++  for (p = str; *p; p++)
  1.5781 ++    if (*p == '[')
  1.5782 ++      break;
  1.5783 ++
  1.5784 ++  /* The lddpc instruction comes in two different syntax variants:
  1.5785 ++       lddpc reg, expression
  1.5786 ++       lddpc reg, pc[disp]
  1.5787 ++     If the operand contains a '[', we use the second form.  */
  1.5788 ++  if (*p)
  1.5789 ++    {
  1.5790 ++      int regid;
  1.5791 ++
  1.5792 ++      c = *p, *p = 0;
  1.5793 ++      regid = avr32_parse_intreg(str);
  1.5794 ++      *p = c;
  1.5795 ++      if (regid == AVR32_REG_PC)
  1.5796 ++	{
  1.5797 ++	  char *end;
  1.5798 ++
  1.5799 ++	  for (end = ++p; *end; end++) ;
  1.5800 ++	  if (*(--end) != ']')
  1.5801 ++	    as_bad(_("unrecognized form of instruction: `%s'"), str);
  1.5802 ++	  else
  1.5803 ++	    {
  1.5804 ++	      c = *end, *end = 0;
  1.5805 ++	      parse_const(op, p, opindex);
  1.5806 ++	      *end = c;
  1.5807 ++	      current_insn.pcrel = 0;
  1.5808 ++	    }
  1.5809 ++	}
  1.5810 ++      else
  1.5811 ++	as_bad(_("unrecognized form of instruction: `%s'"), str);
  1.5812 ++    }
  1.5813 ++  else
  1.5814 ++    {
  1.5815 ++      parse_jmplabel(op, str, opindex);
  1.5816 ++    }
  1.5817 ++}
  1.5818 ++
  1.5819 ++static void parse_sp(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  1.5820 ++		     char *str ATTRIBUTE_UNUSED,
  1.5821 ++		     int opindex ATTRIBUTE_UNUSED)
  1.5822 ++{
  1.5823 ++  int slot;
  1.5824 ++
  1.5825 ++  slot = current_insn.next_slot++;
  1.5826 ++  current_insn.field_value[slot].value = AVR32_REG_SP;
  1.5827 ++}
  1.5828 ++
  1.5829 ++static void
  1.5830 ++parse_sp_disp(const struct avr32_operand *op, char *str, int opindex)
  1.5831 ++{
  1.5832 ++  char *p, c;
  1.5833 ++
  1.5834 ++  for (; *str; str++)
  1.5835 ++    if (*str == '[')
  1.5836 ++      break;
  1.5837 ++
  1.5838 ++  assert(*str);
  1.5839 ++
  1.5840 ++  for (p = ++str; *p; p++)
  1.5841 ++    if (*p == ']')
  1.5842 ++      break;
  1.5843 ++
  1.5844 ++  c = *p, *p = 0;
  1.5845 ++  parse_const(op, str, opindex);
  1.5846 ++  *p = c;
  1.5847 ++}
  1.5848 ++
  1.5849 ++static void
  1.5850 ++parse_cpno(const struct avr32_operand *op ATTRIBUTE_UNUSED, char *str,
  1.5851 ++	   int opindex ATTRIBUTE_UNUSED)
  1.5852 ++{
  1.5853 ++  int slot;
  1.5854 ++
  1.5855 ++  str += 2;
  1.5856 ++  if (*str == '#')
  1.5857 ++    str++;
  1.5858 ++  if (*str < '0' || *str > '7' || str[1])
  1.5859 ++    as_bad(_("invalid coprocessor `%s'"), str);
  1.5860 ++
  1.5861 ++  slot = current_insn.next_slot++;
  1.5862 ++  current_insn.field_value[slot].value = *str - '0';
  1.5863 ++}
  1.5864 ++
  1.5865 ++static void
  1.5866 ++parse_cpreg(const struct avr32_operand *op, char *str,
  1.5867 ++	    int opindex ATTRIBUTE_UNUSED)
  1.5868 ++{
  1.5869 ++  unsigned int crid;
  1.5870 ++  int slot;
  1.5871 ++  char *endptr;
  1.5872 ++
  1.5873 ++  str += 2;
  1.5874 ++  crid = strtoul(str, &endptr, 10);
  1.5875 ++  if (*endptr || crid > 15 || crid & ((1 << op->align_order) - 1))
  1.5876 ++    as_bad(_("invalid coprocessor register `%s'"), str);
  1.5877 ++
  1.5878 ++  crid >>= op->align_order;
  1.5879 ++
  1.5880 ++  slot = current_insn.next_slot++;
  1.5881 ++  current_insn.field_value[slot].value = crid;
  1.5882 ++}
  1.5883 ++
  1.5884 ++static void
  1.5885 ++parse_number(const struct avr32_operand *op, char *str,
  1.5886 ++	     int opindex ATTRIBUTE_UNUSED)
  1.5887 ++{
  1.5888 ++  expressionS exp;
  1.5889 ++  int slot;
  1.5890 ++  char *save;
  1.5891 ++
  1.5892 ++  save = input_line_pointer;
  1.5893 ++  input_line_pointer = str;
  1.5894 ++  expression(&exp);
  1.5895 ++  input_line_pointer = save;
  1.5896 ++
  1.5897 ++  slot = current_insn.next_slot++;
  1.5898 ++  current_insn.field_value[slot].align_order = op->align_order;
  1.5899 ++
  1.5900 ++  if (exp.X_op == O_constant)
  1.5901 ++      current_insn.field_value[slot].value = exp.X_add_number;
  1.5902 ++  else
  1.5903 ++      as_bad(_("invalid numeric expression `%s'"), str);
  1.5904 ++}
  1.5905 ++
  1.5906 ++static void
  1.5907 ++parse_reglist8(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  1.5908 ++	       char *str, int opindex ATTRIBUTE_UNUSED)
  1.5909 ++{
  1.5910 ++  unsigned long regmask;
  1.5911 ++  unsigned long value = 0;
  1.5912 ++  int slot;
  1.5913 ++  char *tail;
  1.5914 ++
  1.5915 ++  regmask = avr32_parse_reglist(str, &tail);
  1.5916 ++  if (*tail)
  1.5917 ++    as_bad(_("invalid register list `%s'"), str);
  1.5918 ++  else
  1.5919 ++    {
  1.5920 ++      if (avr32_make_regmask8(regmask, &value))
  1.5921 ++	as_bad(_("register list `%s' doesn't fit"), str);
  1.5922 ++    }
  1.5923 ++
  1.5924 ++  slot = current_insn.next_slot++;
  1.5925 ++  current_insn.field_value[slot].value = value;
  1.5926 ++}
  1.5927 ++
  1.5928 ++static int
  1.5929 ++parse_reglist_tail(char *str, unsigned long regmask)
  1.5930 ++{
  1.5931 ++  expressionS exp;
  1.5932 ++  char *save, *p, c;
  1.5933 ++  int regid;
  1.5934 ++
  1.5935 ++  for (p = str + 1; *p; p++)
  1.5936 ++    if (*p == '=')
  1.5937 ++      break;
  1.5938 ++
  1.5939 ++  if (!*p)
  1.5940 ++    {
  1.5941 ++      as_bad(_("invalid register list `%s'"), str);
  1.5942 ++      return -2;
  1.5943 ++    }
  1.5944 ++
  1.5945 ++  c = *p, *p = 0;
  1.5946 ++  regid = avr32_parse_intreg(str);
  1.5947 ++  *p = c;
  1.5948 ++
  1.5949 ++  if (regid != 12)
  1.5950 ++    {
  1.5951 ++      as_bad(_("invalid register list `%s'"), str);
  1.5952 ++      return -2;
  1.5953 ++    }
  1.5954 ++
  1.5955 ++  /* If we have an assignment, we must pop PC and we must _not_
  1.5956 ++     pop LR or R12 */
  1.5957 ++  if (!(regmask & (1 << AVR32_REG_PC)))
  1.5958 ++    {
  1.5959 ++      as_bad(_("return value specified for non-return instruction"));
  1.5960 ++      return -2;
  1.5961 ++    }
  1.5962 ++  else if (regmask & ((1 << AVR32_REG_R12) | (1 << AVR32_REG_LR)))
  1.5963 ++    {
  1.5964 ++      as_bad(_("can't pop LR or R12 when specifying return value"));
  1.5965 ++      return -2;
  1.5966 ++    }
  1.5967 ++
  1.5968 ++  save = input_line_pointer;
  1.5969 ++  input_line_pointer = p + 1;
  1.5970 ++  expression(&exp);
  1.5971 ++  input_line_pointer = save;
  1.5972 ++
  1.5973 ++  if (exp.X_op != O_constant
  1.5974 ++      || exp.X_add_number < -1
  1.5975 ++      || exp.X_add_number > 1)
  1.5976 ++    {
  1.5977 ++      as_bad(_("invalid return value `%s'"), str);
  1.5978 ++      return -2;
  1.5979 ++    }
  1.5980 ++
  1.5981 ++  return exp.X_add_number;
  1.5982 ++}
  1.5983 ++
  1.5984 ++static void
  1.5985 ++parse_reglist9(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  1.5986 ++	       char *str, int opindex ATTRIBUTE_UNUSED)
  1.5987 ++{
  1.5988 ++  unsigned long regmask;
  1.5989 ++  unsigned long value = 0, kbit = 0;
  1.5990 ++  int slot;
  1.5991 ++  char *tail;
  1.5992 ++
  1.5993 ++  regmask = avr32_parse_reglist(str, &tail);
  1.5994 ++  /* printf("parsed reglist16: %04lx, tail: `%s'\n", regmask, tail); */
  1.5995 ++  if (*tail)
  1.5996 ++    {
  1.5997 ++      int retval;
  1.5998 ++
  1.5999 ++      retval = parse_reglist_tail(tail, regmask);
  1.6000 ++
  1.6001 ++      switch (retval)
  1.6002 ++	{
  1.6003 ++	case -1:
  1.6004 ++	  regmask |= 1 << AVR32_REG_LR;
  1.6005 ++	  break;
  1.6006 ++	case 0:
  1.6007 ++	  break;
  1.6008 ++	case 1:
  1.6009 ++	  regmask |= 1 << AVR32_REG_R12;
  1.6010 ++	  break;
  1.6011 ++	default:
  1.6012 ++	  break;
  1.6013 ++	}
  1.6014 ++
  1.6015 ++      kbit = 1;
  1.6016 ++    }
  1.6017 ++
  1.6018 ++  if (avr32_make_regmask8(regmask, &value))
  1.6019 ++    as_bad(_("register list `%s' doesn't fit"), str);
  1.6020 ++
  1.6021 ++
  1.6022 ++  slot = current_insn.next_slot++;
  1.6023 ++  current_insn.field_value[slot].value = (value << 1) | kbit;
  1.6024 ++}
  1.6025 ++
  1.6026 ++static void
  1.6027 ++parse_reglist16(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  1.6028 ++		char *str, int opindex ATTRIBUTE_UNUSED)
  1.6029 ++{
  1.6030 ++  unsigned long regmask;
  1.6031 ++  int slot;
  1.6032 ++  char *tail;
  1.6033 ++
  1.6034 ++  regmask = avr32_parse_reglist(str, &tail);
  1.6035 ++  if (*tail)
  1.6036 ++    as_bad(_("invalid register list `%s'"), str);
  1.6037 ++
  1.6038 ++  slot = current_insn.next_slot++;
  1.6039 ++  current_insn.field_value[slot].value = regmask;
  1.6040 ++}
  1.6041 ++
  1.6042 ++static void
  1.6043 ++parse_reglist_ldm(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  1.6044 ++		  char *str, int opindex ATTRIBUTE_UNUSED)
  1.6045 ++{
  1.6046 ++  unsigned long regmask;
  1.6047 ++  int slot, rp, w_bit = 0;
  1.6048 ++  char *tail, *p, c;
  1.6049 ++
  1.6050 ++  for (p = str; *p && *p != ','; p++)
  1.6051 ++    if (*p == '+')
  1.6052 ++      break;
  1.6053 ++
  1.6054 ++  c = *p, *p = 0;
  1.6055 ++  rp = avr32_parse_intreg(str);
  1.6056 ++  *p = c;
  1.6057 ++  if (rp < 0)
  1.6058 ++    {
  1.6059 ++      as_bad(_("invalid destination register in `%s'"), str);
  1.6060 ++      return;
  1.6061 ++    }
  1.6062 ++
  1.6063 ++  if (p[0] == '+' && p[1] == '+')
  1.6064 ++    {
  1.6065 ++      w_bit = 1;
  1.6066 ++      p += 2;
  1.6067 ++    }
  1.6068 ++
  1.6069 ++  if (*p != ',')
  1.6070 ++    {
  1.6071 ++      as_bad(_("expected `,' after destination register in `%s'"), str);
  1.6072 ++      return;
  1.6073 ++    }
  1.6074 ++
  1.6075 ++  str = p + 1;
  1.6076 ++  regmask = avr32_parse_reglist(str, &tail);
  1.6077 ++  if (*tail)
  1.6078 ++    {
  1.6079 ++      int retval;
  1.6080 ++
  1.6081 ++      if (rp != AVR32_REG_SP)
  1.6082 ++	{
  1.6083 ++	  as_bad(_("junk at end of line: `%s'"), tail);
  1.6084 ++	  return;
  1.6085 ++	}
  1.6086 ++
  1.6087 ++      rp = AVR32_REG_PC;
  1.6088 ++
  1.6089 ++      retval = parse_reglist_tail(tail, regmask);
  1.6090 ++
  1.6091 ++      switch (retval)
  1.6092 ++	{
  1.6093 ++	case -1:
  1.6094 ++	  regmask |= 1 << AVR32_REG_LR;
  1.6095 ++	  break;
  1.6096 ++	case 0:
  1.6097 ++	  break;
  1.6098 ++	case 1:
  1.6099 ++	  regmask |= 1 << AVR32_REG_R12;
  1.6100 ++	  break;
  1.6101 ++	default:
  1.6102 ++	  return;
  1.6103 ++	}
  1.6104 ++    }
  1.6105 ++
  1.6106 ++  slot = current_insn.next_slot++;
  1.6107 ++  current_insn.field_value[slot].value = rp;
  1.6108 ++  slot = current_insn.next_slot++;
  1.6109 ++  current_insn.field_value[slot].value = w_bit;
  1.6110 ++  slot = current_insn.next_slot++;
  1.6111 ++  current_insn.field_value[slot].value = regmask;
  1.6112 ++}
  1.6113 ++
  1.6114 ++static void
  1.6115 ++parse_reglist_cp8(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  1.6116 ++		  char *str, int opindex ATTRIBUTE_UNUSED)
  1.6117 ++{
  1.6118 ++  unsigned long regmask;
  1.6119 ++  int slot, h_bit = 0;
  1.6120 ++  char *tail;
  1.6121 ++
  1.6122 ++  regmask = avr32_parse_cpreglist(str, &tail);
  1.6123 ++  if (*tail)
  1.6124 ++    as_bad(_("junk at end of line: `%s'"), tail);
  1.6125 ++  else if (regmask & 0xffUL)
  1.6126 ++    {
  1.6127 ++      if (regmask & 0xff00UL)
  1.6128 ++	as_bad(_("register list `%s' doesn't fit"), str);
  1.6129 ++      regmask &= 0xff;
  1.6130 ++    }
  1.6131 ++  else if (regmask & 0xff00UL)
  1.6132 ++    {
  1.6133 ++      regmask >>= 8;
  1.6134 ++      h_bit = 1;
  1.6135 ++    }
  1.6136 ++  else
  1.6137 ++    as_warn(_("register list is empty"));
  1.6138 ++
  1.6139 ++  slot = current_insn.next_slot++;
  1.6140 ++  current_insn.field_value[slot].value = regmask;
  1.6141 ++  slot = current_insn.next_slot++;
  1.6142 ++  current_insn.field_value[slot].value = h_bit;
  1.6143 ++}
  1.6144 ++
  1.6145 ++static void
  1.6146 ++parse_reglist_cpd8(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  1.6147 ++		   char *str, int opindex ATTRIBUTE_UNUSED)
  1.6148 ++{
  1.6149 ++  unsigned long regmask, regmask_d = 0;
  1.6150 ++  int slot, i;
  1.6151 ++  char *tail;
  1.6152 ++
  1.6153 ++  regmask = avr32_parse_cpreglist(str, &tail);
  1.6154 ++  if (*tail)
  1.6155 ++    as_bad(_("junk at end of line: `%s'"), tail);
  1.6156 ++
  1.6157 ++  for (i = 0; i < 8; i++)
  1.6158 ++    {
  1.6159 ++      if (regmask & 1)
  1.6160 ++	{
  1.6161 ++	  if (!(regmask & 2))
  1.6162 ++	    {
  1.6163 ++	      as_bad(_("register list `%s' doesn't fit"), str);
  1.6164 ++	      break;
  1.6165 ++	    }
  1.6166 ++	  regmask_d |= 1 << i;
  1.6167 ++	}
  1.6168 ++      else if (regmask & 2)
  1.6169 ++	{
  1.6170 ++	  as_bad(_("register list `%s' doesn't fit"), str);
  1.6171 ++	  break;
  1.6172 ++	}
  1.6173 ++
  1.6174 ++      regmask >>= 2;
  1.6175 ++    }
  1.6176 ++
  1.6177 ++  slot = current_insn.next_slot++;
  1.6178 ++  current_insn.field_value[slot].value = regmask_d;
  1.6179 ++}
  1.6180 ++
  1.6181 ++static void
  1.6182 ++parse_retval(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  1.6183 ++	     char *str, int opindex ATTRIBUTE_UNUSED)
  1.6184 ++{
  1.6185 ++  int regid, slot;
  1.6186 ++
  1.6187 ++  regid = avr32_parse_intreg(str);
  1.6188 ++  if (regid < 0)
  1.6189 ++    {
  1.6190 ++      expressionS exp;
  1.6191 ++      char *save;
  1.6192 ++
  1.6193 ++      regid = 0;
  1.6194 ++
  1.6195 ++      save = input_line_pointer;
  1.6196 ++      input_line_pointer = str;
  1.6197 ++      expression(&exp);
  1.6198 ++      input_line_pointer = save;
  1.6199 ++
  1.6200 ++      if (exp.X_op != O_constant)
  1.6201 ++	as_bad(_("invalid return value `%s'"), str);
  1.6202 ++      else
  1.6203 ++	switch (exp.X_add_number)
  1.6204 ++	  {
  1.6205 ++	  case -1:
  1.6206 ++	    regid = AVR32_REG_LR;
  1.6207 ++	    break;
  1.6208 ++	  case 0:
  1.6209 ++	    regid = AVR32_REG_SP;
  1.6210 ++	    break;
  1.6211 ++	  case 1:
  1.6212 ++	    regid = AVR32_REG_PC;
  1.6213 ++	    break;
  1.6214 ++	  default:
  1.6215 ++	    as_bad(_("invalid return value `%s'"), str);
  1.6216 ++	    break;
  1.6217 ++	  }
  1.6218 ++    }
  1.6219 ++
  1.6220 ++  slot = current_insn.next_slot++;
  1.6221 ++  current_insn.field_value[slot].value = regid;
  1.6222 ++}
  1.6223 ++
  1.6224 ++#define parse_mcall parse_intreg_disp
  1.6225 ++
  1.6226 ++static void
  1.6227 ++parse_jospinc(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  1.6228 ++	      char *str, int opindex ATTRIBUTE_UNUSED)
  1.6229 ++{
  1.6230 ++  expressionS exp;
  1.6231 ++  int slot;
  1.6232 ++  char *save;
  1.6233 ++
  1.6234 ++  save = input_line_pointer;
  1.6235 ++  input_line_pointer = str;
  1.6236 ++  expression(&exp);
  1.6237 ++  input_line_pointer = save;
  1.6238 ++
  1.6239 ++  slot = current_insn.next_slot++;
  1.6240 ++
  1.6241 ++  if (exp.X_op == O_constant)
  1.6242 ++    {
  1.6243 ++      if (exp.X_add_number > 0)
  1.6244 ++	exp.X_add_number--;
  1.6245 ++      current_insn.field_value[slot].value = exp.X_add_number;
  1.6246 ++    }
  1.6247 ++  else
  1.6248 ++    as_bad(_("invalid numeric expression `%s'"), str);
  1.6249 ++}
  1.6250 ++
  1.6251 ++#define parse_coh		parse_nothing
  1.6252 ++
  1.6253 ++static void
  1.6254 ++parse_fpreg(const struct avr32_operand *op,
  1.6255 ++	    char *str, int opindex ATTRIBUTE_UNUSED)
  1.6256 ++{
  1.6257 ++  unsigned long regid;
  1.6258 ++  int slot;
  1.6259 ++
  1.6260 ++  regid = strtoul(str + 2, NULL, 10);
  1.6261 ++
  1.6262 ++  if ((regid >= 16) || (regid & ((1 << op->align_order) - 1)))
  1.6263 ++    as_bad(_("invalid floating-point register `%s'"), str);
  1.6264 ++
  1.6265 ++  slot = current_insn.next_slot++;
  1.6266 ++  current_insn.field_value[slot].value = regid;
  1.6267 ++  current_insn.field_value[slot].align_order = op->align_order;
  1.6268 ++}
  1.6269 ++
  1.6270 ++static void
  1.6271 ++parse_picoreg(const struct avr32_operand *op,
  1.6272 ++	      char *str, int opindex ATTRIBUTE_UNUSED)
  1.6273 ++{
  1.6274 ++  unsigned long regid;
  1.6275 ++  int slot;
  1.6276 ++
  1.6277 ++  regid = avr32_parse_picoreg(str);
  1.6278 ++  if (regid & ((1 << op->align_order) - 1))
  1.6279 ++    as_bad(_("invalid double-word PiCo register `%s'"), str);
  1.6280 ++
  1.6281 ++  slot = current_insn.next_slot++;
  1.6282 ++  current_insn.field_value[slot].value = regid;
  1.6283 ++  current_insn.field_value[slot].align_order = op->align_order;
  1.6284 ++}
  1.6285 ++
  1.6286 ++static void
  1.6287 ++parse_pico_reglist_w(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  1.6288 ++		     char *str, int opindex ATTRIBUTE_UNUSED)
  1.6289 ++{
  1.6290 ++  unsigned long regmask;
  1.6291 ++  int slot, h_bit = 0;
  1.6292 ++  char *tail;
  1.6293 ++
  1.6294 ++  regmask = avr32_parse_pico_reglist(str, &tail);
  1.6295 ++  if (*tail)
  1.6296 ++    as_bad(_("junk at end of line: `%s'"), tail);
  1.6297 ++
  1.6298 ++  if (regmask & 0x00ffUL)
  1.6299 ++    {
  1.6300 ++      if (regmask & 0xff00UL)
  1.6301 ++	as_bad(_("register list `%s' doesn't fit"), str);
  1.6302 ++      regmask &= 0x00ffUL;
  1.6303 ++    }
  1.6304 ++  else if (regmask & 0xff00UL)
  1.6305 ++    {
  1.6306 ++      regmask >>= 8;
  1.6307 ++      h_bit = 1;
  1.6308 ++    }
  1.6309 ++  else
  1.6310 ++    as_warn(_("register list is empty"));
  1.6311 ++
  1.6312 ++  slot = current_insn.next_slot++;
  1.6313 ++  current_insn.field_value[slot].value = regmask;
  1.6314 ++  slot = current_insn.next_slot++;
  1.6315 ++  current_insn.field_value[slot].value = h_bit;
  1.6316 ++}
  1.6317 ++
  1.6318 ++static void
  1.6319 ++parse_pico_reglist_d(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  1.6320 ++		     char *str, int opindex ATTRIBUTE_UNUSED)
  1.6321 ++{
  1.6322 ++  unsigned long regmask, regmask_d = 0;
  1.6323 ++  int slot, i;
  1.6324 ++  char *tail;
  1.6325 ++
  1.6326 ++  regmask = avr32_parse_pico_reglist(str, &tail);
  1.6327 ++  if (*tail)
  1.6328 ++    as_bad(_("junk at end of line: `%s'"), tail);
  1.6329 ++
  1.6330 ++  for (i = 0; i < 8; i++)
  1.6331 ++    {
  1.6332 ++      if (regmask & 1)
  1.6333 ++	{
  1.6334 ++	  if (!(regmask & 2))
  1.6335 ++	    {
  1.6336 ++	      as_bad(_("register list `%s' doesn't fit"), str);
  1.6337 ++	      break;
  1.6338 ++	    }
  1.6339 ++	  regmask_d |= 1 << i;
  1.6340 ++	}
  1.6341 ++      else if (regmask & 2)
  1.6342 ++	{
  1.6343 ++	  as_bad(_("register list `%s' doesn't fit"), str);
  1.6344 ++	  break;
  1.6345 ++	}
  1.6346 ++
  1.6347 ++      regmask >>= 2;
  1.6348 ++    }
  1.6349 ++
  1.6350 ++  slot = current_insn.next_slot++;
  1.6351 ++  current_insn.field_value[slot].value = regmask_d;
  1.6352 ++}
  1.6353 ++
  1.6354 ++static void
  1.6355 ++parse_pico_in(const struct avr32_operand *op ATTRIBUTE_UNUSED,
  1.6356 ++	      char *str, int opindex ATTRIBUTE_UNUSED)
  1.6357 ++{
  1.6358 ++  unsigned long regid;
  1.6359 ++  int slot;
  1.6360 ++
  1.6361 ++  regid = strtoul(str + 2, NULL, 10);
  1.6362 ++
  1.6363 ++  if (regid >= 12)
  1.6364 ++    as_bad(_("invalid PiCo IN register `%s'"), str);
  1.6365 ++
  1.6366 ++  slot = current_insn.next_slot++;
  1.6367 ++  current_insn.field_value[slot].value = regid;
  1.6368 ++  current_insn.field_value[slot].align_order = 0;
  1.6369 ++}
  1.6370 ++
  1.6371 ++#define parse_pico_out0		parse_nothing
  1.6372 ++#define parse_pico_out1		parse_nothing
  1.6373 ++#define parse_pico_out2		parse_nothing
  1.6374 ++#define parse_pico_out3		parse_nothing
  1.6375 ++
  1.6376 ++#define OP(name, sgn, pcrel, align, func) \
  1.6377 ++  { AVR32_OPERAND_##name, sgn, pcrel, align, match_##func, parse_##func }
  1.6378 ++
  1.6379 ++struct avr32_operand avr32_operand_table[] = {
  1.6380 ++  OP(INTREG, 0, 0, 0, intreg),
  1.6381 ++  OP(INTREG_PREDEC, 0, 0, 0, intreg_predec),
  1.6382 ++  OP(INTREG_POSTINC, 0, 0, 0, intreg_postinc),
  1.6383 ++  OP(INTREG_LSL, 0, 0, 0, intreg_lsl),
  1.6384 ++  OP(INTREG_LSR, 0, 0, 0, intreg_lsr),
  1.6385 ++  OP(INTREG_BSEL, 0, 0, 0, intreg_part),
  1.6386 ++  OP(INTREG_HSEL, 0, 0, 1, intreg_part),
  1.6387 ++  OP(INTREG_SDISP, 1, 0, 0, intreg_disp),
  1.6388 ++  OP(INTREG_SDISP_H, 1, 0, 1, intreg_disp),
  1.6389 ++  OP(INTREG_SDISP_W, 1, 0, 2, intreg_disp),
  1.6390 ++  OP(INTREG_UDISP, 0, 0, 0, intreg_disp),
  1.6391 ++  OP(INTREG_UDISP_H, 0, 0, 1, intreg_disp),
  1.6392 ++  OP(INTREG_UDISP_W, 0, 0, 2, intreg_disp),
  1.6393 ++  OP(INTREG_INDEX, 0, 0, 0, intreg_index),
  1.6394 ++  OP(INTREG_XINDEX, 0, 0, 0, intreg_xindex),
  1.6395 ++  OP(DWREG, 0, 0, 1, intreg),
  1.6396 ++  OP(PC_UDISP_W, 0, 1, 2, pc_disp),
  1.6397 ++  OP(SP, 0, 0, 0, sp),
  1.6398 ++  OP(SP_UDISP_W, 0, 0, 2, sp_disp),
  1.6399 ++  OP(CPNO, 0, 0, 0, cpno),
  1.6400 ++  OP(CPREG, 0, 0, 0, cpreg),
  1.6401 ++  OP(CPREG_D, 0, 0, 1, cpreg),
  1.6402 ++  OP(UNSIGNED_CONST, 0, 0, 0, const),
  1.6403 ++  OP(UNSIGNED_CONST_W, 0, 0, 2, const),
  1.6404 ++  OP(SIGNED_CONST, 1, 0, 0, const),
  1.6405 ++  OP(SIGNED_CONST_W, 1, 0, 2, const),
  1.6406 ++  OP(JMPLABEL, 1, 1, 1, jmplabel),
  1.6407 ++  OP(UNSIGNED_NUMBER, 0, 0, 0, number),
  1.6408 ++  OP(UNSIGNED_NUMBER_W, 0, 0, 2, number),
  1.6409 ++  OP(REGLIST8, 0, 0, 0, reglist8),
  1.6410 ++  OP(REGLIST9, 0, 0, 0, reglist9),
  1.6411 ++  OP(REGLIST16, 0, 0, 0, reglist16),
  1.6412 ++  OP(REGLIST_LDM, 0, 0, 0, reglist_ldm),
  1.6413 ++  OP(REGLIST_CP8, 0, 0, 0, reglist_cp8),
  1.6414 ++  OP(REGLIST_CPD8, 0, 0, 0, reglist_cpd8),
  1.6415 ++  OP(RETVAL, 0, 0, 0, retval),
  1.6416 ++  OP(MCALL, 1, 0, 2, mcall),
  1.6417 ++  OP(JOSPINC, 0, 0, 0, jospinc),
  1.6418 ++  OP(COH, 0, 0, 0, coh),
  1.6419 ++  OP(FPREG_S, 0, 0, 0, fpreg),
  1.6420 ++  OP(FPREG_D, 0, 0, 1, fpreg),
  1.6421 ++  OP(PICO_REG_W, 0, 0, 0, picoreg),
  1.6422 ++  OP(PICO_REG_D, 0, 0, 1, picoreg),
  1.6423 ++  OP(PICO_REGLIST_W, 0, 0, 0, pico_reglist_w),
  1.6424 ++  OP(PICO_REGLIST_D, 0, 0, 0, pico_reglist_d),
  1.6425 ++  OP(PICO_IN, 0, 0, 0, pico_in),
  1.6426 ++  OP(PICO_OUT0, 0, 0, 0, pico_out0),
  1.6427 ++  OP(PICO_OUT1, 0, 0, 0, pico_out1),
  1.6428 ++  OP(PICO_OUT2, 0, 0, 0, pico_out2),
  1.6429 ++  OP(PICO_OUT3, 0, 0, 0, pico_out3),
  1.6430 ++};
  1.6431 ++
  1.6432 ++symbolS *
  1.6433 ++md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
  1.6434 ++{
  1.6435 ++  pr_debug("md_undefined_symbol: %s\n", name);
  1.6436 ++  return 0;
  1.6437 ++}
  1.6438 ++
  1.6439 ++struct avr32_relax_type
  1.6440 ++{
  1.6441 ++  long lower_bound;
  1.6442 ++  long upper_bound;
  1.6443 ++  unsigned char align;
  1.6444 ++  unsigned char length;
  1.6445 ++  signed short next;
  1.6446 ++};
  1.6447 ++
  1.6448 ++#define EMPTY { 0, 0, 0, 0, -1 }
  1.6449 ++#define C(lower, upper, align, next)			\
  1.6450 ++  { (lower), (upper), (align), 2, AVR32_OPC_##next }
  1.6451 ++#define E(lower, upper, align)				\
  1.6452 ++  { (lower), (upper), (align), 4, -1 }
  1.6453 ++
  1.6454 ++static const struct avr32_relax_type avr32_relax_table[] =
  1.6455 ++  {
  1.6456 ++    /* 0 */
  1.6457 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6458 ++    EMPTY, EMPTY, EMPTY,
  1.6459 ++    E(0, 65535, 0), E(0, 65535, 0), E(0, 65535, 0), E(0, 65535, 0),
  1.6460 ++    EMPTY,
  1.6461 ++    /* 16 */
  1.6462 ++    EMPTY, EMPTY, EMPTY, EMPTY,
  1.6463 ++
  1.6464 ++    C(-256, 254, 1, BREQ2), C(-256, 254, 1, BRNE2),
  1.6465 ++    C(-256, 254, 1, BRCC2), C(-256, 254, 1, BRCS2),
  1.6466 ++    C(-256, 254, 1, BRGE2), C(-256, 254, 1, BRLT2),
  1.6467 ++    C(-256, 254, 1, BRMI2), C(-256, 254, 1, BRPL2),
  1.6468 ++    E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
  1.6469 ++    E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
  1.6470 ++    /* 32 */
  1.6471 ++    E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
  1.6472 ++    E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
  1.6473 ++    E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
  1.6474 ++    E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
  1.6475 ++    E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
  1.6476 ++    E(-2097152, 2097150, 1), E(-2097152, 2097150, 1),
  1.6477 ++
  1.6478 ++    EMPTY, EMPTY, EMPTY, EMPTY,
  1.6479 ++    /* 48 */
  1.6480 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6481 ++    EMPTY, EMPTY, EMPTY,
  1.6482 ++
  1.6483 ++    C(-32, 31, 0, CP_W3), E(-1048576, 1048575, 0),
  1.6484 ++
  1.6485 ++    EMPTY, EMPTY, EMPTY,
  1.6486 ++    /* 64: csrfcz */
  1.6487 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6488 ++    E(0, 65535, 0), E(0, 65535, 0),
  1.6489 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6490 ++    E(-32768, 32767, 0),
  1.6491 ++    /* 80: LD_SB2 */
  1.6492 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6493 ++
  1.6494 ++    C(0, 7, 0, LD_UB4), E(-32768, 32767, 0),
  1.6495 ++
  1.6496 ++    EMPTY,
  1.6497 ++    EMPTY, EMPTY,
  1.6498 ++
  1.6499 ++    C(0, 14, 1, LD_SH4), E(-32768, 32767, 0),
  1.6500 ++
  1.6501 ++    EMPTY, EMPTY, EMPTY,
  1.6502 ++
  1.6503 ++    C(0, 14, 1, LD_UH4),
  1.6504 ++
  1.6505 ++    /* 96: LD_UH4 */
  1.6506 ++    E(-32768, 32767, 0),
  1.6507 ++
  1.6508 ++    EMPTY, EMPTY, EMPTY, EMPTY,
  1.6509 ++
  1.6510 ++    C(0, 124, 2, LD_W4), E(-32768, 32767, 0),
  1.6511 ++
  1.6512 ++    E(0, 1020, 2),	/* LDC_D1 */
  1.6513 ++    EMPTY, EMPTY,
  1.6514 ++    E(0, 1020, 2),	/* LDC_W1 */
  1.6515 ++    EMPTY, EMPTY,
  1.6516 ++    E(0, 16380, 2),	/* LDC0_D */
  1.6517 ++    E(0, 16380, 2),	/* LDC0_W */
  1.6518 ++    EMPTY,
  1.6519 ++
  1.6520 ++    /* 112: LDCM_D_PU */
  1.6521 ++    EMPTY, EMPTY, EMPTY,
  1.6522 ++
  1.6523 ++    C(0, 508, 2, LDDPC_EXT), E(-32768, 32767, 0),
  1.6524 ++
  1.6525 ++    EMPTY,EMPTY, EMPTY,
  1.6526 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6527 ++
  1.6528 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6529 ++    /* 134: MACHH_W */
  1.6530 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6531 ++    E(-131072, 131068, 2),	/* MCALL */
  1.6532 ++    E(0, 1020, 2),		/* MFDR */
  1.6533 ++    E(0, 1020, 2),		/* MFSR */
  1.6534 ++    EMPTY, EMPTY,
  1.6535 ++
  1.6536 ++    C(-128, 127, 0, MOV2), E(-1048576, 1048575, 0),
  1.6537 ++
  1.6538 ++    EMPTY, EMPTY, EMPTY,
  1.6539 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6540 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6541 ++
  1.6542 ++    E(-128, 127, 0),		/* MOVEQ2 */
  1.6543 ++    E(-128, 127, 0),		/* MOVNE2 */
  1.6544 ++    E(-128, 127, 0),		/* MOVCC2 */
  1.6545 ++    E(-128, 127, 0),		/* 166: MOVCS2 */
  1.6546 ++    E(-128, 127, 0),		/* MOVGE2 */
  1.6547 ++    E(-128, 127, 0),		/* MOVLT2 */
  1.6548 ++    E(-128, 127, 0),		/* MOVMI2 */
  1.6549 ++    E(-128, 127, 0),		/* MOVPL2 */
  1.6550 ++    E(-128, 127, 0),		/* MOVLS2 */
  1.6551 ++    E(-128, 127, 0),		/* MOVGT2 */
  1.6552 ++    E(-128, 127, 0),		/* MOVLE2 */
  1.6553 ++    E(-128, 127, 0),		/* MOVHI2 */
  1.6554 ++    E(-128, 127, 0),		/* MOVVS2 */
  1.6555 ++    E(-128, 127, 0),		/* MOVVC2 */
  1.6556 ++    E(-128, 127, 0),		/* MOVQS2 */
  1.6557 ++    E(-128, 127, 0),		/* MOVAL2 */
  1.6558 ++
  1.6559 ++    E(0, 1020, 2),		/* MTDR */
  1.6560 ++    E(0, 1020, 2),		/* MTSR */
  1.6561 ++    EMPTY,
  1.6562 ++    EMPTY,
  1.6563 ++    E(-128, 127, 0),		/* MUL3 */
  1.6564 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6565 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6566 ++    /* 198: MVCR_W */
  1.6567 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6568 ++    E(0, 65535, 0), E(0, 65535, 0),
  1.6569 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6570 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6571 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6572 ++    /* 230: PASR_H */
  1.6573 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6574 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6575 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6576 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6577 ++    /* 262: PUNPCKSB_H */
  1.6578 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6579 ++
  1.6580 ++    C(-1024, 1022, 1, RCALL2), E(-2097152, 2097150, 1),
  1.6581 ++
  1.6582 ++    EMPTY,
  1.6583 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6584 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6585 ++    EMPTY, EMPTY, EMPTY,
  1.6586 ++
  1.6587 ++    C(-1024, 1022, 1, BRAL),
  1.6588 ++
  1.6589 ++    EMPTY, EMPTY, EMPTY,
  1.6590 ++    E(-128, 127, 0),		/* RSUB2 */
  1.6591 ++    /* 294: SATADD_H */
  1.6592 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6593 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6594 ++    E(0, 255, 0),		/* SLEEP */
  1.6595 ++    EMPTY, EMPTY,
  1.6596 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6597 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6598 ++    /* 326: ST_B2 */
  1.6599 ++    EMPTY, EMPTY,
  1.6600 ++    C(0, 7, 0, ST_B4), E(-32768, 32767, 0),
  1.6601 ++    EMPTY, EMPTY, EMPTY, EMPTY,
  1.6602 ++    E(-32768, 32767, 0),
  1.6603 ++    EMPTY, EMPTY, EMPTY,
  1.6604 ++    C(0, 14, 1, ST_H4), E(-32768, 32767, 0),
  1.6605 ++    EMPTY, EMPTY,
  1.6606 ++    EMPTY,
  1.6607 ++    C(0, 60, 2, ST_W4), E(-32768, 32767, 0),
  1.6608 ++    E(0, 1020, 2),	/* STC_D1 */
  1.6609 ++    EMPTY, EMPTY,
  1.6610 ++    E(0, 1020, 2),	/* STC_W1 */
  1.6611 ++    EMPTY, EMPTY,
  1.6612 ++    E(0, 16380, 2),	/* STC0_D */
  1.6613 ++    E(0, 16380, 2),	/* STC0_W */
  1.6614 ++
  1.6615 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6616 ++    /* 358: STDSP */
  1.6617 ++    EMPTY, EMPTY,
  1.6618 ++    E(0, 1020, 2),	/* STHH_W1 */
  1.6619 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6620 ++    EMPTY, EMPTY, EMPTY,
  1.6621 ++    E(-32768, 32767, 0),
  1.6622 ++    C(-512, 508, 2, SUB4),
  1.6623 ++    C(-128, 127, 0, SUB4), E(-1048576, 1048576, 0),
  1.6624 ++    /* SUB{cond} */
  1.6625 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  1.6626 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  1.6627 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  1.6628 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  1.6629 ++    /* SUBF{cond} */
  1.6630 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  1.6631 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  1.6632 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  1.6633 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  1.6634 ++    EMPTY,
  1.6635 ++
  1.6636 ++    /* 406: SWAP_B */
  1.6637 ++    EMPTY, EMPTY, EMPTY,
  1.6638 ++    E(0, 255, 0),	/* SYNC */
  1.6639 ++    EMPTY, EMPTY, EMPTY, EMPTY,
  1.6640 ++    /* 414: TST */
  1.6641 ++    EMPTY, EMPTY, E(-65536, 65535, 2), E(-65536, 65535, 2), E(-65536, 65535, 2), EMPTY, EMPTY, EMPTY,
  1.6642 ++    /* 422: RSUB{cond} */
  1.6643 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  1.6644 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  1.6645 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  1.6646 ++    E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0), E(-128, 127, 0),
  1.6647 ++    /* 436: ADD{cond} */
  1.6648 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6649 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6650 ++    /* 454: SUB{cond} */
  1.6651 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6652 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6653 ++    /* 472: AND{cond} */
  1.6654 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6655 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6656 ++    /* 486: OR{cond} */
  1.6657 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6658 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6659 ++    /* 502: EOR{cond} */
  1.6660 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6661 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6662 ++    /* 518: LD.w{cond} */
  1.6663 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6664 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6665 ++    /* 534: LD.sh{cond} */
  1.6666 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6667 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6668 ++    /* 550: LD.uh{cond} */
  1.6669 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6670 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6671 ++    /* 566: LD.sb{cond} */
  1.6672 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6673 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6674 ++    /* 582: LD.ub{cond} */
  1.6675 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6676 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6677 ++    /* 596: ST.w{cond} */
  1.6678 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6679 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6680 ++    /* 614: ST.h{cond} */
  1.6681 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6682 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6683 ++    /* 630: ST.b{cond} */
  1.6684 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6685 ++    EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
  1.6686 ++    /* 646: movh */
  1.6687 ++    E(0, 65535, 0)
  1.6688 ++  };
  1.6689 ++
  1.6690 ++#undef E
  1.6691 ++#undef C
  1.6692 ++#undef EMPTY
  1.6693 ++
  1.6694 ++#define AVR32_RS_NONE (-1)
  1.6695 ++
  1.6696 ++#define avr32_rs_size(state) (avr32_relax_table[(state)].length)
  1.6697 ++#define avr32_rs_align(state) (avr32_relax_table[(state)].align)
  1.6698 ++#define relax_more(state) (avr32_relax_table[(state)].next)
  1.6699 ++
  1.6700 ++#define opc_initial_substate(opc) ((opc)->id)
  1.6701 ++
  1.6702 ++static int need_relax(int subtype, offsetT distance)
  1.6703 ++{
  1.6704 ++  offsetT upper_bound, lower_bound;
  1.6705 ++
  1.6706 ++  upper_bound = avr32_relax_table[subtype].upper_bound;
  1.6707 ++  lower_bound = avr32_relax_table[subtype].lower_bound;
  1.6708 ++
  1.6709 ++  if (distance & ((1 << avr32_rs_align(subtype)) - 1))
  1.6710 ++    return 1;
  1.6711 ++  if ((distance > upper_bound) || (distance < lower_bound))
  1.6712 ++    return 1;
  1.6713 ++
  1.6714 ++  return 0;
  1.6715 ++}
  1.6716 ++
  1.6717 ++enum {
  1.6718 ++  LDA_SUBTYPE_MOV1,
  1.6719 ++  LDA_SUBTYPE_MOV2,
  1.6720 ++  LDA_SUBTYPE_SUB,
  1.6721 ++  LDA_SUBTYPE_LDDPC,
  1.6722 ++  LDA_SUBTYPE_LDW,
  1.6723 ++  LDA_SUBTYPE_GOTLOAD,
  1.6724 ++  LDA_SUBTYPE_GOTLOAD_LARGE,
  1.6725 ++};
  1.6726 ++
  1.6727 ++enum {
  1.6728 ++  CALL_SUBTYPE_RCALL1,
  1.6729 ++  CALL_SUBTYPE_RCALL2,
  1.6730 ++  CALL_SUBTYPE_MCALL_CP,
  1.6731 ++  CALL_SUBTYPE_MCALL_GOT,
  1.6732 ++  CALL_SUBTYPE_MCALL_LARGE,
  1.6733 ++};
  1.6734 ++
  1.6735 ++#define LDA_INITIAL_SIZE	(avr32_pic ? 4 : 2)
  1.6736 ++#define CALL_INITIAL_SIZE	2
  1.6737 ++
  1.6738 ++#define need_reloc(sym, seg, pcrel)					\
  1.6739 ++  (!(S_IS_DEFINED(sym)							\
  1.6740 ++     && ((pcrel && S_GET_SEGMENT(sym) == seg)				\
  1.6741 ++	 || (!pcrel && S_GET_SEGMENT(sym) == absolute_section)))	\
  1.6742 ++   || S_FORCE_RELOC(sym, 1))
  1.6743 ++
  1.6744 ++/* Return an initial guess of the length by which a fragment must grow to
  1.6745 ++   hold a branch to reach its destination.
  1.6746 ++   Also updates fr_type/fr_subtype as necessary.
  1.6747 ++
  1.6748 ++   Called just before doing relaxation.
  1.6749 ++   Any symbol that is now undefined will not become defined.
  1.6750 ++   The guess for fr_var is ACTUALLY the growth beyond fr_fix.
  1.6751 ++   Whatever we do to grow fr_fix or fr_var contributes to our returned value.
  1.6752 ++   Although it may not be explicit in the frag, pretend fr_var starts with a
  1.6753 ++   0 value.  */
  1.6754 ++
  1.6755 ++static int
  1.6756 ++avr32_default_estimate_size_before_relax (fragS *fragP, segT segment)
  1.6757 ++{
  1.6758 ++  int growth = 0;
  1.6759 ++
  1.6760 ++  assert(fragP);
  1.6761 ++  assert(fragP->fr_symbol);
  1.6762 ++
  1.6763 ++  if (fragP->tc_frag_data.force_extended
  1.6764 ++      || need_reloc(fragP->fr_symbol, segment, fragP->tc_frag_data.pcrel))
  1.6765 ++    {
  1.6766 ++      int largest_state = fragP->fr_subtype;
  1.6767 ++      while (relax_more(largest_state) != AVR32_RS_NONE)
  1.6768 ++	largest_state = relax_more(largest_state);
  1.6769 ++      growth = avr32_rs_size(largest_state) - fragP->fr_var;
  1.6770 ++    }
  1.6771 ++  else
  1.6772 ++    {
  1.6773 ++      growth = avr32_rs_size(fragP->fr_subtype) - fragP->fr_var;
  1.6774 ++    }
  1.6775 ++
  1.6776 ++  pr_debug("%s:%d: md_estimate_size_before_relax: %d\n",
  1.6777 ++	   fragP->fr_file, fragP->fr_line, growth);
  1.6778 ++
  1.6779 ++  return growth;
  1.6780 ++}
  1.6781 ++
  1.6782 ++static int
  1.6783 ++avr32_lda_estimate_size_before_relax(fragS *fragP, segT segment ATTRIBUTE_UNUSED)
  1.6784 ++{
  1.6785 ++  return fragP->fr_var - LDA_INITIAL_SIZE;
  1.6786 ++}
  1.6787 ++
  1.6788 ++static int
  1.6789 ++avr32_call_estimate_size_before_relax(fragS *fragP, segT segment ATTRIBUTE_UNUSED)
  1.6790 ++{
  1.6791 ++  return fragP->fr_var - CALL_INITIAL_SIZE;
  1.6792 ++}
  1.6793 ++
  1.6794 ++static int
  1.6795 ++avr32_cpool_estimate_size_before_relax(fragS *fragP,
  1.6796 ++				       segT segment ATTRIBUTE_UNUSED)
  1.6797 ++{
  1.6798 ++  return fragP->fr_var;
  1.6799 ++}
  1.6800 ++
  1.6801 ++/* This macro may be defined to relax a frag. GAS will call this with the
  1.6802 ++ * segment, the frag, and the change in size of all previous frags;
  1.6803 ++ * md_relax_frag should return the change in size of the frag. */
  1.6804 ++static long
  1.6805 ++avr32_default_relax_frag (segT segment, fragS *fragP, long stretch)
  1.6806 ++{
  1.6807 ++  int state, next_state;
  1.6808 ++  symbolS *symbolP;	/* The target symbol */
  1.6809 ++  long growth = 0;
  1.6810 ++
  1.6811 ++  state = next_state = fragP->fr_subtype;
  1.6812 ++
  1.6813 ++  symbolP = fragP->fr_symbol;
  1.6814 ++
  1.6815 ++  if (fragP->tc_frag_data.force_extended
  1.6816 ++      || need_reloc(symbolP, segment, fragP->tc_frag_data.pcrel))
  1.6817 ++    {
  1.6818 ++      /* Symbol must be resolved by the linker. Emit the largest
  1.6819 ++	 possible opcode. */
  1.6820 ++      while (relax_more(next_state) != AVR32_RS_NONE)
  1.6821 ++	next_state = relax_more(next_state);
  1.6822 ++    }
  1.6823 ++  else
  1.6824 ++    {
  1.6825 ++      addressT address;	/* The address of fragP */
  1.6826 ++      addressT target;	/* The address of the target symbol */
  1.6827 ++      offsetT distance;	/* The distance between the insn and the symbol */
  1.6828 ++      fragS *sym_frag;
  1.6829 ++
  1.6830 ++      address = fragP->fr_address;
  1.6831 ++      target = fragP->fr_offset;
  1.6832 ++      symbolP = fragP->fr_symbol;
  1.6833 ++      sym_frag = symbol_get_frag(symbolP);
  1.6834 ++
  1.6835 ++      address += fragP->fr_fix - fragP->fr_var;
  1.6836 ++      target += S_GET_VALUE(symbolP);
  1.6837 ++
  1.6838 ++      if (stretch != 0
  1.6839 ++	  && sym_frag->relax_marker != fragP->relax_marker
  1.6840 ++	  && S_GET_SEGMENT(symbolP) == segment)
  1.6841 ++	/* if it was correctly aligned before, make sure it stays aligned */
  1.6842 ++	target += stretch & (~0UL << avr32_rs_align(state));
  1.6843 ++
  1.6844 ++      if (fragP->tc_frag_data.pcrel)
  1.6845 ++	distance = target - (address & (~0UL << avr32_rs_align(state)));
  1.6846 ++      else
  1.6847 ++	distance = target;
  1.6848 ++
  1.6849 ++      pr_debug("%s:%d: relax more? 0x%x - 0x%x = 0x%x (%d), align %d\n",
  1.6850 ++	       fragP->fr_file, fragP->fr_line, target, address,
  1.6851 ++	       distance, distance, avr32_rs_align(state));
  1.6852 ++
  1.6853 ++      if (need_relax(state, distance))
  1.6854 ++	{
  1.6855 ++	  if (relax_more(state) != AVR32_RS_NONE)
  1.6856 ++	    next_state = relax_more(state);
  1.6857 ++	  pr_debug("%s:%d: relax more %d -> %d (%d - %d, align %d)\n",
  1.6858 ++		   fragP->fr_file, fragP->fr_line, state, next_state,
  1.6859 ++		   target, address, avr32_rs_align(state));
  1.6860 ++	}
  1.6861 ++    }
  1.6862 ++
  1.6863 ++  growth = avr32_rs_size(next_state) - avr32_rs_size(state);
  1.6864 ++  fragP->fr_subtype = next_state;
  1.6865 ++
  1.6866 ++  pr_debug("%s:%d: md_relax_frag: growth=%d, subtype=%d, opc=0x%08lx\n",
  1.6867 ++	   fragP->fr_file, fragP->fr_line, growth, fragP->fr_subtype,
  1.6868 ++	   avr32_opc_table[next_state].value);
  1.6869 ++
  1.6870 ++  return growth;
  1.6871 ++}
  1.6872 ++
  1.6873 ++static long
  1.6874 ++avr32_lda_relax_frag(segT segment, fragS *fragP, long stretch)
  1.6875 ++{
  1.6876 ++  struct cpool *pool= NULL;
  1.6877 ++  unsigned int entry = 0;
  1.6878 ++  addressT address, target;
  1.6879 ++  offsetT distance;
  1.6880 ++  symbolS *symbolP;
  1.6881 ++  fragS *sym_frag;
  1.6882 ++  long old_size, new_size;
  1.6883 ++
  1.6884 ++  symbolP = fragP->fr_symbol;
  1.6885 ++  old_size = fragP->fr_var;
  1.6886 ++  if (!avr32_pic)
  1.6887 ++    {
  1.6888 ++      pool = fragP->tc_frag_data.pool;
  1.6889 ++      entry = fragP->tc_frag_data.pool_entry;
  1.6890 ++    }
  1.6891 ++
  1.6892 ++  address = fragP->fr_address;
  1.6893 ++  address += fragP->fr_fix - LDA_INITIAL_SIZE;
  1.6894 ++
  1.6895 ++  if (!S_IS_DEFINED(symbolP) || S_FORCE_RELOC(symbolP, 1))
  1.6896 ++    goto relax_max;
  1.6897 ++
  1.6898 ++  target = fragP->fr_offset;
  1.6899 ++  sym_frag = symbol_get_frag(symbolP);
  1.6900 ++  target += S_GET_VALUE(symbolP);
  1.6901 ++
  1.6902 ++  if (sym_frag->relax_marker != fragP->relax_marker
  1.6903 ++      && S_GET_SEGMENT(symbolP) == segment)
  1.6904 ++    target += stretch;
  1.6905 ++
  1.6906 ++  distance = target - address;
  1.6907 ++
  1.6908 ++  pr_debug("lda_relax_frag: target: %d, address: %d, var: %d\n",
  1.6909 ++	   target, address, fragP->fr_var);
  1.6910 ++
  1.6911 ++  if (!avr32_pic && S_GET_SEGMENT(symbolP) == absolute_section
  1.6912 ++      && target <= 127 && (offsetT)target >= -128)
  1.6913 ++    {
  1.6914 ++      if (fragP->fr_subtype == LDA_SUBTYPE_LDDPC
  1.6915 ++	  || fragP->fr_subtype == LDA_SUBTYPE_LDW)
  1.6916 ++	pool->literals[entry].refcount--;
  1.6917 ++      new_size = 2;
  1.6918 ++      fragP->fr_subtype = LDA_SUBTYPE_MOV1;
  1.6919 ++    }
  1.6920 ++  else if (!avr32_pic && S_GET_SEGMENT(symbolP) == absolute_section
  1.6921 ++	   && target <= 1048575 && (offsetT)target >= -1048576)
  1.6922 ++    {
  1.6923 ++      if (fragP->fr_subtype == LDA_SUBTYPE_LDDPC
  1.6924 ++	  || fragP->fr_subtype == LDA_SUBTYPE_LDW)
  1.6925 ++	pool->literals[entry].refcount--;
  1.6926 ++      new_size = 4;
  1.6927 ++      fragP->fr_subtype = LDA_SUBTYPE_MOV2;
  1.6928 ++    }
  1.6929 ++  else if (!linkrelax && S_GET_SEGMENT(symbolP) == segment
  1.6930 ++	   /* the field will be negated, so this is really -(-32768)
  1.6931 ++	      and -(32767) */
  1.6932 ++	   && distance <= 32768 && distance >= -32767)
  1.6933 ++    {
  1.6934 ++      if (!avr32_pic
  1.6935 ++	  && (fragP->fr_subtype == LDA_SUBTYPE_LDDPC
  1.6936 ++	      || fragP->fr_subtype == LDA_SUBTYPE_LDW))
  1.6937 ++	pool->literals[entry].refcount--;
  1.6938 ++      new_size = 4;
  1.6939 ++      fragP->fr_subtype = LDA_SUBTYPE_SUB;
  1.6940 ++    }
  1.6941 ++  else
  1.6942 ++    {
  1.6943 ++    relax_max:
  1.6944 ++      if (avr32_pic)
  1.6945 ++	{
  1.6946 ++	  if (linkrelax)
  1.6947 ++	    {
  1.6948 ++	      new_size = 8;
  1.6949 ++	      fragP->fr_subtype = LDA_SUBTYPE_GOTLOAD_LARGE;
  1.6950 ++	    }
  1.6951 ++	  else
  1.6952 ++	    {
  1.6953 ++	      new_size = 4;
  1.6954 ++	      fragP->fr_subtype = LDA_SUBTYPE_GOTLOAD;
  1.6955 ++	    }
  1.6956 ++	}
  1.6957 ++      else
  1.6958 ++	{
  1.6959 ++	  if (fragP->fr_subtype != LDA_SUBTYPE_LDDPC
  1.6960 ++	      && fragP->fr_subtype != LDA_SUBTYPE_LDW)
  1.6961 ++	    pool->literals[entry].refcount++;
  1.6962 ++
  1.6963 ++	  sym_frag = symbol_get_frag(pool->symbol);
  1.6964 ++	  target = (sym_frag->fr_address + sym_frag->fr_fix
  1.6965 ++		    + pool->padding + pool->literals[entry].offset);
  1.6966 ++
  1.6967 ++	  pr_debug("cpool sym address: 0x%lx\n",
  1.6968 ++		   sym_frag->fr_address + sym_frag->fr_fix);
  1.6969 ++
  1.6970 ++	  know(pool->section == segment);
  1.6971 ++
  1.6972 ++	  if (sym_frag->relax_marker != fragP->relax_marker)
  1.6973 ++	    target += stretch;
  1.6974 ++
  1.6975 ++	  distance = target - address;
  1.6976 ++	  if (distance <= 508 && distance >= 0)
  1.6977 ++	    {
  1.6978 ++	      new_size = 2;
  1.6979 ++	      fragP->fr_subtype = LDA_SUBTYPE_LDDPC;
  1.6980 ++	    }
  1.6981 ++	  else
  1.6982 ++	    {
  1.6983 ++	      new_size = 4;
  1.6984 ++	      fragP->fr_subtype = LDA_SUBTYPE_LDW;
  1.6985 ++	    }
  1.6986 ++
  1.6987 ++	  pr_debug("lda_relax_frag (cpool): target=0x%lx, address=0x%lx, refcount=%d\n",
  1.6988 ++		   target, address, pool->literals[entry].refcount);
  1.6989 ++	}
  1.6990 ++    }
  1.6991 ++
  1.6992 ++  fragP->fr_var = new_size;
  1.6993 ++
  1.6994 ++  pr_debug("%s:%d: lda: relax pass done. subtype: %d, growth: %ld\n",
  1.6995 ++	   fragP->fr_file, fragP->fr_line,
  1.6996 ++	   fragP->fr_subtype, new_size - old_size);
  1.6997 ++
  1.6998 ++  return new_size - old_size;
  1.6999 ++}
  1.7000 ++
  1.7001 ++static long
  1.7002 ++avr32_call_relax_frag(segT segment, fragS *fragP, long stretch)
  1.7003 ++{
  1.7004 ++  struct cpool *pool = NULL;
  1.7005 ++  unsigned int entry = 0;
  1.7006 ++  addressT address, target;
  1.7007 ++  offsetT distance;
  1.7008 ++  symbolS *symbolP;
  1.7009 ++  fragS *sym_frag;
  1.7010 ++  long old_size, new_size;
  1.7011 ++
  1.7012 ++  symbolP = fragP->fr_symbol;
  1.7013 ++  old_size = fragP->fr_var;
  1.7014 ++  if (!avr32_pic)
  1.7015 ++    {
  1.7016 ++      pool = fragP->tc_frag_data.pool;
  1.7017 ++      entry = fragP->tc_frag_data.pool_entry;
  1.7018 ++    }
  1.7019 ++
  1.7020 ++  address = fragP->fr_address;
  1.7021 ++  address += fragP->fr_fix - CALL_INITIAL_SIZE;
  1.7022 ++
  1.7023 ++  if (need_reloc(symbolP, segment, 1))
  1.7024 ++    {
  1.7025 ++      pr_debug("call: must emit reloc\n");
  1.7026 ++      goto relax_max;
  1.7027 ++    }
  1.7028 ++
  1.7029 ++  target = fragP->fr_offset;
  1.7030 ++  sym_frag = symbol_get_frag(symbolP);
  1.7031 ++  target += S_GET_VALUE(symbolP);
  1.7032 ++
  1.7033 ++  if (sym_frag->relax_marker != fragP->relax_marker
  1.7034 ++      && S_GET_SEGMENT(symbolP) == segment)
  1.7035 ++    target += stretch;
  1.7036 ++
  1.7037 ++  distance = target - address;
  1.7038 ++
  1.7039 ++  if (distance <= 1022 && distance >= -1024)
  1.7040 ++    {
  1.7041 ++      pr_debug("call: distance is %d, emitting short rcall\n", distance);
  1.7042 ++      if (!avr32_pic && fragP->fr_subtype == CALL_SUBTYPE_MCALL_CP)
  1.7043 ++	pool->literals[entry].refcount--;
  1.7044 ++      new_size = 2;
  1.7045 ++      fragP->fr_subtype = CALL_SUBTYPE_RCALL1;
  1.7046 ++    }
  1.7047 ++  else if (distance <= 2097150 && distance >= -2097152)
  1.7048 ++    {
  1.7049 ++      pr_debug("call: distance is %d, emitting long rcall\n", distance);
  1.7050 ++      if (!avr32_pic && fragP->fr_subtype == CALL_SUBTYPE_MCALL_CP)
  1.7051 ++	pool->literals[entry].refcount--;
  1.7052 ++      new_size = 4;
  1.7053 ++      fragP->fr_subtype = CALL_SUBTYPE_RCALL2;
  1.7054 ++    }
  1.7055 ++  else
  1.7056 ++    {
  1.7057 ++      pr_debug("call: distance %d too far, emitting something big\n", distance);
  1.7058 ++
  1.7059 ++    relax_max:
  1.7060 ++      if (avr32_pic)
  1.7061 ++	{
  1.7062 ++	  if (linkrelax)
  1.7063 ++	    {
  1.7064 ++	      new_size = 10;
  1.7065 ++	      fragP->fr_subtype = CALL_SUBTYPE_MCALL_LARGE;
  1.7066 ++	    }
  1.7067 ++	  else
  1.7068 ++	    {
  1.7069 ++	      new_size = 4;
  1.7070 ++	      fragP->fr_subtype = CALL_SUBTYPE_MCALL_GOT;
  1.7071 ++	    }
  1.7072 ++	}
  1.7073 ++      else
  1.7074 ++	{
  1.7075 ++	  if (fragP->fr_subtype != CALL_SUBTYPE_MCALL_CP)
  1.7076 ++	    pool->literals[entry].refcount++;
  1.7077 ++
  1.7078 ++	  new_size = 4;
  1.7079 ++	  fragP->fr_subtype = CALL_SUBTYPE_MCALL_CP;
  1.7080 ++	}
  1.7081 ++    }
  1.7082 ++
  1.7083 ++  fragP->fr_var = new_size;
  1.7084 ++
  1.7085 ++  pr_debug("%s:%d: call: relax pass done, growth: %d, fr_var: %d\n",
  1.7086 ++	   fragP->fr_file, fragP->fr_line,
  1.7087 ++	   new_size - old_size, fragP->fr_var);
  1.7088 ++
  1.7089 ++  return new_size - old_size;
  1.7090 ++}
  1.7091 ++
  1.7092 ++static long
  1.7093 ++avr32_cpool_relax_frag(segT segment ATTRIBUTE_UNUSED,
  1.7094 ++		       fragS *fragP,
  1.7095 ++		       long stretch ATTRIBUTE_UNUSED)
  1.7096 ++{
  1.7097 ++  struct cpool *pool;
  1.7098 ++  addressT address;
  1.7099 ++  long old_size, new_size;
  1.7100 ++  unsigned int entry;
  1.7101 ++
  1.7102 ++  pool = fragP->tc_frag_data.pool;
  1.7103 ++  address = fragP->fr_address + fragP->fr_fix;
  1.7104 ++  old_size = fragP->fr_var;
  1.7105 ++  new_size = 0;
  1.7106 ++
  1.7107 ++  for (entry = 0; entry < pool->next_free_entry; entry++)
  1.7108 ++    {
  1.7109 ++      if (pool->literals[entry].refcount > 0)
  1.7110 ++	{
  1.7111 ++	  pool->literals[entry].offset = new_size;
  1.7112 ++	  new_size += 4;
  1.7113 ++	}
  1.7114 ++    }
  1.7115 ++
  1.7116 ++  fragP->fr_var = new_size;
  1.7117 ++
  1.7118 ++  return new_size - old_size;
  1.7119 ++}
  1.7120 ++
  1.7121 ++/* *fragP has been relaxed to its final size, and now needs to have
  1.7122 ++   the bytes inside it modified to conform to the new size.
  1.7123 ++
  1.7124 ++   Called after relaxation is finished.
  1.7125 ++   fragP->fr_type == rs_machine_dependent.
  1.7126 ++   fragP->fr_subtype is the subtype of what the address relaxed to.  */
  1.7127 ++
  1.7128 ++static void
  1.7129 ++avr32_default_convert_frag (bfd *abfd ATTRIBUTE_UNUSED,
  1.7130 ++			    segT segment ATTRIBUTE_UNUSED,
  1.7131 ++			    fragS *fragP)
  1.7132 ++{
  1.7133 ++  const struct avr32_opcode *opc;
  1.7134 ++  const struct avr32_ifield *ifield;
  1.7135 ++  bfd_reloc_code_real_type r_type;
  1.7136 ++  symbolS *symbolP;
  1.7137 ++  fixS *fixP;
  1.7138 ++  bfd_vma value;
  1.7139 ++  int subtype;
  1.7140 ++
  1.7141 ++  opc = &avr32_opc_table[fragP->fr_subtype];
  1.7142 ++  ifield = opc->fields[opc->var_field];
  1.7143 ++  symbolP = fragP->fr_symbol;
  1.7144 ++  subtype = fragP->fr_subtype;
  1.7145 ++  r_type = opc->reloc_type;
  1.7146 ++
  1.7147 ++  /* Clear the opcode bits and the bits belonging to the relaxed
  1.7148 ++     field.  We assume all other fields stay the same.  */
  1.7149 ++  value = bfd_getb32(fragP->fr_opcode);
  1.7150 ++  value &= ~(opc->mask | ifield->mask);
  1.7151 ++
  1.7152 ++  /* Insert the new opcode */
  1.7153 ++  value |= opc->value;
  1.7154 ++  bfd_putb32(value, fragP->fr_opcode);
  1.7155 ++
  1.7156 ++  fragP->fr_fix += opc->size - fragP->fr_var;
  1.7157 ++
  1.7158 ++  if (fragP->tc_frag_data.reloc_info != AVR32_OPINFO_NONE)
  1.7159 ++    {
  1.7160 ++      switch (fragP->tc_frag_data.reloc_info)
  1.7161 ++	{
  1.7162 ++	case AVR32_OPINFO_HI:
  1.7163 ++	  r_type = BFD_RELOC_HI16;
  1.7164 ++	  break;
  1.7165 ++	case AVR32_OPINFO_LO:
  1.7166 ++	  r_type = BFD_RELOC_LO16;
  1.7167 ++	  break;
  1.7168 ++	case AVR32_OPINFO_GOT:
  1.7169 ++	  switch (r_type)
  1.7170 ++	    {
  1.7171 ++	    case BFD_RELOC_AVR32_18W_PCREL:
  1.7172 ++	      r_type = BFD_RELOC_AVR32_GOT18SW;
  1.7173 ++	      break;
  1.7174 ++	    case BFD_RELOC_AVR32_16S:
  1.7175 ++	      r_type = BFD_RELOC_AVR32_GOT16S;
  1.7176 ++	      break;
  1.7177 ++	    default:
  1.7178 ++	      BAD_CASE(r_type);
  1.7179 ++	      break;
  1.7180 ++	    }
  1.7181 ++	  break;
  1.7182 ++	default:
  1.7183 ++	  BAD_CASE(fragP->tc_frag_data.reloc_info);
  1.7184 ++	  break;
  1.7185 ++	}
  1.7186 ++    }
  1.7187 ++
  1.7188 ++  pr_debug("%s:%d: convert_frag: new %s fixup\n",
  1.7189 ++	   fragP->fr_file, fragP->fr_line,
  1.7190 ++	   bfd_get_reloc_code_name(r_type));
  1.7191 ++
  1.7192 ++#if 1
  1.7193 ++  fixP = fix_new_exp(fragP, fragP->fr_fix - opc->size, opc->size,
  1.7194 ++		     &fragP->tc_frag_data.exp,
  1.7195 ++		     fragP->tc_frag_data.pcrel, r_type);
  1.7196 ++#else
  1.7197 ++  fixP = fix_new(fragP, fragP->fr_fix - opc->size, opc->size, symbolP,
  1.7198 ++		 fragP->fr_offset, fragP->tc_frag_data.pcrel, r_type);
  1.7199 ++#endif
  1.7200 ++
  1.7201 ++  /* Revert fix_new brain damage. "dot_value" is the value of PC at
  1.7202 ++     the point of the fixup, relative to the frag address.  fix_new()
  1.7203 ++     and friends think they are only being called during the assembly
  1.7204 ++     pass, not during relaxation or similar, so fx_dot_value, fx_file
  1.7205 ++     and fx_line are all initialized to the wrong value.  But we don't
  1.7206 ++     know the size of the fixup until now, so we really can't live up
  1.7207 ++     to the assumptions these functions make about the target.  What
  1.7208 ++     do these functions think the "where" and "frag" argument mean
  1.7209 ++     anyway?  */
  1.7210 ++  fixP->fx_dot_value = fragP->fr_fix - opc->size;
  1.7211 ++  fixP->fx_file = fragP->fr_file;
  1.7212 ++  fixP->fx_line = fragP->fr_line;
  1.7213 ++
  1.7214 ++  fixP->tc_fix_data.ifield = ifield;
  1.7215 ++  fixP->tc_fix_data.align = avr32_rs_align(subtype);
  1.7216 ++  fixP->tc_fix_data.min = avr32_relax_table[subtype].lower_bound;
  1.7217 ++  fixP->tc_fix_data.max = avr32_relax_table[subtype].upper_bound;
  1.7218 ++}
  1.7219 ++
  1.7220 ++static void
  1.7221 ++avr32_lda_convert_frag(bfd *abfd ATTRIBUTE_UNUSED,
  1.7222 ++		       segT segment ATTRIBUTE_UNUSED,
  1.7223 ++		       fragS *fragP)
  1.7224 ++{
  1.7225 ++  const struct avr32_opcode *opc;
  1.7226 ++  const struct avr32_ifield *ifield;
  1.7227 ++  bfd_reloc_code_real_type r_type;
  1.7228 ++  expressionS exp;
  1.7229 ++  struct cpool *pool;
  1.7230 ++  fixS *fixP;
  1.7231 ++  bfd_vma value;
  1.7232 ++  int regid, pcrel = 0, align = 0;
  1.7233 ++  char *p;
  1.7234 ++
  1.7235 ++  r_type = BFD_RELOC_NONE;
  1.7236 ++  regid = fragP->tc_frag_data.reloc_info;
  1.7237 ++  p = fragP->fr_opcode;
  1.7238 ++  exp.X_add_symbol = fragP->fr_symbol;
  1.7239 ++  exp.X_add_number = fragP->fr_offset;
  1.7240 ++  exp.X_op = O_symbol;
  1.7241 ++
  1.7242 ++  pr_debug("%s:%d: lda_convert_frag, subtype: %d, fix: %d, var: %d, regid: %d\n",
  1.7243 ++	   fragP->fr_file, fragP->fr_line,
  1.7244 ++	   fragP->fr_subtype, fragP->fr_fix, fragP->fr_var, regid);
  1.7245 ++
  1.7246 ++  switch (fragP->fr_subtype)
  1.7247 ++    {
  1.7248 ++    case LDA_SUBTYPE_MOV1:
  1.7249 ++      opc = &avr32_opc_table[AVR32_OPC_MOV1];
  1.7250 ++      opc->fields[0]->insert(opc->fields[0], p, regid);
  1.7251 ++      ifield = opc->fields[1];
  1.7252 ++      r_type = opc->reloc_type;
  1.7253 ++      break;
  1.7254 ++    case LDA_SUBTYPE_MOV2:
  1.7255 ++      opc = &avr32_opc_table[AVR32_OPC_MOV2];
  1.7256 ++      opc->fields[0]->insert(opc->fields[0], p, regid);
  1.7257 ++      ifield = opc->fields[1];
  1.7258 ++      r_type = opc->reloc_type;
  1.7259 ++      break;
  1.7260 ++    case LDA_SUBTYPE_SUB:
  1.7261 ++      opc = &avr32_opc_table[AVR32_OPC_SUB5];
  1.7262 ++      opc->fields[0]->insert(opc->fields[0], p, regid);
  1.7263 ++      opc->fields[1]->insert(opc->fields[1], p, AVR32_REG_PC);
  1.7264 ++      ifield = opc->fields[2];
  1.7265 ++      r_type = BFD_RELOC_AVR32_16N_PCREL;
  1.7266 ++
  1.7267 ++      /* Pretend that SUB5 isn't a "negated" pcrel expression for now.
  1.7268 ++	 We'll have to fix it up later when we know whether to
  1.7269 ++	 generate a reloc for it (in which case the linker will negate
  1.7270 ++	 it, so we shouldn't). */
  1.7271 ++      pcrel = 1;
  1.7272 ++      break;
  1.7273 ++    case LDA_SUBTYPE_LDDPC:
  1.7274 ++      opc = &avr32_opc_table[AVR32_OPC_LDDPC];
  1.7275 ++      align = 2;
  1.7276 ++      r_type = BFD_RELOC_AVR32_9W_CP;
  1.7277 ++      goto cpool_common;
  1.7278 ++    case LDA_SUBTYPE_LDW:
  1.7279 ++      opc = &avr32_opc_table[AVR32_OPC_LDDPC_EXT];
  1.7280 ++      r_type = BFD_RELOC_AVR32_16_CP;
  1.7281 ++    cpool_common:
  1.7282 ++      opc->fields[0]->insert(opc->fields[0], p, regid);
  1.7283 ++      ifield = opc->fields[1];
  1.7284 ++      pool = fragP->tc_frag_data.pool;
  1.7285 ++      exp.X_add_symbol = pool->symbol;
  1.7286 ++      exp.X_add_number = pool->literals[fragP->tc_frag_data.pool_entry].offset;
  1.7287 ++      pcrel = 1;
  1.7288 ++      break;
  1.7289 ++    case LDA_SUBTYPE_GOTLOAD_LARGE:
  1.7290 ++      /* ld.w Rd, r6[Rd << 2] (last) */
  1.7291 ++      opc = &avr32_opc_table[AVR32_OPC_LD_W5];
  1.7292 ++      bfd_putb32(opc->value, p + 4);
  1.7293 ++      opc->fields[0]->insert(opc->fields[0], p + 4, regid);
  1.7294 ++      opc->fields[1]->insert(opc->fields[1], p + 4, 6);
  1.7295 ++      opc->fields[2]->insert(opc->fields[2], p + 4, regid);
  1.7296 ++      opc->fields[3]->insert(opc->fields[3], p + 4, 2);
  1.7297 ++
  1.7298 ++      /* mov Rd, (got_offset / 4) */
  1.7299 ++      opc = &avr32_opc_table[AVR32_OPC_MOV2];
  1.7300 ++      opc->fields[0]->insert(opc->fields[0], p, regid);
  1.7301 ++      ifield = opc->fields[1];
  1.7302 ++      r_type = BFD_RELOC_AVR32_LDA_GOT;
  1.7303 ++      break;
  1.7304 ++    case LDA_SUBTYPE_GOTLOAD:
  1.7305 ++      opc = &avr32_opc_table[AVR32_OPC_LD_W4];
  1.7306 ++      opc->fields[0]->insert(opc->fields[0], p, regid);
  1.7307 ++      opc->fields[1]->insert(opc->fields[1], p, 6);
  1.7308 ++      ifield = opc->fields[2];
  1.7309 ++      if (r_type == BFD_RELOC_NONE)
  1.7310 ++	r_type = BFD_RELOC_AVR32_GOT16S;
  1.7311 ++      break;
  1.7312 ++    default:
  1.7313 ++      BAD_CASE(fragP->fr_subtype);
  1.7314 ++    }
  1.7315 ++
  1.7316 ++  value = bfd_getb32(p);
  1.7317 ++  value &= ~(opc->mask | ifield->mask);
  1.7318 ++  value |= opc->value;
  1.7319 ++  bfd_putb32(value, p);
  1.7320 ++
  1.7321 ++  fragP->fr_fix += fragP->fr_var - LDA_INITIAL_SIZE;
  1.7322 ++
  1.7323 ++  if (fragP->fr_next
  1.7324 ++      && ((offsetT)(fragP->fr_next->fr_address - fragP->fr_address)
  1.7325 ++	  != fragP->fr_fix))
  1.7326 ++    {
  1.7327 ++      fprintf(stderr, "LDA frag: fr_fix is wrong! fragP->fr_var = %ld, r_type = %s\n",
  1.7328 ++	      fragP->fr_var, bfd_get_reloc_code_name(r_type));
  1.7329 ++      abort();
  1.7330 ++    }
  1.7331 ++
  1.7332 ++  fixP = fix_new_exp(fragP, fragP->fr_fix - fragP->fr_var, fragP->fr_var,
  1.7333 ++		     &exp, pcrel, r_type);
  1.7334 ++
  1.7335 ++  /* Revert fix_new brain damage. "dot_value" is the value of PC at
  1.7336 ++     the point of the fixup, relative to the frag address.  fix_new()
  1.7337 ++     and friends think they are only being called during the assembly
  1.7338 ++     pass, not during relaxation or similar, so fx_dot_value, fx_file
  1.7339 ++     and fx_line are all initialized to the wrong value.  But we don't
  1.7340 ++     know the size of the fixup until now, so we really can't live up
  1.7341 ++     to the assumptions these functions make about the target.  What
  1.7342 ++     do these functions think the "where" and "frag" argument mean
  1.7343 ++     anyway?  */
  1.7344 ++  fixP->fx_dot_value = fragP->fr_fix - opc->size;
  1.7345 ++  fixP->fx_file = fragP->fr_file;
  1.7346 ++  fixP->fx_line = fragP->fr_line;
  1.7347 ++
  1.7348 ++  fixP->tc_fix_data.ifield = ifield;
  1.7349 ++  fixP->tc_fix_data.align = align;
  1.7350 ++  /* these are only used if the fixup can actually be resolved */
  1.7351 ++  fixP->tc_fix_data.min = -32768;
  1.7352 ++  fixP->tc_fix_data.max = 32767;
  1.7353 ++}
  1.7354 ++
  1.7355 ++static void
  1.7356 ++avr32_call_convert_frag(bfd *abfd ATTRIBUTE_UNUSED,
  1.7357 ++		       segT segment ATTRIBUTE_UNUSED,
  1.7358 ++		       fragS *fragP)
  1.7359 ++{
  1.7360 ++  const struct avr32_opcode *opc = NULL;
  1.7361 ++  const struct avr32_ifield *ifield;
  1.7362 ++  bfd_reloc_code_real_type r_type;
  1.7363 ++  symbolS *symbol;
  1.7364 ++  offsetT offset;
  1.7365 ++  fixS *fixP;
  1.7366 ++  bfd_vma value;
  1.7367 ++  int pcrel = 0, align = 0;
  1.7368 ++  char *p;
  1.7369 ++
  1.7370 ++  symbol = fragP->fr_symbol;
  1.7371 ++  offset = fragP->fr_offset;
  1.7372 ++  r_type = BFD_RELOC_NONE;
  1.7373 ++  p = fragP->fr_opcode;
  1.7374 ++
  1.7375 ++  pr_debug("%s:%d: call_convert_frag, subtype: %d, fix: %d, var: %d\n",
  1.7376 ++	   fragP->fr_file, fragP->fr_line,
  1.7377 ++	   fragP->fr_subtype, fragP->fr_fix, fragP->fr_var);
  1.7378 ++
  1.7379 ++  switch (fragP->fr_subtype)
  1.7380 ++    {
  1.7381 ++    case CALL_SUBTYPE_RCALL1:
  1.7382 ++      opc = &avr32_opc_table[AVR32_OPC_RCALL1];
  1.7383 ++      /* fall through */
  1.7384 ++    case CALL_SUBTYPE_RCALL2:
  1.7385 ++      if (!opc)
  1.7386 ++	opc = &avr32_opc_table[AVR32_OPC_RCALL2];
  1.7387 ++      ifield = opc->fields[0];
  1.7388 ++      r_type = opc->reloc_type;
  1.7389 ++      pcrel = 1;
  1.7390 ++      align = 1;
  1.7391 ++      break;
  1.7392 ++    case CALL_SUBTYPE_MCALL_CP:
  1.7393 ++      opc = &avr32_opc_table[AVR32_OPC_MCALL];
  1.7394 ++      opc->fields[0]->insert(opc->fields[0], p, AVR32_REG_PC);
  1.7395 ++      ifield = opc->fields[1];
  1.7396 ++      r_type = BFD_RELOC_AVR32_CPCALL;
  1.7397 ++      symbol = fragP->tc_frag_data.pool->symbol;
  1.7398 ++      offset = fragP->tc_frag_data.pool->literals[fragP->tc_frag_data.pool_entry].offset;
  1.7399 ++      assert(fragP->tc_frag_data.pool->literals[fragP->tc_frag_data.pool_entry].refcount > 0);
  1.7400 ++      pcrel = 1;
  1.7401 ++      align = 2;
  1.7402 ++      break;
  1.7403 ++    case CALL_SUBTYPE_MCALL_GOT:
  1.7404 ++      opc = &avr32_opc_table[AVR32_OPC_MCALL];
  1.7405 ++      opc->fields[0]->insert(opc->fields[0], p, 6);
  1.7406 ++      ifield = opc->fields[1];
  1.7407 ++      r_type = BFD_RELOC_AVR32_GOT18SW;
  1.7408 ++      break;
  1.7409 ++    case CALL_SUBTYPE_MCALL_LARGE:
  1.7410 ++      assert(fragP->fr_var == 10);
  1.7411 ++      /* ld.w lr, r6[lr << 2] */
  1.7412 ++      opc = &avr32_opc_table[AVR32_OPC_LD_W5];
  1.7413 ++      bfd_putb32(opc->value, p + 4);
  1.7414 ++      opc->fields[0]->insert(opc->fields[0], p + 4, AVR32_REG_LR);
  1.7415 ++      opc->fields[1]->insert(opc->fields[1], p + 4, 6);
  1.7416 ++      opc->fields[2]->insert(opc->fields[2], p + 4, AVR32_REG_LR);
  1.7417 ++      opc->fields[3]->insert(opc->fields[3], p + 4, 2);
  1.7418 ++
  1.7419 ++      /* icall lr */
  1.7420 ++      opc = &avr32_opc_table[AVR32_OPC_ICALL];
  1.7421 ++      bfd_putb16(opc->value >> 16, p + 8);
  1.7422 ++      opc->fields[0]->insert(opc->fields[0], p + 8, AVR32_REG_LR);
  1.7423 ++
  1.7424 ++      /* mov lr, (got_offset / 4) */
  1.7425 ++      opc = &avr32_opc_table[AVR32_OPC_MOV2];
  1.7426 ++      opc->fields[0]->insert(opc->fields[0], p, AVR32_REG_LR);
  1.7427 ++      ifield = opc->fields[1];
  1.7428 ++      r_type = BFD_RELOC_AVR32_GOTCALL;
  1.7429 ++      break;
  1.7430 ++    default:
  1.7431 ++      BAD_CASE(fragP->fr_subtype);
  1.7432 ++    }
  1.7433 ++
  1.7434 ++  /* Insert the opcode and clear the variable ifield */
  1.7435 ++  value = bfd_getb32(p);
  1.7436 ++  value &= ~(opc->mask | ifield->mask);
  1.7437 ++  value |= opc->value;
  1.7438 ++  bfd_putb32(value, p);
  1.7439 ++
  1.7440 ++  fragP->fr_fix += fragP->fr_var - CALL_INITIAL_SIZE;
  1.7441 ++
  1.7442 ++  if (fragP->fr_next
  1.7443 ++      && ((offsetT)(fragP->fr_next->fr_address - fragP->fr_address)
  1.7444 ++	  != fragP->fr_fix))
  1.7445 ++    {
  1.7446 ++      fprintf(stderr, "%s:%d: fr_fix %lu is wrong! fr_var=%lu, r_type=%s\n",
  1.7447 ++	      fragP->fr_file, fragP->fr_line,
  1.7448 ++	      fragP->fr_fix, fragP->fr_var, bfd_get_reloc_code_name(r_type));
  1.7449 ++      fprintf(stderr, "fr_fix should be %ld. next frag is %s:%d\n",
  1.7450 ++	      (offsetT)(fragP->fr_next->fr_address - fragP->fr_address),
  1.7451 ++	      fragP->fr_next->fr_file, fragP->fr_next->fr_line);
  1.7452 ++    }
  1.7453 ++
  1.7454 ++  fixP = fix_new(fragP, fragP->fr_fix - fragP->fr_var, fragP->fr_var,
  1.7455 ++		 symbol, offset, pcrel, r_type);
  1.7456 ++
  1.7457 ++  /* Revert fix_new brain damage. "dot_value" is the value of PC at
  1.7458 ++     the point of the fixup, relative to the frag address.  fix_new()
  1.7459 ++     and friends think they are only being called during the assembly
  1.7460 ++     pass, not during relaxation or similar, so fx_dot_value, fx_file
  1.7461 ++     and fx_line are all initialized to the wrong value.  But we don't
  1.7462 ++     know the size of the fixup until now, so we really can't live up
  1.7463 ++     to the assumptions these functions make about the target.  What
  1.7464 ++     do these functions think the "where" and "frag" argument mean
  1.7465 ++     anyway?  */
  1.7466 ++  fixP->fx_dot_value = fragP->fr_fix - opc->size;
  1.7467 ++  fixP->fx_file = fragP->fr_file;
  1.7468 ++  fixP->fx_line = fragP->fr_line;
  1.7469 ++
  1.7470 ++  fixP->tc_fix_data.ifield = ifield;
  1.7471 ++  fixP->tc_fix_data.align = align;
  1.7472 ++  /* these are only used if the fixup can actually be resolved */
  1.7473 ++  fixP->tc_fix_data.min = -2097152;
  1.7474 ++  fixP->tc_fix_data.max = 2097150;
  1.7475 ++}
  1.7476 ++
  1.7477 ++static void
  1.7478 ++avr32_cpool_convert_frag(bfd *abfd ATTRIBUTE_UNUSED,
  1.7479 ++			 segT segment ATTRIBUTE_UNUSED,
  1.7480 ++			 fragS *fragP)
  1.7481 ++{
  1.7482 ++  struct cpool *pool;
  1.7483 ++  addressT address;
  1.7484 ++  unsigned int entry;
  1.7485 ++  char *p;
  1.7486 ++  char sym_name[20];
  1.7487 ++
  1.7488 ++  /* Did we get rid of the frag altogether? */
  1.7489 ++  if (!fragP->fr_var)
  1.7490 ++    return;
  1.7491 ++
  1.7492 ++  pool = fragP->tc_frag_data.pool;
  1.7493 ++  address = fragP->fr_address + fragP->fr_fix;
  1.7494 ++  p = fragP->fr_literal + fragP->fr_fix;
  1.7495 ++
  1.7496 ++  sprintf(sym_name, "$$cp_\002%x", pool->id);
  1.7497 ++  symbol_locate(pool->symbol, sym_name, pool->section, fragP->fr_fix, fragP);
  1.7498 ++  symbol_table_insert(pool->symbol);
  1.7499 ++
  1.7500 ++  for (entry = 0; entry < pool->next_free_entry; entry++)
  1.7501 ++    {
  1.7502 ++      if (pool->literals[entry].refcount > 0)
  1.7503 ++	{
  1.7504 ++	  fix_new_exp(fragP, fragP->fr_fix, 4, &pool->literals[entry].exp,
  1.7505 ++		      FALSE, BFD_RELOC_AVR32_32_CPENT);
  1.7506 ++	  fragP->fr_fix += 4;
  1.7507 ++	}
  1.7508 ++    }
  1.7509 ++}
  1.7510 ++
  1.7511 ++static struct avr32_relaxer avr32_default_relaxer = {
  1.7512 ++  .estimate_size	= avr32_default_estimate_size_before_relax,
  1.7513 ++  .relax_frag		= avr32_default_relax_frag,
  1.7514 ++  .convert_frag		= avr32_default_convert_frag,
  1.7515 ++};
  1.7516 ++static struct avr32_relaxer avr32_lda_relaxer = {
  1.7517 ++  .estimate_size	= avr32_lda_estimate_size_before_relax,
  1.7518 ++  .relax_frag		= avr32_lda_relax_frag,
  1.7519 ++  .convert_frag		= avr32_lda_convert_frag,
  1.7520 ++};
  1.7521 ++static struct avr32_relaxer avr32_call_relaxer = {
  1.7522 ++  .estimate_size	= avr32_call_estimate_size_before_relax,
  1.7523 ++  .relax_frag		= avr32_call_relax_frag,
  1.7524 ++  .convert_frag		= avr32_call_convert_frag,
  1.7525 ++};
  1.7526 ++static struct avr32_relaxer avr32_cpool_relaxer = {
  1.7527 ++  .estimate_size	= avr32_cpool_estimate_size_before_relax,
  1.7528 ++  .relax_frag		= avr32_cpool_relax_frag,
  1.7529 ++  .convert_frag		= avr32_cpool_convert_frag,
  1.7530 ++};
  1.7531 ++
  1.7532 ++static void s_cpool(int arg ATTRIBUTE_UNUSED)
  1.7533 ++{
  1.7534 ++  struct cpool *pool;
  1.7535 ++  unsigned int max_size;
  1.7536 ++  char *buf;
  1.7537 ++
  1.7538 ++  pool = find_cpool(now_seg, now_subseg);
  1.7539 ++  if (!pool || !pool->symbol || pool->next_free_entry == 0)
  1.7540 ++    return;
  1.7541 ++
  1.7542 ++  /* Make sure the constant pool is properly aligned */
  1.7543 ++  frag_align_code(2, 0);
  1.7544 ++  if (bfd_get_section_alignment(stdoutput, pool->section) < 2)
  1.7545 ++    bfd_set_section_alignment(stdoutput, pool->section, 2);
  1.7546 ++
  1.7547 ++  /* Assume none of the entries are discarded, and that we need the
  1.7548 ++     maximum amount of alignment.  But we're not going to allocate
  1.7549 ++     anything up front. */
  1.7550 ++  max_size = pool->next_free_entry * 4 + 2;
  1.7551 ++  frag_grow(max_size);
  1.7552 ++  buf = frag_more(0);
  1.7553 ++
  1.7554 ++  frag_now->tc_frag_data.relaxer = &avr32_cpool_relaxer;
  1.7555 ++  frag_now->tc_frag_data.pool = pool;
  1.7556 ++
  1.7557 ++  symbol_set_frag(pool->symbol, frag_now);
  1.7558 ++
  1.7559 ++  /* Assume zero initial size, allowing other relaxers to be
  1.7560 ++     optimistic about things.  */
  1.7561 ++  frag_var(rs_machine_dependent, max_size, 0,
  1.7562 ++	   0, pool->symbol, 0, NULL);
  1.7563 ++
  1.7564 ++  /* Mark the pool as empty.  */
  1.7565 ++  pool->used = 1;
  1.7566 ++}
  1.7567 ++
  1.7568 ++/* The location from which a PC relative jump should be calculated,
  1.7569 ++   given a PC relative reloc.  */
  1.7570 ++
  1.7571 ++long
  1.7572 ++md_pcrel_from_section (fixS *fixP, segT sec)
  1.7573 ++{
  1.7574 ++  pr_debug("pcrel_from_section, fx_offset = %d\n", fixP->fx_offset);
  1.7575 ++
  1.7576 ++  if (fixP->fx_addsy != NULL
  1.7577 ++      && (! S_IS_DEFINED (fixP->fx_addsy)
  1.7578 ++          || S_GET_SEGMENT (fixP->fx_addsy) != sec
  1.7579 ++	  || S_FORCE_RELOC(fixP->fx_addsy, 1)))
  1.7580 ++    {
  1.7581 ++      pr_debug("Unknown pcrel symbol: %s\n", S_GET_NAME(fixP->fx_addsy));
  1.7582 ++
  1.7583 ++      /* The symbol is undefined (or is defined but not in this section).
  1.7584 ++	 Let the linker figure it out.  */
  1.7585 ++      return 0;
  1.7586 ++    }
  1.7587 ++
  1.7588 ++  pr_debug("pcrel from %x + %x, symbol: %s (%x)\n",
  1.7589 ++	   fixP->fx_frag->fr_address, fixP->fx_where,
  1.7590 ++	   fixP->fx_addsy?S_GET_NAME(fixP->fx_addsy):"(null)",
  1.7591 ++	   fixP->fx_addsy?S_GET_VALUE(fixP->fx_addsy):0);
  1.7592 ++
  1.7593 ++  return ((fixP->fx_frag->fr_address + fixP->fx_where)
  1.7594 ++	  & (~0UL << fixP->tc_fix_data.align));
  1.7595 ++}
  1.7596 ++
  1.7597 ++valueT
  1.7598 ++md_section_align (segT segment, valueT size)
  1.7599 ++{
  1.7600 ++  int align = bfd_get_section_alignment (stdoutput, segment);
  1.7601 ++  return ((size + (1 << align) - 1) & (-1 << align));
  1.7602 ++}
  1.7603 ++
  1.7604 ++static int syntax_matches(const struct avr32_syntax *syntax,
  1.7605 ++			  char *str)
  1.7606 ++{
  1.7607 ++  int i;
  1.7608 ++
  1.7609 ++  pr_debug("syntax %d matches `%s'?\n", syntax->id, str);
  1.7610 ++
  1.7611 ++  if (syntax->nr_operands < 0)
  1.7612 ++    {
  1.7613 ++      struct avr32_operand *op;
  1.7614 ++      int optype;
  1.7615 ++
  1.7616 ++      for (i = 0; i < (-syntax->nr_operands - 1); i++)
  1.7617 ++	{
  1.7618 ++	  char *p;
  1.7619 ++	  char c;
  1.7620 ++
  1.7621 ++	  optype = syntax->operand[i];
  1.7622 ++	  assert(optype < AVR32_NR_OPERANDS);
  1.7623 ++	  op = &avr32_operand_table[optype];
  1.7624 ++
  1.7625 ++	  for (p = str; *p; p++)
  1.7626 ++	    if (*p == ',')
  1.7627 ++	      break;
  1.7628 ++
  1.7629 ++	  if (p == str)
  1.7630 ++	    return 0;
  1.7631 ++
  1.7632 ++	  c = *p;
  1.7633 ++	  *p = 0;
  1.7634 ++
  1.7635 ++	  if (!op->match(str))
  1.7636 ++	    {
  1.7637 ++	      *p = c;
  1.7638 ++	      return 0;
  1.7639 ++	    }
  1.7640 ++
  1.7641 ++	  str = p;
  1.7642 ++	  *p = c;
  1.7643 ++	  if (c)
  1.7644 ++	    str++;
  1.7645 ++	}
  1.7646 ++
  1.7647 ++      optype = syntax->operand[i];
  1.7648 ++      assert(optype < AVR32_NR_OPERANDS);
  1.7649 ++      op = &avr32_operand_table[optype];
  1.7650 ++
  1.7651 ++      if (!op->match(str))
  1.7652 ++	return 0;
  1.7653 ++      return 1;
  1.7654 ++    }
  1.7655 ++
  1.7656 ++  for (i = 0; i < syntax->nr_operands; i++)
  1.7657 ++    {
  1.7658 ++      struct avr32_operand *op;
  1.7659 ++      int optype = syntax->operand[i];
  1.7660 ++      char *p;
  1.7661 ++      char c;
  1.7662 ++
  1.7663 ++      assert(optype < AVR32_NR_OPERANDS);
  1.7664 ++      op = &avr32_operand_table[optype];
  1.7665 ++
  1.7666 ++      for (p = str; *p; p++)
  1.7667 ++	if (*p == ',')
  1.7668 ++	  break;
  1.7669 ++
  1.7670 ++      if (p == str)
  1.7671 ++	return 0;
  1.7672 ++
  1.7673 ++      c = *p;
  1.7674 ++      *p = 0;
  1.7675 ++
  1.7676 ++      if (!op->match(str))
  1.7677 ++	{
  1.7678 ++	  *p = c;
  1.7679 ++	  return 0;
  1.7680 ++	}
  1.7681 ++
  1.7682 ++      str = p;
  1.7683 ++      *p = c;
  1.7684 ++      if (c)
  1.7685 ++	str++;
  1.7686 ++    }
  1.7687 ++
  1.7688 ++  if (*str == '\0')
  1.7689 ++    return 1;
  1.7690 ++
  1.7691 ++  if ((*str == 'e' || *str == 'E') && !str[1])
  1.7692 ++    return 1;
  1.7693 ++
  1.7694 ++  return 0;
  1.7695 ++}
  1.7696 ++
  1.7697 ++static int parse_operands(char *str)
  1.7698 ++{
  1.7699 ++  int i;
  1.7700 ++
  1.7701 ++  if (current_insn.syntax->nr_operands < 0)
  1.7702 ++    {
  1.7703 ++      int optype;
  1.7704 ++      struct avr32_operand *op;
  1.7705 ++
  1.7706 ++      for (i = 0; i < (-current_insn.syntax->nr_operands - 1); i++)
  1.7707 ++	{
  1.7708 ++	  char *p;
  1.7709 ++	  char c;
  1.7710 ++
  1.7711 ++	  optype = current_insn.syntax->operand[i];
  1.7712 ++	  op = &avr32_operand_table[optype];
  1.7713 ++
  1.7714 ++	  for (p = str; *p; p++)
  1.7715 ++	    if (*p == ',')
  1.7716 ++	      break;
  1.7717 ++
  1.7718 ++	  assert(p != str);
  1.7719 ++
  1.7720 ++	  c = *p, *p = 0;
  1.7721 ++	  op->parse(op, str, i);
  1.7722 ++	  *p = c;
  1.7723 ++
  1.7724 ++	  str = p;
  1.7725 ++	  if (c) str++;
  1.7726 ++	}
  1.7727 ++
  1.7728 ++      /* give the rest of the line to the last operand */
  1.7729 ++      optype = current_insn.syntax->operand[i];
  1.7730 ++      op = &avr32_operand_table[optype];
  1.7731 ++      op->parse(op, str, i);
  1.7732 ++    }
  1.7733 ++  else
  1.7734 ++    {
  1.7735 ++      for (i = 0; i < current_insn.syntax->nr_operands; i++)
  1.7736 ++	{
  1.7737 ++	  int optype = current_insn.syntax->operand[i];
  1.7738 ++	  struct avr32_operand *op = &avr32_operand_table[optype];
  1.7739 ++	  char *p;
  1.7740 ++	  char c;
  1.7741 ++
  1.7742 ++	  skip_whitespace(str);
  1.7743 ++
  1.7744 ++	  for (p = str; *p; p++)
  1.7745 ++	    if (*p == ',')
  1.7746 ++	      break;
  1.7747 ++
  1.7748 ++	  assert(p != str);
  1.7749 ++
  1.7750 ++	  c = *p, *p = 0;
  1.7751 ++	  op->parse(op, str, i);
  1.7752 ++	  *p = c;
  1.7753 ++
  1.7754 ++	  str = p;
  1.7755 ++	  if (c) str++;
  1.7756 ++	}
  1.7757 ++
  1.7758 ++      if (*str == 'E' || *str == 'e')
  1.7759 ++	current_insn.force_extended = 1;
  1.7760 ++    }
  1.7761 ++
  1.7762 ++  return 0;
  1.7763 ++}
  1.7764 ++
  1.7765 ++static const char *
  1.7766 ++finish_insn(const struct avr32_opcode *opc)
  1.7767 ++{
  1.7768 ++  expressionS *exp = &current_insn.immediate;
  1.7769 ++  unsigned int i;
  1.7770 ++  int will_relax = 0;
  1.7771 ++  char *buf;
  1.7772 ++
  1.7773 ++  assert(current_insn.next_slot == opc->nr_fields);
  1.7774 ++
  1.7775 ++  pr_debug("%s:%d: finish_insn: trying opcode %d\n",
  1.7776 ++	   frag_now->fr_file, frag_now->fr_line, opc->id);
  1.7777 ++
  1.7778 ++  /* Go through the relaxation stage for all instructions that can
  1.7779 ++     possibly take a symbolic immediate.  The relax code will take
  1.7780 ++     care of range checking and alignment.  */
  1.7781 ++  if (opc->var_field != -1)
  1.7782 ++    {
  1.7783 ++      int substate, largest_substate;
  1.7784 ++      symbolS *sym;
  1.7785 ++      offsetT off;
  1.7786 ++
  1.7787 ++      will_relax = 1;
  1.7788 ++      substate = largest_substate = opc_initial_substate(opc);
  1.7789 ++
  1.7790 ++      while (relax_more(largest_substate) != AVR32_RS_NONE)
  1.7791 ++	largest_substate = relax_more(largest_substate);
  1.7792 ++
  1.7793 ++      pr_debug("will relax. initial substate: %d (size %d), largest substate: %d (size %d)\n",
  1.7794 ++	       substate, avr32_rs_size(substate),
  1.7795 ++	       largest_substate, avr32_rs_size(largest_substate));
  1.7796 ++
  1.7797 ++      /* make sure we have enough room for the largest possible opcode */
  1.7798 ++      frag_grow(avr32_rs_size(largest_substate));
  1.7799 ++      buf = frag_more(opc->size);
  1.7800 ++
  1.7801 ++      dwarf2_emit_insn(opc->size);
  1.7802 ++
  1.7803 ++      frag_now->tc_frag_data.reloc_info = AVR32_OPINFO_NONE;
  1.7804 ++      frag_now->tc_frag_data.pcrel = current_insn.pcrel;
  1.7805 ++      frag_now->tc_frag_data.force_extended = current_insn.force_extended;
  1.7806 ++      frag_now->tc_frag_data.relaxer = &avr32_default_relaxer;
  1.7807 ++
  1.7808 ++      if (exp->X_op == O_hi)
  1.7809 ++	{
  1.7810 ++	  frag_now->tc_frag_data.reloc_info = AVR32_OPINFO_HI;
  1.7811 ++	  exp->X_op = exp->X_md;
  1.7812 ++	}
  1.7813 ++      else if (exp->X_op == O_lo)
  1.7814 ++	{
  1.7815 ++	  frag_now->tc_frag_data.reloc_info = AVR32_OPINFO_LO;
  1.7816 ++	  exp->X_op = exp->X_md;
  1.7817 ++	}
  1.7818 ++      else if (exp->X_op == O_got)
  1.7819 ++	{
  1.7820 ++	  frag_now->tc_frag_data.reloc_info = AVR32_OPINFO_GOT;
  1.7821 ++	  exp->X_op = O_symbol;
  1.7822 ++	}
  1.7823 ++
  1.7824 ++#if 0
  1.7825 ++      if ((opc->reloc_type == BFD_RELOC_AVR32_SUB5)
  1.7826 ++	  && exp->X_op == O_subtract)
  1.7827 ++	{
  1.7828 ++	  symbolS *tmp;
  1.7829 ++	  tmp = exp->X_add_symbol;
  1.7830 ++	  exp->X_add_symbol = exp->X_op_symbol;
  1.7831 ++	  exp->X_op_symbol = tmp;
  1.7832 ++	}
  1.7833 ++#endif
  1.7834 ++
  1.7835 ++      frag_now->tc_frag_data.exp = current_insn.immediate;
  1.7836 ++
  1.7837 ++      sym = exp->X_add_symbol;
  1.7838 ++      off = exp->X_add_number;
  1.7839 ++      if (exp->X_op != O_symbol)
  1.7840 ++	{
  1.7841 ++	  sym = make_expr_symbol(exp);
  1.7842 ++	  off = 0;
  1.7843 ++	}
  1.7844 ++
  1.7845 ++      frag_var(rs_machine_dependent,
  1.7846 ++	       avr32_rs_size(largest_substate) - opc->size,
  1.7847 ++	       opc->size,
  1.7848 ++	       substate, sym, off, buf);
  1.7849 ++    }
  1.7850 ++  else
  1.7851 ++    {
  1.7852 ++      assert(avr32_rs_size(opc_initial_substate(opc)) == 0);
  1.7853 ++
  1.7854 ++      /* Make sure we always have room for another whole word, as the ifield
  1.7855 ++	 inserters can only write words. */
  1.7856 ++      frag_grow(4);
  1.7857 ++      buf = frag_more(opc->size);
  1.7858 ++      dwarf2_emit_insn(opc->size);
  1.7859 ++    }
  1.7860 ++
  1.7861 ++  assert(!(opc->value & ~opc->mask));
  1.7862 ++
  1.7863 ++  pr_debug("inserting opcode: 0x%lx\n", opc->value);
  1.7864 ++  bfd_putb32(opc->value, buf);
  1.7865 ++
  1.7866 ++  for (i = 0; i < opc->nr_fields; i++)
  1.7867 ++    {
  1.7868 ++      const struct avr32_ifield *f = opc->fields[i];
  1.7869 ++      const struct avr32_ifield_data *fd = &current_insn.field_value[i];
  1.7870 ++
  1.7871 ++      pr_debug("inserting field: 0x%lx & 0x%lx\n",
  1.7872 ++	       fd->value >> fd->align_order, f->mask);
  1.7873 ++
  1.7874 ++      f->insert(f, buf, fd->value >> fd->align_order);
  1.7875 ++    }
  1.7876 ++
  1.7877 ++  assert(will_relax || !current_insn.immediate.X_add_symbol);
  1.7878 ++  return NULL;
  1.7879 ++}
  1.7880 ++
  1.7881 ++static const char *
  1.7882 ++finish_alias(const struct avr32_alias *alias)
  1.7883 ++{
  1.7884 ++  const struct avr32_opcode *opc;
  1.7885 ++  struct {
  1.7886 ++    unsigned long value;
  1.7887 ++    unsigned long align;
  1.7888 ++  } mapped_operand[AVR32_MAX_OPERANDS];
  1.7889 ++  unsigned int i;
  1.7890 ++
  1.7891 ++  opc = alias->opc;
  1.7892 ++
  1.7893 ++  /* Remap the operands from the alias to the real opcode */
  1.7894 ++  for (i = 0; i < opc->nr_fields; i++)
  1.7895 ++    {
  1.7896 ++      if (alias->operand_map[i].is_opindex)
  1.7897 ++	{
  1.7898 ++	  struct avr32_ifield_data *fd;
  1.7899 ++	  fd = &current_insn.field_value[alias->operand_map[i].value];
  1.7900 ++	  mapped_operand[i].value = fd->value;
  1.7901 ++	  mapped_operand[i].align = fd->align_order;
  1.7902 ++	}
  1.7903 ++      else
  1.7904 ++	{
  1.7905 ++	  mapped_operand[i].value = alias->operand_map[i].value;
  1.7906 ++	  mapped_operand[i].align = 0;
  1.7907 ++	}
  1.7908 ++    }
  1.7909 ++
  1.7910 ++  for (i = 0; i < opc->nr_fields; i++)
  1.7911 ++    {
  1.7912 ++      current_insn.field_value[i].value = mapped_operand[i].value;
  1.7913 ++      if (opc->id == AVR32_OPC_COP)
  1.7914 ++	current_insn.field_value[i].align_order = 0;
  1.7915 ++      else
  1.7916 ++	current_insn.field_value[i].align_order
  1.7917 ++	  = mapped_operand[i].align;
  1.7918 ++    }
  1.7919 ++
  1.7920 ++  current_insn.next_slot = opc->nr_fields;
  1.7921 ++
  1.7922 ++  return finish_insn(opc);
  1.7923 ++}
  1.7924 ++
  1.7925 ++static const char *
  1.7926 ++finish_lda(const struct avr32_syntax *syntax ATTRIBUTE_UNUSED)
  1.7927 ++{
  1.7928 ++  expressionS *exp = &current_insn.immediate;
  1.7929 ++  relax_substateT initial_subtype;
  1.7930 ++  symbolS *sym;
  1.7931 ++  offsetT off;
  1.7932 ++  int initial_size, max_size;
  1.7933 ++  char *buf;
  1.7934 ++
  1.7935 ++  initial_size = LDA_INITIAL_SIZE;
  1.7936 ++
  1.7937 ++  if (avr32_pic)
  1.7938 ++    {
  1.7939 ++      initial_subtype = LDA_SUBTYPE_SUB;
  1.7940 ++      if (linkrelax)
  1.7941 ++	max_size = 8;
  1.7942 ++      else
  1.7943 ++	max_size = 4;
  1.7944 ++    }
  1.7945 ++  else
  1.7946 ++    {
  1.7947 ++      initial_subtype = LDA_SUBTYPE_MOV1;
  1.7948 ++      max_size = 4;
  1.7949 ++    }
  1.7950 ++
  1.7951 ++  frag_grow(max_size);
  1.7952 ++  buf = frag_more(initial_size);
  1.7953 ++  dwarf2_emit_insn(initial_size);
  1.7954 ++
  1.7955 ++  if (exp->X_op == O_symbol)
  1.7956 ++    {
  1.7957 ++      sym = exp->X_add_symbol;
  1.7958 ++      off = exp->X_add_number;
  1.7959 ++    }
  1.7960 ++  else
  1.7961 ++    {
  1.7962 ++      sym = make_expr_symbol(exp);
  1.7963 ++      off = 0;
  1.7964 ++    }
  1.7965 ++
  1.7966 ++  frag_now->tc_frag_data.reloc_info = current_insn.field_value[0].value;
  1.7967 ++  frag_now->tc_frag_data.relaxer = &avr32_lda_relaxer;
  1.7968 ++
  1.7969 ++  if (!avr32_pic)
  1.7970 ++    {
  1.7971 ++      /* The relaxer will bump the refcount if necessary */
  1.7972 ++      frag_now->tc_frag_data.pool
  1.7973 ++	= add_to_cpool(exp, &frag_now->tc_frag_data.pool_entry, 0);
  1.7974 ++    }
  1.7975 ++
  1.7976 ++  frag_var(rs_machine_dependent, max_size - initial_size,
  1.7977 ++	   initial_size, initial_subtype, sym, off, buf);
  1.7978 ++
  1.7979 ++  return NULL;
  1.7980 ++}
  1.7981 ++
  1.7982 ++static const char *
  1.7983 ++finish_call(const struct avr32_syntax *syntax ATTRIBUTE_UNUSED)
  1.7984 ++{
  1.7985 ++  expressionS *exp = &current_insn.immediate;
  1.7986 ++  symbolS *sym;
  1.7987 ++  offsetT off;
  1.7988 ++  int initial_size, max_size;
  1.7989 ++  char *buf;
  1.7990 ++
  1.7991 ++  initial_size = CALL_INITIAL_SIZE;
  1.7992 ++
  1.7993 ++  if (avr32_pic)
  1.7994 ++    {
  1.7995 ++      if (linkrelax)
  1.7996 ++	max_size = 10;
  1.7997 ++      else
  1.7998 ++	max_size = 4;
  1.7999 ++    }
  1.8000 ++  else
  1.8001 ++    max_size = 4;
  1.8002 ++
  1.8003 ++  frag_grow(max_size);
  1.8004 ++  buf = frag_more(initial_size);
  1.8005 ++  dwarf2_emit_insn(initial_size);
  1.8006 ++
  1.8007 ++  frag_now->tc_frag_data.relaxer = &avr32_call_relaxer;
  1.8008 ++
  1.8009 ++  if (exp->X_op == O_symbol)
  1.8010 ++    {
  1.8011 ++      sym = exp->X_add_symbol;
  1.8012 ++      off = exp->X_add_number;
  1.8013 ++    }
  1.8014 ++  else
  1.8015 ++    {
  1.8016 ++      sym = make_expr_symbol(exp);
  1.8017 ++      off = 0;
  1.8018 ++    }
  1.8019 ++
  1.8020 ++  if (!avr32_pic)
  1.8021 ++    {
  1.8022 ++      /* The relaxer will bump the refcount if necessary */
  1.8023 ++      frag_now->tc_frag_data.pool
  1.8024 ++	= add_to_cpool(exp, &frag_now->tc_frag_data.pool_entry, 0);
  1.8025 ++    }
  1.8026 ++
  1.8027 ++  frag_var(rs_machine_dependent, max_size - initial_size,
  1.8028 ++	   initial_size, CALL_SUBTYPE_RCALL1, sym, off, buf);
  1.8029 ++
  1.8030 ++  return NULL;
  1.8031 ++}
  1.8032 ++
  1.8033 ++void
  1.8034 ++md_begin (void)
  1.8035 ++{
  1.8036 ++  unsigned long flags = 0;
  1.8037 ++  int i;
  1.8038 ++
  1.8039 ++  avr32_mnemonic_htab = hash_new();
  1.8040 ++
  1.8041 ++  if (!avr32_mnemonic_htab)
  1.8042 ++    as_fatal(_("virtual memory exhausted"));
  1.8043 ++
  1.8044 ++  for (i = 0; i < AVR32_NR_MNEMONICS; i++)
  1.8045 ++    {
  1.8046 ++      hash_insert(avr32_mnemonic_htab, avr32_mnemonic_table[i].name,
  1.8047 ++		  (void *)&avr32_mnemonic_table[i]);
  1.8048 ++    }
  1.8049 ++
  1.8050 ++  if (linkrelax)
  1.8051 ++    flags |= EF_AVR32_LINKRELAX;
  1.8052 ++  if (avr32_pic)
  1.8053 ++    flags |= EF_AVR32_PIC;
  1.8054 ++
  1.8055 ++  bfd_set_private_flags(stdoutput, flags);
  1.8056 ++
  1.8057 ++#ifdef OPC_CONSISTENCY_CHECK
  1.8058 ++  if (sizeof(avr32_operand_table)/sizeof(avr32_operand_table[0])
  1.8059 ++      < AVR32_NR_OPERANDS)
  1.8060 ++    as_fatal(_("operand table is incomplete"));
  1.8061 ++
  1.8062 ++  for (i = 0; i < AVR32_NR_OPERANDS; i++)
  1.8063 ++    if (avr32_operand_table[i].id != i)
  1.8064 ++      as_fatal(_("operand table inconsistency found at index %d\n"), i);
  1.8065 ++  pr_debug("%d operands verified\n", AVR32_NR_OPERANDS);
  1.8066 ++
  1.8067 ++  for (i = 0; i < AVR32_NR_IFIELDS; i++)
  1.8068 ++    if (avr32_ifield_table[i].id != i)
  1.8069 ++      as_fatal(_("ifield table inconsistency found at index %d\n"), i);
  1.8070 ++  pr_debug("%d instruction fields verified\n", AVR32_NR_IFIELDS);
  1.8071 ++
  1.8072 ++  for (i = 0; i < AVR32_NR_OPCODES; i++)
  1.8073 ++    {
  1.8074 ++      if (avr32_opc_table[i].id != i)
  1.8075 ++	as_fatal(_("opcode table inconsistency found at index %d\n"), i);
  1.8076 ++      if ((avr32_opc_table[i].var_field == -1
  1.8077 ++	   && avr32_relax_table[i].length != 0)
  1.8078 ++	  || (avr32_opc_table[i].var_field != -1
  1.8079 ++	      && avr32_relax_table[i].length == 0))
  1.8080 ++	as_fatal(_("relax table inconsistency found at index %d\n"), i);
  1.8081 ++    }
  1.8082 ++  pr_debug("%d opcodes verified\n", AVR32_NR_OPCODES);
  1.8083 ++
  1.8084 ++  for (i = 0; i < AVR32_NR_SYNTAX; i++)
  1.8085 ++    if (avr32_syntax_table[i].id != i)
  1.8086 ++      as_fatal(_("syntax table inconsistency found at index %d\n"), i);
  1.8087 ++  pr_debug("%d syntax variants verified\n", AVR32_NR_SYNTAX);
  1.8088 ++
  1.8089 ++  for (i = 0; i < AVR32_NR_ALIAS; i++)
  1.8090 ++    if (avr32_alias_table[i].id != i)
  1.8091 ++      as_fatal(_("alias table inconsistency found at index %d\n"), i);
  1.8092 ++  pr_debug("%d aliases verified\n", AVR32_NR_ALIAS);
  1.8093 ++
  1.8094 ++  for (i = 0; i < AVR32_NR_MNEMONICS; i++)
  1.8095 ++    if (avr32_mnemonic_table[i].id != i)
  1.8096 ++      as_fatal(_("mnemonic table inconsistency found at index %d\n"), i);
  1.8097 ++  pr_debug("%d mnemonics verified\n", AVR32_NR_MNEMONICS);
  1.8098 ++#endif
  1.8099 ++}
  1.8100 ++
  1.8101 ++void
  1.8102 ++md_assemble (char *str)
  1.8103 ++{
  1.8104 ++  struct avr32_mnemonic *mnemonic;
  1.8105 ++  char *p, c;
  1.8106 ++
  1.8107 ++  memset(&current_insn, 0, sizeof(current_insn));
  1.8108 ++  current_insn.immediate.X_op = O_constant;
  1.8109 ++
  1.8110 ++  skip_whitespace(str);
  1.8111 ++  for (p = str; *p; p++)
  1.8112 ++    if (*p == ' ')
  1.8113 ++      break;
  1.8114 ++  c = *p;
  1.8115 ++  *p = 0;
  1.8116 ++
  1.8117 ++  mnemonic = hash_find(avr32_mnemonic_htab, str);
  1.8118 ++  *p = c;
  1.8119 ++  if (c) p++;
  1.8120 ++
  1.8121 ++  if (mnemonic)
  1.8122 ++    {
  1.8123 ++      const struct avr32_syntax *syntax;
  1.8124 ++
  1.8125 ++      for (syntax = mnemonic->syntax; syntax; syntax = syntax->next)
  1.8126 ++	{
  1.8127 ++	  const char *errmsg = NULL;
  1.8128 ++
  1.8129 ++	  if (syntax_matches(syntax, p))
  1.8130 ++	    {
  1.8131 ++	      if (!(syntax->isa_flags & avr32_arch->isa_flags))
  1.8132 ++		{
  1.8133 ++		  as_bad(_("Selected architecture `%s'  does not support `%s'"),
  1.8134 ++			 avr32_arch->name, str);
  1.8135 ++		  return;
  1.8136 ++		}
  1.8137 ++
  1.8138 ++	      current_insn.syntax = syntax;
  1.8139 ++	      parse_operands(p);
  1.8140 ++
  1.8141 ++	      switch (syntax->type)
  1.8142 ++		{
  1.8143 ++		case AVR32_PARSER_NORMAL:
  1.8144 ++		  errmsg = finish_insn(syntax->u.opc);
  1.8145 ++		  break;
  1.8146 ++		case AVR32_PARSER_ALIAS:
  1.8147 ++		  errmsg = finish_alias(syntax->u.alias);
  1.8148 ++		  break;
  1.8149 ++		case AVR32_PARSER_LDA:
  1.8150 ++		  errmsg = finish_lda(syntax);
  1.8151 ++		  break;
  1.8152 ++		case AVR32_PARSER_CALL:
  1.8153 ++		  errmsg = finish_call(syntax);
  1.8154 ++		  break;
  1.8155 ++		default:
  1.8156 ++		  BAD_CASE(syntax->type);
  1.8157 ++		  break;
  1.8158 ++		}
  1.8159 ++
  1.8160 ++	      if (errmsg)
  1.8161 ++		as_bad("%s in `%s'", errmsg, str);
  1.8162 ++
  1.8163 ++	      return;
  1.8164 ++	    }
  1.8165 ++	}
  1.8166 ++
  1.8167 ++      as_bad(_("unrecognized form of instruction: `%s'"), str);
  1.8168 ++    }
  1.8169 ++  else
  1.8170 ++    as_bad(_("unrecognized instruction `%s'"), str);
  1.8171 ++}
  1.8172 ++
  1.8173 ++void avr32_cleanup(void)
  1.8174 ++{
  1.8175 ++  struct cpool *pool;
  1.8176 ++
  1.8177 ++  /* Emit any constant pools that haven't been explicitly flushed with
  1.8178 ++     a .cpool directive. */
  1.8179 ++  for (pool = cpool_list; pool; pool = pool->next)
  1.8180 ++    {
  1.8181 ++      subseg_set(pool->section, pool->sub_section);
  1.8182 ++      s_cpool(0);
  1.8183 ++    }
  1.8184 ++}
  1.8185 ++
  1.8186 ++/* Handle any PIC-related operands in data allocation pseudo-ops */
  1.8187 ++void
  1.8188 ++avr32_cons_fix_new (fragS *frag, int off, int size, expressionS *exp)
  1.8189 ++{
  1.8190 ++  bfd_reloc_code_real_type r_type = BFD_RELOC_UNUSED;
  1.8191 ++  int pcrel = 0;
  1.8192 ++
  1.8193 ++  pr_debug("%s:%u: cons_fix_new, add_sym: %s, op_sym: %s, op: %d, add_num: %d\n",
  1.8194 ++	   frag->fr_file, frag->fr_line,
  1.8195 ++	   exp->X_add_symbol?S_GET_NAME(exp->X_add_symbol):"(none)",
  1.8196 ++	   exp->X_op_symbol?S_GET_NAME(exp->X_op_symbol):"(none)",
  1.8197 ++	   exp->X_op, exp->X_add_number);
  1.8198 ++
  1.8199 ++  if (exp->X_op == O_subtract && exp->X_op_symbol)
  1.8200 ++    {
  1.8201 ++      if (exp->X_op_symbol == GOT_symbol)
  1.8202 ++	{
  1.8203 ++	  if (size != 4)
  1.8204 ++	    goto bad_size;
  1.8205 ++	  r_type = BFD_RELOC_AVR32_GOTPC;
  1.8206 ++	  exp->X_op = O_symbol;
  1.8207 ++	  exp->X_op_symbol = NULL;
  1.8208 ++	}
  1.8209 ++    }
  1.8210 ++  else if (exp->X_op == O_got)
  1.8211 ++    {
  1.8212 ++      switch (size)
  1.8213 ++	{
  1.8214 ++	case 1:
  1.8215 ++	  r_type = BFD_RELOC_AVR32_GOT8;
  1.8216 ++	  break;
  1.8217 ++	case 2:
  1.8218 ++	  r_type = BFD_RELOC_AVR32_GOT16;
  1.8219 ++	  break;
  1.8220 ++	case 4:
  1.8221 ++	  r_type = BFD_RELOC_AVR32_GOT32;
  1.8222 ++	  break;
  1.8223 ++	default:
  1.8224 ++	  goto bad_size;
  1.8225 ++	}
  1.8226 ++
  1.8227 ++      exp->X_op = O_symbol;
  1.8228 ++    }
  1.8229 ++
  1.8230 ++  if (r_type == BFD_RELOC_UNUSED)
  1.8231 ++    switch (size)
  1.8232 ++      {
  1.8233 ++      case 1:
  1.8234 ++	r_type = BFD_RELOC_8;
  1.8235 ++	break;
  1.8236 ++      case 2:
  1.8237 ++	r_type = BFD_RELOC_16;
  1.8238 ++	break;
  1.8239 ++      case 4:
  1.8240 ++	r_type = BFD_RELOC_32;
  1.8241 ++	break;
  1.8242 ++      default:
  1.8243 ++	goto bad_size;
  1.8244 ++      }
  1.8245 ++  else if (size != 4)
  1.8246 ++    {
  1.8247 ++    bad_size:
  1.8248 ++      as_bad(_("unsupported BFD relocation size %u"), size);
  1.8249 ++      r_type = BFD_RELOC_UNUSED;
  1.8250 ++    }
  1.8251 ++
  1.8252 ++  fix_new_exp (frag, off, size, exp, pcrel, r_type);
  1.8253 ++}
  1.8254 ++
  1.8255 ++static void
  1.8256 ++avr32_frob_section(bfd *abfd ATTRIBUTE_UNUSED, segT sec,
  1.8257 ++		   void *ignore ATTRIBUTE_UNUSED)
  1.8258 ++{
  1.8259 ++  segment_info_type *seginfo;
  1.8260 ++  fixS *fix;
  1.8261 ++
  1.8262 ++  seginfo = seg_info(sec);
  1.8263 ++  if (!seginfo)
  1.8264 ++    return;
  1.8265 ++
  1.8266 ++  for (fix = seginfo->fix_root; fix; fix = fix->fx_next)
  1.8267 ++    {
  1.8268 ++      if (fix->fx_done)
  1.8269 ++	continue;
  1.8270 ++
  1.8271 ++      if (fix->fx_r_type == BFD_RELOC_AVR32_SUB5
  1.8272 ++	  && fix->fx_addsy && fix->fx_subsy)
  1.8273 ++	{
  1.8274 ++	  if (S_GET_SEGMENT(fix->fx_addsy) != S_GET_SEGMENT(fix->fx_subsy)
  1.8275 ++	      || linkrelax)
  1.8276 ++	    {
  1.8277 ++	      symbolS *tmp;
  1.8278 ++#ifdef DEBUG
  1.8279 ++	      fprintf(stderr, "Swapping symbols in fixup:\n");
  1.8280 ++	      print_fixup(fix);
  1.8281 ++#endif
  1.8282 ++	      tmp = fix->fx_addsy;
  1.8283 ++	      fix->fx_addsy = fix->fx_subsy;
  1.8284 ++	      fix->fx_subsy = tmp;
  1.8285 ++	      fix->fx_offset = -fix->fx_offset;
  1.8286 ++	    }
  1.8287 ++	}
  1.8288 ++    }
  1.8289 ++}
  1.8290 ++
  1.8291 ++/* We need to look for SUB5 instructions with expressions that will be
  1.8292 ++   made PC-relative and switch fx_addsy with fx_subsy.  This has to be
  1.8293 ++   done before adjustment or the wrong symbol might be adjusted.
  1.8294 ++
  1.8295 ++   This applies to fixups that are a result of expressions like -(sym
  1.8296 ++   - .) and that will make it all the way to md_apply_fix3().  LDA
  1.8297 ++   does the right thing in convert_frag, so we must not convert
  1.8298 ++   those. */
  1.8299 ++void
  1.8300 ++avr32_frob_file(void)
  1.8301 ++{
  1.8302 ++  /* if (1 || !linkrelax)
  1.8303 ++     return; */
  1.8304 ++
  1.8305 ++  bfd_map_over_sections(stdoutput, avr32_frob_section, NULL);
  1.8306 ++}
  1.8307 ++
  1.8308 ++static bfd_boolean
  1.8309 ++convert_to_diff_reloc(fixS *fixP)
  1.8310 ++{
  1.8311 ++  switch (fixP->fx_r_type)
  1.8312 ++    {
  1.8313 ++    case BFD_RELOC_32:
  1.8314 ++      fixP->fx_r_type = BFD_RELOC_AVR32_DIFF32;
  1.8315 ++      break;
  1.8316 ++    case BFD_RELOC_16:
  1.8317 ++      fixP->fx_r_type = BFD_RELOC_AVR32_DIFF16;
  1.8318 ++      break;
  1.8319 ++    case BFD_RELOC_8:
  1.8320 ++      fixP->fx_r_type = BFD_RELOC_AVR32_DIFF8;
  1.8321 ++      break;
  1.8322 ++    default:
  1.8323 ++      return FALSE;
  1.8324 ++    }
  1.8325 ++
  1.8326 ++  return TRUE;
  1.8327 ++}
  1.8328 ++
  1.8329 ++/* Simplify a fixup.  If possible, the fixup is reduced to a single
  1.8330 ++   constant which is written to the output file.  Otherwise, a
  1.8331 ++   relocation is generated so that the linker can take care of the
  1.8332 ++   rest.
  1.8333 ++
  1.8334 ++   ELF relocations have certain constraints: They can only take a
  1.8335 ++   single symbol and a single addend.  This means that for difference
  1.8336 ++   expressions, we _must_ get rid of the fx_subsy symbol somehow.
  1.8337 ++
  1.8338 ++   The difference between two labels in the same section can be
  1.8339 ++   calculated directly unless 'linkrelax' is set, or a relocation is
  1.8340 ++   forced.  If so, we must emit a R_AVR32_DIFFxx relocation.  If there
  1.8341 ++   are addends involved at this point, we must be especially careful
  1.8342 ++   as the relocation must point exactly to the symbol being
  1.8343 ++   subtracted.
  1.8344 ++
  1.8345 ++   When subtracting a symbol defined in the same section as the fixup,
  1.8346 ++   we might be able to convert it to a PC-relative expression, unless
  1.8347 ++   linkrelax is set. If this is the case, there's no way we can make
  1.8348 ++   sure that the difference between the fixup and fx_subsy stays
  1.8349 ++   constant.  So for now, we're just going to disallow that.
  1.8350 ++   */
  1.8351 ++void
  1.8352 ++avr32_process_fixup(fixS *fixP, segT this_segment)
  1.8353 ++{
  1.8354 ++  segT add_symbol_segment = absolute_section;
  1.8355 ++  segT sub_symbol_segment = absolute_section;
  1.8356 ++  symbolS *fx_addsy, *fx_subsy;
  1.8357 ++  offsetT value = 0, fx_offset;
  1.8358 ++  bfd_boolean apply = FALSE;
  1.8359 ++
  1.8360 ++  assert(this_segment != absolute_section);
  1.8361 ++
  1.8362 ++  if (fixP->fx_r_type >= BFD_RELOC_UNUSED)
  1.8363 ++    {
  1.8364 ++      as_bad_where(fixP->fx_file, fixP->fx_line,
  1.8365 ++		   _("Bad relocation type %d\n"), fixP->fx_r_type);
  1.8366 ++      return;
  1.8367 ++    }
  1.8368 ++
  1.8369 ++  /* BFD_RELOC_AVR32_SUB5 fixups have been swapped by avr32_frob_section() */
  1.8370 ++  fx_addsy = fixP->fx_addsy;
  1.8371 ++  fx_subsy = fixP->fx_subsy;
  1.8372 ++  fx_offset = fixP->fx_offset;
  1.8373 ++
  1.8374 ++  if (fx_addsy)
  1.8375 ++    add_symbol_segment = S_GET_SEGMENT(fx_addsy);
  1.8376 ++
  1.8377 ++  if (fx_subsy)
  1.8378 ++    {
  1.8379 ++      resolve_symbol_value(fx_subsy);
  1.8380 ++      sub_symbol_segment = S_GET_SEGMENT(fx_subsy);
  1.8381 ++
  1.8382 ++      if (sub_symbol_segment == this_segment
  1.8383 ++	  && (!linkrelax
  1.8384 ++	      || S_GET_VALUE(fx_subsy) == (fixP->fx_frag->fr_address
  1.8385 ++					   + fixP->fx_where)))
  1.8386 ++	{
  1.8387 ++	  fixP->fx_pcrel = TRUE;
  1.8388 ++	  fx_offset += (fixP->fx_frag->fr_address + fixP->fx_where
  1.8389 ++			- S_GET_VALUE(fx_subsy));
  1.8390 ++	  fx_subsy = NULL;
  1.8391 ++	}
  1.8392 ++      else if (sub_symbol_segment == absolute_section)
  1.8393 ++	{
  1.8394 ++	  /* The symbol is really a constant.  */
  1.8395 ++	  fx_offset -= S_GET_VALUE(fx_subsy);
  1.8396 ++	  fx_subsy = NULL;
  1.8397 ++	}
  1.8398 ++      else if (SEG_NORMAL(add_symbol_segment)
  1.8399 ++	       && sub_symbol_segment == add_symbol_segment
  1.8400 ++	       && (!linkrelax || convert_to_diff_reloc(fixP)))
  1.8401 ++	{
  1.8402 ++	  /* Difference between two labels in the same section.  */
  1.8403 ++	  if (linkrelax)
  1.8404 ++	    {
  1.8405 ++	      /* convert_to_diff() has ensured that the reloc type is
  1.8406 ++		 either DIFF32, DIFF16 or DIFF8.  */
  1.8407 ++	      value = (S_GET_VALUE(fx_addsy) + fixP->fx_offset
  1.8408 ++		       - S_GET_VALUE(fx_subsy));
  1.8409 ++
  1.8410 ++	      /* Try to convert it to a section symbol if possible  */
  1.8411 ++	      if (!S_FORCE_RELOC(fx_addsy, 1)
  1.8412 ++		  && !(sub_symbol_segment->flags & SEC_THREAD_LOCAL))
  1.8413 ++		{
  1.8414 ++		  fx_offset = S_GET_VALUE(fx_subsy);
  1.8415 ++		  fx_addsy = section_symbol(sub_symbol_segment);
  1.8416 ++		}
  1.8417 ++	      else
  1.8418 ++		{
  1.8419 ++		  fx_addsy = fx_subsy;
  1.8420 ++		  fx_offset = 0;
  1.8421 ++		}
  1.8422 ++
  1.8423 ++	      fx_subsy = NULL;
  1.8424 ++	      apply = TRUE;
  1.8425 ++	    }
  1.8426 ++	  else
  1.8427 ++	    {
  1.8428 ++	      fx_offset += S_GET_VALUE(fx_addsy);
  1.8429 ++	      fx_offset -= S_GET_VALUE(fx_subsy);
  1.8430 ++	      fx_addsy = NULL;
  1.8431 ++	      fx_subsy = NULL;
  1.8432 ++	    }
  1.8433 ++	}
  1.8434 ++      else
  1.8435 ++	{
  1.8436 ++	  as_bad_where(fixP->fx_file, fixP->fx_line,
  1.8437 ++		       _("can't resolve `%s' {%s section} - `%s' {%s section}"),
  1.8438 ++		       fx_addsy ? S_GET_NAME (fx_addsy) : "0",
  1.8439 ++		       segment_name (add_symbol_segment),
  1.8440 ++		       S_GET_NAME (fx_subsy),
  1.8441 ++		       segment_name (sub_symbol_segment));
  1.8442 ++	  return;
  1.8443 ++	}
  1.8444 ++    }
  1.8445 ++
  1.8446 ++  if (fx_addsy && !TC_FORCE_RELOCATION(fixP))
  1.8447 ++    {
  1.8448 ++      if (add_symbol_segment == this_segment
  1.8449 ++	  && fixP->fx_pcrel)
  1.8450 ++	{
  1.8451 ++	  value += S_GET_VALUE(fx_addsy);
  1.8452 ++	  value -= md_pcrel_from_section(fixP, this_segment);
  1.8453 ++	  fx_addsy = NULL;
  1.8454 ++	  fixP->fx_pcrel = FALSE;
  1.8455 ++	}
  1.8456 ++      else if (add_symbol_segment == absolute_section)
  1.8457 ++	{
  1.8458 ++	  fx_offset += S_GET_VALUE(fixP->fx_addsy);
  1.8459 ++	  fx_addsy = NULL;
  1.8460 ++	}
  1.8461 ++    }
  1.8462 ++
  1.8463 ++  if (!fx_addsy)
  1.8464 ++    fixP->fx_done = TRUE;
  1.8465 ++
  1.8466 ++  if (fixP->fx_pcrel)
  1.8467 ++    {
  1.8468 ++      if (fx_addsy != NULL
  1.8469 ++	  && S_IS_DEFINED(fx_addsy)
  1.8470 ++	  && S_GET_SEGMENT(fx_addsy) != this_segment)
  1.8471 ++	value += md_pcrel_from_section(fixP, this_segment);
  1.8472 ++
  1.8473 ++      switch (fixP->fx_r_type)
  1.8474 ++	{
  1.8475 ++	case BFD_RELOC_32:
  1.8476 ++	  fixP->fx_r_type = BFD_RELOC_32_PCREL;
  1.8477 ++	  break;
  1.8478 ++	case BFD_RELOC_16:
  1.8479 ++	  fixP->fx_r_type = BFD_RELOC_16_PCREL;
  1.8480 ++	  break;
  1.8481 ++	case BFD_RELOC_8:
  1.8482 ++	  fixP->fx_r_type = BFD_RELOC_8_PCREL;
  1.8483 ++	  break;
  1.8484 ++	case BFD_RELOC_AVR32_SUB5:
  1.8485 ++	  fixP->fx_r_type = BFD_RELOC_AVR32_16N_PCREL;
  1.8486 ++	  break;
  1.8487 ++	case BFD_RELOC_AVR32_16S:
  1.8488 ++	  fixP->fx_r_type = BFD_RELOC_AVR32_16B_PCREL;
  1.8489 ++	  break;
  1.8490 ++	case BFD_RELOC_AVR32_14UW:
  1.8491 ++	  fixP->fx_r_type = BFD_RELOC_AVR32_14UW_PCREL;
  1.8492 ++	  break;
  1.8493 ++	case BFD_RELOC_AVR32_10UW:
  1.8494 ++	  fixP->fx_r_type = BFD_RELOC_AVR32_10UW_PCREL;
  1.8495 ++	  break;
  1.8496 ++	default:
  1.8497 ++	  /* Should have been taken care of already */
  1.8498 ++	  break;
  1.8499 ++	}
  1.8500 ++    }
  1.8501 ++
  1.8502 ++  if (fixP->fx_done || apply)
  1.8503 ++    {
  1.8504 ++      const struct avr32_ifield *ifield;
  1.8505 ++      char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
  1.8506 ++
  1.8507 ++      if (fixP->fx_done)
  1.8508 ++	value += fx_offset;
  1.8509 ++
  1.8510 ++      /* For hosts with longs bigger than 32-bits make sure that the top
  1.8511 ++         bits of a 32-bit negative value read in by the parser are set,
  1.8512 ++         so that the correct comparisons are made.  */
  1.8513 ++      if (value & 0x80000000)
  1.8514 ++        value |= (-1L << 31);
  1.8515 ++
  1.8516 ++      switch (fixP->fx_r_type)
  1.8517 ++	{
  1.8518 ++	case BFD_RELOC_32:
  1.8519 ++	case BFD_RELOC_16:
  1.8520 ++	case BFD_RELOC_8:
  1.8521 ++	case BFD_RELOC_AVR32_DIFF32:
  1.8522 ++	case BFD_RELOC_AVR32_DIFF16:
  1.8523 ++	case BFD_RELOC_AVR32_DIFF8:
  1.8524 ++	  md_number_to_chars(buf, value, fixP->fx_size);
  1.8525 ++	  break;
  1.8526 ++	case BFD_RELOC_HI16:
  1.8527 ++	  value >>= 16;
  1.8528 ++	case BFD_RELOC_LO16:
  1.8529 ++	  value &= 0xffff;
  1.8530 ++	  md_number_to_chars(buf + 2, value, 2);
  1.8531 ++	  break;
  1.8532 ++	case BFD_RELOC_AVR32_16N_PCREL:
  1.8533 ++	  value = -value;
  1.8534 ++	  /* fall through */
  1.8535 ++	case BFD_RELOC_AVR32_22H_PCREL:
  1.8536 ++	case BFD_RELOC_AVR32_18W_PCREL:
  1.8537 ++	case BFD_RELOC_AVR32_16B_PCREL:
  1.8538 ++	case BFD_RELOC_AVR32_11H_PCREL:
  1.8539 ++	case BFD_RELOC_AVR32_9H_PCREL:
  1.8540 ++	case BFD_RELOC_AVR32_9UW_PCREL:
  1.8541 ++	case BFD_RELOC_AVR32_3U:
  1.8542 ++	case BFD_RELOC_AVR32_4UH:
  1.8543 ++	case BFD_RELOC_AVR32_6UW:
  1.8544 ++	case BFD_RELOC_AVR32_6S:
  1.8545 ++	case BFD_RELOC_AVR32_7UW:
  1.8546 ++	case BFD_RELOC_AVR32_8S_EXT:
  1.8547 ++	case BFD_RELOC_AVR32_8S:
  1.8548 ++	case BFD_RELOC_AVR32_10UW:
  1.8549 ++	case BFD_RELOC_AVR32_10SW:
  1.8550 ++	case BFD_RELOC_AVR32_STHH_W:
  1.8551 ++	case BFD_RELOC_AVR32_14UW:
  1.8552 ++	case BFD_RELOC_AVR32_16S:
  1.8553 ++	case BFD_RELOC_AVR32_16U:
  1.8554 ++	case BFD_RELOC_AVR32_21S:
  1.8555 ++	case BFD_RELOC_AVR32_SUB5:
  1.8556 ++	case BFD_RELOC_AVR32_CPCALL:
  1.8557 ++	case BFD_RELOC_AVR32_16_CP:
  1.8558 ++	case BFD_RELOC_AVR32_9W_CP:
  1.8559 ++	case BFD_RELOC_AVR32_15S:
  1.8560 ++	  ifield = fixP->tc_fix_data.ifield;
  1.8561 ++	  pr_debug("insert field: %ld <= %ld <= %ld (align %u)\n",
  1.8562 ++		   fixP->tc_fix_data.min, value, fixP->tc_fix_data.max,
  1.8563 ++		   fixP->tc_fix_data.align);
  1.8564 ++	  if (value < fixP->tc_fix_data.min || value > fixP->tc_fix_data.max)
  1.8565 ++	    as_bad_where(fixP->fx_file, fixP->fx_line,
  1.8566 ++			 _("operand out of range (%ld not between %ld and %ld)"),
  1.8567 ++			 value, fixP->tc_fix_data.min, fixP->tc_fix_data.max);
  1.8568 ++	  if (value & ((1 << fixP->tc_fix_data.align) - 1))
  1.8569 ++	    as_bad_where(fixP->fx_file, fixP->fx_line,
  1.8570 ++			 _("misaligned operand (required alignment: %d)"),
  1.8571 ++			 1 << fixP->tc_fix_data.align);
  1.8572 ++	  ifield->insert(ifield, buf, value >> fixP->tc_fix_data.align);
  1.8573 ++	  break;
  1.8574 ++	case BFD_RELOC_AVR32_ALIGN:
  1.8575 ++	  /* Nothing to do */
  1.8576 ++	  fixP->fx_done = FALSE;
  1.8577 ++	  break;
  1.8578 ++	default:
  1.8579 ++	  as_fatal("reloc type %s not handled\n",
  1.8580 ++		   bfd_get_reloc_code_name(fixP->fx_r_type));
  1.8581 ++	}
  1.8582 ++    }
  1.8583 ++
  1.8584 ++  fixP->fx_addsy = fx_addsy;
  1.8585 ++  fixP->fx_subsy = fx_subsy;
  1.8586 ++  fixP->fx_offset = fx_offset;
  1.8587 ++
  1.8588 ++  if (!fixP->fx_done)
  1.8589 ++    {
  1.8590 ++      if (!fixP->fx_addsy)
  1.8591 ++	fixP->fx_addsy = abs_section_sym;
  1.8592 ++
  1.8593 ++      symbol_mark_used_in_reloc(fixP->fx_addsy);
  1.8594 ++      if (fixP->fx_subsy)
  1.8595 ++	abort();
  1.8596 ++    }
  1.8597 ++}
  1.8598 ++
  1.8599 ++#if 0
  1.8600 ++void
  1.8601 ++md_apply_fix3 (fixS *fixP, valueT *valP, segT seg)
  1.8602 ++{
  1.8603 ++  const struct avr32_ifield *ifield;
  1.8604 ++  offsetT	value = *valP;
  1.8605 ++  char		*buf = fixP->fx_where + fixP->fx_frag->fr_literal;
  1.8606 ++  bfd_boolean	apply;
  1.8607 ++
  1.8608 ++  pr_debug("%s:%u: apply_fix3: r_type=%d value=%lx offset=%lx\n",
  1.8609 ++	   fixP->fx_file, fixP->fx_line, fixP->fx_r_type, *valP,
  1.8610 ++	   fixP->fx_offset);
  1.8611 ++
  1.8612 ++  if (fixP->fx_r_type >= BFD_RELOC_UNUSED)
  1.8613 ++    {
  1.8614 ++      as_bad_where(fixP->fx_file, fixP->fx_line,
  1.8615 ++		   _("Bad relocation type %d\n"), fixP->fx_r_type);
  1.8616 ++      return;
  1.8617 ++    }
  1.8618 ++
  1.8619 ++  if (!fixP->fx_addsy && !fixP->fx_subsy)
  1.8620 ++    fixP->fx_done = 1;
  1.8621 ++
  1.8622 ++  if (fixP->fx_pcrel)
  1.8623 ++    {
  1.8624 ++      if (fixP->fx_addsy != NULL
  1.8625 ++	  && S_IS_DEFINED(fixP->fx_addsy)
  1.8626 ++	  && S_GET_SEGMENT(fixP->fx_addsy) != seg)
  1.8627 ++	value += md_pcrel_from_section(fixP, seg);
  1.8628 ++
  1.8629 ++      switch (fixP->fx_r_type)
  1.8630 ++	{
  1.8631 ++	case BFD_RELOC_32:
  1.8632 ++	  fixP->fx_r_type = BFD_RELOC_32_PCREL;
  1.8633 ++	  break;
  1.8634 ++	case BFD_RELOC_16:
  1.8635 ++	case BFD_RELOC_8:
  1.8636 ++	  as_bad_where (fixP->fx_file, fixP->fx_line,
  1.8637 ++			_("8- and 16-bit PC-relative relocations not supported"));
  1.8638 ++	  break;
  1.8639 ++	case BFD_RELOC_AVR32_SUB5:
  1.8640 ++	  fixP->fx_r_type = BFD_RELOC_AVR32_PCREL_SUB5;
  1.8641 ++	  break;
  1.8642 ++	case BFD_RELOC_AVR32_16S:
  1.8643 ++	  fixP->fx_r_type = BFD_RELOC_AVR32_16_PCREL;
  1.8644 ++	  break;
  1.8645 ++	default:
  1.8646 ++	  /* Should have been taken care of already */
  1.8647 ++	  break;
  1.8648 ++	}
  1.8649 ++    }
  1.8650 ++
  1.8651 ++  if (fixP->fx_r_type == BFD_RELOC_32
  1.8652 ++      && fixP->fx_subsy)
  1.8653 ++    {
  1.8654 ++      fixP->fx_r_type = BFD_RELOC_AVR32_DIFF32;
  1.8655 ++
  1.8656 ++      /* Offsets are only allowed if it's a result of adjusting a
  1.8657 ++	 local symbol into a section-relative offset.
  1.8658 ++	 tc_fix_adjustable() should prevent any adjustment if there
  1.8659 ++	 was an offset involved before.  */
  1.8660 ++      if (fixP->fx_offset && !symbol_section_p(fixP->fx_addsy))
  1.8661 ++	as_bad_where(fixP->fx_file, fixP->fx_line,
  1.8662 ++		     _("cannot represent symbol difference with an offset"));
  1.8663 ++
  1.8664 ++      value = (S_GET_VALUE(fixP->fx_addsy) + fixP->fx_offset
  1.8665 ++	       - S_GET_VALUE(fixP->fx_subsy));
  1.8666 ++
  1.8667 ++      /* The difference before any relaxing takes place is written
  1.8668 ++	 out, and the DIFF32 reloc identifies the address of the first
  1.8669 ++	 symbol (i.e. the on that's subtracted.)  */
  1.8670 ++      *valP = value;
  1.8671 ++      fixP->fx_offset -= value;
  1.8672 ++      fixP->fx_subsy = NULL;
  1.8673 ++
  1.8674 ++      md_number_to_chars(buf, value, fixP->fx_size);
  1.8675 ++    }
  1.8676 ++
  1.8677 ++  if (fixP->fx_done)
  1.8678 ++    {
  1.8679 ++      switch (fixP->fx_r_type)
  1.8680 ++	{
  1.8681 ++	case BFD_RELOC_8:
  1.8682 ++	case BFD_RELOC_16:
  1.8683 ++	case BFD_RELOC_32:
  1.8684 ++	  md_number_to_chars(buf, value, fixP->fx_size);
  1.8685 ++	  break;
  1.8686 ++	case BFD_RELOC_HI16:
  1.8687 ++	  value >>= 16;
  1.8688 ++	case BFD_RELOC_LO16:
  1.8689 ++	  value &= 0xffff;
  1.8690 ++	  *valP = value;
  1.8691 ++	  md_number_to_chars(buf + 2, value, 2);
  1.8692 ++	  break;
  1.8693 ++	case BFD_RELOC_AVR32_PCREL_SUB5:
  1.8694 ++	  value = -value;
  1.8695 ++	  /* fall through */
  1.8696 ++	case BFD_RELOC_AVR32_9_PCREL:
  1.8697 ++	case BFD_RELOC_AVR32_11_PCREL:
  1.8698 ++	case BFD_RELOC_AVR32_16_PCREL:
  1.8699 ++	case BFD_RELOC_AVR32_18_PCREL:
  1.8700 ++	case BFD_RELOC_AVR32_22_PCREL:
  1.8701 ++	case BFD_RELOC_AVR32_3U:
  1.8702 ++	case BFD_RELOC_AVR32_4UH:
  1.8703 ++	case BFD_RELOC_AVR32_6UW:
  1.8704 ++	case BFD_RELOC_AVR32_6S:
  1.8705 ++	case BFD_RELOC_AVR32_7UW:
  1.8706 ++	case BFD_RELOC_AVR32_8S:
  1.8707 ++	case BFD_RELOC_AVR32_10UW:
  1.8708 ++	case BFD_RELOC_AVR32_10SW:
  1.8709 ++	case BFD_RELOC_AVR32_14UW:
  1.8710 ++	case BFD_RELOC_AVR32_16S:
  1.8711 ++	case BFD_RELOC_AVR32_16U:
  1.8712 ++	case BFD_RELOC_AVR32_21S:
  1.8713 ++	case BFD_RELOC_AVR32_BRC1:
  1.8714 ++	case BFD_RELOC_AVR32_SUB5:
  1.8715 ++	case BFD_RELOC_AVR32_CPCALL:
  1.8716 ++	case BFD_RELOC_AVR32_16_CP:
  1.8717 ++	case BFD_RELOC_AVR32_9_CP:
  1.8718 ++	case BFD_RELOC_AVR32_15S:
  1.8719 ++	  ifield = fixP->tc_fix_data.ifield;
  1.8720 ++	  pr_debug("insert field: %ld <= %ld <= %ld (align %u)\n",
  1.8721 ++		   fixP->tc_fix_data.min, value, fixP->tc_fix_data.max,
  1.8722 ++		   fixP->tc_fix_data.align);
  1.8723 ++	  if (value < fixP->tc_fix_data.min || value > fixP->tc_fix_data.max)
  1.8724 ++	    as_bad_where(fixP->fx_file, fixP->fx_line,
  1.8725 ++			 _("operand out of range (%ld not between %ld and %ld)"),
  1.8726 ++			 value, fixP->tc_fix_data.min, fixP->tc_fix_data.max);
  1.8727 ++	  if (value & ((1 << fixP->tc_fix_data.align) - 1))
  1.8728 ++	    as_bad_where(fixP->fx_file, fixP->fx_line,
  1.8729 ++			 _("misaligned operand (required alignment: %d)"),
  1.8730 ++			 1 << fixP->tc_fix_data.align);
  1.8731 ++	  ifield->insert(ifield, buf, value >> fixP->tc_fix_data.align);
  1.8732 ++	  break;
  1.8733 ++	case BFD_RELOC_AVR32_ALIGN:
  1.8734 ++	  /* Nothing to do */
  1.8735 ++	  fixP->fx_done = FALSE;
  1.8736 ++	  break;
  1.8737 ++	default:
  1.8738 ++	  as_fatal("reloc type %s not handled\n",
  1.8739 ++		   bfd_get_reloc_code_name(fixP->fx_r_type));
  1.8740 ++	}
  1.8741 ++    }
  1.8742 ++}
  1.8743 ++#endif
  1.8744 ++
  1.8745 ++arelent *
  1.8746 ++tc_gen_reloc (asection *section ATTRIBUTE_UNUSED,
  1.8747 ++	      fixS *fixp)
  1.8748 ++{
  1.8749 ++  arelent *reloc;
  1.8750 ++  bfd_reloc_code_real_type code;
  1.8751 ++
  1.8752 ++  reloc = xmalloc (sizeof (arelent));
  1.8753 ++
  1.8754 ++  reloc->sym_ptr_ptr = xmalloc (sizeof (asymbol *));
  1.8755 ++  *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
  1.8756 ++  reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
  1.8757 ++  reloc->addend = fixp->fx_offset;
  1.8758 ++  code = fixp->fx_r_type;
  1.8759 ++
  1.8760 ++  reloc->howto = bfd_reloc_type_lookup (stdoutput, code);
  1.8761 ++
  1.8762 ++  if (reloc->howto == NULL)
  1.8763 ++    {
  1.8764 ++      as_bad_where (fixp->fx_file, fixp->fx_line,
  1.8765 ++		    _("cannot represent relocation %s in this object file format"),
  1.8766 ++		    bfd_get_reloc_code_name (code));
  1.8767 ++      return NULL;
  1.8768 ++    }
  1.8769 ++
  1.8770 ++  return reloc;
  1.8771 ++}
  1.8772 ++
  1.8773 ++bfd_boolean
  1.8774 ++avr32_force_reloc(fixS *fixP)
  1.8775 ++{
  1.8776 ++  if (linkrelax && fixP->fx_addsy
  1.8777 ++      && !(S_GET_SEGMENT(fixP->fx_addsy)->flags & SEC_DEBUGGING)
  1.8778 ++      && S_GET_SEGMENT(fixP->fx_addsy) != absolute_section)
  1.8779 ++    {
  1.8780 ++      pr_debug(stderr, "force reloc: addsy=%p, r_type=%d, sec=%s\n",
  1.8781 ++	       fixP->fx_addsy, fixP->fx_r_type, S_GET_SEGMENT(fixP->fx_addsy)->name);
  1.8782 ++      return 1;
  1.8783 ++    }
  1.8784 ++
  1.8785 ++  return generic_force_reloc(fixP);
  1.8786 ++}
  1.8787 ++
  1.8788 ++bfd_boolean
  1.8789 ++avr32_fix_adjustable(fixS *fixP)
  1.8790 ++{
  1.8791 ++  switch (fixP->fx_r_type)
  1.8792 ++    {
  1.8793 ++      /* GOT relocations can't have addends since BFD treats all
  1.8794 ++	 references to a given symbol the same. This means that we
  1.8795 ++	 must avoid section-relative references to local symbols when
  1.8796 ++	 dealing with these kinds of relocs */
  1.8797 ++    case BFD_RELOC_AVR32_GOT32:
  1.8798 ++    case BFD_RELOC_AVR32_GOT16:
  1.8799 ++    case BFD_RELOC_AVR32_GOT8:
  1.8800 ++    case BFD_RELOC_AVR32_GOT21S:
  1.8801 ++    case BFD_RELOC_AVR32_GOT18SW:
  1.8802 ++    case BFD_RELOC_AVR32_GOT16S:
  1.8803 ++    case BFD_RELOC_AVR32_LDA_GOT:
  1.8804 ++    case BFD_RELOC_AVR32_GOTCALL:
  1.8805 ++      pr_debug("fix not adjustable\n");
  1.8806 ++      return 0;
  1.8807 ++
  1.8808 ++    default:
  1.8809 ++      break;
  1.8810 ++    }
  1.8811 ++
  1.8812 ++  return 1;
  1.8813 ++}
  1.8814 ++
  1.8815 ++/* When we want the linker to be able to relax the code, we need to
  1.8816 ++   output a reloc for every .align directive requesting an alignment
  1.8817 ++   to a four byte boundary or larger.  If we don't do this, the linker
  1.8818 ++   can't guarantee that the alignment is actually maintained in the
  1.8819 ++   linker output.
  1.8820 ++
  1.8821 ++   TODO: Might as well insert proper NOPs while we're at it... */
  1.8822 ++void
  1.8823 ++avr32_handle_align(fragS *frag)
  1.8824 ++{
  1.8825 ++  if (linkrelax
  1.8826 ++      && frag->fr_type == rs_align_code
  1.8827 ++      && frag->fr_address + frag->fr_fix > 0
  1.8828 ++      && frag->fr_offset > 0)
  1.8829 ++    {
  1.8830 ++      /* The alignment order (fr_offset) is stored in the addend. */
  1.8831 ++      fix_new(frag, frag->fr_fix, 2, &abs_symbol, frag->fr_offset,
  1.8832 ++	      FALSE, BFD_RELOC_AVR32_ALIGN);
  1.8833 ++    }
  1.8834 ++}
  1.8835 ++
  1.8836 ++/* Relax_align. Advance location counter to next address that has 'alignment'
  1.8837 ++   lowest order bits all 0s, return size of adjustment made.  */
  1.8838 ++relax_addressT
  1.8839 ++avr32_relax_align(segT segment ATTRIBUTE_UNUSED,
  1.8840 ++		  fragS *fragP,
  1.8841 ++		  relax_addressT address)
  1.8842 ++{
  1.8843 ++  relax_addressT mask;
  1.8844 ++  relax_addressT new_address;
  1.8845 ++  int alignment;
  1.8846 ++
  1.8847 ++  alignment = fragP->fr_offset;
  1.8848 ++  mask = ~((~0) << alignment);
  1.8849 ++  new_address = (address + mask) & (~mask);
  1.8850 ++
  1.8851 ++  return new_address - address;
  1.8852 ++}
  1.8853 ++
  1.8854 ++/* Turn a string in input_line_pointer into a floating point constant
  1.8855 ++   of type type, and store the appropriate bytes in *litP.  The number
  1.8856 ++   of LITTLENUMS emitted is stored in *sizeP .  An error message is
  1.8857 ++   returned, or NULL on OK. */
  1.8858 ++
  1.8859 ++/* Equal to MAX_PRECISION in atof-ieee.c */
  1.8860 ++#define MAX_LITTLENUMS 6
  1.8861 ++
  1.8862 ++char *
  1.8863 ++md_atof (type, litP, sizeP)
  1.8864 ++char   type;
  1.8865 ++char * litP;
  1.8866 ++int *  sizeP;
  1.8867 ++{
  1.8868 ++  int              i;
  1.8869 ++  int              prec;
  1.8870 ++  LITTLENUM_TYPE   words [MAX_LITTLENUMS];
  1.8871 ++  char *           t;
  1.8872 ++
  1.8873 ++  switch (type)
  1.8874 ++  {
  1.8875 ++    case 'f':
  1.8876 ++    case 'F':
  1.8877 ++    case 's':
  1.8878 ++    case 'S':
  1.8879 ++      prec = 2;
  1.8880 ++      break;
  1.8881 ++
  1.8882 ++    case 'd':
  1.8883 ++    case 'D':
  1.8884 ++    case 'r':
  1.8885 ++    case 'R':
  1.8886 ++      prec = 4;
  1.8887 ++      break;
  1.8888 ++
  1.8889 ++      /* FIXME: Some targets allow other format chars for bigger sizes here.  */
  1.8890 ++
  1.8891 ++    default:
  1.8892 ++      * sizeP = 0;
  1.8893 ++      return _("Bad call to md_atof()");
  1.8894 ++  }
  1.8895 ++
  1.8896 ++  t = atof_ieee (input_line_pointer, type, words);
  1.8897 ++  if (t)
  1.8898 ++    input_line_pointer = t;
  1.8899 ++  * sizeP = prec * sizeof (LITTLENUM_TYPE);
  1.8900 ++
  1.8901 ++  for (i = 0; i < prec; i++)
  1.8902 ++  {
  1.8903 ++    md_number_to_chars (litP, (valueT) words[i],
  1.8904 ++                        sizeof (LITTLENUM_TYPE));
  1.8905 ++    litP += sizeof (LITTLENUM_TYPE);
  1.8906 ++  }
  1.8907 ++
  1.8908 ++  return 0;
  1.8909 ++}
  1.8910 ++
  1.8911 ++static char *avr32_end_of_match(char *cont, char *what)
  1.8912 ++{
  1.8913 ++  int len = strlen (what);
  1.8914 ++
  1.8915 ++  if (! is_part_of_name (cont[len])
  1.8916 ++      && strncasecmp (cont, what, len) == 0)
  1.8917 ++    return cont + len;
  1.8918 ++
  1.8919 ++  return NULL;
  1.8920 ++}
  1.8921 ++
  1.8922 ++int
  1.8923 ++avr32_parse_name (char const *name, expressionS *exp, char *nextchar)
  1.8924 ++{
  1.8925 ++  char *next = input_line_pointer;
  1.8926 ++  char *next_end;
  1.8927 ++
  1.8928 ++  pr_debug("parse_name: %s, nextchar=%c (%02x)\n", name, *nextchar, *nextchar);
  1.8929 ++
  1.8930 ++  if (*nextchar == '(')
  1.8931 ++    {
  1.8932 ++      if (strcasecmp(name, "hi") == 0)
  1.8933 ++	{
  1.8934 ++	  *next = *nextchar;
  1.8935 ++
  1.8936 ++	  expression(exp);
  1.8937 ++
  1.8938 ++	  if (exp->X_op == O_constant)
  1.8939 ++	    {
  1.8940 ++	      pr_debug("  -> constant hi(0x%08lx) -> 0x%04lx\n",
  1.8941 ++		       exp->X_add_number, exp->X_add_number >> 16);
  1.8942 ++	      exp->X_add_number = (exp->X_add_number >> 16) & 0xffff;
  1.8943 ++	    }
  1.8944 ++	  else
  1.8945 ++	    {
  1.8946 ++	      exp->X_md = exp->X_op;
  1.8947 ++	      exp->X_op = O_hi;
  1.8948 ++	    }
  1.8949 ++
  1.8950 ++	  return 1;
  1.8951 ++	}
  1.8952 ++      else if (strcasecmp(name, "lo") == 0)
  1.8953 ++	{
  1.8954 ++	  *next = *nextchar;
  1.8955 ++
  1.8956 ++	  expression(exp);
  1.8957 ++
  1.8958 ++	  if (exp->X_op == O_constant)
  1.8959 ++	    exp->X_add_number &= 0xffff;
  1.8960 ++	  else
  1.8961 ++	    {
  1.8962 ++	      exp->X_md = exp->X_op;
  1.8963 ++	      exp->X_op = O_lo;
  1.8964 ++	    }
  1.8965 ++
  1.8966 ++	  return 1;
  1.8967 ++	}
  1.8968 ++    }
  1.8969 ++  else if (*nextchar == '@')
  1.8970 ++    {
  1.8971 ++      exp->X_md = exp->X_op;
  1.8972 ++
  1.8973 ++      if ((next_end = avr32_end_of_match (next + 1, "got")))
  1.8974 ++	exp->X_op = O_got;
  1.8975 ++      else if ((next_end = avr32_end_of_match (next + 1, "tlsgd")))
  1.8976 ++	exp->X_op = O_tlsgd;
  1.8977 ++      /* Add more as needed */
  1.8978 ++      else
  1.8979 ++	{
  1.8980 ++	  char c;
  1.8981 ++	  input_line_pointer++;
  1.8982 ++	  c = get_symbol_end();
  1.8983 ++	  as_bad (_("unknown relocation override `%s'"), next + 1);
  1.8984 ++	  *input_line_pointer = c;
  1.8985 ++	  input_line_pointer = next;
  1.8986 ++	  return 0;
  1.8987 ++	}
  1.8988 ++
  1.8989 ++      exp->X_op_symbol = NULL;
  1.8990 ++      exp->X_add_symbol = symbol_find_or_make (name);
  1.8991 ++      exp->X_add_number = 0;
  1.8992 ++
  1.8993 ++      *input_line_pointer = *nextchar;
  1.8994 ++      input_line_pointer = next_end;
  1.8995 ++      *nextchar = *input_line_pointer;
  1.8996 ++      *input_line_pointer = '\0';
  1.8997 ++      return 1;
  1.8998 ++    }
  1.8999 ++  else if (strcmp (name, "_GLOBAL_OFFSET_TABLE_") == 0)
  1.9000 ++    {
  1.9001 ++      if (!GOT_symbol)
  1.9002 ++	GOT_symbol = symbol_find_or_make(name);
  1.9003 ++
  1.9004 ++      exp->X_add_symbol = GOT_symbol;
  1.9005 ++      exp->X_op = O_symbol;
  1.9006 ++      exp->X_add_number = 0;
  1.9007 ++      return 1;
  1.9008 ++    }
  1.9009 ++
  1.9010 ++  return 0;
  1.9011 ++}
  1.9012 ++
  1.9013 ++static void
  1.9014 ++s_rseg (int value ATTRIBUTE_UNUSED)
  1.9015 ++{
  1.9016 ++  /* Syntax: RSEG segment_name [:type] [NOROOT|ROOT] [(align)]
  1.9017 ++   * Defaults:
  1.9018 ++   *  - type: undocumented ("typically CODE or DATA")
  1.9019 ++   *  - ROOT
  1.9020 ++   *  - align: 1 for code, 0 for others
  1.9021 ++   *
  1.9022 ++   * TODO: NOROOT is ignored. If gas supports discardable segments, it should
  1.9023 ++   * be implemented.
  1.9024 ++   */
  1.9025 ++  char *name, *end;
  1.9026 ++  int length, type, attr;
  1.9027 ++  int align = 0;
  1.9028 ++
  1.9029 ++  SKIP_WHITESPACE();
  1.9030 ++
  1.9031 ++  end = input_line_pointer;
  1.9032 ++  while (0 == strchr ("\n\t;:( ", *end))
  1.9033 ++    end++;
  1.9034 ++  if (end == input_line_pointer)
  1.9035 ++    {
  1.9036 ++      as_warn (_("missing name"));
  1.9037 ++      ignore_rest_of_line();
  1.9038 ++      return;
  1.9039 ++    }
  1.9040 ++
  1.9041 ++  name = xmalloc (end - input_line_pointer + 1);
  1.9042 ++  memcpy (name, input_line_pointer, end - input_line_pointer);
  1.9043 ++  name[end - input_line_pointer] = '\0';
  1.9044 ++  input_line_pointer = end;
  1.9045 ++
  1.9046 ++  SKIP_WHITESPACE();
  1.9047 ++
  1.9048 ++  type = SHT_NULL;
  1.9049 ++  attr = 0;
  1.9050 ++
  1.9051 ++  if (*input_line_pointer == ':')
  1.9052 ++    {
  1.9053 ++      /* Skip the colon */
  1.9054 ++      ++input_line_pointer;
  1.9055 ++      SKIP_WHITESPACE();
  1.9056 ++
  1.9057 ++      /* Possible options at this point:
  1.9058 ++       *   - flag (ROOT or NOROOT)
  1.9059 ++       *   - a segment type
  1.9060 ++       */
  1.9061 ++      end = input_line_pointer;
  1.9062 ++      while (0 == strchr ("\n\t;:( ", *end))
  1.9063 ++	end++;
  1.9064 ++      length = end - input_line_pointer;
  1.9065 ++      if (((length == 4) && (0 == strncasecmp( input_line_pointer, "ROOT", 4))) ||
  1.9066 ++	  ((length == 6) && (0 == strncasecmp( input_line_pointer, "NOROOT", 6))))
  1.9067 ++	{
  1.9068 ++	  /* Ignore ROOT/NOROOT */
  1.9069 ++	  input_line_pointer = end;
  1.9070 ++	}
  1.9071 ++      else
  1.9072 ++	{
  1.9073 ++	  /* Must be a segment type */
  1.9074 ++	  switch (*input_line_pointer)
  1.9075 ++	    {
  1.9076 ++	    case 'C':
  1.9077 ++	    case 'c':
  1.9078 ++	      if ((length == 4) &&
  1.9079 ++		  (0 == strncasecmp (input_line_pointer, "CODE", 4)))
  1.9080 ++		{
  1.9081 ++		  attr |= SHF_ALLOC | SHF_EXECINSTR;
  1.9082 ++		  type = SHT_PROGBITS;
  1.9083 ++		  align = 1;
  1.9084 ++		  break;
  1.9085 ++		}
  1.9086 ++	      if ((length == 5) &&
  1.9087 ++		  (0 == strncasecmp (input_line_pointer, "CONST", 5)))
  1.9088 ++		{
  1.9089 ++		  attr |= SHF_ALLOC;
  1.9090 ++		  type = SHT_PROGBITS;
  1.9091 ++		  break;
  1.9092 ++		}
  1.9093 ++	      goto de_fault;
  1.9094 ++
  1.9095 ++	    case 'D':
  1.9096 ++	    case 'd':
  1.9097 ++	      if ((length == 4) &&
  1.9098 ++		  (0 == strncasecmp (input_line_pointer, "DATA", 4)))
  1.9099 ++		{
  1.9100 ++		  attr |= SHF_ALLOC | SHF_WRITE;
  1.9101 ++		  type = SHT_PROGBITS;
  1.9102 ++		  break;
  1.9103 ++		}
  1.9104 ++	      goto de_fault;
  1.9105 ++
  1.9106 ++	      /* TODO: Add FAR*, HUGE*, IDATA and NEAR* if necessary */
  1.9107 ++
  1.9108 ++	    case 'U':
  1.9109 ++	    case 'u':
  1.9110 ++	      if ((length == 7) &&
  1.9111 ++		  (0 == strncasecmp (input_line_pointer, "UNTYPED", 7)))
  1.9112 ++		break;
  1.9113 ++	      goto de_fault;
  1.9114 ++
  1.9115 ++	      /* TODO: Add XDATA and ZPAGE if necessary */
  1.9116 ++
  1.9117 ++	    de_fault:
  1.9118 ++	    default:
  1.9119 ++	      as_warn (_("unrecognized segment type"));
  1.9120 ++	    }
  1.9121 ++
  1.9122 ++	  input_line_pointer = end;
  1.9123 ++	  SKIP_WHITESPACE();
  1.9124 ++
  1.9125 ++	  if (*input_line_pointer == ':')
  1.9126 ++	    {
  1.9127 ++	      /*  ROOT/NOROOT */
  1.9128 ++	      ++input_line_pointer;
  1.9129 ++	      SKIP_WHITESPACE();
  1.9130 ++
  1.9131 ++	      end = input_line_pointer;
  1.9132 ++	      while (0 == strchr ("\n\t;:( ", *end))
  1.9133 ++		end++;
  1.9134 ++	      length = end - input_line_pointer;
  1.9135 ++	      if (! ((length == 4) &&
  1.9136 ++		     (0 == strncasecmp( input_line_pointer, "ROOT", 4))) &&
  1.9137 ++		  ! ((length == 6) &&
  1.9138 ++		     (0 == strncasecmp( input_line_pointer, "NOROOT", 6))))
  1.9139 ++		{
  1.9140 ++		  as_warn (_("unrecognized segment flag"));
  1.9141 ++		}
  1.9142 ++
  1.9143 ++	      input_line_pointer = end;
  1.9144 ++	      SKIP_WHITESPACE();
  1.9145 ++	    }
  1.9146 ++	}
  1.9147 ++    }
  1.9148 ++
  1.9149 ++  if (*input_line_pointer == '(')
  1.9150 ++    {
  1.9151 ++      align = get_absolute_expression ();
  1.9152 ++    }
  1.9153 ++
  1.9154 ++  demand_empty_rest_of_line();
  1.9155 ++
  1.9156 ++  obj_elf_change_section (name, type, attr, 0, NULL, 0, 0);
  1.9157 ++#ifdef AVR32_DEBUG
  1.9158 ++  fprintf( stderr, "RSEG: Changed section to %s, type: 0x%x, attr: 0x%x\n",
  1.9159 ++      name, type, attr );
  1.9160 ++  fprintf( stderr, "RSEG: Aligning to 2**%d\n", align );
  1.9161 ++#endif
  1.9162 ++
  1.9163 ++  if (align > 15)
  1.9164 ++    {
  1.9165 ++      align = 15;
  1.9166 ++      as_warn (_("alignment too large: %u assumed"), align);
  1.9167 ++    }
  1.9168 ++
  1.9169 ++  /* Hope not, that is */
  1.9170 ++  assert (now_seg != absolute_section);
  1.9171 ++
  1.9172 ++  /* Only make a frag if we HAVE to... */
  1.9173 ++  if (align != 0 && !need_pass_2)
  1.9174 ++    {
  1.9175 ++      if (subseg_text_p (now_seg))
  1.9176 ++	frag_align_code (align, 0);
  1.9177 ++      else
  1.9178 ++	frag_align (align, 0, 0);
  1.9179 ++    }
  1.9180 ++
  1.9181 ++  record_alignment (now_seg, align - OCTETS_PER_BYTE_POWER);
  1.9182 ++}
  1.9183 ++
  1.9184 ++/* vim: syntax=c sw=2
  1.9185 ++ */
  1.9186 +--- /dev/null
  1.9187 ++++ b/gas/config/tc-avr32.h
  1.9188 +@@ -0,0 +1,325 @@
  1.9189 ++/* Assembler definitions for AVR32.
  1.9190 ++   Copyright 2003-2006 Atmel Corporation.
  1.9191 ++
  1.9192 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
  1.9193 ++
  1.9194 ++   This file is part of GAS, the GNU Assembler.
  1.9195 ++
  1.9196 ++   GAS is free software; you can redistribute it and/or modify it
  1.9197 ++   under the terms of the GNU General Public License as published by
  1.9198 ++   the Free Software Foundation; either version 2, or (at your option)
  1.9199 ++   any later version.
  1.9200 ++
  1.9201 ++   GAS is distributed in the hope that it will be useful, but WITHOUT
  1.9202 ++   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  1.9203 ++   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
  1.9204 ++   License for more details.
  1.9205 ++
  1.9206 ++   You should have received a copy of the GNU General Public License
  1.9207 ++   along with GAS; see the file COPYING.  If not, write to the Free
  1.9208 ++   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
  1.9209 ++   02111-1307, USA.  */
  1.9210 ++
  1.9211 ++#if 0
  1.9212 ++#define DEBUG
  1.9213 ++#define DEBUG1
  1.9214 ++#define DEBUG2
  1.9215 ++#define DEBUG3
  1.9216 ++#define DEBUG4
  1.9217 ++#define DEBUG5
  1.9218 ++#endif
  1.9219 ++
  1.9220 ++/* Are we trying to be compatible with the IAR assembler? (--iar) */
  1.9221 ++extern int avr32_iarcompat;
  1.9222 ++
  1.9223 ++/* By convention, you should define this macro in the `.h' file.  For
  1.9224 ++   example, `tc-m68k.h' defines `TC_M68K'.  You might have to use this
  1.9225 ++   if it is necessary to add CPU specific code to the object format
  1.9226 ++   file.  */
  1.9227 ++#define TC_AVR32
  1.9228 ++
  1.9229 ++/* This macro is the BFD target name to use when creating the output
  1.9230 ++   file.  This will normally depend upon the `OBJ_FMT' macro.  */
  1.9231 ++#define TARGET_FORMAT "elf32-avr32"
  1.9232 ++
  1.9233 ++/* This macro is the BFD architecture to pass to `bfd_set_arch_mach'.  */
  1.9234 ++#define TARGET_ARCH bfd_arch_avr32
  1.9235 ++
  1.9236 ++/* This macro is the BFD machine number to pass to
  1.9237 ++   `bfd_set_arch_mach'.  If it is not defined, GAS will use 0.  */
  1.9238 ++#define TARGET_MACH 0
  1.9239 ++
  1.9240 ++/* UNDOCUMENTED: Allow //-style comments */
  1.9241 ++#define DOUBLESLASH_LINE_COMMENTS
  1.9242 ++
  1.9243 ++/* You should define this macro to be non-zero if the target is big
  1.9244 ++   endian, and zero if the target is little endian.  */
  1.9245 ++#define TARGET_BYTES_BIG_ENDIAN 1
  1.9246 ++
  1.9247 ++/* FIXME: It seems that GAS only expects a one-byte opcode...
  1.9248 ++   #define NOP_OPCODE 0xd703 */
  1.9249 ++
  1.9250 ++/* If you define this macro, GAS will warn about the use of
  1.9251 ++   nonstandard escape sequences in a string.  */
  1.9252 ++#undef ONLY_STANDARD_ESCAPES
  1.9253 ++
  1.9254 ++#define DWARF2_FORMAT() dwarf2_format_32bit
  1.9255 ++
  1.9256 ++/* Instructions are either 2 or 4 bytes long */
  1.9257 ++/* #define DWARF2_LINE_MIN_INSN_LENGTH 2 */
  1.9258 ++
  1.9259 ++/* GAS will call this function for any expression that can not be
  1.9260 ++   recognized.  When the function is called, `input_line_pointer'
  1.9261 ++   will point to the start of the expression.  */
  1.9262 ++#define md_operand(x)
  1.9263 ++
  1.9264 ++#define md_parse_name(name, expr, mode, c) avr32_parse_name(name, expr, c)
  1.9265 ++extern int avr32_parse_name(const char *, struct expressionS *, char *);
  1.9266 ++
  1.9267 ++/* You may define this macro to generate a fixup for a data
  1.9268 ++   allocation pseudo-op.  */
  1.9269 ++#define TC_CONS_FIX_NEW(FRAG, OFF, LEN, EXP)	\
  1.9270 ++  avr32_cons_fix_new(FRAG, OFF, LEN, EXP)
  1.9271 ++void avr32_cons_fix_new (fragS *, int, int, expressionS *);
  1.9272 ++
  1.9273 ++/* `extsym - .' expressions can be emitted using PC-relative relocs */
  1.9274 ++#define DIFF_EXPR_OK
  1.9275 ++
  1.9276 ++/* This is used to construct expressions out of @gotoff, etc. The
  1.9277 ++   relocation type is stored in X_md */
  1.9278 ++#define O_got		O_md1
  1.9279 ++#define O_hi		O_md2
  1.9280 ++#define O_lo		O_md3
  1.9281 ++#define O_tlsgd		O_md4
  1.9282 ++
  1.9283 ++/* You may define this macro to parse an expression used in a data
  1.9284 ++   allocation pseudo-op such as `.word'.  You can use this to
  1.9285 ++   recognize relocation directives that may appear in such directives.  */
  1.9286 ++/* #define TC_PARSE_CONS_EXPRESSION(EXPR,N) avr_parse_cons_expression (EXPR,N)
  1.9287 ++   void avr_parse_cons_expression (expressionS *exp, int nbytes); */
  1.9288 ++
  1.9289 ++/* This should just call either `number_to_chars_bigendian' or
  1.9290 ++   `number_to_chars_littleendian', whichever is appropriate.  On
  1.9291 ++   targets like the MIPS which support options to change the
  1.9292 ++   endianness, which function to call is a runtime decision.  On
  1.9293 ++   other targets, `md_number_to_chars' can be a simple macro.  */
  1.9294 ++#define md_number_to_chars number_to_chars_bigendian
  1.9295 ++
  1.9296 ++/* `md_short_jump_size'
  1.9297 ++   `md_long_jump_size'
  1.9298 ++   `md_create_short_jump'
  1.9299 ++   `md_create_long_jump'
  1.9300 ++   If `WORKING_DOT_WORD' is defined, GAS will not do broken word
  1.9301 ++   processing (*note Broken words::.).  Otherwise, you should set
  1.9302 ++   `md_short_jump_size' to the size of a short jump (a jump that is
  1.9303 ++   just long enough to jump around a long jmp) and
  1.9304 ++   `md_long_jump_size' to the size of a long jump (a jump that can go
  1.9305 ++   anywhere in the function), You should define
  1.9306 ++   `md_create_short_jump' to create a short jump around a long jump,
  1.9307 ++   and define `md_create_long_jump' to create a long jump.  */
  1.9308 ++#define WORKING_DOT_WORD
  1.9309 ++
  1.9310 ++/* If you define this macro, it means that `tc_gen_reloc' may return
  1.9311 ++   multiple relocation entries for a single fixup.  In this case, the
  1.9312 ++   return value of `tc_gen_reloc' is a pointer to a null terminated
  1.9313 ++   array.  */
  1.9314 ++#undef RELOC_EXPANSION_POSSIBLE
  1.9315 ++
  1.9316 ++/* If you define this macro, GAS will not require pseudo-ops to start with a .
  1.9317 ++   character. */
  1.9318 ++#define NO_PSEUDO_DOT (avr32_iarcompat)
  1.9319 ++
  1.9320 ++/* The IAR assembler uses $ as the location counter. Unfortunately, we
  1.9321 ++   can't make this dependent on avr32_iarcompat... */
  1.9322 ++#define DOLLAR_DOT
  1.9323 ++
  1.9324 ++/* Values passed to md_apply_fix3 don't include the symbol value.  */
  1.9325 ++#define MD_APPLY_SYM_VALUE(FIX) 0
  1.9326 ++
  1.9327 ++/* The number of bytes to put into a word in a listing.  This affects
  1.9328 ++   the way the bytes are clumped together in the listing.  For
  1.9329 ++   example, a value of 2 might print `1234 5678' where a value of 1
  1.9330 ++   would print `12 34 56 78'.  The default value is 4.  */
  1.9331 ++#define LISTING_WORD_SIZE 4
  1.9332 ++
  1.9333 ++/* extern const struct relax_type md_relax_table[];
  1.9334 ++#define TC_GENERIC_RELAX_TABLE md_relax_table */
  1.9335 ++
  1.9336 ++/*
  1.9337 ++  An `.lcomm' directive with no explicit alignment parameter will use
  1.9338 ++  this macro to set P2VAR to the alignment that a request for SIZE
  1.9339 ++  bytes will have.  The alignment is expressed as a power of two.  If
  1.9340 ++  no alignment should take place, the macro definition should do
  1.9341 ++  nothing.  Some targets define a `.bss' directive that is also
  1.9342 ++  affected by this macro.  The default definition will set P2VAR to
  1.9343 ++  the truncated power of two of sizes up to eight bytes.
  1.9344 ++
  1.9345 ++  We want doublewords to be word-aligned, so we're going to modify the
  1.9346 ++  default definition a tiny bit.
  1.9347 ++*/
  1.9348 ++#define TC_IMPLICIT_LCOMM_ALIGNMENT(SIZE, P2VAR)	\
  1.9349 ++  do							\
  1.9350 ++    {							\
  1.9351 ++      if ((SIZE) >= 4)					\
  1.9352 ++	(P2VAR) = 2;					\
  1.9353 ++      else if ((SIZE) >= 2)				\
  1.9354 ++	(P2VAR) = 1;					\
  1.9355 ++      else						\
  1.9356 ++	(P2VAR) = 0;					\
  1.9357 ++    }							\
  1.9358 ++  while (0)
  1.9359 ++
  1.9360 ++/* When relaxing, we need to generate relocations for alignment
  1.9361 ++   directives.  */
  1.9362 ++#define HANDLE_ALIGN(frag) avr32_handle_align(frag)
  1.9363 ++extern void avr32_handle_align(fragS *);
  1.9364 ++
  1.9365 ++/* See internals doc for explanation. Oh wait...
  1.9366 ++   Now, can you guess where "alignment" comes from? ;-) */
  1.9367 ++#define MAX_MEM_FOR_RS_ALIGN_CODE ((1 << alignment) - 1)
  1.9368 ++
  1.9369 ++/* We need to stop gas from reducing certain expressions (e.g. GOT
  1.9370 ++   references) */
  1.9371 ++#define tc_fix_adjustable(fix) avr32_fix_adjustable(fix)
  1.9372 ++extern bfd_boolean avr32_fix_adjustable(struct fix *);
  1.9373 ++
  1.9374 ++/* The linker needs to be passed a little more information when relaxing. */
  1.9375 ++#define TC_FORCE_RELOCATION(fix) avr32_force_reloc(fix)
  1.9376 ++extern bfd_boolean avr32_force_reloc(struct fix *);
  1.9377 ++
  1.9378 ++/* I'm tired of working around all the madness in fixup_segment().
  1.9379 ++   This hook will do basically the same things as the generic code,
  1.9380 ++   and then it will "goto" right past it.  */
  1.9381 ++#define TC_VALIDATE_FIX(FIX, SEG, SKIP)		\
  1.9382 ++  do						\
  1.9383 ++    {						\
  1.9384 ++      avr32_process_fixup(FIX, SEG);		\
  1.9385 ++      if (!(FIX)->fx_done)			\
  1.9386 ++	++seg_reloc_count;			\
  1.9387 ++      goto SKIP;				\
  1.9388 ++    }						\
  1.9389 ++  while (0)
  1.9390 ++extern void avr32_process_fixup(struct fix *fixP, segT this_segment);
  1.9391 ++
  1.9392 ++/* Positive values of TC_FX_SIZE_SLACK allow a target to define
  1.9393 ++   fixups that far past the end of a frag.  Having such fixups
  1.9394 ++   is of course most most likely a bug in setting fx_size correctly.
  1.9395 ++   A negative value disables the fixup check entirely, which is
  1.9396 ++   appropriate for something like the Renesas / SuperH SH_COUNT
  1.9397 ++   reloc.  */
  1.9398 ++/* This target is buggy, and sets fix size too large.  */
  1.9399 ++#define TC_FX_SIZE_SLACK(FIX) -1
  1.9400 ++
  1.9401 ++/* We don't want the gas core to make any assumptions about our way of
  1.9402 ++   doing linkrelaxing.  */
  1.9403 ++#define TC_LINKRELAX_FIXUP(SEG)			0
  1.9404 ++
  1.9405 ++/* ... but we do want it to insert lots of padding. */
  1.9406 ++#define LINKER_RELAXING_SHRINKS_ONLY
  1.9407 ++
  1.9408 ++/* Better do it ourselves, really... */
  1.9409 ++#define TC_RELAX_ALIGN(SEG, FRAG, ADDR)	avr32_relax_align(SEG, FRAG, ADDR)
  1.9410 ++extern relax_addressT
  1.9411 ++avr32_relax_align(segT segment, fragS *fragP, relax_addressT address);
  1.9412 ++
  1.9413 ++/* Use line number format that is amenable to linker relaxation.  */
  1.9414 ++#define DWARF2_USE_FIXED_ADVANCE_PC (linkrelax != 0)
  1.9415 ++
  1.9416 ++/* This is called by write_object_file() just before symbols are
  1.9417 ++   attempted converted into section symbols.  */
  1.9418 ++#define tc_frob_file_before_adjust()	avr32_frob_file()
  1.9419 ++extern void avr32_frob_file(void);
  1.9420 ++
  1.9421 ++/* If you define this macro, GAS will call it at the end of each input
  1.9422 ++   file.  */
  1.9423 ++#define md_cleanup() avr32_cleanup()
  1.9424 ++extern void avr32_cleanup(void);
  1.9425 ++
  1.9426 ++/* There's an AVR32-specific hack in operand() which creates O_md
  1.9427 ++   expressions when encountering HWRD or LWRD. We need to generate
  1.9428 ++   proper relocs for them */
  1.9429 ++/* #define md_cgen_record_fixup_exp avr32_cgen_record_fixup_exp */
  1.9430 ++
  1.9431 ++/* I needed to add an extra hook in gas_cgen_finish_insn() for
  1.9432 ++   conversion of O_md* operands because md_cgen_record_fixup_exp()
  1.9433 ++   isn't called for relaxable insns */
  1.9434 ++/* #define md_cgen_convert_expr(exp, opinfo) avr32_cgen_convert_expr(exp, opinfo)
  1.9435 ++   int avr32_cgen_convert_expr(expressionS *, int); */
  1.9436 ++
  1.9437 ++/* #define tc_gen_reloc gas_cgen_tc_gen_reloc */
  1.9438 ++
  1.9439 ++/* If you define this macro, it should return the position from which
  1.9440 ++   the PC relative adjustment for a PC relative fixup should be
  1.9441 ++   made. On many processors, the base of a PC relative instruction is
  1.9442 ++   the next instruction, so this macro would return the length of an
  1.9443 ++   instruction, plus the address of the PC relative fixup. The latter
  1.9444 ++   can be calculated as fixp->fx_where + fixp->fx_frag->fr_address. */
  1.9445 ++extern long md_pcrel_from_section (struct fix *, segT);
  1.9446 ++#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
  1.9447 ++
  1.9448 ++#define LOCAL_LABEL(name) (name[0] == '.' && (name[1] == 'L'))
  1.9449 ++#define LOCAL_LABELS_FB		1
  1.9450 ++
  1.9451 ++struct avr32_relaxer
  1.9452 ++{
  1.9453 ++  int (*estimate_size)(fragS *, segT);
  1.9454 ++  long (*relax_frag)(segT, fragS *, long);
  1.9455 ++  void (*convert_frag)(bfd *, segT, fragS *);
  1.9456 ++};
  1.9457 ++
  1.9458 ++/* AVR32 has quite complex instruction coding, which means we need
  1.9459 ++ * lots of information in order to do the right thing during relaxing
  1.9460 ++ * (basically, we need to be able to reconstruct a whole new opcode if
  1.9461 ++ * necessary) */
  1.9462 ++#define TC_FRAG_TYPE struct avr32_frag_data
  1.9463 ++
  1.9464 ++struct cpool;
  1.9465 ++
  1.9466 ++struct avr32_frag_data
  1.9467 ++{
  1.9468 ++  /* TODO: Maybe add an expression object here so that we can use
  1.9469 ++     fix_new_exp() in md_convert_frag?  We may have to decide
  1.9470 ++     pcrel-ness in md_estimate_size_before_relax() as well...or we
  1.9471 ++     might do it when parsing.  Doing it while parsing may fail
  1.9472 ++     because the sub_symbol is undefined then... */
  1.9473 ++  int pcrel;
  1.9474 ++  int force_extended;
  1.9475 ++  int reloc_info;
  1.9476 ++  struct avr32_relaxer *relaxer;
  1.9477 ++  expressionS exp;
  1.9478 ++
  1.9479 ++  /* Points to associated constant pool, for use by LDA and CALL in
  1.9480 ++     non-pic mode, and when relaxing the .cpool directive */
  1.9481 ++  struct cpool *pool;
  1.9482 ++  unsigned int pool_entry;
  1.9483 ++};
  1.9484 ++
  1.9485 ++/* We will have to initialize the fields explicitly when needed */
  1.9486 ++#define TC_FRAG_INIT(fragP)
  1.9487 ++
  1.9488 ++#define md_estimate_size_before_relax(fragP, segT)			\
  1.9489 ++  ((fragP)->tc_frag_data.relaxer->estimate_size(fragP, segT))
  1.9490 ++#define md_relax_frag(segment, fragP, stretch)				\
  1.9491 ++  ((fragP)->tc_frag_data.relaxer->relax_frag(segment, fragP, stretch))
  1.9492 ++#define md_convert_frag(abfd, segment, fragP)				\
  1.9493 ++  ((fragP)->tc_frag_data.relaxer->convert_frag(abfd, segment, fragP))
  1.9494 ++
  1.9495 ++#define TC_FIX_TYPE struct avr32_fix_data
  1.9496 ++
  1.9497 ++struct avr32_fix_data
  1.9498 ++{
  1.9499 ++  const struct avr32_ifield *ifield;
  1.9500 ++  unsigned int align;
  1.9501 ++  long min;
  1.9502 ++  long max;
  1.9503 ++};
  1.9504 ++
  1.9505 ++#define TC_INIT_FIX_DATA(fixP)			\
  1.9506 ++  do						\
  1.9507 ++    {						\
  1.9508 ++      (fixP)->tc_fix_data.ifield = NULL;	\
  1.9509 ++      (fixP)->tc_fix_data.align = 0;		\
  1.9510 ++      (fixP)->tc_fix_data.min = 0;		\
  1.9511 ++      (fixP)->tc_fix_data.max = 0;		\
  1.9512 ++    }						\
  1.9513 ++  while (0)
  1.9514 +--- a/gas/configure.tgt
  1.9515 ++++ b/gas/configure.tgt
  1.9516 +@@ -33,6 +33,7 @@ case ${cpu} in
  1.9517 +   am33_2.0)		cpu_type=mn10300 endian=little ;;
  1.9518 +   arm*be|arm*b)		cpu_type=arm endian=big ;;
  1.9519 +   arm*)			cpu_type=arm endian=little ;;
  1.9520 ++  avr32*)		cpu_type=avr32 endian=big ;;
  1.9521 +   bfin*)		cpu_type=bfin endian=little ;;
  1.9522 +   c4x*)			cpu_type=tic4x ;;
  1.9523 +   cr16*)		cpu_type=cr16 endian=little ;;
  1.9524 +@@ -129,6 +130,9 @@ case ${generic_target} in
  1.9525 +   bfin-*elf)				fmt=elf ;;
  1.9526 +   cr16-*-elf*)	    			fmt=elf ;;
  1.9527 + 
  1.9528 ++  avr32-*-linux*)			fmt=elf  em=linux bfd_gas=yes ;;
  1.9529 ++  avr32*)				fmt=elf  bfd_gas=yes ;;
  1.9530 ++
  1.9531 +   cris-*-linux-* | crisv32-*-linux-*)
  1.9532 + 					fmt=multi em=linux ;;
  1.9533 +   cris-*-* | crisv32-*-*)		fmt=multi ;;
  1.9534 +--- a/gas/doc/all.texi
  1.9535 ++++ b/gas/doc/all.texi
  1.9536 +@@ -30,6 +30,7 @@
  1.9537 + @set ARC
  1.9538 + @set ARM
  1.9539 + @set AVR
  1.9540 ++@set AVR32
  1.9541 + @set BFIN
  1.9542 + @set CR16
  1.9543 + @set CRIS
  1.9544 +--- a/gas/doc/as.texinfo
  1.9545 ++++ b/gas/doc/as.texinfo
  1.9546 +@@ -6353,6 +6353,9 @@ subject, see the hardware manufacturer's
  1.9547 + @ifset AVR
  1.9548 + * AVR-Dependent::               AVR Dependent Features
  1.9549 + @end ifset
  1.9550 ++@ifset AVR32
  1.9551 ++* AVR32-Dependent::             AVR32 Dependent Features
  1.9552 ++@end ifset
  1.9553 + @ifset BFIN
  1.9554 + * BFIN-Dependent::		BFIN Dependent Features
  1.9555 + @end ifset
  1.9556 +@@ -6476,6 +6479,10 @@ subject, see the hardware manufacturer's
  1.9557 + @include c-avr.texi
  1.9558 + @end ifset
  1.9559 + 
  1.9560 ++@ifset AVR32
  1.9561 ++@include c-avr32.texi
  1.9562 ++@end ifset
  1.9563 ++
  1.9564 + @ifset BFIN
  1.9565 + @include c-bfin.texi
  1.9566 + @end ifset
  1.9567 +--- /dev/null
  1.9568 ++++ b/gas/doc/c-avr32.texi
  1.9569 +@@ -0,0 +1,247 @@
  1.9570 ++@c Copyright 2005, 2006
  1.9571 ++@c Atmel Corporation
  1.9572 ++@c This is part of the GAS manual.
  1.9573 ++@c For copying conditions, see the file as.texinfo.
  1.9574 ++
  1.9575 ++@ifset GENERIC
  1.9576 ++@page
  1.9577 ++@node AVR32-Dependent
  1.9578 ++@chapter AVR32 Dependent Features
  1.9579 ++@end ifset
  1.9580 ++
  1.9581 ++@ifclear GENERIC
  1.9582 ++@node Machine Dependencies
  1.9583 ++@chapter AVR32 Dependent Features
  1.9584 ++@end ifclear
  1.9585 ++
  1.9586 ++@cindex AVR32 support
  1.9587 ++@menu
  1.9588 ++* AVR32 Options::               Options
  1.9589 ++* AVR32 Syntax::                Syntax
  1.9590 ++* AVR32 Directives::            Directives
  1.9591 ++* AVR32 Opcodes::               Opcodes
  1.9592 ++@end menu
  1.9593 ++
  1.9594 ++@node AVR32 Options
  1.9595 ++@section Options
  1.9596 ++@cindex AVR32 options
  1.9597 ++@cindex options for AVR32
  1.9598 ++
  1.9599 ++There are currently no AVR32-specific options.  However, the following
  1.9600 ++options are planned:
  1.9601 ++
  1.9602 ++@table @code
  1.9603 ++
  1.9604 ++@cindex @code{--pic} command line option, AVR32
  1.9605 ++@cindex PIC code generation for AVR32
  1.9606 ++@item --pic
  1.9607 ++This option specifies that the output of the assembler should be marked
  1.9608 ++as position-independent code (PIC).  It will also ensure that
  1.9609 ++pseudo-instructions that deal with address calculation are output as
  1.9610 ++PIC, and that all absolute address references in the code are marked as
  1.9611 ++such.
  1.9612 ++
  1.9613 ++@cindex @code{--linkrelax} command line option, AVR32
  1.9614 ++@item --linkrelax
  1.9615 ++This option specifies that the output of the assembler should be marked
  1.9616 ++as linker-relaxable.  It will also ensure that all PC-relative operands
  1.9617 ++that may change during linker relaxation get appropriate relocations.
  1.9618 ++
  1.9619 ++@end table
  1.9620 ++
  1.9621 ++
  1.9622 ++@node AVR32 Syntax
  1.9623 ++@section Syntax
  1.9624 ++@menu
  1.9625 ++* AVR32-Chars::              Special Characters
  1.9626 ++* AVR32-Symrefs::            Symbol references
  1.9627 ++@end menu
  1.9628 ++
  1.9629 ++@node AVR32-Chars
  1.9630 ++@subsection Special Characters
  1.9631 ++
  1.9632 ++@cindex line comment character, AVR32
  1.9633 ++@cindex AVR32 line comment character
  1.9634 ++The presence of a @samp{//} on a line indicates the start of a comment
  1.9635 ++that extends to the end of the current line.  If a @samp{#} appears as
  1.9636 ++the first character of a line, the whole line is treated as a comment.
  1.9637 ++
  1.9638 ++@cindex line separator, AVR32
  1.9639 ++@cindex statement separator, AVR32
  1.9640 ++@cindex AVR32 line separator
  1.9641 ++The @samp{;} character can be used instead of a newline to separate
  1.9642 ++statements.
  1.9643 ++
  1.9644 ++@node AVR32-Symrefs
  1.9645 ++@subsection Symbol references
  1.9646 ++
  1.9647 ++The absolute value of a symbol can be obtained by simply naming the
  1.9648 ++symbol.  However, as AVR32 symbols have 32-bit values, most symbols have
  1.9649 ++values that are outside the range of any instructions.
  1.9650 ++
  1.9651 ++Instructions that take a PC-relative offset, e.g. @code{lddpc} or
  1.9652 ++@code{rcall}, can also reference a symbol by simply naming the symbol
  1.9653 ++(no explicit calculations necessary).  In this case, the assembler or
  1.9654 ++linker subtracts the address of the instruction from the symbol's value
  1.9655 ++and inserts the result into the instruction.  Note that even though an
  1.9656 ++overflow is less likely to happen for a relative reference than for an
  1.9657 ++absolute reference, the assembler or linker will generate an error if
  1.9658 ++the referenced symbol is too far away from the current location.
  1.9659 ++
  1.9660 ++Relative references can be used for data as well.  For example:
  1.9661 ++
  1.9662 ++@smallexample
  1.9663 ++        lddpc   r0, 2f
  1.9664 ++1:      add     r0, pc
  1.9665 ++        ...
  1.9666 ++        .align  2
  1.9667 ++2:      .int    @var{some_symbol} - 1b
  1.9668 ++@end smallexample
  1.9669 ++
  1.9670 ++Here, r0 will end up with the run-time address of @var{some_symbol} even
  1.9671 ++if the program was loaded at a different address than it was linked
  1.9672 ++(position-independent code).
  1.9673 ++
  1.9674 ++@subsubsection Symbol modifiers
  1.9675 ++
  1.9676 ++@table @code
  1.9677 ++
  1.9678 ++@item @code{hi(@var{symbol})}
  1.9679 ++Evaluates to the value of the symbol shifted right 16 bits.  This will
  1.9680 ++work even if @var{symbol} is defined in a different module.
  1.9681 ++
  1.9682 ++@item @code{lo(@var{symbol})}
  1.9683 ++Evaluates to the low 16 bits of the symbol's value.  This will work even
  1.9684 ++if @var{symbol} is defined in a different module.
  1.9685 ++
  1.9686 ++@item @code{@var{symbol}@@got}
  1.9687 ++Create a GOT entry for @var{symbol} and return the offset of that entry
  1.9688 ++relative to the GOT base.
  1.9689 ++
  1.9690 ++@end table
  1.9691 ++
  1.9692 ++
  1.9693 ++@node AVR32 Directives
  1.9694 ++@section Directives
  1.9695 ++@cindex machine directives, AVR32
  1.9696 ++@cindex AVR32 directives
  1.9697 ++
  1.9698 ++@table @code
  1.9699 ++
  1.9700 ++@cindex @code{.cpool} directive, AVR32
  1.9701 ++@item .cpool
  1.9702 ++This directive causes the current contents of the constant pool to be
  1.9703 ++dumped into the current section at the current location (aligned to a
  1.9704 ++word boundary).  @code{GAS} maintains a separate constant pool for each
  1.9705 ++section and each sub-section.  The @code{.cpool} directive will only
  1.9706 ++affect the constant pool of the current section and sub-section.  At the
  1.9707 ++end of assembly, all remaining, non-empty constant pools will
  1.9708 ++automatically be dumped.
  1.9709 ++
  1.9710 ++@end table
  1.9711 ++
  1.9712 ++
  1.9713 ++@node AVR32 Opcodes
  1.9714 ++@section Opcodes
  1.9715 ++@cindex AVR32 opcodes
  1.9716 ++@cindex opcodes for AVR32
  1.9717 ++
  1.9718 ++@code{@value{AS}} implements all the standard AVR32 opcodes.  It also
  1.9719 ++implements several pseudo-opcodes, which are recommended to use wherever
  1.9720 ++possible because they give the tool chain better freedom to generate
  1.9721 ++optimal code.
  1.9722 ++
  1.9723 ++@table @code
  1.9724 ++
  1.9725 ++@cindex @code{LDA.W reg, symbol} pseudo op, AVR32
  1.9726 ++@item LDA.W
  1.9727 ++@smallexample
  1.9728 ++        lda.w   @var{reg}, @var{symbol}
  1.9729 ++@end smallexample
  1.9730 ++
  1.9731 ++This instruction will load the address of @var{symbol} into
  1.9732 ++@var{reg}. The instruction will evaluate to one of the following,
  1.9733 ++depending on the relative distance to the symbol, the relative distance
  1.9734 ++to the constant pool and whether the @code{--pic} option has been
  1.9735 ++specified. If the @code{--pic} option has not been specified, the
  1.9736 ++alternatives are as follows:
  1.9737 ++@smallexample
  1.9738 ++        /* @var{symbol} evaluates to a small enough value */
  1.9739 ++        mov     @var{reg}, @var{symbol}
  1.9740 ++
  1.9741 ++        /* (. - @var{symbol}) evaluates to a small enough value */
  1.9742 ++        sub     @var{reg}, pc, . - @var{symbol}
  1.9743 ++
  1.9744 ++        /* Constant pool is close enough */
  1.9745 ++        lddpc   @var{reg}, @var{cpent}
  1.9746 ++        ...
  1.9747 ++@var{cpent}:
  1.9748 ++        .long   @var{symbol}
  1.9749 ++
  1.9750 ++        /* Otherwise (not implemented yet, probably not necessary) */
  1.9751 ++        mov     @var{reg}, lo(@var{symbol})
  1.9752 ++        orh     @var{reg}, hi(@var{symbol})
  1.9753 ++@end smallexample
  1.9754 ++
  1.9755 ++If the @code{--pic} option has been specified, the alternatives are as
  1.9756 ++follows:
  1.9757 ++@smallexample
  1.9758 ++        /* (. - @var{symbol}) evaluates to a small enough value */
  1.9759 ++        sub     @var{reg}, pc, . - @var{symbol}
  1.9760 ++
  1.9761 ++        /* If @code{--linkrelax} not specified */
  1.9762 ++        ld.w    @var{reg}, r6[@var{symbol}@@got]
  1.9763 ++
  1.9764 ++        /* Otherwise */
  1.9765 ++        mov     @var{reg}, @var{symbol}@@got / 4
  1.9766 ++        ld.w    @var{reg}, r6[@var{reg} << 2]
  1.9767 ++@end smallexample
  1.9768 ++
  1.9769 ++If @var{symbol} is not defined in the same file and section as the
  1.9770 ++@code{LDA.W} instruction, the most pessimistic alternative of the
  1.9771 ++above is selected. The linker may convert it back into the most
  1.9772 ++optimal alternative when the final value of all symbols is known.
  1.9773 ++
  1.9774 ++@cindex @code{CALL symbol} pseudo op, AVR32
  1.9775 ++@item CALL
  1.9776 ++@smallexample
  1.9777 ++        call    @var{symbol}
  1.9778 ++@end smallexample
  1.9779 ++
  1.9780 ++This instruction will insert code to call the subroutine identified by
  1.9781 ++@var{symbol}. It will evaluate to one of the following, depending on
  1.9782 ++the relative distance to the symbol as well as the @code{--linkrelax}
  1.9783 ++and @code{--pic} command-line options.
  1.9784 ++
  1.9785 ++If @var{symbol} is defined in the same section and input file, and the
  1.9786 ++distance is small enough, an @code{rcall} instruction is inserted:
  1.9787 ++@smallexample
  1.9788 ++        rcall   @var{symbol}
  1.9789 ++@end smallexample
  1.9790 ++
  1.9791 ++Otherwise, if the @code{--pic} option has not been specified:
  1.9792 ++@smallexample
  1.9793 ++        mcall   @var{cpent}
  1.9794 ++        ...
  1.9795 ++@var{cpent}:
  1.9796 ++        .long   @var{symbol}
  1.9797 ++@end smallexample
  1.9798 ++
  1.9799 ++Finally, if nothing else fits and the @code{--pic} option has been
  1.9800 ++specified, the assembler will indirect the call through the Global
  1.9801 ++Offset Table:
  1.9802 ++@smallexample
  1.9803 ++        /* If @code{--linkrelax} not specified */
  1.9804 ++        mcall   r6[@var{symbol}@@got]
  1.9805 ++
  1.9806 ++        /* If @code{--linkrelax} specified */
  1.9807 ++        mov     lr, @var{symbol}@@got / 4
  1.9808 ++        ld.w    lr, r6[lr << 2]
  1.9809 ++        icall   lr
  1.9810 ++@end smallexample
  1.9811 ++
  1.9812 ++The linker, after determining the final value of @var{symbol}, may
  1.9813 ++convert any of these into more optimal alternatives. This includes
  1.9814 ++deleting any superfluous constant pool- and GOT-entries.
  1.9815 ++
  1.9816 ++@end table
  1.9817 +--- a/gas/doc/Makefile.am
  1.9818 ++++ b/gas/doc/Makefile.am
  1.9819 +@@ -33,6 +33,7 @@ CPU_DOCS = \
  1.9820 + 	c-arc.texi \
  1.9821 + 	c-arm.texi \
  1.9822 + 	c-avr.texi \
  1.9823 ++    c-avr32.texi \
  1.9824 + 	c-bfin.texi \
  1.9825 + 	c-cr16.texi \
  1.9826 + 	c-d10v.texi \
  1.9827 +--- a/gas/Makefile.am
  1.9828 ++++ b/gas/Makefile.am
  1.9829 +@@ -47,6 +47,7 @@ CPU_TYPES = \
  1.9830 + 	arc \
  1.9831 + 	arm \
  1.9832 + 	avr \
  1.9833 ++	avr32 \
  1.9834 + 	bfin \
  1.9835 + 	cr16 \
  1.9836 + 	cris \
  1.9837 +@@ -241,6 +242,7 @@ TARGET_CPU_CFILES = \
  1.9838 + 	config/tc-arc.c \
  1.9839 + 	config/tc-arm.c \
  1.9840 + 	config/tc-avr.c \
  1.9841 ++	config/tc-avr32.c \
  1.9842 + 	config/tc-bfin.c \
  1.9843 + 	config/tc-cr16.c \
  1.9844 + 	config/tc-cris.c \
  1.9845 +@@ -296,6 +298,7 @@ TARGET_CPU_HFILES = \
  1.9846 + 	config/tc-arc.h \
  1.9847 + 	config/tc-arm.h \
  1.9848 + 	config/tc-avr.h \
  1.9849 ++	config/tc-avr32.h \
  1.9850 + 	config/tc-bfin.h \
  1.9851 + 	config/tc-cr16.h \
  1.9852 + 	config/tc-cris.h \
  1.9853 +@@ -1050,6 +1053,11 @@ DEPTC_avr_elf = $(srcdir)/config/obj-elf
  1.9854 +   $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr.h dwarf2dbg.h \
  1.9855 +   $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
  1.9856 +   $(INCDIR)/opcode/avr.h
  1.9857 ++DEPTC_avr32_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \
  1.9858 ++  $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
  1.9859 ++  $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr32.h \
  1.9860 ++  $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
  1.9861 ++  $(srcdir)/../opcodes/avr32-opc.h $(srcdir)/../opcodes/avr32-asm.h
  1.9862 + DEPTC_bfin_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
  1.9863 +   $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
  1.9864 +   $(INCDIR)/bfdlink.h $(srcdir)/config/tc-bfin.h dwarf2dbg.h \
  1.9865 +@@ -1487,6 +1495,11 @@ DEPOBJ_avr_elf = $(srcdir)/config/obj-el
  1.9866 +   $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr.h dwarf2dbg.h \
  1.9867 +   $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
  1.9868 +   $(INCDIR)/obstack.h struc-symbol.h dwarf2dbg.h $(INCDIR)/aout/aout64.h
  1.9869 ++DEPOBJ_avr32_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \
  1.9870 ++  $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
  1.9871 ++  $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr32.h \
  1.9872 ++  $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
  1.9873 ++  struc-symbol.h dwarf2dbg.h
  1.9874 + DEPOBJ_bfin_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
  1.9875 +   $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
  1.9876 +   $(INCDIR)/bfdlink.h $(srcdir)/config/tc-bfin.h dwarf2dbg.h \
  1.9877 +@@ -1858,6 +1871,9 @@ DEP_cr16_elf = $(srcdir)/config/obj-elf.
  1.9878 +   $(INCDIR)/bfdlink.h $(srcdir)/config/tc-cr16.h dwarf2dbg.h \
  1.9879 +   $(srcdir)/config/obj-coff.h $(INCDIR)/coff/internal.h \
  1.9880 +   $(BFDDIR)/libcoff.h
  1.9881 ++DEP_avr32_elf = $(srcdir)/config/obj-elf.h $(INCDIR)/symcat.h \
  1.9882 ++  $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
  1.9883 ++  $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr32.h
  1.9884 + DEP_cris_aout = $(srcdir)/config/obj-aout.h $(srcdir)/config/tc-cris.h \
  1.9885 +   $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h
  1.9886 + DEP_cris_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
  1.9887 +--- /dev/null
  1.9888 ++++ b/gas/testsuite/gas/avr32/aliases.d
  1.9889 +@@ -0,0 +1,19 @@
  1.9890 ++#as:
  1.9891 ++#objdump: -dr
  1.9892 ++#name: aliases
  1.9893 ++
  1.9894 ++.*: +file format .*
  1.9895 ++
  1.9896 ++Disassembly of section \.text:
  1.9897 ++
  1.9898 ++00000000 <ld_nodisp>:
  1.9899 ++   0:	19 80      [ \t]+ld\.ub r0,r12\[0x0\]
  1.9900 ++   2:	f9 20 00 00[ \t]+ld\.sb r0,r12\[0\]
  1.9901 ++   6:	98 80      [ \t]+ld\.uh r0,r12\[0x0\]
  1.9902 ++   8:	98 00      [ \t]+ld\.sh r0,r12\[0x0\]
  1.9903 ++   a:	78 00      [ \t]+ld\.w r0,r12\[0x0\]
  1.9904 ++
  1.9905 ++0000000c <st_nodisp>:
  1.9906 ++   c:	b8 80      [ \t]+st\.b r12\[0x0\],r0
  1.9907 ++   e:	b8 00      [ \t]+st\.h r12\[0x0\],r0
  1.9908 ++  10:	99 00      [ \t]+st\.w r12\[0x0\],r0
  1.9909 +--- /dev/null
  1.9910 ++++ b/gas/testsuite/gas/avr32/aliases.s
  1.9911 +@@ -0,0 +1,14 @@
  1.9912 ++	.text
  1.9913 ++	.global	ld_nodisp
  1.9914 ++ld_nodisp:
  1.9915 ++	ld.ub	r0, r12
  1.9916 ++	ld.sb	r0, r12
  1.9917 ++	ld.uh	r0, r12
  1.9918 ++	ld.sh	r0, r12
  1.9919 ++	ld.w	r0, r12
  1.9920 ++
  1.9921 ++	.global st_nodisp
  1.9922 ++st_nodisp:
  1.9923 ++	st.b	r12, r0
  1.9924 ++	st.h	r12, r0
  1.9925 ++	st.w	r12, r0
  1.9926 +--- /dev/null
  1.9927 ++++ b/gas/testsuite/gas/avr32/allinsn.d
  1.9928 +@@ -0,0 +1,2987 @@
  1.9929 ++#as:
  1.9930 ++#objdump: -dr
  1.9931 ++#name: allinsn
  1.9932 ++
  1.9933 ++.*: +file format .*
  1.9934 ++
  1.9935 ++Disassembly of section \.text:
  1.9936 ++
  1.9937 ++[0-9a-f]* <ld_d5>:
  1.9938 ++ *[0-9a-f]*:	fe 0f 02 3e 	ld\.d lr,pc\[pc<<0x3\]
  1.9939 ++ *[0-9a-f]*:	e0 00 02 00 	ld\.d r0,r0\[r0\]
  1.9940 ++ *[0-9a-f]*:	ea 05 02 26 	ld\.d r6,r5\[r5<<0x2\]
  1.9941 ++ *[0-9a-f]*:	e8 04 02 14 	ld\.d r4,r4\[r4<<0x1\]
  1.9942 ++ *[0-9a-f]*:	fc 0e 02 1e 	ld\.d lr,lr\[lr<<0x1\]
  1.9943 ++ *[0-9a-f]*:	e6 0d 02 2a 	ld\.d r10,r3\[sp<<0x2\]
  1.9944 ++ *[0-9a-f]*:	f4 06 02 28 	ld\.d r8,r10\[r6<<0x2\]
  1.9945 ++ *[0-9a-f]*:	ee 09 02 02 	ld\.d r2,r7\[r9\]
  1.9946 ++
  1.9947 ++[0-9a-f]* <ld_w5>:
  1.9948 ++ *[0-9a-f]*:	fe 0f 03 0f 	ld\.w pc,pc\[pc\]
  1.9949 ++ *[0-9a-f]*:	f8 0c 03 3c 	ld\.w r12,r12\[r12<<0x3\]
  1.9950 ++ *[0-9a-f]*:	ea 05 03 25 	ld\.w r5,r5\[r5<<0x2\]
  1.9951 ++ *[0-9a-f]*:	e8 04 03 14 	ld\.w r4,r4\[r4<<0x1\]
  1.9952 ++ *[0-9a-f]*:	fc 0e 03 1e 	ld\.w lr,lr\[lr<<0x1\]
  1.9953 ++ *[0-9a-f]*:	f2 09 03 02 	ld\.w r2,r9\[r9\]
  1.9954 ++ *[0-9a-f]*:	e4 06 03 0b 	ld\.w r11,r2\[r6\]
  1.9955 ++ *[0-9a-f]*:	e4 0d 03 30 	ld\.w r0,r2\[sp<<0x3\]
  1.9956 ++
  1.9957 ++[0-9a-f]* <ld_sh5>:
  1.9958 ++ *[0-9a-f]*:	fe 0f 04 0f 	ld\.sh pc,pc\[pc\]
  1.9959 ++ *[0-9a-f]*:	f8 0c 04 3c 	ld\.sh r12,r12\[r12<<0x3\]
  1.9960 ++ *[0-9a-f]*:	ea 05 04 25 	ld\.sh r5,r5\[r5<<0x2\]
  1.9961 ++ *[0-9a-f]*:	e8 04 04 14 	ld\.sh r4,r4\[r4<<0x1\]
  1.9962 ++ *[0-9a-f]*:	fc 0e 04 1e 	ld\.sh lr,lr\[lr<<0x1\]
  1.9963 ++ *[0-9a-f]*:	e0 0f 04 2b 	ld\.sh r11,r0\[pc<<0x2\]
  1.9964 ++ *[0-9a-f]*:	fa 06 04 2a 	ld\.sh r10,sp\[r6<<0x2\]
  1.9965 ++ *[0-9a-f]*:	e4 02 04 0c 	ld\.sh r12,r2\[r2\]
  1.9966 ++
  1.9967 ++[0-9a-f]* <ld_uh5>:
  1.9968 ++ *[0-9a-f]*:	fe 0f 05 0f 	ld\.uh pc,pc\[pc\]
  1.9969 ++ *[0-9a-f]*:	f8 0c 05 3c 	ld\.uh r12,r12\[r12<<0x3\]
  1.9970 ++ *[0-9a-f]*:	ea 05 05 25 	ld\.uh r5,r5\[r5<<0x2\]
  1.9971 ++ *[0-9a-f]*:	e8 04 05 14 	ld\.uh r4,r4\[r4<<0x1\]
  1.9972 ++ *[0-9a-f]*:	fc 0e 05 1e 	ld\.uh lr,lr\[lr<<0x1\]
  1.9973 ++ *[0-9a-f]*:	fe 0e 05 38 	ld\.uh r8,pc\[lr<<0x3\]
  1.9974 ++ *[0-9a-f]*:	e2 0f 05 16 	ld\.uh r6,r1\[pc<<0x1\]
  1.9975 ++ *[0-9a-f]*:	fc 0d 05 16 	ld\.uh r6,lr\[sp<<0x1\]
  1.9976 ++
  1.9977 ++[0-9a-f]* <ld_sb2>:
  1.9978 ++ *[0-9a-f]*:	fe 0f 06 0f 	ld\.sb pc,pc\[pc\]
  1.9979 ++ *[0-9a-f]*:	f8 0c 06 3c 	ld\.sb r12,r12\[r12<<0x3\]
  1.9980 ++ *[0-9a-f]*:	ea 05 06 25 	ld\.sb r5,r5\[r5<<0x2\]
  1.9981 ++ *[0-9a-f]*:	e8 04 06 14 	ld\.sb r4,r4\[r4<<0x1\]
  1.9982 ++ *[0-9a-f]*:	fc 0e 06 1e 	ld\.sb lr,lr\[lr<<0x1\]
  1.9983 ++ *[0-9a-f]*:	e2 0f 06 39 	ld\.sb r9,r1\[pc<<0x3\]
  1.9984 ++ *[0-9a-f]*:	e6 0b 06 10 	ld\.sb r0,r3\[r11<<0x1\]
  1.9985 ++ *[0-9a-f]*:	ea 05 06 1a 	ld\.sb r10,r5\[r5<<0x1\]
  1.9986 ++
  1.9987 ++[0-9a-f]* <ld_ub5>:
  1.9988 ++ *[0-9a-f]*:	fe 0f 07 0f 	ld\.ub pc,pc\[pc\]
  1.9989 ++ *[0-9a-f]*:	f8 0c 07 3c 	ld\.ub r12,r12\[r12<<0x3\]
  1.9990 ++ *[0-9a-f]*:	ea 05 07 25 	ld\.ub r5,r5\[r5<<0x2\]
  1.9991 ++ *[0-9a-f]*:	e8 04 07 14 	ld\.ub r4,r4\[r4<<0x1\]
  1.9992 ++ *[0-9a-f]*:	fc 0e 07 1e 	ld\.ub lr,lr\[lr<<0x1\]
  1.9993 ++ *[0-9a-f]*:	f8 07 07 36 	ld\.ub r6,r12\[r7<<0x3\]
  1.9994 ++ *[0-9a-f]*:	ec 0c 07 02 	ld\.ub r2,r6\[r12\]
  1.9995 ++ *[0-9a-f]*:	ee 0b 07 10 	ld\.ub r0,r7\[r11<<0x1\]
  1.9996 ++
  1.9997 ++[0-9a-f]* <st_d5>:
  1.9998 ++ *[0-9a-f]*:	fe 0f 08 0e 	st\.d pc\[pc\],lr
  1.9999 ++ *[0-9a-f]*:	f8 0c 08 3c 	st\.d r12\[r12<<0x3\],r12
 1.10000 ++ *[0-9a-f]*:	ea 05 08 26 	st\.d r5\[r5<<0x2\],r6
 1.10001 ++ *[0-9a-f]*:	e8 04 08 14 	st\.d r4\[r4<<0x1\],r4
 1.10002 ++ *[0-9a-f]*:	fc 0e 08 1e 	st\.d lr\[lr<<0x1\],lr
 1.10003 ++ *[0-9a-f]*:	e2 09 08 14 	st\.d r1\[r9<<0x1\],r4
 1.10004 ++ *[0-9a-f]*:	f4 02 08 14 	st\.d r10\[r2<<0x1\],r4
 1.10005 ++ *[0-9a-f]*:	f8 06 08 0e 	st\.d r12\[r6\],lr
 1.10006 ++
 1.10007 ++[0-9a-f]* <st_w5>:
 1.10008 ++ *[0-9a-f]*:	fe 0f 09 0f 	st\.w pc\[pc\],pc
 1.10009 ++ *[0-9a-f]*:	f8 0c 09 3c 	st\.w r12\[r12<<0x3\],r12
 1.10010 ++ *[0-9a-f]*:	ea 05 09 25 	st\.w r5\[r5<<0x2\],r5
 1.10011 ++ *[0-9a-f]*:	e8 04 09 14 	st\.w r4\[r4<<0x1\],r4
 1.10012 ++ *[0-9a-f]*:	fc 0e 09 1e 	st\.w lr\[lr<<0x1\],lr
 1.10013 ++ *[0-9a-f]*:	e2 0a 09 03 	st\.w r1\[r10\],r3
 1.10014 ++ *[0-9a-f]*:	e0 0a 09 19 	st\.w r0\[r10<<0x1\],r9
 1.10015 ++ *[0-9a-f]*:	e8 05 09 3f 	st\.w r4\[r5<<0x3\],pc
 1.10016 ++
 1.10017 ++[0-9a-f]* <st_h5>:
 1.10018 ++ *[0-9a-f]*:	fe 0f 0a 0f 	st\.h pc\[pc\],pc
 1.10019 ++ *[0-9a-f]*:	f8 0c 0a 3c 	st\.h r12\[r12<<0x3\],r12
 1.10020 ++ *[0-9a-f]*:	ea 05 0a 25 	st\.h r5\[r5<<0x2\],r5
 1.10021 ++ *[0-9a-f]*:	e8 04 0a 14 	st\.h r4\[r4<<0x1\],r4
 1.10022 ++ *[0-9a-f]*:	fc 0e 0a 1e 	st\.h lr\[lr<<0x1\],lr
 1.10023 ++ *[0-9a-f]*:	e4 09 0a 0b 	st\.h r2\[r9\],r11
 1.10024 ++ *[0-9a-f]*:	ea 01 0a 2c 	st\.h r5\[r1<<0x2\],r12
 1.10025 ++ *[0-9a-f]*:	fe 08 0a 23 	st\.h pc\[r8<<0x2\],r3
 1.10026 ++
 1.10027 ++[0-9a-f]* <st_b5>:
 1.10028 ++ *[0-9a-f]*:	fe 0f 0b 0f 	st\.b pc\[pc\],pc
 1.10029 ++ *[0-9a-f]*:	f8 0c 0b 3c 	st\.b r12\[r12<<0x3\],r12
 1.10030 ++ *[0-9a-f]*:	ea 05 0b 25 	st\.b r5\[r5<<0x2\],r5
 1.10031 ++ *[0-9a-f]*:	e8 04 0b 14 	st\.b r4\[r4<<0x1\],r4
 1.10032 ++ *[0-9a-f]*:	fc 0e 0b 1e 	st\.b lr\[lr<<0x1\],lr
 1.10033 ++ *[0-9a-f]*:	e2 08 0b 16 	st\.b r1\[r8<<0x1\],r6
 1.10034 ++ *[0-9a-f]*:	fc 0e 0b 31 	st\.b lr\[lr<<0x3\],r1
 1.10035 ++ *[0-9a-f]*:	ea 00 0b 2f 	st\.b r5\[r0<<0x2\],pc
 1.10036 ++
 1.10037 ++[0-9a-f]* <divs>:
 1.10038 ++ *[0-9a-f]*:	fe 0f 0c 0f 	divs pc,pc,pc
 1.10039 ++ *[0-9a-f]*:	f8 0c 0c 0c 	divs r12,r12,r12
 1.10040 ++ *[0-9a-f]*:	ea 05 0c 05 	divs r5,r5,r5
 1.10041 ++ *[0-9a-f]*:	e8 04 0c 04 	divs r4,r4,r4
 1.10042 ++ *[0-9a-f]*:	fc 0e 0c 0e 	divs lr,lr,lr
 1.10043 ++ *[0-9a-f]*:	fe 0f 0c 03 	divs r3,pc,pc
 1.10044 ++ *[0-9a-f]*:	f8 02 0c 09 	divs r9,r12,r2
 1.10045 ++ *[0-9a-f]*:	e8 01 0c 07 	divs r7,r4,r1
 1.10046 ++
 1.10047 ++[0-9a-f]* <add1>:
 1.10048 ++ *[0-9a-f]*:	1e 0f       	add pc,pc
 1.10049 ++ *[0-9a-f]*:	18 0c       	add r12,r12
 1.10050 ++ *[0-9a-f]*:	0a 05       	add r5,r5
 1.10051 ++ *[0-9a-f]*:	08 04       	add r4,r4
 1.10052 ++ *[0-9a-f]*:	1c 0e       	add lr,lr
 1.10053 ++ *[0-9a-f]*:	12 0c       	add r12,r9
 1.10054 ++ *[0-9a-f]*:	06 06       	add r6,r3
 1.10055 ++ *[0-9a-f]*:	18 0a       	add r10,r12
 1.10056 ++
 1.10057 ++[0-9a-f]* <sub1>:
 1.10058 ++ *[0-9a-f]*:	1e 1f       	sub pc,pc
 1.10059 ++ *[0-9a-f]*:	18 1c       	sub r12,r12
 1.10060 ++ *[0-9a-f]*:	0a 15       	sub r5,r5
 1.10061 ++ *[0-9a-f]*:	08 14       	sub r4,r4
 1.10062 ++ *[0-9a-f]*:	1c 1e       	sub lr,lr
 1.10063 ++ *[0-9a-f]*:	0c 1e       	sub lr,r6
 1.10064 ++ *[0-9a-f]*:	1a 10       	sub r0,sp
 1.10065 ++ *[0-9a-f]*:	18 16       	sub r6,r12
 1.10066 ++
 1.10067 ++[0-9a-f]* <rsub1>:
 1.10068 ++ *[0-9a-f]*:	1e 2f       	rsub pc,pc
 1.10069 ++ *[0-9a-f]*:	18 2c       	rsub r12,r12
 1.10070 ++ *[0-9a-f]*:	0a 25       	rsub r5,r5
 1.10071 ++ *[0-9a-f]*:	08 24       	rsub r4,r4
 1.10072 ++ *[0-9a-f]*:	1c 2e       	rsub lr,lr
 1.10073 ++ *[0-9a-f]*:	1a 2b       	rsub r11,sp
 1.10074 ++ *[0-9a-f]*:	08 27       	rsub r7,r4
 1.10075 ++ *[0-9a-f]*:	02 29       	rsub r9,r1
 1.10076 ++
 1.10077 ++[0-9a-f]* <cp1>:
 1.10078 ++ *[0-9a-f]*:	1e 3f       	cp\.w pc,pc
 1.10079 ++ *[0-9a-f]*:	18 3c       	cp\.w r12,r12
 1.10080 ++ *[0-9a-f]*:	0a 35       	cp\.w r5,r5
 1.10081 ++ *[0-9a-f]*:	08 34       	cp\.w r4,r4
 1.10082 ++ *[0-9a-f]*:	1c 3e       	cp\.w lr,lr
 1.10083 ++ *[0-9a-f]*:	04 36       	cp\.w r6,r2
 1.10084 ++ *[0-9a-f]*:	12 30       	cp\.w r0,r9
 1.10085 ++ *[0-9a-f]*:	1a 33       	cp\.w r3,sp
 1.10086 ++
 1.10087 ++[0-9a-f]* <or1>:
 1.10088 ++ *[0-9a-f]*:	1e 4f       	or pc,pc
 1.10089 ++ *[0-9a-f]*:	18 4c       	or r12,r12
 1.10090 ++ *[0-9a-f]*:	0a 45       	or r5,r5
 1.10091 ++ *[0-9a-f]*:	08 44       	or r4,r4
 1.10092 ++ *[0-9a-f]*:	1c 4e       	or lr,lr
 1.10093 ++ *[0-9a-f]*:	12 44       	or r4,r9
 1.10094 ++ *[0-9a-f]*:	08 4b       	or r11,r4
 1.10095 ++ *[0-9a-f]*:	00 44       	or r4,r0
 1.10096 ++
 1.10097 ++[0-9a-f]* <eor1>:
 1.10098 ++ *[0-9a-f]*:	1e 5f       	eor pc,pc
 1.10099 ++ *[0-9a-f]*:	18 5c       	eor r12,r12
 1.10100 ++ *[0-9a-f]*:	0a 55       	eor r5,r5
 1.10101 ++ *[0-9a-f]*:	08 54       	eor r4,r4
 1.10102 ++ *[0-9a-f]*:	1c 5e       	eor lr,lr
 1.10103 ++ *[0-9a-f]*:	16 5c       	eor r12,r11
 1.10104 ++ *[0-9a-f]*:	02 50       	eor r0,r1
 1.10105 ++ *[0-9a-f]*:	1e 55       	eor r5,pc
 1.10106 ++
 1.10107 ++[0-9a-f]* <and1>:
 1.10108 ++ *[0-9a-f]*:	1e 6f       	and pc,pc
 1.10109 ++ *[0-9a-f]*:	18 6c       	and r12,r12
 1.10110 ++ *[0-9a-f]*:	0a 65       	and r5,r5
 1.10111 ++ *[0-9a-f]*:	08 64       	and r4,r4
 1.10112 ++ *[0-9a-f]*:	1c 6e       	and lr,lr
 1.10113 ++ *[0-9a-f]*:	02 68       	and r8,r1
 1.10114 ++ *[0-9a-f]*:	1a 60       	and r0,sp
 1.10115 ++ *[0-9a-f]*:	0a 6a       	and r10,r5
 1.10116 ++
 1.10117 ++[0-9a-f]* <tst>:
 1.10118 ++ *[0-9a-f]*:	1e 7f       	tst pc,pc
 1.10119 ++ *[0-9a-f]*:	18 7c       	tst r12,r12
 1.10120 ++ *[0-9a-f]*:	0a 75       	tst r5,r5
 1.10121 ++ *[0-9a-f]*:	08 74       	tst r4,r4
 1.10122 ++ *[0-9a-f]*:	1c 7e       	tst lr,lr
 1.10123 ++ *[0-9a-f]*:	18 70       	tst r0,r12
 1.10124 ++ *[0-9a-f]*:	0c 7a       	tst r10,r6
 1.10125 ++ *[0-9a-f]*:	08 7d       	tst sp,r4
 1.10126 ++
 1.10127 ++[0-9a-f]* <andn>:
 1.10128 ++ *[0-9a-f]*:	1e 8f       	andn pc,pc
 1.10129 ++ *[0-9a-f]*:	18 8c       	andn r12,r12
 1.10130 ++ *[0-9a-f]*:	0a 85       	andn r5,r5
 1.10131 ++ *[0-9a-f]*:	08 84       	andn r4,r4
 1.10132 ++ *[0-9a-f]*:	1c 8e       	andn lr,lr
 1.10133 ++ *[0-9a-f]*:	18 89       	andn r9,r12
 1.10134 ++ *[0-9a-f]*:	1a 8b       	andn r11,sp
 1.10135 ++ *[0-9a-f]*:	0a 8c       	andn r12,r5
 1.10136 ++
 1.10137 ++[0-9a-f]* <mov3>:
 1.10138 ++ *[0-9a-f]*:	1e 9f       	mov pc,pc
 1.10139 ++ *[0-9a-f]*:	18 9c       	mov r12,r12
 1.10140 ++ *[0-9a-f]*:	0a 95       	mov r5,r5
 1.10141 ++ *[0-9a-f]*:	08 94       	mov r4,r4
 1.10142 ++ *[0-9a-f]*:	1c 9e       	mov lr,lr
 1.10143 ++ *[0-9a-f]*:	12 95       	mov r5,r9
 1.10144 ++ *[0-9a-f]*:	16 9b       	mov r11,r11
 1.10145 ++ *[0-9a-f]*:	1c 92       	mov r2,lr
 1.10146 ++
 1.10147 ++[0-9a-f]* <st_w1>:
 1.10148 ++ *[0-9a-f]*:	1e af       	st\.w pc\+\+,pc
 1.10149 ++ *[0-9a-f]*:	18 ac       	st\.w r12\+\+,r12
 1.10150 ++ *[0-9a-f]*:	0a a5       	st\.w r5\+\+,r5
 1.10151 ++ *[0-9a-f]*:	08 a4       	st\.w r4\+\+,r4
 1.10152 ++ *[0-9a-f]*:	1c ae       	st\.w lr\+\+,lr
 1.10153 ++ *[0-9a-f]*:	02 ab       	st\.w r1\+\+,r11
 1.10154 ++ *[0-9a-f]*:	1a a0       	st\.w sp\+\+,r0
 1.10155 ++ *[0-9a-f]*:	1a a1       	st\.w sp\+\+,r1
 1.10156 ++
 1.10157 ++[0-9a-f]* <st_h1>:
 1.10158 ++ *[0-9a-f]*:	1e bf       	st\.h pc\+\+,pc
 1.10159 ++ *[0-9a-f]*:	18 bc       	st\.h r12\+\+,r12
 1.10160 ++ *[0-9a-f]*:	0a b5       	st\.h r5\+\+,r5
 1.10161 ++ *[0-9a-f]*:	08 b4       	st\.h r4\+\+,r4
 1.10162 ++ *[0-9a-f]*:	1c be       	st\.h lr\+\+,lr
 1.10163 ++ *[0-9a-f]*:	18 bd       	st\.h r12\+\+,sp
 1.10164 ++ *[0-9a-f]*:	0e be       	st\.h r7\+\+,lr
 1.10165 ++ *[0-9a-f]*:	0e b4       	st\.h r7\+\+,r4
 1.10166 ++
 1.10167 ++[0-9a-f]* <st_b1>:
 1.10168 ++ *[0-9a-f]*:	1e cf       	st\.b pc\+\+,pc
 1.10169 ++ *[0-9a-f]*:	18 cc       	st\.b r12\+\+,r12
 1.10170 ++ *[0-9a-f]*:	0a c5       	st\.b r5\+\+,r5
 1.10171 ++ *[0-9a-f]*:	08 c4       	st\.b r4\+\+,r4
 1.10172 ++ *[0-9a-f]*:	1c ce       	st\.b lr\+\+,lr
 1.10173 ++ *[0-9a-f]*:	12 cd       	st\.b r9\+\+,sp
 1.10174 ++ *[0-9a-f]*:	02 cd       	st\.b r1\+\+,sp
 1.10175 ++ *[0-9a-f]*:	00 c4       	st\.b r0\+\+,r4
 1.10176 ++
 1.10177 ++[0-9a-f]* <st_w2>:
 1.10178 ++ *[0-9a-f]*:	1e df       	st\.w --pc,pc
 1.10179 ++ *[0-9a-f]*:	18 dc       	st\.w --r12,r12
 1.10180 ++ *[0-9a-f]*:	0a d5       	st\.w --r5,r5
 1.10181 ++ *[0-9a-f]*:	08 d4       	st\.w --r4,r4
 1.10182 ++ *[0-9a-f]*:	1c de       	st\.w --lr,lr
 1.10183 ++ *[0-9a-f]*:	02 d7       	st\.w --r1,r7
 1.10184 ++ *[0-9a-f]*:	06 d9       	st\.w --r3,r9
 1.10185 ++ *[0-9a-f]*:	0a d5       	st\.w --r5,r5
 1.10186 ++
 1.10187 ++[0-9a-f]* <st_h2>:
 1.10188 ++ *[0-9a-f]*:	1e ef       	st\.h --pc,pc
 1.10189 ++ *[0-9a-f]*:	18 ec       	st\.h --r12,r12
 1.10190 ++ *[0-9a-f]*:	0a e5       	st\.h --r5,r5
 1.10191 ++ *[0-9a-f]*:	08 e4       	st\.h --r4,r4
 1.10192 ++ *[0-9a-f]*:	1c ee       	st\.h --lr,lr
 1.10193 ++ *[0-9a-f]*:	0a e7       	st\.h --r5,r7
 1.10194 ++ *[0-9a-f]*:	10 e8       	st\.h --r8,r8
 1.10195 ++ *[0-9a-f]*:	0e e2       	st\.h --r7,r2
 1.10196 ++
 1.10197 ++[0-9a-f]* <st_b2>:
 1.10198 ++ *[0-9a-f]*:	1e ff       	st\.b --pc,pc
 1.10199 ++ *[0-9a-f]*:	18 fc       	st\.b --r12,r12
 1.10200 ++ *[0-9a-f]*:	0a f5       	st\.b --r5,r5
 1.10201 ++ *[0-9a-f]*:	08 f4       	st\.b --r4,r4
 1.10202 ++ *[0-9a-f]*:	1c fe       	st\.b --lr,lr
 1.10203 ++ *[0-9a-f]*:	1a fd       	st\.b --sp,sp
 1.10204 ++ *[0-9a-f]*:	1a fb       	st\.b --sp,r11
 1.10205 ++ *[0-9a-f]*:	08 f5       	st\.b --r4,r5
 1.10206 ++
 1.10207 ++[0-9a-f]* <ld_w1>:
 1.10208 ++ *[0-9a-f]*:	1f 0f       	ld\.w pc,pc\+\+
 1.10209 ++ *[0-9a-f]*:	19 0c       	ld\.w r12,r12\+\+
 1.10210 ++ *[0-9a-f]*:	0b 05       	ld\.w r5,r5\+\+
 1.10211 ++ *[0-9a-f]*:	09 04       	ld\.w r4,r4\+\+
 1.10212 ++ *[0-9a-f]*:	1d 0e       	ld\.w lr,lr\+\+
 1.10213 ++ *[0-9a-f]*:	0f 03       	ld\.w r3,r7\+\+
 1.10214 ++ *[0-9a-f]*:	1d 03       	ld\.w r3,lr\+\+
 1.10215 ++ *[0-9a-f]*:	0b 0c       	ld\.w r12,r5\+\+
 1.10216 ++
 1.10217 ++[0-9a-f]* <ld_sh1>:
 1.10218 ++ *[0-9a-f]*:	1f 1f       	ld\.sh pc,pc\+\+
 1.10219 ++ *[0-9a-f]*:	19 1c       	ld\.sh r12,r12\+\+
 1.10220 ++ *[0-9a-f]*:	0b 15       	ld\.sh r5,r5\+\+
 1.10221 ++ *[0-9a-f]*:	09 14       	ld\.sh r4,r4\+\+
 1.10222 ++ *[0-9a-f]*:	1d 1e       	ld\.sh lr,lr\+\+
 1.10223 ++ *[0-9a-f]*:	05 1b       	ld\.sh r11,r2\+\+
 1.10224 ++ *[0-9a-f]*:	11 12       	ld\.sh r2,r8\+\+
 1.10225 ++ *[0-9a-f]*:	0d 17       	ld\.sh r7,r6\+\+
 1.10226 ++
 1.10227 ++[0-9a-f]* <ld_uh1>:
 1.10228 ++ *[0-9a-f]*:	1f 2f       	ld\.uh pc,pc\+\+
 1.10229 ++ *[0-9a-f]*:	19 2c       	ld\.uh r12,r12\+\+
 1.10230 ++ *[0-9a-f]*:	0b 25       	ld\.uh r5,r5\+\+
 1.10231 ++ *[0-9a-f]*:	09 24       	ld\.uh r4,r4\+\+
 1.10232 ++ *[0-9a-f]*:	1d 2e       	ld\.uh lr,lr\+\+
 1.10233 ++ *[0-9a-f]*:	0f 26       	ld\.uh r6,r7\+\+
 1.10234 ++ *[0-9a-f]*:	17 2a       	ld\.uh r10,r11\+\+
 1.10235 ++ *[0-9a-f]*:	09 2e       	ld\.uh lr,r4\+\+
 1.10236 ++
 1.10237 ++[0-9a-f]* <ld_ub1>:
 1.10238 ++ *[0-9a-f]*:	1f 3f       	ld\.ub pc,pc\+\+
 1.10239 ++ *[0-9a-f]*:	19 3c       	ld\.ub r12,r12\+\+
 1.10240 ++ *[0-9a-f]*:	0b 35       	ld\.ub r5,r5\+\+
 1.10241 ++ *[0-9a-f]*:	09 34       	ld\.ub r4,r4\+\+
 1.10242 ++ *[0-9a-f]*:	1d 3e       	ld\.ub lr,lr\+\+
 1.10243 ++ *[0-9a-f]*:	1d 38       	ld\.ub r8,lr\+\+
 1.10244 ++ *[0-9a-f]*:	19 3c       	ld\.ub r12,r12\+\+
 1.10245 ++ *[0-9a-f]*:	15 3b       	ld\.ub r11,r10\+\+
 1.10246 ++
 1.10247 ++[0-9a-f]* <ld_w2>:
 1.10248 ++ *[0-9a-f]*:	1f 4f       	ld\.w pc,--pc
 1.10249 ++ *[0-9a-f]*:	19 4c       	ld\.w r12,--r12
 1.10250 ++ *[0-9a-f]*:	0b 45       	ld\.w r5,--r5
 1.10251 ++ *[0-9a-f]*:	09 44       	ld\.w r4,--r4
 1.10252 ++ *[0-9a-f]*:	1d 4e       	ld\.w lr,--lr
 1.10253 ++ *[0-9a-f]*:	1d 4a       	ld\.w r10,--lr
 1.10254 ++ *[0-9a-f]*:	13 4c       	ld\.w r12,--r9
 1.10255 ++ *[0-9a-f]*:	0b 46       	ld\.w r6,--r5
 1.10256 ++
 1.10257 ++[0-9a-f]* <ld_sh2>:
 1.10258 ++ *[0-9a-f]*:	1f 5f       	ld\.sh pc,--pc
 1.10259 ++ *[0-9a-f]*:	19 5c       	ld\.sh r12,--r12
 1.10260 ++ *[0-9a-f]*:	0b 55       	ld\.sh r5,--r5
 1.10261 ++ *[0-9a-f]*:	09 54       	ld\.sh r4,--r4
 1.10262 ++ *[0-9a-f]*:	1d 5e       	ld\.sh lr,--lr
 1.10263 ++ *[0-9a-f]*:	15 5f       	ld\.sh pc,--r10
 1.10264 ++ *[0-9a-f]*:	07 56       	ld\.sh r6,--r3
 1.10265 ++ *[0-9a-f]*:	0d 54       	ld\.sh r4,--r6
 1.10266 ++
 1.10267 ++[0-9a-f]* <ld_uh2>:
 1.10268 ++ *[0-9a-f]*:	1f 6f       	ld\.uh pc,--pc
 1.10269 ++ *[0-9a-f]*:	19 6c       	ld\.uh r12,--r12
 1.10270 ++ *[0-9a-f]*:	0b 65       	ld\.uh r5,--r5
 1.10271 ++ *[0-9a-f]*:	09 64       	ld\.uh r4,--r4
 1.10272 ++ *[0-9a-f]*:	1d 6e       	ld\.uh lr,--lr
 1.10273 ++ *[0-9a-f]*:	05 63       	ld\.uh r3,--r2
 1.10274 ++ *[0-9a-f]*:	01 61       	ld\.uh r1,--r0
 1.10275 ++ *[0-9a-f]*:	13 62       	ld\.uh r2,--r9
 1.10276 ++
 1.10277 ++[0-9a-f]* <ld_ub2>:
 1.10278 ++ *[0-9a-f]*:	1f 7f       	ld\.ub pc,--pc
 1.10279 ++ *[0-9a-f]*:	19 7c       	ld\.ub r12,--r12
 1.10280 ++ *[0-9a-f]*:	0b 75       	ld\.ub r5,--r5
 1.10281 ++ *[0-9a-f]*:	09 74       	ld\.ub r4,--r4
 1.10282 ++ *[0-9a-f]*:	1d 7e       	ld\.ub lr,--lr
 1.10283 ++ *[0-9a-f]*:	03 71       	ld\.ub r1,--r1
 1.10284 ++ *[0-9a-f]*:	0d 70       	ld\.ub r0,--r6
 1.10285 ++ *[0-9a-f]*:	0f 72       	ld\.ub r2,--r7
 1.10286 ++
 1.10287 ++[0-9a-f]* <ld_ub3>:
 1.10288 ++ *[0-9a-f]*:	1f 8f       	ld\.ub pc,pc\[0x0\]
 1.10289 ++ *[0-9a-f]*:	19 fc       	ld\.ub r12,r12\[0x7\]
 1.10290 ++ *[0-9a-f]*:	0b c5       	ld\.ub r5,r5\[0x4\]
 1.10291 ++ *[0-9a-f]*:	09 b4       	ld\.ub r4,r4\[0x3\]
 1.10292 ++ *[0-9a-f]*:	1d 9e       	ld\.ub lr,lr\[0x1\]
 1.10293 ++ *[0-9a-f]*:	13 e6       	ld\.ub r6,r9\[0x6\]
 1.10294 ++ *[0-9a-f]*:	1d c2       	ld\.ub r2,lr\[0x4\]
 1.10295 ++ *[0-9a-f]*:	11 81       	ld\.ub r1,r8\[0x0\]
 1.10296 ++
 1.10297 ++[0-9a-f]* <sub3_sp>:
 1.10298 ++ *[0-9a-f]*:	20 0d       	sub sp,0
 1.10299 ++ *[0-9a-f]*:	2f fd       	sub sp,-4
 1.10300 ++ *[0-9a-f]*:	28 0d       	sub sp,-512
 1.10301 ++ *[0-9a-f]*:	27 fd       	sub sp,508
 1.10302 ++ *[0-9a-f]*:	20 1d       	sub sp,4
 1.10303 ++ *[0-9a-f]*:	20 bd       	sub sp,44
 1.10304 ++ *[0-9a-f]*:	20 2d       	sub sp,8
 1.10305 ++ *[0-9a-f]*:	25 7d       	sub sp,348
 1.10306 ++
 1.10307 ++[0-9a-f]* <sub3>:
 1.10308 ++ *[0-9a-f]*:	20 0f       	sub pc,0
 1.10309 ++ *[0-9a-f]*:	2f fc       	sub r12,-1
 1.10310 ++ *[0-9a-f]*:	28 05       	sub r5,-128
 1.10311 ++ *[0-9a-f]*:	27 f4       	sub r4,127
 1.10312 ++ *[0-9a-f]*:	20 1e       	sub lr,1
 1.10313 ++ *[0-9a-f]*:	2d 76       	sub r6,-41
 1.10314 ++ *[0-9a-f]*:	22 54       	sub r4,37
 1.10315 ++ *[0-9a-f]*:	23 8c       	sub r12,56
 1.10316 ++
 1.10317 ++[0-9a-f]* <mov1>:
 1.10318 ++ *[0-9a-f]*:	30 0f       	mov pc,0
 1.10319 ++ *[0-9a-f]*:	3f fc       	mov r12,-1
 1.10320 ++ *[0-9a-f]*:	38 05       	mov r5,-128
 1.10321 ++ *[0-9a-f]*:	37 f4       	mov r4,127
 1.10322 ++ *[0-9a-f]*:	30 1e       	mov lr,1
 1.10323 ++ *[0-9a-f]*:	30 ef       	mov pc,14
 1.10324 ++ *[0-9a-f]*:	39 c6       	mov r6,-100
 1.10325 ++ *[0-9a-f]*:	38 6e       	mov lr,-122
 1.10326 ++
 1.10327 ++[0-9a-f]* <lddsp>:
 1.10328 ++ *[0-9a-f]*:	40 0f       	lddsp pc,sp\[0x0\]
 1.10329 ++ *[0-9a-f]*:	47 fc       	lddsp r12,sp\[0x1fc\]
 1.10330 ++ *[0-9a-f]*:	44 05       	lddsp r5,sp\[0x100\]
 1.10331 ++ *[0-9a-f]*:	43 f4       	lddsp r4,sp\[0xfc\]
 1.10332 ++ *[0-9a-f]*:	40 1e       	lddsp lr,sp\[0x4\]
 1.10333 ++ *[0-9a-f]*:	44 0e       	lddsp lr,sp\[0x100\]
 1.10334 ++ *[0-9a-f]*:	40 5c       	lddsp r12,sp\[0x14\]
 1.10335 ++ *[0-9a-f]*:	47 69       	lddsp r9,sp\[0x1d8\]
 1.10336 ++
 1.10337 ++[0-9a-f]* <lddpc>:
 1.10338 ++ *[0-9a-f]*:	48 0f       	lddpc pc,[0-9a-f]* <.*>
 1.10339 ++ *[0-9a-f]*:	4f f0       	lddpc r0,[0-9a-f]* <.*>
 1.10340 ++ *[0-9a-f]*:	4c 08       	lddpc r8,[0-9a-f]* <.*>
 1.10341 ++ *[0-9a-f]*:	4b f7       	lddpc r7,[0-9a-f]* <.*>
 1.10342 ++ *[0-9a-f]*:	48 1e       	lddpc lr,[0-9a-f]* <.*>
 1.10343 ++ *[0-9a-f]*:	4f 6d       	lddpc sp,[0-9a-f]* <.*>
 1.10344 ++ *[0-9a-f]*:	49 e6       	lddpc r6,[0-9a-f]* <.*>
 1.10345 ++ *[0-9a-f]*:	48 7b       	lddpc r11,[0-9a-f]* <.*>
 1.10346 ++
 1.10347 ++[0-9a-f]* <stdsp>:
 1.10348 ++ *[0-9a-f]*:	50 0f       	stdsp sp\[0x0\],pc
 1.10349 ++ *[0-9a-f]*:	57 fc       	stdsp sp\[0x1fc\],r12
 1.10350 ++ *[0-9a-f]*:	54 05       	stdsp sp\[0x100\],r5
 1.10351 ++ *[0-9a-f]*:	53 f4       	stdsp sp\[0xfc\],r4
 1.10352 ++ *[0-9a-f]*:	50 1e       	stdsp sp\[0x4\],lr
 1.10353 ++ *[0-9a-f]*:	54 cf       	stdsp sp\[0x130\],pc
 1.10354 ++ *[0-9a-f]*:	54 00       	stdsp sp\[0x100\],r0
 1.10355 ++ *[0-9a-f]*:	55 45       	stdsp sp\[0x150\],r5
 1.10356 ++
 1.10357 ++[0-9a-f]* <cp2>:
 1.10358 ++ *[0-9a-f]*:	58 0f       	cp.w pc,0
 1.10359 ++ *[0-9a-f]*:	5b fc       	cp.w r12,-1
 1.10360 ++ *[0-9a-f]*:	5a 05       	cp.w r5,-32
 1.10361 ++ *[0-9a-f]*:	59 f4       	cp.w r4,31
 1.10362 ++ *[0-9a-f]*:	58 1e       	cp.w lr,1
 1.10363 ++ *[0-9a-f]*:	58 38       	cp.w r8,3
 1.10364 ++ *[0-9a-f]*:	59 0e       	cp.w lr,16
 1.10365 ++ *[0-9a-f]*:	5a 67       	cp.w r7,-26
 1.10366 ++
 1.10367 ++[0-9a-f]* <acr>:
 1.10368 ++ *[0-9a-f]*:	5c 0f       	acr pc
 1.10369 ++ *[0-9a-f]*:	5c 0c       	acr r12
 1.10370 ++ *[0-9a-f]*:	5c 05       	acr r5
 1.10371 ++ *[0-9a-f]*:	5c 04       	acr r4
 1.10372 ++ *[0-9a-f]*:	5c 0e       	acr lr
 1.10373 ++ *[0-9a-f]*:	5c 02       	acr r2
 1.10374 ++ *[0-9a-f]*:	5c 0c       	acr r12
 1.10375 ++ *[0-9a-f]*:	5c 0f       	acr pc
 1.10376 ++
 1.10377 ++[0-9a-f]* <scr>:
 1.10378 ++ *[0-9a-f]*:	5c 1f       	scr pc
 1.10379 ++ *[0-9a-f]*:	5c 1c       	scr r12
 1.10380 ++ *[0-9a-f]*:	5c 15       	scr r5
 1.10381 ++ *[0-9a-f]*:	5c 14       	scr r4
 1.10382 ++ *[0-9a-f]*:	5c 1e       	scr lr
 1.10383 ++ *[0-9a-f]*:	5c 1f       	scr pc
 1.10384 ++ *[0-9a-f]*:	5c 16       	scr r6
 1.10385 ++ *[0-9a-f]*:	5c 11       	scr r1
 1.10386 ++
 1.10387 ++[0-9a-f]* <cpc0>:
 1.10388 ++ *[0-9a-f]*:	5c 2f       	cpc pc
 1.10389 ++ *[0-9a-f]*:	5c 2c       	cpc r12
 1.10390 ++ *[0-9a-f]*:	5c 25       	cpc r5
 1.10391 ++ *[0-9a-f]*:	5c 24       	cpc r4
 1.10392 ++ *[0-9a-f]*:	5c 2e       	cpc lr
 1.10393 ++ *[0-9a-f]*:	5c 2f       	cpc pc
 1.10394 ++ *[0-9a-f]*:	5c 24       	cpc r4
 1.10395 ++ *[0-9a-f]*:	5c 29       	cpc r9
 1.10396 ++
 1.10397 ++[0-9a-f]* <neg>:
 1.10398 ++ *[0-9a-f]*:	5c 3f       	neg pc
 1.10399 ++ *[0-9a-f]*:	5c 3c       	neg r12
 1.10400 ++ *[0-9a-f]*:	5c 35       	neg r5
 1.10401 ++ *[0-9a-f]*:	5c 34       	neg r4
 1.10402 ++ *[0-9a-f]*:	5c 3e       	neg lr
 1.10403 ++ *[0-9a-f]*:	5c 37       	neg r7
 1.10404 ++ *[0-9a-f]*:	5c 31       	neg r1
 1.10405 ++ *[0-9a-f]*:	5c 39       	neg r9
 1.10406 ++
 1.10407 ++[0-9a-f]* <abs>:
 1.10408 ++ *[0-9a-f]*:	5c 4f       	abs pc
 1.10409 ++ *[0-9a-f]*:	5c 4c       	abs r12
 1.10410 ++ *[0-9a-f]*:	5c 45       	abs r5
 1.10411 ++ *[0-9a-f]*:	5c 44       	abs r4
 1.10412 ++ *[0-9a-f]*:	5c 4e       	abs lr
 1.10413 ++ *[0-9a-f]*:	5c 46       	abs r6
 1.10414 ++ *[0-9a-f]*:	5c 46       	abs r6
 1.10415 ++ *[0-9a-f]*:	5c 44       	abs r4
 1.10416 ++
 1.10417 ++[0-9a-f]* <castu_b>:
 1.10418 ++ *[0-9a-f]*:	5c 5f       	castu\.b pc
 1.10419 ++ *[0-9a-f]*:	5c 5c       	castu\.b r12
 1.10420 ++ *[0-9a-f]*:	5c 55       	castu\.b r5
 1.10421 ++ *[0-9a-f]*:	5c 54       	castu\.b r4
 1.10422 ++ *[0-9a-f]*:	5c 5e       	castu\.b lr
 1.10423 ++ *[0-9a-f]*:	5c 57       	castu\.b r7
 1.10424 ++ *[0-9a-f]*:	5c 5d       	castu\.b sp
 1.10425 ++ *[0-9a-f]*:	5c 59       	castu\.b r9
 1.10426 ++
 1.10427 ++[0-9a-f]* <casts_b>:
 1.10428 ++ *[0-9a-f]*:	5c 6f       	casts\.b pc
 1.10429 ++ *[0-9a-f]*:	5c 6c       	casts\.b r12
 1.10430 ++ *[0-9a-f]*:	5c 65       	casts\.b r5
 1.10431 ++ *[0-9a-f]*:	5c 64       	casts\.b r4
 1.10432 ++ *[0-9a-f]*:	5c 6e       	casts\.b lr
 1.10433 ++ *[0-9a-f]*:	5c 6b       	casts\.b r11
 1.10434 ++ *[0-9a-f]*:	5c 61       	casts\.b r1
 1.10435 ++ *[0-9a-f]*:	5c 6a       	casts\.b r10
 1.10436 ++
 1.10437 ++[0-9a-f]* <castu_h>:
 1.10438 ++ *[0-9a-f]*:	5c 7f       	castu\.h pc
 1.10439 ++ *[0-9a-f]*:	5c 7c       	castu\.h r12
 1.10440 ++ *[0-9a-f]*:	5c 75       	castu\.h r5
 1.10441 ++ *[0-9a-f]*:	5c 74       	castu\.h r4
 1.10442 ++ *[0-9a-f]*:	5c 7e       	castu\.h lr
 1.10443 ++ *[0-9a-f]*:	5c 7a       	castu\.h r10
 1.10444 ++ *[0-9a-f]*:	5c 7b       	castu\.h r11
 1.10445 ++ *[0-9a-f]*:	5c 71       	castu\.h r1
 1.10446 ++
 1.10447 ++[0-9a-f]* <casts_h>:
 1.10448 ++ *[0-9a-f]*:	5c 8f       	casts\.h pc
 1.10449 ++ *[0-9a-f]*:	5c 8c       	casts\.h r12
 1.10450 ++ *[0-9a-f]*:	5c 85       	casts\.h r5
 1.10451 ++ *[0-9a-f]*:	5c 84       	casts\.h r4
 1.10452 ++ *[0-9a-f]*:	5c 8e       	casts\.h lr
 1.10453 ++ *[0-9a-f]*:	5c 80       	casts\.h r0
 1.10454 ++ *[0-9a-f]*:	5c 85       	casts\.h r5
 1.10455 ++ *[0-9a-f]*:	5c 89       	casts\.h r9
 1.10456 ++
 1.10457 ++[0-9a-f]* <brev>:
 1.10458 ++ *[0-9a-f]*:	5c 9f       	brev pc
 1.10459 ++ *[0-9a-f]*:	5c 9c       	brev r12
 1.10460 ++ *[0-9a-f]*:	5c 95       	brev r5
 1.10461 ++ *[0-9a-f]*:	5c 94       	brev r4
 1.10462 ++ *[0-9a-f]*:	5c 9e       	brev lr
 1.10463 ++ *[0-9a-f]*:	5c 95       	brev r5
 1.10464 ++ *[0-9a-f]*:	5c 9a       	brev r10
 1.10465 ++ *[0-9a-f]*:	5c 98       	brev r8
 1.10466 ++
 1.10467 ++[0-9a-f]* <swap_h>:
 1.10468 ++ *[0-9a-f]*:	5c af       	swap\.h pc
 1.10469 ++ *[0-9a-f]*:	5c ac       	swap\.h r12
 1.10470 ++ *[0-9a-f]*:	5c a5       	swap\.h r5
 1.10471 ++ *[0-9a-f]*:	5c a4       	swap\.h r4
 1.10472 ++ *[0-9a-f]*:	5c ae       	swap\.h lr
 1.10473 ++ *[0-9a-f]*:	5c a7       	swap\.h r7
 1.10474 ++ *[0-9a-f]*:	5c a0       	swap\.h r0
 1.10475 ++ *[0-9a-f]*:	5c a8       	swap\.h r8
 1.10476 ++
 1.10477 ++[0-9a-f]* <swap_b>:
 1.10478 ++ *[0-9a-f]*:	5c bf       	swap\.b pc
 1.10479 ++ *[0-9a-f]*:	5c bc       	swap\.b r12
 1.10480 ++ *[0-9a-f]*:	5c b5       	swap\.b r5
 1.10481 ++ *[0-9a-f]*:	5c b4       	swap\.b r4
 1.10482 ++ *[0-9a-f]*:	5c be       	swap\.b lr
 1.10483 ++ *[0-9a-f]*:	5c ba       	swap\.b r10
 1.10484 ++ *[0-9a-f]*:	5c bc       	swap\.b r12
 1.10485 ++ *[0-9a-f]*:	5c b1       	swap\.b r1
 1.10486 ++
 1.10487 ++[0-9a-f]* <swap_bh>:
 1.10488 ++ *[0-9a-f]*:	5c cf       	swap\.bh pc
 1.10489 ++ *[0-9a-f]*:	5c cc       	swap\.bh r12
 1.10490 ++ *[0-9a-f]*:	5c c5       	swap\.bh r5
 1.10491 ++ *[0-9a-f]*:	5c c4       	swap\.bh r4
 1.10492 ++ *[0-9a-f]*:	5c ce       	swap\.bh lr
 1.10493 ++ *[0-9a-f]*:	5c c9       	swap\.bh r9
 1.10494 ++ *[0-9a-f]*:	5c c4       	swap\.bh r4
 1.10495 ++ *[0-9a-f]*:	5c c1       	swap\.bh r1
 1.10496 ++
 1.10497 ++[0-9a-f]* <One_s_compliment>:
 1.10498 ++ *[0-9a-f]*:	5c df       	com pc
 1.10499 ++ *[0-9a-f]*:	5c dc       	com r12
 1.10500 ++ *[0-9a-f]*:	5c d5       	com r5
 1.10501 ++ *[0-9a-f]*:	5c d4       	com r4
 1.10502 ++ *[0-9a-f]*:	5c de       	com lr
 1.10503 ++ *[0-9a-f]*:	5c d2       	com r2
 1.10504 ++ *[0-9a-f]*:	5c d2       	com r2
 1.10505 ++ *[0-9a-f]*:	5c d7       	com r7
 1.10506 ++
 1.10507 ++[0-9a-f]* <tnbz>:
 1.10508 ++ *[0-9a-f]*:	5c ef       	tnbz pc
 1.10509 ++ *[0-9a-f]*:	5c ec       	tnbz r12
 1.10510 ++ *[0-9a-f]*:	5c e5       	tnbz r5
 1.10511 ++ *[0-9a-f]*:	5c e4       	tnbz r4
 1.10512 ++ *[0-9a-f]*:	5c ee       	tnbz lr
 1.10513 ++ *[0-9a-f]*:	5c e8       	tnbz r8
 1.10514 ++ *[0-9a-f]*:	5c ec       	tnbz r12
 1.10515 ++ *[0-9a-f]*:	5c ef       	tnbz pc
 1.10516 ++
 1.10517 ++[0-9a-f]* <rol>:
 1.10518 ++ *[0-9a-f]*:	5c ff       	rol pc
 1.10519 ++ *[0-9a-f]*:	5c fc       	rol r12
 1.10520 ++ *[0-9a-f]*:	5c f5       	rol r5
 1.10521 ++ *[0-9a-f]*:	5c f4       	rol r4
 1.10522 ++ *[0-9a-f]*:	5c fe       	rol lr
 1.10523 ++ *[0-9a-f]*:	5c fa       	rol r10
 1.10524 ++ *[0-9a-f]*:	5c f9       	rol r9
 1.10525 ++ *[0-9a-f]*:	5c f5       	rol r5
 1.10526 ++
 1.10527 ++[0-9a-f]* <ror>:
 1.10528 ++ *[0-9a-f]*:	5d 0f       	ror pc
 1.10529 ++ *[0-9a-f]*:	5d 0c       	ror r12
 1.10530 ++ *[0-9a-f]*:	5d 05       	ror r5
 1.10531 ++ *[0-9a-f]*:	5d 04       	ror r4
 1.10532 ++ *[0-9a-f]*:	5d 0e       	ror lr
 1.10533 ++ *[0-9a-f]*:	5d 08       	ror r8
 1.10534 ++ *[0-9a-f]*:	5d 04       	ror r4
 1.10535 ++ *[0-9a-f]*:	5d 07       	ror r7
 1.10536 ++
 1.10537 ++[0-9a-f]* <icall>:
 1.10538 ++ *[0-9a-f]*:	5d 1f       	icall pc
 1.10539 ++ *[0-9a-f]*:	5d 1c       	icall r12
 1.10540 ++ *[0-9a-f]*:	5d 15       	icall r5
 1.10541 ++ *[0-9a-f]*:	5d 14       	icall r4
 1.10542 ++ *[0-9a-f]*:	5d 1e       	icall lr
 1.10543 ++ *[0-9a-f]*:	5d 13       	icall r3
 1.10544 ++ *[0-9a-f]*:	5d 11       	icall r1
 1.10545 ++ *[0-9a-f]*:	5d 13       	icall r3
 1.10546 ++
 1.10547 ++[0-9a-f]* <mustr>:
 1.10548 ++ *[0-9a-f]*:	5d 2f       	mustr pc
 1.10549 ++ *[0-9a-f]*:	5d 2c       	mustr r12
 1.10550 ++ *[0-9a-f]*:	5d 25       	mustr r5
 1.10551 ++ *[0-9a-f]*:	5d 24       	mustr r4
 1.10552 ++ *[0-9a-f]*:	5d 2e       	mustr lr
 1.10553 ++ *[0-9a-f]*:	5d 21       	mustr r1
 1.10554 ++ *[0-9a-f]*:	5d 24       	mustr r4
 1.10555 ++ *[0-9a-f]*:	5d 2c       	mustr r12
 1.10556 ++
 1.10557 ++[0-9a-f]* <musfr>:
 1.10558 ++ *[0-9a-f]*:	5d 3f       	musfr pc
 1.10559 ++ *[0-9a-f]*:	5d 3c       	musfr r12
 1.10560 ++ *[0-9a-f]*:	5d 35       	musfr r5
 1.10561 ++ *[0-9a-f]*:	5d 34       	musfr r4
 1.10562 ++ *[0-9a-f]*:	5d 3e       	musfr lr
 1.10563 ++ *[0-9a-f]*:	5d 3b       	musfr r11
 1.10564 ++ *[0-9a-f]*:	5d 3c       	musfr r12
 1.10565 ++ *[0-9a-f]*:	5d 32       	musfr r2
 1.10566 ++
 1.10567 ++[0-9a-f]* <ret_cond>:
 1.10568 ++ *[0-9a-f]*:	5e 0f       	reteq 1
 1.10569 ++ *[0-9a-f]*:	5e fc       	retal r12
 1.10570 ++ *[0-9a-f]*:	5e 85       	retls r5
 1.10571 ++ *[0-9a-f]*:	5e 74       	retpl r4
 1.10572 ++ *[0-9a-f]*:	5e 1e       	retne -1
 1.10573 ++ *[0-9a-f]*:	5e 90       	retgt r0
 1.10574 ++ *[0-9a-f]*:	5e 9c       	retgt r12
 1.10575 ++ *[0-9a-f]*:	5e 4a       	retge r10
 1.10576 ++
 1.10577 ++[0-9a-f]* <sr_cond>:
 1.10578 ++ *[0-9a-f]*:	5f 0f       	sreq pc
 1.10579 ++ *[0-9a-f]*:	5f fc       	sral r12
 1.10580 ++ *[0-9a-f]*:	5f 85       	srls r5
 1.10581 ++ *[0-9a-f]*:	5f 74       	srpl r4
 1.10582 ++ *[0-9a-f]*:	5f 1e       	srne lr
 1.10583 ++ *[0-9a-f]*:	5f 50       	srlt r0
 1.10584 ++ *[0-9a-f]*:	5f fd       	sral sp
 1.10585 ++ *[0-9a-f]*:	5f 49       	srge r9
 1.10586 ++
 1.10587 ++[0-9a-f]* <ld_w3>:
 1.10588 ++ *[0-9a-f]*:	7e 0f       	ld\.w pc,pc\[0x0\]
 1.10589 ++ *[0-9a-f]*:	79 fc       	ld\.w r12,r12\[0x7c\]
 1.10590 ++ *[0-9a-f]*:	6b 05       	ld\.w r5,r5\[0x40\]
 1.10591 ++ *[0-9a-f]*:	68 f4       	ld\.w r4,r4\[0x3c\]
 1.10592 ++ *[0-9a-f]*:	7c 1e       	ld\.w lr,lr\[0x4\]
 1.10593 ++ *[0-9a-f]*:	64 dd       	ld\.w sp,r2\[0x34\]
 1.10594 ++ *[0-9a-f]*:	62 29       	ld\.w r9,r1\[0x8\]
 1.10595 ++ *[0-9a-f]*:	7a f5       	ld\.w r5,sp\[0x3c\]
 1.10596 ++
 1.10597 ++[0-9a-f]* <ld_sh3>:
 1.10598 ++ *[0-9a-f]*:	9e 0f       	ld\.sh pc,pc\[0x0\]
 1.10599 ++ *[0-9a-f]*:	98 7c       	ld\.sh r12,r12\[0xe\]
 1.10600 ++ *[0-9a-f]*:	8a 45       	ld\.sh r5,r5\[0x8\]
 1.10601 ++ *[0-9a-f]*:	88 34       	ld\.sh r4,r4\[0x6\]
 1.10602 ++ *[0-9a-f]*:	9c 1e       	ld\.sh lr,lr\[0x2\]
 1.10603 ++ *[0-9a-f]*:	84 44       	ld\.sh r4,r2\[0x8\]
 1.10604 ++ *[0-9a-f]*:	9c 5d       	ld\.sh sp,lr\[0xa\]
 1.10605 ++ *[0-9a-f]*:	96 12       	ld\.sh r2,r11\[0x2\]
 1.10606 ++
 1.10607 ++[0-9a-f]* <ld_uh3>:
 1.10608 ++ *[0-9a-f]*:	9e 8f       	ld\.uh pc,pc\[0x0\]
 1.10609 ++ *[0-9a-f]*:	98 fc       	ld\.uh r12,r12\[0xe\]
 1.10610 ++ *[0-9a-f]*:	8a c5       	ld\.uh r5,r5\[0x8\]
 1.10611 ++ *[0-9a-f]*:	88 b4       	ld\.uh r4,r4\[0x6\]
 1.10612 ++ *[0-9a-f]*:	9c 9e       	ld\.uh lr,lr\[0x2\]
 1.10613 ++ *[0-9a-f]*:	80 da       	ld\.uh r10,r0\[0xa\]
 1.10614 ++ *[0-9a-f]*:	96 c8       	ld\.uh r8,r11\[0x8\]
 1.10615 ++ *[0-9a-f]*:	84 ea       	ld\.uh r10,r2\[0xc\]
 1.10616 ++
 1.10617 ++[0-9a-f]* <st_w3>:
 1.10618 ++ *[0-9a-f]*:	9f 0f       	st\.w pc\[0x0\],pc
 1.10619 ++ *[0-9a-f]*:	99 fc       	st\.w r12\[0x3c\],r12
 1.10620 ++ *[0-9a-f]*:	8b 85       	st\.w r5\[0x20\],r5
 1.10621 ++ *[0-9a-f]*:	89 74       	st\.w r4\[0x1c\],r4
 1.10622 ++ *[0-9a-f]*:	9d 1e       	st\.w lr\[0x4\],lr
 1.10623 ++ *[0-9a-f]*:	8f bb       	st\.w r7\[0x2c\],r11
 1.10624 ++ *[0-9a-f]*:	85 66       	st\.w r2\[0x18\],r6
 1.10625 ++ *[0-9a-f]*:	89 39       	st\.w r4\[0xc\],r9
 1.10626 ++
 1.10627 ++[0-9a-f]* <st_h3>:
 1.10628 ++ *[0-9a-f]*:	be 0f       	st\.h pc\[0x0\],pc
 1.10629 ++ *[0-9a-f]*:	b8 7c       	st\.h r12\[0xe\],r12
 1.10630 ++ *[0-9a-f]*:	aa 45       	st\.h r5\[0x8\],r5
 1.10631 ++ *[0-9a-f]*:	a8 34       	st\.h r4\[0x6\],r4
 1.10632 ++ *[0-9a-f]*:	bc 1e       	st\.h lr\[0x2\],lr
 1.10633 ++ *[0-9a-f]*:	bc 5c       	st\.h lr\[0xa\],r12
 1.10634 ++ *[0-9a-f]*:	ac 20       	st\.h r6\[0x4\],r0
 1.10635 ++ *[0-9a-f]*:	aa 6d       	st\.h r5\[0xc\],sp
 1.10636 ++
 1.10637 ++[0-9a-f]* <st_b3>:
 1.10638 ++ *[0-9a-f]*:	be 8f       	st\.b pc\[0x0\],pc
 1.10639 ++ *[0-9a-f]*:	b8 fc       	st\.b r12\[0x7\],r12
 1.10640 ++ *[0-9a-f]*:	aa c5       	st\.b r5\[0x4\],r5
 1.10641 ++ *[0-9a-f]*:	a8 b4       	st\.b r4\[0x3\],r4
 1.10642 ++ *[0-9a-f]*:	bc 9e       	st\.b lr\[0x1\],lr
 1.10643 ++ *[0-9a-f]*:	b8 e9       	st\.b r12\[0x6\],r9
 1.10644 ++ *[0-9a-f]*:	a4 be       	st\.b r2\[0x3\],lr
 1.10645 ++ *[0-9a-f]*:	a2 bb       	st\.b r1\[0x3\],r11
 1.10646 ++
 1.10647 ++[0-9a-f]* <ldd>:
 1.10648 ++ *[0-9a-f]*:	bf 00       	ld\.d r0,pc
 1.10649 ++ *[0-9a-f]*:	b9 0e       	ld\.d lr,r12
 1.10650 ++ *[0-9a-f]*:	ab 08       	ld\.d r8,r5
 1.10651 ++ *[0-9a-f]*:	a9 06       	ld\.d r6,r4
 1.10652 ++ *[0-9a-f]*:	bd 02       	ld\.d r2,lr
 1.10653 ++ *[0-9a-f]*:	af 0e       	ld\.d lr,r7
 1.10654 ++ *[0-9a-f]*:	a9 04       	ld\.d r4,r4
 1.10655 ++ *[0-9a-f]*:	bf 0e       	ld\.d lr,pc
 1.10656 ++
 1.10657 ++[0-9a-f]* <ldd_postinc>:
 1.10658 ++ *[0-9a-f]*:	bf 01       	ld\.d r0,pc\+\+
 1.10659 ++ *[0-9a-f]*:	b9 0f       	ld\.d lr,r12\+\+
 1.10660 ++ *[0-9a-f]*:	ab 09       	ld\.d r8,r5\+\+
 1.10661 ++ *[0-9a-f]*:	a9 07       	ld\.d r6,r4\+\+
 1.10662 ++ *[0-9a-f]*:	bd 03       	ld\.d r2,lr\+\+
 1.10663 ++ *[0-9a-f]*:	ab 0f       	ld\.d lr,r5\+\+
 1.10664 ++ *[0-9a-f]*:	b7 0d       	ld\.d r12,r11\+\+
 1.10665 ++ *[0-9a-f]*:	b9 03       	ld\.d r2,r12\+\+
 1.10666 ++
 1.10667 ++[0-9a-f]* <ldd_predec>:
 1.10668 ++ *[0-9a-f]*:	bf 10       	ld\.d r0,--pc
 1.10669 ++ *[0-9a-f]*:	b9 1e       	ld\.d lr,--r12
 1.10670 ++ *[0-9a-f]*:	ab 18       	ld\.d r8,--r5
 1.10671 ++ *[0-9a-f]*:	a9 16       	ld\.d r6,--r4
 1.10672 ++ *[0-9a-f]*:	bd 12       	ld\.d r2,--lr
 1.10673 ++ *[0-9a-f]*:	a1 18       	ld\.d r8,--r0
 1.10674 ++ *[0-9a-f]*:	bf 1a       	ld\.d r10,--pc
 1.10675 ++ *[0-9a-f]*:	a9 12       	ld\.d r2,--r4
 1.10676 ++
 1.10677 ++[0-9a-f]* <std>:
 1.10678 ++ *[0-9a-f]*:	bf 11       	st\.d pc,r0
 1.10679 ++ *[0-9a-f]*:	b9 1f       	st\.d r12,lr
 1.10680 ++ *[0-9a-f]*:	ab 19       	st\.d r5,r8
 1.10681 ++ *[0-9a-f]*:	a9 17       	st\.d r4,r6
 1.10682 ++ *[0-9a-f]*:	bd 13       	st\.d lr,r2
 1.10683 ++ *[0-9a-f]*:	a1 1d       	st\.d r0,r12
 1.10684 ++ *[0-9a-f]*:	bb 15       	st\.d sp,r4
 1.10685 ++ *[0-9a-f]*:	b9 1d       	st\.d r12,r12
 1.10686 ++
 1.10687 ++[0-9a-f]* <std_postinc>:
 1.10688 ++ *[0-9a-f]*:	bf 20       	st\.d pc\+\+,r0
 1.10689 ++ *[0-9a-f]*:	b9 2e       	st\.d r12\+\+,lr
 1.10690 ++ *[0-9a-f]*:	ab 28       	st\.d r5\+\+,r8
 1.10691 ++ *[0-9a-f]*:	a9 26       	st\.d r4\+\+,r6
 1.10692 ++ *[0-9a-f]*:	bd 22       	st\.d lr\+\+,r2
 1.10693 ++ *[0-9a-f]*:	bb 26       	st\.d sp\+\+,r6
 1.10694 ++ *[0-9a-f]*:	b5 26       	st\.d r10\+\+,r6
 1.10695 ++ *[0-9a-f]*:	af 22       	st\.d r7\+\+,r2
 1.10696 ++
 1.10697 ++[0-9a-f]* <std_predec>:
 1.10698 ++ *[0-9a-f]*:	bf 21       	st\.d --pc,r0
 1.10699 ++ *[0-9a-f]*:	b9 2f       	st\.d --r12,lr
 1.10700 ++ *[0-9a-f]*:	ab 29       	st\.d --r5,r8
 1.10701 ++ *[0-9a-f]*:	a9 27       	st\.d --r4,r6
 1.10702 ++ *[0-9a-f]*:	bd 23       	st\.d --lr,r2
 1.10703 ++ *[0-9a-f]*:	a7 27       	st\.d --r3,r6
 1.10704 ++ *[0-9a-f]*:	bd 23       	st\.d --lr,r2
 1.10705 ++ *[0-9a-f]*:	a1 25       	st\.d --r0,r4
 1.10706 ++
 1.10707 ++[0-9a-f]* <mul>:
 1.10708 ++ *[0-9a-f]*:	bf 3f       	mul pc,pc
 1.10709 ++ *[0-9a-f]*:	b9 3c       	mul r12,r12
 1.10710 ++ *[0-9a-f]*:	ab 35       	mul r5,r5
 1.10711 ++ *[0-9a-f]*:	a9 34       	mul r4,r4
 1.10712 ++ *[0-9a-f]*:	bd 3e       	mul lr,lr
 1.10713 ++ *[0-9a-f]*:	bd 3a       	mul r10,lr
 1.10714 ++ *[0-9a-f]*:	b1 30       	mul r0,r8
 1.10715 ++ *[0-9a-f]*:	ab 38       	mul r8,r5
 1.10716 ++
 1.10717 ++[0-9a-f]* <asr_imm5>:
 1.10718 ++ *[0-9a-f]*:	a1 4f       	asr pc,0x0
 1.10719 ++ *[0-9a-f]*:	bf 5c       	asr r12,0x1f
 1.10720 ++ *[0-9a-f]*:	b1 45       	asr r5,0x10
 1.10721 ++ *[0-9a-f]*:	af 54       	asr r4,0xf
 1.10722 ++ *[0-9a-f]*:	a1 5e       	asr lr,0x1
 1.10723 ++ *[0-9a-f]*:	b7 56       	asr r6,0x17
 1.10724 ++ *[0-9a-f]*:	b3 46       	asr r6,0x12
 1.10725 ++ *[0-9a-f]*:	a9 45       	asr r5,0x8
 1.10726 ++
 1.10727 ++[0-9a-f]* <lsl_imm5>:
 1.10728 ++ *[0-9a-f]*:	a1 6f       	lsl pc,0x0
 1.10729 ++ *[0-9a-f]*:	bf 7c       	lsl r12,0x1f
 1.10730 ++ *[0-9a-f]*:	b1 65       	lsl r5,0x10
 1.10731 ++ *[0-9a-f]*:	af 74       	lsl r4,0xf
 1.10732 ++ *[0-9a-f]*:	a1 7e       	lsl lr,0x1
 1.10733 ++ *[0-9a-f]*:	ad 7c       	lsl r12,0xd
 1.10734 ++ *[0-9a-f]*:	b1 66       	lsl r6,0x10
 1.10735 ++ *[0-9a-f]*:	b9 71       	lsl r1,0x19
 1.10736 ++
 1.10737 ++[0-9a-f]* <lsr_imm5>:
 1.10738 ++ *[0-9a-f]*:	a1 8f       	lsr pc,0x0
 1.10739 ++ *[0-9a-f]*:	bf 9c       	lsr r12,0x1f
 1.10740 ++ *[0-9a-f]*:	b1 85       	lsr r5,0x10
 1.10741 ++ *[0-9a-f]*:	af 94       	lsr r4,0xf
 1.10742 ++ *[0-9a-f]*:	a1 9e       	lsr lr,0x1
 1.10743 ++ *[0-9a-f]*:	a1 90       	lsr r0,0x1
 1.10744 ++ *[0-9a-f]*:	ab 88       	lsr r8,0xa
 1.10745 ++ *[0-9a-f]*:	bb 87       	lsr r7,0x1a
 1.10746 ++
 1.10747 ++[0-9a-f]* <sbr>:
 1.10748 ++ *[0-9a-f]*:	a1 af       	sbr pc,0x0
 1.10749 ++ *[0-9a-f]*:	bf bc       	sbr r12,0x1f
 1.10750 ++ *[0-9a-f]*:	b1 a5       	sbr r5,0x10
 1.10751 ++ *[0-9a-f]*:	af b4       	sbr r4,0xf
 1.10752 ++ *[0-9a-f]*:	a1 be       	sbr lr,0x1
 1.10753 ++ *[0-9a-f]*:	bf b8       	sbr r8,0x1f
 1.10754 ++ *[0-9a-f]*:	b7 a6       	sbr r6,0x16
 1.10755 ++ *[0-9a-f]*:	b7 b1       	sbr r1,0x17
 1.10756 ++
 1.10757 ++[0-9a-f]* <cbr>:
 1.10758 ++ *[0-9a-f]*:	a1 cf       	cbr pc,0x0
 1.10759 ++ *[0-9a-f]*:	bf dc       	cbr r12,0x1f
 1.10760 ++ *[0-9a-f]*:	b1 c5       	cbr r5,0x10
 1.10761 ++ *[0-9a-f]*:	af d4       	cbr r4,0xf
 1.10762 ++ *[0-9a-f]*:	a1 de       	cbr lr,0x1
 1.10763 ++ *[0-9a-f]*:	ab cc       	cbr r12,0xa
 1.10764 ++ *[0-9a-f]*:	b7 c7       	cbr r7,0x16
 1.10765 ++ *[0-9a-f]*:	a9 d8       	cbr r8,0x9
 1.10766 ++
 1.10767 ++[0-9a-f]* <brc1>:
 1.10768 ++ *[0-9a-f]*:	c0 00       	breq [0-9a-f]* <.*>
 1.10769 ++ *[0-9a-f]*:	cf f7       	brpl [0-9a-f]* <.*>
 1.10770 ++ *[0-9a-f]*:	c8 04       	brge [0-9a-f]* <.*>
 1.10771 ++ *[0-9a-f]*:	c7 f3       	brcs [0-9a-f]* <.*>
 1.10772 ++ *[0-9a-f]*:	c0 11       	brne [0-9a-f]* <.*>
 1.10773 ++ *[0-9a-f]*:	c7 33       	brcs [0-9a-f]* <.*>
 1.10774 ++ *[0-9a-f]*:	cf 70       	breq [0-9a-f]* <.*>
 1.10775 ++ *[0-9a-f]*:	c0 60       	breq [0-9a-f]* <.*>
 1.10776 ++
 1.10777 ++[0-9a-f]* <rjmp>:
 1.10778 ++ *[0-9a-f]*:	c0 08       	rjmp [0-9a-f]* <.*>
 1.10779 ++ *[0-9a-f]*:	cf fb       	rjmp [0-9a-f]* <.*>
 1.10780 ++ *[0-9a-f]*:	c0 0a       	rjmp [0-9a-f]* <.*>
 1.10781 ++ *[0-9a-f]*:	cf f9       	rjmp [0-9a-f]* <.*>
 1.10782 ++ *[0-9a-f]*:	c0 18       	rjmp [0-9a-f]* <.*>
 1.10783 ++ *[0-9a-f]*:	c1 fa       	rjmp [0-9a-f]* <.*>
 1.10784 ++ *[0-9a-f]*:	c0 78       	rjmp [0-9a-f]* <.*>
 1.10785 ++ *[0-9a-f]*:	cf ea       	rjmp [0-9a-f]* <.*>
 1.10786 ++
 1.10787 ++[0-9a-f]* <rcall1>:
 1.10788 ++ *[0-9a-f]*:	c0 0c       	rcall [0-9a-f]* <.*>
 1.10789 ++ *[0-9a-f]*:	cf ff       	rcall [0-9a-f]* <.*>
 1.10790 ++ *[0-9a-f]*:	c0 0e       	rcall [0-9a-f]* <.*>
 1.10791 ++ *[0-9a-f]*:	cf fd       	rcall [0-9a-f]* <.*>
 1.10792 ++ *[0-9a-f]*:	c0 1c       	rcall [0-9a-f]* <.*>
 1.10793 ++ *[0-9a-f]*:	c6 cc       	rcall [0-9a-f]* <.*>
 1.10794 ++ *[0-9a-f]*:	cf 7e       	rcall [0-9a-f]* <.*>
 1.10795 ++ *[0-9a-f]*:	c1 ae       	rcall [0-9a-f]* <.*>
 1.10796 ++
 1.10797 ++[0-9a-f]* <acall>:
 1.10798 ++ *[0-9a-f]*:	d0 00       	acall 0x0
 1.10799 ++ *[0-9a-f]*:	df f0       	acall 0x3fc
 1.10800 ++ *[0-9a-f]*:	d8 00       	acall 0x200
 1.10801 ++ *[0-9a-f]*:	d7 f0       	acall 0x1fc
 1.10802 ++ *[0-9a-f]*:	d0 10       	acall 0x4
 1.10803 ++ *[0-9a-f]*:	d5 90       	acall 0x164
 1.10804 ++ *[0-9a-f]*:	d4 c0       	acall 0x130
 1.10805 ++ *[0-9a-f]*:	d2 b0       	acall 0xac
 1.10806 ++
 1.10807 ++[0-9a-f]* <scall>:
 1.10808 ++ *[0-9a-f]*:	d7 33       	scall
 1.10809 ++ *[0-9a-f]*:	d7 33       	scall
 1.10810 ++ *[0-9a-f]*:	d7 33       	scall
 1.10811 ++ *[0-9a-f]*:	d7 33       	scall
 1.10812 ++ *[0-9a-f]*:	d7 33       	scall
 1.10813 ++ *[0-9a-f]*:	d7 33       	scall
 1.10814 ++ *[0-9a-f]*:	d7 33       	scall
 1.10815 ++ *[0-9a-f]*:	d7 33       	scall
 1.10816 ++
 1.10817 ++[0-9a-f]* <popm>:
 1.10818 ++ *[0-9a-f]*:	d8 02       	popm pc
 1.10819 ++ *[0-9a-f]*:	dd fa       	popm r0-r11,pc,r12=-1
 1.10820 ++ *[0-9a-f]*:	d4 02       	popm lr
 1.10821 ++ *[0-9a-f]*:	db fa       	popm r0-r11,pc,r12=1
 1.10822 ++ *[0-9a-f]*:	d0 12       	popm r0-r3
 1.10823 ++ *[0-9a-f]*:	d8 e2       	popm r4-r10,pc
 1.10824 ++ *[0-9a-f]*:	d9 1a       	popm r0-r3,r11,pc,r12=0
 1.10825 ++ *[0-9a-f]*:	d7 b2       	popm r0-r7,r10-r12,lr
 1.10826 ++
 1.10827 ++[0-9a-f]* <pushm>:
 1.10828 ++ *[0-9a-f]*:	d8 01       	pushm pc
 1.10829 ++ *[0-9a-f]*:	df f1       	pushm r0-r12,lr-pc
 1.10830 ++ *[0-9a-f]*:	d8 01       	pushm pc
 1.10831 ++ *[0-9a-f]*:	d7 f1       	pushm r0-r12,lr
 1.10832 ++ *[0-9a-f]*:	d0 11       	pushm r0-r3
 1.10833 ++ *[0-9a-f]*:	dc c1       	pushm r8-r10,lr-pc
 1.10834 ++ *[0-9a-f]*:	d0 91       	pushm r0-r3,r10
 1.10835 ++ *[0-9a-f]*:	d2 41       	pushm r8-r9,r12
 1.10836 ++
 1.10837 ++[0-9a-f]* <popm_n>:
 1.10838 ++.*
 1.10839 ++.*
 1.10840 ++.*
 1.10841 ++.*
 1.10842 ++.*
 1.10843 ++.*
 1.10844 ++.*
 1.10845 ++.*
 1.10846 ++
 1.10847 ++[0-9a-f]* <pushm_n>:
 1.10848 ++.*
 1.10849 ++.*
 1.10850 ++.*
 1.10851 ++.*
 1.10852 ++.*
 1.10853 ++.*
 1.10854 ++.*
 1.10855 ++.*
 1.10856 ++
 1.10857 ++[0-9a-f]* <csrfcz>:
 1.10858 ++ *[0-9a-f]*:	d0 03       	csrfcz 0x0
 1.10859 ++ *[0-9a-f]*:	d1 f3       	csrfcz 0x1f
 1.10860 ++ *[0-9a-f]*:	d1 03       	csrfcz 0x10
 1.10861 ++ *[0-9a-f]*:	d0 f3       	csrfcz 0xf
 1.10862 ++ *[0-9a-f]*:	d0 13       	csrfcz 0x1
 1.10863 ++ *[0-9a-f]*:	d0 53       	csrfcz 0x5
 1.10864 ++ *[0-9a-f]*:	d0 d3       	csrfcz 0xd
 1.10865 ++ *[0-9a-f]*:	d1 73       	csrfcz 0x17
 1.10866 ++
 1.10867 ++[0-9a-f]* <ssrf>:
 1.10868 ++ *[0-9a-f]*:	d2 03       	ssrf 0x0
 1.10869 ++ *[0-9a-f]*:	d3 f3       	ssrf 0x1f
 1.10870 ++ *[0-9a-f]*:	d3 03       	ssrf 0x10
 1.10871 ++ *[0-9a-f]*:	d2 f3       	ssrf 0xf
 1.10872 ++ *[0-9a-f]*:	d2 13       	ssrf 0x1
 1.10873 ++ *[0-9a-f]*:	d3 d3       	ssrf 0x1d
 1.10874 ++ *[0-9a-f]*:	d2 d3       	ssrf 0xd
 1.10875 ++ *[0-9a-f]*:	d2 d3       	ssrf 0xd
 1.10876 ++
 1.10877 ++[0-9a-f]* <csrf>:
 1.10878 ++ *[0-9a-f]*:	d4 03       	csrf 0x0
 1.10879 ++ *[0-9a-f]*:	d5 f3       	csrf 0x1f
 1.10880 ++ *[0-9a-f]*:	d5 03       	csrf 0x10
 1.10881 ++ *[0-9a-f]*:	d4 f3       	csrf 0xf
 1.10882 ++ *[0-9a-f]*:	d4 13       	csrf 0x1
 1.10883 ++ *[0-9a-f]*:	d4 a3       	csrf 0xa
 1.10884 ++ *[0-9a-f]*:	d4 f3       	csrf 0xf
 1.10885 ++ *[0-9a-f]*:	d4 b3       	csrf 0xb
 1.10886 ++
 1.10887 ++[0-9a-f]* <rete>:
 1.10888 ++ *[0-9a-f]*:	d6 03       	rete
 1.10889 ++
 1.10890 ++[0-9a-f]* <rets>:
 1.10891 ++ *[0-9a-f]*:	d6 13       	rets
 1.10892 ++
 1.10893 ++[0-9a-f]* <retd>:
 1.10894 ++ *[0-9a-f]*:	d6 23       	retd
 1.10895 ++
 1.10896 ++[0-9a-f]* <retj>:
 1.10897 ++ *[0-9a-f]*:	d6 33       	retj
 1.10898 ++
 1.10899 ++[0-9a-f]* <tlbr>:
 1.10900 ++ *[0-9a-f]*:	d6 43       	tlbr
 1.10901 ++
 1.10902 ++[0-9a-f]* <tlbs>:
 1.10903 ++ *[0-9a-f]*:	d6 53       	tlbs
 1.10904 ++
 1.10905 ++[0-9a-f]* <tlbw>:
 1.10906 ++ *[0-9a-f]*:	d6 63       	tlbw
 1.10907 ++
 1.10908 ++[0-9a-f]* <breakpoint>:
 1.10909 ++ *[0-9a-f]*:	d6 73       	breakpoint
 1.10910 ++
 1.10911 ++[0-9a-f]* <incjosp>:
 1.10912 ++ *[0-9a-f]*:	d6 83       	incjosp 1
 1.10913 ++ *[0-9a-f]*:	d6 93       	incjosp 2
 1.10914 ++ *[0-9a-f]*:	d6 a3       	incjosp 3
 1.10915 ++ *[0-9a-f]*:	d6 b3       	incjosp 4
 1.10916 ++ *[0-9a-f]*:	d6 c3       	incjosp -4
 1.10917 ++ *[0-9a-f]*:	d6 d3       	incjosp -3
 1.10918 ++ *[0-9a-f]*:	d6 e3       	incjosp -2
 1.10919 ++ *[0-9a-f]*:	d6 f3       	incjosp -1
 1.10920 ++
 1.10921 ++[0-9a-f]* <nop>:
 1.10922 ++ *[0-9a-f]*:	d7 03       	nop
 1.10923 ++
 1.10924 ++[0-9a-f]* <popjc>:
 1.10925 ++ *[0-9a-f]*:	d7 13       	popjc
 1.10926 ++
 1.10927 ++[0-9a-f]* <pushjc>:
 1.10928 ++ *[0-9a-f]*:	d7 23       	pushjc
 1.10929 ++
 1.10930 ++[0-9a-f]* <add2>:
 1.10931 ++ *[0-9a-f]*:	fe 0f 00 0f 	add pc,pc,pc
 1.10932 ++ *[0-9a-f]*:	f8 0c 00 3c 	add r12,r12,r12<<0x3
 1.10933 ++ *[0-9a-f]*:	ea 05 00 25 	add r5,r5,r5<<0x2
 1.10934 ++ *[0-9a-f]*:	e8 04 00 14 	add r4,r4,r4<<0x1
 1.10935 ++ *[0-9a-f]*:	fc 0e 00 1e 	add lr,lr,lr<<0x1
 1.10936 ++ *[0-9a-f]*:	f8 00 00 10 	add r0,r12,r0<<0x1
 1.10937 ++ *[0-9a-f]*:	f8 04 00 09 	add r9,r12,r4
 1.10938 ++ *[0-9a-f]*:	f8 07 00 2c 	add r12,r12,r7<<0x2
 1.10939 ++
 1.10940 ++[0-9a-f]* <sub2>:
 1.10941 ++ *[0-9a-f]*:	fe 0f 01 0f 	sub pc,pc,pc
 1.10942 ++ *[0-9a-f]*:	f8 0c 01 3c 	sub r12,r12,r12<<0x3
 1.10943 ++ *[0-9a-f]*:	ea 05 01 25 	sub r5,r5,r5<<0x2
 1.10944 ++ *[0-9a-f]*:	e8 04 01 14 	sub r4,r4,r4<<0x1
 1.10945 ++ *[0-9a-f]*:	fc 0e 01 1e 	sub lr,lr,lr<<0x1
 1.10946 ++ *[0-9a-f]*:	e6 04 01 0d 	sub sp,r3,r4
 1.10947 ++ *[0-9a-f]*:	ee 03 01 03 	sub r3,r7,r3
 1.10948 ++ *[0-9a-f]*:	f4 0d 01 1d 	sub sp,r10,sp<<0x1
 1.10949 ++
 1.10950 ++[0-9a-f]* <divu>:
 1.10951 ++ *[0-9a-f]*:	fe 0f 0d 0f 	divu pc,pc,pc
 1.10952 ++ *[0-9a-f]*:	f8 0c 0d 0c 	divu r12,r12,r12
 1.10953 ++ *[0-9a-f]*:	ea 05 0d 05 	divu r5,r5,r5
 1.10954 ++ *[0-9a-f]*:	e8 04 0d 04 	divu r4,r4,r4
 1.10955 ++ *[0-9a-f]*:	fc 0e 0d 0e 	divu lr,lr,lr
 1.10956 ++ *[0-9a-f]*:	e8 0f 0d 0d 	divu sp,r4,pc
 1.10957 ++ *[0-9a-f]*:	ea 0d 0d 05 	divu r5,r5,sp
 1.10958 ++ *[0-9a-f]*:	fa 00 0d 0a 	divu r10,sp,r0
 1.10959 ++
 1.10960 ++[0-9a-f]* <addhh_w>:
 1.10961 ++ *[0-9a-f]*:	fe 0f 0e 0f 	addhh\.w pc,pc:b,pc:b
 1.10962 ++ *[0-9a-f]*:	f8 0c 0e 3c 	addhh\.w r12,r12:t,r12:t
 1.10963 ++ *[0-9a-f]*:	ea 05 0e 35 	addhh\.w r5,r5:t,r5:t
 1.10964 ++ *[0-9a-f]*:	e8 04 0e 04 	addhh\.w r4,r4:b,r4:b
 1.10965 ++ *[0-9a-f]*:	fc 0e 0e 3e 	addhh\.w lr,lr:t,lr:t
 1.10966 ++ *[0-9a-f]*:	e0 03 0e 00 	addhh\.w r0,r0:b,r3:b
 1.10967 ++ *[0-9a-f]*:	f8 07 0e 2e 	addhh\.w lr,r12:t,r7:b
 1.10968 ++ *[0-9a-f]*:	f4 02 0e 23 	addhh\.w r3,r10:t,r2:b
 1.10969 ++
 1.10970 ++[0-9a-f]* <subhh_w>:
 1.10971 ++ *[0-9a-f]*:	fe 0f 0f 0f 	subhh\.w pc,pc:b,pc:b
 1.10972 ++ *[0-9a-f]*:	f8 0c 0f 3c 	subhh\.w r12,r12:t,r12:t
 1.10973 ++ *[0-9a-f]*:	ea 05 0f 35 	subhh\.w r5,r5:t,r5:t
 1.10974 ++ *[0-9a-f]*:	e8 04 0f 04 	subhh\.w r4,r4:b,r4:b
 1.10975 ++ *[0-9a-f]*:	fc 0e 0f 3e 	subhh\.w lr,lr:t,lr:t
 1.10976 ++ *[0-9a-f]*:	e2 07 0f 2a 	subhh\.w r10,r1:t,r7:b
 1.10977 ++ *[0-9a-f]*:	f4 0e 0f 3f 	subhh\.w pc,r10:t,lr:t
 1.10978 ++ *[0-9a-f]*:	e0 0c 0f 23 	subhh\.w r3,r0:t,r12:b
 1.10979 ++
 1.10980 ++[0-9a-f]* <adc>:
 1.10981 ++ *[0-9a-f]*:	fe 0f 00 4f 	adc pc,pc,pc
 1.10982 ++ *[0-9a-f]*:	f8 0c 00 4c 	adc r12,r12,r12
 1.10983 ++ *[0-9a-f]*:	ea 05 00 45 	adc r5,r5,r5
 1.10984 ++ *[0-9a-f]*:	e8 04 00 44 	adc r4,r4,r4
 1.10985 ++ *[0-9a-f]*:	fc 0e 00 4e 	adc lr,lr,lr
 1.10986 ++ *[0-9a-f]*:	e0 07 00 44 	adc r4,r0,r7
 1.10987 ++ *[0-9a-f]*:	e8 03 00 4d 	adc sp,r4,r3
 1.10988 ++ *[0-9a-f]*:	f8 00 00 42 	adc r2,r12,r0
 1.10989 ++
 1.10990 ++[0-9a-f]* <sbc>:
 1.10991 ++ *[0-9a-f]*:	fe 0f 01 4f 	sbc pc,pc,pc
 1.10992 ++ *[0-9a-f]*:	f8 0c 01 4c 	sbc r12,r12,r12
 1.10993 ++ *[0-9a-f]*:	ea 05 01 45 	sbc r5,r5,r5
 1.10994 ++ *[0-9a-f]*:	e8 04 01 44 	sbc r4,r4,r4
 1.10995 ++ *[0-9a-f]*:	fc 0e 01 4e 	sbc lr,lr,lr
 1.10996 ++ *[0-9a-f]*:	ee 09 01 46 	sbc r6,r7,r9
 1.10997 ++ *[0-9a-f]*:	f0 05 01 40 	sbc r0,r8,r5
 1.10998 ++ *[0-9a-f]*:	e0 04 01 41 	sbc r1,r0,r4
 1.10999 ++
 1.11000 ++[0-9a-f]* <mul_2>:
 1.11001 ++ *[0-9a-f]*:	fe 0f 02 4f 	mul pc,pc,pc
 1.11002 ++ *[0-9a-f]*:	f8 0c 02 4c 	mul r12,r12,r12
 1.11003 ++ *[0-9a-f]*:	ea 05 02 45 	mul r5,r5,r5
 1.11004 ++ *[0-9a-f]*:	e8 04 02 44 	mul r4,r4,r4
 1.11005 ++ *[0-9a-f]*:	fc 0e 02 4e 	mul lr,lr,lr
 1.11006 ++ *[0-9a-f]*:	e0 00 02 4f 	mul pc,r0,r0
 1.11007 ++ *[0-9a-f]*:	fe 0e 02 48 	mul r8,pc,lr
 1.11008 ++ *[0-9a-f]*:	f8 0f 02 44 	mul r4,r12,pc
 1.11009 ++
 1.11010 ++[0-9a-f]* <mac>:
 1.11011 ++ *[0-9a-f]*:	fe 0f 03 4f 	mac pc,pc,pc
 1.11012 ++ *[0-9a-f]*:	f8 0c 03 4c 	mac r12,r12,r12
 1.11013 ++ *[0-9a-f]*:	ea 05 03 45 	mac r5,r5,r5
 1.11014 ++ *[0-9a-f]*:	e8 04 03 44 	mac r4,r4,r4
 1.11015 ++ *[0-9a-f]*:	fc 0e 03 4e 	mac lr,lr,lr
 1.11016 ++ *[0-9a-f]*:	e8 00 03 4a 	mac r10,r4,r0
 1.11017 ++ *[0-9a-f]*:	fc 00 03 47 	mac r7,lr,r0
 1.11018 ++ *[0-9a-f]*:	f2 0c 03 42 	mac r2,r9,r12
 1.11019 ++
 1.11020 ++[0-9a-f]* <mulsd>:
 1.11021 ++ *[0-9a-f]*:	fe 0f 04 4f 	muls\.d pc,pc,pc
 1.11022 ++ *[0-9a-f]*:	f8 0c 04 4c 	muls\.d r12,r12,r12
 1.11023 ++ *[0-9a-f]*:	ea 05 04 45 	muls\.d r5,r5,r5
 1.11024 ++ *[0-9a-f]*:	e8 04 04 44 	muls\.d r4,r4,r4
 1.11025 ++ *[0-9a-f]*:	fc 0e 04 4e 	muls\.d lr,lr,lr
 1.11026 ++ *[0-9a-f]*:	f0 0e 04 42 	muls\.d r2,r8,lr
 1.11027 ++ *[0-9a-f]*:	e0 0b 04 44 	muls\.d r4,r0,r11
 1.11028 ++ *[0-9a-f]*:	fc 06 04 45 	muls\.d r5,lr,r6
 1.11029 ++
 1.11030 ++[0-9a-f]* <macsd>:
 1.11031 ++ *[0-9a-f]*:	fe 0f 05 40 	macs\.d r0,pc,pc
 1.11032 ++ *[0-9a-f]*:	f8 0c 05 4e 	macs\.d lr,r12,r12
 1.11033 ++ *[0-9a-f]*:	ea 05 05 48 	macs\.d r8,r5,r5
 1.11034 ++ *[0-9a-f]*:	e8 04 05 46 	macs\.d r6,r4,r4
 1.11035 ++ *[0-9a-f]*:	fc 0e 05 42 	macs\.d r2,lr,lr
 1.11036 ++ *[0-9a-f]*:	e2 09 05 48 	macs\.d r8,r1,r9
 1.11037 ++ *[0-9a-f]*:	f0 08 05 4e 	macs\.d lr,r8,r8
 1.11038 ++ *[0-9a-f]*:	e6 0c 05 44 	macs\.d r4,r3,r12
 1.11039 ++
 1.11040 ++[0-9a-f]* <mulud>:
 1.11041 ++ *[0-9a-f]*:	fe 0f 06 40 	mulu\.d r0,pc,pc
 1.11042 ++ *[0-9a-f]*:	f8 0c 06 4e 	mulu\.d lr,r12,r12
 1.11043 ++ *[0-9a-f]*:	ea 05 06 48 	mulu\.d r8,r5,r5
 1.11044 ++ *[0-9a-f]*:	e8 04 06 46 	mulu\.d r6,r4,r4
 1.11045 ++ *[0-9a-f]*:	fc 0e 06 42 	mulu\.d r2,lr,lr
 1.11046 ++ *[0-9a-f]*:	ea 00 06 46 	mulu\.d r6,r5,r0
 1.11047 ++ *[0-9a-f]*:	ec 01 06 44 	mulu\.d r4,r6,r1
 1.11048 ++ *[0-9a-f]*:	f0 02 06 48 	mulu\.d r8,r8,r2
 1.11049 ++
 1.11050 ++[0-9a-f]* <macud>:
 1.11051 ++ *[0-9a-f]*:	fe 0f 07 40 	macu\.d r0,pc,pc
 1.11052 ++ *[0-9a-f]*:	f8 0c 07 4e 	macu\.d lr,r12,r12
 1.11053 ++ *[0-9a-f]*:	ea 05 07 48 	macu\.d r8,r5,r5
 1.11054 ++ *[0-9a-f]*:	e8 04 07 46 	macu\.d r6,r4,r4
 1.11055 ++ *[0-9a-f]*:	fc 0e 07 42 	macu\.d r2,lr,lr
 1.11056 ++ *[0-9a-f]*:	fa 0b 07 46 	macu\.d r6,sp,r11
 1.11057 ++ *[0-9a-f]*:	e8 08 07 42 	macu\.d r2,r4,r8
 1.11058 ++ *[0-9a-f]*:	f4 09 07 46 	macu\.d r6,r10,r9
 1.11059 ++
 1.11060 ++[0-9a-f]* <asr_1>:
 1.11061 ++ *[0-9a-f]*:	fe 0f 08 4f 	asr pc,pc,pc
 1.11062 ++ *[0-9a-f]*:	f8 0c 08 4c 	asr r12,r12,r12
 1.11063 ++ *[0-9a-f]*:	ea 05 08 45 	asr r5,r5,r5
 1.11064 ++ *[0-9a-f]*:	e8 04 08 44 	asr r4,r4,r4
 1.11065 ++ *[0-9a-f]*:	fc 0e 08 4e 	asr lr,lr,lr
 1.11066 ++ *[0-9a-f]*:	ec 0f 08 4f 	asr pc,r6,pc
 1.11067 ++ *[0-9a-f]*:	ec 0c 08 40 	asr r0,r6,r12
 1.11068 ++ *[0-9a-f]*:	fa 00 08 44 	asr r4,sp,r0
 1.11069 ++
 1.11070 ++[0-9a-f]* <lsl_1>:
 1.11071 ++ *[0-9a-f]*:	fe 0f 09 4f 	lsl pc,pc,pc
 1.11072 ++ *[0-9a-f]*:	f8 0c 09 4c 	lsl r12,r12,r12
 1.11073 ++ *[0-9a-f]*:	ea 05 09 45 	lsl r5,r5,r5
 1.11074 ++ *[0-9a-f]*:	e8 04 09 44 	lsl r4,r4,r4
 1.11075 ++ *[0-9a-f]*:	fc 0e 09 4e 	lsl lr,lr,lr
 1.11076 ++ *[0-9a-f]*:	ea 0e 09 4e 	lsl lr,r5,lr
 1.11077 ++ *[0-9a-f]*:	fe 03 09 45 	lsl r5,pc,r3
 1.11078 ++ *[0-9a-f]*:	fe 09 09 41 	lsl r1,pc,r9
 1.11079 ++
 1.11080 ++[0-9a-f]* <lsr_1>:
 1.11081 ++ *[0-9a-f]*:	fe 0f 0a 4f 	lsr pc,pc,pc
 1.11082 ++ *[0-9a-f]*:	f8 0c 0a 4c 	lsr r12,r12,r12
 1.11083 ++ *[0-9a-f]*:	ea 05 0a 45 	lsr r5,r5,r5
 1.11084 ++ *[0-9a-f]*:	e8 04 0a 44 	lsr r4,r4,r4
 1.11085 ++ *[0-9a-f]*:	fc 0e 0a 4e 	lsr lr,lr,lr
 1.11086 ++ *[0-9a-f]*:	e8 01 0a 42 	lsr r2,r4,r1
 1.11087 ++ *[0-9a-f]*:	e2 06 0a 45 	lsr r5,r1,r6
 1.11088 ++ *[0-9a-f]*:	ec 07 0a 4d 	lsr sp,r6,r7
 1.11089 ++
 1.11090 ++[0-9a-f]* <xchg>:
 1.11091 ++ *[0-9a-f]*:	fe 0f 0b 4f 	xchg pc,pc,pc
 1.11092 ++ *[0-9a-f]*:	f8 0c 0b 4c 	xchg r12,r12,r12
 1.11093 ++ *[0-9a-f]*:	ea 05 0b 45 	xchg r5,r5,r5
 1.11094 ++ *[0-9a-f]*:	e8 04 0b 44 	xchg r4,r4,r4
 1.11095 ++ *[0-9a-f]*:	fc 0e 0b 4e 	xchg lr,lr,lr
 1.11096 ++ *[0-9a-f]*:	e8 0d 0b 4e 	xchg lr,r4,sp
 1.11097 ++ *[0-9a-f]*:	ea 0c 0b 41 	xchg r1,r5,r12
 1.11098 ++ *[0-9a-f]*:	f8 00 0b 4e 	xchg lr,r12,r0
 1.11099 ++
 1.11100 ++[0-9a-f]* <max>:
 1.11101 ++ *[0-9a-f]*:	fe 0f 0c 4f 	max pc,pc,pc
 1.11102 ++ *[0-9a-f]*:	f8 0c 0c 4c 	max r12,r12,r12
 1.11103 ++ *[0-9a-f]*:	ea 05 0c 45 	max r5,r5,r5
 1.11104 ++ *[0-9a-f]*:	e8 04 0c 44 	max r4,r4,r4
 1.11105 ++ *[0-9a-f]*:	fc 0e 0c 4e 	max lr,lr,lr
 1.11106 ++ *[0-9a-f]*:	e4 0d 0c 4e 	max lr,r2,sp
 1.11107 ++ *[0-9a-f]*:	f4 09 0c 44 	max r4,r10,r9
 1.11108 ++ *[0-9a-f]*:	f2 0e 0c 4e 	max lr,r9,lr
 1.11109 ++
 1.11110 ++[0-9a-f]* <min>:
 1.11111 ++ *[0-9a-f]*:	fe 0f 0d 4f 	min pc,pc,pc
 1.11112 ++ *[0-9a-f]*:	f8 0c 0d 4c 	min r12,r12,r12
 1.11113 ++ *[0-9a-f]*:	ea 05 0d 45 	min r5,r5,r5
 1.11114 ++ *[0-9a-f]*:	e8 04 0d 44 	min r4,r4,r4
 1.11115 ++ *[0-9a-f]*:	fc 0e 0d 4e 	min lr,lr,lr
 1.11116 ++ *[0-9a-f]*:	ee 08 0d 49 	min r9,r7,r8
 1.11117 ++ *[0-9a-f]*:	ea 05 0d 4d 	min sp,r5,r5
 1.11118 ++ *[0-9a-f]*:	e2 04 0d 44 	min r4,r1,r4
 1.11119 ++
 1.11120 ++[0-9a-f]* <addabs>:
 1.11121 ++ *[0-9a-f]*:	fe 0f 0e 4f 	addabs pc,pc,pc
 1.11122 ++ *[0-9a-f]*:	f8 0c 0e 4c 	addabs r12,r12,r12
 1.11123 ++ *[0-9a-f]*:	ea 05 0e 45 	addabs r5,r5,r5
 1.11124 ++ *[0-9a-f]*:	e8 04 0e 44 	addabs r4,r4,r4
 1.11125 ++ *[0-9a-f]*:	fc 0e 0e 4e 	addabs lr,lr,lr
 1.11126 ++ *[0-9a-f]*:	f4 00 0e 47 	addabs r7,r10,r0
 1.11127 ++ *[0-9a-f]*:	f2 07 0e 49 	addabs r9,r9,r7
 1.11128 ++ *[0-9a-f]*:	f0 0c 0e 42 	addabs r2,r8,r12
 1.11129 ++
 1.11130 ++[0-9a-f]* <mulnhh_w>:
 1.11131 ++ *[0-9a-f]*:	fe 0f 01 8f 	mulnhh\.w pc,pc:b,pc:b
 1.11132 ++ *[0-9a-f]*:	f8 0c 01 bc 	mulnhh\.w r12,r12:t,r12:t
 1.11133 ++ *[0-9a-f]*:	ea 05 01 b5 	mulnhh\.w r5,r5:t,r5:t
 1.11134 ++ *[0-9a-f]*:	e8 04 01 84 	mulnhh\.w r4,r4:b,r4:b
 1.11135 ++ *[0-9a-f]*:	fc 0e 01 be 	mulnhh\.w lr,lr:t,lr:t
 1.11136 ++ *[0-9a-f]*:	fa 09 01 ab 	mulnhh\.w r11,sp:t,r9:b
 1.11137 ++ *[0-9a-f]*:	e8 0e 01 9d 	mulnhh\.w sp,r4:b,lr:t
 1.11138 ++ *[0-9a-f]*:	e4 0b 01 ac 	mulnhh\.w r12,r2:t,r11:b
 1.11139 ++
 1.11140 ++[0-9a-f]* <mulnwh_d>:
 1.11141 ++ *[0-9a-f]*:	fe 0f 02 80 	mulnwh\.d r0,pc,pc:b
 1.11142 ++ *[0-9a-f]*:	f8 0c 02 9e 	mulnwh\.d lr,r12,r12:t
 1.11143 ++ *[0-9a-f]*:	ea 05 02 98 	mulnwh\.d r8,r5,r5:t
 1.11144 ++ *[0-9a-f]*:	e8 04 02 86 	mulnwh\.d r6,r4,r4:b
 1.11145 ++ *[0-9a-f]*:	fc 0e 02 92 	mulnwh\.d r2,lr,lr:t
 1.11146 ++ *[0-9a-f]*:	e6 02 02 9e 	mulnwh\.d lr,r3,r2:t
 1.11147 ++ *[0-9a-f]*:	ea 09 02 84 	mulnwh\.d r4,r5,r9:b
 1.11148 ++ *[0-9a-f]*:	e8 04 02 9c 	mulnwh\.d r12,r4,r4:t
 1.11149 ++
 1.11150 ++[0-9a-f]* <machh_w>:
 1.11151 ++ *[0-9a-f]*:	fe 0f 04 8f 	machh\.w pc,pc:b,pc:b
 1.11152 ++ *[0-9a-f]*:	f8 0c 04 bc 	machh\.w r12,r12:t,r12:t
 1.11153 ++ *[0-9a-f]*:	ea 05 04 b5 	machh\.w r5,r5:t,r5:t
 1.11154 ++ *[0-9a-f]*:	e8 04 04 84 	machh\.w r4,r4:b,r4:b
 1.11155 ++ *[0-9a-f]*:	fc 0e 04 be 	machh\.w lr,lr:t,lr:t
 1.11156 ++ *[0-9a-f]*:	ea 01 04 9e 	machh\.w lr,r5:b,r1:t
 1.11157 ++ *[0-9a-f]*:	ec 07 04 89 	machh\.w r9,r6:b,r7:b
 1.11158 ++ *[0-9a-f]*:	fc 0c 04 a5 	machh\.w r5,lr:t,r12:b
 1.11159 ++
 1.11160 ++[0-9a-f]* <machh_d>:
 1.11161 ++ *[0-9a-f]*:	fe 0f 05 80 	machh\.d r0,pc:b,pc:b
 1.11162 ++ *[0-9a-f]*:	f8 0c 05 be 	machh\.d lr,r12:t,r12:t
 1.11163 ++ *[0-9a-f]*:	ea 05 05 b8 	machh\.d r8,r5:t,r5:t
 1.11164 ++ *[0-9a-f]*:	e8 04 05 86 	machh\.d r6,r4:b,r4:b
 1.11165 ++ *[0-9a-f]*:	fc 0e 05 b2 	machh\.d r2,lr:t,lr:t
 1.11166 ++ *[0-9a-f]*:	e0 08 05 8a 	machh\.d r10,r0:b,r8:b
 1.11167 ++ *[0-9a-f]*:	e8 05 05 9e 	machh\.d lr,r4:b,r5:t
 1.11168 ++ *[0-9a-f]*:	e0 04 05 98 	machh\.d r8,r0:b,r4:t
 1.11169 ++
 1.11170 ++[0-9a-f]* <macsathh_w>:
 1.11171 ++ *[0-9a-f]*:	fe 0f 06 8f 	macsathh\.w pc,pc:b,pc:b
 1.11172 ++ *[0-9a-f]*:	f8 0c 06 bc 	macsathh\.w r12,r12:t,r12:t
 1.11173 ++ *[0-9a-f]*:	ea 05 06 b5 	macsathh\.w r5,r5:t,r5:t
 1.11174 ++ *[0-9a-f]*:	e8 04 06 84 	macsathh\.w r4,r4:b,r4:b
 1.11175 ++ *[0-9a-f]*:	fc 0e 06 be 	macsathh\.w lr,lr:t,lr:t
 1.11176 ++ *[0-9a-f]*:	ee 0f 06 b7 	macsathh\.w r7,r7:t,pc:t
 1.11177 ++ *[0-9a-f]*:	e4 04 06 a4 	macsathh\.w r4,r2:t,r4:b
 1.11178 ++ *[0-9a-f]*:	f0 03 06 b4 	macsathh\.w r4,r8:t,r3:t
 1.11179 ++
 1.11180 ++[0-9a-f]* <mulhh_w>:
 1.11181 ++ *[0-9a-f]*:	fe 0f 07 8f 	mulhh\.w pc,pc:b,pc:b
 1.11182 ++ *[0-9a-f]*:	f8 0c 07 bc 	mulhh\.w r12,r12:t,r12:t
 1.11183 ++ *[0-9a-f]*:	ea 05 07 b5 	mulhh\.w r5,r5:t,r5:t
 1.11184 ++ *[0-9a-f]*:	e8 04 07 84 	mulhh\.w r4,r4:b,r4:b
 1.11185 ++ *[0-9a-f]*:	fc 0e 07 be 	mulhh\.w lr,lr:t,lr:t
 1.11186 ++ *[0-9a-f]*:	e8 09 07 a7 	mulhh\.w r7,r4:t,r9:b
 1.11187 ++ *[0-9a-f]*:	e6 07 07 bf 	mulhh\.w pc,r3:t,r7:t
 1.11188 ++ *[0-9a-f]*:	e8 09 07 9f 	mulhh\.w pc,r4:b,r9:t
 1.11189 ++
 1.11190 ++[0-9a-f]* <mulsathh_h>:
 1.11191 ++ *[0-9a-f]*:	fe 0f 08 8f 	mulsathh\.h pc,pc:b,pc:b
 1.11192 ++ *[0-9a-f]*:	f8 0c 08 bc 	mulsathh\.h r12,r12:t,r12:t
 1.11193 ++ *[0-9a-f]*:	ea 05 08 b5 	mulsathh\.h r5,r5:t,r5:t
 1.11194 ++ *[0-9a-f]*:	e8 04 08 84 	mulsathh\.h r4,r4:b,r4:b
 1.11195 ++ *[0-9a-f]*:	fc 0e 08 be 	mulsathh\.h lr,lr:t,lr:t
 1.11196 ++ *[0-9a-f]*:	e2 0d 08 83 	mulsathh\.h r3,r1:b,sp:b
 1.11197 ++ *[0-9a-f]*:	fc 0b 08 ab 	mulsathh\.h r11,lr:t,r11:b
 1.11198 ++ *[0-9a-f]*:	f0 0b 08 98 	mulsathh\.h r8,r8:b,r11:t
 1.11199 ++
 1.11200 ++[0-9a-f]* <mulsathh_w>:
 1.11201 ++ *[0-9a-f]*:	fe 0f 09 8f 	mulsathh\.w pc,pc:b,pc:b
 1.11202 ++ *[0-9a-f]*:	f8 0c 09 bc 	mulsathh\.w r12,r12:t,r12:t
 1.11203 ++ *[0-9a-f]*:	ea 05 09 b5 	mulsathh\.w r5,r5:t,r5:t
 1.11204 ++ *[0-9a-f]*:	e8 04 09 84 	mulsathh\.w r4,r4:b,r4:b
 1.11205 ++ *[0-9a-f]*:	fc 0e 09 be 	mulsathh\.w lr,lr:t,lr:t
 1.11206 ++ *[0-9a-f]*:	f6 06 09 ae 	mulsathh\.w lr,r11:t,r6:b
 1.11207 ++ *[0-9a-f]*:	ec 07 09 96 	mulsathh\.w r6,r6:b,r7:t
 1.11208 ++ *[0-9a-f]*:	e4 03 09 8a 	mulsathh\.w r10,r2:b,r3:b
 1.11209 ++
 1.11210 ++[0-9a-f]* <mulsatrndhh_h>:
 1.11211 ++ *[0-9a-f]*:	fe 0f 0a 8f 	mulsatrndhh\.h pc,pc:b,pc:b
 1.11212 ++ *[0-9a-f]*:	f8 0c 0a bc 	mulsatrndhh\.h r12,r12:t,r12:t
 1.11213 ++ *[0-9a-f]*:	ea 05 0a b5 	mulsatrndhh\.h r5,r5:t,r5:t
 1.11214 ++ *[0-9a-f]*:	e8 04 0a 84 	mulsatrndhh\.h r4,r4:b,r4:b
 1.11215 ++ *[0-9a-f]*:	fc 0e 0a be 	mulsatrndhh\.h lr,lr:t,lr:t
 1.11216 ++ *[0-9a-f]*:	ec 09 0a 8b 	mulsatrndhh\.h r11,r6:b,r9:b
 1.11217 ++ *[0-9a-f]*:	e6 08 0a 9b 	mulsatrndhh\.h r11,r3:b,r8:t
 1.11218 ++ *[0-9a-f]*:	fa 07 0a b5 	mulsatrndhh\.h r5,sp:t,r7:t
 1.11219 ++
 1.11220 ++[0-9a-f]* <mulsatrndwh_w>:
 1.11221 ++ *[0-9a-f]*:	fe 0f 0b 8f 	mulsatrndwh\.w pc,pc,pc:b
 1.11222 ++ *[0-9a-f]*:	f8 0c 0b 9c 	mulsatrndwh\.w r12,r12,r12:t
 1.11223 ++ *[0-9a-f]*:	ea 05 0b 95 	mulsatrndwh\.w r5,r5,r5:t
 1.11224 ++ *[0-9a-f]*:	e8 04 0b 84 	mulsatrndwh\.w r4,r4,r4:b
 1.11225 ++ *[0-9a-f]*:	fc 0e 0b 9e 	mulsatrndwh\.w lr,lr,lr:t
 1.11226 ++ *[0-9a-f]*:	f8 00 0b 85 	mulsatrndwh\.w r5,r12,r0:b
 1.11227 ++ *[0-9a-f]*:	f4 0f 0b 87 	mulsatrndwh\.w r7,r10,pc:b
 1.11228 ++ *[0-9a-f]*:	f0 05 0b 9a 	mulsatrndwh\.w r10,r8,r5:t
 1.11229 ++
 1.11230 ++[0-9a-f]* <macwh_d>:
 1.11231 ++ *[0-9a-f]*:	fe 0f 0c 80 	macwh\.d r0,pc,pc:b
 1.11232 ++ *[0-9a-f]*:	f8 0c 0c 9e 	macwh\.d lr,r12,r12:t
 1.11233 ++ *[0-9a-f]*:	ea 05 0c 98 	macwh\.d r8,r5,r5:t
 1.11234 ++ *[0-9a-f]*:	e8 04 0c 86 	macwh\.d r6,r4,r4:b
 1.11235 ++ *[0-9a-f]*:	fc 0e 0c 92 	macwh\.d r2,lr,lr:t
 1.11236 ++ *[0-9a-f]*:	f4 0c 0c 94 	macwh\.d r4,r10,r12:t
 1.11237 ++ *[0-9a-f]*:	ee 0d 0c 84 	macwh\.d r4,r7,sp:b
 1.11238 ++ *[0-9a-f]*:	f2 0b 0c 8e 	macwh\.d lr,r9,r11:b
 1.11239 ++
 1.11240 ++[0-9a-f]* <mulwh_d>:
 1.11241 ++ *[0-9a-f]*:	fe 0f 0d 80 	mulwh\.d r0,pc,pc:b
 1.11242 ++ *[0-9a-f]*:	f8 0c 0d 9e 	mulwh\.d lr,r12,r12:t
 1.11243 ++ *[0-9a-f]*:	ea 05 0d 98 	mulwh\.d r8,r5,r5:t
 1.11244 ++ *[0-9a-f]*:	e8 04 0d 86 	mulwh\.d r6,r4,r4:b
 1.11245 ++ *[0-9a-f]*:	fc 0e 0d 92 	mulwh\.d r2,lr,lr:t
 1.11246 ++ *[0-9a-f]*:	ea 01 0d 8c 	mulwh\.d r12,r5,r1:b
 1.11247 ++ *[0-9a-f]*:	e2 03 0d 90 	mulwh\.d r0,r1,r3:t
 1.11248 ++ *[0-9a-f]*:	f2 02 0d 80 	mulwh\.d r0,r9,r2:b
 1.11249 ++
 1.11250 ++[0-9a-f]* <mulsatwh_w>:
 1.11251 ++ *[0-9a-f]*:	fe 0f 0e 8f 	mulsatwh\.w pc,pc,pc:b
 1.11252 ++ *[0-9a-f]*:	f8 0c 0e 9c 	mulsatwh\.w r12,r12,r12:t
 1.11253 ++ *[0-9a-f]*:	ea 05 0e 95 	mulsatwh\.w r5,r5,r5:t
 1.11254 ++ *[0-9a-f]*:	e8 04 0e 84 	mulsatwh\.w r4,r4,r4:b
 1.11255 ++ *[0-9a-f]*:	fc 0e 0e 9e 	mulsatwh\.w lr,lr,lr:t
 1.11256 ++ *[0-9a-f]*:	fe 0a 0e 9b 	mulsatwh\.w r11,pc,r10:t
 1.11257 ++ *[0-9a-f]*:	f8 09 0e 9d 	mulsatwh\.w sp,r12,r9:t
 1.11258 ++ *[0-9a-f]*:	e6 02 0e 90 	mulsatwh\.w r0,r3,r2:t
 1.11259 ++
 1.11260 ++[0-9a-f]* <ldw7>:
 1.11261 ++ *[0-9a-f]*:	fe 0f 0f 8f 	ld\.w pc,pc\[pc:b<<2\]
 1.11262 ++ *[0-9a-f]*:	f8 0c 0f bc 	ld\.w r12,r12\[r12:t<<2\]
 1.11263 ++ *[0-9a-f]*:	ea 05 0f a5 	ld\.w r5,r5\[r5:u<<2\]
 1.11264 ++ *[0-9a-f]*:	e8 04 0f 94 	ld\.w r4,r4\[r4:l<<2\]
 1.11265 ++ *[0-9a-f]*:	fc 0e 0f 9e 	ld\.w lr,lr\[lr:l<<2\]
 1.11266 ++ *[0-9a-f]*:	f4 06 0f 99 	ld\.w r9,r10\[r6:l<<2\]
 1.11267 ++ *[0-9a-f]*:	f4 0a 0f 82 	ld\.w r2,r10\[r10:b<<2\]
 1.11268 ++ *[0-9a-f]*:	ea 0f 0f 8b 	ld\.w r11,r5\[pc:b<<2\]
 1.11269 ++
 1.11270 ++[0-9a-f]* <satadd_w>:
 1.11271 ++ *[0-9a-f]*:	fe 0f 00 cf 	satadd\.w pc,pc,pc
 1.11272 ++ *[0-9a-f]*:	f8 0c 00 cc 	satadd\.w r12,r12,r12
 1.11273 ++ *[0-9a-f]*:	ea 05 00 c5 	satadd\.w r5,r5,r5
 1.11274 ++ *[0-9a-f]*:	e8 04 00 c4 	satadd\.w r4,r4,r4
 1.11275 ++ *[0-9a-f]*:	fc 0e 00 ce 	satadd\.w lr,lr,lr
 1.11276 ++ *[0-9a-f]*:	f0 0b 00 c4 	satadd\.w r4,r8,r11
 1.11277 ++ *[0-9a-f]*:	f8 06 00 c3 	satadd\.w r3,r12,r6
 1.11278 ++ *[0-9a-f]*:	fc 09 00 c3 	satadd\.w r3,lr,r9
 1.11279 ++
 1.11280 ++[0-9a-f]* <satsub_w1>:
 1.11281 ++ *[0-9a-f]*:	fe 0f 01 cf 	satsub\.w pc,pc,pc
 1.11282 ++ *[0-9a-f]*:	f8 0c 01 cc 	satsub\.w r12,r12,r12
 1.11283 ++ *[0-9a-f]*:	ea 05 01 c5 	satsub\.w r5,r5,r5
 1.11284 ++ *[0-9a-f]*:	e8 04 01 c4 	satsub\.w r4,r4,r4
 1.11285 ++ *[0-9a-f]*:	fc 0e 01 ce 	satsub\.w lr,lr,lr
 1.11286 ++ *[0-9a-f]*:	fa 00 01 c8 	satsub\.w r8,sp,r0
 1.11287 ++ *[0-9a-f]*:	f0 04 01 c9 	satsub\.w r9,r8,r4
 1.11288 ++ *[0-9a-f]*:	fc 02 01 cf 	satsub\.w pc,lr,r2
 1.11289 ++
 1.11290 ++[0-9a-f]* <satadd_h>:
 1.11291 ++ *[0-9a-f]*:	fe 0f 02 cf 	satadd\.h pc,pc,pc
 1.11292 ++ *[0-9a-f]*:	f8 0c 02 cc 	satadd\.h r12,r12,r12
 1.11293 ++ *[0-9a-f]*:	ea 05 02 c5 	satadd\.h r5,r5,r5
 1.11294 ++ *[0-9a-f]*:	e8 04 02 c4 	satadd\.h r4,r4,r4
 1.11295 ++ *[0-9a-f]*:	fc 0e 02 ce 	satadd\.h lr,lr,lr
 1.11296 ++ *[0-9a-f]*:	e6 09 02 c7 	satadd\.h r7,r3,r9
 1.11297 ++ *[0-9a-f]*:	e0 02 02 c1 	satadd\.h r1,r0,r2
 1.11298 ++ *[0-9a-f]*:	e8 0e 02 c1 	satadd\.h r1,r4,lr
 1.11299 ++
 1.11300 ++[0-9a-f]* <satsub_h>:
 1.11301 ++ *[0-9a-f]*:	fe 0f 03 cf 	satsub\.h pc,pc,pc
 1.11302 ++ *[0-9a-f]*:	f8 0c 03 cc 	satsub\.h r12,r12,r12
 1.11303 ++ *[0-9a-f]*:	ea 05 03 c5 	satsub\.h r5,r5,r5
 1.11304 ++ *[0-9a-f]*:	e8 04 03 c4 	satsub\.h r4,r4,r4
 1.11305 ++ *[0-9a-f]*:	fc 0e 03 ce 	satsub\.h lr,lr,lr
 1.11306 ++ *[0-9a-f]*:	fc 03 03 ce 	satsub\.h lr,lr,r3
 1.11307 ++ *[0-9a-f]*:	ec 05 03 cb 	satsub\.h r11,r6,r5
 1.11308 ++ *[0-9a-f]*:	fa 00 03 c3 	satsub\.h r3,sp,r0
 1.11309 ++
 1.11310 ++[0-9a-f]* <mul3>:
 1.11311 ++ *[0-9a-f]*:	fe 0f 10 00 	mul pc,pc,0
 1.11312 ++ *[0-9a-f]*:	f8 0c 10 ff 	mul r12,r12,-1
 1.11313 ++ *[0-9a-f]*:	ea 05 10 80 	mul r5,r5,-128
 1.11314 ++ *[0-9a-f]*:	e8 04 10 7f 	mul r4,r4,127
 1.11315 ++ *[0-9a-f]*:	fc 0e 10 01 	mul lr,lr,1
 1.11316 ++ *[0-9a-f]*:	e4 0c 10 f9 	mul r12,r2,-7
 1.11317 ++ *[0-9a-f]*:	fe 01 10 5f 	mul r1,pc,95
 1.11318 ++ *[0-9a-f]*:	ec 04 10 13 	mul r4,r6,19
 1.11319 ++
 1.11320 ++[0-9a-f]* <rsub2>:
 1.11321 ++ *[0-9a-f]*:	fe 0f 11 00 	rsub pc,pc,0
 1.11322 ++ *[0-9a-f]*:	f8 0c 11 ff 	rsub r12,r12,-1
 1.11323 ++ *[0-9a-f]*:	ea 05 11 80 	rsub r5,r5,-128
 1.11324 ++ *[0-9a-f]*:	e8 04 11 7f 	rsub r4,r4,127
 1.11325 ++ *[0-9a-f]*:	fc 0e 11 01 	rsub lr,lr,1
 1.11326 ++ *[0-9a-f]*:	fc 09 11 60 	rsub r9,lr,96
 1.11327 ++ *[0-9a-f]*:	e2 0b 11 38 	rsub r11,r1,56
 1.11328 ++ *[0-9a-f]*:	ee 00 11 a9 	rsub r0,r7,-87
 1.11329 ++
 1.11330 ++[0-9a-f]* <clz>:
 1.11331 ++ *[0-9a-f]*:	fe 0f 12 00 	clz pc,pc
 1.11332 ++ *[0-9a-f]*:	f8 0c 12 00 	clz r12,r12
 1.11333 ++ *[0-9a-f]*:	ea 05 12 00 	clz r5,r5
 1.11334 ++ *[0-9a-f]*:	e8 04 12 00 	clz r4,r4
 1.11335 ++ *[0-9a-f]*:	fc 0e 12 00 	clz lr,lr
 1.11336 ++ *[0-9a-f]*:	e6 02 12 00 	clz r2,r3
 1.11337 ++ *[0-9a-f]*:	f6 05 12 00 	clz r5,r11
 1.11338 ++ *[0-9a-f]*:	e6 0f 12 00 	clz pc,r3
 1.11339 ++
 1.11340 ++[0-9a-f]* <cpc1>:
 1.11341 ++ *[0-9a-f]*:	fe 0f 13 00 	cpc pc,pc
 1.11342 ++ *[0-9a-f]*:	f8 0c 13 00 	cpc r12,r12
 1.11343 ++ *[0-9a-f]*:	ea 05 13 00 	cpc r5,r5
 1.11344 ++ *[0-9a-f]*:	e8 04 13 00 	cpc r4,r4
 1.11345 ++ *[0-9a-f]*:	fc 0e 13 00 	cpc lr,lr
 1.11346 ++ *[0-9a-f]*:	e8 0f 13 00 	cpc pc,r4
 1.11347 ++ *[0-9a-f]*:	f2 05 13 00 	cpc r5,r9
 1.11348 ++ *[0-9a-f]*:	ee 06 13 00 	cpc r6,r7
 1.11349 ++
 1.11350 ++[0-9a-f]* <asr3>:
 1.11351 ++ *[0-9a-f]*:	fe 0f 14 00 	asr pc,pc,0x0
 1.11352 ++ *[0-9a-f]*:	f8 0c 14 1f 	asr r12,r12,0x1f
 1.11353 ++ *[0-9a-f]*:	ea 05 14 10 	asr r5,r5,0x10
 1.11354 ++ *[0-9a-f]*:	e8 04 14 0f 	asr r4,r4,0xf
 1.11355 ++ *[0-9a-f]*:	fc 0e 14 01 	asr lr,lr,0x1
 1.11356 ++ *[0-9a-f]*:	f6 04 14 13 	asr r4,r11,0x13
 1.11357 ++ *[0-9a-f]*:	fe 0d 14 1a 	asr sp,pc,0x1a
 1.11358 ++ *[0-9a-f]*:	fa 0b 14 08 	asr r11,sp,0x8
 1.11359 ++
 1.11360 ++[0-9a-f]* <lsl3>:
 1.11361 ++ *[0-9a-f]*:	fe 0f 15 00 	lsl pc,pc,0x0
 1.11362 ++ *[0-9a-f]*:	f8 0c 15 1f 	lsl r12,r12,0x1f
 1.11363 ++ *[0-9a-f]*:	ea 05 15 10 	lsl r5,r5,0x10
 1.11364 ++ *[0-9a-f]*:	e8 04 15 0f 	lsl r4,r4,0xf
 1.11365 ++ *[0-9a-f]*:	fc 0e 15 01 	lsl lr,lr,0x1
 1.11366 ++ *[0-9a-f]*:	f4 08 15 11 	lsl r8,r10,0x11
 1.11367 ++ *[0-9a-f]*:	fc 02 15 03 	lsl r2,lr,0x3
 1.11368 ++ *[0-9a-f]*:	f6 0e 15 0e 	lsl lr,r11,0xe
 1.11369 ++
 1.11370 ++[0-9a-f]* <lsr3>:
 1.11371 ++ *[0-9a-f]*:	fe 0f 16 00 	lsr pc,pc,0x0
 1.11372 ++ *[0-9a-f]*:	f8 0c 16 1f 	lsr r12,r12,0x1f
 1.11373 ++ *[0-9a-f]*:	ea 05 16 10 	lsr r5,r5,0x10
 1.11374 ++ *[0-9a-f]*:	e8 04 16 0f 	lsr r4,r4,0xf
 1.11375 ++ *[0-9a-f]*:	fc 0e 16 01 	lsr lr,lr,0x1
 1.11376 ++ *[0-9a-f]*:	e6 04 16 1f 	lsr r4,r3,0x1f
 1.11377 ++ *[0-9a-f]*:	f2 0f 16 0e 	lsr pc,r9,0xe
 1.11378 ++ *[0-9a-f]*:	e0 03 16 06 	lsr r3,r0,0x6
 1.11379 ++
 1.11380 ++[0-9a-f]* <movc1>:
 1.11381 ++ *[0-9a-f]*:	fe 0f 17 00 	moveq pc,pc
 1.11382 ++ *[0-9a-f]*:	f8 0c 17 f0 	moval r12,r12
 1.11383 ++ *[0-9a-f]*:	ea 05 17 80 	movls r5,r5
 1.11384 ++ *[0-9a-f]*:	e8 04 17 70 	movpl r4,r4
 1.11385 ++ *[0-9a-f]*:	fc 0e 17 10 	movne lr,lr
 1.11386 ++ *[0-9a-f]*:	f6 0f 17 10 	movne pc,r11
 1.11387 ++ *[0-9a-f]*:	e4 0a 17 60 	movmi r10,r2
 1.11388 ++ *[0-9a-f]*:	f8 08 17 80 	movls r8,r12
 1.11389 ++
 1.11390 ++[0-9a-f]* <padd_h>:
 1.11391 ++ *[0-9a-f]*:	fe 0f 20 0f 	padd\.h pc,pc,pc
 1.11392 ++ *[0-9a-f]*:	f8 0c 20 0c 	padd\.h r12,r12,r12
 1.11393 ++ *[0-9a-f]*:	ea 05 20 05 	padd\.h r5,r5,r5
 1.11394 ++ *[0-9a-f]*:	e8 04 20 04 	padd\.h r4,r4,r4
 1.11395 ++ *[0-9a-f]*:	fc 0e 20 0e 	padd\.h lr,lr,lr
 1.11396 ++ *[0-9a-f]*:	e4 07 20 08 	padd\.h r8,r2,r7
 1.11397 ++ *[0-9a-f]*:	e0 03 20 00 	padd\.h r0,r0,r3
 1.11398 ++ *[0-9a-f]*:	f6 06 20 0d 	padd\.h sp,r11,r6
 1.11399 ++
 1.11400 ++[0-9a-f]* <psub_h>:
 1.11401 ++ *[0-9a-f]*:	fe 0f 20 1f 	psub\.h pc,pc,pc
 1.11402 ++ *[0-9a-f]*:	f8 0c 20 1c 	psub\.h r12,r12,r12
 1.11403 ++ *[0-9a-f]*:	ea 05 20 15 	psub\.h r5,r5,r5
 1.11404 ++ *[0-9a-f]*:	e8 04 20 14 	psub\.h r4,r4,r4
 1.11405 ++ *[0-9a-f]*:	fc 0e 20 1e 	psub\.h lr,lr,lr
 1.11406 ++ *[0-9a-f]*:	ec 08 20 1e 	psub\.h lr,r6,r8
 1.11407 ++ *[0-9a-f]*:	e2 0d 20 10 	psub\.h r0,r1,sp
 1.11408 ++ *[0-9a-f]*:	fe 0d 20 1f 	psub\.h pc,pc,sp
 1.11409 ++
 1.11410 ++[0-9a-f]* <paddx_h>:
 1.11411 ++ *[0-9a-f]*:	fe 0f 20 2f 	paddx\.h pc,pc,pc
 1.11412 ++ *[0-9a-f]*:	f8 0c 20 2c 	paddx\.h r12,r12,r12
 1.11413 ++ *[0-9a-f]*:	ea 05 20 25 	paddx\.h r5,r5,r5
 1.11414 ++ *[0-9a-f]*:	e8 04 20 24 	paddx\.h r4,r4,r4
 1.11415 ++ *[0-9a-f]*:	fc 0e 20 2e 	paddx\.h lr,lr,lr
 1.11416 ++ *[0-9a-f]*:	fe 01 20 2f 	paddx\.h pc,pc,r1
 1.11417 ++ *[0-9a-f]*:	e8 05 20 2a 	paddx\.h r10,r4,r5
 1.11418 ++ *[0-9a-f]*:	fe 02 20 25 	paddx\.h r5,pc,r2
 1.11419 ++
 1.11420 ++[0-9a-f]* <psubx_h>:
 1.11421 ++ *[0-9a-f]*:	fe 0f 20 3f 	psubx\.h pc,pc,pc
 1.11422 ++ *[0-9a-f]*:	f8 0c 20 3c 	psubx\.h r12,r12,r12
 1.11423 ++ *[0-9a-f]*:	ea 05 20 35 	psubx\.h r5,r5,r5
 1.11424 ++ *[0-9a-f]*:	e8 04 20 34 	psubx\.h r4,r4,r4
 1.11425 ++ *[0-9a-f]*:	fc 0e 20 3e 	psubx\.h lr,lr,lr
 1.11426 ++ *[0-9a-f]*:	f8 05 20 35 	psubx\.h r5,r12,r5
 1.11427 ++ *[0-9a-f]*:	f0 03 20 33 	psubx\.h r3,r8,r3
 1.11428 ++ *[0-9a-f]*:	e4 03 20 35 	psubx\.h r5,r2,r3
 1.11429 ++
 1.11430 ++[0-9a-f]* <padds_sh>:
 1.11431 ++ *[0-9a-f]*:	fe 0f 20 4f 	padds\.sh pc,pc,pc
 1.11432 ++ *[0-9a-f]*:	f8 0c 20 4c 	padds\.sh r12,r12,r12
 1.11433 ++ *[0-9a-f]*:	ea 05 20 45 	padds\.sh r5,r5,r5
 1.11434 ++ *[0-9a-f]*:	e8 04 20 44 	padds\.sh r4,r4,r4
 1.11435 ++ *[0-9a-f]*:	fc 0e 20 4e 	padds\.sh lr,lr,lr
 1.11436 ++ *[0-9a-f]*:	fc 02 20 49 	padds\.sh r9,lr,r2
 1.11437 ++ *[0-9a-f]*:	f0 01 20 46 	padds\.sh r6,r8,r1
 1.11438 ++ *[0-9a-f]*:	e8 0a 20 46 	padds\.sh r6,r4,r10
 1.11439 ++
 1.11440 ++[0-9a-f]* <psubs_sh>:
 1.11441 ++ *[0-9a-f]*:	fe 0f 20 5f 	psubs\.sh pc,pc,pc
 1.11442 ++ *[0-9a-f]*:	f8 0c 20 5c 	psubs\.sh r12,r12,r12
 1.11443 ++ *[0-9a-f]*:	ea 05 20 55 	psubs\.sh r5,r5,r5
 1.11444 ++ *[0-9a-f]*:	e8 04 20 54 	psubs\.sh r4,r4,r4
 1.11445 ++ *[0-9a-f]*:	fc 0e 20 5e 	psubs\.sh lr,lr,lr
 1.11446 ++ *[0-9a-f]*:	fc 0b 20 56 	psubs\.sh r6,lr,r11
 1.11447 ++ *[0-9a-f]*:	f8 04 20 52 	psubs\.sh r2,r12,r4
 1.11448 ++ *[0-9a-f]*:	f2 00 20 50 	psubs\.sh r0,r9,r0
 1.11449 ++
 1.11450 ++[0-9a-f]* <paddxs_sh>:
 1.11451 ++ *[0-9a-f]*:	fe 0f 20 6f 	paddxs\.sh pc,pc,pc
 1.11452 ++ *[0-9a-f]*:	f8 0c 20 6c 	paddxs\.sh r12,r12,r12
 1.11453 ++ *[0-9a-f]*:	ea 05 20 65 	paddxs\.sh r5,r5,r5
 1.11454 ++ *[0-9a-f]*:	e8 04 20 64 	paddxs\.sh r4,r4,r4
 1.11455 ++ *[0-9a-f]*:	fc 0e 20 6e 	paddxs\.sh lr,lr,lr
 1.11456 ++ *[0-9a-f]*:	e6 09 20 60 	paddxs\.sh r0,r3,r9
 1.11457 ++ *[0-9a-f]*:	f4 0b 20 6f 	paddxs\.sh pc,r10,r11
 1.11458 ++ *[0-9a-f]*:	f4 0f 20 6f 	paddxs\.sh pc,r10,pc
 1.11459 ++
 1.11460 ++[0-9a-f]* <psubxs_sh>:
 1.11461 ++ *[0-9a-f]*:	fe 0f 20 7f 	psubxs\.sh pc,pc,pc
 1.11462 ++ *[0-9a-f]*:	f8 0c 20 7c 	psubxs\.sh r12,r12,r12
 1.11463 ++ *[0-9a-f]*:	ea 05 20 75 	psubxs\.sh r5,r5,r5
 1.11464 ++ *[0-9a-f]*:	e8 04 20 74 	psubxs\.sh r4,r4,r4
 1.11465 ++ *[0-9a-f]*:	fc 0e 20 7e 	psubxs\.sh lr,lr,lr
 1.11466 ++ *[0-9a-f]*:	e8 04 20 77 	psubxs\.sh r7,r4,r4
 1.11467 ++ *[0-9a-f]*:	f0 03 20 77 	psubxs\.sh r7,r8,r3
 1.11468 ++ *[0-9a-f]*:	ec 05 20 7f 	psubxs\.sh pc,r6,r5
 1.11469 ++
 1.11470 ++[0-9a-f]* <padds_uh>:
 1.11471 ++ *[0-9a-f]*:	fe 0f 20 8f 	padds\.uh pc,pc,pc
 1.11472 ++ *[0-9a-f]*:	f8 0c 20 8c 	padds\.uh r12,r12,r12
 1.11473 ++ *[0-9a-f]*:	ea 05 20 85 	padds\.uh r5,r5,r5
 1.11474 ++ *[0-9a-f]*:	e8 04 20 84 	padds\.uh r4,r4,r4
 1.11475 ++ *[0-9a-f]*:	fc 0e 20 8e 	padds\.uh lr,lr,lr
 1.11476 ++ *[0-9a-f]*:	f6 07 20 8c 	padds\.uh r12,r11,r7
 1.11477 ++ *[0-9a-f]*:	f0 0e 20 87 	padds\.uh r7,r8,lr
 1.11478 ++ *[0-9a-f]*:	f2 07 20 86 	padds\.uh r6,r9,r7
 1.11479 ++
 1.11480 ++[0-9a-f]* <psubs_uh>:
 1.11481 ++ *[0-9a-f]*:	fe 0f 20 9f 	psubs\.uh pc,pc,pc
 1.11482 ++ *[0-9a-f]*:	f8 0c 20 9c 	psubs\.uh r12,r12,r12
 1.11483 ++ *[0-9a-f]*:	ea 05 20 95 	psubs\.uh r5,r5,r5
 1.11484 ++ *[0-9a-f]*:	e8 04 20 94 	psubs\.uh r4,r4,r4
 1.11485 ++ *[0-9a-f]*:	fc 0e 20 9e 	psubs\.uh lr,lr,lr
 1.11486 ++ *[0-9a-f]*:	f4 06 20 9e 	psubs\.uh lr,r10,r6
 1.11487 ++ *[0-9a-f]*:	e4 0f 20 9d 	psubs\.uh sp,r2,pc
 1.11488 ++ *[0-9a-f]*:	f2 02 20 92 	psubs\.uh r2,r9,r2
 1.11489 ++
 1.11490 ++[0-9a-f]* <paddxs_uh>:
 1.11491 ++ *[0-9a-f]*:	fe 0f 20 af 	paddxs\.uh pc,pc,pc
 1.11492 ++ *[0-9a-f]*:	f8 0c 20 ac 	paddxs\.uh r12,r12,r12
 1.11493 ++ *[0-9a-f]*:	ea 05 20 a5 	paddxs\.uh r5,r5,r5
 1.11494 ++ *[0-9a-f]*:	e8 04 20 a4 	paddxs\.uh r4,r4,r4
 1.11495 ++ *[0-9a-f]*:	fc 0e 20 ae 	paddxs\.uh lr,lr,lr
 1.11496 ++ *[0-9a-f]*:	f2 05 20 a7 	paddxs\.uh r7,r9,r5
 1.11497 ++ *[0-9a-f]*:	e2 04 20 a9 	paddxs\.uh r9,r1,r4
 1.11498 ++ *[0-9a-f]*:	e4 03 20 a5 	paddxs\.uh r5,r2,r3
 1.11499 ++
 1.11500 ++[0-9a-f]* <psubxs_uh>:
 1.11501 ++ *[0-9a-f]*:	fe 0f 20 bf 	psubxs\.uh pc,pc,pc
 1.11502 ++ *[0-9a-f]*:	f8 0c 20 bc 	psubxs\.uh r12,r12,r12
 1.11503 ++ *[0-9a-f]*:	ea 05 20 b5 	psubxs\.uh r5,r5,r5
 1.11504 ++ *[0-9a-f]*:	e8 04 20 b4 	psubxs\.uh r4,r4,r4
 1.11505 ++ *[0-9a-f]*:	fc 0e 20 be 	psubxs\.uh lr,lr,lr
 1.11506 ++ *[0-9a-f]*:	ea 0d 20 bd 	psubxs\.uh sp,r5,sp
 1.11507 ++ *[0-9a-f]*:	ec 06 20 bd 	psubxs\.uh sp,r6,r6
 1.11508 ++ *[0-9a-f]*:	f6 08 20 b3 	psubxs\.uh r3,r11,r8
 1.11509 ++
 1.11510 ++[0-9a-f]* <paddh_sh>:
 1.11511 ++ *[0-9a-f]*:	fe 0f 20 cf 	paddh\.sh pc,pc,pc
 1.11512 ++ *[0-9a-f]*:	f8 0c 20 cc 	paddh\.sh r12,r12,r12
 1.11513 ++ *[0-9a-f]*:	ea 05 20 c5 	paddh\.sh r5,r5,r5
 1.11514 ++ *[0-9a-f]*:	e8 04 20 c4 	paddh\.sh r4,r4,r4
 1.11515 ++ *[0-9a-f]*:	fc 0e 20 ce 	paddh\.sh lr,lr,lr
 1.11516 ++ *[0-9a-f]*:	fa 03 20 cc 	paddh\.sh r12,sp,r3
 1.11517 ++ *[0-9a-f]*:	ea 03 20 cf 	paddh\.sh pc,r5,r3
 1.11518 ++ *[0-9a-f]*:	f0 0d 20 c8 	paddh\.sh r8,r8,sp
 1.11519 ++
 1.11520 ++[0-9a-f]* <psubh_sh>:
 1.11521 ++ *[0-9a-f]*:	fe 0f 20 df 	psubh\.sh pc,pc,pc
 1.11522 ++ *[0-9a-f]*:	f8 0c 20 dc 	psubh\.sh r12,r12,r12
 1.11523 ++ *[0-9a-f]*:	ea 05 20 d5 	psubh\.sh r5,r5,r5
 1.11524 ++ *[0-9a-f]*:	e8 04 20 d4 	psubh\.sh r4,r4,r4
 1.11525 ++ *[0-9a-f]*:	fc 0e 20 de 	psubh\.sh lr,lr,lr
 1.11526 ++ *[0-9a-f]*:	ea 08 20 d1 	psubh\.sh r1,r5,r8
 1.11527 ++ *[0-9a-f]*:	e6 06 20 d7 	psubh\.sh r7,r3,r6
 1.11528 ++ *[0-9a-f]*:	e6 03 20 d4 	psubh\.sh r4,r3,r3
 1.11529 ++
 1.11530 ++[0-9a-f]* <paddxh_sh>:
 1.11531 ++ *[0-9a-f]*:	fe 0f 20 ef 	paddxh\.sh pc,pc,pc
 1.11532 ++ *[0-9a-f]*:	f8 0c 20 ec 	paddxh\.sh r12,r12,r12
 1.11533 ++ *[0-9a-f]*:	ea 05 20 e5 	paddxh\.sh r5,r5,r5
 1.11534 ++ *[0-9a-f]*:	e8 04 20 e4 	paddxh\.sh r4,r4,r4
 1.11535 ++ *[0-9a-f]*:	fc 0e 20 ee 	paddxh\.sh lr,lr,lr
 1.11536 ++ *[0-9a-f]*:	e0 04 20 e6 	paddxh\.sh r6,r0,r4
 1.11537 ++ *[0-9a-f]*:	f0 09 20 e9 	paddxh\.sh r9,r8,r9
 1.11538 ++ *[0-9a-f]*:	e0 0d 20 e3 	paddxh\.sh r3,r0,sp
 1.11539 ++
 1.11540 ++[0-9a-f]* <psubxh_sh>:
 1.11541 ++ *[0-9a-f]*:	fe 0f 20 ff 	psubxh\.sh pc,pc,pc
 1.11542 ++ *[0-9a-f]*:	f8 0c 20 fc 	psubxh\.sh r12,r12,r12
 1.11543 ++ *[0-9a-f]*:	ea 05 20 f5 	psubxh\.sh r5,r5,r5
 1.11544 ++ *[0-9a-f]*:	e8 04 20 f4 	psubxh\.sh r4,r4,r4
 1.11545 ++ *[0-9a-f]*:	fc 0e 20 fe 	psubxh\.sh lr,lr,lr
 1.11546 ++ *[0-9a-f]*:	fe 0c 20 f4 	psubxh\.sh r4,pc,r12
 1.11547 ++ *[0-9a-f]*:	e8 06 20 f8 	psubxh\.sh r8,r4,r6
 1.11548 ++ *[0-9a-f]*:	f2 04 20 fc 	psubxh\.sh r12,r9,r4
 1.11549 ++
 1.11550 ++[0-9a-f]* <paddsub_h>:
 1.11551 ++ *[0-9a-f]*:	fe 0f 21 0f 	paddsub\.h pc,pc:b,pc:b
 1.11552 ++ *[0-9a-f]*:	f8 0c 21 3c 	paddsub\.h r12,r12:t,r12:t
 1.11553 ++ *[0-9a-f]*:	ea 05 21 35 	paddsub\.h r5,r5:t,r5:t
 1.11554 ++ *[0-9a-f]*:	e8 04 21 04 	paddsub\.h r4,r4:b,r4:b
 1.11555 ++ *[0-9a-f]*:	fc 0e 21 3e 	paddsub\.h lr,lr:t,lr:t
 1.11556 ++ *[0-9a-f]*:	e4 0e 21 25 	paddsub\.h r5,r2:t,lr:b
 1.11557 ++ *[0-9a-f]*:	e2 08 21 07 	paddsub\.h r7,r1:b,r8:b
 1.11558 ++ *[0-9a-f]*:	f4 05 21 36 	paddsub\.h r6,r10:t,r5:t
 1.11559 ++
 1.11560 ++[0-9a-f]* <psubadd_h>:
 1.11561 ++ *[0-9a-f]*:	fe 0f 21 4f 	psubadd\.h pc,pc:b,pc:b
 1.11562 ++ *[0-9a-f]*:	f8 0c 21 7c 	psubadd\.h r12,r12:t,r12:t
 1.11563 ++ *[0-9a-f]*:	ea 05 21 75 	psubadd\.h r5,r5:t,r5:t
 1.11564 ++ *[0-9a-f]*:	e8 04 21 44 	psubadd\.h r4,r4:b,r4:b
 1.11565 ++ *[0-9a-f]*:	fc 0e 21 7e 	psubadd\.h lr,lr:t,lr:t
 1.11566 ++ *[0-9a-f]*:	f6 08 21 79 	psubadd\.h r9,r11:t,r8:t
 1.11567 ++ *[0-9a-f]*:	ee 0e 21 7a 	psubadd\.h r10,r7:t,lr:t
 1.11568 ++ *[0-9a-f]*:	fe 0f 21 66 	psubadd\.h r6,pc:t,pc:b
 1.11569 ++
 1.11570 ++[0-9a-f]* <paddsubs_sh>:
 1.11571 ++ *[0-9a-f]*:	fe 0f 21 8f 	paddsubs\.sh pc,pc:b,pc:b
 1.11572 ++ *[0-9a-f]*:	f8 0c 21 bc 	paddsubs\.sh r12,r12:t,r12:t
 1.11573 ++ *[0-9a-f]*:	ea 05 21 b5 	paddsubs\.sh r5,r5:t,r5:t
 1.11574 ++ *[0-9a-f]*:	e8 04 21 84 	paddsubs\.sh r4,r4:b,r4:b
 1.11575 ++ *[0-9a-f]*:	fc 0e 21 be 	paddsubs\.sh lr,lr:t,lr:t
 1.11576 ++ *[0-9a-f]*:	fc 00 21 a0 	paddsubs\.sh r0,lr:t,r0:b
 1.11577 ++ *[0-9a-f]*:	e4 04 21 b9 	paddsubs\.sh r9,r2:t,r4:t
 1.11578 ++ *[0-9a-f]*:	f2 0d 21 bc 	paddsubs\.sh r12,r9:t,sp:t
 1.11579 ++
 1.11580 ++[0-9a-f]* <psubadds_sh>:
 1.11581 ++ *[0-9a-f]*:	fe 0f 21 cf 	psubadds\.sh pc,pc:b,pc:b
 1.11582 ++ *[0-9a-f]*:	f8 0c 21 fc 	psubadds\.sh r12,r12:t,r12:t
 1.11583 ++ *[0-9a-f]*:	ea 05 21 f5 	psubadds\.sh r5,r5:t,r5:t
 1.11584 ++ *[0-9a-f]*:	e8 04 21 c4 	psubadds\.sh r4,r4:b,r4:b
 1.11585 ++ *[0-9a-f]*:	fc 0e 21 fe 	psubadds\.sh lr,lr:t,lr:t
 1.11586 ++ *[0-9a-f]*:	fc 01 21 df 	psubadds\.sh pc,lr:b,r1:t
 1.11587 ++ *[0-9a-f]*:	e6 0c 21 cb 	psubadds\.sh r11,r3:b,r12:b
 1.11588 ++ *[0-9a-f]*:	e4 08 21 fa 	psubadds\.sh r10,r2:t,r8:t
 1.11589 ++
 1.11590 ++[0-9a-f]* <paddsubs_uh>:
 1.11591 ++ *[0-9a-f]*:	fe 0f 22 0f 	paddsubs\.uh pc,pc:b,pc:b
 1.11592 ++ *[0-9a-f]*:	f8 0c 22 3c 	paddsubs\.uh r12,r12:t,r12:t
 1.11593 ++ *[0-9a-f]*:	ea 05 22 35 	paddsubs\.uh r5,r5:t,r5:t
 1.11594 ++ *[0-9a-f]*:	e8 04 22 04 	paddsubs\.uh r4,r4:b,r4:b
 1.11595 ++ *[0-9a-f]*:	fc 0e 22 3e 	paddsubs\.uh lr,lr:t,lr:t
 1.11596 ++ *[0-9a-f]*:	e4 03 22 09 	paddsubs\.uh r9,r2:b,r3:b
 1.11597 ++ *[0-9a-f]*:	fa 07 22 1d 	paddsubs\.uh sp,sp:b,r7:t
 1.11598 ++ *[0-9a-f]*:	e0 0a 22 1e 	paddsubs\.uh lr,r0:b,r10:t
 1.11599 ++
 1.11600 ++[0-9a-f]* <psubadds_uh>:
 1.11601 ++ *[0-9a-f]*:	fe 0f 22 4f 	psubadds\.uh pc,pc:b,pc:b
 1.11602 ++ *[0-9a-f]*:	f8 0c 22 7c 	psubadds\.uh r12,r12:t,r12:t
 1.11603 ++ *[0-9a-f]*:	ea 05 22 75 	psubadds\.uh r5,r5:t,r5:t
 1.11604 ++ *[0-9a-f]*:	e8 04 22 44 	psubadds\.uh r4,r4:b,r4:b
 1.11605 ++ *[0-9a-f]*:	fc 0e 22 7e 	psubadds\.uh lr,lr:t,lr:t
 1.11606 ++ *[0-9a-f]*:	f2 0f 22 7c 	psubadds\.uh r12,r9:t,pc:t
 1.11607 ++ *[0-9a-f]*:	ec 08 22 48 	psubadds\.uh r8,r6:b,r8:b
 1.11608 ++ *[0-9a-f]*:	f0 04 22 48 	psubadds\.uh r8,r8:b,r4:b
 1.11609 ++
 1.11610 ++[0-9a-f]* <paddsubh_sh>:
 1.11611 ++ *[0-9a-f]*:	fe 0f 22 8f 	paddsubh\.sh pc,pc:b,pc:b
 1.11612 ++ *[0-9a-f]*:	f8 0c 22 bc 	paddsubh\.sh r12,r12:t,r12:t
 1.11613 ++ *[0-9a-f]*:	ea 05 22 b5 	paddsubh\.sh r5,r5:t,r5:t
 1.11614 ++ *[0-9a-f]*:	e8 04 22 84 	paddsubh\.sh r4,r4:b,r4:b
 1.11615 ++ *[0-9a-f]*:	fc 0e 22 be 	paddsubh\.sh lr,lr:t,lr:t
 1.11616 ++ *[0-9a-f]*:	f2 09 22 a8 	paddsubh\.sh r8,r9:t,r9:b
 1.11617 ++ *[0-9a-f]*:	fa 01 22 b0 	paddsubh\.sh r0,sp:t,r1:t
 1.11618 ++ *[0-9a-f]*:	e2 00 22 93 	paddsubh\.sh r3,r1:b,r0:t
 1.11619 ++
 1.11620 ++[0-9a-f]* <psubaddh_sh>:
 1.11621 ++ *[0-9a-f]*:	fe 0f 22 cf 	psubaddh\.sh pc,pc:b,pc:b
 1.11622 ++ *[0-9a-f]*:	f8 0c 22 fc 	psubaddh\.sh r12,r12:t,r12:t
 1.11623 ++ *[0-9a-f]*:	ea 05 22 f5 	psubaddh\.sh r5,r5:t,r5:t
 1.11624 ++ *[0-9a-f]*:	e8 04 22 c4 	psubaddh\.sh r4,r4:b,r4:b
 1.11625 ++ *[0-9a-f]*:	fc 0e 22 fe 	psubaddh\.sh lr,lr:t,lr:t
 1.11626 ++ *[0-9a-f]*:	e6 0a 22 e7 	psubaddh\.sh r7,r3:t,r10:b
 1.11627 ++ *[0-9a-f]*:	e4 01 22 f7 	psubaddh\.sh r7,r2:t,r1:t
 1.11628 ++ *[0-9a-f]*:	e6 06 22 cb 	psubaddh\.sh r11,r3:b,r6:b
 1.11629 ++
 1.11630 ++[0-9a-f]* <padd_b>:
 1.11631 ++ *[0-9a-f]*:	fe 0f 23 0f 	padd\.b pc,pc,pc
 1.11632 ++ *[0-9a-f]*:	f8 0c 23 0c 	padd\.b r12,r12,r12
 1.11633 ++ *[0-9a-f]*:	ea 05 23 05 	padd\.b r5,r5,r5
 1.11634 ++ *[0-9a-f]*:	e8 04 23 04 	padd\.b r4,r4,r4
 1.11635 ++ *[0-9a-f]*:	fc 0e 23 0e 	padd\.b lr,lr,lr
 1.11636 ++ *[0-9a-f]*:	ec 0f 23 02 	padd\.b r2,r6,pc
 1.11637 ++ *[0-9a-f]*:	f2 0c 23 08 	padd\.b r8,r9,r12
 1.11638 ++ *[0-9a-f]*:	f8 03 23 05 	padd\.b r5,r12,r3
 1.11639 ++
 1.11640 ++[0-9a-f]* <psub_b>:
 1.11641 ++ *[0-9a-f]*:	fe 0f 23 1f 	psub\.b pc,pc,pc
 1.11642 ++ *[0-9a-f]*:	f8 0c 23 1c 	psub\.b r12,r12,r12
 1.11643 ++ *[0-9a-f]*:	ea 05 23 15 	psub\.b r5,r5,r5
 1.11644 ++ *[0-9a-f]*:	e8 04 23 14 	psub\.b r4,r4,r4
 1.11645 ++ *[0-9a-f]*:	fc 0e 23 1e 	psub\.b lr,lr,lr
 1.11646 ++ *[0-9a-f]*:	f8 0f 23 10 	psub\.b r0,r12,pc
 1.11647 ++ *[0-9a-f]*:	fa 0a 23 17 	psub\.b r7,sp,r10
 1.11648 ++ *[0-9a-f]*:	fa 0c 23 15 	psub\.b r5,sp,r12
 1.11649 ++
 1.11650 ++[0-9a-f]* <padds_sb>:
 1.11651 ++ *[0-9a-f]*:	fe 0f 23 2f 	padds\.sb pc,pc,pc
 1.11652 ++ *[0-9a-f]*:	f8 0c 23 2c 	padds\.sb r12,r12,r12
 1.11653 ++ *[0-9a-f]*:	ea 05 23 25 	padds\.sb r5,r5,r5
 1.11654 ++ *[0-9a-f]*:	e8 04 23 24 	padds\.sb r4,r4,r4
 1.11655 ++ *[0-9a-f]*:	fc 0e 23 2e 	padds\.sb lr,lr,lr
 1.11656 ++ *[0-9a-f]*:	f6 04 23 2d 	padds\.sb sp,r11,r4
 1.11657 ++ *[0-9a-f]*:	f4 0b 23 2b 	padds\.sb r11,r10,r11
 1.11658 ++ *[0-9a-f]*:	f8 06 23 25 	padds\.sb r5,r12,r6
 1.11659 ++
 1.11660 ++[0-9a-f]* <psubs_sb>:
 1.11661 ++ *[0-9a-f]*:	fe 0f 23 3f 	psubs\.sb pc,pc,pc
 1.11662 ++ *[0-9a-f]*:	f8 0c 23 3c 	psubs\.sb r12,r12,r12
 1.11663 ++ *[0-9a-f]*:	ea 05 23 35 	psubs\.sb r5,r5,r5
 1.11664 ++ *[0-9a-f]*:	e8 04 23 34 	psubs\.sb r4,r4,r4
 1.11665 ++ *[0-9a-f]*:	fc 0e 23 3e 	psubs\.sb lr,lr,lr
 1.11666 ++ *[0-9a-f]*:	ec 08 23 37 	psubs\.sb r7,r6,r8
 1.11667 ++ *[0-9a-f]*:	f4 09 23 3c 	psubs\.sb r12,r10,r9
 1.11668 ++ *[0-9a-f]*:	f6 00 23 3f 	psubs\.sb pc,r11,r0
 1.11669 ++
 1.11670 ++[0-9a-f]* <padds_ub>:
 1.11671 ++ *[0-9a-f]*:	fe 0f 23 4f 	padds\.ub pc,pc,pc
 1.11672 ++ *[0-9a-f]*:	f8 0c 23 4c 	padds\.ub r12,r12,r12
 1.11673 ++ *[0-9a-f]*:	ea 05 23 45 	padds\.ub r5,r5,r5
 1.11674 ++ *[0-9a-f]*:	e8 04 23 44 	padds\.ub r4,r4,r4
 1.11675 ++ *[0-9a-f]*:	fc 0e 23 4e 	padds\.ub lr,lr,lr
 1.11676 ++ *[0-9a-f]*:	e4 0b 23 43 	padds\.ub r3,r2,r11
 1.11677 ++ *[0-9a-f]*:	f0 01 23 4a 	padds\.ub r10,r8,r1
 1.11678 ++ *[0-9a-f]*:	f0 0a 23 4b 	padds\.ub r11,r8,r10
 1.11679 ++
 1.11680 ++[0-9a-f]* <psubs_ub>:
 1.11681 ++ *[0-9a-f]*:	fe 0f 23 5f 	psubs\.ub pc,pc,pc
 1.11682 ++ *[0-9a-f]*:	f8 0c 23 5c 	psubs\.ub r12,r12,r12
 1.11683 ++ *[0-9a-f]*:	ea 05 23 55 	psubs\.ub r5,r5,r5
 1.11684 ++ *[0-9a-f]*:	e8 04 23 54 	psubs\.ub r4,r4,r4
 1.11685 ++ *[0-9a-f]*:	fc 0e 23 5e 	psubs\.ub lr,lr,lr
 1.11686 ++ *[0-9a-f]*:	e4 07 23 50 	psubs\.ub r0,r2,r7
 1.11687 ++ *[0-9a-f]*:	ea 03 23 5e 	psubs\.ub lr,r5,r3
 1.11688 ++ *[0-9a-f]*:	ee 09 23 56 	psubs\.ub r6,r7,r9
 1.11689 ++
 1.11690 ++[0-9a-f]* <paddh_ub>:
 1.11691 ++ *[0-9a-f]*:	fe 0f 23 6f 	paddh\.ub pc,pc,pc
 1.11692 ++ *[0-9a-f]*:	f8 0c 23 6c 	paddh\.ub r12,r12,r12
 1.11693 ++ *[0-9a-f]*:	ea 05 23 65 	paddh\.ub r5,r5,r5
 1.11694 ++ *[0-9a-f]*:	e8 04 23 64 	paddh\.ub r4,r4,r4
 1.11695 ++ *[0-9a-f]*:	fc 0e 23 6e 	paddh\.ub lr,lr,lr
 1.11696 ++ *[0-9a-f]*:	e2 00 23 6e 	paddh\.ub lr,r1,r0
 1.11697 ++ *[0-9a-f]*:	ee 07 23 62 	paddh\.ub r2,r7,r7
 1.11698 ++ *[0-9a-f]*:	e2 02 23 62 	paddh\.ub r2,r1,r2
 1.11699 ++
 1.11700 ++[0-9a-f]* <psubh_ub>:
 1.11701 ++ *[0-9a-f]*:	fe 0f 23 7f 	psubh\.ub pc,pc,pc
 1.11702 ++ *[0-9a-f]*:	f8 0c 23 7c 	psubh\.ub r12,r12,r12
 1.11703 ++ *[0-9a-f]*:	ea 05 23 75 	psubh\.ub r5,r5,r5
 1.11704 ++ *[0-9a-f]*:	e8 04 23 74 	psubh\.ub r4,r4,r4
 1.11705 ++ *[0-9a-f]*:	fc 0e 23 7e 	psubh\.ub lr,lr,lr
 1.11706 ++ *[0-9a-f]*:	e2 06 23 70 	psubh\.ub r0,r1,r6
 1.11707 ++ *[0-9a-f]*:	fc 0a 23 74 	psubh\.ub r4,lr,r10
 1.11708 ++ *[0-9a-f]*:	f0 01 23 79 	psubh\.ub r9,r8,r1
 1.11709 ++
 1.11710 ++[0-9a-f]* <pmax_ub>:
 1.11711 ++ *[0-9a-f]*:	fe 0f 23 8f 	pmax\.ub pc,pc,pc
 1.11712 ++ *[0-9a-f]*:	f8 0c 23 8c 	pmax\.ub r12,r12,r12
 1.11713 ++ *[0-9a-f]*:	ea 05 23 85 	pmax\.ub r5,r5,r5
 1.11714 ++ *[0-9a-f]*:	e8 04 23 84 	pmax\.ub r4,r4,r4
 1.11715 ++ *[0-9a-f]*:	fc 0e 23 8e 	pmax\.ub lr,lr,lr
 1.11716 ++ *[0-9a-f]*:	e4 0b 23 8f 	pmax\.ub pc,r2,r11
 1.11717 ++ *[0-9a-f]*:	e2 01 23 8c 	pmax\.ub r12,r1,r1
 1.11718 ++ *[0-9a-f]*:	e4 00 23 85 	pmax\.ub r5,r2,r0
 1.11719 ++
 1.11720 ++[0-9a-f]* <pmax_sh>:
 1.11721 ++ *[0-9a-f]*:	fe 0f 23 9f 	pmax\.sh pc,pc,pc
 1.11722 ++ *[0-9a-f]*:	f8 0c 23 9c 	pmax\.sh r12,r12,r12
 1.11723 ++ *[0-9a-f]*:	ea 05 23 95 	pmax\.sh r5,r5,r5
 1.11724 ++ *[0-9a-f]*:	e8 04 23 94 	pmax\.sh r4,r4,r4
 1.11725 ++ *[0-9a-f]*:	fc 0e 23 9e 	pmax\.sh lr,lr,lr
 1.11726 ++ *[0-9a-f]*:	ec 0c 23 9e 	pmax\.sh lr,r6,r12
 1.11727 ++ *[0-9a-f]*:	fe 05 23 92 	pmax\.sh r2,pc,r5
 1.11728 ++ *[0-9a-f]*:	e4 07 23 9f 	pmax\.sh pc,r2,r7
 1.11729 ++
 1.11730 ++[0-9a-f]* <pmin_ub>:
 1.11731 ++ *[0-9a-f]*:	fe 0f 23 af 	pmin\.ub pc,pc,pc
 1.11732 ++ *[0-9a-f]*:	f8 0c 23 ac 	pmin\.ub r12,r12,r12
 1.11733 ++ *[0-9a-f]*:	ea 05 23 a5 	pmin\.ub r5,r5,r5
 1.11734 ++ *[0-9a-f]*:	e8 04 23 a4 	pmin\.ub r4,r4,r4
 1.11735 ++ *[0-9a-f]*:	fc 0e 23 ae 	pmin\.ub lr,lr,lr
 1.11736 ++ *[0-9a-f]*:	e2 05 23 a8 	pmin\.ub r8,r1,r5
 1.11737 ++ *[0-9a-f]*:	f0 03 23 a1 	pmin\.ub r1,r8,r3
 1.11738 ++ *[0-9a-f]*:	e4 07 23 a0 	pmin\.ub r0,r2,r7
 1.11739 ++
 1.11740 ++[0-9a-f]* <pmin_sh>:
 1.11741 ++ *[0-9a-f]*:	fe 0f 23 bf 	pmin\.sh pc,pc,pc
 1.11742 ++ *[0-9a-f]*:	f8 0c 23 bc 	pmin\.sh r12,r12,r12
 1.11743 ++ *[0-9a-f]*:	ea 05 23 b5 	pmin\.sh r5,r5,r5
 1.11744 ++ *[0-9a-f]*:	e8 04 23 b4 	pmin\.sh r4,r4,r4
 1.11745 ++ *[0-9a-f]*:	fc 0e 23 be 	pmin\.sh lr,lr,lr
 1.11746 ++ *[0-9a-f]*:	e8 0a 23 b8 	pmin\.sh r8,r4,r10
 1.11747 ++ *[0-9a-f]*:	f4 0c 23 be 	pmin\.sh lr,r10,r12
 1.11748 ++ *[0-9a-f]*:	ec 02 23 b2 	pmin\.sh r2,r6,r2
 1.11749 ++
 1.11750 ++[0-9a-f]* <pavg_ub>:
 1.11751 ++ *[0-9a-f]*:	fe 0f 23 cf 	pavg\.ub pc,pc,pc
 1.11752 ++ *[0-9a-f]*:	f8 0c 23 cc 	pavg\.ub r12,r12,r12
 1.11753 ++ *[0-9a-f]*:	ea 05 23 c5 	pavg\.ub r5,r5,r5
 1.11754 ++ *[0-9a-f]*:	e8 04 23 c4 	pavg\.ub r4,r4,r4
 1.11755 ++ *[0-9a-f]*:	fc 0e 23 ce 	pavg\.ub lr,lr,lr
 1.11756 ++ *[0-9a-f]*:	e2 06 23 c0 	pavg\.ub r0,r1,r6
 1.11757 ++ *[0-9a-f]*:	e6 06 23 c8 	pavg\.ub r8,r3,r6
 1.11758 ++ *[0-9a-f]*:	f8 0a 23 cf 	pavg\.ub pc,r12,r10
 1.11759 ++
 1.11760 ++[0-9a-f]* <pavg_sh>:
 1.11761 ++ *[0-9a-f]*:	fe 0f 23 df 	pavg\.sh pc,pc,pc
 1.11762 ++ *[0-9a-f]*:	f8 0c 23 dc 	pavg\.sh r12,r12,r12
 1.11763 ++ *[0-9a-f]*:	ea 05 23 d5 	pavg\.sh r5,r5,r5
 1.11764 ++ *[0-9a-f]*:	e8 04 23 d4 	pavg\.sh r4,r4,r4
 1.11765 ++ *[0-9a-f]*:	fc 0e 23 de 	pavg\.sh lr,lr,lr
 1.11766 ++ *[0-9a-f]*:	fe 0d 23 d9 	pavg\.sh r9,pc,sp
 1.11767 ++ *[0-9a-f]*:	fa 03 23 df 	pavg\.sh pc,sp,r3
 1.11768 ++ *[0-9a-f]*:	e2 09 23 d6 	pavg\.sh r6,r1,r9
 1.11769 ++
 1.11770 ++[0-9a-f]* <pabs_sb>:
 1.11771 ++ *[0-9a-f]*:	e0 0f 23 ef 	pabs\.sb pc,pc
 1.11772 ++ *[0-9a-f]*:	e0 0c 23 ec 	pabs\.sb r12,r12
 1.11773 ++ *[0-9a-f]*:	e0 05 23 e5 	pabs\.sb r5,r5
 1.11774 ++ *[0-9a-f]*:	e0 04 23 e4 	pabs\.sb r4,r4
 1.11775 ++ *[0-9a-f]*:	e0 0e 23 ee 	pabs\.sb lr,lr
 1.11776 ++ *[0-9a-f]*:	e0 06 23 eb 	pabs\.sb r11,r6
 1.11777 ++ *[0-9a-f]*:	e0 09 23 ee 	pabs\.sb lr,r9
 1.11778 ++ *[0-9a-f]*:	e0 07 23 ed 	pabs\.sb sp,r7
 1.11779 ++
 1.11780 ++[0-9a-f]* <pabs_sh>:
 1.11781 ++ *[0-9a-f]*:	e0 0f 23 ff 	pabs\.sh pc,pc
 1.11782 ++ *[0-9a-f]*:	e0 0c 23 fc 	pabs\.sh r12,r12
 1.11783 ++ *[0-9a-f]*:	e0 05 23 f5 	pabs\.sh r5,r5
 1.11784 ++ *[0-9a-f]*:	e0 04 23 f4 	pabs\.sh r4,r4
 1.11785 ++ *[0-9a-f]*:	e0 0e 23 fe 	pabs\.sh lr,lr
 1.11786 ++ *[0-9a-f]*:	e0 03 23 ff 	pabs\.sh pc,r3
 1.11787 ++ *[0-9a-f]*:	e0 07 23 f5 	pabs\.sh r5,r7
 1.11788 ++ *[0-9a-f]*:	e0 00 23 f4 	pabs\.sh r4,r0
 1.11789 ++
 1.11790 ++[0-9a-f]* <psad>:
 1.11791 ++ *[0-9a-f]*:	fe 0f 24 0f 	psad pc,pc,pc
 1.11792 ++ *[0-9a-f]*:	f8 0c 24 0c 	psad r12,r12,r12
 1.11793 ++ *[0-9a-f]*:	ea 05 24 05 	psad r5,r5,r5
 1.11794 ++ *[0-9a-f]*:	e8 04 24 04 	psad r4,r4,r4
 1.11795 ++ *[0-9a-f]*:	fc 0e 24 0e 	psad lr,lr,lr
 1.11796 ++ *[0-9a-f]*:	f6 0b 24 09 	psad r9,r11,r11
 1.11797 ++ *[0-9a-f]*:	e8 0d 24 0e 	psad lr,r4,sp
 1.11798 ++ *[0-9a-f]*:	e8 05 24 0e 	psad lr,r4,r5
 1.11799 ++
 1.11800 ++[0-9a-f]* <pasr_b>:
 1.11801 ++ *[0-9a-f]*:	fe 00 24 1f 	pasr\.b pc,pc,0x0
 1.11802 ++ *[0-9a-f]*:	f8 07 24 1c 	pasr\.b r12,r12,0x7
 1.11803 ++ *[0-9a-f]*:	ea 04 24 15 	pasr\.b r5,r5,0x4
 1.11804 ++ *[0-9a-f]*:	e8 03 24 14 	pasr\.b r4,r4,0x3
 1.11805 ++ *[0-9a-f]*:	fc 01 24 1e 	pasr\.b lr,lr,0x1
 1.11806 ++ *[0-9a-f]*:	ee 01 24 1f 	pasr\.b pc,r7,0x1
 1.11807 ++ *[0-9a-f]*:	fc 06 24 1d 	pasr\.b sp,lr,0x6
 1.11808 ++ *[0-9a-f]*:	e6 02 24 1d 	pasr\.b sp,r3,0x2
 1.11809 ++
 1.11810 ++[0-9a-f]* <plsl_b>:
 1.11811 ++ *[0-9a-f]*:	fe 00 24 2f 	plsl\.b pc,pc,0x0
 1.11812 ++ *[0-9a-f]*:	f8 07 24 2c 	plsl\.b r12,r12,0x7
 1.11813 ++ *[0-9a-f]*:	ea 04 24 25 	plsl\.b r5,r5,0x4
 1.11814 ++ *[0-9a-f]*:	e8 03 24 24 	plsl\.b r4,r4,0x3
 1.11815 ++ *[0-9a-f]*:	fc 01 24 2e 	plsl\.b lr,lr,0x1
 1.11816 ++ *[0-9a-f]*:	f6 04 24 22 	plsl\.b r2,r11,0x4
 1.11817 ++ *[0-9a-f]*:	ea 07 24 28 	plsl\.b r8,r5,0x7
 1.11818 ++ *[0-9a-f]*:	e0 02 24 2f 	plsl\.b pc,r0,0x2
 1.11819 ++
 1.11820 ++[0-9a-f]* <plsr_b>:
 1.11821 ++ *[0-9a-f]*:	fe 00 24 3f 	plsr\.b pc,pc,0x0
 1.11822 ++ *[0-9a-f]*:	f8 07 24 3c 	plsr\.b r12,r12,0x7
 1.11823 ++ *[0-9a-f]*:	ea 04 24 35 	plsr\.b r5,r5,0x4
 1.11824 ++ *[0-9a-f]*:	e8 03 24 34 	plsr\.b r4,r4,0x3
 1.11825 ++ *[0-9a-f]*:	fc 01 24 3e 	plsr\.b lr,lr,0x1
 1.11826 ++ *[0-9a-f]*:	e2 02 24 3c 	plsr\.b r12,r1,0x2
 1.11827 ++ *[0-9a-f]*:	fe 07 24 36 	plsr\.b r6,pc,0x7
 1.11828 ++ *[0-9a-f]*:	f6 02 24 3c 	plsr\.b r12,r11,0x2
 1.11829 ++
 1.11830 ++[0-9a-f]* <pasr_h>:
 1.11831 ++ *[0-9a-f]*:	fe 00 24 4f 	pasr\.h pc,pc,0x0
 1.11832 ++ *[0-9a-f]*:	f8 0f 24 4c 	pasr\.h r12,r12,0xf
 1.11833 ++ *[0-9a-f]*:	ea 08 24 45 	pasr\.h r5,r5,0x8
 1.11834 ++ *[0-9a-f]*:	e8 07 24 44 	pasr\.h r4,r4,0x7
 1.11835 ++ *[0-9a-f]*:	fc 01 24 4e 	pasr\.h lr,lr,0x1
 1.11836 ++ *[0-9a-f]*:	f6 0a 24 40 	pasr\.h r0,r11,0xa
 1.11837 ++ *[0-9a-f]*:	ec 08 24 44 	pasr\.h r4,r6,0x8
 1.11838 ++ *[0-9a-f]*:	e4 04 24 46 	pasr\.h r6,r2,0x4
 1.11839 ++
 1.11840 ++[0-9a-f]* <plsl_h>:
 1.11841 ++ *[0-9a-f]*:	fe 00 24 5f 	plsl\.h pc,pc,0x0
 1.11842 ++ *[0-9a-f]*:	f8 0f 24 5c 	plsl\.h r12,r12,0xf
 1.11843 ++ *[0-9a-f]*:	ea 08 24 55 	plsl\.h r5,r5,0x8
 1.11844 ++ *[0-9a-f]*:	e8 07 24 54 	plsl\.h r4,r4,0x7
 1.11845 ++ *[0-9a-f]*:	fc 01 24 5e 	plsl\.h lr,lr,0x1
 1.11846 ++ *[0-9a-f]*:	f4 09 24 55 	plsl\.h r5,r10,0x9
 1.11847 ++ *[0-9a-f]*:	fc 08 24 5d 	plsl\.h sp,lr,0x8
 1.11848 ++ *[0-9a-f]*:	fc 07 24 50 	plsl\.h r0,lr,0x7
 1.11849 ++
 1.11850 ++[0-9a-f]* <plsr_h>:
 1.11851 ++ *[0-9a-f]*:	fe 00 24 6f 	plsr\.h pc,pc,0x0
 1.11852 ++ *[0-9a-f]*:	f8 0f 24 6c 	plsr\.h r12,r12,0xf
 1.11853 ++ *[0-9a-f]*:	ea 08 24 65 	plsr\.h r5,r5,0x8
 1.11854 ++ *[0-9a-f]*:	e8 07 24 64 	plsr\.h r4,r4,0x7
 1.11855 ++ *[0-9a-f]*:	fc 01 24 6e 	plsr\.h lr,lr,0x1
 1.11856 ++ *[0-9a-f]*:	e0 0f 24 6b 	plsr\.h r11,r0,0xf
 1.11857 ++ *[0-9a-f]*:	e6 03 24 6e 	plsr\.h lr,r3,0x3
 1.11858 ++ *[0-9a-f]*:	fc 0a 24 68 	plsr\.h r8,lr,0xa
 1.11859 ++
 1.11860 ++[0-9a-f]* <packw_sh>:
 1.11861 ++ *[0-9a-f]*:	fe 0f 24 7f 	packw\.sh pc,pc,pc
 1.11862 ++ *[0-9a-f]*:	f8 0c 24 7c 	packw\.sh r12,r12,r12
 1.11863 ++ *[0-9a-f]*:	ea 05 24 75 	packw\.sh r5,r5,r5
 1.11864 ++ *[0-9a-f]*:	e8 04 24 74 	packw\.sh r4,r4,r4
 1.11865 ++ *[0-9a-f]*:	fc 0e 24 7e 	packw\.sh lr,lr,lr
 1.11866 ++ *[0-9a-f]*:	f6 0a 24 7d 	packw\.sh sp,r11,r10
 1.11867 ++ *[0-9a-f]*:	e4 0c 24 78 	packw\.sh r8,r2,r12
 1.11868 ++ *[0-9a-f]*:	e2 05 24 78 	packw\.sh r8,r1,r5
 1.11869 ++
 1.11870 ++[0-9a-f]* <punpckub_h>:
 1.11871 ++ *[0-9a-f]*:	fe 00 24 8f 	punpckub\.h pc,pc:b
 1.11872 ++ *[0-9a-f]*:	f8 00 24 9c 	punpckub\.h r12,r12:t
 1.11873 ++ *[0-9a-f]*:	ea 00 24 95 	punpckub\.h r5,r5:t
 1.11874 ++ *[0-9a-f]*:	e8 00 24 84 	punpckub\.h r4,r4:b
 1.11875 ++ *[0-9a-f]*:	fc 00 24 9e 	punpckub\.h lr,lr:t
 1.11876 ++ *[0-9a-f]*:	e2 00 24 96 	punpckub\.h r6,r1:t
 1.11877 ++ *[0-9a-f]*:	ea 00 24 8e 	punpckub\.h lr,r5:b
 1.11878 ++ *[0-9a-f]*:	e4 00 24 9e 	punpckub\.h lr,r2:t
 1.11879 ++
 1.11880 ++[0-9a-f]* <punpcksb_h>:
 1.11881 ++ *[0-9a-f]*:	fe 00 24 af 	punpcksb\.h pc,pc:b
 1.11882 ++ *[0-9a-f]*:	f8 00 24 bc 	punpcksb\.h r12,r12:t
 1.11883 ++ *[0-9a-f]*:	ea 00 24 b5 	punpcksb\.h r5,r5:t
 1.11884 ++ *[0-9a-f]*:	e8 00 24 a4 	punpcksb\.h r4,r4:b
 1.11885 ++ *[0-9a-f]*:	fc 00 24 be 	punpcksb\.h lr,lr:t
 1.11886 ++ *[0-9a-f]*:	ee 00 24 b4 	punpcksb\.h r4,r7:t
 1.11887 ++ *[0-9a-f]*:	fc 00 24 a6 	punpcksb\.h r6,lr:b
 1.11888 ++ *[0-9a-f]*:	f8 00 24 bc 	punpcksb\.h r12,r12:t
 1.11889 ++
 1.11890 ++[0-9a-f]* <packsh_ub>:
 1.11891 ++ *[0-9a-f]*:	fe 0f 24 cf 	packsh\.ub pc,pc,pc
 1.11892 ++ *[0-9a-f]*:	f8 0c 24 cc 	packsh\.ub r12,r12,r12
 1.11893 ++ *[0-9a-f]*:	ea 05 24 c5 	packsh\.ub r5,r5,r5
 1.11894 ++ *[0-9a-f]*:	e8 04 24 c4 	packsh\.ub r4,r4,r4
 1.11895 ++ *[0-9a-f]*:	fc 0e 24 ce 	packsh\.ub lr,lr,lr
 1.11896 ++ *[0-9a-f]*:	ec 03 24 c3 	packsh\.ub r3,r6,r3
 1.11897 ++ *[0-9a-f]*:	e0 03 24 c8 	packsh\.ub r8,r0,r3
 1.11898 ++ *[0-9a-f]*:	e6 0e 24 c9 	packsh\.ub r9,r3,lr
 1.11899 ++
 1.11900 ++[0-9a-f]* <packsh_sb>:
 1.11901 ++ *[0-9a-f]*:	fe 0f 24 df 	packsh\.sb pc,pc,pc
 1.11902 ++ *[0-9a-f]*:	f8 0c 24 dc 	packsh\.sb r12,r12,r12
 1.11903 ++ *[0-9a-f]*:	ea 05 24 d5 	packsh\.sb r5,r5,r5
 1.11904 ++ *[0-9a-f]*:	e8 04 24 d4 	packsh\.sb r4,r4,r4
 1.11905 ++ *[0-9a-f]*:	fc 0e 24 de 	packsh\.sb lr,lr,lr
 1.11906 ++ *[0-9a-f]*:	f0 01 24 d6 	packsh\.sb r6,r8,r1
 1.11907 ++ *[0-9a-f]*:	f2 08 24 de 	packsh\.sb lr,r9,r8
 1.11908 ++ *[0-9a-f]*:	ec 06 24 dd 	packsh\.sb sp,r6,r6
 1.11909 ++
 1.11910 ++[0-9a-f]* <andl>:
 1.11911 ++ *[0-9a-f]*:	e0 1f 00 00 	andl pc,0x0
 1.11912 ++ *[0-9a-f]*:	e0 1c ff ff 	andl r12,0xffff
 1.11913 ++ *[0-9a-f]*:	e0 15 80 00 	andl r5,0x8000
 1.11914 ++ *[0-9a-f]*:	e0 14 7f ff 	andl r4,0x7fff
 1.11915 ++ *[0-9a-f]*:	e0 1e 00 01 	andl lr,0x1
 1.11916 ++ *[0-9a-f]*:	e0 1f 5a 58 	andl pc,0x5a58
 1.11917 ++ *[0-9a-f]*:	e0 18 b8 9e 	andl r8,0xb89e
 1.11918 ++ *[0-9a-f]*:	e0 17 35 97 	andl r7,0x3597
 1.11919 ++
 1.11920 ++[0-9a-f]* <andl_coh>:
 1.11921 ++ *[0-9a-f]*:	e2 1f 00 00 	andl pc,0x0,COH
 1.11922 ++ *[0-9a-f]*:	e2 1c ff ff 	andl r12,0xffff,COH
 1.11923 ++ *[0-9a-f]*:	e2 15 80 00 	andl r5,0x8000,COH
 1.11924 ++ *[0-9a-f]*:	e2 14 7f ff 	andl r4,0x7fff,COH
 1.11925 ++ *[0-9a-f]*:	e2 1e 00 01 	andl lr,0x1,COH
 1.11926 ++ *[0-9a-f]*:	e2 16 58 e1 	andl r6,0x58e1,COH
 1.11927 ++ *[0-9a-f]*:	e2 10 9e cd 	andl r0,0x9ecd,COH
 1.11928 ++ *[0-9a-f]*:	e2 14 bd c4 	andl r4,0xbdc4,COH
 1.11929 ++
 1.11930 ++[0-9a-f]* <andh>:
 1.11931 ++ *[0-9a-f]*:	e4 1f 00 00 	andh pc,0x0
 1.11932 ++ *[0-9a-f]*:	e4 1c ff ff 	andh r12,0xffff
 1.11933 ++ *[0-9a-f]*:	e4 15 80 00 	andh r5,0x8000
 1.11934 ++ *[0-9a-f]*:	e4 14 7f ff 	andh r4,0x7fff
 1.11935 ++ *[0-9a-f]*:	e4 1e 00 01 	andh lr,0x1
 1.11936 ++ *[0-9a-f]*:	e4 1c cc 58 	andh r12,0xcc58
 1.11937 ++ *[0-9a-f]*:	e4 13 21 e3 	andh r3,0x21e3
 1.11938 ++ *[0-9a-f]*:	e4 12 a7 eb 	andh r2,0xa7eb
 1.11939 ++
 1.11940 ++[0-9a-f]* <andh_coh>:
 1.11941 ++ *[0-9a-f]*:	e6 1f 00 00 	andh pc,0x0,COH
 1.11942 ++ *[0-9a-f]*:	e6 1c ff ff 	andh r12,0xffff,COH
 1.11943 ++ *[0-9a-f]*:	e6 15 80 00 	andh r5,0x8000,COH
 1.11944 ++ *[0-9a-f]*:	e6 14 7f ff 	andh r4,0x7fff,COH
 1.11945 ++ *[0-9a-f]*:	e6 1e 00 01 	andh lr,0x1,COH
 1.11946 ++ *[0-9a-f]*:	e6 1b 86 0d 	andh r11,0x860d,COH
 1.11947 ++ *[0-9a-f]*:	e6 18 ce f6 	andh r8,0xcef6,COH
 1.11948 ++ *[0-9a-f]*:	e6 1a 5c 83 	andh r10,0x5c83,COH
 1.11949 ++
 1.11950 ++[0-9a-f]* <orl>:
 1.11951 ++ *[0-9a-f]*:	e8 1f 00 00 	orl pc,0x0
 1.11952 ++ *[0-9a-f]*:	e8 1c ff ff 	orl r12,0xffff
 1.11953 ++ *[0-9a-f]*:	e8 15 80 00 	orl r5,0x8000
 1.11954 ++ *[0-9a-f]*:	e8 14 7f ff 	orl r4,0x7fff
 1.11955 ++ *[0-9a-f]*:	e8 1e 00 01 	orl lr,0x1
 1.11956 ++ *[0-9a-f]*:	e8 1d 41 7e 	orl sp,0x417e
 1.11957 ++ *[0-9a-f]*:	e8 10 52 bd 	orl r0,0x52bd
 1.11958 ++ *[0-9a-f]*:	e8 1f ac 47 	orl pc,0xac47
 1.11959 ++
 1.11960 ++[0-9a-f]* <orh>:
 1.11961 ++ *[0-9a-f]*:	ea 1f 00 00 	orh pc,0x0
 1.11962 ++ *[0-9a-f]*:	ea 1c ff ff 	orh r12,0xffff
 1.11963 ++ *[0-9a-f]*:	ea 15 80 00 	orh r5,0x8000
 1.11964 ++ *[0-9a-f]*:	ea 14 7f ff 	orh r4,0x7fff
 1.11965 ++ *[0-9a-f]*:	ea 1e 00 01 	orh lr,0x1
 1.11966 ++ *[0-9a-f]*:	ea 18 6e 7d 	orh r8,0x6e7d
 1.11967 ++ *[0-9a-f]*:	ea 1c 77 1c 	orh r12,0x771c
 1.11968 ++ *[0-9a-f]*:	ea 11 ea 1a 	orh r1,0xea1a
 1.11969 ++
 1.11970 ++[0-9a-f]* <eorl>:
 1.11971 ++ *[0-9a-f]*:	ec 1f 00 00 	eorl pc,0x0
 1.11972 ++ *[0-9a-f]*:	ec 1c ff ff 	eorl r12,0xffff
 1.11973 ++ *[0-9a-f]*:	ec 15 80 00 	eorl r5,0x8000
 1.11974 ++ *[0-9a-f]*:	ec 14 7f ff 	eorl r4,0x7fff
 1.11975 ++ *[0-9a-f]*:	ec 1e 00 01 	eorl lr,0x1
 1.11976 ++ *[0-9a-f]*:	ec 14 c7 b9 	eorl r4,0xc7b9
 1.11977 ++ *[0-9a-f]*:	ec 16 fb dd 	eorl r6,0xfbdd
 1.11978 ++ *[0-9a-f]*:	ec 11 51 b1 	eorl r1,0x51b1
 1.11979 ++
 1.11980 ++[0-9a-f]* <eorh>:
 1.11981 ++ *[0-9a-f]*:	ee 1f 00 00 	eorh pc,0x0
 1.11982 ++ *[0-9a-f]*:	ee 1c ff ff 	eorh r12,0xffff
 1.11983 ++ *[0-9a-f]*:	ee 15 80 00 	eorh r5,0x8000
 1.11984 ++ *[0-9a-f]*:	ee 14 7f ff 	eorh r4,0x7fff
 1.11985 ++ *[0-9a-f]*:	ee 1e 00 01 	eorh lr,0x1
 1.11986 ++ *[0-9a-f]*:	ee 10 2d d4 	eorh r0,0x2dd4
 1.11987 ++ *[0-9a-f]*:	ee 1a 94 b5 	eorh r10,0x94b5
 1.11988 ++ *[0-9a-f]*:	ee 19 df 2a 	eorh r9,0xdf2a
 1.11989 ++
 1.11990 ++[0-9a-f]* <mcall>:
 1.11991 ++ *[0-9a-f]*:	f0 1f 00 00 	mcall [0-9a-f]* <.*>
 1.11992 ++ *[0-9a-f]*:	f0 1c ff ff 	mcall r12\[-4\]
 1.11993 ++ *[0-9a-f]*:	f0 15 80 00 	mcall r5\[-131072\]
 1.11994 ++ *[0-9a-f]*:	f0 14 7f ff 	mcall r4\[131068\]
 1.11995 ++ *[0-9a-f]*:	f0 1e 00 01 	mcall lr\[4\]
 1.11996 ++ *[0-9a-f]*:	f0 1d 3b bf 	mcall sp\[61180\]
 1.11997 ++ *[0-9a-f]*:	f0 14 dd d2 	mcall r4\[-35000\]
 1.11998 ++ *[0-9a-f]*:	f0 10 09 b1 	mcall r0\[9924\]
 1.11999 ++
 1.12000 ++[0-9a-f]* <pref>:
 1.12001 ++ *[0-9a-f]*:	f2 1f 00 00 	pref pc\[0\]
 1.12002 ++ *[0-9a-f]*:	f2 1c ff ff 	pref r12\[-1\]
 1.12003 ++ *[0-9a-f]*:	f2 15 80 00 	pref r5\[-32768\]
 1.12004 ++ *[0-9a-f]*:	f2 14 7f ff 	pref r4\[32767\]
 1.12005 ++ *[0-9a-f]*:	f2 1e 00 01 	pref lr\[1\]
 1.12006 ++ *[0-9a-f]*:	f2 17 1e 44 	pref r7\[7748\]
 1.12007 ++ *[0-9a-f]*:	f2 17 e1 ed 	pref r7\[-7699\]
 1.12008 ++ *[0-9a-f]*:	f2 12 9a dc 	pref r2\[-25892\]
 1.12009 ++
 1.12010 ++[0-9a-f]* <cache>:
 1.12011 ++ *[0-9a-f]*:	f4 1f 00 00 	cache pc\[0\],0x0
 1.12012 ++ *[0-9a-f]*:	f4 1c ff ff 	cache r12\[-1\],0x1f
 1.12013 ++ *[0-9a-f]*:	f4 15 84 00 	cache r5\[-1024\],0x10
 1.12014 ++ *[0-9a-f]*:	f4 14 7b ff 	cache r4\[1023\],0xf
 1.12015 ++ *[0-9a-f]*:	f4 1e 08 01 	cache lr\[1\],0x1
 1.12016 ++ *[0-9a-f]*:	f4 13 8c 3c 	cache r3\[-964\],0x11
 1.12017 ++ *[0-9a-f]*:	f4 14 b6 89 	cache r4\[-375\],0x16
 1.12018 ++ *[0-9a-f]*:	f4 13 8c 88 	cache r3\[-888\],0x11
 1.12019 ++
 1.12020 ++[0-9a-f]* <sub4>:
 1.12021 ++ *[0-9a-f]*:	20 0f       	sub pc,0
 1.12022 ++ *[0-9a-f]*:	2f fc       	sub r12,-1
 1.12023 ++ *[0-9a-f]*:	f0 25 00 00 	sub r5,-1048576
 1.12024 ++ *[0-9a-f]*:	ee 34 ff ff 	sub r4,1048575
 1.12025 ++ *[0-9a-f]*:	20 1e       	sub lr,1
 1.12026 ++ *[0-9a-f]*:	f6 22 8d 6c 	sub r2,-619156
 1.12027 ++ *[0-9a-f]*:	e6 3e 0a cd 	sub lr,461517
 1.12028 ++ *[0-9a-f]*:	fc 38 2d 25 	sub r8,-185051
 1.12029 ++
 1.12030 ++[0-9a-f]* <cp3>:
 1.12031 ++ *[0-9a-f]*:	58 0f       	cp.w pc,0
 1.12032 ++ *[0-9a-f]*:	5b fc       	cp.w r12,-1
 1.12033 ++ *[0-9a-f]*:	f0 45 00 00 	cp.w r5,-1048576
 1.12034 ++ *[0-9a-f]*:	ee 54 ff ff 	cp.w r4,1048575
 1.12035 ++ *[0-9a-f]*:	58 1e       	cp.w lr,1
 1.12036 ++ *[0-9a-f]*:	e0 51 e4 ae 	cp.w r1,124078
 1.12037 ++ *[0-9a-f]*:	fa 40 37 e3 	cp.w r0,-378909
 1.12038 ++ *[0-9a-f]*:	fc 44 4a 14 	cp.w r4,-243180
 1.12039 ++
 1.12040 ++[0-9a-f]* <mov2>:
 1.12041 ++ *[0-9a-f]*:	30 0f       	mov pc,0
 1.12042 ++ *[0-9a-f]*:	3f fc       	mov r12,-1
 1.12043 ++ *[0-9a-f]*:	f0 65 00 00 	mov r5,-1048576
 1.12044 ++ *[0-9a-f]*:	ee 74 ff ff 	mov r4,1048575
 1.12045 ++ *[0-9a-f]*:	30 1e       	mov lr,1
 1.12046 ++ *[0-9a-f]*:	fa 75 29 a3 	mov r5,-317021
 1.12047 ++ *[0-9a-f]*:	f4 6d 91 94 	mov sp,-749164
 1.12048 ++ *[0-9a-f]*:	ee 65 58 93 	mov r5,940179
 1.12049 ++
 1.12050 ++[0-9a-f]* <brc2>:
 1.12051 ++ *[0-9a-f]*:	c0 00       	breq [0-9a-f]* <.*>
 1.12052 ++ *[0-9a-f]*:	fe 9f ff ff 	bral [0-9a-f]* <.*>
 1.12053 ++ *[0-9a-f]*:	f0 88 00 00 	brls [0-9a-f]* <.*>
 1.12054 ++ *[0-9a-f]*:	ee 97 ff ff 	brpl [0-9a-f]* <.*>
 1.12055 ++ *[0-9a-f]*:	c0 11       	brne [0-9a-f]* <.*>
 1.12056 ++ *[0-9a-f]*:	f2 8b 4a 4d 	brhi [0-9a-f]* <.*>
 1.12057 ++ *[0-9a-f]*:	ea 8e 14 cc 	brqs [0-9a-f]* <.*>
 1.12058 ++ *[0-9a-f]*:	fa 98 98 33 	brls [0-9a-f]* <.*>
 1.12059 ++
 1.12060 ++[0-9a-f]* <rcall2>:
 1.12061 ++ *[0-9a-f]*:	c0 0c       	rcall [0-9a-f]* <.*>
 1.12062 ++ *[0-9a-f]*:	cf ff       	rcall [0-9a-f]* <.*>
 1.12063 ++ *[0-9a-f]*:	f0 a0 00 00 	rcall [0-9a-f]* <.*>
 1.12064 ++ *[0-9a-f]*:	ee b0 ff ff 	rcall [0-9a-f]* <.*>
 1.12065 ++ *[0-9a-f]*:	c0 1c       	rcall [0-9a-f]* <.*>
 1.12066 ++ *[0-9a-f]*:	e2 b0 ca 5a 	rcall [0-9a-f]* <.*>
 1.12067 ++ *[0-9a-f]*:	e8 a0 47 52 	rcall [0-9a-f]* <.*>
 1.12068 ++ *[0-9a-f]*:	fe b0 fd ef 	rcall [0-9a-f]* <.*>
 1.12069 ++
 1.12070 ++[0-9a-f]* <sub5>:
 1.12071 ++ *[0-9a-f]*:	fe cf 00 00 	sub pc,pc,0
 1.12072 ++ *[0-9a-f]*:	f8 cc ff ff 	sub r12,r12,-1
 1.12073 ++ *[0-9a-f]*:	ea c5 80 00 	sub r5,r5,-32768
 1.12074 ++ *[0-9a-f]*:	e8 c4 7f ff 	sub r4,r4,32767
 1.12075 ++ *[0-9a-f]*:	fc ce 00 01 	sub lr,lr,1
 1.12076 ++ *[0-9a-f]*:	fe cf ce 38 	sub pc,pc,-12744
 1.12077 ++ *[0-9a-f]*:	ee c7 95 1b 	sub r7,r7,-27365
 1.12078 ++ *[0-9a-f]*:	f2 c2 bc 32 	sub r2,r9,-17358
 1.12079 ++
 1.12080 ++[0-9a-f]* <satsub_w2>:
 1.12081 ++ *[0-9a-f]*:	fe df 00 00 	satsub\.w pc,pc,0
 1.12082 ++ *[0-9a-f]*:	f8 dc ff ff 	satsub\.w r12,r12,-1
 1.12083 ++ *[0-9a-f]*:	ea d5 80 00 	satsub\.w r5,r5,-32768
 1.12084 ++ *[0-9a-f]*:	e8 d4 7f ff 	satsub\.w r4,r4,32767
 1.12085 ++ *[0-9a-f]*:	fc de 00 01 	satsub\.w lr,lr,1
 1.12086 ++ *[0-9a-f]*:	fc d2 f8 29 	satsub\.w r2,lr,-2007
 1.12087 ++ *[0-9a-f]*:	f8 d7 fc f0 	satsub\.w r7,r12,-784
 1.12088 ++ *[0-9a-f]*:	ee d4 5a 8c 	satsub\.w r4,r7,23180
 1.12089 ++
 1.12090 ++[0-9a-f]* <ld_d4>:
 1.12091 ++ *[0-9a-f]*:	fe e0 00 00 	ld\.d r0,pc\[0\]
 1.12092 ++ *[0-9a-f]*:	f8 ee ff ff 	ld\.d lr,r12\[-1\]
 1.12093 ++ *[0-9a-f]*:	ea e8 80 00 	ld\.d r8,r5\[-32768\]
 1.12094 ++ *[0-9a-f]*:	e8 e6 7f ff 	ld\.d r6,r4\[32767\]
 1.12095 ++ *[0-9a-f]*:	fc e2 00 01 	ld\.d r2,lr\[1\]
 1.12096 ++ *[0-9a-f]*:	f6 ee 39 c0 	ld\.d lr,r11\[14784\]
 1.12097 ++ *[0-9a-f]*:	f2 e6 b6 27 	ld\.d r6,r9\[-18905\]
 1.12098 ++ *[0-9a-f]*:	e6 e2 e7 2d 	ld\.d r2,r3\[-6355\]
 1.12099 ++
 1.12100 ++[0-9a-f]* <ld_w4>:
 1.12101 ++ *[0-9a-f]*:	7e 0f       	ld\.w pc,pc\[0x0\]
 1.12102 ++ *[0-9a-f]*:	f8 fc ff ff 	ld\.w r12,r12\[-1\]
 1.12103 ++ *[0-9a-f]*:	ea f5 80 00 	ld\.w r5,r5\[-32768\]
 1.12104 ++ *[0-9a-f]*:	e8 f4 7f ff 	ld\.w r4,r4\[32767\]
 1.12105 ++ *[0-9a-f]*:	fc fe 00 01 	ld\.w lr,lr\[1\]
 1.12106 ++ *[0-9a-f]*:	f8 f0 a9 8b 	ld\.w r0,r12\[-22133\]
 1.12107 ++ *[0-9a-f]*:	fe fd af d7 	ld\.w sp,pc\[-20521\]
 1.12108 ++ *[0-9a-f]*:	d7 03       	nop
 1.12109 ++
 1.12110 ++[0-9a-f]* <ld_sh4>:
 1.12111 ++ *[0-9a-f]*:	9e 0f       	ld\.sh pc,pc\[0x0\]
 1.12112 ++ *[0-9a-f]*:	f9 0c ff ff 	ld\.sh r12,r12\[-1\]
 1.12113 ++ *[0-9a-f]*:	eb 05 80 00 	ld\.sh r5,r5\[-32768\]
 1.12114 ++ *[0-9a-f]*:	e9 04 7f ff 	ld\.sh r4,r4\[32767\]
 1.12115 ++ *[0-9a-f]*:	fd 0e 00 01 	ld\.sh lr,lr\[1\]
 1.12116 ++ *[0-9a-f]*:	f5 06 78 d2 	ld\.sh r6,r10\[30930\]
 1.12117 ++ *[0-9a-f]*:	f5 06 55 d5 	ld\.sh r6,r10\[21973\]
 1.12118 ++ *[0-9a-f]*:	d7 03       	nop
 1.12119 ++
 1.12120 ++[0-9a-f]* <ld_uh4>:
 1.12121 ++ *[0-9a-f]*:	9e 8f       	ld\.uh pc,pc\[0x0\]
 1.12122 ++ *[0-9a-f]*:	f9 1c ff ff 	ld\.uh r12,r12\[-1\]
 1.12123 ++ *[0-9a-f]*:	eb 15 80 00 	ld\.uh r5,r5\[-32768\]
 1.12124 ++ *[0-9a-f]*:	e9 14 7f ff 	ld\.uh r4,r4\[32767\]
 1.12125 ++ *[0-9a-f]*:	fd 1e 00 01 	ld\.uh lr,lr\[1\]
 1.12126 ++ *[0-9a-f]*:	f3 11 cb d6 	ld\.uh r1,r9\[-13354\]
 1.12127 ++ *[0-9a-f]*:	f7 1e 53 59 	ld\.uh lr,r11\[21337\]
 1.12128 ++ *[0-9a-f]*:	d7 03       	nop
 1.12129 ++
 1.12130 ++[0-9a-f]* <ld_sb1>:
 1.12131 ++ *[0-9a-f]*:	ff 2f 00 00 	ld\.sb pc,pc\[0\]
 1.12132 ++ *[0-9a-f]*:	f9 2c ff ff 	ld\.sb r12,r12\[-1\]
 1.12133 ++ *[0-9a-f]*:	eb 25 80 00 	ld\.sb r5,r5\[-32768\]
 1.12134 ++ *[0-9a-f]*:	e9 24 7f ff 	ld\.sb r4,r4\[32767\]
 1.12135 ++ *[0-9a-f]*:	fd 2e 00 01 	ld\.sb lr,lr\[1\]
 1.12136 ++ *[0-9a-f]*:	fb 27 90 09 	ld\.sb r7,sp\[-28663\]
 1.12137 ++ *[0-9a-f]*:	e3 22 e9 09 	ld\.sb r2,r1\[-5879\]
 1.12138 ++ *[0-9a-f]*:	e7 2c 49 2e 	ld\.sb r12,r3\[18734\]
 1.12139 ++
 1.12140 ++[0-9a-f]* <ld_ub4>:
 1.12141 ++ *[0-9a-f]*:	1f 8f       	ld\.ub pc,pc\[0x0\]
 1.12142 ++ *[0-9a-f]*:	f9 3c ff ff 	ld\.ub r12,r12\[-1\]
 1.12143 ++ *[0-9a-f]*:	eb 35 80 00 	ld\.ub r5,r5\[-32768\]
 1.12144 ++ *[0-9a-f]*:	e9 34 7f ff 	ld\.ub r4,r4\[32767\]
 1.12145 ++ *[0-9a-f]*:	1d 9e       	ld\.ub lr,lr\[0x1\]
 1.12146 ++ *[0-9a-f]*:	e9 3f 20 55 	ld\.ub pc,r4\[8277\]
 1.12147 ++ *[0-9a-f]*:	f9 35 4a e4 	ld\.ub r5,r12\[19172\]
 1.12148 ++ *[0-9a-f]*:	fd 3a 66 eb 	ld\.ub r10,lr\[26347\]
 1.12149 ++
 1.12150 ++[0-9a-f]* <st_d4>:
 1.12151 ++ *[0-9a-f]*:	fe e1 00 00 	st\.d pc\[0\],r0
 1.12152 ++ *[0-9a-f]*:	f8 ef ff ff 	st\.d r12\[-1\],lr
 1.12153 ++ *[0-9a-f]*:	ea e9 80 00 	st\.d r5\[-32768\],r8
 1.12154 ++ *[0-9a-f]*:	e8 e7 7f ff 	st\.d r4\[32767\],r6
 1.12155 ++ *[0-9a-f]*:	fc e3 00 01 	st\.d lr\[1\],r2
 1.12156 ++ *[0-9a-f]*:	ea eb 33 90 	st\.d r5\[13200\],r10
 1.12157 ++ *[0-9a-f]*:	ea eb 24 88 	st\.d r5\[9352\],r10
 1.12158 ++ *[0-9a-f]*:	ea e5 7e 75 	st\.d r5\[32373\],r4
 1.12159 ++
 1.12160 ++[0-9a-f]* <st_w4>:
 1.12161 ++ *[0-9a-f]*:	9f 0f       	st\.w pc\[0x0\],pc
 1.12162 ++ *[0-9a-f]*:	f9 4c ff ff 	st\.w r12\[-1\],r12
 1.12163 ++ *[0-9a-f]*:	eb 45 80 00 	st\.w r5\[-32768\],r5
 1.12164 ++ *[0-9a-f]*:	e9 44 7f ff 	st\.w r4\[32767\],r4
 1.12165 ++ *[0-9a-f]*:	fd 4e 00 01 	st\.w lr\[1\],lr
 1.12166 ++ *[0-9a-f]*:	fb 47 17 f8 	st\.w sp\[6136\],r7
 1.12167 ++ *[0-9a-f]*:	ed 4c 69 cf 	st\.w r6\[27087\],r12
 1.12168 ++ *[0-9a-f]*:	d7 03       	nop
 1.12169 ++
 1.12170 ++[0-9a-f]* <st_h4>:
 1.12171 ++ *[0-9a-f]*:	be 0f       	st\.h pc\[0x0\],pc
 1.12172 ++ *[0-9a-f]*:	f9 5c ff ff 	st\.h r12\[-1\],r12
 1.12173 ++ *[0-9a-f]*:	eb 55 80 00 	st\.h r5\[-32768\],r5
 1.12174 ++ *[0-9a-f]*:	e9 54 7f ff 	st\.h r4\[32767\],r4
 1.12175 ++ *[0-9a-f]*:	fd 5e 00 01 	st\.h lr\[1\],lr
 1.12176 ++ *[0-9a-f]*:	e9 57 d9 16 	st\.h r4\[-9962\],r7
 1.12177 ++ *[0-9a-f]*:	f3 53 c0 86 	st\.h r9\[-16250\],r3
 1.12178 ++ *[0-9a-f]*:	d7 03       	nop
 1.12179 ++
 1.12180 ++[0-9a-f]* <st_b4>:
 1.12181 ++ *[0-9a-f]*:	be 8f       	st\.b pc\[0x0\],pc
 1.12182 ++ *[0-9a-f]*:	f9 6c ff ff 	st\.b r12\[-1\],r12
 1.12183 ++ *[0-9a-f]*:	eb 65 80 00 	st\.b r5\[-32768\],r5
 1.12184 ++ *[0-9a-f]*:	e9 64 7f ff 	st\.b r4\[32767\],r4
 1.12185 ++ *[0-9a-f]*:	bc 9e       	st\.b lr\[0x1\],lr
 1.12186 ++ *[0-9a-f]*:	f9 66 75 96 	st\.b r12\[30102\],r6
 1.12187 ++ *[0-9a-f]*:	eb 61 71 31 	st\.b r5\[28977\],r1
 1.12188 ++ *[0-9a-f]*:	e1 61 15 5e 	st\.b r0\[5470\],r1
 1.12189 ++
 1.12190 ++[0-9a-f]* <mfsr>:
 1.12191 ++ *[0-9a-f]*:	e1 bf 00 00 	mfsr pc,0x0
 1.12192 ++ *[0-9a-f]*:	e1 bc 00 ff 	mfsr r12,0x3fc
 1.12193 ++ *[0-9a-f]*:	e1 b5 00 80 	mfsr r5,0x200
 1.12194 ++ *[0-9a-f]*:	e1 b4 00 7f 	mfsr r4,0x1fc
 1.12195 ++ *[0-9a-f]*:	e1 be 00 01 	mfsr lr,0x4
 1.12196 ++ *[0-9a-f]*:	e1 b2 00 ae 	mfsr r2,0x2b8
 1.12197 ++ *[0-9a-f]*:	e1 b4 00 41 	mfsr r4,0x104
 1.12198 ++ *[0-9a-f]*:	e1 ba 00 fe 	mfsr r10,0x3f8
 1.12199 ++
 1.12200 ++[0-9a-f]* <mtsr>:
 1.12201 ++ *[0-9a-f]*:	e3 bf 00 00 	mtsr 0x0,pc
 1.12202 ++ *[0-9a-f]*:	e3 bc 00 ff 	mtsr 0x3fc,r12
 1.12203 ++ *[0-9a-f]*:	e3 b5 00 80 	mtsr 0x200,r5
 1.12204 ++ *[0-9a-f]*:	e3 b4 00 7f 	mtsr 0x1fc,r4
 1.12205 ++ *[0-9a-f]*:	e3 be 00 01 	mtsr 0x4,lr
 1.12206 ++ *[0-9a-f]*:	e3 ba 00 38 	mtsr 0xe0,r10
 1.12207 ++ *[0-9a-f]*:	e3 bc 00 d1 	mtsr 0x344,r12
 1.12208 ++ *[0-9a-f]*:	e3 b9 00 4c 	mtsr 0x130,r9
 1.12209 ++
 1.12210 ++[0-9a-f]* <mfdr>:
 1.12211 ++ *[0-9a-f]*:	e5 bf 00 00 	mfdr pc,0x0
 1.12212 ++ *[0-9a-f]*:	e5 bc 00 ff 	mfdr r12,0x3fc
 1.12213 ++ *[0-9a-f]*:	e5 b5 00 80 	mfdr r5,0x200
 1.12214 ++ *[0-9a-f]*:	e5 b4 00 7f 	mfdr r4,0x1fc
 1.12215 ++ *[0-9a-f]*:	e5 be 00 01 	mfdr lr,0x4
 1.12216 ++ *[0-9a-f]*:	e5 b6 00 e9 	mfdr r6,0x3a4
 1.12217 ++ *[0-9a-f]*:	e5 b5 00 09 	mfdr r5,0x24
 1.12218 ++ *[0-9a-f]*:	e5 b9 00 4b 	mfdr r9,0x12c
 1.12219 ++
 1.12220 ++[0-9a-f]* <mtdr>:
 1.12221 ++ *[0-9a-f]*:	e7 bf 00 00 	mtdr 0x0,pc
 1.12222 ++ *[0-9a-f]*:	e7 bc 00 ff 	mtdr 0x3fc,r12
 1.12223 ++ *[0-9a-f]*:	e7 b5 00 80 	mtdr 0x200,r5
 1.12224 ++ *[0-9a-f]*:	e7 b4 00 7f 	mtdr 0x1fc,r4
 1.12225 ++ *[0-9a-f]*:	e7 be 00 01 	mtdr 0x4,lr
 1.12226 ++ *[0-9a-f]*:	e7 b8 00 2d 	mtdr 0xb4,r8
 1.12227 ++ *[0-9a-f]*:	e7 ba 00 b4 	mtdr 0x2d0,r10
 1.12228 ++ *[0-9a-f]*:	e7 be 00 66 	mtdr 0x198,lr
 1.12229 ++
 1.12230 ++[0-9a-f]* <sleep>:
 1.12231 ++ *[0-9a-f]*:	e9 b0 00 00 	sleep 0x0
 1.12232 ++ *[0-9a-f]*:	e9 b0 00 ff 	sleep 0xff
 1.12233 ++ *[0-9a-f]*:	e9 b0 00 80 	sleep 0x80
 1.12234 ++ *[0-9a-f]*:	e9 b0 00 7f 	sleep 0x7f
 1.12235 ++ *[0-9a-f]*:	e9 b0 00 01 	sleep 0x1
 1.12236 ++ *[0-9a-f]*:	e9 b0 00 fe 	sleep 0xfe
 1.12237 ++ *[0-9a-f]*:	e9 b0 00 0f 	sleep 0xf
 1.12238 ++ *[0-9a-f]*:	e9 b0 00 2b 	sleep 0x2b
 1.12239 ++
 1.12240 ++[0-9a-f]* <sync>:
 1.12241 ++ *[0-9a-f]*:	eb b0 00 00 	sync 0x0
 1.12242 ++ *[0-9a-f]*:	eb b0 00 ff 	sync 0xff
 1.12243 ++ *[0-9a-f]*:	eb b0 00 80 	sync 0x80
 1.12244 ++ *[0-9a-f]*:	eb b0 00 7f 	sync 0x7f
 1.12245 ++ *[0-9a-f]*:	eb b0 00 01 	sync 0x1
 1.12246 ++ *[0-9a-f]*:	eb b0 00 a6 	sync 0xa6
 1.12247 ++ *[0-9a-f]*:	eb b0 00 e6 	sync 0xe6
 1.12248 ++ *[0-9a-f]*:	eb b0 00 b4 	sync 0xb4
 1.12249 ++
 1.12250 ++[0-9a-f]* <bld>:
 1.12251 ++ *[0-9a-f]*:	ed bf 00 00 	bld pc,0x0
 1.12252 ++ *[0-9a-f]*:	ed bc 00 1f 	bld r12,0x1f
 1.12253 ++ *[0-9a-f]*:	ed b5 00 10 	bld r5,0x10
 1.12254 ++ *[0-9a-f]*:	ed b4 00 0f 	bld r4,0xf
 1.12255 ++ *[0-9a-f]*:	ed be 00 01 	bld lr,0x1
 1.12256 ++ *[0-9a-f]*:	ed b9 00 0f 	bld r9,0xf
 1.12257 ++ *[0-9a-f]*:	ed b0 00 04 	bld r0,0x4
 1.12258 ++ *[0-9a-f]*:	ed be 00 1a 	bld lr,0x1a
 1.12259 ++
 1.12260 ++[0-9a-f]* <bst>:
 1.12261 ++ *[0-9a-f]*:	ef bf 00 00 	bst pc,0x0
 1.12262 ++ *[0-9a-f]*:	ef bc 00 1f 	bst r12,0x1f
 1.12263 ++ *[0-9a-f]*:	ef b5 00 10 	bst r5,0x10
 1.12264 ++ *[0-9a-f]*:	ef b4 00 0f 	bst r4,0xf
 1.12265 ++ *[0-9a-f]*:	ef be 00 01 	bst lr,0x1
 1.12266 ++ *[0-9a-f]*:	ef ba 00 1c 	bst r10,0x1c
 1.12267 ++ *[0-9a-f]*:	ef b0 00 03 	bst r0,0x3
 1.12268 ++ *[0-9a-f]*:	ef bd 00 02 	bst sp,0x2
 1.12269 ++
 1.12270 ++[0-9a-f]* <sats>:
 1.12271 ++ *[0-9a-f]*:	f1 bf 00 00 	sats pc,0x0
 1.12272 ++ *[0-9a-f]*:	f1 bc 03 ff 	sats r12>>0x1f,0x1f
 1.12273 ++ *[0-9a-f]*:	f1 b5 02 10 	sats r5>>0x10,0x10
 1.12274 ++ *[0-9a-f]*:	f1 b4 01 ef 	sats r4>>0xf,0xf
 1.12275 ++ *[0-9a-f]*:	f1 be 00 21 	sats lr>>0x1,0x1
 1.12276 ++ *[0-9a-f]*:	f1 ba 02 63 	sats r10>>0x3,0x13
 1.12277 ++ *[0-9a-f]*:	f1 ba 03 42 	sats r10>>0x2,0x1a
 1.12278 ++ *[0-9a-f]*:	f1 b1 00 34 	sats r1>>0x14,0x1
 1.12279 ++
 1.12280 ++[0-9a-f]* <satu>:
 1.12281 ++ *[0-9a-f]*:	f1 bf 04 00 	satu pc,0x0
 1.12282 ++ *[0-9a-f]*:	f1 bc 07 ff 	satu r12>>0x1f,0x1f
 1.12283 ++ *[0-9a-f]*:	f1 b5 06 10 	satu r5>>0x10,0x10
 1.12284 ++ *[0-9a-f]*:	f1 b4 05 ef 	satu r4>>0xf,0xf
 1.12285 ++ *[0-9a-f]*:	f1 be 04 21 	satu lr>>0x1,0x1
 1.12286 ++ *[0-9a-f]*:	f1 bf 04 e5 	satu pc>>0x5,0x7
 1.12287 ++ *[0-9a-f]*:	f1 b7 04 a5 	satu r7>>0x5,0x5
 1.12288 ++ *[0-9a-f]*:	f1 b2 06 7a 	satu r2>>0x1a,0x13
 1.12289 ++
 1.12290 ++[0-9a-f]* <satrnds>:
 1.12291 ++ *[0-9a-f]*:	f3 bf 00 00 	satrnds pc,0x0
 1.12292 ++ *[0-9a-f]*:	f3 bc 03 ff 	satrnds r12>>0x1f,0x1f
 1.12293 ++ *[0-9a-f]*:	f3 b5 02 10 	satrnds r5>>0x10,0x10
 1.12294 ++ *[0-9a-f]*:	f3 b4 01 ef 	satrnds r4>>0xf,0xf
 1.12295 ++ *[0-9a-f]*:	f3 be 00 21 	satrnds lr>>0x1,0x1
 1.12296 ++ *[0-9a-f]*:	f3 b0 02 75 	satrnds r0>>0x15,0x13
 1.12297 ++ *[0-9a-f]*:	f3 bd 00 40 	satrnds sp,0x2
 1.12298 ++ *[0-9a-f]*:	f3 b7 03 a6 	satrnds r7>>0x6,0x1d
 1.12299 ++
 1.12300 ++[0-9a-f]* <satrndu>:
 1.12301 ++ *[0-9a-f]*:	f3 bf 04 00 	satrndu pc,0x0
 1.12302 ++ *[0-9a-f]*:	f3 bc 07 ff 	satrndu r12>>0x1f,0x1f
 1.12303 ++ *[0-9a-f]*:	f3 b5 06 10 	satrndu r5>>0x10,0x10
 1.12304 ++ *[0-9a-f]*:	f3 b4 05 ef 	satrndu r4>>0xf,0xf
 1.12305 ++ *[0-9a-f]*:	f3 be 04 21 	satrndu lr>>0x1,0x1
 1.12306 ++ *[0-9a-f]*:	f3 bc 07 40 	satrndu r12,0x1a
 1.12307 ++ *[0-9a-f]*:	f3 b4 04 75 	satrndu r4>>0x15,0x3
 1.12308 ++ *[0-9a-f]*:	f3 ba 06 03 	satrndu r10>>0x3,0x10
 1.12309 ++
 1.12310 ++[0-9a-f]* <subfc>:
 1.12311 ++ *[0-9a-f]*:	f5 bf 00 00 	subfeq pc,0
 1.12312 ++ *[0-9a-f]*:	f5 bc 0f ff 	subfal r12,-1
 1.12313 ++ *[0-9a-f]*:	f5 b5 08 80 	subfls r5,-128
 1.12314 ++ *[0-9a-f]*:	f5 b4 07 7f 	subfpl r4,127
 1.12315 ++ *[0-9a-f]*:	f5 be 01 01 	subfne lr,1
 1.12316 ++ *[0-9a-f]*:	f5 ba 08 08 	subfls r10,8
 1.12317 ++ *[0-9a-f]*:	f5 bb 0d 63 	subfvc r11,99
 1.12318 ++ *[0-9a-f]*:	f5 b2 0c 49 	subfvs r2,73
 1.12319 ++
 1.12320 ++[0-9a-f]* <subc>:
 1.12321 ++ *[0-9a-f]*:	f7 bf 00 00 	subeq pc,0
 1.12322 ++ *[0-9a-f]*:	f7 bc 0f ff 	subal r12,-1
 1.12323 ++ *[0-9a-f]*:	f7 b5 08 80 	subls r5,-128
 1.12324 ++ *[0-9a-f]*:	f7 b4 07 7f 	subpl r4,127
 1.12325 ++ *[0-9a-f]*:	f7 be 01 01 	subne lr,1
 1.12326 ++ *[0-9a-f]*:	f7 bc 08 76 	subls r12,118
 1.12327 ++ *[0-9a-f]*:	f7 be 0d f4 	subvc lr,-12
 1.12328 ++ *[0-9a-f]*:	f7 b4 06 f3 	submi r4,-13
 1.12329 ++
 1.12330 ++[0-9a-f]* <movc2>:
 1.12331 ++ *[0-9a-f]*:	f9 bf 00 00 	moveq pc,0
 1.12332 ++ *[0-9a-f]*:	f9 bc 0f ff 	moval r12,-1
 1.12333 ++ *[0-9a-f]*:	f9 b5 08 80 	movls r5,-128
 1.12334 ++ *[0-9a-f]*:	f9 b4 07 7f 	movpl r4,127
 1.12335 ++ *[0-9a-f]*:	f9 be 01 01 	movne lr,1
 1.12336 ++ *[0-9a-f]*:	f9 b3 05 86 	movlt r3,-122
 1.12337 ++ *[0-9a-f]*:	f9 b8 0d 02 	movvc r8,2
 1.12338 ++ *[0-9a-f]*:	f9 b7 01 91 	movne r7,-111
 1.12339 ++
 1.12340 ++[0-9a-f]* <cp_b>:
 1.12341 ++ *[0-9a-f]*:	e0 0f 18 00 	cp\.b pc,r0
 1.12342 ++ *[0-9a-f]*:	fe 00 18 00 	cp\.b r0,pc
 1.12343 ++ *[0-9a-f]*:	f0 07 18 00 	cp\.b r7,r8
 1.12344 ++ *[0-9a-f]*:	ee 08 18 00 	cp\.b r8,r7
 1.12345 ++
 1.12346 ++[0-9a-f]* <cp_h>:
 1.12347 ++ *[0-9a-f]*:	e0 0f 19 00 	cp\.h pc,r0
 1.12348 ++ *[0-9a-f]*:	fe 00 19 00 	cp\.h r0,pc
 1.12349 ++ *[0-9a-f]*:	f0 07 19 00 	cp\.h r7,r8
 1.12350 ++ *[0-9a-f]*:	ee 08 19 00 	cp\.h r8,r7
 1.12351 ++
 1.12352 ++[0-9a-f]* <ldm>:
 1.12353 ++ *[0-9a-f]*:	e1 cf 00 7e 	ldm pc,r1-r6
 1.12354 ++ *[0-9a-f]*:	e1 cc ff ff 	ldm r12,r0-pc
 1.12355 ++ *[0-9a-f]*:	e1 c5 80 00 	ldm r5,pc
 1.12356 ++ *[0-9a-f]*:	e1 c4 7f ff 	ldm r4,r0-lr
 1.12357 ++ *[0-9a-f]*:	e1 ce 00 01 	ldm lr,r0
 1.12358 ++ *[0-9a-f]*:	e1 c9 40 22 	ldm r9,r1,r5,lr
 1.12359 ++ *[0-9a-f]*:	e1 cb 81 ec 	ldm r11,r2-r3,r5-r8,pc
 1.12360 ++ *[0-9a-f]*:	e1 c6 a2 09 	ldm r6,r0,r3,r9,sp,pc
 1.12361 ++
 1.12362 ++[0-9a-f]* <ldm_pu>:
 1.12363 ++ *[0-9a-f]*:	e3 cf 03 c0 	ldm pc\+\+,r6-r9
 1.12364 ++ *[0-9a-f]*:	e3 cc ff ff 	ldm r12\+\+,r0-pc
 1.12365 ++ *[0-9a-f]*:	e3 c5 80 00 	ldm r5\+\+,pc
 1.12366 ++ *[0-9a-f]*:	e3 c4 7f ff 	ldm r4\+\+,r0-lr
 1.12367 ++ *[0-9a-f]*:	e3 ce 00 01 	ldm lr\+\+,r0
 1.12368 ++ *[0-9a-f]*:	e3 cc d5 38 	ldm r12\+\+,r3-r5,r8,r10,r12,lr-pc
 1.12369 ++ *[0-9a-f]*:	e3 ca c0 74 	ldm r10\+\+,r2,r4-r6,lr-pc
 1.12370 ++ *[0-9a-f]*:	e3 c6 7e 1a 	ldm r6\+\+,r1,r3-r4,r9-lr
 1.12371 ++
 1.12372 ++[0-9a-f]* <ldmts>:
 1.12373 ++ *[0-9a-f]*:	e5 cf 01 80 	ldmts pc,r7-r8
 1.12374 ++ *[0-9a-f]*:	e5 cc ff ff 	ldmts r12,r0-pc
 1.12375 ++ *[0-9a-f]*:	e5 c5 80 00 	ldmts r5,pc
 1.12376 ++ *[0-9a-f]*:	e5 c4 7f ff 	ldmts r4,r0-lr
 1.12377 ++ *[0-9a-f]*:	e5 ce 00 01 	ldmts lr,r0
 1.12378 ++ *[0-9a-f]*:	e5 c0 18 06 	ldmts r0,r1-r2,r11-r12
 1.12379 ++ *[0-9a-f]*:	e5 ce 61 97 	ldmts lr,r0-r2,r4,r7-r8,sp-lr
 1.12380 ++ *[0-9a-f]*:	e5 cc c2 3b 	ldmts r12,r0-r1,r3-r5,r9,lr-pc
 1.12381 ++
 1.12382 ++[0-9a-f]* <ldmts_pu>:
 1.12383 ++ *[0-9a-f]*:	e7 cf 02 00 	ldmts pc\+\+,r9
 1.12384 ++ *[0-9a-f]*:	e7 cc ff ff 	ldmts r12\+\+,r0-pc
 1.12385 ++ *[0-9a-f]*:	e7 c5 80 00 	ldmts r5\+\+,pc
 1.12386 ++ *[0-9a-f]*:	e7 c4 7f ff 	ldmts r4\+\+,r0-lr
 1.12387 ++ *[0-9a-f]*:	e7 ce 00 01 	ldmts lr\+\+,r0
 1.12388 ++ *[0-9a-f]*:	e7 cd 0a bd 	ldmts sp\+\+,r0,r2-r5,r7,r9,r11
 1.12389 ++ *[0-9a-f]*:	e7 c5 0c 8e 	ldmts r5\+\+,r1-r3,r7,r10-r11
 1.12390 ++ *[0-9a-f]*:	e7 c8 a1 9c 	ldmts r8\+\+,r2-r4,r7-r8,sp,pc
 1.12391 ++
 1.12392 ++[0-9a-f]* <stm>:
 1.12393 ++ *[0-9a-f]*:	e9 cf 00 80 	stm pc,r7
 1.12394 ++ *[0-9a-f]*:	e9 cc ff ff 	stm r12,r0-pc
 1.12395 ++ *[0-9a-f]*:	e9 c5 80 00 	stm r5,pc
 1.12396 ++ *[0-9a-f]*:	e9 c4 7f ff 	stm r4,r0-lr
 1.12397 ++ *[0-9a-f]*:	e9 ce 00 01 	stm lr,r0
 1.12398 ++ *[0-9a-f]*:	e9 cd 49 2c 	stm sp,r2-r3,r5,r8,r11,lr
 1.12399 ++ *[0-9a-f]*:	e9 c4 4c 5f 	stm r4,r0-r4,r6,r10-r11,lr
 1.12400 ++ *[0-9a-f]*:	e9 c9 f2 22 	stm r9,r1,r5,r9,r12-pc
 1.12401 ++
 1.12402 ++[0-9a-f]* <stm_pu>:
 1.12403 ++ *[0-9a-f]*:	eb cf 00 70 	stm --pc,r4-r6
 1.12404 ++ *[0-9a-f]*:	eb cc ff ff 	stm --r12,r0-pc
 1.12405 ++ *[0-9a-f]*:	eb c5 80 00 	stm --r5,pc
 1.12406 ++ *[0-9a-f]*:	eb c4 7f ff 	stm --r4,r0-lr
 1.12407 ++ *[0-9a-f]*:	eb ce 00 01 	stm --lr,r0
 1.12408 ++ *[0-9a-f]*:	eb cb fb f1 	stm --r11,r0,r4-r9,r11-pc
 1.12409 ++ *[0-9a-f]*:	eb cb 56 09 	stm --r11,r0,r3,r9-r10,r12,lr
 1.12410 ++ *[0-9a-f]*:	eb c6 63 04 	stm --r6,r2,r8-r9,sp-lr
 1.12411 ++
 1.12412 ++[0-9a-f]* <stmts>:
 1.12413 ++ *[0-9a-f]*:	ed cf 01 00 	stmts pc,r8
 1.12414 ++ *[0-9a-f]*:	ed cc ff ff 	stmts r12,r0-pc
 1.12415 ++ *[0-9a-f]*:	ed c5 80 00 	stmts r5,pc
 1.12416 ++ *[0-9a-f]*:	ed c4 7f ff 	stmts r4,r0-lr
 1.12417 ++ *[0-9a-f]*:	ed ce 00 01 	stmts lr,r0
 1.12418 ++ *[0-9a-f]*:	ed c1 c6 5b 	stmts r1,r0-r1,r3-r4,r6,r9-r10,lr-pc
 1.12419 ++ *[0-9a-f]*:	ed c3 1d c1 	stmts r3,r0,r6-r8,r10-r12
 1.12420 ++ *[0-9a-f]*:	ed cb d6 d1 	stmts r11,r0,r4,r6-r7,r9-r10,r12,lr-pc
 1.12421 ++
 1.12422 ++[0-9a-f]* <stmts_pu>:
 1.12423 ++ *[0-9a-f]*:	ef cf 01 c0 	stmts --pc,r6-r8
 1.12424 ++ *[0-9a-f]*:	ef cc ff ff 	stmts --r12,r0-pc
 1.12425 ++ *[0-9a-f]*:	ef c5 80 00 	stmts --r5,pc
 1.12426 ++ *[0-9a-f]*:	ef c4 7f ff 	stmts --r4,r0-lr
 1.12427 ++ *[0-9a-f]*:	ef ce 00 01 	stmts --lr,r0
 1.12428 ++ *[0-9a-f]*:	ef c2 36 19 	stmts --r2,r0,r3-r4,r9-r10,r12-sp
 1.12429 ++ *[0-9a-f]*:	ef c3 c0 03 	stmts --r3,r0-r1,lr-pc
 1.12430 ++ *[0-9a-f]*:	ef c0 44 7d 	stmts --r0,r0,r2-r6,r10,lr
 1.12431 ++
 1.12432 ++[0-9a-f]* <ldins_h>:
 1.12433 ++ *[0-9a-f]*:	ff df 00 00 	ldins\.h pc:b,pc\[0\]
 1.12434 ++ *[0-9a-f]*:	f9 dc 1f ff 	ldins\.h r12:t,r12\[-2\]
 1.12435 ++ *[0-9a-f]*:	eb d5 18 00 	ldins\.h r5:t,r5\[-4096\]
 1.12436 ++ *[0-9a-f]*:	e9 d4 07 ff 	ldins\.h r4:b,r4\[4094\]
 1.12437 ++ *[0-9a-f]*:	fd de 10 01 	ldins\.h lr:t,lr\[2\]
 1.12438 ++ *[0-9a-f]*:	fd d0 13 c5 	ldins\.h r0:t,lr\[1930\]
 1.12439 ++ *[0-9a-f]*:	ef d3 0e f5 	ldins\.h r3:b,r7\[-534\]
 1.12440 ++ *[0-9a-f]*:	f9 d2 0b 9a 	ldins\.h r2:b,r12\[-2252\]
 1.12441 ++
 1.12442 ++[0-9a-f]* <ldins_b>:
 1.12443 ++ *[0-9a-f]*:	ff df 40 00 	ldins\.b pc:b,pc\[0\]
 1.12444 ++ *[0-9a-f]*:	f9 dc 7f ff 	ldins\.b r12:t,r12\[-1\]
 1.12445 ++ *[0-9a-f]*:	eb d5 68 00 	ldins\.b r5:u,r5\[-2048\]
 1.12446 ++ *[0-9a-f]*:	e9 d4 57 ff 	ldins\.b r4:l,r4\[2047\]
 1.12447 ++ *[0-9a-f]*:	fd de 50 01 	ldins\.b lr:l,lr\[1\]
 1.12448 ++ *[0-9a-f]*:	e9 d6 7d 6a 	ldins\.b r6:t,r4\[-662\]
 1.12449 ++ *[0-9a-f]*:	e3 d5 4f 69 	ldins\.b r5:b,r1\[-151\]
 1.12450 ++ *[0-9a-f]*:	f7 da 78 7d 	ldins\.b r10:t,r11\[-1923\]
 1.12451 ++
 1.12452 ++[0-9a-f]* <ldswp_sh>:
 1.12453 ++ *[0-9a-f]*:	ff df 20 00 	ldswp\.sh pc,pc\[0\]
 1.12454 ++ *[0-9a-f]*:	f9 dc 2f ff 	ldswp\.sh r12,r12\[-2\]
 1.12455 ++ *[0-9a-f]*:	eb d5 28 00 	ldswp\.sh r5,r5\[-4096\]
 1.12456 ++ *[0-9a-f]*:	e9 d4 27 ff 	ldswp\.sh r4,r4\[4094\]
 1.12457 ++ *[0-9a-f]*:	fd de 20 01 	ldswp\.sh lr,lr\[2\]
 1.12458 ++ *[0-9a-f]*:	f5 d9 27 84 	ldswp\.sh r9,r10\[3848\]
 1.12459 ++ *[0-9a-f]*:	f9 d4 2c 04 	ldswp\.sh r4,r12\[-2040\]
 1.12460 ++ *[0-9a-f]*:	e5 da 26 08 	ldswp\.sh r10,r2\[3088\]
 1.12461 ++
 1.12462 ++[0-9a-f]* <ldswp_uh>:
 1.12463 ++ *[0-9a-f]*:	ff df 30 00 	ldswp\.uh pc,pc\[0\]
 1.12464 ++ *[0-9a-f]*:	f9 dc 3f ff 	ldswp\.uh r12,r12\[-2\]
 1.12465 ++ *[0-9a-f]*:	eb d5 38 00 	ldswp\.uh r5,r5\[-4096\]
 1.12466 ++ *[0-9a-f]*:	e9 d4 37 ff 	ldswp\.uh r4,r4\[4094\]
 1.12467 ++ *[0-9a-f]*:	fd de 30 01 	ldswp\.uh lr,lr\[2\]
 1.12468 ++ *[0-9a-f]*:	f3 d4 37 46 	ldswp\.uh r4,r9\[3724\]
 1.12469 ++ *[0-9a-f]*:	fb de 3c bc 	ldswp\.uh lr,sp\[-1672\]
 1.12470 ++ *[0-9a-f]*:	f9 d8 38 7d 	ldswp\.uh r8,r12\[-3846\]
 1.12471 ++
 1.12472 ++[0-9a-f]* <ldswp_w>:
 1.12473 ++ *[0-9a-f]*:	ff df 80 00 	ldswp\.w pc,pc\[0\]
 1.12474 ++ *[0-9a-f]*:	f9 dc 8f ff 	ldswp\.w r12,r12\[-4\]
 1.12475 ++ *[0-9a-f]*:	eb d5 88 00 	ldswp\.w r5,r5\[-8192\]
 1.12476 ++ *[0-9a-f]*:	e9 d4 87 ff 	ldswp\.w r4,r4\[8188\]
 1.12477 ++ *[0-9a-f]*:	fd de 80 01 	ldswp\.w lr,lr\[4\]
 1.12478 ++ *[0-9a-f]*:	ef dd 81 d1 	ldswp\.w sp,r7\[1860\]
 1.12479 ++ *[0-9a-f]*:	eb df 8c c1 	ldswp\.w pc,r5\[-3324\]
 1.12480 ++ *[0-9a-f]*:	f5 dc 8c c8 	ldswp\.w r12,r10\[-3296\]
 1.12481 ++
 1.12482 ++[0-9a-f]* <stswp_h>:
 1.12483 ++ *[0-9a-f]*:	ff df 90 00 	stswp\.h pc\[0\],pc
 1.12484 ++ *[0-9a-f]*:	f9 dc 9f ff 	stswp\.h r12\[-2\],r12
 1.12485 ++ *[0-9a-f]*:	eb d5 98 00 	stswp\.h r5\[-4096\],r5
 1.12486 ++ *[0-9a-f]*:	e9 d4 97 ff 	stswp\.h r4\[4094\],r4
 1.12487 ++ *[0-9a-f]*:	fd de 90 01 	stswp\.h lr\[2\],lr
 1.12488 ++ *[0-9a-f]*:	ef da 90 20 	stswp\.h r7\[64\],r10
 1.12489 ++ *[0-9a-f]*:	f5 d2 95 e8 	stswp\.h r10\[3024\],r2
 1.12490 ++ *[0-9a-f]*:	e1 da 9b 74 	stswp\.h r0\[-2328\],r10
 1.12491 ++
 1.12492 ++[0-9a-f]* <stswp_w>:
 1.12493 ++ *[0-9a-f]*:	ff df a0 00 	stswp\.w pc\[0\],pc
 1.12494 ++ *[0-9a-f]*:	f9 dc af ff 	stswp\.w r12\[-4\],r12
 1.12495 ++ *[0-9a-f]*:	eb d5 a8 00 	stswp\.w r5\[-8192\],r5
 1.12496 ++ *[0-9a-f]*:	e9 d4 a7 ff 	stswp\.w r4\[8188\],r4
 1.12497 ++ *[0-9a-f]*:	fd de a0 01 	stswp\.w lr\[4\],lr
 1.12498 ++ *[0-9a-f]*:	ff d8 a1 21 	stswp\.w pc\[1156\],r8
 1.12499 ++ *[0-9a-f]*:	fb da a7 ce 	stswp\.w sp\[7992\],r10
 1.12500 ++ *[0-9a-f]*:	f1 d5 ae db 	stswp\.w r8\[-1172\],r5
 1.12501 ++
 1.12502 ++[0-9a-f]* <and2>:
 1.12503 ++ *[0-9a-f]*:	ff ef 00 0f 	and pc,pc,pc
 1.12504 ++ *[0-9a-f]*:	f9 ec 01 fc 	and r12,r12,r12<<0x1f
 1.12505 ++ *[0-9a-f]*:	eb e5 01 05 	and r5,r5,r5<<0x10
 1.12506 ++ *[0-9a-f]*:	e9 e4 00 f4 	and r4,r4,r4<<0xf
 1.12507 ++ *[0-9a-f]*:	fd ee 00 1e 	and lr,lr,lr<<0x1
 1.12508 ++ *[0-9a-f]*:	e5 e1 00 1a 	and r10,r2,r1<<0x1
 1.12509 ++ *[0-9a-f]*:	f1 eb 01 bc 	and r12,r8,r11<<0x1b
 1.12510 ++ *[0-9a-f]*:	ef e0 00 3a 	and r10,r7,r0<<0x3
 1.12511 ++
 1.12512 ++[0-9a-f]* <and3>:
 1.12513 ++ *[0-9a-f]*:	ff ef 02 0f 	and pc,pc,pc
 1.12514 ++ *[0-9a-f]*:	f9 ec 03 fc 	and r12,r12,r12>>0x1f
 1.12515 ++ *[0-9a-f]*:	eb e5 03 05 	and r5,r5,r5>>0x10
 1.12516 ++ *[0-9a-f]*:	e9 e4 02 f4 	and r4,r4,r4>>0xf
 1.12517 ++ *[0-9a-f]*:	fd ee 02 1e 	and lr,lr,lr>>0x1
 1.12518 ++ *[0-9a-f]*:	f1 e7 03 1c 	and r12,r8,r7>>0x11
 1.12519 ++ *[0-9a-f]*:	e9 e9 03 4f 	and pc,r4,r9>>0x14
 1.12520 ++ *[0-9a-f]*:	f3 ea 02 ca 	and r10,r9,r10>>0xc
 1.12521 ++
 1.12522 ++[0-9a-f]* <or2>:
 1.12523 ++ *[0-9a-f]*:	ff ef 10 0f 	or pc,pc,pc
 1.12524 ++ *[0-9a-f]*:	f9 ec 11 fc 	or r12,r12,r12<<0x1f
 1.12525 ++ *[0-9a-f]*:	eb e5 11 05 	or r5,r5,r5<<0x10
 1.12526 ++ *[0-9a-f]*:	e9 e4 10 f4 	or r4,r4,r4<<0xf
 1.12527 ++ *[0-9a-f]*:	fd ee 10 1e 	or lr,lr,lr<<0x1
 1.12528 ++ *[0-9a-f]*:	fb eb 11 d8 	or r8,sp,r11<<0x1d
 1.12529 ++ *[0-9a-f]*:	f3 e2 11 cf 	or pc,r9,r2<<0x1c
 1.12530 ++ *[0-9a-f]*:	e3 e2 10 35 	or r5,r1,r2<<0x3
 1.12531 ++
 1.12532 ++[0-9a-f]* <or3>:
 1.12533 ++ *[0-9a-f]*:	ff ef 12 0f 	or pc,pc,pc
 1.12534 ++ *[0-9a-f]*:	f9 ec 13 fc 	or r12,r12,r12>>0x1f
 1.12535 ++ *[0-9a-f]*:	eb e5 13 05 	or r5,r5,r5>>0x10
 1.12536 ++ *[0-9a-f]*:	e9 e4 12 f4 	or r4,r4,r4>>0xf
 1.12537 ++ *[0-9a-f]*:	fd ee 12 1e 	or lr,lr,lr>>0x1
 1.12538 ++ *[0-9a-f]*:	fb ed 12 21 	or r1,sp,sp>>0x2
 1.12539 ++ *[0-9a-f]*:	e3 e1 13 d0 	or r0,r1,r1>>0x1d
 1.12540 ++ *[0-9a-f]*:	f9 e8 12 84 	or r4,r12,r8>>0x8
 1.12541 ++
 1.12542 ++[0-9a-f]* <eor2>:
 1.12543 ++ *[0-9a-f]*:	ff ef 20 0f 	eor pc,pc,pc
 1.12544 ++ *[0-9a-f]*:	f9 ec 21 fc 	eor r12,r12,r12<<0x1f
 1.12545 ++ *[0-9a-f]*:	eb e5 21 05 	eor r5,r5,r5<<0x10
 1.12546 ++ *[0-9a-f]*:	e9 e4 20 f4 	eor r4,r4,r4<<0xf
 1.12547 ++ *[0-9a-f]*:	fd ee 20 1e 	eor lr,lr,lr<<0x1
 1.12548 ++ *[0-9a-f]*:	f3 e4 20 ba 	eor r10,r9,r4<<0xb
 1.12549 ++ *[0-9a-f]*:	e1 e1 21 f4 	eor r4,r0,r1<<0x1f
 1.12550 ++ *[0-9a-f]*:	e5 ec 20 d6 	eor r6,r2,r12<<0xd
 1.12551 ++
 1.12552 ++[0-9a-f]* <eor3>:
 1.12553 ++ *[0-9a-f]*:	ff ef 22 0f 	eor pc,pc,pc
 1.12554 ++ *[0-9a-f]*:	f9 ec 23 fc 	eor r12,r12,r12>>0x1f
 1.12555 ++ *[0-9a-f]*:	eb e5 23 05 	eor r5,r5,r5>>0x10
 1.12556 ++ *[0-9a-f]*:	e9 e4 22 f4 	eor r4,r4,r4>>0xf
 1.12557 ++ *[0-9a-f]*:	fd ee 22 1e 	eor lr,lr,lr>>0x1
 1.12558 ++ *[0-9a-f]*:	eb e5 23 65 	eor r5,r5,r5>>0x16
 1.12559 ++ *[0-9a-f]*:	e3 ee 22 3a 	eor r10,r1,lr>>0x3
 1.12560 ++ *[0-9a-f]*:	fd ed 23 a7 	eor r7,lr,sp>>0x1a
 1.12561 ++
 1.12562 ++[0-9a-f]* <sthh_w2>:
 1.12563 ++ *[0-9a-f]*:	ff ef 8f 0f 	sthh\.w pc\[pc\],pc:b,pc:b
 1.12564 ++ *[0-9a-f]*:	f9 ec bc 3c 	sthh\.w r12\[r12<<0x3\],r12:t,r12:t
 1.12565 ++ *[0-9a-f]*:	eb e5 b5 25 	sthh\.w r5\[r5<<0x2\],r5:t,r5:t
 1.12566 ++ *[0-9a-f]*:	e9 e4 84 14 	sthh\.w r4\[r4<<0x1\],r4:b,r4:b
 1.12567 ++ *[0-9a-f]*:	fd ee be 1e 	sthh\.w lr\[lr<<0x1\],lr:t,lr:t
 1.12568 ++ *[0-9a-f]*:	e3 ec b6 3d 	sthh\.w sp\[r6<<0x3\],r1:t,r12:t
 1.12569 ++ *[0-9a-f]*:	f3 e9 b6 06 	sthh\.w r6\[r6\],r9:t,r9:t
 1.12570 ++ *[0-9a-f]*:	e1 eb 93 0a 	sthh\.w r10\[r3\],r0:b,r11:t
 1.12571 ++
 1.12572 ++[0-9a-f]* <sthh_w1>:
 1.12573 ++ *[0-9a-f]*:	ff ef c0 0f 	sthh\.w pc\[0x0\],pc:b,pc:b
 1.12574 ++ *[0-9a-f]*:	f9 ec ff fc 	sthh\.w r12\[0x3fc\],r12:t,r12:t
 1.12575 ++ *[0-9a-f]*:	eb e5 f8 05 	sthh\.w r5\[0x200\],r5:t,r5:t
 1.12576 ++ *[0-9a-f]*:	e9 e4 c7 f4 	sthh\.w r4\[0x1fc\],r4:b,r4:b
 1.12577 ++ *[0-9a-f]*:	fd ee f0 1e 	sthh\.w lr\[0x4\],lr:t,lr:t
 1.12578 ++ *[0-9a-f]*:	f3 e0 e6 54 	sthh\.w r4\[0x194\],r9:t,r0:b
 1.12579 ++ *[0-9a-f]*:	e5 ea e5 78 	sthh\.w r8\[0x15c\],r2:t,r10:b
 1.12580 ++ *[0-9a-f]*:	f3 e2 c2 bd 	sthh\.w sp\[0xac\],r9:b,r2:b
 1.12581 ++
 1.12582 ++[0-9a-f]* <cop>:
 1.12583 ++ *[0-9a-f]*:	e1 a0 00 00 	cop cp0,cr0,cr0,cr0,0x0
 1.12584 ++ *[0-9a-f]*:	e7 af ff ff 	cop cp7,cr15,cr15,cr15,0x7f
 1.12585 ++ *[0-9a-f]*:	e3 a8 75 55 	cop cp3,cr5,cr5,cr5,0x31
 1.12586 ++ *[0-9a-f]*:	e3 a8 44 44 	cop cp2,cr4,cr4,cr4,0x30
 1.12587 ++ *[0-9a-f]*:	e5 ad a8 37 	cop cp5,cr8,cr3,cr7,0x5a
 1.12588 ++
 1.12589 ++[0-9a-f]* <ldc_w1>:
 1.12590 ++ *[0-9a-f]*:	e9 a0 00 00 	ldc\.w cp0,cr0,r0\[0x0\]
 1.12591 ++ *[0-9a-f]*:	e9 af ef ff 	ldc\.w cp7,cr15,pc\[0x3fc\]
 1.12592 ++ *[0-9a-f]*:	e9 a5 65 80 	ldc\.w cp3,cr5,r5\[0x200\]
 1.12593 ++ *[0-9a-f]*:	e9 a4 44 7f 	ldc\.w cp2,cr4,r4\[0x1fc\]
 1.12594 ++ *[0-9a-f]*:	e9 ad 89 24 	ldc\.w cp4,cr9,sp\[0x90\]
 1.12595 ++
 1.12596 ++[0-9a-f]* <ldc_w2>:
 1.12597 ++ *[0-9a-f]*:	ef a0 00 40 	ldc\.w cp0,cr0,--r0
 1.12598 ++ *[0-9a-f]*:	ef af ef 40 	ldc\.w cp7,cr15,--pc
 1.12599 ++ *[0-9a-f]*:	ef a5 65 40 	ldc\.w cp3,cr5,--r5
 1.12600 ++ *[0-9a-f]*:	ef a4 44 40 	ldc\.w cp2,cr4,--r4
 1.12601 ++ *[0-9a-f]*:	ef ad 89 40 	ldc\.w cp4,cr9,--sp
 1.12602 ++
 1.12603 ++[0-9a-f]* <ldc_w3>:
 1.12604 ++ *[0-9a-f]*:	ef a0 10 00 	ldc\.w cp0,cr0,r0\[r0\]
 1.12605 ++ *[0-9a-f]*:	ef af ff 3f 	ldc\.w cp7,cr15,pc\[pc<<0x3\]
 1.12606 ++ *[0-9a-f]*:	ef a5 75 24 	ldc\.w cp3,cr5,r5\[r4<<0x2\]
 1.12607 ++ *[0-9a-f]*:	ef a4 54 13 	ldc\.w cp2,cr4,r4\[r3<<0x1\]
 1.12608 ++ *[0-9a-f]*:	ef ad 99 0c 	ldc\.w cp4,cr9,sp\[r12\]
 1.12609 ++
 1.12610 ++[0-9a-f]* <ldc_d1>:
 1.12611 ++ *[0-9a-f]*:	e9 a0 10 00 	ldc\.d cp0,cr0,r0\[0x0\]
 1.12612 ++ *[0-9a-f]*:	e9 af fe ff 	ldc\.d cp7,cr14,pc\[0x3fc\]
 1.12613 ++ *[0-9a-f]*:	e9 a5 76 80 	ldc\.d cp3,cr6,r5\[0x200\]
 1.12614 ++ *[0-9a-f]*:	e9 a4 54 7f 	ldc\.d cp2,cr4,r4\[0x1fc\]
 1.12615 ++ *[0-9a-f]*:	e9 ad 98 24 	ldc\.d cp4,cr8,sp\[0x90\]
 1.12616 ++
 1.12617 ++[0-9a-f]* <ldc_d2>:
 1.12618 ++ *[0-9a-f]*:	ef a0 00 50 	ldc\.d cp0,cr0,--r0
 1.12619 ++ *[0-9a-f]*:	ef af ee 50 	ldc\.d cp7,cr14,--pc
 1.12620 ++ *[0-9a-f]*:	ef a5 66 50 	ldc\.d cp3,cr6,--r5
 1.12621 ++ *[0-9a-f]*:	ef a4 44 50 	ldc\.d cp2,cr4,--r4
 1.12622 ++ *[0-9a-f]*:	ef ad 88 50 	ldc\.d cp4,cr8,--sp
 1.12623 ++
 1.12624 ++[0-9a-f]* <ldc_d3>:
 1.12625 ++ *[0-9a-f]*:	ef a0 10 40 	ldc\.d cp0,cr0,r0\[r0\]
 1.12626 ++ *[0-9a-f]*:	ef af fe 7f 	ldc\.d cp7,cr14,pc\[pc<<0x3\]
 1.12627 ++ *[0-9a-f]*:	ef a5 76 64 	ldc\.d cp3,cr6,r5\[r4<<0x2\]
 1.12628 ++ *[0-9a-f]*:	ef a4 54 53 	ldc\.d cp2,cr4,r4\[r3<<0x1\]
 1.12629 ++ *[0-9a-f]*:	ef ad 98 4c 	ldc\.d cp4,cr8,sp\[r12\]
 1.12630 ++
 1.12631 ++[0-9a-f]* <stc_w1>:
 1.12632 ++ *[0-9a-f]*:	eb a0 00 00 	stc\.w cp0,r0\[0x0\],cr0
 1.12633 ++ *[0-9a-f]*:	eb af ef ff 	stc\.w cp7,pc\[0x3fc\],cr15
 1.12634 ++ *[0-9a-f]*:	eb a5 65 80 	stc\.w cp3,r5\[0x200\],cr5
 1.12635 ++ *[0-9a-f]*:	eb a4 44 7f 	stc\.w cp2,r4\[0x1fc\],cr4
 1.12636 ++ *[0-9a-f]*:	eb ad 89 24 	stc\.w cp4,sp\[0x90\],cr9
 1.12637 ++
 1.12638 ++[0-9a-f]* <stc_w2>:
 1.12639 ++ *[0-9a-f]*:	ef a0 00 60 	stc\.w cp0,r0\+\+,cr0
 1.12640 ++ *[0-9a-f]*:	ef af ef 60 	stc\.w cp7,pc\+\+,cr15
 1.12641 ++ *[0-9a-f]*:	ef a5 65 60 	stc\.w cp3,r5\+\+,cr5
 1.12642 ++ *[0-9a-f]*:	ef a4 44 60 	stc\.w cp2,r4\+\+,cr4
 1.12643 ++ *[0-9a-f]*:	ef ad 89 60 	stc\.w cp4,sp\+\+,cr9
 1.12644 ++
 1.12645 ++[0-9a-f]* <stc_w3>:
 1.12646 ++ *[0-9a-f]*:	ef a0 10 80 	stc\.w cp0,r0\[r0\],cr0
 1.12647 ++ *[0-9a-f]*:	ef af ff bf 	stc\.w cp7,pc\[pc<<0x3\],cr15
 1.12648 ++ *[0-9a-f]*:	ef a5 75 a4 	stc\.w cp3,r5\[r4<<0x2\],cr5
 1.12649 ++ *[0-9a-f]*:	ef a4 54 93 	stc\.w cp2,r4\[r3<<0x1\],cr4
 1.12650 ++ *[0-9a-f]*:	ef ad 99 8c 	stc\.w cp4,sp\[r12\],cr9
 1.12651 ++
 1.12652 ++[0-9a-f]* <stc_d1>:
 1.12653 ++ *[0-9a-f]*:	eb a0 10 00 	stc\.d cp0,r0\[0x0\],cr0
 1.12654 ++ *[0-9a-f]*:	eb af fe ff 	stc\.d cp7,pc\[0x3fc\],cr14
 1.12655 ++ *[0-9a-f]*:	eb a5 76 80 	stc\.d cp3,r5\[0x200\],cr6
 1.12656 ++ *[0-9a-f]*:	eb a4 54 7f 	stc\.d cp2,r4\[0x1fc\],cr4
 1.12657 ++ *[0-9a-f]*:	eb ad 98 24 	stc\.d cp4,sp\[0x90\],cr8
 1.12658 ++
 1.12659 ++[0-9a-f]* <stc_d2>:
 1.12660 ++ *[0-9a-f]*:	ef a0 00 70 	stc\.d cp0,r0\+\+,cr0
 1.12661 ++ *[0-9a-f]*:	ef af ee 70 	stc\.d cp7,pc\+\+,cr14
 1.12662 ++ *[0-9a-f]*:	ef a5 66 70 	stc\.d cp3,r5\+\+,cr6
 1.12663 ++ *[0-9a-f]*:	ef a4 44 70 	stc\.d cp2,r4\+\+,cr4
 1.12664 ++ *[0-9a-f]*:	ef ad 88 70 	stc\.d cp4,sp\+\+,cr8
 1.12665 ++
 1.12666 ++[0-9a-f]* <stc_d3>:
 1.12667 ++ *[0-9a-f]*:	ef a0 10 c0 	stc\.d cp0,r0\[r0\],cr0
 1.12668 ++ *[0-9a-f]*:	ef af fe ff 	stc\.d cp7,pc\[pc<<0x3\],cr14
 1.12669 ++ *[0-9a-f]*:	ef a5 76 e4 	stc\.d cp3,r5\[r4<<0x2\],cr6
 1.12670 ++ *[0-9a-f]*:	ef a4 54 d3 	stc\.d cp2,r4\[r3<<0x1\],cr4
 1.12671 ++ *[0-9a-f]*:	ef ad 98 cc 	stc\.d cp4,sp\[r12\],cr8
 1.12672 ++
 1.12673 ++[0-9a-f]* <ldc0_w>:
 1.12674 ++ *[0-9a-f]*:	f1 a0 00 00 	ldc0\.w cr0,r0\[0x0\]
 1.12675 ++ *[0-9a-f]*:	f1 af ff ff 	ldc0\.w cr15,pc\[0x3ffc\]
 1.12676 ++ *[0-9a-f]*:	f1 a5 85 00 	ldc0\.w cr5,r5\[0x2000\]
 1.12677 ++ *[0-9a-f]*:	f1 a4 74 ff 	ldc0\.w cr4,r4\[0x1ffc\]
 1.12678 ++ *[0-9a-f]*:	f1 ad 09 93 	ldc0\.w cr9,sp\[0x24c\]
 1.12679 ++
 1.12680 ++[0-9a-f]* <ldc0_d>:
 1.12681 ++ *[0-9a-f]*:	f3 a0 00 00 	ldc0\.d cr0,r0\[0x0\]
 1.12682 ++ *[0-9a-f]*:	f3 af fe ff 	ldc0\.d cr14,pc\[0x3ffc\]
 1.12683 ++ *[0-9a-f]*:	f3 a5 86 00 	ldc0\.d cr6,r5\[0x2000\]
 1.12684 ++ *[0-9a-f]*:	f3 a4 74 ff 	ldc0\.d cr4,r4\[0x1ffc\]
 1.12685 ++ *[0-9a-f]*:	f3 ad 08 93 	ldc0\.d cr8,sp\[0x24c\]
 1.12686 ++
 1.12687 ++[0-9a-f]* <stc0_w>:
 1.12688 ++ *[0-9a-f]*:	f5 a0 00 00 	stc0\.w r0\[0x0\],cr0
 1.12689 ++ *[0-9a-f]*:	f5 af ff ff 	stc0\.w pc\[0x3ffc\],cr15
 1.12690 ++ *[0-9a-f]*:	f5 a5 85 00 	stc0\.w r5\[0x2000\],cr5
 1.12691 ++ *[0-9a-f]*:	f5 a4 74 ff 	stc0\.w r4\[0x1ffc\],cr4
 1.12692 ++ *[0-9a-f]*:	f5 ad 09 93 	stc0\.w sp\[0x24c\],cr9
 1.12693 ++
 1.12694 ++[0-9a-f]* <stc0_d>:
 1.12695 ++ *[0-9a-f]*:	f7 a0 00 00 	stc0\.d r0\[0x0\],cr0
 1.12696 ++ *[0-9a-f]*:	f7 af fe ff 	stc0\.d pc\[0x3ffc\],cr14
 1.12697 ++ *[0-9a-f]*:	f7 a5 86 00 	stc0\.d r5\[0x2000\],cr6
 1.12698 ++ *[0-9a-f]*:	f7 a4 74 ff 	stc0\.d r4\[0x1ffc\],cr4
 1.12699 ++ *[0-9a-f]*:	f7 ad 08 93 	stc0\.d sp\[0x24c\],cr8
 1.12700 ++
 1.12701 ++[0-9a-f]* <memc>:
 1.12702 ++ *[0-9a-f]*:	f6 10 00 00 	memc 0,0x0
 1.12703 ++ *[0-9a-f]*:	f6 1f ff ff 	memc -4,0x1f
 1.12704 ++ *[0-9a-f]*:	f6 18 40 00 	memc -65536,0x10
 1.12705 ++ *[0-9a-f]*:	f6 17 bf ff 	memc 65532,0xf
 1.12706 ++
 1.12707 ++[0-9a-f]* <mems>:
 1.12708 ++ *[0-9a-f]*:	f8 10 00 00 	mems 0,0x0
 1.12709 ++ *[0-9a-f]*:	f8 1f ff ff 	mems -4,0x1f
 1.12710 ++ *[0-9a-f]*:	f8 18 40 00 	mems -65536,0x10
 1.12711 ++ *[0-9a-f]*:	f8 17 bf ff 	mems 65532,0xf
 1.12712 ++
 1.12713 ++[0-9a-f]* <memt>:
 1.12714 ++ *[0-9a-f]*:	fa 10 00 00 	memt 0,0x0
 1.12715 ++ *[0-9a-f]*:	fa 1f ff ff 	memt -4,0x1f
 1.12716 ++ *[0-9a-f]*:	fa 18 40 00 	memt -65536,0x10
 1.12717 ++ *[0-9a-f]*:	fa 17 bf ff 	memt 65532,0xf
 1.12718 ++
 1.12719 ++[0-9a-f]* <stcond>:
 1.12720 ++ *[0-9a-f]*:	e1 70 00 00 	stcond r0\[0\],r0
 1.12721 ++ *[0-9a-f]*:	ff 7f ff ff 	stcond pc\[-1\],pc
 1.12722 ++ *[0-9a-f]*:	f1 77 80 00 	stcond r8\[-32768\],r7
 1.12723 ++ *[0-9a-f]*:	ef 78 7f ff 	stcond r7\[32767\],r8
 1.12724 ++ *[0-9a-f]*:	eb 7a 12 34 	stcond r5\[4660\],r10
 1.12725 ++
 1.12726 ++[0-9a-f]* <ldcm_w>:
 1.12727 ++ *[0-9a-f]*:	ed af 00 ff 	ldcm\.w cp0,pc,cr0-cr7
 1.12728 ++ *[0-9a-f]*:	ed a0 e0 01 	ldcm\.w cp7,r0,cr0
 1.12729 ++ *[0-9a-f]*:	ed a4 90 7f 	ldcm\.w cp4,r4\+\+,cr0-cr6
 1.12730 ++ *[0-9a-f]*:	ed a7 60 80 	ldcm\.w cp3,r7,cr7
 1.12731 ++ *[0-9a-f]*:	ed ac 30 72 	ldcm\.w cp1,r12\+\+,cr1,cr4-cr6
 1.12732 ++ *[0-9a-f]*:	ed af 01 ff 	ldcm\.w cp0,pc,cr8-cr15
 1.12733 ++ *[0-9a-f]*:	ed a0 e1 01 	ldcm\.w cp7,r0,cr8
 1.12734 ++ *[0-9a-f]*:	ed a4 91 7f 	ldcm\.w cp4,r4\+\+,cr8-cr14
 1.12735 ++ *[0-9a-f]*:	ed a7 61 80 	ldcm\.w cp3,r7,cr15
 1.12736 ++ *[0-9a-f]*:	ed ac 31 72 	ldcm\.w cp1,r12\+\+,cr9,cr12-cr14
 1.12737 ++
 1.12738 ++[0-9a-f]* <ldcm_d>:
 1.12739 ++ *[0-9a-f]*:	ed af 04 ff 	ldcm\.d cp0,pc,cr0-cr15
 1.12740 ++ *[0-9a-f]*:	ed a0 e4 01 	ldcm\.d cp7,r0,cr0-cr1
 1.12741 ++ *[0-9a-f]*:	ed a4 94 7f 	ldcm\.d cp4,r4\+\+,cr0-cr13
 1.12742 ++ *[0-9a-f]*:	ed a7 64 80 	ldcm\.d cp3,r7,cr14-cr15
 1.12743 ++ *[0-9a-f]*:	ed ac 54 93 	ldcm\.d cp2,r12\+\+,cr0-cr3,cr8-cr9,cr14-cr15
 1.12744 ++
 1.12745 ++[0-9a-f]* <stcm_w>:
 1.12746 ++ *[0-9a-f]*:	ed af 02 ff 	stcm\.w cp0,pc,cr0-cr7
 1.12747 ++ *[0-9a-f]*:	ed a0 e2 01 	stcm\.w cp7,r0,cr0
 1.12748 ++ *[0-9a-f]*:	ed a4 92 7f 	stcm\.w cp4,--r4,cr0-cr6
 1.12749 ++ *[0-9a-f]*:	ed a7 62 80 	stcm\.w cp3,r7,cr7
 1.12750 ++ *[0-9a-f]*:	ed ac 32 72 	stcm\.w cp1,--r12,cr1,cr4-cr6
 1.12751 ++ *[0-9a-f]*:	ed af 03 ff 	stcm\.w cp0,pc,cr8-cr15
 1.12752 ++ *[0-9a-f]*:	ed a0 e3 01 	stcm\.w cp7,r0,cr8
 1.12753 ++ *[0-9a-f]*:	ed a4 93 7f 	stcm\.w cp4,--r4,cr8-cr14
 1.12754 ++ *[0-9a-f]*:	ed a7 63 80 	stcm\.w cp3,r7,cr15
 1.12755 ++ *[0-9a-f]*:	ed ac 33 72 	stcm\.w cp1,--r12,cr9,cr12-cr14
 1.12756 ++
 1.12757 ++[0-9a-f]* <stcm_d>:
 1.12758 ++ *[0-9a-f]*:	ed af 05 ff 	stcm\.d cp0,pc,cr0-cr15
 1.12759 ++ *[0-9a-f]*:	ed a0 e5 01 	stcm\.d cp7,r0,cr0-cr1
 1.12760 ++ *[0-9a-f]*:	ed a4 95 7f 	stcm\.d cp4,--r4,cr0-cr13
 1.12761 ++ *[0-9a-f]*:	ed a7 65 80 	stcm\.d cp3,r7,cr14-cr15
 1.12762 ++ *[0-9a-f]*:	ed ac 55 93 	stcm\.d cp2,--r12,cr0-cr3,cr8-cr9,cr14-cr15
 1.12763 ++
 1.12764 ++[0-9a-f]* <mvcr_w>:
 1.12765 ++ *[0-9a-f]*:	ef af ef 00 	mvcr\.w cp7,pc,cr15
 1.12766 ++ *[0-9a-f]*:	ef a0 00 00 	mvcr\.w cp0,r0,cr0
 1.12767 ++ *[0-9a-f]*:	ef af 0f 00 	mvcr\.w cp0,pc,cr15
 1.12768 ++ *[0-9a-f]*:	ef a0 ef 00 	mvcr\.w cp7,r0,cr15
 1.12769 ++ *[0-9a-f]*:	ef af e0 00 	mvcr\.w cp7,pc,cr0
 1.12770 ++ *[0-9a-f]*:	ef a7 88 00 	mvcr\.w cp4,r7,cr8
 1.12771 ++ *[0-9a-f]*:	ef a8 67 00 	mvcr\.w cp3,r8,cr7
 1.12772 ++
 1.12773 ++[0-9a-f]* <mvcr_d>:
 1.12774 ++ *[0-9a-f]*:	ef ae ee 10 	mvcr\.d cp7,lr,cr14
 1.12775 ++ *[0-9a-f]*:	ef a0 00 10 	mvcr\.d cp0,r0,cr0
 1.12776 ++ *[0-9a-f]*:	ef ae 0e 10 	mvcr\.d cp0,lr,cr14
 1.12777 ++ *[0-9a-f]*:	ef a0 ee 10 	mvcr\.d cp7,r0,cr14
 1.12778 ++ *[0-9a-f]*:	ef ae e0 10 	mvcr\.d cp7,lr,cr0
 1.12779 ++ *[0-9a-f]*:	ef a6 88 10 	mvcr\.d cp4,r6,cr8
 1.12780 ++ *[0-9a-f]*:	ef a8 66 10 	mvcr\.d cp3,r8,cr6
 1.12781 ++
 1.12782 ++[0-9a-f]* <mvrc_w>:
 1.12783 ++ *[0-9a-f]*:	ef af ef 20 	mvrc\.w cp7,cr15,pc
 1.12784 ++ *[0-9a-f]*:	ef a0 00 20 	mvrc\.w cp0,cr0,r0
 1.12785 ++ *[0-9a-f]*:	ef af 0f 20 	mvrc\.w cp0,cr15,pc
 1.12786 ++ *[0-9a-f]*:	ef a0 ef 20 	mvrc\.w cp7,cr15,r0
 1.12787 ++ *[0-9a-f]*:	ef af e0 20 	mvrc\.w cp7,cr0,pc
 1.12788 ++ *[0-9a-f]*:	ef a7 88 20 	mvrc\.w cp4,cr8,r7
 1.12789 ++ *[0-9a-f]*:	ef a8 67 20 	mvrc\.w cp3,cr7,r8
 1.12790 ++
 1.12791 ++[0-9a-f]* <mvrc_d>:
 1.12792 ++ *[0-9a-f]*:	ef ae ee 30 	mvrc\.d cp7,cr14,lr
 1.12793 ++ *[0-9a-f]*:	ef a0 00 30 	mvrc\.d cp0,cr0,r0
 1.12794 ++ *[0-9a-f]*:	ef ae 0e 30 	mvrc\.d cp0,cr14,lr
 1.12795 ++ *[0-9a-f]*:	ef a0 ee 30 	mvrc\.d cp7,cr14,r0
 1.12796 ++ *[0-9a-f]*:	ef ae e0 30 	mvrc\.d cp7,cr0,lr
 1.12797 ++ *[0-9a-f]*:	ef a6 88 30 	mvrc\.d cp4,cr8,r6
 1.12798 ++ *[0-9a-f]*:	ef a8 66 30 	mvrc\.d cp3,cr6,r8
 1.12799 ++
 1.12800 ++[0-9a-f]* <bfexts>:
 1.12801 ++ *[0-9a-f]*:	ff df b3 ff 	bfexts pc,pc,0x1f,0x1f
 1.12802 ++ *[0-9a-f]*:	e1 d0 b0 00 	bfexts r0,r0,0x0,0x0
 1.12803 ++ *[0-9a-f]*:	e1 df b3 ff 	bfexts r0,pc,0x1f,0x1f
 1.12804 ++ *[0-9a-f]*:	ff d0 b3 ff 	bfexts pc,r0,0x1f,0x1f
 1.12805 ++ *[0-9a-f]*:	ff df b0 1f 	bfexts pc,pc,0x0,0x1f
 1.12806 ++ *[0-9a-f]*:	ff df b3 e0 	bfexts pc,pc,0x1f,0x0
 1.12807 ++ *[0-9a-f]*:	ef d8 b1 f0 	bfexts r7,r8,0xf,0x10
 1.12808 ++ *[0-9a-f]*:	f1 d7 b2 0f 	bfexts r8,r7,0x10,0xf
 1.12809 ++
 1.12810 ++[0-9a-f]* <bfextu>:
 1.12811 ++ *[0-9a-f]*:	ff df c3 ff 	bfextu pc,pc,0x1f,0x1f
 1.12812 ++ *[0-9a-f]*:	e1 d0 c0 00 	bfextu r0,r0,0x0,0x0
 1.12813 ++ *[0-9a-f]*:	e1 df c3 ff 	bfextu r0,pc,0x1f,0x1f
 1.12814 ++ *[0-9a-f]*:	ff d0 c3 ff 	bfextu pc,r0,0x1f,0x1f
 1.12815 ++ *[0-9a-f]*:	ff df c0 1f 	bfextu pc,pc,0x0,0x1f
 1.12816 ++ *[0-9a-f]*:	ff df c3 e0 	bfextu pc,pc,0x1f,0x0
 1.12817 ++ *[0-9a-f]*:	ef d8 c1 f0 	bfextu r7,r8,0xf,0x10
 1.12818 ++ *[0-9a-f]*:	f1 d7 c2 0f 	bfextu r8,r7,0x10,0xf
 1.12819 ++
 1.12820 ++[0-9a-f]* <bfins>:
 1.12821 ++ *[0-9a-f]*:	ff df d3 ff 	bfins pc,pc,0x1f,0x1f
 1.12822 ++ *[0-9a-f]*:	e1 d0 d0 00 	bfins r0,r0,0x0,0x0
 1.12823 ++ *[0-9a-f]*:	e1 df d3 ff 	bfins r0,pc,0x1f,0x1f
 1.12824 ++ *[0-9a-f]*:	ff d0 d3 ff 	bfins pc,r0,0x1f,0x1f
 1.12825 ++ *[0-9a-f]*:	ff df d0 1f 	bfins pc,pc,0x0,0x1f
 1.12826 ++ *[0-9a-f]*:	ff df d3 e0 	bfins pc,pc,0x1f,0x0
 1.12827 ++ *[0-9a-f]*:	ef d8 d1 f0 	bfins r7,r8,0xf,0x10
 1.12828 ++ *[0-9a-f]*:	f1 d7 d2 0f 	bfins r8,r7,0x10,0xf
 1.12829 ++
 1.12830 ++[0-9a-f]* <rsubc>:
 1.12831 ++ *[0-9a-f]*:	fb bf 00 00 	rsubeq pc,0
 1.12832 ++ *[0-9a-f]*:	fb bc 0f ff 	rsubal r12,-1
 1.12833 ++ *[0-9a-f]*:	fb b5 08 80 	rsubls r5,-128
 1.12834 ++ *[0-9a-f]*:	fb b4 07 7f 	rsubpl r4,127
 1.12835 ++ *[0-9a-f]*:	fb be 01 01 	rsubne lr,1
 1.12836 ++ *[0-9a-f]*:	fb bc 08 76 	rsubls r12,118
 1.12837 ++ *[0-9a-f]*:	fb be 0d f4 	rsubvc lr,-12
 1.12838 ++ *[0-9a-f]*:	fb b4 06 f3 	rsubmi r4,-13
 1.12839 ++
 1.12840 ++[0-9a-f]* <addc>:
 1.12841 ++ *[0-9a-f]*:	ff df e0 0f 	addeq pc,pc,pc
 1.12842 ++ *[0-9a-f]*:	f9 dc ef 0c 	addal r12,r12,r12
 1.12843 ++ *[0-9a-f]*:	eb d5 e8 05 	addls r5,r5,r5
 1.12844 ++ *[0-9a-f]*:	e9 d4 e7 04 	addpl r4,r4,r4   
 1.12845 ++ *[0-9a-f]*:	fd de e1 0e 	addne lr,lr,lr
 1.12846 ++ *[0-9a-f]*:	e5 d1 e8 0a 	addls r10,r2,r1
 1.12847 ++ *[0-9a-f]*:	f1 db ed 0c 	addvc r12,r8,r11
 1.12848 ++ *[0-9a-f]*:	ef d0 e6 0a 	addmi r10,r7,r0
 1.12849 ++
 1.12850 ++[0-9a-f]* <subc2>:
 1.12851 ++ *[0-9a-f]*:	ff df e0 1f 	subeq pc,pc,pc
 1.12852 ++ *[0-9a-f]*:	f9 dc ef 1c 	subal r12,r12,r12
 1.12853 ++ *[0-9a-f]*:	eb d5 e8 15 	subls r5,r5,r5
 1.12854 ++ *[0-9a-f]*:	e9 d4 e7 14 	subpl r4,r4,r4   
 1.12855 ++ *[0-9a-f]*:	fd de e1 1e 	subne lr,lr,lr
 1.12856 ++ *[0-9a-f]*:	e5 d1 e8 1a 	subls r10,r2,r1
 1.12857 ++ *[0-9a-f]*:	f1 db ed 1c 	subvc r12,r8,r11
 1.12858 ++ *[0-9a-f]*:	ef d0 e6 1a 	submi r10,r7,r0
 1.12859 ++
 1.12860 ++[0-9a-f]* <andc>:
 1.12861 ++ *[0-9a-f]*:	ff df e0 2f 	andeq pc,pc,pc
 1.12862 ++ *[0-9a-f]*:	f9 dc ef 2c 	andal r12,r12,r12
 1.12863 ++ *[0-9a-f]*:	eb d5 e8 25 	andls r5,r5,r5
 1.12864 ++ *[0-9a-f]*:	e9 d4 e7 24 	andpl r4,r4,r4   
 1.12865 ++ *[0-9a-f]*:	fd de e1 2e 	andne lr,lr,lr
 1.12866 ++ *[0-9a-f]*:	e5 d1 e8 2a 	andls r10,r2,r1
 1.12867 ++ *[0-9a-f]*:	f1 db ed 2c 	andvc r12,r8,r11
 1.12868 ++ *[0-9a-f]*:	ef d0 e6 2a 	andmi r10,r7,r0
 1.12869 ++
 1.12870 ++[0-9a-f]* <orc>:
 1.12871 ++ *[0-9a-f]*:	ff df e0 3f 	oreq pc,pc,pc
 1.12872 ++ *[0-9a-f]*:	f9 dc ef 3c 	oral r12,r12,r12
 1.12873 ++ *[0-9a-f]*:	eb d5 e8 35 	orls r5,r5,r5
 1.12874 ++ *[0-9a-f]*:	e9 d4 e7 34 	orpl r4,r4,r4   
 1.12875 ++ *[0-9a-f]*:	fd de e1 3e 	orne lr,lr,lr
 1.12876 ++ *[0-9a-f]*:	e5 d1 e8 3a 	orls r10,r2,r1
 1.12877 ++ *[0-9a-f]*:	f1 db ed 3c 	orvc r12,r8,r11
 1.12878 ++ *[0-9a-f]*:	ef d0 e6 3a 	ormi r10,r7,r0
 1.12879 ++
 1.12880 ++[0-9a-f]* <eorc>:
 1.12881 ++ *[0-9a-f]*:	ff df e0 4f 	eoreq pc,pc,pc
 1.12882 ++ *[0-9a-f]*:	f9 dc ef 4c 	eoral r12,r12,r12
 1.12883 ++ *[0-9a-f]*:	eb d5 e8 45 	eorls r5,r5,r5
 1.12884 ++ *[0-9a-f]*:	e9 d4 e7 44 	eorpl r4,r4,r4   
 1.12885 ++ *[0-9a-f]*:	fd de e1 4e 	eorne lr,lr,lr
 1.12886 ++ *[0-9a-f]*:	e5 d1 e8 4a 	eorls r10,r2,r1
 1.12887 ++ *[0-9a-f]*:	f1 db ed 4c 	eorvc r12,r8,r11
 1.12888 ++ *[0-9a-f]*:	ef d0 e6 4a 	eormi r10,r7,r0
 1.12889 ++
 1.12890 ++[0-9a-f]* <ldcond>:
 1.12891 ++ *[0-9a-f]*:	ff ff 01 ff     ld.weq  pc,pc[0x7fc]
 1.12892 ++ *[0-9a-f]*:	f9 fc f3 ff     ld.shal r12,r12[0x3fe]
 1.12893 ++ *[0-9a-f]*:	eb f5 84 00     ld.shls r5,r5[0x0]
 1.12894 ++ *[0-9a-f]*:	e9 f4 79 ff     ld.ubpl r4,r4[0x1ff]
 1.12895 ++ *[0-9a-f]*:	fd fe 16 00     ld.sbne lr,lr[0x0]
 1.12896 ++ *[0-9a-f]*:	e5 fa 80 00     ld.wls  r10,r2[0x0]
 1.12897 ++ *[0-9a-f]*:	f1 fc d3 ff     ld.shvc r12,r8[0x3fe]
 1.12898 ++ *[0-9a-f]*:	ef fa 68 01     ld.ubmi r10,r7[0x1]
 1.12899 ++
 1.12900 ++[0-9a-f]* <stcond2>:
 1.12901 ++ *[0-9a-f]*:	ff ff 0b ff     st.weq pc[0x7fc],pc
 1.12902 ++ *[0-9a-f]*:	f9 fc fd ff     st.hal r12[0x3fe],r12
 1.12903 ++ *[0-9a-f]*:	eb f5 8c 00     st.hls r5[0x0],r5
 1.12904 ++ *[0-9a-f]*:	e9 f4 7f ff     st.bpl r4[0x1ff],r4
 1.12905 ++ *[0-9a-f]*:	fd fe 1e 00     st.bne lr[0x0],lr
 1.12906 ++ *[0-9a-f]*:	e5 fa 8a 00     st.wls r2[0x0],r10
 1.12907 ++ *[0-9a-f]*:	f1 fc dd ff     st.hvc r8[0x3fe],r12
 1.12908 ++ *[0-9a-f]*:	ef fa 6e 01     st.bmi r7[0x1],r10
 1.12909 ++
 1.12910 ++[0-9a-f]* <movh>:
 1.12911 ++ *[0-9a-f]*:	fc 1f ff ff     movh pc,0xffff
 1.12912 ++ *[0-9a-f]*:	fc 10 00 00     movh r0,0x0
 1.12913 ++ *[0-9a-f]*:	fc 15 00 01     movh r5,0x1
 1.12914 ++ *[0-9a-f]*:	fc 1c 7f ff     movh r12,0x7fff
 1.12915 ++
 1.12916 +--- /dev/null
 1.12917 ++++ b/gas/testsuite/gas/avr32/allinsn.exp
 1.12918 +@@ -0,0 +1,5 @@
 1.12919 ++# AVR32 assembler testsuite. -*- Tcl -*-
 1.12920 ++
 1.12921 ++if [istarget avr32-*-*] {
 1.12922 ++    run_dump_test "allinsn"
 1.12923 ++}
 1.12924 +--- /dev/null
 1.12925 ++++ b/gas/testsuite/gas/avr32/allinsn.s
 1.12926 +@@ -0,0 +1,3330 @@
 1.12927 ++ .data
 1.12928 ++foodata: .word 42
 1.12929 ++ .text
 1.12930 ++footext:
 1.12931 ++	.text
 1.12932 ++	.global ld_d5
 1.12933 ++ld_d5:
 1.12934 ++	ld.d lr,pc[pc<<3]
 1.12935 ++	ld.d r0,r0[r0<<0]
 1.12936 ++	ld.d r6,r5[r5<<2]
 1.12937 ++	ld.d r4,r4[r4<<1]
 1.12938 ++	ld.d lr,lr[lr<<1]
 1.12939 ++	ld.d r10,r3[sp<<2]
 1.12940 ++	ld.d r8,r10[r6<<2]
 1.12941 ++	ld.d r2,r7[r9<<0]
 1.12942 ++	.text
 1.12943 ++	.global ld_w5
 1.12944 ++ld_w5:
 1.12945 ++	ld.w pc,pc[pc<<0]
 1.12946 ++	ld.w r12,r12[r12<<3]
 1.12947 ++	ld.w r5,r5[r5<<2]
 1.12948 ++	ld.w r4,r4[r4<<1]
 1.12949 ++	ld.w lr,lr[lr<<1]
 1.12950 ++	ld.w r2,r9[r9<<0]
 1.12951 ++	ld.w r11,r2[r6<<0]
 1.12952 ++	ld.w r0,r2[sp<<3]
 1.12953 ++	.text
 1.12954 ++	.global ld_sh5
 1.12955 ++ld_sh5:
 1.12956 ++	ld.sh pc,pc[pc<<0]
 1.12957 ++	ld.sh r12,r12[r12<<3]
 1.12958 ++	ld.sh r5,r5[r5<<2]
 1.12959 ++	ld.sh r4,r4[r4<<1]
 1.12960 ++	ld.sh lr,lr[lr<<1]
 1.12961 ++	ld.sh r11,r0[pc<<2]
 1.12962 ++	ld.sh r10,sp[r6<<2]
 1.12963 ++	ld.sh r12,r2[r2<<0]
 1.12964 ++	.text
 1.12965 ++	.global ld_uh5
 1.12966 ++ld_uh5:
 1.12967 ++	ld.uh pc,pc[pc<<0]
 1.12968 ++	ld.uh r12,r12[r12<<3]
 1.12969 ++	ld.uh r5,r5[r5<<2]
 1.12970 ++	ld.uh r4,r4[r4<<1]
 1.12971 ++	ld.uh lr,lr[lr<<1]
 1.12972 ++	ld.uh r8,pc[lr<<3]
 1.12973 ++	ld.uh r6,r1[pc<<1]
 1.12974 ++	ld.uh r6,lr[sp<<1]
 1.12975 ++	.text
 1.12976 ++	.global ld_sb2
 1.12977 ++ld_sb2:
 1.12978 ++	ld.sb pc,pc[pc<<0]
 1.12979 ++	ld.sb r12,r12[r12<<3]
 1.12980 ++	ld.sb r5,r5[r5<<2]
 1.12981 ++	ld.sb r4,r4[r4<<1]
 1.12982 ++	ld.sb lr,lr[lr<<1]
 1.12983 ++	ld.sb r9,r1[pc<<3]
 1.12984 ++	ld.sb r0,r3[r11<<1]
 1.12985 ++	ld.sb r10,r5[r5<<1]
 1.12986 ++	.text
 1.12987 ++	.global ld_ub5
 1.12988 ++ld_ub5:
 1.12989 ++	ld.ub pc,pc[pc<<0]
 1.12990 ++	ld.ub r12,r12[r12<<3]
 1.12991 ++	ld.ub r5,r5[r5<<2]
 1.12992 ++	ld.ub r4,r4[r4<<1]
 1.12993 ++	ld.ub lr,lr[lr<<1]
 1.12994 ++	ld.ub r6,r12[r7<<3]
 1.12995 ++	ld.ub r2,r6[r12<<0]
 1.12996 ++	ld.ub r0,r7[r11<<1]
 1.12997 ++	.text
 1.12998 ++	.global st_d5
 1.12999 ++st_d5:
 1.13000 ++	st.d pc[pc<<0],r14
 1.13001 ++	st.d r12[r12<<3],r12
 1.13002 ++	st.d r5[r5<<2],r6
 1.13003 ++	st.d r4[r4<<1],r4
 1.13004 ++	st.d lr[lr<<1],lr
 1.13005 ++	st.d r1[r9<<1],r4
 1.13006 ++	st.d r10[r2<<1],r4
 1.13007 ++	st.d r12[r6<<0],lr
 1.13008 ++	.text
 1.13009 ++	.global st_w5
 1.13010 ++st_w5:
 1.13011 ++	st.w pc[pc<<0],pc
 1.13012 ++	st.w r12[r12<<3],r12
 1.13013 ++	st.w r5[r5<<2],r5
 1.13014 ++	st.w r4[r4<<1],r4
 1.13015 ++	st.w lr[lr<<1],lr
 1.13016 ++	st.w r1[r10<<0],r3
 1.13017 ++	st.w r0[r10<<1],r9
 1.13018 ++	st.w r4[r5<<3],pc
 1.13019 ++	.text
 1.13020 ++	.global st_h5
 1.13021 ++st_h5:
 1.13022 ++	st.h pc[pc<<0],pc
 1.13023 ++	st.h r12[r12<<3],r12
 1.13024 ++	st.h r5[r5<<2],r5
 1.13025 ++	st.h r4[r4<<1],r4
 1.13026 ++	st.h lr[lr<<1],lr
 1.13027 ++	st.h r2[r9<<0],r11
 1.13028 ++	st.h r5[r1<<2],r12
 1.13029 ++	st.h pc[r8<<2],r3
 1.13030 ++	.text
 1.13031 ++	.global st_b5
 1.13032 ++st_b5:
 1.13033 ++	st.b pc[pc<<0],pc
 1.13034 ++	st.b r12[r12<<3],r12
 1.13035 ++	st.b r5[r5<<2],r5
 1.13036 ++	st.b r4[r4<<1],r4
 1.13037 ++	st.b lr[lr<<1],lr
 1.13038 ++	st.b r1[r8<<1],r6
 1.13039 ++	st.b lr[lr<<3],r1
 1.13040 ++	st.b r5[r0<<2],pc
 1.13041 ++	.text
 1.13042 ++	.global divs
 1.13043 ++divs:
 1.13044 ++	divs pc,pc,pc
 1.13045 ++	divs r12,r12,r12
 1.13046 ++	divs r5,r5,r5
 1.13047 ++	divs r4,r4,r4
 1.13048 ++	divs lr,lr,lr
 1.13049 ++	divs r3,pc,pc
 1.13050 ++	divs r9,r12,r2
 1.13051 ++	divs r7,r4,r1
 1.13052 ++	.text
 1.13053 ++	.global add1
 1.13054 ++add1:
 1.13055 ++	add pc,pc
 1.13056 ++	add r12,r12
 1.13057 ++	add r5,r5
 1.13058 ++	add r4,r4
 1.13059 ++	add lr,lr
 1.13060 ++	add r12,r9
 1.13061 ++	add r6,r3
 1.13062 ++	add r10,r12
 1.13063 ++	.text
 1.13064 ++	.global sub1
 1.13065 ++sub1:
 1.13066 ++	sub pc,pc
 1.13067 ++	sub r12,r12
 1.13068 ++	sub r5,r5
 1.13069 ++	sub r4,r4
 1.13070 ++	sub lr,lr
 1.13071 ++	sub lr,r6
 1.13072 ++	sub r0,sp
 1.13073 ++	sub r6,r12
 1.13074 ++	.text
 1.13075 ++	.global rsub1
 1.13076 ++rsub1:
 1.13077 ++	rsub pc,pc
 1.13078 ++	rsub r12,r12
 1.13079 ++	rsub r5,r5
 1.13080 ++	rsub r4,r4
 1.13081 ++	rsub lr,lr
 1.13082 ++	rsub r11,sp
 1.13083 ++	rsub r7,r4
 1.13084 ++	rsub r9,r1
 1.13085 ++	.text
 1.13086 ++	.global cp1
 1.13087 ++cp1:
 1.13088 ++	cp pc,pc
 1.13089 ++	cp r12,r12
 1.13090 ++	cp r5,r5
 1.13091 ++	cp r4,r4
 1.13092 ++	cp lr,lr
 1.13093 ++	cp r6,r2
 1.13094 ++	cp r0,r9
 1.13095 ++	cp r3,sp
 1.13096 ++	.text
 1.13097 ++	.global or1
 1.13098 ++or1:
 1.13099 ++	or pc,pc
 1.13100 ++	or r12,r12
 1.13101 ++	or r5,r5
 1.13102 ++	or r4,r4
 1.13103 ++	or lr,lr
 1.13104 ++	or r4,r9
 1.13105 ++	or r11,r4
 1.13106 ++	or r4,r0
 1.13107 ++	.text
 1.13108 ++	.global eor1
 1.13109 ++eor1:
 1.13110 ++	eor pc,pc
 1.13111 ++	eor r12,r12
 1.13112 ++	eor r5,r5
 1.13113 ++	eor r4,r4
 1.13114 ++	eor lr,lr
 1.13115 ++	eor r12,r11
 1.13116 ++	eor r0,r1
 1.13117 ++	eor r5,pc
 1.13118 ++	.text
 1.13119 ++	.global and1
 1.13120 ++and1:
 1.13121 ++	and pc,pc
 1.13122 ++	and r12,r12
 1.13123 ++	and r5,r5
 1.13124 ++	and r4,r4
 1.13125 ++	and lr,lr
 1.13126 ++	and r8,r1
 1.13127 ++	and r0,sp
 1.13128 ++	and r10,r5
 1.13129 ++	.text
 1.13130 ++	.global tst
 1.13131 ++tst:
 1.13132 ++	tst pc,pc
 1.13133 ++	tst r12,r12
 1.13134 ++	tst r5,r5
 1.13135 ++	tst r4,r4
 1.13136 ++	tst lr,lr
 1.13137 ++	tst r0,r12
 1.13138 ++	tst r10,r6
 1.13139 ++	tst sp,r4
 1.13140 ++	.text
 1.13141 ++	.global andn
 1.13142 ++andn:
 1.13143 ++	andn pc,pc
 1.13144 ++	andn r12,r12
 1.13145 ++	andn r5,r5
 1.13146 ++	andn r4,r4
 1.13147 ++	andn lr,lr
 1.13148 ++	andn r9,r12
 1.13149 ++	andn r11,sp
 1.13150 ++	andn r12,r5
 1.13151 ++	.text
 1.13152 ++	.global mov3
 1.13153 ++mov3:
 1.13154 ++	mov pc,pc
 1.13155 ++	mov r12,r12
 1.13156 ++	mov r5,r5
 1.13157 ++	mov r4,r4
 1.13158 ++	mov lr,lr
 1.13159 ++	mov r5,r9
 1.13160 ++	mov r11,r11
 1.13161 ++	mov r2,lr
 1.13162 ++	.text
 1.13163 ++	.global st_w1
 1.13164 ++st_w1:
 1.13165 ++	st.w pc++,pc
 1.13166 ++	st.w r12++,r12
 1.13167 ++	st.w r5++,r5
 1.13168 ++	st.w r4++,r4
 1.13169 ++	st.w lr++,lr
 1.13170 ++	st.w r1++,r11
 1.13171 ++	st.w sp++,r0
 1.13172 ++	st.w sp++,r1
 1.13173 ++	.text
 1.13174 ++	.global st_h1
 1.13175 ++st_h1:
 1.13176 ++	st.h pc++,pc
 1.13177 ++	st.h r12++,r12
 1.13178 ++	st.h r5++,r5
 1.13179 ++	st.h r4++,r4
 1.13180 ++	st.h lr++,lr
 1.13181 ++	st.h r12++,sp
 1.13182 ++	st.h r7++,lr
 1.13183 ++	st.h r7++,r4
 1.13184 ++	.text
 1.13185 ++	.global st_b1
 1.13186 ++st_b1:
 1.13187 ++	st.b pc++,pc
 1.13188 ++	st.b r12++,r12
 1.13189 ++	st.b r5++,r5
 1.13190 ++	st.b r4++,r4
 1.13191 ++	st.b lr++,lr
 1.13192 ++	st.b r9++,sp
 1.13193 ++	st.b r1++,sp
 1.13194 ++	st.b r0++,r4
 1.13195 ++	.text
 1.13196 ++	.global st_w2
 1.13197 ++st_w2:
 1.13198 ++	st.w --pc,pc
 1.13199 ++	st.w --r12,r12
 1.13200 ++	st.w --r5,r5
 1.13201 ++	st.w --r4,r4
 1.13202 ++	st.w --lr,lr
 1.13203 ++	st.w --r1,r7
 1.13204 ++	st.w --r3,r9
 1.13205 ++	st.w --r5,r5
 1.13206 ++	.text
 1.13207 ++	.global st_h2
 1.13208 ++st_h2:
 1.13209 ++	st.h --pc,pc
 1.13210 ++	st.h --r12,r12
 1.13211 ++	st.h --r5,r5
 1.13212 ++	st.h --r4,r4
 1.13213 ++	st.h --lr,lr
 1.13214 ++	st.h --r5,r7
 1.13215 ++	st.h --r8,r8
 1.13216 ++	st.h --r7,r2
 1.13217 ++	.text
 1.13218 ++	.global st_b2
 1.13219 ++st_b2:
 1.13220 ++	st.b --pc,pc
 1.13221 ++	st.b --r12,r12
 1.13222 ++	st.b --r5,r5
 1.13223 ++	st.b --r4,r4
 1.13224 ++	st.b --lr,lr
 1.13225 ++	st.b --sp,sp
 1.13226 ++	st.b --sp,r11
 1.13227 ++	st.b --r4,r5
 1.13228 ++	.text
 1.13229 ++	.global ld_w1
 1.13230 ++ld_w1:
 1.13231 ++	ld.w pc,pc++
 1.13232 ++	ld.w r12,r12++
 1.13233 ++	ld.w r5,r5++
 1.13234 ++	ld.w r4,r4++
 1.13235 ++	ld.w lr,lr++
 1.13236 ++	ld.w r3,r7++
 1.13237 ++	ld.w r3,lr++
 1.13238 ++	ld.w r12,r5++
 1.13239 ++	.text
 1.13240 ++	.global ld_sh1
 1.13241 ++ld_sh1:
 1.13242 ++	ld.sh pc,pc++
 1.13243 ++	ld.sh r12,r12++
 1.13244 ++	ld.sh r5,r5++
 1.13245 ++	ld.sh r4,r4++
 1.13246 ++	ld.sh lr,lr++
 1.13247 ++	ld.sh r11,r2++
 1.13248 ++	ld.sh r2,r8++
 1.13249 ++	ld.sh r7,r6++
 1.13250 ++	.text
 1.13251 ++	.global ld_uh1
 1.13252 ++ld_uh1:
 1.13253 ++	ld.uh pc,pc++
 1.13254 ++	ld.uh r12,r12++
 1.13255 ++	ld.uh r5,r5++
 1.13256 ++	ld.uh r4,r4++
 1.13257 ++	ld.uh lr,lr++
 1.13258 ++	ld.uh r6,r7++
 1.13259 ++	ld.uh r10,r11++
 1.13260 ++	ld.uh lr,r4++
 1.13261 ++	.text
 1.13262 ++	.global ld_ub1
 1.13263 ++ld_ub1:
 1.13264 ++	ld.ub pc,pc++
 1.13265 ++	ld.ub r12,r12++
 1.13266 ++	ld.ub r5,r5++
 1.13267 ++	ld.ub r4,r4++
 1.13268 ++	ld.ub lr,lr++
 1.13269 ++	ld.ub r8,lr++
 1.13270 ++	ld.ub r12,r12++
 1.13271 ++	ld.ub r11,r10++
 1.13272 ++	.text
 1.13273 ++	.global ld_w2
 1.13274 ++ld_w2:
 1.13275 ++	ld.w pc,--pc
 1.13276 ++	ld.w r12,--r12
 1.13277 ++	ld.w r5,--r5
 1.13278 ++	ld.w r4,--r4
 1.13279 ++	ld.w lr,--lr
 1.13280 ++	ld.w r10,--lr
 1.13281 ++	ld.w r12,--r9
 1.13282 ++	ld.w r6,--r5
 1.13283 ++	.text
 1.13284 ++	.global ld_sh2
 1.13285 ++ld_sh2:
 1.13286 ++	ld.sh pc,--pc
 1.13287 ++	ld.sh r12,--r12
 1.13288 ++	ld.sh r5,--r5
 1.13289 ++	ld.sh r4,--r4
 1.13290 ++	ld.sh lr,--lr
 1.13291 ++	ld.sh pc,--r10
 1.13292 ++	ld.sh r6,--r3
 1.13293 ++	ld.sh r4,--r6
 1.13294 ++	.text
 1.13295 ++	.global ld_uh2
 1.13296 ++ld_uh2:
 1.13297 ++	ld.uh pc,--pc
 1.13298 ++	ld.uh r12,--r12
 1.13299 ++	ld.uh r5,--r5
 1.13300 ++	ld.uh r4,--r4
 1.13301 ++	ld.uh lr,--lr
 1.13302 ++	ld.uh r3,--r2
 1.13303 ++	ld.uh r1,--r0
 1.13304 ++	ld.uh r2,--r9
 1.13305 ++	.text
 1.13306 ++	.global ld_ub2
 1.13307 ++ld_ub2:
 1.13308 ++	ld.ub pc,--pc
 1.13309 ++	ld.ub r12,--r12
 1.13310 ++	ld.ub r5,--r5
 1.13311 ++	ld.ub r4,--r4
 1.13312 ++	ld.ub lr,--lr
 1.13313 ++	ld.ub r1,--r1
 1.13314 ++	ld.ub r0,--r6
 1.13315 ++	ld.ub r2,--r7
 1.13316 ++	.text
 1.13317 ++	.global ld_ub3
 1.13318 ++ld_ub3:
 1.13319 ++	ld.ub pc,pc[0]
 1.13320 ++	ld.ub r12,r12[7]
 1.13321 ++	ld.ub r5,r5[4]
 1.13322 ++	ld.ub r4,r4[3]
 1.13323 ++	ld.ub lr,lr[1]
 1.13324 ++	ld.ub r6,r9[6]
 1.13325 ++	ld.ub r2,lr[4]
 1.13326 ++	ld.ub r1,r8[0]
 1.13327 ++	.text
 1.13328 ++	.global sub3_sp
 1.13329 ++sub3_sp:
 1.13330 ++	sub sp,0
 1.13331 ++	sub sp,-4
 1.13332 ++	sub sp,-512
 1.13333 ++	sub sp,508
 1.13334 ++	sub sp,4
 1.13335 ++	sub sp,44
 1.13336 ++	sub sp,8
 1.13337 ++	sub sp,348
 1.13338 ++	.text
 1.13339 ++	.global sub3
 1.13340 ++sub3:
 1.13341 ++	sub pc,0
 1.13342 ++	sub r12,-1
 1.13343 ++	sub r5,-128
 1.13344 ++	sub r4,127
 1.13345 ++	sub lr,1
 1.13346 ++	sub r6,-41
 1.13347 ++	sub r4,37
 1.13348 ++	sub r12,56
 1.13349 ++	.text
 1.13350 ++	.global mov1
 1.13351 ++mov1:
 1.13352 ++	mov pc,0
 1.13353 ++	mov r12,-1
 1.13354 ++	mov r5,-128
 1.13355 ++	mov r4,127
 1.13356 ++	mov lr,1
 1.13357 ++	mov pc,14
 1.13358 ++	mov r6,-100
 1.13359 ++	mov lr,-122
 1.13360 ++	.text
 1.13361 ++	.global lddsp
 1.13362 ++lddsp:
 1.13363 ++	lddsp pc,sp[0]
 1.13364 ++	lddsp r12,sp[508]
 1.13365 ++	lddsp r5,sp[256]
 1.13366 ++	lddsp r4,sp[252]
 1.13367 ++	lddsp lr,sp[4]
 1.13368 ++	lddsp lr,sp[256]
 1.13369 ++	lddsp r12,sp[20]
 1.13370 ++	lddsp r9,sp[472]
 1.13371 ++	.text
 1.13372 ++	.global lddpc
 1.13373 ++lddpc:
 1.13374 ++	lddpc pc,pc[0]
 1.13375 ++	lddpc r0,pc[508]
 1.13376 ++	lddpc r8,pc[256]
 1.13377 ++	lddpc r7,pc[252]
 1.13378 ++	lddpc lr,pc[4]
 1.13379 ++	lddpc sp,pc[472]
 1.13380 ++	lddpc r6,pc[120]
 1.13381 ++	lddpc r11,pc[28]
 1.13382 ++	.text
 1.13383 ++	.global stdsp
 1.13384 ++stdsp:
 1.13385 ++	stdsp sp[0],pc
 1.13386 ++	stdsp sp[508],r12
 1.13387 ++	stdsp sp[256],r5
 1.13388 ++	stdsp sp[252],r4
 1.13389 ++	stdsp sp[4],lr
 1.13390 ++	stdsp sp[304],pc
 1.13391 ++	stdsp sp[256],r0
 1.13392 ++	stdsp sp[336],r5
 1.13393 ++	.text
 1.13394 ++	.global cp2
 1.13395 ++cp2:
 1.13396 ++	cp pc,0
 1.13397 ++	cp r12,-1
 1.13398 ++	cp r5,-32
 1.13399 ++	cp r4,31
 1.13400 ++	cp lr,1
 1.13401 ++	cp r8,3
 1.13402 ++	cp lr,16
 1.13403 ++	cp r7,-26
 1.13404 ++	.text
 1.13405 ++	.global acr
 1.13406 ++acr:
 1.13407 ++	acr pc
 1.13408 ++	acr r12
 1.13409 ++	acr r5
 1.13410 ++	acr r4
 1.13411 ++	acr lr
 1.13412 ++	acr r2
 1.13413 ++	acr r12
 1.13414 ++	acr pc
 1.13415 ++	.text
 1.13416 ++	.global scr
 1.13417 ++scr:
 1.13418 ++	scr pc
 1.13419 ++	scr r12
 1.13420 ++	scr r5
 1.13421 ++	scr r4
 1.13422 ++	scr lr
 1.13423 ++	scr pc
 1.13424 ++	scr r6
 1.13425 ++	scr r1
 1.13426 ++	.text
 1.13427 ++	.global cpc0
 1.13428 ++cpc0:
 1.13429 ++	cpc pc
 1.13430 ++	cpc r12
 1.13431 ++	cpc r5
 1.13432 ++	cpc r4
 1.13433 ++	cpc lr
 1.13434 ++	cpc pc
 1.13435 ++	cpc r4
 1.13436 ++	cpc r9
 1.13437 ++	.text
 1.13438 ++	.global neg
 1.13439 ++neg:
 1.13440 ++	neg pc
 1.13441 ++	neg r12
 1.13442 ++	neg r5
 1.13443 ++	neg r4
 1.13444 ++	neg lr
 1.13445 ++	neg r7
 1.13446 ++	neg r1
 1.13447 ++	neg r9
 1.13448 ++	.text
 1.13449 ++	.global abs
 1.13450 ++abs:
 1.13451 ++	abs pc
 1.13452 ++	abs r12
 1.13453 ++	abs r5
 1.13454 ++	abs r4
 1.13455 ++	abs lr
 1.13456 ++	abs r6
 1.13457 ++	abs r6
 1.13458 ++	abs r4
 1.13459 ++	.text
 1.13460 ++	.global castu_b
 1.13461 ++castu_b:
 1.13462 ++	castu.b pc
 1.13463 ++	castu.b r12
 1.13464 ++	castu.b r5
 1.13465 ++	castu.b r4
 1.13466 ++	castu.b lr
 1.13467 ++	castu.b r7
 1.13468 ++	castu.b sp
 1.13469 ++	castu.b r9
 1.13470 ++	.text
 1.13471 ++	.global casts_b
 1.13472 ++casts_b:
 1.13473 ++	casts.b pc
 1.13474 ++	casts.b r12
 1.13475 ++	casts.b r5
 1.13476 ++	casts.b r4
 1.13477 ++	casts.b lr
 1.13478 ++	casts.b r11
 1.13479 ++	casts.b r1
 1.13480 ++	casts.b r10
 1.13481 ++	.text
 1.13482 ++	.global castu_h
 1.13483 ++castu_h:
 1.13484 ++	castu.h pc
 1.13485 ++	castu.h r12
 1.13486 ++	castu.h r5
 1.13487 ++	castu.h r4
 1.13488 ++	castu.h lr
 1.13489 ++	castu.h r10
 1.13490 ++	castu.h r11
 1.13491 ++	castu.h r1
 1.13492 ++	.text
 1.13493 ++	.global casts_h
 1.13494 ++casts_h:
 1.13495 ++	casts.h pc
 1.13496 ++	casts.h r12
 1.13497 ++	casts.h r5
 1.13498 ++	casts.h r4
 1.13499 ++	casts.h lr
 1.13500 ++	casts.h r0
 1.13501 ++	casts.h r5
 1.13502 ++	casts.h r9
 1.13503 ++	.text
 1.13504 ++	.global brev
 1.13505 ++brev:
 1.13506 ++	brev pc
 1.13507 ++	brev r12
 1.13508 ++	brev r5
 1.13509 ++	brev r4
 1.13510 ++	brev lr
 1.13511 ++	brev r5
 1.13512 ++	brev r10
 1.13513 ++	brev r8
 1.13514 ++	.text
 1.13515 ++	.global swap_h
 1.13516 ++swap_h:
 1.13517 ++	swap.h pc
 1.13518 ++	swap.h r12
 1.13519 ++	swap.h r5
 1.13520 ++	swap.h r4
 1.13521 ++	swap.h lr
 1.13522 ++	swap.h r7
 1.13523 ++	swap.h r0
 1.13524 ++	swap.h r8
 1.13525 ++	.text
 1.13526 ++	.global swap_b
 1.13527 ++swap_b:
 1.13528 ++	swap.b pc
 1.13529 ++	swap.b r12
 1.13530 ++	swap.b r5
 1.13531 ++	swap.b r4
 1.13532 ++	swap.b lr
 1.13533 ++	swap.b r10
 1.13534 ++	swap.b r12
 1.13535 ++	swap.b r1
 1.13536 ++	.text
 1.13537 ++	.global swap_bh
 1.13538 ++swap_bh:
 1.13539 ++	swap.bh pc
 1.13540 ++	swap.bh r12
 1.13541 ++	swap.bh r5
 1.13542 ++	swap.bh r4
 1.13543 ++	swap.bh lr
 1.13544 ++	swap.bh r9
 1.13545 ++	swap.bh r4
 1.13546 ++	swap.bh r1
 1.13547 ++	.text
 1.13548 ++	.global One_s_compliment
 1.13549 ++One_s_compliment:
 1.13550 ++	com pc
 1.13551 ++	com r12
 1.13552 ++	com r5
 1.13553 ++	com r4
 1.13554 ++	com lr
 1.13555 ++	com r2
 1.13556 ++	com r2
 1.13557 ++	com r7
 1.13558 ++	.text
 1.13559 ++	.global tnbz
 1.13560 ++tnbz:
 1.13561 ++	tnbz pc
 1.13562 ++	tnbz r12
 1.13563 ++	tnbz r5
 1.13564 ++	tnbz r4
 1.13565 ++	tnbz lr
 1.13566 ++	tnbz r8
 1.13567 ++	tnbz r12
 1.13568 ++	tnbz pc
 1.13569 ++	.text
 1.13570 ++	.global rol
 1.13571 ++rol:
 1.13572 ++	rol pc
 1.13573 ++	rol r12
 1.13574 ++	rol r5
 1.13575 ++	rol r4
 1.13576 ++	rol lr
 1.13577 ++	rol r10
 1.13578 ++	rol r9
 1.13579 ++	rol r5
 1.13580 ++	.text
 1.13581 ++	.global ror
 1.13582 ++ror:
 1.13583 ++	ror pc
 1.13584 ++	ror r12
 1.13585 ++	ror r5
 1.13586 ++	ror r4
 1.13587 ++	ror lr
 1.13588 ++	ror r8
 1.13589 ++	ror r4
 1.13590 ++	ror r7
 1.13591 ++	.text
 1.13592 ++	.global icall
 1.13593 ++icall:
 1.13594 ++	icall pc
 1.13595 ++	icall r12
 1.13596 ++	icall r5
 1.13597 ++	icall r4
 1.13598 ++	icall lr
 1.13599 ++	icall r3
 1.13600 ++	icall r1
 1.13601 ++	icall r3
 1.13602 ++	.text
 1.13603 ++	.global mustr
 1.13604 ++mustr:
 1.13605 ++	mustr pc
 1.13606 ++	mustr r12
 1.13607 ++	mustr r5
 1.13608 ++	mustr r4
 1.13609 ++	mustr lr
 1.13610 ++	mustr r1
 1.13611 ++	mustr r4
 1.13612 ++	mustr r12
 1.13613 ++	.text
 1.13614 ++	.global musfr
 1.13615 ++musfr:
 1.13616 ++	musfr pc
 1.13617 ++	musfr r12
 1.13618 ++	musfr r5
 1.13619 ++	musfr r4
 1.13620 ++	musfr lr
 1.13621 ++	musfr r11
 1.13622 ++	musfr r12
 1.13623 ++	musfr r2
 1.13624 ++	.text
 1.13625 ++	.global ret_cond
 1.13626 ++ret_cond:
 1.13627 ++	reteq pc
 1.13628 ++	retal r12
 1.13629 ++	retls r5
 1.13630 ++	retpl r4
 1.13631 ++	retne lr
 1.13632 ++	retgt r0
 1.13633 ++	retgt r12
 1.13634 ++	retge r10
 1.13635 ++	.text
 1.13636 ++	.global sr_cond
 1.13637 ++sr_cond:
 1.13638 ++	sreq pc
 1.13639 ++	sral r12
 1.13640 ++	srls r5
 1.13641 ++	srpl r4
 1.13642 ++	srne lr
 1.13643 ++	srlt r0
 1.13644 ++	sral sp
 1.13645 ++	srge r9
 1.13646 ++	.text
 1.13647 ++	.global ld_w3
 1.13648 ++ld_w3:
 1.13649 ++	ld.w pc,pc[0]
 1.13650 ++	ld.w r12,r12[124]
 1.13651 ++	ld.w r5,r5[64]
 1.13652 ++	ld.w r4,r4[60]
 1.13653 ++	ld.w lr,lr[4]
 1.13654 ++	ld.w sp,r2[52]
 1.13655 ++	ld.w r9,r1[8]
 1.13656 ++	ld.w r5,sp[60]
 1.13657 ++	.text
 1.13658 ++	.global ld_sh3
 1.13659 ++ld_sh3:
 1.13660 ++	ld.sh pc,pc[0]
 1.13661 ++	ld.sh r12,r12[14]
 1.13662 ++	ld.sh r5,r5[8]
 1.13663 ++	ld.sh r4,r4[6]
 1.13664 ++	ld.sh lr,lr[2]
 1.13665 ++	ld.sh r4,r2[8]
 1.13666 ++	ld.sh sp,lr[10]
 1.13667 ++	ld.sh r2,r11[2]
 1.13668 ++	.text
 1.13669 ++	.global ld_uh3
 1.13670 ++ld_uh3:
 1.13671 ++	ld.uh pc,pc[0]
 1.13672 ++	ld.uh r12,r12[14]
 1.13673 ++	ld.uh r5,r5[8]
 1.13674 ++	ld.uh r4,r4[6]
 1.13675 ++	ld.uh lr,lr[2]
 1.13676 ++	ld.uh r10,r0[10]
 1.13677 ++	ld.uh r8,r11[8]
 1.13678 ++	ld.uh r10,r2[12]
 1.13679 ++	.text
 1.13680 ++	.global st_w3
 1.13681 ++st_w3:
 1.13682 ++	st.w pc[0],pc
 1.13683 ++	st.w r12[60],r12
 1.13684 ++	st.w r5[32],r5
 1.13685 ++	st.w r4[28],r4
 1.13686 ++	st.w lr[4],lr
 1.13687 ++	st.w r7[44],r11
 1.13688 ++	st.w r2[24],r6
 1.13689 ++	st.w r4[12],r9
 1.13690 ++	.text
 1.13691 ++	.global st_h3
 1.13692 ++st_h3:
 1.13693 ++	st.h pc[0],pc
 1.13694 ++	st.h r12[14],r12
 1.13695 ++	st.h r5[8],r5
 1.13696 ++	st.h r4[6],r4
 1.13697 ++	st.h lr[2],lr
 1.13698 ++	st.h lr[10],r12
 1.13699 ++	st.h r6[4],r0
 1.13700 ++	st.h r5[12],sp
 1.13701 ++	.text
 1.13702 ++	.global st_b3
 1.13703 ++st_b3:
 1.13704 ++	st.b pc[0],pc
 1.13705 ++	st.b r12[7],r12
 1.13706 ++	st.b r5[4],r5
 1.13707 ++	st.b r4[3],r4
 1.13708 ++	st.b lr[1],lr
 1.13709 ++	st.b r12[6],r9
 1.13710 ++	st.b r2[3],lr
 1.13711 ++	st.b r1[3],r11
 1.13712 ++	.text
 1.13713 ++	.global ldd
 1.13714 ++ldd:
 1.13715 ++	ld.d r0,pc
 1.13716 ++	ld.d r14,r12
 1.13717 ++	ld.d r8,r5
 1.13718 ++	ld.d r6,r4
 1.13719 ++	ld.d r2,lr
 1.13720 ++	ld.d r14,r7
 1.13721 ++	ld.d r4,r4
 1.13722 ++	ld.d r14,pc
 1.13723 ++	.text
 1.13724 ++	.global ldd_postinc
 1.13725 ++ldd_postinc:
 1.13726 ++	ld.d r0,pc++
 1.13727 ++	ld.d r14,r12++
 1.13728 ++	ld.d r8,r5++
 1.13729 ++	ld.d r6,r4++
 1.13730 ++	ld.d r2,lr++
 1.13731 ++	ld.d r14,r5++
 1.13732 ++	ld.d r12,r11++
 1.13733 ++	ld.d r2,r12++
 1.13734 ++	.text
 1.13735 ++	.global ldd_predec
 1.13736 ++ldd_predec:
 1.13737 ++	ld.d r0,--pc
 1.13738 ++	ld.d r14,--r12
 1.13739 ++	ld.d r8,--r5
 1.13740 ++	ld.d r6,--r4
 1.13741 ++	ld.d r2,--lr
 1.13742 ++	ld.d r8,--r0
 1.13743 ++	ld.d r10,--pc
 1.13744 ++	ld.d r2,--r4
 1.13745 ++	.text
 1.13746 ++	.global std
 1.13747 ++std:
 1.13748 ++	st.d pc,r0
 1.13749 ++	st.d r12,r14
 1.13750 ++	st.d r5,r8
 1.13751 ++	st.d r4,r6
 1.13752 ++	st.d lr,r2
 1.13753 ++	st.d r0,r12
 1.13754 ++	st.d sp,r4
 1.13755 ++	st.d r12,r12
 1.13756 ++	.text
 1.13757 ++	.global std_postinc
 1.13758 ++std_postinc:
 1.13759 ++	st.d pc++,r0
 1.13760 ++	st.d r12++,r14
 1.13761 ++	st.d r5++,r8
 1.13762 ++	st.d r4++,r6
 1.13763 ++	st.d lr++,r2
 1.13764 ++	st.d sp++,r6
 1.13765 ++	st.d r10++,r6
 1.13766 ++	st.d r7++,r2
 1.13767 ++	.text
 1.13768 ++	.global std_predec
 1.13769 ++std_predec:
 1.13770 ++	st.d --pc,r0
 1.13771 ++	st.d --r12,r14
 1.13772 ++	st.d --r5,r8
 1.13773 ++	st.d --r4,r6
 1.13774 ++	st.d --lr,r2
 1.13775 ++	st.d --r3,r6
 1.13776 ++	st.d --lr,r2
 1.13777 ++	st.d --r0,r4
 1.13778 ++	.text
 1.13779 ++	.global mul
 1.13780 ++mul:
 1.13781 ++	mul pc,pc
 1.13782 ++	mul r12,r12
 1.13783 ++	mul r5,r5
 1.13784 ++	mul r4,r4
 1.13785 ++	mul lr,lr
 1.13786 ++	mul r10,lr
 1.13787 ++	mul r0,r8
 1.13788 ++	mul r8,r5
 1.13789 ++	.text
 1.13790 ++	.global asr_imm5
 1.13791 ++asr_imm5:
 1.13792 ++	asr pc,0
 1.13793 ++	asr r12,31
 1.13794 ++	asr r5,16
 1.13795 ++	asr r4,15
 1.13796 ++	asr lr,1
 1.13797 ++	asr r6,23
 1.13798 ++	asr r6,18
 1.13799 ++	asr r5,8
 1.13800 ++	.text
 1.13801 ++	.global lsl_imm5
 1.13802 ++lsl_imm5:
 1.13803 ++	lsl pc,0
 1.13804 ++	lsl r12,31
 1.13805 ++	lsl r5,16
 1.13806 ++	lsl r4,15
 1.13807 ++	lsl lr,1
 1.13808 ++	lsl r12,13
 1.13809 ++	lsl r6,16
 1.13810 ++	lsl r1,25
 1.13811 ++	.text
 1.13812 ++	.global lsr_imm5
 1.13813 ++lsr_imm5:
 1.13814 ++	lsr pc,0
 1.13815 ++	lsr r12,31
 1.13816 ++	lsr r5,16
 1.13817 ++	lsr r4,15
 1.13818 ++	lsr lr,1
 1.13819 ++	lsr r0,1
 1.13820 ++	lsr r8,10
 1.13821 ++	lsr r7,26
 1.13822 ++	.text
 1.13823 ++	.global sbr
 1.13824 ++sbr:
 1.13825 ++	sbr pc,0
 1.13826 ++	sbr r12,31
 1.13827 ++	sbr r5,16
 1.13828 ++	sbr r4,15
 1.13829 ++	sbr lr,1
 1.13830 ++	sbr r8,31
 1.13831 ++	sbr r6,22
 1.13832 ++	sbr r1,23
 1.13833 ++	.text
 1.13834 ++	.global cbr
 1.13835 ++cbr:
 1.13836 ++	cbr pc,0
 1.13837 ++	cbr r12,31
 1.13838 ++	cbr r5,16
 1.13839 ++	cbr r4,15
 1.13840 ++	cbr lr,1
 1.13841 ++	cbr r12,10
 1.13842 ++	cbr r7,22
 1.13843 ++	cbr r8,9
 1.13844 ++	.text
 1.13845 ++	.global brc1
 1.13846 ++brc1:
 1.13847 ++	breq 0
 1.13848 ++	brpl -2
 1.13849 ++	brge -256
 1.13850 ++	brcs 254
 1.13851 ++	brne 2
 1.13852 ++	brcs 230
 1.13853 ++	breq -18
 1.13854 ++	breq 12
 1.13855 ++	.text
 1.13856 ++	.global rjmp
 1.13857 ++rjmp:
 1.13858 ++	rjmp 0
 1.13859 ++	rjmp -2
 1.13860 ++	rjmp -1024
 1.13861 ++	rjmp 1022
 1.13862 ++	rjmp 2
 1.13863 ++	rjmp -962
 1.13864 ++	rjmp 14
 1.13865 ++	rjmp -516
 1.13866 ++	.text
 1.13867 ++	.global rcall1
 1.13868 ++rcall1:
 1.13869 ++	rcall 0
 1.13870 ++	rcall -2
 1.13871 ++	rcall -1024
 1.13872 ++	rcall 1022
 1.13873 ++	rcall 2
 1.13874 ++	rcall 216
 1.13875 ++	rcall -530
 1.13876 ++	rcall -972
 1.13877 ++	.text
 1.13878 ++	.global acall
 1.13879 ++acall:
 1.13880 ++	acall 0
 1.13881 ++	acall 1020
 1.13882 ++	acall 512
 1.13883 ++	acall 508
 1.13884 ++	acall 4
 1.13885 ++	acall 356
 1.13886 ++	acall 304
 1.13887 ++	acall 172
 1.13888 ++	.text
 1.13889 ++	.global scall
 1.13890 ++scall:
 1.13891 ++	scall
 1.13892 ++	scall
 1.13893 ++	scall
 1.13894 ++	scall
 1.13895 ++	scall
 1.13896 ++	scall
 1.13897 ++	scall
 1.13898 ++	scall
 1.13899 ++	.text
 1.13900 ++	.global popm
 1.13901 ++popm:
 1.13902 ++	/* popm with no argument fails currently */
 1.13903 ++	popm pc
 1.13904 ++	popm r0-r11,pc,r12=-1
 1.13905 ++	popm lr
 1.13906 ++	popm r0-r11,pc,r12=1
 1.13907 ++	popm r0-r3
 1.13908 ++	popm r4-r10,pc
 1.13909 ++	popm r0-r3,r11,pc,r12=0
 1.13910 ++	popm r0-r7,r10-r12,lr
 1.13911 ++	.text
 1.13912 ++	.global pushm
 1.13913 ++pushm:
 1.13914 ++	pushm pc
 1.13915 ++	pushm r0-r12,lr,pc
 1.13916 ++	pushm pc
 1.13917 ++	pushm r0-r12,lr
 1.13918 ++	pushm r0-r3
 1.13919 ++	pushm r8-r10,lr,pc
 1.13920 ++	pushm r0-r3,r10
 1.13921 ++	pushm r8-r9,r12
 1.13922 ++	.text
 1.13923 ++	.global popm_n
 1.13924 ++popm_n:
 1.13925 ++	popm pc
 1.13926 ++	popm r0-r11,pc,r12=-1
 1.13927 ++	popm lr
 1.13928 ++	popm r0-r11,pc,r12=1
 1.13929 ++	popm r0-r3
 1.13930 ++	popm r4-r10,pc
 1.13931 ++	popm r0-r3,r11,pc,r12=0
 1.13932 ++	popm r0-r7,r10-r12,lr
 1.13933 ++	.text
 1.13934 ++	.global pushm_n
 1.13935 ++pushm_n:
 1.13936 ++	pushm pc
 1.13937 ++	pushm r0-r12,lr,pc
 1.13938 ++	pushm pc
 1.13939 ++	pushm r0-r12,lr
 1.13940 ++	pushm r0-r3
 1.13941 ++	pushm r8-r10,lr,pc
 1.13942 ++	pushm r0-r3,r10
 1.13943 ++	pushm r8-r9,r12
 1.13944 ++	.text
 1.13945 ++	.global csrfcz
 1.13946 ++csrfcz:
 1.13947 ++	csrfcz 0
 1.13948 ++	csrfcz 31
 1.13949 ++	csrfcz 16
 1.13950 ++	csrfcz 15
 1.13951 ++	csrfcz 1
 1.13952 ++	csrfcz 5
 1.13953 ++	csrfcz 13
 1.13954 ++	csrfcz 23
 1.13955 ++	.text
 1.13956 ++	.global ssrf
 1.13957 ++ssrf:
 1.13958 ++	ssrf 0
 1.13959 ++	ssrf 31
 1.13960 ++	ssrf 16
 1.13961 ++	ssrf 15
 1.13962 ++	ssrf 1
 1.13963 ++	ssrf 29
 1.13964 ++	ssrf 13
 1.13965 ++	ssrf 13
 1.13966 ++	.text
 1.13967 ++	.global csrf
 1.13968 ++csrf:
 1.13969 ++	csrf 0
 1.13970 ++	csrf 31
 1.13971 ++	csrf 16
 1.13972 ++	csrf 15
 1.13973 ++	csrf 1
 1.13974 ++	csrf 10
 1.13975 ++	csrf 15
 1.13976 ++	csrf 11
 1.13977 ++	.text
 1.13978 ++	.global rete
 1.13979 ++rete:
 1.13980 ++	rete
 1.13981 ++	.text
 1.13982 ++	.global rets
 1.13983 ++rets:
 1.13984 ++	rets
 1.13985 ++	.text
 1.13986 ++	.global retd
 1.13987 ++retd:
 1.13988 ++	retd
 1.13989 ++	.text
 1.13990 ++	.global retj
 1.13991 ++retj:
 1.13992 ++	retj
 1.13993 ++	.text
 1.13994 ++	.global tlbr
 1.13995 ++tlbr:
 1.13996 ++	tlbr
 1.13997 ++	.text
 1.13998 ++	.global tlbs
 1.13999 ++tlbs:
 1.14000 ++	tlbs
 1.14001 ++	.text
 1.14002 ++	.global tlbw
 1.14003 ++tlbw:
 1.14004 ++	tlbw
 1.14005 ++	.text
 1.14006 ++	.global breakpoint
 1.14007 ++breakpoint:
 1.14008 ++	breakpoint
 1.14009 ++	.text
 1.14010 ++	.global incjosp
 1.14011 ++incjosp:
 1.14012 ++	incjosp 1
 1.14013 ++	incjosp 2
 1.14014 ++	incjosp 3
 1.14015 ++	incjosp 4
 1.14016 ++	incjosp -4
 1.14017 ++	incjosp -3
 1.14018 ++	incjosp -2
 1.14019 ++	incjosp -1
 1.14020 ++	.text
 1.14021 ++	.global nop
 1.14022 ++nop:
 1.14023 ++	nop
 1.14024 ++	.text
 1.14025 ++	.global popjc
 1.14026 ++popjc:
 1.14027 ++	popjc
 1.14028 ++	.text
 1.14029 ++	.global pushjc
 1.14030 ++pushjc:
 1.14031 ++	pushjc
 1.14032 ++	.text
 1.14033 ++	.global add2
 1.14034 ++add2:
 1.14035 ++	add pc,pc,pc<<0
 1.14036 ++	add r12,r12,r12<<3
 1.14037 ++	add r5,r5,r5<<2
 1.14038 ++	add r4,r4,r4<<1
 1.14039 ++	add lr,lr,lr<<1
 1.14040 ++	add r0,r12,r0<<1
 1.14041 ++	add r9,r12,r4<<0
 1.14042 ++	add r12,r12,r7<<2
 1.14043 ++	.text
 1.14044 ++	.global sub2
 1.14045 ++sub2:
 1.14046 ++	sub pc,pc,pc<<0
 1.14047 ++	sub r12,r12,r12<<3
 1.14048 ++	sub r5,r5,r5<<2
 1.14049 ++	sub r4,r4,r4<<1
 1.14050 ++	sub lr,lr,lr<<1
 1.14051 ++	sub sp,r3,r4<<0
 1.14052 ++	sub r3,r7,r3<<0
 1.14053 ++	sub sp,r10,sp<<1
 1.14054 ++	.text
 1.14055 ++	.global divu
 1.14056 ++divu:
 1.14057 ++	divu pc,pc,pc
 1.14058 ++	divu r12,r12,r12
 1.14059 ++	divu r5,r5,r5
 1.14060 ++	divu r4,r4,r4
 1.14061 ++	divu lr,lr,lr
 1.14062 ++	divu sp,r4,pc
 1.14063 ++	divu r5,r5,sp
 1.14064 ++	divu r10,sp,r0
 1.14065 ++	.text
 1.14066 ++	.global addhh_w
 1.14067 ++addhh_w:
 1.14068 ++	addhh.w pc,pc:b,pc:b
 1.14069 ++	addhh.w r12,r12:t,r12:t
 1.14070 ++	addhh.w r5,r5:t,r5:t
 1.14071 ++	addhh.w r4,r4:b,r4:b
 1.14072 ++	addhh.w lr,lr:t,lr:t
 1.14073 ++	addhh.w r0,r0:b,r3:b
 1.14074 ++	addhh.w lr,r12:t,r7:b
 1.14075 ++	addhh.w r3,r10:t,r2:b
 1.14076 ++	.text
 1.14077 ++	.global subhh_w
 1.14078 ++subhh_w:
 1.14079 ++	subhh.w pc,pc:b,pc:b
 1.14080 ++	subhh.w r12,r12:t,r12:t
 1.14081 ++	subhh.w r5,r5:t,r5:t
 1.14082 ++	subhh.w r4,r4:b,r4:b
 1.14083 ++	subhh.w lr,lr:t,lr:t
 1.14084 ++	subhh.w r10,r1:t,r7:b
 1.14085 ++	subhh.w pc,r10:t,lr:t
 1.14086 ++	subhh.w r3,r0:t,r12:b
 1.14087 ++	.text
 1.14088 ++	.global adc
 1.14089 ++adc:
 1.14090 ++	adc pc,pc,pc
 1.14091 ++	adc r12,r12,r12
 1.14092 ++	adc r5,r5,r5
 1.14093 ++	adc r4,r4,r4
 1.14094 ++	adc lr,lr,lr
 1.14095 ++	adc r4,r0,r7
 1.14096 ++	adc sp,r4,r3
 1.14097 ++	adc r2,r12,r0
 1.14098 ++	.text
 1.14099 ++	.global sbc
 1.14100 ++sbc:
 1.14101 ++	sbc pc,pc,pc
 1.14102 ++	sbc r12,r12,r12
 1.14103 ++	sbc r5,r5,r5
 1.14104 ++	sbc r4,r4,r4
 1.14105 ++	sbc lr,lr,lr
 1.14106 ++	sbc r6,r7,r9
 1.14107 ++	sbc r0,r8,r5
 1.14108 ++	sbc r1,r0,r4
 1.14109 ++	.text
 1.14110 ++	.global mul_2
 1.14111 ++mul_2:
 1.14112 ++	mul pc,pc,pc
 1.14113 ++	mul r12,r12,r12
 1.14114 ++	mul r5,r5,r5
 1.14115 ++	mul r4,r4,r4
 1.14116 ++	mul lr,lr,lr
 1.14117 ++	mul pc,r0,r0
 1.14118 ++	mul r8,pc,lr
 1.14119 ++	mul r4,r12,pc
 1.14120 ++	.text
 1.14121 ++	.global mac
 1.14122 ++mac:
 1.14123 ++	mac pc,pc,pc
 1.14124 ++	mac r12,r12,r12
 1.14125 ++	mac r5,r5,r5
 1.14126 ++	mac r4,r4,r4
 1.14127 ++	mac lr,lr,lr
 1.14128 ++	mac r10,r4,r0
 1.14129 ++	mac r7,lr,r0
 1.14130 ++	mac r2,r9,r12
 1.14131 ++	.text
 1.14132 ++	.global mulsd
 1.14133 ++mulsd:
 1.14134 ++	muls.d pc,pc,pc
 1.14135 ++	muls.d r12,r12,r12
 1.14136 ++	muls.d r5,r5,r5
 1.14137 ++	muls.d r4,r4,r4
 1.14138 ++	muls.d lr,lr,lr
 1.14139 ++	muls.d r2,r8,lr
 1.14140 ++	muls.d r4,r0,r11
 1.14141 ++	muls.d r5,lr,r6
 1.14142 ++	.text
 1.14143 ++	.global macsd
 1.14144 ++macsd:
 1.14145 ++	macs.d r0,pc,pc
 1.14146 ++	macs.d r14,r12,r12
 1.14147 ++	macs.d r8,r5,r5
 1.14148 ++	macs.d r6,r4,r4
 1.14149 ++	macs.d r2,lr,lr
 1.14150 ++	macs.d r8,r1,r9
 1.14151 ++	macs.d r14,r8,r8
 1.14152 ++	macs.d r4,r3,r12
 1.14153 ++	.text
 1.14154 ++	.global mulud
 1.14155 ++mulud:
 1.14156 ++	mulu.d r0,pc,pc
 1.14157 ++	mulu.d r14,r12,r12
 1.14158 ++	mulu.d r8,r5,r5
 1.14159 ++	mulu.d r6,r4,r4
 1.14160 ++	mulu.d r2,lr,lr
 1.14161 ++	mulu.d r6,r5,r0
 1.14162 ++	mulu.d r4,r6,r1
 1.14163 ++	mulu.d r8,r8,r2
 1.14164 ++	.text
 1.14165 ++	.global macud
 1.14166 ++macud:
 1.14167 ++	macu.d r0,pc,pc
 1.14168 ++	macu.d r14,r12,r12
 1.14169 ++	macu.d r8,r5,r5
 1.14170 ++	macu.d r6,r4,r4
 1.14171 ++	macu.d r2,lr,lr
 1.14172 ++	macu.d r6,sp,r11
 1.14173 ++	macu.d r2,r4,r8
 1.14174 ++	macu.d r6,r10,r9
 1.14175 ++	.text
 1.14176 ++	.global asr_1
 1.14177 ++asr_1:
 1.14178 ++	asr pc,pc,pc
 1.14179 ++	asr r12,r12,r12
 1.14180 ++	asr r5,r5,r5
 1.14181 ++	asr r4,r4,r4
 1.14182 ++	asr lr,lr,lr
 1.14183 ++	asr pc,r6,pc
 1.14184 ++	asr r0,r6,r12
 1.14185 ++	asr r4,sp,r0
 1.14186 ++	.text
 1.14187 ++	.global lsl_1
 1.14188 ++lsl_1:
 1.14189 ++	lsl pc,pc,pc
 1.14190 ++	lsl r12,r12,r12
 1.14191 ++	lsl r5,r5,r5
 1.14192 ++	lsl r4,r4,r4
 1.14193 ++	lsl lr,lr,lr
 1.14194 ++	lsl lr,r5,lr
 1.14195 ++	lsl r5,pc,r3
 1.14196 ++	lsl r1,pc,r9
 1.14197 ++	.text
 1.14198 ++	.global lsr_1
 1.14199 ++lsr_1:
 1.14200 ++	lsr pc,pc,pc
 1.14201 ++	lsr r12,r12,r12
 1.14202 ++	lsr r5,r5,r5
 1.14203 ++	lsr r4,r4,r4
 1.14204 ++	lsr lr,lr,lr
 1.14205 ++	lsr r2,r4,r1
 1.14206 ++	lsr r5,r1,r6
 1.14207 ++	lsr sp,r6,r7
 1.14208 ++	.text
 1.14209 ++	.global xchg
 1.14210 ++xchg:
 1.14211 ++	xchg pc,pc,pc
 1.14212 ++	xchg r12,r12,r12
 1.14213 ++	xchg r5,r5,r5
 1.14214 ++	xchg r4,r4,r4
 1.14215 ++	xchg lr,lr,lr
 1.14216 ++	xchg lr,r4,sp
 1.14217 ++	xchg r1,r5,r12
 1.14218 ++	xchg lr,r12,r0
 1.14219 ++	.text
 1.14220 ++	.global max
 1.14221 ++max:
 1.14222 ++	max pc,pc,pc
 1.14223 ++	max r12,r12,r12
 1.14224 ++	max r5,r5,r5
 1.14225 ++	max r4,r4,r4
 1.14226 ++	max lr,lr,lr
 1.14227 ++	max lr,r2,sp
 1.14228 ++	max r4,r10,r9
 1.14229 ++	max lr,r9,lr
 1.14230 ++	.text
 1.14231 ++	.global min
 1.14232 ++min:
 1.14233 ++	min pc,pc,pc
 1.14234 ++	min r12,r12,r12
 1.14235 ++	min r5,r5,r5
 1.14236 ++	min r4,r4,r4
 1.14237 ++	min lr,lr,lr
 1.14238 ++	min r9,r7,r8
 1.14239 ++	min sp,r5,r5
 1.14240 ++	min r4,r1,r4
 1.14241 ++	.text
 1.14242 ++	.global addabs
 1.14243 ++addabs:
 1.14244 ++	addabs pc,pc,pc
 1.14245 ++	addabs r12,r12,r12
 1.14246 ++	addabs r5,r5,r5
 1.14247 ++	addabs r4,r4,r4
 1.14248 ++	addabs lr,lr,lr
 1.14249 ++	addabs r7,r10,r0
 1.14250 ++	addabs r9,r9,r7
 1.14251 ++	addabs r2,r8,r12
 1.14252 ++	.text
 1.14253 ++	.global mulnhh_w
 1.14254 ++mulnhh_w:
 1.14255 ++	mulnhh.w pc,pc:b,pc:b
 1.14256 ++	mulnhh.w r12,r12:t,r12:t
 1.14257 ++	mulnhh.w r5,r5:t,r5:t
 1.14258 ++	mulnhh.w r4,r4:b,r4:b
 1.14259 ++	mulnhh.w lr,lr:t,lr:t
 1.14260 ++	mulnhh.w r11,sp:t,r9:b
 1.14261 ++	mulnhh.w sp,r4:b,lr:t
 1.14262 ++	mulnhh.w r12,r2:t,r11:b
 1.14263 ++	.text
 1.14264 ++	.global mulnwh_d
 1.14265 ++mulnwh_d:
 1.14266 ++	mulnwh.d r0,pc,pc:b
 1.14267 ++	mulnwh.d r14,r12,r12:t
 1.14268 ++	mulnwh.d r8,r5,r5:t
 1.14269 ++	mulnwh.d r6,r4,r4:b
 1.14270 ++	mulnwh.d r2,lr,lr:t
 1.14271 ++	mulnwh.d r14,r3,r2:t
 1.14272 ++	mulnwh.d r4,r5,r9:b
 1.14273 ++	mulnwh.d r12,r4,r4:t
 1.14274 ++	.text
 1.14275 ++	.global machh_w
 1.14276 ++machh_w:
 1.14277 ++	machh.w pc,pc:b,pc:b
 1.14278 ++	machh.w r12,r12:t,r12:t
 1.14279 ++	machh.w r5,r5:t,r5:t
 1.14280 ++	machh.w r4,r4:b,r4:b
 1.14281 ++	machh.w lr,lr:t,lr:t
 1.14282 ++	machh.w lr,r5:b,r1:t
 1.14283 ++	machh.w r9,r6:b,r7:b
 1.14284 ++	machh.w r5,lr:t,r12:b
 1.14285 ++	.text
 1.14286 ++	.global machh_d
 1.14287 ++machh_d:
 1.14288 ++	machh.d r0,pc:b,pc:b
 1.14289 ++	machh.d r14,r12:t,r12:t
 1.14290 ++	machh.d r8,r5:t,r5:t
 1.14291 ++	machh.d r6,r4:b,r4:b
 1.14292 ++	machh.d r2,lr:t,lr:t
 1.14293 ++	machh.d r10,r0:b,r8:b
 1.14294 ++	machh.d r14,r4:b,r5:t
 1.14295 ++	machh.d r8,r0:b,r4:t
 1.14296 ++	.text
 1.14297 ++	.global macsathh_w
 1.14298 ++macsathh_w:
 1.14299 ++	macsathh.w pc,pc:b,pc:b
 1.14300 ++	macsathh.w r12,r12:t,r12:t
 1.14301 ++	macsathh.w r5,r5:t,r5:t
 1.14302 ++	macsathh.w r4,r4:b,r4:b
 1.14303 ++	macsathh.w lr,lr:t,lr:t
 1.14304 ++	macsathh.w r7,r7:t,pc:t
 1.14305 ++	macsathh.w r4,r2:t,r4:b
 1.14306 ++	macsathh.w r4,r8:t,r3:t
 1.14307 ++	.text
 1.14308 ++	.global mulhh_w
 1.14309 ++mulhh_w:
 1.14310 ++	mulhh.w pc,pc:b,pc:b
 1.14311 ++	mulhh.w r12,r12:t,r12:t
 1.14312 ++	mulhh.w r5,r5:t,r5:t
 1.14313 ++	mulhh.w r4,r4:b,r4:b
 1.14314 ++	mulhh.w lr,lr:t,lr:t
 1.14315 ++	mulhh.w r7,r4:t,r9:b
 1.14316 ++	mulhh.w pc,r3:t,r7:t
 1.14317 ++	mulhh.w pc,r4:b,r9:t
 1.14318 ++	.text
 1.14319 ++	.global mulsathh_h
 1.14320 ++mulsathh_h:
 1.14321 ++	mulsathh.h pc,pc:b,pc:b
 1.14322 ++	mulsathh.h r12,r12:t,r12:t
 1.14323 ++	mulsathh.h r5,r5:t,r5:t
 1.14324 ++	mulsathh.h r4,r4:b,r4:b
 1.14325 ++	mulsathh.h lr,lr:t,lr:t
 1.14326 ++	mulsathh.h r3,r1:b,sp:b
 1.14327 ++	mulsathh.h r11,lr:t,r11:b
 1.14328 ++	mulsathh.h r8,r8:b,r11:t
 1.14329 ++	.text
 1.14330 ++	.global mulsathh_w
 1.14331 ++mulsathh_w:
 1.14332 ++	mulsathh.w pc,pc:b,pc:b
 1.14333 ++	mulsathh.w r12,r12:t,r12:t
 1.14334 ++	mulsathh.w r5,r5:t,r5:t
 1.14335 ++	mulsathh.w r4,r4:b,r4:b
 1.14336 ++	mulsathh.w lr,lr:t,lr:t
 1.14337 ++	mulsathh.w lr,r11:t,r6:b
 1.14338 ++	mulsathh.w r6,r6:b,r7:t
 1.14339 ++	mulsathh.w r10,r2:b,r3:b
 1.14340 ++	.text
 1.14341 ++	.global mulsatrndhh_h
 1.14342 ++mulsatrndhh_h:
 1.14343 ++	mulsatrndhh.h pc,pc:b,pc:b
 1.14344 ++	mulsatrndhh.h r12,r12:t,r12:t
 1.14345 ++	mulsatrndhh.h r5,r5:t,r5:t
 1.14346 ++	mulsatrndhh.h r4,r4:b,r4:b
 1.14347 ++	mulsatrndhh.h lr,lr:t,lr:t
 1.14348 ++	mulsatrndhh.h r11,r6:b,r9:b
 1.14349 ++	mulsatrndhh.h r11,r3:b,r8:t
 1.14350 ++	mulsatrndhh.h r5,sp:t,r7:t
 1.14351 ++	.text
 1.14352 ++	.global mulsatrndwh_w
 1.14353 ++mulsatrndwh_w:
 1.14354 ++	mulsatrndwh.w pc,pc,pc:b
 1.14355 ++	mulsatrndwh.w r12,r12,r12:t
 1.14356 ++	mulsatrndwh.w r5,r5,r5:t
 1.14357 ++	mulsatrndwh.w r4,r4,r4:b
 1.14358 ++	mulsatrndwh.w lr,lr,lr:t
 1.14359 ++	mulsatrndwh.w r5,r12,r0:b
 1.14360 ++	mulsatrndwh.w r7,r10,pc:b
 1.14361 ++	mulsatrndwh.w r10,r8,r5:t
 1.14362 ++	.text
 1.14363 ++	.global macwh_d
 1.14364 ++macwh_d:
 1.14365 ++	macwh.d r0,pc,pc:b
 1.14366 ++	macwh.d r14,r12,r12:t
 1.14367 ++	macwh.d r8,r5,r5:t
 1.14368 ++	macwh.d r6,r4,r4:b
 1.14369 ++	macwh.d r2,lr,lr:t
 1.14370 ++	macwh.d r4,r10,r12:t
 1.14371 ++	macwh.d r4,r7,sp:b
 1.14372 ++	macwh.d r14,r9,r11:b
 1.14373 ++	.text
 1.14374 ++	.global mulwh_d
 1.14375 ++mulwh_d:
 1.14376 ++	mulwh.d r0,pc,pc:b
 1.14377 ++	mulwh.d r14,r12,r12:t
 1.14378 ++	mulwh.d r8,r5,r5:t
 1.14379 ++	mulwh.d r6,r4,r4:b
 1.14380 ++	mulwh.d r2,lr,lr:t
 1.14381 ++	mulwh.d r12,r5,r1:b
 1.14382 ++	mulwh.d r0,r1,r3:t
 1.14383 ++	mulwh.d r0,r9,r2:b
 1.14384 ++	.text
 1.14385 ++	.global mulsatwh_w
 1.14386 ++mulsatwh_w:
 1.14387 ++	mulsatwh.w pc,pc,pc:b
 1.14388 ++	mulsatwh.w r12,r12,r12:t
 1.14389 ++	mulsatwh.w r5,r5,r5:t
 1.14390 ++	mulsatwh.w r4,r4,r4:b
 1.14391 ++	mulsatwh.w lr,lr,lr:t
 1.14392 ++	mulsatwh.w r11,pc,r10:t
 1.14393 ++	mulsatwh.w sp,r12,r9:t
 1.14394 ++	mulsatwh.w r0,r3,r2:t
 1.14395 ++	.text
 1.14396 ++	.global ldw7
 1.14397 ++ldw7:
 1.14398 ++	ld.w pc,pc[pc:b<<2]
 1.14399 ++	ld.w r12,r12[r12:t<<2]
 1.14400 ++	ld.w r5,r5[r5:u<<2]
 1.14401 ++	ld.w r4,r4[r4:l<<2]
 1.14402 ++	ld.w lr,lr[lr:l<<2]
 1.14403 ++	ld.w r9,r10[r6:l<<2]
 1.14404 ++	ld.w r2,r10[r10:b<<2]
 1.14405 ++	ld.w r11,r5[pc:b<<2]
 1.14406 ++	.text
 1.14407 ++	.global satadd_w
 1.14408 ++satadd_w:
 1.14409 ++	satadd.w pc,pc,pc
 1.14410 ++	satadd.w r12,r12,r12
 1.14411 ++	satadd.w r5,r5,r5
 1.14412 ++	satadd.w r4,r4,r4
 1.14413 ++	satadd.w lr,lr,lr
 1.14414 ++	satadd.w r4,r8,r11
 1.14415 ++	satadd.w r3,r12,r6
 1.14416 ++	satadd.w r3,lr,r9
 1.14417 ++	.text
 1.14418 ++	.global satsub_w1
 1.14419 ++satsub_w1:
 1.14420 ++	satsub.w pc,pc,pc
 1.14421 ++	satsub.w r12,r12,r12
 1.14422 ++	satsub.w r5,r5,r5
 1.14423 ++	satsub.w r4,r4,r4
 1.14424 ++	satsub.w lr,lr,lr
 1.14425 ++	satsub.w r8,sp,r0
 1.14426 ++	satsub.w r9,r8,r4
 1.14427 ++	satsub.w pc,lr,r2
 1.14428 ++	.text
 1.14429 ++	.global satadd_h
 1.14430 ++satadd_h:
 1.14431 ++	satadd.h pc,pc,pc
 1.14432 ++	satadd.h r12,r12,r12
 1.14433 ++	satadd.h r5,r5,r5
 1.14434 ++	satadd.h r4,r4,r4
 1.14435 ++	satadd.h lr,lr,lr
 1.14436 ++	satadd.h r7,r3,r9
 1.14437 ++	satadd.h r1,r0,r2
 1.14438 ++	satadd.h r1,r4,lr
 1.14439 ++	.text
 1.14440 ++	.global satsub_h
 1.14441 ++satsub_h:
 1.14442 ++	satsub.h pc,pc,pc
 1.14443 ++	satsub.h r12,r12,r12
 1.14444 ++	satsub.h r5,r5,r5
 1.14445 ++	satsub.h r4,r4,r4
 1.14446 ++	satsub.h lr,lr,lr
 1.14447 ++	satsub.h lr,lr,r3
 1.14448 ++	satsub.h r11,r6,r5
 1.14449 ++	satsub.h r3,sp,r0
 1.14450 ++	.text
 1.14451 ++	.global mul3
 1.14452 ++mul3:
 1.14453 ++	mul pc,pc,0
 1.14454 ++	mul r12,r12,-1
 1.14455 ++	mul r5,r5,-128
 1.14456 ++	mul r4,r4,127
 1.14457 ++	mul lr,lr,1
 1.14458 ++	mul r12,r2,-7
 1.14459 ++	mul r1,pc,95
 1.14460 ++	mul r4,r6,19
 1.14461 ++	.text
 1.14462 ++	.global rsub2
 1.14463 ++rsub2:
 1.14464 ++	rsub pc,pc,0
 1.14465 ++	rsub r12,r12,-1
 1.14466 ++	rsub r5,r5,-128
 1.14467 ++	rsub r4,r4,127
 1.14468 ++	rsub lr,lr,1
 1.14469 ++	rsub r9,lr,96
 1.14470 ++	rsub r11,r1,56
 1.14471 ++	rsub r0,r7,-87
 1.14472 ++	.text
 1.14473 ++	.global clz
 1.14474 ++clz:
 1.14475 ++	clz pc,pc
 1.14476 ++	clz r12,r12
 1.14477 ++	clz r5,r5
 1.14478 ++	clz r4,r4
 1.14479 ++	clz lr,lr
 1.14480 ++	clz r2,r3
 1.14481 ++	clz r5,r11
 1.14482 ++	clz pc,r3
 1.14483 ++	.text
 1.14484 ++	.global cpc1
 1.14485 ++cpc1:
 1.14486 ++	cpc pc,pc
 1.14487 ++	cpc r12,r12
 1.14488 ++	cpc r5,r5
 1.14489 ++	cpc r4,r4
 1.14490 ++	cpc lr,lr
 1.14491 ++	cpc pc,r4
 1.14492 ++	cpc r5,r9
 1.14493 ++	cpc r6,r7
 1.14494 ++	.text
 1.14495 ++	.global asr3
 1.14496 ++asr3:
 1.14497 ++	asr pc,pc,0
 1.14498 ++	asr r12,r12,31
 1.14499 ++	asr r5,r5,16
 1.14500 ++	asr r4,r4,15
 1.14501 ++	asr lr,lr,1
 1.14502 ++	asr r4,r11,19
 1.14503 ++	asr sp,pc,26
 1.14504 ++	asr r11,sp,8
 1.14505 ++	.text
 1.14506 ++	.global lsl3
 1.14507 ++lsl3:
 1.14508 ++	lsl pc,pc,0
 1.14509 ++	lsl r12,r12,31
 1.14510 ++	lsl r5,r5,16
 1.14511 ++	lsl r4,r4,15
 1.14512 ++	lsl lr,lr,1
 1.14513 ++	lsl r8,r10,17
 1.14514 ++	lsl r2,lr,3
 1.14515 ++	lsl lr,r11,14
 1.14516 ++	.text
 1.14517 ++	.global lsr3
 1.14518 ++lsr3:
 1.14519 ++	lsr pc,pc,0
 1.14520 ++	lsr r12,r12,31
 1.14521 ++	lsr r5,r5,16
 1.14522 ++	lsr r4,r4,15
 1.14523 ++	lsr lr,lr,1
 1.14524 ++	lsr r4,r3,31
 1.14525 ++	lsr pc,r9,14
 1.14526 ++	lsr r3,r0,6
 1.14527 ++/*	.text
 1.14528 ++	.global extract_b
 1.14529 ++extract_b:
 1.14530 ++	extract.b pc,pc:b
 1.14531 ++	extract.b r12,r12:t
 1.14532 ++	extract.b r5,r5:u
 1.14533 ++	extract.b r4,r4:l
 1.14534 ++	extract.b lr,lr:l
 1.14535 ++	extract.b r2,r5:l
 1.14536 ++	extract.b r12,r3:l
 1.14537 ++	extract.b sp,r3:l
 1.14538 ++	.text
 1.14539 ++	.global insert_b
 1.14540 ++insert_b:
 1.14541 ++	insert.b pc:b,pc
 1.14542 ++	insert.b r12:t,r12
 1.14543 ++	insert.b r5:u,r5
 1.14544 ++	insert.b r4:l,r4
 1.14545 ++	insert.b lr:l,lr
 1.14546 ++	insert.b r12:u,r3
 1.14547 ++	insert.b r10:l,lr
 1.14548 ++	insert.b r11:l,r12
 1.14549 ++	.text
 1.14550 ++	.global extract_h
 1.14551 ++extract_h:
 1.14552 ++	extract.h pc,pc:b
 1.14553 ++	extract.h r12,r12:t
 1.14554 ++	extract.h r5,r5:t
 1.14555 ++	extract.h r4,r4:b
 1.14556 ++	extract.h lr,lr:t
 1.14557 ++	extract.h r11,lr:b
 1.14558 ++	extract.h r10,r0:b
 1.14559 ++	extract.h r11,r12:b
 1.14560 ++	.text
 1.14561 ++	.global insert_h
 1.14562 ++insert_h:
 1.14563 ++	insert.h pc:b,pc
 1.14564 ++	insert.h r12:t,r12
 1.14565 ++	insert.h r5:t,r5
 1.14566 ++	insert.h r4:b,r4
 1.14567 ++	insert.h lr:t,lr
 1.14568 ++	insert.h r12:t,r11
 1.14569 ++	insert.h r7:b,r6
 1.14570 ++	insert.h r1:t,r11 */
 1.14571 ++	.text
 1.14572 ++	.global movc1
 1.14573 ++movc1:
 1.14574 ++	moveq pc,pc
 1.14575 ++	moval r12,r12
 1.14576 ++	movls r5,r5
 1.14577 ++	movpl r4,r4
 1.14578 ++	movne lr,lr
 1.14579 ++	movne pc,r11
 1.14580 ++	movmi r10,r2
 1.14581 ++	movls r8,r12
 1.14582 ++	.text
 1.14583 ++	.global padd_h
 1.14584 ++padd_h:
 1.14585 ++	padd.h pc,pc,pc
 1.14586 ++	padd.h r12,r12,r12
 1.14587 ++	padd.h r5,r5,r5
 1.14588 ++	padd.h r4,r4,r4
 1.14589 ++	padd.h lr,lr,lr
 1.14590 ++	padd.h r8,r2,r7
 1.14591 ++	padd.h r0,r0,r3
 1.14592 ++	padd.h sp,r11,r6
 1.14593 ++	.text
 1.14594 ++	.global psub_h
 1.14595 ++psub_h:
 1.14596 ++	psub.h pc,pc,pc
 1.14597 ++	psub.h r12,r12,r12
 1.14598 ++	psub.h r5,r5,r5
 1.14599 ++	psub.h r4,r4,r4
 1.14600 ++	psub.h lr,lr,lr
 1.14601 ++	psub.h lr,r6,r8
 1.14602 ++	psub.h r0,r1,sp
 1.14603 ++	psub.h pc,pc,sp
 1.14604 ++	.text
 1.14605 ++	.global paddx_h
 1.14606 ++paddx_h:
 1.14607 ++	paddx.h pc,pc,pc
 1.14608 ++	paddx.h r12,r12,r12
 1.14609 ++	paddx.h r5,r5,r5
 1.14610 ++	paddx.h r4,r4,r4
 1.14611 ++	paddx.h lr,lr,lr
 1.14612 ++	paddx.h pc,pc,r1
 1.14613 ++	paddx.h r10,r4,r5
 1.14614 ++	paddx.h r5,pc,r2
 1.14615 ++	.text
 1.14616 ++	.global psubx_h
 1.14617 ++psubx_h:
 1.14618 ++	psubx.h pc,pc,pc
 1.14619 ++	psubx.h r12,r12,r12
 1.14620 ++	psubx.h r5,r5,r5
 1.14621 ++	psubx.h r4,r4,r4
 1.14622 ++	psubx.h lr,lr,lr
 1.14623 ++	psubx.h r5,r12,r5
 1.14624 ++	psubx.h r3,r8,r3
 1.14625 ++	psubx.h r5,r2,r3
 1.14626 ++	.text
 1.14627 ++	.global padds_sh
 1.14628 ++padds_sh:
 1.14629 ++	padds.sh pc,pc,pc
 1.14630 ++	padds.sh r12,r12,r12
 1.14631 ++	padds.sh r5,r5,r5
 1.14632 ++	padds.sh r4,r4,r4
 1.14633 ++	padds.sh lr,lr,lr
 1.14634 ++	padds.sh r9,lr,r2
 1.14635 ++	padds.sh r6,r8,r1
 1.14636 ++	padds.sh r6,r4,r10
 1.14637 ++	.text
 1.14638 ++	.global psubs_sh
 1.14639 ++psubs_sh:
 1.14640 ++	psubs.sh pc,pc,pc
 1.14641 ++	psubs.sh r12,r12,r12
 1.14642 ++	psubs.sh r5,r5,r5
 1.14643 ++	psubs.sh r4,r4,r4
 1.14644 ++	psubs.sh lr,lr,lr
 1.14645 ++	psubs.sh r6,lr,r11
 1.14646 ++	psubs.sh r2,r12,r4
 1.14647 ++	psubs.sh r0,r9,r0
 1.14648 ++	.text
 1.14649 ++	.global paddxs_sh
 1.14650 ++paddxs_sh:
 1.14651 ++	paddxs.sh pc,pc,pc
 1.14652 ++	paddxs.sh r12,r12,r12
 1.14653 ++	paddxs.sh r5,r5,r5
 1.14654 ++	paddxs.sh r4,r4,r4
 1.14655 ++	paddxs.sh lr,lr,lr
 1.14656 ++	paddxs.sh r0,r3,r9
 1.14657 ++	paddxs.sh pc,r10,r11
 1.14658 ++	paddxs.sh pc,r10,pc
 1.14659 ++	.text
 1.14660 ++	.global psubxs_sh
 1.14661 ++psubxs_sh:
 1.14662 ++	psubxs.sh pc,pc,pc
 1.14663 ++	psubxs.sh r12,r12,r12
 1.14664 ++	psubxs.sh r5,r5,r5
 1.14665 ++	psubxs.sh r4,r4,r4
 1.14666 ++	psubxs.sh lr,lr,lr
 1.14667 ++	psubxs.sh r7,r4,r4
 1.14668 ++	psubxs.sh r7,r8,r3
 1.14669 ++	psubxs.sh pc,r6,r5
 1.14670 ++	.text
 1.14671 ++	.global padds_uh
 1.14672 ++padds_uh:
 1.14673 ++	padds.uh pc,pc,pc
 1.14674 ++	padds.uh r12,r12,r12
 1.14675 ++	padds.uh r5,r5,r5
 1.14676 ++	padds.uh r4,r4,r4
 1.14677 ++	padds.uh lr,lr,lr
 1.14678 ++	padds.uh r12,r11,r7
 1.14679 ++	padds.uh r7,r8,lr
 1.14680 ++	padds.uh r6,r9,r7
 1.14681 ++	.text
 1.14682 ++	.global psubs_uh
 1.14683 ++psubs_uh:
 1.14684 ++	psubs.uh pc,pc,pc
 1.14685 ++	psubs.uh r12,r12,r12
 1.14686 ++	psubs.uh r5,r5,r5
 1.14687 ++	psubs.uh r4,r4,r4
 1.14688 ++	psubs.uh lr,lr,lr
 1.14689 ++	psubs.uh lr,r10,r6
 1.14690 ++	psubs.uh sp,r2,pc
 1.14691 ++	psubs.uh r2,r9,r2
 1.14692 ++	.text
 1.14693 ++	.global paddxs_uh
 1.14694 ++paddxs_uh:
 1.14695 ++	paddxs.uh pc,pc,pc
 1.14696 ++	paddxs.uh r12,r12,r12
 1.14697 ++	paddxs.uh r5,r5,r5
 1.14698 ++	paddxs.uh r4,r4,r4
 1.14699 ++	paddxs.uh lr,lr,lr
 1.14700 ++	paddxs.uh r7,r9,r5
 1.14701 ++	paddxs.uh r9,r1,r4
 1.14702 ++	paddxs.uh r5,r2,r3
 1.14703 ++	.text
 1.14704 ++	.global psubxs_uh
 1.14705 ++psubxs_uh:
 1.14706 ++	psubxs.uh pc,pc,pc
 1.14707 ++	psubxs.uh r12,r12,r12
 1.14708 ++	psubxs.uh r5,r5,r5
 1.14709 ++	psubxs.uh r4,r4,r4
 1.14710 ++	psubxs.uh lr,lr,lr
 1.14711 ++	psubxs.uh sp,r5,sp
 1.14712 ++	psubxs.uh sp,r6,r6
 1.14713 ++	psubxs.uh r3,r11,r8
 1.14714 ++	.text
 1.14715 ++	.global paddh_sh
 1.14716 ++paddh_sh:
 1.14717 ++	paddh.sh pc,pc,pc
 1.14718 ++	paddh.sh r12,r12,r12
 1.14719 ++	paddh.sh r5,r5,r5
 1.14720 ++	paddh.sh r4,r4,r4
 1.14721 ++	paddh.sh lr,lr,lr
 1.14722 ++	paddh.sh r12,sp,r3
 1.14723 ++	paddh.sh pc,r5,r3
 1.14724 ++	paddh.sh r8,r8,sp
 1.14725 ++	.text
 1.14726 ++	.global psubh_sh
 1.14727 ++psubh_sh:
 1.14728 ++	psubh.sh pc,pc,pc
 1.14729 ++	psubh.sh r12,r12,r12
 1.14730 ++	psubh.sh r5,r5,r5
 1.14731 ++	psubh.sh r4,r4,r4
 1.14732 ++	psubh.sh lr,lr,lr
 1.14733 ++	psubh.sh r1,r5,r8
 1.14734 ++	psubh.sh r7,r3,r6
 1.14735 ++	psubh.sh r4,r3,r3
 1.14736 ++	.text
 1.14737 ++	.global paddxh_sh
 1.14738 ++paddxh_sh:
 1.14739 ++	paddxh.sh pc,pc,pc
 1.14740 ++	paddxh.sh r12,r12,r12
 1.14741 ++	paddxh.sh r5,r5,r5
 1.14742 ++	paddxh.sh r4,r4,r4
 1.14743 ++	paddxh.sh lr,lr,lr
 1.14744 ++	paddxh.sh r6,r0,r4
 1.14745 ++	paddxh.sh r9,r8,r9
 1.14746 ++	paddxh.sh r3,r0,sp
 1.14747 ++	.text
 1.14748 ++	.global psubxh_sh
 1.14749 ++psubxh_sh:
 1.14750 ++	psubxh.sh pc,pc,pc
 1.14751 ++	psubxh.sh r12,r12,r12
 1.14752 ++	psubxh.sh r5,r5,r5
 1.14753 ++	psubxh.sh r4,r4,r4
 1.14754 ++	psubxh.sh lr,lr,lr
 1.14755 ++	psubxh.sh r4,pc,r12
 1.14756 ++	psubxh.sh r8,r4,r6
 1.14757 ++	psubxh.sh r12,r9,r4
 1.14758 ++	.text
 1.14759 ++	.global paddsub_h
 1.14760 ++paddsub_h:
 1.14761 ++	paddsub.h pc,pc:b,pc:b
 1.14762 ++	paddsub.h r12,r12:t,r12:t
 1.14763 ++	paddsub.h r5,r5:t,r5:t
 1.14764 ++	paddsub.h r4,r4:b,r4:b
 1.14765 ++	paddsub.h lr,lr:t,lr:t
 1.14766 ++	paddsub.h r5,r2:t,lr:b
 1.14767 ++	paddsub.h r7,r1:b,r8:b
 1.14768 ++	paddsub.h r6,r10:t,r5:t
 1.14769 ++	.text
 1.14770 ++	.global psubadd_h
 1.14771 ++psubadd_h:
 1.14772 ++	psubadd.h pc,pc:b,pc:b
 1.14773 ++	psubadd.h r12,r12:t,r12:t
 1.14774 ++	psubadd.h r5,r5:t,r5:t
 1.14775 ++	psubadd.h r4,r4:b,r4:b
 1.14776 ++	psubadd.h lr,lr:t,lr:t
 1.14777 ++	psubadd.h r9,r11:t,r8:t
 1.14778 ++	psubadd.h r10,r7:t,lr:t
 1.14779 ++	psubadd.h r6,pc:t,pc:b
 1.14780 ++	.text
 1.14781 ++	.global paddsubs_sh
 1.14782 ++paddsubs_sh:
 1.14783 ++	paddsubs.sh pc,pc:b,pc:b
 1.14784 ++	paddsubs.sh r12,r12:t,r12:t
 1.14785 ++	paddsubs.sh r5,r5:t,r5:t
 1.14786 ++	paddsubs.sh r4,r4:b,r4:b
 1.14787 ++	paddsubs.sh lr,lr:t,lr:t
 1.14788 ++	paddsubs.sh r0,lr:t,r0:b
 1.14789 ++	paddsubs.sh r9,r2:t,r4:t
 1.14790 ++	paddsubs.sh r12,r9:t,sp:t
 1.14791 ++	.text
 1.14792 ++	.global psubadds_sh
 1.14793 ++psubadds_sh:
 1.14794 ++	psubadds.sh pc,pc:b,pc:b
 1.14795 ++	psubadds.sh r12,r12:t,r12:t
 1.14796 ++	psubadds.sh r5,r5:t,r5:t
 1.14797 ++	psubadds.sh r4,r4:b,r4:b
 1.14798 ++	psubadds.sh lr,lr:t,lr:t
 1.14799 ++	psubadds.sh pc,lr:b,r1:t
 1.14800 ++	psubadds.sh r11,r3:b,r12:b
 1.14801 ++	psubadds.sh r10,r2:t,r8:t
 1.14802 ++	.text
 1.14803 ++	.global paddsubs_uh
 1.14804 ++paddsubs_uh:
 1.14805 ++	paddsubs.uh pc,pc:b,pc:b
 1.14806 ++	paddsubs.uh r12,r12:t,r12:t
 1.14807 ++	paddsubs.uh r5,r5:t,r5:t
 1.14808 ++	paddsubs.uh r4,r4:b,r4:b
 1.14809 ++	paddsubs.uh lr,lr:t,lr:t
 1.14810 ++	paddsubs.uh r9,r2:b,r3:b
 1.14811 ++	paddsubs.uh sp,sp:b,r7:t
 1.14812 ++	paddsubs.uh lr,r0:b,r10:t
 1.14813 ++	.text
 1.14814 ++	.global psubadds_uh
 1.14815 ++psubadds_uh:
 1.14816 ++	psubadds.uh pc,pc:b,pc:b
 1.14817 ++	psubadds.uh r12,r12:t,r12:t
 1.14818 ++	psubadds.uh r5,r5:t,r5:t
 1.14819 ++	psubadds.uh r4,r4:b,r4:b
 1.14820 ++	psubadds.uh lr,lr:t,lr:t
 1.14821 ++	psubadds.uh r12,r9:t,pc:t
 1.14822 ++	psubadds.uh r8,r6:b,r8:b
 1.14823 ++	psubadds.uh r8,r8:b,r4:b
 1.14824 ++	.text
 1.14825 ++	.global paddsubh_sh
 1.14826 ++paddsubh_sh:
 1.14827 ++	paddsubh.sh pc,pc:b,pc:b
 1.14828 ++	paddsubh.sh r12,r12:t,r12:t
 1.14829 ++	paddsubh.sh r5,r5:t,r5:t
 1.14830 ++	paddsubh.sh r4,r4:b,r4:b
 1.14831 ++	paddsubh.sh lr,lr:t,lr:t
 1.14832 ++	paddsubh.sh r8,r9:t,r9:b
 1.14833 ++	paddsubh.sh r0,sp:t,r1:t
 1.14834 ++	paddsubh.sh r3,r1:b,r0:t
 1.14835 ++	.text
 1.14836 ++	.global psubaddh_sh
 1.14837 ++psubaddh_sh:
 1.14838 ++	psubaddh.sh pc,pc:b,pc:b
 1.14839 ++	psubaddh.sh r12,r12:t,r12:t
 1.14840 ++	psubaddh.sh r5,r5:t,r5:t
 1.14841 ++	psubaddh.sh r4,r4:b,r4:b
 1.14842 ++	psubaddh.sh lr,lr:t,lr:t
 1.14843 ++	psubaddh.sh r7,r3:t,r10:b
 1.14844 ++	psubaddh.sh r7,r2:t,r1:t
 1.14845 ++	psubaddh.sh r11,r3:b,r6:b
 1.14846 ++	.text
 1.14847 ++	.global padd_b
 1.14848 ++padd_b:
 1.14849 ++	padd.b pc,pc,pc
 1.14850 ++	padd.b r12,r12,r12
 1.14851 ++	padd.b r5,r5,r5
 1.14852 ++	padd.b r4,r4,r4
 1.14853 ++	padd.b lr,lr,lr
 1.14854 ++	padd.b r2,r6,pc
 1.14855 ++	padd.b r8,r9,r12
 1.14856 ++	padd.b r5,r12,r3
 1.14857 ++	.text
 1.14858 ++	.global psub_b
 1.14859 ++psub_b:
 1.14860 ++	psub.b pc,pc,pc
 1.14861 ++	psub.b r12,r12,r12
 1.14862 ++	psub.b r5,r5,r5
 1.14863 ++	psub.b r4,r4,r4
 1.14864 ++	psub.b lr,lr,lr
 1.14865 ++	psub.b r0,r12,pc
 1.14866 ++	psub.b r7,sp,r10
 1.14867 ++	psub.b r5,sp,r12
 1.14868 ++	.text
 1.14869 ++	.global padds_sb
 1.14870 ++padds_sb:
 1.14871 ++	padds.sb pc,pc,pc
 1.14872 ++	padds.sb r12,r12,r12
 1.14873 ++	padds.sb r5,r5,r5
 1.14874 ++	padds.sb r4,r4,r4
 1.14875 ++	padds.sb lr,lr,lr
 1.14876 ++	padds.sb sp,r11,r4
 1.14877 ++	padds.sb r11,r10,r11
 1.14878 ++	padds.sb r5,r12,r6
 1.14879 ++	.text
 1.14880 ++	.global psubs_sb
 1.14881 ++psubs_sb:
 1.14882 ++	psubs.sb pc,pc,pc
 1.14883 ++	psubs.sb r12,r12,r12
 1.14884 ++	psubs.sb r5,r5,r5
 1.14885 ++	psubs.sb r4,r4,r4
 1.14886 ++	psubs.sb lr,lr,lr
 1.14887 ++	psubs.sb r7,r6,r8
 1.14888 ++	psubs.sb r12,r10,r9
 1.14889 ++	psubs.sb pc,r11,r0
 1.14890 ++	.text
 1.14891 ++	.global padds_ub
 1.14892 ++padds_ub:
 1.14893 ++	padds.ub pc,pc,pc
 1.14894 ++	padds.ub r12,r12,r12
 1.14895 ++	padds.ub r5,r5,r5
 1.14896 ++	padds.ub r4,r4,r4
 1.14897 ++	padds.ub lr,lr,lr
 1.14898 ++	padds.ub r3,r2,r11
 1.14899 ++	padds.ub r10,r8,r1
 1.14900 ++	padds.ub r11,r8,r10
 1.14901 ++	.text
 1.14902 ++	.global psubs_ub
 1.14903 ++psubs_ub:
 1.14904 ++	psubs.ub pc,pc,pc
 1.14905 ++	psubs.ub r12,r12,r12
 1.14906 ++	psubs.ub r5,r5,r5
 1.14907 ++	psubs.ub r4,r4,r4
 1.14908 ++	psubs.ub lr,lr,lr
 1.14909 ++	psubs.ub r0,r2,r7
 1.14910 ++	psubs.ub lr,r5,r3
 1.14911 ++	psubs.ub r6,r7,r9
 1.14912 ++	.text
 1.14913 ++	.global paddh_ub
 1.14914 ++paddh_ub:
 1.14915 ++	paddh.ub pc,pc,pc
 1.14916 ++	paddh.ub r12,r12,r12
 1.14917 ++	paddh.ub r5,r5,r5
 1.14918 ++	paddh.ub r4,r4,r4
 1.14919 ++	paddh.ub lr,lr,lr
 1.14920 ++	paddh.ub lr,r1,r0
 1.14921 ++	paddh.ub r2,r7,r7
 1.14922 ++	paddh.ub r2,r1,r2
 1.14923 ++	.text
 1.14924 ++	.global psubh_ub
 1.14925 ++psubh_ub:
 1.14926 ++	psubh.ub pc,pc,pc
 1.14927 ++	psubh.ub r12,r12,r12
 1.14928 ++	psubh.ub r5,r5,r5
 1.14929 ++	psubh.ub r4,r4,r4
 1.14930 ++	psubh.ub lr,lr,lr
 1.14931 ++	psubh.ub r0,r1,r6
 1.14932 ++	psubh.ub r4,lr,r10
 1.14933 ++	psubh.ub r9,r8,r1
 1.14934 ++	.text
 1.14935 ++	.global pmax_ub
 1.14936 ++pmax_ub:
 1.14937 ++	pmax.ub pc,pc,pc
 1.14938 ++	pmax.ub r12,r12,r12
 1.14939 ++	pmax.ub r5,r5,r5
 1.14940 ++	pmax.ub r4,r4,r4
 1.14941 ++	pmax.ub lr,lr,lr
 1.14942 ++	pmax.ub pc,r2,r11
 1.14943 ++	pmax.ub r12,r1,r1
 1.14944 ++	pmax.ub r5,r2,r0
 1.14945 ++	.text
 1.14946 ++	.global pmax_sh
 1.14947 ++pmax_sh:
 1.14948 ++	pmax.sh pc,pc,pc
 1.14949 ++	pmax.sh r12,r12,r12
 1.14950 ++	pmax.sh r5,r5,r5
 1.14951 ++	pmax.sh r4,r4,r4
 1.14952 ++	pmax.sh lr,lr,lr
 1.14953 ++	pmax.sh lr,r6,r12
 1.14954 ++	pmax.sh r2,pc,r5
 1.14955 ++	pmax.sh pc,r2,r7
 1.14956 ++	.text
 1.14957 ++	.global pmin_ub
 1.14958 ++pmin_ub:
 1.14959 ++	pmin.ub pc,pc,pc
 1.14960 ++	pmin.ub r12,r12,r12
 1.14961 ++	pmin.ub r5,r5,r5
 1.14962 ++	pmin.ub r4,r4,r4
 1.14963 ++	pmin.ub lr,lr,lr
 1.14964 ++	pmin.ub r8,r1,r5
 1.14965 ++	pmin.ub r1,r8,r3
 1.14966 ++	pmin.ub r0,r2,r7
 1.14967 ++	.text
 1.14968 ++	.global pmin_sh
 1.14969 ++pmin_sh:
 1.14970 ++	pmin.sh pc,pc,pc
 1.14971 ++	pmin.sh r12,r12,r12
 1.14972 ++	pmin.sh r5,r5,r5
 1.14973 ++	pmin.sh r4,r4,r4
 1.14974 ++	pmin.sh lr,lr,lr
 1.14975 ++	pmin.sh r8,r4,r10
 1.14976 ++	pmin.sh lr,r10,r12
 1.14977 ++	pmin.sh r2,r6,r2
 1.14978 ++	.text
 1.14979 ++	.global pavg_ub
 1.14980 ++pavg_ub:
 1.14981 ++	pavg.ub pc,pc,pc
 1.14982 ++	pavg.ub r12,r12,r12
 1.14983 ++	pavg.ub r5,r5,r5
 1.14984 ++	pavg.ub r4,r4,r4
 1.14985 ++	pavg.ub lr,lr,lr
 1.14986 ++	pavg.ub r0,r1,r6
 1.14987 ++	pavg.ub r8,r3,r6
 1.14988 ++	pavg.ub pc,r12,r10
 1.14989 ++	.text
 1.14990 ++	.global pavg_sh
 1.14991 ++pavg_sh:
 1.14992 ++	pavg.sh pc,pc,pc
 1.14993 ++	pavg.sh r12,r12,r12
 1.14994 ++	pavg.sh r5,r5,r5
 1.14995 ++	pavg.sh r4,r4,r4
 1.14996 ++	pavg.sh lr,lr,lr
 1.14997 ++	pavg.sh r9,pc,sp
 1.14998 ++	pavg.sh pc,sp,r3
 1.14999 ++	pavg.sh r6,r1,r9
 1.15000 ++	.text
 1.15001 ++	.global pabs_sb
 1.15002 ++pabs_sb:
 1.15003 ++	pabs.sb pc,pc
 1.15004 ++	pabs.sb r12,r12
 1.15005 ++	pabs.sb r5,r5
 1.15006 ++	pabs.sb r4,r4
 1.15007 ++	pabs.sb lr,lr
 1.15008 ++	pabs.sb r11,r6
 1.15009 ++	pabs.sb lr,r9
 1.15010 ++	pabs.sb sp,r7
 1.15011 ++	.text
 1.15012 ++	.global pabs_sh
 1.15013 ++pabs_sh:
 1.15014 ++	pabs.sh pc,pc
 1.15015 ++	pabs.sh r12,r12
 1.15016 ++	pabs.sh r5,r5
 1.15017 ++	pabs.sh r4,r4
 1.15018 ++	pabs.sh lr,lr
 1.15019 ++	pabs.sh pc,r3
 1.15020 ++	pabs.sh r5,r7
 1.15021 ++	pabs.sh r4,r0
 1.15022 ++	.text
 1.15023 ++	.global psad
 1.15024 ++psad:
 1.15025 ++	psad pc,pc,pc
 1.15026 ++	psad r12,r12,r12
 1.15027 ++	psad r5,r5,r5
 1.15028 ++	psad r4,r4,r4
 1.15029 ++	psad lr,lr,lr
 1.15030 ++	psad r9,r11,r11
 1.15031 ++	psad lr,r4,sp
 1.15032 ++	psad lr,r4,r5
 1.15033 ++	.text
 1.15034 ++	.global pasr_b
 1.15035 ++pasr_b:
 1.15036 ++	pasr.b pc,pc,0
 1.15037 ++	pasr.b r12,r12,7
 1.15038 ++	pasr.b r5,r5,4
 1.15039 ++	pasr.b r4,r4,3
 1.15040 ++	pasr.b lr,lr,1
 1.15041 ++	pasr.b pc,r7,1
 1.15042 ++	pasr.b sp,lr,6
 1.15043 ++	pasr.b sp,r3,2
 1.15044 ++	.text
 1.15045 ++	.global plsl_b
 1.15046 ++plsl_b:
 1.15047 ++	plsl.b pc,pc,0
 1.15048 ++	plsl.b r12,r12,7
 1.15049 ++	plsl.b r5,r5,4
 1.15050 ++	plsl.b r4,r4,3
 1.15051 ++	plsl.b lr,lr,1
 1.15052 ++	plsl.b r2,r11,4
 1.15053 ++	plsl.b r8,r5,7
 1.15054 ++	plsl.b pc,r0,2
 1.15055 ++	.text
 1.15056 ++	.global plsr_b
 1.15057 ++plsr_b:
 1.15058 ++	plsr.b pc,pc,0
 1.15059 ++	plsr.b r12,r12,7
 1.15060 ++	plsr.b r5,r5,4
 1.15061 ++	plsr.b r4,r4,3
 1.15062 ++	plsr.b lr,lr,1
 1.15063 ++	plsr.b r12,r1,2
 1.15064 ++	plsr.b r6,pc,7
 1.15065 ++	plsr.b r12,r11,2
 1.15066 ++	.text
 1.15067 ++	.global pasr_h
 1.15068 ++pasr_h:
 1.15069 ++	pasr.h pc,pc,0
 1.15070 ++	pasr.h r12,r12,15
 1.15071 ++	pasr.h r5,r5,8
 1.15072 ++	pasr.h r4,r4,7
 1.15073 ++	pasr.h lr,lr,1
 1.15074 ++	pasr.h r0,r11,10
 1.15075 ++	pasr.h r4,r6,8
 1.15076 ++	pasr.h r6,r2,4
 1.15077 ++	.text
 1.15078 ++	.global plsl_h
 1.15079 ++plsl_h:
 1.15080 ++	plsl.h pc,pc,0
 1.15081 ++	plsl.h r12,r12,15
 1.15082 ++	plsl.h r5,r5,8
 1.15083 ++	plsl.h r4,r4,7
 1.15084 ++	plsl.h lr,lr,1
 1.15085 ++	plsl.h r5,r10,9
 1.15086 ++	plsl.h sp,lr,8
 1.15087 ++	plsl.h r0,lr,7
 1.15088 ++	.text
 1.15089 ++	.global plsr_h
 1.15090 ++plsr_h:
 1.15091 ++	plsr.h pc,pc,0
 1.15092 ++	plsr.h r12,r12,15
 1.15093 ++	plsr.h r5,r5,8
 1.15094 ++	plsr.h r4,r4,7
 1.15095 ++	plsr.h lr,lr,1
 1.15096 ++	plsr.h r11,r0,15
 1.15097 ++	plsr.h lr,r3,3
 1.15098 ++	plsr.h r8,lr,10
 1.15099 ++	.text
 1.15100 ++	.global packw_sh
 1.15101 ++packw_sh:
 1.15102 ++	packw.sh pc,pc,pc
 1.15103 ++	packw.sh r12,r12,r12
 1.15104 ++	packw.sh r5,r5,r5
 1.15105 ++	packw.sh r4,r4,r4
 1.15106 ++	packw.sh lr,lr,lr
 1.15107 ++	packw.sh sp,r11,r10
 1.15108 ++	packw.sh r8,r2,r12
 1.15109 ++	packw.sh r8,r1,r5
 1.15110 ++	.text
 1.15111 ++	.global punpckub_h
 1.15112 ++punpckub_h:
 1.15113 ++	punpckub.h pc,pc:b
 1.15114 ++	punpckub.h r12,r12:t
 1.15115 ++	punpckub.h r5,r5:t
 1.15116 ++	punpckub.h r4,r4:b
 1.15117 ++	punpckub.h lr,lr:t
 1.15118 ++	punpckub.h r6,r1:t
 1.15119 ++	punpckub.h lr,r5:b
 1.15120 ++	punpckub.h lr,r2:t
 1.15121 ++	.text
 1.15122 ++	.global punpcksb_h
 1.15123 ++punpcksb_h:
 1.15124 ++	punpcksb.h pc,pc:b
 1.15125 ++	punpcksb.h r12,r12:t
 1.15126 ++	punpcksb.h r5,r5:t
 1.15127 ++	punpcksb.h r4,r4:b
 1.15128 ++	punpcksb.h lr,lr:t
 1.15129 ++	punpcksb.h r4,r7:t
 1.15130 ++	punpcksb.h r6,lr:b
 1.15131 ++	punpcksb.h r12,r12:t
 1.15132 ++	.text
 1.15133 ++	.global packsh_ub
 1.15134 ++packsh_ub:
 1.15135 ++	packsh.ub pc,pc,pc
 1.15136 ++	packsh.ub r12,r12,r12
 1.15137 ++	packsh.ub r5,r5,r5
 1.15138 ++	packsh.ub r4,r4,r4
 1.15139 ++	packsh.ub lr,lr,lr
 1.15140 ++	packsh.ub r3,r6,r3
 1.15141 ++	packsh.ub r8,r0,r3
 1.15142 ++	packsh.ub r9,r3,lr
 1.15143 ++	.text
 1.15144 ++	.global packsh_sb
 1.15145 ++packsh_sb:
 1.15146 ++	packsh.sb pc,pc,pc
 1.15147 ++	packsh.sb r12,r12,r12
 1.15148 ++	packsh.sb r5,r5,r5
 1.15149 ++	packsh.sb r4,r4,r4
 1.15150 ++	packsh.sb lr,lr,lr
 1.15151 ++	packsh.sb r6,r8,r1
 1.15152 ++	packsh.sb lr,r9,r8
 1.15153 ++	packsh.sb sp,r6,r6
 1.15154 ++	.text
 1.15155 ++	.global andl
 1.15156 ++andl:
 1.15157 ++	andl pc,0
 1.15158 ++	andl r12,65535
 1.15159 ++	andl r5,32768
 1.15160 ++	andl r4,32767
 1.15161 ++	andl lr,1
 1.15162 ++	andl pc,23128
 1.15163 ++	andl r8,47262
 1.15164 ++	andl r7,13719
 1.15165 ++	.text
 1.15166 ++	.global andl_coh
 1.15167 ++andl_coh:
 1.15168 ++	andl pc,0,COH
 1.15169 ++	andl r12,65535,COH
 1.15170 ++	andl r5,32768,COH
 1.15171 ++	andl r4,32767,COH
 1.15172 ++	andl lr,1,COH
 1.15173 ++	andl r6,22753,COH
 1.15174 ++	andl r0,40653,COH
 1.15175 ++	andl r4,48580,COH
 1.15176 ++	.text
 1.15177 ++	.global andh
 1.15178 ++andh:
 1.15179 ++	andh pc,0
 1.15180 ++	andh r12,65535
 1.15181 ++	andh r5,32768
 1.15182 ++	andh r4,32767
 1.15183 ++	andh lr,1
 1.15184 ++	andh r12,52312
 1.15185 ++	andh r3,8675
 1.15186 ++	andh r2,42987
 1.15187 ++	.text
 1.15188 ++	.global andh_coh
 1.15189 ++andh_coh:
 1.15190 ++	andh pc,0,COH
 1.15191 ++	andh r12,65535,COH
 1.15192 ++	andh r5,32768,COH
 1.15193 ++	andh r4,32767,COH
 1.15194 ++	andh lr,1,COH
 1.15195 ++	andh r11,34317,COH
 1.15196 ++	andh r8,52982,COH
 1.15197 ++	andh r10,23683,COH
 1.15198 ++	.text
 1.15199 ++	.global orl
 1.15200 ++orl:
 1.15201 ++	orl pc,0
 1.15202 ++	orl r12,65535
 1.15203 ++	orl r5,32768
 1.15204 ++	orl r4,32767
 1.15205 ++	orl lr,1
 1.15206 ++	orl sp,16766
 1.15207 ++	orl r0,21181
 1.15208 ++	orl pc,44103
 1.15209 ++	.text
 1.15210 ++	.global orh
 1.15211 ++orh:
 1.15212 ++	orh pc,0
 1.15213 ++	orh r12,65535
 1.15214 ++	orh r5,32768
 1.15215 ++	orh r4,32767
 1.15216 ++	orh lr,1
 1.15217 ++	orh r8,28285
 1.15218 ++	orh r12,30492
 1.15219 ++	orh r1,59930
 1.15220 ++	.text
 1.15221 ++	.global eorl
 1.15222 ++eorl:
 1.15223 ++	eorl pc,0
 1.15224 ++	eorl r12,65535
 1.15225 ++	eorl r5,32768
 1.15226 ++	eorl r4,32767
 1.15227 ++	eorl lr,1
 1.15228 ++	eorl r4,51129
 1.15229 ++	eorl r6,64477
 1.15230 ++	eorl r1,20913
 1.15231 ++	.text
 1.15232 ++	.global eorh
 1.15233 ++eorh:
 1.15234 ++	eorh pc,0
 1.15235 ++	eorh r12,65535
 1.15236 ++	eorh r5,32768
 1.15237 ++	eorh r4,32767
 1.15238 ++	eorh lr,1
 1.15239 ++	eorh r0,11732
 1.15240 ++	eorh r10,38069
 1.15241 ++	eorh r9,57130
 1.15242 ++	.text
 1.15243 ++	.global mcall
 1.15244 ++mcall:
 1.15245 ++	mcall pc[0]
 1.15246 ++	mcall r12[-4]
 1.15247 ++	mcall r5[-131072]
 1.15248 ++	mcall r4[131068]
 1.15249 ++	mcall lr[4]
 1.15250 ++	mcall sp[61180]
 1.15251 ++	mcall r4[-35000]
 1.15252 ++	mcall r0[9924]
 1.15253 ++	.text
 1.15254 ++	.global pref
 1.15255 ++pref:
 1.15256 ++	pref pc[0]
 1.15257 ++	pref r12[-1]
 1.15258 ++	pref r5[-32768]
 1.15259 ++	pref r4[32767]
 1.15260 ++	pref lr[1]
 1.15261 ++	pref r7[7748]
 1.15262 ++	pref r7[-7699]
 1.15263 ++	pref r2[-25892]
 1.15264 ++	.text
 1.15265 ++	.global cache
 1.15266 ++cache:
 1.15267 ++	cache pc[0],0
 1.15268 ++	cache r12[-1],31
 1.15269 ++	cache r5[-1024],16
 1.15270 ++	cache r4[1023],15
 1.15271 ++	cache lr[1],1
 1.15272 ++	cache r3[-964],17
 1.15273 ++	cache r4[-375],22
 1.15274 ++	cache r3[-888],17
 1.15275 ++	.text
 1.15276 ++	.global sub4
 1.15277 ++sub4:
 1.15278 ++	sub pc,0
 1.15279 ++	sub r12,-1
 1.15280 ++	sub r5,-1048576
 1.15281 ++	sub r4,1048575
 1.15282 ++	sub lr,1
 1.15283 ++	sub r2,-619156
 1.15284 ++	sub lr,461517
 1.15285 ++	sub r8,-185051
 1.15286 ++	.text
 1.15287 ++	.global cp3
 1.15288 ++cp3:
 1.15289 ++	cp pc,0
 1.15290 ++	cp r12,-1
 1.15291 ++	cp r5,-1048576
 1.15292 ++	cp r4,1048575
 1.15293 ++	cp lr,1
 1.15294 ++	cp r1,124078
 1.15295 ++	cp r0,-378909
 1.15296 ++	cp r4,-243180
 1.15297 ++	.text
 1.15298 ++	.global mov2
 1.15299 ++mov2:
 1.15300 ++	mov pc,0
 1.15301 ++	mov r12,-1
 1.15302 ++	mov r5,-1048576
 1.15303 ++	mov r4,1048575
 1.15304 ++	mov lr,1
 1.15305 ++	mov r5,-317021
 1.15306 ++	mov sp,-749164
 1.15307 ++	mov r5,940179
 1.15308 ++	.text
 1.15309 ++	.global brc2
 1.15310 ++brc2:
 1.15311 ++	breq 0
 1.15312 ++	bral -2
 1.15313 ++	brls -2097152
 1.15314 ++	brpl 2097150
 1.15315 ++	brne 2
 1.15316 ++	brhi -1796966
 1.15317 ++	brqs 1321368
 1.15318 ++	brls -577434
 1.15319 ++	.text
 1.15320 ++	.global rcall2
 1.15321 ++rcall2:
 1.15322 ++	rcall 0
 1.15323 ++	rcall -2
 1.15324 ++	rcall -2097152
 1.15325 ++	rcall 2097150
 1.15326 ++	rcall 2
 1.15327 ++	rcall 496820
 1.15328 ++	rcall 1085092
 1.15329 ++	rcall -1058
 1.15330 ++	.text
 1.15331 ++	.global sub5
 1.15332 ++sub5:
 1.15333 ++	sub pc,pc,0
 1.15334 ++	sub r12,r12,-1
 1.15335 ++	sub r5,r5,-32768
 1.15336 ++	sub r4,r4,32767
 1.15337 ++	sub lr,lr,1
 1.15338 ++	sub pc,pc,-12744
 1.15339 ++	sub r7,r7,-27365
 1.15340 ++	sub r2,r9,-17358
 1.15341 ++	.text
 1.15342 ++	.global satsub_w2
 1.15343 ++satsub_w2:
 1.15344 ++	satsub.w pc,pc,0
 1.15345 ++	satsub.w r12,r12,-1
 1.15346 ++	satsub.w r5,r5,-32768
 1.15347 ++	satsub.w r4,r4,32767
 1.15348 ++	satsub.w lr,lr,1
 1.15349 ++	satsub.w r2,lr,-2007
 1.15350 ++	satsub.w r7,r12,-784
 1.15351 ++	satsub.w r4,r7,23180
 1.15352 ++	.text
 1.15353 ++	.global ld_d4
 1.15354 ++ld_d4:
 1.15355 ++	ld.d r0,pc[0]
 1.15356 ++	ld.d r14,r12[-1]
 1.15357 ++	ld.d r8,r5[-32768]
 1.15358 ++	ld.d r6,r4[32767]
 1.15359 ++	ld.d r2,lr[1]
 1.15360 ++	ld.d r14,r11[14784]
 1.15361 ++	ld.d r6,r9[-18905]
 1.15362 ++	ld.d r2,r3[-6355]
 1.15363 ++	.text
 1.15364 ++	.global ld_w4
 1.15365 ++ld_w4:
 1.15366 ++	ld.w pc,pc[0]
 1.15367 ++	ld.w r12,r12[-1]
 1.15368 ++	ld.w r5,r5[-32768]
 1.15369 ++	ld.w r4,r4[32767]
 1.15370 ++	ld.w lr,lr[1]
 1.15371 ++	ld.w r0,r12[-22133]
 1.15372 ++	ld.w sp,pc[-20521]
 1.15373 ++	/* ld.w r3,r5[29035] */
 1.15374 ++	nop
 1.15375 ++	.text
 1.15376 ++	.global ld_sh4
 1.15377 ++ld_sh4:
 1.15378 ++	ld.sh pc,pc[0]
 1.15379 ++	ld.sh r12,r12[-1]
 1.15380 ++	ld.sh r5,r5[-32768]
 1.15381 ++	ld.sh r4,r4[32767]
 1.15382 ++	ld.sh lr,lr[1]
 1.15383 ++	ld.sh r6,r10[30930]
 1.15384 ++	ld.sh r6,r10[21973]
 1.15385 ++	/* ld.sh r11,r10[-2058] */
 1.15386 ++	nop
 1.15387 ++	.text
 1.15388 ++	.global ld_uh4
 1.15389 ++ld_uh4:
 1.15390 ++	ld.uh pc,pc[0]
 1.15391 ++	ld.uh r12,r12[-1]
 1.15392 ++	ld.uh r5,r5[-32768]
 1.15393 ++	ld.uh r4,r4[32767]
 1.15394 ++	ld.uh lr,lr[1]
 1.15395 ++	ld.uh r1,r9[-13354]
 1.15396 ++	ld.uh lr,r11[21337]
 1.15397 ++	/* ld.uh r2,lr[-25370] */
 1.15398 ++	nop
 1.15399 ++	.text
 1.15400 ++	.global ld_sb1
 1.15401 ++ld_sb1:
 1.15402 ++	ld.sb pc,pc[0]
 1.15403 ++	ld.sb r12,r12[-1]
 1.15404 ++	ld.sb r5,r5[-32768]
 1.15405 ++	ld.sb r4,r4[32767]
 1.15406 ++	ld.sb lr,lr[1]
 1.15407 ++	ld.sb r7,sp[-28663]
 1.15408 ++	ld.sb r2,r1[-5879]
 1.15409 ++	ld.sb r12,r3[18734]
 1.15410 ++	.text
 1.15411 ++	.global ld_ub4
 1.15412 ++ld_ub4:
 1.15413 ++	ld.ub pc,pc[0]
 1.15414 ++	ld.ub r12,r12[-1]
 1.15415 ++	ld.ub r5,r5[-32768]
 1.15416 ++	ld.ub r4,r4[32767]
 1.15417 ++	ld.ub lr,lr[1]
 1.15418 ++	ld.ub pc,r4[8277]
 1.15419 ++	ld.ub r5,r12[19172]
 1.15420 ++	ld.ub r10,lr[26347]
 1.15421 ++	.text
 1.15422 ++	.global st_d4
 1.15423 ++st_d4:
 1.15424 ++	st.d pc[0],r0
 1.15425 ++	st.d r12[-1],r14
 1.15426 ++	st.d r5[-32768],r8
 1.15427 ++	st.d r4[32767],r6
 1.15428 ++	st.d lr[1],r2
 1.15429 ++	st.d r5[13200],r10
 1.15430 ++	st.d r5[9352],r10
 1.15431 ++	st.d r5[32373],r4
 1.15432 ++	.text
 1.15433 ++	.global st_w4
 1.15434 ++st_w4:
 1.15435 ++	st.w pc[0],pc
 1.15436 ++	st.w r12[-1],r12
 1.15437 ++	st.w r5[-32768],r5
 1.15438 ++	st.w r4[32767],r4
 1.15439 ++	st.w lr[1],lr
 1.15440 ++	st.w sp[6136],r7
 1.15441 ++	st.w r6[27087],r12
 1.15442 ++	/* st.w r3[20143],r7 */
 1.15443 ++	nop
 1.15444 ++	.text
 1.15445 ++	.global st_h4
 1.15446 ++st_h4:
 1.15447 ++	st.h pc[0],pc
 1.15448 ++	st.h r12[-1],r12
 1.15449 ++	st.h r5[-32768],r5
 1.15450 ++	st.h r4[32767],r4
 1.15451 ++	st.h lr[1],lr
 1.15452 ++	st.h r4[-9962],r7
 1.15453 ++	st.h r9[-16250],r3
 1.15454 ++	/* st.h r8[-28810],r7 */
 1.15455 ++	nop
 1.15456 ++	.text
 1.15457 ++	.global st_b4
 1.15458 ++st_b4:
 1.15459 ++	st.b pc[0],pc
 1.15460 ++	st.b r12[-1],r12
 1.15461 ++	st.b r5[-32768],r5
 1.15462 ++	st.b r4[32767],r4
 1.15463 ++	st.b lr[1],lr
 1.15464 ++	st.b r12[30102],r6
 1.15465 ++	st.b r5[28977],r1
 1.15466 ++	st.b r0[5470],r1
 1.15467 ++	.text
 1.15468 ++	.global mfsr
 1.15469 ++mfsr:
 1.15470 ++	mfsr pc,0
 1.15471 ++	mfsr r12,1020
 1.15472 ++	mfsr r5,512
 1.15473 ++	mfsr r4,508
 1.15474 ++	mfsr lr,4
 1.15475 ++	mfsr r2,696
 1.15476 ++	mfsr r4,260
 1.15477 ++	mfsr r10,1016
 1.15478 ++	.text
 1.15479 ++	.global mtsr
 1.15480 ++mtsr:
 1.15481 ++	mtsr 0,pc
 1.15482 ++	mtsr 1020,r12
 1.15483 ++	mtsr 512,r5
 1.15484 ++	mtsr 508,r4
 1.15485 ++	mtsr 4,lr
 1.15486 ++	mtsr 224,r10
 1.15487 ++	mtsr 836,r12
 1.15488 ++	mtsr 304,r9
 1.15489 ++	.text
 1.15490 ++	.global mfdr
 1.15491 ++mfdr:
 1.15492 ++	mfdr pc,0
 1.15493 ++	mfdr r12,1020
 1.15494 ++	mfdr r5,512
 1.15495 ++	mfdr r4,508
 1.15496 ++	mfdr lr,4
 1.15497 ++	mfdr r6,932
 1.15498 ++	mfdr r5,36
 1.15499 ++	mfdr r9,300
 1.15500 ++	.text
 1.15501 ++	.global mtdr
 1.15502 ++mtdr:
 1.15503 ++	mtdr 0,pc
 1.15504 ++	mtdr 1020,r12
 1.15505 ++	mtdr 512,r5
 1.15506 ++	mtdr 508,r4
 1.15507 ++	mtdr 4,lr
 1.15508 ++	mtdr 180,r8
 1.15509 ++	mtdr 720,r10
 1.15510 ++	mtdr 408,lr
 1.15511 ++	.text
 1.15512 ++	.global sleep
 1.15513 ++sleep:
 1.15514 ++	sleep 0
 1.15515 ++	sleep 255
 1.15516 ++	sleep 128
 1.15517 ++	sleep 127
 1.15518 ++	sleep 1
 1.15519 ++	sleep 254
 1.15520 ++	sleep 15
 1.15521 ++	sleep 43
 1.15522 ++	.text
 1.15523 ++	.global sync
 1.15524 ++sync:
 1.15525 ++	sync 0
 1.15526 ++	sync 255
 1.15527 ++	sync 128
 1.15528 ++	sync 127
 1.15529 ++	sync 1
 1.15530 ++	sync 166
 1.15531 ++	sync 230
 1.15532 ++	sync 180
 1.15533 ++	.text
 1.15534 ++	.global bld
 1.15535 ++bld:
 1.15536 ++	bld pc,0
 1.15537 ++	bld r12,31
 1.15538 ++	bld r5,16
 1.15539 ++	bld r4,15
 1.15540 ++	bld lr,1
 1.15541 ++	bld r9,15
 1.15542 ++	bld r0,4
 1.15543 ++	bld lr,26
 1.15544 ++	.text
 1.15545 ++	.global bst
 1.15546 ++bst:
 1.15547 ++	bst pc,0
 1.15548 ++	bst r12,31
 1.15549 ++	bst r5,16
 1.15550 ++	bst r4,15
 1.15551 ++	bst lr,1
 1.15552 ++	bst r10,28
 1.15553 ++	bst r0,3
 1.15554 ++	bst sp,2
 1.15555 ++	.text
 1.15556 ++	.global sats
 1.15557 ++sats:
 1.15558 ++	sats pc>>0,0
 1.15559 ++	sats r12>>31,31
 1.15560 ++	sats r5>>16,16
 1.15561 ++	sats r4>>15,15
 1.15562 ++	sats lr>>1,1
 1.15563 ++	sats r10>>3,19
 1.15564 ++	sats r10>>2,26
 1.15565 ++	sats r1>>20,1
 1.15566 ++	.text
 1.15567 ++	.global satu
 1.15568 ++satu:
 1.15569 ++	satu pc>>0,0
 1.15570 ++	satu r12>>31,31
 1.15571 ++	satu r5>>16,16
 1.15572 ++	satu r4>>15,15
 1.15573 ++	satu lr>>1,1
 1.15574 ++	satu pc>>5,7
 1.15575 ++	satu r7>>5,5
 1.15576 ++	satu r2>>26,19
 1.15577 ++	.text
 1.15578 ++	.global satrnds
 1.15579 ++satrnds:
 1.15580 ++	satrnds pc>>0,0
 1.15581 ++	satrnds r12>>31,31
 1.15582 ++	satrnds r5>>16,16
 1.15583 ++	satrnds r4>>15,15
 1.15584 ++	satrnds lr>>1,1
 1.15585 ++	satrnds r0>>21,19
 1.15586 ++	satrnds sp>>0,2
 1.15587 ++	satrnds r7>>6,29
 1.15588 ++	.text
 1.15589 ++	.global satrndu
 1.15590 ++satrndu:
 1.15591 ++	satrndu pc>>0,0
 1.15592 ++	satrndu r12>>31,31
 1.15593 ++	satrndu r5>>16,16
 1.15594 ++	satrndu r4>>15,15
 1.15595 ++	satrndu lr>>1,1
 1.15596 ++	satrndu r12>>0,26
 1.15597 ++	satrndu r4>>21,3
 1.15598 ++	satrndu r10>>3,16
 1.15599 ++	.text
 1.15600 ++	.global subfc
 1.15601 ++subfc:
 1.15602 ++	subfeq pc,0
 1.15603 ++	subfal r12,-1
 1.15604 ++	subfls r5,-128
 1.15605 ++	subfpl r4,127
 1.15606 ++	subfne lr,1
 1.15607 ++	subfls r10,8
 1.15608 ++	subfvc r11,99
 1.15609 ++	subfvs r2,73
 1.15610 ++	.text
 1.15611 ++	.global subc
 1.15612 ++subc:
 1.15613 ++	subeq pc,0
 1.15614 ++	subal r12,-1
 1.15615 ++	subls r5,-128
 1.15616 ++	subpl r4,127
 1.15617 ++	subne lr,1
 1.15618 ++	subls r12,118
 1.15619 ++	subvc lr,-12
 1.15620 ++	submi r4,-13
 1.15621 ++	.text
 1.15622 ++	.global movc2
 1.15623 ++movc2:
 1.15624 ++	moveq pc,0
 1.15625 ++	moval r12,-1
 1.15626 ++	movls r5,-128
 1.15627 ++	movpl r4,127
 1.15628 ++	movne lr,1
 1.15629 ++	movlt r3,-122
 1.15630 ++	movvc r8,2
 1.15631 ++	movne r7,-111
 1.15632 ++	.text
 1.15633 ++	.global cp_b
 1.15634 ++cp_b:
 1.15635 ++	cp.b pc,r0
 1.15636 ++	cp.b r0,pc
 1.15637 ++	cp.b r7,r8
 1.15638 ++	cp.b r8,r7
 1.15639 ++	.text
 1.15640 ++	.global cp_h
 1.15641 ++cp_h:
 1.15642 ++	cp.h pc,r0
 1.15643 ++	cp.h r0,pc
 1.15644 ++	cp.h r7,r8
 1.15645 ++	cp.h r8,r7
 1.15646 ++	.text
 1.15647 ++	.global ldm
 1.15648 ++ldm:
 1.15649 ++	ldm pc,r1-r6
 1.15650 ++	ldm r12,r0-r15
 1.15651 ++	ldm r5,r15
 1.15652 ++	ldm r4,r0-r14
 1.15653 ++	ldm lr,r0
 1.15654 ++	ldm r9,r1,r5,r14
 1.15655 ++	ldm r11,r2-r3,r5-r8,r15
 1.15656 ++	ldm r6,r0,r3,r9,r13,r15
 1.15657 ++	.text
 1.15658 ++	.global ldm_pu
 1.15659 ++ldm_pu:
 1.15660 ++	ldm pc++,r6-r9
 1.15661 ++	ldm r12++,r0-r15
 1.15662 ++	ldm r5++,r15
 1.15663 ++	ldm r4++,r0-r14
 1.15664 ++	ldm lr++,r0
 1.15665 ++	ldm r12++,r3-r5,r8,r10,r12,r14-r15
 1.15666 ++	ldm r10++,r2,r4-r6,r14-r15
 1.15667 ++	ldm r6++,r1,r3-r4,r9-r14
 1.15668 ++	.text
 1.15669 ++	.global ldmts
 1.15670 ++ldmts:
 1.15671 ++	ldmts pc,r7-r8
 1.15672 ++	ldmts r12,r0-r15
 1.15673 ++	ldmts r5,r15
 1.15674 ++	ldmts r4,r0-r14
 1.15675 ++	ldmts lr,r0
 1.15676 ++	ldmts r0,r1-r2,r11-r12
 1.15677 ++	ldmts lr,r0-r2,r4,r7-r8,r13-r14
 1.15678 ++	ldmts r12,r0-r1,r3-r5,r9,r14-r15
 1.15679 ++	.text
 1.15680 ++	.global ldmts_pu
 1.15681 ++ldmts_pu:
 1.15682 ++	ldmts pc++,r9
 1.15683 ++	ldmts r12++,r0-r15
 1.15684 ++	ldmts r5++,r15
 1.15685 ++	ldmts r4++,r0-r14
 1.15686 ++	ldmts lr++,r0
 1.15687 ++	ldmts sp++,r0,r2-r5,r7,r9,r11
 1.15688 ++	ldmts r5++,r1-r3,r7,r10-r11
 1.15689 ++	ldmts r8++,r2-r4,r7-r8,r13,r15
 1.15690 ++	.text
 1.15691 ++	.global stm
 1.15692 ++stm:
 1.15693 ++	stm pc,r7
 1.15694 ++	stm r12,r0-r15
 1.15695 ++	stm r5,r15
 1.15696 ++	stm r4,r0-r14
 1.15697 ++	stm lr,r0
 1.15698 ++	stm sp,r2-r3,r5,r8,r11,r14
 1.15699 ++	stm r4,r0-r4,r6,r10-r11,r14
 1.15700 ++	stm r9,r1,r5,r9,r12-r15
 1.15701 ++	.text
 1.15702 ++	.global stm_pu
 1.15703 ++stm_pu:
 1.15704 ++	stm --pc,r4-r6
 1.15705 ++	stm --r12,r0-r15
 1.15706 ++	stm --r5,r15
 1.15707 ++	stm --r4,r0-r14
 1.15708 ++	stm --lr,r0
 1.15709 ++	stm --r11,r0,r4-r9,r11-r15
 1.15710 ++	stm --r11,r0,r3,r9-r10,r12,r14
 1.15711 ++	stm --r6,r2,r8-r9,r13-r14
 1.15712 ++	.text
 1.15713 ++	.global stmts
 1.15714 ++stmts:
 1.15715 ++	stmts pc,r8
 1.15716 ++	stmts r12,r0-r15
 1.15717 ++	stmts r5,r15
 1.15718 ++	stmts r4,r0-r14
 1.15719 ++	stmts lr,r0
 1.15720 ++	stmts r1,r0-r1,r3-r4,r6,r9-r10,r14-r15
 1.15721 ++	stmts r3,r0,r6-r8,r10-r12
 1.15722 ++	stmts r11,r0,r4,r6-r7,r9-r10,r12,r14-r15
 1.15723 ++	.text
 1.15724 ++	.global stmts_pu
 1.15725 ++stmts_pu:
 1.15726 ++	stmts --pc,r6-r8
 1.15727 ++	stmts --r12,r0-r15
 1.15728 ++	stmts --r5,r15
 1.15729 ++	stmts --r4,r0-r14
 1.15730 ++	stmts --lr,r0
 1.15731 ++	stmts --r2,r0,r3-r4,r9-r10,r12-r13
 1.15732 ++	stmts --r3,r0-r1,r14-r15
 1.15733 ++	stmts --r0,r0,r2-r6,r10,r14
 1.15734 ++	.text
 1.15735 ++	.global ldins_h
 1.15736 ++ldins_h:
 1.15737 ++	ldins.h pc:b,pc[0]
 1.15738 ++	ldins.h r12:t,r12[-2]
 1.15739 ++	ldins.h r5:t,r5[-4096]
 1.15740 ++	ldins.h r4:b,r4[4094]
 1.15741 ++	ldins.h lr:t,lr[2]
 1.15742 ++	ldins.h r0:t,lr[1930]
 1.15743 ++	ldins.h r3:b,r7[-534]
 1.15744 ++	ldins.h r2:b,r12[-2252]
 1.15745 ++	.text
 1.15746 ++	.global ldins_b
 1.15747 ++ldins_b:
 1.15748 ++	ldins.b pc:b,pc[0]
 1.15749 ++	ldins.b r12:t,r12[-1]
 1.15750 ++	ldins.b r5:u,r5[-2048]
 1.15751 ++	ldins.b r4:l,r4[2047]
 1.15752 ++	ldins.b lr:l,lr[1]
 1.15753 ++	ldins.b r6:t,r4[-662]
 1.15754 ++	ldins.b r5:b,r1[-151]
 1.15755 ++	ldins.b r10:t,r11[-1923]
 1.15756 ++	.text
 1.15757 ++	.global ldswp_sh
 1.15758 ++ldswp_sh:
 1.15759 ++	ldswp.sh pc,pc[0]
 1.15760 ++	ldswp.sh r12,r12[-2]
 1.15761 ++	ldswp.sh r5,r5[-4096]
 1.15762 ++	ldswp.sh r4,r4[4094]
 1.15763 ++	ldswp.sh lr,lr[2]
 1.15764 ++	ldswp.sh r9,r10[3848]
 1.15765 ++	ldswp.sh r4,r12[-2040]
 1.15766 ++	ldswp.sh r10,r2[3088]
 1.15767 ++	.text
 1.15768 ++	.global ldswp_uh
 1.15769 ++ldswp_uh:
 1.15770 ++	ldswp.uh pc,pc[0]
 1.15771 ++	ldswp.uh r12,r12[-2]
 1.15772 ++	ldswp.uh r5,r5[-4096]
 1.15773 ++	ldswp.uh r4,r4[4094]
 1.15774 ++	ldswp.uh lr,lr[2]
 1.15775 ++	ldswp.uh r4,r9[3724]
 1.15776 ++	ldswp.uh lr,sp[-1672]
 1.15777 ++	ldswp.uh r8,r12[-3846]
 1.15778 ++	.text
 1.15779 ++	.global ldswp_w
 1.15780 ++ldswp_w:
 1.15781 ++	ldswp.w pc,pc[0]
 1.15782 ++	ldswp.w r12,r12[-4]
 1.15783 ++	ldswp.w r5,r5[-8192]
 1.15784 ++	ldswp.w r4,r4[8188]
 1.15785 ++	ldswp.w lr,lr[4]
 1.15786 ++	ldswp.w sp,r7[1860]
 1.15787 ++	ldswp.w pc,r5[-3324]
 1.15788 ++	ldswp.w r12,r10[-3296]
 1.15789 ++	.text
 1.15790 ++	.global stswp_h
 1.15791 ++stswp_h:
 1.15792 ++	stswp.h pc[0],pc
 1.15793 ++	stswp.h r12[-2],r12
 1.15794 ++	stswp.h r5[-4096],r5
 1.15795 ++	stswp.h r4[4094],r4
 1.15796 ++	stswp.h lr[2],lr
 1.15797 ++	stswp.h r7[64],r10
 1.15798 ++	stswp.h r10[3024],r2
 1.15799 ++	stswp.h r0[-2328],r10
 1.15800 ++	.text
 1.15801 ++	.global stswp_w
 1.15802 ++stswp_w:
 1.15803 ++	stswp.w pc[0],pc
 1.15804 ++	stswp.w r12[-4],r12
 1.15805 ++	stswp.w r5[-8192],r5
 1.15806 ++	stswp.w r4[8188],r4
 1.15807 ++	stswp.w lr[4],lr
 1.15808 ++	stswp.w pc[1156],r8
 1.15809 ++	stswp.w sp[7992],r10
 1.15810 ++	stswp.w r8[-1172],r5
 1.15811 ++	.text
 1.15812 ++	.global and2
 1.15813 ++and2:
 1.15814 ++	and pc,pc,pc<<0
 1.15815 ++	and r12,r12,r12<<31
 1.15816 ++	and r5,r5,r5<<16
 1.15817 ++	and r4,r4,r4<<15
 1.15818 ++	and lr,lr,lr<<1
 1.15819 ++	and r10,r2,r1<<1
 1.15820 ++	and r12,r8,r11<<27
 1.15821 ++	and r10,r7,r0<<3
 1.15822 ++	.text
 1.15823 ++	.global and3
 1.15824 ++and3:
 1.15825 ++	and pc,pc,pc>>0
 1.15826 ++	and r12,r12,r12>>31
 1.15827 ++	and r5,r5,r5>>16
 1.15828 ++	and r4,r4,r4>>15
 1.15829 ++	and lr,lr,lr>>1
 1.15830 ++	and r12,r8,r7>>17
 1.15831 ++	and pc,r4,r9>>20
 1.15832 ++	and r10,r9,r10>>12
 1.15833 ++	.text
 1.15834 ++	.global or2
 1.15835 ++or2:
 1.15836 ++	or pc,pc,pc<<0
 1.15837 ++	or r12,r12,r12<<31
 1.15838 ++	or r5,r5,r5<<16
 1.15839 ++	or r4,r4,r4<<15
 1.15840 ++	or lr,lr,lr<<1
 1.15841 ++	or r8,sp,r11<<29
 1.15842 ++	or pc,r9,r2<<28
 1.15843 ++	or r5,r1,r2<<3
 1.15844 ++	.text
 1.15845 ++	.global or3
 1.15846 ++or3:
 1.15847 ++	or pc,pc,pc>>0
 1.15848 ++	or r12,r12,r12>>31
 1.15849 ++	or r5,r5,r5>>16
 1.15850 ++	or r4,r4,r4>>15
 1.15851 ++	or lr,lr,lr>>1
 1.15852 ++	or r1,sp,sp>>2
 1.15853 ++	or r0,r1,r1>>29
 1.15854 ++	or r4,r12,r8>>8
 1.15855 ++	.text
 1.15856 ++	.global eor2
 1.15857 ++eor2:
 1.15858 ++	eor pc,pc,pc<<0
 1.15859 ++	eor r12,r12,r12<<31
 1.15860 ++	eor r5,r5,r5<<16
 1.15861 ++	eor r4,r4,r4<<15
 1.15862 ++	eor lr,lr,lr<<1
 1.15863 ++	eor r10,r9,r4<<11
 1.15864 ++	eor r4,r0,r1<<31
 1.15865 ++	eor r6,r2,r12<<13
 1.15866 ++	.text
 1.15867 ++	.global eor3
 1.15868 ++eor3:
 1.15869 ++	eor pc,pc,pc>>0
 1.15870 ++	eor r12,r12,r12>>31
 1.15871 ++	eor r5,r5,r5>>16
 1.15872 ++	eor r4,r4,r4>>15
 1.15873 ++	eor lr,lr,lr>>1
 1.15874 ++	eor r5,r5,r5>>22
 1.15875 ++	eor r10,r1,lr>>3
 1.15876 ++	eor r7,lr,sp>>26
 1.15877 ++	.text
 1.15878 ++	.global sthh_w2
 1.15879 ++sthh_w2:
 1.15880 ++	sthh.w pc[pc<<0],pc:b,pc:b
 1.15881 ++	sthh.w r12[r12<<3],r12:t,r12:t
 1.15882 ++	sthh.w r5[r5<<2],r5:t,r5:t
 1.15883 ++	sthh.w r4[r4<<1],r4:b,r4:b
 1.15884 ++	sthh.w lr[lr<<1],lr:t,lr:t
 1.15885 ++	sthh.w sp[r6<<3],r1:t,r12:t
 1.15886 ++	sthh.w r6[r6<<0],r9:t,r9:t
 1.15887 ++	sthh.w r10[r3<<0],r0:b,r11:t
 1.15888 ++	.text
 1.15889 ++	.global sthh_w1
 1.15890 ++sthh_w1:
 1.15891 ++	sthh.w pc[0],pc:b,pc:b
 1.15892 ++	sthh.w r12[1020],r12:t,r12:t
 1.15893 ++	sthh.w r5[512],r5:t,r5:t
 1.15894 ++	sthh.w r4[508],r4:b,r4:b
 1.15895 ++	sthh.w lr[4],lr:t,lr:t
 1.15896 ++	sthh.w r4[404],r9:t,r0:b
 1.15897 ++	sthh.w r8[348],r2:t,r10:b
 1.15898 ++	sthh.w sp[172],r9:b,r2:b
 1.15899 ++	.text
 1.15900 ++	.global cop
 1.15901 ++cop:
 1.15902 ++	cop cp0,cr0,cr0,cr0,0
 1.15903 ++	cop cp7,cr15,cr15,cr15,0x7f
 1.15904 ++	cop cp3,cr5,cr5,cr5,0x31
 1.15905 ++	cop cp2,cr4,cr4,cr4,0x30
 1.15906 ++	cop cp5,cr8,cr3,cr7,0x5a
 1.15907 ++	.text
 1.15908 ++	.global ldc_w1
 1.15909 ++ldc_w1:
 1.15910 ++	ldc.w cp0,cr0,r0[0]
 1.15911 ++	ldc.w cp7,cr15,pc[255<<2]
 1.15912 ++	ldc.w cp3,cr5,r5[128<<2]
 1.15913 ++	ldc.w cp2,cr4,r4[127<<2]
 1.15914 ++	ldc.w cp4,cr9,r13[36<<2]
 1.15915 ++	.text
 1.15916 ++	.global ldc_w2
 1.15917 ++ldc_w2:
 1.15918 ++	ldc.w cp0,cr0,--r0
 1.15919 ++	ldc.w cp7,cr15,--pc
 1.15920 ++	ldc.w cp3,cr5,--r5
 1.15921 ++	ldc.w cp2,cr4,--r4
 1.15922 ++	ldc.w cp4,cr9,--r13
 1.15923 ++	.text
 1.15924 ++	.global ldc_w3
 1.15925 ++ldc_w3:
 1.15926 ++	ldc.w cp0,cr0,r0[r0]
 1.15927 ++	ldc.w cp7,cr15,pc[pc<<3]
 1.15928 ++	ldc.w cp3,cr5,r5[r4<<2]
 1.15929 ++	ldc.w cp2,cr4,r4[r3<<1]
 1.15930 ++	ldc.w cp4,cr9,r13[r12<<0]
 1.15931 ++	.text
 1.15932 ++	.global ldc_d1
 1.15933 ++ldc_d1:
 1.15934 ++	ldc.d cp0,cr0,r0[0]
 1.15935 ++	ldc.d cp7,cr14,pc[255<<2]
 1.15936 ++	ldc.d cp3,cr6,r5[128<<2]
 1.15937 ++	ldc.d cp2,cr4,r4[127<<2]
 1.15938 ++	ldc.d cp4,cr8,r13[36<<2]
 1.15939 ++	.text
 1.15940 ++	.global ldc_d2
 1.15941 ++ldc_d2:
 1.15942 ++	ldc.d cp0,cr0,--r0
 1.15943 ++	ldc.d cp7,cr14,--pc
 1.15944 ++	ldc.d cp3,cr6,--r5
 1.15945 ++	ldc.d cp2,cr4,--r4
 1.15946 ++	ldc.d cp4,cr8,--r13
 1.15947 ++	.text
 1.15948 ++	.global ldc_d3
 1.15949 ++ldc_d3:
 1.15950 ++	ldc.d cp0,cr0,r0[r0]
 1.15951 ++	ldc.d cp7,cr14,pc[pc<<3]
 1.15952 ++	ldc.d cp3,cr6,r5[r4<<2]
 1.15953 ++	ldc.d cp2,cr4,r4[r3<<1]
 1.15954 ++	ldc.d cp4,cr8,r13[r12<<0]
 1.15955 ++	.text
 1.15956 ++	.global stc_w1
 1.15957 ++stc_w1:
 1.15958 ++	stc.w cp0,r0[0],cr0
 1.15959 ++	stc.w cp7,pc[255<<2],cr15
 1.15960 ++	stc.w cp3,r5[128<<2],cr5
 1.15961 ++	stc.w cp2,r4[127<<2],cr4
 1.15962 ++	stc.w cp4,r13[36<<2],cr9
 1.15963 ++	.text
 1.15964 ++	.global stc_w2
 1.15965 ++stc_w2:
 1.15966 ++	stc.w cp0,r0++,cr0
 1.15967 ++	stc.w cp7,pc++,cr15
 1.15968 ++	stc.w cp3,r5++,cr5
 1.15969 ++	stc.w cp2,r4++,cr4
 1.15970 ++	stc.w cp4,r13++,cr9
 1.15971 ++	.text
 1.15972 ++	.global stc_w3
 1.15973 ++stc_w3:
 1.15974 ++	stc.w cp0,r0[r0],cr0
 1.15975 ++	stc.w cp7,pc[pc<<3],cr15
 1.15976 ++	stc.w cp3,r5[r4<<2],cr5
 1.15977 ++	stc.w cp2,r4[r3<<1],cr4
 1.15978 ++	stc.w cp4,r13[r12<<0],cr9
 1.15979 ++	.text
 1.15980 ++	.global stc_d1
 1.15981 ++stc_d1:
 1.15982 ++	stc.d cp0,r0[0],cr0
 1.15983 ++	stc.d cp7,pc[255<<2],cr14
 1.15984 ++	stc.d cp3,r5[128<<2],cr6
 1.15985 ++	stc.d cp2,r4[127<<2],cr4
 1.15986 ++	stc.d cp4,r13[36<<2],cr8
 1.15987 ++	.text
 1.15988 ++	.global stc_d2
 1.15989 ++stc_d2:
 1.15990 ++	stc.d cp0,r0++,cr0
 1.15991 ++	stc.d cp7,pc++,cr14
 1.15992 ++	stc.d cp3,r5++,cr6
 1.15993 ++	stc.d cp2,r4++,cr4
 1.15994 ++	stc.d cp4,r13++,cr8
 1.15995 ++	.text
 1.15996 ++	.global stc_d3
 1.15997 ++stc_d3:
 1.15998 ++	stc.d cp0,r0[r0],cr0
 1.15999 ++	stc.d cp7,pc[pc<<3],cr14
 1.16000 ++	stc.d cp3,r5[r4<<2],cr6
 1.16001 ++	stc.d cp2,r4[r3<<1],cr4
 1.16002 ++	stc.d cp4,r13[r12<<0],cr8
 1.16003 ++	.text
 1.16004 ++	.global ldc0_w
 1.16005 ++ldc0_w:
 1.16006 ++	ldc0.w cr0,r0[0]
 1.16007 ++	ldc0.w cr15,pc[4095<<2]
 1.16008 ++	ldc0.w cr5,r5[2048<<2]
 1.16009 ++	ldc0.w cr4,r4[2047<<2]
 1.16010 ++	ldc0.w cr9,r13[147<<2]
 1.16011 ++	.text
 1.16012 ++	.global ldc0_d
 1.16013 ++ldc0_d:
 1.16014 ++	ldc0.d cr0,r0[0]
 1.16015 ++	ldc0.d cr14,pc[4095<<2]
 1.16016 ++	ldc0.d cr6,r5[2048<<2]
 1.16017 ++	ldc0.d cr4,r4[2047<<2]
 1.16018 ++	ldc0.d cr8,r13[147<<2]
 1.16019 ++	.text
 1.16020 ++	.global stc0_w
 1.16021 ++stc0_w:
 1.16022 ++	stc0.w r0[0],cr0
 1.16023 ++	stc0.w pc[4095<<2],cr15
 1.16024 ++	stc0.w r5[2048<<2],cr5
 1.16025 ++	stc0.w r4[2047<<2],cr4
 1.16026 ++	stc0.w r13[147<<2],cr9
 1.16027 ++	.text
 1.16028 ++	.global stc0_d
 1.16029 ++stc0_d:
 1.16030 ++	stc0.d r0[0],cr0
 1.16031 ++	stc0.d pc[4095<<2],cr14
 1.16032 ++	stc0.d r5[2048<<2],cr6
 1.16033 ++	stc0.d r4[2047<<2],cr4
 1.16034 ++	stc0.d r13[147<<2],cr8
 1.16035 ++	.text
 1.16036 ++	.global memc
 1.16037 ++memc:
 1.16038 ++	memc 0, 0
 1.16039 ++	memc -4, 31
 1.16040 ++	memc -65536, 16
 1.16041 ++	memc 65532, 15
 1.16042 ++	.text
 1.16043 ++	.global mems
 1.16044 ++mems:
 1.16045 ++	mems 0, 0
 1.16046 ++	mems -4, 31
 1.16047 ++	mems -65536, 16
 1.16048 ++	mems 65532, 15
 1.16049 ++	.text
 1.16050 ++	.global memt
 1.16051 ++memt:
 1.16052 ++	memt 0, 0
 1.16053 ++	memt -4, 31
 1.16054 ++	memt -65536, 16
 1.16055 ++	memt 65532, 15
 1.16056 ++
 1.16057 ++	.text
 1.16058 ++	.global stcond
 1.16059 ++stcond:
 1.16060 ++	stcond r0[0], r0
 1.16061 ++	stcond pc[-1], pc
 1.16062 ++	stcond r8[-32768], r7
 1.16063 ++	stcond r7[32767], r8
 1.16064 ++	stcond r5[0x1234], r10
 1.16065 ++
 1.16066 ++ldcm_w:
 1.16067 ++	ldcm.w cp0,pc,cr0-cr7
 1.16068 ++	ldcm.w cp7,r0,cr0
 1.16069 ++	ldcm.w cp4,r4++,cr0-cr6
 1.16070 ++	ldcm.w cp3,r7,cr7
 1.16071 ++	ldcm.w cp1,r12++,cr1,cr4-cr6
 1.16072 ++	ldcm.w cp0,pc,cr8-cr15
 1.16073 ++	ldcm.w cp7,r0,cr8
 1.16074 ++	ldcm.w cp4,r4++,cr8-cr14
 1.16075 ++	ldcm.w cp3,r7,cr15
 1.16076 ++	ldcm.w cp1,r12++,cr9,cr12-cr14
 1.16077 ++
 1.16078 ++ldcm_d:
 1.16079 ++	ldcm.d cp0,pc,cr0-cr15
 1.16080 ++	ldcm.d cp7,r0,cr0,cr1
 1.16081 ++	ldcm.d cp4,r4++,cr0-cr13
 1.16082 ++	ldcm.d cp3,r7,cr14-cr15
 1.16083 ++	ldcm.d cp2,r12++,cr0-cr3,cr8-cr9,cr14-cr15
 1.16084 ++
 1.16085 ++stcm_w:
 1.16086 ++	stcm.w cp0,pc,cr0-cr7
 1.16087 ++	stcm.w cp7,r0,cr0
 1.16088 ++	stcm.w cp4,--r4,cr0-cr6
 1.16089 ++	stcm.w cp3,r7,cr7
 1.16090 ++	stcm.w cp1,--r12,cr1,cr4-cr6
 1.16091 ++	stcm.w cp0,pc,cr8-cr15
 1.16092 ++	stcm.w cp7,r0,cr8
 1.16093 ++	stcm.w cp4,--r4,cr8-cr14
 1.16094 ++	stcm.w cp3,r7,cr15
 1.16095 ++	stcm.w cp1,--r12,cr9,cr12-cr14
 1.16096 ++
 1.16097 ++stcm_d:
 1.16098 ++	stcm.d cp0,pc,cr0-cr15
 1.16099 ++	stcm.d cp7,r0,cr0,cr1
 1.16100 ++	stcm.d cp4,--r4,cr0-cr13
 1.16101 ++	stcm.d cp3,r7,cr14-cr15
 1.16102 ++	stcm.d cp2,--r12,cr0-cr3,cr8-cr9,cr14-cr15
 1.16103 ++
 1.16104 ++mvcr_w:
 1.16105 ++	mvcr.w cp7,pc,cr15
 1.16106 ++	mvcr.w cp0,r0,cr0
 1.16107 ++	mvcr.w cp0,pc,cr15
 1.16108 ++	mvcr.w cp7,r0,cr15
 1.16109 ++	mvcr.w cp7,pc,cr0
 1.16110 ++	mvcr.w cp4,r7,cr8
 1.16111 ++	mvcr.w cp3,r8,cr7
 1.16112 ++
 1.16113 ++mvcr_d:
 1.16114 ++	mvcr.d cp7,lr,cr14
 1.16115 ++	mvcr.d cp0,r0,cr0
 1.16116 ++	mvcr.d cp0,lr,cr14
 1.16117 ++	mvcr.d cp7,r0,cr14
 1.16118 ++	mvcr.d cp7,lr,cr0
 1.16119 ++	mvcr.d cp4,r6,cr8
 1.16120 ++	mvcr.d cp3,r8,cr6
 1.16121 ++
 1.16122 ++mvrc_w:
 1.16123 ++	mvrc.w cp7,cr15,pc
 1.16124 ++	mvrc.w cp0,cr0,r0
 1.16125 ++	mvrc.w cp0,cr15,pc
 1.16126 ++	mvrc.w cp7,cr15,r0
 1.16127 ++	mvrc.w cp7,cr0,pc
 1.16128 ++	mvrc.w cp4,cr8,r7
 1.16129 ++	mvrc.w cp3,cr7,r8
 1.16130 ++
 1.16131 ++mvrc_d:
 1.16132 ++	mvrc.d cp7,cr14,lr
 1.16133 ++	mvrc.d cp0,cr0,r0
 1.16134 ++	mvrc.d cp0,cr14,lr
 1.16135 ++	mvrc.d cp7,cr14,r0
 1.16136 ++	mvrc.d cp7,cr0,lr
 1.16137 ++	mvrc.d cp4,cr8,r6
 1.16138 ++	mvrc.d cp3,cr6,r8
 1.16139 ++
 1.16140 ++bfexts:
 1.16141 ++	bfexts pc,pc,31,31
 1.16142 ++	bfexts r0,r0,0,0
 1.16143 ++	bfexts r0,pc,31,31
 1.16144 ++	bfexts pc,r0,31,31
 1.16145 ++	bfexts pc,pc,0,31
 1.16146 ++	bfexts pc,pc,31,0
 1.16147 ++	bfexts r7,r8,15,16
 1.16148 ++	bfexts r8,r7,16,15
 1.16149 ++
 1.16150 ++bfextu:
 1.16151 ++	bfextu pc,pc,31,31
 1.16152 ++	bfextu r0,r0,0,0
 1.16153 ++	bfextu r0,pc,31,31
 1.16154 ++	bfextu pc,r0,31,31
 1.16155 ++	bfextu pc,pc,0,31
 1.16156 ++	bfextu pc,pc,31,0
 1.16157 ++	bfextu r7,r8,15,16
 1.16158 ++	bfextu r8,r7,16,15
 1.16159 ++
 1.16160 ++bfins:
 1.16161 ++	bfins pc,pc,31,31
 1.16162 ++	bfins r0,r0,0,0
 1.16163 ++	bfins r0,pc,31,31
 1.16164 ++	bfins pc,r0,31,31
 1.16165 ++	bfins pc,pc,0,31
 1.16166 ++	bfins pc,pc,31,0
 1.16167 ++	bfins r7,r8,15,16
 1.16168 ++	bfins r8,r7,16,15
 1.16169 ++
 1.16170 ++rsubc:
 1.16171 ++	rsubeq pc,0
 1.16172 ++	rsubal r12,-1
 1.16173 ++	rsubls r5,-128
 1.16174 ++	rsubpl r4,127
 1.16175 ++	rsubne lr,1
 1.16176 ++	rsubls r12,118
 1.16177 ++	rsubvc lr,-12
 1.16178 ++	rsubmi r4,-13
 1.16179 ++
 1.16180 ++addc:
 1.16181 ++	addeq pc,pc,pc
 1.16182 ++	addal r12,r12,r12
 1.16183 ++	addls r5,r5,r5
 1.16184 ++	addpl r4,r4,r4
 1.16185 ++	addne lr,lr,lr
 1.16186 ++	addls r10,r2,r1
 1.16187 ++	addvc r12,r8,r11
 1.16188 ++	addmi r10,r7,r0   
 1.16189 ++
 1.16190 ++subc2:
 1.16191 ++	subeq pc,pc,pc
 1.16192 ++	subal r12,r12,r12
 1.16193 ++	subls r5,r5,r5
 1.16194 ++	subpl r4,r4,r4
 1.16195 ++	subne lr,lr,lr
 1.16196 ++	subls r10,r2,r1
 1.16197 ++	subvc r12,r8,r11
 1.16198 ++	submi r10,r7,r0   
 1.16199 ++
 1.16200 ++andc:
 1.16201 ++	andeq pc,pc,pc
 1.16202 ++	andal r12,r12,r12
 1.16203 ++	andls r5,r5,r5
 1.16204 ++	andpl r4,r4,r4
 1.16205 ++	andne lr,lr,lr
 1.16206 ++	andls r10,r2,r1
 1.16207 ++	andvc r12,r8,r11
 1.16208 ++	andmi r10,r7,r0   
 1.16209 ++
 1.16210 ++orc:
 1.16211 ++	oreq pc,pc,pc
 1.16212 ++	oral r12,r12,r12
 1.16213 ++	orls r5,r5,r5
 1.16214 ++	orpl r4,r4,r4
 1.16215 ++	orne lr,lr,lr
 1.16216 ++	orls r10,r2,r1
 1.16217 ++	orvc r12,r8,r11
 1.16218 ++	ormi r10,r7,r0   
 1.16219 ++
 1.16220 ++eorc:
 1.16221 ++	eoreq pc,pc,pc
 1.16222 ++	eoral r12,r12,r12
 1.16223 ++	eorls r5,r5,r5
 1.16224 ++	eorpl r4,r4,r4
 1.16225 ++	eorne lr,lr,lr
 1.16226 ++	eorls r10,r2,r1
 1.16227 ++	eorvc r12,r8,r11
 1.16228 ++	eormi r10,r7,r0   
 1.16229 ++
 1.16230 ++ldcond:
 1.16231 ++	ld.weq  pc,pc[2044]
 1.16232 ++	ld.shal r12,r12[1022]
 1.16233 ++	ld.uhls r5,r5[0]
 1.16234 ++	ld.ubpl r4,r4[511]
 1.16235 ++	ld.sbne lr,lr[0]
 1.16236 ++	ld.wls  r10,r2[0]
 1.16237 ++	ld.shvc r12,r8[0x3fe]
 1.16238 ++	ld.ubmi r10,r7[1]
 1.16239 ++  
 1.16240 ++stcond2:
 1.16241 ++	st.weq pc[2044],pc
 1.16242 ++	st.hal r12[1022],r12
 1.16243 ++	st.hls r5[0],r5
 1.16244 ++	st.bpl r4[511],r4
 1.16245 ++	st.bne lr[0],lr
 1.16246 ++	st.wls r2[0],r10
 1.16247 ++	st.hvc r8[0x3fe],r12
 1.16248 ++	st.bmi r7[1],r10
 1.16249 ++	
 1.16250 ++movh:	
 1.16251 ++	movh	pc, 65535
 1.16252 ++	movh	r0, 0
 1.16253 ++	movh	r5, 1
 1.16254 ++	movh	r12, 32767
 1.16255 ++	
 1.16256 ++		
 1.16257 +--- /dev/null
 1.16258 ++++ b/gas/testsuite/gas/avr32/avr32.exp
 1.16259 +@@ -0,0 +1,23 @@
 1.16260 ++# AVR32 assembler testsuite. -*- Tcl -*-
 1.16261 ++
 1.16262 ++if [istarget avr32-*-*] {
 1.16263 ++    run_dump_test "hwrd-lwrd"
 1.16264 ++    run_dump_test "pcrel"
 1.16265 ++    run_dump_test "aliases"
 1.16266 ++    run_dump_test "dwarf2"
 1.16267 ++    run_dump_test "pic_reloc"
 1.16268 ++    run_dump_test "fpinsn"
 1.16269 ++    run_dump_test "pico"
 1.16270 ++    run_dump_test "lda_pic"
 1.16271 ++    run_dump_test "lda_pic_linkrelax"
 1.16272 ++    run_dump_test "lda_nopic"
 1.16273 ++    run_dump_test "lda_nopic_linkrelax"
 1.16274 ++    run_dump_test "call_pic"
 1.16275 ++    run_dump_test "call_pic_linkrelax"
 1.16276 ++    run_dump_test "call_nopic"
 1.16277 ++    run_dump_test "call_nopic_linkrelax"
 1.16278 ++    run_dump_test "jmptable"
 1.16279 ++    run_dump_test "jmptable_linkrelax"
 1.16280 ++    run_dump_test "symdiff"
 1.16281 ++    run_dump_test "symdiff_linkrelax"
 1.16282 ++}
 1.16283 +--- /dev/null
 1.16284 ++++ b/gas/testsuite/gas/avr32/call_nopic.d
 1.16285 +@@ -0,0 +1,36 @@
 1.16286 ++#source: call.s
 1.16287 ++#as:
 1.16288 ++#objdump: -dr
 1.16289 ++#name: call_nopic
 1.16290 ++
 1.16291 ++.*: +file format .*
 1.16292 ++
 1.16293 ++Disassembly of section \.text:
 1.16294 ++
 1.16295 ++00000000 <call_test>:
 1.16296 ++       0:	d7 03       	nop
 1.16297 ++
 1.16298 ++00000002 <toofar_negative>:
 1.16299 ++	\.\.\.
 1.16300 ++  1ffffe:	00 00       	add r0,r0
 1.16301 ++  200000:	f0 a0 00 00 	rcall 0 <call_test>
 1.16302 ++  200004:	f0 1f 00 0c 	mcall 200034 <toofar_negative\+0x200032>
 1.16303 ++  200008:	f0 1f 00 0c 	mcall 200038 <toofar_negative\+0x200036>
 1.16304 ++  20000c:	f0 1f 00 0c 	mcall 20003c <toofar_negative\+0x20003a>
 1.16305 ++  200010:	f0 1f 00 0c 	mcall 200040 <toofar_negative\+0x20003e>
 1.16306 ++	\.\.\.
 1.16307 ++  200030:	ee b0 ff ff 	rcall 40002e <far_positive>
 1.16308 ++	\.\.\.
 1.16309 ++			200034: R_AVR32_32_CPENT	\.text\+0x2
 1.16310 ++			200038: R_AVR32_32_CPENT	\.text\.init
 1.16311 ++			20003c: R_AVR32_32_CPENT	undefined
 1.16312 ++			200040: R_AVR32_32_CPENT	\.text\+0x40002c
 1.16313 ++
 1.16314 ++0040002c <toofar_positive>:
 1.16315 ++  40002c:	d7 03       	nop
 1.16316 ++0040002e <far_positive>:
 1.16317 ++  40002e:	d7 03       	nop
 1.16318 ++Disassembly of section \.text\.init:
 1.16319 ++
 1.16320 ++00000000 <different_section>:
 1.16321 ++   0:	e2 c0 00 00 	sub r0,r1,0
 1.16322 +--- /dev/null
 1.16323 ++++ b/gas/testsuite/gas/avr32/call_nopic_linkrelax.d
 1.16324 +@@ -0,0 +1,43 @@
 1.16325 ++#source: call.s
 1.16326 ++#as: --linkrelax
 1.16327 ++#objdump: -dr
 1.16328 ++#name: call_nopic_linkrelax
 1.16329 ++
 1.16330 ++.*: +file format .*
 1.16331 ++
 1.16332 ++Disassembly of section \.text:
 1.16333 ++
 1.16334 ++00000000 <call_test>:
 1.16335 ++       0:	d7 03       	nop
 1.16336 ++
 1.16337 ++00000002 <toofar_negative>:
 1.16338 ++	\.\.\.
 1.16339 ++  1ffffe:	00 00       	add r0,r0
 1.16340 ++  200000:	e0 a0 00 00 	rcall 200000 <toofar_negative\+0x1ffffe>
 1.16341 ++			200000: R_AVR32_22H_PCREL	\.text
 1.16342 ++  200004:	f0 1f 00 00 	mcall 200004 <toofar_negative\+0x200002>
 1.16343 ++			200004: R_AVR32_CPCALL	\.text\+0x200034
 1.16344 ++  200008:	f0 1f 00 00 	mcall 200008 <toofar_negative\+0x200006>
 1.16345 ++			200008: R_AVR32_CPCALL	\.text\+0x200038
 1.16346 ++  20000c:	f0 1f 00 00 	mcall 20000c <toofar_negative\+0x20000a>
 1.16347 ++			20000c: R_AVR32_CPCALL	\.text\+0x20003c
 1.16348 ++  200010:	f0 1f 00 00 	mcall 200010 <toofar_negative\+0x20000e>
 1.16349 ++			200010: R_AVR32_CPCALL	\.text\+0x200040
 1.16350 ++	\.\.\.
 1.16351 ++  200030:	e0 a0 00 00 	rcall 200030 <toofar_negative\+0x20002e>
 1.16352 ++			200030: R_AVR32_22H_PCREL	\.text\+0x40002e
 1.16353 ++	\.\.\.
 1.16354 ++			200034: R_AVR32_ALIGN	\*ABS\*\+0x2
 1.16355 ++			200034: R_AVR32_32_CPENT	\.text\+0x2
 1.16356 ++			200038: R_AVR32_32_CPENT	\.text\.init
 1.16357 ++			20003c: R_AVR32_32_CPENT	undefined
 1.16358 ++			200040: R_AVR32_32_CPENT	\.text\+0x40002c
 1.16359 ++
 1.16360 ++0040002c <toofar_positive>:
 1.16361 ++  40002c:	d7 03       	nop
 1.16362 ++0040002e <far_positive>:
 1.16363 ++  40002e:	d7 03       	nop
 1.16364 ++Disassembly of section \.text\.init:
 1.16365 ++
 1.16366 ++00000000 <different_section>:
 1.16367 ++   0:	e2 c0 00 00 	sub r0,r1,0
 1.16368 +--- /dev/null
 1.16369 ++++ b/gas/testsuite/gas/avr32/call_pic.d
 1.16370 +@@ -0,0 +1,36 @@
 1.16371 ++#source: call.s
 1.16372 ++#as: --pic
 1.16373 ++#objdump: -dr
 1.16374 ++#name: call_pic
 1.16375 ++
 1.16376 ++.*: +file format .*
 1.16377 ++
 1.16378 ++Disassembly of section \.text:
 1.16379 ++
 1.16380 ++00000000 <call_test>:
 1.16381 ++       0:	d7 03       	nop
 1.16382 ++
 1.16383 ++00000002 <toofar_negative>:
 1.16384 ++	\.\.\.
 1.16385 ++  1ffffe:	00 00       	add r0,r0
 1.16386 ++  200000:	f0 a0 00 00 	rcall 0 <call_test>
 1.16387 ++  200004:	f0 16 00 00 	mcall r6\[0\]
 1.16388 ++			200004: R_AVR32_GOT18SW	toofar_negative
 1.16389 ++  200008:	f0 16 00 00 	mcall r6\[0\]
 1.16390 ++			200008: R_AVR32_GOT18SW	different_section
 1.16391 ++  20000c:	f0 16 00 00 	mcall r6\[0\]
 1.16392 ++			20000c: R_AVR32_GOT18SW	undefined
 1.16393 ++  200010:	f0 16 00 00 	mcall r6\[0\]
 1.16394 ++			200010: R_AVR32_GOT18SW	toofar_positive
 1.16395 ++	\.\.\.
 1.16396 ++  200030:	ee b0 ff ff 	rcall 40002e <far_positive>
 1.16397 ++	\.\.\.
 1.16398 ++
 1.16399 ++0040002c <toofar_positive>:
 1.16400 ++  40002c:	d7 03       	nop
 1.16401 ++0040002e <far_positive>:
 1.16402 ++  40002e:	d7 03       	nop
 1.16403 ++Disassembly of section \.text\.init:
 1.16404 ++
 1.16405 ++00000000 <different_section>:
 1.16406 ++   0:	e2 c0 00 00 	sub r0,r1,0
 1.16407 +--- /dev/null
 1.16408 ++++ b/gas/testsuite/gas/avr32/call_pic_linkrelax.d
 1.16409 +@@ -0,0 +1,47 @@
 1.16410 ++#source: call.s
 1.16411 ++#as: --pic --linkrelax
 1.16412 ++#objdump: -dr
 1.16413 ++#name: call_pic_linkrelax
 1.16414 ++
 1.16415 ++.*: +file format .*
 1.16416 ++
 1.16417 ++Disassembly of section \.text:
 1.16418 ++
 1.16419 ++00000000 <call_test>:
 1.16420 ++       0:	d7 03       	nop
 1.16421 ++
 1.16422 ++00000002 <toofar_negative>:
 1.16423 ++	\.\.\.
 1.16424 ++  1ffffe:	00 00       	add r0,r0
 1.16425 ++  200000:	e0 a0 00 00 	rcall 200000 <toofar_negative\+0x1ffffe>
 1.16426 ++			200000: R_AVR32_22H_PCREL	\.text
 1.16427 ++  200004:	e0 6e 00 00 	mov lr,0
 1.16428 ++			200004: R_AVR32_GOTCALL	toofar_negative
 1.16429 ++  200008:	ec 0e 03 2e 	ld\.w lr,r6\[lr<<0x2\]
 1.16430 ++  20000c:	5d 1e       	icall lr
 1.16431 ++  20000e:	e0 6e 00 00 	mov lr,0
 1.16432 ++			20000e: R_AVR32_GOTCALL	different_section
 1.16433 ++  200012:	ec 0e 03 2e 	ld\.w lr,r6\[lr<<0x2\]
 1.16434 ++  200016:	5d 1e       	icall lr
 1.16435 ++  200018:	e0 6e 00 00 	mov lr,0
 1.16436 ++			200018: R_AVR32_GOTCALL	undefined
 1.16437 ++  20001c:	ec 0e 03 2e 	ld\.w lr,r6\[lr<<0x2\]
 1.16438 ++  200020:	5d 1e       	icall lr
 1.16439 ++  200022:	e0 6e 00 00 	mov lr,0
 1.16440 ++			200022: R_AVR32_GOTCALL	toofar_positive
 1.16441 ++  200026:	ec 0e 03 2e 	ld\.w lr,r6\[lr<<0x2\]
 1.16442 ++  20002a:	5d 1e       	icall lr
 1.16443 ++  20002c:	00 00       	add r0,r0
 1.16444 ++  20002e:	00 00       	add r0,r0
 1.16445 ++  200030:	e0 a0 00 00 	rcall 200030 <toofar_negative\+0x20002e>
 1.16446 ++			200030: R_AVR32_22H_PCREL	\.text\+0x40002e
 1.16447 ++	\.\.\.
 1.16448 ++
 1.16449 ++0040002c <toofar_positive>:
 1.16450 ++  40002c:	d7 03       	nop
 1.16451 ++0040002e <far_positive>:
 1.16452 ++  40002e:	d7 03       	nop
 1.16453 ++Disassembly of section \.text\.init:
 1.16454 ++
 1.16455 ++00000000 <different_section>:
 1.16456 ++   0:	e2 c0 00 00 	sub r0,r1,0
 1.16457 +--- /dev/null
 1.16458 ++++ b/gas/testsuite/gas/avr32/call.s
 1.16459 +@@ -0,0 +1,30 @@
 1.16460 ++
 1.16461 ++	.text
 1.16462 ++	.global call_test
 1.16463 ++call_test:
 1.16464 ++far_negative:
 1.16465 ++	nop
 1.16466 ++toofar_negative:
 1.16467 ++
 1.16468 ++	.org	0x200000
 1.16469 ++
 1.16470 ++	call	far_negative
 1.16471 ++	call	toofar_negative
 1.16472 ++	call	different_section
 1.16473 ++	call	undefined
 1.16474 ++	call	toofar_positive
 1.16475 ++	.org	0x200030
 1.16476 ++	call	far_positive
 1.16477 ++
 1.16478 ++	.cpool
 1.16479 ++
 1.16480 ++	.org	0x40002c
 1.16481 ++
 1.16482 ++toofar_positive:
 1.16483 ++	nop
 1.16484 ++far_positive:
 1.16485 ++	nop
 1.16486 ++
 1.16487 ++	.section .text.init,"ax",@progbits
 1.16488 ++different_section:
 1.16489 ++	sub	r0, r1, 0
 1.16490 +--- /dev/null
 1.16491 ++++ b/gas/testsuite/gas/avr32/dwarf2.d
 1.16492 +@@ -0,0 +1,42 @@
 1.16493 ++#readelf: -wl
 1.16494 ++#name: dwarf2
 1.16495 ++#source: dwarf2.s
 1.16496 ++
 1.16497 ++Dump of debug contents of section \.debug_line:
 1.16498 ++
 1.16499 ++  Length:                      53
 1.16500 ++  DWARF Version:               2
 1.16501 ++  Prologue Length:             26
 1.16502 ++  Minimum Instruction Length:  1
 1.16503 ++  Initial value of 'is_stmt':  1
 1.16504 ++  Line Base:                   -5
 1.16505 ++  Line Range:                  14
 1.16506 ++  Opcode Base:                 10
 1.16507 ++  \(Pointer size:               4\)
 1.16508 ++
 1.16509 ++ Opcodes:
 1.16510 ++  Opcode 1 has 0 args
 1.16511 ++  Opcode 2 has 1 args
 1.16512 ++  Opcode 3 has 1 args
 1.16513 ++  Opcode 4 has 1 args
 1.16514 ++  Opcode 5 has 1 args
 1.16515 ++  Opcode 6 has 0 args
 1.16516 ++  Opcode 7 has 0 args
 1.16517 ++  Opcode 8 has 0 args
 1.16518 ++  Opcode 9 has 1 args
 1.16519 ++
 1.16520 ++ The Directory Table is empty\.
 1.16521 ++
 1.16522 ++ The File Name Table:
 1.16523 ++  Entry	Dir	Time	Size	Name
 1.16524 ++  1	0	0	0	main\.c
 1.16525 ++
 1.16526 ++ Line Number Statements:
 1.16527 ++  Extended opcode 2: set Address to 0x0
 1.16528 ++  Advance Line by 87 to 88
 1.16529 ++  Copy
 1.16530 ++  Advance Line by 23 to 111
 1.16531 ++  Special opcode .*: advance Address by 4 to 0x4 and Line by 0 to 111
 1.16532 ++  Special opcode .*: advance Address by 10 to 0xe and Line by 1 to 112
 1.16533 ++  Advance PC by 530 to 220
 1.16534 ++  Extended opcode 1: End of Sequence
 1.16535 +--- /dev/null
 1.16536 ++++ b/gas/testsuite/gas/avr32/dwarf2.s
 1.16537 +@@ -0,0 +1,67 @@
 1.16538 ++# Source file used to test DWARF2 information for AVR32.
 1.16539 ++
 1.16540 ++	.file	"main.c"
 1.16541 ++
 1.16542 ++	.section .debug_abbrev,"",@progbits
 1.16543 ++.Ldebug_abbrev0:
 1.16544 ++	.section .debug_info,"",@progbits
 1.16545 ++.Ldebug_info0:
 1.16546 ++	.section .debug_line,"",@progbits
 1.16547 ++.Ldebug_line0:
 1.16548 ++
 1.16549 ++	.text
 1.16550 ++	.align	1
 1.16551 ++	.globl	main
 1.16552 ++	.type	main, @function
 1.16553 ++.Ltext0:
 1.16554 ++main:
 1.16555 ++	.file 1 "main.c"
 1.16556 ++	.loc 1 88 0
 1.16557 ++	pushm	r0-r7,lr
 1.16558 ++	sub	sp, 4
 1.16559 ++	.loc 1 111 0
 1.16560 ++	lddpc	r12, .LC1
 1.16561 ++	lddpc	r7, .LC1
 1.16562 ++	icall	r7
 1.16563 ++	.loc 1 112 0
 1.16564 ++	lddpc	r6, .LC4
 1.16565 ++
 1.16566 ++	.align	2
 1.16567 ++.LC4:	.int	0
 1.16568 ++
 1.16569 ++	.fill	256, 2, 0
 1.16570 ++
 1.16571 ++	.align	2
 1.16572 ++.LC1:
 1.16573 ++	.int	0
 1.16574 ++.LC2:
 1.16575 ++	.int	0
 1.16576 ++.LC3:
 1.16577 ++	.int	0
 1.16578 ++	.size	main, . - main
 1.16579 ++
 1.16580 ++.Letext0:
 1.16581 ++
 1.16582 ++	.section .debug_info
 1.16583 ++	.int	.Ledebug_info0 - .Ldebug_info0	// size
 1.16584 ++	.short	2				// version
 1.16585 ++	.int	.Ldebug_abbrev0			// abbrev offset
 1.16586 ++	.byte	4				// bytes per addr
 1.16587 ++
 1.16588 ++	.uleb128 1				// abbrev 1
 1.16589 ++	.int	.Ldebug_line0			// DW_AT_stmt_list
 1.16590 ++	.int	.Letext0			// DW_AT_high_pc
 1.16591 ++	.int	.Ltext0				// DW_AT_low_pc
 1.16592 ++
 1.16593 ++.Ledebug_info0:
 1.16594 ++
 1.16595 ++	.section .debug_abbrev
 1.16596 ++	.uleb128 0x01
 1.16597 ++	.uleb128 0x11		// DW_TAG_compile_unit
 1.16598 ++	.byte	0		// DW_CHILDREN_no
 1.16599 ++	.uleb128 0x10, 0x6	// DW_AT_stmt_list
 1.16600 ++	.uleb128 0x12, 0x1	// DW_AT_high_pc
 1.16601 ++	.uleb128 0x11, 0x1	// DW_AT_low_pc
 1.16602 ++	.uleb128 0, 0
 1.16603 ++
 1.16604 ++	.byte	0
 1.16605 +--- /dev/null
 1.16606 ++++ b/gas/testsuite/gas/avr32/fpinsn.d
 1.16607 +@@ -0,0 +1,271 @@
 1.16608 ++#as:
 1.16609 ++#objdump: -dr
 1.16610 ++#name: fpinsn
 1.16611 ++
 1.16612 ++.*: +file format .*
 1.16613 ++
 1.16614 ++Disassembly of section \.text:
 1.16615 ++
 1.16616 ++[0-9a-f]* <fadd_s>:
 1.16617 ++ *[0-9a-f]*:	e1 a2 0f ff 	cop cp0,cr15,cr15,cr15,0x4
 1.16618 ++ *[0-9a-f]*:	e1 a2 00 00 	cop cp0,cr0,cr0,cr0,0x4
 1.16619 ++ *[0-9a-f]*:	e1 a2 00 ff 	cop cp0,cr0,cr15,cr15,0x4
 1.16620 ++ *[0-9a-f]*:	e1 a2 0f 0f 	cop cp0,cr15,cr0,cr15,0x4
 1.16621 ++ *[0-9a-f]*:	e1 a2 0f f0 	cop cp0,cr15,cr15,cr0,0x4
 1.16622 ++ *[0-9a-f]*:	e1 a2 07 88 	cop cp0,cr7,cr8,cr8,0x4
 1.16623 ++ *[0-9a-f]*:	e1 a2 08 78 	cop cp0,cr8,cr7,cr8,0x4
 1.16624 ++ *[0-9a-f]*:	e1 a2 08 87 	cop cp0,cr8,cr8,cr7,0x4
 1.16625 ++
 1.16626 ++[0-9a-f]* <fsub_s>:
 1.16627 ++ *[0-9a-f]*:	e1 a2 1f ff 	cop cp0,cr15,cr15,cr15,0x5
 1.16628 ++ *[0-9a-f]*:	e1 a2 10 00 	cop cp0,cr0,cr0,cr0,0x5
 1.16629 ++ *[0-9a-f]*:	e1 a2 10 ff 	cop cp0,cr0,cr15,cr15,0x5
 1.16630 ++ *[0-9a-f]*:	e1 a2 1f 0f 	cop cp0,cr15,cr0,cr15,0x5
 1.16631 ++ *[0-9a-f]*:	e1 a2 1f f0 	cop cp0,cr15,cr15,cr0,0x5
 1.16632 ++ *[0-9a-f]*:	e1 a2 17 88 	cop cp0,cr7,cr8,cr8,0x5
 1.16633 ++ *[0-9a-f]*:	e1 a2 18 78 	cop cp0,cr8,cr7,cr8,0x5
 1.16634 ++ *[0-9a-f]*:	e1 a2 18 87 	cop cp0,cr8,cr8,cr7,0x5
 1.16635 ++
 1.16636 ++[0-9a-f]* <fmac_s>:
 1.16637 ++ *[0-9a-f]*:	e1 a0 0f ff 	cop cp0,cr15,cr15,cr15,0x0
 1.16638 ++ *[0-9a-f]*:	e1 a0 00 00 	cop cp0,cr0,cr0,cr0,0x0
 1.16639 ++ *[0-9a-f]*:	e1 a0 00 ff 	cop cp0,cr0,cr15,cr15,0x0
 1.16640 ++ *[0-9a-f]*:	e1 a0 0f 0f 	cop cp0,cr15,cr0,cr15,0x0
 1.16641 ++ *[0-9a-f]*:	e1 a0 0f f0 	cop cp0,cr15,cr15,cr0,0x0
 1.16642 ++ *[0-9a-f]*:	e1 a0 07 88 	cop cp0,cr7,cr8,cr8,0x0
 1.16643 ++ *[0-9a-f]*:	e1 a0 08 78 	cop cp0,cr8,cr7,cr8,0x0
 1.16644 ++ *[0-9a-f]*:	e1 a0 08 87 	cop cp0,cr8,cr8,cr7,0x0
 1.16645 ++
 1.16646 ++[0-9a-f]* <fnmac_s>:
 1.16647 ++ *[0-9a-f]*:	e1 a0 1f ff 	cop cp0,cr15,cr15,cr15,0x1
 1.16648 ++ *[0-9a-f]*:	e1 a0 10 00 	cop cp0,cr0,cr0,cr0,0x1
 1.16649 ++ *[0-9a-f]*:	e1 a0 10 ff 	cop cp0,cr0,cr15,cr15,0x1
 1.16650 ++ *[0-9a-f]*:	e1 a0 1f 0f 	cop cp0,cr15,cr0,cr15,0x1
 1.16651 ++ *[0-9a-f]*:	e1 a0 1f f0 	cop cp0,cr15,cr15,cr0,0x1
 1.16652 ++ *[0-9a-f]*:	e1 a0 17 88 	cop cp0,cr7,cr8,cr8,0x1
 1.16653 ++ *[0-9a-f]*:	e1 a0 18 78 	cop cp0,cr8,cr7,cr8,0x1
 1.16654 ++ *[0-9a-f]*:	e1 a0 18 87 	cop cp0,cr8,cr8,cr7,0x1
 1.16655 ++
 1.16656 ++[0-9a-f]* <fmsc_s>:
 1.16657 ++ *[0-9a-f]*:	e1 a1 0f ff 	cop cp0,cr15,cr15,cr15,0x2
 1.16658 ++ *[0-9a-f]*:	e1 a1 00 00 	cop cp0,cr0,cr0,cr0,0x2
 1.16659 ++ *[0-9a-f]*:	e1 a1 00 ff 	cop cp0,cr0,cr15,cr15,0x2
 1.16660 ++ *[0-9a-f]*:	e1 a1 0f 0f 	cop cp0,cr15,cr0,cr15,0x2
 1.16661 ++ *[0-9a-f]*:	e1 a1 0f f0 	cop cp0,cr15,cr15,cr0,0x2
 1.16662 ++ *[0-9a-f]*:	e1 a1 07 88 	cop cp0,cr7,cr8,cr8,0x2
 1.16663 ++ *[0-9a-f]*:	e1 a1 08 78 	cop cp0,cr8,cr7,cr8,0x2
 1.16664 ++ *[0-9a-f]*:	e1 a1 08 87 	cop cp0,cr8,cr8,cr7,0x2
 1.16665 ++
 1.16666 ++[0-9a-f]* <fnmsc_s>:
 1.16667 ++ *[0-9a-f]*:	e1 a1 1f ff 	cop cp0,cr15,cr15,cr15,0x3
 1.16668 ++ *[0-9a-f]*:	e1 a1 10 00 	cop cp0,cr0,cr0,cr0,0x3
 1.16669 ++ *[0-9a-f]*:	e1 a1 10 ff 	cop cp0,cr0,cr15,cr15,0x3
 1.16670 ++ *[0-9a-f]*:	e1 a1 1f 0f 	cop cp0,cr15,cr0,cr15,0x3
 1.16671 ++ *[0-9a-f]*:	e1 a1 1f f0 	cop cp0,cr15,cr15,cr0,0x3
 1.16672 ++ *[0-9a-f]*:	e1 a1 17 88 	cop cp0,cr7,cr8,cr8,0x3
 1.16673 ++ *[0-9a-f]*:	e1 a1 18 78 	cop cp0,cr8,cr7,cr8,0x3
 1.16674 ++ *[0-9a-f]*:	e1 a1 18 87 	cop cp0,cr8,cr8,cr7,0x3
 1.16675 ++
 1.16676 ++[0-9a-f]* <fmul_s>:
 1.16677 ++ *[0-9a-f]*:	e1 a3 0f ff 	cop cp0,cr15,cr15,cr15,0x6
 1.16678 ++ *[0-9a-f]*:	e1 a3 00 00 	cop cp0,cr0,cr0,cr0,0x6
 1.16679 ++ *[0-9a-f]*:	e1 a3 00 ff 	cop cp0,cr0,cr15,cr15,0x6
 1.16680 ++ *[0-9a-f]*:	e1 a3 0f 0f 	cop cp0,cr15,cr0,cr15,0x6
 1.16681 ++ *[0-9a-f]*:	e1 a3 0f f0 	cop cp0,cr15,cr15,cr0,0x6
 1.16682 ++ *[0-9a-f]*:	e1 a3 07 88 	cop cp0,cr7,cr8,cr8,0x6
 1.16683 ++ *[0-9a-f]*:	e1 a3 08 78 	cop cp0,cr8,cr7,cr8,0x6
 1.16684 ++ *[0-9a-f]*:	e1 a3 08 87 	cop cp0,cr8,cr8,cr7,0x6
 1.16685 ++
 1.16686 ++[0-9a-f]* <fnmul_s>:
 1.16687 ++ *[0-9a-f]*:	e1 a3 1f ff 	cop cp0,cr15,cr15,cr15,0x7
 1.16688 ++ *[0-9a-f]*:	e1 a3 10 00 	cop cp0,cr0,cr0,cr0,0x7
 1.16689 ++ *[0-9a-f]*:	e1 a3 10 ff 	cop cp0,cr0,cr15,cr15,0x7
 1.16690 ++ *[0-9a-f]*:	e1 a3 1f 0f 	cop cp0,cr15,cr0,cr15,0x7
 1.16691 ++ *[0-9a-f]*:	e1 a3 1f f0 	cop cp0,cr15,cr15,cr0,0x7
 1.16692 ++ *[0-9a-f]*:	e1 a3 17 88 	cop cp0,cr7,cr8,cr8,0x7
 1.16693 ++ *[0-9a-f]*:	e1 a3 18 78 	cop cp0,cr8,cr7,cr8,0x7
 1.16694 ++ *[0-9a-f]*:	e1 a3 18 87 	cop cp0,cr8,cr8,cr7,0x7
 1.16695 ++
 1.16696 ++[0-9a-f]* <fneg_s>:
 1.16697 ++ *[0-9a-f]*:	e1 a4 0f f0 	cop cp0,cr15,cr15,cr0,0x8
 1.16698 ++ *[0-9a-f]*:	e1 a4 00 00 	cop cp0,cr0,cr0,cr0,0x8
 1.16699 ++ *[0-9a-f]*:	e1 a4 00 f0 	cop cp0,cr0,cr15,cr0,0x8
 1.16700 ++ *[0-9a-f]*:	e1 a4 0f 00 	cop cp0,cr15,cr0,cr0,0x8
 1.16701 ++ *[0-9a-f]*:	e1 a4 07 80 	cop cp0,cr7,cr8,cr0,0x8
 1.16702 ++ *[0-9a-f]*:	e1 a4 08 70 	cop cp0,cr8,cr7,cr0,0x8
 1.16703 ++
 1.16704 ++[0-9a-f]* <fabs_s>:
 1.16705 ++ *[0-9a-f]*:	e1 a4 1f f0 	cop cp0,cr15,cr15,cr0,0x9
 1.16706 ++ *[0-9a-f]*:	e1 a4 10 00 	cop cp0,cr0,cr0,cr0,0x9
 1.16707 ++ *[0-9a-f]*:	e1 a4 10 f0 	cop cp0,cr0,cr15,cr0,0x9
 1.16708 ++ *[0-9a-f]*:	e1 a4 1f 00 	cop cp0,cr15,cr0,cr0,0x9
 1.16709 ++ *[0-9a-f]*:	e1 a4 17 80 	cop cp0,cr7,cr8,cr0,0x9
 1.16710 ++ *[0-9a-f]*:	e1 a4 18 70 	cop cp0,cr8,cr7,cr0,0x9
 1.16711 ++
 1.16712 ++[0-9a-f]* <fcmp_s>:
 1.16713 ++ *[0-9a-f]*:	e1 a6 10 ff 	cop cp0,cr0,cr15,cr15,0xd
 1.16714 ++ *[0-9a-f]*:	e1 a6 10 00 	cop cp0,cr0,cr0,cr0,0xd
 1.16715 ++ *[0-9a-f]*:	e1 a6 10 0f 	cop cp0,cr0,cr0,cr15,0xd
 1.16716 ++ *[0-9a-f]*:	e1 a6 10 f0 	cop cp0,cr0,cr15,cr0,0xd
 1.16717 ++ *[0-9a-f]*:	e1 a6 10 78 	cop cp0,cr0,cr7,cr8,0xd
 1.16718 ++ *[0-9a-f]*:	e1 a6 10 87 	cop cp0,cr0,cr8,cr7,0xd
 1.16719 ++
 1.16720 ++[0-9a-f]* <fadd_d>:
 1.16721 ++ *[0-9a-f]*:	e5 a2 0e ee 	cop cp0,cr14,cr14,cr14,0x44
 1.16722 ++ *[0-9a-f]*:	e5 a2 00 00 	cop cp0,cr0,cr0,cr0,0x44
 1.16723 ++ *[0-9a-f]*:	e5 a2 00 ee 	cop cp0,cr0,cr14,cr14,0x44
 1.16724 ++ *[0-9a-f]*:	e5 a2 0e 0e 	cop cp0,cr14,cr0,cr14,0x44
 1.16725 ++ *[0-9a-f]*:	e5 a2 0e e0 	cop cp0,cr14,cr14,cr0,0x44
 1.16726 ++ *[0-9a-f]*:	e5 a2 06 88 	cop cp0,cr6,cr8,cr8,0x44
 1.16727 ++ *[0-9a-f]*:	e5 a2 08 68 	cop cp0,cr8,cr6,cr8,0x44
 1.16728 ++ *[0-9a-f]*:	e5 a2 08 86 	cop cp0,cr8,cr8,cr6,0x44
 1.16729 ++
 1.16730 ++[0-9a-f]* <fsub_d>:
 1.16731 ++ *[0-9a-f]*:	e5 a2 1e ee 	cop cp0,cr14,cr14,cr14,0x45
 1.16732 ++ *[0-9a-f]*:	e5 a2 10 00 	cop cp0,cr0,cr0,cr0,0x45
 1.16733 ++ *[0-9a-f]*:	e5 a2 10 ee 	cop cp0,cr0,cr14,cr14,0x45
 1.16734 ++ *[0-9a-f]*:	e5 a2 1e 0e 	cop cp0,cr14,cr0,cr14,0x45
 1.16735 ++ *[0-9a-f]*:	e5 a2 1e e0 	cop cp0,cr14,cr14,cr0,0x45
 1.16736 ++ *[0-9a-f]*:	e5 a2 16 88 	cop cp0,cr6,cr8,cr8,0x45
 1.16737 ++ *[0-9a-f]*:	e5 a2 18 68 	cop cp0,cr8,cr6,cr8,0x45
 1.16738 ++ *[0-9a-f]*:	e5 a2 18 86 	cop cp0,cr8,cr8,cr6,0x45
 1.16739 ++
 1.16740 ++[0-9a-f]* <fmac_d>:
 1.16741 ++ *[0-9a-f]*:	e5 a0 0e ee 	cop cp0,cr14,cr14,cr14,0x40
 1.16742 ++ *[0-9a-f]*:	e5 a0 00 00 	cop cp0,cr0,cr0,cr0,0x40
 1.16743 ++ *[0-9a-f]*:	e5 a0 00 ee 	cop cp0,cr0,cr14,cr14,0x40
 1.16744 ++ *[0-9a-f]*:	e5 a0 0e 0e 	cop cp0,cr14,cr0,cr14,0x40
 1.16745 ++ *[0-9a-f]*:	e5 a0 0e e0 	cop cp0,cr14,cr14,cr0,0x40
 1.16746 ++ *[0-9a-f]*:	e5 a0 06 88 	cop cp0,cr6,cr8,cr8,0x40
 1.16747 ++ *[0-9a-f]*:	e5 a0 08 68 	cop cp0,cr8,cr6,cr8,0x40
 1.16748 ++ *[0-9a-f]*:	e5 a0 08 86 	cop cp0,cr8,cr8,cr6,0x40
 1.16749 ++
 1.16750 ++[0-9a-f]* <fnmac_d>:
 1.16751 ++ *[0-9a-f]*:	e5 a0 1e ee 	cop cp0,cr14,cr14,cr14,0x41
 1.16752 ++ *[0-9a-f]*:	e5 a0 10 00 	cop cp0,cr0,cr0,cr0,0x41
 1.16753 ++ *[0-9a-f]*:	e5 a0 10 ee 	cop cp0,cr0,cr14,cr14,0x41
 1.16754 ++ *[0-9a-f]*:	e5 a0 1e 0e 	cop cp0,cr14,cr0,cr14,0x41
 1.16755 ++ *[0-9a-f]*:	e5 a0 1e e0 	cop cp0,cr14,cr14,cr0,0x41
 1.16756 ++ *[0-9a-f]*:	e5 a0 16 88 	cop cp0,cr6,cr8,cr8,0x41
 1.16757 ++ *[0-9a-f]*:	e5 a0 18 68 	cop cp0,cr8,cr6,cr8,0x41
 1.16758 ++ *[0-9a-f]*:	e5 a0 18 86 	cop cp0,cr8,cr8,cr6,0x41
 1.16759 ++
 1.16760 ++[0-9a-f]* <fmsc_d>:
 1.16761 ++ *[0-9a-f]*:	e5 a1 0e ee 	cop cp0,cr14,cr14,cr14,0x42
 1.16762 ++ *[0-9a-f]*:	e5 a1 00 00 	cop cp0,cr0,cr0,cr0,0x42
 1.16763 ++ *[0-9a-f]*:	e5 a1 00 ee 	cop cp0,cr0,cr14,cr14,0x42
 1.16764 ++ *[0-9a-f]*:	e5 a1 0e 0e 	cop cp0,cr14,cr0,cr14,0x42
 1.16765 ++ *[0-9a-f]*:	e5 a1 0e e0 	cop cp0,cr14,cr14,cr0,0x42
 1.16766 ++ *[0-9a-f]*:	e5 a1 06 88 	cop cp0,cr6,cr8,cr8,0x42
 1.16767 ++ *[0-9a-f]*:	e5 a1 08 68 	cop cp0,cr8,cr6,cr8,0x42
 1.16768 ++ *[0-9a-f]*:	e5 a1 08 86 	cop cp0,cr8,cr8,cr6,0x42
 1.16769 ++
 1.16770 ++[0-9a-f]* <fnmsc_d>:
 1.16771 ++ *[0-9a-f]*:	e5 a1 1e ee 	cop cp0,cr14,cr14,cr14,0x43
 1.16772 ++ *[0-9a-f]*:	e5 a1 10 00 	cop cp0,cr0,cr0,cr0,0x43
 1.16773 ++ *[0-9a-f]*:	e5 a1 10 ee 	cop cp0,cr0,cr14,cr14,0x43
 1.16774 ++ *[0-9a-f]*:	e5 a1 1e 0e 	cop cp0,cr14,cr0,cr14,0x43
 1.16775 ++ *[0-9a-f]*:	e5 a1 1e e0 	cop cp0,cr14,cr14,cr0,0x43
 1.16776 ++ *[0-9a-f]*:	e5 a1 16 88 	cop cp0,cr6,cr8,cr8,0x43
 1.16777 ++ *[0-9a-f]*:	e5 a1 18 68 	cop cp0,cr8,cr6,cr8,0x43
 1.16778 ++ *[0-9a-f]*:	e5 a1 18 86 	cop cp0,cr8,cr8,cr6,0x43
 1.16779 ++
 1.16780 ++[0-9a-f]* <fmul_d>:
 1.16781 ++ *[0-9a-f]*:	e5 a3 0e ee 	cop cp0,cr14,cr14,cr14,0x46
 1.16782 ++ *[0-9a-f]*:	e5 a3 00 00 	cop cp0,cr0,cr0,cr0,0x46
 1.16783 ++ *[0-9a-f]*:	e5 a3 00 ee 	cop cp0,cr0,cr14,cr14,0x46
 1.16784 ++ *[0-9a-f]*:	e5 a3 0e 0e 	cop cp0,cr14,cr0,cr14,0x46
 1.16785 ++ *[0-9a-f]*:	e5 a3 0e e0 	cop cp0,cr14,cr14,cr0,0x46
 1.16786 ++ *[0-9a-f]*:	e5 a3 06 88 	cop cp0,cr6,cr8,cr8,0x46
 1.16787 ++ *[0-9a-f]*:	e5 a3 08 68 	cop cp0,cr8,cr6,cr8,0x46
 1.16788 ++ *[0-9a-f]*:	e5 a3 08 86 	cop cp0,cr8,cr8,cr6,0x46
 1.16789 ++
 1.16790 ++[0-9a-f]* <fnmul_d>:
 1.16791 ++ *[0-9a-f]*:	e5 a3 1e ee 	cop cp0,cr14,cr14,cr14,0x47
 1.16792 ++ *[0-9a-f]*:	e5 a3 10 00 	cop cp0,cr0,cr0,cr0,0x47
 1.16793 ++ *[0-9a-f]*:	e5 a3 10 ee 	cop cp0,cr0,cr14,cr14,0x47
 1.16794 ++ *[0-9a-f]*:	e5 a3 1e 0e 	cop cp0,cr14,cr0,cr14,0x47
 1.16795 ++ *[0-9a-f]*:	e5 a3 1e e0 	cop cp0,cr14,cr14,cr0,0x47
 1.16796 ++ *[0-9a-f]*:	e5 a3 16 88 	cop cp0,cr6,cr8,cr8,0x47
 1.16797 ++ *[0-9a-f]*:	e5 a3 18 68 	cop cp0,cr8,cr6,cr8,0x47
 1.16798 ++ *[0-9a-f]*:	e5 a3 18 86 	cop cp0,cr8,cr8,cr6,0x47
 1.16799 ++
 1.16800 ++[0-9a-f]* <fneg_d>:
 1.16801 ++ *[0-9a-f]*:	e5 a4 0e e0 	cop cp0,cr14,cr14,cr0,0x48
 1.16802 ++ *[0-9a-f]*:	e5 a4 00 00 	cop cp0,cr0,cr0,cr0,0x48
 1.16803 ++ *[0-9a-f]*:	e5 a4 00 e0 	cop cp0,cr0,cr14,cr0,0x48
 1.16804 ++ *[0-9a-f]*:	e5 a4 0e 00 	cop cp0,cr14,cr0,cr0,0x48
 1.16805 ++ *[0-9a-f]*:	e5 a4 06 80 	cop cp0,cr6,cr8,cr0,0x48
 1.16806 ++ *[0-9a-f]*:	e5 a4 08 60 	cop cp0,cr8,cr6,cr0,0x48
 1.16807 ++
 1.16808 ++[0-9a-f]* <fabs_d>:
 1.16809 ++ *[0-9a-f]*:	e5 a4 1e e0 	cop cp0,cr14,cr14,cr0,0x49
 1.16810 ++ *[0-9a-f]*:	e5 a4 10 00 	cop cp0,cr0,cr0,cr0,0x49
 1.16811 ++ *[0-9a-f]*:	e5 a4 10 e0 	cop cp0,cr0,cr14,cr0,0x49
 1.16812 ++ *[0-9a-f]*:	e5 a4 1e 00 	cop cp0,cr14,cr0,cr0,0x49
 1.16813 ++ *[0-9a-f]*:	e5 a4 16 80 	cop cp0,cr6,cr8,cr0,0x49
 1.16814 ++ *[0-9a-f]*:	e5 a4 18 60 	cop cp0,cr8,cr6,cr0,0x49
 1.16815 ++
 1.16816 ++[0-9a-f]* <fcmp_d>:
 1.16817 ++ *[0-9a-f]*:	e5 a6 10 ee 	cop cp0,cr0,cr14,cr14,0x4d
 1.16818 ++ *[0-9a-f]*:	e5 a6 10 00 	cop cp0,cr0,cr0,cr0,0x4d
 1.16819 ++ *[0-9a-f]*:	e5 a6 10 0e 	cop cp0,cr0,cr0,cr14,0x4d
 1.16820 ++ *[0-9a-f]*:	e5 a6 10 e0 	cop cp0,cr0,cr14,cr0,0x4d
 1.16821 ++ *[0-9a-f]*:	e5 a6 10 68 	cop cp0,cr0,cr6,cr8,0x4d
 1.16822 ++ *[0-9a-f]*:	e5 a6 10 86 	cop cp0,cr0,cr8,cr6,0x4d
 1.16823 ++
 1.16824 ++[0-9a-f]* <fmov_s>:
 1.16825 ++ *[0-9a-f]*:	e1 a5 0f f0 	cop cp0,cr15,cr15,cr0,0xa
 1.16826 ++ *[0-9a-f]*:	e1 a5 00 00 	cop cp0,cr0,cr0,cr0,0xa
 1.16827 ++ *[0-9a-f]*:	e1 a5 0f 00 	cop cp0,cr15,cr0,cr0,0xa
 1.16828 ++ *[0-9a-f]*:	e1 a5 00 f0 	cop cp0,cr0,cr15,cr0,0xa
 1.16829 ++ *[0-9a-f]*:	e1 a5 08 70 	cop cp0,cr8,cr7,cr0,0xa
 1.16830 ++ *[0-9a-f]*:	e1 a5 07 80 	cop cp0,cr7,cr8,cr0,0xa
 1.16831 ++ *[0-9a-f]*:	ef af 0f 00 	mvcr.w cp0,pc,cr15
 1.16832 ++ *[0-9a-f]*:	ef a0 00 00 	mvcr.w cp0,r0,cr0
 1.16833 ++ *[0-9a-f]*:	ef af 00 00 	mvcr.w cp0,pc,cr0
 1.16834 ++ *[0-9a-f]*:	ef a0 0f 00 	mvcr.w cp0,r0,cr15
 1.16835 ++ *[0-9a-f]*:	ef a8 07 00 	mvcr.w cp0,r8,cr7
 1.16836 ++ *[0-9a-f]*:	ef a7 08 00 	mvcr.w cp0,r7,cr8
 1.16837 ++ *[0-9a-f]*:	ef af 0f 20 	mvrc.w cp0,cr15,pc
 1.16838 ++ *[0-9a-f]*:	ef a0 00 20 	mvrc.w cp0,cr0,r0
 1.16839 ++ *[0-9a-f]*:	ef a0 0f 20 	mvrc.w cp0,cr15,r0
 1.16840 ++ *[0-9a-f]*:	ef af 00 20 	mvrc.w cp0,cr0,pc
 1.16841 ++ *[0-9a-f]*:	ef a7 08 20 	mvrc.w cp0,cr8,r7
 1.16842 ++ *[0-9a-f]*:	ef a8 07 20 	mvrc.w cp0,cr7,r8
 1.16843 ++
 1.16844 ++[0-9a-f]* <fmov_d>:
 1.16845 ++ *[0-9a-f]*:	e5 a5 0e e0 	cop cp0,cr14,cr14,cr0,0x4a
 1.16846 ++ *[0-9a-f]*:	e5 a5 00 00 	cop cp0,cr0,cr0,cr0,0x4a
 1.16847 ++ *[0-9a-f]*:	e5 a5 0e 00 	cop cp0,cr14,cr0,cr0,0x4a
 1.16848 ++ *[0-9a-f]*:	e5 a5 00 e0 	cop cp0,cr0,cr14,cr0,0x4a
 1.16849 ++ *[0-9a-f]*:	e5 a5 08 60 	cop cp0,cr8,cr6,cr0,0x4a
 1.16850 ++ *[0-9a-f]*:	e5 a5 06 80 	cop cp0,cr6,cr8,cr0,0x4a
 1.16851 ++ *[0-9a-f]*:	ef ae 0e 10 	mvcr.d cp0,lr,cr14
 1.16852 ++ *[0-9a-f]*:	ef a0 00 10 	mvcr.d cp0,r0,cr0
 1.16853 ++ *[0-9a-f]*:	ef ae 00 10 	mvcr.d cp0,lr,cr0
 1.16854 ++ *[0-9a-f]*:	ef a0 0e 10 	mvcr.d cp0,r0,cr14
 1.16855 ++ *[0-9a-f]*:	ef a8 06 10 	mvcr.d cp0,r8,cr6
 1.16856 ++ *[0-9a-f]*:	ef a6 08 10 	mvcr.d cp0,r6,cr8
 1.16857 ++ *[0-9a-f]*:	ef ae 0e 30 	mvrc.d cp0,cr14,lr
 1.16858 ++ *[0-9a-f]*:	ef a0 00 30 	mvrc.d cp0,cr0,r0
 1.16859 ++ *[0-9a-f]*:	ef a0 0e 30 	mvrc.d cp0,cr14,r0
 1.16860 ++ *[0-9a-f]*:	ef ae 00 30 	mvrc.d cp0,cr0,lr
 1.16861 ++ *[0-9a-f]*:	ef a6 08 30 	mvrc.d cp0,cr8,r6
 1.16862 ++ *[0-9a-f]*:	ef a8 06 30 	mvrc.d cp0,cr6,r8
 1.16863 ++
 1.16864 ++[0-9a-f]* <fcasts_d>:
 1.16865 ++ *[0-9a-f]*:	e1 a7 1f e0 	cop cp0,cr15,cr14,cr0,0xf
 1.16866 ++ *[0-9a-f]*:	e1 a7 10 00 	cop cp0,cr0,cr0,cr0,0xf
 1.16867 ++ *[0-9a-f]*:	e1 a7 1f 00 	cop cp0,cr15,cr0,cr0,0xf
 1.16868 ++ *[0-9a-f]*:	e1 a7 10 e0 	cop cp0,cr0,cr14,cr0,0xf
 1.16869 ++ *[0-9a-f]*:	e1 a7 18 60 	cop cp0,cr8,cr6,cr0,0xf
 1.16870 ++ *[0-9a-f]*:	e1 a7 17 80 	cop cp0,cr7,cr8,cr0,0xf
 1.16871 ++
 1.16872 ++[0-9a-f]* <fcastd_s>:
 1.16873 ++ *[0-9a-f]*:	e1 a8 0e f0 	cop cp0,cr14,cr15,cr0,0x10
 1.16874 ++ *[0-9a-f]*:	e1 a8 00 00 	cop cp0,cr0,cr0,cr0,0x10
 1.16875 ++ *[0-9a-f]*:	e1 a8 0e 00 	cop cp0,cr14,cr0,cr0,0x10
 1.16876 ++ *[0-9a-f]*:	e1 a8 00 f0 	cop cp0,cr0,cr15,cr0,0x10
 1.16877 ++ *[0-9a-f]*:	e1 a8 08 70 	cop cp0,cr8,cr7,cr0,0x10
 1.16878 ++ *[0-9a-f]*:	e1 a8 06 80 	cop cp0,cr6,cr8,cr0,0x10
 1.16879 +--- /dev/null
 1.16880 ++++ b/gas/testsuite/gas/avr32/fpinsn.s
 1.16881 +@@ -0,0 +1,266 @@
 1.16882 ++
 1.16883 ++	.text
 1.16884 ++	.global	fadd_s
 1.16885 ++fadd_s:
 1.16886 ++	fadd.s fr15, fr15, fr15
 1.16887 ++	fadd.s fr0, fr0, fr0
 1.16888 ++	fadd.s fr0, fr15, fr15
 1.16889 ++	fadd.s fr15, fr0, fr15
 1.16890 ++	fadd.s fr15, fr15, fr0
 1.16891 ++	fadd.s fr7, fr8, fr8
 1.16892 ++	fadd.s fr8, fr7, fr8
 1.16893 ++	fadd.s fr8, fr8, fr7
 1.16894 ++	.global	fsub_s
 1.16895 ++fsub_s:
 1.16896 ++	fsub.s fr15, fr15, fr15
 1.16897 ++	fsub.s fr0, fr0, fr0
 1.16898 ++	fsub.s fr0, fr15, fr15
 1.16899 ++	fsub.s fr15, fr0, fr15
 1.16900 ++	fsub.s fr15, fr15, fr0
 1.16901 ++	fsub.s fr7, fr8, fr8
 1.16902 ++	fsub.s fr8, fr7, fr8
 1.16903 ++	fsub.s fr8, fr8, fr7
 1.16904 ++	.global	fmac_s
 1.16905 ++fmac_s:
 1.16906 ++	fmac.s fr15, fr15, fr15
 1.16907 ++	fmac.s fr0, fr0, fr0
 1.16908 ++	fmac.s fr0, fr15, fr15
 1.16909 ++	fmac.s fr15, fr0, fr15
 1.16910 ++	fmac.s fr15, fr15, fr0
 1.16911 ++	fmac.s fr7, fr8, fr8
 1.16912 ++	fmac.s fr8, fr7, fr8
 1.16913 ++	fmac.s fr8, fr8, fr7
 1.16914 ++	.global	fnmac_s
 1.16915 ++fnmac_s:
 1.16916 ++	fnmac.s fr15, fr15, fr15
 1.16917 ++	fnmac.s fr0, fr0, fr0
 1.16918 ++	fnmac.s fr0, fr15, fr15
 1.16919 ++	fnmac.s fr15, fr0, fr15
 1.16920 ++	fnmac.s fr15, fr15, fr0
 1.16921 ++	fnmac.s fr7, fr8, fr8
 1.16922 ++	fnmac.s fr8, fr7, fr8
 1.16923 ++	fnmac.s fr8, fr8, fr7
 1.16924 ++	.global	fmsc_s
 1.16925 ++fmsc_s:
 1.16926 ++	fmsc.s fr15, fr15, fr15
 1.16927 ++	fmsc.s fr0, fr0, fr0
 1.16928 ++	fmsc.s fr0, fr15, fr15
 1.16929 ++	fmsc.s fr15, fr0, fr15
 1.16930 ++	fmsc.s fr15, fr15, fr0
 1.16931 ++	fmsc.s fr7, fr8, fr8
 1.16932 ++	fmsc.s fr8, fr7, fr8
 1.16933 ++	fmsc.s fr8, fr8, fr7
 1.16934 ++	.global	fnmsc_s
 1.16935 ++fnmsc_s:
 1.16936 ++	fnmsc.s fr15, fr15, fr15
 1.16937 ++	fnmsc.s fr0, fr0, fr0
 1.16938 ++	fnmsc.s fr0, fr15, fr15
 1.16939 ++	fnmsc.s fr15, fr0, fr15
 1.16940 ++	fnmsc.s fr15, fr15, fr0
 1.16941 ++	fnmsc.s fr7, fr8, fr8
 1.16942 ++	fnmsc.s fr8, fr7, fr8
 1.16943 ++	fnmsc.s fr8, fr8, fr7
 1.16944 ++	.global	fmul_s
 1.16945 ++fmul_s:
 1.16946 ++	fmul.s fr15, fr15, fr15
 1.16947 ++	fmul.s fr0, fr0, fr0
 1.16948 ++	fmul.s fr0, fr15, fr15
 1.16949 ++	fmul.s fr15, fr0, fr15
 1.16950 ++	fmul.s fr15, fr15, fr0
 1.16951 ++	fmul.s fr7, fr8, fr8
 1.16952 ++	fmul.s fr8, fr7, fr8
 1.16953 ++	fmul.s fr8, fr8, fr7
 1.16954 ++	.global	fnmul_s
 1.16955 ++fnmul_s:
 1.16956 ++	fnmul.s fr15, fr15, fr15
 1.16957 ++	fnmul.s fr0, fr0, fr0
 1.16958 ++	fnmul.s fr0, fr15, fr15
 1.16959 ++	fnmul.s fr15, fr0, fr15
 1.16960 ++	fnmul.s fr15, fr15, fr0
 1.16961 ++	fnmul.s fr7, fr8, fr8
 1.16962 ++	fnmul.s fr8, fr7, fr8
 1.16963 ++	fnmul.s fr8, fr8, fr7
 1.16964 ++	.global	fneg_s
 1.16965 ++fneg_s:
 1.16966 ++	fneg.s fr15, fr15
 1.16967 ++	fneg.s fr0, fr0
 1.16968 ++	fneg.s fr0, fr15
 1.16969 ++	fneg.s fr15, fr0
 1.16970 ++	fneg.s fr7, fr8
 1.16971 ++	fneg.s fr8, fr7
 1.16972 ++	.global	fabs_s
 1.16973 ++fabs_s:
 1.16974 ++	fabs.s fr15, fr15
 1.16975 ++	fabs.s fr0, fr0
 1.16976 ++	fabs.s fr0, fr15
 1.16977 ++	fabs.s fr15, fr0
 1.16978 ++	fabs.s fr7, fr8
 1.16979 ++	fabs.s fr8, fr7
 1.16980 ++	.global	fcmp_s
 1.16981 ++fcmp_s:
 1.16982 ++	fcmp.s fr15, fr15
 1.16983 ++	fcmp.s fr0, fr0
 1.16984 ++	fcmp.s fr0, fr15
 1.16985 ++	fcmp.s fr15, fr0
 1.16986 ++	fcmp.s fr7, fr8
 1.16987 ++	fcmp.s fr8, fr7
 1.16988 ++	.global	fadd_d
 1.16989 ++fadd_d:
 1.16990 ++	fadd.d fr14, fr14, fr14
 1.16991 ++	fadd.d fr0, fr0, fr0
 1.16992 ++	fadd.d fr0, fr14, fr14
 1.16993 ++	fadd.d fr14, fr0, fr14
 1.16994 ++	fadd.d fr14, fr14, fr0
 1.16995 ++	fadd.d fr6, fr8, fr8
 1.16996 ++	fadd.d fr8, fr6, fr8
 1.16997 ++	fadd.d fr8, fr8, fr6
 1.16998 ++	.global	fsub_d
 1.16999 ++fsub_d:
 1.17000 ++	fsub.d fr14, fr14, fr14
 1.17001 ++	fsub.d fr0, fr0, fr0
 1.17002 ++	fsub.d fr0, fr14, fr14
 1.17003 ++	fsub.d fr14, fr0, fr14
 1.17004 ++	fsub.d fr14, fr14, fr0
 1.17005 ++	fsub.d fr6, fr8, fr8
 1.17006 ++	fsub.d fr8, fr6, fr8
 1.17007 ++	fsub.d fr8, fr8, fr6
 1.17008 ++	.global	fmac_d
 1.17009 ++fmac_d:
 1.17010 ++	fmac.d fr14, fr14, fr14
 1.17011 ++	fmac.d fr0, fr0, fr0
 1.17012 ++	fmac.d fr0, fr14, fr14
 1.17013 ++	fmac.d fr14, fr0, fr14
 1.17014 ++	fmac.d fr14, fr14, fr0
 1.17015 ++	fmac.d fr6, fr8, fr8
 1.17016 ++	fmac.d fr8, fr6, fr8
 1.17017 ++	fmac.d fr8, fr8, fr6
 1.17018 ++	.global	fnmac_d
 1.17019 ++fnmac_d:
 1.17020 ++	fnmac.d fr14, fr14, fr14
 1.17021 ++	fnmac.d fr0, fr0, fr0
 1.17022 ++	fnmac.d fr0, fr14, fr14
 1.17023 ++	fnmac.d fr14, fr0, fr14
 1.17024 ++	fnmac.d fr14, fr14, fr0
 1.17025 ++	fnmac.d fr6, fr8, fr8
 1.17026 ++	fnmac.d fr8, fr6, fr8
 1.17027 ++	fnmac.d fr8, fr8, fr6
 1.17028 ++	.global	fmsc_d
 1.17029 ++fmsc_d:
 1.17030 ++	fmsc.d fr14, fr14, fr14
 1.17031 ++	fmsc.d fr0, fr0, fr0
 1.17032 ++	fmsc.d fr0, fr14, fr14
 1.17033 ++	fmsc.d fr14, fr0, fr14
 1.17034 ++	fmsc.d fr14, fr14, fr0
 1.17035 ++	fmsc.d fr6, fr8, fr8
 1.17036 ++	fmsc.d fr8, fr6, fr8
 1.17037 ++	fmsc.d fr8, fr8, fr6
 1.17038 ++	.global	fnmsc_d
 1.17039 ++fnmsc_d:
 1.17040 ++	fnmsc.d fr14, fr14, fr14
 1.17041 ++	fnmsc.d fr0, fr0, fr0
 1.17042 ++	fnmsc.d fr0, fr14, fr14
 1.17043 ++	fnmsc.d fr14, fr0, fr14
 1.17044 ++	fnmsc.d fr14, fr14, fr0
 1.17045 ++	fnmsc.d fr6, fr8, fr8
 1.17046 ++	fnmsc.d fr8, fr6, fr8
 1.17047 ++	fnmsc.d fr8, fr8, fr6
 1.17048 ++	.global	fmul_d
 1.17049 ++fmul_d:
 1.17050 ++	fmul.d fr14, fr14, fr14
 1.17051 ++	fmul.d fr0, fr0, fr0
 1.17052 ++	fmul.d fr0, fr14, fr14
 1.17053 ++	fmul.d fr14, fr0, fr14
 1.17054 ++	fmul.d fr14, fr14, fr0
 1.17055 ++	fmul.d fr6, fr8, fr8
 1.17056 ++	fmul.d fr8, fr6, fr8
 1.17057 ++	fmul.d fr8, fr8, fr6
 1.17058 ++	.global	fnmul_d
 1.17059 ++fnmul_d:
 1.17060 ++	fnmul.d fr14, fr14, fr14
 1.17061 ++	fnmul.d fr0, fr0, fr0
 1.17062 ++	fnmul.d fr0, fr14, fr14
 1.17063 ++	fnmul.d fr14, fr0, fr14
 1.17064 ++	fnmul.d fr14, fr14, fr0
 1.17065 ++	fnmul.d fr6, fr8, fr8
 1.17066 ++	fnmul.d fr8, fr6, fr8
 1.17067 ++	fnmul.d fr8, fr8, fr6
 1.17068 ++	.global	fneg_d
 1.17069 ++fneg_d:
 1.17070 ++	fneg.d fr14, fr14
 1.17071 ++	fneg.d fr0, fr0
 1.17072 ++	fneg.d fr0, fr14
 1.17073 ++	fneg.d fr14, fr0
 1.17074 ++	fneg.d fr6, fr8
 1.17075 ++	fneg.d fr8, fr6
 1.17076 ++	.global	fabs_d
 1.17077 ++fabs_d:
 1.17078 ++	fabs.d fr14, fr14
 1.17079 ++	fabs.d fr0, fr0
 1.17080 ++	fabs.d fr0, fr14
 1.17081 ++	fabs.d fr14, fr0
 1.17082 ++	fabs.d fr6, fr8
 1.17083 ++	fabs.d fr8, fr6
 1.17084 ++	.global	fcmp_d
 1.17085 ++fcmp_d:
 1.17086 ++	fcmp.d fr14, fr14
 1.17087 ++	fcmp.d fr0, fr0
 1.17088 ++	fcmp.d fr0, fr14
 1.17089 ++	fcmp.d fr14, fr0
 1.17090 ++	fcmp.d fr6, fr8
 1.17091 ++	fcmp.d fr8, fr6
 1.17092 ++	.global fmov_s
 1.17093 ++fmov_s:
 1.17094 ++	fmov.s fr15, fr15
 1.17095 ++	fmov.s fr0, fr0
 1.17096 ++	fmov.s fr15, fr0
 1.17097 ++	fmov.s fr0, fr15
 1.17098 ++	fmov.s fr8, fr7
 1.17099 ++	fmov.s fr7, fr8
 1.17100 ++	fmov.s pc, fr15
 1.17101 ++	fmov.s r0, fr0
 1.17102 ++	fmov.s pc, fr0
 1.17103 ++	fmov.s r0, fr15
 1.17104 ++	fmov.s r8, fr7
 1.17105 ++	fmov.s r7, fr8
 1.17106 ++	fmov.s fr15, pc
 1.17107 ++	fmov.s fr0, r0
 1.17108 ++	fmov.s fr15, r0
 1.17109 ++	fmov.s fr0, pc
 1.17110 ++	fmov.s fr8, r7
 1.17111 ++	fmov.s fr7, r8
 1.17112 ++	.global fmov_d
 1.17113 ++fmov_d:
 1.17114 ++	fmov.d fr14, fr14
 1.17115 ++	fmov.d fr0, fr0
 1.17116 ++	fmov.d fr14, fr0
 1.17117 ++	fmov.d fr0, fr14
 1.17118 ++	fmov.d fr8, fr6
 1.17119 ++	fmov.d fr6, fr8
 1.17120 ++	fmov.d lr, fr14
 1.17121 ++	fmov.d r0, fr0
 1.17122 ++	fmov.d lr, fr0
 1.17123 ++	fmov.d r0, fr14
 1.17124 ++	fmov.d r8, fr6
 1.17125 ++	fmov.d r6, fr8
 1.17126 ++	fmov.d fr14, lr
 1.17127 ++	fmov.d fr0, r0
 1.17128 ++	fmov.d fr14, r0
 1.17129 ++	fmov.d fr0, lr
 1.17130 ++	fmov.d fr8, r6
 1.17131 ++	fmov.d fr6, r8
 1.17132 ++	.global fcasts_d
 1.17133 ++fcasts_d:
 1.17134 ++	fcasts.d fr15, fr14
 1.17135 ++	fcasts.d fr0, fr0
 1.17136 ++	fcasts.d fr15, fr0
 1.17137 ++	fcasts.d fr0, fr14
 1.17138 ++	fcasts.d fr8, fr6
 1.17139 ++	fcasts.d fr7, fr8
 1.17140 ++	.global fcastd_s
 1.17141 ++fcastd_s:
 1.17142 ++	fcastd.s fr14, fr15
 1.17143 ++	fcastd.s fr0, fr0
 1.17144 ++	fcastd.s fr14, fr0
 1.17145 ++	fcastd.s fr0, fr15
 1.17146 ++	fcastd.s fr8, fr7
 1.17147 ++	fcastd.s fr6, fr8
 1.17148 +--- /dev/null
 1.17149 ++++ b/gas/testsuite/gas/avr32/hwrd-lwrd.d
 1.17150 +@@ -0,0 +1,47 @@
 1.17151 ++#as:
 1.17152 ++#objdump: -dr
 1.17153 ++#name: hwrd-lwrd
 1.17154 ++
 1.17155 ++.*: +file format .*
 1.17156 ++
 1.17157 ++Disassembly of section \.text:
 1.17158 ++
 1.17159 ++00000000 <test_hwrd>:
 1.17160 ++   0:	e0 60 87 65 	mov r0,34661
 1.17161 ++   4:	e0 60 12 34 	mov r0,4660
 1.17162 ++   8:	e0 60 00 00 	mov r0,0
 1.17163 ++			8: R_AVR32_HI16	\.text\+0x60
 1.17164 ++   c:	e0 60 00 00 	mov r0,0
 1.17165 ++			c: R_AVR32_HI16	extsym1
 1.17166 ++  10:	ea 10 87 65 	orh r0,0x8765
 1.17167 ++  14:	ea 10 12 34 	orh r0,0x1234
 1.17168 ++  18:	ea 10 00 00 	orh r0,0x0
 1.17169 ++			18: R_AVR32_HI16	\.text\+0x60
 1.17170 ++  1c:	ea 10 00 00 	orh r0,0x0
 1.17171 ++			1c: R_AVR32_HI16	extsym1
 1.17172 ++  20:	e4 10 87 65 	andh r0,0x8765
 1.17173 ++  24:	e4 10 12 34 	andh r0,0x1234
 1.17174 ++  28:	e4 10 00 00 	andh r0,0x0
 1.17175 ++			28: R_AVR32_HI16	\.text\+0x60
 1.17176 ++  2c:	e4 10 00 00 	andh r0,0x0
 1.17177 ++			2c: R_AVR32_HI16	extsym1
 1.17178 ++
 1.17179 ++00000030 <test_lwrd>:
 1.17180 ++  30:	e0 60 43 21 	mov r0,17185
 1.17181 ++  34:	e0 60 56 78 	mov r0,22136
 1.17182 ++  38:	e0 60 00 00 	mov r0,0
 1.17183 ++			38: R_AVR32_LO16	\.text\+0x60
 1.17184 ++  3c:	e0 60 00 00 	mov r0,0
 1.17185 ++			3c: R_AVR32_LO16	extsym1
 1.17186 ++  40:	e8 10 43 21 	orl r0,0x4321
 1.17187 ++  44:	e8 10 56 78 	orl r0,0x5678
 1.17188 ++  48:	e8 10 00 00 	orl r0,0x0
 1.17189 ++			48: R_AVR32_LO16	\.text\+0x60
 1.17190 ++  4c:	e8 10 00 00 	orl r0,0x0
 1.17191 ++			4c: R_AVR32_LO16	extsym1
 1.17192 ++  50:	e0 10 43 21 	andl r0,0x4321
 1.17193 ++  54:	e0 10 56 78 	andl r0,0x5678
 1.17194 ++  58:	e0 10 00 00 	andl r0,0x0
 1.17195 ++			58: R_AVR32_LO16	\.text\+0x60
 1.17196 ++  5c:	e0 10 00 00 	andl r0,0x0
 1.17197 ++			5c: R_AVR32_LO16	extsym1
 1.17198 +--- /dev/null
 1.17199 ++++ b/gas/testsuite/gas/avr32/hwrd-lwrd.s
 1.17200 +@@ -0,0 +1,39 @@
 1.17201 ++
 1.17202 ++        .equ    sym1, 0x12345678
 1.17203 ++
 1.17204 ++        .text
 1.17205 ++        .global test_hwrd
 1.17206 ++test_hwrd:
 1.17207 ++        mov     r0, hi(0x87654321)
 1.17208 ++        mov     r0, hi(sym1)
 1.17209 ++        mov     r0, hi(sym2)
 1.17210 ++        mov     r0, hi(extsym1)
 1.17211 ++
 1.17212 ++        orh	r0, hi(0x87654321)
 1.17213 ++        orh	r0, hi(sym1)
 1.17214 ++        orh	r0, hi(sym2)
 1.17215 ++        orh	r0, hi(extsym1)
 1.17216 ++
 1.17217 ++        andh	r0, hi(0x87654321)
 1.17218 ++        andh	r0, hi(sym1)
 1.17219 ++        andh	r0, hi(sym2)
 1.17220 ++        andh	r0, hi(extsym1)
 1.17221 ++
 1.17222 ++        .global test_lwrd
 1.17223 ++test_lwrd:
 1.17224 ++        mov     r0, lo(0x87654321)
 1.17225 ++        mov     r0, lo(sym1)
 1.17226 ++        mov     r0, lo(sym2)
 1.17227 ++        mov     r0, lo(extsym1)
 1.17228 ++
 1.17229 ++        orl	r0, lo(0x87654321)
 1.17230 ++        orl	r0, lo(sym1)
 1.17231 ++        orl	r0, lo(sym2)
 1.17232 ++        orl	r0, lo(extsym1)
 1.17233 ++
 1.17234 ++        andl	r0, lo(0x87654321)
 1.17235 ++        andl	r0, lo(sym1)
 1.17236 ++        andl	r0, lo(sym2)
 1.17237 ++        andl	r0, lo(extsym1)
 1.17238 ++
 1.17239 ++sym2:
 1.17240 +--- /dev/null
 1.17241 ++++ b/gas/testsuite/gas/avr32/jmptable.d
 1.17242 +@@ -0,0 +1,20 @@
 1.17243 ++#source: jmptable.s
 1.17244 ++#as:
 1.17245 ++#objdump: -dr
 1.17246 ++#name: jmptable
 1.17247 ++
 1.17248 ++.*: +file format .*
 1.17249 ++
 1.17250 ++Disassembly of section \.text:
 1.17251 ++
 1.17252 ++00000000 <jmptable_test>:
 1.17253 ++   0:	fe c8 ff f4 	sub r8,pc,-12
 1.17254 ++   4:	f0 00 00 2f 	add pc,r8,r0<<0x2
 1.17255 ++   8:	d7 03       	nop
 1.17256 ++   a:	00 00       	add r0,r0
 1.17257 ++   c:	c0 38       	rjmp 12 <jmptable_test\+0x12>
 1.17258 ++   e:	c0 38       	rjmp 14 <jmptable_test\+0x14>
 1.17259 ++  10:	c0 38       	rjmp 16 <jmptable_test\+0x16>
 1.17260 ++  12:	d7 03       	nop
 1.17261 ++  14:	d7 03       	nop
 1.17262 ++  16:	d7 03       	nop
 1.17263 +--- /dev/null
 1.17264 ++++ b/gas/testsuite/gas/avr32/jmptable_linkrelax.d
 1.17265 +@@ -0,0 +1,25 @@
 1.17266 ++#source: jmptable.s
 1.17267 ++#as: --linkrelax
 1.17268 ++#objdump: -dr
 1.17269 ++#name: jmptable_linkrelax
 1.17270 ++
 1.17271 ++.*: +file format .*
 1.17272 ++
 1.17273 ++Disassembly of section \.text:
 1.17274 ++
 1.17275 ++00000000 <jmptable_test>:
 1.17276 ++   0:	fe c8 00 00 	sub r8,pc,0
 1.17277 ++			0: R_AVR32_16N_PCREL	\.text\+0xc
 1.17278 ++   4:	f0 00 00 2f 	add pc,r8,r0<<0x2
 1.17279 ++   8:	d7 03       	nop
 1.17280 ++   a:	00 00       	add r0,r0
 1.17281 ++			a: R_AVR32_ALIGN	\*ABS\*\+0x2
 1.17282 ++   c:	c0 08       	rjmp c <jmptable_test\+0xc>
 1.17283 ++			c: R_AVR32_11H_PCREL	\.text\+0x12
 1.17284 ++   e:	c0 08       	rjmp e <jmptable_test\+0xe>
 1.17285 ++			e: R_AVR32_11H_PCREL	\.text\+0x14
 1.17286 ++  10:	c0 08       	rjmp 10 <jmptable_test\+0x10>
 1.17287 ++			10: R_AVR32_11H_PCREL	\.text\+0x16
 1.17288 ++  12:	d7 03       	nop
 1.17289 ++  14:	d7 03       	nop
 1.17290 ++  16:	d7 03       	nop
 1.17291 +--- /dev/null
 1.17292 ++++ b/gas/testsuite/gas/avr32/jmptable.s
 1.17293 +@@ -0,0 +1,14 @@
 1.17294 ++
 1.17295 ++	.text
 1.17296 ++	.global	jmptable_test
 1.17297 ++jmptable_test:
 1.17298 ++	sub	r8, pc, -(.L1 - .)
 1.17299 ++	add	pc, r8, r0 << 2
 1.17300 ++	nop
 1.17301 ++	.align	2
 1.17302 ++.L1:	rjmp	1f
 1.17303 ++	rjmp	2f
 1.17304 ++	rjmp	3f
 1.17305 ++1:	nop
 1.17306 ++2:	nop
 1.17307 ++3:	nop
 1.17308 +--- /dev/null
 1.17309 ++++ b/gas/testsuite/gas/avr32/lda_nopic.d
 1.17310 +@@ -0,0 +1,32 @@
 1.17311 ++#source: lda.s
 1.17312 ++#as:
 1.17313 ++#objdump: -dr
 1.17314 ++#name: lda_nopic
 1.17315 ++
 1.17316 ++.*: +file format .*
 1.17317 ++
 1.17318 ++Disassembly of section \.text:
 1.17319 ++
 1.17320 ++00000000 <lda_test>:
 1.17321 ++       0:	f2 c8 00 00 	sub r8,r9,0
 1.17322 ++
 1.17323 ++00000004 <far_negative>:
 1.17324 ++       4:	f6 ca 00 00 	sub r10,r11,0
 1.17325 ++	...
 1.17326 ++    8000:	fe c0 7f fc 	sub r0,pc,32764
 1.17327 ++    8004:	48 31       	lddpc r1,8010 <far_negative\+0x800c>
 1.17328 ++    8006:	48 42       	lddpc r2,8014 <far_negative\+0x8010>
 1.17329 ++    8008:	48 43       	lddpc r3,8018 <far_negative\+0x8014>
 1.17330 ++    800a:	48 54       	lddpc r4,801c <far_negative\+0x8018>
 1.17331 ++    800c:	fe c5 80 04 	sub r5,pc,-32764
 1.17332 ++	...
 1.17333 ++			8010: R_AVR32_32_CPENT	\.text
 1.17334 ++			8014: R_AVR32_32_CPENT	\.data
 1.17335 ++			8018: R_AVR32_32_CPENT	undefined
 1.17336 ++			801c: R_AVR32_32_CPENT	\.text\+0x1001c
 1.17337 ++
 1.17338 ++00010008 <far_positive>:
 1.17339 ++   10008:	fa cc 00 00 	sub r12,sp,0
 1.17340 ++	...
 1.17341 ++0001001c <toofar_positive>:
 1.17342 ++   1001c:	fe ce 00 00 	sub lr,pc,0
 1.17343 +--- /dev/null
 1.17344 ++++ b/gas/testsuite/gas/avr32/lda_nopic_linkrelax.d
 1.17345 +@@ -0,0 +1,41 @@
 1.17346 ++#source: lda.s
 1.17347 ++#as: --linkrelax
 1.17348 ++#objdump: -dr
 1.17349 ++#name: lda_nopic_linkrelax
 1.17350 ++
 1.17351 ++.*: +file format .*
 1.17352 ++
 1.17353 ++Disassembly of section \.text:
 1.17354 ++
 1.17355 ++00000000 <lda_test>:
 1.17356 ++       0:	f2 c8 00 00 	sub r8,r9,0
 1.17357 ++
 1.17358 ++00000004 <far_negative>:
 1.17359 ++       4:	f6 ca 00 00 	sub r10,r11,0
 1.17360 ++	\.\.\.
 1.17361 ++    8000:	48 00       	lddpc r0,8000 <far_negative\+0x7ffc>
 1.17362 ++			8000: R_AVR32_9W_CP	\.text\+0x800c
 1.17363 ++    8002:	48 01       	lddpc r1,8000 <far_negative\+0x7ffc>
 1.17364 ++			8002: R_AVR32_9W_CP	\.text\+0x8010
 1.17365 ++    8004:	48 02       	lddpc r2,8004 <far_negative\+0x8000>
 1.17366 ++			8004: R_AVR32_9W_CP	\.text\+0x8014
 1.17367 ++    8006:	48 03       	lddpc r3,8004 <far_negative\+0x8000>
 1.17368 ++			8006: R_AVR32_9W_CP	\.text\+0x8018
 1.17369 ++    8008:	48 04       	lddpc r4,8008 <far_negative\+0x8004>
 1.17370 ++			8008: R_AVR32_9W_CP	\.text\+0x801c
 1.17371 ++    800a:	48 05       	lddpc r5,8008 <far_negative\+0x8004>
 1.17372 ++			800a: R_AVR32_9W_CP	\.text\+0x8020
 1.17373 ++	\.\.\.
 1.17374 ++			800c: R_AVR32_ALIGN	\*ABS\*\+0x2
 1.17375 ++			800c: R_AVR32_32_CPENT	\.text\+0x4
 1.17376 ++			8010: R_AVR32_32_CPENT	\.text
 1.17377 ++			8014: R_AVR32_32_CPENT	\.data
 1.17378 ++			8018: R_AVR32_32_CPENT	undefined
 1.17379 ++			801c: R_AVR32_32_CPENT	\.text\+0x10020
 1.17380 ++			8020: R_AVR32_32_CPENT	\.text\+0x1000c
 1.17381 ++
 1.17382 ++0001000c <far_positive>:
 1.17383 ++   1000c:	fa cc 00 00 	sub r12,sp,0
 1.17384 ++	\.\.\.
 1.17385 ++00010020 <toofar_positive>:
 1.17386 ++   10020:	fe ce 00 00 	sub lr,pc,0
 1.17387 +--- /dev/null
 1.17388 ++++ b/gas/testsuite/gas/avr32/lda_pic.d
 1.17389 +@@ -0,0 +1,32 @@
 1.17390 ++#source: lda.s
 1.17391 ++#as: --pic
 1.17392 ++#objdump: -dr
 1.17393 ++#name: lda_pic
 1.17394 ++
 1.17395 ++.*: +file format .*
 1.17396 ++
 1.17397 ++Disassembly of section \.text:
 1.17398 ++
 1.17399 ++00000000 <lda_test>:
 1.17400 ++       0:	f2 c8 00 00 	sub r8,r9,0
 1.17401 ++
 1.17402 ++00000004 <far_negative>:
 1.17403 ++       4:	f6 ca 00 00 	sub r10,r11,0
 1.17404 ++	...
 1.17405 ++    8000:	fe c0 7f fc 	sub r0,pc,32764
 1.17406 ++    8004:	ec f1 00 00 	ld.w r1,r6\[0\]
 1.17407 ++			8004: R_AVR32_GOT16S	toofar_negative
 1.17408 ++    8008:	ec f2 00 00 	ld.w r2,r6\[0\]
 1.17409 ++			8008: R_AVR32_GOT16S	different_section
 1.17410 ++    800c:	ec f3 00 00 	ld.w r3,r6\[0\]
 1.17411 ++			800c: R_AVR32_GOT16S	undefined
 1.17412 ++    8010:	ec f4 00 00 	ld.w r4,r6\[0\]
 1.17413 ++			8010: R_AVR32_GOT16S	toofar_positive
 1.17414 ++    8014:	fe c5 80 14 	sub r5,pc,-32748
 1.17415 ++	...
 1.17416 ++
 1.17417 ++00010000 <far_positive>:
 1.17418 ++   10000:	fa cc 00 00 	sub r12,sp,0
 1.17419 ++	...
 1.17420 ++00010014 <toofar_positive>:
 1.17421 ++   10014:	fe ce 00 00 	sub lr,pc,0
 1.17422 +--- /dev/null
 1.17423 ++++ b/gas/testsuite/gas/avr32/lda_pic_linkrelax.d
 1.17424 +@@ -0,0 +1,40 @@
 1.17425 ++#source: lda.s
 1.17426 ++#as: --pic --linkrelax
 1.17427 ++#objdump: -dr
 1.17428 ++#name: lda_pic_linkrelax
 1.17429 ++
 1.17430 ++.*: +file format .*
 1.17431 ++
 1.17432 ++Disassembly of section \.text:
 1.17433 ++
 1.17434 ++00000000 <lda_test>:
 1.17435 ++       0:	f2 c8 00 00 	sub r8,r9,0
 1.17436 ++
 1.17437 ++00000004 <far_negative>:
 1.17438 ++       4:	f6 ca 00 00 	sub r10,r11,0
 1.17439 ++	...
 1.17440 ++    8000:	e0 60 00 00 	mov r0,0
 1.17441 ++			8000: R_AVR32_LDA_GOT	far_negative
 1.17442 ++    8004:	ec 00 03 20 	ld\.w r0,r6\[r0<<0x2\]
 1.17443 ++    8008:	e0 61 00 00 	mov r1,0
 1.17444 ++			8008: R_AVR32_LDA_GOT	toofar_negative
 1.17445 ++    800c:	ec 01 03 21 	ld\.w r1,r6\[r1<<0x2\]
 1.17446 ++    8010:	e0 62 00 00 	mov r2,0
 1.17447 ++			8010: R_AVR32_LDA_GOT	different_section
 1.17448 ++    8014:	ec 02 03 22 	ld\.w r2,r6\[r2<<0x2\]
 1.17449 ++    8018:	e0 63 00 00 	mov r3,0
 1.17450 ++			8018: R_AVR32_LDA_GOT	undefined
 1.17451 ++    801c:	ec 03 03 23 	ld\.w r3,r6\[r3<<0x2\]
 1.17452 ++    8020:	e0 64 00 00 	mov r4,0
 1.17453 ++			8020: R_AVR32_LDA_GOT	toofar_positive
 1.17454 ++    8024:	ec 04 03 24 	ld\.w r4,r6\[r4<<0x2\]
 1.17455 ++    8028:	e0 65 00 00 	mov r5,0
 1.17456 ++			8028: R_AVR32_LDA_GOT	far_positive
 1.17457 ++    802c:	ec 05 03 25 	ld\.w r5,r6\[r5<<0x2\]
 1.17458 ++	...
 1.17459 ++
 1.17460 ++00010018 <far_positive>:
 1.17461 ++   10018:	fa cc 00 00 	sub r12,sp,0
 1.17462 ++	...
 1.17463 ++0001002c <toofar_positive>:
 1.17464 ++   1002c:	fe ce 00 00 	sub lr,pc,0
 1.17465 +--- /dev/null
 1.17466 ++++ b/gas/testsuite/gas/avr32/lda.s
 1.17467 +@@ -0,0 +1,30 @@
 1.17468 ++
 1.17469 ++	.text
 1.17470 ++	.global lda_test
 1.17471 ++lda_test:
 1.17472 ++toofar_negative:
 1.17473 ++	sub	r8, r9, 0
 1.17474 ++far_negative:
 1.17475 ++	sub	r10, r11, 0
 1.17476 ++
 1.17477 ++	.fill	32760, 1, 0x00
 1.17478 ++
 1.17479 ++	lda.w	r0, far_negative
 1.17480 ++	lda.w	r1, toofar_negative
 1.17481 ++	lda.w	r2, different_section
 1.17482 ++	lda.w	r3, undefined
 1.17483 ++	lda.w	r4, toofar_positive
 1.17484 ++	lda.w	r5, far_positive
 1.17485 ++
 1.17486 ++	.cpool
 1.17487 ++
 1.17488 ++	.fill	32744, 1, 0x00
 1.17489 ++far_positive:
 1.17490 ++	sub	r12, sp, 0
 1.17491 ++	.fill	16, 1, 0x00
 1.17492 ++toofar_positive:
 1.17493 ++	sub	lr, pc, 0
 1.17494 ++
 1.17495 ++	.data
 1.17496 ++different_section:
 1.17497 ++	.long	0x12345678
 1.17498 +--- /dev/null
 1.17499 ++++ b/gas/testsuite/gas/avr32/pcrel.d
 1.17500 +@@ -0,0 +1,64 @@
 1.17501 ++#as:
 1.17502 ++#objdump: -dr
 1.17503 ++#name: pcrel
 1.17504 ++
 1.17505 ++.*: +file format .*
 1.17506 ++
 1.17507 ++Disassembly of section \.text:
 1.17508 ++
 1.17509 ++00000000 <test_rjmp>:
 1.17510 ++   0:	d7 03       	nop
 1.17511 ++   2:	c0 28       	rjmp 6 <test_rjmp\+0x6>
 1.17512 ++   4:	d7 03       	nop
 1.17513 ++   6:	e0 8f 00 00 	bral 6 <test_rjmp\+0x6>
 1.17514 ++			6: R_AVR32_22H_PCREL	extsym10
 1.17515 ++
 1.17516 ++0000000a <test_rcall>:
 1.17517 ++   a:	d7 03       	nop
 1.17518 ++0000000c <test_rcall2>:
 1.17519 ++   c:	c0 2c       	rcall 10 <test_rcall2\+0x4>
 1.17520 ++   e:	d7 03       	nop
 1.17521 ++  10:	e0 a0 00 00 	rcall 10 <test_rcall2\+0x4>
 1.17522 ++			10: R_AVR32_22H_PCREL	extsym21
 1.17523 ++
 1.17524 ++00000014 <test_branch>:
 1.17525 ++  14:	c0 31       	brne 1a <test_branch\+0x6>
 1.17526 ++  16:	e0 8f 00 00 	bral 16 <test_branch\+0x2>
 1.17527 ++			16: R_AVR32_22H_PCREL	test_branch
 1.17528 ++  1a:	e0 80 00 00 	breq 1a <test_branch\+0x6>
 1.17529 ++			1a: R_AVR32_22H_PCREL	extsym21
 1.17530 ++
 1.17531 ++0000001e <test_lddpc>:
 1.17532 ++  1e:	48 30       	lddpc r0,28 <sym1>
 1.17533 ++  20:	48 20       	lddpc r0,28 <sym1>
 1.17534 ++  22:	fe f0 00 00 	ld.w r0,pc\[0\]
 1.17535 ++			22: R_AVR32_16B_PCREL	extsym16
 1.17536 ++	\.\.\.
 1.17537 ++
 1.17538 ++00000028 <sym1>:
 1.17539 ++  28:	d7 03       	nop
 1.17540 ++  2a:	d7 03       	nop
 1.17541 ++
 1.17542 ++0000002c <test_local>:
 1.17543 ++  2c:	48 20       	lddpc r0,34 <test_local\+0x8>
 1.17544 ++  2e:	48 30       	lddpc r0,38 <test_local\+0xc>
 1.17545 ++  30:	48 20       	lddpc r0,38 <test_local\+0xc>
 1.17546 ++  32:	00 00       	add r0,r0
 1.17547 ++  34:	d7 03       	nop
 1.17548 ++  36:	d7 03       	nop
 1.17549 ++  38:	d7 03       	nop
 1.17550 ++  3a:	d7 03       	nop
 1.17551 ++
 1.17552 ++Disassembly of section \.text\.init:
 1.17553 ++
 1.17554 ++00000000 <test_inter_section>:
 1.17555 ++   0:	e0 a0 .. .. 	rcall [0-9a-f]+ <.*>
 1.17556 ++			0: R_AVR32_22H_PCREL	test_rcall
 1.17557 ++   4:	d7 03       	nop
 1.17558 ++   6:	e0 a0 .. .. 	rcall [0-9a-f]+ <.*>
 1.17559 ++			6: R_AVR32_22H_PCREL	test_rcall
 1.17560 ++   a:	e0 a0 .. .. 	rcall [0-9a-z]+ <.*>
 1.17561 ++			a: R_AVR32_22H_PCREL	\.text\+0xc
 1.17562 ++   e:	d7 03       	nop
 1.17563 ++  10:	e0 a0 .. .. 	rcall [0-9a-f]+ <.*>
 1.17564 ++			10: R_AVR32_22H_PCREL	\.text\+0xc
 1.17565 +--- /dev/null
 1.17566 ++++ b/gas/testsuite/gas/avr32/pcrel.s
 1.17567 +@@ -0,0 +1,57 @@
 1.17568 ++
 1.17569 ++        .text
 1.17570 ++        .global test_rjmp
 1.17571 ++test_rjmp:
 1.17572 ++        nop
 1.17573 ++        rjmp    0f
 1.17574 ++        nop
 1.17575 ++0:      rjmp    extsym10
 1.17576 ++
 1.17577 ++        .global test_rcall
 1.17578 ++test_rcall:
 1.17579 ++        nop
 1.17580 ++test_rcall2:
 1.17581 ++        rcall   0f
 1.17582 ++        nop
 1.17583 ++0:      rcall   extsym21
 1.17584 ++
 1.17585 ++        .global test_branch
 1.17586 ++test_branch:
 1.17587 ++        brne    0f
 1.17588 ++	/* This will generate a reloc since test_branch is global */
 1.17589 ++        bral    test_branch
 1.17590 ++0:	breq    extsym21
 1.17591 ++
 1.17592 ++        .global test_lddpc
 1.17593 ++test_lddpc:
 1.17594 ++        lddpc   r0,sym1
 1.17595 ++        lddpc   r0,sym1
 1.17596 ++        lddpc   r0,extsym16
 1.17597 ++
 1.17598 ++        .align	2
 1.17599 ++sym1:   nop
 1.17600 ++        nop
 1.17601 ++
 1.17602 ++	.global	test_local
 1.17603 ++test_local:
 1.17604 ++	lddpc	r0, .LC1
 1.17605 ++	lddpc	r0, .LC2
 1.17606 ++	lddpc	r0, .LC1 + 0x4
 1.17607 ++
 1.17608 ++	.align	2
 1.17609 ++.LC1:
 1.17610 ++	nop
 1.17611 ++	nop
 1.17612 ++.LC2:
 1.17613 ++	nop
 1.17614 ++	nop
 1.17615 ++
 1.17616 ++	.section .text.init,"ax"
 1.17617 ++	.global test_inter_section
 1.17618 ++test_inter_section:
 1.17619 ++	rcall	test_rcall
 1.17620 ++	nop
 1.17621 ++	rcall	test_rcall
 1.17622 ++	rcall	test_rcall2
 1.17623 ++	nop
 1.17624 ++	rcall	test_rcall2
 1.17625 +--- /dev/null
 1.17626 ++++ b/gas/testsuite/gas/avr32/pico.d
 1.17627 +@@ -0,0 +1,149 @@
 1.17628 ++#as:
 1.17629 ++#objdump: -dr
 1.17630 ++#name: pico
 1.17631 ++
 1.17632 ++.*: +file format .*
 1.17633 ++
 1.17634 ++Disassembly of section \.text:
 1.17635 ++
 1.17636 ++[0-9a-f]* <picosvmac>:
 1.17637 ++ *[0-9a-f]*:	e1 a6 20 00 	cop cp1,cr0,cr0,cr0,0xc
 1.17638 ++ *[0-9a-f]*:	e1 a7 2b bb 	cop cp1,cr11,cr11,cr11,0xe
 1.17639 ++ *[0-9a-f]*:	e1 a6 3a 05 	cop cp1,cr10,cr0,cr5,0xd
 1.17640 ++ *[0-9a-f]*:	e1 a7 36 90 	cop cp1,cr6,cr9,cr0,0xf
 1.17641 ++
 1.17642 ++[0-9a-f]* <picosvmul>:
 1.17643 ++ *[0-9a-f]*:	e1 a4 20 00 	cop cp1,cr0,cr0,cr0,0x8
 1.17644 ++ *[0-9a-f]*:	e1 a5 2b bb 	cop cp1,cr11,cr11,cr11,0xa
 1.17645 ++ *[0-9a-f]*:	e1 a4 3a 05 	cop cp1,cr10,cr0,cr5,0x9
 1.17646 ++ *[0-9a-f]*:	e1 a5 36 90 	cop cp1,cr6,cr9,cr0,0xb
 1.17647 ++
 1.17648 ++[0-9a-f]* <picovmac>:
 1.17649 ++ *[0-9a-f]*:	e1 a2 20 00 	cop cp1,cr0,cr0,cr0,0x4
 1.17650 ++ *[0-9a-f]*:	e1 a3 2b bb 	cop cp1,cr11,cr11,cr11,0x6
 1.17651 ++ *[0-9a-f]*:	e1 a2 3a 05 	cop cp1,cr10,cr0,cr5,0x5
 1.17652 ++ *[0-9a-f]*:	e1 a3 36 90 	cop cp1,cr6,cr9,cr0,0x7
 1.17653 ++
 1.17654 ++[0-9a-f]* <picovmul>:
 1.17655 ++ *[0-9a-f]*:	e1 a0 20 00 	cop cp1,cr0,cr0,cr0,0x0
 1.17656 ++ *[0-9a-f]*:	e1 a1 2b bb 	cop cp1,cr11,cr11,cr11,0x2
 1.17657 ++ *[0-9a-f]*:	e1 a0 3a 05 	cop cp1,cr10,cr0,cr5,0x1
 1.17658 ++ *[0-9a-f]*:	e1 a1 36 90 	cop cp1,cr6,cr9,cr0,0x3
 1.17659 ++
 1.17660 ++[0-9a-f]* <picold_d>:
 1.17661 ++ *[0-9a-f]*:	e9 af 3e ff 	ldc\.d cp1,cr14,pc\[0x3fc\]
 1.17662 ++ *[0-9a-f]*:	e9 a0 30 ff 	ldc\.d cp1,cr0,r0\[0x3fc\]
 1.17663 ++ *[0-9a-f]*:	e9 a0 30 00 	ldc\.d cp1,cr0,r0\[0x0\]
 1.17664 ++ *[0-9a-f]*:	ef a8 26 50 	ldc\.d cp1,cr6,--r8
 1.17665 ++ *[0-9a-f]*:	ef a7 28 50 	ldc\.d cp1,cr8,--r7
 1.17666 ++ *[0-9a-f]*:	ef aa 32 65 	ldc\.d cp1,cr2,r10\[r5<<0x2\]
 1.17667 ++ *[0-9a-f]*:	ef a3 3c 46 	ldc\.d cp1,cr12,r3\[r6\]
 1.17668 ++
 1.17669 ++[0-9a-f]* <picold_w>:
 1.17670 ++ *[0-9a-f]*:	e9 af 2f ff 	ldc\.w cp1,cr15,pc\[0x3fc\]
 1.17671 ++ *[0-9a-f]*:	e9 a0 20 ff 	ldc\.w cp1,cr0,r0\[0x3fc\]
 1.17672 ++ *[0-9a-f]*:	e9 a0 20 00 	ldc\.w cp1,cr0,r0\[0x0\]
 1.17673 ++ *[0-9a-f]*:	ef a8 27 40 	ldc\.w cp1,cr7,--r8
 1.17674 ++ *[0-9a-f]*:	ef a7 28 40 	ldc\.w cp1,cr8,--r7
 1.17675 ++ *[0-9a-f]*:	ef aa 31 25 	ldc\.w cp1,cr1,r10\[r5<<0x2\]
 1.17676 ++ *[0-9a-f]*:	ef a3 3d 06 	ldc\.w cp1,cr13,r3\[r6\]
 1.17677 ++
 1.17678 ++[0-9a-f]* <picoldm_d>:
 1.17679 ++ *[0-9a-f]*:	ed af 24 ff 	ldcm\.d cp1,pc,cr0-cr15
 1.17680 ++ *[0-9a-f]*:	ed a0 24 01 	ldcm\.d cp1,r0,cr0-cr1
 1.17681 ++ *[0-9a-f]*:	ed a7 24 80 	ldcm\.d cp1,r7,cr14-cr15
 1.17682 ++ *[0-9a-f]*:	ed a8 24 7f 	ldcm\.d cp1,r8,cr0-cr13
 1.17683 ++
 1.17684 ++[0-9a-f]* <picoldm_d_pu>:
 1.17685 ++ *[0-9a-f]*:	ed af 34 ff 	ldcm\.d cp1,pc\+\+,cr0-cr15
 1.17686 ++ *[0-9a-f]*:	ed a0 34 01 	ldcm\.d cp1,r0\+\+,cr0-cr1
 1.17687 ++ *[0-9a-f]*:	ed a7 34 80 	ldcm\.d cp1,r7\+\+,cr14-cr15
 1.17688 ++ *[0-9a-f]*:	ed a8 34 7f 	ldcm\.d cp1,r8\+\+,cr0-cr13
 1.17689 ++
 1.17690 ++[0-9a-f]* <picoldm_w>:
 1.17691 ++ *[0-9a-f]*:	ed af 20 ff 	ldcm\.w cp1,pc,cr0-cr7
 1.17692 ++ *[0-9a-f]*:	ed a0 20 01 	ldcm\.w cp1,r0,cr0
 1.17693 ++ *[0-9a-f]*:	ed a7 20 80 	ldcm\.w cp1,r7,cr7
 1.17694 ++ *[0-9a-f]*:	ed a8 20 7f 	ldcm\.w cp1,r8,cr0-cr6
 1.17695 ++ *[0-9a-f]*:	ed af 21 ff 	ldcm\.w cp1,pc,cr8-cr15
 1.17696 ++ *[0-9a-f]*:	ed a0 21 01 	ldcm\.w cp1,r0,cr8
 1.17697 ++ *[0-9a-f]*:	ed a7 21 80 	ldcm\.w cp1,r7,cr15
 1.17698 ++ *[0-9a-f]*:	ed a8 21 7f 	ldcm\.w cp1,r8,cr8-cr14
 1.17699 ++
 1.17700 ++[0-9a-f]* <picoldm_w_pu>:
 1.17701 ++ *[0-9a-f]*:	ed af 30 ff 	ldcm\.w cp1,pc\+\+,cr0-cr7
 1.17702 ++ *[0-9a-f]*:	ed a0 30 01 	ldcm\.w cp1,r0\+\+,cr0
 1.17703 ++ *[0-9a-f]*:	ed a7 30 80 	ldcm\.w cp1,r7\+\+,cr7
 1.17704 ++ *[0-9a-f]*:	ed a8 30 7f 	ldcm\.w cp1,r8\+\+,cr0-cr6
 1.17705 ++ *[0-9a-f]*:	ed af 31 ff 	ldcm\.w cp1,pc\+\+,cr8-cr15
 1.17706 ++ *[0-9a-f]*:	ed a0 31 01 	ldcm\.w cp1,r0\+\+,cr8
 1.17707 ++ *[0-9a-f]*:	ed a7 31 80 	ldcm\.w cp1,r7\+\+,cr15
 1.17708 ++ *[0-9a-f]*:	ed a8 31 7f 	ldcm\.w cp1,r8\+\+,cr8-cr14
 1.17709 ++
 1.17710 ++[0-9a-f]* <picomv_d>:
 1.17711 ++ *[0-9a-f]*:	ef ae 2e 30 	mvrc\.d cp1,cr14,lr
 1.17712 ++ *[0-9a-f]*:	ef a0 20 30 	mvrc\.d cp1,cr0,r0
 1.17713 ++ *[0-9a-f]*:	ef a8 26 30 	mvrc\.d cp1,cr6,r8
 1.17714 ++ *[0-9a-f]*:	ef a6 28 30 	mvrc\.d cp1,cr8,r6
 1.17715 ++ *[0-9a-f]*:	ef ae 2e 10 	mvcr\.d cp1,lr,cr14
 1.17716 ++ *[0-9a-f]*:	ef a0 20 10 	mvcr\.d cp1,r0,cr0
 1.17717 ++ *[0-9a-f]*:	ef a8 26 10 	mvcr\.d cp1,r8,cr6
 1.17718 ++ *[0-9a-f]*:	ef a6 28 10 	mvcr\.d cp1,r6,cr8
 1.17719 ++
 1.17720 ++[0-9a-f]* <picomv_w>:
 1.17721 ++ *[0-9a-f]*:	ef af 2f 20 	mvrc\.w cp1,cr15,pc
 1.17722 ++ *[0-9a-f]*:	ef a0 20 20 	mvrc\.w cp1,cr0,r0
 1.17723 ++ *[0-9a-f]*:	ef a8 27 20 	mvrc\.w cp1,cr7,r8
 1.17724 ++ *[0-9a-f]*:	ef a7 28 20 	mvrc\.w cp1,cr8,r7
 1.17725 ++ *[0-9a-f]*:	ef af 2f 00 	mvcr\.w cp1,pc,cr15
 1.17726 ++ *[0-9a-f]*:	ef a0 20 00 	mvcr\.w cp1,r0,cr0
 1.17727 ++ *[0-9a-f]*:	ef a8 27 00 	mvcr\.w cp1,r8,cr7
 1.17728 ++ *[0-9a-f]*:	ef a7 28 00 	mvcr\.w cp1,r7,cr8
 1.17729 ++
 1.17730 ++[0-9a-f]* <picost_d>:
 1.17731 ++ *[0-9a-f]*:	eb af 3e ff 	stc\.d cp1,pc\[0x3fc\],cr14
 1.17732 ++ *[0-9a-f]*:	eb a0 30 00 	stc\.d cp1,r0\[0x0\],cr0
 1.17733 ++ *[0-9a-f]*:	ef a8 26 70 	stc\.d cp1,r8\+\+,cr6
 1.17734 ++ *[0-9a-f]*:	ef a7 28 70 	stc\.d cp1,r7\+\+,cr8
 1.17735 ++ *[0-9a-f]*:	ef aa 32 e5 	stc\.d cp1,r10\[r5<<0x2\],cr2
 1.17736 ++ *[0-9a-f]*:	ef a3 3c c6 	stc\.d cp1,r3\[r6\],cr12
 1.17737 ++
 1.17738 ++[0-9a-f]* <picost_w>:
 1.17739 ++ *[0-9a-f]*:	eb af 2f ff 	stc\.w cp1,pc\[0x3fc\],cr15
 1.17740 ++ *[0-9a-f]*:	eb a0 20 00 	stc\.w cp1,r0\[0x0\],cr0
 1.17741 ++ *[0-9a-f]*:	ef a8 27 60 	stc\.w cp1,r8\+\+,cr7
 1.17742 ++ *[0-9a-f]*:	ef a7 28 60 	stc\.w cp1,r7\+\+,cr8
 1.17743 ++ *[0-9a-f]*:	ef aa 31 a5 	stc\.w cp1,r10\[r5<<0x2\],cr1
 1.17744 ++ *[0-9a-f]*:	ef a3 3d 86 	stc\.w cp1,r3\[r6\],cr13
 1.17745 ++
 1.17746 ++[0-9a-f]* <picostm_d>:
 1.17747 ++ *[0-9a-f]*:	ed af 25 ff 	stcm\.d cp1,pc,cr0-cr15
 1.17748 ++ *[0-9a-f]*:	ed a0 25 01 	stcm\.d cp1,r0,cr0-cr1
 1.17749 ++ *[0-9a-f]*:	ed a7 25 80 	stcm\.d cp1,r7,cr14-cr15
 1.17750 ++ *[0-9a-f]*:	ed a8 25 7f 	stcm\.d cp1,r8,cr0-cr13
 1.17751 ++
 1.17752 ++[0-9a-f]* <picostm_d_pu>:
 1.17753 ++ *[0-9a-f]*:	ed af 35 ff 	stcm\.d cp1,--pc,cr0-cr15
 1.17754 ++ *[0-9a-f]*:	ed a0 35 01 	stcm\.d cp1,--r0,cr0-cr1
 1.17755 ++ *[0-9a-f]*:	ed a7 35 80 	stcm\.d cp1,--r7,cr14-cr15
 1.17756 ++ *[0-9a-f]*:	ed a8 35 7f 	stcm\.d cp1,--r8,cr0-cr13
 1.17757 ++
 1.17758 ++[0-9a-f]* <picostm_w>:
 1.17759 ++ *[0-9a-f]*:	ed af 22 ff 	stcm\.w cp1,pc,cr0-cr7
 1.17760 ++ *[0-9a-f]*:	ed a0 22 01 	stcm\.w cp1,r0,cr0
 1.17761 ++ *[0-9a-f]*:	ed a7 22 80 	stcm\.w cp1,r7,cr7
 1.17762 ++ *[0-9a-f]*:	ed a8 22 7f 	stcm\.w cp1,r8,cr0-cr6
 1.17763 ++ *[0-9a-f]*:	ed af 23 ff 	stcm\.w cp1,pc,cr8-cr15
 1.17764 ++ *[0-9a-f]*:	ed a0 23 01 	stcm\.w cp1,r0,cr8
 1.17765 ++ *[0-9a-f]*:	ed a7 23 80 	stcm\.w cp1,r7,cr15
 1.17766 ++ *[0-9a-f]*:	ed a8 23 7f 	stcm\.w cp1,r8,cr8-cr14
 1.17767 ++
 1.17768 ++[0-9a-f]* <picostm_w_pu>:
 1.17769 ++ *[0-9a-f]*:	ed af 32 ff 	stcm\.w cp1,--pc,cr0-cr7
 1.17770 ++ *[0-9a-f]*:	ed a0 32 01 	stcm\.w cp1,--r0,cr0
 1.17771 ++ *[0-9a-f]*:	ed a7 32 80 	stcm\.w cp1,--r7,cr7
 1.17772 ++ *[0-9a-f]*:	ed a8 32 7f 	stcm\.w cp1,--r8,cr0-cr6
 1.17773 ++ *[0-9a-f]*:	ed af 33 ff 	stcm\.w cp1,--pc,cr8-cr15
 1.17774 ++ *[0-9a-f]*:	ed a0 33 01 	stcm\.w cp1,--r0,cr8
 1.17775 ++ *[0-9a-f]*:	ed a7 33 80 	stcm\.w cp1,--r7,cr15
 1.17776 ++ *[0-9a-f]*:	ed a8 33 7f 	stcm\.w cp1,--r8,cr8-cr14
 1.17777 +--- /dev/null
 1.17778 ++++ b/gas/testsuite/gas/avr32/pico.s
 1.17779 +@@ -0,0 +1,144 @@
 1.17780 ++
 1.17781 ++	.text
 1.17782 ++	.global	picosvmac
 1.17783 ++picosvmac:
 1.17784 ++	picosvmac	out0, in0, in0, in0
 1.17785 ++	picosvmac	out2, in11, in11, in11
 1.17786 ++	picosvmac	out1, in10, in0, in5
 1.17787 ++	picosvmac	out3, in6, in9, in0
 1.17788 ++	.global picosvmul
 1.17789 ++picosvmul:
 1.17790 ++	picosvmul	out0, in0, in0, in0
 1.17791 ++	picosvmul	out2, in11, in11, in11
 1.17792 ++	picosvmul	out1, in10, in0, in5
 1.17793 ++	picosvmul	out3, in6, in9, in0
 1.17794 ++	.global picovmac
 1.17795 ++picovmac:
 1.17796 ++	picovmac	out0, in0, in0, in0
 1.17797 ++	picovmac	out2, in11, in11, in11
 1.17798 ++	picovmac	out1, in10, in0, in5
 1.17799 ++	picovmac	out3, in6, in9, in0
 1.17800 ++	.global picovmul
 1.17801 ++picovmul:
 1.17802 ++	picovmul	out0, in0, in0, in0
 1.17803 ++	picovmul	out2, in11, in11, in11
 1.17804 ++	picovmul	out1, in10, in0, in5
 1.17805 ++	picovmul	out3, in6, in9, in0
 1.17806 ++	.global	picold_d
 1.17807 ++picold_d:
 1.17808 ++	picold.d	vmu2_out, pc[1020]
 1.17809 ++	picold.d	inpix2, r0[1020]
 1.17810 ++	picold.d	inpix2, r0[0]
 1.17811 ++	picold.d	coeff0_a, --r8
 1.17812 ++	picold.d	coeff1_a, --r7
 1.17813 ++	picold.d	inpix0, r10[r5 << 2]
 1.17814 ++	picold.d	vmu0_out, r3[r6 << 0]
 1.17815 ++	.global	picold_w
 1.17816 ++picold_w:	
 1.17817 ++	picold.w	config, pc[1020]
 1.17818 ++	picold.w	inpix2, r0[1020]
 1.17819 ++	picold.w	inpix2, r0[0]
 1.17820 ++	picold.w	coeff0_b, --r8
 1.17821 ++	picold.w	coeff1_a, --r7
 1.17822 ++	picold.w	inpix1, r10[r5 << 2]
 1.17823 ++	picold.w	vmu1_out, r3[r6 << 0]
 1.17824 ++	.global	picoldm_d
 1.17825 ++picoldm_d:
 1.17826 ++	picoldm.d	pc, inpix2-config
 1.17827 ++	picoldm.d	r0, inpix2, inpix1
 1.17828 ++	picoldm.d	r7, vmu2_out, config
 1.17829 ++	picoldm.d	r8, inpix2-vmu1_out
 1.17830 ++	.global	picoldm_d_pu
 1.17831 ++picoldm_d_pu:
 1.17832 ++	picoldm.d	pc++, inpix2, inpix1, inpix0, outpix2, outpix1, outpix0, coeff0_a, coeff0_b, coeff1_a, coeff1_b, coeff2_a, coeff2_b, vmu0_out, vmu1_out, vmu2_out, config
 1.17833 ++	picoldm.d	r0++, inpix2, inpix1
 1.17834 ++	picoldm.d	r7++, vmu2_out, config
 1.17835 ++	picoldm.d	r8++, inpix2, inpix1, inpix0, outpix2, outpix1, outpix0, coeff0_a, coeff0_b, coeff1_a, coeff1_b, coeff2_a, coeff2_b, vmu0_out, vmu1_out
 1.17836 ++	.global	picoldm_w
 1.17837 ++picoldm_w:
 1.17838 ++	picoldm.w	pc, inpix2-coeff0_b
 1.17839 ++	picoldm.w	r0, inpix2
 1.17840 ++	picoldm.w	r7, coeff0_b
 1.17841 ++	picoldm.w	r8, inpix2-coeff0_a
 1.17842 ++	picoldm.w	pc, coeff1_a-config
 1.17843 ++	picoldm.w	r0, coeff1_a
 1.17844 ++	picoldm.w	r7, config
 1.17845 ++	picoldm.w	r8, coeff1_a-vmu2_out
 1.17846 ++	.global	picoldm_w_pu
 1.17847 ++picoldm_w_pu:
 1.17848 ++	picoldm.w	pc++, inpix2-coeff0_b
 1.17849 ++	picoldm.w	r0++, inpix2
 1.17850 ++	picoldm.w	r7++, coeff0_b
 1.17851 ++	picoldm.w	r8++, inpix2-coeff0_a
 1.17852 ++	picoldm.w	pc++, coeff1_a-config
 1.17853 ++	picoldm.w	r0++, coeff1_a
 1.17854 ++	picoldm.w	r7++, config
 1.17855 ++	picoldm.w	r8++, coeff1_a-vmu2_out
 1.17856 ++	.global	picomv_d
 1.17857 ++picomv_d:
 1.17858 ++	picomv.d	vmu2_out, lr
 1.17859 ++	picomv.d	inpix2, r0
 1.17860 ++	picomv.d	coeff0_a, r8
 1.17861 ++	picomv.d	coeff1_a, r6
 1.17862 ++	picomv.d	pc, vmu2_out
 1.17863 ++	picomv.d	r0, inpix2
 1.17864 ++	picomv.d	r8, coeff0_a
 1.17865 ++	picomv.d	r6, coeff1_a
 1.17866 ++	.global	picomv_w
 1.17867 ++picomv_w:
 1.17868 ++	picomv.w	config, pc
 1.17869 ++	picomv.w	inpix2, r0
 1.17870 ++	picomv.w	coeff0_b, r8
 1.17871 ++	picomv.w	coeff1_a, r7
 1.17872 ++	picomv.w	pc, config
 1.17873 ++	picomv.w	r0, inpix2
 1.17874 ++	picomv.w	r8, coeff0_b
 1.17875 ++	picomv.w	r7, coeff1_a
 1.17876 ++	.global	picost_d
 1.17877 ++picost_d:
 1.17878 ++	picost.d	pc[1020], vmu2_out
 1.17879 ++	picost.d	r0[0], inpix2
 1.17880 ++	picost.d	r8++, coeff0_a
 1.17881 ++	picost.d	r7++, coeff1_a
 1.17882 ++	picost.d	r10[r5 << 2], inpix0
 1.17883 ++	picost.d	r3[r6 << 0], vmu0_out
 1.17884 ++	.global	picost_w
 1.17885 ++picost_w:	
 1.17886 ++	picost.w	pc[1020], config
 1.17887 ++	picost.w	r0[0], inpix2
 1.17888 ++	picost.w	r8++, coeff0_b
 1.17889 ++	picost.w	r7++, coeff1_a
 1.17890 ++	picost.w	r10[r5 << 2], inpix1
 1.17891 ++	picost.w	r3[r6 << 0], vmu1_out
 1.17892 ++	.global	picostm_d
 1.17893 ++picostm_d:
 1.17894 ++	picostm.d	pc, inpix2-config
 1.17895 ++	picostm.d	r0, inpix2, inpix1
 1.17896 ++	picostm.d	r7, vmu2_out, config
 1.17897 ++	picostm.d	r8, inpix2-vmu1_out
 1.17898 ++	.global	picostm_d_pu
 1.17899 ++picostm_d_pu:
 1.17900 ++	picostm.d	--pc, inpix2, inpix1, inpix0, outpix2, outpix1, outpix0, coeff0_a, coeff0_b, coeff1_a, coeff1_b, coeff2_a, coeff2_b, vmu0_out, vmu1_out, vmu2_out, config
 1.17901 ++	picostm.d	--r0, inpix2, inpix1
 1.17902 ++	picostm.d	--r7, vmu2_out, config
 1.17903 ++	picostm.d	--r8, inpix2, inpix1, inpix0, outpix2, outpix1, outpix0, coeff0_a, coeff0_b, coeff1_a, coeff1_b, coeff2_a, coeff2_b, vmu0_out, vmu1_out
 1.17904 ++	.global	picostm_w
 1.17905 ++picostm_w:
 1.17906 ++	picostm.w	pc, inpix2-coeff0_b
 1.17907 ++	picostm.w	r0, inpix2
 1.17908 ++	picostm.w	r7, coeff0_b
 1.17909 ++	picostm.w	r8, inpix2-coeff0_a
 1.17910 ++	picostm.w	pc, coeff1_a-config
 1.17911 ++	picostm.w	r0, coeff1_a
 1.17912 ++	picostm.w	r7, config
 1.17913 ++	picostm.w	r8, coeff1_a-vmu2_out
 1.17914 ++	.global	picostm_w_pu
 1.17915 ++picostm_w_pu:
 1.17916 ++	picostm.w	--pc, inpix2-coeff0_b
 1.17917 ++	picostm.w	--r0, inpix2
 1.17918 ++	picostm.w	--r7, coeff0_b
 1.17919 ++	picostm.w	--r8, inpix2-coeff0_a
 1.17920 ++	picostm.w	--pc, coeff1_a-config
 1.17921 ++	picostm.w	--r0, coeff1_a
 1.17922 ++	picostm.w	--r7, config
 1.17923 ++	picostm.w	--r8, coeff1_a-vmu2_out
 1.17924 +--- /dev/null
 1.17925 ++++ b/gas/testsuite/gas/avr32/pic_reloc.d
 1.17926 +@@ -0,0 +1,27 @@
 1.17927 ++#as:
 1.17928 ++#objdump: -dr
 1.17929 ++#name: pic_reloc
 1.17930 ++
 1.17931 ++.*: +file format .*
 1.17932 ++
 1.17933 ++Disassembly of section \.text:
 1.17934 ++
 1.17935 ++00000000 <mcall_got>:
 1.17936 ++   0:	f0 16 00 00 	mcall r6\[0\]
 1.17937 ++			0: R_AVR32_GOT18SW	extfunc
 1.17938 ++   4:	f0 16 00 00 	mcall r6\[0\]
 1.17939 ++			4: R_AVR32_GOT18SW	\.L1
 1.17940 ++   8:	f0 16 00 00 	mcall r6\[0\]
 1.17941 ++			8: R_AVR32_GOT18SW	\.L2
 1.17942 ++   c:	f0 16 00 00 	mcall r6\[0\]
 1.17943 ++			c: R_AVR32_GOT18SW	mcall_got
 1.17944 ++
 1.17945 ++00000010 <ldw_got>:
 1.17946 ++  10:	ec f0 00 00 	ld.w r0,r6\[0\]
 1.17947 ++			10: R_AVR32_GOT16S	extvar
 1.17948 ++  14:	ec f0 00 00 	ld.w r0,r6\[0\]
 1.17949 ++			14: R_AVR32_GOT16S	\.L3
 1.17950 ++  18:	ec f0 00 00 	ld.w r0,r6\[0\]
 1.17951 ++			18: R_AVR32_GOT16S	\.L4
 1.17952 ++  1c:	ec f0 00 00 	ld.w r0,r6\[0\]
 1.17953 ++			1c: R_AVR32_GOT16S	ldw_got
 1.17954 +--- /dev/null
 1.17955 ++++ b/gas/testsuite/gas/avr32/pic_reloc.s
 1.17956 +@@ -0,0 +1,18 @@
 1.17957 ++
 1.17958 ++	.text
 1.17959 ++	.global	mcall_got
 1.17960 ++mcall_got:
 1.17961 ++.L1:
 1.17962 ++	mcall	r6[extfunc@got]
 1.17963 ++	mcall	r6[.L1@got]
 1.17964 ++	mcall	r6[.L2@got]
 1.17965 ++	mcall	r6[mcall_got@got]
 1.17966 ++.L2:
 1.17967 ++
 1.17968 ++	.global	ldw_got
 1.17969 ++ldw_got:
 1.17970 ++.L3:	ld.w	r0,r6[extvar@got]
 1.17971 ++	ld.w	r0,r6[.L3@got]
 1.17972 ++	ld.w	r0,r6[.L4@got]
 1.17973 ++	ld.w	r0,r6[ldw_got@got]
 1.17974 ++.L4:
 1.17975 +--- /dev/null
 1.17976 ++++ b/gas/testsuite/gas/avr32/symdiff.d
 1.17977 +@@ -0,0 +1,24 @@
 1.17978 ++#source: symdiff.s
 1.17979 ++#as:
 1.17980 ++#objdump: -dr
 1.17981 ++#name: symdiff
 1.17982 ++
 1.17983 ++.*: +file format .*
 1.17984 ++
 1.17985 ++Disassembly of section \.text:
 1.17986 ++
 1.17987 ++00000000 <diff32>:
 1.17988 ++   0:	00 00       	add r0,r0
 1.17989 ++   2:	00 04       	add r4,r0
 1.17990 ++
 1.17991 ++00000004 <diff16>:
 1.17992 ++   4:	00 04       	add r4,r0
 1.17993 ++
 1.17994 ++00000006 <diff8>:
 1.17995 ++   6:	04 00       	add r0,r2
 1.17996 ++
 1.17997 ++00000008 <symdiff_test>:
 1.17998 ++   8:	d7 03       	nop
 1.17999 ++   a:	d7 03       	nop
 1.18000 ++   c:	d7 03       	nop
 1.18001 ++   e:	d7 03       	nop
 1.18002 +--- /dev/null
 1.18003 ++++ b/gas/testsuite/gas/avr32/symdiff_linkrelax.d
 1.18004 +@@ -0,0 +1,28 @@
 1.18005 ++#source: symdiff.s
 1.18006 ++#as: --linkrelax
 1.18007 ++#objdump: -dr
 1.18008 ++#name: symdiff_linkrelax
 1.18009 ++
 1.18010 ++.*: +file format .*
 1.18011 ++
 1.18012 ++Disassembly of section \.text:
 1.18013 ++
 1.18014 ++00000000 <diff32>:
 1.18015 ++   0:	00 00       	add r0,r0
 1.18016 ++			0: R_AVR32_DIFF32	\.text\+0xa
 1.18017 ++   2:	00 04       	add r4,r0
 1.18018 ++
 1.18019 ++00000004 <diff16>:
 1.18020 ++   4:	00 04       	add r4,r0
 1.18021 ++			4: R_AVR32_DIFF16	\.text\+0xa
 1.18022 ++
 1.18023 ++00000006 <diff8>:
 1.18024 ++   6:	04 00       	add r0,r2
 1.18025 ++			6: R_AVR32_DIFF8	\.text\+0xa
 1.18026 ++			7: R_AVR32_ALIGN	\*ABS\*\+0x1
 1.18027 ++
 1.18028 ++00000008 <symdiff_test>:
 1.18029 ++   8:	d7 03       	nop
 1.18030 ++   a:	d7 03       	nop
 1.18031 ++   c:	d7 03       	nop
 1.18032 ++   e:	d7 03       	nop
 1.18033 +--- /dev/null
 1.18034 ++++ b/gas/testsuite/gas/avr32/symdiff.s
 1.18035 +@@ -0,0 +1,19 @@
 1.18036 ++
 1.18037 ++	.text
 1.18038 ++	.global	diff32
 1.18039 ++diff32:
 1.18040 ++	.long	.L2 - .L1
 1.18041 ++	.global	diff16
 1.18042 ++diff16:
 1.18043 ++	.short	.L2 - .L1
 1.18044 ++	.global	diff8
 1.18045 ++diff8:
 1.18046 ++	.byte	.L2 - .L1
 1.18047 ++
 1.18048 ++	.global	symdiff_test
 1.18049 ++	.align	1
 1.18050 ++symdiff_test:
 1.18051 ++	nop
 1.18052 ++.L1:	nop
 1.18053 ++	nop
 1.18054 ++.L2:	nop
 1.18055 +--- a/gas/write.c
 1.18056 ++++ b/gas/write.c
 1.18057 +@@ -1955,6 +1955,10 @@ relax_frag (segT segment, fragS *fragP, 
 1.18058 + 
 1.18059 + #endif /* defined (TC_GENERIC_RELAX_TABLE)  */
 1.18060 + 
 1.18061 ++#ifdef TC_RELAX_ALIGN
 1.18062 ++#define RELAX_ALIGN(SEG, FRAG, ADDR) TC_RELAX_ALIGN(SEG, FRAG, ADDR)
 1.18063 ++#else
 1.18064 ++#define RELAX_ALIGN(SEG, FRAG, ADDR) relax_align(ADDR, (FRAG)->fr_offset)
 1.18065 + /* Relax_align. Advance location counter to next address that has 'alignment'
 1.18066 +    lowest order bits all 0s, return size of adjustment made.  */
 1.18067 + static relax_addressT
 1.18068 +@@ -1974,6 +1978,7 @@ relax_align (register relax_addressT add
 1.18069 + #endif
 1.18070 +   return (new_address - address);
 1.18071 + }
 1.18072 ++#endif
 1.18073 + 
 1.18074 + /* Now we have a segment, not a crowd of sub-segments, we can make
 1.18075 +    fr_address values.
 1.18076 +@@ -2017,7 +2022,7 @@ relax_segment (struct frag *segment_frag
 1.18077 + 	case rs_align_code:
 1.18078 + 	case rs_align_test:
 1.18079 + 	  {
 1.18080 +-	    addressT offset = relax_align (address, (int) fragP->fr_offset);
 1.18081 ++	    addressT offset = RELAX_ALIGN(segment, fragP, address);
 1.18082 + 
 1.18083 + 	    if (fragP->fr_subtype != 0 && offset > fragP->fr_subtype)
 1.18084 + 	      offset = 0;
 1.18085 +@@ -2218,10 +2223,10 @@ relax_segment (struct frag *segment_frag
 1.18086 + 		{
 1.18087 + 		  addressT oldoff, newoff;
 1.18088 + 
 1.18089 +-		  oldoff = relax_align (was_address + fragP->fr_fix,
 1.18090 +-					(int) offset);
 1.18091 +-		  newoff = relax_align (address + fragP->fr_fix,
 1.18092 +-					(int) offset);
 1.18093 ++		  oldoff = RELAX_ALIGN (segment, fragP,
 1.18094 ++					was_address + fragP->fr_fix);
 1.18095 ++		  newoff = RELAX_ALIGN (segment, fragP,
 1.18096 ++					address + fragP->fr_fix);
 1.18097 + 
 1.18098 + 		  if (fragP->fr_subtype != 0)
 1.18099 + 		    {
 1.18100 +--- a/include/dis-asm.h
 1.18101 ++++ b/include/dis-asm.h
 1.18102 +@@ -204,13 +204,14 @@ typedef struct disassemble_info
 1.18103 + 
 1.18104 + } disassemble_info;
 1.18105 + 
 1.18106 +-
 1.18107 ++
 1.18108 + /* Standard disassemblers.  Disassemble one instruction at the given
 1.18109 +    target address.  Return number of octets processed.  */
 1.18110 + typedef int (*disassembler_ftype) (bfd_vma, disassemble_info *);
 1.18111 + 
 1.18112 + extern int print_insn_alpha		(bfd_vma, disassemble_info *);
 1.18113 + extern int print_insn_avr		(bfd_vma, disassemble_info *);
 1.18114 ++extern int print_insn_avr32		(bfd_vma, disassemble_info *);
 1.18115 + extern int print_insn_bfin		(bfd_vma, disassemble_info *);
 1.18116 + extern int print_insn_big_arm		(bfd_vma, disassemble_info *);
 1.18117 + extern int print_insn_big_mips		(bfd_vma, disassemble_info *);
 1.18118 +@@ -242,7 +243,7 @@ extern int print_insn_little_arm	(bfd_vm
 1.18119 + extern int print_insn_little_mips	(bfd_vma, disassemble_info *);
 1.18120 + extern int print_insn_little_or32	(bfd_vma, disassemble_info *);
 1.18121 + extern int print_insn_little_powerpc	(bfd_vma, disassemble_info *);
 1.18122 +-extern int print_insn_little_score      (bfd_vma, disassemble_info *); 
 1.18123 ++extern int print_insn_little_score      (bfd_vma, disassemble_info *);
 1.18124 + extern int print_insn_m32c	        (bfd_vma, disassemble_info *);
 1.18125 + extern int print_insn_m32r		(bfd_vma, disassemble_info *);
 1.18126 + extern int print_insn_m68hc11		(bfd_vma, disassemble_info *);
 1.18127 +@@ -290,7 +291,9 @@ extern void print_i386_disassembler_opti
 1.18128 + extern void print_mips_disassembler_options (FILE *);
 1.18129 + extern void print_ppc_disassembler_options (FILE *);
 1.18130 + extern void print_arm_disassembler_options (FILE *);
 1.18131 ++extern void print_avr32_disassembler_options (FILE *);
 1.18132 + extern void parse_arm_disassembler_option (char *);
 1.18133 ++extern void parse_avr32_disassembler_option (char *);
 1.18134 + extern int  get_arm_regname_num_options (void);
 1.18135 + extern int  set_arm_regname_option (int);
 1.18136 + extern int  get_arm_regnames (int, const char **, const char **, const char *const **);
 1.18137 +@@ -306,7 +309,7 @@ extern void disassemble_init_for_target 
 1.18138 + /* Document any target specific options available from the disassembler.  */
 1.18139 + extern void disassembler_usage (FILE *);
 1.18140 + 
 1.18141 +-
 1.18142 ++
 1.18143 + /* This block of definitions is for particular callers who read instructions
 1.18144 +    into a buffer before calling the instruction decoder.  */
 1.18145 + 
 1.18146 +--- /dev/null
 1.18147 ++++ b/include/elf/avr32.h
 1.18148 +@@ -0,0 +1,98 @@
 1.18149 ++/* AVR32 ELF support for BFD.
 1.18150 ++   Copyright 2003-2006 Atmel Corporation.
 1.18151 ++
 1.18152 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
 1.18153 ++
 1.18154 ++   This file is part of BFD, the Binary File Descriptor library.
 1.18155 ++
 1.18156 ++   This program is free software; you can redistribute it and/or
 1.18157 ++   modify it under the terms of the GNU General Public License as
 1.18158 ++   published by the Free Software Foundation; either version 2 of the
 1.18159 ++   License, or (at your option) any later version.
 1.18160 ++
 1.18161 ++   This program is distributed in the hope that it will be useful, but
 1.18162 ++   WITHOUT ANY WARRANTY; without even the implied warranty of
 1.18163 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 1.18164 ++   General Public License for more details.
 1.18165 ++
 1.18166 ++   You should have received a copy of the GNU General Public License
 1.18167 ++   along with this program; if not, write to the Free Software
 1.18168 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 1.18169 ++   02111-1307, USA.  */
 1.18170 ++
 1.18171 ++#include "elf/reloc-macros.h"
 1.18172 ++
 1.18173 ++/* CPU-specific flags for the ELF header e_flags field */
 1.18174 ++#define EF_AVR32_LINKRELAX		0x01
 1.18175 ++#define EF_AVR32_PIC			0x02
 1.18176 ++
 1.18177 ++START_RELOC_NUMBERS (elf_avr32_reloc_type)
 1.18178 ++    RELOC_NUMBER (R_AVR32_NONE,			0)
 1.18179 ++
 1.18180 ++    /* Data Relocations */
 1.18181 ++    RELOC_NUMBER (R_AVR32_32,			1)
 1.18182 ++    RELOC_NUMBER (R_AVR32_16,			2)
 1.18183 ++    RELOC_NUMBER (R_AVR32_8,			3)
 1.18184 ++    RELOC_NUMBER (R_AVR32_32_PCREL,		4)
 1.18185 ++    RELOC_NUMBER (R_AVR32_16_PCREL,		5)
 1.18186 ++    RELOC_NUMBER (R_AVR32_8_PCREL,		6)
 1.18187 ++    RELOC_NUMBER (R_AVR32_DIFF32,		7)
 1.18188 ++    RELOC_NUMBER (R_AVR32_DIFF16,		8)
 1.18189 ++    RELOC_NUMBER (R_AVR32_DIFF8,		9)
 1.18190 ++    RELOC_NUMBER (R_AVR32_GOT32,		10)
 1.18191 ++    RELOC_NUMBER (R_AVR32_GOT16,		11)
 1.18192 ++    RELOC_NUMBER (R_AVR32_GOT8,			12)
 1.18193 ++
 1.18194 ++    /* Normal Code Relocations */
 1.18195 ++    RELOC_NUMBER (R_AVR32_21S,			13)
 1.18196 ++    RELOC_NUMBER (R_AVR32_16U,			14)
 1.18197 ++    RELOC_NUMBER (R_AVR32_16S,			15)
 1.18198 ++    RELOC_NUMBER (R_AVR32_8S,			16)
 1.18199 ++    RELOC_NUMBER (R_AVR32_8S_EXT,		17)
 1.18200 ++
 1.18201 ++    /* PC-Relative Code Relocations */
 1.18202 ++    RELOC_NUMBER (R_AVR32_22H_PCREL,		18)
 1.18203 ++    RELOC_NUMBER (R_AVR32_18W_PCREL,		19)
 1.18204 ++    RELOC_NUMBER (R_AVR32_16B_PCREL,		20)
 1.18205 ++    RELOC_NUMBER (R_AVR32_16N_PCREL,		21)
 1.18206 ++    RELOC_NUMBER (R_AVR32_14UW_PCREL,		22)
 1.18207 ++    RELOC_NUMBER (R_AVR32_11H_PCREL,		23)
 1.18208 ++    RELOC_NUMBER (R_AVR32_10UW_PCREL,		24)
 1.18209 ++    RELOC_NUMBER (R_AVR32_9H_PCREL,		25)
 1.18210 ++    RELOC_NUMBER (R_AVR32_9UW_PCREL,		26)
 1.18211 ++
 1.18212 ++    /* Special Code Relocations */
 1.18213 ++    RELOC_NUMBER (R_AVR32_HI16,			27)
 1.18214 ++    RELOC_NUMBER (R_AVR32_LO16,			28)
 1.18215 ++
 1.18216 ++    /* PIC Relocations */
 1.18217 ++    RELOC_NUMBER (R_AVR32_GOTPC,		29)
 1.18218 ++    RELOC_NUMBER (R_AVR32_GOTCALL,		30)
 1.18219 ++    RELOC_NUMBER (R_AVR32_LDA_GOT,		31)
 1.18220 ++    RELOC_NUMBER (R_AVR32_GOT21S,		32)
 1.18221 ++    RELOC_NUMBER (R_AVR32_GOT18SW,		33)
 1.18222 ++    RELOC_NUMBER (R_AVR32_GOT16S,		34)
 1.18223 ++    RELOC_NUMBER (R_AVR32_GOT7UW,		35)
 1.18224 ++
 1.18225 ++    /* Constant Pool Relocations */
 1.18226 ++    RELOC_NUMBER (R_AVR32_32_CPENT,		36)
 1.18227 ++    RELOC_NUMBER (R_AVR32_CPCALL,		37)
 1.18228 ++    RELOC_NUMBER (R_AVR32_16_CP,		38)
 1.18229 ++    RELOC_NUMBER (R_AVR32_9W_CP,		39)
 1.18230 ++
 1.18231 ++    /* Dynamic Relocations */
 1.18232 ++    RELOC_NUMBER (R_AVR32_RELATIVE,		40)
 1.18233 ++    RELOC_NUMBER (R_AVR32_GLOB_DAT,		41)
 1.18234 ++    RELOC_NUMBER (R_AVR32_JMP_SLOT,		42)
 1.18235 ++
 1.18236 ++    /* Linkrelax Information */
 1.18237 ++    RELOC_NUMBER (R_AVR32_ALIGN,		43)
 1.18238 ++
 1.18239 ++    RELOC_NUMBER (R_AVR32_15S,		        44)
 1.18240 ++
 1.18241 ++END_RELOC_NUMBERS (R_AVR32_max)
 1.18242 ++
 1.18243 ++/* Processor specific dynamic array tags.  */
 1.18244 ++
 1.18245 ++/* The total size in bytes of the Global Offset Table */
 1.18246 ++#define DT_AVR32_GOTSZ			0x70000001
 1.18247 +--- a/include/elf/common.h
 1.18248 ++++ b/include/elf/common.h
 1.18249 +@@ -259,6 +259,9 @@
 1.18250 + /* V850 backend magic number.  Written in the absense of an ABI.  */
 1.18251 + #define EM_CYGNUS_V850		0x9080
 1.18252 + 
 1.18253 ++/* AVR32 magic number, picked by IAR Systems. */
 1.18254 ++#define EM_AVR32		0x18ad
 1.18255 ++
 1.18256 + /* old S/390 backend magic number. Written in the absence of an ABI.  */
 1.18257 + #define EM_S390_OLD		0xa390
 1.18258 + 
 1.18259 +--- a/ld/configdoc.texi
 1.18260 ++++ b/ld/configdoc.texi
 1.18261 +@@ -7,6 +7,7 @@
 1.18262 + @set H8300
 1.18263 + @set HPPA
 1.18264 + @set I960
 1.18265 ++@set AVR32
 1.18266 + @set M68HC11
 1.18267 + @set MMIX
 1.18268 + @set MSP430
 1.18269 +--- a/ld/configure.tgt
 1.18270 ++++ b/ld/configure.tgt
 1.18271 +@@ -109,6 +109,9 @@ xscale-*-elf)		targ_emul=armelf
 1.18272 + avr-*-*)		targ_emul=avr2
 1.18273 + 			targ_extra_emuls="avr1 avr3 avr4 avr5 avr6"
 1.18274 + 			;;
 1.18275 ++avr32-*-none)       targ_emul=avr32elf_ap7000
 1.18276 ++            targ_extra_emuls="avr32elf_ap7001 avr32elf_ap7002 avr32elf_ap7200 avr32elf_uc3a0128 avr32elf_uc3a0256 avr32elf_uc3a0512 avr32elf_uc3a0512es avr32elf_uc3a1128 avr32elf_uc3a1256 avr32elf_uc3a1512es avr32elf_uc3a1512 avr32elf_uc3a364 avr32elf_uc3a364s avr32elf_uc3a3128 avr32elf_uc3a3128s avr32elf_uc3a3256 avr32elf_uc3a3256s avr32elf_uc3b064 avr32elf_uc3b0128 avr32elf_uc3b0256es avr32elf_uc3b0256 avr32elf_uc3b164 avr32elf_uc3b1128 avr32elf_uc3b1256es avr32elf_uc3b1256" ;;
 1.18277 ++avr32-*-linux*)     targ_emul=avr32linux ;;
 1.18278 + bfin-*-elf)		targ_emul=elf32bfin;
 1.18279 + 			targ_extra_emuls="elf32bfinfd"
 1.18280 + 			targ_extra_libpath=$targ_extra_emuls
 1.18281 +--- /dev/null
 1.18282 ++++ b/ld/emulparams/avr32elf.sh
 1.18283 +@@ -0,0 +1,163 @@
 1.18284 ++# This script is called from ld/genscript.sh 
 1.18285 ++# There is a difference on how 'bash' and POSIX handles 
 1.18286 ++# the  '.' (source) command in a script.
 1.18287 ++# genscript.sh calls this script with argument ${EMULATION_NAME}
 1.18288 ++# but that will fail on POSIX compilant shells like 'sh' or 'dash'
 1.18289 ++# therefor I use the variable directly instead of $1 
 1.18290 ++EMULATION=${EMULATION_NAME}
 1.18291 ++SCRIPT_NAME=elf_xip
 1.18292 ++TEMPLATE_NAME=elf32
 1.18293 ++EXTRA_EM_FILE=avr32elf
 1.18294 ++OUTPUT_FORMAT="elf32-avr32"
 1.18295 ++ARCH=avr32
 1.18296 ++MAXPAGESIZE=4096
 1.18297 ++ENTRY=_start
 1.18298 ++EMBEDDED=yes
 1.18299 ++NO_SMALL_DATA=yes
 1.18300 ++NOP=0xd703d703
 1.18301 ++
 1.18302 ++DATA_SEGMENT_ALIGN=8
 1.18303 ++BSS_ALIGNMENT=8
 1.18304 ++
 1.18305 ++RO_LMA_REGION="FLASH"
 1.18306 ++RO_VMA_REGION="FLASH"
 1.18307 ++RW_LMA_REGION="FLASH"
 1.18308 ++RW_VMA_REGION="CPUSRAM"
 1.18309 ++
 1.18310 ++STACK_SIZE=0x1000
 1.18311 ++STACK_ADDR="ORIGIN(CPUSRAM) + LENGTH(CPUSRAM) - ${STACK_SIZE}"
 1.18312 ++
 1.18313 ++DATA_SEGMENT_END="__heap_start__ = ALIGN(8);
 1.18314 ++  . = ${STACK_ADDR};
 1.18315 ++  __heap_end__ = .;"
 1.18316 ++
 1.18317 ++case "$EMULATION" in
 1.18318 ++avr32elf_ap*)
 1.18319 ++    MACHINE=ap
 1.18320 ++    INITIAL_READONLY_SECTIONS=".reset : {  *(.reset) } >FLASH AT>FLASH
 1.18321 ++    . = . & 0x9fffffff;"
 1.18322 ++    TEXT_START_ADDR=0xa0000000
 1.18323 ++    case "$EMULATION" in
 1.18324 ++	    avr32elf_ap700[0-2])
 1.18325 ++	       MEMORY="MEMORY
 1.18326 ++  {
 1.18327 ++	FLASH (rxai) : ORIGIN = 0x00000000, LENGTH = 64M
 1.18328 ++	CPUSRAM (rwxa) : ORIGIN = 0x24000000, LENGTH = 32K
 1.18329 ++  }"
 1.18330 ++        ;;
 1.18331 ++    avr32elf_ap7200)
 1.18332 ++        MEMORY="MEMORY
 1.18333 ++  {
 1.18334 ++    FLASH (rxai) : ORIGIN = 0x00000000, LENGTH = 64M
 1.18335 ++    CPUSRAM (rwxa) : ORIGIN = 0x08000000, LENGTH = 64K
 1.18336 ++  }"
 1.18337 ++        ;;
 1.18338 ++    esac
 1.18339 ++    ;;
 1.18340 ++
 1.18341 ++avr32elf_uc3*)
 1.18342 ++    MACHINE=uc
 1.18343 ++    INITIAL_READONLY_SECTIONS=".reset : {  *(.reset) } >FLASH AT>FLASH"
 1.18344 ++    TEXT_START_ADDR=0x80000000
 1.18345 ++    OTHER_SECTIONS=".userpage :  {	*(.userpage .userpage.*)  } >USERPAGE AT>USERPAGE
 1.18346 ++  	.factorypage :  {	*(.factorypage .factorypage.*)  } >FACTORYPAGE AT>FACTORYPAGE"
 1.18347 ++
 1.18348 ++    case "$EMULATION" in
 1.18349 ++    avr32elf_uc3a[01]512*)
 1.18350 ++       MEMORY="MEMORY
 1.18351 ++  {
 1.18352 ++    FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 512K
 1.18353 ++    CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 64K
 1.18354 ++	USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
 1.18355 ++	FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
 1.18356 ++  }"
 1.18357 ++        ;;
 1.18358 ++
 1.18359 ++    avr32elf_uc3a[01]256)
 1.18360 ++        MEMORY="MEMORY
 1.18361 ++  {
 1.18362 ++    FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 256K
 1.18363 ++    CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 64K
 1.18364 ++	USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
 1.18365 ++	FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
 1.18366 ++  }"
 1.18367 ++        ;;
 1.18368 ++
 1.18369 ++    avr32elf_uc3b[01]256*)
 1.18370 ++        MEMORY="MEMORY
 1.18371 ++  {
 1.18372 ++    FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 256K
 1.18373 ++    CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 32K
 1.18374 ++	USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
 1.18375 ++	FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
 1.18376 ++  }"
 1.18377 ++        ;;
 1.18378 ++
 1.18379 ++    avr32elf_uc3[ab][01]128)
 1.18380 ++        MEMORY="MEMORY
 1.18381 ++  {
 1.18382 ++    FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 128K
 1.18383 ++    CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 32K
 1.18384 ++	USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
 1.18385 ++	FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
 1.18386 ++  }"
 1.18387 ++        ;;
 1.18388 ++
 1.18389 ++    avr32elf_uc3b[01]64)
 1.18390 ++        MEMORY="MEMORY
 1.18391 ++  {
 1.18392 ++    FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 64K
 1.18393 ++    CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 16K
 1.18394 ++	USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
 1.18395 ++	FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
 1.18396 ++  }"
 1.18397 ++        ;;
 1.18398 ++
 1.18399 ++    avr32elf_uc3a3256*)
 1.18400 ++        MEMORY="MEMORY
 1.18401 ++  {
 1.18402 ++    FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 256K
 1.18403 ++    CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 64K
 1.18404 ++    HSBSRAM (wxa!ri) : ORIGIN = 0xFF000000, LENGTH = 64K
 1.18405 ++	USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
 1.18406 ++	FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
 1.18407 ++  }"
 1.18408 ++  		OTHER_SECTIONS ="${OTHER_SECTIONS}
 1.18409 ++  	.hsbsram       : { *(.hsbsram .hsbsram.*) } >HSBSRAM AT>FLASH :FLASH
 1.18410 ++"
 1.18411 ++  		
 1.18412 ++        ;;
 1.18413 ++
 1.18414 ++    avr32elf_uc3a3128*)
 1.18415 ++        MEMORY="MEMORY
 1.18416 ++  {
 1.18417 ++    FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 128K
 1.18418 ++    CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 64K
 1.18419 ++    HSBSRAM (wxa!ri) : ORIGIN = 0xFF000000, LENGTH = 64K
 1.18420 ++    USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
 1.18421 ++    FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
 1.18422 ++  }"
 1.18423 ++  		OTHER_SECTIONS ="${OTHER_SECTIONS}
 1.18424 ++  	.hsbsram       : { *(.hsbsram .hsbsram.*) } >HSBSRAM AT>FLASH :FLASH
 1.18425 ++"
 1.18426 ++        ;;
 1.18427 ++
 1.18428 ++    avr32elf_uc3a364*)
 1.18429 ++        MEMORY="MEMORY
 1.18430 ++  {
 1.18431 ++    FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 64K
 1.18432 ++    CPUSRAM (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 64K
 1.18433 ++    HSBSRAM (wxa!ri) : ORIGIN = 0xFF000000, LENGTH = 64K
 1.18434 ++	USERPAGE : ORIGIN = 0x80800000, LENGTH = 512
 1.18435 ++	FACTORYPAGE : ORIGIN = 0x80800200, LENGTH = 512
 1.18436 ++  }"
 1.18437 ++  		OTHER_SECTIONS ="${OTHER_SECTIONS}
 1.18438 ++  	.hsbsram       : { *(.hsbsram .hsbsram.*) } >HSBSRAM AT>FLASH :FLASH
 1.18439 ++"
 1.18440 ++        ;;
 1.18441 ++
 1.18442 ++
 1.18443 ++    esac
 1.18444 ++    ;;
 1.18445 ++
 1.18446 ++esac
 1.18447 +--- /dev/null
 1.18448 ++++ b/ld/emulparams/avr32linux.sh
 1.18449 +@@ -0,0 +1,14 @@
 1.18450 ++ARCH=avr32
 1.18451 ++SCRIPT_NAME=elf
 1.18452 ++TEMPLATE_NAME=elf32
 1.18453 ++EXTRA_EM_FILE=avr32elf
 1.18454 ++OUTPUT_FORMAT="elf32-avr32"
 1.18455 ++GENERATE_SHLIB_SCRIPT=yes
 1.18456 ++MAXPAGESIZE=0x1000
 1.18457 ++TEXT_START_ADDR=0x00001000
 1.18458 ++NOP=0xd703d703
 1.18459 ++
 1.18460 ++# This appears to place the GOT before the data section, which is
 1.18461 ++# essential for uClinux.  We don't use those .s* sections on AVR32
 1.18462 ++# anyway, so it shouldn't hurt for regular Linux either...
 1.18463 ++NO_SMALL_DATA=yes
 1.18464 +--- /dev/null
 1.18465 ++++ b/ld/emultempl/avr32elf.em
 1.18466 +@@ -0,0 +1,133 @@
 1.18467 ++# This shell script emits a C file. -*- C -*-
 1.18468 ++#   Copyright (C) 2007 Atmel Corporation
 1.18469 ++#
 1.18470 ++# This file is part of GLD, the Gnu Linker.
 1.18471 ++#
 1.18472 ++# This program is free software; you can redistribute it and/or modify
 1.18473 ++# it under the terms of the GNU General Public License as published by
 1.18474 ++# the Free Software Foundation; either version 2 of the License, or
 1.18475 ++# (at your option) any later version.
 1.18476 ++#
 1.18477 ++# This program is distributed in the hope that it will be useful,
 1.18478 ++# but WITHOUT ANY WARRANTY; without even the implied warranty of
 1.18479 ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 1.18480 ++# GNU General Public License for more details.
 1.18481 ++#
 1.18482 ++# You should have received a copy of the GNU General Public License
 1.18483 ++# along with this program; if not, write to the Free Software
 1.18484 ++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
 1.18485 ++#
 1.18486 ++
 1.18487 ++# This file is sourced from elf32.em, and defines extra avr32-elf
 1.18488 ++# specific routines.
 1.18489 ++#
 1.18490 ++
 1.18491 ++# Generate linker script for writable rodata
 1.18492 ++LD_FLAG=rodata-writable
 1.18493 ++DATA_ALIGNMENT=${DATA_ALIGNMENT_}
 1.18494 ++RELOCATING=" "
 1.18495 ++WRITABLE_RODATA=" "
 1.18496 ++( echo "/* Linker script for writable rodata */"
 1.18497 ++  . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
 1.18498 ++  . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
 1.18499 ++) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xwr
 1.18500 ++
 1.18501 ++
 1.18502 ++cat >> e${EMULATION_NAME}.c <<EOF
 1.18503 ++
 1.18504 ++#include "libbfd.h"
 1.18505 ++#include "elf32-avr32.h"
 1.18506 ++
 1.18507 ++/* Whether to allow direct references (sub or mov) to SEC_DATA and
 1.18508 ++   !SEC_CONTENTS sections when optimizing.  Not enabled by default
 1.18509 ++   since it might cause link errors.  */
 1.18510 ++static int direct_data_refs = 0;
 1.18511 ++
 1.18512 ++static void avr32_elf_after_open (void)
 1.18513 ++{
 1.18514 ++  bfd_elf32_avr32_set_options (&link_info, direct_data_refs);
 1.18515 ++  gld${EMULATION_NAME}_after_open ();
 1.18516 ++}
 1.18517 ++
 1.18518 ++static int rodata_writable = 0;
 1.18519 ++
 1.18520 ++static char * gld${EMULATION_NAME}_get_script (int *isfile);
 1.18521 ++
 1.18522 ++static char * avr32_elf_get_script (int *isfile)
 1.18523 ++{
 1.18524 ++  if ( rodata_writable )
 1.18525 ++    {
 1.18526 ++EOF
 1.18527 ++if test -n "$COMPILE_IN"
 1.18528 ++then
 1.18529 ++# Scripts compiled in.
 1.18530 ++
 1.18531 ++# sed commands to quote an ld script as a C string.
 1.18532 ++sc="-f stringify.sed"
 1.18533 ++
 1.18534 ++cat >>e${EMULATION_NAME}.c <<EOF
 1.18535 ++      *isfile = 0;
 1.18536 ++      return
 1.18537 ++EOF
 1.18538 ++sed $sc ldscripts/${EMULATION_NAME}.xwr			>> e${EMULATION_NAME}.c
 1.18539 ++echo  ';'	                                        >> e${EMULATION_NAME}.c
 1.18540 ++else
 1.18541 ++# Scripts read from the filesystem.
 1.18542 ++
 1.18543 ++cat >>e${EMULATION_NAME}.c <<EOF
 1.18544 ++      *isfile = 1;
 1.18545 ++      return "ldscripts/${EMULATION_NAME}.xwr";
 1.18546 ++EOF
 1.18547 ++fi
 1.18548 ++
 1.18549 ++cat >>e${EMULATION_NAME}.c <<EOF
 1.18550 ++    }
 1.18551 ++  return gld${EMULATION_NAME}_get_script (isfile);
 1.18552 ++}
 1.18553 ++
 1.18554 ++
 1.18555 ++EOF
 1.18556 ++
 1.18557 ++# Define some shell vars to insert bits of code into the standard elf
 1.18558 ++# parse_args and list_options functions.
 1.18559 ++#
 1.18560 ++PARSE_AND_LIST_PROLOGUE='
 1.18561 ++#define OPTION_DIRECT_DATA		300
 1.18562 ++#define OPTION_NO_DIRECT_DATA		301
 1.18563 ++#define OPTION_RODATA_WRITABLE		302
 1.18564 ++#define OPTION_NO_RODATA_WRITABLE	303
 1.18565 ++'
 1.18566 ++
 1.18567 ++PARSE_AND_LIST_LONGOPTS='
 1.18568 ++  { "direct-data", no_argument, NULL, OPTION_DIRECT_DATA },
 1.18569 ++  { "no-direct-data", no_argument, NULL, OPTION_NO_DIRECT_DATA },
 1.18570 ++  { "rodata-writable", no_argument, NULL, OPTION_RODATA_WRITABLE },
 1.18571 ++  { "no-rodata-writable", no_argument, NULL, OPTION_NO_RODATA_WRITABLE },
 1.18572 ++'
 1.18573 ++
 1.18574 ++PARSE_AND_LIST_OPTIONS='
 1.18575 ++  fprintf (file, _("  --direct-data\t\tAllow direct data references when optimizing\n"));
 1.18576 ++  fprintf (file, _("  --no-direct-data\tDo not allow direct data references when optimizing\n"));
 1.18577 ++  fprintf (file, _("  --rodata-writable\tPut read-only data in writable data section\n"));
 1.18578 ++  fprintf (file, _("  --no-rodata-writable\tDo not put read-only data in writable data section\n"));
 1.18579 ++'
 1.18580 ++
 1.18581 ++PARSE_AND_LIST_ARGS_CASES='
 1.18582 ++    case OPTION_DIRECT_DATA:
 1.18583 ++      direct_data_refs = 1;
 1.18584 ++      break;
 1.18585 ++    case OPTION_NO_DIRECT_DATA:
 1.18586 ++      direct_data_refs = 0;
 1.18587 ++      break;
 1.18588 ++    case OPTION_RODATA_WRITABLE:
 1.18589 ++      rodata_writable = 1;
 1.18590 ++      break;
 1.18591 ++    case OPTION_NO_RODATA_WRITABLE:
 1.18592 ++      rodata_writable = 0;
 1.18593 ++      break;
 1.18594 ++'
 1.18595 ++
 1.18596 ++# Replace some of the standard ELF functions with our own versions.
 1.18597 ++#
 1.18598 ++LDEMUL_AFTER_OPEN=avr32_elf_after_open
 1.18599 ++LDEMUL_GET_SCRIPT=avr32_elf_get_script
 1.18600 +--- a/ld/ld.info
 1.18601 ++++ b/ld/ld.info
 1.18602 +@@ -4347,6 +4347,8 @@ not listed.
 1.18603 + 
 1.18604 + * ARM::				`ld' and the ARM family
 1.18605 + 
 1.18606 ++* AVR32::                       `ld' and AVR32 processors
 1.18607 ++
 1.18608 + * HPPA ELF32::                  `ld' and HPPA 32-bit ELF
 1.18609 + 
 1.18610 + * MMIX::			`ld' and MMIX
 1.18611 +@@ -4487,7 +4489,7 @@ PIC.  This avoids problems on uClinux ta
 1.18612 + used to generate relocatable binaries.
 1.18613 + 
 1.18614 + 
 1.18615 +-File: ld.info,  Node: ARM,  Next: HPPA ELF32,  Prev: i960,  Up: Machine Dependent
 1.18616 ++File: ld.info,  Node: ARM,  Next: AV32,  Prev: i960,  Up: Machine Dependent
 1.18617 + 
 1.18618 + 4.4 `ld' and the ARM family
 1.18619 + ===========================
 1.18620 +@@ -4588,7 +4590,31 @@ enumeration values fitted into the small
 1.18621 + diagnosed.
 1.18622 + 
 1.18623 + 
 1.18624 +-File: ld.info,  Node: HPPA ELF32,  Next: MMIX,  Prev: ARM,  Up: Machine Dependent
 1.18625 ++File: ld.info,  Node: AVR32,  Next: HPPA ELF32,  Prev: ARM,  Up: Machine Dependent
 1.18626 ++
 1.18627 ++4.4 `ld' and AVR32 processors
 1.18628 ++=============================
 1.18629 ++
 1.18630 ++`--direct-data'
 1.18631 ++
 1.18632 ++`--no-direct-data'
 1.18633 ++     Taking the address of a symbol can often be done by using a direct
 1.18634 ++     `mov' or pc-relative `sub' instruction, which is faster than using
 1.18635 ++     a PC- or GOT-relative load, especially on the uC3 processors.
 1.18636 ++     However, this does not always work when dealing with symbols in
 1.18637 ++     the `.data' section so this optimization is disabled by default.
 1.18638 ++
 1.18639 ++     Specifying `--direct-data' will enable this optimization. Note
 1.18640 ++     that this may cause `relocation truncated to fit' errors for
 1.18641 ++     certain large programs. If this happens, the optimization can be
 1.18642 ++     turned off by specifying `--no-direct-data'.
 1.18643 ++
 1.18644 ++     All known issues with direct data optimizations are detected at
 1.18645 ++     link time, so if the linker doesn't complain, the result should
 1.18646 ++     run just fine.
 1.18647 ++
 1.18648 ++
 1.18649 ++File: ld.info,  Node: HPPA ELF32,  Next: MMIX,  Prev: AVR32,  Up: Machine Dependent
 1.18650 + 
 1.18651 + 4.5 `ld' and HPPA 32-bit ELF Support
 1.18652 + ====================================
 1.18653 +@@ -6336,6 +6362,7 @@ LD Index
 1.18654 + * --no-check-sections:                   Options.            (line  765)
 1.18655 + * --no-define-common:                    Options.            (line  787)
 1.18656 + * --no-demangle:                         Options.            (line  816)
 1.18657 ++* --no-direct-data:                      AVR32.              (line    6)
 1.18658 + * --no-dotsyms:                          PowerPC64 ELF64.    (line   33)
 1.18659 + * --no-enum-size-warning:                ARM.                (line   94)
 1.18660 + * --no-gc-sections:                      Options.            (line  848)
 1.18661 +@@ -6534,6 +6561,7 @@ LD Index
 1.18662 + * AT(LMA):                               Output Section LMA. (line    6)
 1.18663 + * AT>LMA_REGION:                         Output Section LMA. (line    6)
 1.18664 + * automatic data imports:                WIN32.              (line  170)
 1.18665 ++* AVR32 options:                         AVR32.              (line    6)
 1.18666 + * back end:                              BFD.                (line    6)
 1.18667 + * BASE (MRI):                            MRI.                (line   54)
 1.18668 + * BE8:                                   ARM.                (line   23)
 1.18669 +@@ -7018,6 +7046,7 @@ Node: H8/300183897
 1.18670 + Node: i960185522
 1.18671 + Node: M68HC11/68HC12187207
 1.18672 + Node: ARM188910
 1.18673 ++Node: AVR32182578
 1.18674 + Node: HPPA ELF32193760
 1.18675 + Node: MMIX195383
 1.18676 + Node: MSP430196600
 1.18677 +--- a/ld/ld.texinfo
 1.18678 ++++ b/ld/ld.texinfo
 1.18679 +@@ -21,6 +21,7 @@
 1.18680 + @set UsesEnvVars
 1.18681 + @set GENERIC
 1.18682 + @set ARM
 1.18683 ++@set AVR32
 1.18684 + @set H8300
 1.18685 + @set HPPA
 1.18686 + @set I960
 1.18687 +@@ -139,6 +140,9 @@ section entitled ``GNU Free Documentatio
 1.18688 + @ifset ARM
 1.18689 + * ARM::				ld and the ARM family
 1.18690 + @end ifset
 1.18691 ++@ifset AVR32
 1.18692 ++* AVR32::                       ld and AVR32 processors
 1.18693 ++@end ifset
 1.18694 + @ifset HPPA
 1.18695 + * HPPA ELF32::                  ld and HPPA 32-bit ELF
 1.18696 + @end ifset
 1.18697 +@@ -5248,6 +5252,9 @@ functionality are not listed.
 1.18698 + @ifset ARM
 1.18699 + * ARM::				@command{ld} and the ARM family
 1.18700 + @end ifset
 1.18701 ++@ifset AVR32
 1.18702 ++* AVR32::                       @command{ld} and AVR32 processors
 1.18703 ++@end ifset
 1.18704 + @ifset HPPA
 1.18705 + * HPPA ELF32::                  @command{ld} and HPPA 32-bit ELF
 1.18706 + @end ifset
 1.18707 +@@ -5589,6 +5596,52 @@ not be diagnosed.
 1.18708 + @end ifclear
 1.18709 + @end ifset
 1.18710 + 
 1.18711 ++@ifset AVR32
 1.18712 ++@ifclear GENERIC
 1.18713 ++@raisesections
 1.18714 ++@end ifclear
 1.18715 ++
 1.18716 ++@node AVR32
 1.18717 ++@section @command{ld} and AVR32 processors
 1.18718 ++@cindex AVR32 options
 1.18719 ++@table @option
 1.18720 ++@kindex --direct-data
 1.18721 ++@kindex --no-direct-data
 1.18722 ++@item --direct-data
 1.18723 ++@item --no-direct-data
 1.18724 ++Taking the address of a symbol can often be done by using a direct
 1.18725 ++@code{mov} or pc-relative @code{sub} instruction, which is faster than
 1.18726 ++using a PC- or GOT-relative load, especially on the uC3
 1.18727 ++processors. However, this does not always work when dealing with
 1.18728 ++symbols in the @code{.data} section so this optimization is disabled
 1.18729 ++by default.
 1.18730 ++
 1.18731 ++Specifying @option{--direct-data} will enable this optimization. Note
 1.18732 ++that this may cause @samp{relocation truncated to fit} errors for
 1.18733 ++certain large programs. If this happens, the optimization can be
 1.18734 ++turned off by specifying @option{--no-direct-data}.
 1.18735 ++
 1.18736 ++All known issues with direct data optimizations are detected at link
 1.18737 ++time, so if the linker doesn't complain, the result should run just
 1.18738 ++fine.
 1.18739 ++
 1.18740 ++@kindex --rodata-writable
 1.18741 ++@kindex --no-rodata-writable
 1.18742 ++@item --rodata-writable
 1.18743 ++@item --no-rodata-writable
 1.18744 ++Using the @option{--rodata-writable} options will cause the linker
 1.18745 ++to try and use a linker script where read-only data will be placed
 1.18746 ++in the same section as writable data. This can give great performance 
 1.18747 ++gain on cacheless processors where read-only data normally is placed in
 1.18748 ++flash, and writable data is placed in internal sram. This will however 
 1.18749 ++come at the expence of a larger memory footprint.
 1.18750 ++@end table
 1.18751 ++
 1.18752 ++@ifclear GENERIC
 1.18753 ++@lowersections
 1.18754 ++@end ifclear
 1.18755 ++@end ifset
 1.18756 ++
 1.18757 + @ifset HPPA
 1.18758 + @ifclear GENERIC
 1.18759 + @raisesections
 1.18760 +--- a/ld/Makefile.am
 1.18761 ++++ b/ld/Makefile.am
 1.18762 +@@ -137,7 +137,34 @@ ALL_EMULATIONS = \
 1.18763 + 	eavr3.o \
 1.18764 + 	eavr4.o \
 1.18765 + 	eavr5.o \
 1.18766 +-	eavr6.o \
 1.18767 ++    eavr6.o \
 1.18768 ++	eavr32elf_ap7000.o \
 1.18769 ++	eavr32elf_ap7001.o \
 1.18770 ++	eavr32elf_ap7002.o \
 1.18771 ++	eavr32elf_ap7200.o \
 1.18772 ++	eavr32elf_uc3a0128.o \
 1.18773 ++	eavr32elf_uc3a0256.o \
 1.18774 ++	eavr32elf_uc3a0512.o \
 1.18775 ++	eavr32elf_uc3a0512es.o \
 1.18776 ++	eavr32elf_uc3a1128.o \
 1.18777 ++	eavr32elf_uc3a1256.o \
 1.18778 ++	eavr32elf_uc3a1512es.o \
 1.18779 ++	eavr32elf_uc3a1512.o \
 1.18780 ++	eavr32elf_uc3a364.o \
 1.18781 ++	eavr32elf_uc3a364s.o \
 1.18782 ++	eavr32elf_uc3a3128.o \
 1.18783 ++	eavr32elf_uc3a3128s.o \
 1.18784 ++	eavr32elf_uc3a3256.o \
 1.18785 ++	eavr32elf_uc3a3256s.o \
 1.18786 ++	eavr32elf_uc3b064.o \
 1.18787 ++	eavr32elf_uc3b0128.o \
 1.18788 ++	eavr32elf_uc3b0256es.o \
 1.18789 ++	eavr32elf_uc3b0256.o \
 1.18790 ++	eavr32elf_uc3b164.o \
 1.18791 ++	eavr32elf_uc3b1128.o \
 1.18792 ++	eavr32elf_uc3b1256es.o \
 1.18793 ++	eavr32elf_uc3b1256.o \
 1.18794 ++	eavr32linux.o \
 1.18795 + 	ecoff_i860.o \
 1.18796 + 	ecoff_sparc.o \
 1.18797 + 	eelf32_spu.o \
 1.18798 +@@ -622,6 +649,114 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
 1.18799 +   $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
 1.18800 +   ${GEN_DEPENDS}
 1.18801 + 	${GENSCRIPTS} avr6 "$(tdir_avr2)"
 1.18802 ++eavr32elf_ap7000.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18803 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18804 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18805 ++	${GENSCRIPTS} avr32elf_ap7000 "$(tdir_avr32)" avr32elf
 1.18806 ++eavr32elf_ap7001.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18807 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18808 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18809 ++	${GENSCRIPTS} avr32elf_ap7001 "$(tdir_avr32)" avr32elf
 1.18810 ++eavr32elf_ap7002.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18811 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18812 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18813 ++	${GENSCRIPTS} avr32elf_ap7002 "$(tdir_avr32)" avr32elf
 1.18814 ++eavr32elf_ap7200.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18815 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18816 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18817 ++	${GENSCRIPTS} avr32elf_ap7200 "$(tdir_avr32)" avr32elf
 1.18818 ++eavr32elf_uc3a0128.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18819 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18820 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18821 ++	${GENSCRIPTS} avr32elf_uc3a0128 "$(tdir_avr32)" avr32elf
 1.18822 ++eavr32elf_uc3a0256.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18823 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18824 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18825 ++	${GENSCRIPTS} avr32elf_uc3a0256 "$(tdir_avr32)" avr32elf
 1.18826 ++eavr32elf_uc3a0512.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18827 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18828 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18829 ++	${GENSCRIPTS} avr32elf_uc3a0512 "$(tdir_avr32)" avr32elf
 1.18830 ++eavr32elf_uc3a0512es.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18831 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18832 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18833 ++	${GENSCRIPTS} avr32elf_uc3a0512es "$(tdir_avr32)" avr32elf
 1.18834 ++eavr32elf_uc3a1128.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18835 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18836 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18837 ++	${GENSCRIPTS} avr32elf_uc3a1128 "$(tdir_avr32)" avr32elf
 1.18838 ++eavr32elf_uc3a1256.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18839 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18840 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18841 ++	${GENSCRIPTS} avr32elf_uc3a1256 "$(tdir_avr32)" avr32elf
 1.18842 ++eavr32elf_uc3a1512.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18843 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18844 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18845 ++	${GENSCRIPTS} avr32elf_uc3a1512 "$(tdir_avr32)" avr32elf
 1.18846 ++eavr32elf_uc3a1512es.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18847 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18848 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18849 ++	${GENSCRIPTS} avr32elf_uc3a1512es "$(tdir_avr32)" avr32elf
 1.18850 ++eavr32elf_uc3a364.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18851 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18852 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18853 ++	${GENSCRIPTS} avr32elf_uc3a364 "$(tdir_avr32)" avr32elf
 1.18854 ++eavr32elf_uc3a364s.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18855 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18856 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18857 ++	${GENSCRIPTS} avr32elf_uc3a364s "$(tdir_avr32)" avr32elf
 1.18858 ++eavr32elf_uc3a3128.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18859 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18860 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18861 ++	${GENSCRIPTS} avr32elf_uc3a3128 "$(tdir_avr32)" avr32elf
 1.18862 ++eavr32elf_uc3a3128s.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18863 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18864 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18865 ++	${GENSCRIPTS} avr32elf_uc3a3128s "$(tdir_avr32)" avr32elf
 1.18866 ++eavr32elf_uc3a3256.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18867 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18868 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18869 ++	${GENSCRIPTS} avr32elf_uc3a3256 "$(tdir_avr32)" avr32elf
 1.18870 ++eavr32elf_uc3a3256s.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18871 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18872 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18873 ++	${GENSCRIPTS} avr32elf_uc3a3256s "$(tdir_avr32)" avr32elf
 1.18874 ++eavr32elf_uc3b064.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18875 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18876 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18877 ++	${GENSCRIPTS} avr32elf_uc3b064 "$(tdir_avr32)" avr32elf
 1.18878 ++eavr32elf_uc3b0128.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18879 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18880 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18881 ++	${GENSCRIPTS} avr32elf_uc3b0128 "$(tdir_avr32)" avr32elf
 1.18882 ++eavr32elf_uc3b0256.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18883 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18884 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18885 ++	${GENSCRIPTS} avr32elf_uc3b0256 "$(tdir_avr32)" avr32elf
 1.18886 ++eavr32elf_uc3b0256es.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18887 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18888 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18889 ++	${GENSCRIPTS} avr32elf_uc3b0256es "$(tdir_avr32)" avr32elf
 1.18890 ++eavr32elf_uc3b164.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18891 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18892 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18893 ++	${GENSCRIPTS} avr32elf_uc3b164 "$(tdir_avr32)" avr32elf
 1.18894 ++eavr32elf_uc3b1128.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18895 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18896 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18897 ++	${GENSCRIPTS} avr32elf_uc3b1128 "$(tdir_avr32)" avr32elf
 1.18898 ++eavr32elf_uc3b1256.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18899 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18900 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18901 ++	${GENSCRIPTS} avr32elf_uc3b1256 "$(tdir_avr32)" avr32elf
 1.18902 ++eavr32elf_uc3b1256es.c: $(srcdir)/emulparams/avr32elf.sh \
 1.18903 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18904 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.18905 ++	${GENSCRIPTS} avr32elf_uc3b1256es "$(tdir_avr32)" avr32elf
 1.18906 ++eavr32linux.c: $(srcdir)/emulparams/avr32linux.sh \
 1.18907 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.18908 ++  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 1.18909 ++	${GENSCRIPTS} avr32linux "$(tdir_avr32)"
 1.18910 + ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \
 1.18911 +   $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS}
 1.18912 + 	${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)"
 1.18913 +@@ -1877,7 +2012,9 @@ install-exec-local: ld-new$(EXEEXT)
 1.18914 + 	  || $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT); \
 1.18915 + 	fi
 1.18916 + 
 1.18917 +-install-data-local:
 1.18918 ++# We want install to imply install-info as per GNU standards, despite the
 1.18919 ++# cygnus option.
 1.18920 ++install-data-local: install-info
 1.18921 + 	$(mkinstalldirs) $(DESTDIR)$(scriptdir)/ldscripts
 1.18922 + 	for f in ldscripts/*; do \
 1.18923 + 	  $(INSTALL_DATA) $$f $(DESTDIR)$(scriptdir)/$$f ; \
 1.18924 +--- /dev/null
 1.18925 ++++ b/ld/scripttempl/elf_xip.sc
 1.18926 +@@ -0,0 +1,456 @@
 1.18927 ++#
 1.18928 ++# Unusual variables checked by this code:
 1.18929 ++#	NOP - four byte opcode for no-op (defaults to 0)
 1.18930 ++#	NO_SMALL_DATA - no .sbss/.sbss2/.sdata/.sdata2 sections if not
 1.18931 ++#		empty.
 1.18932 ++#	SMALL_DATA_CTOR - .ctors contains small data.
 1.18933 ++#	SMALL_DATA_DTOR - .dtors contains small data.
 1.18934 ++#	DATA_ADDR - if end-of-text-plus-one-page isn't right for data start
 1.18935 ++#	INITIAL_READONLY_SECTIONS - at start of text segment
 1.18936 ++#	OTHER_READONLY_SECTIONS - other than .text .init .rodata ...
 1.18937 ++#		(e.g., .PARISC.milli)
 1.18938 ++#	OTHER_TEXT_SECTIONS - these get put in .text when relocating
 1.18939 ++#	OTHER_READWRITE_SECTIONS - other than .data .bss .ctors .sdata ...
 1.18940 ++#		(e.g., .PARISC.global)
 1.18941 ++#	OTHER_RELRO_SECTIONS - other than .data.rel.ro ...
 1.18942 ++#		(e.g. PPC32 .fixup, .got[12])
 1.18943 ++#	OTHER_BSS_SECTIONS - other than .bss .sbss ...
 1.18944 ++#	OTHER_SECTIONS - at the end
 1.18945 ++#	EXECUTABLE_SYMBOLS - symbols that must be defined for an
 1.18946 ++#		executable (e.g., _DYNAMIC_LINK)
 1.18947 ++#       TEXT_START_ADDR - the first byte of the text segment, after any
 1.18948 ++#               headers.
 1.18949 ++#       TEXT_BASE_ADDRESS - the first byte of the text segment.
 1.18950 ++#	TEXT_START_SYMBOLS - symbols that appear at the start of the
 1.18951 ++#		.text section.
 1.18952 ++#	DATA_START_SYMBOLS - symbols that appear at the start of the
 1.18953 ++#		.data section.
 1.18954 ++#	OTHER_GOT_SYMBOLS - symbols defined just before .got.
 1.18955 ++#	OTHER_GOT_SECTIONS - sections just after .got.
 1.18956 ++#	OTHER_SDATA_SECTIONS - sections just after .sdata.
 1.18957 ++#	OTHER_BSS_SYMBOLS - symbols that appear at the start of the
 1.18958 ++#		.bss section besides __bss_start.
 1.18959 ++#	DATA_PLT - .plt should be in data segment, not text segment.
 1.18960 ++#	PLT_BEFORE_GOT - .plt just before .got when .plt is in data segement.
 1.18961 ++#	BSS_PLT - .plt should be in bss segment
 1.18962 ++#	TEXT_DYNAMIC - .dynamic in text segment, not data segment.
 1.18963 ++#	EMBEDDED - whether this is for an embedded system.
 1.18964 ++#	SHLIB_TEXT_START_ADDR - if set, add to SIZEOF_HEADERS to set
 1.18965 ++#		start address of shared library.
 1.18966 ++#	INPUT_FILES - INPUT command of files to always include
 1.18967 ++#	WRITABLE_RODATA - if set, the .rodata section should be writable
 1.18968 ++#	INIT_START, INIT_END -  statements just before and just after
 1.18969 ++# 	combination of .init sections.
 1.18970 ++#	FINI_START, FINI_END - statements just before and just after
 1.18971 ++# 	combination of .fini sections.
 1.18972 ++#	STACK_ADDR - start of a .stack section.
 1.18973 ++#	OTHER_END_SYMBOLS - symbols to place right at the end of the script.
 1.18974 ++#	SEPARATE_GOTPLT - if set, .got.plt should be separate output section,
 1.18975 ++#		so that .got can be in the RELRO area.  It should be set to
 1.18976 ++#		the number of bytes in the beginning of .got.plt which can be
 1.18977 ++#		in the RELRO area as well.
 1.18978 ++#
 1.18979 ++# When adding sections, do note that the names of some sections are used
 1.18980 ++# when specifying the start address of the next.
 1.18981 ++#
 1.18982 ++
 1.18983 ++#  Many sections come in three flavours.  There is the 'real' section,
 1.18984 ++#  like ".data".  Then there are the per-procedure or per-variable
 1.18985 ++#  sections, generated by -ffunction-sections and -fdata-sections in GCC,
 1.18986 ++#  and useful for --gc-sections, which for a variable "foo" might be
 1.18987 ++#  ".data.foo".  Then there are the linkonce sections, for which the linker
 1.18988 ++#  eliminates duplicates, which are named like ".gnu.linkonce.d.foo".
 1.18989 ++#  The exact correspondences are:
 1.18990 ++#
 1.18991 ++#  Section	Linkonce section
 1.18992 ++#  .text	.gnu.linkonce.t.foo
 1.18993 ++#  .rodata	.gnu.linkonce.r.foo
 1.18994 ++#  .data	.gnu.linkonce.d.foo
 1.18995 ++#  .bss		.gnu.linkonce.b.foo
 1.18996 ++#  .sdata	.gnu.linkonce.s.foo
 1.18997 ++#  .sbss	.gnu.linkonce.sb.foo
 1.18998 ++#  .sdata2	.gnu.linkonce.s2.foo
 1.18999 ++#  .sbss2	.gnu.linkonce.sb2.foo
 1.19000 ++#  .debug_info	.gnu.linkonce.wi.foo
 1.19001 ++#  .tdata	.gnu.linkonce.td.foo
 1.19002 ++#  .tbss	.gnu.linkonce.tb.foo
 1.19003 ++#
 1.19004 ++#  Each of these can also have corresponding .rel.* and .rela.* sections.
 1.19005 ++
 1.19006 ++test -z "$ENTRY" && ENTRY=_start
 1.19007 ++test -z "${BIG_OUTPUT_FORMAT}" && BIG_OUTPUT_FORMAT=${OUTPUT_FORMAT}
 1.19008 ++test -z "${LITTLE_OUTPUT_FORMAT}" && LITTLE_OUTPUT_FORMAT=${OUTPUT_FORMAT}
 1.19009 ++if [ -z "$MACHINE" ]; then OUTPUT_ARCH=${ARCH}; else OUTPUT_ARCH=${ARCH}:${MACHINE}; fi
 1.19010 ++test -z "${ELFSIZE}" && ELFSIZE=32
 1.19011 ++test -z "${ALIGNMENT}" && ALIGNMENT="${ELFSIZE} / 8"
 1.19012 ++test "$LD_FLAG" = "N" && DATA_ADDR=.
 1.19013 ++test -n "$CREATE_SHLIB$CREATE_PIE" && test -n "$SHLIB_DATA_ADDR" && COMMONPAGESIZE=""
 1.19014 ++test -z "$CREATE_SHLIB$CREATE_PIE" && test -n "$DATA_ADDR" && COMMONPAGESIZE=""
 1.19015 ++test -n "$RELRO_NOW" && unset SEPARATE_GOTPLT
 1.19016 ++if test -n "$RELOCATING"; then
 1.19017 ++  RO_REGION="${RO_VMA_REGION+ >}${RO_VMA_REGION}${RO_LMA_REGION+ AT>}${RO_LMA_REGION}"
 1.19018 ++  RW_REGION="${RW_VMA_REGION+ >}${RW_VMA_REGION}${RW_LMA_REGION+ AT>}${RW_LMA_REGION}"
 1.19019 ++else
 1.19020 ++  RO_REGION=""
 1.19021 ++  RW_REGION=""
 1.19022 ++fi
 1.19023 ++INTERP=".interp       ${RELOCATING-0} : { *(.interp) }${RO_REGION}"
 1.19024 ++PLT=".plt          ${RELOCATING-0} : { *(.plt) }"
 1.19025 ++if test -z "$GOT"; then
 1.19026 ++  if test -z "$SEPARATE_GOTPLT"; then
 1.19027 ++    GOT=".got          ${RELOCATING-0} : { *(.got.plt) *(.got) }"
 1.19028 ++  else
 1.19029 ++    GOT=".got          ${RELOCATING-0} : { *(.got) }"
 1.19030 ++    GOTPLT="${RELOCATING+${DATA_SEGMENT_RELRO_GOTPLT_END}}
 1.19031 ++  .got.plt      ${RELOCATING-0} : { *(.got.plt) }"
 1.19032 ++  fi
 1.19033 ++fi
 1.19034 ++DALIGN=".dalign	: { . = ALIGN(${DATA_SEGMENT_ALIGN}); PROVIDE(_data_lma = .); }${RO_REGION}"
 1.19035 ++BALIGN=".balign	: { . = ALIGN(${BSS_ALIGNMENT}); _edata = .; }${RW_REGION}"
 1.19036 ++DYNAMIC=".dynamic      ${RELOCATING-0} : { *(.dynamic) }"
 1.19037 ++RODATA=".rodata       ${RELOCATING-0} : { *(.rodata${RELOCATING+ .rodata.* .gnu.linkonce.r.*}) }"
 1.19038 ++DATARELRO=".data.rel.ro : { *(.data.rel.ro.local) *(.data.rel.ro*) }${RW_REGION}"
 1.19039 ++STACKNOTE="/DISCARD/ : { *(.note.GNU-stack) }"
 1.19040 ++if test -z "${NO_SMALL_DATA}"; then
 1.19041 ++  SBSS=".sbss         ${RELOCATING-0} :
 1.19042 ++  {
 1.19043 ++    ${RELOCATING+PROVIDE (__sbss_start = .);}
 1.19044 ++    ${RELOCATING+PROVIDE (___sbss_start = .);}
 1.19045 ++    ${CREATE_SHLIB+*(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)}
 1.19046 ++    *(.dynsbss)
 1.19047 ++    *(.sbss${RELOCATING+ .sbss.* .gnu.linkonce.sb.*})
 1.19048 ++    *(.scommon)
 1.19049 ++    ${RELOCATING+PROVIDE (__sbss_end = .);}
 1.19050 ++    ${RELOCATING+PROVIDE (___sbss_end = .);}
 1.19051 ++  }${RW_REGION}"
 1.19052 ++  SBSS2=".sbss2        ${RELOCATING-0} : { *(.sbss2${RELOCATING+ .sbss2.* .gnu.linkonce.sb2.*}) }${RW_REGION}"
 1.19053 ++  SDATA="/* We want the small data sections together, so single-instruction offsets
 1.19054 ++     can access them all, and initialized data all before uninitialized, so
 1.19055 ++     we can shorten the on-disk segment size.  */
 1.19056 ++  .sdata        ${RELOCATING-0} :
 1.19057 ++  {
 1.19058 ++    ${RELOCATING+${SDATA_START_SYMBOLS}}
 1.19059 ++    ${CREATE_SHLIB+*(.sdata2 .sdata2.* .gnu.linkonce.s2.*)}
 1.19060 ++    *(.sdata${RELOCATING+ .sdata.* .gnu.linkonce.s.*})
 1.19061 ++  }${RW_REGION}"
 1.19062 ++  SDATA2=".sdata2       ${RELOCATING-0} : { *(.sdata2${RELOCATING+ .sdata2.* .gnu.linkonce.s2.*}) }${RW_REGION}"
 1.19063 ++  REL_SDATA=".rel.sdata    ${RELOCATING-0} : { *(.rel.sdata${RELOCATING+ .rel.sdata.* .rel.gnu.linkonce.s.*}) }${RO_REGION}
 1.19064 ++  .rela.sdata   ${RELOCATING-0} : { *(.rela.sdata${RELOCATING+ .rela.sdata.* .rela.gnu.linkonce.s.*}) }"
 1.19065 ++  REL_SBSS=".rel.sbss     ${RELOCATING-0} : { *(.rel.sbss${RELOCATING+ .rel.sbss.* .rel.gnu.linkonce.sb.*}) }${RO_REGION}
 1.19066 ++  .rela.sbss    ${RELOCATING-0} : { *(.rela.sbss${RELOCATING+ .rela.sbss.* .rela.gnu.linkonce.sb.*}) }${RO_REGION}"
 1.19067 ++  REL_SDATA2=".rel.sdata2   ${RELOCATING-0} : { *(.rel.sdata2${RELOCATING+ .rel.sdata2.* .rel.gnu.linkonce.s2.*}) }${RO_REGION}
 1.19068 ++  .rela.sdata2  ${RELOCATING-0} : { *(.rela.sdata2${RELOCATING+ .rela.sdata2.* .rela.gnu.linkonce.s2.*}) }${RO_REGION}"
 1.19069 ++  REL_SBSS2=".rel.sbss2    ${RELOCATING-0} : { *(.rel.sbss2${RELOCATING+ .rel.sbss2.* .rel.gnu.linkonce.sb2.*}) }${RO_REGION}
 1.19070 ++  .rela.sbss2   ${RELOCATING-0} : { *(.rela.sbss2${RELOCATING+ .rela.sbss2.* .rela.gnu.linkonce.sb2.*}) }${RO_REGION}"
 1.19071 ++else
 1.19072 ++  NO_SMALL_DATA=" "
 1.19073 ++fi
 1.19074 ++test -n "$SEPARATE_GOTPLT" && SEPARATE_GOTPLT=" "
 1.19075 ++CTOR=".ctors        ${CONSTRUCTING-0} :
 1.19076 ++  {
 1.19077 ++    ${CONSTRUCTING+${CTOR_START}}
 1.19078 ++    /* gcc uses crtbegin.o to find the start of
 1.19079 ++       the constructors, so we make sure it is
 1.19080 ++       first.  Because this is a wildcard, it
 1.19081 ++       doesn't matter if the user does not
 1.19082 ++       actually link against crtbegin.o; the
 1.19083 ++       linker won't look for a file to match a
 1.19084 ++       wildcard.  The wildcard also means that it
 1.19085 ++       doesn't matter which directory crtbegin.o
 1.19086 ++       is in.  */
 1.19087 ++
 1.19088 ++    KEEP (*crtbegin*.o(.ctors))
 1.19089 ++
 1.19090 ++    /* We don't want to include the .ctor section from
 1.19091 ++       from the crtend.o file until after the sorted ctors.
 1.19092 ++       The .ctor section from the crtend file contains the
 1.19093 ++       end of ctors marker and it must be last */
 1.19094 ++
 1.19095 ++    KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .ctors))
 1.19096 ++    KEEP (*(SORT(.ctors.*)))
 1.19097 ++    KEEP (*(.ctors))
 1.19098 ++    ${CONSTRUCTING+${CTOR_END}}
 1.19099 ++  }"
 1.19100 ++DTOR=".dtors        ${CONSTRUCTING-0} :
 1.19101 ++  {
 1.19102 ++    ${CONSTRUCTING+${DTOR_START}}
 1.19103 ++    KEEP (*crtbegin*.o(.dtors))
 1.19104 ++    KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors))
 1.19105 ++    KEEP (*(SORT(.dtors.*)))
 1.19106 ++    KEEP (*(.dtors))
 1.19107 ++    ${CONSTRUCTING+${DTOR_END}}
 1.19108 ++  }"
 1.19109 ++STACK=".stack        ${RELOCATING-0}${RELOCATING+${STACK_ADDR}} :
 1.19110 ++  {
 1.19111 ++    ${RELOCATING+_stack = .;}
 1.19112 ++    *(.stack)
 1.19113 ++    ${RELOCATING+${STACK_SIZE+. = ${STACK_SIZE};}}
 1.19114 ++    ${RELOCATING+_estack = .;}
 1.19115 ++  }${RW_REGION}"
 1.19116 ++
 1.19117 ++# if this is for an embedded system, don't add SIZEOF_HEADERS.
 1.19118 ++if [ -z "$EMBEDDED" ]; then
 1.19119 ++   test -z "${TEXT_BASE_ADDRESS}" && TEXT_BASE_ADDRESS="${TEXT_START_ADDR} + SIZEOF_HEADERS"
 1.19120 ++else
 1.19121 ++   test -z "${TEXT_BASE_ADDRESS}" && TEXT_BASE_ADDRESS="${TEXT_START_ADDR}"
 1.19122 ++fi
 1.19123 ++
 1.19124 ++cat <<EOF
 1.19125 ++OUTPUT_FORMAT("${OUTPUT_FORMAT}", "${BIG_OUTPUT_FORMAT}",
 1.19126 ++	      "${LITTLE_OUTPUT_FORMAT}")
 1.19127 ++OUTPUT_ARCH(${OUTPUT_ARCH})
 1.19128 ++ENTRY(${ENTRY})
 1.19129 ++
 1.19130 ++${RELOCATING+${LIB_SEARCH_DIRS}}
 1.19131 ++${RELOCATING+/* Do we need any of these for elf?
 1.19132 ++   __DYNAMIC = 0; ${STACKZERO+${STACKZERO}} ${SHLIB_PATH+${SHLIB_PATH}}  */}
 1.19133 ++${RELOCATING+${EXECUTABLE_SYMBOLS}}
 1.19134 ++${RELOCATING+${INPUT_FILES}}
 1.19135 ++${RELOCATING- /* For some reason, the Solaris linker makes bad executables
 1.19136 ++  if gld -r is used and the intermediate file has sections starting
 1.19137 ++  at non-zero addresses.  Could be a Solaris ld bug, could be a GNU ld
 1.19138 ++  bug.  But for now assigning the zero vmas works.  */}
 1.19139 ++
 1.19140 ++${RELOCATING+${MEMORY}}
 1.19141 ++
 1.19142 ++SECTIONS
 1.19143 ++{
 1.19144 ++  /* Read-only sections, merged into text segment: */
 1.19145 ++  ${CREATE_SHLIB-${CREATE_PIE-${RELOCATING+PROVIDE (__executable_start = ${TEXT_START_ADDR}); . = ${TEXT_BASE_ADDRESS};}}}
 1.19146 ++  ${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_TEXT_START_ADDR:-0} + SIZEOF_HEADERS;}}
 1.19147 ++  ${CREATE_PIE+${RELOCATING+. = ${SHLIB_TEXT_START_ADDR:-0} + SIZEOF_HEADERS;}}
 1.19148 ++  ${CREATE_SHLIB-${INTERP}}
 1.19149 ++  ${INITIAL_READONLY_SECTIONS}
 1.19150 ++  ${TEXT_DYNAMIC+${DYNAMIC}${RO_REGION}}
 1.19151 ++  .hash         ${RELOCATING-0} : { *(.hash) }${RO_REGION}
 1.19152 ++  .dynsym       ${RELOCATING-0} : { *(.dynsym) }${RO_REGION}
 1.19153 ++  .dynstr       ${RELOCATING-0} : { *(.dynstr) }${RO_REGION}
 1.19154 ++  .gnu.version  ${RELOCATING-0} : { *(.gnu.version) }${RO_REGION}
 1.19155 ++  .gnu.version_d ${RELOCATING-0}: { *(.gnu.version_d) }${RO_REGION}
 1.19156 ++  .gnu.version_r ${RELOCATING-0}: { *(.gnu.version_r) }${RO_REGION}
 1.19157 ++
 1.19158 ++EOF
 1.19159 ++if [ "x$COMBRELOC" = x ]; then
 1.19160 ++  COMBRELOCCAT=cat
 1.19161 ++else
 1.19162 ++  COMBRELOCCAT="cat > $COMBRELOC"
 1.19163 ++fi
 1.19164 ++eval $COMBRELOCCAT <<EOF
 1.19165 ++  .rel.init     ${RELOCATING-0} : { *(.rel.init) }${RO_REGION}
 1.19166 ++  .rela.init    ${RELOCATING-0} : { *(.rela.init) }${RO_REGION}
 1.19167 ++  .rel.text     ${RELOCATING-0} : { *(.rel.text${RELOCATING+ .rel.text.* .rel.gnu.linkonce.t.*}) }${RO_REGION}
 1.19168 ++  .rela.text    ${RELOCATING-0} : { *(.rela.text${RELOCATING+ .rela.text.* .rela.gnu.linkonce.t.*}) }${RO_REGION}
 1.19169 ++  .rel.fini     ${RELOCATING-0} : { *(.rel.fini) }${RO_REGION}
 1.19170 ++  .rela.fini    ${RELOCATING-0} : { *(.rela.fini) }${RO_REGION}
 1.19171 ++  .rel.rodata   ${RELOCATING-0} : { *(.rel.rodata${RELOCATING+ .rel.rodata.* .rel.gnu.linkonce.r.*}) }${RO_REGION}
 1.19172 ++  .rela.rodata  ${RELOCATING-0} : { *(.rela.rodata${RELOCATING+ .rela.rodata.* .rela.gnu.linkonce.r.*}) }${RO_REGION}
 1.19173 ++  ${OTHER_READONLY_RELOC_SECTIONS}
 1.19174 ++  .rel.data.rel.ro ${RELOCATING-0} : { *(.rel.data.rel.ro${RELOCATING+*}) }${RO_REGION}
 1.19175 ++  .rela.data.rel.ro ${RELOCATING-0} : { *(.rel.data.rel.ro${RELOCATING+*}) }${RO_REGION}
 1.19176 ++  .rel.data     ${RELOCATING-0} : { *(.rel.data${RELOCATING+ .rel.data.* .rel.gnu.linkonce.d.*}) }${RO_REGION}
 1.19177 ++  .rela.data    ${RELOCATING-0} : { *(.rela.data${RELOCATING+ .rela.data.* .rela.gnu.linkonce.d.*}) }${RO_REGION}
 1.19178 ++  .rel.tdata	${RELOCATING-0} : { *(.rel.tdata${RELOCATING+ .rel.tdata.* .rel.gnu.linkonce.td.*}) }${RO_REGION}
 1.19179 ++  .rela.tdata	${RELOCATING-0} : { *(.rela.tdata${RELOCATING+ .rela.tdata.* .rela.gnu.linkonce.td.*}) }${RO_REGION}
 1.19180 ++  .rel.tbss	${RELOCATING-0} : { *(.rel.tbss${RELOCATING+ .rel.tbss.* .rel.gnu.linkonce.tb.*}) }${RO_REGION}
 1.19181 ++  .rela.tbss	${RELOCATING-0} : { *(.rela.tbss${RELOCATING+ .rela.tbss.* .rela.gnu.linkonce.tb.*}) }${RO_REGION}
 1.19182 ++  .rel.ctors    ${RELOCATING-0} : { *(.rel.ctors) }${RO_REGION}
 1.19183 ++  .rela.ctors   ${RELOCATING-0} : { *(.rela.ctors) }${RO_REGION}
 1.19184 ++  .rel.dtors    ${RELOCATING-0} : { *(.rel.dtors) }${RO_REGION}
 1.19185 ++  .rela.dtors   ${RELOCATING-0} : { *(.rela.dtors) }${RO_REGION}
 1.19186 ++  .rel.got      ${RELOCATING-0} : { *(.rel.got) }${RO_REGION}
 1.19187 ++  .rela.got     ${RELOCATING-0} : { *(.rela.got) }${RO_REGION}
 1.19188 ++  ${OTHER_GOT_RELOC_SECTIONS}
 1.19189 ++  ${REL_SDATA}
 1.19190 ++  ${REL_SBSS}
 1.19191 ++  ${REL_SDATA2}
 1.19192 ++  ${REL_SBSS2}
 1.19193 ++  .rel.bss      ${RELOCATING-0} : { *(.rel.bss${RELOCATING+ .rel.bss.* .rel.gnu.linkonce.b.*}) }${RO_REGION}
 1.19194 ++  .rela.bss     ${RELOCATING-0} : { *(.rela.bss${RELOCATING+ .rela.bss.* .rela.gnu.linkonce.b.*}) }${RO_REGION}
 1.19195 ++EOF
 1.19196 ++if [ -n "$COMBRELOC" ]; then
 1.19197 ++cat <<EOF
 1.19198 ++  .rel.dyn      ${RELOCATING-0} :
 1.19199 ++    {
 1.19200 ++EOF
 1.19201 ++sed -e '/^[ 	]*[{}][ 	]*$/d;/:[ 	]*$/d;/\.rela\./d;s/^.*: { *\(.*\)}$/      \1/' $COMBRELOC
 1.19202 ++cat <<EOF
 1.19203 ++    }${RO_REGION}
 1.19204 ++  .rela.dyn     ${RELOCATING-0} :
 1.19205 ++    {
 1.19206 ++EOF
 1.19207 ++sed -e '/^[ 	]*[{}][ 	]*$/d;/:[ 	]*$/d;/\.rel\./d;s/^.*: { *\(.*\)}/      \1/' $COMBRELOC
 1.19208 ++cat <<EOF
 1.19209 ++    }${RO_REGION}
 1.19210 ++EOF
 1.19211 ++fi
 1.19212 ++cat <<EOF
 1.19213 ++  .rel.plt      ${RELOCATING-0} : { *(.rel.plt) }${RO_REGION}
 1.19214 ++  .rela.plt     ${RELOCATING-0} : { *(.rela.plt) }${RO_REGION}
 1.19215 ++  ${OTHER_PLT_RELOC_SECTIONS}
 1.19216 ++
 1.19217 ++  .init         ${RELOCATING-0} :
 1.19218 ++  {
 1.19219 ++    ${RELOCATING+${INIT_START}}
 1.19220 ++    KEEP (*(.init))
 1.19221 ++    ${RELOCATING+${INIT_END}}
 1.19222 ++  }${RO_REGION} =${NOP-0}
 1.19223 ++
 1.19224 ++  ${DATA_PLT-${BSS_PLT-${PLT}${RO_REGION}}}
 1.19225 ++  .text         ${RELOCATING-0} :
 1.19226 ++  {
 1.19227 ++    ${RELOCATING+${TEXT_START_SYMBOLS}}
 1.19228 ++    *(.text .stub${RELOCATING+ .text.* .gnu.linkonce.t.*})
 1.19229 ++    KEEP (*(.text.*personality*))
 1.19230 ++    /* .gnu.warning sections are handled specially by elf32.em.  */
 1.19231 ++    *(.gnu.warning)
 1.19232 ++    ${RELOCATING+${OTHER_TEXT_SECTIONS}}
 1.19233 ++  }${RO_REGION} =${NOP-0}
 1.19234 ++  .fini         ${RELOCATING-0} :
 1.19235 ++  {
 1.19236 ++    ${RELOCATING+${FINI_START}}
 1.19237 ++    KEEP (*(.fini))
 1.19238 ++    ${RELOCATING+${FINI_END}}
 1.19239 ++  }${RO_REGION} =${NOP-0}
 1.19240 ++  ${RELOCATING+PROVIDE (__etext = .);}
 1.19241 ++  ${RELOCATING+PROVIDE (_etext = .);}
 1.19242 ++  ${RELOCATING+PROVIDE (etext = .);}
 1.19243 ++  ${WRITABLE_RODATA-${RODATA}${RO_REGION}}
 1.19244 ++  .rodata1      ${RELOCATING-0} : { *(.rodata1) }${RO_REGION}
 1.19245 ++  ${CREATE_SHLIB-${SDATA2}}
 1.19246 ++  ${CREATE_SHLIB-${SBSS2}}
 1.19247 ++  ${OTHER_READONLY_SECTIONS}
 1.19248 ++  .eh_frame_hdr : { *(.eh_frame_hdr) }${RO_REGION}
 1.19249 ++  .eh_frame     ${RELOCATING-0} : ONLY_IF_RO { KEEP (*(.eh_frame)) }${RO_REGION}
 1.19250 ++  .gcc_except_table ${RELOCATING-0} : ONLY_IF_RO { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }${RO_REGION}
 1.19251 ++
 1.19252 ++  ${RELOCATING+${DALIGN}}
 1.19253 ++  ${RELOCATING+PROVIDE (_data = ORIGIN(${RW_VMA_REGION}));}
 1.19254 ++  . = ORIGIN(${RW_VMA_REGION});
 1.19255 ++  /* Exception handling  */
 1.19256 ++  .eh_frame     ${RELOCATING-0} : ONLY_IF_RW { KEEP (*(.eh_frame)) }${RW_REGION}
 1.19257 ++  .gcc_except_table ${RELOCATING-0} : ONLY_IF_RW { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }${RW_REGION}
 1.19258 ++
 1.19259 ++  /* Thread Local Storage sections  */
 1.19260 ++  .tdata	${RELOCATING-0} : { *(.tdata${RELOCATING+ .tdata.* .gnu.linkonce.td.*}) }${RW_REGION}
 1.19261 ++  .tbss		${RELOCATING-0} : { *(.tbss${RELOCATING+ .tbss.* .gnu.linkonce.tb.*})${RELOCATING+ *(.tcommon)} }${RW_REGION}
 1.19262 ++
 1.19263 ++  /* Ensure the __preinit_array_start label is properly aligned.  We
 1.19264 ++     could instead move the label definition inside the section, but
 1.19265 ++     the linker would then create the section even if it turns out to
 1.19266 ++     be empty, which isn't pretty.  */
 1.19267 ++  ${RELOCATING+${CREATE_SHLIB-PROVIDE (__preinit_array_start = ALIGN(${ALIGNMENT}));}}
 1.19268 ++  .preinit_array   ${RELOCATING-0} : { KEEP (*(.preinit_array)) }${RW_REGION}
 1.19269 ++  ${RELOCATING+${CREATE_SHLIB-PROVIDE (__preinit_array_end = .);}}
 1.19270 ++
 1.19271 ++  ${RELOCATING+${CREATE_SHLIB-PROVIDE (__init_array_start = .);}}
 1.19272 ++  .init_array   ${RELOCATING-0} : { KEEP (*(.init_array)) }${RW_REGION}
 1.19273 ++  ${RELOCATING+${CREATE_SHLIB-PROVIDE (__init_array_end = .);}}
 1.19274 ++
 1.19275 ++  ${RELOCATING+${CREATE_SHLIB-PROVIDE (__fini_array_start = .);}}
 1.19276 ++  .fini_array   ${RELOCATING-0} : { KEEP (*(.fini_array)) }${RW_REGION}
 1.19277 ++  ${RELOCATING+${CREATE_SHLIB-PROVIDE (__fini_array_end = .);}}
 1.19278 ++
 1.19279 ++  ${SMALL_DATA_CTOR-${RELOCATING+${CTOR}${RW_REGION}}}
 1.19280 ++  ${SMALL_DATA_DTOR-${RELOCATING+${DTOR}${RW_REGION}}}
 1.19281 ++  .jcr          ${RELOCATING-0} : { KEEP (*(.jcr)) }${RW_REGION}
 1.19282 ++
 1.19283 ++  ${RELOCATING+${DATARELRO}}
 1.19284 ++  ${OTHER_RELRO_SECTIONS}
 1.19285 ++  ${TEXT_DYNAMIC-${DYNAMIC}${RW_REGION}}
 1.19286 ++  ${NO_SMALL_DATA+${RELRO_NOW+${GOT}${RW_REGION}}}
 1.19287 ++  ${NO_SMALL_DATA+${RELRO_NOW-${SEPARATE_GOTPLT+${GOT}${RW_REGION}}}}
 1.19288 ++  ${NO_SMALL_DATA+${RELRO_NOW-${SEPARATE_GOTPLT+${GOTPLT}${RW_REGION}}}}
 1.19289 ++  ${RELOCATING+${DATA_SEGMENT_RELRO_END}}
 1.19290 ++  ${NO_SMALL_DATA+${RELRO_NOW-${SEPARATE_GOTPLT-${GOT}${RW_REGION}}}}
 1.19291 ++
 1.19292 ++  ${DATA_PLT+${PLT_BEFORE_GOT-${PLT}${RW_REGION}}}
 1.19293 ++
 1.19294 ++  .data         ${RELOCATING-0} :
 1.19295 ++  {
 1.19296 ++    ${RELOCATING+${DATA_START_SYMBOLS}}
 1.19297 ++    *(.data${RELOCATING+ .data.* .gnu.linkonce.d.*})
 1.19298 ++    KEEP (*(.gnu.linkonce.d.*personality*))
 1.19299 ++    ${CONSTRUCTING+SORT(CONSTRUCTORS)}
 1.19300 ++  }${RW_REGION}
 1.19301 ++  .data1        ${RELOCATING-0} : { *(.data1) }${RW_REGION}
 1.19302 ++  ${WRITABLE_RODATA+${RODATA}${RW_REGION}}
 1.19303 ++  ${OTHER_READWRITE_SECTIONS}
 1.19304 ++  ${SMALL_DATA_CTOR+${RELOCATING+${CTOR}${RW_REGION}}}
 1.19305 ++  ${SMALL_DATA_DTOR+${RELOCATING+${DTOR}${RW_REGION}}}
 1.19306 ++  ${DATA_PLT+${PLT_BEFORE_GOT+${PLT}${RW_REGION}}}
 1.19307 ++  ${RELOCATING+${OTHER_GOT_SYMBOLS}}
 1.19308 ++  ${NO_SMALL_DATA-${GOT}${RW_REGION}}
 1.19309 ++  ${OTHER_GOT_SECTIONS}
 1.19310 ++  ${SDATA}
 1.19311 ++  ${OTHER_SDATA_SECTIONS}
 1.19312 ++  ${RELOCATING+${BALIGN}}
 1.19313 ++  ${RELOCATING+_edata = .;}
 1.19314 ++  ${RELOCATING+PROVIDE (edata = .);}
 1.19315 ++  ${RELOCATING+__bss_start = .;}
 1.19316 ++  ${RELOCATING+${OTHER_BSS_SYMBOLS}}
 1.19317 ++  ${SBSS}
 1.19318 ++  ${BSS_PLT+${PLT}${RW_REGION}}
 1.19319 ++  .bss          ${RELOCATING-0} :
 1.19320 ++  {
 1.19321 ++   *(.dynbss)
 1.19322 ++   *(.bss${RELOCATING+ .bss.* .gnu.linkonce.b.*})
 1.19323 ++   *(COMMON)
 1.19324 ++   /* Align here to ensure that the .bss section occupies space up to
 1.19325 ++      _end.  Align after .bss to ensure correct alignment even if the
 1.19326 ++      .bss section disappears because there are no input sections.  */
 1.19327 ++   ${RELOCATING+. = ALIGN(${BSS_ALIGNMENT});}
 1.19328 ++  }${RW_REGION}
 1.19329 ++  ${OTHER_BSS_SECTIONS}
 1.19330 ++  ${RELOCATING+. = ALIGN(${BSS_ALIGNMENT});}
 1.19331 ++  ${RELOCATING+_end = .;}
 1.19332 ++  ${RELOCATING+${OTHER_BSS_END_SYMBOLS}}
 1.19333 ++  ${RELOCATING+PROVIDE (end = .);}
 1.19334 ++  ${RELOCATING+${DATA_SEGMENT_END}}
 1.19335 ++
 1.19336 ++  /* Stabs debugging sections.  */
 1.19337 ++  .stab          0 : { *(.stab) }
 1.19338 ++  .stabstr       0 : { *(.stabstr) }
 1.19339 ++  .stab.excl     0 : { *(.stab.excl) }
 1.19340 ++  .stab.exclstr  0 : { *(.stab.exclstr) }
 1.19341 ++  .stab.index    0 : { *(.stab.index) }
 1.19342 ++  .stab.indexstr 0 : { *(.stab.indexstr) }
 1.19343 ++
 1.19344 ++  .comment       0 : { *(.comment) }
 1.19345 ++
 1.19346 ++  /* DWARF debug sections.
 1.19347 ++     Symbols in the DWARF debugging sections are relative to the beginning
 1.19348 ++     of the section so we begin them at 0.  */
 1.19349 ++
 1.19350 ++  /* DWARF 1 */
 1.19351 ++  .debug          0 : { *(.debug) }
 1.19352 ++  .line           0 : { *(.line) }
 1.19353 ++
 1.19354 ++  /* GNU DWARF 1 extensions */
 1.19355 ++  .debug_srcinfo  0 : { *(.debug_srcinfo) }
 1.19356 ++  .debug_sfnames  0 : { *(.debug_sfnames) }
 1.19357 ++
 1.19358 ++  /* DWARF 1.1 and DWARF 2 */
 1.19359 ++  .debug_aranges  0 : { *(.debug_aranges) }
 1.19360 ++  .debug_pubnames 0 : { *(.debug_pubnames) }
 1.19361 ++
 1.19362 ++  /* DWARF 2 */
 1.19363 ++  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
 1.19364 ++  .debug_abbrev   0 : { *(.debug_abbrev) }
 1.19365 ++  .debug_line     0 : { *(.debug_line) }
 1.19366 ++  .debug_frame    0 : { *(.debug_frame) }
 1.19367 ++  .debug_str      0 : { *(.debug_str) }
 1.19368 ++  .debug_loc      0 : { *(.debug_loc) }
 1.19369 ++  .debug_macinfo  0 : { *(.debug_macinfo) }
 1.19370 ++
 1.19371 ++  /* SGI/MIPS DWARF 2 extensions */
 1.19372 ++  .debug_weaknames 0 : { *(.debug_weaknames) }
 1.19373 ++  .debug_funcnames 0 : { *(.debug_funcnames) }
 1.19374 ++  .debug_typenames 0 : { *(.debug_typenames) }
 1.19375 ++  .debug_varnames  0 : { *(.debug_varnames) }
 1.19376 ++
 1.19377 ++  ${STACK_ADDR+${STACK}}
 1.19378 ++  ${OTHER_SECTIONS}
 1.19379 ++  ${RELOCATING+${OTHER_END_SYMBOLS}}
 1.19380 ++  ${RELOCATING+${STACKNOTE}}
 1.19381 ++}
 1.19382 ++EOF
 1.19383 +--- /dev/null
 1.19384 ++++ b/ld/testsuite/ld-avr32/avr32.exp
 1.19385 +@@ -0,0 +1,25 @@
 1.19386 ++# Expect script for AVR32 ELF linker tests.
 1.19387 ++#   Copyright 2004-2006 Atmel Corporation.
 1.19388 ++#
 1.19389 ++# This file is free software; you can redistribute it and/or modify
 1.19390 ++# it under the terms of the GNU General Public License as published by
 1.19391 ++# the Free Software Foundation; either version 2 of the License, or
 1.19392 ++# (at your option) any later version.
 1.19393 ++#
 1.19394 ++# This program is distributed in the hope that it will be useful,
 1.19395 ++# but WITHOUT ANY WARRANTY; without even the implied warranty of
 1.19396 ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 1.19397 ++# GNU General Public License for more details.
 1.19398 ++#
 1.19399 ++# You should have received a copy of the GNU General Public License
 1.19400 ++# along with this program; if not, write to the Free Software
 1.19401 ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 1.19402 ++#
 1.19403 ++# Written by Haavard Skinnemoen (hskinnemoen@atmel.com)
 1.19404 ++#
 1.19405 ++
 1.19406 ++if ![istarget avr32-*-*] {
 1.19407 ++    return
 1.19408 ++}
 1.19409 ++
 1.19410 ++run_dump_test "pcrel"
 1.19411 +--- /dev/null
 1.19412 ++++ b/ld/testsuite/ld-avr32/pcrel.d
 1.19413 +@@ -0,0 +1,74 @@
 1.19414 ++#name: AVR32 ELF PC-relative external relocs
 1.19415 ++#source: symbols.s
 1.19416 ++#source: ../../../gas/testsuite/gas/avr32/pcrel.s
 1.19417 ++#ld: -T $srcdir/$subdir/pcrel.ld
 1.19418 ++#objdump: -d
 1.19419 ++
 1.19420 ++.*:     file format elf.*avr32.*
 1.19421 ++
 1.19422 ++Disassembly of section .text:
 1.19423 ++
 1.19424 ++a0000000 <_start>:
 1.19425 ++a0000000:	d7 03       	nop
 1.19426 ++a0000002:	d7 03       	nop
 1.19427 ++
 1.19428 ++a0000004 <test_rjmp>:
 1.19429 ++a0000004:	d7 03       	nop
 1.19430 ++a0000006:	c0 28       	rjmp a000000a <test_rjmp\+0x6>
 1.19431 ++a0000008:	d7 03       	nop
 1.19432 ++a000000a:	e0 8f 01 fb 	bral a0000400 <extsym10>
 1.19433 ++
 1.19434 ++a000000e <test_rcall>:
 1.19435 ++a000000e:	d7 03       	nop
 1.19436 ++a0000010 <test_rcall2>:
 1.19437 ++a0000010:	c0 2c       	rcall a0000014 <test_rcall2\+0x4>
 1.19438 ++a0000012:	d7 03       	nop
 1.19439 ++a0000014:	ee b0 ff f6 	rcall a0200000 <extsym21>
 1.19440 ++
 1.19441 ++a0000018 <test_branch>:
 1.19442 ++a0000018:	c0 31       	brne a000001e <test_branch\+0x6>
 1.19443 ++a000001a:	fe 9f ff ff 	bral a0000018 <test_branch>
 1.19444 ++a000001e:	ee 90 ff f1 	breq a0200000 <extsym21>
 1.19445 ++
 1.19446 ++a0000022 <test_lddpc>:
 1.19447 ++a0000022:	48 30       	lddpc r0,a000002c <sym1>
 1.19448 ++a0000024:	48 20       	lddpc r0,a000002c <sym1>
 1.19449 ++a0000026:	fe f0 7f da 	ld.w r0,pc\[32730\]
 1.19450 ++	...
 1.19451 ++
 1.19452 ++a000002c <sym1>:
 1.19453 ++a000002c:	d7 03       	nop
 1.19454 ++a000002e:	d7 03       	nop
 1.19455 ++
 1.19456 ++a0000030 <test_local>:
 1.19457 ++a0000030:	48 20       	lddpc r0,a0000038 <test_local\+0x8>
 1.19458 ++a0000032:	48 30       	lddpc r0,a000003c <test_local\+0xc>
 1.19459 ++a0000034:	48 20       	lddpc r0,a000003c <test_local\+0xc>
 1.19460 ++a0000036:	00 00       	add r0,r0
 1.19461 ++a0000038:	d7 03       	nop
 1.19462 ++a000003a:	d7 03       	nop
 1.19463 ++a000003c:	d7 03       	nop
 1.19464 ++a000003e:	d7 03       	nop
 1.19465 ++
 1.19466 ++Disassembly of section \.text\.init:
 1.19467 ++a0000040 <test_inter_section>:
 1.19468 ++a0000040:	fe b0 ff e7 	rcall a000000e <test_rcall>
 1.19469 ++a0000044:	d7 03       	nop
 1.19470 ++a0000046:	fe b0 ff e4 	rcall a000000e <test_rcall>
 1.19471 ++a000004a:	fe b0 ff e3 	rcall a0000010 <test_rcall2>
 1.19472 ++a000004e:	d7 03       	nop
 1.19473 ++a0000050:	fe b0 ff e0 	rcall a0000010 <test_rcall2>
 1.19474 ++
 1.19475 ++Disassembly of section \.text\.pcrel10:
 1.19476 ++
 1.19477 ++a0000400 <extsym10>:
 1.19478 ++a0000400:	d7 03       	nop
 1.19479 ++
 1.19480 ++Disassembly of section \.text\.pcrel16:
 1.19481 ++
 1.19482 ++a0008000 <extsym16>:
 1.19483 ++a0008000:	d7 03       	nop
 1.19484 ++
 1.19485 ++Disassembly of section \.text\.pcrel21:
 1.19486 ++a0200000 <extsym21>:
 1.19487 ++a0200000:	d7 03       	nop
 1.19488 +--- /dev/null
 1.19489 ++++ b/ld/testsuite/ld-avr32/pcrel.ld
 1.19490 +@@ -0,0 +1,23 @@
 1.19491 ++ENTRY(_start)
 1.19492 ++SECTIONS
 1.19493 ++{
 1.19494 ++	.text 0xa0000000:
 1.19495 ++	{
 1.19496 ++		*(.text)
 1.19497 ++	}
 1.19498 ++
 1.19499 ++	.text.pcrel10 0xa0000400:
 1.19500 ++	{
 1.19501 ++		*(.text.pcrel10)
 1.19502 ++	}
 1.19503 ++
 1.19504 ++	.text.pcrel16 0xa0008000:
 1.19505 ++	{
 1.19506 ++		*(.text.pcrel16)
 1.19507 ++	}
 1.19508 ++
 1.19509 ++	.text.pcrel21 0xa0200000:
 1.19510 ++	{
 1.19511 ++		*(.text.pcrel21)
 1.19512 ++	}
 1.19513 ++}
 1.19514 +--- /dev/null
 1.19515 ++++ b/ld/testsuite/ld-avr32/symbols.s
 1.19516 +@@ -0,0 +1,20 @@
 1.19517 ++	.text
 1.19518 ++	.global _start
 1.19519 ++_start:
 1.19520 ++	nop
 1.19521 ++	nop
 1.19522 ++
 1.19523 ++	.section .text.pcrel10,"ax"
 1.19524 ++	.global extsym10
 1.19525 ++extsym10:
 1.19526 ++	nop
 1.19527 ++
 1.19528 ++	.section .text.pcrel16,"ax"
 1.19529 ++	.global extsym16
 1.19530 ++extsym16:
 1.19531 ++	nop
 1.19532 ++
 1.19533 ++	.section .text.pcrel21,"ax"
 1.19534 ++	.global extsym21
 1.19535 ++extsym21:
 1.19536 ++	nop
 1.19537 +--- /dev/null
 1.19538 ++++ b/opcodes/avr32-asm.c
 1.19539 +@@ -0,0 +1,264 @@
 1.19540 ++/* Assembler interface for AVR32.
 1.19541 ++   Copyright 2005, 2006 Atmel Corporation.
 1.19542 ++
 1.19543 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
 1.19544 ++
 1.19545 ++   This file is part of libopcodes.
 1.19546 ++
 1.19547 ++   This program is free software; you can redistribute it and/or
 1.19548 ++   modify it under the terms of the GNU General Public License as
 1.19549 ++   published by the Free Software Foundation; either version 2 of the
 1.19550 ++   License, or (at your option) any later version.
 1.19551 ++
 1.19552 ++   This program is distributed in the hope that it will be useful, but
 1.19553 ++   WITHOUT ANY WARRANTY; without even the implied warranty of
 1.19554 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 1.19555 ++   General Public License for more details.
 1.19556 ++
 1.19557 ++   You should have received a copy of the GNU General Public License
 1.19558 ++   along with this program; if not, write to the Free Software
 1.19559 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 1.19560 ++   02111-1307, USA.  */
 1.19561 ++
 1.19562 ++#include <string.h>
 1.19563 ++
 1.19564 ++#include "avr32-opc.h"
 1.19565 ++#include "avr32-asm.h"
 1.19566 ++
 1.19567 ++/* Structure for a register hash table entry.  */
 1.19568 ++struct reg_entry
 1.19569 ++{
 1.19570 ++  const char	*name;
 1.19571 ++  int		number;
 1.19572 ++};
 1.19573 ++
 1.19574 ++/* Integer Registers.  */
 1.19575 ++static const struct reg_entry reg_table[] =
 1.19576 ++  {
 1.19577 ++    /* Primary names (used by the disassembler) */
 1.19578 ++    { "r0",   0 }, { "r1",   1 }, { "r2",   2 }, { "r3",   3 },
 1.19579 ++    { "r4",   4 }, { "r5",   5 }, { "r6",   6 }, { "r7",   7 },
 1.19580 ++    { "r8",   8 }, { "r9",   9 }, { "r10", 10 }, { "r11", 11 },
 1.19581 ++    { "r12", 12 }, { "sp",  13 }, { "lr",  14 }, { "pc",  15 },
 1.19582 ++    /* Alternatives to sp, lr and pc.  */
 1.19583 ++    { "r13", 13 }, { "r14", 14 }, { "r15", 15 },
 1.19584 ++  };
 1.19585 ++#define AVR32_NR_INTREGS (sizeof(reg_table)/sizeof(reg_table[0]))
 1.19586 ++
 1.19587 ++/* Coprocessor Registers.  */
 1.19588 ++static const struct reg_entry cr_table[] =
 1.19589 ++  {
 1.19590 ++    { "cr0",   0 }, { "cr1",   1 }, { "cr2",   2 }, { "cr3",   3 },
 1.19591 ++    { "cr4",   4 }, { "cr5",   5 }, { "cr6",   6 }, { "cr7",   7 },
 1.19592 ++    { "cr8",   8 }, { "cr9",   9 }, { "cr10", 10 }, { "cr11", 11 },
 1.19593 ++    { "cr12", 12 }, { "cr13", 13 }, { "cr14", 14 }, { "cr15", 15 },
 1.19594 ++  };
 1.19595 ++#define AVR32_NR_CPREGS (sizeof(cr_table)/sizeof(cr_table[0]))
 1.19596 ++
 1.19597 ++/* Floating-point Registers.  */
 1.19598 ++static const struct reg_entry fr_table[] =
 1.19599 ++  {
 1.19600 ++    { "fr0",   0 }, { "fr1",   1 }, { "fr2",   2 }, { "fr3",   3 },
 1.19601 ++    { "fr4",   4 }, { "fr5",   5 }, { "fr6",   6 }, { "fr7",   7 },
 1.19602 ++    { "fr8",   8 }, { "fr9",   9 }, { "fr10", 10 }, { "fr11", 11 },
 1.19603 ++    { "fr12", 12 }, { "fr13", 13 }, { "fr14", 14 }, { "fr15", 15 },
 1.19604 ++  };
 1.19605 ++#define AVR32_NR_FPREGS (sizeof(fr_table)/sizeof(fr_table[0]))
 1.19606 ++
 1.19607 ++/* PiCo Registers.  */
 1.19608 ++static const struct reg_entry pico_table[] =
 1.19609 ++  {
 1.19610 ++    { "inpix2",    0 }, { "inpix1",    1 }, { "inpix0",    2 },
 1.19611 ++    { "outpix2",   3 }, { "outpix1",   4 }, { "outpix0",   5 },
 1.19612 ++    { "coeff0_a",  6 }, { "coeff0_b",  7 }, { "coeff1_a",  8 },
 1.19613 ++    { "coeff1_b",  9 }, { "coeff2_a", 10 }, { "coeff2_b", 11 },
 1.19614 ++    { "vmu0_out", 12 }, { "vmu1_out", 13 }, { "vmu2_out", 14 },
 1.19615 ++    { "config",   15 },
 1.19616 ++  };
 1.19617 ++#define AVR32_NR_PICOREGS (sizeof(pico_table)/sizeof(pico_table[0]))
 1.19618 ++
 1.19619 ++int
 1.19620 ++avr32_parse_intreg(const char *str)
 1.19621 ++{
 1.19622 ++  unsigned int i;
 1.19623 ++
 1.19624 ++  for (i = 0; i < AVR32_NR_INTREGS; i++)
 1.19625 ++    {
 1.19626 ++      if (strcasecmp(reg_table[i].name, str) == 0)
 1.19627 ++	return reg_table[i].number;
 1.19628 ++    }
 1.19629 ++
 1.19630 ++  return -1;
 1.19631 ++}
 1.19632 ++
 1.19633 ++int
 1.19634 ++avr32_parse_cpreg(const char *str)
 1.19635 ++{
 1.19636 ++  unsigned int i;
 1.19637 ++
 1.19638 ++  for (i = 0; i < AVR32_NR_CPREGS; i++)
 1.19639 ++    {
 1.19640 ++      if (strcasecmp(cr_table[i].name, str) == 0)
 1.19641 ++	return cr_table[i].number;
 1.19642 ++    }
 1.19643 ++
 1.19644 ++  return -1;
 1.19645 ++}
 1.19646 ++
 1.19647 ++int avr32_parse_fpreg(const char *str)
 1.19648 ++{
 1.19649 ++  unsigned int i;
 1.19650 ++
 1.19651 ++  for (i = 0; i < AVR32_NR_FPREGS; i++)
 1.19652 ++    {
 1.19653 ++      if (strcasecmp(fr_table[i].name, str) == 0)
 1.19654 ++	return fr_table[i].number;
 1.19655 ++    }
 1.19656 ++
 1.19657 ++  return -1;
 1.19658 ++}
 1.19659 ++
 1.19660 ++int avr32_parse_picoreg(const char *str)
 1.19661 ++{
 1.19662 ++  unsigned int i;
 1.19663 ++
 1.19664 ++  for (i = 0; i < AVR32_NR_PICOREGS; i++)
 1.19665 ++    {
 1.19666 ++      if (strcasecmp(pico_table[i].name, str) == 0)
 1.19667 ++	return pico_table[i].number;
 1.19668 ++    }
 1.19669 ++
 1.19670 ++  return -1;
 1.19671 ++}
 1.19672 ++
 1.19673 ++static unsigned long
 1.19674 ++parse_reglist(char *str, char **endptr, int (*parse_reg)(const char *))
 1.19675 ++{
 1.19676 ++  int reg_from, reg_to;
 1.19677 ++  unsigned long result = 0;
 1.19678 ++  char *p1, *p2, c;
 1.19679 ++
 1.19680 ++  while (*str)
 1.19681 ++    {
 1.19682 ++      for (p1 = str; *p1; p1++)
 1.19683 ++	if (*p1 == ',' || *p1 == '-')
 1.19684 ++	  break;
 1.19685 ++
 1.19686 ++      c = *p1, *p1 = 0;
 1.19687 ++      reg_from = parse_reg(str);
 1.19688 ++      *p1 = c;
 1.19689 ++
 1.19690 ++      if (reg_from < 0)
 1.19691 ++	break;
 1.19692 ++
 1.19693 ++      if (*p1 == '-')
 1.19694 ++	{
 1.19695 ++	  for (p2 = ++p1; *p2; p2++)
 1.19696 ++	    if (*p2 == ',')
 1.19697 ++	      break;
 1.19698 ++
 1.19699 ++	  c = *p2, *p2 = 0;
 1.19700 ++	  /* printf("going to parse reg_to from `%s'\n", p1); */
 1.19701 ++	  reg_to = parse_reg(p1);
 1.19702 ++	  *p2 = c;
 1.19703 ++
 1.19704 ++	  if (reg_to < 0)
 1.19705 ++	    break;
 1.19706 ++
 1.19707 ++	  while (reg_from <= reg_to)
 1.19708 ++	    result |= (1 << reg_from++);
 1.19709 ++	  p1 = p2;
 1.19710 ++	}
 1.19711 ++      else
 1.19712 ++	result |= (1 << reg_from);
 1.19713 ++
 1.19714 ++      str = p1;
 1.19715 ++      if (*str) ++str;
 1.19716 ++    }
 1.19717 ++
 1.19718 ++  if (endptr)
 1.19719 ++    *endptr = str;
 1.19720 ++
 1.19721 ++  return result;
 1.19722 ++}
 1.19723 ++
 1.19724 ++unsigned long
 1.19725 ++avr32_parse_reglist(char *str, char **endptr)
 1.19726 ++{
 1.19727 ++  return parse_reglist(str, endptr, avr32_parse_intreg);
 1.19728 ++}
 1.19729 ++
 1.19730 ++unsigned long
 1.19731 ++avr32_parse_cpreglist(char *str, char **endptr)
 1.19732 ++{
 1.19733 ++  return parse_reglist(str, endptr, avr32_parse_cpreg);
 1.19734 ++}
 1.19735 ++
 1.19736 ++unsigned long
 1.19737 ++avr32_parse_pico_reglist(char *str, char **endptr)
 1.19738 ++{
 1.19739 ++  return parse_reglist(str, endptr, avr32_parse_picoreg);
 1.19740 ++}
 1.19741 ++
 1.19742 ++int
 1.19743 ++avr32_make_regmask8(unsigned long regmask16, unsigned long *regmask8)
 1.19744 ++{
 1.19745 ++  unsigned long result = 0;
 1.19746 ++
 1.19747 ++  /* printf("convert regmask16 0x%04lx\n", regmask16); */
 1.19748 ++
 1.19749 ++  if (regmask16 & 0xf)
 1.19750 ++    {
 1.19751 ++      if ((regmask16 & 0xf) == 0xf)
 1.19752 ++	result |= 1 << 0;
 1.19753 ++      else
 1.19754 ++	return -1;
 1.19755 ++    }
 1.19756 ++  if (regmask16 & 0xf0)
 1.19757 ++    {
 1.19758 ++      if ((regmask16 & 0xf0) == 0xf0)
 1.19759 ++	result |= 1 << 1;
 1.19760 ++      else
 1.19761 ++	return -1;
 1.19762 ++    }
 1.19763 ++  if (regmask16 & 0x300)
 1.19764 ++    {
 1.19765 ++      if ((regmask16 & 0x300) == 0x300)
 1.19766 ++	result |= 1 << 2;
 1.19767 ++      else
 1.19768 ++	return -1;
 1.19769 ++    }
 1.19770 ++  if (regmask16 & (1 << 13))
 1.19771 ++    return -1;
 1.19772 ++
 1.19773 ++  if (regmask16 & (1 << 10))
 1.19774 ++    result |= 1 << 3;
 1.19775 ++  if (regmask16 & (1 << 11))
 1.19776 ++    result |= 1 << 4;
 1.19777 ++  if (regmask16 & (1 << 12))
 1.19778 ++    result |= 1 << 5;
 1.19779 ++  if (regmask16 & (1 << 14))
 1.19780 ++    result |= 1 << 6;
 1.19781 ++  if (regmask16 & (1 << 15))
 1.19782 ++    result |= 1 << 7;
 1.19783 ++
 1.19784 ++  *regmask8 = result;
 1.19785 ++
 1.19786 ++  return 0;
 1.19787 ++}
 1.19788 ++
 1.19789 ++#if 0
 1.19790 ++struct reg_map
 1.19791 ++{
 1.19792 ++  const struct reg_entry	*names;
 1.19793 ++  int				nr_regs;
 1.19794 ++  struct hash_control		*htab;
 1.19795 ++  const char			*errmsg;
 1.19796 ++};
 1.19797 ++
 1.19798 ++struct reg_map all_reg_maps[] =
 1.19799 ++  {
 1.19800 ++    { reg_table, AVR32_NR_INTREGS, NULL, N_("integral register expected") },
 1.19801 ++    { cr_table,  AVR32_NR_CPREGS,  NULL, N_("coprocessor register expected") },
 1.19802 ++  };
 1.19803 ++#endif
 1.19804 +--- /dev/null
 1.19805 ++++ b/opcodes/avr32-asm.h
 1.19806 +@@ -0,0 +1,42 @@
 1.19807 ++/* Assembler interface for AVR32.
 1.19808 ++   Copyright 2005, 2006 Atmel Corporation.
 1.19809 ++
 1.19810 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
 1.19811 ++
 1.19812 ++   This file is part of libopcodes.
 1.19813 ++
 1.19814 ++   This program is free software; you can redistribute it and/or
 1.19815 ++   modify it under the terms of the GNU General Public License as
 1.19816 ++   published by the Free Software Foundation; either version 2 of the
 1.19817 ++   License, or (at your option) any later version.
 1.19818 ++
 1.19819 ++   This program is distributed in the hope that it will be useful, but
 1.19820 ++   WITHOUT ANY WARRANTY; without even the implied warranty of
 1.19821 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 1.19822 ++   General Public License for more details.
 1.19823 ++
 1.19824 ++   You should have received a copy of the GNU General Public License
 1.19825 ++   along with this program; if not, write to the Free Software
 1.19826 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 1.19827 ++   02111-1307, USA.  */
 1.19828 ++#ifndef __OPCODES_AVR32_ASM_H
 1.19829 ++#define __OPCODES_AVR32_ASM_H
 1.19830 ++
 1.19831 ++extern int
 1.19832 ++avr32_parse_intreg(const char *str);
 1.19833 ++extern int
 1.19834 ++avr32_parse_cpreg(const char *str);
 1.19835 ++extern int
 1.19836 ++avr32_parse_fpreg(const char *str);
 1.19837 ++extern int
 1.19838 ++avr32_parse_picoreg(const char *str);
 1.19839 ++extern unsigned long
 1.19840 ++avr32_parse_reglist(char *str, char **endptr);
 1.19841 ++extern unsigned long
 1.19842 ++avr32_parse_cpreglist(char *str, char **endptr);
 1.19843 ++extern unsigned long
 1.19844 ++avr32_parse_pico_reglist(char *str, char **endptr);
 1.19845 ++extern int
 1.19846 ++avr32_make_regmask8(unsigned long regmask16, unsigned long *regmask8);
 1.19847 ++
 1.19848 ++#endif /* __OPCODES_AVR32_ASM_H */
 1.19849 +--- /dev/null
 1.19850 ++++ b/opcodes/avr32-dis.c
 1.19851 +@@ -0,0 +1,891 @@
 1.19852 ++/* Print AVR32 instructions for GDB and objdump.
 1.19853 ++   Copyright 2005, 2006 Atmel Corporation.
 1.19854 ++
 1.19855 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
 1.19856 ++
 1.19857 ++   This file is part of libopcodes.
 1.19858 ++
 1.19859 ++   This program is free software; you can redistribute it and/or
 1.19860 ++   modify it under the terms of the GNU General Public License as
 1.19861 ++   published by the Free Software Foundation; either version 2 of the
 1.19862 ++   License, or (at your option) any later version.
 1.19863 ++
 1.19864 ++   This program is distributed in the hope that it will be useful, but
 1.19865 ++   WITHOUT ANY WARRANTY; without even the implied warranty of
 1.19866 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 1.19867 ++   General Public License for more details.
 1.19868 ++
 1.19869 ++   You should have received a copy of the GNU General Public License
 1.19870 ++   along with this program; if not, write to the Free Software
 1.19871 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 1.19872 ++   02111-1307, USA.  */
 1.19873 ++
 1.19874 ++#include "sysdep.h"
 1.19875 ++#include "dis-asm.h"
 1.19876 ++#include "avr32-opc.h"
 1.19877 ++#include "opintl.h"
 1.19878 ++#include "safe-ctype.h"
 1.19879 ++
 1.19880 ++/* TODO: Share this with -asm */
 1.19881 ++
 1.19882 ++/* Structure for a register hash table entry.  */
 1.19883 ++struct reg_entry
 1.19884 ++{
 1.19885 ++  const char	*name;
 1.19886 ++  int		number;
 1.19887 ++};
 1.19888 ++
 1.19889 ++#ifndef strneq
 1.19890 ++#define strneq(a,b,n)	(strncmp ((a), (b), (n)) == 0)
 1.19891 ++#endif
 1.19892 ++
 1.19893 ++
 1.19894 ++static const struct reg_entry reg_table[] =
 1.19895 ++  {
 1.19896 ++    /* Primary names (used by the disassembler) */
 1.19897 ++    { "r0",   0 }, { "r1",   1 }, { "r2",   2 }, { "r3",   3 },
 1.19898 ++    { "r4",   4 }, { "r5",   5 }, { "r6",   6 }, { "r7",   7 },
 1.19899 ++    { "r8",   8 }, { "r9",   9 }, { "r10", 10 }, { "r11", 11 },
 1.19900 ++    { "r12", 12 }, { "sp",  13 }, { "lr",  14 }, { "pc",  15 },
 1.19901 ++    /* Alternatives to sp, lr and pc.  */
 1.19902 ++    { "r13", 13 }, { "r14", 14 }, { "r15", 15 },
 1.19903 ++  };
 1.19904 ++#define AVR32_NR_INTREGS (sizeof(reg_table)/sizeof(reg_table[0]))
 1.19905 ++
 1.19906 ++/* Coprocessor Registers.  */
 1.19907 ++static const struct reg_entry cr_table[] =
 1.19908 ++  {
 1.19909 ++    { "cr0",   0 }, { "cr1",   1 }, { "cr2",   2 }, { "cr3",   3 },
 1.19910 ++    { "cr4",   4 }, { "cr5",   5 }, { "cr6",   6 }, { "cr7",   7 },
 1.19911 ++    { "cr8",   8 }, { "cr9",   9 }, { "cr10", 10 }, { "cr11", 11 },
 1.19912 ++    { "cr12", 12 }, { "cr13", 13 }, { "cr14", 14 }, { "cr15", 15 },
 1.19913 ++  };
 1.19914 ++#define AVR32_NR_CPREGS (sizeof(cr_table)/sizeof(cr_table[0]))
 1.19915 ++
 1.19916 ++static const char bparts[4] = { 'b', 'l', 'u', 't' };
 1.19917 ++static bfd_vma current_pc;
 1.19918 ++
 1.19919 ++struct avr32_field_value
 1.19920 ++{
 1.19921 ++  const struct avr32_ifield *ifield;
 1.19922 ++  unsigned long value;
 1.19923 ++};
 1.19924 ++
 1.19925 ++struct avr32_operand
 1.19926 ++{
 1.19927 ++  int id;
 1.19928 ++  int is_pcrel;
 1.19929 ++  int align_order;
 1.19930 ++  int (*print)(struct avr32_operand *op, struct disassemble_info *info,
 1.19931 ++	       struct avr32_field_value *ifields);
 1.19932 ++};
 1.19933 ++
 1.19934 ++static signed long
 1.19935 ++get_signed_value(const struct avr32_field_value *fv)
 1.19936 ++{
 1.19937 ++  signed long value = fv->value;
 1.19938 ++
 1.19939 ++  if (fv->value & (1 << (fv->ifield->bitsize - 1)))
 1.19940 ++    value |= (~0UL << fv->ifield->bitsize);
 1.19941 ++
 1.19942 ++  return value;
 1.19943 ++}
 1.19944 ++
 1.19945 ++static void
 1.19946 ++print_reglist_range(unsigned int first, unsigned int last,
 1.19947 ++		    const struct reg_entry *reg_names,
 1.19948 ++		    int need_comma,
 1.19949 ++		    struct disassemble_info *info)
 1.19950 ++{
 1.19951 ++  if (need_comma)
 1.19952 ++    info->fprintf_func(info->stream, ",");
 1.19953 ++
 1.19954 ++  if (first == last)
 1.19955 ++    info->fprintf_func(info->stream, "%s",
 1.19956 ++		       reg_names[first].name);
 1.19957 ++  else
 1.19958 ++    info->fprintf_func(info->stream, "%s-%s",
 1.19959 ++		       reg_names[first].name, reg_names[last].name);
 1.19960 ++}
 1.19961 ++
 1.19962 ++static int
 1.19963 ++print_intreg(struct avr32_operand *op,
 1.19964 ++	     struct disassemble_info *info,
 1.19965 ++	     struct avr32_field_value *ifields)
 1.19966 ++{
 1.19967 ++  unsigned long regid = ifields[0].value << op->align_order;
 1.19968 ++
 1.19969 ++  info->fprintf_func(info->stream, "%s",
 1.19970 ++		     reg_table[regid].name);
 1.19971 ++  return 1;
 1.19972 ++}
 1.19973 ++
 1.19974 ++static int
 1.19975 ++print_intreg_predec(struct avr32_operand *op ATTRIBUTE_UNUSED,
 1.19976 ++		    struct disassemble_info *info,
 1.19977 ++		    struct avr32_field_value *ifields)
 1.19978 ++{
 1.19979 ++  info->fprintf_func(info->stream, "--%s",
 1.19980 ++		     reg_table[ifields[0].value].name);
 1.19981 ++  return 1;
 1.19982 ++}
 1.19983 ++
 1.19984 ++static int
 1.19985 ++print_intreg_postinc(struct avr32_operand *op ATTRIBUTE_UNUSED,
 1.19986 ++		     struct disassemble_info *info,
 1.19987 ++		     struct avr32_field_value *ifields)
 1.19988 ++{
 1.19989 ++  info->fprintf_func(info->stream, "%s++",
 1.19990 ++		     reg_table[ifields[0].value].name);
 1.19991 ++  return 1;
 1.19992 ++}
 1.19993 ++
 1.19994 ++static int
 1.19995 ++print_intreg_lsl(struct avr32_operand *op ATTRIBUTE_UNUSED,
 1.19996 ++		 struct disassemble_info *info,
 1.19997 ++		 struct avr32_field_value *ifields)
 1.19998 ++{
 1.19999 ++  const char *rp = reg_table[ifields[0].value].name;
 1.20000 ++  unsigned long sa = ifields[1].value;
 1.20001 ++
 1.20002 ++  if (sa)
 1.20003 ++    info->fprintf_func(info->stream, "%s<<0x%lx", rp, sa);
 1.20004 ++  else
 1.20005 ++    info->fprintf_func(info->stream, "%s", rp);
 1.20006 ++
 1.20007 ++  return 2;
 1.20008 ++}
 1.20009 ++
 1.20010 ++static int
 1.20011 ++print_intreg_lsr(struct avr32_operand *op ATTRIBUTE_UNUSED,
 1.20012 ++		 struct disassemble_info *info,
 1.20013 ++		 struct avr32_field_value *ifields)
 1.20014 ++{
 1.20015 ++  const char *rp = reg_table[ifields[0].value].name;
 1.20016 ++  unsigned long sa = ifields[1].value;
 1.20017 ++
 1.20018 ++  if (sa)
 1.20019 ++    info->fprintf_func(info->stream, "%s>>0x%lx", rp, sa);
 1.20020 ++  else
 1.20021 ++    info->fprintf_func(info->stream, "%s", rp);
 1.20022 ++
 1.20023 ++  return 2;
 1.20024 ++}
 1.20025 ++
 1.20026 ++static int
 1.20027 ++print_intreg_bpart(struct avr32_operand *op ATTRIBUTE_UNUSED,
 1.20028 ++		   struct disassemble_info *info,
 1.20029 ++		   struct avr32_field_value *ifields)
 1.20030 ++{
 1.20031 ++  info->fprintf_func(info->stream, "%s:%c",
 1.20032 ++		     reg_table[ifields[0].value].name,
 1.20033 ++		     bparts[ifields[1].value]);
 1.20034 ++  return 2;
 1.20035 ++}
 1.20036 ++
 1.20037 ++static int
 1.20038 ++print_intreg_hpart(struct avr32_operand *op ATTRIBUTE_UNUSED,
 1.20039 ++		   struct disassemble_info *info,
 1.20040 ++		   struct avr32_field_value *ifields)
 1.20041 ++{
 1.20042 ++  info->fprintf_func(info->stream, "%s:%c",
 1.20043 ++		     reg_table[ifields[0].value].name,
 1.20044 ++		     ifields[1].value ? 't' : 'b');
 1.20045 ++  return 2;
 1.20046 ++}
 1.20047 ++
 1.20048 ++static int
 1.20049 ++print_intreg_sdisp(struct avr32_operand *op,
 1.20050 ++		  struct disassemble_info *info,
 1.20051 ++		  struct avr32_field_value *ifields)
 1.20052 ++{
 1.20053 ++  signed long disp;
 1.20054 ++
 1.20055 ++  disp = get_signed_value(&ifields[1]) << op->align_order;
 1.20056 ++
 1.20057 ++  info->fprintf_func(info->stream, "%s[%ld]",
 1.20058 ++		     reg_table[ifields[0].value].name, disp);
 1.20059 ++  return 2;
 1.20060 ++}
 1.20061 ++
 1.20062 ++static int
 1.20063 ++print_intreg_udisp(struct avr32_operand *op,
 1.20064 ++		   struct disassemble_info *info,
 1.20065 ++		   struct avr32_field_value *ifields)
 1.20066 ++{
 1.20067 ++  info->fprintf_func(info->stream, "%s[0x%lx]",
 1.20068 ++		     reg_table[ifields[0].value].name,
 1.20069 ++		     ifields[1].value << op->align_order);
 1.20070 ++  return 2;
 1.20071 ++}
 1.20072 ++
 1.20073 ++static int
 1.20074 ++print_intreg_index(struct avr32_operand *op ATTRIBUTE_UNUSED,
 1.20075 ++		   struct disassemble_info *info,
 1.20076 ++		   struct avr32_field_value *ifields)
 1.20077 ++{
 1.20078 ++  const char *rb, *ri;
 1.20079 ++  unsigned long sa = ifields[2].value;
 1.20080 ++
 1.20081 ++  rb = reg_table[ifields[0].value].name;
 1.20082 ++  ri = reg_table[ifields[1].value].name;
 1.20083 ++
 1.20084 ++  if (sa)
 1.20085 ++    info->fprintf_func(info->stream, "%s[%s<<0x%lx]", rb, ri, sa);
 1.20086 ++  else
 1.20087 ++    info->fprintf_func(info->stream, "%s[%s]", rb, ri);
 1.20088 ++
 1.20089 ++  return 3;
 1.20090 ++}
 1.20091 ++
 1.20092 ++static int
 1.20093 ++print_intreg_xindex(struct avr32_operand *op ATTRIBUTE_UNUSED,
 1.20094 ++		    struct disassemble_info *info,
 1.20095 ++		    struct avr32_field_value *ifields)
 1.20096 ++{
 1.20097 ++  info->fprintf_func(info->stream, "%s[%s:%c<<2]",
 1.20098 ++		     reg_table[ifields[0].value].name,
 1.20099 ++		     reg_table[ifields[1].value].name,
 1.20100 ++		     bparts[ifields[2].value]);
 1.20101 ++  return 3;
 1.20102 ++}
 1.20103 ++
 1.20104 ++static int
 1.20105 ++print_jmplabel(struct avr32_operand *op,
 1.20106 ++	       struct disassemble_info *info,
 1.20107 ++	       struct avr32_field_value *ifields)
 1.20108 ++{
 1.20109 ++  bfd_vma address, offset;
 1.20110 ++
 1.20111 ++  offset = get_signed_value(ifields) << op->align_order;
 1.20112 ++  address = (current_pc & (~0UL << op->align_order)) + offset;
 1.20113 ++
 1.20114 ++  info->print_address_func(address, info);
 1.20115 ++
 1.20116 ++  return 1;
 1.20117 ++}
 1.20118 ++
 1.20119 ++static int
 1.20120 ++print_pc_disp(struct avr32_operand *op,
 1.20121 ++	      struct disassemble_info *info,
 1.20122 ++	      struct avr32_field_value *ifields)
 1.20123 ++{
 1.20124 ++  bfd_vma address, offset;
 1.20125 ++
 1.20126 ++  offset = ifields[0].value << op->align_order;
 1.20127 ++  address = (current_pc & (~0UL << op->align_order)) + offset;
 1.20128 ++
 1.20129 ++  info->print_address_func(address, info);
 1.20130 ++
 1.20131 ++  return 1;
 1.20132 ++}
 1.20133 ++
 1.20134 ++static int
 1.20135 ++print_sp(struct avr32_operand *op ATTRIBUTE_UNUSED,
 1.20136 ++	 struct disassemble_info *info,
 1.20137 ++	 struct avr32_field_value *ifields ATTRIBUTE_UNUSED)
 1.20138 ++{
 1.20139 ++  info->fprintf_func(info->stream, "sp");
 1.20140 ++  return 1;
 1.20141 ++}
 1.20142 ++
 1.20143 ++static int
 1.20144 ++print_sp_disp(struct avr32_operand *op,
 1.20145 ++	      struct disassemble_info *info,
 1.20146 ++	      struct avr32_field_value *ifields)
 1.20147 ++{
 1.20148 ++  info->fprintf_func(info->stream, "sp[0x%lx]",
 1.20149 ++		     ifields[0].value << op->align_order);
 1.20150 ++  return 1;
 1.20151 ++}
 1.20152 ++
 1.20153 ++static int
 1.20154 ++print_cpno(struct avr32_operand *op ATTRIBUTE_UNUSED,
 1.20155 ++	   struct disassemble_info *info,
 1.20156 ++	   struct avr32_field_value *ifields)
 1.20157 ++{
 1.20158 ++  info->fprintf_func(info->stream, "cp%lu", ifields[0].value);
 1.20159 ++  return 1;
 1.20160 ++}
 1.20161 ++
 1.20162 ++static int
 1.20163 ++print_cpreg(struct avr32_operand *op,
 1.20164 ++	    struct disassemble_info *info,
 1.20165 ++	    struct avr32_field_value *ifields)
 1.20166 ++{
 1.20167 ++  info->fprintf_func(info->stream, "cr%lu",
 1.20168 ++		     ifields[0].value << op->align_order);
 1.20169 ++  return 1;
 1.20170 ++}
 1.20171 ++
 1.20172 ++static int
 1.20173 ++print_uconst(struct avr32_operand *op,
 1.20174 ++	     struct disassemble_info *info,
 1.20175 ++	     struct avr32_field_value *ifields)
 1.20176 ++{
 1.20177 ++  info->fprintf_func(info->stream, "0x%lx",
 1.20178 ++		     ifields[0].value << op->align_order);
 1.20179 ++  return 1;
 1.20180 ++}
 1.20181 ++
 1.20182 ++static int
 1.20183 ++print_sconst(struct avr32_operand *op,
 1.20184 ++	     struct disassemble_info *info,
 1.20185 ++	     struct avr32_field_value *ifields)
 1.20186 ++{
 1.20187 ++  info->fprintf_func(info->stream, "%ld",
 1.20188 ++		     get_signed_value(ifields) << op->align_order);
 1.20189 ++  return 1;
 1.20190 ++}
 1.20191 ++
 1.20192 ++static int
 1.20193 ++print_reglist8_head(unsigned long regmask, int *commap,
 1.20194 ++		    struct disassemble_info *info)
 1.20195 ++{
 1.20196 ++  int first = -1, last, i = 0;
 1.20197 ++  int need_comma = 0;
 1.20198 ++
 1.20199 ++  while (i < 12)
 1.20200 ++    {
 1.20201 ++      if (first == -1 && (regmask & 1))
 1.20202 ++	{
 1.20203 ++	  first = i;
 1.20204 ++	}
 1.20205 ++      else if (first != -1 && !(regmask & 1))
 1.20206 ++	{
 1.20207 ++	  last = i - 1;
 1.20208 ++
 1.20209 ++	  print_reglist_range(first, last, reg_table, need_comma, info);
 1.20210 ++	  need_comma = 1;
 1.20211 ++	  first = -1;
 1.20212 ++	}
 1.20213 ++
 1.20214 ++      if (i < 8)
 1.20215 ++	i += 4;
 1.20216 ++      else if (i < 10)
 1.20217 ++	i += 2;
 1.20218 ++      else
 1.20219 ++	i++;
 1.20220 ++      regmask >>= 1;
 1.20221 ++    }
 1.20222 ++
 1.20223 ++  *commap = need_comma;
 1.20224 ++  return first;
 1.20225 ++}
 1.20226 ++
 1.20227 ++static void
 1.20228 ++print_reglist8_tail(unsigned long regmask, int first, int need_comma,
 1.20229 ++		    struct disassemble_info *info)
 1.20230 ++{
 1.20231 ++  int last = 11;
 1.20232 ++
 1.20233 ++  if (regmask & 0x20)
 1.20234 ++    {
 1.20235 ++      if (first == -1)
 1.20236 ++	first = 12;
 1.20237 ++      last = 12;
 1.20238 ++    }
 1.20239 ++
 1.20240 ++  if (first != -1)
 1.20241 ++    {
 1.20242 ++      print_reglist_range(first, last, reg_table, need_comma, info);
 1.20243 ++      need_comma = 1;
 1.20244 ++      first = -1;
 1.20245 ++    }
 1.20246 ++
 1.20247 ++  if (regmask & 0x40)
 1.20248 ++    {
 1.20249 ++      if (first == -1)
 1.20250 ++	first = 14;
 1.20251 ++      last = 14;
 1.20252 ++    }
 1.20253 ++
 1.20254 ++  if (regmask & 0x80)
 1.20255 ++    {
 1.20256 ++      if (first == -1)
 1.20257 ++	first = 15;
 1.20258 ++      last = 15;
 1.20259 ++    }
 1.20260 ++
 1.20261 ++  if (first != -1)
 1.20262 ++    print_reglist_range(first, last, reg_table, need_comma, info);
 1.20263 ++}
 1.20264 ++
 1.20265 ++static int
 1.20266 ++print_reglist8(struct avr32_operand *op ATTRIBUTE_UNUSED,
 1.20267 ++	       struct disassemble_info *info,
 1.20268 ++	       struct avr32_field_value *ifields)
 1.20269 ++{
 1.20270 ++  unsigned long regmask = ifields[0].value;
 1.20271 ++  int first, need_comma;
 1.20272 ++
 1.20273 ++  first = print_reglist8_head(regmask, &need_comma, info);
 1.20274 ++  print_reglist8_tail(regmask, first, need_comma, info);
 1.20275 ++
 1.20276 ++  return 1;
 1.20277 ++}
 1.20278 ++
 1.20279 ++static int
 1.20280 ++print_reglist9(struct avr32_operand *op ATTRIBUTE_UNUSED,
 1.20281 ++	       struct disassemble_info *info,
 1.20282 ++	       struct avr32_field_value *ifields)
 1.20283 ++{
 1.20284 ++  unsigned long regmask = ifields[0].value >> 1;
 1.20285 ++  int first, last, need_comma;
 1.20286 ++
 1.20287 ++  first = print_reglist8_head(regmask, &need_comma, info);
 1.20288 ++
 1.20289 ++  if ((ifields[0].value & 0x101) == 0x101)
 1.20290 ++    {
 1.20291 ++      if (first != -1)
 1.20292 ++	{
 1.20293 ++	  last = 11;
 1.20294 ++
 1.20295 ++	  print_reglist_range(first, last, reg_table, need_comma, info);
 1.20296 ++	  need_comma = 1;
 1.20297 ++	  first = -1;
 1.20298 ++	}
 1.20299 ++
 1.20300 ++      print_reglist_range(15, 15, reg_table, need_comma, info);
 1.20301 ++
 1.20302 ++      regmask >>= 5;
 1.20303 ++
 1.20304 ++      if ((regmask & 3) == 0)
 1.20305 ++	info->fprintf_func(info->stream, ",r12=0");
 1.20306 ++      else if ((regmask & 3) == 1)
 1.20307 ++	info->fprintf_func(info->stream, ",r12=1");
 1.20308 ++      else
 1.20309 ++	info->fprintf_func(info->stream, ",r12=-1");
 1.20310 ++    }
 1.20311 ++  else
 1.20312 ++      print_reglist8_tail(regmask, first, need_comma, info);
 1.20313 ++
 1.20314 ++  return 1;
 1.20315 ++}
 1.20316 ++
 1.20317 ++static int
 1.20318 ++print_reglist16(struct avr32_operand *op ATTRIBUTE_UNUSED,
 1.20319 ++		struct disassemble_info *info,
 1.20320 ++		struct avr32_field_value *ifields)
 1.20321 ++{
 1.20322 ++  unsigned long regmask = ifields[0].value;
 1.20323 ++  unsigned int i = 0, first, last;
 1.20324 ++  int need_comma = 0;
 1.20325 ++
 1.20326 ++  while (i < 16)
 1.20327 ++    {
 1.20328 ++      if (regmask & 1)
 1.20329 ++	{
 1.20330 ++	  first = i;
 1.20331 ++	  while (i < 16)
 1.20332 ++	    {
 1.20333 ++	      i++;
 1.20334 ++	      regmask >>= 1;
 1.20335 ++	      if (!(regmask & 1))
 1.20336 ++		break;
 1.20337 ++	    }
 1.20338 ++	  last = i - 1;
 1.20339 ++	  print_reglist_range(first, last, reg_table, need_comma, info);
 1.20340 ++	  need_comma = 1;
 1.20341 ++	}
 1.20342 ++      else
 1.20343 ++	{
 1.20344 ++	  i++;
 1.20345 ++	  regmask >>= 1;
 1.20346 ++	}
 1.20347 ++    }
 1.20348 ++
 1.20349 ++  return 1;
 1.20350 ++}
 1.20351 ++
 1.20352 ++static int
 1.20353 ++print_reglist_ldm(struct avr32_operand *op,
 1.20354 ++		  struct disassemble_info *info,
 1.20355 ++		  struct avr32_field_value *ifields)
 1.20356 ++{
 1.20357 ++  int rp, w_bit;
 1.20358 ++  int i, first, last;
 1.20359 ++  unsigned long regmask;
 1.20360 ++
 1.20361 ++  rp = ifields[0].value;
 1.20362 ++  w_bit = ifields[1].value;
 1.20363 ++  regmask = ifields[2].value;
 1.20364 ++
 1.20365 ++  if (regmask & (1 << AVR32_REG_PC) && rp == AVR32_REG_PC)
 1.20366 ++    {
 1.20367 ++      if (w_bit)
 1.20368 ++	info->fprintf_func(info->stream, "sp++");
 1.20369 ++      else
 1.20370 ++	info->fprintf_func(info->stream, "sp");
 1.20371 ++
 1.20372 ++      for (i = 0; i < 12; )
 1.20373 ++	{
 1.20374 ++	  if (regmask & (1 << i))
 1.20375 ++	    {
 1.20376 ++	      first = i;
 1.20377 ++	      while (i < 12)
 1.20378 ++		{
 1.20379 ++		  i++;
 1.20380 ++		  if (!(regmask & (1 << i)))
 1.20381 ++		    break;
 1.20382 ++		}
 1.20383 ++	      last = i - 1;
 1.20384 ++	      print_reglist_range(first, last, reg_table, 1, info);
 1.20385 ++	    }
 1.20386 ++	  else
 1.20387 ++	    i++;
 1.20388 ++	}
 1.20389 ++
 1.20390 ++      info->fprintf_func(info->stream, ",pc");
 1.20391 ++      if (regmask & (1 << AVR32_REG_LR))
 1.20392 ++	info->fprintf_func(info->stream, ",r12=-1");
 1.20393 ++      else if (regmask & (1 << AVR32_REG_R12))
 1.20394 ++	info->fprintf_func(info->stream, ",r12=1");
 1.20395 ++      else
 1.20396 ++	info->fprintf_func(info->stream, ",r12=0");
 1.20397 ++    }
 1.20398 ++  else
 1.20399 ++    {
 1.20400 ++      if (w_bit)
 1.20401 ++	info->fprintf_func(info->stream, "%s++,", reg_table[rp].name);
 1.20402 ++      else
 1.20403 ++	info->fprintf_func(info->stream, "%s,", reg_table[rp].name);
 1.20404 ++
 1.20405 ++      print_reglist16(op, info, ifields + 2);
 1.20406 ++    }
 1.20407 ++
 1.20408 ++  return 3;
 1.20409 ++}
 1.20410 ++
 1.20411 ++static int
 1.20412 ++print_reglist_cp8(struct avr32_operand *op ATTRIBUTE_UNUSED,
 1.20413 ++		  struct disassemble_info *info,
 1.20414 ++		  struct avr32_field_value *ifields)
 1.20415 ++{
 1.20416 ++  unsigned long regmask = ifields[0].value;
 1.20417 ++  unsigned int i = 0, first, last, offset = 0;
 1.20418 ++  int need_comma = 0;
 1.20419 ++
 1.20420 ++  if (ifields[1].value)
 1.20421 ++    offset = 8;
 1.20422 ++
 1.20423 ++  while (i < 8)
 1.20424 ++    {
 1.20425 ++      if (regmask & 1)
 1.20426 ++	{
 1.20427 ++	  first = i;
 1.20428 ++	  while (i < 8)
 1.20429 ++	    {
 1.20430 ++	      i++;
 1.20431 ++	      regmask >>= 1;
 1.20432 ++	      if (!(regmask & 1))
 1.20433 ++		break;
 1.20434 ++	    }
 1.20435 ++	  last = i - 1;
 1.20436 ++	  print_reglist_range(offset + first, offset + last,
 1.20437 ++			      cr_table, need_comma, info);
 1.20438 ++	  need_comma = 1;
 1.20439 ++	}
 1.20440 ++      else
 1.20441 ++	{
 1.20442 ++	  i++;
 1.20443 ++	  regmask >>= 1;
 1.20444 ++	}
 1.20445 ++    }
 1.20446 ++
 1.20447 ++  return 2;
 1.20448 ++}
 1.20449 ++
 1.20450 ++static int
 1.20451 ++print_reglist_cpd8(struct avr32_operand *op ATTRIBUTE_UNUSED,
 1.20452 ++		   struct disassemble_info *info,
 1.20453 ++		   struct avr32_field_value *ifields)
 1.20454 ++{
 1.20455 ++  unsigned long regmask = ifields[0].value;
 1.20456 ++  unsigned int i = 0, first, last;
 1.20457 ++  int need_comma = 0;
 1.20458 ++
 1.20459 ++  while (i < 8)
 1.20460 ++    {
 1.20461 ++      if (regmask & 1)
 1.20462 ++	{
 1.20463 ++	  first = 2 * i;
 1.20464 ++	  while (i < 8)
 1.20465 ++	    {
 1.20466 ++	      i++;
 1.20467 ++	      regmask >>= 1;
 1.20468 ++	      if (!(regmask & 1))
 1.20469 ++		break;
 1.20470 ++	    }
 1.20471 ++	  last = 2 * (i - 1) + 1;
 1.20472 ++	  print_reglist_range(first, last, cr_table, need_comma, info);
 1.20473 ++	  need_comma = 1;
 1.20474 ++	}
 1.20475 ++      else
 1.20476 ++	{
 1.20477 ++	  i++;
 1.20478 ++	  regmask >>= 1;
 1.20479 ++	}
 1.20480 ++    }
 1.20481 ++
 1.20482 ++  return 1;
 1.20483 ++}
 1.20484 ++
 1.20485 ++static int
 1.20486 ++print_retval(struct avr32_operand *op ATTRIBUTE_UNUSED,
 1.20487 ++	     struct disassemble_info *info,
 1.20488 ++	     struct avr32_field_value *ifields)
 1.20489 ++{
 1.20490 ++  unsigned long regid = ifields[0].value;
 1.20491 ++  const char *retval;
 1.20492 ++
 1.20493 ++  if (regid < AVR32_REG_SP)
 1.20494 ++    retval = reg_table[regid].name;
 1.20495 ++  else if (regid == AVR32_REG_SP)
 1.20496 ++    retval = "0";
 1.20497 ++  else if (regid == AVR32_REG_LR)
 1.20498 ++    retval = "-1";
 1.20499 ++  else
 1.20500 ++    retval = "1";
 1.20501 ++
 1.20502 ++  info->fprintf_func(info->stream, "%s", retval);
 1.20503 ++
 1.20504 ++  return 1;
 1.20505 ++}
 1.20506 ++
 1.20507 ++static int
 1.20508 ++print_mcall(struct avr32_operand *op,
 1.20509 ++	    struct disassemble_info *info,
 1.20510 ++	    struct avr32_field_value *ifields)
 1.20511 ++{
 1.20512 ++  unsigned long regid = ifields[0].value;
 1.20513 ++
 1.20514 ++  if (regid == AVR32_REG_PC)
 1.20515 ++    print_jmplabel(op, info, ifields + 1);
 1.20516 ++  else
 1.20517 ++    print_intreg_sdisp(op, info, ifields);
 1.20518 ++
 1.20519 ++  return 2;
 1.20520 ++}
 1.20521 ++
 1.20522 ++static int
 1.20523 ++print_jospinc(struct avr32_operand *op ATTRIBUTE_UNUSED,
 1.20524 ++	      struct disassemble_info *info,
 1.20525 ++	      struct avr32_field_value *ifields)
 1.20526 ++{
 1.20527 ++  signed long value = ifields[0].value;
 1.20528 ++
 1.20529 ++  if (value >= 4)
 1.20530 ++    value -= 8;
 1.20531 ++  else
 1.20532 ++    value += 1;
 1.20533 ++
 1.20534 ++  info->fprintf_func(info->stream, "%ld", value);
 1.20535 ++
 1.20536 ++  return 1;
 1.20537 ++}
 1.20538 ++
 1.20539 ++static int
 1.20540 ++print_coh(struct avr32_operand *op ATTRIBUTE_UNUSED,
 1.20541 ++	  struct disassemble_info *info,
 1.20542 ++	  struct avr32_field_value *ifields ATTRIBUTE_UNUSED)
 1.20543 ++{
 1.20544 ++  info->fprintf_func(info->stream, "COH");
 1.20545 ++  return 0;
 1.20546 ++}
 1.20547 ++
 1.20548 ++#define OP(name, sgn, pcrel, align, func) \
 1.20549 ++  { AVR32_OPERAND_##name, pcrel, align, print_##func }
 1.20550 ++
 1.20551 ++struct avr32_operand operand[AVR32_NR_OPERANDS] =
 1.20552 ++  {
 1.20553 ++    OP(INTREG, 0, 0, 0, intreg),
 1.20554 ++    OP(INTREG_PREDEC, 0, 0, 0, intreg_predec),
 1.20555 ++    OP(INTREG_POSTINC, 0, 0, 0, intreg_postinc),
 1.20556 ++    OP(INTREG_LSL, 0, 0, 0, intreg_lsl),
 1.20557 ++    OP(INTREG_LSR, 0, 0, 0, intreg_lsr),
 1.20558 ++    OP(INTREG_BSEL, 0, 0, 0, intreg_bpart),
 1.20559 ++    OP(INTREG_HSEL, 0, 0, 1, intreg_hpart),
 1.20560 ++    OP(INTREG_SDISP, 1, 0, 0, intreg_sdisp),
 1.20561 ++    OP(INTREG_SDISP_H, 1, 0, 1, intreg_sdisp),
 1.20562 ++    OP(INTREG_SDISP_W, 1, 0, 2, intreg_sdisp),
 1.20563 ++    OP(INTREG_UDISP, 0, 0, 0, intreg_udisp),
 1.20564 ++    OP(INTREG_UDISP_H, 0, 0, 1, intreg_udisp),
 1.20565 ++    OP(INTREG_UDISP_W, 0, 0, 2, intreg_udisp),
 1.20566 ++    OP(INTREG_INDEX, 0, 0, 0, intreg_index),
 1.20567 ++    OP(INTREG_XINDEX, 0, 0, 0, intreg_xindex),
 1.20568 ++    OP(DWREG, 0, 0, 1, intreg),
 1.20569 ++    OP(PC_UDISP_W, 0, 1, 2, pc_disp),
 1.20570 ++    OP(SP, 0, 0, 0, sp),
 1.20571 ++    OP(SP_UDISP_W, 0, 0, 2, sp_disp),
 1.20572 ++    OP(CPNO, 0, 0, 0, cpno),
 1.20573 ++    OP(CPREG, 0, 0, 0, cpreg),
 1.20574 ++    OP(CPREG_D, 0, 0, 1, cpreg),
 1.20575 ++    OP(UNSIGNED_CONST, 0, 0, 0, uconst),
 1.20576 ++    OP(UNSIGNED_CONST_W, 0, 0, 2, uconst),
 1.20577 ++    OP(SIGNED_CONST, 1, 0, 0, sconst),
 1.20578 ++    OP(SIGNED_CONST_W, 1, 0, 2, sconst),
 1.20579 ++    OP(JMPLABEL, 1, 1, 1, jmplabel),
 1.20580 ++    OP(UNSIGNED_NUMBER, 0, 0, 0, uconst),
 1.20581 ++    OP(UNSIGNED_NUMBER_W, 0, 0, 2, uconst),
 1.20582 ++    OP(REGLIST8, 0, 0, 0, reglist8),
 1.20583 ++    OP(REGLIST9, 0, 0, 0, reglist9),
 1.20584 ++    OP(REGLIST16, 0, 0, 0, reglist16),
 1.20585 ++    OP(REGLIST_LDM, 0, 0, 0, reglist_ldm),
 1.20586 ++    OP(REGLIST_CP8, 0, 0, 0, reglist_cp8),
 1.20587 ++    OP(REGLIST_CPD8, 0, 0, 0, reglist_cpd8),
 1.20588 ++    OP(RETVAL, 0, 0, 0, retval),
 1.20589 ++    OP(MCALL, 1, 0, 2, mcall),
 1.20590 ++    OP(JOSPINC, 0, 0, 0, jospinc),
 1.20591 ++    OP(COH, 0, 0, 0, coh),
 1.20592 ++  };
 1.20593 ++
 1.20594 ++static void
 1.20595 ++print_opcode(bfd_vma insn_word, const struct avr32_opcode *opc,
 1.20596 ++	     bfd_vma pc, struct disassemble_info *info)
 1.20597 ++{
 1.20598 ++  const struct avr32_syntax *syntax = opc->syntax;
 1.20599 ++  struct avr32_field_value fields[AVR32_MAX_FIELDS];
 1.20600 ++  unsigned int i, next_field = 0, nr_operands;
 1.20601 ++
 1.20602 ++  for (i = 0; i < opc->nr_fields; i++)
 1.20603 ++    {
 1.20604 ++      opc->fields[i]->extract(opc->fields[i], &insn_word, &fields[i].value);
 1.20605 ++      fields[i].ifield = opc->fields[i];
 1.20606 ++    }
 1.20607 ++
 1.20608 ++  current_pc = pc;
 1.20609 ++  info->fprintf_func(info->stream, "%s", syntax->mnemonic->name);
 1.20610 ++
 1.20611 ++  if (syntax->nr_operands < 0)
 1.20612 ++    nr_operands = (unsigned int) -syntax->nr_operands;
 1.20613 ++  else
 1.20614 ++    nr_operands = (unsigned int) syntax->nr_operands;
 1.20615 ++
 1.20616 ++  for (i = 0; i < nr_operands; i++)
 1.20617 ++    {
 1.20618 ++      struct avr32_operand *op = &operand[syntax->operand[i]];
 1.20619 ++
 1.20620 ++      if (i)
 1.20621 ++	info->fprintf_func(info->stream, ",");
 1.20622 ++      else
 1.20623 ++	info->fprintf_func(info->stream, "\t");
 1.20624 ++      next_field += op->print(op, info, &fields[next_field]);
 1.20625 ++    }
 1.20626 ++}
 1.20627 ++
 1.20628 ++static const struct avr32_opcode *
 1.20629 ++find_opcode(bfd_vma insn_word)
 1.20630 ++{
 1.20631 ++  int i;
 1.20632 ++
 1.20633 ++  for (i = 0; i < AVR32_NR_OPCODES; i++)
 1.20634 ++    {
 1.20635 ++      const struct avr32_opcode *opc = &avr32_opc_table[i];
 1.20636 ++
 1.20637 ++      if ((insn_word & opc->mask) == opc->value)
 1.20638 ++	return opc;
 1.20639 ++    }
 1.20640 ++
 1.20641 ++  return NULL;
 1.20642 ++}
 1.20643 ++
 1.20644 ++static int
 1.20645 ++read_insn_word(bfd_vma pc, bfd_vma *valuep,
 1.20646 ++	       struct disassemble_info *info)
 1.20647 ++{
 1.20648 ++  bfd_byte b[4];
 1.20649 ++  int status;
 1.20650 ++
 1.20651 ++  status = info->read_memory_func(pc, b, 4, info);
 1.20652 ++  if (status)
 1.20653 ++    {
 1.20654 ++      status = info->read_memory_func(pc, b, 2, info);
 1.20655 ++      if (status)
 1.20656 ++	{
 1.20657 ++	  info->memory_error_func(status, pc, info);
 1.20658 ++	  return -1;
 1.20659 ++	}
 1.20660 ++      b[3] = b[2] = 0;
 1.20661 ++    }
 1.20662 ++
 1.20663 ++  *valuep =  (b[0] << 24) | (b[1] << 16) | (b[2] << 8) | b[3];
 1.20664 ++  return 0;
 1.20665 ++}
 1.20666 ++
 1.20667 ++/* Parse an individual disassembler option.  */
 1.20668 ++
 1.20669 ++void
 1.20670 ++parse_avr32_disassembler_option (option)
 1.20671 ++     char * option;
 1.20672 ++{
 1.20673 ++  if (option == NULL)
 1.20674 ++    return;
 1.20675 ++
 1.20676 ++  /* XXX - should break 'option' at following delimiter.  */
 1.20677 ++  fprintf (stderr, _("Unrecognised disassembler option: %s\n"), option);
 1.20678 ++
 1.20679 ++  return;
 1.20680 ++}
 1.20681 ++
 1.20682 ++/* Parse the string of disassembler options, spliting it at whitespaces
 1.20683 ++   or commas.  (Whitespace separators supported for backwards compatibility).  */
 1.20684 ++
 1.20685 ++static void
 1.20686 ++parse_disassembler_options (char *options)
 1.20687 ++{
 1.20688 ++  if (options == NULL)
 1.20689 ++    return;
 1.20690 ++
 1.20691 ++  while (*options)
 1.20692 ++    {
 1.20693 ++      parse_avr32_disassembler_option (options);
 1.20694 ++
 1.20695 ++      /* Skip forward to next seperator.  */
 1.20696 ++      while ((*options) && (! ISSPACE (*options)) && (*options != ','))
 1.20697 ++	++ options;
 1.20698 ++      /* Skip forward past seperators.  */
 1.20699 ++      while (ISSPACE (*options) || (*options == ','))
 1.20700 ++	++ options;
 1.20701 ++    }
 1.20702 ++}
 1.20703 ++
 1.20704 ++int
 1.20705 ++print_insn_avr32(bfd_vma pc, struct disassemble_info *info)
 1.20706 ++{
 1.20707 ++  bfd_vma insn_word;
 1.20708 ++  const struct avr32_opcode *opc;
 1.20709 ++
 1.20710 ++  if (info->disassembler_options)
 1.20711 ++    {
 1.20712 ++      parse_disassembler_options (info->disassembler_options);
 1.20713 ++
 1.20714 ++      /* To avoid repeated parsing of these options, we remove them here.  */
 1.20715 ++      info->disassembler_options = NULL;
 1.20716 ++    }
 1.20717 ++
 1.20718 ++  info->bytes_per_chunk = 1;
 1.20719 ++  info->display_endian = BFD_ENDIAN_BIG;
 1.20720 ++
 1.20721 ++  if (read_insn_word(pc, &insn_word, info))
 1.20722 ++    return -1;
 1.20723 ++
 1.20724 ++  opc = find_opcode(insn_word);
 1.20725 ++  if (opc)
 1.20726 ++    {
 1.20727 ++      print_opcode(insn_word, opc, pc, info);
 1.20728 ++      return opc->size;
 1.20729 ++    }
 1.20730 ++  else
 1.20731 ++    {
 1.20732 ++      info->fprintf_func(info->stream, _("*unknown*"));
 1.20733 ++      return 2;
 1.20734 ++    }
 1.20735 ++
 1.20736 ++}
 1.20737 ++
 1.20738 ++void
 1.20739 ++print_avr32_disassembler_options (FILE *stream ATTRIBUTE_UNUSED)
 1.20740 ++{
 1.20741 ++
 1.20742 ++}
 1.20743 +--- /dev/null
 1.20744 ++++ b/opcodes/avr32-opc.c
 1.20745 +@@ -0,0 +1,6932 @@
 1.20746 ++/* Opcode tables for AVR32.
 1.20747 ++   Copyright 2005, 2006 Atmel Corporation.
 1.20748 ++
 1.20749 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
 1.20750 ++
 1.20751 ++   This file is part of libopcodes.
 1.20752 ++
 1.20753 ++   This program is free software; you can redistribute it and/or
 1.20754 ++   modify it under the terms of the GNU General Public License as
 1.20755 ++   published by the Free Software Foundation; either version 2 of the
 1.20756 ++   License, or (at your option) any later version.
 1.20757 ++
 1.20758 ++   This program is distributed in the hope that it will be useful, but
 1.20759 ++   WITHOUT ANY WARRANTY; without even the implied warranty of
 1.20760 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 1.20761 ++   General Public License for more details.
 1.20762 ++
 1.20763 ++   You should have received a copy of the GNU General Public License
 1.20764 ++   along with this program; if not, write to the Free Software
 1.20765 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 1.20766 ++   02111-1307, USA.  */
 1.20767 ++
 1.20768 ++#include <stdlib.h>
 1.20769 ++#include <assert.h>
 1.20770 ++
 1.20771 ++#include "avr32-opc.h"
 1.20772 ++
 1.20773 ++#define PICO_CPNO	1
 1.20774 ++
 1.20775 ++void
 1.20776 ++avr32_insert_simple(const struct avr32_ifield *field,
 1.20777 ++		    void *buf, unsigned long value)
 1.20778 ++{
 1.20779 ++  bfd_vma word;
 1.20780 ++
 1.20781 ++  word = bfd_getb32(buf);
 1.20782 ++  word &= ~field->mask;
 1.20783 ++  word |= (value << field->shift) & field->mask;
 1.20784 ++  bfd_putb32(word, buf);
 1.20785 ++}
 1.20786 ++
 1.20787 ++void
 1.20788 ++avr32_insert_bit5c(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
 1.20789 ++		   void *buf, unsigned long value)
 1.20790 ++{
 1.20791 ++  char *opcode = buf;
 1.20792 ++
 1.20793 ++  opcode[0] = (opcode[0] & 0xe1) | (value & 0x1e);
 1.20794 ++  opcode[1] = (opcode[1] & 0xef) | ((value & 1) << 4);
 1.20795 ++}
 1.20796 ++
 1.20797 ++void
 1.20798 ++avr32_insert_k10(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
 1.20799 ++		 void *buf, unsigned long value)
 1.20800 ++{
 1.20801 ++  char *opcode = buf;
 1.20802 ++
 1.20803 ++  opcode[0] = (opcode[0] & 0xf0) | ((value & 0xf0) >> 4);
 1.20804 ++  opcode[1] = ((opcode[1] & 0x0c) | ((value & 0x0f) << 4)
 1.20805 ++	       | ((value & 0x300) >> 8));
 1.20806 ++}
 1.20807 ++
 1.20808 ++
 1.20809 ++void
 1.20810 ++avr32_insert_k21(const struct avr32_ifield *field,
 1.20811 ++		 void *buf, unsigned long value)
 1.20812 ++{
 1.20813 ++  bfd_vma word;
 1.20814 ++  bfd_vma k21;
 1.20815 ++
 1.20816 ++  word = bfd_getb32(buf);
 1.20817 ++  word &= ~field->mask;
 1.20818 ++  k21 = ((value & 0xffff) | ((value & 0x10000) << 4)
 1.20819 ++	 | ((value & 0x1e0000) << 8));
 1.20820 ++  assert(!(k21 & ~field->mask));
 1.20821 ++  word |= k21;
 1.20822 ++  bfd_putb32(word, buf);
 1.20823 ++}
 1.20824 ++
 1.20825 ++void
 1.20826 ++avr32_insert_cpop(const struct avr32_ifield *field,
 1.20827 ++		  void *buf, unsigned long value)
 1.20828 ++{
 1.20829 ++  bfd_vma word;
 1.20830 ++
 1.20831 ++  word = bfd_getb32(buf);
 1.20832 ++  word &= ~field->mask;
 1.20833 ++  word |= (((value & 0x1e) << 15) | ((value & 0x60) << 20)
 1.20834 ++	   | ((value & 0x01) << 12));
 1.20835 ++  bfd_putb32(word, buf);
 1.20836 ++}
 1.20837 ++
 1.20838 ++void
 1.20839 ++avr32_insert_k12cp(const struct avr32_ifield *field,
 1.20840 ++		   void *buf, unsigned long value)
 1.20841 ++{
 1.20842 ++  bfd_vma word;
 1.20843 ++
 1.20844 ++  word = bfd_getb32(buf);
 1.20845 ++  word &= ~field->mask;
 1.20846 ++  word |= ((value & 0xf00) << 4) | (value & 0xff);
 1.20847 ++  bfd_putb32(word, buf);
 1.20848 ++}
 1.20849 ++
 1.20850 ++void avr32_extract_simple(const struct avr32_ifield *field,
 1.20851 ++			  void *buf, unsigned long *value)
 1.20852 ++{
 1.20853 ++  /* XXX: The disassembler has done any necessary byteswapping already */
 1.20854 ++  bfd_vma word = *(bfd_vma *)buf;
 1.20855 ++
 1.20856 ++  *value = (word & field->mask) >> field->shift;
 1.20857 ++}
 1.20858 ++
 1.20859 ++void avr32_extract_bit5c(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
 1.20860 ++			 void *buf, unsigned long *value)
 1.20861 ++{
 1.20862 ++  bfd_vma word = *(bfd_vma *)buf;
 1.20863 ++
 1.20864 ++  *value = ((word >> 20) & 1) | ((word >> 24) & 0x1e);
 1.20865 ++}
 1.20866 ++
 1.20867 ++void avr32_extract_k10(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
 1.20868 ++		       void *buf, unsigned long *value)
 1.20869 ++{
 1.20870 ++  bfd_vma word = *(bfd_vma *)buf;
 1.20871 ++
 1.20872 ++  *value = ((word >> 8) & 0x300) | ((word >> 20) & 0xff);
 1.20873 ++}
 1.20874 ++
 1.20875 ++void avr32_extract_k21(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
 1.20876 ++		       void *buf, unsigned long *value)
 1.20877 ++{
 1.20878 ++  bfd_vma word = *(bfd_vma *)buf;
 1.20879 ++
 1.20880 ++  *value = ((word & 0xffff) | ((word >> 4) & 0x10000)
 1.20881 ++	    | ((word >> 8) & 0x1e0000));
 1.20882 ++}
 1.20883 ++
 1.20884 ++void avr32_extract_cpop(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
 1.20885 ++			void *buf, unsigned long *value)
 1.20886 ++{
 1.20887 ++  bfd_vma word = *(bfd_vma *)buf;
 1.20888 ++
 1.20889 ++  *value = (((word >> 12) & 1) | ((word >> 15) & 0x1e)
 1.20890 ++	    | ((word >> 20) & 0x60));
 1.20891 ++}
 1.20892 ++
 1.20893 ++void avr32_extract_k12cp(const struct avr32_ifield *field ATTRIBUTE_UNUSED,
 1.20894 ++			 void *buf, unsigned long *value)
 1.20895 ++{
 1.20896 ++  bfd_vma word = *(bfd_vma *)buf;
 1.20897 ++
 1.20898 ++  *value = ((word >> 4) & 0xf00) | (word & 0xff);
 1.20899 ++}
 1.20900 ++
 1.20901 ++
 1.20902 ++#define IFLD(id, bitsz, shift, mask, func) \
 1.20903 ++  { AVR32_IFIELD_##id, bitsz, shift, mask, \
 1.20904 ++    avr32_insert_##func, avr32_extract_##func }
 1.20905 ++
 1.20906 ++const struct avr32_ifield avr32_ifield_table[] =
 1.20907 ++  {
 1.20908 ++    IFLD(RX, 4, 25, 0x1e000000, simple),
 1.20909 ++    IFLD(RY, 4, 16, 0x000f0000, simple),
 1.20910 ++    IFLD(COND4C, 4, 20, 0x00f00000, simple),
 1.20911 ++    IFLD(K8C, 8, 20, 0x0ff00000, simple),
 1.20912 ++    IFLD(K7C, 7, 20, 0x07f00000, simple),
 1.20913 ++    IFLD(K5C, 5, 20, 0x01f00000, simple),
 1.20914 ++    IFLD(K3, 3, 20, 0x00700000, simple),
 1.20915 ++    IFLD(RY_DW, 3, 17, 0x000e0000, simple),
 1.20916 ++    IFLD(COND4E, 4, 8, 0x00000f00, simple),
 1.20917 ++    IFLD(K8E, 8, 0, 0x000000ff, simple),
 1.20918 ++    IFLD(BIT5C, 5, 20, 0x1e100000, bit5c),
 1.20919 ++    IFLD(COND3, 3, 16, 0x00070000, simple),
 1.20920 ++    IFLD(K10, 10, 16, 0x0ff30000, k10),
 1.20921 ++    IFLD(POPM, 9, 19, 0x0ff80000, simple),
 1.20922 ++    IFLD(K2, 2, 4, 0x00000030, simple),
 1.20923 ++    IFLD(RD_E, 4, 0, 0x0000000f, simple),
 1.20924 ++    IFLD(RD_DW, 3, 1, 0x0000000e, simple),
 1.20925 ++    IFLD(X, 1, 5, 0x00000020, simple),
 1.20926 ++    IFLD(Y, 1, 4, 0x00000010, simple),
 1.20927 ++    IFLD(X2, 1, 13, 0x00002000, simple),
 1.20928 ++    IFLD(Y2, 1, 12, 0x00001000, simple),
 1.20929 ++    IFLD(K5E, 5, 0, 0x0000001f, simple),
 1.20930 ++    IFLD(PART2, 2, 0, 0x00000003, simple),
 1.20931 ++    IFLD(PART1, 1, 0, 0x00000001, simple),
 1.20932 ++    IFLD(K16, 16, 0, 0x0000ffff, simple),
 1.20933 ++    IFLD(CACHEOP, 5, 11, 0x0000f800, simple),
 1.20934 ++    IFLD(K11, 11, 0, 0x000007ff, simple),
 1.20935 ++    IFLD(K21, 21, 0, 0x1e10ffff, k21),
 1.20936 ++    IFLD(CPOP, 7, 12, 0x060f1000, cpop),
 1.20937 ++    IFLD(CPNO, 3, 13, 0x0000e000, simple),
 1.20938 ++    IFLD(CRD_RI, 4, 8, 0x00000f00, simple),
 1.20939 ++    IFLD(CRX, 4, 4, 0x000000f0, simple),
 1.20940 ++    IFLD(CRY, 4, 0, 0x0000000f, simple),
 1.20941 ++    IFLD(K7E, 7, 0, 0x0000007f, simple),
 1.20942 ++    IFLD(CRD_DW, 3, 9, 0x00000e00, simple),
 1.20943 ++    IFLD(PART1_K12, 1, 12, 0x00001000, simple),
 1.20944 ++    IFLD(PART2_K12, 2, 12, 0x00003000, simple),
 1.20945 ++    IFLD(K12, 12, 0, 0x00000fff, simple),
 1.20946 ++    IFLD(S5, 5, 5, 0x000003e0, simple),
 1.20947 ++    IFLD(K5E2, 5, 4, 0x000001f0, simple),
 1.20948 ++    IFLD(K4, 4, 20, 0x00f00000, simple),
 1.20949 ++    IFLD(COND4E2, 4, 4, 0x000000f0, simple),
 1.20950 ++    IFLD(K8E2, 8, 4, 0x00000ff0, simple),
 1.20951 ++    IFLD(K6, 6, 20, 0x03f00000, simple),
 1.20952 ++    IFLD(MEM15, 15, 0, 0x00007fff, simple),
 1.20953 ++    IFLD(MEMB5, 5, 15, 0x000f8000, simple),
 1.20954 ++    IFLD(W, 1, 25, 0x02000000, simple),
 1.20955 ++    /* Coprocessor Multiple High/Low */
 1.20956 ++    IFLD(CM_HL, 1, 8, 0x00000100, simple),
 1.20957 ++    IFLD(K12CP, 12 ,0, 0x0000f0ff, k12cp),
 1.20958 ++    IFLD(K9E, 9 ,0, 0x000001ff, simple),
 1.20959 ++  };
 1.20960 ++#undef IFLD
 1.20961 ++
 1.20962 ++
 1.20963 ++struct avr32_opcode avr32_opc_table[] =
 1.20964 ++  {
 1.20965 ++    {
 1.20966 ++      AVR32_OPC_ABS, 2, 0x5c400000, 0xfff00000,
 1.20967 ++      &avr32_syntax_table[AVR32_SYNTAX_ABS],
 1.20968 ++      BFD_RELOC_UNUSED, 1, -1,
 1.20969 ++      {
 1.20970 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.20971 ++      }
 1.20972 ++    },
 1.20973 ++    {
 1.20974 ++      AVR32_OPC_ACALL, 2, 0xd0000000, 0xf00f0000,
 1.20975 ++      &avr32_syntax_table[AVR32_SYNTAX_ACALL],
 1.20976 ++      BFD_RELOC_UNUSED, 1, -1,
 1.20977 ++      {
 1.20978 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 1.20979 ++      },
 1.20980 ++    },
 1.20981 ++    {
 1.20982 ++      AVR32_OPC_ACR, 2, 0x5c000000, 0xfff00000,
 1.20983 ++      &avr32_syntax_table[AVR32_SYNTAX_ACR],
 1.20984 ++      BFD_RELOC_UNUSED, 1, -1,
 1.20985 ++      {
 1.20986 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.20987 ++      },
 1.20988 ++    },
 1.20989 ++    {
 1.20990 ++      AVR32_OPC_ADC, 4, 0xe0000040, 0xe1f0fff0,
 1.20991 ++      &avr32_syntax_table[AVR32_SYNTAX_ADC],
 1.20992 ++      BFD_RELOC_UNUSED, 3, -1,
 1.20993 ++      {
 1.20994 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.20995 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.20996 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.20997 ++      },
 1.20998 ++    },
 1.20999 ++    {
 1.21000 ++      AVR32_OPC_ADD1, 2, 0x00000000, 0xe1f00000,
 1.21001 ++      &avr32_syntax_table[AVR32_SYNTAX_ADD1],
 1.21002 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21003 ++      {
 1.21004 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21005 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21006 ++      },
 1.21007 ++    },
 1.21008 ++    {
 1.21009 ++      AVR32_OPC_ADD2, 4, 0xe0000000, 0xe1f0ffc0,
 1.21010 ++      &avr32_syntax_table[AVR32_SYNTAX_ADD2],
 1.21011 ++      BFD_RELOC_UNUSED, 4, -1,
 1.21012 ++      {
 1.21013 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.21014 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21015 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21016 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 1.21017 ++      },
 1.21018 ++    },
 1.21019 ++    {
 1.21020 ++      AVR32_OPC_ADDABS, 4, 0xe0000e40, 0xe1f0fff0,
 1.21021 ++      &avr32_syntax_table[AVR32_SYNTAX_ADDABS],
 1.21022 ++      BFD_RELOC_UNUSED, 3, -1,
 1.21023 ++      {
 1.21024 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.21025 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21026 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21027 ++      },
 1.21028 ++    },
 1.21029 ++    {
 1.21030 ++      AVR32_OPC_ADDHH_W, 4, 0xe0000e00, 0xe1f0ffc0,
 1.21031 ++      &avr32_syntax_table[AVR32_SYNTAX_ADDHH_W],
 1.21032 ++      BFD_RELOC_UNUSED, 5, -1,
 1.21033 ++      {
 1.21034 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.21035 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21036 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 1.21037 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21038 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.21039 ++      },
 1.21040 ++    },
 1.21041 ++    {
 1.21042 ++      AVR32_OPC_AND1, 2, 0x00600000, 0xe1f00000,
 1.21043 ++      &avr32_syntax_table[AVR32_SYNTAX_AND1],
 1.21044 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21045 ++      {
 1.21046 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21047 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21048 ++      },
 1.21049 ++    },
 1.21050 ++    {
 1.21051 ++      AVR32_OPC_AND2, 4, 0xe1e00000, 0xe1f0fe00,
 1.21052 ++      &avr32_syntax_table[AVR32_SYNTAX_AND2],
 1.21053 ++      BFD_RELOC_UNUSED, 4, -1,
 1.21054 ++      {
 1.21055 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.21056 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21057 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21058 ++	&avr32_ifield_table[AVR32_IFIELD_K5E2],
 1.21059 ++      },
 1.21060 ++    },
 1.21061 ++    {
 1.21062 ++      AVR32_OPC_AND3, 4, 0xe1e00200, 0xe1f0fe00,
 1.21063 ++      &avr32_syntax_table[AVR32_SYNTAX_AND3],
 1.21064 ++      BFD_RELOC_UNUSED, 4, -1,
 1.21065 ++      {
 1.21066 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.21067 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21068 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21069 ++	&avr32_ifield_table[AVR32_IFIELD_K5E2],
 1.21070 ++      },
 1.21071 ++    },
 1.21072 ++    {
 1.21073 ++      AVR32_OPC_ANDH, 4, 0xe4100000, 0xfff00000,
 1.21074 ++      &avr32_syntax_table[AVR32_SYNTAX_ANDH],
 1.21075 ++      BFD_RELOC_AVR32_16U, 2, 1,
 1.21076 ++      {
 1.21077 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21078 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.21079 ++      },
 1.21080 ++    },
 1.21081 ++    {
 1.21082 ++      AVR32_OPC_ANDH_COH, 4, 0xe6100000, 0xfff00000,
 1.21083 ++      &avr32_syntax_table[AVR32_SYNTAX_ANDH_COH],
 1.21084 ++      BFD_RELOC_AVR32_16U, 2, 1,
 1.21085 ++      {
 1.21086 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21087 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.21088 ++      },
 1.21089 ++    },
 1.21090 ++    {
 1.21091 ++      AVR32_OPC_ANDL, 4, 0xe0100000, 0xfff00000,
 1.21092 ++      &avr32_syntax_table[AVR32_SYNTAX_ANDL],
 1.21093 ++      BFD_RELOC_AVR32_16U, 2, 1,
 1.21094 ++      {
 1.21095 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21096 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.21097 ++      },
 1.21098 ++    },
 1.21099 ++    {
 1.21100 ++      AVR32_OPC_ANDL_COH, 4, 0xe2100000, 0xfff00000,
 1.21101 ++      &avr32_syntax_table[AVR32_SYNTAX_ANDL_COH],
 1.21102 ++      BFD_RELOC_AVR32_16U, 2, 1,
 1.21103 ++      {
 1.21104 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21105 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.21106 ++      },
 1.21107 ++    },
 1.21108 ++    {
 1.21109 ++      AVR32_OPC_ANDN, 2, 0x00800000, 0xe1f00000,
 1.21110 ++      &avr32_syntax_table[AVR32_SYNTAX_ANDN],
 1.21111 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21112 ++      {
 1.21113 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21114 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21115 ++      },
 1.21116 ++    },
 1.21117 ++    {
 1.21118 ++      AVR32_OPC_ASR1, 4, 0xe0000840, 0xe1f0fff0,
 1.21119 ++      &avr32_syntax_table[AVR32_SYNTAX_ASR1],
 1.21120 ++      BFD_RELOC_UNUSED, 3, -1,
 1.21121 ++      {
 1.21122 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.21123 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21124 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21125 ++      },
 1.21126 ++    },
 1.21127 ++    {
 1.21128 ++      AVR32_OPC_ASR3, 4, 0xe0001400, 0xe1f0ffe0,
 1.21129 ++      &avr32_syntax_table[AVR32_SYNTAX_ASR3],
 1.21130 ++      BFD_RELOC_UNUSED, 3, -1,
 1.21131 ++      {
 1.21132 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21133 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21134 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 1.21135 ++      },
 1.21136 ++    },
 1.21137 ++    {
 1.21138 ++      AVR32_OPC_ASR2, 2, 0xa1400000, 0xe1e00000,
 1.21139 ++      &avr32_syntax_table[AVR32_SYNTAX_ASR2],
 1.21140 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21141 ++      {
 1.21142 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21143 ++	&avr32_ifield_table[AVR32_IFIELD_BIT5C],
 1.21144 ++      },
 1.21145 ++    },
 1.21146 ++    {
 1.21147 ++      AVR32_OPC_BLD, 4, 0xedb00000, 0xfff0ffe0,
 1.21148 ++      &avr32_syntax_table[AVR32_SYNTAX_BLD],
 1.21149 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21150 ++      {
 1.21151 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21152 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 1.21153 ++      },
 1.21154 ++    },
 1.21155 ++    {
 1.21156 ++      AVR32_OPC_BREQ1, 2, 0xc0000000, 0xf00f0000,
 1.21157 ++      &avr32_syntax_table[AVR32_SYNTAX_BREQ1],
 1.21158 ++      BFD_RELOC_AVR32_9H_PCREL, 1, 0,
 1.21159 ++      {
 1.21160 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 1.21161 ++      },
 1.21162 ++    },
 1.21163 ++    {
 1.21164 ++      AVR32_OPC_BRNE1, 2, 0xc0010000, 0xf00f0000,
 1.21165 ++      &avr32_syntax_table[AVR32_SYNTAX_BRNE1],
 1.21166 ++      BFD_RELOC_AVR32_9H_PCREL, 1, 0,
 1.21167 ++      {
 1.21168 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 1.21169 ++      },
 1.21170 ++    },
 1.21171 ++    {
 1.21172 ++      AVR32_OPC_BRCC1, 2, 0xc0020000, 0xf00f0000,
 1.21173 ++      &avr32_syntax_table[AVR32_SYNTAX_BRCC1],
 1.21174 ++      BFD_RELOC_AVR32_9H_PCREL, 1, 0,
 1.21175 ++      {
 1.21176 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 1.21177 ++      },
 1.21178 ++    },
 1.21179 ++    {
 1.21180 ++      AVR32_OPC_BRCS1, 2, 0xc0030000, 0xf00f0000,
 1.21181 ++      &avr32_syntax_table[AVR32_SYNTAX_BRCS1],
 1.21182 ++      BFD_RELOC_AVR32_9H_PCREL, 1, 0,
 1.21183 ++      {
 1.21184 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 1.21185 ++      },
 1.21186 ++    },
 1.21187 ++    {
 1.21188 ++      AVR32_OPC_BRGE1, 2, 0xc0040000, 0xf00f0000,
 1.21189 ++      &avr32_syntax_table[AVR32_SYNTAX_BRGE1],
 1.21190 ++      BFD_RELOC_AVR32_9H_PCREL, 1, 0,
 1.21191 ++      {
 1.21192 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 1.21193 ++      },
 1.21194 ++    },
 1.21195 ++    {
 1.21196 ++      AVR32_OPC_BRLT1, 2, 0xc0050000, 0xf00f0000,
 1.21197 ++      &avr32_syntax_table[AVR32_SYNTAX_BRLT1],
 1.21198 ++      BFD_RELOC_AVR32_9H_PCREL, 1, 0,
 1.21199 ++      {
 1.21200 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 1.21201 ++      },
 1.21202 ++    },
 1.21203 ++    {
 1.21204 ++      AVR32_OPC_BRMI1, 2, 0xc0060000, 0xf00f0000,
 1.21205 ++      &avr32_syntax_table[AVR32_SYNTAX_BRMI1],
 1.21206 ++      BFD_RELOC_AVR32_9H_PCREL, 1, 0,
 1.21207 ++      {
 1.21208 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 1.21209 ++      },
 1.21210 ++    },
 1.21211 ++    {
 1.21212 ++      AVR32_OPC_BRPL1, 2, 0xc0070000, 0xf00f0000,
 1.21213 ++      &avr32_syntax_table[AVR32_SYNTAX_BRPL1],
 1.21214 ++      BFD_RELOC_AVR32_9H_PCREL, 1, 0,
 1.21215 ++      {
 1.21216 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 1.21217 ++      },
 1.21218 ++    },
 1.21219 ++    {
 1.21220 ++      AVR32_OPC_BREQ2, 4, 0xe0800000, 0xe1ef0000,
 1.21221 ++      &avr32_syntax_table[AVR32_SYNTAX_BREQ2],
 1.21222 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 1.21223 ++      {
 1.21224 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.21225 ++      },
 1.21226 ++    },
 1.21227 ++    {
 1.21228 ++      AVR32_OPC_BRNE2, 4, 0xe0810000, 0xe1ef0000,
 1.21229 ++      &avr32_syntax_table[AVR32_SYNTAX_BRNE2],
 1.21230 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 1.21231 ++      {
 1.21232 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.21233 ++      },
 1.21234 ++    },
 1.21235 ++    {
 1.21236 ++      AVR32_OPC_BRCC2, 4, 0xe0820000, 0xe1ef0000,
 1.21237 ++      &avr32_syntax_table[AVR32_SYNTAX_BRHS2],
 1.21238 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 1.21239 ++      {
 1.21240 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.21241 ++      },
 1.21242 ++    },
 1.21243 ++    {
 1.21244 ++      AVR32_OPC_BRCS2, 4, 0xe0830000, 0xe1ef0000,
 1.21245 ++      &avr32_syntax_table[AVR32_SYNTAX_BRLO2],
 1.21246 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 1.21247 ++      {
 1.21248 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.21249 ++      },
 1.21250 ++    },
 1.21251 ++    {
 1.21252 ++      AVR32_OPC_BRGE2, 4, 0xe0840000, 0xe1ef0000,
 1.21253 ++      &avr32_syntax_table[AVR32_SYNTAX_BRGE2],
 1.21254 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 1.21255 ++      {
 1.21256 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.21257 ++      },
 1.21258 ++    },
 1.21259 ++    {
 1.21260 ++      AVR32_OPC_BRLT2, 4, 0xe0850000, 0xe1ef0000,
 1.21261 ++      &avr32_syntax_table[AVR32_SYNTAX_BRLT2],
 1.21262 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 1.21263 ++      {
 1.21264 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.21265 ++      },
 1.21266 ++    },
 1.21267 ++    {
 1.21268 ++      AVR32_OPC_BRMI2, 4, 0xe0860000, 0xe1ef0000,
 1.21269 ++      &avr32_syntax_table[AVR32_SYNTAX_BRMI2],
 1.21270 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 1.21271 ++      {
 1.21272 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.21273 ++      },
 1.21274 ++    },
 1.21275 ++    {
 1.21276 ++      AVR32_OPC_BRPL2, 4, 0xe0870000, 0xe1ef0000,
 1.21277 ++      &avr32_syntax_table[AVR32_SYNTAX_BRPL2],
 1.21278 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 1.21279 ++      {
 1.21280 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.21281 ++      },
 1.21282 ++    },
 1.21283 ++    {
 1.21284 ++      AVR32_OPC_BRLS, 4, 0xe0880000, 0xe1ef0000,
 1.21285 ++      &avr32_syntax_table[AVR32_SYNTAX_BRLS],
 1.21286 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 1.21287 ++      {
 1.21288 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.21289 ++      },
 1.21290 ++    },
 1.21291 ++    {
 1.21292 ++      AVR32_OPC_BRGT, 4, 0xe0890000, 0xe1ef0000,
 1.21293 ++      &avr32_syntax_table[AVR32_SYNTAX_BRGT],
 1.21294 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 1.21295 ++      {
 1.21296 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.21297 ++      },
 1.21298 ++    },
 1.21299 ++    {
 1.21300 ++      AVR32_OPC_BRLE, 4, 0xe08a0000, 0xe1ef0000,
 1.21301 ++      &avr32_syntax_table[AVR32_SYNTAX_BRLE],
 1.21302 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 1.21303 ++      {
 1.21304 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.21305 ++      },
 1.21306 ++    },
 1.21307 ++    {
 1.21308 ++      AVR32_OPC_BRHI, 4, 0xe08b0000, 0xe1ef0000,
 1.21309 ++      &avr32_syntax_table[AVR32_SYNTAX_BRHI],
 1.21310 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 1.21311 ++      {
 1.21312 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.21313 ++      },
 1.21314 ++    },
 1.21315 ++    {
 1.21316 ++      AVR32_OPC_BRVS, 4, 0xe08c0000, 0xe1ef0000,
 1.21317 ++      &avr32_syntax_table[AVR32_SYNTAX_BRVS],
 1.21318 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 1.21319 ++      {
 1.21320 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.21321 ++      },
 1.21322 ++    },
 1.21323 ++    {
 1.21324 ++      AVR32_OPC_BRVC, 4, 0xe08d0000, 0xe1ef0000,
 1.21325 ++      &avr32_syntax_table[AVR32_SYNTAX_BRVC],
 1.21326 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 1.21327 ++      {
 1.21328 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.21329 ++      },
 1.21330 ++    },
 1.21331 ++    {
 1.21332 ++      AVR32_OPC_BRQS, 4, 0xe08e0000, 0xe1ef0000,
 1.21333 ++      &avr32_syntax_table[AVR32_SYNTAX_BRQS],
 1.21334 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 1.21335 ++      {
 1.21336 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.21337 ++      },
 1.21338 ++    },
 1.21339 ++    {
 1.21340 ++      AVR32_OPC_BRAL, 4, 0xe08f0000, 0xe1ef0000,
 1.21341 ++      &avr32_syntax_table[AVR32_SYNTAX_BRAL],
 1.21342 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 1.21343 ++      {
 1.21344 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.21345 ++      },
 1.21346 ++    },
 1.21347 ++    {
 1.21348 ++      AVR32_OPC_BREAKPOINT, 2, 0xd6730000, 0xffff0000,
 1.21349 ++      &avr32_syntax_table[AVR32_SYNTAX_BREAKPOINT],
 1.21350 ++      BFD_RELOC_UNUSED, 0, -1, { NULL },
 1.21351 ++    },
 1.21352 ++    {
 1.21353 ++      AVR32_OPC_BREV, 2, 0x5c900000, 0xfff00000,
 1.21354 ++      &avr32_syntax_table[AVR32_SYNTAX_BREV],
 1.21355 ++      BFD_RELOC_UNUSED, 1, -1,
 1.21356 ++      {
 1.21357 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21358 ++      },
 1.21359 ++    },
 1.21360 ++    {
 1.21361 ++      AVR32_OPC_BST, 4, 0xefb00000, 0xfff0ffe0,
 1.21362 ++      &avr32_syntax_table[AVR32_SYNTAX_BST],
 1.21363 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21364 ++      {
 1.21365 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21366 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 1.21367 ++      },
 1.21368 ++    },
 1.21369 ++    {
 1.21370 ++      AVR32_OPC_CACHE, 4, 0xf4100000, 0xfff00000,
 1.21371 ++      &avr32_syntax_table[AVR32_SYNTAX_CACHE],
 1.21372 ++      BFD_RELOC_UNUSED, 3, -1,
 1.21373 ++      {
 1.21374 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21375 ++	&avr32_ifield_table[AVR32_IFIELD_K11],
 1.21376 ++	&avr32_ifield_table[AVR32_IFIELD_CACHEOP],
 1.21377 ++      },
 1.21378 ++    },
 1.21379 ++    {
 1.21380 ++      AVR32_OPC_CASTS_B, 2, 0x5c600000, 0xfff00000,
 1.21381 ++      &avr32_syntax_table[AVR32_SYNTAX_CASTS_B],
 1.21382 ++      BFD_RELOC_UNUSED, 1, -1,
 1.21383 ++      {
 1.21384 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21385 ++      },
 1.21386 ++    },
 1.21387 ++    {
 1.21388 ++      AVR32_OPC_CASTS_H, 2, 0x5c800000, 0xfff00000,
 1.21389 ++      &avr32_syntax_table[AVR32_SYNTAX_CASTS_H],
 1.21390 ++      BFD_RELOC_UNUSED, 1, -1,
 1.21391 ++      {
 1.21392 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21393 ++      },
 1.21394 ++    },
 1.21395 ++    {
 1.21396 ++      AVR32_OPC_CASTU_B, 2, 0x5c500000, 0xfff00000,
 1.21397 ++      &avr32_syntax_table[AVR32_SYNTAX_CASTU_B],
 1.21398 ++      BFD_RELOC_UNUSED, 1, -1,
 1.21399 ++      {
 1.21400 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21401 ++      },
 1.21402 ++    },
 1.21403 ++    {
 1.21404 ++      AVR32_OPC_CASTU_H, 2, 0x5c700000, 0xfff00000,
 1.21405 ++      &avr32_syntax_table[AVR32_SYNTAX_CASTU_H],
 1.21406 ++      BFD_RELOC_UNUSED, 1, -1,
 1.21407 ++      {
 1.21408 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21409 ++      },
 1.21410 ++    },
 1.21411 ++    {
 1.21412 ++      AVR32_OPC_CBR, 2, 0xa1c00000, 0xe1e00000,
 1.21413 ++      &avr32_syntax_table[AVR32_SYNTAX_CBR],
 1.21414 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21415 ++      {
 1.21416 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21417 ++	&avr32_ifield_table[AVR32_IFIELD_BIT5C],
 1.21418 ++      },
 1.21419 ++    },
 1.21420 ++    {
 1.21421 ++      AVR32_OPC_CLZ, 4, 0xe0001200, 0xe1f0ffff,
 1.21422 ++      &avr32_syntax_table[AVR32_SYNTAX_CLZ],
 1.21423 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21424 ++      {
 1.21425 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21426 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21427 ++      },
 1.21428 ++    },
 1.21429 ++    {
 1.21430 ++      AVR32_OPC_COM, 2, 0x5cd00000, 0xfff00000,
 1.21431 ++      &avr32_syntax_table[AVR32_SYNTAX_COM],
 1.21432 ++      BFD_RELOC_UNUSED, 1, -1,
 1.21433 ++      {
 1.21434 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21435 ++      },
 1.21436 ++    },
 1.21437 ++    {
 1.21438 ++      AVR32_OPC_COP, 4, 0xe1a00000, 0xf9f00000,
 1.21439 ++      &avr32_syntax_table[AVR32_SYNTAX_COP],
 1.21440 ++      BFD_RELOC_UNUSED, 5, -1,
 1.21441 ++      {
 1.21442 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.21443 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 1.21444 ++	&avr32_ifield_table[AVR32_IFIELD_CRX],
 1.21445 ++	&avr32_ifield_table[AVR32_IFIELD_CRY],
 1.21446 ++	&avr32_ifield_table[AVR32_IFIELD_CPOP],
 1.21447 ++      },
 1.21448 ++    },
 1.21449 ++    {
 1.21450 ++      AVR32_OPC_CP_B, 4, 0xe0001800, 0xe1f0ffff,
 1.21451 ++      &avr32_syntax_table[AVR32_SYNTAX_CP_B],
 1.21452 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21453 ++      {
 1.21454 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21455 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21456 ++      },
 1.21457 ++    },
 1.21458 ++    {
 1.21459 ++      AVR32_OPC_CP_H, 4, 0xe0001900, 0xe1f0ffff,
 1.21460 ++      &avr32_syntax_table[AVR32_SYNTAX_CP_H],
 1.21461 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21462 ++      {
 1.21463 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21464 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21465 ++      },
 1.21466 ++    },
 1.21467 ++    {
 1.21468 ++      AVR32_OPC_CP_W1, 2, 0x00300000, 0xe1f00000,
 1.21469 ++      &avr32_syntax_table[AVR32_SYNTAX_CP_W1],
 1.21470 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21471 ++      {
 1.21472 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21473 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21474 ++      },
 1.21475 ++    },
 1.21476 ++    {
 1.21477 ++      AVR32_OPC_CP_W2, 2, 0x58000000, 0xfc000000,
 1.21478 ++      &avr32_syntax_table[AVR32_SYNTAX_CP_W2],
 1.21479 ++      BFD_RELOC_AVR32_6S, 2, 1,
 1.21480 ++      {
 1.21481 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21482 ++	&avr32_ifield_table[AVR32_IFIELD_K6],
 1.21483 ++      },
 1.21484 ++    },
 1.21485 ++    {
 1.21486 ++      AVR32_OPC_CP_W3, 4, 0xe0400000, 0xe1e00000,
 1.21487 ++      &avr32_syntax_table[AVR32_SYNTAX_CP_W3],
 1.21488 ++      BFD_RELOC_AVR32_21S, 2, 1,
 1.21489 ++      {
 1.21490 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21491 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.21492 ++      },
 1.21493 ++    },
 1.21494 ++    {
 1.21495 ++      AVR32_OPC_CPC1, 4, 0xe0001300, 0xe1f0ffff,
 1.21496 ++      &avr32_syntax_table[AVR32_SYNTAX_CPC1],
 1.21497 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21498 ++      {
 1.21499 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21500 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21501 ++      },
 1.21502 ++    },
 1.21503 ++    {
 1.21504 ++      AVR32_OPC_CPC2, 2, 0x5c200000, 0xfff00000,
 1.21505 ++      &avr32_syntax_table[AVR32_SYNTAX_CPC2],
 1.21506 ++      BFD_RELOC_UNUSED, 1, -1,
 1.21507 ++      {
 1.21508 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21509 ++      },
 1.21510 ++    },
 1.21511 ++    {
 1.21512 ++      AVR32_OPC_CSRF, 2, 0xd4030000, 0xfe0f0000,
 1.21513 ++      &avr32_syntax_table[AVR32_SYNTAX_CSRF],
 1.21514 ++      BFD_RELOC_UNUSED, 1, -1,
 1.21515 ++      {
 1.21516 ++	&avr32_ifield_table[AVR32_IFIELD_K5C],
 1.21517 ++      },
 1.21518 ++    },
 1.21519 ++    {
 1.21520 ++      AVR32_OPC_CSRFCZ, 2, 0xd0030000, 0xfe0f0000,
 1.21521 ++      &avr32_syntax_table[AVR32_SYNTAX_CSRFCZ],
 1.21522 ++      BFD_RELOC_UNUSED, 1, -1,
 1.21523 ++      {
 1.21524 ++	&avr32_ifield_table[AVR32_IFIELD_K5C],
 1.21525 ++      },
 1.21526 ++    },
 1.21527 ++    {
 1.21528 ++      AVR32_OPC_DIVS, 4, 0xe0000c00, 0xe1f0ffc0,
 1.21529 ++      &avr32_syntax_table[AVR32_SYNTAX_DIVS],
 1.21530 ++      BFD_RELOC_UNUSED, 3, -1,
 1.21531 ++      {
 1.21532 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.21533 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21534 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21535 ++      },
 1.21536 ++    },
 1.21537 ++    {
 1.21538 ++      AVR32_OPC_DIVU, 4, 0xe0000d00, 0xe1f0ffc0,
 1.21539 ++      &avr32_syntax_table[AVR32_SYNTAX_DIVU],
 1.21540 ++      BFD_RELOC_UNUSED, 3, -1,
 1.21541 ++      {
 1.21542 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.21543 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21544 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21545 ++      },
 1.21546 ++    },
 1.21547 ++    {
 1.21548 ++      AVR32_OPC_EOR1, 2, 0x00500000, 0xe1f00000,
 1.21549 ++      &avr32_syntax_table[AVR32_SYNTAX_EOR1],
 1.21550 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21551 ++      {
 1.21552 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21553 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21554 ++      },
 1.21555 ++    },
 1.21556 ++    {
 1.21557 ++      AVR32_OPC_EOR2, 4, 0xe1e02000, 0xe1f0fe00,
 1.21558 ++      &avr32_syntax_table[AVR32_SYNTAX_EOR2],
 1.21559 ++      BFD_RELOC_UNUSED, 4, -1,
 1.21560 ++      {
 1.21561 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.21562 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21563 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21564 ++	&avr32_ifield_table[AVR32_IFIELD_K5E2],
 1.21565 ++      }
 1.21566 ++    },
 1.21567 ++    {
 1.21568 ++      AVR32_OPC_EOR3, 4, 0xe1e02200, 0xe1f0fe00,
 1.21569 ++      &avr32_syntax_table[AVR32_SYNTAX_EOR3],
 1.21570 ++      BFD_RELOC_UNUSED, 4, -1,
 1.21571 ++      {
 1.21572 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.21573 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21574 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21575 ++	&avr32_ifield_table[AVR32_IFIELD_K5E2],
 1.21576 ++      }
 1.21577 ++    },
 1.21578 ++    {
 1.21579 ++      AVR32_OPC_EORL, 4, 0xec100000, 0xfff00000,
 1.21580 ++      &avr32_syntax_table[AVR32_SYNTAX_EORL],
 1.21581 ++      BFD_RELOC_AVR32_16U, 2, 1,
 1.21582 ++      {
 1.21583 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21584 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.21585 ++      },
 1.21586 ++    },
 1.21587 ++    {
 1.21588 ++      AVR32_OPC_EORH, 4, 0xee100000, 0xfff00000,
 1.21589 ++      &avr32_syntax_table[AVR32_SYNTAX_EORH],
 1.21590 ++      BFD_RELOC_AVR32_16U, 2, 1,
 1.21591 ++      {
 1.21592 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21593 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.21594 ++      },
 1.21595 ++    },
 1.21596 ++    {
 1.21597 ++      AVR32_OPC_FRS, 2, 0xd7430000, 0xffff0000,
 1.21598 ++      &avr32_syntax_table[AVR32_SYNTAX_FRS],
 1.21599 ++      BFD_RELOC_UNUSED, 0, -1, { NULL },
 1.21600 ++    },
 1.21601 ++    {
 1.21602 ++      AVR32_OPC_ICALL, 2, 0x5d100000, 0xfff00000,
 1.21603 ++      &avr32_syntax_table[AVR32_SYNTAX_ICALL],
 1.21604 ++      BFD_RELOC_UNUSED, 1, -1,
 1.21605 ++      {
 1.21606 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21607 ++      },
 1.21608 ++    },
 1.21609 ++    {
 1.21610 ++      AVR32_OPC_INCJOSP, 2, 0xd6830000, 0xff8f0000,
 1.21611 ++      &avr32_syntax_table[AVR32_SYNTAX_INCJOSP],
 1.21612 ++      BFD_RELOC_UNUSED, 1, -1,
 1.21613 ++      {
 1.21614 ++	&avr32_ifield_table[AVR32_IFIELD_K3],
 1.21615 ++      },
 1.21616 ++    },
 1.21617 ++    {
 1.21618 ++      AVR32_OPC_LD_D1, 2, 0xa1010000, 0xe1f10000,
 1.21619 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_D1],
 1.21620 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21621 ++      {
 1.21622 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 1.21623 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21624 ++      },
 1.21625 ++    },
 1.21626 ++    {
 1.21627 ++      AVR32_OPC_LD_D2, 2, 0xa1100000, 0xe1f10000,
 1.21628 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_D2],
 1.21629 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21630 ++      {
 1.21631 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 1.21632 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21633 ++      },
 1.21634 ++    },
 1.21635 ++    {
 1.21636 ++      AVR32_OPC_LD_D3, 2, 0xa1000000, 0xe1f10000,
 1.21637 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_D3],
 1.21638 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21639 ++      {
 1.21640 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 1.21641 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21642 ++      },
 1.21643 ++    },
 1.21644 ++    {
 1.21645 ++      AVR32_OPC_LD_D5, 4, 0xe0000200, 0xe1f0ffc1,
 1.21646 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_D5],
 1.21647 ++      BFD_RELOC_UNUSED, 4, -1,
 1.21648 ++      {
 1.21649 ++	&avr32_ifield_table[AVR32_IFIELD_RD_DW],
 1.21650 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21651 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21652 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 1.21653 ++      },
 1.21654 ++    },
 1.21655 ++    {
 1.21656 ++      AVR32_OPC_LD_D4, 4, 0xe0e00000, 0xe1f10000,
 1.21657 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_D4],
 1.21658 ++      BFD_RELOC_AVR32_16S, 3, 2,
 1.21659 ++      {
 1.21660 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 1.21661 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21662 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.21663 ++      },
 1.21664 ++    },
 1.21665 ++    {
 1.21666 ++      AVR32_OPC_LD_SB2, 4, 0xe0000600, 0xe1f0ffc0,
 1.21667 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_SB2],
 1.21668 ++      BFD_RELOC_UNUSED, 4, -1,
 1.21669 ++      {
 1.21670 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.21671 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21672 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21673 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 1.21674 ++      },
 1.21675 ++    },
 1.21676 ++    {
 1.21677 ++      AVR32_OPC_LD_SB1, 4, 0xe1200000, 0xe1f00000,
 1.21678 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_SB1],
 1.21679 ++      BFD_RELOC_AVR32_16S, 3, -1,
 1.21680 ++      {
 1.21681 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21682 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21683 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.21684 ++      },
 1.21685 ++    },
 1.21686 ++    {
 1.21687 ++      AVR32_OPC_LD_UB1, 2, 0x01300000, 0xe1f00000,
 1.21688 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UB1],
 1.21689 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21690 ++      {
 1.21691 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21692 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21693 ++      },
 1.21694 ++    },
 1.21695 ++    {
 1.21696 ++      AVR32_OPC_LD_UB2, 2, 0x01700000, 0xe1f00000,
 1.21697 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UB2],
 1.21698 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21699 ++      {
 1.21700 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21701 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21702 ++      },
 1.21703 ++    },
 1.21704 ++    {
 1.21705 ++      AVR32_OPC_LD_UB5, 4, 0xe0000700, 0xe1f0ffc0,
 1.21706 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UB5],
 1.21707 ++      BFD_RELOC_UNUSED, 4, -1,
 1.21708 ++      {
 1.21709 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.21710 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21711 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21712 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 1.21713 ++      },
 1.21714 ++    },
 1.21715 ++    {
 1.21716 ++      AVR32_OPC_LD_UB3, 2, 0x01800000, 0xe1800000,
 1.21717 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UB3],
 1.21718 ++      BFD_RELOC_AVR32_3U, 3, 2,
 1.21719 ++      {
 1.21720 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21721 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21722 ++	&avr32_ifield_table[AVR32_IFIELD_K3],
 1.21723 ++      },
 1.21724 ++    },
 1.21725 ++    {
 1.21726 ++      AVR32_OPC_LD_UB4, 4, 0xe1300000, 0xe1f00000,
 1.21727 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UB4],
 1.21728 ++      BFD_RELOC_AVR32_16S, 3, 2,
 1.21729 ++      {
 1.21730 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21731 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21732 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.21733 ++      },
 1.21734 ++    },
 1.21735 ++    {
 1.21736 ++      AVR32_OPC_LD_SH1, 2, 0x01100000, 0xe1f00000,
 1.21737 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_SH1],
 1.21738 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21739 ++      {
 1.21740 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21741 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21742 ++      },
 1.21743 ++    },
 1.21744 ++    {
 1.21745 ++      AVR32_OPC_LD_SH2, 2, 0x01500000, 0xe1f00000,
 1.21746 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_SH2],
 1.21747 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21748 ++      {
 1.21749 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21750 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21751 ++      },
 1.21752 ++    },
 1.21753 ++    {
 1.21754 ++      AVR32_OPC_LD_SH5, 4, 0xe0000400, 0xe1f0ffc0,
 1.21755 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_SH5],
 1.21756 ++      BFD_RELOC_UNUSED, 4, -1,
 1.21757 ++      {
 1.21758 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.21759 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21760 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21761 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 1.21762 ++      },
 1.21763 ++    },
 1.21764 ++    {
 1.21765 ++      AVR32_OPC_LD_SH3, 2, 0x80000000, 0xe1800000,
 1.21766 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_SH3],
 1.21767 ++      BFD_RELOC_AVR32_4UH, 3, 2,
 1.21768 ++      {
 1.21769 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21770 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21771 ++	&avr32_ifield_table[AVR32_IFIELD_K3],
 1.21772 ++      },
 1.21773 ++    },
 1.21774 ++    {
 1.21775 ++      AVR32_OPC_LD_SH4, 4, 0xe1000000, 0xe1f00000,
 1.21776 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_SH4],
 1.21777 ++      BFD_RELOC_AVR32_16S, 3, 2,
 1.21778 ++      {
 1.21779 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21780 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21781 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.21782 ++      },
 1.21783 ++    },
 1.21784 ++    {
 1.21785 ++      AVR32_OPC_LD_UH1, 2, 0x01200000, 0xe1f00000,
 1.21786 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UH1],
 1.21787 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21788 ++      {
 1.21789 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21790 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21791 ++      },
 1.21792 ++    },
 1.21793 ++    {
 1.21794 ++      AVR32_OPC_LD_UH2, 2, 0x01600000, 0xe1f00000,
 1.21795 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UH2],
 1.21796 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21797 ++      {
 1.21798 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21799 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21800 ++      },
 1.21801 ++    },
 1.21802 ++    {
 1.21803 ++      AVR32_OPC_LD_UH5, 4, 0xe0000500, 0xe1f0ffc0,
 1.21804 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UH5],
 1.21805 ++      BFD_RELOC_UNUSED, 4, -1,
 1.21806 ++      {
 1.21807 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.21808 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21809 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21810 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 1.21811 ++      },
 1.21812 ++    },
 1.21813 ++    {
 1.21814 ++      AVR32_OPC_LD_UH3, 2, 0x80800000, 0xe1800000,
 1.21815 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UH3],
 1.21816 ++      BFD_RELOC_AVR32_4UH, 3, 2,
 1.21817 ++      {
 1.21818 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21819 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21820 ++	&avr32_ifield_table[AVR32_IFIELD_K3],
 1.21821 ++      },
 1.21822 ++    },
 1.21823 ++    {
 1.21824 ++      AVR32_OPC_LD_UH4, 4, 0xe1100000, 0xe1f00000,
 1.21825 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_UH4],
 1.21826 ++      BFD_RELOC_AVR32_16S, 3, 2,
 1.21827 ++      {
 1.21828 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21829 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21830 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.21831 ++      },
 1.21832 ++    },
 1.21833 ++    {
 1.21834 ++      AVR32_OPC_LD_W1, 2, 0x01000000, 0xe1f00000,
 1.21835 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_W1],
 1.21836 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21837 ++      {
 1.21838 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21839 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21840 ++      },
 1.21841 ++    },
 1.21842 ++    {
 1.21843 ++      AVR32_OPC_LD_W2, 2, 0x01400000, 0xe1f00000,
 1.21844 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_W2],
 1.21845 ++      BFD_RELOC_UNUSED, 2, -1,
 1.21846 ++      {
 1.21847 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21848 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21849 ++      },
 1.21850 ++    },
 1.21851 ++    {
 1.21852 ++      AVR32_OPC_LD_W5, 4, 0xe0000300, 0xe1f0ffc0,
 1.21853 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_W5],
 1.21854 ++      BFD_RELOC_UNUSED, 4, -1,
 1.21855 ++      {
 1.21856 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.21857 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21858 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21859 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 1.21860 ++      },
 1.21861 ++    },
 1.21862 ++    {
 1.21863 ++      AVR32_OPC_LD_W6, 4, 0xe0000f80, 0xe1f0ffc0,
 1.21864 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_W6],
 1.21865 ++      BFD_RELOC_UNUSED, 4, -1,
 1.21866 ++      {
 1.21867 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.21868 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21869 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21870 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 1.21871 ++      },
 1.21872 ++    },
 1.21873 ++    {
 1.21874 ++      AVR32_OPC_LD_W3, 2, 0x60000000, 0xe0000000,
 1.21875 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_W3],
 1.21876 ++      BFD_RELOC_AVR32_7UW, 3, 2,
 1.21877 ++      {
 1.21878 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21879 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21880 ++	&avr32_ifield_table[AVR32_IFIELD_K5C],
 1.21881 ++      },
 1.21882 ++    },
 1.21883 ++    {
 1.21884 ++      AVR32_OPC_LD_W4, 4, 0xe0f00000, 0xe1f00000,
 1.21885 ++      &avr32_syntax_table[AVR32_SYNTAX_LD_W4],
 1.21886 ++      BFD_RELOC_AVR32_16S, 3, 2,
 1.21887 ++      {
 1.21888 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21889 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.21890 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.21891 ++      },
 1.21892 ++    },
 1.21893 ++    {
 1.21894 ++      AVR32_OPC_LDC_D1, 4, 0xe9a01000, 0xfff01100,
 1.21895 ++      &avr32_syntax_table[AVR32_SYNTAX_LDC_D1],
 1.21896 ++      BFD_RELOC_AVR32_10UW, 4, 3,
 1.21897 ++      {
 1.21898 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.21899 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 1.21900 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21901 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.21902 ++      },
 1.21903 ++    },
 1.21904 ++    {
 1.21905 ++      AVR32_OPC_LDC_D2, 4, 0xefa00050, 0xfff011ff,
 1.21906 ++      &avr32_syntax_table[AVR32_SYNTAX_LDC_D2],
 1.21907 ++      BFD_RELOC_UNUSED, 3, -1,
 1.21908 ++      {
 1.21909 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.21910 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 1.21911 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21912 ++      },
 1.21913 ++    },
 1.21914 ++    {
 1.21915 ++      AVR32_OPC_LDC_D3, 4, 0xefa01040, 0xfff011c0,
 1.21916 ++      &avr32_syntax_table[AVR32_SYNTAX_LDC_D3],
 1.21917 ++      BFD_RELOC_UNUSED, 5, -1,
 1.21918 ++      {
 1.21919 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.21920 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 1.21921 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21922 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.21923 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 1.21924 ++      },
 1.21925 ++    },
 1.21926 ++    {
 1.21927 ++      AVR32_OPC_LDC_W1, 4, 0xe9a00000, 0xfff01000,
 1.21928 ++      &avr32_syntax_table[AVR32_SYNTAX_LDC_W1],
 1.21929 ++      BFD_RELOC_AVR32_10UW, 4, 3,
 1.21930 ++      {
 1.21931 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.21932 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 1.21933 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21934 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.21935 ++      },
 1.21936 ++    },
 1.21937 ++    {
 1.21938 ++      AVR32_OPC_LDC_W2, 4, 0xefa00040, 0xfff010ff,
 1.21939 ++      &avr32_syntax_table[AVR32_SYNTAX_LDC_W2],
 1.21940 ++      BFD_RELOC_UNUSED, 3, -1,
 1.21941 ++      {
 1.21942 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.21943 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 1.21944 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21945 ++      },
 1.21946 ++    },
 1.21947 ++    {
 1.21948 ++      AVR32_OPC_LDC_W3, 4, 0xefa01000, 0xfff010c0,
 1.21949 ++      &avr32_syntax_table[AVR32_SYNTAX_LDC_W3],
 1.21950 ++      BFD_RELOC_UNUSED, 5, -1,
 1.21951 ++      {
 1.21952 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.21953 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 1.21954 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21955 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.21956 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 1.21957 ++      },
 1.21958 ++    },
 1.21959 ++    {
 1.21960 ++      AVR32_OPC_LDC0_D, 4, 0xf3a00000, 0xfff00100,
 1.21961 ++      &avr32_syntax_table[AVR32_SYNTAX_LDC0_D],
 1.21962 ++      BFD_RELOC_AVR32_14UW, 3, 2,
 1.21963 ++      {
 1.21964 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 1.21965 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21966 ++	&avr32_ifield_table[AVR32_IFIELD_K12CP],
 1.21967 ++      },
 1.21968 ++    },
 1.21969 ++    {
 1.21970 ++      AVR32_OPC_LDC0_W, 4, 0xf1a00000, 0xfff00000,
 1.21971 ++      &avr32_syntax_table[AVR32_SYNTAX_LDC0_W],
 1.21972 ++      BFD_RELOC_AVR32_14UW, 3, 2,
 1.21973 ++      {
 1.21974 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 1.21975 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21976 ++	&avr32_ifield_table[AVR32_IFIELD_K12CP],
 1.21977 ++      },
 1.21978 ++    },
 1.21979 ++    {
 1.21980 ++      AVR32_OPC_LDCM_D, 4, 0xeda00400, 0xfff01f00,
 1.21981 ++      &avr32_syntax_table[AVR32_SYNTAX_LDCM_D],
 1.21982 ++      BFD_RELOC_UNUSED, 3, -1,
 1.21983 ++      {
 1.21984 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.21985 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21986 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.21987 ++      },
 1.21988 ++    },
 1.21989 ++    {
 1.21990 ++      AVR32_OPC_LDCM_D_PU, 4, 0xeda01400, 0xfff01f00,
 1.21991 ++      &avr32_syntax_table[AVR32_SYNTAX_LDCM_D_PU],
 1.21992 ++      BFD_RELOC_UNUSED, 3, -1,
 1.21993 ++      {
 1.21994 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.21995 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.21996 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.21997 ++      },
 1.21998 ++    },
 1.21999 ++    {
 1.22000 ++      AVR32_OPC_LDCM_W, 4, 0xeda00000, 0xfff01e00,
 1.22001 ++      &avr32_syntax_table[AVR32_SYNTAX_LDCM_W],
 1.22002 ++      BFD_RELOC_UNUSED, 4, -1,
 1.22003 ++      {
 1.22004 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.22005 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22006 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22007 ++	&avr32_ifield_table[AVR32_IFIELD_CM_HL],
 1.22008 ++      },
 1.22009 ++    },
 1.22010 ++    {
 1.22011 ++      AVR32_OPC_LDCM_W_PU, 4, 0xeda01000, 0xfff01e00,
 1.22012 ++      &avr32_syntax_table[AVR32_SYNTAX_LDCM_W_PU],
 1.22013 ++      BFD_RELOC_UNUSED, 4, -1,
 1.22014 ++      {
 1.22015 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.22016 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22017 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22018 ++	&avr32_ifield_table[AVR32_IFIELD_CM_HL],
 1.22019 ++      },
 1.22020 ++    },
 1.22021 ++    {
 1.22022 ++      AVR32_OPC_LDDPC, 2, 0x48000000, 0xf8000000,
 1.22023 ++      &avr32_syntax_table[AVR32_SYNTAX_LDDPC],
 1.22024 ++      BFD_RELOC_AVR32_9UW_PCREL, 2, 1,
 1.22025 ++      {
 1.22026 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22027 ++	&avr32_ifield_table[AVR32_IFIELD_K7C],
 1.22028 ++      },
 1.22029 ++    },
 1.22030 ++    {
 1.22031 ++      AVR32_OPC_LDDPC_EXT, 4, 0xfef00000, 0xfff00000,
 1.22032 ++      &avr32_syntax_table[AVR32_SYNTAX_LDDPC_EXT],
 1.22033 ++      BFD_RELOC_AVR32_16B_PCREL, 2, 1,
 1.22034 ++      {
 1.22035 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22036 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.22037 ++      },
 1.22038 ++    },
 1.22039 ++    {
 1.22040 ++      AVR32_OPC_LDDSP, 2, 0x40000000, 0xf8000000,
 1.22041 ++      &avr32_syntax_table[AVR32_SYNTAX_LDDSP],
 1.22042 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22043 ++      {
 1.22044 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22045 ++	&avr32_ifield_table[AVR32_IFIELD_K7C],
 1.22046 ++      },
 1.22047 ++    },
 1.22048 ++    {
 1.22049 ++      AVR32_OPC_LDINS_B, 4, 0xe1d04000, 0xe1f0c000,
 1.22050 ++      &avr32_syntax_table[AVR32_SYNTAX_LDINS_B],
 1.22051 ++      BFD_RELOC_UNUSED, 4, -1,
 1.22052 ++      {
 1.22053 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22054 ++	&avr32_ifield_table[AVR32_IFIELD_PART2_K12],
 1.22055 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22056 ++	&avr32_ifield_table[AVR32_IFIELD_K12],
 1.22057 ++      },
 1.22058 ++    },
 1.22059 ++    {
 1.22060 ++      AVR32_OPC_LDINS_H, 4, 0xe1d00000, 0xe1f0e000,
 1.22061 ++      &avr32_syntax_table[AVR32_SYNTAX_LDINS_H],
 1.22062 ++      BFD_RELOC_UNUSED, 4, -1,
 1.22063 ++      {
 1.22064 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22065 ++	&avr32_ifield_table[AVR32_IFIELD_PART1_K12],
 1.22066 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22067 ++	&avr32_ifield_table[AVR32_IFIELD_K12],
 1.22068 ++      },
 1.22069 ++    },
 1.22070 ++    {
 1.22071 ++      AVR32_OPC_LDM, 4, 0xe1c00000, 0xfdf00000,
 1.22072 ++      &avr32_syntax_table[AVR32_SYNTAX_LDM],
 1.22073 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22074 ++      {
 1.22075 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22076 ++	&avr32_ifield_table[AVR32_IFIELD_W],
 1.22077 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.22078 ++      },
 1.22079 ++    },
 1.22080 ++    {
 1.22081 ++      AVR32_OPC_LDMTS, 4, 0xe5c00000, 0xfff00000,
 1.22082 ++      &avr32_syntax_table[AVR32_SYNTAX_LDMTS],
 1.22083 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22084 ++      {
 1.22085 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22086 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.22087 ++      },
 1.22088 ++    },
 1.22089 ++    {
 1.22090 ++      AVR32_OPC_LDMTS_PU, 4, 0xe7c00000, 0xfff00000,
 1.22091 ++      &avr32_syntax_table[AVR32_SYNTAX_LDMTS_PU],
 1.22092 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22093 ++      {
 1.22094 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22095 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.22096 ++      },
 1.22097 ++    },
 1.22098 ++    {
 1.22099 ++      AVR32_OPC_LDSWP_SH, 4, 0xe1d02000, 0xe1f0f000,
 1.22100 ++      &avr32_syntax_table[AVR32_SYNTAX_LDSWP_SH],
 1.22101 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22102 ++      {
 1.22103 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22104 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22105 ++	&avr32_ifield_table[AVR32_IFIELD_K12],
 1.22106 ++      },
 1.22107 ++    },
 1.22108 ++    {
 1.22109 ++      AVR32_OPC_LDSWP_UH, 4, 0xe1d03000, 0xe1f0f000,
 1.22110 ++      &avr32_syntax_table[AVR32_SYNTAX_LDSWP_UH],
 1.22111 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22112 ++      {
 1.22113 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22114 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22115 ++	&avr32_ifield_table[AVR32_IFIELD_K12],
 1.22116 ++      },
 1.22117 ++    },
 1.22118 ++    {
 1.22119 ++      AVR32_OPC_LDSWP_W, 4, 0xe1d08000, 0xe1f0f000,
 1.22120 ++      &avr32_syntax_table[AVR32_SYNTAX_LDSWP_W],
 1.22121 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22122 ++      {
 1.22123 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22124 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22125 ++	&avr32_ifield_table[AVR32_IFIELD_K12],
 1.22126 ++      },
 1.22127 ++    },
 1.22128 ++    {
 1.22129 ++      AVR32_OPC_LSL1, 4, 0xe0000940, 0xe1f0fff0,
 1.22130 ++      &avr32_syntax_table[AVR32_SYNTAX_LSL1],
 1.22131 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22132 ++      {
 1.22133 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22134 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22135 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22136 ++      },
 1.22137 ++    },
 1.22138 ++    {
 1.22139 ++      AVR32_OPC_LSL3, 4, 0xe0001500, 0xe1f0ffe0,
 1.22140 ++      &avr32_syntax_table[AVR32_SYNTAX_LSL3],
 1.22141 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22142 ++      {
 1.22143 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22144 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22145 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 1.22146 ++      },
 1.22147 ++    },
 1.22148 ++    {
 1.22149 ++      AVR32_OPC_LSL2, 2, 0xa1600000, 0xe1e00000,
 1.22150 ++      &avr32_syntax_table[AVR32_SYNTAX_LSL2],
 1.22151 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22152 ++      {
 1.22153 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22154 ++	&avr32_ifield_table[AVR32_IFIELD_BIT5C],
 1.22155 ++      },
 1.22156 ++    },
 1.22157 ++    {
 1.22158 ++      AVR32_OPC_LSR1, 4, 0xe0000a40, 0xe1f0fff0,
 1.22159 ++      &avr32_syntax_table[AVR32_SYNTAX_LSR1],
 1.22160 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22161 ++      {
 1.22162 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22163 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22164 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22165 ++      },
 1.22166 ++    },
 1.22167 ++    {
 1.22168 ++      AVR32_OPC_LSR3, 4, 0xe0001600, 0xe1f0ffe0,
 1.22169 ++      &avr32_syntax_table[AVR32_SYNTAX_LSR3],
 1.22170 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22171 ++      {
 1.22172 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22173 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22174 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 1.22175 ++      },
 1.22176 ++    },
 1.22177 ++    {
 1.22178 ++      AVR32_OPC_LSR2, 2, 0xa1800000, 0xe1e00000,
 1.22179 ++      &avr32_syntax_table[AVR32_SYNTAX_LSR2],
 1.22180 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22181 ++      {
 1.22182 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22183 ++	&avr32_ifield_table[AVR32_IFIELD_BIT5C],
 1.22184 ++      },
 1.22185 ++    },
 1.22186 ++    {
 1.22187 ++      AVR32_OPC_MAC, 4, 0xe0000340, 0xe1f0fff0,
 1.22188 ++      &avr32_syntax_table[AVR32_SYNTAX_MAC],
 1.22189 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22190 ++      {
 1.22191 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22192 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22193 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22194 ++      },
 1.22195 ++    },
 1.22196 ++    {
 1.22197 ++      AVR32_OPC_MACHH_D, 4, 0xe0000580, 0xe1f0ffc1,
 1.22198 ++      &avr32_syntax_table[AVR32_SYNTAX_MACHH_D],
 1.22199 ++      BFD_RELOC_UNUSED, 5, -1,
 1.22200 ++      {
 1.22201 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22202 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22203 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 1.22204 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22205 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.22206 ++      },
 1.22207 ++    },
 1.22208 ++    {
 1.22209 ++      AVR32_OPC_MACHH_W, 4, 0xe0000480, 0xe1f0ffc0,
 1.22210 ++      &avr32_syntax_table[AVR32_SYNTAX_MACHH_W],
 1.22211 ++      BFD_RELOC_UNUSED, 5, -1,
 1.22212 ++      {
 1.22213 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22214 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22215 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 1.22216 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22217 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.22218 ++      },
 1.22219 ++    },
 1.22220 ++    {
 1.22221 ++      AVR32_OPC_MACS_D, 4, 0xe0000540, 0xe1f0fff1,
 1.22222 ++      &avr32_syntax_table[AVR32_SYNTAX_MACS_D],
 1.22223 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22224 ++      {
 1.22225 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22226 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22227 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22228 ++      },
 1.22229 ++    },
 1.22230 ++    {
 1.22231 ++      AVR32_OPC_MACSATHH_W, 4, 0xe0000680, 0xe1f0ffc0,
 1.22232 ++      &avr32_syntax_table[AVR32_SYNTAX_MACSATHH_W],
 1.22233 ++      BFD_RELOC_UNUSED, 5, -1,
 1.22234 ++      {
 1.22235 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22236 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22237 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 1.22238 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22239 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.22240 ++      },
 1.22241 ++    },
 1.22242 ++    {
 1.22243 ++      AVR32_OPC_MACUD, 4, 0xe0000740, 0xe1f0fff1,
 1.22244 ++      &avr32_syntax_table[AVR32_SYNTAX_MACUD],
 1.22245 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22246 ++      {
 1.22247 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22248 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22249 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22250 ++      },
 1.22251 ++    },
 1.22252 ++    {
 1.22253 ++      AVR32_OPC_MACWH_D, 4, 0xe0000c80, 0xe1f0ffe1,
 1.22254 ++      &avr32_syntax_table[AVR32_SYNTAX_MACWH_D],
 1.22255 ++      BFD_RELOC_UNUSED, 4, -1,
 1.22256 ++      {
 1.22257 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22258 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22259 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22260 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.22261 ++      },
 1.22262 ++    },
 1.22263 ++    {
 1.22264 ++      AVR32_OPC_MAX, 4, 0xe0000c40, 0xe1f0fff0,
 1.22265 ++      &avr32_syntax_table[AVR32_SYNTAX_MAX],
 1.22266 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22267 ++      {
 1.22268 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22269 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22270 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22271 ++      },
 1.22272 ++    },
 1.22273 ++    {
 1.22274 ++      AVR32_OPC_MCALL, 4, 0xf0100000, 0xfff00000,
 1.22275 ++      &avr32_syntax_table[AVR32_SYNTAX_MCALL],
 1.22276 ++      BFD_RELOC_AVR32_18W_PCREL, 2, 1,
 1.22277 ++      {
 1.22278 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22279 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.22280 ++      },
 1.22281 ++    },
 1.22282 ++    {
 1.22283 ++      AVR32_OPC_MFDR, 4, 0xe5b00000, 0xfff0ff00,
 1.22284 ++      &avr32_syntax_table[AVR32_SYNTAX_MFDR],
 1.22285 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.22286 ++      {
 1.22287 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22288 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22289 ++      },
 1.22290 ++    },
 1.22291 ++    {
 1.22292 ++      AVR32_OPC_MFSR, 4, 0xe1b00000, 0xfff0ff00,
 1.22293 ++      &avr32_syntax_table[AVR32_SYNTAX_MFSR],
 1.22294 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.22295 ++      {
 1.22296 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22297 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22298 ++      },
 1.22299 ++    },
 1.22300 ++    {
 1.22301 ++      AVR32_OPC_MIN, 4, 0xe0000d40, 0xe1f0fff0,
 1.22302 ++      &avr32_syntax_table[AVR32_SYNTAX_MIN],
 1.22303 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22304 ++      {
 1.22305 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22306 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22307 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22308 ++      },
 1.22309 ++    },
 1.22310 ++    {
 1.22311 ++      AVR32_OPC_MOV3, 2, 0x00900000, 0xe1f00000,
 1.22312 ++      &avr32_syntax_table[AVR32_SYNTAX_MOV3],
 1.22313 ++      BFD_RELOC_NONE, 2, -1,
 1.22314 ++      {
 1.22315 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22316 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22317 ++      },
 1.22318 ++    },
 1.22319 ++    {
 1.22320 ++      AVR32_OPC_MOV1, 2, 0x30000000, 0xf0000000,
 1.22321 ++      &avr32_syntax_table[AVR32_SYNTAX_MOV1],
 1.22322 ++      BFD_RELOC_AVR32_8S, 2, 1,
 1.22323 ++      {
 1.22324 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22325 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 1.22326 ++      },
 1.22327 ++    },
 1.22328 ++    {
 1.22329 ++      AVR32_OPC_MOV2, 4, 0xe0600000, 0xe1e00000,
 1.22330 ++      &avr32_syntax_table[AVR32_SYNTAX_MOV2],
 1.22331 ++      BFD_RELOC_AVR32_21S, 2, 1,
 1.22332 ++      {
 1.22333 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22334 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.22335 ++      },
 1.22336 ++    },
 1.22337 ++    {
 1.22338 ++      AVR32_OPC_MOVEQ1, 4, 0xe0001700, 0xe1f0ffff,
 1.22339 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVEQ1],
 1.22340 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22341 ++      {
 1.22342 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22343 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22344 ++      },
 1.22345 ++    },
 1.22346 ++    {
 1.22347 ++      AVR32_OPC_MOVNE1, 4, 0xe0001710, 0xe1f0ffff,
 1.22348 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVNE1],
 1.22349 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22350 ++      {
 1.22351 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22352 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22353 ++      },
 1.22354 ++    },
 1.22355 ++    {
 1.22356 ++      AVR32_OPC_MOVCC1, 4, 0xe0001720, 0xe1f0ffff,
 1.22357 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVHS1],
 1.22358 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22359 ++      {
 1.22360 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22361 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22362 ++      },
 1.22363 ++    },
 1.22364 ++    {
 1.22365 ++      AVR32_OPC_MOVCS1, 4, 0xe0001730, 0xe1f0ffff,
 1.22366 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVLO1],
 1.22367 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22368 ++      {
 1.22369 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22370 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22371 ++      },
 1.22372 ++    },
 1.22373 ++    {
 1.22374 ++      AVR32_OPC_MOVGE1, 4, 0xe0001740, 0xe1f0ffff,
 1.22375 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVGE1],
 1.22376 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22377 ++      {
 1.22378 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22379 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22380 ++      },
 1.22381 ++    },
 1.22382 ++    {
 1.22383 ++      AVR32_OPC_MOVLT1, 4, 0xe0001750, 0xe1f0ffff,
 1.22384 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVLT1],
 1.22385 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22386 ++      {
 1.22387 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22388 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22389 ++      },
 1.22390 ++    },
 1.22391 ++    {
 1.22392 ++      AVR32_OPC_MOVMI1, 4, 0xe0001760, 0xe1f0ffff,
 1.22393 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVMI1],
 1.22394 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22395 ++      {
 1.22396 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22397 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22398 ++      },
 1.22399 ++    },
 1.22400 ++    {
 1.22401 ++      AVR32_OPC_MOVPL1, 4, 0xe0001770, 0xe1f0ffff,
 1.22402 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVPL1],
 1.22403 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22404 ++      {
 1.22405 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22406 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22407 ++      },
 1.22408 ++    },
 1.22409 ++    {
 1.22410 ++      AVR32_OPC_MOVLS1, 4, 0xe0001780, 0xe1f0ffff,
 1.22411 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVLS1],
 1.22412 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22413 ++      {
 1.22414 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22415 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22416 ++      },
 1.22417 ++    },
 1.22418 ++    {
 1.22419 ++      AVR32_OPC_MOVGT1, 4, 0xe0001790, 0xe1f0ffff,
 1.22420 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVGT1],
 1.22421 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22422 ++      {
 1.22423 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22424 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22425 ++      },
 1.22426 ++    },
 1.22427 ++    {
 1.22428 ++      AVR32_OPC_MOVLE1, 4, 0xe00017a0, 0xe1f0ffff,
 1.22429 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVLE1],
 1.22430 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22431 ++      {
 1.22432 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22433 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22434 ++      },
 1.22435 ++    },
 1.22436 ++    {
 1.22437 ++      AVR32_OPC_MOVHI1, 4, 0xe00017b0, 0xe1f0ffff,
 1.22438 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVHI1],
 1.22439 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22440 ++      {
 1.22441 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22442 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22443 ++      },
 1.22444 ++    },
 1.22445 ++    {
 1.22446 ++      AVR32_OPC_MOVVS1, 4, 0xe00017c0, 0xe1f0ffff,
 1.22447 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVVS1],
 1.22448 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22449 ++      {
 1.22450 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22451 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22452 ++      },
 1.22453 ++    },
 1.22454 ++    {
 1.22455 ++      AVR32_OPC_MOVVC1, 4, 0xe00017d0, 0xe1f0ffff,
 1.22456 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVVC1],
 1.22457 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22458 ++      {
 1.22459 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22460 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22461 ++      },
 1.22462 ++    },
 1.22463 ++    {
 1.22464 ++      AVR32_OPC_MOVQS1, 4, 0xe00017e0, 0xe1f0ffff,
 1.22465 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVQS1],
 1.22466 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22467 ++      {
 1.22468 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22469 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22470 ++      },
 1.22471 ++    },
 1.22472 ++    {
 1.22473 ++      AVR32_OPC_MOVAL1, 4, 0xe00017f0, 0xe1f0ffff,
 1.22474 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVAL1],
 1.22475 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22476 ++      {
 1.22477 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22478 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22479 ++      },
 1.22480 ++    },
 1.22481 ++    {
 1.22482 ++      AVR32_OPC_MOVEQ2, 4, 0xf9b00000, 0xfff0ff00,
 1.22483 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVEQ2],
 1.22484 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.22485 ++      {
 1.22486 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22487 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22488 ++      },
 1.22489 ++    },
 1.22490 ++    {
 1.22491 ++      AVR32_OPC_MOVNE2, 4, 0xf9b00100, 0xfff0ff00,
 1.22492 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVNE2],
 1.22493 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.22494 ++      {
 1.22495 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22496 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22497 ++      },
 1.22498 ++    },
 1.22499 ++    {
 1.22500 ++      AVR32_OPC_MOVCC2, 4, 0xf9b00200, 0xfff0ff00,
 1.22501 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVHS2],
 1.22502 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.22503 ++      {
 1.22504 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22505 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22506 ++      },
 1.22507 ++    },
 1.22508 ++    {
 1.22509 ++      AVR32_OPC_MOVCS2, 4, 0xf9b00300, 0xfff0ff00,
 1.22510 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVLO2],
 1.22511 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.22512 ++      {
 1.22513 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22514 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22515 ++      },
 1.22516 ++    },
 1.22517 ++    {
 1.22518 ++      AVR32_OPC_MOVGE2, 4, 0xf9b00400, 0xfff0ff00,
 1.22519 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVGE2],
 1.22520 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.22521 ++      {
 1.22522 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22523 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22524 ++      },
 1.22525 ++    },
 1.22526 ++    {
 1.22527 ++      AVR32_OPC_MOVLT2, 4, 0xf9b00500, 0xfff0ff00,
 1.22528 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVLT2],
 1.22529 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.22530 ++      {
 1.22531 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22532 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22533 ++      },
 1.22534 ++    },
 1.22535 ++    {
 1.22536 ++      AVR32_OPC_MOVMI2, 4, 0xf9b00600, 0xfff0ff00,
 1.22537 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVMI2],
 1.22538 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.22539 ++      {
 1.22540 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22541 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22542 ++      },
 1.22543 ++    },
 1.22544 ++    {
 1.22545 ++      AVR32_OPC_MOVPL2, 4, 0xf9b00700, 0xfff0ff00,
 1.22546 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVPL2],
 1.22547 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.22548 ++      {
 1.22549 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22550 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22551 ++      },
 1.22552 ++    },
 1.22553 ++    {
 1.22554 ++      AVR32_OPC_MOVLS2, 4, 0xf9b00800, 0xfff0ff00,
 1.22555 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVLS2],
 1.22556 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.22557 ++      {
 1.22558 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22559 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22560 ++      },
 1.22561 ++    },
 1.22562 ++    {
 1.22563 ++      AVR32_OPC_MOVGT2, 4, 0xf9b00900, 0xfff0ff00,
 1.22564 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVGT2],
 1.22565 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.22566 ++      {
 1.22567 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22568 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22569 ++      },
 1.22570 ++    },
 1.22571 ++    {
 1.22572 ++      AVR32_OPC_MOVLE2, 4, 0xf9b00a00, 0xfff0ff00,
 1.22573 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVLE2],
 1.22574 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.22575 ++      {
 1.22576 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22577 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22578 ++      },
 1.22579 ++    },
 1.22580 ++    {
 1.22581 ++      AVR32_OPC_MOVHI2, 4, 0xf9b00b00, 0xfff0ff00,
 1.22582 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVHI2],
 1.22583 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.22584 ++      {
 1.22585 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22586 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22587 ++      },
 1.22588 ++    },
 1.22589 ++    {
 1.22590 ++      AVR32_OPC_MOVVS2, 4, 0xf9b00c00, 0xfff0ff00,
 1.22591 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVVS2],
 1.22592 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.22593 ++      {
 1.22594 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22595 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22596 ++      },
 1.22597 ++    },
 1.22598 ++    {
 1.22599 ++      AVR32_OPC_MOVVC2, 4, 0xf9b00d00, 0xfff0ff00,
 1.22600 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVVC2],
 1.22601 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.22602 ++      {
 1.22603 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22604 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22605 ++      },
 1.22606 ++    },
 1.22607 ++    {
 1.22608 ++      AVR32_OPC_MOVQS2, 4, 0xf9b00e00, 0xfff0ff00,
 1.22609 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVQS2],
 1.22610 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.22611 ++      {
 1.22612 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22613 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22614 ++      },
 1.22615 ++    },
 1.22616 ++    {
 1.22617 ++      AVR32_OPC_MOVAL2, 4, 0xf9b00f00, 0xfff0ff00,
 1.22618 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVAL2],
 1.22619 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.22620 ++      {
 1.22621 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22622 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22623 ++      },
 1.22624 ++    },
 1.22625 ++    {
 1.22626 ++      AVR32_OPC_MTDR, 4, 0xe7b00000, 0xfff0ff00,
 1.22627 ++      &avr32_syntax_table[AVR32_SYNTAX_MTDR],
 1.22628 ++      BFD_RELOC_AVR32_8S_EXT, 2, 0,
 1.22629 ++      {
 1.22630 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22631 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22632 ++      },
 1.22633 ++    },
 1.22634 ++    {
 1.22635 ++      AVR32_OPC_MTSR, 4, 0xe3b00000, 0xfff0ff00,
 1.22636 ++      &avr32_syntax_table[AVR32_SYNTAX_MTSR],
 1.22637 ++      BFD_RELOC_AVR32_8S_EXT, 2, 0,
 1.22638 ++      {
 1.22639 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22640 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22641 ++      },
 1.22642 ++    },
 1.22643 ++    {
 1.22644 ++      AVR32_OPC_MUL1, 2, 0xa1300000, 0xe1f00000,
 1.22645 ++      &avr32_syntax_table[AVR32_SYNTAX_MUL1],
 1.22646 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22647 ++      {
 1.22648 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22649 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22650 ++      },
 1.22651 ++    },
 1.22652 ++    {
 1.22653 ++      AVR32_OPC_MUL2, 4, 0xe0000240, 0xe1f0fff0,
 1.22654 ++      &avr32_syntax_table[AVR32_SYNTAX_MUL2],
 1.22655 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22656 ++      {
 1.22657 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22658 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22659 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22660 ++      },
 1.22661 ++    },
 1.22662 ++    {
 1.22663 ++      AVR32_OPC_MUL3, 4, 0xe0001000, 0xe1f0ff00,
 1.22664 ++      &avr32_syntax_table[AVR32_SYNTAX_MUL3],
 1.22665 ++      BFD_RELOC_AVR32_8S_EXT, 3, 2,
 1.22666 ++      {
 1.22667 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22668 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22669 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.22670 ++      },
 1.22671 ++    },
 1.22672 ++    {
 1.22673 ++      AVR32_OPC_MULHH_W, 4, 0xe0000780, 0xe1f0ffc0,
 1.22674 ++      &avr32_syntax_table[AVR32_SYNTAX_MULHH_W],
 1.22675 ++      BFD_RELOC_UNUSED, 5, -1,
 1.22676 ++      {
 1.22677 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22678 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22679 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 1.22680 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22681 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.22682 ++      },
 1.22683 ++    },
 1.22684 ++    {
 1.22685 ++      AVR32_OPC_MULNHH_W, 4, 0xe0000180, 0xe1f0ffc0,
 1.22686 ++      &avr32_syntax_table[AVR32_SYNTAX_MULNHH_W],
 1.22687 ++      BFD_RELOC_UNUSED, 5, -1,
 1.22688 ++      {
 1.22689 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22690 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22691 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 1.22692 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22693 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.22694 ++      },
 1.22695 ++    },
 1.22696 ++    {
 1.22697 ++      AVR32_OPC_MULNWH_D, 4, 0xe0000280, 0xe1f0ffe1,
 1.22698 ++      &avr32_syntax_table[AVR32_SYNTAX_MULNWH_D],
 1.22699 ++      BFD_RELOC_UNUSED, 4, -1,
 1.22700 ++      {
 1.22701 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22702 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22703 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22704 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.22705 ++      },
 1.22706 ++    },
 1.22707 ++    {
 1.22708 ++      AVR32_OPC_MULSD, 4, 0xe0000440, 0xe1f0fff0,
 1.22709 ++      &avr32_syntax_table[AVR32_SYNTAX_MULSD],
 1.22710 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22711 ++      {
 1.22712 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22713 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22714 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22715 ++      },
 1.22716 ++    },
 1.22717 ++    {
 1.22718 ++      AVR32_OPC_MULSATHH_H, 4, 0xe0000880, 0xe1f0ffc0,
 1.22719 ++      &avr32_syntax_table[AVR32_SYNTAX_MULSATHH_H],
 1.22720 ++      BFD_RELOC_UNUSED, 5, -1,
 1.22721 ++      {
 1.22722 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22723 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22724 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 1.22725 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22726 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.22727 ++      },
 1.22728 ++    },
 1.22729 ++    {
 1.22730 ++      AVR32_OPC_MULSATHH_W, 4, 0xe0000980, 0xe1f0ffc0,
 1.22731 ++      &avr32_syntax_table[AVR32_SYNTAX_MULSATHH_W],
 1.22732 ++      BFD_RELOC_UNUSED, 5, -1,
 1.22733 ++      {
 1.22734 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22735 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22736 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 1.22737 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22738 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.22739 ++      },
 1.22740 ++    },
 1.22741 ++    {
 1.22742 ++      AVR32_OPC_MULSATRNDHH_H, 4, 0xe0000a80, 0xe1f0ffc0,
 1.22743 ++      &avr32_syntax_table[AVR32_SYNTAX_MULSATRNDHH_H],
 1.22744 ++      BFD_RELOC_UNUSED, 5, -1,
 1.22745 ++      {
 1.22746 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22747 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22748 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 1.22749 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22750 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.22751 ++      },
 1.22752 ++    },
 1.22753 ++    {
 1.22754 ++      AVR32_OPC_MULSATRNDWH_W, 4, 0xe0000b80, 0xe1f0ffe0,
 1.22755 ++      &avr32_syntax_table[AVR32_SYNTAX_MULSATRNDWH_W],
 1.22756 ++      BFD_RELOC_UNUSED, 4, -1,
 1.22757 ++      {
 1.22758 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22759 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22760 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22761 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.22762 ++      },
 1.22763 ++    },
 1.22764 ++    {
 1.22765 ++      AVR32_OPC_MULSATWH_W, 4, 0xe0000e80, 0xe1f0ffe0,
 1.22766 ++      &avr32_syntax_table[AVR32_SYNTAX_MULSATWH_W],
 1.22767 ++      BFD_RELOC_UNUSED, 4, -1,
 1.22768 ++      {
 1.22769 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22770 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22771 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22772 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.22773 ++      },
 1.22774 ++    },
 1.22775 ++    {
 1.22776 ++      AVR32_OPC_MULU_D, 4, 0xe0000640, 0xe1f0fff1,
 1.22777 ++      &avr32_syntax_table[AVR32_SYNTAX_MULU_D],
 1.22778 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22779 ++      {
 1.22780 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22781 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22782 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22783 ++      },
 1.22784 ++    },
 1.22785 ++    {
 1.22786 ++      AVR32_OPC_MULWH_D, 4, 0xe0000d80, 0xe1f0ffe1,
 1.22787 ++      &avr32_syntax_table[AVR32_SYNTAX_MULWH_D],
 1.22788 ++      BFD_RELOC_UNUSED, 4, -1,
 1.22789 ++      {
 1.22790 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22791 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22792 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22793 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.22794 ++      },
 1.22795 ++    },
 1.22796 ++    {
 1.22797 ++      AVR32_OPC_MUSFR, 2, 0x5d300000, 0xfff00000,
 1.22798 ++      &avr32_syntax_table[AVR32_SYNTAX_MUSFR],
 1.22799 ++      BFD_RELOC_UNUSED, 1, -1,
 1.22800 ++      {
 1.22801 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22802 ++      }
 1.22803 ++    },
 1.22804 ++    {
 1.22805 ++      AVR32_OPC_MUSTR, 2, 0x5d200000, 0xfff00000,
 1.22806 ++      &avr32_syntax_table[AVR32_SYNTAX_MUSTR],
 1.22807 ++      BFD_RELOC_UNUSED, 1, -1,
 1.22808 ++      {
 1.22809 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22810 ++      }
 1.22811 ++    },
 1.22812 ++    {
 1.22813 ++      AVR32_OPC_MVCR_D, 4, 0xefa00010, 0xfff111ff,
 1.22814 ++      &avr32_syntax_table[AVR32_SYNTAX_MVCR_D],
 1.22815 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22816 ++      {
 1.22817 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.22818 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 1.22819 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 1.22820 ++      },
 1.22821 ++    },
 1.22822 ++    {
 1.22823 ++      AVR32_OPC_MVCR_W, 4, 0xefa00000, 0xfff010ff,
 1.22824 ++      &avr32_syntax_table[AVR32_SYNTAX_MVCR_W],
 1.22825 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22826 ++      {
 1.22827 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.22828 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22829 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 1.22830 ++      },
 1.22831 ++    },
 1.22832 ++    {
 1.22833 ++      AVR32_OPC_MVRC_D, 4, 0xefa00030, 0xfff111ff,
 1.22834 ++      &avr32_syntax_table[AVR32_SYNTAX_MVRC_D],
 1.22835 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22836 ++      {
 1.22837 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.22838 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 1.22839 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 1.22840 ++      },
 1.22841 ++    },
 1.22842 ++    {
 1.22843 ++      AVR32_OPC_MVRC_W, 4, 0xefa00020, 0xfff010ff,
 1.22844 ++      &avr32_syntax_table[AVR32_SYNTAX_MVRC_W],
 1.22845 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22846 ++      {
 1.22847 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.22848 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 1.22849 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22850 ++      },
 1.22851 ++    },
 1.22852 ++    {
 1.22853 ++      AVR32_OPC_NEG, 2, 0x5c300000, 0xfff00000,
 1.22854 ++      &avr32_syntax_table[AVR32_SYNTAX_NEG],
 1.22855 ++      BFD_RELOC_UNUSED, 1, -1,
 1.22856 ++      {
 1.22857 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22858 ++      }
 1.22859 ++    },
 1.22860 ++    {
 1.22861 ++      AVR32_OPC_NOP, 2, 0xd7030000, 0xffff0000,
 1.22862 ++      &avr32_syntax_table[AVR32_SYNTAX_NOP],
 1.22863 ++      BFD_RELOC_UNUSED, 0, -1, { NULL },
 1.22864 ++    },
 1.22865 ++    {
 1.22866 ++      AVR32_OPC_OR1, 2, 0x00400000, 0xe1f00000,
 1.22867 ++      &avr32_syntax_table[AVR32_SYNTAX_OR1],
 1.22868 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22869 ++      {
 1.22870 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22871 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22872 ++      },
 1.22873 ++    },
 1.22874 ++    {
 1.22875 ++      AVR32_OPC_OR2, 4, 0xe1e01000, 0xe1f0fe00,
 1.22876 ++      &avr32_syntax_table[AVR32_SYNTAX_OR2],
 1.22877 ++      BFD_RELOC_UNUSED, 4, -1,
 1.22878 ++      {
 1.22879 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22880 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22881 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22882 ++	&avr32_ifield_table[AVR32_IFIELD_K5E2],
 1.22883 ++      },
 1.22884 ++    },
 1.22885 ++    {
 1.22886 ++      AVR32_OPC_OR3, 4, 0xe1e01200, 0xe1f0fe00,
 1.22887 ++      &avr32_syntax_table[AVR32_SYNTAX_OR3],
 1.22888 ++      BFD_RELOC_UNUSED, 4, -1,
 1.22889 ++      {
 1.22890 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22891 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22892 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22893 ++	&avr32_ifield_table[AVR32_IFIELD_K5E2],
 1.22894 ++      },
 1.22895 ++    },
 1.22896 ++    {
 1.22897 ++      AVR32_OPC_ORH, 4, 0xea100000, 0xfff00000,
 1.22898 ++      &avr32_syntax_table[AVR32_SYNTAX_ORH],
 1.22899 ++      BFD_RELOC_AVR32_16U, 2, 1,
 1.22900 ++      {
 1.22901 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22902 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.22903 ++      },
 1.22904 ++    },
 1.22905 ++    {
 1.22906 ++      AVR32_OPC_ORL, 4, 0xe8100000, 0xfff00000,
 1.22907 ++      &avr32_syntax_table[AVR32_SYNTAX_ORL],
 1.22908 ++      BFD_RELOC_AVR32_16U, 2, 1,
 1.22909 ++      {
 1.22910 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22911 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.22912 ++      },
 1.22913 ++    },
 1.22914 ++    {
 1.22915 ++      AVR32_OPC_PABS_SB, 4, 0xe00023e0, 0xfff0fff0,
 1.22916 ++      &avr32_syntax_table[AVR32_SYNTAX_PABS_SB],
 1.22917 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22918 ++      {
 1.22919 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22920 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22921 ++      },
 1.22922 ++    },
 1.22923 ++    {
 1.22924 ++      AVR32_OPC_PABS_SH, 4, 0xe00023f0, 0xfff0fff0,
 1.22925 ++      &avr32_syntax_table[AVR32_SYNTAX_PABS_SH],
 1.22926 ++      BFD_RELOC_UNUSED, 2, -1,
 1.22927 ++      {
 1.22928 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22929 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22930 ++      },
 1.22931 ++    },
 1.22932 ++    {
 1.22933 ++      AVR32_OPC_PACKSH_SB, 4, 0xe00024d0, 0xe1f0fff0,
 1.22934 ++      &avr32_syntax_table[AVR32_SYNTAX_PACKSH_SB],
 1.22935 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22936 ++      {
 1.22937 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22938 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22939 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22940 ++      },
 1.22941 ++    },
 1.22942 ++    {
 1.22943 ++      AVR32_OPC_PACKSH_UB, 4, 0xe00024c0, 0xe1f0fff0,
 1.22944 ++      &avr32_syntax_table[AVR32_SYNTAX_PACKSH_UB],
 1.22945 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22946 ++      {
 1.22947 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22948 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22949 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22950 ++      },
 1.22951 ++    },
 1.22952 ++    {
 1.22953 ++      AVR32_OPC_PACKW_SH, 4, 0xe0002470, 0xe1f0fff0,
 1.22954 ++      &avr32_syntax_table[AVR32_SYNTAX_PACKW_SH],
 1.22955 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22956 ++      {
 1.22957 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22958 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22959 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22960 ++      },
 1.22961 ++    },
 1.22962 ++    {
 1.22963 ++      AVR32_OPC_PADD_B, 4, 0xe0002300, 0xe1f0fff0,
 1.22964 ++      &avr32_syntax_table[AVR32_SYNTAX_PADD_B],
 1.22965 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22966 ++      {
 1.22967 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22968 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22969 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22970 ++      },
 1.22971 ++    },
 1.22972 ++    {
 1.22973 ++      AVR32_OPC_PADD_H, 4, 0xe0002000, 0xe1f0fff0,
 1.22974 ++      &avr32_syntax_table[AVR32_SYNTAX_PADD_H],
 1.22975 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22976 ++      {
 1.22977 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22978 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22979 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22980 ++      },
 1.22981 ++    },
 1.22982 ++    {
 1.22983 ++      AVR32_OPC_PADDH_SH, 4, 0xe00020c0, 0xe1f0fff0,
 1.22984 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDH_SH],
 1.22985 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22986 ++      {
 1.22987 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22988 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22989 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.22990 ++      },
 1.22991 ++    },
 1.22992 ++    {
 1.22993 ++      AVR32_OPC_PADDH_UB, 4, 0xe0002360, 0xe1f0fff0,
 1.22994 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDH_UB],
 1.22995 ++      BFD_RELOC_UNUSED, 3, -1,
 1.22996 ++      {
 1.22997 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.22998 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.22999 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23000 ++      },
 1.23001 ++    },
 1.23002 ++    {
 1.23003 ++      AVR32_OPC_PADDS_SB, 4, 0xe0002320, 0xe1f0fff0,
 1.23004 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDS_SB],
 1.23005 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23006 ++      {
 1.23007 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23008 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23009 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23010 ++      },
 1.23011 ++    },
 1.23012 ++    {
 1.23013 ++      AVR32_OPC_PADDS_SH, 4, 0xe0002040, 0xe1f0fff0,
 1.23014 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDS_SH],
 1.23015 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23016 ++      {
 1.23017 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23018 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23019 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23020 ++      },
 1.23021 ++    },
 1.23022 ++    {
 1.23023 ++      AVR32_OPC_PADDS_UB, 4, 0xe0002340, 0xe1f0fff0,
 1.23024 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDS_UB],
 1.23025 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23026 ++      {
 1.23027 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23028 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23029 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23030 ++      },
 1.23031 ++    },
 1.23032 ++    {
 1.23033 ++      AVR32_OPC_PADDS_UH, 4, 0xe0002080, 0xe1f0fff0,
 1.23034 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDS_UH],
 1.23035 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23036 ++      {
 1.23037 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23038 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23039 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23040 ++      },
 1.23041 ++    },
 1.23042 ++    {
 1.23043 ++      AVR32_OPC_PADDSUB_H, 4, 0xe0002100, 0xe1f0ffc0,
 1.23044 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDSUB_H],
 1.23045 ++      BFD_RELOC_UNUSED, 5, -1,
 1.23046 ++      {
 1.23047 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23048 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23049 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 1.23050 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23051 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.23052 ++      },
 1.23053 ++    },
 1.23054 ++    {
 1.23055 ++      AVR32_OPC_PADDSUBH_SH, 4, 0xe0002280, 0xe1f0ffc0,
 1.23056 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDSUBH_SH],
 1.23057 ++      BFD_RELOC_UNUSED, 5, -1,
 1.23058 ++      {
 1.23059 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23060 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23061 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 1.23062 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23063 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.23064 ++      },
 1.23065 ++    },
 1.23066 ++    {
 1.23067 ++      AVR32_OPC_PADDSUBS_SH, 4, 0xe0002180, 0xe1f0ffc0,
 1.23068 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDSUBS_SH],
 1.23069 ++      BFD_RELOC_UNUSED, 5, -1,
 1.23070 ++      {
 1.23071 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23072 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23073 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 1.23074 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23075 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.23076 ++      },
 1.23077 ++    },
 1.23078 ++    {
 1.23079 ++      AVR32_OPC_PADDSUBS_UH, 4, 0xe0002200, 0xe1f0ffc0,
 1.23080 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDSUBS_UH],
 1.23081 ++      BFD_RELOC_UNUSED, 5, -1,
 1.23082 ++      {
 1.23083 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23084 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23085 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 1.23086 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23087 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.23088 ++      },
 1.23089 ++    },
 1.23090 ++    {
 1.23091 ++      AVR32_OPC_PADDX_H, 4, 0xe0002020, 0xe1f0fff0,
 1.23092 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDX_H],
 1.23093 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23094 ++      {
 1.23095 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23096 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23097 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23098 ++      },
 1.23099 ++    },
 1.23100 ++    {
 1.23101 ++      AVR32_OPC_PADDXH_SH, 4, 0xe00020e0, 0xe1f0fff0,
 1.23102 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDXH_SH],
 1.23103 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23104 ++      {
 1.23105 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23106 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23107 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23108 ++      },
 1.23109 ++    },
 1.23110 ++    {
 1.23111 ++      AVR32_OPC_PADDXS_SH, 4, 0xe0002060, 0xe1f0fff0,
 1.23112 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDXS_SH],
 1.23113 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23114 ++      {
 1.23115 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23116 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23117 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23118 ++      },
 1.23119 ++    },
 1.23120 ++    {
 1.23121 ++      AVR32_OPC_PADDXS_UH, 4, 0xe00020a0, 0xe1f0fff0,
 1.23122 ++      &avr32_syntax_table[AVR32_SYNTAX_PADDXS_UH],
 1.23123 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23124 ++      {
 1.23125 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23126 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23127 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23128 ++      },
 1.23129 ++    },
 1.23130 ++    {
 1.23131 ++      AVR32_OPC_PASR_B, 4, 0xe0002410, 0xe1f8fff0,
 1.23132 ++      &avr32_syntax_table[AVR32_SYNTAX_PASR_B],
 1.23133 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23134 ++      {
 1.23135 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23136 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23137 ++	&avr32_ifield_table[AVR32_IFIELD_COND3],
 1.23138 ++      },
 1.23139 ++    },
 1.23140 ++    {
 1.23141 ++      AVR32_OPC_PASR_H, 4, 0xe0002440, 0xe1f0fff0,
 1.23142 ++      &avr32_syntax_table[AVR32_SYNTAX_PASR_H],
 1.23143 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23144 ++      {
 1.23145 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23146 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23147 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23148 ++      },
 1.23149 ++    },
 1.23150 ++    {
 1.23151 ++      AVR32_OPC_PAVG_SH, 4, 0xe00023d0, 0xe1f0fff0,
 1.23152 ++      &avr32_syntax_table[AVR32_SYNTAX_PAVG_SH],
 1.23153 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23154 ++      {
 1.23155 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23156 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23157 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23158 ++      },
 1.23159 ++    },
 1.23160 ++    {
 1.23161 ++      AVR32_OPC_PAVG_UB, 4, 0xe00023c0, 0xe1f0fff0,
 1.23162 ++      &avr32_syntax_table[AVR32_SYNTAX_PAVG_UB],
 1.23163 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23164 ++      {
 1.23165 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23166 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23167 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23168 ++      },
 1.23169 ++    },
 1.23170 ++    {
 1.23171 ++      AVR32_OPC_PLSL_B, 4, 0xe0002420, 0xe1f8fff0,
 1.23172 ++      &avr32_syntax_table[AVR32_SYNTAX_PLSL_B],
 1.23173 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23174 ++      {
 1.23175 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23176 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23177 ++	&avr32_ifield_table[AVR32_IFIELD_COND3],
 1.23178 ++      },
 1.23179 ++    },
 1.23180 ++    {
 1.23181 ++      AVR32_OPC_PLSL_H, 4, 0xe0002450, 0xe1f0fff0,
 1.23182 ++      &avr32_syntax_table[AVR32_SYNTAX_PLSL_H],
 1.23183 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23184 ++      {
 1.23185 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23186 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23187 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23188 ++      },
 1.23189 ++    },
 1.23190 ++    {
 1.23191 ++      AVR32_OPC_PLSR_B, 4, 0xe0002430, 0xe1f8fff0,
 1.23192 ++      &avr32_syntax_table[AVR32_SYNTAX_PLSR_B],
 1.23193 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23194 ++      {
 1.23195 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23196 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23197 ++	&avr32_ifield_table[AVR32_IFIELD_COND3],
 1.23198 ++      },
 1.23199 ++    },
 1.23200 ++    {
 1.23201 ++      AVR32_OPC_PLSR_H, 4, 0xe0002460, 0xe1f0fff0,
 1.23202 ++      &avr32_syntax_table[AVR32_SYNTAX_PLSR_H],
 1.23203 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23204 ++      {
 1.23205 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23206 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23207 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23208 ++      },
 1.23209 ++    },
 1.23210 ++    {
 1.23211 ++      AVR32_OPC_PMAX_SH, 4, 0xe0002390, 0xe1f0fff0,
 1.23212 ++      &avr32_syntax_table[AVR32_SYNTAX_PMAX_SH],
 1.23213 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23214 ++      {
 1.23215 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23216 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23217 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23218 ++      },
 1.23219 ++    },
 1.23220 ++    {
 1.23221 ++      AVR32_OPC_PMAX_UB, 4, 0xe0002380, 0xe1f0fff0,
 1.23222 ++      &avr32_syntax_table[AVR32_SYNTAX_PMAX_UB],
 1.23223 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23224 ++      {
 1.23225 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23226 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23227 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23228 ++      },
 1.23229 ++    },
 1.23230 ++    {
 1.23231 ++      AVR32_OPC_PMIN_SH, 4, 0xe00023b0, 0xe1f0fff0,
 1.23232 ++      &avr32_syntax_table[AVR32_SYNTAX_PMIN_SH],
 1.23233 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23234 ++      {
 1.23235 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23236 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23237 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23238 ++      },
 1.23239 ++    },
 1.23240 ++    {
 1.23241 ++      AVR32_OPC_PMIN_UB, 4, 0xe00023a0, 0xe1f0fff0,
 1.23242 ++      &avr32_syntax_table[AVR32_SYNTAX_PMIN_UB],
 1.23243 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23244 ++      {
 1.23245 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23246 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23247 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23248 ++      },
 1.23249 ++    },
 1.23250 ++    {
 1.23251 ++      AVR32_OPC_POPJC, 2, 0xd7130000, 0xffff0000,
 1.23252 ++      &avr32_syntax_table[AVR32_SYNTAX_POPJC],
 1.23253 ++      BFD_RELOC_UNUSED, 0, -1, { NULL },
 1.23254 ++    },
 1.23255 ++    {
 1.23256 ++      AVR32_OPC_POPM, 2, 0xd0020000, 0xf0070000,
 1.23257 ++      &avr32_syntax_table[AVR32_SYNTAX_POPM],
 1.23258 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23259 ++      {
 1.23260 ++	&avr32_ifield_table[AVR32_IFIELD_POPM],
 1.23261 ++      },
 1.23262 ++    },
 1.23263 ++    {
 1.23264 ++      AVR32_OPC_POPM_E, 4, 0xe3cd0000, 0xffff0000,
 1.23265 ++      &avr32_syntax_table[AVR32_SYNTAX_POPM_E],
 1.23266 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23267 ++      {
 1.23268 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.23269 ++      },
 1.23270 ++    },
 1.23271 ++    {
 1.23272 ++      AVR32_OPC_PREF, 4, 0xf2100000, 0xfff00000,
 1.23273 ++      &avr32_syntax_table[AVR32_SYNTAX_PREF],
 1.23274 ++      BFD_RELOC_AVR32_16S, 2, -1,
 1.23275 ++      {
 1.23276 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23277 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.23278 ++      },
 1.23279 ++    },
 1.23280 ++    {
 1.23281 ++      AVR32_OPC_PSAD, 4, 0xe0002400, 0xe1f0fff0,
 1.23282 ++      &avr32_syntax_table[AVR32_SYNTAX_PSAD],
 1.23283 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23284 ++      {
 1.23285 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23286 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23287 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23288 ++      },
 1.23289 ++    },
 1.23290 ++    {
 1.23291 ++      AVR32_OPC_PSUB_B, 4, 0xe0002310, 0xe1f0fff0,
 1.23292 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUB_B],
 1.23293 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23294 ++      {
 1.23295 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23296 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23297 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23298 ++      },
 1.23299 ++    },
 1.23300 ++    {
 1.23301 ++      AVR32_OPC_PSUB_H, 4, 0xe0002010, 0xe1f0fff0,
 1.23302 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUB_H],
 1.23303 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23304 ++      {
 1.23305 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23306 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23307 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23308 ++      },
 1.23309 ++    },
 1.23310 ++    {
 1.23311 ++      AVR32_OPC_PSUBADD_H, 4, 0xe0002140, 0xe1f0ffc0,
 1.23312 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBADD_H],
 1.23313 ++      BFD_RELOC_UNUSED, 5, -1,
 1.23314 ++      {
 1.23315 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23316 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23317 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 1.23318 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23319 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.23320 ++      },
 1.23321 ++    },
 1.23322 ++    {
 1.23323 ++      AVR32_OPC_PSUBADDH_SH, 4, 0xe00022c0, 0xe1f0ffc0,
 1.23324 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBADDH_SH],
 1.23325 ++      BFD_RELOC_UNUSED, 5, -1,
 1.23326 ++      {
 1.23327 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23328 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23329 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 1.23330 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23331 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.23332 ++      },
 1.23333 ++    },
 1.23334 ++    {
 1.23335 ++      AVR32_OPC_PSUBADDS_SH, 4, 0xe00021c0, 0xe1f0ffc0,
 1.23336 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBADDS_SH],
 1.23337 ++      BFD_RELOC_UNUSED, 5, -1,
 1.23338 ++      {
 1.23339 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23340 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23341 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 1.23342 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23343 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.23344 ++      },
 1.23345 ++    },
 1.23346 ++    {
 1.23347 ++      AVR32_OPC_PSUBADDS_UH, 4, 0xe0002240, 0xe1f0ffc0,
 1.23348 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBADDS_UH],
 1.23349 ++      BFD_RELOC_UNUSED, 5, -1,
 1.23350 ++      {
 1.23351 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23352 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23353 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 1.23354 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23355 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.23356 ++      },
 1.23357 ++    },
 1.23358 ++    {
 1.23359 ++      AVR32_OPC_PSUBH_SH, 4, 0xe00020d0, 0xe1f0fff0,
 1.23360 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBH_SH],
 1.23361 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23362 ++      {
 1.23363 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23364 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23365 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23366 ++      },
 1.23367 ++    },
 1.23368 ++    {
 1.23369 ++      AVR32_OPC_PSUBH_UB, 4, 0xe0002370, 0xe1f0fff0,
 1.23370 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBH_UB],
 1.23371 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23372 ++      {
 1.23373 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23374 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23375 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23376 ++      },
 1.23377 ++    },
 1.23378 ++    {
 1.23379 ++      AVR32_OPC_PSUBS_SB, 4, 0xe0002330, 0xe1f0fff0,
 1.23380 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBS_SB],
 1.23381 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23382 ++      {
 1.23383 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23384 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23385 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23386 ++      },
 1.23387 ++    },
 1.23388 ++    {
 1.23389 ++      AVR32_OPC_PSUBS_SH, 4, 0xe0002050, 0xe1f0fff0,
 1.23390 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBS_SH],
 1.23391 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23392 ++      {
 1.23393 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23394 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23395 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23396 ++      },
 1.23397 ++    },
 1.23398 ++    {
 1.23399 ++      AVR32_OPC_PSUBS_UB, 4, 0xe0002350, 0xe1f0fff0,
 1.23400 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBS_UB],
 1.23401 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23402 ++      {
 1.23403 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23404 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23405 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23406 ++      },
 1.23407 ++    },
 1.23408 ++    {
 1.23409 ++      AVR32_OPC_PSUBS_UH, 4, 0xe0002090, 0xe1f0fff0,
 1.23410 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBS_UH],
 1.23411 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23412 ++      {
 1.23413 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23414 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23415 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23416 ++      },
 1.23417 ++    },
 1.23418 ++    {
 1.23419 ++      AVR32_OPC_PSUBX_H, 4, 0xe0002030, 0xe1f0fff0,
 1.23420 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBX_H],
 1.23421 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23422 ++      {
 1.23423 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23424 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23425 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23426 ++      },
 1.23427 ++    },
 1.23428 ++    {
 1.23429 ++      AVR32_OPC_PSUBXH_SH, 4, 0xe00020f0, 0xe1f0fff0,
 1.23430 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBXH_SH],
 1.23431 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23432 ++      {
 1.23433 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23434 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23435 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23436 ++      },
 1.23437 ++    },
 1.23438 ++    {
 1.23439 ++      AVR32_OPC_PSUBXS_SH, 4, 0xe0002070, 0xe1f0fff0,
 1.23440 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBXS_SH],
 1.23441 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23442 ++      {
 1.23443 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23444 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23445 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23446 ++      },
 1.23447 ++    },
 1.23448 ++    {
 1.23449 ++      AVR32_OPC_PSUBXS_UH, 4, 0xe00020b0, 0xe1f0fff0,
 1.23450 ++      &avr32_syntax_table[AVR32_SYNTAX_PSUBXS_UH],
 1.23451 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23452 ++      {
 1.23453 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23454 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23455 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23456 ++      },
 1.23457 ++    },
 1.23458 ++    {
 1.23459 ++      AVR32_OPC_PUNPCKSB_H, 4, 0xe00024a0, 0xe1ffffe0,
 1.23460 ++      &avr32_syntax_table[AVR32_SYNTAX_PUNPCKSB_H],
 1.23461 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23462 ++      {
 1.23463 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23464 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23465 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.23466 ++      },
 1.23467 ++    },
 1.23468 ++    {
 1.23469 ++      AVR32_OPC_PUNPCKUB_H, 4, 0xe0002480, 0xe1ffffe0,
 1.23470 ++      &avr32_syntax_table[AVR32_SYNTAX_PUNPCKUB_H],
 1.23471 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23472 ++      {
 1.23473 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23474 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23475 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.23476 ++      },
 1.23477 ++    },
 1.23478 ++    {
 1.23479 ++      AVR32_OPC_PUSHJC, 2, 0xd7230000, 0xffff0000,
 1.23480 ++      &avr32_syntax_table[AVR32_SYNTAX_PUSHJC],
 1.23481 ++      BFD_RELOC_UNUSED, 0, -1, { NULL },
 1.23482 ++    },
 1.23483 ++    {
 1.23484 ++      AVR32_OPC_PUSHM, 2, 0xd0010000, 0xf00f0000,
 1.23485 ++      &avr32_syntax_table[AVR32_SYNTAX_PUSHM],
 1.23486 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23487 ++      {
 1.23488 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 1.23489 ++      },
 1.23490 ++    },
 1.23491 ++    {
 1.23492 ++      AVR32_OPC_PUSHM_E, 4, 0xebcd0000, 0xffff0000,
 1.23493 ++      &avr32_syntax_table[AVR32_SYNTAX_PUSHM_E],
 1.23494 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23495 ++      {
 1.23496 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.23497 ++      },
 1.23498 ++    },
 1.23499 ++    {
 1.23500 ++      AVR32_OPC_RCALL1, 2, 0xc00c0000, 0xf00c0000,
 1.23501 ++      &avr32_syntax_table[AVR32_SYNTAX_RCALL1],
 1.23502 ++      BFD_RELOC_AVR32_11H_PCREL, 1, 0,
 1.23503 ++      {
 1.23504 ++	&avr32_ifield_table[AVR32_IFIELD_K10],
 1.23505 ++      },
 1.23506 ++    },
 1.23507 ++    {
 1.23508 ++      AVR32_OPC_RCALL2, 4, 0xe0a00000, 0xe1ef0000,
 1.23509 ++      &avr32_syntax_table[AVR32_SYNTAX_RCALL2],
 1.23510 ++      BFD_RELOC_AVR32_22H_PCREL, 1, 0,
 1.23511 ++      {
 1.23512 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.23513 ++      },
 1.23514 ++    },
 1.23515 ++    {
 1.23516 ++      AVR32_OPC_RETEQ, 2, 0x5e000000, 0xfff00000,
 1.23517 ++      &avr32_syntax_table[AVR32_SYNTAX_RETEQ],
 1.23518 ++      BFD_RELOC_NONE, 1, -1,
 1.23519 ++      {
 1.23520 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23521 ++      },
 1.23522 ++    },
 1.23523 ++    {
 1.23524 ++      AVR32_OPC_RETNE, 2, 0x5e100000, 0xfff00000,
 1.23525 ++      &avr32_syntax_table[AVR32_SYNTAX_RETNE],
 1.23526 ++      BFD_RELOC_NONE, 1, -1,
 1.23527 ++      {
 1.23528 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23529 ++      },
 1.23530 ++    },
 1.23531 ++    {
 1.23532 ++      AVR32_OPC_RETCC, 2, 0x5e200000, 0xfff00000,
 1.23533 ++      &avr32_syntax_table[AVR32_SYNTAX_RETHS],
 1.23534 ++      BFD_RELOC_NONE, 1, -1,
 1.23535 ++      {
 1.23536 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23537 ++      },
 1.23538 ++    },
 1.23539 ++    {
 1.23540 ++      AVR32_OPC_RETCS, 2, 0x5e300000, 0xfff00000,
 1.23541 ++      &avr32_syntax_table[AVR32_SYNTAX_RETLO],
 1.23542 ++      BFD_RELOC_NONE, 1, -1,
 1.23543 ++      {
 1.23544 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23545 ++      },
 1.23546 ++    },
 1.23547 ++    {
 1.23548 ++      AVR32_OPC_RETGE, 2, 0x5e400000, 0xfff00000,
 1.23549 ++      &avr32_syntax_table[AVR32_SYNTAX_RETGE],
 1.23550 ++      BFD_RELOC_NONE, 1, -1,
 1.23551 ++      {
 1.23552 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23553 ++      },
 1.23554 ++    },
 1.23555 ++    {
 1.23556 ++      AVR32_OPC_RETLT, 2, 0x5e500000, 0xfff00000,
 1.23557 ++      &avr32_syntax_table[AVR32_SYNTAX_RETLT],
 1.23558 ++      BFD_RELOC_NONE, 1, -1,
 1.23559 ++      {
 1.23560 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23561 ++      },
 1.23562 ++    },
 1.23563 ++    {
 1.23564 ++      AVR32_OPC_RETMI, 2, 0x5e600000, 0xfff00000,
 1.23565 ++      &avr32_syntax_table[AVR32_SYNTAX_RETMI],
 1.23566 ++      BFD_RELOC_NONE, 1, -1,
 1.23567 ++      {
 1.23568 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23569 ++      },
 1.23570 ++    },
 1.23571 ++    {
 1.23572 ++      AVR32_OPC_RETPL, 2, 0x5e700000, 0xfff00000,
 1.23573 ++      &avr32_syntax_table[AVR32_SYNTAX_RETPL],
 1.23574 ++      BFD_RELOC_NONE, 1, -1,
 1.23575 ++      {
 1.23576 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23577 ++      },
 1.23578 ++    },
 1.23579 ++    {
 1.23580 ++      AVR32_OPC_RETLS, 2, 0x5e800000, 0xfff00000,
 1.23581 ++      &avr32_syntax_table[AVR32_SYNTAX_RETLS],
 1.23582 ++      BFD_RELOC_NONE, 1, -1,
 1.23583 ++      {
 1.23584 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23585 ++      },
 1.23586 ++    },
 1.23587 ++    {
 1.23588 ++      AVR32_OPC_RETGT, 2, 0x5e900000, 0xfff00000,
 1.23589 ++      &avr32_syntax_table[AVR32_SYNTAX_RETGT],
 1.23590 ++      BFD_RELOC_NONE, 1, -1,
 1.23591 ++      {
 1.23592 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23593 ++      },
 1.23594 ++    },
 1.23595 ++    {
 1.23596 ++      AVR32_OPC_RETLE, 2, 0x5ea00000, 0xfff00000,
 1.23597 ++      &avr32_syntax_table[AVR32_SYNTAX_RETLE],
 1.23598 ++      BFD_RELOC_NONE, 1, -1,
 1.23599 ++      {
 1.23600 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23601 ++      },
 1.23602 ++    },
 1.23603 ++    {
 1.23604 ++      AVR32_OPC_RETHI, 2, 0x5eb00000, 0xfff00000,
 1.23605 ++      &avr32_syntax_table[AVR32_SYNTAX_RETHI],
 1.23606 ++      BFD_RELOC_NONE, 1, -1,
 1.23607 ++      {
 1.23608 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23609 ++      },
 1.23610 ++    },
 1.23611 ++    {
 1.23612 ++      AVR32_OPC_RETVS, 2, 0x5ec00000, 0xfff00000,
 1.23613 ++      &avr32_syntax_table[AVR32_SYNTAX_RETVS],
 1.23614 ++      BFD_RELOC_NONE, 1, -1,
 1.23615 ++      {
 1.23616 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23617 ++      },
 1.23618 ++    },
 1.23619 ++    {
 1.23620 ++      AVR32_OPC_RETVC, 2, 0x5ed00000, 0xfff00000,
 1.23621 ++      &avr32_syntax_table[AVR32_SYNTAX_RETVC],
 1.23622 ++      BFD_RELOC_NONE, 1, -1,
 1.23623 ++      {
 1.23624 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23625 ++      },
 1.23626 ++    },
 1.23627 ++    {
 1.23628 ++      AVR32_OPC_RETQS, 2, 0x5ee00000, 0xfff00000,
 1.23629 ++      &avr32_syntax_table[AVR32_SYNTAX_RETQS],
 1.23630 ++      BFD_RELOC_NONE, 1, -1,
 1.23631 ++      {
 1.23632 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23633 ++      },
 1.23634 ++    },
 1.23635 ++    {
 1.23636 ++      AVR32_OPC_RETAL, 2, 0x5ef00000, 0xfff00000,
 1.23637 ++      &avr32_syntax_table[AVR32_SYNTAX_RETAL],
 1.23638 ++      BFD_RELOC_NONE, 1, -1,
 1.23639 ++      {
 1.23640 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23641 ++      },
 1.23642 ++    },
 1.23643 ++    {
 1.23644 ++      AVR32_OPC_RETD, 2, 0xd6230000, 0xffff0000,
 1.23645 ++      &avr32_syntax_table[AVR32_SYNTAX_RETD],
 1.23646 ++      BFD_RELOC_NONE, 0, -1, { NULL },
 1.23647 ++    },
 1.23648 ++    {
 1.23649 ++      AVR32_OPC_RETE, 2, 0xd6030000, 0xffff0000,
 1.23650 ++      &avr32_syntax_table[AVR32_SYNTAX_RETE],
 1.23651 ++      BFD_RELOC_NONE, 0, -1, { NULL },
 1.23652 ++    },
 1.23653 ++    {
 1.23654 ++      AVR32_OPC_RETJ, 2, 0xd6330000, 0xffff0000,
 1.23655 ++      &avr32_syntax_table[AVR32_SYNTAX_RETJ],
 1.23656 ++      BFD_RELOC_NONE, 0, -1, { NULL },
 1.23657 ++    },
 1.23658 ++    {
 1.23659 ++      AVR32_OPC_RETS, 2, 0xd6130000, 0xffff0000,
 1.23660 ++      &avr32_syntax_table[AVR32_SYNTAX_RETS],
 1.23661 ++      BFD_RELOC_NONE, 0, -1, { NULL },
 1.23662 ++    },
 1.23663 ++    {
 1.23664 ++      AVR32_OPC_RJMP, 2, 0xc0080000, 0xf00c0000,
 1.23665 ++      &avr32_syntax_table[AVR32_SYNTAX_RJMP],
 1.23666 ++      BFD_RELOC_AVR32_11H_PCREL, 1, 0,
 1.23667 ++      {
 1.23668 ++	&avr32_ifield_table[AVR32_IFIELD_K10],
 1.23669 ++      },
 1.23670 ++    },
 1.23671 ++    {
 1.23672 ++      AVR32_OPC_ROL, 2, 0x5cf00000, 0xfff00000,
 1.23673 ++      &avr32_syntax_table[AVR32_SYNTAX_ROL],
 1.23674 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23675 ++      {
 1.23676 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23677 ++      }
 1.23678 ++    },
 1.23679 ++    {
 1.23680 ++      AVR32_OPC_ROR, 2, 0x5d000000, 0xfff00000,
 1.23681 ++      &avr32_syntax_table[AVR32_SYNTAX_ROR],
 1.23682 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23683 ++      {
 1.23684 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23685 ++      }
 1.23686 ++    },
 1.23687 ++    {
 1.23688 ++      AVR32_OPC_RSUB1, 2, 0x00200000, 0xe1f00000,
 1.23689 ++      &avr32_syntax_table[AVR32_SYNTAX_RSUB1],
 1.23690 ++      BFD_RELOC_UNUSED, 2, -1,
 1.23691 ++      {
 1.23692 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23693 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23694 ++      },
 1.23695 ++    },
 1.23696 ++    {
 1.23697 ++      AVR32_OPC_RSUB2, 4, 0xe0001100, 0xe1f0ff00,
 1.23698 ++      &avr32_syntax_table[AVR32_SYNTAX_RSUB2],
 1.23699 ++      BFD_RELOC_AVR32_8S_EXT, 3, 2,
 1.23700 ++      {
 1.23701 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23702 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23703 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.23704 ++      },
 1.23705 ++    },
 1.23706 ++    {
 1.23707 ++      AVR32_OPC_SATADD_H, 4, 0xe00002c0, 0xe1f0fff0,
 1.23708 ++      &avr32_syntax_table[AVR32_SYNTAX_SATADD_H],
 1.23709 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23710 ++      {
 1.23711 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23712 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23713 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23714 ++      },
 1.23715 ++    },
 1.23716 ++    {
 1.23717 ++      AVR32_OPC_SATADD_W, 4, 0xe00000c0, 0xe1f0fff0,
 1.23718 ++      &avr32_syntax_table[AVR32_SYNTAX_SATADD_W],
 1.23719 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23720 ++      {
 1.23721 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23722 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23723 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23724 ++      },
 1.23725 ++    },
 1.23726 ++    {
 1.23727 ++      AVR32_OPC_SATRNDS, 4, 0xf3b00000, 0xfff0fc00,
 1.23728 ++      &avr32_syntax_table[AVR32_SYNTAX_SATRNDS],
 1.23729 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23730 ++      {
 1.23731 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23732 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 1.23733 ++	&avr32_ifield_table[AVR32_IFIELD_S5],
 1.23734 ++      },
 1.23735 ++    },
 1.23736 ++    {
 1.23737 ++      AVR32_OPC_SATRNDU, 4, 0xf3b00400, 0xfff0fc00,
 1.23738 ++      &avr32_syntax_table[AVR32_SYNTAX_SATRNDU],
 1.23739 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23740 ++      {
 1.23741 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23742 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 1.23743 ++	&avr32_ifield_table[AVR32_IFIELD_S5],
 1.23744 ++      },
 1.23745 ++    },
 1.23746 ++    {
 1.23747 ++      AVR32_OPC_SATS, 4, 0xf1b00000, 0xfff0fc00,
 1.23748 ++      &avr32_syntax_table[AVR32_SYNTAX_SATS],
 1.23749 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23750 ++      {
 1.23751 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23752 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 1.23753 ++	&avr32_ifield_table[AVR32_IFIELD_S5],
 1.23754 ++      },
 1.23755 ++    },
 1.23756 ++    {
 1.23757 ++      AVR32_OPC_SATSUB_H, 4, 0xe00003c0, 0xe1f0fff0,
 1.23758 ++      &avr32_syntax_table[AVR32_SYNTAX_SATSUB_H],
 1.23759 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23760 ++      {
 1.23761 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23762 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23763 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23764 ++      },
 1.23765 ++    },
 1.23766 ++    {
 1.23767 ++      AVR32_OPC_SATSUB_W1, 4, 0xe00001c0, 0xe1f0fff0,
 1.23768 ++      &avr32_syntax_table[AVR32_SYNTAX_SATSUB_W1],
 1.23769 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23770 ++      {
 1.23771 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23772 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23773 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23774 ++      },
 1.23775 ++    },
 1.23776 ++    {
 1.23777 ++      AVR32_OPC_SATSUB_W2, 4, 0xe0d00000, 0xe1f00000,
 1.23778 ++      &avr32_syntax_table[AVR32_SYNTAX_SATSUB_W2],
 1.23779 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23780 ++      {
 1.23781 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23782 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23783 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.23784 ++      },
 1.23785 ++    },
 1.23786 ++    {
 1.23787 ++      AVR32_OPC_SATU, 4, 0xf1b00400, 0xfff0fc00,
 1.23788 ++      &avr32_syntax_table[AVR32_SYNTAX_SATU],
 1.23789 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23790 ++      {
 1.23791 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23792 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 1.23793 ++	&avr32_ifield_table[AVR32_IFIELD_S5],
 1.23794 ++      },
 1.23795 ++    },
 1.23796 ++    {
 1.23797 ++      AVR32_OPC_SBC, 4, 0xe0000140, 0xe1f0fff0,
 1.23798 ++      &avr32_syntax_table[AVR32_SYNTAX_SBC],
 1.23799 ++      BFD_RELOC_UNUSED, 3, -1,
 1.23800 ++      {
 1.23801 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23802 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23803 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23804 ++      },
 1.23805 ++    },
 1.23806 ++    {
 1.23807 ++      AVR32_OPC_SBR, 2, 0xa1a00000, 0xe1e00000,
 1.23808 ++      &avr32_syntax_table[AVR32_SYNTAX_SBR],
 1.23809 ++      BFD_RELOC_UNUSED, 2, -1,
 1.23810 ++      {
 1.23811 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23812 ++	&avr32_ifield_table[AVR32_IFIELD_BIT5C],
 1.23813 ++      },
 1.23814 ++    },
 1.23815 ++    {
 1.23816 ++      AVR32_OPC_SCALL, 2, 0xd7330000, 0xffff0000,
 1.23817 ++      &avr32_syntax_table[AVR32_SYNTAX_SCALL],
 1.23818 ++      BFD_RELOC_UNUSED, 0, -1, { NULL },
 1.23819 ++    },
 1.23820 ++    {
 1.23821 ++      AVR32_OPC_SCR, 2, 0x5c100000, 0xfff00000,
 1.23822 ++      &avr32_syntax_table[AVR32_SYNTAX_SCR],
 1.23823 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23824 ++      {
 1.23825 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23826 ++      },
 1.23827 ++    },
 1.23828 ++    {
 1.23829 ++      AVR32_OPC_SLEEP, 4, 0xe9b00000, 0xffffff00,
 1.23830 ++      &avr32_syntax_table[AVR32_SYNTAX_SLEEP],
 1.23831 ++      BFD_RELOC_AVR32_8S_EXT, 1, 0,
 1.23832 ++      {
 1.23833 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.23834 ++      },
 1.23835 ++    },
 1.23836 ++    {
 1.23837 ++      AVR32_OPC_SREQ, 2, 0x5f000000, 0xfff00000,
 1.23838 ++      &avr32_syntax_table[AVR32_SYNTAX_SREQ],
 1.23839 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23840 ++      {
 1.23841 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23842 ++      },
 1.23843 ++    },
 1.23844 ++    {
 1.23845 ++      AVR32_OPC_SRNE, 2, 0x5f100000, 0xfff00000,
 1.23846 ++      &avr32_syntax_table[AVR32_SYNTAX_SRNE],
 1.23847 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23848 ++      {
 1.23849 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23850 ++      },
 1.23851 ++    },
 1.23852 ++    {
 1.23853 ++      AVR32_OPC_SRCC, 2, 0x5f200000, 0xfff00000,
 1.23854 ++      &avr32_syntax_table[AVR32_SYNTAX_SRHS],
 1.23855 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23856 ++      {
 1.23857 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23858 ++      },
 1.23859 ++    },
 1.23860 ++    {
 1.23861 ++      AVR32_OPC_SRCS, 2, 0x5f300000, 0xfff00000,
 1.23862 ++      &avr32_syntax_table[AVR32_SYNTAX_SRLO],
 1.23863 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23864 ++      {
 1.23865 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23866 ++      },
 1.23867 ++    },
 1.23868 ++    {
 1.23869 ++      AVR32_OPC_SRGE, 2, 0x5f400000, 0xfff00000,
 1.23870 ++      &avr32_syntax_table[AVR32_SYNTAX_SRGE],
 1.23871 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23872 ++      {
 1.23873 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23874 ++      },
 1.23875 ++    },
 1.23876 ++    {
 1.23877 ++      AVR32_OPC_SRLT, 2, 0x5f500000, 0xfff00000,
 1.23878 ++      &avr32_syntax_table[AVR32_SYNTAX_SRLT],
 1.23879 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23880 ++      {
 1.23881 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23882 ++      },
 1.23883 ++    },
 1.23884 ++    {
 1.23885 ++      AVR32_OPC_SRMI, 2, 0x5f600000, 0xfff00000,
 1.23886 ++      &avr32_syntax_table[AVR32_SYNTAX_SRMI],
 1.23887 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23888 ++      {
 1.23889 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23890 ++      },
 1.23891 ++    },
 1.23892 ++    {
 1.23893 ++      AVR32_OPC_SRPL, 2, 0x5f700000, 0xfff00000,
 1.23894 ++      &avr32_syntax_table[AVR32_SYNTAX_SRPL],
 1.23895 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23896 ++      {
 1.23897 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23898 ++      },
 1.23899 ++    },
 1.23900 ++    {
 1.23901 ++      AVR32_OPC_SRLS, 2, 0x5f800000, 0xfff00000,
 1.23902 ++      &avr32_syntax_table[AVR32_SYNTAX_SRLS],
 1.23903 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23904 ++      {
 1.23905 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23906 ++      },
 1.23907 ++    },
 1.23908 ++    {
 1.23909 ++      AVR32_OPC_SRGT, 2, 0x5f900000, 0xfff00000,
 1.23910 ++      &avr32_syntax_table[AVR32_SYNTAX_SRGT],
 1.23911 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23912 ++      {
 1.23913 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23914 ++      },
 1.23915 ++    },
 1.23916 ++    {
 1.23917 ++      AVR32_OPC_SRLE, 2, 0x5fa00000, 0xfff00000,
 1.23918 ++      &avr32_syntax_table[AVR32_SYNTAX_SRLE],
 1.23919 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23920 ++      {
 1.23921 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23922 ++      },
 1.23923 ++    },
 1.23924 ++    {
 1.23925 ++      AVR32_OPC_SRHI, 2, 0x5fb00000, 0xfff00000,
 1.23926 ++      &avr32_syntax_table[AVR32_SYNTAX_SRHI],
 1.23927 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23928 ++      {
 1.23929 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23930 ++      },
 1.23931 ++    },
 1.23932 ++    {
 1.23933 ++      AVR32_OPC_SRVS, 2, 0x5fc00000, 0xfff00000,
 1.23934 ++      &avr32_syntax_table[AVR32_SYNTAX_SRVS],
 1.23935 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23936 ++      {
 1.23937 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23938 ++      },
 1.23939 ++    },
 1.23940 ++    {
 1.23941 ++      AVR32_OPC_SRVC, 2, 0x5fd00000, 0xfff00000,
 1.23942 ++      &avr32_syntax_table[AVR32_SYNTAX_SRVC],
 1.23943 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23944 ++      {
 1.23945 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23946 ++      },
 1.23947 ++    },
 1.23948 ++    {
 1.23949 ++      AVR32_OPC_SRQS, 2, 0x5fe00000, 0xfff00000,
 1.23950 ++      &avr32_syntax_table[AVR32_SYNTAX_SRQS],
 1.23951 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23952 ++      {
 1.23953 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23954 ++      },
 1.23955 ++    },
 1.23956 ++    {
 1.23957 ++      AVR32_OPC_SRAL, 2, 0x5ff00000, 0xfff00000,
 1.23958 ++      &avr32_syntax_table[AVR32_SYNTAX_SRAL],
 1.23959 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23960 ++      {
 1.23961 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23962 ++      },
 1.23963 ++    },
 1.23964 ++    {
 1.23965 ++      AVR32_OPC_SSRF, 2, 0xd2030000, 0xfe0f0000,
 1.23966 ++      &avr32_syntax_table[AVR32_SYNTAX_SSRF],
 1.23967 ++      BFD_RELOC_UNUSED, 1, -1,
 1.23968 ++      {
 1.23969 ++	&avr32_ifield_table[AVR32_IFIELD_K5C],
 1.23970 ++      },
 1.23971 ++    },
 1.23972 ++    {
 1.23973 ++      AVR32_OPC_ST_B1, 2, 0x00c00000, 0xe1f00000,
 1.23974 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_B1],
 1.23975 ++      BFD_RELOC_UNUSED, 2, -1,
 1.23976 ++      {
 1.23977 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23978 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23979 ++      },
 1.23980 ++    },
 1.23981 ++    {
 1.23982 ++      AVR32_OPC_ST_B2, 2, 0x00f00000, 0xe1f00000,
 1.23983 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_B2],
 1.23984 ++      BFD_RELOC_UNUSED, 2, -1,
 1.23985 ++      {
 1.23986 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23987 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23988 ++      },
 1.23989 ++    },
 1.23990 ++    {
 1.23991 ++      AVR32_OPC_ST_B5, 4, 0xe0000b00, 0xe1f0ffc0,
 1.23992 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_B5],
 1.23993 ++      BFD_RELOC_UNUSED, 4, -1,
 1.23994 ++      {
 1.23995 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.23996 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.23997 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 1.23998 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.23999 ++      },
 1.24000 ++    },
 1.24001 ++    {
 1.24002 ++      AVR32_OPC_ST_B3, 2, 0xa0800000, 0xe1800000,
 1.24003 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_B3],
 1.24004 ++      BFD_RELOC_AVR32_3U, 3, 1,
 1.24005 ++      {
 1.24006 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24007 ++	&avr32_ifield_table[AVR32_IFIELD_K3],
 1.24008 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24009 ++      },
 1.24010 ++    },
 1.24011 ++    {
 1.24012 ++      AVR32_OPC_ST_B4, 4, 0xe1600000, 0xe1f00000,
 1.24013 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_B4],
 1.24014 ++      BFD_RELOC_AVR32_16S, 3, 1,
 1.24015 ++      {
 1.24016 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24017 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.24018 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24019 ++      },
 1.24020 ++    },
 1.24021 ++    {
 1.24022 ++      AVR32_OPC_ST_D1, 2, 0xa1200000, 0xe1f10000,
 1.24023 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_D1],
 1.24024 ++      BFD_RELOC_UNUSED, 2, -1,
 1.24025 ++      {
 1.24026 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24027 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 1.24028 ++      },
 1.24029 ++    },
 1.24030 ++    {
 1.24031 ++      AVR32_OPC_ST_D2, 2, 0xa1210000, 0xe1f10000,
 1.24032 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_D2],
 1.24033 ++      BFD_RELOC_UNUSED, 2, -1,
 1.24034 ++      {
 1.24035 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24036 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 1.24037 ++      },
 1.24038 ++    },
 1.24039 ++    {
 1.24040 ++      AVR32_OPC_ST_D3, 2, 0xa1110000, 0xe1f10000,
 1.24041 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_D3],
 1.24042 ++      BFD_RELOC_UNUSED, 2, -1,
 1.24043 ++      {
 1.24044 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24045 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 1.24046 ++      },
 1.24047 ++    },
 1.24048 ++    {
 1.24049 ++      AVR32_OPC_ST_D5, 4, 0xe0000800, 0xe1f0ffc1,
 1.24050 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_D5],
 1.24051 ++      BFD_RELOC_UNUSED, 4, -1,
 1.24052 ++      {
 1.24053 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24054 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24055 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 1.24056 ++	&avr32_ifield_table[AVR32_IFIELD_RD_DW],
 1.24057 ++      },
 1.24058 ++    },
 1.24059 ++    {
 1.24060 ++      AVR32_OPC_ST_D4, 4, 0xe0e10000, 0xe1f10000,
 1.24061 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_D4],
 1.24062 ++      BFD_RELOC_AVR32_16S, 3, 1,
 1.24063 ++      {
 1.24064 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24065 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.24066 ++	&avr32_ifield_table[AVR32_IFIELD_RY_DW],
 1.24067 ++      },
 1.24068 ++    },
 1.24069 ++    {
 1.24070 ++      AVR32_OPC_ST_H1, 2, 0x00b00000, 0xe1f00000,
 1.24071 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_H1],
 1.24072 ++      BFD_RELOC_UNUSED, 2, -1,
 1.24073 ++      {
 1.24074 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24075 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24076 ++      },
 1.24077 ++    },
 1.24078 ++    {
 1.24079 ++      AVR32_OPC_ST_H2, 2, 0x00e00000, 0xe1f00000,
 1.24080 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_H2],
 1.24081 ++      BFD_RELOC_UNUSED, 2, -1,
 1.24082 ++      {
 1.24083 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24084 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24085 ++      },
 1.24086 ++    },
 1.24087 ++    {
 1.24088 ++      AVR32_OPC_ST_H5, 4, 0xe0000a00, 0xe1f0ffc0,
 1.24089 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_H5],
 1.24090 ++      BFD_RELOC_UNUSED, 4, -1,
 1.24091 ++      {
 1.24092 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24093 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24094 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 1.24095 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.24096 ++      },
 1.24097 ++    },
 1.24098 ++    {
 1.24099 ++      AVR32_OPC_ST_H3, 2, 0xa0000000, 0xe1800000,
 1.24100 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_H3],
 1.24101 ++      BFD_RELOC_AVR32_4UH, 3, 1,
 1.24102 ++      {
 1.24103 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24104 ++	&avr32_ifield_table[AVR32_IFIELD_K3],
 1.24105 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24106 ++      },
 1.24107 ++    },
 1.24108 ++    {
 1.24109 ++      AVR32_OPC_ST_H4, 4, 0xe1500000, 0xe1f00000,
 1.24110 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_H4],
 1.24111 ++      BFD_RELOC_AVR32_16S, 3, 1,
 1.24112 ++      {
 1.24113 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24114 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.24115 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24116 ++      },
 1.24117 ++    },
 1.24118 ++    {
 1.24119 ++      AVR32_OPC_ST_W1, 2, 0x00a00000, 0xe1f00000,
 1.24120 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_W1],
 1.24121 ++      BFD_RELOC_UNUSED, 2, -1,
 1.24122 ++      {
 1.24123 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24124 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24125 ++      },
 1.24126 ++    },
 1.24127 ++    {
 1.24128 ++      AVR32_OPC_ST_W2, 2, 0x00d00000, 0xe1f00000,
 1.24129 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_W2],
 1.24130 ++      BFD_RELOC_UNUSED, 2, -1,
 1.24131 ++      {
 1.24132 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24133 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24134 ++      },
 1.24135 ++    },
 1.24136 ++    {
 1.24137 ++      AVR32_OPC_ST_W5, 4, 0xe0000900, 0xe1f0ffc0,
 1.24138 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_W5],
 1.24139 ++      BFD_RELOC_UNUSED, 4, -1,
 1.24140 ++      {
 1.24141 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24142 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24143 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 1.24144 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.24145 ++      },
 1.24146 ++    },
 1.24147 ++    {
 1.24148 ++      AVR32_OPC_ST_W3, 2, 0x81000000, 0xe1000000,
 1.24149 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_W3],
 1.24150 ++      BFD_RELOC_AVR32_6UW, 3, 1,
 1.24151 ++      {
 1.24152 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24153 ++	&avr32_ifield_table[AVR32_IFIELD_K4],
 1.24154 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24155 ++      },
 1.24156 ++    },
 1.24157 ++    {
 1.24158 ++      AVR32_OPC_ST_W4, 4, 0xe1400000, 0xe1f00000,
 1.24159 ++      &avr32_syntax_table[AVR32_SYNTAX_ST_W4],
 1.24160 ++      BFD_RELOC_AVR32_16S, 3, 1,
 1.24161 ++      {
 1.24162 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24163 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.24164 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24165 ++      },
 1.24166 ++    },
 1.24167 ++    {
 1.24168 ++      AVR32_OPC_STC_D1, 4, 0xeba01000, 0xfff01100,
 1.24169 ++      &avr32_syntax_table[AVR32_SYNTAX_STC_D1],
 1.24170 ++      BFD_RELOC_AVR32_10UW, 4, 2,
 1.24171 ++      {
 1.24172 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.24173 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24174 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24175 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 1.24176 ++      },
 1.24177 ++    },
 1.24178 ++    {
 1.24179 ++      AVR32_OPC_STC_D2, 4, 0xefa00070, 0xfff011f0,
 1.24180 ++      &avr32_syntax_table[AVR32_SYNTAX_STC_D2],
 1.24181 ++      BFD_RELOC_UNUSED, 3, -1,
 1.24182 ++      {
 1.24183 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.24184 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24185 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 1.24186 ++      },
 1.24187 ++    },
 1.24188 ++    {
 1.24189 ++      AVR32_OPC_STC_D3, 4, 0xefa010c0, 0xfff011c0,
 1.24190 ++      &avr32_syntax_table[AVR32_SYNTAX_STC_D3],
 1.24191 ++      BFD_RELOC_UNUSED, 5, -1,
 1.24192 ++      {
 1.24193 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.24194 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24195 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.24196 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 1.24197 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 1.24198 ++      },
 1.24199 ++    },
 1.24200 ++    {
 1.24201 ++      AVR32_OPC_STC_W1, 4, 0xeba00000, 0xfff01000,
 1.24202 ++      &avr32_syntax_table[AVR32_SYNTAX_STC_W1],
 1.24203 ++      BFD_RELOC_AVR32_10UW, 4, 2,
 1.24204 ++      {
 1.24205 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.24206 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24207 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24208 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 1.24209 ++      },
 1.24210 ++    },
 1.24211 ++    {
 1.24212 ++      AVR32_OPC_STC_W2, 4, 0xefa00060, 0xfff010ff,
 1.24213 ++      &avr32_syntax_table[AVR32_SYNTAX_STC_W2],
 1.24214 ++      BFD_RELOC_UNUSED, 3, -1,
 1.24215 ++      {
 1.24216 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.24217 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24218 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 1.24219 ++      },
 1.24220 ++    },
 1.24221 ++    {
 1.24222 ++      AVR32_OPC_STC_W3, 4, 0xefa01080, 0xfff010c0,
 1.24223 ++      &avr32_syntax_table[AVR32_SYNTAX_STC_W3],
 1.24224 ++      BFD_RELOC_UNUSED, 5, -1,
 1.24225 ++      {
 1.24226 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.24227 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24228 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.24229 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 1.24230 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 1.24231 ++      },
 1.24232 ++    },
 1.24233 ++    {
 1.24234 ++      AVR32_OPC_STC0_D, 4, 0xf7a00000, 0xfff00100,
 1.24235 ++      &avr32_syntax_table[AVR32_SYNTAX_STC0_D],
 1.24236 ++      BFD_RELOC_AVR32_14UW, 3, 1,
 1.24237 ++      {
 1.24238 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24239 ++	&avr32_ifield_table[AVR32_IFIELD_K12CP],
 1.24240 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_DW],
 1.24241 ++      },
 1.24242 ++    },
 1.24243 ++    {
 1.24244 ++      AVR32_OPC_STC0_W, 4, 0xf5a00000, 0xfff00000,
 1.24245 ++      &avr32_syntax_table[AVR32_SYNTAX_STC0_W],
 1.24246 ++      BFD_RELOC_AVR32_14UW, 3, 1,
 1.24247 ++      {
 1.24248 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24249 ++	&avr32_ifield_table[AVR32_IFIELD_K12CP],
 1.24250 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 1.24251 ++      },
 1.24252 ++    },
 1.24253 ++    {
 1.24254 ++      AVR32_OPC_STCM_D, 4, 0xeda00500, 0xfff01f00,
 1.24255 ++      &avr32_syntax_table[AVR32_SYNTAX_STCM_D],
 1.24256 ++      BFD_RELOC_UNUSED, 3, -1,
 1.24257 ++      {
 1.24258 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.24259 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24260 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24261 ++      },
 1.24262 ++    },
 1.24263 ++    {
 1.24264 ++      AVR32_OPC_STCM_D_PU, 4, 0xeda01500, 0xfff01f00,
 1.24265 ++      &avr32_syntax_table[AVR32_SYNTAX_STCM_D_PU],
 1.24266 ++      BFD_RELOC_UNUSED, 3, -1,
 1.24267 ++      {
 1.24268 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.24269 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24270 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24271 ++      },
 1.24272 ++    },
 1.24273 ++    {
 1.24274 ++      AVR32_OPC_STCM_W, 4, 0xeda00200, 0xfff01e00,
 1.24275 ++      &avr32_syntax_table[AVR32_SYNTAX_STCM_W],
 1.24276 ++      BFD_RELOC_UNUSED, 4, -1,
 1.24277 ++      {
 1.24278 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.24279 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24280 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24281 ++	&avr32_ifield_table[AVR32_IFIELD_CM_HL],
 1.24282 ++      },
 1.24283 ++    },
 1.24284 ++    {
 1.24285 ++      AVR32_OPC_STCM_W_PU, 4, 0xeda01200, 0xfff01e00,
 1.24286 ++      &avr32_syntax_table[AVR32_SYNTAX_STCM_W_PU],
 1.24287 ++      BFD_RELOC_UNUSED, 4, -1,
 1.24288 ++      {
 1.24289 ++	&avr32_ifield_table[AVR32_IFIELD_CPNO],
 1.24290 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24291 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24292 ++	&avr32_ifield_table[AVR32_IFIELD_CM_HL],
 1.24293 ++      },
 1.24294 ++    },
 1.24295 ++    {
 1.24296 ++      AVR32_OPC_STCOND, 4, 0xe1700000, 0xe1f00000,
 1.24297 ++      &avr32_syntax_table[AVR32_SYNTAX_STCOND],
 1.24298 ++      BFD_RELOC_UNUSED, 3, -1,
 1.24299 ++      {
 1.24300 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24301 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.24302 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24303 ++      },
 1.24304 ++    },
 1.24305 ++    {
 1.24306 ++      AVR32_OPC_STDSP, 2, 0x50000000, 0xf8000000,
 1.24307 ++      &avr32_syntax_table[AVR32_SYNTAX_STDSP],
 1.24308 ++      BFD_RELOC_UNUSED, 2, -1,
 1.24309 ++      {
 1.24310 ++	&avr32_ifield_table[AVR32_IFIELD_K7C],
 1.24311 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24312 ++      },
 1.24313 ++    },
 1.24314 ++    {
 1.24315 ++      AVR32_OPC_STHH_W2, 4, 0xe1e08000, 0xe1f0c0c0,
 1.24316 ++      &avr32_syntax_table[AVR32_SYNTAX_STHH_W2],
 1.24317 ++      BFD_RELOC_UNUSED, 7, -1,
 1.24318 ++      {
 1.24319 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.24320 ++	&avr32_ifield_table[AVR32_IFIELD_CRD_RI],
 1.24321 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 1.24322 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24323 ++	&avr32_ifield_table[AVR32_IFIELD_X2],
 1.24324 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24325 ++	&avr32_ifield_table[AVR32_IFIELD_Y2],
 1.24326 ++      },
 1.24327 ++    },
 1.24328 ++    {
 1.24329 ++      AVR32_OPC_STHH_W1, 4, 0xe1e0c000, 0xe1f0c000,
 1.24330 ++      &avr32_syntax_table[AVR32_SYNTAX_STHH_W1],
 1.24331 ++      BFD_RELOC_AVR32_STHH_W, 6, 1,
 1.24332 ++      {
 1.24333 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.24334 ++	&avr32_ifield_table[AVR32_IFIELD_K8E2],
 1.24335 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24336 ++	&avr32_ifield_table[AVR32_IFIELD_X2],
 1.24337 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24338 ++	&avr32_ifield_table[AVR32_IFIELD_Y2],
 1.24339 ++      },
 1.24340 ++    },
 1.24341 ++    {
 1.24342 ++      AVR32_OPC_STM, 4, 0xe9c00000, 0xfff00000,
 1.24343 ++      &avr32_syntax_table[AVR32_SYNTAX_STM],
 1.24344 ++      BFD_RELOC_UNUSED, 2, -1,
 1.24345 ++      {
 1.24346 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24347 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.24348 ++      },
 1.24349 ++    },
 1.24350 ++    {
 1.24351 ++      AVR32_OPC_STM_PU, 4, 0xebc00000, 0xfff00000,
 1.24352 ++      &avr32_syntax_table[AVR32_SYNTAX_STM_PU],
 1.24353 ++      BFD_RELOC_UNUSED, 2, -1,
 1.24354 ++      {
 1.24355 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24356 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.24357 ++      },
 1.24358 ++    },
 1.24359 ++    {
 1.24360 ++      AVR32_OPC_STMTS, 4, 0xedc00000, 0xfff00000,
 1.24361 ++      &avr32_syntax_table[AVR32_SYNTAX_STMTS],
 1.24362 ++      BFD_RELOC_UNUSED, 2, -1,
 1.24363 ++      {
 1.24364 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24365 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.24366 ++      },
 1.24367 ++    },
 1.24368 ++    {
 1.24369 ++      AVR32_OPC_STMTS_PU, 4, 0xefc00000, 0xfff00000,
 1.24370 ++      &avr32_syntax_table[AVR32_SYNTAX_STMTS_PU],
 1.24371 ++      BFD_RELOC_UNUSED, 2, -1,
 1.24372 ++      {
 1.24373 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24374 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.24375 ++      },
 1.24376 ++    },
 1.24377 ++    {
 1.24378 ++      AVR32_OPC_STSWP_H, 4, 0xe1d09000, 0xe1f0f000,
 1.24379 ++      &avr32_syntax_table[AVR32_SYNTAX_STSWP_H],
 1.24380 ++      BFD_RELOC_UNUSED, 3, -1,
 1.24381 ++      {
 1.24382 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24383 ++	&avr32_ifield_table[AVR32_IFIELD_K12],
 1.24384 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24385 ++      },
 1.24386 ++    },
 1.24387 ++    {
 1.24388 ++      AVR32_OPC_STSWP_W, 4, 0xe1d0a000, 0xe1f0f000,
 1.24389 ++      &avr32_syntax_table[AVR32_SYNTAX_STSWP_W],
 1.24390 ++      BFD_RELOC_UNUSED, 3, -1,
 1.24391 ++      {
 1.24392 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24393 ++	&avr32_ifield_table[AVR32_IFIELD_K12],
 1.24394 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24395 ++      },
 1.24396 ++    },
 1.24397 ++    {
 1.24398 ++      AVR32_OPC_SUB1, 2, 0x00100000, 0xe1f00000,
 1.24399 ++      &avr32_syntax_table[AVR32_SYNTAX_SUB1],
 1.24400 ++      BFD_RELOC_UNUSED, 2, -1,
 1.24401 ++      {
 1.24402 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24403 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24404 ++      },
 1.24405 ++    },
 1.24406 ++    {
 1.24407 ++      AVR32_OPC_SUB2, 4, 0xe0000100, 0xe1f0ffc0,
 1.24408 ++      &avr32_syntax_table[AVR32_SYNTAX_SUB2],
 1.24409 ++      BFD_RELOC_UNUSED, 4, -1,
 1.24410 ++      {
 1.24411 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.24412 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24413 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24414 ++	&avr32_ifield_table[AVR32_IFIELD_K2],
 1.24415 ++      },
 1.24416 ++    },
 1.24417 ++    {
 1.24418 ++      AVR32_OPC_SUB5, 4, 0xe0c00000, 0xe1f00000,
 1.24419 ++      &avr32_syntax_table[AVR32_SYNTAX_SUB5],
 1.24420 ++      BFD_RELOC_AVR32_SUB5, 3, 2,
 1.24421 ++      {
 1.24422 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24423 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24424 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.24425 ++      },
 1.24426 ++    },
 1.24427 ++    {
 1.24428 ++      AVR32_OPC_SUB3_SP, 2, 0x200d0000, 0xf00f0000,
 1.24429 ++      &avr32_syntax_table[AVR32_SYNTAX_SUB3_SP],
 1.24430 ++      BFD_RELOC_AVR32_10SW, 2, 1,
 1.24431 ++      {
 1.24432 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24433 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 1.24434 ++      },
 1.24435 ++    },
 1.24436 ++    {
 1.24437 ++      AVR32_OPC_SUB3, 2, 0x20000000, 0xf0000000,
 1.24438 ++      &avr32_syntax_table[AVR32_SYNTAX_SUB3],
 1.24439 ++      BFD_RELOC_AVR32_8S, 2, 1,
 1.24440 ++      {
 1.24441 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24442 ++	&avr32_ifield_table[AVR32_IFIELD_K8C],
 1.24443 ++      },
 1.24444 ++    },
 1.24445 ++    {
 1.24446 ++      AVR32_OPC_SUB4, 4, 0xe0200000, 0xe1e00000,
 1.24447 ++      &avr32_syntax_table[AVR32_SYNTAX_SUB4],
 1.24448 ++      BFD_RELOC_AVR32_21S, 2, 1,
 1.24449 ++      {
 1.24450 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24451 ++	&avr32_ifield_table[AVR32_IFIELD_K21],
 1.24452 ++      },
 1.24453 ++    },
 1.24454 ++    {
 1.24455 ++      AVR32_OPC_SUBEQ, 4, 0xf7b00000, 0xfff0ff00,
 1.24456 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBEQ],
 1.24457 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24458 ++      {
 1.24459 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24460 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24461 ++      },
 1.24462 ++    },
 1.24463 ++    {
 1.24464 ++      AVR32_OPC_SUBNE, 4, 0xf7b00100, 0xfff0ff00,
 1.24465 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBNE],
 1.24466 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24467 ++      {
 1.24468 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24469 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24470 ++      },
 1.24471 ++    },
 1.24472 ++    {
 1.24473 ++      AVR32_OPC_SUBCC, 4, 0xf7b00200, 0xfff0ff00,
 1.24474 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBHS],
 1.24475 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24476 ++      {
 1.24477 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24478 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24479 ++      },
 1.24480 ++    },
 1.24481 ++    {
 1.24482 ++      AVR32_OPC_SUBCS, 4, 0xf7b00300, 0xfff0ff00,
 1.24483 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBLO],
 1.24484 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24485 ++      {
 1.24486 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24487 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24488 ++      },
 1.24489 ++    },
 1.24490 ++    {
 1.24491 ++      AVR32_OPC_SUBGE, 4, 0xf7b00400, 0xfff0ff00,
 1.24492 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBGE],
 1.24493 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24494 ++      {
 1.24495 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24496 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24497 ++      },
 1.24498 ++    },
 1.24499 ++    {
 1.24500 ++      AVR32_OPC_SUBLT, 4, 0xf7b00500, 0xfff0ff00,
 1.24501 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBLT],
 1.24502 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24503 ++      {
 1.24504 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24505 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24506 ++      },
 1.24507 ++    },
 1.24508 ++    {
 1.24509 ++      AVR32_OPC_SUBMI, 4, 0xf7b00600, 0xfff0ff00,
 1.24510 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBMI],
 1.24511 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24512 ++      {
 1.24513 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24514 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24515 ++      },
 1.24516 ++    },
 1.24517 ++    {
 1.24518 ++      AVR32_OPC_SUBPL, 4, 0xf7b00700, 0xfff0ff00,
 1.24519 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBPL],
 1.24520 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24521 ++      {
 1.24522 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24523 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24524 ++      },
 1.24525 ++    },
 1.24526 ++    {
 1.24527 ++      AVR32_OPC_SUBLS, 4, 0xf7b00800, 0xfff0ff00,
 1.24528 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBLS],
 1.24529 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24530 ++      {
 1.24531 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24532 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24533 ++      },
 1.24534 ++    },
 1.24535 ++    {
 1.24536 ++      AVR32_OPC_SUBGT, 4, 0xf7b00900, 0xfff0ff00,
 1.24537 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBGT],
 1.24538 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24539 ++      {
 1.24540 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24541 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24542 ++      },
 1.24543 ++    },
 1.24544 ++    {
 1.24545 ++      AVR32_OPC_SUBLE, 4, 0xf7b00a00, 0xfff0ff00,
 1.24546 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBLE],
 1.24547 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24548 ++      {
 1.24549 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24550 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24551 ++      },
 1.24552 ++    },
 1.24553 ++    {
 1.24554 ++      AVR32_OPC_SUBHI, 4, 0xf7b00b00, 0xfff0ff00,
 1.24555 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBHI],
 1.24556 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24557 ++      {
 1.24558 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24559 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24560 ++      },
 1.24561 ++    },
 1.24562 ++    {
 1.24563 ++      AVR32_OPC_SUBVS, 4, 0xf7b00c00, 0xfff0ff00,
 1.24564 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBVS],
 1.24565 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24566 ++      {
 1.24567 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24568 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24569 ++      },
 1.24570 ++    },
 1.24571 ++    {
 1.24572 ++      AVR32_OPC_SUBVC, 4, 0xf7b00d00, 0xfff0ff00,
 1.24573 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBVC],
 1.24574 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24575 ++      {
 1.24576 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24577 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24578 ++      },
 1.24579 ++    },
 1.24580 ++    {
 1.24581 ++      AVR32_OPC_SUBQS, 4, 0xf7b00e00, 0xfff0ff00,
 1.24582 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBQS],
 1.24583 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24584 ++      {
 1.24585 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24586 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24587 ++      },
 1.24588 ++    },
 1.24589 ++    {
 1.24590 ++      AVR32_OPC_SUBAL, 4, 0xf7b00f00, 0xfff0ff00,
 1.24591 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBAL],
 1.24592 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24593 ++      {
 1.24594 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24595 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24596 ++      },
 1.24597 ++    },
 1.24598 ++    {
 1.24599 ++      AVR32_OPC_SUBFEQ, 4, 0xf5b00000, 0xfff0ff00,
 1.24600 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFEQ],
 1.24601 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24602 ++      {
 1.24603 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24604 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24605 ++      },
 1.24606 ++    },
 1.24607 ++    {
 1.24608 ++      AVR32_OPC_SUBFNE, 4, 0xf5b00100, 0xfff0ff00,
 1.24609 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFNE],
 1.24610 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24611 ++      {
 1.24612 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24613 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24614 ++      },
 1.24615 ++    },
 1.24616 ++    {
 1.24617 ++      AVR32_OPC_SUBFCC, 4, 0xf5b00200, 0xfff0ff00,
 1.24618 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFHS],
 1.24619 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24620 ++      {
 1.24621 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24622 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24623 ++      },
 1.24624 ++    },
 1.24625 ++    {
 1.24626 ++      AVR32_OPC_SUBFCS, 4, 0xf5b00300, 0xfff0ff00,
 1.24627 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFLO],
 1.24628 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24629 ++      {
 1.24630 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24631 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24632 ++      },
 1.24633 ++    },
 1.24634 ++    {
 1.24635 ++      AVR32_OPC_SUBFGE, 4, 0xf5b00400, 0xfff0ff00,
 1.24636 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFGE],
 1.24637 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24638 ++      {
 1.24639 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24640 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24641 ++      },
 1.24642 ++    },
 1.24643 ++    {
 1.24644 ++      AVR32_OPC_SUBFLT, 4, 0xf5b00500, 0xfff0ff00,
 1.24645 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFLT],
 1.24646 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24647 ++      {
 1.24648 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24649 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24650 ++      },
 1.24651 ++    },
 1.24652 ++    {
 1.24653 ++      AVR32_OPC_SUBFMI, 4, 0xf5b00600, 0xfff0ff00,
 1.24654 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFMI],
 1.24655 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24656 ++      {
 1.24657 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24658 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24659 ++      },
 1.24660 ++    },
 1.24661 ++    {
 1.24662 ++      AVR32_OPC_SUBFPL, 4, 0xf5b00700, 0xfff0ff00,
 1.24663 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFPL],
 1.24664 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24665 ++      {
 1.24666 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24667 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24668 ++      },
 1.24669 ++    },
 1.24670 ++    {
 1.24671 ++      AVR32_OPC_SUBFLS, 4, 0xf5b00800, 0xfff0ff00,
 1.24672 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFLS],
 1.24673 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24674 ++      {
 1.24675 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24676 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24677 ++      },
 1.24678 ++    },
 1.24679 ++    {
 1.24680 ++      AVR32_OPC_SUBFGT, 4, 0xf5b00900, 0xfff0ff00,
 1.24681 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFGT],
 1.24682 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24683 ++      {
 1.24684 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24685 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24686 ++      },
 1.24687 ++    },
 1.24688 ++    {
 1.24689 ++      AVR32_OPC_SUBFLE, 4, 0xf5b00a00, 0xfff0ff00,
 1.24690 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFLE],
 1.24691 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24692 ++      {
 1.24693 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24694 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24695 ++      },
 1.24696 ++    },
 1.24697 ++    {
 1.24698 ++      AVR32_OPC_SUBFHI, 4, 0xf5b00b00, 0xfff0ff00,
 1.24699 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFHI],
 1.24700 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24701 ++      {
 1.24702 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24703 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24704 ++      },
 1.24705 ++    },
 1.24706 ++    {
 1.24707 ++      AVR32_OPC_SUBFVS, 4, 0xf5b00c00, 0xfff0ff00,
 1.24708 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFVS],
 1.24709 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24710 ++      {
 1.24711 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24712 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24713 ++      },
 1.24714 ++    },
 1.24715 ++    {
 1.24716 ++      AVR32_OPC_SUBFVC, 4, 0xf5b00d00, 0xfff0ff00,
 1.24717 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFVC],
 1.24718 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24719 ++      {
 1.24720 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24721 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24722 ++      },
 1.24723 ++    },
 1.24724 ++    {
 1.24725 ++      AVR32_OPC_SUBFQS, 4, 0xf5b00e00, 0xfff0ff00,
 1.24726 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFQS],
 1.24727 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24728 ++      {
 1.24729 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24730 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24731 ++      },
 1.24732 ++    },
 1.24733 ++    {
 1.24734 ++      AVR32_OPC_SUBFAL, 4, 0xf5b00f00, 0xfff0ff00,
 1.24735 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBFAL],
 1.24736 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,
 1.24737 ++      {
 1.24738 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24739 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24740 ++      },
 1.24741 ++    },
 1.24742 ++    {
 1.24743 ++      AVR32_OPC_SUBHH_W, 4, 0xe0000f00, 0xe1f0ffc0,
 1.24744 ++      &avr32_syntax_table[AVR32_SYNTAX_SUBHH_W],
 1.24745 ++      BFD_RELOC_UNUSED, 5, -1,
 1.24746 ++      {
 1.24747 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.24748 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24749 ++	&avr32_ifield_table[AVR32_IFIELD_X],
 1.24750 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24751 ++	&avr32_ifield_table[AVR32_IFIELD_Y],
 1.24752 ++      },
 1.24753 ++    },
 1.24754 ++    {
 1.24755 ++      AVR32_OPC_SWAP_B, 2, 0x5cb00000, 0xfff00000,
 1.24756 ++      &avr32_syntax_table[AVR32_SYNTAX_SWAP_B],
 1.24757 ++      BFD_RELOC_UNUSED, 1, -1,
 1.24758 ++      {
 1.24759 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24760 ++      }
 1.24761 ++    },
 1.24762 ++    {
 1.24763 ++      AVR32_OPC_SWAP_BH, 2, 0x5cc00000, 0xfff00000,
 1.24764 ++      &avr32_syntax_table[AVR32_SYNTAX_SWAP_BH],
 1.24765 ++      BFD_RELOC_UNUSED, 1, -1,
 1.24766 ++      {
 1.24767 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24768 ++      }
 1.24769 ++    },
 1.24770 ++    {
 1.24771 ++      AVR32_OPC_SWAP_H, 2, 0x5ca00000, 0xfff00000,
 1.24772 ++      &avr32_syntax_table[AVR32_SYNTAX_SWAP_H],
 1.24773 ++      BFD_RELOC_UNUSED, 1, -1,
 1.24774 ++      {
 1.24775 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24776 ++      }
 1.24777 ++    },
 1.24778 ++    {
 1.24779 ++      AVR32_OPC_SYNC, 4, 0xebb00000, 0xffffff00,
 1.24780 ++      &avr32_syntax_table[AVR32_SYNTAX_SYNC],
 1.24781 ++      BFD_RELOC_AVR32_8S_EXT, 1, 0,
 1.24782 ++      {
 1.24783 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],
 1.24784 ++      }
 1.24785 ++    },
 1.24786 ++    {
 1.24787 ++      AVR32_OPC_TLBR, 2, 0xd6430000, 0xffff0000,
 1.24788 ++      &avr32_syntax_table[AVR32_SYNTAX_TLBR],
 1.24789 ++      BFD_RELOC_UNUSED, 0, -1, { NULL },
 1.24790 ++    },
 1.24791 ++    {
 1.24792 ++      AVR32_OPC_TLBS, 2, 0xd6530000, 0xffff0000,
 1.24793 ++      &avr32_syntax_table[AVR32_SYNTAX_TLBS],
 1.24794 ++      BFD_RELOC_UNUSED, 0, -1, { NULL },
 1.24795 ++    },
 1.24796 ++    {
 1.24797 ++      AVR32_OPC_TLBW, 2, 0xd6630000, 0xffff0000,
 1.24798 ++      &avr32_syntax_table[AVR32_SYNTAX_TLBW],
 1.24799 ++      BFD_RELOC_UNUSED, 0, -1, { NULL },
 1.24800 ++    },
 1.24801 ++    {
 1.24802 ++      AVR32_OPC_TNBZ, 2, 0x5ce00000, 0xfff00000,
 1.24803 ++      &avr32_syntax_table[AVR32_SYNTAX_TNBZ],
 1.24804 ++      BFD_RELOC_UNUSED, 1, -1,
 1.24805 ++      {
 1.24806 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24807 ++      }
 1.24808 ++    },
 1.24809 ++    {
 1.24810 ++      AVR32_OPC_TST, 2, 0x00700000, 0xe1f00000,
 1.24811 ++      &avr32_syntax_table[AVR32_SYNTAX_TST],
 1.24812 ++      BFD_RELOC_UNUSED, 2, -1,
 1.24813 ++      {
 1.24814 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24815 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24816 ++      },
 1.24817 ++    },
 1.24818 ++    {
 1.24819 ++      AVR32_OPC_XCHG, 4, 0xe0000b40, 0xe1f0fff0,
 1.24820 ++      &avr32_syntax_table[AVR32_SYNTAX_XCHG],
 1.24821 ++      BFD_RELOC_UNUSED, 3, -1,
 1.24822 ++      {
 1.24823 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],
 1.24824 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24825 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24826 ++      },
 1.24827 ++    },
 1.24828 ++    {
 1.24829 ++      AVR32_OPC_MEMC, 4, 0xf6100000, 0xfff00000,
 1.24830 ++      &avr32_syntax_table[AVR32_SYNTAX_MEMC],
 1.24831 ++      BFD_RELOC_AVR32_15S, 2, 0,
 1.24832 ++      {
 1.24833 ++	&avr32_ifield_table[AVR32_IFIELD_MEM15],
 1.24834 ++	&avr32_ifield_table[AVR32_IFIELD_MEMB5],
 1.24835 ++      },
 1.24836 ++    },
 1.24837 ++    {
 1.24838 ++      AVR32_OPC_MEMS, 4, 0xf8100000, 0xfff00000,
 1.24839 ++      &avr32_syntax_table[AVR32_SYNTAX_MEMS],
 1.24840 ++      BFD_RELOC_AVR32_15S, 2, 0,
 1.24841 ++      {
 1.24842 ++	&avr32_ifield_table[AVR32_IFIELD_MEM15],
 1.24843 ++	&avr32_ifield_table[AVR32_IFIELD_MEMB5],
 1.24844 ++      },
 1.24845 ++    },
 1.24846 ++    {
 1.24847 ++      AVR32_OPC_MEMT, 4, 0xfa100000, 0xfff00000,
 1.24848 ++      &avr32_syntax_table[AVR32_SYNTAX_MEMT],
 1.24849 ++      BFD_RELOC_AVR32_15S, 2, 0,
 1.24850 ++      {
 1.24851 ++	&avr32_ifield_table[AVR32_IFIELD_MEM15],
 1.24852 ++	&avr32_ifield_table[AVR32_IFIELD_MEMB5],
 1.24853 ++      },
 1.24854 ++    },
 1.24855 ++    {
 1.24856 ++      AVR32_OPC_BFEXTS, 4, 0xe1d0b000, 0xe1f0fc00,
 1.24857 ++      &avr32_syntax_table[AVR32_SYNTAX_BFEXTS],
 1.24858 ++      BFD_RELOC_UNUSED, 4, -1,
 1.24859 ++      {
 1.24860 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24861 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24862 ++	&avr32_ifield_table[AVR32_IFIELD_S5],
 1.24863 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 1.24864 ++      },
 1.24865 ++    },
 1.24866 ++    {
 1.24867 ++      AVR32_OPC_BFEXTU, 4, 0xe1d0c000, 0xe1f0fc00,
 1.24868 ++      &avr32_syntax_table[AVR32_SYNTAX_BFEXTU],
 1.24869 ++      BFD_RELOC_UNUSED, 4, -1,
 1.24870 ++      {
 1.24871 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24872 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24873 ++	&avr32_ifield_table[AVR32_IFIELD_S5],
 1.24874 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 1.24875 ++      },
 1.24876 ++    },
 1.24877 ++    {
 1.24878 ++      AVR32_OPC_BFINS, 4, 0xe1d0d000, 0xe1f0fc00,
 1.24879 ++      &avr32_syntax_table[AVR32_SYNTAX_BFINS],
 1.24880 ++      BFD_RELOC_UNUSED, 4, -1,
 1.24881 ++      {
 1.24882 ++	&avr32_ifield_table[AVR32_IFIELD_RX],
 1.24883 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.24884 ++	&avr32_ifield_table[AVR32_IFIELD_S5],
 1.24885 ++	&avr32_ifield_table[AVR32_IFIELD_K5E],
 1.24886 ++      },
 1.24887 ++    },
 1.24888 ++#define AVR32_OPCODE_RSUBCOND(cond_name, cond_field)                    \
 1.24889 ++    {                                                                   \
 1.24890 ++      AVR32_OPC_RSUB ## cond_name , 4,                                  \
 1.24891 ++      0xfbb00000 | (cond_field << 8), 0xfff0ff00,                       \
 1.24892 ++      &avr32_syntax_table[AVR32_SYNTAX_RSUB ## cond_name ],             \
 1.24893 ++      BFD_RELOC_AVR32_8S_EXT, 2, 1,                                     \
 1.24894 ++      {                                                                 \
 1.24895 ++	&avr32_ifield_table[AVR32_IFIELD_RY],                           \
 1.24896 ++	&avr32_ifield_table[AVR32_IFIELD_K8E],                          \
 1.24897 ++      },                                                                \
 1.24898 ++    },
 1.24899 ++
 1.24900 ++    AVR32_OPCODE_RSUBCOND (EQ, 0) 
 1.24901 ++    AVR32_OPCODE_RSUBCOND (NE, 1) 
 1.24902 ++    AVR32_OPCODE_RSUBCOND (CC, 2) 
 1.24903 ++    AVR32_OPCODE_RSUBCOND (CS, 3) 
 1.24904 ++    AVR32_OPCODE_RSUBCOND (GE, 4) 
 1.24905 ++    AVR32_OPCODE_RSUBCOND (LT, 5) 
 1.24906 ++    AVR32_OPCODE_RSUBCOND (MI, 6) 
 1.24907 ++    AVR32_OPCODE_RSUBCOND (PL, 7) 
 1.24908 ++    AVR32_OPCODE_RSUBCOND (LS, 8) 
 1.24909 ++    AVR32_OPCODE_RSUBCOND (GT, 9) 
 1.24910 ++    AVR32_OPCODE_RSUBCOND (LE, 10) 
 1.24911 ++    AVR32_OPCODE_RSUBCOND (HI, 11) 
 1.24912 ++    AVR32_OPCODE_RSUBCOND (VS, 12) 
 1.24913 ++    AVR32_OPCODE_RSUBCOND (VC, 13) 
 1.24914 ++    AVR32_OPCODE_RSUBCOND (QS, 14) 
 1.24915 ++    AVR32_OPCODE_RSUBCOND (AL, 15) 
 1.24916 ++
 1.24917 ++#define AVR32_OPCODE_OP3_COND(op_name, op_field, cond_name, cond_field) \
 1.24918 ++    {                                                                   \
 1.24919 ++      AVR32_OPC_ ## op_name ## cond_name , 4,                           \
 1.24920 ++      0xe1d0e000 | (cond_field << 8) | (op_field << 4), 0xe1f0fff0,     \
 1.24921 ++      &avr32_syntax_table[AVR32_SYNTAX_ ## op_name ## cond_name ],      \
 1.24922 ++      BFD_RELOC_UNUSED, 3, -1,                                          \
 1.24923 ++      {                                                                 \
 1.24924 ++	&avr32_ifield_table[AVR32_IFIELD_RD_E],                         \
 1.24925 ++	&avr32_ifield_table[AVR32_IFIELD_RX],                           \
 1.24926 ++	&avr32_ifield_table[AVR32_IFIELD_RY],                           \
 1.24927 ++      },                                                                \
 1.24928 ++    },
 1.24929 ++
 1.24930 ++    AVR32_OPCODE_OP3_COND (ADD, 0, EQ, 0)
 1.24931 ++    AVR32_OPCODE_OP3_COND (ADD, 0, NE, 1)
 1.24932 ++    AVR32_OPCODE_OP3_COND (ADD, 0, CC, 2)
 1.24933 ++    AVR32_OPCODE_OP3_COND (ADD, 0, CS, 3)
 1.24934 ++    AVR32_OPCODE_OP3_COND (ADD, 0, GE, 4)
 1.24935 ++    AVR32_OPCODE_OP3_COND (ADD, 0, LT, 5)
 1.24936 ++    AVR32_OPCODE_OP3_COND (ADD, 0, MI, 6)
 1.24937 ++    AVR32_OPCODE_OP3_COND (ADD, 0, PL, 7)
 1.24938 ++    AVR32_OPCODE_OP3_COND (ADD, 0, LS, 8)
 1.24939 ++    AVR32_OPCODE_OP3_COND (ADD, 0, GT, 9)
 1.24940 ++    AVR32_OPCODE_OP3_COND (ADD, 0, LE, 10)
 1.24941 ++    AVR32_OPCODE_OP3_COND (ADD, 0, HI, 11)
 1.24942 ++    AVR32_OPCODE_OP3_COND (ADD, 0, VS, 12)
 1.24943 ++    AVR32_OPCODE_OP3_COND (ADD, 0, VC, 13)
 1.24944 ++    AVR32_OPCODE_OP3_COND (ADD, 0, QS, 14)
 1.24945 ++    AVR32_OPCODE_OP3_COND (ADD, 0, AL, 15)
 1.24946 ++
 1.24947 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, EQ, 0)
 1.24948 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, NE, 1)
 1.24949 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, CC, 2)
 1.24950 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, CS, 3)
 1.24951 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, GE, 4)
 1.24952 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, LT, 5)
 1.24953 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, MI, 6)
 1.24954 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, PL, 7)
 1.24955 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, LS, 8)
 1.24956 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, GT, 9)
 1.24957 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, LE, 10)
 1.24958 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, HI, 11)
 1.24959 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, VS, 12)
 1.24960 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, VC, 13)
 1.24961 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, QS, 14)
 1.24962 ++    AVR32_OPCODE_OP3_COND (SUB2, 1, AL, 15)
 1.24963 ++
 1.24964 ++    AVR32_OPCODE_OP3_COND (AND, 2, EQ, 0)
 1.24965 ++    AVR32_OPCODE_OP3_COND (AND, 2, NE, 1)
 1.24966 ++    AVR32_OPCODE_OP3_COND (AND, 2, CC, 2)
 1.24967 ++    AVR32_OPCODE_OP3_COND (AND, 2, CS, 3)
 1.24968 ++    AVR32_OPCODE_OP3_COND (AND, 2, GE, 4)
 1.24969 ++    AVR32_OPCODE_OP3_COND (AND, 2, LT, 5)
 1.24970 ++    AVR32_OPCODE_OP3_COND (AND, 2, MI, 6)
 1.24971 ++    AVR32_OPCODE_OP3_COND (AND, 2, PL, 7)
 1.24972 ++    AVR32_OPCODE_OP3_COND (AND, 2, LS, 8)
 1.24973 ++    AVR32_OPCODE_OP3_COND (AND, 2, GT, 9)
 1.24974 ++    AVR32_OPCODE_OP3_COND (AND, 2, LE, 10)
 1.24975 ++    AVR32_OPCODE_OP3_COND (AND, 2, HI, 11)
 1.24976 ++    AVR32_OPCODE_OP3_COND (AND, 2, VS, 12)
 1.24977 ++    AVR32_OPCODE_OP3_COND (AND, 2, VC, 13)
 1.24978 ++    AVR32_OPCODE_OP3_COND (AND, 2, QS, 14)
 1.24979 ++    AVR32_OPCODE_OP3_COND (AND, 2, AL, 15)
 1.24980 ++
 1.24981 ++    AVR32_OPCODE_OP3_COND (OR, 3, EQ, 0)
 1.24982 ++    AVR32_OPCODE_OP3_COND (OR, 3, NE, 1)
 1.24983 ++    AVR32_OPCODE_OP3_COND (OR, 3, CC, 2)
 1.24984 ++    AVR32_OPCODE_OP3_COND (OR, 3, CS, 3)
 1.24985 ++    AVR32_OPCODE_OP3_COND (OR, 3, GE, 4)
 1.24986 ++    AVR32_OPCODE_OP3_COND (OR, 3, LT, 5)
 1.24987 ++    AVR32_OPCODE_OP3_COND (OR, 3, MI, 6)
 1.24988 ++    AVR32_OPCODE_OP3_COND (OR, 3, PL, 7)
 1.24989 ++    AVR32_OPCODE_OP3_COND (OR, 3, LS, 8)
 1.24990 ++    AVR32_OPCODE_OP3_COND (OR, 3, GT, 9)
 1.24991 ++    AVR32_OPCODE_OP3_COND (OR, 3, LE, 10)
 1.24992 ++    AVR32_OPCODE_OP3_COND (OR, 3, HI, 11)
 1.24993 ++    AVR32_OPCODE_OP3_COND (OR, 3, VS, 12)
 1.24994 ++    AVR32_OPCODE_OP3_COND (OR, 3, VC, 13)
 1.24995 ++    AVR32_OPCODE_OP3_COND (OR, 3, QS, 14)
 1.24996 ++    AVR32_OPCODE_OP3_COND (OR, 3, AL, 15)
 1.24997 ++
 1.24998 ++    AVR32_OPCODE_OP3_COND (EOR, 4, EQ, 0)
 1.24999 ++    AVR32_OPCODE_OP3_COND (EOR, 4, NE, 1)
 1.25000 ++    AVR32_OPCODE_OP3_COND (EOR, 4, CC, 2)
 1.25001 ++    AVR32_OPCODE_OP3_COND (EOR, 4, CS, 3)
 1.25002 ++    AVR32_OPCODE_OP3_COND (EOR, 4, GE, 4)
 1.25003 ++    AVR32_OPCODE_OP3_COND (EOR, 4, LT, 5)
 1.25004 ++    AVR32_OPCODE_OP3_COND (EOR, 4, MI, 6)
 1.25005 ++    AVR32_OPCODE_OP3_COND (EOR, 4, PL, 7)
 1.25006 ++    AVR32_OPCODE_OP3_COND (EOR, 4, LS, 8)
 1.25007 ++    AVR32_OPCODE_OP3_COND (EOR, 4, GT, 9)
 1.25008 ++    AVR32_OPCODE_OP3_COND (EOR, 4, LE, 10)
 1.25009 ++    AVR32_OPCODE_OP3_COND (EOR, 4, HI, 11)
 1.25010 ++    AVR32_OPCODE_OP3_COND (EOR, 4, VS, 12)
 1.25011 ++    AVR32_OPCODE_OP3_COND (EOR, 4, VC, 13)
 1.25012 ++    AVR32_OPCODE_OP3_COND (EOR, 4, QS, 14)
 1.25013 ++    AVR32_OPCODE_OP3_COND (EOR, 4, AL, 15) 
 1.25014 ++
 1.25015 ++#define AVR32_OPCODE_LD_COND(op_name, op_field, cond_name, cond_field)  \
 1.25016 ++    {                                                                   \
 1.25017 ++      AVR32_OPC_ ## op_name ## cond_name , 4,                           \
 1.25018 ++      0xe1f00000 | (cond_field << 12) | (op_field  << 9), 0xe1f0fe00,   \
 1.25019 ++      &avr32_syntax_table[AVR32_SYNTAX_ ## op_name ## cond_name ],      \
 1.25020 ++      BFD_RELOC_UNUSED, 3, -1,                                          \
 1.25021 ++      {                                                                 \
 1.25022 ++	&avr32_ifield_table[AVR32_IFIELD_RY],                           \
 1.25023 ++	&avr32_ifield_table[AVR32_IFIELD_RX],                           \
 1.25024 ++	&avr32_ifield_table[AVR32_IFIELD_K9E],                          \
 1.25025 ++      },                                                                \
 1.25026 ++    },
 1.25027 ++    
 1.25028 ++#define AVR32_OPCODE_ST_COND(op_name, op_field, cond_name, cond_field)  \
 1.25029 ++    {                                                                   \
 1.25030 ++      AVR32_OPC_ ## op_name ## cond_name , 4,                           \
 1.25031 ++      0xe1f00000 | (cond_field << 12) | (op_field  << 9), 0xe1f0fe00,   \
 1.25032 ++      &avr32_syntax_table[AVR32_SYNTAX_ ## op_name ## cond_name ],      \
 1.25033 ++      BFD_RELOC_UNUSED, 3, -1,                                          \
 1.25034 ++      {                                                                 \
 1.25035 ++	&avr32_ifield_table[AVR32_IFIELD_RX],                           \
 1.25036 ++	&avr32_ifield_table[AVR32_IFIELD_K9E],                          \
 1.25037 ++	&avr32_ifield_table[AVR32_IFIELD_RY],                           \
 1.25038 ++      },                                                                \
 1.25039 ++    },
 1.25040 ++
 1.25041 ++    AVR32_OPCODE_LD_COND (LD_W, 0, EQ, 0) 
 1.25042 ++    AVR32_OPCODE_LD_COND (LD_W, 0, NE, 1) 
 1.25043 ++    AVR32_OPCODE_LD_COND (LD_W, 0, CC, 2) 
 1.25044 ++    AVR32_OPCODE_LD_COND (LD_W, 0, CS, 3) 
 1.25045 ++    AVR32_OPCODE_LD_COND (LD_W, 0, GE, 4) 
 1.25046 ++    AVR32_OPCODE_LD_COND (LD_W, 0, LT, 5) 
 1.25047 ++    AVR32_OPCODE_LD_COND (LD_W, 0, MI, 6) 
 1.25048 ++    AVR32_OPCODE_LD_COND (LD_W, 0, PL, 7) 
 1.25049 ++    AVR32_OPCODE_LD_COND (LD_W, 0, LS, 8) 
 1.25050 ++    AVR32_OPCODE_LD_COND (LD_W, 0, GT, 9) 
 1.25051 ++    AVR32_OPCODE_LD_COND (LD_W, 0, LE, 10) 
 1.25052 ++    AVR32_OPCODE_LD_COND (LD_W, 0, HI, 11) 
 1.25053 ++    AVR32_OPCODE_LD_COND (LD_W, 0, VS, 12) 
 1.25054 ++    AVR32_OPCODE_LD_COND (LD_W, 0, VC, 13) 
 1.25055 ++    AVR32_OPCODE_LD_COND (LD_W, 0, QS, 14) 
 1.25056 ++    AVR32_OPCODE_LD_COND (LD_W, 0, AL, 15) 
 1.25057 ++
 1.25058 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, EQ, 0) 
 1.25059 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, NE, 1) 
 1.25060 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, CC, 2) 
 1.25061 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, CS, 3) 
 1.25062 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, GE, 4) 
 1.25063 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, LT, 5) 
 1.25064 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, MI, 6) 
 1.25065 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, PL, 7) 
 1.25066 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, LS, 8) 
 1.25067 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, GT, 9) 
 1.25068 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, LE, 10) 
 1.25069 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, HI, 11) 
 1.25070 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, VS, 12) 
 1.25071 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, VC, 13) 
 1.25072 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, QS, 14) 
 1.25073 ++    AVR32_OPCODE_LD_COND (LD_SH, 1, AL, 15) 
 1.25074 ++
 1.25075 ++    AVR32_OPCODE_LD_COND (LD_UH, 2, EQ, 0) 
 1.25076 ++    AVR32_OPCODE_LD_COND (LD_UH, 2, NE, 1) 
 1.25077 ++    AVR32_OPCODE_LD_COND (LD_UH, 2, CC, 2) 
 1.25078 ++    AVR32_OPCODE_LD_COND (LD_UH, 2, CS, 3) 
 1.25079 ++    AVR32_OPCODE_LD_COND (LD_UH, 2, GE, 4) 
 1.25080 ++    AVR32_OPCODE_LD_COND (LD_UH, 2, LT, 5) 
 1.25081 ++    AVR32_OPCODE_LD_COND (LD_UH, 2, MI, 6) 
 1.25082 ++    AVR32_OPCODE_LD_COND (LD_UH, 2, PL, 7) 
 1.25083 ++    AVR32_OPCODE_LD_COND (LD_SH, 2, LS, 8) 
 1.25084 ++    AVR32_OPCODE_LD_COND (LD_SH, 2, GT, 9) 
 1.25085 ++    AVR32_OPCODE_LD_COND (LD_SH, 2, LE, 10) 
 1.25086 ++    AVR32_OPCODE_LD_COND (LD_SH, 2, HI, 11) 
 1.25087 ++    AVR32_OPCODE_LD_COND (LD_SH, 2, VS, 12) 
 1.25088 ++    AVR32_OPCODE_LD_COND (LD_SH, 2, VC, 13) 
 1.25089 ++    AVR32_OPCODE_LD_COND (LD_SH, 2, QS, 14) 
 1.25090 ++    AVR32_OPCODE_LD_COND (LD_SH, 2, AL, 15) 
 1.25091 ++
 1.25092 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, EQ, 0) 
 1.25093 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, NE, 1) 
 1.25094 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, CC, 2) 
 1.25095 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, CS, 3) 
 1.25096 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, GE, 4) 
 1.25097 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, LT, 5) 
 1.25098 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, MI, 6) 
 1.25099 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, PL, 7) 
 1.25100 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, LS, 8) 
 1.25101 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, GT, 9) 
 1.25102 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, LE, 10) 
 1.25103 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, HI, 11) 
 1.25104 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, VS, 12) 
 1.25105 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, VC, 13) 
 1.25106 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, QS, 14) 
 1.25107 ++    AVR32_OPCODE_LD_COND (LD_SB, 3, AL, 15) 
 1.25108 ++
 1.25109 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, EQ, 0) 
 1.25110 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, NE, 1) 
 1.25111 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, CC, 2) 
 1.25112 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, CS, 3) 
 1.25113 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, GE, 4) 
 1.25114 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, LT, 5) 
 1.25115 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, MI, 6) 
 1.25116 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, PL, 7) 
 1.25117 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, LS, 8) 
 1.25118 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, GT, 9) 
 1.25119 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, LE, 10) 
 1.25120 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, HI, 11) 
 1.25121 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, VS, 12) 
 1.25122 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, VC, 13) 
 1.25123 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, QS, 14) 
 1.25124 ++    AVR32_OPCODE_LD_COND (LD_UB, 4, AL, 15) 
 1.25125 ++
 1.25126 ++    AVR32_OPCODE_ST_COND (ST_W, 5, EQ, 0) 
 1.25127 ++    AVR32_OPCODE_ST_COND (ST_W, 5, NE, 1) 
 1.25128 ++    AVR32_OPCODE_ST_COND (ST_W, 5, CC, 2) 
 1.25129 ++    AVR32_OPCODE_ST_COND (ST_W, 5, CS, 3) 
 1.25130 ++    AVR32_OPCODE_ST_COND (ST_W, 5, GE, 4) 
 1.25131 ++    AVR32_OPCODE_ST_COND (ST_W, 5, LT, 5) 
 1.25132 ++    AVR32_OPCODE_ST_COND (ST_W, 5, MI, 6) 
 1.25133 ++    AVR32_OPCODE_ST_COND (ST_W, 5, PL, 7) 
 1.25134 ++    AVR32_OPCODE_ST_COND (ST_W, 5, LS, 8) 
 1.25135 ++    AVR32_OPCODE_ST_COND (ST_W, 5, GT, 9) 
 1.25136 ++    AVR32_OPCODE_ST_COND (ST_W, 5, LE, 10) 
 1.25137 ++    AVR32_OPCODE_ST_COND (ST_W, 5, HI, 11) 
 1.25138 ++    AVR32_OPCODE_ST_COND (ST_W, 5, VS, 12) 
 1.25139 ++    AVR32_OPCODE_ST_COND (ST_W, 5, VC, 13) 
 1.25140 ++    AVR32_OPCODE_ST_COND (ST_W, 5, QS, 14) 
 1.25141 ++    AVR32_OPCODE_ST_COND (ST_W, 5, AL, 15) 
 1.25142 ++
 1.25143 ++    AVR32_OPCODE_ST_COND (ST_H, 6, EQ, 0) 
 1.25144 ++    AVR32_OPCODE_ST_COND (ST_H, 6, NE, 1) 
 1.25145 ++    AVR32_OPCODE_ST_COND (ST_H, 6, CC, 2) 
 1.25146 ++    AVR32_OPCODE_ST_COND (ST_H, 6, CS, 3) 
 1.25147 ++    AVR32_OPCODE_ST_COND (ST_H, 6, GE, 4) 
 1.25148 ++    AVR32_OPCODE_ST_COND (ST_H, 6, LT, 5) 
 1.25149 ++    AVR32_OPCODE_ST_COND (ST_H, 6, MI, 6) 
 1.25150 ++    AVR32_OPCODE_ST_COND (ST_H, 6, PL, 7) 
 1.25151 ++    AVR32_OPCODE_ST_COND (ST_H, 6, LS, 8) 
 1.25152 ++    AVR32_OPCODE_ST_COND (ST_H, 6, GT, 9) 
 1.25153 ++    AVR32_OPCODE_ST_COND (ST_H, 6, LE, 10) 
 1.25154 ++    AVR32_OPCODE_ST_COND (ST_H, 6, HI, 11) 
 1.25155 ++    AVR32_OPCODE_ST_COND (ST_H, 6, VS, 12) 
 1.25156 ++    AVR32_OPCODE_ST_COND (ST_H, 6, VC, 13) 
 1.25157 ++    AVR32_OPCODE_ST_COND (ST_H, 6, QS, 14) 
 1.25158 ++    AVR32_OPCODE_ST_COND (ST_H, 6, AL, 15) 
 1.25159 ++
 1.25160 ++    AVR32_OPCODE_ST_COND (ST_B, 7, EQ, 0) 
 1.25161 ++    AVR32_OPCODE_ST_COND (ST_B, 7, NE, 1) 
 1.25162 ++    AVR32_OPCODE_ST_COND (ST_B, 7, CC, 2) 
 1.25163 ++    AVR32_OPCODE_ST_COND (ST_B, 7, CS, 3) 
 1.25164 ++    AVR32_OPCODE_ST_COND (ST_B, 7, GE, 4) 
 1.25165 ++    AVR32_OPCODE_ST_COND (ST_B, 7, LT, 5) 
 1.25166 ++    AVR32_OPCODE_ST_COND (ST_B, 7, MI, 6) 
 1.25167 ++    AVR32_OPCODE_ST_COND (ST_B, 7, PL, 7) 
 1.25168 ++    AVR32_OPCODE_ST_COND (ST_B, 7, LS, 8) 
 1.25169 ++    AVR32_OPCODE_ST_COND (ST_B, 7, GT, 9) 
 1.25170 ++    AVR32_OPCODE_ST_COND (ST_B, 7, LE, 10) 
 1.25171 ++    AVR32_OPCODE_ST_COND (ST_B, 7, HI, 11) 
 1.25172 ++    AVR32_OPCODE_ST_COND (ST_B, 7, VS, 12) 
 1.25173 ++    AVR32_OPCODE_ST_COND (ST_B, 7, VC, 13) 
 1.25174 ++    AVR32_OPCODE_ST_COND (ST_B, 7, QS, 14) 
 1.25175 ++    AVR32_OPCODE_ST_COND (ST_B, 7, AL, 15) 
 1.25176 ++
 1.25177 ++    {
 1.25178 ++      AVR32_OPC_MOVH, 4, 0xfc100000, 0xfff00000,
 1.25179 ++      &avr32_syntax_table[AVR32_SYNTAX_MOVH],
 1.25180 ++      BFD_RELOC_AVR32_16U,  2, 1,
 1.25181 ++      {
 1.25182 ++	&avr32_ifield_table[AVR32_IFIELD_RY],
 1.25183 ++	&avr32_ifield_table[AVR32_IFIELD_K16],
 1.25184 ++      },
 1.25185 ++    },
 1.25186 ++
 1.25187 ++ };
 1.25188 ++
 1.25189 ++#define FPALIAS_DXY(name, opcode)			\
 1.25190 ++  {							\
 1.25191 ++    AVR32_ALIAS_##name##_S,				\
 1.25192 ++    &avr32_opc_table[AVR32_OPC_COP],			\
 1.25193 ++    {							\
 1.25194 ++      { 0, 0 },						\
 1.25195 ++      { 1, 0 }, { 1, 1 }, { 1, 2 },			\
 1.25196 ++      { 0, opcode },					\
 1.25197 ++    },							\
 1.25198 ++  }, {							\
 1.25199 ++    AVR32_ALIAS_##name##_D,				\
 1.25200 ++    &avr32_opc_table[AVR32_OPC_COP],			\
 1.25201 ++    {							\
 1.25202 ++      { 0, 0 },						\
 1.25203 ++      { 1, 0 }, { 1, 1 }, { 1, 2 },			\
 1.25204 ++      { 0, (opcode) | 0x40 },				\
 1.25205 ++    },							\
 1.25206 ++  }
 1.25207 ++#define FPALIAS_DX(name, opcode)			\
 1.25208 ++  {							\
 1.25209 ++    AVR32_ALIAS_##name##_S,				\
 1.25210 ++    &avr32_opc_table[AVR32_OPC_COP],			\
 1.25211 ++    {							\
 1.25212 ++      { 0, 0 },						\
 1.25213 ++      { 1, 0 }, { 1, 1 }, { 0, 0 },			\
 1.25214 ++      { 0, opcode },					\
 1.25215 ++    },							\
 1.25216 ++  }, {							\
 1.25217 ++    AVR32_ALIAS_##name##_D,				\
 1.25218 ++    &avr32_opc_table[AVR32_OPC_COP],			\
 1.25219 ++    {							\
 1.25220 ++      { 0, 0 },						\
 1.25221 ++      { 1, 0 }, { 1, 1 }, { 0, 0 },			\
 1.25222 ++      { 0, (opcode) | 0x40 },				\
 1.25223 ++    },							\
 1.25224 ++  }
 1.25225 ++#define FPALIAS_XY(name, opcode)			\
 1.25226 ++  {							\
 1.25227 ++    AVR32_ALIAS_##name##_S,				\
 1.25228 ++    &avr32_opc_table[AVR32_OPC_COP],			\
 1.25229 ++    {							\
 1.25230 ++      { 0, 0 },						\
 1.25231 ++      { 0, 0 }, { 1, 0 }, { 1, 1 },			\
 1.25232 ++      { 0, opcode },					\
 1.25233 ++    },							\
 1.25234 ++  }, {							\
 1.25235 ++    AVR32_ALIAS_##name##_D,				\
 1.25236 ++    &avr32_opc_table[AVR32_OPC_COP],			\
 1.25237 ++    {							\
 1.25238 ++      { 0, 0 },						\
 1.25239 ++      { 0, 0 }, { 1, 0 }, { 1, 1 },			\
 1.25240 ++      { 0, (opcode) | 0x40 },				\
 1.25241 ++    },							\
 1.25242 ++  }
 1.25243 ++
 1.25244 ++const struct avr32_alias avr32_alias_table[] =
 1.25245 ++  {
 1.25246 ++    FPALIAS_DXY(FMAC, 0x00),
 1.25247 ++    FPALIAS_DXY(FNMAC, 0x01),
 1.25248 ++    FPALIAS_DXY(FMSC, 0x02),
 1.25249 ++    FPALIAS_DXY(FNMSC, 0x03),
 1.25250 ++    FPALIAS_DXY(FADD, 0x04),
 1.25251 ++    FPALIAS_DXY(FSUB, 0x05),
 1.25252 ++    FPALIAS_DXY(FMUL, 0x06),
 1.25253 ++    FPALIAS_DXY(FNMUL, 0x07),
 1.25254 ++    FPALIAS_DX(FNEG, 0x08),
 1.25255 ++    FPALIAS_DX(FABS, 0x09),
 1.25256 ++    FPALIAS_XY(FCMP, 0x0d),
 1.25257 ++    FPALIAS_DX(FMOV1, 0x0a),
 1.25258 ++    {
 1.25259 ++      AVR32_ALIAS_FMOV2_S,
 1.25260 ++      &avr32_opc_table[AVR32_OPC_MVCR_W],
 1.25261 ++      { { 0, 0 }, { 1, 0 }, { 1, 1 }, },
 1.25262 ++    },
 1.25263 ++    {
 1.25264 ++      AVR32_ALIAS_FMOV2_D,
 1.25265 ++      &avr32_opc_table[AVR32_OPC_MVCR_D],
 1.25266 ++      { { 0, 0 }, { 1, 0 }, { 1, 1 }, },
 1.25267 ++    },
 1.25268 ++    {
 1.25269 ++      AVR32_ALIAS_FMOV3_S,
 1.25270 ++      &avr32_opc_table[AVR32_OPC_MVRC_W],
 1.25271 ++      { { 0, 0 }, { 1, 0 }, { 1, 1 }, },
 1.25272 ++    },
 1.25273 ++    {
 1.25274 ++      AVR32_ALIAS_FMOV3_D,
 1.25275 ++      &avr32_opc_table[AVR32_OPC_MVRC_D],
 1.25276 ++      { { 0, 0 }, { 1, 0 }, { 1, 1 }, },
 1.25277 ++    },
 1.25278 ++    {
 1.25279 ++      AVR32_ALIAS_FCASTS_D,
 1.25280 ++      &avr32_opc_table[AVR32_OPC_COP],
 1.25281 ++      {
 1.25282 ++	{ 0, 0 },
 1.25283 ++	{ 1, 0 }, { 1, 1 }, { 0, 0 },
 1.25284 ++	{ 0, 0x0f },
 1.25285 ++      },
 1.25286 ++    },
 1.25287 ++    {
 1.25288 ++      AVR32_ALIAS_FCASTD_S,
 1.25289 ++      &avr32_opc_table[AVR32_OPC_COP],
 1.25290 ++      {
 1.25291 ++	{ 0, 0 },
 1.25292 ++	{ 1, 0 }, { 1, 1 }, { 0, 0 },
 1.25293 ++	{ 0, 0x10 },
 1.25294 ++      },
 1.25295 ++    },
 1.25296 ++    {
 1.25297 ++      AVR32_ALIAS_PICOSVMAC0,
 1.25298 ++      &avr32_opc_table[AVR32_OPC_COP],
 1.25299 ++      {
 1.25300 ++	{ 0, PICO_CPNO },
 1.25301 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25302 ++	{ 0, 0x0c },
 1.25303 ++      },
 1.25304 ++    },
 1.25305 ++    {
 1.25306 ++      AVR32_ALIAS_PICOSVMAC1,
 1.25307 ++      &avr32_opc_table[AVR32_OPC_COP],
 1.25308 ++      {
 1.25309 ++	{ 0, PICO_CPNO },
 1.25310 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25311 ++	{ 0, 0x0d },
 1.25312 ++      },
 1.25313 ++    },
 1.25314 ++    {
 1.25315 ++      AVR32_ALIAS_PICOSVMAC2,
 1.25316 ++      &avr32_opc_table[AVR32_OPC_COP],
 1.25317 ++      {
 1.25318 ++	{ 0, PICO_CPNO },
 1.25319 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25320 ++	{ 0, 0x0e },
 1.25321 ++      },
 1.25322 ++    },
 1.25323 ++    {
 1.25324 ++      AVR32_ALIAS_PICOSVMAC3,
 1.25325 ++      &avr32_opc_table[AVR32_OPC_COP],
 1.25326 ++      {
 1.25327 ++	{ 0, PICO_CPNO },
 1.25328 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25329 ++	{ 0, 0x0f },
 1.25330 ++      },
 1.25331 ++    },
 1.25332 ++    {
 1.25333 ++      AVR32_ALIAS_PICOSVMUL0,
 1.25334 ++      &avr32_opc_table[AVR32_OPC_COP],
 1.25335 ++      {
 1.25336 ++	{ 0, PICO_CPNO },
 1.25337 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25338 ++	{ 0, 0x08 },
 1.25339 ++      },
 1.25340 ++    },
 1.25341 ++    {
 1.25342 ++      AVR32_ALIAS_PICOSVMUL1,
 1.25343 ++      &avr32_opc_table[AVR32_OPC_COP],
 1.25344 ++      {
 1.25345 ++	{ 0, PICO_CPNO },
 1.25346 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25347 ++	{ 0, 0x09 },
 1.25348 ++      },
 1.25349 ++    },
 1.25350 ++    {
 1.25351 ++      AVR32_ALIAS_PICOSVMUL2,
 1.25352 ++      &avr32_opc_table[AVR32_OPC_COP],
 1.25353 ++      {
 1.25354 ++	{ 0, PICO_CPNO },
 1.25355 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25356 ++	{ 0, 0x0a },
 1.25357 ++      },
 1.25358 ++    },
 1.25359 ++    {
 1.25360 ++      AVR32_ALIAS_PICOSVMUL3,
 1.25361 ++      &avr32_opc_table[AVR32_OPC_COP],
 1.25362 ++      {
 1.25363 ++	{ 0, PICO_CPNO },
 1.25364 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25365 ++	{ 0, 0x0b },
 1.25366 ++      },
 1.25367 ++    },
 1.25368 ++    {
 1.25369 ++      AVR32_ALIAS_PICOVMAC0,
 1.25370 ++      &avr32_opc_table[AVR32_OPC_COP],
 1.25371 ++      {
 1.25372 ++	{ 0, PICO_CPNO },
 1.25373 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25374 ++	{ 0, 0x04 },
 1.25375 ++      },
 1.25376 ++    },
 1.25377 ++    {
 1.25378 ++      AVR32_ALIAS_PICOVMAC1,
 1.25379 ++      &avr32_opc_table[AVR32_OPC_COP],
 1.25380 ++      {
 1.25381 ++	{ 0, PICO_CPNO },
 1.25382 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25383 ++	{ 0, 0x05 },
 1.25384 ++      },
 1.25385 ++    },
 1.25386 ++    {
 1.25387 ++      AVR32_ALIAS_PICOVMAC2,
 1.25388 ++      &avr32_opc_table[AVR32_OPC_COP],
 1.25389 ++      {
 1.25390 ++	{ 0, PICO_CPNO },
 1.25391 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25392 ++	{ 0, 0x06 },
 1.25393 ++      },
 1.25394 ++    },
 1.25395 ++    {
 1.25396 ++      AVR32_ALIAS_PICOVMAC3,
 1.25397 ++      &avr32_opc_table[AVR32_OPC_COP],
 1.25398 ++      {
 1.25399 ++	{ 0, PICO_CPNO },
 1.25400 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25401 ++	{ 0, 0x07 },
 1.25402 ++      },
 1.25403 ++    },
 1.25404 ++    {
 1.25405 ++      AVR32_ALIAS_PICOVMUL0,
 1.25406 ++      &avr32_opc_table[AVR32_OPC_COP],
 1.25407 ++      {
 1.25408 ++	{ 0, PICO_CPNO },
 1.25409 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25410 ++	{ 0, 0x00 },
 1.25411 ++      },
 1.25412 ++    },
 1.25413 ++    {
 1.25414 ++      AVR32_ALIAS_PICOVMUL1,
 1.25415 ++      &avr32_opc_table[AVR32_OPC_COP],
 1.25416 ++      {
 1.25417 ++	{ 0, PICO_CPNO },
 1.25418 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25419 ++	{ 0, 0x01 },
 1.25420 ++      },
 1.25421 ++    },
 1.25422 ++    {
 1.25423 ++      AVR32_ALIAS_PICOVMUL2,
 1.25424 ++      &avr32_opc_table[AVR32_OPC_COP],
 1.25425 ++      {
 1.25426 ++	{ 0, PICO_CPNO },
 1.25427 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25428 ++	{ 0, 0x02 },
 1.25429 ++      },
 1.25430 ++    },
 1.25431 ++    {
 1.25432 ++      AVR32_ALIAS_PICOVMUL3,
 1.25433 ++      &avr32_opc_table[AVR32_OPC_COP],
 1.25434 ++      {
 1.25435 ++	{ 0, PICO_CPNO },
 1.25436 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25437 ++	{ 0, 0x03 },
 1.25438 ++      },
 1.25439 ++    },
 1.25440 ++    {
 1.25441 ++      AVR32_ALIAS_PICOLD_D1,
 1.25442 ++      &avr32_opc_table[AVR32_OPC_LDC_D1],
 1.25443 ++      {
 1.25444 ++	{ 0, PICO_CPNO },
 1.25445 ++	{ 1, 0 }, { 1, 1 },
 1.25446 ++      },
 1.25447 ++    },
 1.25448 ++    {
 1.25449 ++      AVR32_ALIAS_PICOLD_D2,
 1.25450 ++      &avr32_opc_table[AVR32_OPC_LDC_D2],
 1.25451 ++      {
 1.25452 ++	{ 0, PICO_CPNO },
 1.25453 ++	{ 1, 0 }, { 1, 1 },
 1.25454 ++      },
 1.25455 ++    },
 1.25456 ++    {
 1.25457 ++      AVR32_ALIAS_PICOLD_D3,
 1.25458 ++      &avr32_opc_table[AVR32_OPC_LDC_D3],
 1.25459 ++      {
 1.25460 ++	{ 0, PICO_CPNO },
 1.25461 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 }, { 1, 3 },
 1.25462 ++      },
 1.25463 ++    },
 1.25464 ++    {
 1.25465 ++      AVR32_ALIAS_PICOLD_W1,
 1.25466 ++      &avr32_opc_table[AVR32_OPC_LDC_W1],
 1.25467 ++      {
 1.25468 ++	{ 0, PICO_CPNO },
 1.25469 ++	{ 1, 0 }, { 1, 1 },
 1.25470 ++      },
 1.25471 ++    },
 1.25472 ++    {
 1.25473 ++      AVR32_ALIAS_PICOLD_W2,
 1.25474 ++      &avr32_opc_table[AVR32_OPC_LDC_W2],
 1.25475 ++      {
 1.25476 ++	{ 0, PICO_CPNO },
 1.25477 ++	{ 1, 0 }, { 1, 1 },
 1.25478 ++      },
 1.25479 ++    },
 1.25480 ++    {
 1.25481 ++      AVR32_ALIAS_PICOLD_W3,
 1.25482 ++      &avr32_opc_table[AVR32_OPC_LDC_W3],
 1.25483 ++      {
 1.25484 ++	{ 0, PICO_CPNO },
 1.25485 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 }, { 1, 3 },
 1.25486 ++      },
 1.25487 ++    },
 1.25488 ++    {
 1.25489 ++      AVR32_ALIAS_PICOLDM_D,
 1.25490 ++      &avr32_opc_table[AVR32_OPC_LDCM_D],
 1.25491 ++      {
 1.25492 ++	{ 0, PICO_CPNO },
 1.25493 ++	{ 1, 0 }, { 1, 1 },
 1.25494 ++      },
 1.25495 ++    },
 1.25496 ++    {
 1.25497 ++      AVR32_ALIAS_PICOLDM_D_PU,
 1.25498 ++      &avr32_opc_table[AVR32_OPC_LDCM_D_PU],
 1.25499 ++      {
 1.25500 ++	{ 0, PICO_CPNO },
 1.25501 ++	{ 1, 0 }, { 1, 1 },
 1.25502 ++      },
 1.25503 ++    },
 1.25504 ++    {
 1.25505 ++      AVR32_ALIAS_PICOLDM_W,
 1.25506 ++      &avr32_opc_table[AVR32_OPC_LDCM_W],
 1.25507 ++      {
 1.25508 ++	{ 0, PICO_CPNO },
 1.25509 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25510 ++      },
 1.25511 ++    },
 1.25512 ++    {
 1.25513 ++      AVR32_ALIAS_PICOLDM_W_PU,
 1.25514 ++      &avr32_opc_table[AVR32_OPC_LDCM_W_PU],
 1.25515 ++      {
 1.25516 ++	{ 0, PICO_CPNO },
 1.25517 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25518 ++      },
 1.25519 ++    },
 1.25520 ++    {
 1.25521 ++      AVR32_ALIAS_PICOMV_D1,
 1.25522 ++      &avr32_opc_table[AVR32_OPC_MVCR_D],
 1.25523 ++      {
 1.25524 ++	{ 0, PICO_CPNO },
 1.25525 ++	{ 1, 0 }, { 1, 1 },
 1.25526 ++      },
 1.25527 ++    },
 1.25528 ++    {
 1.25529 ++      AVR32_ALIAS_PICOMV_D2,
 1.25530 ++      &avr32_opc_table[AVR32_OPC_MVRC_D],
 1.25531 ++      {
 1.25532 ++	{ 0, PICO_CPNO },
 1.25533 ++	{ 1, 0 }, { 1, 1 },
 1.25534 ++      },
 1.25535 ++    },
 1.25536 ++    {
 1.25537 ++      AVR32_ALIAS_PICOMV_W1,
 1.25538 ++      &avr32_opc_table[AVR32_OPC_MVCR_W],
 1.25539 ++      {
 1.25540 ++	{ 0, PICO_CPNO },
 1.25541 ++	{ 1, 0 }, { 1, 1 },
 1.25542 ++      },
 1.25543 ++    },
 1.25544 ++    {
 1.25545 ++      AVR32_ALIAS_PICOMV_W2,
 1.25546 ++      &avr32_opc_table[AVR32_OPC_MVRC_W],
 1.25547 ++      {
 1.25548 ++	{ 0, PICO_CPNO },
 1.25549 ++	{ 1, 0 }, { 1, 1 },
 1.25550 ++      },
 1.25551 ++    },
 1.25552 ++    {
 1.25553 ++      AVR32_ALIAS_PICOST_D1,
 1.25554 ++      &avr32_opc_table[AVR32_OPC_STC_D1],
 1.25555 ++      {
 1.25556 ++	{ 0, PICO_CPNO },
 1.25557 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25558 ++      },
 1.25559 ++    },
 1.25560 ++    {
 1.25561 ++      AVR32_ALIAS_PICOST_D2,
 1.25562 ++      &avr32_opc_table[AVR32_OPC_STC_D2],
 1.25563 ++      {
 1.25564 ++	{ 0, PICO_CPNO },
 1.25565 ++	{ 1, 0 }, { 1, 1 },
 1.25566 ++      },
 1.25567 ++    },
 1.25568 ++    {
 1.25569 ++      AVR32_ALIAS_PICOST_D3,
 1.25570 ++      &avr32_opc_table[AVR32_OPC_STC_D3],
 1.25571 ++      {
 1.25572 ++	{ 0, PICO_CPNO },
 1.25573 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 }, { 1, 3 },
 1.25574 ++      },
 1.25575 ++    },
 1.25576 ++    {
 1.25577 ++      AVR32_ALIAS_PICOST_W1,
 1.25578 ++      &avr32_opc_table[AVR32_OPC_STC_W1],
 1.25579 ++      {
 1.25580 ++	{ 0, PICO_CPNO },
 1.25581 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25582 ++      },
 1.25583 ++    },
 1.25584 ++    {
 1.25585 ++      AVR32_ALIAS_PICOST_W2,
 1.25586 ++      &avr32_opc_table[AVR32_OPC_STC_W2],
 1.25587 ++      {
 1.25588 ++	{ 0, PICO_CPNO },
 1.25589 ++	{ 1, 0 }, { 1, 1 },
 1.25590 ++      },
 1.25591 ++    },
 1.25592 ++    {
 1.25593 ++      AVR32_ALIAS_PICOST_W3,
 1.25594 ++      &avr32_opc_table[AVR32_OPC_STC_W3],
 1.25595 ++      {
 1.25596 ++	{ 0, PICO_CPNO },
 1.25597 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 }, { 1, 3 },
 1.25598 ++      },
 1.25599 ++    },
 1.25600 ++    {
 1.25601 ++      AVR32_ALIAS_PICOSTM_D,
 1.25602 ++      &avr32_opc_table[AVR32_OPC_STCM_D],
 1.25603 ++      {
 1.25604 ++	{ 0, PICO_CPNO },
 1.25605 ++	{ 1, 0 }, { 1, 1 },
 1.25606 ++      },
 1.25607 ++    },
 1.25608 ++    {
 1.25609 ++      AVR32_ALIAS_PICOSTM_D_PU,
 1.25610 ++      &avr32_opc_table[AVR32_OPC_STCM_D_PU],
 1.25611 ++      {
 1.25612 ++	{ 0, PICO_CPNO },
 1.25613 ++	{ 1, 0 }, { 1, 1 },
 1.25614 ++      },
 1.25615 ++    },
 1.25616 ++    {
 1.25617 ++      AVR32_ALIAS_PICOSTM_W,
 1.25618 ++      &avr32_opc_table[AVR32_OPC_STCM_W],
 1.25619 ++      {
 1.25620 ++	{ 0, PICO_CPNO },
 1.25621 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25622 ++      },
 1.25623 ++    },
 1.25624 ++    {
 1.25625 ++      AVR32_ALIAS_PICOSTM_W_PU,
 1.25626 ++      &avr32_opc_table[AVR32_OPC_STCM_W_PU],
 1.25627 ++      {
 1.25628 ++	{ 0, PICO_CPNO },
 1.25629 ++	{ 1, 0 }, { 1, 1 }, { 1, 2 },
 1.25630 ++      },
 1.25631 ++    },
 1.25632 ++  };
 1.25633 ++
 1.25634 ++
 1.25635 ++#define SYNTAX_NORMAL0(id, mne, opc, arch)			\
 1.25636 ++  {							\
 1.25637 ++    AVR32_SYNTAX_##id, arch,			\
 1.25638 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 1.25639 ++    AVR32_PARSER_NORMAL,					\
 1.25640 ++    { &avr32_opc_table[AVR32_OPC_##opc], },		\
 1.25641 ++    NULL, 0, { }					\
 1.25642 ++  }
 1.25643 ++#define SYNTAX_NORMAL1(id, mne, opc, op0, arch)		\
 1.25644 ++  {							\
 1.25645 ++    AVR32_SYNTAX_##id, arch,			\
 1.25646 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 1.25647 ++    AVR32_PARSER_NORMAL,					\
 1.25648 ++    { &avr32_opc_table[AVR32_OPC_##opc], },		\
 1.25649 ++    NULL, 1,						\
 1.25650 ++    {							\
 1.25651 ++      AVR32_OPERAND_##op0,				\
 1.25652 ++    }							\
 1.25653 ++  }
 1.25654 ++#define SYNTAX_NORMALM1(id, mne, opc, op0, arch)		\
 1.25655 ++  {							\
 1.25656 ++    AVR32_SYNTAX_##id, arch,			\
 1.25657 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 1.25658 ++    AVR32_PARSER_NORMAL,					\
 1.25659 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 1.25660 ++    NULL, -1,						\
 1.25661 ++    {							\
 1.25662 ++      AVR32_OPERAND_##op0,				\
 1.25663 ++    }							\
 1.25664 ++  }
 1.25665 ++#define SYNTAX_NORMAL2(id, mne, opc, op0, op1, arch)		\
 1.25666 ++  {							\
 1.25667 ++    AVR32_SYNTAX_##id, arch,			\
 1.25668 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 1.25669 ++    AVR32_PARSER_NORMAL,					\
 1.25670 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 1.25671 ++    NULL, 2,						\
 1.25672 ++    {							\
 1.25673 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,		\
 1.25674 ++    }							\
 1.25675 ++  }
 1.25676 ++#define SYNTAX_NORMALM2(id, mne, opc, op0, op1, arch)		\
 1.25677 ++  {							\
 1.25678 ++    AVR32_SYNTAX_##id, arch,			\
 1.25679 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 1.25680 ++    AVR32_PARSER_NORMAL,					\
 1.25681 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 1.25682 ++    NULL, -2,						\
 1.25683 ++    {							\
 1.25684 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,		\
 1.25685 ++    }							\
 1.25686 ++  }
 1.25687 ++#define SYNTAX_NORMAL3(id, mne, opc, op0, op1, op2, arch)	\
 1.25688 ++  {							\
 1.25689 ++    AVR32_SYNTAX_##id, arch,			\
 1.25690 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 1.25691 ++    AVR32_PARSER_NORMAL,					\
 1.25692 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 1.25693 ++    NULL, 3,						\
 1.25694 ++    {							\
 1.25695 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,		\
 1.25696 ++      AVR32_OPERAND_##op2,				\
 1.25697 ++    }							\
 1.25698 ++  }
 1.25699 ++#define SYNTAX_NORMALM3(id, mne, opc, op0, op1, op2, arch)	\
 1.25700 ++  {							\
 1.25701 ++    AVR32_SYNTAX_##id, arch,			\
 1.25702 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 1.25703 ++    AVR32_PARSER_NORMAL,					\
 1.25704 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 1.25705 ++    NULL, -3,						\
 1.25706 ++    {							\
 1.25707 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,		\
 1.25708 ++      AVR32_OPERAND_##op2,				\
 1.25709 ++    }							\
 1.25710 ++  }
 1.25711 ++#define SYNTAX_NORMAL4(id, mne, opc, op0, op1, op2, op3, arch)\
 1.25712 ++  {							\
 1.25713 ++    AVR32_SYNTAX_##id, arch,			\
 1.25714 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 1.25715 ++    AVR32_PARSER_NORMAL,					\
 1.25716 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 1.25717 ++    NULL, 4,						\
 1.25718 ++    {							\
 1.25719 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,		\
 1.25720 ++      AVR32_OPERAND_##op2, AVR32_OPERAND_##op3,		\
 1.25721 ++    }							\
 1.25722 ++  }
 1.25723 ++#define SYNTAX_NORMAL5(id, mne, opc, op0, op1, op2, op3, op4, arch)	\
 1.25724 ++  {								\
 1.25725 ++    AVR32_SYNTAX_##id, arch,				\
 1.25726 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],		\
 1.25727 ++    AVR32_PARSER_NORMAL,						\
 1.25728 ++    { &avr32_opc_table[AVR32_OPC_##opc], },				\
 1.25729 ++    NULL, 5,							\
 1.25730 ++    {								\
 1.25731 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,			\
 1.25732 ++      AVR32_OPERAND_##op2, AVR32_OPERAND_##op3,			\
 1.25733 ++      AVR32_OPERAND_##op4,					\
 1.25734 ++    }								\
 1.25735 ++  }
 1.25736 ++
 1.25737 ++#define SYNTAX_NORMAL_C1(id, mne, opc, nxt, op0, arch)	\
 1.25738 ++  {							\
 1.25739 ++    AVR32_SYNTAX_##id, arch,			\
 1.25740 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 1.25741 ++    AVR32_PARSER_NORMAL,					\
 1.25742 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 1.25743 ++    &avr32_syntax_table[AVR32_SYNTAX_##nxt], 1,		\
 1.25744 ++    {							\
 1.25745 ++      AVR32_OPERAND_##op0,				\
 1.25746 ++    }							\
 1.25747 ++  }
 1.25748 ++#define SYNTAX_NORMAL_CM1(id, mne, opc, nxt, op0, arch)	\
 1.25749 ++  {							\
 1.25750 ++    AVR32_SYNTAX_##id, arch,			\
 1.25751 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 1.25752 ++    AVR32_PARSER_NORMAL,					\
 1.25753 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 1.25754 ++    &avr32_syntax_table[AVR32_SYNTAX_##nxt], -1,	\
 1.25755 ++    {							\
 1.25756 ++      AVR32_OPERAND_##op0,				\
 1.25757 ++    }							\
 1.25758 ++  }
 1.25759 ++#define SYNTAX_NORMAL_C2(id, mne, opc, nxt, op0, op1, arch)	\
 1.25760 ++  {							\
 1.25761 ++    AVR32_SYNTAX_##id, arch,			\
 1.25762 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 1.25763 ++    AVR32_PARSER_NORMAL,					\
 1.25764 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 1.25765 ++    &avr32_syntax_table[AVR32_SYNTAX_##nxt], 2,		\
 1.25766 ++    {							\
 1.25767 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,		\
 1.25768 ++    }							\
 1.25769 ++  }
 1.25770 ++#define SYNTAX_NORMAL_CM2(id, mne, opc, nxt, op0, op1, arch)	\
 1.25771 ++  {							\
 1.25772 ++    AVR32_SYNTAX_##id, arch,			\
 1.25773 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],	\
 1.25774 ++    AVR32_PARSER_NORMAL,					\
 1.25775 ++    { &avr32_opc_table[AVR32_OPC_##opc], },			\
 1.25776 ++    &avr32_syntax_table[AVR32_SYNTAX_##nxt], -2,	\
 1.25777 ++    {							\
 1.25778 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,		\
 1.25779 ++    }							\
 1.25780 ++  }
 1.25781 ++#define SYNTAX_NORMAL_C3(id, mne, opc, nxt, op0, op1, op2, arch)	\
 1.25782 ++  {								\
 1.25783 ++    AVR32_SYNTAX_##id, arch,				\
 1.25784 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],		\
 1.25785 ++    AVR32_PARSER_NORMAL,						\
 1.25786 ++    { &avr32_opc_table[AVR32_OPC_##opc], },				\
 1.25787 ++    &avr32_syntax_table[AVR32_SYNTAX_##nxt], 3,			\
 1.25788 ++    {								\
 1.25789 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,			\
 1.25790 ++      AVR32_OPERAND_##op2,					\
 1.25791 ++    }								\
 1.25792 ++  }
 1.25793 ++#define SYNTAX_NORMAL_CM3(id, mne, opc, nxt, op0, op1, op2, arch)	\
 1.25794 ++  {								\
 1.25795 ++    AVR32_SYNTAX_##id, arch,				\
 1.25796 ++    &avr32_mnemonic_table[AVR32_MNEMONIC_##mne],		\
 1.25797 ++    AVR32_PARSER_NORMAL,						\
 1.25798 ++    { &avr32_opc_table[AVR32_OPC_##opc], },				\
 1.25799 ++    &avr32_syntax_table[AVR32_SYNTAX_##nxt], -3,		\
 1.25800 ++    {								\
 1.25801 ++      AVR32_OPERAND_##op0, AVR32_OPERAND_##op1,			\
 1.25802 ++      AVR32_OPERAND_##op2,					\
 1.25803 ++    }								\
 1.25804 ++  }
 1.25805 ++
 1.25806 ++#define SYNTAX_FP(name, nr_ops)					\
 1.25807 ++    {								\
 1.25808 ++      AVR32_SYNTAX_##name##_S,					\
 1.25809 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,			\
 1.25810 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_##name##_S] },	\
 1.25811 ++      NULL, nr_ops,						\
 1.25812 ++      {								\
 1.25813 ++	AVR32_OPERAND_FPREG_S,					\
 1.25814 ++	AVR32_OPERAND_FPREG_S,					\
 1.25815 ++	AVR32_OPERAND_FPREG_S,					\
 1.25816 ++      },							\
 1.25817 ++    },								\
 1.25818 ++    {								\
 1.25819 ++      AVR32_SYNTAX_##name##_D,					\
 1.25820 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,			\
 1.25821 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_##name##_D] },	\
 1.25822 ++      NULL, nr_ops,						\
 1.25823 ++      {								\
 1.25824 ++	AVR32_OPERAND_FPREG_D,					\
 1.25825 ++	AVR32_OPERAND_FPREG_D,					\
 1.25826 ++	AVR32_OPERAND_FPREG_D,					\
 1.25827 ++      },							\
 1.25828 ++    }
 1.25829 ++
 1.25830 ++const struct avr32_syntax avr32_syntax_table[] =
 1.25831 ++  {
 1.25832 ++    SYNTAX_NORMAL1(ABS, ABS, ABS, INTREG, AVR32_V1),
 1.25833 ++    SYNTAX_NORMAL1(ACALL, ACALL, ACALL, UNSIGNED_CONST_W, AVR32_V1),
 1.25834 ++    SYNTAX_NORMAL1(ACR, ACR, ACR, INTREG,AVR32_V1),
 1.25835 ++    SYNTAX_NORMAL3(ADC, ADC, ADC, INTREG, INTREG, INTREG, AVR32_V1),
 1.25836 ++    SYNTAX_NORMAL_C2(ADD1, ADD, ADD1, ADD2, INTREG, INTREG, AVR32_V1),
 1.25837 ++    SYNTAX_NORMAL3(ADD2, ADD, ADD2, INTREG, INTREG, INTREG_LSL, AVR32_V1),
 1.25838 ++    SYNTAX_NORMAL3(ADDABS, ADDABS, ADDABS, INTREG, INTREG, INTREG, AVR32_V1),
 1.25839 ++    SYNTAX_NORMAL3(ADDHH_W, ADDHH_W, ADDHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 1.25840 ++    SYNTAX_NORMAL_C2(AND1, AND, AND1, AND2, INTREG, INTREG, AVR32_V1),
 1.25841 ++    SYNTAX_NORMAL_C3(AND2, AND, AND2, AND3, INTREG, INTREG, INTREG_LSL, AVR32_V1),
 1.25842 ++    SYNTAX_NORMAL3(AND3, AND, AND3, INTREG, INTREG, INTREG_LSR, AVR32_V1),
 1.25843 ++    SYNTAX_NORMAL_C2(ANDH, ANDH, ANDH, ANDH_COH, INTREG, UNSIGNED_CONST, AVR32_V1),
 1.25844 ++    SYNTAX_NORMAL3(ANDH_COH, ANDH, ANDH_COH, INTREG, UNSIGNED_CONST, COH, AVR32_V1),
 1.25845 ++    SYNTAX_NORMAL_C2(ANDL, ANDL, ANDL, ANDL_COH, INTREG, UNSIGNED_CONST, AVR32_V1),
 1.25846 ++    SYNTAX_NORMAL3(ANDL_COH, ANDL, ANDL_COH, INTREG, UNSIGNED_CONST, COH, AVR32_V1),
 1.25847 ++    SYNTAX_NORMAL2(ANDN, ANDN, ANDN, INTREG, INTREG, AVR32_V1),
 1.25848 ++    SYNTAX_NORMAL_C3(ASR1, ASR, ASR1, ASR3, INTREG, INTREG, INTREG, AVR32_V1),
 1.25849 ++    SYNTAX_NORMAL_C3(ASR3, ASR, ASR3, ASR2, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 1.25850 ++    SYNTAX_NORMAL2(ASR2, ASR, ASR2, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 1.25851 ++    SYNTAX_NORMAL4(BFEXTS, BFEXTS, BFEXTS, INTREG, INTREG, UNSIGNED_NUMBER, UNSIGNED_NUMBER, AVR32_V1),
 1.25852 ++    SYNTAX_NORMAL4(BFEXTU, BFEXTU, BFEXTU, INTREG, INTREG, UNSIGNED_NUMBER, UNSIGNED_NUMBER, AVR32_V1),
 1.25853 ++    SYNTAX_NORMAL4(BFINS, BFINS, BFINS, INTREG, INTREG, UNSIGNED_NUMBER, UNSIGNED_NUMBER, AVR32_V1),
 1.25854 ++    SYNTAX_NORMAL2(BLD, BLD, BLD, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 1.25855 ++    SYNTAX_NORMAL_C1(BREQ1, BREQ, BREQ1, BREQ2, JMPLABEL, AVR32_V1),
 1.25856 ++    SYNTAX_NORMAL_C1(BRNE1, BRNE, BRNE1, BRNE2, JMPLABEL, AVR32_V1),
 1.25857 ++    SYNTAX_NORMAL_C1(BRCC1, BRCC, BRCC1, BRCC2, JMPLABEL, AVR32_V1),
 1.25858 ++    SYNTAX_NORMAL_C1(BRCS1, BRCS, BRCS1, BRCS2, JMPLABEL, AVR32_V1),
 1.25859 ++    SYNTAX_NORMAL_C1(BRGE1, BRGE, BRGE1, BRGE2, JMPLABEL, AVR32_V1),
 1.25860 ++    SYNTAX_NORMAL_C1(BRLT1, BRLT, BRLT1, BRLT2, JMPLABEL, AVR32_V1),
 1.25861 ++    SYNTAX_NORMAL_C1(BRMI1, BRMI, BRMI1, BRMI2, JMPLABEL, AVR32_V1),
 1.25862 ++    SYNTAX_NORMAL_C1(BRPL1, BRPL, BRPL1, BRPL2, JMPLABEL, AVR32_V1),
 1.25863 ++    SYNTAX_NORMAL_C1(BRHS1, BRHS, BRCC1, BRHS2, JMPLABEL, AVR32_V1),
 1.25864 ++    SYNTAX_NORMAL_C1(BRLO1, BRLO, BRCS1, BRLO2, JMPLABEL, AVR32_V1),
 1.25865 ++    SYNTAX_NORMAL1(BREQ2, BREQ, BREQ2, JMPLABEL, AVR32_V1),
 1.25866 ++    SYNTAX_NORMAL1(BRNE2, BRNE, BRNE2, JMPLABEL, AVR32_V1),
 1.25867 ++    SYNTAX_NORMAL1(BRCC2, BRCC, BRCC2, JMPLABEL, AVR32_V1),
 1.25868 ++    SYNTAX_NORMAL1(BRCS2, BRCS, BRCS2, JMPLABEL, AVR32_V1),
 1.25869 ++    SYNTAX_NORMAL1(BRGE2, BRGE, BRGE2, JMPLABEL, AVR32_V1),
 1.25870 ++    SYNTAX_NORMAL1(BRLT2, BRLT, BRLT2, JMPLABEL, AVR32_V1),
 1.25871 ++    SYNTAX_NORMAL1(BRMI2, BRMI, BRMI2, JMPLABEL, AVR32_V1),
 1.25872 ++    SYNTAX_NORMAL1(BRPL2, BRPL, BRPL2, JMPLABEL, AVR32_V1),
 1.25873 ++    SYNTAX_NORMAL1(BRLS, BRLS, BRLS, JMPLABEL, AVR32_V1),
 1.25874 ++    SYNTAX_NORMAL1(BRGT, BRGT, BRGT, JMPLABEL, AVR32_V1),
 1.25875 ++    SYNTAX_NORMAL1(BRLE, BRLE, BRLE, JMPLABEL, AVR32_V1),
 1.25876 ++    SYNTAX_NORMAL1(BRHI, BRHI, BRHI, JMPLABEL, AVR32_V1),
 1.25877 ++    SYNTAX_NORMAL1(BRVS, BRVS, BRVS, JMPLABEL, AVR32_V1),
 1.25878 ++    SYNTAX_NORMAL1(BRVC, BRVC, BRVC, JMPLABEL, AVR32_V1),
 1.25879 ++    SYNTAX_NORMAL1(BRQS, BRQS, BRQS, JMPLABEL, AVR32_V1),
 1.25880 ++    SYNTAX_NORMAL1(BRAL, BRAL, BRAL, JMPLABEL, AVR32_V1),
 1.25881 ++    SYNTAX_NORMAL1(BRHS2, BRHS, BRCC2, JMPLABEL, AVR32_V1),
 1.25882 ++    SYNTAX_NORMAL1(BRLO2, BRLO, BRCS2, JMPLABEL, AVR32_V1),
 1.25883 ++    SYNTAX_NORMAL0(BREAKPOINT, BREAKPOINT, BREAKPOINT, AVR32_V1),
 1.25884 ++    SYNTAX_NORMAL1(BREV, BREV, BREV, INTREG, AVR32_V1),
 1.25885 ++    SYNTAX_NORMAL2(BST, BST, BST, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 1.25886 ++    SYNTAX_NORMAL2(CACHE, CACHE, CACHE, INTREG_SDISP, UNSIGNED_NUMBER, AVR32_V1),
 1.25887 ++    SYNTAX_NORMAL1(CASTS_B, CASTS_B, CASTS_B, INTREG, AVR32_V1),
 1.25888 ++    SYNTAX_NORMAL1(CASTS_H, CASTS_H, CASTS_H, INTREG, AVR32_V1),
 1.25889 ++    SYNTAX_NORMAL1(CASTU_B, CASTU_B, CASTU_B, INTREG, AVR32_V1),
 1.25890 ++    SYNTAX_NORMAL1(CASTU_H, CASTU_H, CASTU_H, INTREG, AVR32_V1),
 1.25891 ++    SYNTAX_NORMAL2(CBR, CBR, CBR, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 1.25892 ++    SYNTAX_NORMAL2(CLZ, CLZ, CLZ, INTREG, INTREG, AVR32_V1),
 1.25893 ++    SYNTAX_NORMAL1(COM, COM, COM, INTREG, AVR32_V1),
 1.25894 ++    SYNTAX_NORMAL5(COP, COP, COP, CPNO, CPREG, CPREG, CPREG, UNSIGNED_NUMBER, AVR32_V1),
 1.25895 ++    SYNTAX_NORMAL2(CP_B, CP_B, CP_B, INTREG, INTREG, AVR32_V1),
 1.25896 ++    SYNTAX_NORMAL2(CP_H, CP_H, CP_H, INTREG, INTREG, AVR32_V1),
 1.25897 ++    SYNTAX_NORMAL_C2(CP_W1, CP_W, CP_W1, CP_W2, INTREG, INTREG, AVR32_V1),
 1.25898 ++    SYNTAX_NORMAL_C2(CP_W2, CP_W, CP_W2, CP_W3, INTREG, SIGNED_CONST, AVR32_V1),
 1.25899 ++    SYNTAX_NORMAL2(CP_W3, CP_W, CP_W3, INTREG, SIGNED_CONST, AVR32_V1),
 1.25900 ++    SYNTAX_NORMAL_C2(CPC1, CPC, CPC1, CPC2, INTREG, INTREG, AVR32_V1),
 1.25901 ++    SYNTAX_NORMAL1(CPC2, CPC, CPC2, INTREG, AVR32_V1),
 1.25902 ++    SYNTAX_NORMAL1(CSRF, CSRF, CSRF, UNSIGNED_NUMBER, AVR32_V1),
 1.25903 ++    SYNTAX_NORMAL1(CSRFCZ, CSRFCZ, CSRFCZ, UNSIGNED_NUMBER, AVR32_V1),
 1.25904 ++    SYNTAX_NORMAL3(DIVS, DIVS, DIVS, INTREG, INTREG, INTREG, AVR32_V1),
 1.25905 ++    SYNTAX_NORMAL3(DIVU, DIVU, DIVU, INTREG, INTREG, INTREG, AVR32_V1),
 1.25906 ++    SYNTAX_NORMAL_C2(EOR1, EOR, EOR1, EOR2, INTREG, INTREG, AVR32_V1),
 1.25907 ++    SYNTAX_NORMAL_C3(EOR2, EOR, EOR2, EOR3, INTREG, INTREG, INTREG_LSL, AVR32_V1),
 1.25908 ++    SYNTAX_NORMAL3(EOR3, EOR, EOR3, INTREG, INTREG, INTREG_LSR, AVR32_V1),
 1.25909 ++    SYNTAX_NORMAL2(EORL, EORL, EORL, INTREG, UNSIGNED_CONST, AVR32_V1),
 1.25910 ++    SYNTAX_NORMAL2(EORH, EORH, EORH, INTREG, UNSIGNED_CONST, AVR32_V1),
 1.25911 ++    SYNTAX_NORMAL0(FRS, FRS, FRS, AVR32_V1),
 1.25912 ++    SYNTAX_NORMAL1(ICALL, ICALL, ICALL, INTREG, AVR32_V1),
 1.25913 ++    SYNTAX_NORMAL1(INCJOSP, INCJOSP, INCJOSP, JOSPINC, AVR32_V1),
 1.25914 ++    SYNTAX_NORMAL_C2(LD_D1, LD_D, LD_D1, LD_D2, DWREG, INTREG_POSTINC, AVR32_V1),
 1.25915 ++    SYNTAX_NORMAL_C2(LD_D2, LD_D, LD_D2, LD_D3, DWREG, INTREG_PREDEC, AVR32_V1),
 1.25916 ++    SYNTAX_NORMAL_C2(LD_D3, LD_D, LD_D3, LD_D5, DWREG, INTREG, AVR32_V1),
 1.25917 ++    SYNTAX_NORMAL_C2(LD_D5, LD_D, LD_D5, LD_D4, DWREG, INTREG_INDEX, AVR32_V1),
 1.25918 ++    SYNTAX_NORMAL2(LD_D4, LD_D, LD_D4, DWREG, INTREG_SDISP, AVR32_V1),
 1.25919 ++    SYNTAX_NORMAL_C2(LD_SB2, LD_SB, LD_SB2, LD_SB1, INTREG, INTREG_INDEX, AVR32_V1),
 1.25920 ++    SYNTAX_NORMAL2(LD_SB1, LD_SB, LD_SB1, INTREG, INTREG_SDISP, AVR32_V1),
 1.25921 ++    SYNTAX_NORMAL_C2(LD_UB1, LD_UB, LD_UB1, LD_UB2, INTREG, INTREG_POSTINC, AVR32_V1),
 1.25922 ++    SYNTAX_NORMAL_C2(LD_UB2, LD_UB, LD_UB2, LD_UB5, INTREG, INTREG_PREDEC, AVR32_V1),
 1.25923 ++    SYNTAX_NORMAL_C2(LD_UB5, LD_UB, LD_UB5, LD_UB3, INTREG, INTREG_INDEX, AVR32_V1),
 1.25924 ++    SYNTAX_NORMAL_C2(LD_UB3, LD_UB, LD_UB3, LD_UB4, INTREG, INTREG_UDISP, AVR32_V1),
 1.25925 ++    SYNTAX_NORMAL2(LD_UB4, LD_UB, LD_UB4, INTREG, INTREG_SDISP, AVR32_V1),
 1.25926 ++    SYNTAX_NORMAL_C2(LD_SH1, LD_SH, LD_SH1, LD_SH2, INTREG, INTREG_POSTINC, AVR32_V1),
 1.25927 ++    SYNTAX_NORMAL_C2(LD_SH2, LD_SH, LD_SH2, LD_SH5, INTREG, INTREG_PREDEC, AVR32_V1),
 1.25928 ++    SYNTAX_NORMAL_C2(LD_SH5, LD_SH, LD_SH5, LD_SH3, INTREG, INTREG_INDEX, AVR32_V1),
 1.25929 ++    SYNTAX_NORMAL_C2(LD_SH3, LD_SH, LD_SH3, LD_SH4, INTREG, INTREG_UDISP_H, AVR32_V1),
 1.25930 ++    SYNTAX_NORMAL2(LD_SH4, LD_SH, LD_SH4, INTREG, INTREG_SDISP, AVR32_V1),
 1.25931 ++    SYNTAX_NORMAL_C2(LD_UH1, LD_UH, LD_UH1, LD_UH2, INTREG, INTREG_POSTINC, AVR32_V1),
 1.25932 ++    SYNTAX_NORMAL_C2(LD_UH2, LD_UH, LD_UH2, LD_UH5, INTREG, INTREG_PREDEC, AVR32_V1),
 1.25933 ++    SYNTAX_NORMAL_C2(LD_UH5, LD_UH, LD_UH5, LD_UH3, INTREG, INTREG_INDEX, AVR32_V1),
 1.25934 ++    SYNTAX_NORMAL_C2(LD_UH3, LD_UH, LD_UH3, LD_UH4, INTREG, INTREG_UDISP_H, AVR32_V1),
 1.25935 ++    SYNTAX_NORMAL2(LD_UH4, LD_UH, LD_UH4, INTREG, INTREG_SDISP, AVR32_V1),
 1.25936 ++    SYNTAX_NORMAL_C2(LD_W1, LD_W, LD_W1, LD_W2, INTREG, INTREG_POSTINC, AVR32_V1),
 1.25937 ++    SYNTAX_NORMAL_C2(LD_W2, LD_W, LD_W2, LD_W5, INTREG, INTREG_PREDEC, AVR32_V1),
 1.25938 ++    SYNTAX_NORMAL_C2(LD_W5, LD_W, LD_W5, LD_W6, INTREG, INTREG_INDEX, AVR32_V1),
 1.25939 ++    SYNTAX_NORMAL_C2(LD_W6, LD_W, LD_W6, LD_W3, INTREG, INTREG_XINDEX, AVR32_V1),
 1.25940 ++    SYNTAX_NORMAL_C2(LD_W3, LD_W, LD_W3, LD_W4, INTREG, INTREG_UDISP_W, AVR32_V1),
 1.25941 ++    SYNTAX_NORMAL2(LD_W4, LD_W, LD_W4, INTREG, INTREG_SDISP, AVR32_V1),
 1.25942 ++    SYNTAX_NORMAL3(LDC_D1, LDC_D, LDC_D1, CPNO, CPREG_D, INTREG_UDISP_W, AVR32_V1),
 1.25943 ++    SYNTAX_NORMAL_C3(LDC_D2, LDC_D, LDC_D2, LDC_D1, CPNO, CPREG_D, INTREG_PREDEC, AVR32_V1),
 1.25944 ++    SYNTAX_NORMAL_C3(LDC_D3, LDC_D, LDC_D3, LDC_D2, CPNO, CPREG_D, INTREG_INDEX, AVR32_V1),
 1.25945 ++    SYNTAX_NORMAL3(LDC_W1, LDC_W, LDC_W1, CPNO, CPREG, INTREG_UDISP_W, AVR32_V1),
 1.25946 ++    SYNTAX_NORMAL_C3(LDC_W2, LDC_W, LDC_W2, LDC_W1, CPNO, CPREG, INTREG_PREDEC, AVR32_V1),
 1.25947 ++    SYNTAX_NORMAL_C3(LDC_W3, LDC_W, LDC_W3, LDC_W2, CPNO, CPREG, INTREG_INDEX, AVR32_V1),
 1.25948 ++    SYNTAX_NORMAL2(LDC0_D, LDC0_D, LDC0_D, CPREG_D, INTREG_UDISP_W, AVR32_V1),
 1.25949 ++    SYNTAX_NORMAL2(LDC0_W, LDC0_W, LDC0_W, CPREG, INTREG_UDISP_W, AVR32_V1),
 1.25950 ++    SYNTAX_NORMAL_CM3(LDCM_D, LDCM_D, LDCM_D, LDCM_D_PU, CPNO, INTREG, REGLIST_CPD8, AVR32_V1),
 1.25951 ++    SYNTAX_NORMALM3(LDCM_D_PU, LDCM_D, LDCM_D_PU, CPNO, INTREG_POSTINC, REGLIST_CPD8, AVR32_V1),
 1.25952 ++    SYNTAX_NORMAL_CM3(LDCM_W, LDCM_W, LDCM_W, LDCM_W_PU, CPNO, INTREG, REGLIST_CP8, AVR32_V1),
 1.25953 ++    SYNTAX_NORMALM3(LDCM_W_PU, LDCM_W, LDCM_W_PU, CPNO, INTREG_POSTINC, REGLIST_CP8, AVR32_V1),
 1.25954 ++    SYNTAX_NORMAL2(LDDPC, LDDPC, LDDPC, INTREG, PC_UDISP_W, AVR32_V1),
 1.25955 ++    SYNTAX_NORMAL2(LDDPC_EXT, LDDPC, LDDPC_EXT, INTREG, SIGNED_CONST, AVR32_V1),
 1.25956 ++    SYNTAX_NORMAL2(LDDSP, LDDSP, LDDSP, INTREG, SP_UDISP_W, AVR32_V1),
 1.25957 ++    SYNTAX_NORMAL2(LDINS_B, LDINS_B, LDINS_B, INTREG_BSEL, INTREG_SDISP, AVR32_V1),
 1.25958 ++    SYNTAX_NORMAL2(LDINS_H, LDINS_H, LDINS_H, INTREG_HSEL, INTREG_SDISP_H, AVR32_V1),
 1.25959 ++    SYNTAX_NORMALM1(LDM, LDM, LDM, REGLIST_LDM, AVR32_V1),
 1.25960 ++    SYNTAX_NORMAL_CM2(LDMTS, LDMTS, LDMTS, LDMTS_PU, INTREG, REGLIST16, AVR32_V1),
 1.25961 ++    SYNTAX_NORMALM2(LDMTS_PU, LDMTS, LDMTS_PU, INTREG_POSTINC, REGLIST16, AVR32_V1),
 1.25962 ++    SYNTAX_NORMAL2(LDSWP_SH, LDSWP_SH, LDSWP_SH, INTREG, INTREG_SDISP_H, AVR32_V1),
 1.25963 ++    SYNTAX_NORMAL2(LDSWP_UH, LDSWP_UH, LDSWP_UH, INTREG, INTREG_SDISP_H, AVR32_V1),
 1.25964 ++    SYNTAX_NORMAL2(LDSWP_W, LDSWP_W, LDSWP_W, INTREG, INTREG_SDISP_W, AVR32_V1),
 1.25965 ++    SYNTAX_NORMAL_C3(LSL1, LSL, LSL1, LSL3, INTREG, INTREG, INTREG, AVR32_V1),
 1.25966 ++    SYNTAX_NORMAL_C3(LSL3, LSL, LSL3, LSL2, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 1.25967 ++    SYNTAX_NORMAL2(LSL2, LSL, LSL2, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 1.25968 ++    SYNTAX_NORMAL_C3(LSR1, LSR, LSR1, LSR3, INTREG, INTREG, INTREG, AVR32_V1),
 1.25969 ++    SYNTAX_NORMAL_C3(LSR3, LSR, LSR3, LSR2, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 1.25970 ++    SYNTAX_NORMAL2(LSR2, LSR, LSR2, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 1.25971 ++    SYNTAX_NORMAL3(MAC, MAC, MAC, INTREG, INTREG, INTREG, AVR32_V1),
 1.25972 ++    SYNTAX_NORMAL3(MACHH_D, MACHH_D, MACHH_D, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 1.25973 ++    SYNTAX_NORMAL3(MACHH_W, MACHH_W, MACHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 1.25974 ++    SYNTAX_NORMAL3(MACS_D, MACS_D, MACS_D, INTREG, INTREG, INTREG, AVR32_V1),
 1.25975 ++    SYNTAX_NORMAL3(MACSATHH_W, MACSATHH_W, MACSATHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 1.25976 ++    SYNTAX_NORMAL3(MACUD, MACU_D, MACUD, INTREG, INTREG, INTREG, AVR32_V1),
 1.25977 ++    SYNTAX_NORMAL3(MACWH_D, MACWH_D, MACWH_D, INTREG, INTREG, INTREG_HSEL, AVR32_DSP),
 1.25978 ++    SYNTAX_NORMAL3(MAX, MAX, MAX, INTREG, INTREG, INTREG, AVR32_V1),
 1.25979 ++    SYNTAX_NORMAL1(MCALL, MCALL, MCALL, MCALL, AVR32_V1),
 1.25980 ++    SYNTAX_NORMAL2(MFDR, MFDR, MFDR, INTREG, UNSIGNED_CONST_W, AVR32_V1),
 1.25981 ++    SYNTAX_NORMAL2(MFSR, MFSR, MFSR, INTREG, UNSIGNED_CONST_W, AVR32_V1),
 1.25982 ++    SYNTAX_NORMAL3(MIN, MIN, MIN, INTREG, INTREG, INTREG, AVR32_V1),
 1.25983 ++    SYNTAX_NORMAL_C2(MOV3, MOV, MOV3, MOV1, INTREG, INTREG, AVR32_V1),
 1.25984 ++    SYNTAX_NORMAL_C2(MOV1, MOV, MOV1, MOV2, INTREG, SIGNED_CONST, AVR32_V1),
 1.25985 ++    SYNTAX_NORMAL2(MOV2, MOV, MOV2,INTREG, SIGNED_CONST, AVR32_V1),
 1.25986 ++    SYNTAX_NORMAL_C2(MOVEQ1, MOVEQ, MOVEQ1, MOVEQ2, INTREG, INTREG, AVR32_V1),
 1.25987 ++    SYNTAX_NORMAL_C2(MOVNE1, MOVNE, MOVNE1, MOVNE2, INTREG, INTREG, AVR32_V1),
 1.25988 ++    SYNTAX_NORMAL_C2(MOVCC1, MOVCC, MOVCC1, MOVCC2, INTREG, INTREG, AVR32_V1),
 1.25989 ++    SYNTAX_NORMAL_C2(MOVCS1, MOVCS, MOVCS1, MOVCS2, INTREG, INTREG, AVR32_V1),
 1.25990 ++    SYNTAX_NORMAL_C2(MOVGE1, MOVGE, MOVGE1, MOVGE2, INTREG, INTREG, AVR32_V1),
 1.25991 ++    SYNTAX_NORMAL_C2(MOVLT1, MOVLT, MOVLT1, MOVLT2, INTREG, INTREG, AVR32_V1),
 1.25992 ++    SYNTAX_NORMAL_C2(MOVMI1, MOVMI, MOVMI1, MOVMI2, INTREG, INTREG, AVR32_V1),
 1.25993 ++    SYNTAX_NORMAL_C2(MOVPL1, MOVPL, MOVPL1, MOVPL2, INTREG, INTREG, AVR32_V1),
 1.25994 ++    SYNTAX_NORMAL_C2(MOVLS1, MOVLS, MOVLS1, MOVLS2, INTREG, INTREG, AVR32_V1),
 1.25995 ++    SYNTAX_NORMAL_C2(MOVGT1, MOVGT, MOVGT1, MOVGT2, INTREG, INTREG, AVR32_V1),
 1.25996 ++    SYNTAX_NORMAL_C2(MOVLE1, MOVLE, MOVLE1, MOVLE2, INTREG, INTREG, AVR32_V1),
 1.25997 ++    SYNTAX_NORMAL_C2(MOVHI1, MOVHI, MOVHI1, MOVHI2, INTREG, INTREG, AVR32_V1),
 1.25998 ++    SYNTAX_NORMAL_C2(MOVVS1, MOVVS, MOVVS1, MOVVS2, INTREG, INTREG, AVR32_V1),
 1.25999 ++    SYNTAX_NORMAL_C2(MOVVC1, MOVVC, MOVVC1, MOVVC2, INTREG, INTREG, AVR32_V1),
 1.26000 ++    SYNTAX_NORMAL_C2(MOVQS1, MOVQS, MOVQS1, MOVQS2, INTREG, INTREG, AVR32_V1),
 1.26001 ++    SYNTAX_NORMAL_C2(MOVAL1, MOVAL, MOVAL1, MOVAL2, INTREG, INTREG, AVR32_V1),
 1.26002 ++    SYNTAX_NORMAL_C2(MOVHS1, MOVHS, MOVCC1, MOVHS2, INTREG, INTREG, AVR32_V1),
 1.26003 ++    SYNTAX_NORMAL_C2(MOVLO1, MOVLO, MOVCS1, MOVLO2, INTREG, INTREG, AVR32_V1),
 1.26004 ++    SYNTAX_NORMAL2(MOVEQ2, MOVEQ, MOVEQ2, INTREG, SIGNED_CONST, AVR32_V1),
 1.26005 ++    SYNTAX_NORMAL2(MOVNE2, MOVNE, MOVNE2, INTREG, SIGNED_CONST, AVR32_V1),
 1.26006 ++    SYNTAX_NORMAL2(MOVCC2, MOVCC, MOVCC2, INTREG, SIGNED_CONST, AVR32_V1),
 1.26007 ++    SYNTAX_NORMAL2(MOVCS2, MOVCS, MOVCS2, INTREG, SIGNED_CONST, AVR32_V1),
 1.26008 ++    SYNTAX_NORMAL2(MOVGE2, MOVGE, MOVGE2, INTREG, SIGNED_CONST, AVR32_V1),
 1.26009 ++    SYNTAX_NORMAL2(MOVLT2, MOVLT, MOVLT2, INTREG, SIGNED_CONST, AVR32_V1),
 1.26010 ++    SYNTAX_NORMAL2(MOVMI2, MOVMI, MOVMI2, INTREG, SIGNED_CONST, AVR32_V1),
 1.26011 ++    SYNTAX_NORMAL2(MOVPL2, MOVPL, MOVPL2, INTREG, SIGNED_CONST, AVR32_V1),
 1.26012 ++    SYNTAX_NORMAL2(MOVLS2, MOVLS, MOVLS2, INTREG, SIGNED_CONST, AVR32_V1),
 1.26013 ++    SYNTAX_NORMAL2(MOVGT2, MOVGT, MOVGT2, INTREG, SIGNED_CONST, AVR32_V1),
 1.26014 ++    SYNTAX_NORMAL2(MOVLE2, MOVLE, MOVLE2, INTREG, SIGNED_CONST, AVR32_V1),
 1.26015 ++    SYNTAX_NORMAL2(MOVHI2, MOVHI, MOVHI2, INTREG, SIGNED_CONST, AVR32_V1),
 1.26016 ++    SYNTAX_NORMAL2(MOVVS2, MOVVS, MOVVS2, INTREG, SIGNED_CONST, AVR32_V1),
 1.26017 ++    SYNTAX_NORMAL2(MOVVC2, MOVVC, MOVVC2, INTREG, SIGNED_CONST, AVR32_V1),
 1.26018 ++    SYNTAX_NORMAL2(MOVQS2, MOVQS, MOVQS2, INTREG, SIGNED_CONST, AVR32_V1),
 1.26019 ++    SYNTAX_NORMAL2(MOVAL2, MOVAL, MOVAL2, INTREG, SIGNED_CONST, AVR32_V1),
 1.26020 ++    SYNTAX_NORMAL2(MOVHS2, MOVHS, MOVCC2, INTREG, SIGNED_CONST, AVR32_V1),
 1.26021 ++    SYNTAX_NORMAL2(MOVLO2, MOVLO, MOVCS2, INTREG, SIGNED_CONST, AVR32_V1),
 1.26022 ++    SYNTAX_NORMAL2(MTDR, MTDR, MTDR, UNSIGNED_CONST_W, INTREG, AVR32_V1),
 1.26023 ++    SYNTAX_NORMAL2(MTSR, MTSR, MTSR, UNSIGNED_CONST_W, INTREG, AVR32_V1),
 1.26024 ++    SYNTAX_NORMAL_C2(MUL1, MUL, MUL1, MUL2, INTREG, INTREG, AVR32_V1),
 1.26025 ++    SYNTAX_NORMAL_C3(MUL2, MUL, MUL2, MUL3, INTREG, INTREG, INTREG, AVR32_V1),
 1.26026 ++    SYNTAX_NORMAL3(MUL3, MUL, MUL3, INTREG, INTREG, SIGNED_CONST, AVR32_V1),
 1.26027 ++    SYNTAX_NORMAL3(MULHH_W, MULHH_W, MULHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 1.26028 ++    SYNTAX_NORMAL3(MULNHH_W, MULNHH_W, MULNHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 1.26029 ++    SYNTAX_NORMAL3(MULNWH_D, MULNWH_D, MULNWH_D, INTREG, INTREG, INTREG_HSEL, AVR32_DSP),
 1.26030 ++    SYNTAX_NORMAL3(MULSD, MULS_D, MULSD, INTREG, INTREG, INTREG, AVR32_V1),
 1.26031 ++    SYNTAX_NORMAL3(MULSATHH_H, MULSATHH_H, MULSATHH_H, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 1.26032 ++    SYNTAX_NORMAL3(MULSATHH_W, MULSATHH_W, MULSATHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 1.26033 ++    SYNTAX_NORMAL3(MULSATRNDHH_H, MULSATRNDHH_H, MULSATRNDHH_H, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 1.26034 ++    SYNTAX_NORMAL3(MULSATRNDWH_W, MULSATRNDWH_W, MULSATRNDWH_W, INTREG, INTREG, INTREG_HSEL, AVR32_DSP),
 1.26035 ++    SYNTAX_NORMAL3(MULSATWH_W, MULSATWH_W, MULSATWH_W, INTREG, INTREG, INTREG_HSEL, AVR32_DSP),
 1.26036 ++    SYNTAX_NORMAL3(MULU_D, MULU_D, MULU_D, INTREG, INTREG, INTREG, AVR32_V1),
 1.26037 ++    SYNTAX_NORMAL3(MULWH_D, MULWH_D, MULWH_D, INTREG, INTREG, INTREG_HSEL, AVR32_DSP),
 1.26038 ++    SYNTAX_NORMAL1(MUSFR, MUSFR, MUSFR, INTREG, AVR32_V1),
 1.26039 ++    SYNTAX_NORMAL1(MUSTR, MUSTR, MUSTR, INTREG, AVR32_V1),
 1.26040 ++    SYNTAX_NORMAL3(MVCR_D, MVCR_D, MVCR_D, CPNO, DWREG, CPREG_D, AVR32_V1),
 1.26041 ++    SYNTAX_NORMAL3(MVCR_W, MVCR_W, MVCR_W, CPNO, INTREG, CPREG, AVR32_V1),
 1.26042 ++    SYNTAX_NORMAL3(MVRC_D, MVRC_D, MVRC_D, CPNO, CPREG_D, DWREG, AVR32_V1),
 1.26043 ++    SYNTAX_NORMAL3(MVRC_W, MVRC_W, MVRC_W, CPNO, CPREG, INTREG, AVR32_V1),
 1.26044 ++    SYNTAX_NORMAL1(NEG, NEG, NEG, INTREG, AVR32_V1),
 1.26045 ++    SYNTAX_NORMAL0(NOP, NOP, NOP, AVR32_V1),
 1.26046 ++    SYNTAX_NORMAL_C2(OR1, OR, OR1, OR2, INTREG, INTREG, AVR32_V1),
 1.26047 ++    SYNTAX_NORMAL_C3(OR2, OR, OR2, OR3, INTREG, INTREG, INTREG_LSL, AVR32_V1),
 1.26048 ++    SYNTAX_NORMAL3(OR3, OR, OR3, INTREG, INTREG, INTREG_LSR, AVR32_V1),
 1.26049 ++    SYNTAX_NORMAL2(ORH, ORH, ORH, INTREG, UNSIGNED_CONST, AVR32_V1),
 1.26050 ++    SYNTAX_NORMAL2(ORL, ORL, ORL, INTREG, UNSIGNED_CONST, AVR32_V1),
 1.26051 ++    SYNTAX_NORMAL2(PABS_SB, PABS_SB, PABS_SB, INTREG, INTREG, AVR32_SIMD),
 1.26052 ++    SYNTAX_NORMAL2(PABS_SH, PABS_SH, PABS_SH, INTREG, INTREG, AVR32_SIMD),
 1.26053 ++    SYNTAX_NORMAL3(PACKSH_SB, PACKSH_SB, PACKSH_SB, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26054 ++    SYNTAX_NORMAL3(PACKSH_UB, PACKSH_UB, PACKSH_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26055 ++    SYNTAX_NORMAL3(PACKW_SH, PACKW_SH, PACKW_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26056 ++    SYNTAX_NORMAL3(PADD_B, PADD_B, PADD_B, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26057 ++    SYNTAX_NORMAL3(PADD_H, PADD_H, PADD_H, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26058 ++    SYNTAX_NORMAL3(PADDH_SH, PADDH_SH, PADDH_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26059 ++    SYNTAX_NORMAL3(PADDH_UB, PADDH_UB, PADDH_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26060 ++    SYNTAX_NORMAL3(PADDS_SB, PADDS_SB, PADDS_SB, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26061 ++    SYNTAX_NORMAL3(PADDS_SH, PADDS_SH, PADDS_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26062 ++    SYNTAX_NORMAL3(PADDS_UB, PADDS_UB, PADDS_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26063 ++    SYNTAX_NORMAL3(PADDS_UH, PADDS_UH, PADDS_UH, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26064 ++    SYNTAX_NORMAL3(PADDSUB_H, PADDSUB_H, PADDSUB_H, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
 1.26065 ++    SYNTAX_NORMAL3(PADDSUBH_SH, PADDSUBH_SH, PADDSUBH_SH, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
 1.26066 ++    SYNTAX_NORMAL3(PADDSUBS_SH, PADDSUBS_SH, PADDSUBS_SH, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
 1.26067 ++    SYNTAX_NORMAL3(PADDSUBS_UH, PADDSUBS_UH, PADDSUBS_UH, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
 1.26068 ++    SYNTAX_NORMAL3(PADDX_H, PADDX_H, PADDX_H, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26069 ++    SYNTAX_NORMAL3(PADDXH_SH, PADDXH_SH, PADDXH_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26070 ++    SYNTAX_NORMAL3(PADDXS_SH, PADDXS_SH, PADDXS_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26071 ++    SYNTAX_NORMAL3(PADDXS_UH, PADDXS_UH, PADDXS_UH, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26072 ++    SYNTAX_NORMAL3(PASR_B, PASR_B, PASR_B, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_SIMD),
 1.26073 ++    SYNTAX_NORMAL3(PASR_H, PASR_H, PASR_H, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_SIMD),
 1.26074 ++    SYNTAX_NORMAL3(PAVG_SH, PAVG_SH, PAVG_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26075 ++    SYNTAX_NORMAL3(PAVG_UB, PAVG_UB, PAVG_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26076 ++    SYNTAX_NORMAL3(PLSL_B, PLSL_B, PLSL_B, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_SIMD),
 1.26077 ++    SYNTAX_NORMAL3(PLSL_H, PLSL_H, PLSL_H, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_SIMD),
 1.26078 ++    SYNTAX_NORMAL3(PLSR_B, PLSR_B, PLSR_B, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_SIMD),
 1.26079 ++    SYNTAX_NORMAL3(PLSR_H, PLSR_H, PLSR_H, INTREG, INTREG, UNSIGNED_NUMBER, AVR32_SIMD),
 1.26080 ++    SYNTAX_NORMAL3(PMAX_SH, PMAX_SH, PMAX_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26081 ++    SYNTAX_NORMAL3(PMAX_UB, PMAX_UB, PMAX_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26082 ++    SYNTAX_NORMAL3(PMIN_SH, PMIN_SH, PMIN_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26083 ++    SYNTAX_NORMAL3(PMIN_UB, PMIN_UB, PMIN_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26084 ++    SYNTAX_NORMAL0(POPJC, POPJC, POPJC, AVR32_V1),
 1.26085 ++    SYNTAX_NORMAL_CM1(POPM, POPM, POPM, POPM_E, REGLIST9, AVR32_V1),
 1.26086 ++    SYNTAX_NORMALM1(POPM_E, POPM, POPM_E, REGLIST16, AVR32_V1),
 1.26087 ++    SYNTAX_NORMAL1(PREF, PREF, PREF, INTREG_SDISP, AVR32_V1),
 1.26088 ++    SYNTAX_NORMAL3(PSAD, PSAD, PSAD, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26089 ++    SYNTAX_NORMAL3(PSUB_B, PSUB_B, PSUB_B, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26090 ++    SYNTAX_NORMAL3(PSUB_H, PSUB_H, PSUB_H, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26091 ++    SYNTAX_NORMAL3(PSUBADD_H, PSUBADD_H, PSUBADD_H, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
 1.26092 ++    SYNTAX_NORMAL3(PSUBADDH_SH, PSUBADDH_SH, PSUBADDH_SH, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
 1.26093 ++    SYNTAX_NORMAL3(PSUBADDS_SH, PSUBADDS_SH, PSUBADDS_SH, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
 1.26094 ++    SYNTAX_NORMAL3(PSUBADDS_UH, PSUBADDS_UH, PSUBADDS_UH, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_SIMD),
 1.26095 ++    SYNTAX_NORMAL3(PSUBH_SH, PSUBH_SH, PSUBH_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26096 ++    SYNTAX_NORMAL3(PSUBH_UB, PSUBH_UB, PSUBH_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26097 ++    SYNTAX_NORMAL3(PSUBS_SB, PSUBS_SB, PSUBS_SB, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26098 ++    SYNTAX_NORMAL3(PSUBS_SH, PSUBS_SH, PSUBS_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26099 ++    SYNTAX_NORMAL3(PSUBS_UB, PSUBS_UB, PSUBS_UB, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26100 ++    SYNTAX_NORMAL3(PSUBS_UH, PSUBS_UH, PSUBS_UH, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26101 ++    SYNTAX_NORMAL3(PSUBX_H, PSUBX_H, PSUBX_H, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26102 ++    SYNTAX_NORMAL3(PSUBXH_SH, PSUBXH_SH, PSUBXH_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26103 ++    SYNTAX_NORMAL3(PSUBXS_SH, PSUBXS_SH, PSUBXS_SH, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26104 ++    SYNTAX_NORMAL3(PSUBXS_UH, PSUBXS_UH, PSUBXS_UH, INTREG, INTREG, INTREG, AVR32_SIMD),
 1.26105 ++    SYNTAX_NORMAL2(PUNPCKSB_H, PUNPCKSB_H, PUNPCKSB_H, INTREG, INTREG_HSEL, AVR32_SIMD),
 1.26106 ++    SYNTAX_NORMAL2(PUNPCKUB_H, PUNPCKUB_H, PUNPCKUB_H, INTREG, INTREG_HSEL, AVR32_SIMD),
 1.26107 ++    SYNTAX_NORMAL0(PUSHJC, PUSHJC, PUSHJC, AVR32_V1),
 1.26108 ++    SYNTAX_NORMAL_CM1(PUSHM, PUSHM, PUSHM, PUSHM_E, REGLIST8, AVR32_V1),
 1.26109 ++    SYNTAX_NORMALM1(PUSHM_E, PUSHM, PUSHM_E, REGLIST16, AVR32_V1),
 1.26110 ++    SYNTAX_NORMAL_C1(RCALL1, RCALL, RCALL1, RCALL2, JMPLABEL, AVR32_V1),
 1.26111 ++    SYNTAX_NORMAL1(RCALL2, RCALL, RCALL2, JMPLABEL, AVR32_V1),
 1.26112 ++    SYNTAX_NORMAL1(RETEQ, RETEQ, RETEQ, RETVAL, AVR32_V1),
 1.26113 ++    SYNTAX_NORMAL1(RETNE, RETNE, RETNE, RETVAL, AVR32_V1),
 1.26114 ++    SYNTAX_NORMAL1(RETCC, RETCC, RETCC, RETVAL, AVR32_V1),
 1.26115 ++    SYNTAX_NORMAL1(RETCS, RETCS, RETCS, RETVAL, AVR32_V1),
 1.26116 ++    SYNTAX_NORMAL1(RETGE, RETGE, RETGE, RETVAL, AVR32_V1),
 1.26117 ++    SYNTAX_NORMAL1(RETLT, RETLT, RETLT, RETVAL, AVR32_V1),
 1.26118 ++    SYNTAX_NORMAL1(RETMI, RETMI, RETMI, RETVAL, AVR32_V1),
 1.26119 ++    SYNTAX_NORMAL1(RETPL, RETPL, RETPL, RETVAL, AVR32_V1),
 1.26120 ++    SYNTAX_NORMAL1(RETLS, RETLS, RETLS, RETVAL, AVR32_V1),
 1.26121 ++    SYNTAX_NORMAL1(RETGT, RETGT, RETGT, RETVAL, AVR32_V1),
 1.26122 ++    SYNTAX_NORMAL1(RETLE, RETLE, RETLE, RETVAL, AVR32_V1),
 1.26123 ++    SYNTAX_NORMAL1(RETHI, RETHI, RETHI, RETVAL, AVR32_V1),
 1.26124 ++    SYNTAX_NORMAL1(RETVS, RETVS, RETVS, RETVAL, AVR32_V1),
 1.26125 ++    SYNTAX_NORMAL1(RETVC, RETVC, RETVC, RETVAL, AVR32_V1),
 1.26126 ++    SYNTAX_NORMAL1(RETQS, RETQS, RETQS, RETVAL, AVR32_V1),
 1.26127 ++    SYNTAX_NORMAL1(RETAL, RETAL, RETAL, RETVAL, AVR32_V1),
 1.26128 ++    SYNTAX_NORMAL1(RETHS, RETHS, RETCC, RETVAL, AVR32_V1),
 1.26129 ++    SYNTAX_NORMAL1(RETLO, RETLO, RETCS, RETVAL, AVR32_V1),
 1.26130 ++    SYNTAX_NORMAL0(RETD, RETD, RETD, AVR32_V1),
 1.26131 ++    SYNTAX_NORMAL0(RETE, RETE, RETE, AVR32_V1),
 1.26132 ++    SYNTAX_NORMAL0(RETJ, RETJ, RETJ, AVR32_V1),
 1.26133 ++    SYNTAX_NORMAL0(RETS, RETS, RETS, AVR32_V1),
 1.26134 ++    SYNTAX_NORMAL1(RJMP, RJMP, RJMP, JMPLABEL, AVR32_V1),
 1.26135 ++    SYNTAX_NORMAL1(ROL, ROL, ROL, INTREG, AVR32_V1),
 1.26136 ++    SYNTAX_NORMAL1(ROR, ROR, ROR, INTREG, AVR32_V1),
 1.26137 ++    SYNTAX_NORMAL_C2(RSUB1, RSUB, RSUB1, RSUB2, INTREG, INTREG, AVR32_V1),
 1.26138 ++    SYNTAX_NORMAL3(RSUB2, RSUB, RSUB2, INTREG, INTREG, SIGNED_CONST, AVR32_V1),
 1.26139 ++    SYNTAX_NORMAL3(SATADD_H, SATADD_H, SATADD_H, INTREG, INTREG, INTREG,  AVR32_DSP),
 1.26140 ++    SYNTAX_NORMAL3(SATADD_W, SATADD_W, SATADD_W, INTREG, INTREG, INTREG, AVR32_DSP),
 1.26141 ++    SYNTAX_NORMAL2(SATRNDS, SATRNDS, SATRNDS, INTREG_LSR, UNSIGNED_NUMBER, AVR32_DSP),
 1.26142 ++    SYNTAX_NORMAL2(SATRNDU, SATRNDU, SATRNDU, INTREG_LSR, UNSIGNED_NUMBER, AVR32_DSP),
 1.26143 ++    SYNTAX_NORMAL2(SATS, SATS, SATS, INTREG_LSR, UNSIGNED_NUMBER, AVR32_DSP),
 1.26144 ++    SYNTAX_NORMAL3(SATSUB_H, SATSUB_H, SATSUB_H, INTREG, INTREG, INTREG, AVR32_DSP),
 1.26145 ++    SYNTAX_NORMAL_C3(SATSUB_W1, SATSUB_W, SATSUB_W1, SATSUB_W2, INTREG, INTREG, INTREG, AVR32_DSP),
 1.26146 ++    SYNTAX_NORMAL3(SATSUB_W2, SATSUB_W, SATSUB_W2, INTREG, INTREG, SIGNED_CONST, AVR32_DSP),
 1.26147 ++    SYNTAX_NORMAL2(SATU, SATU, SATU, INTREG_LSR, UNSIGNED_NUMBER, AVR32_V1),
 1.26148 ++    SYNTAX_NORMAL3(SBC, SBC, SBC, INTREG, INTREG, INTREG, AVR32_V1),
 1.26149 ++    SYNTAX_NORMAL2(SBR, SBR, SBR, INTREG, UNSIGNED_NUMBER, AVR32_V1),
 1.26150 ++    SYNTAX_NORMAL0(SCALL, SCALL, SCALL, AVR32_V1),
 1.26151 ++    SYNTAX_NORMAL1(SCR, SCR, SCR, INTREG, AVR32_V1),
 1.26152 ++    SYNTAX_NORMAL1(SLEEP, SLEEP, SLEEP, UNSIGNED_CONST, AVR32_V1),
 1.26153 ++    SYNTAX_NORMAL1(SREQ, SREQ, SREQ, INTREG, AVR32_V1),
 1.26154 ++    SYNTAX_NORMAL1(SRNE, SRNE, SRNE, INTREG, AVR32_V1),
 1.26155 ++    SYNTAX_NORMAL1(SRCC, SRCC, SRCC, INTREG, AVR32_V1),
 1.26156 ++    SYNTAX_NORMAL1(SRCS, SRCS, SRCS, INTREG, AVR32_V1),
 1.26157 ++    SYNTAX_NORMAL1(SRGE, SRGE, SRGE, INTREG, AVR32_V1),
 1.26158 ++    SYNTAX_NORMAL1(SRLT, SRLT, SRLT, INTREG, AVR32_V1),
 1.26159 ++    SYNTAX_NORMAL1(SRMI, SRMI, SRMI, INTREG, AVR32_V1),
 1.26160 ++    SYNTAX_NORMAL1(SRPL, SRPL, SRPL, INTREG, AVR32_V1),
 1.26161 ++    SYNTAX_NORMAL1(SRLS, SRLS, SRLS, INTREG, AVR32_V1),
 1.26162 ++    SYNTAX_NORMAL1(SRGT, SRGT, SRGT, INTREG, AVR32_V1),
 1.26163 ++    SYNTAX_NORMAL1(SRLE, SRLE, SRLE, INTREG, AVR32_V1),
 1.26164 ++    SYNTAX_NORMAL1(SRHI, SRHI, SRHI, INTREG, AVR32_V1),
 1.26165 ++    SYNTAX_NORMAL1(SRVS, SRVS, SRVS, INTREG, AVR32_V1),
 1.26166 ++    SYNTAX_NORMAL1(SRVC, SRVC, SRVC, INTREG, AVR32_V1),
 1.26167 ++    SYNTAX_NORMAL1(SRQS, SRQS, SRQS, INTREG, AVR32_V1),
 1.26168 ++    SYNTAX_NORMAL1(SRAL, SRAL, SRAL, INTREG, AVR32_V1),
 1.26169 ++    SYNTAX_NORMAL1(SRHS, SRHS, SRCC, INTREG, AVR32_V1),
 1.26170 ++    SYNTAX_NORMAL1(SRLO, SRLO, SRCS, INTREG, AVR32_V1),
 1.26171 ++    SYNTAX_NORMAL1(SSRF, SSRF, SSRF, UNSIGNED_NUMBER, AVR32_V1),
 1.26172 ++    SYNTAX_NORMAL_C2(ST_B1, ST_B, ST_B1, ST_B2, INTREG_POSTINC, INTREG, AVR32_V1),
 1.26173 ++    SYNTAX_NORMAL_C2(ST_B2, ST_B, ST_B2, ST_B5, INTREG_PREDEC, INTREG, AVR32_V1),
 1.26174 ++    SYNTAX_NORMAL_C2(ST_B5, ST_B, ST_B5, ST_B3, INTREG_INDEX, INTREG, AVR32_V1),
 1.26175 ++    SYNTAX_NORMAL_C2(ST_B3, ST_B, ST_B3, ST_B4, INTREG_UDISP, INTREG, AVR32_V1),
 1.26176 ++    SYNTAX_NORMAL2(ST_B4, ST_B, ST_B4, INTREG_SDISP, INTREG, AVR32_V1),
 1.26177 ++    SYNTAX_NORMAL_C2(ST_D1, ST_D, ST_D1, ST_D2, INTREG_POSTINC, DWREG, AVR32_V1),
 1.26178 ++    SYNTAX_NORMAL_C2(ST_D2, ST_D, ST_D2, ST_D3, INTREG_PREDEC, DWREG, AVR32_V1),
 1.26179 ++    SYNTAX_NORMAL_C2(ST_D3, ST_D, ST_D3, ST_D5, INTREG, DWREG, AVR32_V1),
 1.26180 ++    SYNTAX_NORMAL_C2(ST_D5, ST_D, ST_D5, ST_D4, INTREG_INDEX, DWREG, AVR32_V1),
 1.26181 ++    SYNTAX_NORMAL2(ST_D4, ST_D, ST_D4, INTREG_SDISP, DWREG, AVR32_V1),
 1.26182 ++    SYNTAX_NORMAL_C2(ST_H1, ST_H, ST_H1, ST_H2, INTREG_POSTINC, INTREG, AVR32_V1),
 1.26183 ++    SYNTAX_NORMAL_C2(ST_H2, ST_H, ST_H2, ST_H5, INTREG_PREDEC, INTREG, AVR32_V1),
 1.26184 ++    SYNTAX_NORMAL_C2(ST_H5, ST_H, ST_H5, ST_H3, INTREG_INDEX, INTREG, AVR32_V1),
 1.26185 ++    SYNTAX_NORMAL_C2(ST_H3, ST_H, ST_H3, ST_H4, INTREG_UDISP_H, INTREG, AVR32_V1),
 1.26186 ++    SYNTAX_NORMAL2(ST_H4, ST_H, ST_H4, INTREG_SDISP, INTREG, AVR32_V1),
 1.26187 ++    SYNTAX_NORMAL_C2(ST_W1, ST_W, ST_W1, ST_W2, INTREG_POSTINC, INTREG, AVR32_V1),
 1.26188 ++    SYNTAX_NORMAL_C2(ST_W2, ST_W, ST_W2, ST_W5, INTREG_PREDEC, INTREG, AVR32_V1),
 1.26189 ++    SYNTAX_NORMAL_C2(ST_W5, ST_W, ST_W5, ST_W3, INTREG_INDEX, INTREG, AVR32_V1),
 1.26190 ++    SYNTAX_NORMAL_C2(ST_W3, ST_W, ST_W3, ST_W4, INTREG_UDISP_W, INTREG, AVR32_V1),
 1.26191 ++    SYNTAX_NORMAL2(ST_W4, ST_W, ST_W4, INTREG_SDISP, INTREG, AVR32_V1),
 1.26192 ++    SYNTAX_NORMAL3(STC_D1, STC_D, STC_D1, CPNO, INTREG_UDISP_W, CPREG_D, AVR32_V1),
 1.26193 ++    SYNTAX_NORMAL_C3(STC_D2, STC_D, STC_D2, STC_D1, CPNO, INTREG_POSTINC, CPREG_D, AVR32_V1),
 1.26194 ++    SYNTAX_NORMAL_C3(STC_D3, STC_D, STC_D3, STC_D2, CPNO, INTREG_INDEX, CPREG_D, AVR32_V1),
 1.26195 ++    SYNTAX_NORMAL3(STC_W1, STC_W, STC_W1, CPNO, INTREG_UDISP_W, CPREG, AVR32_V1),
 1.26196 ++    SYNTAX_NORMAL_C3(STC_W2, STC_W, STC_W2, STC_W1, CPNO, INTREG_POSTINC, CPREG, AVR32_V1),
 1.26197 ++    SYNTAX_NORMAL_C3(STC_W3, STC_W, STC_W3, STC_W2, CPNO, INTREG_INDEX, CPREG, AVR32_V1),
 1.26198 ++    SYNTAX_NORMAL2(STC0_D, STC0_D, STC0_D, INTREG_UDISP_W, CPREG_D, AVR32_V1),
 1.26199 ++    SYNTAX_NORMAL2(STC0_W, STC0_W, STC0_W, INTREG_UDISP_W, CPREG, AVR32_V1),
 1.26200 ++    SYNTAX_NORMAL_CM3(STCM_D, STCM_D, STCM_D, STCM_D_PU, CPNO, INTREG, REGLIST_CPD8, AVR32_V1),
 1.26201 ++    SYNTAX_NORMALM3(STCM_D_PU, STCM_D, STCM_D_PU, CPNO, INTREG_PREDEC, REGLIST_CPD8, AVR32_V1),
 1.26202 ++    SYNTAX_NORMAL_CM3(STCM_W, STCM_W, STCM_W, STCM_W_PU, CPNO, INTREG, REGLIST_CP8, AVR32_V1),
 1.26203 ++    SYNTAX_NORMALM3(STCM_W_PU, STCM_W, STCM_W_PU, CPNO, INTREG_PREDEC, REGLIST_CP8, AVR32_V1),
 1.26204 ++    SYNTAX_NORMAL2(STCOND, STCOND, STCOND, INTREG_SDISP, INTREG, AVR32_V1),
 1.26205 ++    SYNTAX_NORMAL2(STDSP, STDSP, STDSP, SP_UDISP_W, INTREG, AVR32_V1),
 1.26206 ++    SYNTAX_NORMAL_C3(STHH_W2, STHH_W, STHH_W2, STHH_W1, INTREG_INDEX, INTREG_HSEL, INTREG_HSEL, AVR32_V1),
 1.26207 ++    SYNTAX_NORMAL3(STHH_W1, STHH_W, STHH_W1, INTREG_UDISP_W, INTREG_HSEL, INTREG_HSEL, AVR32_V1),
 1.26208 ++    SYNTAX_NORMAL_CM2(STM, STM, STM, STM_PU, INTREG, REGLIST16, AVR32_V1),
 1.26209 ++    SYNTAX_NORMALM2(STM_PU, STM, STM_PU, INTREG_PREDEC, REGLIST16, AVR32_V1),
 1.26210 ++    SYNTAX_NORMAL_CM2(STMTS, STMTS, STMTS, STMTS_PU, INTREG, REGLIST16, AVR32_V1),
 1.26211 ++    SYNTAX_NORMALM2(STMTS_PU, STMTS, STMTS_PU, INTREG_PREDEC, REGLIST16, AVR32_V1),
 1.26212 ++    SYNTAX_NORMAL2(STSWP_H, STSWP_H, STSWP_H, INTREG_SDISP_H, INTREG, AVR32_V1),
 1.26213 ++    SYNTAX_NORMAL2(STSWP_W, STSWP_W, STSWP_W, INTREG_SDISP_W, INTREG, AVR32_V1),
 1.26214 ++    SYNTAX_NORMAL_C2(SUB1, SUB, SUB1, SUB2, INTREG, INTREG, AVR32_V1),
 1.26215 ++    SYNTAX_NORMAL_C3(SUB2, SUB, SUB2, SUB5, INTREG, INTREG, INTREG_LSL, AVR32_V1),
 1.26216 ++    SYNTAX_NORMAL_C3(SUB5, SUB, SUB5, SUB3_SP, INTREG, INTREG, SIGNED_CONST, AVR32_V1),
 1.26217 ++    SYNTAX_NORMAL_C2(SUB3_SP, SUB, SUB3_SP, SUB3, SP, SIGNED_CONST_W, AVR32_V1),
 1.26218 ++    SYNTAX_NORMAL_C2(SUB3, SUB, SUB3, SUB4, INTREG, SIGNED_CONST, AVR32_V1),
 1.26219 ++    SYNTAX_NORMAL2(SUB4, SUB, SUB4, INTREG, SIGNED_CONST, AVR32_V1),
 1.26220 ++    SYNTAX_NORMAL_C2(SUBEQ, SUBEQ, SUBEQ, SUB2EQ, INTREG, SIGNED_CONST, AVR32_V1),
 1.26221 ++    SYNTAX_NORMAL_C2(SUBNE, SUBNE, SUBNE, SUB2NE, INTREG, SIGNED_CONST, AVR32_V1),
 1.26222 ++    SYNTAX_NORMAL_C2(SUBCC, SUBCC, SUBCC, SUB2CC, INTREG, SIGNED_CONST, AVR32_V1),
 1.26223 ++    SYNTAX_NORMAL_C2(SUBCS, SUBCS, SUBCS, SUB2CS, INTREG, SIGNED_CONST, AVR32_V1),
 1.26224 ++    SYNTAX_NORMAL_C2(SUBGE, SUBGE, SUBGE, SUB2GE, INTREG, SIGNED_CONST, AVR32_V1),
 1.26225 ++    SYNTAX_NORMAL_C2(SUBLT, SUBLT, SUBLT, SUB2LT, INTREG, SIGNED_CONST, AVR32_V1),
 1.26226 ++    SYNTAX_NORMAL_C2(SUBMI, SUBMI, SUBMI, SUB2MI, INTREG, SIGNED_CONST, AVR32_V1),
 1.26227 ++    SYNTAX_NORMAL_C2(SUBPL, SUBPL, SUBPL, SUB2PL, INTREG, SIGNED_CONST, AVR32_V1),
 1.26228 ++    SYNTAX_NORMAL_C2(SUBLS, SUBLS, SUBLS, SUB2LS, INTREG, SIGNED_CONST, AVR32_V1),
 1.26229 ++    SYNTAX_NORMAL_C2(SUBGT, SUBGT, SUBGT, SUB2GT, INTREG, SIGNED_CONST, AVR32_V1),
 1.26230 ++    SYNTAX_NORMAL_C2(SUBLE, SUBLE, SUBLE, SUB2LE, INTREG, SIGNED_CONST, AVR32_V1),
 1.26231 ++    SYNTAX_NORMAL_C2(SUBHI, SUBHI, SUBHI, SUB2HI, INTREG, SIGNED_CONST, AVR32_V1),
 1.26232 ++    SYNTAX_NORMAL_C2(SUBVS, SUBVS, SUBVS, SUB2VS, INTREG, SIGNED_CONST, AVR32_V1),
 1.26233 ++    SYNTAX_NORMAL_C2(SUBVC, SUBVC, SUBVC, SUB2VC, INTREG, SIGNED_CONST, AVR32_V1),
 1.26234 ++    SYNTAX_NORMAL_C2(SUBQS, SUBQS, SUBQS, SUB2QS, INTREG, SIGNED_CONST, AVR32_V1),
 1.26235 ++    SYNTAX_NORMAL_C2(SUBAL, SUBAL, SUBAL, SUB2AL, INTREG, SIGNED_CONST, AVR32_V1),
 1.26236 ++    SYNTAX_NORMAL_C2(SUBHS, SUBHS, SUBCC, SUB2CC, INTREG, SIGNED_CONST, AVR32_V1),
 1.26237 ++    SYNTAX_NORMAL_C2(SUBLO, SUBLO, SUBCS, SUB2CS, INTREG, SIGNED_CONST, AVR32_V1),
 1.26238 ++    SYNTAX_NORMAL2(SUBFEQ, SUBFEQ, SUBFEQ, INTREG, SIGNED_CONST, AVR32_V1),
 1.26239 ++    SYNTAX_NORMAL2(SUBFNE, SUBFNE, SUBFNE, INTREG, SIGNED_CONST, AVR32_V1),
 1.26240 ++    SYNTAX_NORMAL2(SUBFCC, SUBFCC, SUBFCC, INTREG, SIGNED_CONST, AVR32_V1),
 1.26241 ++    SYNTAX_NORMAL2(SUBFCS, SUBFCS, SUBFCS, INTREG, SIGNED_CONST, AVR32_V1),
 1.26242 ++    SYNTAX_NORMAL2(SUBFGE, SUBFGE, SUBFGE, INTREG, SIGNED_CONST, AVR32_V1),
 1.26243 ++    SYNTAX_NORMAL2(SUBFLT, SUBFLT, SUBFLT, INTREG, SIGNED_CONST, AVR32_V1),
 1.26244 ++    SYNTAX_NORMAL2(SUBFMI, SUBFMI, SUBFMI, INTREG, SIGNED_CONST, AVR32_V1),
 1.26245 ++    SYNTAX_NORMAL2(SUBFPL, SUBFPL, SUBFPL, INTREG, SIGNED_CONST, AVR32_V1),
 1.26246 ++    SYNTAX_NORMAL2(SUBFLS, SUBFLS, SUBFLS, INTREG, SIGNED_CONST, AVR32_V1),
 1.26247 ++    SYNTAX_NORMAL2(SUBFGT, SUBFGT, SUBFGT, INTREG, SIGNED_CONST, AVR32_V1),
 1.26248 ++    SYNTAX_NORMAL2(SUBFLE, SUBFLE, SUBFLE, INTREG, SIGNED_CONST, AVR32_V1),
 1.26249 ++    SYNTAX_NORMAL2(SUBFHI, SUBFHI, SUBFHI, INTREG, SIGNED_CONST, AVR32_V1),
 1.26250 ++    SYNTAX_NORMAL2(SUBFVS, SUBFVS, SUBFVS, INTREG, SIGNED_CONST, AVR32_V1),
 1.26251 ++    SYNTAX_NORMAL2(SUBFVC, SUBFVC, SUBFVC, INTREG, SIGNED_CONST, AVR32_V1),
 1.26252 ++    SYNTAX_NORMAL2(SUBFQS, SUBFQS, SUBFQS, INTREG, SIGNED_CONST, AVR32_V1),
 1.26253 ++    SYNTAX_NORMAL2(SUBFAL, SUBFAL, SUBFAL, INTREG, SIGNED_CONST, AVR32_V1),
 1.26254 ++    SYNTAX_NORMAL2(SUBFHS, SUBFHS, SUBFCC, INTREG, SIGNED_CONST, AVR32_V1),
 1.26255 ++    SYNTAX_NORMAL2(SUBFLO, SUBFLO, SUBFCS, INTREG, SIGNED_CONST, AVR32_V1),
 1.26256 ++    SYNTAX_NORMAL3(SUBHH_W, SUBHH_W, SUBHH_W, INTREG, INTREG_HSEL, INTREG_HSEL, AVR32_DSP),
 1.26257 ++    SYNTAX_NORMAL1(SWAP_B, SWAP_B, SWAP_B, INTREG, AVR32_V1),
 1.26258 ++    SYNTAX_NORMAL1(SWAP_BH, SWAP_BH, SWAP_BH, INTREG, AVR32_V1),
 1.26259 ++    SYNTAX_NORMAL1(SWAP_H, SWAP_H, SWAP_H, INTREG, AVR32_V1),
 1.26260 ++    SYNTAX_NORMAL1(SYNC, SYNC, SYNC, UNSIGNED_CONST, AVR32_V1),
 1.26261 ++    SYNTAX_NORMAL0(TLBR, TLBR, TLBR, AVR32_V1),
 1.26262 ++    SYNTAX_NORMAL0(TLBS, TLBS, TLBS, AVR32_V1),
 1.26263 ++    SYNTAX_NORMAL0(TLBW, TLBW, TLBW, AVR32_V1),
 1.26264 ++    SYNTAX_NORMAL1(TNBZ, TNBZ, TNBZ, INTREG, AVR32_V1),
 1.26265 ++    SYNTAX_NORMAL2(TST, TST, TST, INTREG, INTREG, AVR32_V1),
 1.26266 ++    SYNTAX_NORMAL3(XCHG, XCHG, XCHG, INTREG, INTREG, INTREG, AVR32_V1),
 1.26267 ++    SYNTAX_NORMAL2(MEMC, MEMC, MEMC, SIGNED_CONST_W, UNSIGNED_NUMBER, AVR32_RMW),
 1.26268 ++    SYNTAX_NORMAL2(MEMS, MEMS, MEMS, SIGNED_CONST_W, UNSIGNED_NUMBER, AVR32_RMW),
 1.26269 ++    SYNTAX_NORMAL2(MEMT, MEMT, MEMT, SIGNED_CONST_W, UNSIGNED_NUMBER, AVR32_RMW),
 1.26270 ++    SYNTAX_FP(FADD, 3),
 1.26271 ++    SYNTAX_FP(FSUB, 3),
 1.26272 ++    SYNTAX_FP(FMAC, 3),
 1.26273 ++    SYNTAX_FP(FNMAC, 3),
 1.26274 ++    SYNTAX_FP(FMSC, 3),
 1.26275 ++    SYNTAX_FP(FNMSC, 3),
 1.26276 ++    SYNTAX_FP(FMUL, 3),
 1.26277 ++    SYNTAX_FP(FNMUL, 3),
 1.26278 ++    SYNTAX_FP(FNEG, 2),
 1.26279 ++    SYNTAX_FP(FABS, 2),
 1.26280 ++    SYNTAX_FP(FCMP, 2),
 1.26281 ++    {
 1.26282 ++      AVR32_SYNTAX_FMOV1_S,
 1.26283 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,
 1.26284 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_FMOV1_S] },
 1.26285 ++      &avr32_syntax_table[AVR32_SYNTAX_FMOV2_S],
 1.26286 ++      2,
 1.26287 ++      {
 1.26288 ++	AVR32_OPERAND_FPREG_S,
 1.26289 ++	AVR32_OPERAND_FPREG_S,
 1.26290 ++      },
 1.26291 ++    },
 1.26292 ++    {
 1.26293 ++      AVR32_SYNTAX_FMOV1_D,
 1.26294 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,
 1.26295 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_FMOV1_D] },
 1.26296 ++      &avr32_syntax_table[AVR32_SYNTAX_FMOV2_D],
 1.26297 ++      2,
 1.26298 ++      {
 1.26299 ++	AVR32_OPERAND_FPREG_D,
 1.26300 ++	AVR32_OPERAND_FPREG_D,
 1.26301 ++      },
 1.26302 ++    },
 1.26303 ++    {
 1.26304 ++      AVR32_SYNTAX_FMOV2_S,
 1.26305 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,
 1.26306 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_FMOV2_S] },
 1.26307 ++      &avr32_syntax_table[AVR32_SYNTAX_FMOV3_S],
 1.26308 ++      2,
 1.26309 ++      {
 1.26310 ++	AVR32_OPERAND_INTREG,
 1.26311 ++	AVR32_OPERAND_FPREG_S,
 1.26312 ++      },
 1.26313 ++    },
 1.26314 ++    {
 1.26315 ++      AVR32_SYNTAX_FMOV2_D,
 1.26316 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,
 1.26317 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_FMOV2_D] },
 1.26318 ++      &avr32_syntax_table[AVR32_SYNTAX_FMOV3_D],
 1.26319 ++      2,
 1.26320 ++      {
 1.26321 ++	AVR32_OPERAND_DWREG,
 1.26322 ++	AVR32_OPERAND_FPREG_D,
 1.26323 ++      },
 1.26324 ++    },
 1.26325 ++    {
 1.26326 ++      AVR32_SYNTAX_FMOV3_S,
 1.26327 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,
 1.26328 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_FMOV3_S] }, NULL,
 1.26329 ++      2,
 1.26330 ++      {
 1.26331 ++	AVR32_OPERAND_FPREG_S,
 1.26332 ++	AVR32_OPERAND_INTREG,
 1.26333 ++      },
 1.26334 ++    },
 1.26335 ++    {
 1.26336 ++      AVR32_SYNTAX_FMOV3_D,
 1.26337 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,
 1.26338 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_FMOV3_D] }, NULL,
 1.26339 ++      2,
 1.26340 ++      {
 1.26341 ++	AVR32_OPERAND_FPREG_D,
 1.26342 ++	AVR32_OPERAND_DWREG,
 1.26343 ++      },
 1.26344 ++    },
 1.26345 ++    {
 1.26346 ++      AVR32_SYNTAX_FCASTS_D,
 1.26347 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,
 1.26348 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_FCASTS_D] }, NULL,
 1.26349 ++      2,
 1.26350 ++      {
 1.26351 ++	AVR32_OPERAND_FPREG_S,
 1.26352 ++	AVR32_OPERAND_FPREG_D,
 1.26353 ++      },
 1.26354 ++    },
 1.26355 ++    {
 1.26356 ++      AVR32_SYNTAX_FCASTD_S,
 1.26357 ++      AVR32_FP, NULL, AVR32_PARSER_ALIAS,
 1.26358 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_FCASTD_S] }, NULL,
 1.26359 ++      2,
 1.26360 ++      {
 1.26361 ++	AVR32_OPERAND_FPREG_D,
 1.26362 ++	AVR32_OPERAND_FPREG_S,
 1.26363 ++      },
 1.26364 ++    },
 1.26365 ++    {
 1.26366 ++      AVR32_SYNTAX_LDA_W,
 1.26367 ++      AVR32_V1, NULL, AVR32_PARSER_LDA,
 1.26368 ++      { NULL }, NULL,
 1.26369 ++      2,
 1.26370 ++      {
 1.26371 ++	AVR32_OPERAND_INTREG,
 1.26372 ++	AVR32_OPERAND_SIGNED_CONST,
 1.26373 ++      },
 1.26374 ++    },
 1.26375 ++    {
 1.26376 ++      AVR32_SYNTAX_CALL,
 1.26377 ++      AVR32_V1, NULL, AVR32_PARSER_CALL,
 1.26378 ++      { NULL }, NULL,
 1.26379 ++      1,
 1.26380 ++      {
 1.26381 ++	AVR32_OPERAND_JMPLABEL,
 1.26382 ++      },
 1.26383 ++    },
 1.26384 ++    {
 1.26385 ++      AVR32_SYNTAX_PICOSVMAC0,
 1.26386 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMAC], AVR32_PARSER_ALIAS,
 1.26387 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMAC0] },
 1.26388 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOSVMAC1], 4,
 1.26389 ++      {
 1.26390 ++	AVR32_OPERAND_PICO_OUT0,
 1.26391 ++	AVR32_OPERAND_PICO_IN,
 1.26392 ++	AVR32_OPERAND_PICO_IN,
 1.26393 ++	AVR32_OPERAND_PICO_IN,
 1.26394 ++      },
 1.26395 ++    },
 1.26396 ++    {
 1.26397 ++      AVR32_SYNTAX_PICOSVMAC1,
 1.26398 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMAC], AVR32_PARSER_ALIAS,
 1.26399 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMAC1] },
 1.26400 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOSVMAC2], 4,
 1.26401 ++      {
 1.26402 ++	AVR32_OPERAND_PICO_OUT1,
 1.26403 ++	AVR32_OPERAND_PICO_IN,
 1.26404 ++	AVR32_OPERAND_PICO_IN,
 1.26405 ++	AVR32_OPERAND_PICO_IN,
 1.26406 ++      },
 1.26407 ++    },
 1.26408 ++    {
 1.26409 ++      AVR32_SYNTAX_PICOSVMAC2,
 1.26410 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMAC], AVR32_PARSER_ALIAS,
 1.26411 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMAC2] },
 1.26412 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOSVMAC3], 4,
 1.26413 ++      {
 1.26414 ++	AVR32_OPERAND_PICO_OUT2,
 1.26415 ++	AVR32_OPERAND_PICO_IN,
 1.26416 ++	AVR32_OPERAND_PICO_IN,
 1.26417 ++	AVR32_OPERAND_PICO_IN,
 1.26418 ++      },
 1.26419 ++    },
 1.26420 ++    {
 1.26421 ++      AVR32_SYNTAX_PICOSVMAC3,
 1.26422 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMAC], AVR32_PARSER_ALIAS,
 1.26423 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMAC3] },
 1.26424 ++      NULL, 4,
 1.26425 ++      {
 1.26426 ++	AVR32_OPERAND_PICO_OUT3,
 1.26427 ++	AVR32_OPERAND_PICO_IN,
 1.26428 ++	AVR32_OPERAND_PICO_IN,
 1.26429 ++	AVR32_OPERAND_PICO_IN,
 1.26430 ++      },
 1.26431 ++    },
 1.26432 ++    {
 1.26433 ++      AVR32_SYNTAX_PICOSVMUL0,
 1.26434 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMUL], AVR32_PARSER_ALIAS,
 1.26435 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMUL0] },
 1.26436 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOSVMUL1], 4,
 1.26437 ++      {
 1.26438 ++	AVR32_OPERAND_PICO_OUT0,
 1.26439 ++	AVR32_OPERAND_PICO_IN,
 1.26440 ++	AVR32_OPERAND_PICO_IN,
 1.26441 ++	AVR32_OPERAND_PICO_IN,
 1.26442 ++      },
 1.26443 ++    },
 1.26444 ++    {
 1.26445 ++      AVR32_SYNTAX_PICOSVMUL1,
 1.26446 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMUL], AVR32_PARSER_ALIAS,
 1.26447 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMUL1] },
 1.26448 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOSVMUL2], 4,
 1.26449 ++      {
 1.26450 ++	AVR32_OPERAND_PICO_OUT1,
 1.26451 ++	AVR32_OPERAND_PICO_IN,
 1.26452 ++	AVR32_OPERAND_PICO_IN,
 1.26453 ++	AVR32_OPERAND_PICO_IN,
 1.26454 ++      },
 1.26455 ++    },
 1.26456 ++    {
 1.26457 ++      AVR32_SYNTAX_PICOSVMUL2,
 1.26458 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMUL], AVR32_PARSER_ALIAS,
 1.26459 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMUL2] },
 1.26460 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOSVMUL3], 4,
 1.26461 ++      {
 1.26462 ++	AVR32_OPERAND_PICO_OUT2,
 1.26463 ++	AVR32_OPERAND_PICO_IN,
 1.26464 ++	AVR32_OPERAND_PICO_IN,
 1.26465 ++	AVR32_OPERAND_PICO_IN,
 1.26466 ++      },
 1.26467 ++    },
 1.26468 ++    {
 1.26469 ++      AVR32_SYNTAX_PICOSVMUL3,
 1.26470 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSVMUL], AVR32_PARSER_ALIAS,
 1.26471 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSVMUL3] },
 1.26472 ++      NULL, 4,
 1.26473 ++      {
 1.26474 ++	AVR32_OPERAND_PICO_OUT3,
 1.26475 ++	AVR32_OPERAND_PICO_IN,
 1.26476 ++	AVR32_OPERAND_PICO_IN,
 1.26477 ++	AVR32_OPERAND_PICO_IN,
 1.26478 ++      },
 1.26479 ++    },
 1.26480 ++    {
 1.26481 ++      AVR32_SYNTAX_PICOVMAC0,
 1.26482 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMAC], AVR32_PARSER_ALIAS,
 1.26483 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMAC0] },
 1.26484 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOVMAC1], 4,
 1.26485 ++      {
 1.26486 ++	AVR32_OPERAND_PICO_OUT0,
 1.26487 ++	AVR32_OPERAND_PICO_IN,
 1.26488 ++	AVR32_OPERAND_PICO_IN,
 1.26489 ++	AVR32_OPERAND_PICO_IN,
 1.26490 ++      },
 1.26491 ++    },
 1.26492 ++    {
 1.26493 ++      AVR32_SYNTAX_PICOVMAC1,
 1.26494 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMAC], AVR32_PARSER_ALIAS,
 1.26495 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMAC1] },
 1.26496 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOVMAC2], 4,
 1.26497 ++      {
 1.26498 ++	AVR32_OPERAND_PICO_OUT1,
 1.26499 ++	AVR32_OPERAND_PICO_IN,
 1.26500 ++	AVR32_OPERAND_PICO_IN,
 1.26501 ++	AVR32_OPERAND_PICO_IN,
 1.26502 ++      },
 1.26503 ++    },
 1.26504 ++    {
 1.26505 ++      AVR32_SYNTAX_PICOVMAC2,
 1.26506 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMAC], AVR32_PARSER_ALIAS,
 1.26507 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMAC2] },
 1.26508 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOVMAC3], 4,
 1.26509 ++      {
 1.26510 ++	AVR32_OPERAND_PICO_OUT2,
 1.26511 ++	AVR32_OPERAND_PICO_IN,
 1.26512 ++	AVR32_OPERAND_PICO_IN,
 1.26513 ++	AVR32_OPERAND_PICO_IN,
 1.26514 ++      },
 1.26515 ++    },
 1.26516 ++    {
 1.26517 ++      AVR32_SYNTAX_PICOVMAC3,
 1.26518 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMAC], AVR32_PARSER_ALIAS,
 1.26519 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMAC3] },
 1.26520 ++      NULL, 4,
 1.26521 ++      {
 1.26522 ++	AVR32_OPERAND_PICO_OUT3,
 1.26523 ++	AVR32_OPERAND_PICO_IN,
 1.26524 ++	AVR32_OPERAND_PICO_IN,
 1.26525 ++	AVR32_OPERAND_PICO_IN,
 1.26526 ++      },
 1.26527 ++    },
 1.26528 ++    {
 1.26529 ++      AVR32_SYNTAX_PICOVMUL0,
 1.26530 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMUL], AVR32_PARSER_ALIAS,
 1.26531 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMUL0] },
 1.26532 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOVMUL1], 4,
 1.26533 ++      {
 1.26534 ++	AVR32_OPERAND_PICO_OUT0,
 1.26535 ++	AVR32_OPERAND_PICO_IN,
 1.26536 ++	AVR32_OPERAND_PICO_IN,
 1.26537 ++	AVR32_OPERAND_PICO_IN,
 1.26538 ++      },
 1.26539 ++    },
 1.26540 ++    {
 1.26541 ++      AVR32_SYNTAX_PICOVMUL1,
 1.26542 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMUL], AVR32_PARSER_ALIAS,
 1.26543 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMUL1] },
 1.26544 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOVMUL2], 4,
 1.26545 ++      {
 1.26546 ++	AVR32_OPERAND_PICO_OUT1,
 1.26547 ++	AVR32_OPERAND_PICO_IN,
 1.26548 ++	AVR32_OPERAND_PICO_IN,
 1.26549 ++	AVR32_OPERAND_PICO_IN,
 1.26550 ++      },
 1.26551 ++    },
 1.26552 ++    {
 1.26553 ++      AVR32_SYNTAX_PICOVMUL2,
 1.26554 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMUL], AVR32_PARSER_ALIAS,
 1.26555 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMUL2] },
 1.26556 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOVMUL3], 4,
 1.26557 ++      {
 1.26558 ++	AVR32_OPERAND_PICO_OUT2,
 1.26559 ++	AVR32_OPERAND_PICO_IN,
 1.26560 ++	AVR32_OPERAND_PICO_IN,
 1.26561 ++	AVR32_OPERAND_PICO_IN,
 1.26562 ++      },
 1.26563 ++    },
 1.26564 ++    {
 1.26565 ++      AVR32_SYNTAX_PICOVMUL3,
 1.26566 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOVMUL], AVR32_PARSER_ALIAS,
 1.26567 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOVMUL3] },
 1.26568 ++      NULL, 4,
 1.26569 ++      {
 1.26570 ++	AVR32_OPERAND_PICO_OUT3,
 1.26571 ++	AVR32_OPERAND_PICO_IN,
 1.26572 ++	AVR32_OPERAND_PICO_IN,
 1.26573 ++	AVR32_OPERAND_PICO_IN,
 1.26574 ++      },
 1.26575 ++    },
 1.26576 ++    {
 1.26577 ++      AVR32_SYNTAX_PICOLD_D2,
 1.26578 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLD_D], AVR32_PARSER_ALIAS,
 1.26579 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLD_D2] },
 1.26580 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOLD_D3], 2,
 1.26581 ++      {
 1.26582 ++	AVR32_OPERAND_PICO_REG_D,
 1.26583 ++	AVR32_OPERAND_INTREG_PREDEC,
 1.26584 ++      },
 1.26585 ++    },
 1.26586 ++    {
 1.26587 ++      AVR32_SYNTAX_PICOLD_D3,
 1.26588 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLD_D], AVR32_PARSER_ALIAS,
 1.26589 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLD_D3] },
 1.26590 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOLD_D1], 2,
 1.26591 ++      {
 1.26592 ++	AVR32_OPERAND_PICO_REG_D,
 1.26593 ++	AVR32_OPERAND_INTREG_INDEX,
 1.26594 ++      },
 1.26595 ++    },
 1.26596 ++    {
 1.26597 ++      AVR32_SYNTAX_PICOLD_D1,
 1.26598 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLD_D], AVR32_PARSER_ALIAS,
 1.26599 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLD_D1] },
 1.26600 ++      NULL, 2,
 1.26601 ++      {
 1.26602 ++	AVR32_OPERAND_PICO_REG_D,
 1.26603 ++	AVR32_OPERAND_INTREG_UDISP_W,
 1.26604 ++      },
 1.26605 ++    },
 1.26606 ++    {
 1.26607 ++      AVR32_SYNTAX_PICOLD_W2,
 1.26608 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLD_W], AVR32_PARSER_ALIAS,
 1.26609 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLD_W2] },
 1.26610 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOLD_W3], 2,
 1.26611 ++      {
 1.26612 ++	AVR32_OPERAND_PICO_REG_W,
 1.26613 ++	AVR32_OPERAND_INTREG_PREDEC,
 1.26614 ++      },
 1.26615 ++    },
 1.26616 ++    {
 1.26617 ++      AVR32_SYNTAX_PICOLD_W3,
 1.26618 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLD_W], AVR32_PARSER_ALIAS,
 1.26619 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLD_W3] },
 1.26620 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOLD_W1], 2,
 1.26621 ++      {
 1.26622 ++	AVR32_OPERAND_PICO_REG_W,
 1.26623 ++	AVR32_OPERAND_INTREG_INDEX,
 1.26624 ++      },
 1.26625 ++    },
 1.26626 ++    {
 1.26627 ++      AVR32_SYNTAX_PICOLD_W1,
 1.26628 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLD_W], AVR32_PARSER_ALIAS,
 1.26629 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLD_W1] },
 1.26630 ++      NULL, 2,
 1.26631 ++      {
 1.26632 ++	AVR32_OPERAND_PICO_REG_W,
 1.26633 ++	AVR32_OPERAND_INTREG_UDISP_W,
 1.26634 ++      },
 1.26635 ++    },
 1.26636 ++    {
 1.26637 ++      AVR32_SYNTAX_PICOLDM_D,
 1.26638 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLDM_D], AVR32_PARSER_ALIAS,
 1.26639 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLDM_D] },
 1.26640 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOLDM_D_PU], -2,
 1.26641 ++      {
 1.26642 ++	AVR32_OPERAND_INTREG,
 1.26643 ++	AVR32_OPERAND_PICO_REGLIST_D,
 1.26644 ++      },
 1.26645 ++    },
 1.26646 ++    {
 1.26647 ++      AVR32_SYNTAX_PICOLDM_D_PU,
 1.26648 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLDM_D], AVR32_PARSER_ALIAS,
 1.26649 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLDM_D_PU] },
 1.26650 ++      NULL, -2,
 1.26651 ++      {
 1.26652 ++	AVR32_OPERAND_INTREG_POSTINC,
 1.26653 ++	AVR32_OPERAND_PICO_REGLIST_D,
 1.26654 ++      },
 1.26655 ++    },
 1.26656 ++    {
 1.26657 ++      AVR32_SYNTAX_PICOLDM_W,
 1.26658 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLDM_W], AVR32_PARSER_ALIAS,
 1.26659 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLDM_W] },
 1.26660 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOLDM_W_PU], -2,
 1.26661 ++      {
 1.26662 ++	AVR32_OPERAND_INTREG,
 1.26663 ++	AVR32_OPERAND_PICO_REGLIST_W,
 1.26664 ++      },
 1.26665 ++    },
 1.26666 ++    {
 1.26667 ++      AVR32_SYNTAX_PICOLDM_W_PU,
 1.26668 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOLDM_W], AVR32_PARSER_ALIAS,
 1.26669 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOLDM_W_PU] },
 1.26670 ++      NULL, -2,
 1.26671 ++      {
 1.26672 ++	AVR32_OPERAND_INTREG_POSTINC,
 1.26673 ++	AVR32_OPERAND_PICO_REGLIST_W,
 1.26674 ++      },
 1.26675 ++    },
 1.26676 ++    {
 1.26677 ++      AVR32_SYNTAX_PICOMV_D1,
 1.26678 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOMV_D], AVR32_PARSER_ALIAS,
 1.26679 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOMV_D1] },
 1.26680 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOMV_D2], 2,
 1.26681 ++      {
 1.26682 ++	AVR32_OPERAND_DWREG,
 1.26683 ++	AVR32_OPERAND_PICO_REG_D,
 1.26684 ++      },
 1.26685 ++    },
 1.26686 ++    {
 1.26687 ++      AVR32_SYNTAX_PICOMV_D2,
 1.26688 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOMV_D], AVR32_PARSER_ALIAS,
 1.26689 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOMV_D2] },
 1.26690 ++      NULL, 2,
 1.26691 ++      {
 1.26692 ++	AVR32_OPERAND_PICO_REG_D,
 1.26693 ++	AVR32_OPERAND_DWREG,
 1.26694 ++      },
 1.26695 ++    },
 1.26696 ++    {
 1.26697 ++      AVR32_SYNTAX_PICOMV_W1,
 1.26698 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOMV_W], AVR32_PARSER_ALIAS,
 1.26699 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOMV_W1] },
 1.26700 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOMV_W2], 2,
 1.26701 ++      {
 1.26702 ++	AVR32_OPERAND_INTREG,
 1.26703 ++	AVR32_OPERAND_PICO_REG_W,
 1.26704 ++      },
 1.26705 ++    },
 1.26706 ++    {
 1.26707 ++      AVR32_SYNTAX_PICOMV_W2,
 1.26708 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOMV_W], AVR32_PARSER_ALIAS,
 1.26709 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOMV_W2] },
 1.26710 ++      NULL, 2,
 1.26711 ++      {
 1.26712 ++	AVR32_OPERAND_PICO_REG_W,
 1.26713 ++	AVR32_OPERAND_INTREG,
 1.26714 ++      },
 1.26715 ++    },
 1.26716 ++    {
 1.26717 ++      AVR32_SYNTAX_PICOST_D2,
 1.26718 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOST_D], AVR32_PARSER_ALIAS,
 1.26719 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOST_D2] },
 1.26720 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOST_D3], 2,
 1.26721 ++      {
 1.26722 ++	AVR32_OPERAND_INTREG_POSTINC,
 1.26723 ++	AVR32_OPERAND_PICO_REG_D,
 1.26724 ++      },
 1.26725 ++    },
 1.26726 ++    {
 1.26727 ++      AVR32_SYNTAX_PICOST_D3,
 1.26728 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOST_D], AVR32_PARSER_ALIAS,
 1.26729 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOST_D3] },
 1.26730 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOST_D1], 2,
 1.26731 ++      {
 1.26732 ++	AVR32_OPERAND_INTREG_INDEX,
 1.26733 ++	AVR32_OPERAND_PICO_REG_D,
 1.26734 ++      },
 1.26735 ++    },
 1.26736 ++    {
 1.26737 ++      AVR32_SYNTAX_PICOST_D1,
 1.26738 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOST_D], AVR32_PARSER_ALIAS,
 1.26739 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOST_D1] },
 1.26740 ++      NULL, 2,
 1.26741 ++      {
 1.26742 ++	AVR32_OPERAND_INTREG_UDISP_W,
 1.26743 ++	AVR32_OPERAND_PICO_REG_D,
 1.26744 ++      },
 1.26745 ++    },
 1.26746 ++    {
 1.26747 ++      AVR32_SYNTAX_PICOST_W2,
 1.26748 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOST_W], AVR32_PARSER_ALIAS,
 1.26749 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOST_W2] },
 1.26750 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOST_W3], 2,
 1.26751 ++      {
 1.26752 ++	AVR32_OPERAND_INTREG_POSTINC,
 1.26753 ++	AVR32_OPERAND_PICO_REG_W,
 1.26754 ++      },
 1.26755 ++    },
 1.26756 ++    {
 1.26757 ++      AVR32_SYNTAX_PICOST_W3,
 1.26758 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOST_W], AVR32_PARSER_ALIAS,
 1.26759 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOST_W3] },
 1.26760 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOST_W1], 2,
 1.26761 ++      {
 1.26762 ++	AVR32_OPERAND_INTREG_INDEX,
 1.26763 ++	AVR32_OPERAND_PICO_REG_W,
 1.26764 ++      },
 1.26765 ++    },
 1.26766 ++    {
 1.26767 ++      AVR32_SYNTAX_PICOST_W1,
 1.26768 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOST_W], AVR32_PARSER_ALIAS,
 1.26769 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOST_W1] },
 1.26770 ++      NULL, 2,
 1.26771 ++      {
 1.26772 ++	AVR32_OPERAND_INTREG_UDISP_W,
 1.26773 ++	AVR32_OPERAND_PICO_REG_W,
 1.26774 ++      },
 1.26775 ++    },
 1.26776 ++    {
 1.26777 ++      AVR32_SYNTAX_PICOSTM_D,
 1.26778 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSTM_D], AVR32_PARSER_ALIAS,
 1.26779 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSTM_D] },
 1.26780 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOSTM_D_PU], -2,
 1.26781 ++      {
 1.26782 ++	AVR32_OPERAND_INTREG,
 1.26783 ++	AVR32_OPERAND_PICO_REGLIST_D,
 1.26784 ++      },
 1.26785 ++    },
 1.26786 ++    {
 1.26787 ++      AVR32_SYNTAX_PICOSTM_D_PU,
 1.26788 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSTM_D], AVR32_PARSER_ALIAS,
 1.26789 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSTM_D_PU] },
 1.26790 ++      NULL, -2,
 1.26791 ++      {
 1.26792 ++	AVR32_OPERAND_INTREG_PREDEC,
 1.26793 ++	AVR32_OPERAND_PICO_REGLIST_D,
 1.26794 ++      },
 1.26795 ++    },
 1.26796 ++    {
 1.26797 ++      AVR32_SYNTAX_PICOSTM_W,
 1.26798 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSTM_W], AVR32_PARSER_ALIAS,
 1.26799 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSTM_W] },
 1.26800 ++      &avr32_syntax_table[AVR32_SYNTAX_PICOSTM_W_PU], -2,
 1.26801 ++      {
 1.26802 ++	AVR32_OPERAND_INTREG,
 1.26803 ++	AVR32_OPERAND_PICO_REGLIST_W,
 1.26804 ++      },
 1.26805 ++    },
 1.26806 ++    {
 1.26807 ++      AVR32_SYNTAX_PICOSTM_W_PU,
 1.26808 ++      AVR32_PICO, &avr32_mnemonic_table[AVR32_MNEMONIC_PICOSTM_W], AVR32_PARSER_ALIAS,
 1.26809 ++      { .alias = &avr32_alias_table[AVR32_ALIAS_PICOSTM_W_PU] },
 1.26810 ++      NULL, -2,
 1.26811 ++      {
 1.26812 ++	AVR32_OPERAND_INTREG_PREDEC,
 1.26813 ++	AVR32_OPERAND_PICO_REGLIST_W,
 1.26814 ++      },
 1.26815 ++    },
 1.26816 ++    SYNTAX_NORMAL2(RSUBEQ, RSUBEQ, RSUBEQ, INTREG, SIGNED_CONST, AVR32_V1),
 1.26817 ++    SYNTAX_NORMAL2(RSUBNE, RSUBNE, RSUBNE, INTREG, SIGNED_CONST, AVR32_V2),
 1.26818 ++    SYNTAX_NORMAL2(RSUBCC, RSUBCC, RSUBCC, INTREG, SIGNED_CONST, AVR32_V2),
 1.26819 ++    SYNTAX_NORMAL2(RSUBCS, RSUBCS, RSUBCS, INTREG, SIGNED_CONST, AVR32_V2),
 1.26820 ++    SYNTAX_NORMAL2(RSUBGE, RSUBGE, RSUBGE, INTREG, SIGNED_CONST, AVR32_V2),
 1.26821 ++    SYNTAX_NORMAL2(RSUBLT, RSUBLT, RSUBLT, INTREG, SIGNED_CONST, AVR32_V2),
 1.26822 ++    SYNTAX_NORMAL2(RSUBMI, RSUBMI, RSUBMI, INTREG, SIGNED_CONST, AVR32_V2),
 1.26823 ++    SYNTAX_NORMAL2(RSUBPL, RSUBPL, RSUBPL, INTREG, SIGNED_CONST, AVR32_V2),
 1.26824 ++    SYNTAX_NORMAL2(RSUBLS, RSUBLS, RSUBLS, INTREG, SIGNED_CONST, AVR32_V2),
 1.26825 ++    SYNTAX_NORMAL2(RSUBGT, RSUBGT, RSUBGT, INTREG, SIGNED_CONST, AVR32_V2),
 1.26826 ++    SYNTAX_NORMAL2(RSUBLE, RSUBLE, RSUBLE, INTREG, SIGNED_CONST, AVR32_V2),
 1.26827 ++    SYNTAX_NORMAL2(RSUBHI, RSUBHI, RSUBHI, INTREG, SIGNED_CONST, AVR32_V2),
 1.26828 ++    SYNTAX_NORMAL2(RSUBVS, RSUBVS, RSUBVS, INTREG, SIGNED_CONST, AVR32_V2),
 1.26829 ++    SYNTAX_NORMAL2(RSUBVC, RSUBVC, RSUBVC, INTREG, SIGNED_CONST, AVR32_V2),
 1.26830 ++    SYNTAX_NORMAL2(RSUBQS, RSUBQS, RSUBQS, INTREG, SIGNED_CONST, AVR32_V2),
 1.26831 ++    SYNTAX_NORMAL2(RSUBAL, RSUBAL, RSUBAL, INTREG, SIGNED_CONST, AVR32_V2),
 1.26832 ++    SYNTAX_NORMAL2(RSUBHS, RSUBHS, RSUBCC, INTREG, SIGNED_CONST, AVR32_V2),
 1.26833 ++    SYNTAX_NORMAL2(RSUBLO, RSUBLO, RSUBCS, INTREG, SIGNED_CONST, AVR32_V2),
 1.26834 ++    SYNTAX_NORMAL3(ADDEQ, ADDEQ, ADDEQ, INTREG, INTREG, INTREG, AVR32_V2),
 1.26835 ++    SYNTAX_NORMAL3(ADDNE, ADDNE, ADDNE, INTREG, INTREG, INTREG, AVR32_V2),
 1.26836 ++    SYNTAX_NORMAL3(ADDCC, ADDCC, ADDCC, INTREG, INTREG, INTREG, AVR32_V2),
 1.26837 ++    SYNTAX_NORMAL3(ADDCS, ADDCS, ADDCS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26838 ++    SYNTAX_NORMAL3(ADDGE, ADDGE, ADDGE, INTREG, INTREG, INTREG, AVR32_V2),
 1.26839 ++    SYNTAX_NORMAL3(ADDLT, ADDLT, ADDLT, INTREG, INTREG, INTREG, AVR32_V2),
 1.26840 ++    SYNTAX_NORMAL3(ADDMI, ADDMI, ADDMI, INTREG, INTREG, INTREG, AVR32_V2),
 1.26841 ++    SYNTAX_NORMAL3(ADDPL, ADDPL, ADDPL, INTREG, INTREG, INTREG, AVR32_V2),
 1.26842 ++    SYNTAX_NORMAL3(ADDLS, ADDLS, ADDLS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26843 ++    SYNTAX_NORMAL3(ADDGT, ADDGT, ADDGT, INTREG, INTREG, INTREG, AVR32_V2),
 1.26844 ++    SYNTAX_NORMAL3(ADDLE, ADDLE, ADDLE, INTREG, INTREG, INTREG, AVR32_V2),
 1.26845 ++    SYNTAX_NORMAL3(ADDHI, ADDHI, ADDHI, INTREG, INTREG, INTREG, AVR32_V2),
 1.26846 ++    SYNTAX_NORMAL3(ADDVS, ADDVS, ADDVS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26847 ++    SYNTAX_NORMAL3(ADDVC, ADDVC, ADDVC, INTREG, INTREG, INTREG, AVR32_V2),
 1.26848 ++    SYNTAX_NORMAL3(ADDQS, ADDQS, ADDQS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26849 ++    SYNTAX_NORMAL3(ADDAL, ADDAL, ADDAL, INTREG, INTREG, INTREG, AVR32_V2),
 1.26850 ++    SYNTAX_NORMAL3(ADDHS, ADDHS, ADDCC, INTREG, INTREG, INTREG, AVR32_V2),
 1.26851 ++    SYNTAX_NORMAL3(ADDLO, ADDLO, ADDCS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26852 ++    SYNTAX_NORMAL3(SUB2EQ, SUBEQ, SUB2EQ, INTREG, INTREG, INTREG, AVR32_V2),
 1.26853 ++    SYNTAX_NORMAL3(SUB2NE, SUBNE, SUB2NE, INTREG, INTREG, INTREG, AVR32_V2),
 1.26854 ++    SYNTAX_NORMAL3(SUB2CC, SUBCC, SUB2CC, INTREG, INTREG, INTREG, AVR32_V2),
 1.26855 ++    SYNTAX_NORMAL3(SUB2CS, SUBCS, SUB2CS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26856 ++    SYNTAX_NORMAL3(SUB2GE, SUBGE, SUB2GE, INTREG, INTREG, INTREG, AVR32_V2),
 1.26857 ++    SYNTAX_NORMAL3(SUB2LT, SUBLT, SUB2LT, INTREG, INTREG, INTREG, AVR32_V2),
 1.26858 ++    SYNTAX_NORMAL3(SUB2MI, SUBMI, SUB2MI, INTREG, INTREG, INTREG, AVR32_V2),
 1.26859 ++    SYNTAX_NORMAL3(SUB2PL, SUBPL, SUB2PL, INTREG, INTREG, INTREG, AVR32_V2),
 1.26860 ++    SYNTAX_NORMAL3(SUB2LS, SUBLS, SUB2LS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26861 ++    SYNTAX_NORMAL3(SUB2GT, SUBGT, SUB2GT, INTREG, INTREG, INTREG, AVR32_V2),
 1.26862 ++    SYNTAX_NORMAL3(SUB2LE, SUBLE, SUB2LE, INTREG, INTREG, INTREG, AVR32_V2),
 1.26863 ++    SYNTAX_NORMAL3(SUB2HI, SUBHI, SUB2HI, INTREG, INTREG, INTREG, AVR32_V2),
 1.26864 ++    SYNTAX_NORMAL3(SUB2VS, SUBVS, SUB2VS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26865 ++    SYNTAX_NORMAL3(SUB2VC, SUBVC, SUB2VC, INTREG, INTREG, INTREG, AVR32_V2),
 1.26866 ++    SYNTAX_NORMAL3(SUB2QS, SUBQS, SUB2QS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26867 ++    SYNTAX_NORMAL3(SUB2AL, SUBAL, SUB2AL, INTREG, INTREG, INTREG, AVR32_V2),
 1.26868 ++    SYNTAX_NORMAL3(SUB2HS, SUBHS, SUB2CC, INTREG, INTREG, INTREG, AVR32_V2),
 1.26869 ++    SYNTAX_NORMAL3(SUB2LO, SUBLO, SUB2CS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26870 ++    SYNTAX_NORMAL3(ANDEQ, ANDEQ, ANDEQ, INTREG, INTREG, INTREG, AVR32_V2),
 1.26871 ++    SYNTAX_NORMAL3(ANDNE, ANDNE, ANDNE, INTREG, INTREG, INTREG, AVR32_V2),
 1.26872 ++    SYNTAX_NORMAL3(ANDCC, ANDCC, ANDCC, INTREG, INTREG, INTREG, AVR32_V2),
 1.26873 ++    SYNTAX_NORMAL3(ANDCS, ANDCS, ANDCS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26874 ++    SYNTAX_NORMAL3(ANDGE, ANDGE, ANDGE, INTREG, INTREG, INTREG, AVR32_V2),
 1.26875 ++    SYNTAX_NORMAL3(ANDLT, ANDLT, ANDLT, INTREG, INTREG, INTREG, AVR32_V2),
 1.26876 ++    SYNTAX_NORMAL3(ANDMI, ANDMI, ANDMI, INTREG, INTREG, INTREG, AVR32_V2),
 1.26877 ++    SYNTAX_NORMAL3(ANDPL, ANDPL, ANDPL, INTREG, INTREG, INTREG, AVR32_V2),
 1.26878 ++    SYNTAX_NORMAL3(ANDLS, ANDLS, ANDLS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26879 ++    SYNTAX_NORMAL3(ANDGT, ANDGT, ANDGT, INTREG, INTREG, INTREG, AVR32_V2),
 1.26880 ++    SYNTAX_NORMAL3(ANDLE, ANDLE, ANDLE, INTREG, INTREG, INTREG, AVR32_V2),
 1.26881 ++    SYNTAX_NORMAL3(ANDHI, ANDHI, ANDHI, INTREG, INTREG, INTREG, AVR32_V2),
 1.26882 ++    SYNTAX_NORMAL3(ANDVS, ANDVS, ANDVS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26883 ++    SYNTAX_NORMAL3(ANDVC, ANDVC, ANDVC, INTREG, INTREG, INTREG, AVR32_V2),
 1.26884 ++    SYNTAX_NORMAL3(ANDQS, ANDQS, ANDQS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26885 ++    SYNTAX_NORMAL3(ANDAL, ANDAL, ANDAL, INTREG, INTREG, INTREG, AVR32_V2),
 1.26886 ++    SYNTAX_NORMAL3(ANDHS, ANDHS, ANDCC, INTREG, INTREG, INTREG, AVR32_V2),
 1.26887 ++    SYNTAX_NORMAL3(ANDLO, ANDLO, ANDCS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26888 ++    SYNTAX_NORMAL3(OREQ, OREQ, OREQ, INTREG, INTREG, INTREG, AVR32_V2),
 1.26889 ++    SYNTAX_NORMAL3(ORNE, ORNE, ORNE, INTREG, INTREG, INTREG, AVR32_V2),
 1.26890 ++    SYNTAX_NORMAL3(ORCC, ORCC, ORCC, INTREG, INTREG, INTREG, AVR32_V2),
 1.26891 ++    SYNTAX_NORMAL3(ORCS, ORCS, ORCS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26892 ++    SYNTAX_NORMAL3(ORGE, ORGE, ORGE, INTREG, INTREG, INTREG, AVR32_V2),
 1.26893 ++    SYNTAX_NORMAL3(ORLT, ORLT, ORLT, INTREG, INTREG, INTREG, AVR32_V2),
 1.26894 ++    SYNTAX_NORMAL3(ORMI, ORMI, ORMI, INTREG, INTREG, INTREG, AVR32_V2),
 1.26895 ++    SYNTAX_NORMAL3(ORPL, ORPL, ORPL, INTREG, INTREG, INTREG, AVR32_V2),
 1.26896 ++    SYNTAX_NORMAL3(ORLS, ORLS, ORLS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26897 ++    SYNTAX_NORMAL3(ORGT, ORGT, ORGT, INTREG, INTREG, INTREG, AVR32_V2),
 1.26898 ++    SYNTAX_NORMAL3(ORLE, ORLE, ORLE, INTREG, INTREG, INTREG, AVR32_V2),
 1.26899 ++    SYNTAX_NORMAL3(ORHI, ORHI, ORHI, INTREG, INTREG, INTREG, AVR32_V2),
 1.26900 ++    SYNTAX_NORMAL3(ORVS, ORVS, ORVS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26901 ++    SYNTAX_NORMAL3(ORVC, ORVC, ORVC, INTREG, INTREG, INTREG, AVR32_V2),
 1.26902 ++    SYNTAX_NORMAL3(ORQS, ORQS, ORQS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26903 ++    SYNTAX_NORMAL3(ORAL, ORAL, ORAL, INTREG, INTREG, INTREG, AVR32_V2),
 1.26904 ++    SYNTAX_NORMAL3(ORHS, ORHS, ORCC, INTREG, INTREG, INTREG, AVR32_V2),
 1.26905 ++    SYNTAX_NORMAL3(ORLO, ORLO, ORCS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26906 ++    SYNTAX_NORMAL3(EOREQ, EOREQ, EOREQ, INTREG, INTREG, INTREG, AVR32_V2),
 1.26907 ++    SYNTAX_NORMAL3(EORNE, EORNE, EORNE, INTREG, INTREG, INTREG, AVR32_V2),
 1.26908 ++    SYNTAX_NORMAL3(EORCC, EORCC, EORCC, INTREG, INTREG, INTREG, AVR32_V2),
 1.26909 ++    SYNTAX_NORMAL3(EORCS, EORCS, EORCS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26910 ++    SYNTAX_NORMAL3(EORGE, EORGE, EORGE, INTREG, INTREG, INTREG, AVR32_V2),
 1.26911 ++    SYNTAX_NORMAL3(EORLT, EORLT, EORLT, INTREG, INTREG, INTREG, AVR32_V2),
 1.26912 ++    SYNTAX_NORMAL3(EORMI, EORMI, EORMI, INTREG, INTREG, INTREG, AVR32_V2),
 1.26913 ++    SYNTAX_NORMAL3(EORPL, EORPL, EORPL, INTREG, INTREG, INTREG, AVR32_V2),
 1.26914 ++    SYNTAX_NORMAL3(EORLS, EORLS, EORLS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26915 ++    SYNTAX_NORMAL3(EORGT, EORGT, EORGT, INTREG, INTREG, INTREG, AVR32_V2),
 1.26916 ++    SYNTAX_NORMAL3(EORLE, EORLE, EORLE, INTREG, INTREG, INTREG, AVR32_V2),
 1.26917 ++    SYNTAX_NORMAL3(EORHI, EORHI, EORHI, INTREG, INTREG, INTREG, AVR32_V2),
 1.26918 ++    SYNTAX_NORMAL3(EORVS, EORVS, EORVS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26919 ++    SYNTAX_NORMAL3(EORVC, EORVC, EORVC, INTREG, INTREG, INTREG, AVR32_V2),
 1.26920 ++    SYNTAX_NORMAL3(EORQS, EORQS, EORQS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26921 ++    SYNTAX_NORMAL3(EORAL, EORAL, EORAL, INTREG, INTREG, INTREG, AVR32_V2),
 1.26922 ++    SYNTAX_NORMAL3(EORHS, EORHS, EORCC, INTREG, INTREG, INTREG, AVR32_V2),
 1.26923 ++    SYNTAX_NORMAL3(EORLO, EORLO, EORCS, INTREG, INTREG, INTREG, AVR32_V2),
 1.26924 ++    SYNTAX_NORMAL2(LD_WEQ, LD_WEQ, LD_WEQ, INTREG, INTREG_UDISP_W, AVR32_V2),
 1.26925 ++    SYNTAX_NORMAL2(LD_WNE, LD_WNE, LD_WNE, INTREG, INTREG_UDISP_W, AVR32_V2),
 1.26926 ++    SYNTAX_NORMAL2(LD_WCC, LD_WCC, LD_WCC, INTREG, INTREG_UDISP_W, AVR32_V2),
 1.26927 ++    SYNTAX_NORMAL2(LD_WCS, LD_WCS, LD_WCS, INTREG, INTREG_UDISP_W, AVR32_V2),
 1.26928 ++    SYNTAX_NORMAL2(LD_WGE, LD_WGE, LD_WGE, INTREG, INTREG_UDISP_W, AVR32_V2),
 1.26929 ++    SYNTAX_NORMAL2(LD_WLT, LD_WLT, LD_WLT, INTREG, INTREG_UDISP_W, AVR32_V2),
 1.26930 ++    SYNTAX_NORMAL2(LD_WMI, LD_WMI, LD_WMI, INTREG, INTREG_UDISP_W, AVR32_V2),
 1.26931 ++    SYNTAX_NORMAL2(LD_WPL, LD_WPL, LD_WPL, INTREG, INTREG_UDISP_W, AVR32_V2),
 1.26932 ++    SYNTAX_NORMAL2(LD_WLS, LD_WLS, LD_WLS, INTREG, INTREG_UDISP_W, AVR32_V2),
 1.26933 ++    SYNTAX_NORMAL2(LD_WGT, LD_WGT, LD_WGT, INTREG, INTREG_UDISP_W, AVR32_V2),
 1.26934 ++    SYNTAX_NORMAL2(LD_WLE, LD_WLE, LD_WLE, INTREG, INTREG_UDISP_W, AVR32_V2),
 1.26935 ++    SYNTAX_NORMAL2(LD_WHI, LD_WHI, LD_WHI, INTREG, INTREG_UDISP_W, AVR32_V2),
 1.26936 ++    SYNTAX_NORMAL2(LD_WVS, LD_WVS, LD_WVS, INTREG, INTREG_UDISP_W, AVR32_V2),
 1.26937 ++    SYNTAX_NORMAL2(LD_WVC, LD_WVC, LD_WVC, INTREG, INTREG_UDISP_W, AVR32_V2),
 1.26938 ++    SYNTAX_NORMAL2(LD_WQS, LD_WQS, LD_WQS, INTREG, INTREG_UDISP_W, AVR32_V2),
 1.26939 ++    SYNTAX_NORMAL2(LD_WAL, LD_WAL, LD_WAL, INTREG, INTREG_UDISP_W, AVR32_V2),
 1.26940 ++    SYNTAX_NORMAL2(LD_WHS, LD_WHS, LD_WCC, INTREG, INTREG_UDISP_W, AVR32_V2),
 1.26941 ++    SYNTAX_NORMAL2(LD_WLO, LD_WLO, LD_WCS, INTREG, INTREG_UDISP_W, AVR32_V2),
 1.26942 ++    SYNTAX_NORMAL2(LD_SHEQ, LD_SHEQ, LD_SHEQ, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26943 ++    SYNTAX_NORMAL2(LD_SHNE, LD_SHNE, LD_SHNE, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26944 ++    SYNTAX_NORMAL2(LD_SHCC, LD_SHCC, LD_SHCC, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26945 ++    SYNTAX_NORMAL2(LD_SHCS, LD_SHCS, LD_SHCS, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26946 ++    SYNTAX_NORMAL2(LD_SHGE, LD_SHGE, LD_SHGE, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26947 ++    SYNTAX_NORMAL2(LD_SHLT, LD_SHLT, LD_SHLT, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26948 ++    SYNTAX_NORMAL2(LD_SHMI, LD_SHMI, LD_SHMI, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26949 ++    SYNTAX_NORMAL2(LD_SHPL, LD_SHPL, LD_SHPL, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26950 ++    SYNTAX_NORMAL2(LD_SHLS, LD_SHLS, LD_SHLS, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26951 ++    SYNTAX_NORMAL2(LD_SHGT, LD_SHGT, LD_SHGT, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26952 ++    SYNTAX_NORMAL2(LD_SHLE, LD_SHLE, LD_SHLE, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26953 ++    SYNTAX_NORMAL2(LD_SHHI, LD_SHHI, LD_SHHI, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26954 ++    SYNTAX_NORMAL2(LD_SHVS, LD_SHVS, LD_SHVS, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26955 ++    SYNTAX_NORMAL2(LD_SHVC, LD_SHVC, LD_SHVC, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26956 ++    SYNTAX_NORMAL2(LD_SHQS, LD_SHQS, LD_SHQS, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26957 ++    SYNTAX_NORMAL2(LD_SHAL, LD_SHAL, LD_SHAL, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26958 ++    SYNTAX_NORMAL2(LD_SHHS, LD_SHHS, LD_SHCC, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26959 ++    SYNTAX_NORMAL2(LD_SHLO, LD_SHLO, LD_SHCS, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26960 ++    SYNTAX_NORMAL2(LD_UHEQ, LD_UHEQ, LD_UHEQ, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26961 ++    SYNTAX_NORMAL2(LD_UHNE, LD_UHNE, LD_UHNE, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26962 ++    SYNTAX_NORMAL2(LD_UHCC, LD_UHCC, LD_UHCC, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26963 ++    SYNTAX_NORMAL2(LD_UHCS, LD_UHCS, LD_UHCS, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26964 ++    SYNTAX_NORMAL2(LD_UHGE, LD_UHGE, LD_UHGE, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26965 ++    SYNTAX_NORMAL2(LD_UHLT, LD_UHLT, LD_UHLT, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26966 ++    SYNTAX_NORMAL2(LD_UHMI, LD_UHMI, LD_UHMI, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26967 ++    SYNTAX_NORMAL2(LD_UHPL, LD_UHPL, LD_UHPL, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26968 ++    SYNTAX_NORMAL2(LD_UHLS, LD_UHLS, LD_UHLS, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26969 ++    SYNTAX_NORMAL2(LD_UHGT, LD_UHGT, LD_UHGT, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26970 ++    SYNTAX_NORMAL2(LD_UHLE, LD_UHLE, LD_UHLE, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26971 ++    SYNTAX_NORMAL2(LD_UHHI, LD_UHHI, LD_UHHI, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26972 ++    SYNTAX_NORMAL2(LD_UHVS, LD_UHVS, LD_UHVS, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26973 ++    SYNTAX_NORMAL2(LD_UHVC, LD_UHVC, LD_UHVC, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26974 ++    SYNTAX_NORMAL2(LD_UHQS, LD_UHQS, LD_UHQS, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26975 ++    SYNTAX_NORMAL2(LD_UHAL, LD_UHAL, LD_UHAL, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26976 ++    SYNTAX_NORMAL2(LD_UHHS, LD_UHHS, LD_UHCC, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26977 ++    SYNTAX_NORMAL2(LD_UHLO, LD_UHLO, LD_UHCS, INTREG, INTREG_UDISP_H, AVR32_V2),
 1.26978 ++    SYNTAX_NORMAL2(LD_SBEQ, LD_SBEQ, LD_SBEQ, INTREG, INTREG_UDISP, AVR32_V2),
 1.26979 ++    SYNTAX_NORMAL2(LD_SBNE, LD_SBNE, LD_SBNE, INTREG, INTREG_UDISP, AVR32_V2),
 1.26980 ++    SYNTAX_NORMAL2(LD_SBCC, LD_SBCC, LD_SBCC, INTREG, INTREG_UDISP, AVR32_V2),
 1.26981 ++    SYNTAX_NORMAL2(LD_SBCS, LD_SBCS, LD_SBCS, INTREG, INTREG_UDISP, AVR32_V2),
 1.26982 ++    SYNTAX_NORMAL2(LD_SBGE, LD_SBGE, LD_SBGE, INTREG, INTREG_UDISP, AVR32_V2),
 1.26983 ++    SYNTAX_NORMAL2(LD_SBLT, LD_SBLT, LD_SBLT, INTREG, INTREG_UDISP, AVR32_V2),
 1.26984 ++    SYNTAX_NORMAL2(LD_SBMI, LD_SBMI, LD_SBMI, INTREG, INTREG_UDISP, AVR32_V2),
 1.26985 ++    SYNTAX_NORMAL2(LD_SBPL, LD_SBPL, LD_SBPL, INTREG, INTREG_UDISP, AVR32_V2),
 1.26986 ++    SYNTAX_NORMAL2(LD_SBLS, LD_SBLS, LD_SBLS, INTREG, INTREG_UDISP, AVR32_V2),
 1.26987 ++    SYNTAX_NORMAL2(LD_SBGT, LD_SBGT, LD_SBGT, INTREG, INTREG_UDISP, AVR32_V2),
 1.26988 ++    SYNTAX_NORMAL2(LD_SBLE, LD_SBLE, LD_SBLE, INTREG, INTREG_UDISP, AVR32_V2),
 1.26989 ++    SYNTAX_NORMAL2(LD_SBHI, LD_SBHI, LD_SBHI, INTREG, INTREG_UDISP, AVR32_V2),
 1.26990 ++    SYNTAX_NORMAL2(LD_SBVS, LD_SBVS, LD_SBVS, INTREG, INTREG_UDISP, AVR32_V2),
 1.26991 ++    SYNTAX_NORMAL2(LD_SBVC, LD_SBVC, LD_SBVC, INTREG, INTREG_UDISP, AVR32_V2),
 1.26992 ++    SYNTAX_NORMAL2(LD_SBQS, LD_SBQS, LD_SBQS, INTREG, INTREG_UDISP, AVR32_V2),
 1.26993 ++    SYNTAX_NORMAL2(LD_SBAL, LD_SBAL, LD_SBAL, INTREG, INTREG_UDISP, AVR32_V2),
 1.26994 ++    SYNTAX_NORMAL2(LD_SBHS, LD_SBHS, LD_SBCC, INTREG, INTREG_UDISP, AVR32_V2),
 1.26995 ++    SYNTAX_NORMAL2(LD_SBLO, LD_SBLO, LD_SBCS, INTREG, INTREG_UDISP, AVR32_V2),
 1.26996 ++    SYNTAX_NORMAL2(LD_UBEQ, LD_UBEQ, LD_UBEQ, INTREG, INTREG_UDISP, AVR32_V2),
 1.26997 ++    SYNTAX_NORMAL2(LD_UBNE, LD_UBNE, LD_UBNE, INTREG, INTREG_UDISP, AVR32_V2),
 1.26998 ++    SYNTAX_NORMAL2(LD_UBCC, LD_UBCC, LD_UBCC, INTREG, INTREG_UDISP, AVR32_V2),
 1.26999 ++    SYNTAX_NORMAL2(LD_UBCS, LD_UBCS, LD_UBCS, INTREG, INTREG_UDISP, AVR32_V2),
 1.27000 ++    SYNTAX_NORMAL2(LD_UBGE, LD_UBGE, LD_UBGE, INTREG, INTREG_UDISP, AVR32_V2),
 1.27001 ++    SYNTAX_NORMAL2(LD_UBLT, LD_UBLT, LD_UBLT, INTREG, INTREG_UDISP, AVR32_V2),
 1.27002 ++    SYNTAX_NORMAL2(LD_UBMI, LD_UBMI, LD_UBMI, INTREG, INTREG_UDISP, AVR32_V2),
 1.27003 ++    SYNTAX_NORMAL2(LD_UBPL, LD_UBPL, LD_UBPL, INTREG, INTREG_UDISP, AVR32_V2),
 1.27004 ++    SYNTAX_NORMAL2(LD_UBLS, LD_UBLS, LD_UBLS, INTREG, INTREG_UDISP, AVR32_V2),
 1.27005 ++    SYNTAX_NORMAL2(LD_UBGT, LD_UBGT, LD_UBGT, INTREG, INTREG_UDISP, AVR32_V2),
 1.27006 ++    SYNTAX_NORMAL2(LD_UBLE, LD_UBLE, LD_UBLE, INTREG, INTREG_UDISP, AVR32_V2),
 1.27007 ++    SYNTAX_NORMAL2(LD_UBHI, LD_UBHI, LD_UBHI, INTREG, INTREG_UDISP, AVR32_V2),
 1.27008 ++    SYNTAX_NORMAL2(LD_UBVS, LD_UBVS, LD_UBVS, INTREG, INTREG_UDISP, AVR32_V2),
 1.27009 ++    SYNTAX_NORMAL2(LD_UBVC, LD_UBVC, LD_UBVC, INTREG, INTREG_UDISP, AVR32_V2),
 1.27010 ++    SYNTAX_NORMAL2(LD_UBQS, LD_UBQS, LD_UBQS, INTREG, INTREG_UDISP, AVR32_V2),
 1.27011 ++    SYNTAX_NORMAL2(LD_UBAL, LD_UBAL, LD_UBAL, INTREG, INTREG_UDISP, AVR32_V2),
 1.27012 ++    SYNTAX_NORMAL2(LD_UBHS, LD_UBHS, LD_UBCC, INTREG, INTREG_UDISP, AVR32_V2),
 1.27013 ++    SYNTAX_NORMAL2(LD_UBLO, LD_UBLO, LD_UBCS, INTREG, INTREG_UDISP, AVR32_V2),
 1.27014 ++    SYNTAX_NORMAL2(ST_WEQ, ST_WEQ, ST_WEQ, INTREG_UDISP_W, INTREG, AVR32_V2),
 1.27015 ++    SYNTAX_NORMAL2(ST_WNE, ST_WNE, ST_WNE, INTREG_UDISP_W, INTREG, AVR32_V2),
 1.27016 ++    SYNTAX_NORMAL2(ST_WCC, ST_WCC, ST_WCC, INTREG_UDISP_W, INTREG, AVR32_V2),
 1.27017 ++    SYNTAX_NORMAL2(ST_WCS, ST_WCS, ST_WCS, INTREG_UDISP_W, INTREG, AVR32_V2),
 1.27018 ++    SYNTAX_NORMAL2(ST_WGE, ST_WGE, ST_WGE, INTREG_UDISP_W, INTREG, AVR32_V2),
 1.27019 ++    SYNTAX_NORMAL2(ST_WLT, ST_WLT, ST_WLT, INTREG_UDISP_W, INTREG, AVR32_V2),
 1.27020 ++    SYNTAX_NORMAL2(ST_WMI, ST_WMI, ST_WMI, INTREG_UDISP_W, INTREG, AVR32_V2),
 1.27021 ++    SYNTAX_NORMAL2(ST_WPL, ST_WPL, ST_WPL, INTREG_UDISP_W, INTREG, AVR32_V2),
 1.27022 ++    SYNTAX_NORMAL2(ST_WLS, ST_WLS, ST_WLS, INTREG_UDISP_W, INTREG, AVR32_V2),
 1.27023 ++    SYNTAX_NORMAL2(ST_WGT, ST_WGT, ST_WGT, INTREG_UDISP_W, INTREG, AVR32_V2),
 1.27024 ++    SYNTAX_NORMAL2(ST_WLE, ST_WLE, ST_WLE, INTREG_UDISP_W, INTREG, AVR32_V2),
 1.27025 ++    SYNTAX_NORMAL2(ST_WHI, ST_WHI, ST_WHI, INTREG_UDISP_W, INTREG, AVR32_V2),
 1.27026 ++    SYNTAX_NORMAL2(ST_WVS, ST_WVS, ST_WVS, INTREG_UDISP_W, INTREG, AVR32_V2),
 1.27027 ++    SYNTAX_NORMAL2(ST_WVC, ST_WVC, ST_WVC, INTREG_UDISP_W, INTREG, AVR32_V2),
 1.27028 ++    SYNTAX_NORMAL2(ST_WQS, ST_WQS, ST_WQS, INTREG_UDISP_W, INTREG, AVR32_V2),
 1.27029 ++    SYNTAX_NORMAL2(ST_WAL, ST_WAL, ST_WAL, INTREG_UDISP_W, INTREG, AVR32_V2),
 1.27030 ++    SYNTAX_NORMAL2(ST_WHS, ST_WHS, ST_WCC, INTREG_UDISP_W, INTREG, AVR32_V2),
 1.27031 ++    SYNTAX_NORMAL2(ST_WLO, ST_WLO, ST_WCS, INTREG_UDISP_W, INTREG, AVR32_V2),
 1.27032 ++    SYNTAX_NORMAL2(ST_HEQ, ST_HEQ, ST_HEQ, INTREG_UDISP_H, INTREG, AVR32_V2),
 1.27033 ++    SYNTAX_NORMAL2(ST_HNE, ST_HNE, ST_HNE, INTREG_UDISP_H, INTREG, AVR32_V2),
 1.27034 ++    SYNTAX_NORMAL2(ST_HCC, ST_HCC, ST_HCC, INTREG_UDISP_H, INTREG, AVR32_V2),
 1.27035 ++    SYNTAX_NORMAL2(ST_HCS, ST_HCS, ST_HCS, INTREG_UDISP_H, INTREG, AVR32_V2),
 1.27036 ++    SYNTAX_NORMAL2(ST_HGE, ST_HGE, ST_HGE, INTREG_UDISP_H, INTREG, AVR32_V2),
 1.27037 ++    SYNTAX_NORMAL2(ST_HLT, ST_HLT, ST_HLT, INTREG_UDISP_H, INTREG, AVR32_V2),
 1.27038 ++    SYNTAX_NORMAL2(ST_HMI, ST_HMI, ST_HMI, INTREG_UDISP_H, INTREG, AVR32_V2),
 1.27039 ++    SYNTAX_NORMAL2(ST_HPL, ST_HPL, ST_HPL, INTREG_UDISP_H, INTREG, AVR32_V2),
 1.27040 ++    SYNTAX_NORMAL2(ST_HLS, ST_HLS, ST_HLS, INTREG_UDISP_H, INTREG, AVR32_V2),
 1.27041 ++    SYNTAX_NORMAL2(ST_HGT, ST_HGT, ST_HGT, INTREG_UDISP_H, INTREG, AVR32_V2),
 1.27042 ++    SYNTAX_NORMAL2(ST_HLE, ST_HLE, ST_HLE, INTREG_UDISP_H, INTREG, AVR32_V2),
 1.27043 ++    SYNTAX_NORMAL2(ST_HHI, ST_HHI, ST_HHI, INTREG_UDISP_H, INTREG, AVR32_V2),
 1.27044 ++    SYNTAX_NORMAL2(ST_HVS, ST_HVS, ST_HVS, INTREG_UDISP_H, INTREG, AVR32_V2),
 1.27045 ++    SYNTAX_NORMAL2(ST_HVC, ST_HVC, ST_HVC, INTREG_UDISP_H, INTREG, AVR32_V2),
 1.27046 ++    SYNTAX_NORMAL2(ST_HQS, ST_HQS, ST_HQS, INTREG_UDISP_H, INTREG, AVR32_V2),
 1.27047 ++    SYNTAX_NORMAL2(ST_HAL, ST_HAL, ST_HAL, INTREG_UDISP_H, INTREG, AVR32_V2),
 1.27048 ++    SYNTAX_NORMAL2(ST_HHS, ST_HHS, ST_HCC, INTREG_UDISP_H, INTREG, AVR32_V2),
 1.27049 ++    SYNTAX_NORMAL2(ST_HLO, ST_HLO, ST_HCS, INTREG_UDISP_H, INTREG, AVR32_V2),
 1.27050 ++    SYNTAX_NORMAL2(ST_BEQ, ST_BEQ, ST_BEQ, INTREG_UDISP, INTREG, AVR32_V2),
 1.27051 ++    SYNTAX_NORMAL2(ST_BNE, ST_BNE, ST_BNE, INTREG_UDISP, INTREG, AVR32_V2),
 1.27052 ++    SYNTAX_NORMAL2(ST_BCC, ST_BCC, ST_BCC, INTREG_UDISP, INTREG, AVR32_V2),
 1.27053 ++    SYNTAX_NORMAL2(ST_BCS, ST_BCS, ST_BCS, INTREG_UDISP, INTREG, AVR32_V2),
 1.27054 ++    SYNTAX_NORMAL2(ST_BGE, ST_BGE, ST_BGE, INTREG_UDISP, INTREG, AVR32_V2),
 1.27055 ++    SYNTAX_NORMAL2(ST_BLT, ST_BLT, ST_BLT, INTREG_UDISP, INTREG, AVR32_V2),
 1.27056 ++    SYNTAX_NORMAL2(ST_BMI, ST_BMI, ST_BMI, INTREG_UDISP, INTREG, AVR32_V2),
 1.27057 ++    SYNTAX_NORMAL2(ST_BPL, ST_BPL, ST_BPL, INTREG_UDISP, INTREG, AVR32_V2),
 1.27058 ++    SYNTAX_NORMAL2(ST_BLS, ST_BLS, ST_BLS, INTREG_UDISP, INTREG, AVR32_V2),
 1.27059 ++    SYNTAX_NORMAL2(ST_BGT, ST_BGT, ST_BGT, INTREG_UDISP, INTREG, AVR32_V2),
 1.27060 ++    SYNTAX_NORMAL2(ST_BLE, ST_BLE, ST_BLE, INTREG_UDISP, INTREG, AVR32_V2),
 1.27061 ++    SYNTAX_NORMAL2(ST_BHI, ST_BHI, ST_BHI, INTREG_UDISP, INTREG, AVR32_V2),
 1.27062 ++    SYNTAX_NORMAL2(ST_BVS, ST_BVS, ST_BVS, INTREG_UDISP, INTREG, AVR32_V2),
 1.27063 ++    SYNTAX_NORMAL2(ST_BVC, ST_BVC, ST_BVC, INTREG_UDISP, INTREG, AVR32_V2),
 1.27064 ++    SYNTAX_NORMAL2(ST_BQS, ST_BQS, ST_BQS, INTREG_UDISP, INTREG, AVR32_V2),
 1.27065 ++    SYNTAX_NORMAL2(ST_BAL, ST_BAL, ST_BAL, INTREG_UDISP, INTREG, AVR32_V2),
 1.27066 ++    SYNTAX_NORMAL2(ST_BHS, ST_BHS, ST_BCC, INTREG_UDISP, INTREG, AVR32_V2),
 1.27067 ++    SYNTAX_NORMAL2(ST_BLO, ST_BLO, ST_BCS, INTREG_UDISP, INTREG, AVR32_V2),
 1.27068 ++    SYNTAX_NORMAL2(MOVH, MOVH, MOVH, INTREG, UNSIGNED_CONST, AVR32_V2),
 1.27069 ++
 1.27070 ++  };
 1.27071 ++
 1.27072 ++#define NORMAL_MNEMONIC(name, syntax, str)		\
 1.27073 ++  {							\
 1.27074 ++    AVR32_MNEMONIC_##name, str,				\
 1.27075 ++    &avr32_syntax_table[AVR32_SYNTAX_##syntax],		\
 1.27076 ++  }
 1.27077 ++#define FP_MNEMONIC(name, syntax, str)			\
 1.27078 ++  NORMAL_MNEMONIC(name##_S, syntax##_S, str ".s"),	\
 1.27079 ++  NORMAL_MNEMONIC(name##_D, syntax##_D, str ".d")
 1.27080 ++
 1.27081 ++const struct avr32_mnemonic avr32_mnemonic_table[] =
 1.27082 ++  {
 1.27083 ++    NORMAL_MNEMONIC(ABS, ABS, "abs"),
 1.27084 ++    NORMAL_MNEMONIC(ACALL, ACALL, "acall"),
 1.27085 ++    NORMAL_MNEMONIC(ACR, ACR, "acr"),
 1.27086 ++    NORMAL_MNEMONIC(ADC, ADC, "adc"),
 1.27087 ++    NORMAL_MNEMONIC(ADD, ADD1, "add"),
 1.27088 ++    NORMAL_MNEMONIC(ADDABS, ADDABS, "addabs"),
 1.27089 ++    NORMAL_MNEMONIC(ADDHH_W, ADDHH_W, "addhh.w"),
 1.27090 ++    NORMAL_MNEMONIC(AND, AND1, "and"),
 1.27091 ++    NORMAL_MNEMONIC(ANDH, ANDH, "andh"),
 1.27092 ++    NORMAL_MNEMONIC(ANDL, ANDL, "andl"),
 1.27093 ++    NORMAL_MNEMONIC(ANDN, ANDN, "andn"),
 1.27094 ++    NORMAL_MNEMONIC(ASR, ASR1, "asr"),
 1.27095 ++    NORMAL_MNEMONIC(BFEXTS, BFEXTS, "bfexts"),
 1.27096 ++    NORMAL_MNEMONIC(BFEXTU, BFEXTU, "bfextu"),
 1.27097 ++    NORMAL_MNEMONIC(BFINS, BFINS, "bfins"),
 1.27098 ++    NORMAL_MNEMONIC(BLD, BLD, "bld"),
 1.27099 ++    NORMAL_MNEMONIC(BREQ, BREQ1, "breq"),
 1.27100 ++    NORMAL_MNEMONIC(BRNE, BRNE1, "brne"),
 1.27101 ++    NORMAL_MNEMONIC(BRCC, BRCC1, "brcc"),
 1.27102 ++    NORMAL_MNEMONIC(BRCS, BRCS1, "brcs"),
 1.27103 ++    NORMAL_MNEMONIC(BRGE, BRGE1, "brge"),
 1.27104 ++    NORMAL_MNEMONIC(BRLT, BRLT1, "brlt"),
 1.27105 ++    NORMAL_MNEMONIC(BRMI, BRMI1, "brmi"),
 1.27106 ++    NORMAL_MNEMONIC(BRPL, BRPL1, "brpl"),
 1.27107 ++    NORMAL_MNEMONIC(BRHS, BRHS1, "brhs"),
 1.27108 ++    NORMAL_MNEMONIC(BRLO, BRLO1, "brlo"),
 1.27109 ++    NORMAL_MNEMONIC(BRLS, BRLS, "brls"),
 1.27110 ++    NORMAL_MNEMONIC(BRGT, BRGT, "brgt"),
 1.27111 ++    NORMAL_MNEMONIC(BRLE, BRLE, "brle"),
 1.27112 ++    NORMAL_MNEMONIC(BRHI, BRHI, "brhi"),
 1.27113 ++    NORMAL_MNEMONIC(BRVS, BRVS, "brvs"),
 1.27114 ++    NORMAL_MNEMONIC(BRVC, BRVC, "brvc"),
 1.27115 ++    NORMAL_MNEMONIC(BRQS, BRQS, "brqs"),
 1.27116 ++    NORMAL_MNEMONIC(BRAL, BRAL, "bral"),
 1.27117 ++    NORMAL_MNEMONIC(BREAKPOINT, BREAKPOINT, "breakpoint"),
 1.27118 ++    NORMAL_MNEMONIC(BREV, BREV, "brev"),
 1.27119 ++    NORMAL_MNEMONIC(BST, BST, "bst"),
 1.27120 ++    NORMAL_MNEMONIC(CACHE, CACHE, "cache"),
 1.27121 ++    NORMAL_MNEMONIC(CASTS_B, CASTS_B, "casts.b"),
 1.27122 ++    NORMAL_MNEMONIC(CASTS_H, CASTS_H, "casts.h"),
 1.27123 ++    NORMAL_MNEMONIC(CASTU_B, CASTU_B, "castu.b"),
 1.27124 ++    NORMAL_MNEMONIC(CASTU_H, CASTU_H, "castu.h"),
 1.27125 ++    NORMAL_MNEMONIC(CBR, CBR, "cbr"),
 1.27126 ++    NORMAL_MNEMONIC(CLZ, CLZ, "clz"),
 1.27127 ++    NORMAL_MNEMONIC(COM, COM, "com"),
 1.27128 ++    NORMAL_MNEMONIC(COP, COP, "cop"),
 1.27129 ++    NORMAL_MNEMONIC(CP_B, CP_B, "cp.b"),
 1.27130 ++    NORMAL_MNEMONIC(CP_H, CP_H, "cp.h"),
 1.27131 ++    NORMAL_MNEMONIC(CP_W, CP_W1, "cp.w"),
 1.27132 ++    NORMAL_MNEMONIC(CP, CP_W1, "cp"),
 1.27133 ++    NORMAL_MNEMONIC(CPC, CPC1, "cpc"),
 1.27134 ++    NORMAL_MNEMONIC(CSRF, CSRF, "csrf"),
 1.27135 ++    NORMAL_MNEMONIC(CSRFCZ, CSRFCZ, "csrfcz"),
 1.27136 ++    NORMAL_MNEMONIC(DIVS, DIVS, "divs"),
 1.27137 ++    NORMAL_MNEMONIC(DIVU, DIVU, "divu"),
 1.27138 ++    NORMAL_MNEMONIC(EOR, EOR1, "eor"),
 1.27139 ++    NORMAL_MNEMONIC(EORL, EORL, "eorl"),
 1.27140 ++    NORMAL_MNEMONIC(EORH, EORH, "eorh"),
 1.27141 ++    NORMAL_MNEMONIC(FRS, FRS, "frs"),
 1.27142 ++    NORMAL_MNEMONIC(ICALL, ICALL, "icall"),
 1.27143 ++    NORMAL_MNEMONIC(INCJOSP, INCJOSP, "incjosp"),
 1.27144 ++    NORMAL_MNEMONIC(LD_D, LD_D1, "ld.d"),
 1.27145 ++    NORMAL_MNEMONIC(LD_SB, LD_SB2, "ld.sb"),
 1.27146 ++    NORMAL_MNEMONIC(LD_UB, LD_UB1, "ld.ub"),
 1.27147 ++    NORMAL_MNEMONIC(LD_SH, LD_SH1, "ld.sh"),
 1.27148 ++    NORMAL_MNEMONIC(LD_UH, LD_UH1, "ld.uh"),
 1.27149 ++    NORMAL_MNEMONIC(LD_W, LD_W1, "ld.w"),
 1.27150 ++    NORMAL_MNEMONIC(LDC_D, LDC_D3, "ldc.d"),
 1.27151 ++    NORMAL_MNEMONIC(LDC_W, LDC_W3, "ldc.w"),
 1.27152 ++    NORMAL_MNEMONIC(LDC0_D, LDC0_D, "ldc0.d"),
 1.27153 ++    NORMAL_MNEMONIC(LDC0_W, LDC0_W, "ldc0.w"),
 1.27154 ++    NORMAL_MNEMONIC(LDCM_D, LDCM_D, "ldcm.d"),
 1.27155 ++    NORMAL_MNEMONIC(LDCM_W, LDCM_W, "ldcm.w"),
 1.27156 ++    NORMAL_MNEMONIC(LDDPC, LDDPC, "lddpc"),
 1.27157 ++    NORMAL_MNEMONIC(LDDSP, LDDSP, "lddsp"),
 1.27158 ++    NORMAL_MNEMONIC(LDINS_B, LDINS_B, "ldins.b"),
 1.27159 ++    NORMAL_MNEMONIC(LDINS_H, LDINS_H, "ldins.h"),
 1.27160 ++    NORMAL_MNEMONIC(LDM, LDM, "ldm"),
 1.27161 ++    NORMAL_MNEMONIC(LDMTS, LDMTS, "ldmts"),
 1.27162 ++    NORMAL_MNEMONIC(LDSWP_SH, LDSWP_SH, "ldswp.sh"),
 1.27163 ++    NORMAL_MNEMONIC(LDSWP_UH, LDSWP_UH, "ldswp.uh"),
 1.27164 ++    NORMAL_MNEMONIC(LDSWP_W, LDSWP_W, "ldswp.w"),
 1.27165 ++    NORMAL_MNEMONIC(LSL, LSL1, "lsl"),
 1.27166 ++    NORMAL_MNEMONIC(LSR, LSR1, "lsr"),
 1.27167 ++    NORMAL_MNEMONIC(MAC, MAC, "mac"),
 1.27168 ++    NORMAL_MNEMONIC(MACHH_D, MACHH_D, "machh.d"),
 1.27169 ++    NORMAL_MNEMONIC(MACHH_W, MACHH_W, "machh.w"),
 1.27170 ++    NORMAL_MNEMONIC(MACS_D, MACS_D, "macs.d"),
 1.27171 ++    NORMAL_MNEMONIC(MACSATHH_W, MACSATHH_W, "macsathh.w"),
 1.27172 ++    NORMAL_MNEMONIC(MACU_D, MACUD, "macu.d"),
 1.27173 ++    NORMAL_MNEMONIC(MACWH_D, MACWH_D, "macwh.d"),
 1.27174 ++    NORMAL_MNEMONIC(MAX, MAX, "max"),
 1.27175 ++    NORMAL_MNEMONIC(MCALL, MCALL, "mcall"),
 1.27176 ++    NORMAL_MNEMONIC(MFDR, MFDR, "mfdr"),
 1.27177 ++    NORMAL_MNEMONIC(MFSR, MFSR, "mfsr"),
 1.27178 ++    NORMAL_MNEMONIC(MIN, MIN, "min"),
 1.27179 ++    NORMAL_MNEMONIC(MOV, MOV3, "mov"),
 1.27180 ++    NORMAL_MNEMONIC(MOVEQ, MOVEQ1, "moveq"),
 1.27181 ++    NORMAL_MNEMONIC(MOVNE, MOVNE1, "movne"),
 1.27182 ++    NORMAL_MNEMONIC(MOVCC, MOVCC1, "movcc"),
 1.27183 ++    NORMAL_MNEMONIC(MOVCS, MOVCS1, "movcs"),
 1.27184 ++    NORMAL_MNEMONIC(MOVGE, MOVGE1, "movge"),
 1.27185 ++    NORMAL_MNEMONIC(MOVLT, MOVLT1, "movlt"),
 1.27186 ++    NORMAL_MNEMONIC(MOVMI, MOVMI1, "movmi"),
 1.27187 ++    NORMAL_MNEMONIC(MOVPL, MOVPL1, "movpl"),
 1.27188 ++    NORMAL_MNEMONIC(MOVLS, MOVLS1, "movls"),
 1.27189 ++    NORMAL_MNEMONIC(MOVGT, MOVGT1, "movgt"),
 1.27190 ++    NORMAL_MNEMONIC(MOVLE, MOVLE1, "movle"),
 1.27191 ++    NORMAL_MNEMONIC(MOVHI, MOVHI1, "movhi"),
 1.27192 ++    NORMAL_MNEMONIC(MOVVS, MOVVS1, "movvs"),
 1.27193 ++    NORMAL_MNEMONIC(MOVVC, MOVVC1, "movvc"),
 1.27194 ++    NORMAL_MNEMONIC(MOVQS, MOVQS1, "movqs"),
 1.27195 ++    NORMAL_MNEMONIC(MOVAL, MOVAL1, "moval"),
 1.27196 ++    NORMAL_MNEMONIC(MOVHS, MOVHS1, "movhs"),
 1.27197 ++    NORMAL_MNEMONIC(MOVLO, MOVLO1, "movlo"),
 1.27198 ++    NORMAL_MNEMONIC(MTDR, MTDR, "mtdr"),
 1.27199 ++    NORMAL_MNEMONIC(MTSR, MTSR, "mtsr"),
 1.27200 ++    NORMAL_MNEMONIC(MUL, MUL1, "mul"),
 1.27201 ++    NORMAL_MNEMONIC(MULHH_W, MULHH_W, "mulhh.w"),
 1.27202 ++    NORMAL_MNEMONIC(MULNHH_W, MULNHH_W, "mulnhh.w"),
 1.27203 ++    NORMAL_MNEMONIC(MULNWH_D, MULNWH_D, "mulnwh.d"),
 1.27204 ++    NORMAL_MNEMONIC(MULS_D, MULSD, "muls.d"),
 1.27205 ++    NORMAL_MNEMONIC(MULSATHH_H, MULSATHH_H, "mulsathh.h"),
 1.27206 ++    NORMAL_MNEMONIC(MULSATHH_W, MULSATHH_W, "mulsathh.w"),
 1.27207 ++    NORMAL_MNEMONIC(MULSATRNDHH_H, MULSATRNDHH_H, "mulsatrndhh.h"),
 1.27208 ++    NORMAL_MNEMONIC(MULSATRNDWH_W, MULSATRNDWH_W, "mulsatrndwh.w"),
 1.27209 ++    NORMAL_MNEMONIC(MULSATWH_W, MULSATWH_W, "mulsatwh.w"),
 1.27210 ++    NORMAL_MNEMONIC(MULU_D, MULU_D, "mulu.d"),
 1.27211 ++    NORMAL_MNEMONIC(MULWH_D, MULWH_D, "mulwh.d"),
 1.27212 ++    NORMAL_MNEMONIC(MUSFR, MUSFR, "musfr"),
 1.27213 ++    NORMAL_MNEMONIC(MUSTR, MUSTR, "mustr"),
 1.27214 ++    NORMAL_MNEMONIC(MVCR_D, MVCR_D, "mvcr.d"),
 1.27215 ++    NORMAL_MNEMONIC(MVCR_W, MVCR_W, "mvcr.w"),
 1.27216 ++    NORMAL_MNEMONIC(MVRC_D, MVRC_D, "mvrc.d"),
 1.27217 ++    NORMAL_MNEMONIC(MVRC_W, MVRC_W, "mvrc.w"),
 1.27218 ++    NORMAL_MNEMONIC(NEG, NEG, "neg"),
 1.27219 ++    NORMAL_MNEMONIC(NOP, NOP, "nop"),
 1.27220 ++    NORMAL_MNEMONIC(OR, OR1, "or"),
 1.27221 ++    NORMAL_MNEMONIC(ORH, ORH, "orh"),
 1.27222 ++    NORMAL_MNEMONIC(ORL, ORL, "orl"),
 1.27223 ++    NORMAL_MNEMONIC(PABS_SB, PABS_SB, "pabs.sb"),
 1.27224 ++    NORMAL_MNEMONIC(PABS_SH, PABS_SH, "pabs.sh"),
 1.27225 ++    NORMAL_MNEMONIC(PACKSH_SB, PACKSH_SB, "packsh.sb"),
 1.27226 ++    NORMAL_MNEMONIC(PACKSH_UB, PACKSH_UB, "packsh.ub"),
 1.27227 ++    NORMAL_MNEMONIC(PACKW_SH, PACKW_SH, "packw.sh"),
 1.27228 ++    NORMAL_MNEMONIC(PADD_B, PADD_B, "padd.b"),
 1.27229 ++    NORMAL_MNEMONIC(PADD_H, PADD_H, "padd.h"),
 1.27230 ++    NORMAL_MNEMONIC(PADDH_SH, PADDH_SH, "paddh.sh"),
 1.27231 ++    NORMAL_MNEMONIC(PADDH_UB, PADDH_UB, "paddh.ub"),
 1.27232 ++    NORMAL_MNEMONIC(PADDS_SB, PADDS_SB, "padds.sb"),
 1.27233 ++    NORMAL_MNEMONIC(PADDS_SH, PADDS_SH, "padds.sh"),
 1.27234 ++    NORMAL_MNEMONIC(PADDS_UB, PADDS_UB, "padds.ub"),
 1.27235 ++    NORMAL_MNEMONIC(PADDS_UH, PADDS_UH, "padds.uh"),
 1.27236 ++    NORMAL_MNEMONIC(PADDSUB_H, PADDSUB_H, "paddsub.h"),
 1.27237 ++    NORMAL_MNEMONIC(PADDSUBH_SH, PADDSUBH_SH, "paddsubh.sh"),
 1.27238 ++    NORMAL_MNEMONIC(PADDSUBS_SH, PADDSUBS_SH, "paddsubs.sh"),
 1.27239 ++    NORMAL_MNEMONIC(PADDSUBS_UH, PADDSUBS_UH, "paddsubs.uh"),
 1.27240 ++    NORMAL_MNEMONIC(PADDX_H, PADDX_H, "paddx.h"),
 1.27241 ++    NORMAL_MNEMONIC(PADDXH_SH, PADDXH_SH, "paddxh.sh"),
 1.27242 ++    NORMAL_MNEMONIC(PADDXS_SH, PADDXS_SH, "paddxs.sh"),
 1.27243 ++    NORMAL_MNEMONIC(PADDXS_UH, PADDXS_UH, "paddxs.uh"),
 1.27244 ++    NORMAL_MNEMONIC(PASR_B, PASR_B, "pasr.b"),
 1.27245 ++    NORMAL_MNEMONIC(PASR_H, PASR_H, "pasr.h"),
 1.27246 ++    NORMAL_MNEMONIC(PAVG_SH, PAVG_SH, "pavg.sh"),
 1.27247 ++    NORMAL_MNEMONIC(PAVG_UB, PAVG_UB, "pavg.ub"),
 1.27248 ++    NORMAL_MNEMONIC(PLSL_B, PLSL_B, "plsl.b"),
 1.27249 ++    NORMAL_MNEMONIC(PLSL_H, PLSL_H, "plsl.h"),
 1.27250 ++    NORMAL_MNEMONIC(PLSR_B, PLSR_B, "plsr.b"),
 1.27251 ++    NORMAL_MNEMONIC(PLSR_H, PLSR_H, "plsr.h"),
 1.27252 ++    NORMAL_MNEMONIC(PMAX_SH, PMAX_SH, "pmax.sh"),
 1.27253 ++    NORMAL_MNEMONIC(PMAX_UB, PMAX_UB, "pmax.ub"),
 1.27254 ++    NORMAL_MNEMONIC(PMIN_SH, PMIN_SH, "pmin.sh"),
 1.27255 ++    NORMAL_MNEMONIC(PMIN_UB, PMIN_UB, "pmin.ub"),
 1.27256 ++    NORMAL_MNEMONIC(POPJC, POPJC, "popjc"),
 1.27257 ++    NORMAL_MNEMONIC(POPM, POPM, "popm"),
 1.27258 ++    NORMAL_MNEMONIC(PREF, PREF, "pref"),
 1.27259 ++    NORMAL_MNEMONIC(PSAD, PSAD, "psad"),
 1.27260 ++    NORMAL_MNEMONIC(PSUB_B, PSUB_B, "psub.b"),
 1.27261 ++    NORMAL_MNEMONIC(PSUB_H, PSUB_H, "psub.h"),
 1.27262 ++    NORMAL_MNEMONIC(PSUBADD_H, PSUBADD_H, "psubadd.h"),
 1.27263 ++    NORMAL_MNEMONIC(PSUBADDH_SH, PSUBADDH_SH, "psubaddh.sh"),
 1.27264 ++    NORMAL_MNEMONIC(PSUBADDS_SH, PSUBADDS_SH, "psubadds.sh"),
 1.27265 ++    NORMAL_MNEMONIC(PSUBADDS_UH, PSUBADDS_UH, "psubadds.uh"),
 1.27266 ++    NORMAL_MNEMONIC(PSUBH_SH, PSUBH_SH, "psubh.sh"),
 1.27267 ++    NORMAL_MNEMONIC(PSUBH_UB, PSUBH_UB, "psubh.ub"),
 1.27268 ++    NORMAL_MNEMONIC(PSUBS_SB, PSUBS_SB, "psubs.sb"),
 1.27269 ++    NORMAL_MNEMONIC(PSUBS_SH, PSUBS_SH, "psubs.sh"),
 1.27270 ++    NORMAL_MNEMONIC(PSUBS_UB, PSUBS_UB, "psubs.ub"),
 1.27271 ++    NORMAL_MNEMONIC(PSUBS_UH, PSUBS_UH, "psubs.uh"),
 1.27272 ++    NORMAL_MNEMONIC(PSUBX_H, PSUBX_H, "psubx.h"),
 1.27273 ++    NORMAL_MNEMONIC(PSUBXH_SH, PSUBXH_SH, "psubxh.sh"),
 1.27274 ++    NORMAL_MNEMONIC(PSUBXS_SH, PSUBXS_SH, "psubxs.sh"),
 1.27275 ++    NORMAL_MNEMONIC(PSUBXS_UH, PSUBXS_UH, "psubxs.uh"),
 1.27276 ++    NORMAL_MNEMONIC(PUNPCKSB_H, PUNPCKSB_H, "punpcksb.h"),
 1.27277 ++    NORMAL_MNEMONIC(PUNPCKUB_H, PUNPCKUB_H, "punpckub.h"),
 1.27278 ++    NORMAL_MNEMONIC(PUSHJC, PUSHJC, "pushjc"),
 1.27279 ++    NORMAL_MNEMONIC(PUSHM, PUSHM, "pushm"),
 1.27280 ++    NORMAL_MNEMONIC(RCALL, RCALL1, "rcall"),
 1.27281 ++    NORMAL_MNEMONIC(RETEQ, RETEQ, "reteq"),
 1.27282 ++    NORMAL_MNEMONIC(RETNE, RETNE, "retne"),
 1.27283 ++    NORMAL_MNEMONIC(RETCC, RETCC, "retcc"),
 1.27284 ++    NORMAL_MNEMONIC(RETCS, RETCS, "retcs"),
 1.27285 ++    NORMAL_MNEMONIC(RETGE, RETGE, "retge"),
 1.27286 ++    NORMAL_MNEMONIC(RETLT, RETLT, "retlt"),
 1.27287 ++    NORMAL_MNEMONIC(RETMI, RETMI, "retmi"),
 1.27288 ++    NORMAL_MNEMONIC(RETPL, RETPL, "retpl"),
 1.27289 ++    NORMAL_MNEMONIC(RETLS, RETLS, "retls"),
 1.27290 ++    NORMAL_MNEMONIC(RETGT, RETGT, "retgt"),
 1.27291 ++    NORMAL_MNEMONIC(RETLE, RETLE, "retle"),
 1.27292 ++    NORMAL_MNEMONIC(RETHI, RETHI, "rethi"),
 1.27293 ++    NORMAL_MNEMONIC(RETVS, RETVS, "retvs"),
 1.27294 ++    NORMAL_MNEMONIC(RETVC, RETVC, "retvc"),
 1.27295 ++    NORMAL_MNEMONIC(RETQS, RETQS, "retqs"),
 1.27296 ++    NORMAL_MNEMONIC(RETAL, RETAL, "retal"),
 1.27297 ++    NORMAL_MNEMONIC(RETHS, RETHS, "reths"),
 1.27298 ++    NORMAL_MNEMONIC(RETLO, RETLO, "retlo"),
 1.27299 ++    NORMAL_MNEMONIC(RET, RETAL, "ret"),
 1.27300 ++    NORMAL_MNEMONIC(RETD, RETD, "retd"),
 1.27301 ++    NORMAL_MNEMONIC(RETE, RETE, "rete"),
 1.27302 ++    NORMAL_MNEMONIC(RETJ, RETJ, "retj"),
 1.27303 ++    NORMAL_MNEMONIC(RETS, RETS, "rets"),
 1.27304 ++    NORMAL_MNEMONIC(RJMP, RJMP, "rjmp"),
 1.27305 ++    NORMAL_MNEMONIC(ROL, ROL, "rol"),
 1.27306 ++    NORMAL_MNEMONIC(ROR, ROR, "ror"),
 1.27307 ++    NORMAL_MNEMONIC(RSUB, RSUB1, "rsub"),
 1.27308 ++    NORMAL_MNEMONIC(SATADD_H, SATADD_H, "satadd.h"),
 1.27309 ++    NORMAL_MNEMONIC(SATADD_W, SATADD_W, "satadd.w"),
 1.27310 ++    NORMAL_MNEMONIC(SATRNDS, SATRNDS, "satrnds"),
 1.27311 ++    NORMAL_MNEMONIC(SATRNDU, SATRNDU, "satrndu"),
 1.27312 ++    NORMAL_MNEMONIC(SATS, SATS, "sats"),
 1.27313 ++    NORMAL_MNEMONIC(SATSUB_H, SATSUB_H, "satsub.h"),
 1.27314 ++    NORMAL_MNEMONIC(SATSUB_W, SATSUB_W1, "satsub.w"),
 1.27315 ++    NORMAL_MNEMONIC(SATU, SATU, "satu"),
 1.27316 ++    NORMAL_MNEMONIC(SBC, SBC, "sbc"),
 1.27317 ++    NORMAL_MNEMONIC(SBR, SBR, "sbr"),
 1.27318 ++    NORMAL_MNEMONIC(SCALL, SCALL, "scall"),
 1.27319 ++    NORMAL_MNEMONIC(SCR, SCR, "scr"),
 1.27320 ++    NORMAL_MNEMONIC(SLEEP, SLEEP, "sleep"),
 1.27321 ++    NORMAL_MNEMONIC(SREQ, SREQ, "sreq"),
 1.27322 ++    NORMAL_MNEMONIC(SRNE, SRNE, "srne"),
 1.27323 ++    NORMAL_MNEMONIC(SRCC, SRCC, "srcc"),
 1.27324 ++    NORMAL_MNEMONIC(SRCS, SRCS, "srcs"),
 1.27325 ++    NORMAL_MNEMONIC(SRGE, SRGE, "srge"),
 1.27326 ++    NORMAL_MNEMONIC(SRLT, SRLT, "srlt"),
 1.27327 ++    NORMAL_MNEMONIC(SRMI, SRMI, "srmi"),
 1.27328 ++    NORMAL_MNEMONIC(SRPL, SRPL, "srpl"),
 1.27329 ++    NORMAL_MNEMONIC(SRLS, SRLS, "srls"),
 1.27330 ++    NORMAL_MNEMONIC(SRGT, SRGT, "srgt"),
 1.27331 ++    NORMAL_MNEMONIC(SRLE, SRLE, "srle"),
 1.27332 ++    NORMAL_MNEMONIC(SRHI, SRHI, "srhi"),
 1.27333 ++    NORMAL_MNEMONIC(SRVS, SRVS, "srvs"),
 1.27334 ++    NORMAL_MNEMONIC(SRVC, SRVC, "srvc"),
 1.27335 ++    NORMAL_MNEMONIC(SRQS, SRQS, "srqs"),
 1.27336 ++    NORMAL_MNEMONIC(SRAL, SRAL, "sral"),
 1.27337 ++    NORMAL_MNEMONIC(SRHS, SRHS, "srhs"),
 1.27338 ++    NORMAL_MNEMONIC(SRLO, SRLO, "srlo"),
 1.27339 ++    NORMAL_MNEMONIC(SSRF, SSRF, "ssrf"),
 1.27340 ++    NORMAL_MNEMONIC(ST_B, ST_B1, "st.b"),
 1.27341 ++    NORMAL_MNEMONIC(ST_D, ST_D1, "st.d"),
 1.27342 ++    NORMAL_MNEMONIC(ST_H, ST_H1, "st.h"),
 1.27343 ++    NORMAL_MNEMONIC(ST_W, ST_W1, "st.w"),
 1.27344 ++    NORMAL_MNEMONIC(STC_D, STC_D3, "stc.d"),
 1.27345 ++    NORMAL_MNEMONIC(STC_W, STC_W3, "stc.w"),
 1.27346 ++    NORMAL_MNEMONIC(STC0_D, STC0_D, "stc0.d"),
 1.27347 ++    NORMAL_MNEMONIC(STC0_W, STC0_W, "stc0.w"),
 1.27348 ++    NORMAL_MNEMONIC(STCM_D, STCM_D, "stcm.d"),
 1.27349 ++    NORMAL_MNEMONIC(STCM_W, STCM_W, "stcm.w"),
 1.27350 ++    NORMAL_MNEMONIC(STCOND, STCOND, "stcond"),
 1.27351 ++    NORMAL_MNEMONIC(STDSP, STDSP, "stdsp"),
 1.27352 ++    NORMAL_MNEMONIC(STHH_W, STHH_W2, "sthh.w"),
 1.27353 ++    NORMAL_MNEMONIC(STM, STM, "stm"),
 1.27354 ++    NORMAL_MNEMONIC(STMTS, STMTS, "stmts"),
 1.27355 ++    NORMAL_MNEMONIC(STSWP_H, STSWP_H, "stswp.h"),
 1.27356 ++    NORMAL_MNEMONIC(STSWP_W, STSWP_W, "stswp.w"),
 1.27357 ++    NORMAL_MNEMONIC(SUB, SUB1, "sub"),
 1.27358 ++    NORMAL_MNEMONIC(SUBEQ, SUBEQ, "subeq"),
 1.27359 ++    NORMAL_MNEMONIC(SUBNE, SUBNE, "subne"),
 1.27360 ++    NORMAL_MNEMONIC(SUBCC, SUBCC, "subcc"),
 1.27361 ++    NORMAL_MNEMONIC(SUBCS, SUBCS, "subcs"),
 1.27362 ++    NORMAL_MNEMONIC(SUBGE, SUBGE, "subge"),
 1.27363 ++    NORMAL_MNEMONIC(SUBLT, SUBLT, "sublt"),
 1.27364 ++    NORMAL_MNEMONIC(SUBMI, SUBMI, "submi"),
 1.27365 ++    NORMAL_MNEMONIC(SUBPL, SUBPL, "subpl"),
 1.27366 ++    NORMAL_MNEMONIC(SUBLS, SUBLS, "subls"),
 1.27367 ++    NORMAL_MNEMONIC(SUBGT, SUBGT, "subgt"),
 1.27368 ++    NORMAL_MNEMONIC(SUBLE, SUBLE, "suble"),
 1.27369 ++    NORMAL_MNEMONIC(SUBHI, SUBHI, "subhi"),
 1.27370 ++    NORMAL_MNEMONIC(SUBVS, SUBVS, "subvs"),
 1.27371 ++    NORMAL_MNEMONIC(SUBVC, SUBVC, "subvc"),
 1.27372 ++    NORMAL_MNEMONIC(SUBQS, SUBQS, "subqs"),
 1.27373 ++    NORMAL_MNEMONIC(SUBAL, SUBAL, "subal"),
 1.27374 ++    NORMAL_MNEMONIC(SUBHS, SUBHS, "subhs"),
 1.27375 ++    NORMAL_MNEMONIC(SUBLO, SUBLO, "sublo"),
 1.27376 ++    NORMAL_MNEMONIC(SUBFEQ, SUBFEQ, "subfeq"),
 1.27377 ++    NORMAL_MNEMONIC(SUBFNE, SUBFNE, "subfne"),
 1.27378 ++    NORMAL_MNEMONIC(SUBFCC, SUBFCC, "subfcc"),
 1.27379 ++    NORMAL_MNEMONIC(SUBFCS, SUBFCS, "subfcs"),
 1.27380 ++    NORMAL_MNEMONIC(SUBFGE, SUBFGE, "subfge"),
 1.27381 ++    NORMAL_MNEMONIC(SUBFLT, SUBFLT, "subflt"),
 1.27382 ++    NORMAL_MNEMONIC(SUBFMI, SUBFMI, "subfmi"),
 1.27383 ++    NORMAL_MNEMONIC(SUBFPL, SUBFPL, "subfpl"),
 1.27384 ++    NORMAL_MNEMONIC(SUBFLS, SUBFLS, "subfls"),
 1.27385 ++    NORMAL_MNEMONIC(SUBFGT, SUBFGT, "subfgt"),
 1.27386 ++    NORMAL_MNEMONIC(SUBFLE, SUBFLE, "subfle"),
 1.27387 ++    NORMAL_MNEMONIC(SUBFHI, SUBFHI, "subfhi"),
 1.27388 ++    NORMAL_MNEMONIC(SUBFVS, SUBFVS, "subfvs"),
 1.27389 ++    NORMAL_MNEMONIC(SUBFVC, SUBFVC, "subfvc"),
 1.27390 ++    NORMAL_MNEMONIC(SUBFQS, SUBFQS, "subfqs"),
 1.27391 ++    NORMAL_MNEMONIC(SUBFAL, SUBFAL, "subfal"),
 1.27392 ++    NORMAL_MNEMONIC(SUBFHS, SUBFHS, "subfhs"),
 1.27393 ++    NORMAL_MNEMONIC(SUBFLO, SUBFLO, "subflo"),
 1.27394 ++    NORMAL_MNEMONIC(SUBHH_W, SUBHH_W, "subhh.w"),
 1.27395 ++    NORMAL_MNEMONIC(SWAP_B, SWAP_B, "swap.b"),
 1.27396 ++    NORMAL_MNEMONIC(SWAP_BH, SWAP_BH, "swap.bh"),
 1.27397 ++    NORMAL_MNEMONIC(SWAP_H, SWAP_H, "swap.h"),
 1.27398 ++    NORMAL_MNEMONIC(SYNC, SYNC, "sync"),
 1.27399 ++    NORMAL_MNEMONIC(TLBR, TLBR, "tlbr"),
 1.27400 ++    NORMAL_MNEMONIC(TLBS, TLBS, "tlbs"),
 1.27401 ++    NORMAL_MNEMONIC(TLBW, TLBW, "tlbw"),
 1.27402 ++    NORMAL_MNEMONIC(TNBZ, TNBZ, "tnbz"),
 1.27403 ++    NORMAL_MNEMONIC(TST, TST, "tst"),
 1.27404 ++    NORMAL_MNEMONIC(XCHG, XCHG, "xchg"),
 1.27405 ++    NORMAL_MNEMONIC(MEMC, MEMC, "memc"),
 1.27406 ++    NORMAL_MNEMONIC(MEMS, MEMS, "mems"),
 1.27407 ++    NORMAL_MNEMONIC(MEMT, MEMT, "memt"),
 1.27408 ++    FP_MNEMONIC(FADD, FADD, "fadd"),
 1.27409 ++    FP_MNEMONIC(FSUB, FSUB, "fsub"),
 1.27410 ++    FP_MNEMONIC(FMAC, FMAC, "fmac"),
 1.27411 ++    FP_MNEMONIC(FNMAC, FNMAC, "fnmac"),
 1.27412 ++    FP_MNEMONIC(FMSC, FMSC, "fmsc"),
 1.27413 ++    FP_MNEMONIC(FNMSC, FNMSC, "fnmsc"),
 1.27414 ++    FP_MNEMONIC(FMUL, FMUL, "fmul"),
 1.27415 ++    FP_MNEMONIC(FNMUL, FNMUL, "fnmul"),
 1.27416 ++    FP_MNEMONIC(FNEG, FNEG, "fneg"),
 1.27417 ++    FP_MNEMONIC(FABS, FABS, "fabs"),
 1.27418 ++    FP_MNEMONIC(FCMP, FCMP, "fcmp"),
 1.27419 ++    FP_MNEMONIC(FMOV, FMOV1, "fmov"),
 1.27420 ++    NORMAL_MNEMONIC(FCASTS_D, FCASTS_D, "fcasts.d"),
 1.27421 ++    NORMAL_MNEMONIC(FCASTD_S, FCASTD_S, "fcastd.s"),
 1.27422 ++    NORMAL_MNEMONIC(LDA_W, LDA_W, "lda.w"),
 1.27423 ++    NORMAL_MNEMONIC(CALL, CALL, "call"),
 1.27424 ++    NORMAL_MNEMONIC(PICOSVMAC, PICOSVMAC0, "picosvmac"),
 1.27425 ++    NORMAL_MNEMONIC(PICOSVMUL, PICOSVMUL0, "picosvmul"),
 1.27426 ++    NORMAL_MNEMONIC(PICOVMAC, PICOVMAC0, "picovmac"),
 1.27427 ++    NORMAL_MNEMONIC(PICOVMUL, PICOVMUL0, "picovmul"),
 1.27428 ++    NORMAL_MNEMONIC(PICOLD_D, PICOLD_D2, "picold.d"),
 1.27429 ++    NORMAL_MNEMONIC(PICOLD_W, PICOLD_W2, "picold.w"),
 1.27430 ++    NORMAL_MNEMONIC(PICOLDM_D, PICOLDM_D, "picoldm.d"),
 1.27431 ++    NORMAL_MNEMONIC(PICOLDM_W, PICOLDM_W, "picoldm.w"),
 1.27432 ++    NORMAL_MNEMONIC(PICOMV_D, PICOMV_D1, "picomv.d"),
 1.27433 ++    NORMAL_MNEMONIC(PICOMV_W, PICOMV_W1, "picomv.w"),
 1.27434 ++    NORMAL_MNEMONIC(PICOST_D, PICOST_D2, "picost.d"),
 1.27435 ++    NORMAL_MNEMONIC(PICOST_W, PICOST_W2, "picost.w"),
 1.27436 ++    NORMAL_MNEMONIC(PICOSTM_D, PICOSTM_D, "picostm.d"),
 1.27437 ++    NORMAL_MNEMONIC(PICOSTM_W, PICOSTM_W, "picostm.w"),
 1.27438 ++    NORMAL_MNEMONIC(RSUBEQ, RSUBEQ, "rsubeq"),
 1.27439 ++    NORMAL_MNEMONIC(RSUBNE, RSUBNE, "rsubne"),
 1.27440 ++    NORMAL_MNEMONIC(RSUBCC, RSUBCC, "rsubcc"),
 1.27441 ++    NORMAL_MNEMONIC(RSUBCS, RSUBCS, "rsubcs"),
 1.27442 ++    NORMAL_MNEMONIC(RSUBGE, RSUBGE, "rsubge"),
 1.27443 ++    NORMAL_MNEMONIC(RSUBLT, RSUBLT, "rsublt"),
 1.27444 ++    NORMAL_MNEMONIC(RSUBMI, RSUBMI, "rsubmi"),
 1.27445 ++    NORMAL_MNEMONIC(RSUBPL, RSUBPL, "rsubpl"),
 1.27446 ++    NORMAL_MNEMONIC(RSUBLS, RSUBLS, "rsubls"),
 1.27447 ++    NORMAL_MNEMONIC(RSUBGT, RSUBGT, "rsubgt"),
 1.27448 ++    NORMAL_MNEMONIC(RSUBLE, RSUBLE, "rsuble"),
 1.27449 ++    NORMAL_MNEMONIC(RSUBHI, RSUBHI, "rsubhi"),
 1.27450 ++    NORMAL_MNEMONIC(RSUBVS, RSUBVS, "rsubvs"),
 1.27451 ++    NORMAL_MNEMONIC(RSUBVC, RSUBVC, "rsubvc"),
 1.27452 ++    NORMAL_MNEMONIC(RSUBQS, RSUBQS, "rsubqs"),
 1.27453 ++    NORMAL_MNEMONIC(RSUBAL, RSUBAL, "rsubal"),
 1.27454 ++    NORMAL_MNEMONIC(RSUBHS, RSUBHS, "rsubhs"),
 1.27455 ++    NORMAL_MNEMONIC(RSUBLO, RSUBLO, "rsublo"),
 1.27456 ++    NORMAL_MNEMONIC(ADDEQ, ADDEQ, "addeq"),
 1.27457 ++    NORMAL_MNEMONIC(ADDNE, ADDNE, "addne"),
 1.27458 ++    NORMAL_MNEMONIC(ADDCC, ADDCC, "addcc"),
 1.27459 ++    NORMAL_MNEMONIC(ADDCS, ADDCS, "addcs"),
 1.27460 ++    NORMAL_MNEMONIC(ADDGE, ADDGE, "addge"),
 1.27461 ++    NORMAL_MNEMONIC(ADDLT, ADDLT, "addlt"),
 1.27462 ++    NORMAL_MNEMONIC(ADDMI, ADDMI, "addmi"),
 1.27463 ++    NORMAL_MNEMONIC(ADDPL, ADDPL, "addpl"),
 1.27464 ++    NORMAL_MNEMONIC(ADDLS, ADDLS, "addls"),
 1.27465 ++    NORMAL_MNEMONIC(ADDGT, ADDGT, "addgt"),
 1.27466 ++    NORMAL_MNEMONIC(ADDLE, ADDLE, "addle"),
 1.27467 ++    NORMAL_MNEMONIC(ADDHI, ADDHI, "addhi"),
 1.27468 ++    NORMAL_MNEMONIC(ADDVS, ADDVS, "addvs"),
 1.27469 ++    NORMAL_MNEMONIC(ADDVC, ADDVC, "addvc"),
 1.27470 ++    NORMAL_MNEMONIC(ADDQS, ADDQS, "addqs"),
 1.27471 ++    NORMAL_MNEMONIC(ADDAL, ADDAL, "addal"),
 1.27472 ++    NORMAL_MNEMONIC(ADDHS, ADDHS, "addhs"),
 1.27473 ++    NORMAL_MNEMONIC(ADDLO, ADDLO, "addlo"),
 1.27474 ++    NORMAL_MNEMONIC(ANDEQ, ANDEQ, "andeq"),
 1.27475 ++    NORMAL_MNEMONIC(ANDNE, ANDNE, "andne"),
 1.27476 ++    NORMAL_MNEMONIC(ANDCC, ANDCC, "andcc"),
 1.27477 ++    NORMAL_MNEMONIC(ANDCS, ANDCS, "andcs"),
 1.27478 ++    NORMAL_MNEMONIC(ANDGE, ANDGE, "andge"),
 1.27479 ++    NORMAL_MNEMONIC(ANDLT, ANDLT, "andlt"),
 1.27480 ++    NORMAL_MNEMONIC(ANDMI, ANDMI, "andmi"),
 1.27481 ++    NORMAL_MNEMONIC(ANDPL, ANDPL, "andpl"),
 1.27482 ++    NORMAL_MNEMONIC(ANDLS, ANDLS, "andls"),
 1.27483 ++    NORMAL_MNEMONIC(ANDGT, ANDGT, "andgt"),
 1.27484 ++    NORMAL_MNEMONIC(ANDLE, ANDLE, "andle"),
 1.27485 ++    NORMAL_MNEMONIC(ANDHI, ANDHI, "andhi"),
 1.27486 ++    NORMAL_MNEMONIC(ANDVS, ANDVS, "andvs"),
 1.27487 ++    NORMAL_MNEMONIC(ANDVC, ANDVC, "andvc"),
 1.27488 ++    NORMAL_MNEMONIC(ANDQS, ANDQS, "andqs"),
 1.27489 ++    NORMAL_MNEMONIC(ANDAL, ANDAL, "andal"),
 1.27490 ++    NORMAL_MNEMONIC(ANDHS, ANDHS, "andhs"),
 1.27491 ++    NORMAL_MNEMONIC(ANDLO, ANDLO, "andlo"),
 1.27492 ++    NORMAL_MNEMONIC(OREQ, OREQ, "oreq"),
 1.27493 ++    NORMAL_MNEMONIC(ORNE, ORNE, "orne"),
 1.27494 ++    NORMAL_MNEMONIC(ORCC, ORCC, "orcc"),
 1.27495 ++    NORMAL_MNEMONIC(ORCS, ORCS, "orcs"),
 1.27496 ++    NORMAL_MNEMONIC(ORGE, ORGE, "orge"),
 1.27497 ++    NORMAL_MNEMONIC(ORLT, ORLT, "orlt"),
 1.27498 ++    NORMAL_MNEMONIC(ORMI, ORMI, "ormi"),
 1.27499 ++    NORMAL_MNEMONIC(ORPL, ORPL, "orpl"),
 1.27500 ++    NORMAL_MNEMONIC(ORLS, ORLS, "orls"),
 1.27501 ++    NORMAL_MNEMONIC(ORGT, ORGT, "orgt"),
 1.27502 ++    NORMAL_MNEMONIC(ORLE, ORLE, "orle"),
 1.27503 ++    NORMAL_MNEMONIC(ORHI, ORHI, "orhi"),
 1.27504 ++    NORMAL_MNEMONIC(ORVS, ORVS, "orvs"),
 1.27505 ++    NORMAL_MNEMONIC(ORVC, ORVC, "orvc"),
 1.27506 ++    NORMAL_MNEMONIC(ORQS, ORQS, "orqs"),
 1.27507 ++    NORMAL_MNEMONIC(ORAL, ORAL, "oral"),
 1.27508 ++    NORMAL_MNEMONIC(ORHS, ORHS, "orhs"),
 1.27509 ++    NORMAL_MNEMONIC(ORLO, ORLO, "orlo"),
 1.27510 ++    NORMAL_MNEMONIC(EOREQ, EOREQ, "eoreq"),
 1.27511 ++    NORMAL_MNEMONIC(EORNE, EORNE, "eorne"),
 1.27512 ++    NORMAL_MNEMONIC(EORCC, EORCC, "eorcc"),
 1.27513 ++    NORMAL_MNEMONIC(EORCS, EORCS, "eorcs"),
 1.27514 ++    NORMAL_MNEMONIC(EORGE, EORGE, "eorge"),
 1.27515 ++    NORMAL_MNEMONIC(EORLT, EORLT, "eorlt"),
 1.27516 ++    NORMAL_MNEMONIC(EORMI, EORMI, "eormi"),
 1.27517 ++    NORMAL_MNEMONIC(EORPL, EORPL, "eorpl"),
 1.27518 ++    NORMAL_MNEMONIC(EORLS, EORLS, "eorls"),
 1.27519 ++    NORMAL_MNEMONIC(EORGT, EORGT, "eorgt"),
 1.27520 ++    NORMAL_MNEMONIC(EORLE, EORLE, "eorle"),
 1.27521 ++    NORMAL_MNEMONIC(EORHI, EORHI, "eorhi"),
 1.27522 ++    NORMAL_MNEMONIC(EORVS, EORVS, "eorvs"),
 1.27523 ++    NORMAL_MNEMONIC(EORVC, EORVC, "eorvc"),
 1.27524 ++    NORMAL_MNEMONIC(EORQS, EORQS, "eorqs"),
 1.27525 ++    NORMAL_MNEMONIC(EORAL, EORAL, "eoral"),
 1.27526 ++    NORMAL_MNEMONIC(EORHS, EORHS, "eorhs"),
 1.27527 ++    NORMAL_MNEMONIC(EORLO, EORLO, "eorlo"),
 1.27528 ++    NORMAL_MNEMONIC(LD_WEQ, LD_WEQ, "ld.weq"),
 1.27529 ++    NORMAL_MNEMONIC(LD_WNE, LD_WNE, "ld.wne"),
 1.27530 ++    NORMAL_MNEMONIC(LD_WCC, LD_WCC, "ld.wcc"),
 1.27531 ++    NORMAL_MNEMONIC(LD_WCS, LD_WCS, "ld.wcs"),
 1.27532 ++    NORMAL_MNEMONIC(LD_WGE, LD_WGE, "ld.wge"),
 1.27533 ++    NORMAL_MNEMONIC(LD_WLT, LD_WLT, "ld.wlt"),
 1.27534 ++    NORMAL_MNEMONIC(LD_WMI, LD_WMI, "ld.wmi"),
 1.27535 ++    NORMAL_MNEMONIC(LD_WPL, LD_WPL, "ld.wpl"),
 1.27536 ++    NORMAL_MNEMONIC(LD_WLS, LD_WLS, "ld.wls"),
 1.27537 ++    NORMAL_MNEMONIC(LD_WGT, LD_WGT, "ld.wgt"),
 1.27538 ++    NORMAL_MNEMONIC(LD_WLE, LD_WLE, "ld.wle"),
 1.27539 ++    NORMAL_MNEMONIC(LD_WHI, LD_WHI, "ld.whi"),
 1.27540 ++    NORMAL_MNEMONIC(LD_WVS, LD_WVS, "ld.wvs"),
 1.27541 ++    NORMAL_MNEMONIC(LD_WVC, LD_WVC, "ld.wvc"),
 1.27542 ++    NORMAL_MNEMONIC(LD_WQS, LD_WQS, "ld.wqs"),
 1.27543 ++    NORMAL_MNEMONIC(LD_WAL, LD_WAL, "ld.wal"),
 1.27544 ++    NORMAL_MNEMONIC(LD_WHS, LD_WHS, "ld.whs"),
 1.27545 ++    NORMAL_MNEMONIC(LD_WLO, LD_WLO, "ld.wlo"),
 1.27546 ++    NORMAL_MNEMONIC(LD_SHEQ, LD_SHEQ, "ld.sheq"),
 1.27547 ++    NORMAL_MNEMONIC(LD_SHNE, LD_SHNE, "ld.shne"),
 1.27548 ++    NORMAL_MNEMONIC(LD_SHCC, LD_SHCC, "ld.shcc"),
 1.27549 ++    NORMAL_MNEMONIC(LD_SHCS, LD_SHCS, "ld.shcs"),
 1.27550 ++    NORMAL_MNEMONIC(LD_SHGE, LD_SHGE, "ld.shge"),
 1.27551 ++    NORMAL_MNEMONIC(LD_SHLT, LD_SHLT, "ld.shlt"),
 1.27552 ++    NORMAL_MNEMONIC(LD_SHMI, LD_SHMI, "ld.shmi"),
 1.27553 ++    NORMAL_MNEMONIC(LD_SHPL, LD_SHPL, "ld.shpl"),
 1.27554 ++    NORMAL_MNEMONIC(LD_SHLS, LD_SHLS, "ld.shls"),
 1.27555 ++    NORMAL_MNEMONIC(LD_SHGT, LD_SHGT, "ld.shgt"),
 1.27556 ++    NORMAL_MNEMONIC(LD_SHLE, LD_SHLE, "ld.shle"),
 1.27557 ++    NORMAL_MNEMONIC(LD_SHHI, LD_SHHI, "ld.shhi"),
 1.27558 ++    NORMAL_MNEMONIC(LD_SHVS, LD_SHVS, "ld.shvs"),
 1.27559 ++    NORMAL_MNEMONIC(LD_SHVC, LD_SHVC, "ld.shvc"),
 1.27560 ++    NORMAL_MNEMONIC(LD_SHQS, LD_SHQS, "ld.shqs"),
 1.27561 ++    NORMAL_MNEMONIC(LD_SHAL, LD_SHAL, "ld.shal"),
 1.27562 ++    NORMAL_MNEMONIC(LD_SHHS, LD_SHHS, "ld.shhs"),
 1.27563 ++    NORMAL_MNEMONIC(LD_SHLO, LD_SHLO, "ld.shlo"),
 1.27564 ++    NORMAL_MNEMONIC(LD_UHEQ, LD_UHEQ, "ld.uheq"),
 1.27565 ++    NORMAL_MNEMONIC(LD_UHNE, LD_UHNE, "ld.uhne"),
 1.27566 ++    NORMAL_MNEMONIC(LD_UHCC, LD_UHCC, "ld.uhcc"),
 1.27567 ++    NORMAL_MNEMONIC(LD_UHCS, LD_UHCS, "ld.uhcs"),
 1.27568 ++    NORMAL_MNEMONIC(LD_UHGE, LD_UHGE, "ld.uhge"),
 1.27569 ++    NORMAL_MNEMONIC(LD_UHLT, LD_UHLT, "ld.uhlt"),
 1.27570 ++    NORMAL_MNEMONIC(LD_UHMI, LD_UHMI, "ld.uhmi"),
 1.27571 ++    NORMAL_MNEMONIC(LD_UHPL, LD_UHPL, "ld.uhpl"),
 1.27572 ++    NORMAL_MNEMONIC(LD_UHLS, LD_UHLS, "ld.uhls"),
 1.27573 ++    NORMAL_MNEMONIC(LD_UHGT, LD_UHGT, "ld.uhgt"),
 1.27574 ++    NORMAL_MNEMONIC(LD_UHLE, LD_UHLE, "ld.uhle"),
 1.27575 ++    NORMAL_MNEMONIC(LD_UHHI, LD_UHHI, "ld.uhhi"),
 1.27576 ++    NORMAL_MNEMONIC(LD_UHVS, LD_UHVS, "ld.uhvs"),
 1.27577 ++    NORMAL_MNEMONIC(LD_UHVC, LD_UHVC, "ld.uhvc"),
 1.27578 ++    NORMAL_MNEMONIC(LD_UHQS, LD_UHQS, "ld.uhqs"),
 1.27579 ++    NORMAL_MNEMONIC(LD_UHAL, LD_UHAL, "ld.uhal"),
 1.27580 ++    NORMAL_MNEMONIC(LD_UHHS, LD_UHHS, "ld.uhhs"),
 1.27581 ++    NORMAL_MNEMONIC(LD_UHLO, LD_UHLO, "ld.uhlo"),
 1.27582 ++    NORMAL_MNEMONIC(LD_SBEQ, LD_SBEQ, "ld.sbeq"),
 1.27583 ++    NORMAL_MNEMONIC(LD_SBNE, LD_SBNE, "ld.sbne"),
 1.27584 ++    NORMAL_MNEMONIC(LD_SBCC, LD_SBCC, "ld.sbcc"),
 1.27585 ++    NORMAL_MNEMONIC(LD_SBCS, LD_SBCS, "ld.sbcs"),
 1.27586 ++    NORMAL_MNEMONIC(LD_SBGE, LD_SBGE, "ld.sbge"),
 1.27587 ++    NORMAL_MNEMONIC(LD_SBLT, LD_SBLT, "ld.sblt"),
 1.27588 ++    NORMAL_MNEMONIC(LD_SBMI, LD_SBMI, "ld.sbmi"),
 1.27589 ++    NORMAL_MNEMONIC(LD_SBPL, LD_SBPL, "ld.sbpl"),
 1.27590 ++    NORMAL_MNEMONIC(LD_SBLS, LD_SBLS, "ld.sbls"),
 1.27591 ++    NORMAL_MNEMONIC(LD_SBGT, LD_SBGT, "ld.sbgt"),
 1.27592 ++    NORMAL_MNEMONIC(LD_SBLE, LD_SBLE, "ld.sble"),
 1.27593 ++    NORMAL_MNEMONIC(LD_SBHI, LD_SBHI, "ld.sbhi"),
 1.27594 ++    NORMAL_MNEMONIC(LD_SBVS, LD_SBVS, "ld.sbvs"),
 1.27595 ++    NORMAL_MNEMONIC(LD_SBVC, LD_SBVC, "ld.sbvc"),
 1.27596 ++    NORMAL_MNEMONIC(LD_SBQS, LD_SBQS, "ld.sbqs"),
 1.27597 ++    NORMAL_MNEMONIC(LD_SBAL, LD_SBAL, "ld.sbal"),
 1.27598 ++    NORMAL_MNEMONIC(LD_SBHS, LD_SBHS, "ld.sbhs"),
 1.27599 ++    NORMAL_MNEMONIC(LD_SBLO, LD_SBLO, "ld.sblo"),
 1.27600 ++    NORMAL_MNEMONIC(LD_UBEQ, LD_UBEQ, "ld.ubeq"),
 1.27601 ++    NORMAL_MNEMONIC(LD_UBNE, LD_UBNE, "ld.ubne"),
 1.27602 ++    NORMAL_MNEMONIC(LD_UBCC, LD_UBCC, "ld.ubcc"),
 1.27603 ++    NORMAL_MNEMONIC(LD_UBCS, LD_UBCS, "ld.ubcs"),
 1.27604 ++    NORMAL_MNEMONIC(LD_UBGE, LD_UBGE, "ld.ubge"),
 1.27605 ++    NORMAL_MNEMONIC(LD_UBLT, LD_UBLT, "ld.ublt"),
 1.27606 ++    NORMAL_MNEMONIC(LD_UBMI, LD_UBMI, "ld.ubmi"),
 1.27607 ++    NORMAL_MNEMONIC(LD_UBPL, LD_UBPL, "ld.ubpl"),
 1.27608 ++    NORMAL_MNEMONIC(LD_UBLS, LD_UBLS, "ld.ubls"),
 1.27609 ++    NORMAL_MNEMONIC(LD_UBGT, LD_UBGT, "ld.ubgt"),
 1.27610 ++    NORMAL_MNEMONIC(LD_UBLE, LD_UBLE, "ld.uble"),
 1.27611 ++    NORMAL_MNEMONIC(LD_UBHI, LD_UBHI, "ld.ubhi"),
 1.27612 ++    NORMAL_MNEMONIC(LD_UBVS, LD_UBVS, "ld.ubvs"),
 1.27613 ++    NORMAL_MNEMONIC(LD_UBVC, LD_UBVC, "ld.ubvc"),
 1.27614 ++    NORMAL_MNEMONIC(LD_UBQS, LD_UBQS, "ld.ubqs"),
 1.27615 ++    NORMAL_MNEMONIC(LD_UBAL, LD_UBAL, "ld.ubal"),
 1.27616 ++    NORMAL_MNEMONIC(LD_UBHS, LD_UBHS, "ld.ubhs"),
 1.27617 ++    NORMAL_MNEMONIC(LD_UBLO, LD_UBLO, "ld.ublo"),
 1.27618 ++    NORMAL_MNEMONIC(ST_WEQ, ST_WEQ, "st.weq"),
 1.27619 ++    NORMAL_MNEMONIC(ST_WNE, ST_WNE, "st.wne"),
 1.27620 ++    NORMAL_MNEMONIC(ST_WCC, ST_WCC, "st.wcc"),
 1.27621 ++    NORMAL_MNEMONIC(ST_WCS, ST_WCS, "st.wcs"),
 1.27622 ++    NORMAL_MNEMONIC(ST_WGE, ST_WGE, "st.wge"),
 1.27623 ++    NORMAL_MNEMONIC(ST_WLT, ST_WLT, "st.wlt"),
 1.27624 ++    NORMAL_MNEMONIC(ST_WMI, ST_WMI, "st.wmi"),
 1.27625 ++    NORMAL_MNEMONIC(ST_WPL, ST_WPL, "st.wpl"),
 1.27626 ++    NORMAL_MNEMONIC(ST_WLS, ST_WLS, "st.wls"),
 1.27627 ++    NORMAL_MNEMONIC(ST_WGT, ST_WGT, "st.wgt"),
 1.27628 ++    NORMAL_MNEMONIC(ST_WLE, ST_WLE, "st.wle"),
 1.27629 ++    NORMAL_MNEMONIC(ST_WHI, ST_WHI, "st.whi"),
 1.27630 ++    NORMAL_MNEMONIC(ST_WVS, ST_WVS, "st.wvs"),
 1.27631 ++    NORMAL_MNEMONIC(ST_WVC, ST_WVC, "st.wvc"),
 1.27632 ++    NORMAL_MNEMONIC(ST_WQS, ST_WQS, "st.wqs"),
 1.27633 ++    NORMAL_MNEMONIC(ST_WAL, ST_WAL, "st.wal"),
 1.27634 ++    NORMAL_MNEMONIC(ST_WHS, ST_WHS, "st.whs"),
 1.27635 ++    NORMAL_MNEMONIC(ST_WLO, ST_WLO, "st.wlo"),
 1.27636 ++    NORMAL_MNEMONIC(ST_HEQ, ST_HEQ, "st.heq"),
 1.27637 ++    NORMAL_MNEMONIC(ST_HNE, ST_HNE, "st.hne"),
 1.27638 ++    NORMAL_MNEMONIC(ST_HCC, ST_HCC, "st.hcc"),
 1.27639 ++    NORMAL_MNEMONIC(ST_HCS, ST_HCS, "st.hcs"),
 1.27640 ++    NORMAL_MNEMONIC(ST_HGE, ST_HGE, "st.hge"),
 1.27641 ++    NORMAL_MNEMONIC(ST_HLT, ST_HLT, "st.hlt"),
 1.27642 ++    NORMAL_MNEMONIC(ST_HMI, ST_HMI, "st.hmi"),
 1.27643 ++    NORMAL_MNEMONIC(ST_HPL, ST_HPL, "st.hpl"),
 1.27644 ++    NORMAL_MNEMONIC(ST_HLS, ST_HLS, "st.hls"),
 1.27645 ++    NORMAL_MNEMONIC(ST_HGT, ST_HGT, "st.hgt"),
 1.27646 ++    NORMAL_MNEMONIC(ST_HLE, ST_HLE, "st.hle"),
 1.27647 ++    NORMAL_MNEMONIC(ST_HHI, ST_HHI, "st.hhi"),
 1.27648 ++    NORMAL_MNEMONIC(ST_HVS, ST_HVS, "st.hvs"),
 1.27649 ++    NORMAL_MNEMONIC(ST_HVC, ST_HVC, "st.hvc"),
 1.27650 ++    NORMAL_MNEMONIC(ST_HQS, ST_HQS, "st.hqs"),
 1.27651 ++    NORMAL_MNEMONIC(ST_HAL, ST_HAL, "st.hal"),
 1.27652 ++    NORMAL_MNEMONIC(ST_HHS, ST_HHS, "st.hhs"),
 1.27653 ++    NORMAL_MNEMONIC(ST_HLO, ST_HLO, "st.hlo"),
 1.27654 ++    NORMAL_MNEMONIC(ST_BEQ, ST_BEQ, "st.beq"),
 1.27655 ++    NORMAL_MNEMONIC(ST_BNE, ST_BNE, "st.bne"),
 1.27656 ++    NORMAL_MNEMONIC(ST_BCC, ST_BCC, "st.bcc"),
 1.27657 ++    NORMAL_MNEMONIC(ST_BCS, ST_BCS, "st.bcs"),
 1.27658 ++    NORMAL_MNEMONIC(ST_BGE, ST_BGE, "st.bge"),
 1.27659 ++    NORMAL_MNEMONIC(ST_BLT, ST_BLT, "st.blt"),
 1.27660 ++    NORMAL_MNEMONIC(ST_BMI, ST_BMI, "st.bmi"),
 1.27661 ++    NORMAL_MNEMONIC(ST_BPL, ST_BPL, "st.bpl"),
 1.27662 ++    NORMAL_MNEMONIC(ST_BLS, ST_BLS, "st.bls"),
 1.27663 ++    NORMAL_MNEMONIC(ST_BGT, ST_BGT, "st.bgt"),
 1.27664 ++    NORMAL_MNEMONIC(ST_BLE, ST_BLE, "st.ble"),
 1.27665 ++    NORMAL_MNEMONIC(ST_BHI, ST_BHI, "st.bhi"),
 1.27666 ++    NORMAL_MNEMONIC(ST_BVS, ST_BVS, "st.bvs"),
 1.27667 ++    NORMAL_MNEMONIC(ST_BVC, ST_BVC, "st.bvc"),
 1.27668 ++    NORMAL_MNEMONIC(ST_BQS, ST_BQS, "st.bqs"),
 1.27669 ++    NORMAL_MNEMONIC(ST_BAL, ST_BAL, "st.bal"),
 1.27670 ++    NORMAL_MNEMONIC(ST_BHS, ST_BHS, "st.bhs"),
 1.27671 ++    NORMAL_MNEMONIC(ST_BLO, ST_BLO, "st.blo"),
 1.27672 ++    NORMAL_MNEMONIC(MOVH, MOVH, "movh"),
 1.27673 ++
 1.27674 ++  };
 1.27675 ++#undef NORMAL_MNEMONIC
 1.27676 ++#undef ALIAS_MNEMONIC
 1.27677 ++#undef FP_MNEMONIC
 1.27678 +--- /dev/null
 1.27679 ++++ b/opcodes/avr32-opc.h
 1.27680 +@@ -0,0 +1,2370 @@
 1.27681 ++/* Opcode tables for AVR32.
 1.27682 ++   Copyright 2005, 2006 Atmel Corporation.
 1.27683 ++
 1.27684 ++   Written by Haavard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com>
 1.27685 ++
 1.27686 ++   This file is part of libopcodes.
 1.27687 ++
 1.27688 ++   This program is free software; you can redistribute it and/or
 1.27689 ++   modify it under the terms of the GNU General Public License as
 1.27690 ++   published by the Free Software Foundation; either version 2 of the
 1.27691 ++   License, or (at your option) any later version.
 1.27692 ++
 1.27693 ++   This program is distributed in the hope that it will be useful, but
 1.27694 ++   WITHOUT ANY WARRANTY; without even the implied warranty of
 1.27695 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 1.27696 ++   General Public License for more details.
 1.27697 ++
 1.27698 ++   You should have received a copy of the GNU General Public License
 1.27699 ++   along with this program; if not, write to the Free Software
 1.27700 ++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 1.27701 ++   02111-1307, USA.  */
 1.27702 ++
 1.27703 ++#include "bfd.h"
 1.27704 ++
 1.27705 ++#define AVR32_MAX_OPERANDS	8
 1.27706 ++#define AVR32_MAX_FIELDS	8
 1.27707 ++
 1.27708 ++#define AVR32_V1	        (1 << 1)
 1.27709 ++#define AVR32_SIMD		(1 << 2)
 1.27710 ++#define AVR32_DSP		(1 << 3)
 1.27711 ++#define AVR32_RMW		(1 << 4)
 1.27712 ++#define AVR32_V2	        (1 << 5)
 1.27713 ++#define AVR32_FP		(1 << 16)
 1.27714 ++#define AVR32_PICO		(1 << 17)
 1.27715 ++
 1.27716 ++/* Registers we commonly refer to */
 1.27717 ++#define AVR32_REG_R12		12
 1.27718 ++#define AVR32_REG_SP		13
 1.27719 ++#define AVR32_REG_LR		14
 1.27720 ++#define AVR32_REG_PC		15
 1.27721 ++
 1.27722 ++struct avr32_ifield
 1.27723 ++{
 1.27724 ++  int id;
 1.27725 ++  unsigned short bitsize;
 1.27726 ++  unsigned short shift;
 1.27727 ++  unsigned long mask;
 1.27728 ++
 1.27729 ++  /* If the value doesn't fit, it will be truncated with no warning */
 1.27730 ++  void (*insert)(const struct avr32_ifield *, void *, unsigned long);
 1.27731 ++  void (*extract)(const struct avr32_ifield *, void *, unsigned long *);
 1.27732 ++};
 1.27733 ++
 1.27734 ++struct avr32_opcode
 1.27735 ++{
 1.27736 ++  int id;
 1.27737 ++  int size;
 1.27738 ++  unsigned long value;
 1.27739 ++  unsigned long mask;
 1.27740 ++  const struct avr32_syntax *syntax;
 1.27741 ++  bfd_reloc_code_real_type reloc_type;
 1.27742 ++  unsigned int nr_fields;
 1.27743 ++  /* if relaxable, which field is variable, otherwise -1 */
 1.27744 ++  int var_field;
 1.27745 ++  const struct avr32_ifield *fields[AVR32_MAX_FIELDS];
 1.27746 ++};
 1.27747 ++
 1.27748 ++struct avr32_alias
 1.27749 ++{
 1.27750 ++  int id;
 1.27751 ++  const struct avr32_opcode *opc;
 1.27752 ++  struct {
 1.27753 ++    int is_opindex;
 1.27754 ++    unsigned long value;
 1.27755 ++  } operand_map[AVR32_MAX_OPERANDS];
 1.27756 ++};
 1.27757 ++
 1.27758 ++struct avr32_syntax
 1.27759 ++{
 1.27760 ++  int id;
 1.27761 ++  unsigned long isa_flags;
 1.27762 ++  const struct avr32_mnemonic *mnemonic;
 1.27763 ++  int type;
 1.27764 ++  union {
 1.27765 ++    const struct avr32_opcode *opc;
 1.27766 ++    const struct avr32_alias *alias;
 1.27767 ++  } u;
 1.27768 ++  const struct avr32_syntax *next;
 1.27769 ++  /* negative means "vararg" */
 1.27770 ++  int nr_operands;
 1.27771 ++  int operand[AVR32_MAX_OPERANDS];
 1.27772 ++};
 1.27773 ++
 1.27774 ++#if 0
 1.27775 ++#define AVR32_ALIAS_MAKE_CONST(val) ((val) | 0x80000000UL)
 1.27776 ++#define AVR32_ALIAS_IS_CONST(mapval) (((mapval) & 0x80000000UL) != 0)
 1.27777 ++#define AVR32_ALIAS_GET_CONST(mapval) ((mapval) & ~0x80000000UL)
 1.27778 ++#endif
 1.27779 ++
 1.27780 ++struct avr32_mnemonic
 1.27781 ++{
 1.27782 ++  int id;
 1.27783 ++  const char *name;
 1.27784 ++  const struct avr32_syntax *syntax;
 1.27785 ++};
 1.27786 ++
 1.27787 ++extern const struct avr32_ifield avr32_ifield_table[];
 1.27788 ++extern struct avr32_opcode avr32_opc_table[];
 1.27789 ++extern const struct avr32_syntax avr32_syntax_table[];
 1.27790 ++extern const struct avr32_alias avr32_alias_table[];
 1.27791 ++extern const struct avr32_mnemonic avr32_mnemonic_table[];
 1.27792 ++
 1.27793 ++extern void avr32_insert_simple(const struct avr32_ifield *field,
 1.27794 ++				void *buf, unsigned long value);
 1.27795 ++extern void avr32_insert_bit5c(const struct avr32_ifield *field,
 1.27796 ++			       void *buf, unsigned long value);
 1.27797 ++extern void avr32_insert_k10(const struct avr32_ifield *field,
 1.27798 ++			     void *buf, unsigned long value);
 1.27799 ++extern void avr32_insert_k21(const struct avr32_ifield *field,
 1.27800 ++			     void *buf, unsigned long value);
 1.27801 ++extern void avr32_insert_cpop(const struct avr32_ifield *field,
 1.27802 ++			      void *buf, unsigned long value);
 1.27803 ++extern void avr32_insert_k12cp(const struct avr32_ifield *field,
 1.27804 ++			       void *buf, unsigned long value);
 1.27805 ++
 1.27806 ++extern void avr32_extract_simple(const struct avr32_ifield *field,
 1.27807 ++				 void *buf, unsigned long *value);
 1.27808 ++extern void avr32_extract_bit5c(const struct avr32_ifield *field,
 1.27809 ++				void *buf, unsigned long *value);
 1.27810 ++extern void avr32_extract_k10(const struct avr32_ifield *field,
 1.27811 ++			      void *buf, unsigned long *value);
 1.27812 ++extern void avr32_extract_k21(const struct avr32_ifield *field,
 1.27813 ++			      void *buf, unsigned long *value);
 1.27814 ++extern void avr32_extract_cpop(const struct avr32_ifield *field,
 1.27815 ++			       void *buf, unsigned long *value);
 1.27816 ++extern void avr32_extract_k12cp(const struct avr32_ifield *field,
 1.27817 ++				void *buf, unsigned long *value);
 1.27818 ++
 1.27819 ++enum avr32_operand_type
 1.27820 ++{
 1.27821 ++  AVR32_OPERAND_INTREG,		/* just a register */
 1.27822 ++  AVR32_OPERAND_INTREG_PREDEC,	/* register with pre-decrement */
 1.27823 ++  AVR32_OPERAND_INTREG_POSTINC,	/* register with post-increment */
 1.27824 ++  AVR32_OPERAND_INTREG_LSL,	/* register with left shift */
 1.27825 ++  AVR32_OPERAND_INTREG_LSR,	/* register with right shift */
 1.27826 ++  AVR32_OPERAND_INTREG_BSEL,	/* register with byte selector */
 1.27827 ++  AVR32_OPERAND_INTREG_HSEL,	/* register with halfword selector */
 1.27828 ++  AVR32_OPERAND_INTREG_SDISP,	/* Rp[signed disp] */
 1.27829 ++  AVR32_OPERAND_INTREG_SDISP_H,	/* Rp[signed hword-aligned disp] */
 1.27830 ++  AVR32_OPERAND_INTREG_SDISP_W,	/* Rp[signed word-aligned disp] */
 1.27831 ++  AVR32_OPERAND_INTREG_UDISP,	/* Rp[unsigned disp] */
 1.27832 ++  AVR32_OPERAND_INTREG_UDISP_H,	/* Rp[unsigned hword-aligned disp] */
 1.27833 ++  AVR32_OPERAND_INTREG_UDISP_W, /* Rp[unsigned word-aligned disp] */
 1.27834 ++  AVR32_OPERAND_INTREG_INDEX,	/* Rp[Ri << sa] */
 1.27835 ++  AVR32_OPERAND_INTREG_XINDEX,	/* Rp[Ri:bytesel << 2] */
 1.27836 ++  AVR32_OPERAND_DWREG,		/* Even-numbered register */
 1.27837 ++  AVR32_OPERAND_PC_UDISP_W,	/* PC[unsigned word-aligned disp] or label */
 1.27838 ++  AVR32_OPERAND_SP,		/* Just SP */
 1.27839 ++  AVR32_OPERAND_SP_UDISP_W,	/* SP[unsigned word-aligned disp] */
 1.27840 ++  AVR32_OPERAND_CPNO,
 1.27841 ++  AVR32_OPERAND_CPREG,
 1.27842 ++  AVR32_OPERAND_CPREG_D,
 1.27843 ++  AVR32_OPERAND_UNSIGNED_CONST,
 1.27844 ++  AVR32_OPERAND_UNSIGNED_CONST_W,
 1.27845 ++  AVR32_OPERAND_SIGNED_CONST,
 1.27846 ++  AVR32_OPERAND_SIGNED_CONST_W,
 1.27847 ++  AVR32_OPERAND_JMPLABEL,
 1.27848 ++  AVR32_OPERAND_UNSIGNED_NUMBER,
 1.27849 ++  AVR32_OPERAND_UNSIGNED_NUMBER_W,
 1.27850 ++  AVR32_OPERAND_REGLIST8,
 1.27851 ++  AVR32_OPERAND_REGLIST9,
 1.27852 ++  AVR32_OPERAND_REGLIST16,
 1.27853 ++  AVR32_OPERAND_REGLIST_LDM,
 1.27854 ++  AVR32_OPERAND_REGLIST_CP8,
 1.27855 ++  AVR32_OPERAND_REGLIST_CPD8,
 1.27856 ++  AVR32_OPERAND_RETVAL,
 1.27857 ++  AVR32_OPERAND_MCALL,
 1.27858 ++  AVR32_OPERAND_JOSPINC,
 1.27859 ++  AVR32_OPERAND_COH,
 1.27860 ++  AVR32_OPERAND_FPREG_S,
 1.27861 ++  AVR32_OPERAND_FPREG_D,
 1.27862 ++  AVR32_OPERAND_PICO_REG_W,
 1.27863 ++  AVR32_OPERAND_PICO_REG_D,
 1.27864 ++  AVR32_OPERAND_PICO_REGLIST_W,
 1.27865 ++  AVR32_OPERAND_PICO_REGLIST_D,
 1.27866 ++  AVR32_OPERAND_PICO_IN,
 1.27867 ++  AVR32_OPERAND_PICO_OUT0,
 1.27868 ++  AVR32_OPERAND_PICO_OUT1,
 1.27869 ++  AVR32_OPERAND_PICO_OUT2,
 1.27870 ++  AVR32_OPERAND_PICO_OUT3,
 1.27871 ++  AVR32_OPERAND__END_
 1.27872 ++};
 1.27873 ++#define AVR32_OPERAND_UNKNOWN AVR32_OPERAND__END_
 1.27874 ++#define AVR32_NR_OPERANDS AVR32_OPERAND__END_
 1.27875 ++
 1.27876 ++enum avr32_ifield_type
 1.27877 ++{
 1.27878 ++  AVR32_IFIELD_RX,
 1.27879 ++  AVR32_IFIELD_RY,
 1.27880 ++  AVR32_IFIELD_COND4C,
 1.27881 ++  AVR32_IFIELD_K8C,
 1.27882 ++  AVR32_IFIELD_K7C,
 1.27883 ++  AVR32_IFIELD_K5C,
 1.27884 ++  AVR32_IFIELD_K3,
 1.27885 ++  AVR32_IFIELD_RY_DW,
 1.27886 ++  AVR32_IFIELD_COND4E,
 1.27887 ++  AVR32_IFIELD_K8E,
 1.27888 ++  AVR32_IFIELD_BIT5C,
 1.27889 ++  AVR32_IFIELD_COND3,
 1.27890 ++  AVR32_IFIELD_K10,
 1.27891 ++  AVR32_IFIELD_POPM,
 1.27892 ++  AVR32_IFIELD_K2,
 1.27893 ++  AVR32_IFIELD_RD_E,
 1.27894 ++  AVR32_IFIELD_RD_DW,
 1.27895 ++  AVR32_IFIELD_X,
 1.27896 ++  AVR32_IFIELD_Y,
 1.27897 ++  AVR32_IFIELD_X2,
 1.27898 ++  AVR32_IFIELD_Y2,
 1.27899 ++  AVR32_IFIELD_K5E,
 1.27900 ++  AVR32_IFIELD_PART2,
 1.27901 ++  AVR32_IFIELD_PART1,
 1.27902 ++  AVR32_IFIELD_K16,
 1.27903 ++  AVR32_IFIELD_CACHEOP,
 1.27904 ++  AVR32_IFIELD_K11,
 1.27905 ++  AVR32_IFIELD_K21,
 1.27906 ++  AVR32_IFIELD_CPOP,
 1.27907 ++  AVR32_IFIELD_CPNO,
 1.27908 ++  AVR32_IFIELD_CRD_RI,
 1.27909 ++  AVR32_IFIELD_CRX,
 1.27910 ++  AVR32_IFIELD_CRY,
 1.27911 ++  AVR32_IFIELD_K7E,
 1.27912 ++  AVR32_IFIELD_CRD_DW,
 1.27913 ++  AVR32_IFIELD_PART1_K12,
 1.27914 ++  AVR32_IFIELD_PART2_K12,
 1.27915 ++  AVR32_IFIELD_K12,
 1.27916 ++  AVR32_IFIELD_S5,
 1.27917 ++  AVR32_IFIELD_K5E2,
 1.27918 ++  AVR32_IFIELD_K4,
 1.27919 ++  AVR32_IFIELD_COND4E2,
 1.27920 ++  AVR32_IFIELD_K8E2,
 1.27921 ++  AVR32_IFIELD_K6,
 1.27922 ++  AVR32_IFIELD_MEM15,
 1.27923 ++  AVR32_IFIELD_MEMB5,
 1.27924 ++  AVR32_IFIELD_W,
 1.27925 ++  AVR32_IFIELD_CM_HL,
 1.27926 ++  AVR32_IFIELD_K12CP,
 1.27927 ++  AVR32_IFIELD_K9E,
 1.27928 ++  AVR32_IFIELD__END_,
 1.27929 ++};
 1.27930 ++#define AVR32_NR_IFIELDS AVR32_IFIELD__END_
 1.27931 ++
 1.27932 ++enum avr32_opc_type
 1.27933 ++{
 1.27934 ++  AVR32_OPC_ABS,
 1.27935 ++  AVR32_OPC_ACALL,
 1.27936 ++  AVR32_OPC_ACR,
 1.27937 ++  AVR32_OPC_ADC,
 1.27938 ++  AVR32_OPC_ADD1,
 1.27939 ++  AVR32_OPC_ADD2,
 1.27940 ++  AVR32_OPC_ADDABS,
 1.27941 ++  AVR32_OPC_ADDHH_W,
 1.27942 ++  AVR32_OPC_AND1,
 1.27943 ++  AVR32_OPC_AND2,
 1.27944 ++  AVR32_OPC_AND3,
 1.27945 ++  AVR32_OPC_ANDH,
 1.27946 ++  AVR32_OPC_ANDH_COH,
 1.27947 ++  AVR32_OPC_ANDL,
 1.27948 ++  AVR32_OPC_ANDL_COH,
 1.27949 ++  AVR32_OPC_ANDN,
 1.27950 ++  AVR32_OPC_ASR1,
 1.27951 ++  AVR32_OPC_ASR3,
 1.27952 ++  AVR32_OPC_ASR2,
 1.27953 ++  AVR32_OPC_BLD,
 1.27954 ++  AVR32_OPC_BREQ1,
 1.27955 ++  AVR32_OPC_BRNE1,
 1.27956 ++  AVR32_OPC_BRCC1,
 1.27957 ++  AVR32_OPC_BRCS1,
 1.27958 ++  AVR32_OPC_BRGE1,
 1.27959 ++  AVR32_OPC_BRLT1,
 1.27960 ++  AVR32_OPC_BRMI1,
 1.27961 ++  AVR32_OPC_BRPL1,
 1.27962 ++  AVR32_OPC_BREQ2,
 1.27963 ++  AVR32_OPC_BRNE2,
 1.27964 ++  AVR32_OPC_BRCC2,
 1.27965 ++  AVR32_OPC_BRCS2,
 1.27966 ++  AVR32_OPC_BRGE2,
 1.27967 ++  AVR32_OPC_BRLT2,
 1.27968 ++  AVR32_OPC_BRMI2,
 1.27969 ++  AVR32_OPC_BRPL2,
 1.27970 ++  AVR32_OPC_BRLS,
 1.27971 ++  AVR32_OPC_BRGT,
 1.27972 ++  AVR32_OPC_BRLE,
 1.27973 ++  AVR32_OPC_BRHI,
 1.27974 ++  AVR32_OPC_BRVS,
 1.27975 ++  AVR32_OPC_BRVC,
 1.27976 ++  AVR32_OPC_BRQS,
 1.27977 ++  AVR32_OPC_BRAL,
 1.27978 ++  AVR32_OPC_BREAKPOINT,
 1.27979 ++  AVR32_OPC_BREV,
 1.27980 ++  AVR32_OPC_BST,
 1.27981 ++  AVR32_OPC_CACHE,
 1.27982 ++  AVR32_OPC_CASTS_B,
 1.27983 ++  AVR32_OPC_CASTS_H,
 1.27984 ++  AVR32_OPC_CASTU_B,
 1.27985 ++  AVR32_OPC_CASTU_H,
 1.27986 ++  AVR32_OPC_CBR,
 1.27987 ++  AVR32_OPC_CLZ,
 1.27988 ++  AVR32_OPC_COM,
 1.27989 ++  AVR32_OPC_COP,
 1.27990 ++  AVR32_OPC_CP_B,
 1.27991 ++  AVR32_OPC_CP_H,
 1.27992 ++  AVR32_OPC_CP_W1,
 1.27993 ++  AVR32_OPC_CP_W2,
 1.27994 ++  AVR32_OPC_CP_W3,
 1.27995 ++  AVR32_OPC_CPC1,
 1.27996 ++  AVR32_OPC_CPC2,
 1.27997 ++  AVR32_OPC_CSRF,
 1.27998 ++  AVR32_OPC_CSRFCZ,
 1.27999 ++  AVR32_OPC_DIVS,
 1.28000 ++  AVR32_OPC_DIVU,
 1.28001 ++  AVR32_OPC_EOR1,
 1.28002 ++  AVR32_OPC_EOR2,
 1.28003 ++  AVR32_OPC_EOR3,
 1.28004 ++  AVR32_OPC_EORL,
 1.28005 ++  AVR32_OPC_EORH,
 1.28006 ++  AVR32_OPC_FRS,
 1.28007 ++  AVR32_OPC_ICALL,
 1.28008 ++  AVR32_OPC_INCJOSP,
 1.28009 ++  AVR32_OPC_LD_D1,
 1.28010 ++  AVR32_OPC_LD_D2,
 1.28011 ++  AVR32_OPC_LD_D3,
 1.28012 ++  AVR32_OPC_LD_D5,
 1.28013 ++  AVR32_OPC_LD_D4,
 1.28014 ++  AVR32_OPC_LD_SB2,
 1.28015 ++  AVR32_OPC_LD_SB1,
 1.28016 ++  AVR32_OPC_LD_UB1,
 1.28017 ++  AVR32_OPC_LD_UB2,
 1.28018 ++  AVR32_OPC_LD_UB5,
 1.28019 ++  AVR32_OPC_LD_UB3,
 1.28020 ++  AVR32_OPC_LD_UB4,
 1.28021 ++  AVR32_OPC_LD_SH1,
 1.28022 ++  AVR32_OPC_LD_SH2,
 1.28023 ++  AVR32_OPC_LD_SH5,
 1.28024 ++  AVR32_OPC_LD_SH3,
 1.28025 ++  AVR32_OPC_LD_SH4,
 1.28026 ++  AVR32_OPC_LD_UH1,
 1.28027 ++  AVR32_OPC_LD_UH2,
 1.28028 ++  AVR32_OPC_LD_UH5,
 1.28029 ++  AVR32_OPC_LD_UH3,
 1.28030 ++  AVR32_OPC_LD_UH4,
 1.28031 ++  AVR32_OPC_LD_W1,
 1.28032 ++  AVR32_OPC_LD_W2,
 1.28033 ++  AVR32_OPC_LD_W5,
 1.28034 ++  AVR32_OPC_LD_W6,
 1.28035 ++  AVR32_OPC_LD_W3,
 1.28036 ++  AVR32_OPC_LD_W4,
 1.28037 ++  AVR32_OPC_LDC_D1,
 1.28038 ++  AVR32_OPC_LDC_D2,
 1.28039 ++  AVR32_OPC_LDC_D3,
 1.28040 ++  AVR32_OPC_LDC_W1,
 1.28041 ++  AVR32_OPC_LDC_W2,
 1.28042 ++  AVR32_OPC_LDC_W3,
 1.28043 ++  AVR32_OPC_LDC0_D,
 1.28044 ++  AVR32_OPC_LDC0_W,
 1.28045 ++  AVR32_OPC_LDCM_D,
 1.28046 ++  AVR32_OPC_LDCM_D_PU,
 1.28047 ++  AVR32_OPC_LDCM_W,
 1.28048 ++  AVR32_OPC_LDCM_W_PU,
 1.28049 ++  AVR32_OPC_LDDPC,
 1.28050 ++  AVR32_OPC_LDDPC_EXT,
 1.28051 ++  AVR32_OPC_LDDSP,
 1.28052 ++  AVR32_OPC_LDINS_B,
 1.28053 ++  AVR32_OPC_LDINS_H,
 1.28054 ++  AVR32_OPC_LDM,
 1.28055 ++  AVR32_OPC_LDMTS,
 1.28056 ++  AVR32_OPC_LDMTS_PU,
 1.28057 ++  AVR32_OPC_LDSWP_SH,
 1.28058 ++  AVR32_OPC_LDSWP_UH,
 1.28059 ++  AVR32_OPC_LDSWP_W,
 1.28060 ++  AVR32_OPC_LSL1,
 1.28061 ++  AVR32_OPC_LSL3,
 1.28062 ++  AVR32_OPC_LSL2,
 1.28063 ++  AVR32_OPC_LSR1,
 1.28064 ++  AVR32_OPC_LSR3,
 1.28065 ++  AVR32_OPC_LSR2,
 1.28066 ++  AVR32_OPC_MAC,
 1.28067 ++  AVR32_OPC_MACHH_D,
 1.28068 ++  AVR32_OPC_MACHH_W,
 1.28069 ++  AVR32_OPC_MACS_D,
 1.28070 ++  AVR32_OPC_MACSATHH_W,
 1.28071 ++  AVR32_OPC_MACUD,
 1.28072 ++  AVR32_OPC_MACWH_D,
 1.28073 ++  AVR32_OPC_MAX,
 1.28074 ++  AVR32_OPC_MCALL,
 1.28075 ++  AVR32_OPC_MFDR,
 1.28076 ++  AVR32_OPC_MFSR,
 1.28077 ++  AVR32_OPC_MIN,
 1.28078 ++  AVR32_OPC_MOV3,
 1.28079 ++  AVR32_OPC_MOV1,
 1.28080 ++  AVR32_OPC_MOV2,
 1.28081 ++  AVR32_OPC_MOVEQ1,
 1.28082 ++  AVR32_OPC_MOVNE1,
 1.28083 ++  AVR32_OPC_MOVCC1,
 1.28084 ++  AVR32_OPC_MOVCS1,
 1.28085 ++  AVR32_OPC_MOVGE1,
 1.28086 ++  AVR32_OPC_MOVLT1,
 1.28087 ++  AVR32_OPC_MOVMI1,
 1.28088 ++  AVR32_OPC_MOVPL1,
 1.28089 ++  AVR32_OPC_MOVLS1,
 1.28090 ++  AVR32_OPC_MOVGT1,
 1.28091 ++  AVR32_OPC_MOVLE1,
 1.28092 ++  AVR32_OPC_MOVHI1,
 1.28093 ++  AVR32_OPC_MOVVS1,
 1.28094 ++  AVR32_OPC_MOVVC1,
 1.28095 ++  AVR32_OPC_MOVQS1,
 1.28096 ++  AVR32_OPC_MOVAL1,
 1.28097 ++  AVR32_OPC_MOVEQ2,
 1.28098 ++  AVR32_OPC_MOVNE2,
 1.28099 ++  AVR32_OPC_MOVCC2,
 1.28100 ++  AVR32_OPC_MOVCS2,
 1.28101 ++  AVR32_OPC_MOVGE2,
 1.28102 ++  AVR32_OPC_MOVLT2,
 1.28103 ++  AVR32_OPC_MOVMI2,
 1.28104 ++  AVR32_OPC_MOVPL2,
 1.28105 ++  AVR32_OPC_MOVLS2,
 1.28106 ++  AVR32_OPC_MOVGT2,
 1.28107 ++  AVR32_OPC_MOVLE2,
 1.28108 ++  AVR32_OPC_MOVHI2,
 1.28109 ++  AVR32_OPC_MOVVS2,
 1.28110 ++  AVR32_OPC_MOVVC2,
 1.28111 ++  AVR32_OPC_MOVQS2,
 1.28112 ++  AVR32_OPC_MOVAL2,
 1.28113 ++  AVR32_OPC_MTDR,
 1.28114 ++  AVR32_OPC_MTSR,
 1.28115 ++  AVR32_OPC_MUL1,
 1.28116 ++  AVR32_OPC_MUL2,
 1.28117 ++  AVR32_OPC_MUL3,
 1.28118 ++  AVR32_OPC_MULHH_W,
 1.28119 ++  AVR32_OPC_MULNHH_W,
 1.28120 ++  AVR32_OPC_MULNWH_D,
 1.28121 ++  AVR32_OPC_MULSD,
 1.28122 ++  AVR32_OPC_MULSATHH_H,
 1.28123 ++  AVR32_OPC_MULSATHH_W,
 1.28124 ++  AVR32_OPC_MULSATRNDHH_H,
 1.28125 ++  AVR32_OPC_MULSATRNDWH_W,
 1.28126 ++  AVR32_OPC_MULSATWH_W,
 1.28127 ++  AVR32_OPC_MULU_D,
 1.28128 ++  AVR32_OPC_MULWH_D,
 1.28129 ++  AVR32_OPC_MUSFR,
 1.28130 ++  AVR32_OPC_MUSTR,
 1.28131 ++  AVR32_OPC_MVCR_D,
 1.28132 ++  AVR32_OPC_MVCR_W,
 1.28133 ++  AVR32_OPC_MVRC_D,
 1.28134 ++  AVR32_OPC_MVRC_W,
 1.28135 ++  AVR32_OPC_NEG,
 1.28136 ++  AVR32_OPC_NOP,
 1.28137 ++  AVR32_OPC_OR1,
 1.28138 ++  AVR32_OPC_OR2,
 1.28139 ++  AVR32_OPC_OR3,
 1.28140 ++  AVR32_OPC_ORH,
 1.28141 ++  AVR32_OPC_ORL,
 1.28142 ++  AVR32_OPC_PABS_SB,
 1.28143 ++  AVR32_OPC_PABS_SH,
 1.28144 ++  AVR32_OPC_PACKSH_SB,
 1.28145 ++  AVR32_OPC_PACKSH_UB,
 1.28146 ++  AVR32_OPC_PACKW_SH,
 1.28147 ++  AVR32_OPC_PADD_B,
 1.28148 ++  AVR32_OPC_PADD_H,
 1.28149 ++  AVR32_OPC_PADDH_SH,
 1.28150 ++  AVR32_OPC_PADDH_UB,
 1.28151 ++  AVR32_OPC_PADDS_SB,
 1.28152 ++  AVR32_OPC_PADDS_SH,
 1.28153 ++  AVR32_OPC_PADDS_UB,
 1.28154 ++  AVR32_OPC_PADDS_UH,
 1.28155 ++  AVR32_OPC_PADDSUB_H,
 1.28156 ++  AVR32_OPC_PADDSUBH_SH,
 1.28157 ++  AVR32_OPC_PADDSUBS_SH,
 1.28158 ++  AVR32_OPC_PADDSUBS_UH,
 1.28159 ++  AVR32_OPC_PADDX_H,
 1.28160 ++  AVR32_OPC_PADDXH_SH,
 1.28161 ++  AVR32_OPC_PADDXS_SH,
 1.28162 ++  AVR32_OPC_PADDXS_UH,
 1.28163 ++  AVR32_OPC_PASR_B,
 1.28164 ++  AVR32_OPC_PASR_H,
 1.28165 ++  AVR32_OPC_PAVG_SH,
 1.28166 ++  AVR32_OPC_PAVG_UB,
 1.28167 ++  AVR32_OPC_PLSL_B,
 1.28168 ++  AVR32_OPC_PLSL_H,
 1.28169 ++  AVR32_OPC_PLSR_B,
 1.28170 ++  AVR32_OPC_PLSR_H,
 1.28171 ++  AVR32_OPC_PMAX_SH,
 1.28172 ++  AVR32_OPC_PMAX_UB,
 1.28173 ++  AVR32_OPC_PMIN_SH,
 1.28174 ++  AVR32_OPC_PMIN_UB,
 1.28175 ++  AVR32_OPC_POPJC,
 1.28176 ++  AVR32_OPC_POPM,
 1.28177 ++  AVR32_OPC_POPM_E,
 1.28178 ++  AVR32_OPC_PREF,
 1.28179 ++  AVR32_OPC_PSAD,
 1.28180 ++  AVR32_OPC_PSUB_B,
 1.28181 ++  AVR32_OPC_PSUB_H,
 1.28182 ++  AVR32_OPC_PSUBADD_H,
 1.28183 ++  AVR32_OPC_PSUBADDH_SH,
 1.28184 ++  AVR32_OPC_PSUBADDS_SH,
 1.28185 ++  AVR32_OPC_PSUBADDS_UH,
 1.28186 ++  AVR32_OPC_PSUBH_SH,
 1.28187 ++  AVR32_OPC_PSUBH_UB,
 1.28188 ++  AVR32_OPC_PSUBS_SB,
 1.28189 ++  AVR32_OPC_PSUBS_SH,
 1.28190 ++  AVR32_OPC_PSUBS_UB,
 1.28191 ++  AVR32_OPC_PSUBS_UH,
 1.28192 ++  AVR32_OPC_PSUBX_H,
 1.28193 ++  AVR32_OPC_PSUBXH_SH,
 1.28194 ++  AVR32_OPC_PSUBXS_SH,
 1.28195 ++  AVR32_OPC_PSUBXS_UH,
 1.28196 ++  AVR32_OPC_PUNPCKSB_H,
 1.28197 ++  AVR32_OPC_PUNPCKUB_H,
 1.28198 ++  AVR32_OPC_PUSHJC,
 1.28199 ++  AVR32_OPC_PUSHM,
 1.28200 ++  AVR32_OPC_PUSHM_E,
 1.28201 ++  AVR32_OPC_RCALL1,
 1.28202 ++  AVR32_OPC_RCALL2,
 1.28203 ++  AVR32_OPC_RETEQ,
 1.28204 ++  AVR32_OPC_RETNE,
 1.28205 ++  AVR32_OPC_RETCC,
 1.28206 ++  AVR32_OPC_RETCS,
 1.28207 ++  AVR32_OPC_RETGE,
 1.28208 ++  AVR32_OPC_RETLT,
 1.28209 ++  AVR32_OPC_RETMI,
 1.28210 ++  AVR32_OPC_RETPL,
 1.28211 ++  AVR32_OPC_RETLS,
 1.28212 ++  AVR32_OPC_RETGT,
 1.28213 ++  AVR32_OPC_RETLE,
 1.28214 ++  AVR32_OPC_RETHI,
 1.28215 ++  AVR32_OPC_RETVS,
 1.28216 ++  AVR32_OPC_RETVC,
 1.28217 ++  AVR32_OPC_RETQS,
 1.28218 ++  AVR32_OPC_RETAL,
 1.28219 ++  AVR32_OPC_RETD,
 1.28220 ++  AVR32_OPC_RETE,
 1.28221 ++  AVR32_OPC_RETJ,
 1.28222 ++  AVR32_OPC_RETS,
 1.28223 ++  AVR32_OPC_RJMP,
 1.28224 ++  AVR32_OPC_ROL,
 1.28225 ++  AVR32_OPC_ROR,
 1.28226 ++  AVR32_OPC_RSUB1,
 1.28227 ++  AVR32_OPC_RSUB2,
 1.28228 ++  AVR32_OPC_SATADD_H,
 1.28229 ++  AVR32_OPC_SATADD_W,
 1.28230 ++  AVR32_OPC_SATRNDS,
 1.28231 ++  AVR32_OPC_SATRNDU,
 1.28232 ++  AVR32_OPC_SATS,
 1.28233 ++  AVR32_OPC_SATSUB_H,
 1.28234 ++  AVR32_OPC_SATSUB_W1,
 1.28235 ++  AVR32_OPC_SATSUB_W2,
 1.28236 ++  AVR32_OPC_SATU,
 1.28237 ++  AVR32_OPC_SBC,
 1.28238 ++  AVR32_OPC_SBR,
 1.28239 ++  AVR32_OPC_SCALL,
 1.28240 ++  AVR32_OPC_SCR,
 1.28241 ++  AVR32_OPC_SLEEP,
 1.28242 ++  AVR32_OPC_SREQ,
 1.28243 ++  AVR32_OPC_SRNE,
 1.28244 ++  AVR32_OPC_SRCC,
 1.28245 ++  AVR32_OPC_SRCS,
 1.28246 ++  AVR32_OPC_SRGE,
 1.28247 ++  AVR32_OPC_SRLT,
 1.28248 ++  AVR32_OPC_SRMI,
 1.28249 ++  AVR32_OPC_SRPL,
 1.28250 ++  AVR32_OPC_SRLS,
 1.28251 ++  AVR32_OPC_SRGT,
 1.28252 ++  AVR32_OPC_SRLE,
 1.28253 ++  AVR32_OPC_SRHI,
 1.28254 ++  AVR32_OPC_SRVS,
 1.28255 ++  AVR32_OPC_SRVC,
 1.28256 ++  AVR32_OPC_SRQS,
 1.28257 ++  AVR32_OPC_SRAL,
 1.28258 ++  AVR32_OPC_SSRF,
 1.28259 ++  AVR32_OPC_ST_B1,
 1.28260 ++  AVR32_OPC_ST_B2,
 1.28261 ++  AVR32_OPC_ST_B5,
 1.28262 ++  AVR32_OPC_ST_B3,
 1.28263 ++  AVR32_OPC_ST_B4,
 1.28264 ++  AVR32_OPC_ST_D1,
 1.28265 ++  AVR32_OPC_ST_D2,
 1.28266 ++  AVR32_OPC_ST_D3,
 1.28267 ++  AVR32_OPC_ST_D5,
 1.28268 ++  AVR32_OPC_ST_D4,
 1.28269 ++  AVR32_OPC_ST_H1,
 1.28270 ++  AVR32_OPC_ST_H2,
 1.28271 ++  AVR32_OPC_ST_H5,
 1.28272 ++  AVR32_OPC_ST_H3,
 1.28273 ++  AVR32_OPC_ST_H4,
 1.28274 ++  AVR32_OPC_ST_W1,
 1.28275 ++  AVR32_OPC_ST_W2,
 1.28276 ++  AVR32_OPC_ST_W5,
 1.28277 ++  AVR32_OPC_ST_W3,
 1.28278 ++  AVR32_OPC_ST_W4,
 1.28279 ++  AVR32_OPC_STC_D1,
 1.28280 ++  AVR32_OPC_STC_D2,
 1.28281 ++  AVR32_OPC_STC_D3,
 1.28282 ++  AVR32_OPC_STC_W1,
 1.28283 ++  AVR32_OPC_STC_W2,
 1.28284 ++  AVR32_OPC_STC_W3,
 1.28285 ++  AVR32_OPC_STC0_D,
 1.28286 ++  AVR32_OPC_STC0_W,
 1.28287 ++  AVR32_OPC_STCM_D,
 1.28288 ++  AVR32_OPC_STCM_D_PU,
 1.28289 ++  AVR32_OPC_STCM_W,
 1.28290 ++  AVR32_OPC_STCM_W_PU,
 1.28291 ++  AVR32_OPC_STCOND,
 1.28292 ++  AVR32_OPC_STDSP,
 1.28293 ++  AVR32_OPC_STHH_W2,
 1.28294 ++  AVR32_OPC_STHH_W1,
 1.28295 ++  AVR32_OPC_STM,
 1.28296 ++  AVR32_OPC_STM_PU,
 1.28297 ++  AVR32_OPC_STMTS,
 1.28298 ++  AVR32_OPC_STMTS_PU,
 1.28299 ++  AVR32_OPC_STSWP_H,
 1.28300 ++  AVR32_OPC_STSWP_W,
 1.28301 ++  AVR32_OPC_SUB1,
 1.28302 ++  AVR32_OPC_SUB2,
 1.28303 ++  AVR32_OPC_SUB5,
 1.28304 ++  AVR32_OPC_SUB3_SP,
 1.28305 ++  AVR32_OPC_SUB3,
 1.28306 ++  AVR32_OPC_SUB4,
 1.28307 ++  AVR32_OPC_SUBEQ,
 1.28308 ++  AVR32_OPC_SUBNE,
 1.28309 ++  AVR32_OPC_SUBCC,
 1.28310 ++  AVR32_OPC_SUBCS,
 1.28311 ++  AVR32_OPC_SUBGE,
 1.28312 ++  AVR32_OPC_SUBLT,
 1.28313 ++  AVR32_OPC_SUBMI,
 1.28314 ++  AVR32_OPC_SUBPL,
 1.28315 ++  AVR32_OPC_SUBLS,
 1.28316 ++  AVR32_OPC_SUBGT,
 1.28317 ++  AVR32_OPC_SUBLE,
 1.28318 ++  AVR32_OPC_SUBHI,
 1.28319 ++  AVR32_OPC_SUBVS,
 1.28320 ++  AVR32_OPC_SUBVC,
 1.28321 ++  AVR32_OPC_SUBQS,
 1.28322 ++  AVR32_OPC_SUBAL,
 1.28323 ++  AVR32_OPC_SUBFEQ,
 1.28324 ++  AVR32_OPC_SUBFNE,
 1.28325 ++  AVR32_OPC_SUBFCC,
 1.28326 ++  AVR32_OPC_SUBFCS,
 1.28327 ++  AVR32_OPC_SUBFGE,
 1.28328 ++  AVR32_OPC_SUBFLT,
 1.28329 ++  AVR32_OPC_SUBFMI,
 1.28330 ++  AVR32_OPC_SUBFPL,
 1.28331 ++  AVR32_OPC_SUBFLS,
 1.28332 ++  AVR32_OPC_SUBFGT,
 1.28333 ++  AVR32_OPC_SUBFLE,
 1.28334 ++  AVR32_OPC_SUBFHI,
 1.28335 ++  AVR32_OPC_SUBFVS,
 1.28336 ++  AVR32_OPC_SUBFVC,
 1.28337 ++  AVR32_OPC_SUBFQS,
 1.28338 ++  AVR32_OPC_SUBFAL,
 1.28339 ++  AVR32_OPC_SUBHH_W,
 1.28340 ++  AVR32_OPC_SWAP_B,
 1.28341 ++  AVR32_OPC_SWAP_BH,
 1.28342 ++  AVR32_OPC_SWAP_H,
 1.28343 ++  AVR32_OPC_SYNC,
 1.28344 ++  AVR32_OPC_TLBR,
 1.28345 ++  AVR32_OPC_TLBS,
 1.28346 ++  AVR32_OPC_TLBW,
 1.28347 ++  AVR32_OPC_TNBZ,
 1.28348 ++  AVR32_OPC_TST,
 1.28349 ++  AVR32_OPC_XCHG,
 1.28350 ++  AVR32_OPC_MEMC,
 1.28351 ++  AVR32_OPC_MEMS,
 1.28352 ++  AVR32_OPC_MEMT,
 1.28353 ++  AVR32_OPC_BFEXTS,
 1.28354 ++  AVR32_OPC_BFEXTU,
 1.28355 ++  AVR32_OPC_BFINS,
 1.28356 ++  AVR32_OPC_RSUBEQ,
 1.28357 ++  AVR32_OPC_RSUBNE,
 1.28358 ++  AVR32_OPC_RSUBCC,
 1.28359 ++  AVR32_OPC_RSUBCS,
 1.28360 ++  AVR32_OPC_RSUBGE,
 1.28361 ++  AVR32_OPC_RSUBLT,
 1.28362 ++  AVR32_OPC_RSUBMI,
 1.28363 ++  AVR32_OPC_RSUBPL,
 1.28364 ++  AVR32_OPC_RSUBLS,
 1.28365 ++  AVR32_OPC_RSUBGT,
 1.28366 ++  AVR32_OPC_RSUBLE,
 1.28367 ++  AVR32_OPC_RSUBHI,
 1.28368 ++  AVR32_OPC_RSUBVS,
 1.28369 ++  AVR32_OPC_RSUBVC,
 1.28370 ++  AVR32_OPC_RSUBQS,
 1.28371 ++  AVR32_OPC_RSUBAL,
 1.28372 ++  AVR32_OPC_ADDEQ,
 1.28373 ++  AVR32_OPC_ADDNE,
 1.28374 ++  AVR32_OPC_ADDCC,
 1.28375 ++  AVR32_OPC_ADDCS,
 1.28376 ++  AVR32_OPC_ADDGE,
 1.28377 ++  AVR32_OPC_ADDLT,
 1.28378 ++  AVR32_OPC_ADDMI,
 1.28379 ++  AVR32_OPC_ADDPL,
 1.28380 ++  AVR32_OPC_ADDLS,
 1.28381 ++  AVR32_OPC_ADDGT,
 1.28382 ++  AVR32_OPC_ADDLE,
 1.28383 ++  AVR32_OPC_ADDHI,
 1.28384 ++  AVR32_OPC_ADDVS,
 1.28385 ++  AVR32_OPC_ADDVC,
 1.28386 ++  AVR32_OPC_ADDQS,
 1.28387 ++  AVR32_OPC_ADDAL,
 1.28388 ++  AVR32_OPC_SUB2EQ,
 1.28389 ++  AVR32_OPC_SUB2NE,
 1.28390 ++  AVR32_OPC_SUB2CC,
 1.28391 ++  AVR32_OPC_SUB2CS,
 1.28392 ++  AVR32_OPC_SUB2GE,
 1.28393 ++  AVR32_OPC_SUB2LT,
 1.28394 ++  AVR32_OPC_SUB2MI,
 1.28395 ++  AVR32_OPC_SUB2PL,
 1.28396 ++  AVR32_OPC_SUB2LS,
 1.28397 ++  AVR32_OPC_SUB2GT,
 1.28398 ++  AVR32_OPC_SUB2LE,
 1.28399 ++  AVR32_OPC_SUB2HI,
 1.28400 ++  AVR32_OPC_SUB2VS,
 1.28401 ++  AVR32_OPC_SUB2VC,
 1.28402 ++  AVR32_OPC_SUB2QS,
 1.28403 ++  AVR32_OPC_SUB2AL,
 1.28404 ++  AVR32_OPC_ANDEQ,
 1.28405 ++  AVR32_OPC_ANDNE,
 1.28406 ++  AVR32_OPC_ANDCC,
 1.28407 ++  AVR32_OPC_ANDCS,
 1.28408 ++  AVR32_OPC_ANDGE,
 1.28409 ++  AVR32_OPC_ANDLT,
 1.28410 ++  AVR32_OPC_ANDMI,
 1.28411 ++  AVR32_OPC_ANDPL,
 1.28412 ++  AVR32_OPC_ANDLS,
 1.28413 ++  AVR32_OPC_ANDGT,
 1.28414 ++  AVR32_OPC_ANDLE,
 1.28415 ++  AVR32_OPC_ANDHI,
 1.28416 ++  AVR32_OPC_ANDVS,
 1.28417 ++  AVR32_OPC_ANDVC,
 1.28418 ++  AVR32_OPC_ANDQS,
 1.28419 ++  AVR32_OPC_ANDAL,
 1.28420 ++  AVR32_OPC_OREQ,
 1.28421 ++  AVR32_OPC_ORNE,
 1.28422 ++  AVR32_OPC_ORCC,
 1.28423 ++  AVR32_OPC_ORCS,
 1.28424 ++  AVR32_OPC_ORGE,
 1.28425 ++  AVR32_OPC_ORLT,
 1.28426 ++  AVR32_OPC_ORMI,
 1.28427 ++  AVR32_OPC_ORPL,
 1.28428 ++  AVR32_OPC_ORLS,
 1.28429 ++  AVR32_OPC_ORGT,
 1.28430 ++  AVR32_OPC_ORLE,
 1.28431 ++  AVR32_OPC_ORHI,
 1.28432 ++  AVR32_OPC_ORVS,
 1.28433 ++  AVR32_OPC_ORVC,
 1.28434 ++  AVR32_OPC_ORQS,
 1.28435 ++  AVR32_OPC_ORAL,
 1.28436 ++  AVR32_OPC_EOREQ,
 1.28437 ++  AVR32_OPC_EORNE,
 1.28438 ++  AVR32_OPC_EORCC,
 1.28439 ++  AVR32_OPC_EORCS,
 1.28440 ++  AVR32_OPC_EORGE,
 1.28441 ++  AVR32_OPC_EORLT,
 1.28442 ++  AVR32_OPC_EORMI,
 1.28443 ++  AVR32_OPC_EORPL,
 1.28444 ++  AVR32_OPC_EORLS,
 1.28445 ++  AVR32_OPC_EORGT,
 1.28446 ++  AVR32_OPC_EORLE,
 1.28447 ++  AVR32_OPC_EORHI,
 1.28448 ++  AVR32_OPC_EORVS,
 1.28449 ++  AVR32_OPC_EORVC,
 1.28450 ++  AVR32_OPC_EORQS,
 1.28451 ++  AVR32_OPC_EORAL,
 1.28452 ++  AVR32_OPC_LD_WEQ,
 1.28453 ++  AVR32_OPC_LD_WNE,
 1.28454 ++  AVR32_OPC_LD_WCC,
 1.28455 ++  AVR32_OPC_LD_WCS,
 1.28456 ++  AVR32_OPC_LD_WGE,
 1.28457 ++  AVR32_OPC_LD_WLT,
 1.28458 ++  AVR32_OPC_LD_WMI,
 1.28459 ++  AVR32_OPC_LD_WPL,
 1.28460 ++  AVR32_OPC_LD_WLS,
 1.28461 ++  AVR32_OPC_LD_WGT,
 1.28462 ++  AVR32_OPC_LD_WLE,
 1.28463 ++  AVR32_OPC_LD_WHI,
 1.28464 ++  AVR32_OPC_LD_WVS,
 1.28465 ++  AVR32_OPC_LD_WVC,
 1.28466 ++  AVR32_OPC_LD_WQS,
 1.28467 ++  AVR32_OPC_LD_WAL,
 1.28468 ++  AVR32_OPC_LD_SHEQ,
 1.28469 ++  AVR32_OPC_LD_SHNE,
 1.28470 ++  AVR32_OPC_LD_SHCC,
 1.28471 ++  AVR32_OPC_LD_SHCS,
 1.28472 ++  AVR32_OPC_LD_SHGE,
 1.28473 ++  AVR32_OPC_LD_SHLT,
 1.28474 ++  AVR32_OPC_LD_SHMI,
 1.28475 ++  AVR32_OPC_LD_SHPL,
 1.28476 ++  AVR32_OPC_LD_SHLS,
 1.28477 ++  AVR32_OPC_LD_SHGT,
 1.28478 ++  AVR32_OPC_LD_SHLE,
 1.28479 ++  AVR32_OPC_LD_SHHI,
 1.28480 ++  AVR32_OPC_LD_SHVS,
 1.28481 ++  AVR32_OPC_LD_SHVC,
 1.28482 ++  AVR32_OPC_LD_SHQS,
 1.28483 ++  AVR32_OPC_LD_SHAL,
 1.28484 ++  AVR32_OPC_LD_UHEQ,
 1.28485 ++  AVR32_OPC_LD_UHNE,
 1.28486 ++  AVR32_OPC_LD_UHCC,
 1.28487 ++  AVR32_OPC_LD_UHCS,
 1.28488 ++  AVR32_OPC_LD_UHGE,
 1.28489 ++  AVR32_OPC_LD_UHLT,
 1.28490 ++  AVR32_OPC_LD_UHMI,
 1.28491 ++  AVR32_OPC_LD_UHPL,
 1.28492 ++  AVR32_OPC_LD_UHLS,
 1.28493 ++  AVR32_OPC_LD_UHGT,
 1.28494 ++  AVR32_OPC_LD_UHLE,
 1.28495 ++  AVR32_OPC_LD_UHHI,
 1.28496 ++  AVR32_OPC_LD_UHVS,
 1.28497 ++  AVR32_OPC_LD_UHVC,
 1.28498 ++  AVR32_OPC_LD_UHQS,
 1.28499 ++  AVR32_OPC_LD_UHAL,
 1.28500 ++  AVR32_OPC_LD_SBEQ,
 1.28501 ++  AVR32_OPC_LD_SBNE,
 1.28502 ++  AVR32_OPC_LD_SBCC,
 1.28503 ++  AVR32_OPC_LD_SBCS,
 1.28504 ++  AVR32_OPC_LD_SBGE,
 1.28505 ++  AVR32_OPC_LD_SBLT,
 1.28506 ++  AVR32_OPC_LD_SBMI,
 1.28507 ++  AVR32_OPC_LD_SBPL,
 1.28508 ++  AVR32_OPC_LD_SBLS,
 1.28509 ++  AVR32_OPC_LD_SBGT,
 1.28510 ++  AVR32_OPC_LD_SBLE,
 1.28511 ++  AVR32_OPC_LD_SBHI,
 1.28512 ++  AVR32_OPC_LD_SBVS,
 1.28513 ++  AVR32_OPC_LD_SBVC,
 1.28514 ++  AVR32_OPC_LD_SBQS,
 1.28515 ++  AVR32_OPC_LD_SBAL,
 1.28516 ++  AVR32_OPC_LD_UBEQ,
 1.28517 ++  AVR32_OPC_LD_UBNE,
 1.28518 ++  AVR32_OPC_LD_UBCC,
 1.28519 ++  AVR32_OPC_LD_UBCS,
 1.28520 ++  AVR32_OPC_LD_UBGE,
 1.28521 ++  AVR32_OPC_LD_UBLT,
 1.28522 ++  AVR32_OPC_LD_UBMI,
 1.28523 ++  AVR32_OPC_LD_UBPL,
 1.28524 ++  AVR32_OPC_LD_UBLS,
 1.28525 ++  AVR32_OPC_LD_UBGT,
 1.28526 ++  AVR32_OPC_LD_UBLE,
 1.28527 ++  AVR32_OPC_LD_UBHI,
 1.28528 ++  AVR32_OPC_LD_UBVS,
 1.28529 ++  AVR32_OPC_LD_UBVC,
 1.28530 ++  AVR32_OPC_LD_UBQS,
 1.28531 ++  AVR32_OPC_LD_UBAL,
 1.28532 ++  AVR32_OPC_ST_WEQ,
 1.28533 ++  AVR32_OPC_ST_WNE,
 1.28534 ++  AVR32_OPC_ST_WCC,
 1.28535 ++  AVR32_OPC_ST_WCS,
 1.28536 ++  AVR32_OPC_ST_WGE,
 1.28537 ++  AVR32_OPC_ST_WLT,
 1.28538 ++  AVR32_OPC_ST_WMI,
 1.28539 ++  AVR32_OPC_ST_WPL,
 1.28540 ++  AVR32_OPC_ST_WLS,
 1.28541 ++  AVR32_OPC_ST_WGT,
 1.28542 ++  AVR32_OPC_ST_WLE,
 1.28543 ++  AVR32_OPC_ST_WHI,
 1.28544 ++  AVR32_OPC_ST_WVS,
 1.28545 ++  AVR32_OPC_ST_WVC,
 1.28546 ++  AVR32_OPC_ST_WQS,
 1.28547 ++  AVR32_OPC_ST_WAL,
 1.28548 ++  AVR32_OPC_ST_HEQ,
 1.28549 ++  AVR32_OPC_ST_HNE,
 1.28550 ++  AVR32_OPC_ST_HCC,
 1.28551 ++  AVR32_OPC_ST_HCS,
 1.28552 ++  AVR32_OPC_ST_HGE,
 1.28553 ++  AVR32_OPC_ST_HLT,
 1.28554 ++  AVR32_OPC_ST_HMI,
 1.28555 ++  AVR32_OPC_ST_HPL,
 1.28556 ++  AVR32_OPC_ST_HLS,
 1.28557 ++  AVR32_OPC_ST_HGT,
 1.28558 ++  AVR32_OPC_ST_HLE,
 1.28559 ++  AVR32_OPC_ST_HHI,
 1.28560 ++  AVR32_OPC_ST_HVS,
 1.28561 ++  AVR32_OPC_ST_HVC,
 1.28562 ++  AVR32_OPC_ST_HQS,
 1.28563 ++  AVR32_OPC_ST_HAL,
 1.28564 ++  AVR32_OPC_ST_BEQ,
 1.28565 ++  AVR32_OPC_ST_BNE,
 1.28566 ++  AVR32_OPC_ST_BCC,
 1.28567 ++  AVR32_OPC_ST_BCS,
 1.28568 ++  AVR32_OPC_ST_BGE,
 1.28569 ++  AVR32_OPC_ST_BLT,
 1.28570 ++  AVR32_OPC_ST_BMI,
 1.28571 ++  AVR32_OPC_ST_BPL,
 1.28572 ++  AVR32_OPC_ST_BLS,
 1.28573 ++  AVR32_OPC_ST_BGT,
 1.28574 ++  AVR32_OPC_ST_BLE,
 1.28575 ++  AVR32_OPC_ST_BHI,
 1.28576 ++  AVR32_OPC_ST_BVS,
 1.28577 ++  AVR32_OPC_ST_BVC,
 1.28578 ++  AVR32_OPC_ST_BQS,
 1.28579 ++  AVR32_OPC_ST_BAL,
 1.28580 ++  AVR32_OPC_MOVH,
 1.28581 ++  AVR32_OPC__END_
 1.28582 ++};
 1.28583 ++#define AVR32_NR_OPCODES AVR32_OPC__END_
 1.28584 ++
 1.28585 ++enum avr32_syntax_type
 1.28586 ++{
 1.28587 ++  AVR32_SYNTAX_ABS,
 1.28588 ++  AVR32_SYNTAX_ACALL,
 1.28589 ++  AVR32_SYNTAX_ACR,
 1.28590 ++  AVR32_SYNTAX_ADC,
 1.28591 ++  AVR32_SYNTAX_ADD1,
 1.28592 ++  AVR32_SYNTAX_ADD2,
 1.28593 ++  AVR32_SYNTAX_ADDABS,
 1.28594 ++  AVR32_SYNTAX_ADDHH_W,
 1.28595 ++  AVR32_SYNTAX_AND1,
 1.28596 ++  AVR32_SYNTAX_AND2,
 1.28597 ++  AVR32_SYNTAX_AND3,
 1.28598 ++  AVR32_SYNTAX_ANDH,
 1.28599 ++  AVR32_SYNTAX_ANDH_COH,
 1.28600 ++  AVR32_SYNTAX_ANDL,
 1.28601 ++  AVR32_SYNTAX_ANDL_COH,
 1.28602 ++  AVR32_SYNTAX_ANDN,
 1.28603 ++  AVR32_SYNTAX_ASR1,
 1.28604 ++  AVR32_SYNTAX_ASR3,
 1.28605 ++  AVR32_SYNTAX_ASR2,
 1.28606 ++  AVR32_SYNTAX_BFEXTS,
 1.28607 ++  AVR32_SYNTAX_BFEXTU,
 1.28608 ++  AVR32_SYNTAX_BFINS,
 1.28609 ++  AVR32_SYNTAX_BLD,
 1.28610 ++  AVR32_SYNTAX_BREQ1,
 1.28611 ++  AVR32_SYNTAX_BRNE1,
 1.28612 ++  AVR32_SYNTAX_BRCC1,
 1.28613 ++  AVR32_SYNTAX_BRCS1,
 1.28614 ++  AVR32_SYNTAX_BRGE1,
 1.28615 ++  AVR32_SYNTAX_BRLT1,
 1.28616 ++  AVR32_SYNTAX_BRMI1,
 1.28617 ++  AVR32_SYNTAX_BRPL1,
 1.28618 ++  AVR32_SYNTAX_BRHS1,
 1.28619 ++  AVR32_SYNTAX_BRLO1,
 1.28620 ++  AVR32_SYNTAX_BREQ2,
 1.28621 ++  AVR32_SYNTAX_BRNE2,
 1.28622 ++  AVR32_SYNTAX_BRCC2,
 1.28623 ++  AVR32_SYNTAX_BRCS2,
 1.28624 ++  AVR32_SYNTAX_BRGE2,
 1.28625 ++  AVR32_SYNTAX_BRLT2,
 1.28626 ++  AVR32_SYNTAX_BRMI2,
 1.28627 ++  AVR32_SYNTAX_BRPL2,
 1.28628 ++  AVR32_SYNTAX_BRLS,
 1.28629 ++  AVR32_SYNTAX_BRGT,
 1.28630 ++  AVR32_SYNTAX_BRLE,
 1.28631 ++  AVR32_SYNTAX_BRHI,
 1.28632 ++  AVR32_SYNTAX_BRVS,
 1.28633 ++  AVR32_SYNTAX_BRVC,
 1.28634 ++  AVR32_SYNTAX_BRQS,
 1.28635 ++  AVR32_SYNTAX_BRAL,
 1.28636 ++  AVR32_SYNTAX_BRHS2,
 1.28637 ++  AVR32_SYNTAX_BRLO2,
 1.28638 ++  AVR32_SYNTAX_BREAKPOINT,
 1.28639 ++  AVR32_SYNTAX_BREV,
 1.28640 ++  AVR32_SYNTAX_BST,
 1.28641 ++  AVR32_SYNTAX_CACHE,
 1.28642 ++  AVR32_SYNTAX_CASTS_B,
 1.28643 ++  AVR32_SYNTAX_CASTS_H,
 1.28644 ++  AVR32_SYNTAX_CASTU_B,
 1.28645 ++  AVR32_SYNTAX_CASTU_H,
 1.28646 ++  AVR32_SYNTAX_CBR,
 1.28647 ++  AVR32_SYNTAX_CLZ,
 1.28648 ++  AVR32_SYNTAX_COM,
 1.28649 ++  AVR32_SYNTAX_COP,
 1.28650 ++  AVR32_SYNTAX_CP_B,
 1.28651 ++  AVR32_SYNTAX_CP_H,
 1.28652 ++  AVR32_SYNTAX_CP_W1,
 1.28653 ++  AVR32_SYNTAX_CP_W2,
 1.28654 ++  AVR32_SYNTAX_CP_W3,
 1.28655 ++  AVR32_SYNTAX_CPC1,
 1.28656 ++  AVR32_SYNTAX_CPC2,
 1.28657 ++  AVR32_SYNTAX_CSRF,
 1.28658 ++  AVR32_SYNTAX_CSRFCZ,
 1.28659 ++  AVR32_SYNTAX_DIVS,
 1.28660 ++  AVR32_SYNTAX_DIVU,
 1.28661 ++  AVR32_SYNTAX_EOR1,
 1.28662 ++  AVR32_SYNTAX_EOR2,
 1.28663 ++  AVR32_SYNTAX_EOR3,
 1.28664 ++  AVR32_SYNTAX_EORL,
 1.28665 ++  AVR32_SYNTAX_EORH,
 1.28666 ++  AVR32_SYNTAX_FRS,
 1.28667 ++  AVR32_SYNTAX_ICALL,
 1.28668 ++  AVR32_SYNTAX_INCJOSP,
 1.28669 ++  AVR32_SYNTAX_LD_D1,
 1.28670 ++  AVR32_SYNTAX_LD_D2,
 1.28671 ++  AVR32_SYNTAX_LD_D3,
 1.28672 ++  AVR32_SYNTAX_LD_D5,
 1.28673 ++  AVR32_SYNTAX_LD_D4,
 1.28674 ++  AVR32_SYNTAX_LD_SB2,
 1.28675 ++  AVR32_SYNTAX_LD_SB1,
 1.28676 ++  AVR32_SYNTAX_LD_UB1,
 1.28677 ++  AVR32_SYNTAX_LD_UB2,
 1.28678 ++  AVR32_SYNTAX_LD_UB5,
 1.28679 ++  AVR32_SYNTAX_LD_UB3,
 1.28680 ++  AVR32_SYNTAX_LD_UB4,
 1.28681 ++  AVR32_SYNTAX_LD_SH1,
 1.28682 ++  AVR32_SYNTAX_LD_SH2,
 1.28683 ++  AVR32_SYNTAX_LD_SH5,
 1.28684 ++  AVR32_SYNTAX_LD_SH3,
 1.28685 ++  AVR32_SYNTAX_LD_SH4,
 1.28686 ++  AVR32_SYNTAX_LD_UH1,
 1.28687 ++  AVR32_SYNTAX_LD_UH2,
 1.28688 ++  AVR32_SYNTAX_LD_UH5,
 1.28689 ++  AVR32_SYNTAX_LD_UH3,
 1.28690 ++  AVR32_SYNTAX_LD_UH4,
 1.28691 ++  AVR32_SYNTAX_LD_W1,
 1.28692 ++  AVR32_SYNTAX_LD_W2,
 1.28693 ++  AVR32_SYNTAX_LD_W5,
 1.28694 ++  AVR32_SYNTAX_LD_W6,
 1.28695 ++  AVR32_SYNTAX_LD_W3,
 1.28696 ++  AVR32_SYNTAX_LD_W4,
 1.28697 ++  AVR32_SYNTAX_LDC_D1,
 1.28698 ++  AVR32_SYNTAX_LDC_D2,
 1.28699 ++  AVR32_SYNTAX_LDC_D3,
 1.28700 ++  AVR32_SYNTAX_LDC_W1,
 1.28701 ++  AVR32_SYNTAX_LDC_W2,
 1.28702 ++  AVR32_SYNTAX_LDC_W3,
 1.28703 ++  AVR32_SYNTAX_LDC0_D,
 1.28704 ++  AVR32_SYNTAX_LDC0_W,
 1.28705 ++  AVR32_SYNTAX_LDCM_D,
 1.28706 ++  AVR32_SYNTAX_LDCM_D_PU,
 1.28707 ++  AVR32_SYNTAX_LDCM_W,
 1.28708 ++  AVR32_SYNTAX_LDCM_W_PU,
 1.28709 ++  AVR32_SYNTAX_LDDPC,
 1.28710 ++  AVR32_SYNTAX_LDDPC_EXT,
 1.28711 ++  AVR32_SYNTAX_LDDSP,
 1.28712 ++  AVR32_SYNTAX_LDINS_B,
 1.28713 ++  AVR32_SYNTAX_LDINS_H,
 1.28714 ++  AVR32_SYNTAX_LDM,
 1.28715 ++  AVR32_SYNTAX_LDMTS,
 1.28716 ++  AVR32_SYNTAX_LDMTS_PU,
 1.28717 ++  AVR32_SYNTAX_LDSWP_SH,
 1.28718 ++  AVR32_SYNTAX_LDSWP_UH,
 1.28719 ++  AVR32_SYNTAX_LDSWP_W,
 1.28720 ++  AVR32_SYNTAX_LSL1,
 1.28721 ++  AVR32_SYNTAX_LSL3,
 1.28722 ++  AVR32_SYNTAX_LSL2,
 1.28723 ++  AVR32_SYNTAX_LSR1,
 1.28724 ++  AVR32_SYNTAX_LSR3,
 1.28725 ++  AVR32_SYNTAX_LSR2,
 1.28726 ++  AVR32_SYNTAX_MAC,
 1.28727 ++  AVR32_SYNTAX_MACHH_D,
 1.28728 ++  AVR32_SYNTAX_MACHH_W,
 1.28729 ++  AVR32_SYNTAX_MACS_D,
 1.28730 ++  AVR32_SYNTAX_MACSATHH_W,
 1.28731 ++  AVR32_SYNTAX_MACUD,
 1.28732 ++  AVR32_SYNTAX_MACWH_D,
 1.28733 ++  AVR32_SYNTAX_MAX,
 1.28734 ++  AVR32_SYNTAX_MCALL,
 1.28735 ++  AVR32_SYNTAX_MFDR,
 1.28736 ++  AVR32_SYNTAX_MFSR,
 1.28737 ++  AVR32_SYNTAX_MIN,
 1.28738 ++  AVR32_SYNTAX_MOV3,
 1.28739 ++  AVR32_SYNTAX_MOV1,
 1.28740 ++  AVR32_SYNTAX_MOV2,
 1.28741 ++  AVR32_SYNTAX_MOVEQ1,
 1.28742 ++  AVR32_SYNTAX_MOVNE1,
 1.28743 ++  AVR32_SYNTAX_MOVCC1,
 1.28744 ++  AVR32_SYNTAX_MOVCS1,
 1.28745 ++  AVR32_SYNTAX_MOVGE1,
 1.28746 ++  AVR32_SYNTAX_MOVLT1,
 1.28747 ++  AVR32_SYNTAX_MOVMI1,
 1.28748 ++  AVR32_SYNTAX_MOVPL1,
 1.28749 ++  AVR32_SYNTAX_MOVLS1,
 1.28750 ++  AVR32_SYNTAX_MOVGT1,
 1.28751 ++  AVR32_SYNTAX_MOVLE1,
 1.28752 ++  AVR32_SYNTAX_MOVHI1,
 1.28753 ++  AVR32_SYNTAX_MOVVS1,
 1.28754 ++  AVR32_SYNTAX_MOVVC1,
 1.28755 ++  AVR32_SYNTAX_MOVQS1,
 1.28756 ++  AVR32_SYNTAX_MOVAL1,
 1.28757 ++  AVR32_SYNTAX_MOVHS1,
 1.28758 ++  AVR32_SYNTAX_MOVLO1,
 1.28759 ++  AVR32_SYNTAX_MOVEQ2,
 1.28760 ++  AVR32_SYNTAX_MOVNE2,
 1.28761 ++  AVR32_SYNTAX_MOVCC2,
 1.28762 ++  AVR32_SYNTAX_MOVCS2,
 1.28763 ++  AVR32_SYNTAX_MOVGE2,
 1.28764 ++  AVR32_SYNTAX_MOVLT2,
 1.28765 ++  AVR32_SYNTAX_MOVMI2,
 1.28766 ++  AVR32_SYNTAX_MOVPL2,
 1.28767 ++  AVR32_SYNTAX_MOVLS2,
 1.28768 ++  AVR32_SYNTAX_MOVGT2,
 1.28769 ++  AVR32_SYNTAX_MOVLE2,
 1.28770 ++  AVR32_SYNTAX_MOVHI2,
 1.28771 ++  AVR32_SYNTAX_MOVVS2,
 1.28772 ++  AVR32_SYNTAX_MOVVC2,
 1.28773 ++  AVR32_SYNTAX_MOVQS2,
 1.28774 ++  AVR32_SYNTAX_MOVAL2,
 1.28775 ++  AVR32_SYNTAX_MOVHS2,
 1.28776 ++  AVR32_SYNTAX_MOVLO2,
 1.28777 ++  AVR32_SYNTAX_MTDR,
 1.28778 ++  AVR32_SYNTAX_MTSR,
 1.28779 ++  AVR32_SYNTAX_MUL1,
 1.28780 ++  AVR32_SYNTAX_MUL2,
 1.28781 ++  AVR32_SYNTAX_MUL3,
 1.28782 ++  AVR32_SYNTAX_MULHH_W,
 1.28783 ++  AVR32_SYNTAX_MULNHH_W,
 1.28784 ++  AVR32_SYNTAX_MULNWH_D,
 1.28785 ++  AVR32_SYNTAX_MULSD,
 1.28786 ++  AVR32_SYNTAX_MULSATHH_H,
 1.28787 ++  AVR32_SYNTAX_MULSATHH_W,
 1.28788 ++  AVR32_SYNTAX_MULSATRNDHH_H,
 1.28789 ++  AVR32_SYNTAX_MULSATRNDWH_W,
 1.28790 ++  AVR32_SYNTAX_MULSATWH_W,
 1.28791 ++  AVR32_SYNTAX_MULU_D,
 1.28792 ++  AVR32_SYNTAX_MULWH_D,
 1.28793 ++  AVR32_SYNTAX_MUSFR,
 1.28794 ++  AVR32_SYNTAX_MUSTR,
 1.28795 ++  AVR32_SYNTAX_MVCR_D,
 1.28796 ++  AVR32_SYNTAX_MVCR_W,
 1.28797 ++  AVR32_SYNTAX_MVRC_D,
 1.28798 ++  AVR32_SYNTAX_MVRC_W,
 1.28799 ++  AVR32_SYNTAX_NEG,
 1.28800 ++  AVR32_SYNTAX_NOP,
 1.28801 ++  AVR32_SYNTAX_OR1,
 1.28802 ++  AVR32_SYNTAX_OR2,
 1.28803 ++  AVR32_SYNTAX_OR3,
 1.28804 ++  AVR32_SYNTAX_ORH,
 1.28805 ++  AVR32_SYNTAX_ORL,
 1.28806 ++  AVR32_SYNTAX_PABS_SB,
 1.28807 ++  AVR32_SYNTAX_PABS_SH,
 1.28808 ++  AVR32_SYNTAX_PACKSH_SB,
 1.28809 ++  AVR32_SYNTAX_PACKSH_UB,
 1.28810 ++  AVR32_SYNTAX_PACKW_SH,
 1.28811 ++  AVR32_SYNTAX_PADD_B,
 1.28812 ++  AVR32_SYNTAX_PADD_H,
 1.28813 ++  AVR32_SYNTAX_PADDH_SH,
 1.28814 ++  AVR32_SYNTAX_PADDH_UB,
 1.28815 ++  AVR32_SYNTAX_PADDS_SB,
 1.28816 ++  AVR32_SYNTAX_PADDS_SH,
 1.28817 ++  AVR32_SYNTAX_PADDS_UB,
 1.28818 ++  AVR32_SYNTAX_PADDS_UH,
 1.28819 ++  AVR32_SYNTAX_PADDSUB_H,
 1.28820 ++  AVR32_SYNTAX_PADDSUBH_SH,
 1.28821 ++  AVR32_SYNTAX_PADDSUBS_SH,
 1.28822 ++  AVR32_SYNTAX_PADDSUBS_UH,
 1.28823 ++  AVR32_SYNTAX_PADDX_H,
 1.28824 ++  AVR32_SYNTAX_PADDXH_SH,
 1.28825 ++  AVR32_SYNTAX_PADDXS_SH,
 1.28826 ++  AVR32_SYNTAX_PADDXS_UH,
 1.28827 ++  AVR32_SYNTAX_PASR_B,
 1.28828 ++  AVR32_SYNTAX_PASR_H,
 1.28829 ++  AVR32_SYNTAX_PAVG_SH,
 1.28830 ++  AVR32_SYNTAX_PAVG_UB,
 1.28831 ++  AVR32_SYNTAX_PLSL_B,
 1.28832 ++  AVR32_SYNTAX_PLSL_H,
 1.28833 ++  AVR32_SYNTAX_PLSR_B,
 1.28834 ++  AVR32_SYNTAX_PLSR_H,
 1.28835 ++  AVR32_SYNTAX_PMAX_SH,
 1.28836 ++  AVR32_SYNTAX_PMAX_UB,
 1.28837 ++  AVR32_SYNTAX_PMIN_SH,
 1.28838 ++  AVR32_SYNTAX_PMIN_UB,
 1.28839 ++  AVR32_SYNTAX_POPJC,
 1.28840 ++  AVR32_SYNTAX_POPM,
 1.28841 ++  AVR32_SYNTAX_POPM_E,
 1.28842 ++  AVR32_SYNTAX_PREF,
 1.28843 ++  AVR32_SYNTAX_PSAD,
 1.28844 ++  AVR32_SYNTAX_PSUB_B,
 1.28845 ++  AVR32_SYNTAX_PSUB_H,
 1.28846 ++  AVR32_SYNTAX_PSUBADD_H,
 1.28847 ++  AVR32_SYNTAX_PSUBADDH_SH,
 1.28848 ++  AVR32_SYNTAX_PSUBADDS_SH,
 1.28849 ++  AVR32_SYNTAX_PSUBADDS_UH,
 1.28850 ++  AVR32_SYNTAX_PSUBH_SH,
 1.28851 ++  AVR32_SYNTAX_PSUBH_UB,
 1.28852 ++  AVR32_SYNTAX_PSUBS_SB,
 1.28853 ++  AVR32_SYNTAX_PSUBS_SH,
 1.28854 ++  AVR32_SYNTAX_PSUBS_UB,
 1.28855 ++  AVR32_SYNTAX_PSUBS_UH,
 1.28856 ++  AVR32_SYNTAX_PSUBX_H,
 1.28857 ++  AVR32_SYNTAX_PSUBXH_SH,
 1.28858 ++  AVR32_SYNTAX_PSUBXS_SH,
 1.28859 ++  AVR32_SYNTAX_PSUBXS_UH,
 1.28860 ++  AVR32_SYNTAX_PUNPCKSB_H,
 1.28861 ++  AVR32_SYNTAX_PUNPCKUB_H,
 1.28862 ++  AVR32_SYNTAX_PUSHJC,
 1.28863 ++  AVR32_SYNTAX_PUSHM,
 1.28864 ++  AVR32_SYNTAX_PUSHM_E,
 1.28865 ++  AVR32_SYNTAX_RCALL1,
 1.28866 ++  AVR32_SYNTAX_RCALL2,
 1.28867 ++  AVR32_SYNTAX_RETEQ,
 1.28868 ++  AVR32_SYNTAX_RETNE,
 1.28869 ++  AVR32_SYNTAX_RETCC,
 1.28870 ++  AVR32_SYNTAX_RETCS,
 1.28871 ++  AVR32_SYNTAX_RETGE,
 1.28872 ++  AVR32_SYNTAX_RETLT,
 1.28873 ++  AVR32_SYNTAX_RETMI,
 1.28874 ++  AVR32_SYNTAX_RETPL,
 1.28875 ++  AVR32_SYNTAX_RETLS,
 1.28876 ++  AVR32_SYNTAX_RETGT,
 1.28877 ++  AVR32_SYNTAX_RETLE,
 1.28878 ++  AVR32_SYNTAX_RETHI,
 1.28879 ++  AVR32_SYNTAX_RETVS,
 1.28880 ++  AVR32_SYNTAX_RETVC,
 1.28881 ++  AVR32_SYNTAX_RETQS,
 1.28882 ++  AVR32_SYNTAX_RETAL,
 1.28883 ++  AVR32_SYNTAX_RETHS,
 1.28884 ++  AVR32_SYNTAX_RETLO,
 1.28885 ++  AVR32_SYNTAX_RETD,
 1.28886 ++  AVR32_SYNTAX_RETE,
 1.28887 ++  AVR32_SYNTAX_RETJ,
 1.28888 ++  AVR32_SYNTAX_RETS,
 1.28889 ++  AVR32_SYNTAX_RJMP,
 1.28890 ++  AVR32_SYNTAX_ROL,
 1.28891 ++  AVR32_SYNTAX_ROR,
 1.28892 ++  AVR32_SYNTAX_RSUB1,
 1.28893 ++  AVR32_SYNTAX_RSUB2,
 1.28894 ++  AVR32_SYNTAX_SATADD_H,
 1.28895 ++  AVR32_SYNTAX_SATADD_W,
 1.28896 ++  AVR32_SYNTAX_SATRNDS,
 1.28897 ++  AVR32_SYNTAX_SATRNDU,
 1.28898 ++  AVR32_SYNTAX_SATS,
 1.28899 ++  AVR32_SYNTAX_SATSUB_H,
 1.28900 ++  AVR32_SYNTAX_SATSUB_W1,
 1.28901 ++  AVR32_SYNTAX_SATSUB_W2,
 1.28902 ++  AVR32_SYNTAX_SATU,
 1.28903 ++  AVR32_SYNTAX_SBC,
 1.28904 ++  AVR32_SYNTAX_SBR,
 1.28905 ++  AVR32_SYNTAX_SCALL,
 1.28906 ++  AVR32_SYNTAX_SCR,
 1.28907 ++  AVR32_SYNTAX_SLEEP,
 1.28908 ++  AVR32_SYNTAX_SREQ,
 1.28909 ++  AVR32_SYNTAX_SRNE,
 1.28910 ++  AVR32_SYNTAX_SRCC,
 1.28911 ++  AVR32_SYNTAX_SRCS,
 1.28912 ++  AVR32_SYNTAX_SRGE,
 1.28913 ++  AVR32_SYNTAX_SRLT,
 1.28914 ++  AVR32_SYNTAX_SRMI,
 1.28915 ++  AVR32_SYNTAX_SRPL,
 1.28916 ++  AVR32_SYNTAX_SRLS,
 1.28917 ++  AVR32_SYNTAX_SRGT,
 1.28918 ++  AVR32_SYNTAX_SRLE,
 1.28919 ++  AVR32_SYNTAX_SRHI,
 1.28920 ++  AVR32_SYNTAX_SRVS,
 1.28921 ++  AVR32_SYNTAX_SRVC,
 1.28922 ++  AVR32_SYNTAX_SRQS,
 1.28923 ++  AVR32_SYNTAX_SRAL,
 1.28924 ++  AVR32_SYNTAX_SRHS,
 1.28925 ++  AVR32_SYNTAX_SRLO,
 1.28926 ++  AVR32_SYNTAX_SSRF,
 1.28927 ++  AVR32_SYNTAX_ST_B1,
 1.28928 ++  AVR32_SYNTAX_ST_B2,
 1.28929 ++  AVR32_SYNTAX_ST_B5,
 1.28930 ++  AVR32_SYNTAX_ST_B3,
 1.28931 ++  AVR32_SYNTAX_ST_B4,
 1.28932 ++  AVR32_SYNTAX_ST_D1,
 1.28933 ++  AVR32_SYNTAX_ST_D2,
 1.28934 ++  AVR32_SYNTAX_ST_D3,
 1.28935 ++  AVR32_SYNTAX_ST_D5,
 1.28936 ++  AVR32_SYNTAX_ST_D4,
 1.28937 ++  AVR32_SYNTAX_ST_H1,
 1.28938 ++  AVR32_SYNTAX_ST_H2,
 1.28939 ++  AVR32_SYNTAX_ST_H5,
 1.28940 ++  AVR32_SYNTAX_ST_H3,
 1.28941 ++  AVR32_SYNTAX_ST_H4,
 1.28942 ++  AVR32_SYNTAX_ST_W1,
 1.28943 ++  AVR32_SYNTAX_ST_W2,
 1.28944 ++  AVR32_SYNTAX_ST_W5,
 1.28945 ++  AVR32_SYNTAX_ST_W3,
 1.28946 ++  AVR32_SYNTAX_ST_W4,
 1.28947 ++  AVR32_SYNTAX_STC_D1,
 1.28948 ++  AVR32_SYNTAX_STC_D2,
 1.28949 ++  AVR32_SYNTAX_STC_D3,
 1.28950 ++  AVR32_SYNTAX_STC_W1,
 1.28951 ++  AVR32_SYNTAX_STC_W2,
 1.28952 ++  AVR32_SYNTAX_STC_W3,
 1.28953 ++  AVR32_SYNTAX_STC0_D,
 1.28954 ++  AVR32_SYNTAX_STC0_W,
 1.28955 ++  AVR32_SYNTAX_STCM_D,
 1.28956 ++  AVR32_SYNTAX_STCM_D_PU,
 1.28957 ++  AVR32_SYNTAX_STCM_W,
 1.28958 ++  AVR32_SYNTAX_STCM_W_PU,
 1.28959 ++  AVR32_SYNTAX_STCOND,
 1.28960 ++  AVR32_SYNTAX_STDSP,
 1.28961 ++  AVR32_SYNTAX_STHH_W2,
 1.28962 ++  AVR32_SYNTAX_STHH_W1,
 1.28963 ++  AVR32_SYNTAX_STM,
 1.28964 ++  AVR32_SYNTAX_STM_PU,
 1.28965 ++  AVR32_SYNTAX_STMTS,
 1.28966 ++  AVR32_SYNTAX_STMTS_PU,
 1.28967 ++  AVR32_SYNTAX_STSWP_H,
 1.28968 ++  AVR32_SYNTAX_STSWP_W,
 1.28969 ++  AVR32_SYNTAX_SUB1,
 1.28970 ++  AVR32_SYNTAX_SUB2,
 1.28971 ++  AVR32_SYNTAX_SUB5,
 1.28972 ++  AVR32_SYNTAX_SUB3_SP,
 1.28973 ++  AVR32_SYNTAX_SUB3,
 1.28974 ++  AVR32_SYNTAX_SUB4,
 1.28975 ++  AVR32_SYNTAX_SUBEQ,
 1.28976 ++  AVR32_SYNTAX_SUBNE,
 1.28977 ++  AVR32_SYNTAX_SUBCC,
 1.28978 ++  AVR32_SYNTAX_SUBCS,
 1.28979 ++  AVR32_SYNTAX_SUBGE,
 1.28980 ++  AVR32_SYNTAX_SUBLT,
 1.28981 ++  AVR32_SYNTAX_SUBMI,
 1.28982 ++  AVR32_SYNTAX_SUBPL,
 1.28983 ++  AVR32_SYNTAX_SUBLS,
 1.28984 ++  AVR32_SYNTAX_SUBGT,
 1.28985 ++  AVR32_SYNTAX_SUBLE,
 1.28986 ++  AVR32_SYNTAX_SUBHI,
 1.28987 ++  AVR32_SYNTAX_SUBVS,
 1.28988 ++  AVR32_SYNTAX_SUBVC,
 1.28989 ++  AVR32_SYNTAX_SUBQS,
 1.28990 ++  AVR32_SYNTAX_SUBAL,
 1.28991 ++  AVR32_SYNTAX_SUBHS,
 1.28992 ++  AVR32_SYNTAX_SUBLO,
 1.28993 ++  AVR32_SYNTAX_SUBFEQ,
 1.28994 ++  AVR32_SYNTAX_SUBFNE,
 1.28995 ++  AVR32_SYNTAX_SUBFCC,
 1.28996 ++  AVR32_SYNTAX_SUBFCS,
 1.28997 ++  AVR32_SYNTAX_SUBFGE,
 1.28998 ++  AVR32_SYNTAX_SUBFLT,
 1.28999 ++  AVR32_SYNTAX_SUBFMI,
 1.29000 ++  AVR32_SYNTAX_SUBFPL,
 1.29001 ++  AVR32_SYNTAX_SUBFLS,
 1.29002 ++  AVR32_SYNTAX_SUBFGT,
 1.29003 ++  AVR32_SYNTAX_SUBFLE,
 1.29004 ++  AVR32_SYNTAX_SUBFHI,
 1.29005 ++  AVR32_SYNTAX_SUBFVS,
 1.29006 ++  AVR32_SYNTAX_SUBFVC,
 1.29007 ++  AVR32_SYNTAX_SUBFQS,
 1.29008 ++  AVR32_SYNTAX_SUBFAL,
 1.29009 ++  AVR32_SYNTAX_SUBFHS,
 1.29010 ++  AVR32_SYNTAX_SUBFLO,
 1.29011 ++  AVR32_SYNTAX_SUBHH_W,
 1.29012 ++  AVR32_SYNTAX_SWAP_B,
 1.29013 ++  AVR32_SYNTAX_SWAP_BH,
 1.29014 ++  AVR32_SYNTAX_SWAP_H,
 1.29015 ++  AVR32_SYNTAX_SYNC,
 1.29016 ++  AVR32_SYNTAX_TLBR,
 1.29017 ++  AVR32_SYNTAX_TLBS,
 1.29018 ++  AVR32_SYNTAX_TLBW,
 1.29019 ++  AVR32_SYNTAX_TNBZ,
 1.29020 ++  AVR32_SYNTAX_TST,
 1.29021 ++  AVR32_SYNTAX_XCHG,
 1.29022 ++  AVR32_SYNTAX_MEMC,
 1.29023 ++  AVR32_SYNTAX_MEMS,
 1.29024 ++  AVR32_SYNTAX_MEMT,
 1.29025 ++  AVR32_SYNTAX_FADD_S,
 1.29026 ++  AVR32_SYNTAX_FADD_D,
 1.29027 ++  AVR32_SYNTAX_FSUB_S,
 1.29028 ++  AVR32_SYNTAX_FSUB_D,
 1.29029 ++  AVR32_SYNTAX_FMAC_S,
 1.29030 ++  AVR32_SYNTAX_FMAC_D,
 1.29031 ++  AVR32_SYNTAX_FNMAC_S,
 1.29032 ++  AVR32_SYNTAX_FNMAC_D,
 1.29033 ++  AVR32_SYNTAX_FMSC_S,
 1.29034 ++  AVR32_SYNTAX_FMSC_D,
 1.29035 ++  AVR32_SYNTAX_FNMSC_S,
 1.29036 ++  AVR32_SYNTAX_FNMSC_D,
 1.29037 ++  AVR32_SYNTAX_FMUL_S,
 1.29038 ++  AVR32_SYNTAX_FMUL_D,
 1.29039 ++  AVR32_SYNTAX_FNMUL_S,
 1.29040 ++  AVR32_SYNTAX_FNMUL_D,
 1.29041 ++  AVR32_SYNTAX_FNEG_S,
 1.29042 ++  AVR32_SYNTAX_FNEG_D,
 1.29043 ++  AVR32_SYNTAX_FABS_S,
 1.29044 ++  AVR32_SYNTAX_FABS_D,
 1.29045 ++  AVR32_SYNTAX_FCMP_S,
 1.29046 ++  AVR32_SYNTAX_FCMP_D,
 1.29047 ++  AVR32_SYNTAX_FMOV1_S,
 1.29048 ++  AVR32_SYNTAX_FMOV1_D,
 1.29049 ++  AVR32_SYNTAX_FMOV2_S,
 1.29050 ++  AVR32_SYNTAX_FMOV2_D,
 1.29051 ++  AVR32_SYNTAX_FMOV3_S,
 1.29052 ++  AVR32_SYNTAX_FMOV3_D,
 1.29053 ++  AVR32_SYNTAX_FCASTS_D,
 1.29054 ++  AVR32_SYNTAX_FCASTD_S,
 1.29055 ++  AVR32_SYNTAX_LDA_W,
 1.29056 ++  AVR32_SYNTAX_CALL,
 1.29057 ++  AVR32_SYNTAX_PICOSVMAC0,
 1.29058 ++  AVR32_SYNTAX_PICOSVMAC1,
 1.29059 ++  AVR32_SYNTAX_PICOSVMAC2,
 1.29060 ++  AVR32_SYNTAX_PICOSVMAC3,
 1.29061 ++  AVR32_SYNTAX_PICOSVMUL0,
 1.29062 ++  AVR32_SYNTAX_PICOSVMUL1,
 1.29063 ++  AVR32_SYNTAX_PICOSVMUL2,
 1.29064 ++  AVR32_SYNTAX_PICOSVMUL3,
 1.29065 ++  AVR32_SYNTAX_PICOVMAC0,
 1.29066 ++  AVR32_SYNTAX_PICOVMAC1,
 1.29067 ++  AVR32_SYNTAX_PICOVMAC2,
 1.29068 ++  AVR32_SYNTAX_PICOVMAC3,
 1.29069 ++  AVR32_SYNTAX_PICOVMUL0,
 1.29070 ++  AVR32_SYNTAX_PICOVMUL1,
 1.29071 ++  AVR32_SYNTAX_PICOVMUL2,
 1.29072 ++  AVR32_SYNTAX_PICOVMUL3,
 1.29073 ++  AVR32_SYNTAX_PICOLD_D2,
 1.29074 ++  AVR32_SYNTAX_PICOLD_D3,
 1.29075 ++  AVR32_SYNTAX_PICOLD_D1,
 1.29076 ++  AVR32_SYNTAX_PICOLD_W2,
 1.29077 ++  AVR32_SYNTAX_PICOLD_W3,
 1.29078 ++  AVR32_SYNTAX_PICOLD_W1,
 1.29079 ++  AVR32_SYNTAX_PICOLDM_D,
 1.29080 ++  AVR32_SYNTAX_PICOLDM_D_PU,
 1.29081 ++  AVR32_SYNTAX_PICOLDM_W,
 1.29082 ++  AVR32_SYNTAX_PICOLDM_W_PU,
 1.29083 ++  AVR32_SYNTAX_PICOMV_D1,
 1.29084 ++  AVR32_SYNTAX_PICOMV_D2,
 1.29085 ++  AVR32_SYNTAX_PICOMV_W1,
 1.29086 ++  AVR32_SYNTAX_PICOMV_W2,
 1.29087 ++  AVR32_SYNTAX_PICOST_D2,
 1.29088 ++  AVR32_SYNTAX_PICOST_D3,
 1.29089 ++  AVR32_SYNTAX_PICOST_D1,
 1.29090 ++  AVR32_SYNTAX_PICOST_W2,
 1.29091 ++  AVR32_SYNTAX_PICOST_W3,
 1.29092 ++  AVR32_SYNTAX_PICOST_W1,
 1.29093 ++  AVR32_SYNTAX_PICOSTM_D,
 1.29094 ++  AVR32_SYNTAX_PICOSTM_D_PU,
 1.29095 ++  AVR32_SYNTAX_PICOSTM_W,
 1.29096 ++  AVR32_SYNTAX_PICOSTM_W_PU,
 1.29097 ++  AVR32_SYNTAX_RSUBEQ,
 1.29098 ++  AVR32_SYNTAX_RSUBNE,
 1.29099 ++  AVR32_SYNTAX_RSUBCC,
 1.29100 ++  AVR32_SYNTAX_RSUBCS,
 1.29101 ++  AVR32_SYNTAX_RSUBGE,
 1.29102 ++  AVR32_SYNTAX_RSUBLT,
 1.29103 ++  AVR32_SYNTAX_RSUBMI,
 1.29104 ++  AVR32_SYNTAX_RSUBPL,
 1.29105 ++  AVR32_SYNTAX_RSUBLS,
 1.29106 ++  AVR32_SYNTAX_RSUBGT,
 1.29107 ++  AVR32_SYNTAX_RSUBLE,
 1.29108 ++  AVR32_SYNTAX_RSUBHI,
 1.29109 ++  AVR32_SYNTAX_RSUBVS,
 1.29110 ++  AVR32_SYNTAX_RSUBVC,
 1.29111 ++  AVR32_SYNTAX_RSUBQS,
 1.29112 ++  AVR32_SYNTAX_RSUBAL,
 1.29113 ++  AVR32_SYNTAX_RSUBHS,
 1.29114 ++  AVR32_SYNTAX_RSUBLO,
 1.29115 ++  AVR32_SYNTAX_ADDEQ,
 1.29116 ++  AVR32_SYNTAX_ADDNE,
 1.29117 ++  AVR32_SYNTAX_ADDCC,
 1.29118 ++  AVR32_SYNTAX_ADDCS,
 1.29119 ++  AVR32_SYNTAX_ADDGE,
 1.29120 ++  AVR32_SYNTAX_ADDLT,
 1.29121 ++  AVR32_SYNTAX_ADDMI,
 1.29122 ++  AVR32_SYNTAX_ADDPL,
 1.29123 ++  AVR32_SYNTAX_ADDLS,
 1.29124 ++  AVR32_SYNTAX_ADDGT,
 1.29125 ++  AVR32_SYNTAX_ADDLE,
 1.29126 ++  AVR32_SYNTAX_ADDHI,
 1.29127 ++  AVR32_SYNTAX_ADDVS,
 1.29128 ++  AVR32_SYNTAX_ADDVC,
 1.29129 ++  AVR32_SYNTAX_ADDQS,
 1.29130 ++  AVR32_SYNTAX_ADDAL,
 1.29131 ++  AVR32_SYNTAX_ADDHS,
 1.29132 ++  AVR32_SYNTAX_ADDLO,
 1.29133 ++  AVR32_SYNTAX_SUB2EQ,
 1.29134 ++  AVR32_SYNTAX_SUB2NE,
 1.29135 ++  AVR32_SYNTAX_SUB2CC,
 1.29136 ++  AVR32_SYNTAX_SUB2CS,
 1.29137 ++  AVR32_SYNTAX_SUB2GE,
 1.29138 ++  AVR32_SYNTAX_SUB2LT,
 1.29139 ++  AVR32_SYNTAX_SUB2MI,
 1.29140 ++  AVR32_SYNTAX_SUB2PL,
 1.29141 ++  AVR32_SYNTAX_SUB2LS,
 1.29142 ++  AVR32_SYNTAX_SUB2GT,
 1.29143 ++  AVR32_SYNTAX_SUB2LE,
 1.29144 ++  AVR32_SYNTAX_SUB2HI,
 1.29145 ++  AVR32_SYNTAX_SUB2VS,
 1.29146 ++  AVR32_SYNTAX_SUB2VC,
 1.29147 ++  AVR32_SYNTAX_SUB2QS,
 1.29148 ++  AVR32_SYNTAX_SUB2AL,
 1.29149 ++  AVR32_SYNTAX_SUB2HS,
 1.29150 ++  AVR32_SYNTAX_SUB2LO,
 1.29151 ++  AVR32_SYNTAX_ANDEQ,
 1.29152 ++  AVR32_SYNTAX_ANDNE,
 1.29153 ++  AVR32_SYNTAX_ANDCC,
 1.29154 ++  AVR32_SYNTAX_ANDCS,
 1.29155 ++  AVR32_SYNTAX_ANDGE,
 1.29156 ++  AVR32_SYNTAX_ANDLT,
 1.29157 ++  AVR32_SYNTAX_ANDMI,
 1.29158 ++  AVR32_SYNTAX_ANDPL,
 1.29159 ++  AVR32_SYNTAX_ANDLS,
 1.29160 ++  AVR32_SYNTAX_ANDGT,
 1.29161 ++  AVR32_SYNTAX_ANDLE,
 1.29162 ++  AVR32_SYNTAX_ANDHI,
 1.29163 ++  AVR32_SYNTAX_ANDVS,
 1.29164 ++  AVR32_SYNTAX_ANDVC,
 1.29165 ++  AVR32_SYNTAX_ANDQS,
 1.29166 ++  AVR32_SYNTAX_ANDAL,
 1.29167 ++  AVR32_SYNTAX_ANDHS,
 1.29168 ++  AVR32_SYNTAX_ANDLO,
 1.29169 ++  AVR32_SYNTAX_OREQ,
 1.29170 ++  AVR32_SYNTAX_ORNE,
 1.29171 ++  AVR32_SYNTAX_ORCC,
 1.29172 ++  AVR32_SYNTAX_ORCS,
 1.29173 ++  AVR32_SYNTAX_ORGE,
 1.29174 ++  AVR32_SYNTAX_ORLT,
 1.29175 ++  AVR32_SYNTAX_ORMI,
 1.29176 ++  AVR32_SYNTAX_ORPL,
 1.29177 ++  AVR32_SYNTAX_ORLS,
 1.29178 ++  AVR32_SYNTAX_ORGT,
 1.29179 ++  AVR32_SYNTAX_ORLE,
 1.29180 ++  AVR32_SYNTAX_ORHI,
 1.29181 ++  AVR32_SYNTAX_ORVS,
 1.29182 ++  AVR32_SYNTAX_ORVC,
 1.29183 ++  AVR32_SYNTAX_ORQS,
 1.29184 ++  AVR32_SYNTAX_ORAL,
 1.29185 ++  AVR32_SYNTAX_ORHS,
 1.29186 ++  AVR32_SYNTAX_ORLO,
 1.29187 ++  AVR32_SYNTAX_EOREQ,
 1.29188 ++  AVR32_SYNTAX_EORNE,
 1.29189 ++  AVR32_SYNTAX_EORCC,
 1.29190 ++  AVR32_SYNTAX_EORCS,
 1.29191 ++  AVR32_SYNTAX_EORGE,
 1.29192 ++  AVR32_SYNTAX_EORLT,
 1.29193 ++  AVR32_SYNTAX_EORMI,
 1.29194 ++  AVR32_SYNTAX_EORPL,
 1.29195 ++  AVR32_SYNTAX_EORLS,
 1.29196 ++  AVR32_SYNTAX_EORGT,
 1.29197 ++  AVR32_SYNTAX_EORLE,
 1.29198 ++  AVR32_SYNTAX_EORHI,
 1.29199 ++  AVR32_SYNTAX_EORVS,
 1.29200 ++  AVR32_SYNTAX_EORVC,
 1.29201 ++  AVR32_SYNTAX_EORQS,
 1.29202 ++  AVR32_SYNTAX_EORAL,
 1.29203 ++  AVR32_SYNTAX_EORHS,
 1.29204 ++  AVR32_SYNTAX_EORLO,
 1.29205 ++  AVR32_SYNTAX_LD_WEQ,
 1.29206 ++  AVR32_SYNTAX_LD_WNE,
 1.29207 ++  AVR32_SYNTAX_LD_WCC,
 1.29208 ++  AVR32_SYNTAX_LD_WCS,
 1.29209 ++  AVR32_SYNTAX_LD_WGE,
 1.29210 ++  AVR32_SYNTAX_LD_WLT,
 1.29211 ++  AVR32_SYNTAX_LD_WMI,
 1.29212 ++  AVR32_SYNTAX_LD_WPL,
 1.29213 ++  AVR32_SYNTAX_LD_WLS,
 1.29214 ++  AVR32_SYNTAX_LD_WGT,
 1.29215 ++  AVR32_SYNTAX_LD_WLE,
 1.29216 ++  AVR32_SYNTAX_LD_WHI,
 1.29217 ++  AVR32_SYNTAX_LD_WVS,
 1.29218 ++  AVR32_SYNTAX_LD_WVC,
 1.29219 ++  AVR32_SYNTAX_LD_WQS,
 1.29220 ++  AVR32_SYNTAX_LD_WAL,
 1.29221 ++  AVR32_SYNTAX_LD_WHS,
 1.29222 ++  AVR32_SYNTAX_LD_WLO,
 1.29223 ++  AVR32_SYNTAX_LD_SHEQ,
 1.29224 ++  AVR32_SYNTAX_LD_SHNE,
 1.29225 ++  AVR32_SYNTAX_LD_SHCC,
 1.29226 ++  AVR32_SYNTAX_LD_SHCS,
 1.29227 ++  AVR32_SYNTAX_LD_SHGE,
 1.29228 ++  AVR32_SYNTAX_LD_SHLT,
 1.29229 ++  AVR32_SYNTAX_LD_SHMI,
 1.29230 ++  AVR32_SYNTAX_LD_SHPL,
 1.29231 ++  AVR32_SYNTAX_LD_SHLS,
 1.29232 ++  AVR32_SYNTAX_LD_SHGT,
 1.29233 ++  AVR32_SYNTAX_LD_SHLE,
 1.29234 ++  AVR32_SYNTAX_LD_SHHI,
 1.29235 ++  AVR32_SYNTAX_LD_SHVS,
 1.29236 ++  AVR32_SYNTAX_LD_SHVC,
 1.29237 ++  AVR32_SYNTAX_LD_SHQS,
 1.29238 ++  AVR32_SYNTAX_LD_SHAL,
 1.29239 ++  AVR32_SYNTAX_LD_SHHS,
 1.29240 ++  AVR32_SYNTAX_LD_SHLO,
 1.29241 ++  AVR32_SYNTAX_LD_UHEQ,
 1.29242 ++  AVR32_SYNTAX_LD_UHNE,
 1.29243 ++  AVR32_SYNTAX_LD_UHCC,
 1.29244 ++  AVR32_SYNTAX_LD_UHCS,
 1.29245 ++  AVR32_SYNTAX_LD_UHGE,
 1.29246 ++  AVR32_SYNTAX_LD_UHLT,
 1.29247 ++  AVR32_SYNTAX_LD_UHMI,
 1.29248 ++  AVR32_SYNTAX_LD_UHPL,
 1.29249 ++  AVR32_SYNTAX_LD_UHLS,
 1.29250 ++  AVR32_SYNTAX_LD_UHGT,
 1.29251 ++  AVR32_SYNTAX_LD_UHLE,
 1.29252 ++  AVR32_SYNTAX_LD_UHHI,
 1.29253 ++  AVR32_SYNTAX_LD_UHVS,
 1.29254 ++  AVR32_SYNTAX_LD_UHVC,
 1.29255 ++  AVR32_SYNTAX_LD_UHQS,
 1.29256 ++  AVR32_SYNTAX_LD_UHAL,
 1.29257 ++  AVR32_SYNTAX_LD_UHHS,
 1.29258 ++  AVR32_SYNTAX_LD_UHLO,
 1.29259 ++  AVR32_SYNTAX_LD_SBEQ,
 1.29260 ++  AVR32_SYNTAX_LD_SBNE,
 1.29261 ++  AVR32_SYNTAX_LD_SBCC,
 1.29262 ++  AVR32_SYNTAX_LD_SBCS,
 1.29263 ++  AVR32_SYNTAX_LD_SBGE,
 1.29264 ++  AVR32_SYNTAX_LD_SBLT,
 1.29265 ++  AVR32_SYNTAX_LD_SBMI,
 1.29266 ++  AVR32_SYNTAX_LD_SBPL,
 1.29267 ++  AVR32_SYNTAX_LD_SBLS,
 1.29268 ++  AVR32_SYNTAX_LD_SBGT,
 1.29269 ++  AVR32_SYNTAX_LD_SBLE,
 1.29270 ++  AVR32_SYNTAX_LD_SBHI,
 1.29271 ++  AVR32_SYNTAX_LD_SBVS,
 1.29272 ++  AVR32_SYNTAX_LD_SBVC,
 1.29273 ++  AVR32_SYNTAX_LD_SBQS,
 1.29274 ++  AVR32_SYNTAX_LD_SBAL,
 1.29275 ++  AVR32_SYNTAX_LD_SBHS,
 1.29276 ++  AVR32_SYNTAX_LD_SBLO,
 1.29277 ++  AVR32_SYNTAX_LD_UBEQ,
 1.29278 ++  AVR32_SYNTAX_LD_UBNE,
 1.29279 ++  AVR32_SYNTAX_LD_UBCC,
 1.29280 ++  AVR32_SYNTAX_LD_UBCS,
 1.29281 ++  AVR32_SYNTAX_LD_UBGE,
 1.29282 ++  AVR32_SYNTAX_LD_UBLT,
 1.29283 ++  AVR32_SYNTAX_LD_UBMI,
 1.29284 ++  AVR32_SYNTAX_LD_UBPL,
 1.29285 ++  AVR32_SYNTAX_LD_UBLS,
 1.29286 ++  AVR32_SYNTAX_LD_UBGT,
 1.29287 ++  AVR32_SYNTAX_LD_UBLE,
 1.29288 ++  AVR32_SYNTAX_LD_UBHI,
 1.29289 ++  AVR32_SYNTAX_LD_UBVS,
 1.29290 ++  AVR32_SYNTAX_LD_UBVC,
 1.29291 ++  AVR32_SYNTAX_LD_UBQS,
 1.29292 ++  AVR32_SYNTAX_LD_UBAL,
 1.29293 ++  AVR32_SYNTAX_LD_UBHS,
 1.29294 ++  AVR32_SYNTAX_LD_UBLO,
 1.29295 ++  AVR32_SYNTAX_ST_WEQ,
 1.29296 ++  AVR32_SYNTAX_ST_WNE,
 1.29297 ++  AVR32_SYNTAX_ST_WCC,
 1.29298 ++  AVR32_SYNTAX_ST_WCS,
 1.29299 ++  AVR32_SYNTAX_ST_WGE,
 1.29300 ++  AVR32_SYNTAX_ST_WLT,
 1.29301 ++  AVR32_SYNTAX_ST_WMI,
 1.29302 ++  AVR32_SYNTAX_ST_WPL,
 1.29303 ++  AVR32_SYNTAX_ST_WLS,
 1.29304 ++  AVR32_SYNTAX_ST_WGT,
 1.29305 ++  AVR32_SYNTAX_ST_WLE,
 1.29306 ++  AVR32_SYNTAX_ST_WHI,
 1.29307 ++  AVR32_SYNTAX_ST_WVS,
 1.29308 ++  AVR32_SYNTAX_ST_WVC,
 1.29309 ++  AVR32_SYNTAX_ST_WQS,
 1.29310 ++  AVR32_SYNTAX_ST_WAL,
 1.29311 ++  AVR32_SYNTAX_ST_WHS,
 1.29312 ++  AVR32_SYNTAX_ST_WLO,
 1.29313 ++  AVR32_SYNTAX_ST_HEQ,
 1.29314 ++  AVR32_SYNTAX_ST_HNE,
 1.29315 ++  AVR32_SYNTAX_ST_HCC,
 1.29316 ++  AVR32_SYNTAX_ST_HCS,
 1.29317 ++  AVR32_SYNTAX_ST_HGE,
 1.29318 ++  AVR32_SYNTAX_ST_HLT,
 1.29319 ++  AVR32_SYNTAX_ST_HMI,
 1.29320 ++  AVR32_SYNTAX_ST_HPL,
 1.29321 ++  AVR32_SYNTAX_ST_HLS,
 1.29322 ++  AVR32_SYNTAX_ST_HGT,
 1.29323 ++  AVR32_SYNTAX_ST_HLE,
 1.29324 ++  AVR32_SYNTAX_ST_HHI,
 1.29325 ++  AVR32_SYNTAX_ST_HVS,
 1.29326 ++  AVR32_SYNTAX_ST_HVC,
 1.29327 ++  AVR32_SYNTAX_ST_HQS,
 1.29328 ++  AVR32_SYNTAX_ST_HAL,
 1.29329 ++  AVR32_SYNTAX_ST_HHS,
 1.29330 ++  AVR32_SYNTAX_ST_HLO,
 1.29331 ++  AVR32_SYNTAX_ST_BEQ,
 1.29332 ++  AVR32_SYNTAX_ST_BNE,
 1.29333 ++  AVR32_SYNTAX_ST_BCC,
 1.29334 ++  AVR32_SYNTAX_ST_BCS,
 1.29335 ++  AVR32_SYNTAX_ST_BGE,
 1.29336 ++  AVR32_SYNTAX_ST_BLT,
 1.29337 ++  AVR32_SYNTAX_ST_BMI,
 1.29338 ++  AVR32_SYNTAX_ST_BPL,
 1.29339 ++  AVR32_SYNTAX_ST_BLS,
 1.29340 ++  AVR32_SYNTAX_ST_BGT,
 1.29341 ++  AVR32_SYNTAX_ST_BLE,
 1.29342 ++  AVR32_SYNTAX_ST_BHI,
 1.29343 ++  AVR32_SYNTAX_ST_BVS,
 1.29344 ++  AVR32_SYNTAX_ST_BVC,
 1.29345 ++  AVR32_SYNTAX_ST_BQS,
 1.29346 ++  AVR32_SYNTAX_ST_BAL,
 1.29347 ++  AVR32_SYNTAX_ST_BHS,
 1.29348 ++  AVR32_SYNTAX_ST_BLO,
 1.29349 ++  AVR32_SYNTAX_MOVH,
 1.29350 ++  AVR32_SYNTAX__END_
 1.29351 ++};
 1.29352 ++#define AVR32_NR_SYNTAX AVR32_SYNTAX__END_
 1.29353 ++
 1.29354 ++enum avr32_alias_type
 1.29355 ++  {
 1.29356 ++    AVR32_ALIAS_FMAC_S,
 1.29357 ++    AVR32_ALIAS_FMAC_D,
 1.29358 ++    AVR32_ALIAS_FNMAC_S,
 1.29359 ++    AVR32_ALIAS_FNMAC_D,
 1.29360 ++    AVR32_ALIAS_FMSC_S,
 1.29361 ++    AVR32_ALIAS_FMSC_D,
 1.29362 ++    AVR32_ALIAS_FNMSC_S,
 1.29363 ++    AVR32_ALIAS_FNMSC_D,
 1.29364 ++    AVR32_ALIAS_FADD_S,
 1.29365 ++    AVR32_ALIAS_FADD_D,
 1.29366 ++    AVR32_ALIAS_FSUB_S,
 1.29367 ++    AVR32_ALIAS_FSUB_D,
 1.29368 ++    AVR32_ALIAS_FMUL_S,
 1.29369 ++    AVR32_ALIAS_FMUL_D,
 1.29370 ++    AVR32_ALIAS_FNMUL_S,
 1.29371 ++    AVR32_ALIAS_FNMUL_D,
 1.29372 ++    AVR32_ALIAS_FNEG_S,
 1.29373 ++    AVR32_ALIAS_FNEG_D,
 1.29374 ++    AVR32_ALIAS_FABS_S,
 1.29375 ++    AVR32_ALIAS_FABS_D,
 1.29376 ++    AVR32_ALIAS_FCMP_S,
 1.29377 ++    AVR32_ALIAS_FCMP_D,
 1.29378 ++    AVR32_ALIAS_FMOV1_S,
 1.29379 ++    AVR32_ALIAS_FMOV1_D,
 1.29380 ++    AVR32_ALIAS_FMOV2_S,
 1.29381 ++    AVR32_ALIAS_FMOV2_D,
 1.29382 ++    AVR32_ALIAS_FMOV3_S,
 1.29383 ++    AVR32_ALIAS_FMOV3_D,
 1.29384 ++    AVR32_ALIAS_FCASTS_D,
 1.29385 ++    AVR32_ALIAS_FCASTD_S,
 1.29386 ++    AVR32_ALIAS_PICOSVMAC0,
 1.29387 ++    AVR32_ALIAS_PICOSVMAC1,
 1.29388 ++    AVR32_ALIAS_PICOSVMAC2,
 1.29389 ++    AVR32_ALIAS_PICOSVMAC3,
 1.29390 ++    AVR32_ALIAS_PICOSVMUL0,
 1.29391 ++    AVR32_ALIAS_PICOSVMUL1,
 1.29392 ++    AVR32_ALIAS_PICOSVMUL2,
 1.29393 ++    AVR32_ALIAS_PICOSVMUL3,
 1.29394 ++    AVR32_ALIAS_PICOVMAC0,
 1.29395 ++    AVR32_ALIAS_PICOVMAC1,
 1.29396 ++    AVR32_ALIAS_PICOVMAC2,
 1.29397 ++    AVR32_ALIAS_PICOVMAC3,
 1.29398 ++    AVR32_ALIAS_PICOVMUL0,
 1.29399 ++    AVR32_ALIAS_PICOVMUL1,
 1.29400 ++    AVR32_ALIAS_PICOVMUL2,
 1.29401 ++    AVR32_ALIAS_PICOVMUL3,
 1.29402 ++    AVR32_ALIAS_PICOLD_D1,
 1.29403 ++    AVR32_ALIAS_PICOLD_D2,
 1.29404 ++    AVR32_ALIAS_PICOLD_D3,
 1.29405 ++    AVR32_ALIAS_PICOLD_W1,
 1.29406 ++    AVR32_ALIAS_PICOLD_W2,
 1.29407 ++    AVR32_ALIAS_PICOLD_W3,
 1.29408 ++    AVR32_ALIAS_PICOLDM_D,
 1.29409 ++    AVR32_ALIAS_PICOLDM_D_PU,
 1.29410 ++    AVR32_ALIAS_PICOLDM_W,
 1.29411 ++    AVR32_ALIAS_PICOLDM_W_PU,
 1.29412 ++    AVR32_ALIAS_PICOMV_D1,
 1.29413 ++    AVR32_ALIAS_PICOMV_D2,
 1.29414 ++    AVR32_ALIAS_PICOMV_W1,
 1.29415 ++    AVR32_ALIAS_PICOMV_W2,
 1.29416 ++    AVR32_ALIAS_PICOST_D1,
 1.29417 ++    AVR32_ALIAS_PICOST_D2,
 1.29418 ++    AVR32_ALIAS_PICOST_D3,
 1.29419 ++    AVR32_ALIAS_PICOST_W1,
 1.29420 ++    AVR32_ALIAS_PICOST_W2,
 1.29421 ++    AVR32_ALIAS_PICOST_W3,
 1.29422 ++    AVR32_ALIAS_PICOSTM_D,
 1.29423 ++    AVR32_ALIAS_PICOSTM_D_PU,
 1.29424 ++    AVR32_ALIAS_PICOSTM_W,
 1.29425 ++    AVR32_ALIAS_PICOSTM_W_PU,
 1.29426 ++    AVR32_ALIAS__END_
 1.29427 ++  };
 1.29428 ++#define AVR32_NR_ALIAS AVR32_ALIAS__END_
 1.29429 ++
 1.29430 ++enum avr32_mnemonic_type
 1.29431 ++{
 1.29432 ++  AVR32_MNEMONIC_ABS,
 1.29433 ++  AVR32_MNEMONIC_ACALL,
 1.29434 ++  AVR32_MNEMONIC_ACR,
 1.29435 ++  AVR32_MNEMONIC_ADC,
 1.29436 ++  AVR32_MNEMONIC_ADD,
 1.29437 ++  AVR32_MNEMONIC_ADDABS,
 1.29438 ++  AVR32_MNEMONIC_ADDHH_W,
 1.29439 ++  AVR32_MNEMONIC_AND,
 1.29440 ++  AVR32_MNEMONIC_ANDH,
 1.29441 ++  AVR32_MNEMONIC_ANDL,
 1.29442 ++  AVR32_MNEMONIC_ANDN,
 1.29443 ++  AVR32_MNEMONIC_ASR,
 1.29444 ++  AVR32_MNEMONIC_BFEXTS,
 1.29445 ++  AVR32_MNEMONIC_BFEXTU,
 1.29446 ++  AVR32_MNEMONIC_BFINS,
 1.29447 ++  AVR32_MNEMONIC_BLD,
 1.29448 ++  AVR32_MNEMONIC_BREQ,
 1.29449 ++  AVR32_MNEMONIC_BRNE,
 1.29450 ++  AVR32_MNEMONIC_BRCC,
 1.29451 ++  AVR32_MNEMONIC_BRCS,
 1.29452 ++  AVR32_MNEMONIC_BRGE,
 1.29453 ++  AVR32_MNEMONIC_BRLT,
 1.29454 ++  AVR32_MNEMONIC_BRMI,
 1.29455 ++  AVR32_MNEMONIC_BRPL,
 1.29456 ++  AVR32_MNEMONIC_BRHS,
 1.29457 ++  AVR32_MNEMONIC_BRLO,
 1.29458 ++  AVR32_MNEMONIC_BRLS,
 1.29459 ++  AVR32_MNEMONIC_BRGT,
 1.29460 ++  AVR32_MNEMONIC_BRLE,
 1.29461 ++  AVR32_MNEMONIC_BRHI,
 1.29462 ++  AVR32_MNEMONIC_BRVS,
 1.29463 ++  AVR32_MNEMONIC_BRVC,
 1.29464 ++  AVR32_MNEMONIC_BRQS,
 1.29465 ++  AVR32_MNEMONIC_BRAL,
 1.29466 ++  AVR32_MNEMONIC_BREAKPOINT,
 1.29467 ++  AVR32_MNEMONIC_BREV,
 1.29468 ++  AVR32_MNEMONIC_BST,
 1.29469 ++  AVR32_MNEMONIC_CACHE,
 1.29470 ++  AVR32_MNEMONIC_CASTS_B,
 1.29471 ++  AVR32_MNEMONIC_CASTS_H,
 1.29472 ++  AVR32_MNEMONIC_CASTU_B,
 1.29473 ++  AVR32_MNEMONIC_CASTU_H,
 1.29474 ++  AVR32_MNEMONIC_CBR,
 1.29475 ++  AVR32_MNEMONIC_CLZ,
 1.29476 ++  AVR32_MNEMONIC_COM,
 1.29477 ++  AVR32_MNEMONIC_COP,
 1.29478 ++  AVR32_MNEMONIC_CP_B,
 1.29479 ++  AVR32_MNEMONIC_CP_H,
 1.29480 ++  AVR32_MNEMONIC_CP_W,
 1.29481 ++  AVR32_MNEMONIC_CP,
 1.29482 ++  AVR32_MNEMONIC_CPC,
 1.29483 ++  AVR32_MNEMONIC_CSRF,
 1.29484 ++  AVR32_MNEMONIC_CSRFCZ,
 1.29485 ++  AVR32_MNEMONIC_DIVS,
 1.29486 ++  AVR32_MNEMONIC_DIVU,
 1.29487 ++  AVR32_MNEMONIC_EOR,
 1.29488 ++  AVR32_MNEMONIC_EORL,
 1.29489 ++  AVR32_MNEMONIC_EORH,
 1.29490 ++  AVR32_MNEMONIC_FRS,
 1.29491 ++  AVR32_MNEMONIC_ICALL,
 1.29492 ++  AVR32_MNEMONIC_INCJOSP,
 1.29493 ++  AVR32_MNEMONIC_LD_D,
 1.29494 ++  AVR32_MNEMONIC_LD_SB,
 1.29495 ++  AVR32_MNEMONIC_LD_UB,
 1.29496 ++  AVR32_MNEMONIC_LD_SH,
 1.29497 ++  AVR32_MNEMONIC_LD_UH,
 1.29498 ++  AVR32_MNEMONIC_LD_W,
 1.29499 ++  AVR32_MNEMONIC_LDC_D,
 1.29500 ++  AVR32_MNEMONIC_LDC_W,
 1.29501 ++  AVR32_MNEMONIC_LDC0_D,
 1.29502 ++  AVR32_MNEMONIC_LDC0_W,
 1.29503 ++  AVR32_MNEMONIC_LDCM_D,
 1.29504 ++  AVR32_MNEMONIC_LDCM_W,
 1.29505 ++  AVR32_MNEMONIC_LDDPC,
 1.29506 ++  AVR32_MNEMONIC_LDDSP,
 1.29507 ++  AVR32_MNEMONIC_LDINS_B,
 1.29508 ++  AVR32_MNEMONIC_LDINS_H,
 1.29509 ++  AVR32_MNEMONIC_LDM,
 1.29510 ++  AVR32_MNEMONIC_LDMTS,
 1.29511 ++  AVR32_MNEMONIC_LDSWP_SH,
 1.29512 ++  AVR32_MNEMONIC_LDSWP_UH,
 1.29513 ++  AVR32_MNEMONIC_LDSWP_W,
 1.29514 ++  AVR32_MNEMONIC_LSL,
 1.29515 ++  AVR32_MNEMONIC_LSR,
 1.29516 ++  AVR32_MNEMONIC_MAC,
 1.29517 ++  AVR32_MNEMONIC_MACHH_D,
 1.29518 ++  AVR32_MNEMONIC_MACHH_W,
 1.29519 ++  AVR32_MNEMONIC_MACS_D,
 1.29520 ++  AVR32_MNEMONIC_MACSATHH_W,
 1.29521 ++  AVR32_MNEMONIC_MACU_D,
 1.29522 ++  AVR32_MNEMONIC_MACWH_D,
 1.29523 ++  AVR32_MNEMONIC_MAX,
 1.29524 ++  AVR32_MNEMONIC_MCALL,
 1.29525 ++  AVR32_MNEMONIC_MFDR,
 1.29526 ++  AVR32_MNEMONIC_MFSR,
 1.29527 ++  AVR32_MNEMONIC_MIN,
 1.29528 ++  AVR32_MNEMONIC_MOV,
 1.29529 ++  AVR32_MNEMONIC_MOVEQ,
 1.29530 ++  AVR32_MNEMONIC_MOVNE,
 1.29531 ++  AVR32_MNEMONIC_MOVCC,
 1.29532 ++  AVR32_MNEMONIC_MOVCS,
 1.29533 ++  AVR32_MNEMONIC_MOVGE,
 1.29534 ++  AVR32_MNEMONIC_MOVLT,
 1.29535 ++  AVR32_MNEMONIC_MOVMI,
 1.29536 ++  AVR32_MNEMONIC_MOVPL,
 1.29537 ++  AVR32_MNEMONIC_MOVLS,
 1.29538 ++  AVR32_MNEMONIC_MOVGT,
 1.29539 ++  AVR32_MNEMONIC_MOVLE,
 1.29540 ++  AVR32_MNEMONIC_MOVHI,
 1.29541 ++  AVR32_MNEMONIC_MOVVS,
 1.29542 ++  AVR32_MNEMONIC_MOVVC,
 1.29543 ++  AVR32_MNEMONIC_MOVQS,
 1.29544 ++  AVR32_MNEMONIC_MOVAL,
 1.29545 ++  AVR32_MNEMONIC_MOVHS,
 1.29546 ++  AVR32_MNEMONIC_MOVLO,
 1.29547 ++  AVR32_MNEMONIC_MTDR,
 1.29548 ++  AVR32_MNEMONIC_MTSR,
 1.29549 ++  AVR32_MNEMONIC_MUL,
 1.29550 ++  AVR32_MNEMONIC_MULHH_W,
 1.29551 ++  AVR32_MNEMONIC_MULNHH_W,
 1.29552 ++  AVR32_MNEMONIC_MULNWH_D,
 1.29553 ++  AVR32_MNEMONIC_MULS_D,
 1.29554 ++  AVR32_MNEMONIC_MULSATHH_H,
 1.29555 ++  AVR32_MNEMONIC_MULSATHH_W,
 1.29556 ++  AVR32_MNEMONIC_MULSATRNDHH_H,
 1.29557 ++  AVR32_MNEMONIC_MULSATRNDWH_W,
 1.29558 ++  AVR32_MNEMONIC_MULSATWH_W,
 1.29559 ++  AVR32_MNEMONIC_MULU_D,
 1.29560 ++  AVR32_MNEMONIC_MULWH_D,
 1.29561 ++  AVR32_MNEMONIC_MUSFR,
 1.29562 ++  AVR32_MNEMONIC_MUSTR,
 1.29563 ++  AVR32_MNEMONIC_MVCR_D,
 1.29564 ++  AVR32_MNEMONIC_MVCR_W,
 1.29565 ++  AVR32_MNEMONIC_MVRC_D,
 1.29566 ++  AVR32_MNEMONIC_MVRC_W,
 1.29567 ++  AVR32_MNEMONIC_NEG,
 1.29568 ++  AVR32_MNEMONIC_NOP,
 1.29569 ++  AVR32_MNEMONIC_OR,
 1.29570 ++  AVR32_MNEMONIC_ORH,
 1.29571 ++  AVR32_MNEMONIC_ORL,
 1.29572 ++  AVR32_MNEMONIC_PABS_SB,
 1.29573 ++  AVR32_MNEMONIC_PABS_SH,
 1.29574 ++  AVR32_MNEMONIC_PACKSH_SB,
 1.29575 ++  AVR32_MNEMONIC_PACKSH_UB,
 1.29576 ++  AVR32_MNEMONIC_PACKW_SH,
 1.29577 ++  AVR32_MNEMONIC_PADD_B,
 1.29578 ++  AVR32_MNEMONIC_PADD_H,
 1.29579 ++  AVR32_MNEMONIC_PADDH_SH,
 1.29580 ++  AVR32_MNEMONIC_PADDH_UB,
 1.29581 ++  AVR32_MNEMONIC_PADDS_SB,
 1.29582 ++  AVR32_MNEMONIC_PADDS_SH,
 1.29583 ++  AVR32_MNEMONIC_PADDS_UB,
 1.29584 ++  AVR32_MNEMONIC_PADDS_UH,
 1.29585 ++  AVR32_MNEMONIC_PADDSUB_H,
 1.29586 ++  AVR32_MNEMONIC_PADDSUBH_SH,
 1.29587 ++  AVR32_MNEMONIC_PADDSUBS_SH,
 1.29588 ++  AVR32_MNEMONIC_PADDSUBS_UH,
 1.29589 ++  AVR32_MNEMONIC_PADDX_H,
 1.29590 ++  AVR32_MNEMONIC_PADDXH_SH,
 1.29591 ++  AVR32_MNEMONIC_PADDXS_SH,
 1.29592 ++  AVR32_MNEMONIC_PADDXS_UH,
 1.29593 ++  AVR32_MNEMONIC_PASR_B,
 1.29594 ++  AVR32_MNEMONIC_PASR_H,
 1.29595 ++  AVR32_MNEMONIC_PAVG_SH,
 1.29596 ++  AVR32_MNEMONIC_PAVG_UB,
 1.29597 ++  AVR32_MNEMONIC_PLSL_B,
 1.29598 ++  AVR32_MNEMONIC_PLSL_H,
 1.29599 ++  AVR32_MNEMONIC_PLSR_B,
 1.29600 ++  AVR32_MNEMONIC_PLSR_H,
 1.29601 ++  AVR32_MNEMONIC_PMAX_SH,
 1.29602 ++  AVR32_MNEMONIC_PMAX_UB,
 1.29603 ++  AVR32_MNEMONIC_PMIN_SH,
 1.29604 ++  AVR32_MNEMONIC_PMIN_UB,
 1.29605 ++  AVR32_MNEMONIC_POPJC,
 1.29606 ++  AVR32_MNEMONIC_POPM,
 1.29607 ++  AVR32_MNEMONIC_PREF,
 1.29608 ++  AVR32_MNEMONIC_PSAD,
 1.29609 ++  AVR32_MNEMONIC_PSUB_B,
 1.29610 ++  AVR32_MNEMONIC_PSUB_H,
 1.29611 ++  AVR32_MNEMONIC_PSUBADD_H,
 1.29612 ++  AVR32_MNEMONIC_PSUBADDH_SH,
 1.29613 ++  AVR32_MNEMONIC_PSUBADDS_SH,
 1.29614 ++  AVR32_MNEMONIC_PSUBADDS_UH,
 1.29615 ++  AVR32_MNEMONIC_PSUBH_SH,
 1.29616 ++  AVR32_MNEMONIC_PSUBH_UB,
 1.29617 ++  AVR32_MNEMONIC_PSUBS_SB,
 1.29618 ++  AVR32_MNEMONIC_PSUBS_SH,
 1.29619 ++  AVR32_MNEMONIC_PSUBS_UB,
 1.29620 ++  AVR32_MNEMONIC_PSUBS_UH,
 1.29621 ++  AVR32_MNEMONIC_PSUBX_H,
 1.29622 ++  AVR32_MNEMONIC_PSUBXH_SH,
 1.29623 ++  AVR32_MNEMONIC_PSUBXS_SH,
 1.29624 ++  AVR32_MNEMONIC_PSUBXS_UH,
 1.29625 ++  AVR32_MNEMONIC_PUNPCKSB_H,
 1.29626 ++  AVR32_MNEMONIC_PUNPCKUB_H,
 1.29627 ++  AVR32_MNEMONIC_PUSHJC,
 1.29628 ++  AVR32_MNEMONIC_PUSHM,
 1.29629 ++  AVR32_MNEMONIC_RCALL,
 1.29630 ++  AVR32_MNEMONIC_RETEQ,
 1.29631 ++  AVR32_MNEMONIC_RETNE,
 1.29632 ++  AVR32_MNEMONIC_RETCC,
 1.29633 ++  AVR32_MNEMONIC_RETCS,
 1.29634 ++  AVR32_MNEMONIC_RETGE,
 1.29635 ++  AVR32_MNEMONIC_RETLT,
 1.29636 ++  AVR32_MNEMONIC_RETMI,
 1.29637 ++  AVR32_MNEMONIC_RETPL,
 1.29638 ++  AVR32_MNEMONIC_RETLS,
 1.29639 ++  AVR32_MNEMONIC_RETGT,
 1.29640 ++  AVR32_MNEMONIC_RETLE,
 1.29641 ++  AVR32_MNEMONIC_RETHI,
 1.29642 ++  AVR32_MNEMONIC_RETVS,
 1.29643 ++  AVR32_MNEMONIC_RETVC,
 1.29644 ++  AVR32_MNEMONIC_RETQS,
 1.29645 ++  AVR32_MNEMONIC_RETAL,
 1.29646 ++  AVR32_MNEMONIC_RETHS,
 1.29647 ++  AVR32_MNEMONIC_RETLO,
 1.29648 ++  AVR32_MNEMONIC_RET,
 1.29649 ++  AVR32_MNEMONIC_RETD,
 1.29650 ++  AVR32_MNEMONIC_RETE,
 1.29651 ++  AVR32_MNEMONIC_RETJ,
 1.29652 ++  AVR32_MNEMONIC_RETS,
 1.29653 ++  AVR32_MNEMONIC_RJMP,
 1.29654 ++  AVR32_MNEMONIC_ROL,
 1.29655 ++  AVR32_MNEMONIC_ROR,
 1.29656 ++  AVR32_MNEMONIC_RSUB,
 1.29657 ++  AVR32_MNEMONIC_SATADD_H,
 1.29658 ++  AVR32_MNEMONIC_SATADD_W,
 1.29659 ++  AVR32_MNEMONIC_SATRNDS,
 1.29660 ++  AVR32_MNEMONIC_SATRNDU,
 1.29661 ++  AVR32_MNEMONIC_SATS,
 1.29662 ++  AVR32_MNEMONIC_SATSUB_H,
 1.29663 ++  AVR32_MNEMONIC_SATSUB_W,
 1.29664 ++  AVR32_MNEMONIC_SATU,
 1.29665 ++  AVR32_MNEMONIC_SBC,
 1.29666 ++  AVR32_MNEMONIC_SBR,
 1.29667 ++  AVR32_MNEMONIC_SCALL,
 1.29668 ++  AVR32_MNEMONIC_SCR,
 1.29669 ++  AVR32_MNEMONIC_SLEEP,
 1.29670 ++  AVR32_MNEMONIC_SREQ,
 1.29671 ++  AVR32_MNEMONIC_SRNE,
 1.29672 ++  AVR32_MNEMONIC_SRCC,
 1.29673 ++  AVR32_MNEMONIC_SRCS,
 1.29674 ++  AVR32_MNEMONIC_SRGE,
 1.29675 ++  AVR32_MNEMONIC_SRLT,
 1.29676 ++  AVR32_MNEMONIC_SRMI,
 1.29677 ++  AVR32_MNEMONIC_SRPL,
 1.29678 ++  AVR32_MNEMONIC_SRLS,
 1.29679 ++  AVR32_MNEMONIC_SRGT,
 1.29680 ++  AVR32_MNEMONIC_SRLE,
 1.29681 ++  AVR32_MNEMONIC_SRHI,
 1.29682 ++  AVR32_MNEMONIC_SRVS,
 1.29683 ++  AVR32_MNEMONIC_SRVC,
 1.29684 ++  AVR32_MNEMONIC_SRQS,
 1.29685 ++  AVR32_MNEMONIC_SRAL,
 1.29686 ++  AVR32_MNEMONIC_SRHS,
 1.29687 ++  AVR32_MNEMONIC_SRLO,
 1.29688 ++  AVR32_MNEMONIC_SSRF,
 1.29689 ++  AVR32_MNEMONIC_ST_B,
 1.29690 ++  AVR32_MNEMONIC_ST_D,
 1.29691 ++  AVR32_MNEMONIC_ST_H,
 1.29692 ++  AVR32_MNEMONIC_ST_W,
 1.29693 ++  AVR32_MNEMONIC_STC_D,
 1.29694 ++  AVR32_MNEMONIC_STC_W,
 1.29695 ++  AVR32_MNEMONIC_STC0_D,
 1.29696 ++  AVR32_MNEMONIC_STC0_W,
 1.29697 ++  AVR32_MNEMONIC_STCM_D,
 1.29698 ++  AVR32_MNEMONIC_STCM_W,
 1.29699 ++  AVR32_MNEMONIC_STCOND,
 1.29700 ++  AVR32_MNEMONIC_STDSP,
 1.29701 ++  AVR32_MNEMONIC_STHH_W,
 1.29702 ++  AVR32_MNEMONIC_STM,
 1.29703 ++  AVR32_MNEMONIC_STMTS,
 1.29704 ++  AVR32_MNEMONIC_STSWP_H,
 1.29705 ++  AVR32_MNEMONIC_STSWP_W,
 1.29706 ++  AVR32_MNEMONIC_SUB,
 1.29707 ++  AVR32_MNEMONIC_SUBEQ,
 1.29708 ++  AVR32_MNEMONIC_SUBNE,
 1.29709 ++  AVR32_MNEMONIC_SUBCC,
 1.29710 ++  AVR32_MNEMONIC_SUBCS,
 1.29711 ++  AVR32_MNEMONIC_SUBGE,
 1.29712 ++  AVR32_MNEMONIC_SUBLT,
 1.29713 ++  AVR32_MNEMONIC_SUBMI,
 1.29714 ++  AVR32_MNEMONIC_SUBPL,
 1.29715 ++  AVR32_MNEMONIC_SUBLS,
 1.29716 ++  AVR32_MNEMONIC_SUBGT,
 1.29717 ++  AVR32_MNEMONIC_SUBLE,
 1.29718 ++  AVR32_MNEMONIC_SUBHI,
 1.29719 ++  AVR32_MNEMONIC_SUBVS,
 1.29720 ++  AVR32_MNEMONIC_SUBVC,
 1.29721 ++  AVR32_MNEMONIC_SUBQS,
 1.29722 ++  AVR32_MNEMONIC_SUBAL,
 1.29723 ++  AVR32_MNEMONIC_SUBHS,
 1.29724 ++  AVR32_MNEMONIC_SUBLO,
 1.29725 ++  AVR32_MNEMONIC_SUBFEQ,
 1.29726 ++  AVR32_MNEMONIC_SUBFNE,
 1.29727 ++  AVR32_MNEMONIC_SUBFCC,
 1.29728 ++  AVR32_MNEMONIC_SUBFCS,
 1.29729 ++  AVR32_MNEMONIC_SUBFGE,
 1.29730 ++  AVR32_MNEMONIC_SUBFLT,
 1.29731 ++  AVR32_MNEMONIC_SUBFMI,
 1.29732 ++  AVR32_MNEMONIC_SUBFPL,
 1.29733 ++  AVR32_MNEMONIC_SUBFLS,
 1.29734 ++  AVR32_MNEMONIC_SUBFGT,
 1.29735 ++  AVR32_MNEMONIC_SUBFLE,
 1.29736 ++  AVR32_MNEMONIC_SUBFHI,
 1.29737 ++  AVR32_MNEMONIC_SUBFVS,
 1.29738 ++  AVR32_MNEMONIC_SUBFVC,
 1.29739 ++  AVR32_MNEMONIC_SUBFQS,
 1.29740 ++  AVR32_MNEMONIC_SUBFAL,
 1.29741 ++  AVR32_MNEMONIC_SUBFHS,
 1.29742 ++  AVR32_MNEMONIC_SUBFLO,
 1.29743 ++  AVR32_MNEMONIC_SUBHH_W,
 1.29744 ++  AVR32_MNEMONIC_SWAP_B,
 1.29745 ++  AVR32_MNEMONIC_SWAP_BH,
 1.29746 ++  AVR32_MNEMONIC_SWAP_H,
 1.29747 ++  AVR32_MNEMONIC_SYNC,
 1.29748 ++  AVR32_MNEMONIC_TLBR,
 1.29749 ++  AVR32_MNEMONIC_TLBS,
 1.29750 ++  AVR32_MNEMONIC_TLBW,
 1.29751 ++  AVR32_MNEMONIC_TNBZ,
 1.29752 ++  AVR32_MNEMONIC_TST,
 1.29753 ++  AVR32_MNEMONIC_XCHG,
 1.29754 ++  AVR32_MNEMONIC_MEMC,
 1.29755 ++  AVR32_MNEMONIC_MEMS,
 1.29756 ++  AVR32_MNEMONIC_MEMT,
 1.29757 ++  AVR32_MNEMONIC_FADD_S,
 1.29758 ++  AVR32_MNEMONIC_FADD_D,
 1.29759 ++  AVR32_MNEMONIC_FSUB_S,
 1.29760 ++  AVR32_MNEMONIC_FSUB_D,
 1.29761 ++  AVR32_MNEMONIC_FMAC_S,
 1.29762 ++  AVR32_MNEMONIC_FMAC_D,
 1.29763 ++  AVR32_MNEMONIC_FNMAC_S,
 1.29764 ++  AVR32_MNEMONIC_FNMAC_D,
 1.29765 ++  AVR32_MNEMONIC_FMSC_S,
 1.29766 ++  AVR32_MNEMONIC_FMSC_D,
 1.29767 ++  AVR32_MNEMONIC_FNMSC_S,
 1.29768 ++  AVR32_MNEMONIC_FNMSC_D,
 1.29769 ++  AVR32_MNEMONIC_FMUL_S,
 1.29770 ++  AVR32_MNEMONIC_FMUL_D,
 1.29771 ++  AVR32_MNEMONIC_FNMUL_S,
 1.29772 ++  AVR32_MNEMONIC_FNMUL_D,
 1.29773 ++  AVR32_MNEMONIC_FNEG_S,
 1.29774 ++  AVR32_MNEMONIC_FNEG_D,
 1.29775 ++  AVR32_MNEMONIC_FABS_S,
 1.29776 ++  AVR32_MNEMONIC_FABS_D,
 1.29777 ++  AVR32_MNEMONIC_FCMP_S,
 1.29778 ++  AVR32_MNEMONIC_FCMP_D,
 1.29779 ++  AVR32_MNEMONIC_FMOV_S,
 1.29780 ++  AVR32_MNEMONIC_FMOV_D,
 1.29781 ++  AVR32_MNEMONIC_FCASTS_D,
 1.29782 ++  AVR32_MNEMONIC_FCASTD_S,
 1.29783 ++  /* AVR32_MNEMONIC_FLD_S,
 1.29784 ++     AVR32_MNEMONIC_FLD_D,
 1.29785 ++     AVR32_MNEMONIC_FST_S,
 1.29786 ++     AVR32_MNEMONIC_FST_D, */
 1.29787 ++  AVR32_MNEMONIC_LDA_W,
 1.29788 ++  AVR32_MNEMONIC_CALL,
 1.29789 ++  AVR32_MNEMONIC_PICOSVMAC,
 1.29790 ++  AVR32_MNEMONIC_PICOSVMUL,
 1.29791 ++  AVR32_MNEMONIC_PICOVMAC,
 1.29792 ++  AVR32_MNEMONIC_PICOVMUL,
 1.29793 ++  AVR32_MNEMONIC_PICOLD_D,
 1.29794 ++  AVR32_MNEMONIC_PICOLD_W,
 1.29795 ++  AVR32_MNEMONIC_PICOLDM_D,
 1.29796 ++  AVR32_MNEMONIC_PICOLDM_W,
 1.29797 ++  AVR32_MNEMONIC_PICOMV_D,
 1.29798 ++  AVR32_MNEMONIC_PICOMV_W,
 1.29799 ++  AVR32_MNEMONIC_PICOST_D,
 1.29800 ++  AVR32_MNEMONIC_PICOST_W,
 1.29801 ++  AVR32_MNEMONIC_PICOSTM_D,
 1.29802 ++  AVR32_MNEMONIC_PICOSTM_W,
 1.29803 ++  AVR32_MNEMONIC_RSUBEQ,
 1.29804 ++  AVR32_MNEMONIC_RSUBNE,
 1.29805 ++  AVR32_MNEMONIC_RSUBCC,
 1.29806 ++  AVR32_MNEMONIC_RSUBCS,
 1.29807 ++  AVR32_MNEMONIC_RSUBGE,
 1.29808 ++  AVR32_MNEMONIC_RSUBLT,
 1.29809 ++  AVR32_MNEMONIC_RSUBMI,
 1.29810 ++  AVR32_MNEMONIC_RSUBPL,
 1.29811 ++  AVR32_MNEMONIC_RSUBLS,
 1.29812 ++  AVR32_MNEMONIC_RSUBGT,
 1.29813 ++  AVR32_MNEMONIC_RSUBLE,
 1.29814 ++  AVR32_MNEMONIC_RSUBHI,
 1.29815 ++  AVR32_MNEMONIC_RSUBVS,
 1.29816 ++  AVR32_MNEMONIC_RSUBVC,
 1.29817 ++  AVR32_MNEMONIC_RSUBQS,
 1.29818 ++  AVR32_MNEMONIC_RSUBAL,
 1.29819 ++  AVR32_MNEMONIC_RSUBHS,
 1.29820 ++  AVR32_MNEMONIC_RSUBLO,
 1.29821 ++  AVR32_MNEMONIC_ADDEQ,
 1.29822 ++  AVR32_MNEMONIC_ADDNE,
 1.29823 ++  AVR32_MNEMONIC_ADDCC,
 1.29824 ++  AVR32_MNEMONIC_ADDCS,
 1.29825 ++  AVR32_MNEMONIC_ADDGE,
 1.29826 ++  AVR32_MNEMONIC_ADDLT,
 1.29827 ++  AVR32_MNEMONIC_ADDMI,
 1.29828 ++  AVR32_MNEMONIC_ADDPL,
 1.29829 ++  AVR32_MNEMONIC_ADDLS,
 1.29830 ++  AVR32_MNEMONIC_ADDGT,
 1.29831 ++  AVR32_MNEMONIC_ADDLE,
 1.29832 ++  AVR32_MNEMONIC_ADDHI,
 1.29833 ++  AVR32_MNEMONIC_ADDVS,
 1.29834 ++  AVR32_MNEMONIC_ADDVC,
 1.29835 ++  AVR32_MNEMONIC_ADDQS,
 1.29836 ++  AVR32_MNEMONIC_ADDAL,
 1.29837 ++  AVR32_MNEMONIC_ADDHS,
 1.29838 ++  AVR32_MNEMONIC_ADDLO,
 1.29839 ++  AVR32_MNEMONIC_ANDEQ,
 1.29840 ++  AVR32_MNEMONIC_ANDNE,
 1.29841 ++  AVR32_MNEMONIC_ANDCC,
 1.29842 ++  AVR32_MNEMONIC_ANDCS,
 1.29843 ++  AVR32_MNEMONIC_ANDGE,
 1.29844 ++  AVR32_MNEMONIC_ANDLT,
 1.29845 ++  AVR32_MNEMONIC_ANDMI,
 1.29846 ++  AVR32_MNEMONIC_ANDPL,
 1.29847 ++  AVR32_MNEMONIC_ANDLS,
 1.29848 ++  AVR32_MNEMONIC_ANDGT,
 1.29849 ++  AVR32_MNEMONIC_ANDLE,
 1.29850 ++  AVR32_MNEMONIC_ANDHI,
 1.29851 ++  AVR32_MNEMONIC_ANDVS,
 1.29852 ++  AVR32_MNEMONIC_ANDVC,
 1.29853 ++  AVR32_MNEMONIC_ANDQS,
 1.29854 ++  AVR32_MNEMONIC_ANDAL,
 1.29855 ++  AVR32_MNEMONIC_ANDHS,
 1.29856 ++  AVR32_MNEMONIC_ANDLO,
 1.29857 ++  AVR32_MNEMONIC_OREQ,
 1.29858 ++  AVR32_MNEMONIC_ORNE,
 1.29859 ++  AVR32_MNEMONIC_ORCC,
 1.29860 ++  AVR32_MNEMONIC_ORCS,
 1.29861 ++  AVR32_MNEMONIC_ORGE,
 1.29862 ++  AVR32_MNEMONIC_ORLT,
 1.29863 ++  AVR32_MNEMONIC_ORMI,
 1.29864 ++  AVR32_MNEMONIC_ORPL,
 1.29865 ++  AVR32_MNEMONIC_ORLS,
 1.29866 ++  AVR32_MNEMONIC_ORGT,
 1.29867 ++  AVR32_MNEMONIC_ORLE,
 1.29868 ++  AVR32_MNEMONIC_ORHI,
 1.29869 ++  AVR32_MNEMONIC_ORVS,
 1.29870 ++  AVR32_MNEMONIC_ORVC,
 1.29871 ++  AVR32_MNEMONIC_ORQS,
 1.29872 ++  AVR32_MNEMONIC_ORAL,
 1.29873 ++  AVR32_MNEMONIC_ORHS,
 1.29874 ++  AVR32_MNEMONIC_ORLO,
 1.29875 ++  AVR32_MNEMONIC_EOREQ,
 1.29876 ++  AVR32_MNEMONIC_EORNE,
 1.29877 ++  AVR32_MNEMONIC_EORCC,
 1.29878 ++  AVR32_MNEMONIC_EORCS,
 1.29879 ++  AVR32_MNEMONIC_EORGE,
 1.29880 ++  AVR32_MNEMONIC_EORLT,
 1.29881 ++  AVR32_MNEMONIC_EORMI,
 1.29882 ++  AVR32_MNEMONIC_EORPL,
 1.29883 ++  AVR32_MNEMONIC_EORLS,
 1.29884 ++  AVR32_MNEMONIC_EORGT,
 1.29885 ++  AVR32_MNEMONIC_EORLE,
 1.29886 ++  AVR32_MNEMONIC_EORHI,
 1.29887 ++  AVR32_MNEMONIC_EORVS,
 1.29888 ++  AVR32_MNEMONIC_EORVC,
 1.29889 ++  AVR32_MNEMONIC_EORQS,
 1.29890 ++  AVR32_MNEMONIC_EORAL,
 1.29891 ++  AVR32_MNEMONIC_EORHS,
 1.29892 ++  AVR32_MNEMONIC_EORLO,
 1.29893 ++  AVR32_MNEMONIC_LD_WEQ,
 1.29894 ++  AVR32_MNEMONIC_LD_WNE,
 1.29895 ++  AVR32_MNEMONIC_LD_WCC,
 1.29896 ++  AVR32_MNEMONIC_LD_WCS,
 1.29897 ++  AVR32_MNEMONIC_LD_WGE,
 1.29898 ++  AVR32_MNEMONIC_LD_WLT,
 1.29899 ++  AVR32_MNEMONIC_LD_WMI,
 1.29900 ++  AVR32_MNEMONIC_LD_WPL,
 1.29901 ++  AVR32_MNEMONIC_LD_WLS,
 1.29902 ++  AVR32_MNEMONIC_LD_WGT,
 1.29903 ++  AVR32_MNEMONIC_LD_WLE,
 1.29904 ++  AVR32_MNEMONIC_LD_WHI,
 1.29905 ++  AVR32_MNEMONIC_LD_WVS,
 1.29906 ++  AVR32_MNEMONIC_LD_WVC,
 1.29907 ++  AVR32_MNEMONIC_LD_WQS,
 1.29908 ++  AVR32_MNEMONIC_LD_WAL,
 1.29909 ++  AVR32_MNEMONIC_LD_WHS,
 1.29910 ++  AVR32_MNEMONIC_LD_WLO,
 1.29911 ++  AVR32_MNEMONIC_LD_SHEQ,
 1.29912 ++  AVR32_MNEMONIC_LD_SHNE,
 1.29913 ++  AVR32_MNEMONIC_LD_SHCC,
 1.29914 ++  AVR32_MNEMONIC_LD_SHCS,
 1.29915 ++  AVR32_MNEMONIC_LD_SHGE,
 1.29916 ++  AVR32_MNEMONIC_LD_SHLT,
 1.29917 ++  AVR32_MNEMONIC_LD_SHMI,
 1.29918 ++  AVR32_MNEMONIC_LD_SHPL,
 1.29919 ++  AVR32_MNEMONIC_LD_SHLS,
 1.29920 ++  AVR32_MNEMONIC_LD_SHGT,
 1.29921 ++  AVR32_MNEMONIC_LD_SHLE,
 1.29922 ++  AVR32_MNEMONIC_LD_SHHI,
 1.29923 ++  AVR32_MNEMONIC_LD_SHVS,
 1.29924 ++  AVR32_MNEMONIC_LD_SHVC,
 1.29925 ++  AVR32_MNEMONIC_LD_SHQS,
 1.29926 ++  AVR32_MNEMONIC_LD_SHAL,
 1.29927 ++  AVR32_MNEMONIC_LD_SHHS,
 1.29928 ++  AVR32_MNEMONIC_LD_SHLO,
 1.29929 ++  AVR32_MNEMONIC_LD_UHEQ,
 1.29930 ++  AVR32_MNEMONIC_LD_UHNE,
 1.29931 ++  AVR32_MNEMONIC_LD_UHCC,
 1.29932 ++  AVR32_MNEMONIC_LD_UHCS,
 1.29933 ++  AVR32_MNEMONIC_LD_UHGE,
 1.29934 ++  AVR32_MNEMONIC_LD_UHLT,
 1.29935 ++  AVR32_MNEMONIC_LD_UHMI,
 1.29936 ++  AVR32_MNEMONIC_LD_UHPL,
 1.29937 ++  AVR32_MNEMONIC_LD_UHLS,
 1.29938 ++  AVR32_MNEMONIC_LD_UHGT,
 1.29939 ++  AVR32_MNEMONIC_LD_UHLE,
 1.29940 ++  AVR32_MNEMONIC_LD_UHHI,
 1.29941 ++  AVR32_MNEMONIC_LD_UHVS,
 1.29942 ++  AVR32_MNEMONIC_LD_UHVC,
 1.29943 ++  AVR32_MNEMONIC_LD_UHQS,
 1.29944 ++  AVR32_MNEMONIC_LD_UHAL,
 1.29945 ++  AVR32_MNEMONIC_LD_UHHS,
 1.29946 ++  AVR32_MNEMONIC_LD_UHLO,
 1.29947 ++  AVR32_MNEMONIC_LD_SBEQ,
 1.29948 ++  AVR32_MNEMONIC_LD_SBNE,
 1.29949 ++  AVR32_MNEMONIC_LD_SBCC,
 1.29950 ++  AVR32_MNEMONIC_LD_SBCS,
 1.29951 ++  AVR32_MNEMONIC_LD_SBGE,
 1.29952 ++  AVR32_MNEMONIC_LD_SBLT,
 1.29953 ++  AVR32_MNEMONIC_LD_SBMI,
 1.29954 ++  AVR32_MNEMONIC_LD_SBPL,
 1.29955 ++  AVR32_MNEMONIC_LD_SBLS,
 1.29956 ++  AVR32_MNEMONIC_LD_SBGT,
 1.29957 ++  AVR32_MNEMONIC_LD_SBLE,
 1.29958 ++  AVR32_MNEMONIC_LD_SBHI,
 1.29959 ++  AVR32_MNEMONIC_LD_SBVS,
 1.29960 ++  AVR32_MNEMONIC_LD_SBVC,
 1.29961 ++  AVR32_MNEMONIC_LD_SBQS,
 1.29962 ++  AVR32_MNEMONIC_LD_SBAL,
 1.29963 ++  AVR32_MNEMONIC_LD_SBHS,
 1.29964 ++  AVR32_MNEMONIC_LD_SBLO,
 1.29965 ++  AVR32_MNEMONIC_LD_UBEQ,
 1.29966 ++  AVR32_MNEMONIC_LD_UBNE,
 1.29967 ++  AVR32_MNEMONIC_LD_UBCC,
 1.29968 ++  AVR32_MNEMONIC_LD_UBCS,
 1.29969 ++  AVR32_MNEMONIC_LD_UBGE,
 1.29970 ++  AVR32_MNEMONIC_LD_UBLT,
 1.29971 ++  AVR32_MNEMONIC_LD_UBMI,
 1.29972 ++  AVR32_MNEMONIC_LD_UBPL,
 1.29973 ++  AVR32_MNEMONIC_LD_UBLS,
 1.29974 ++  AVR32_MNEMONIC_LD_UBGT,
 1.29975 ++  AVR32_MNEMONIC_LD_UBLE,
 1.29976 ++  AVR32_MNEMONIC_LD_UBHI,
 1.29977 ++  AVR32_MNEMONIC_LD_UBVS,
 1.29978 ++  AVR32_MNEMONIC_LD_UBVC,
 1.29979 ++  AVR32_MNEMONIC_LD_UBQS,
 1.29980 ++  AVR32_MNEMONIC_LD_UBAL,
 1.29981 ++  AVR32_MNEMONIC_LD_UBHS,
 1.29982 ++  AVR32_MNEMONIC_LD_UBLO,
 1.29983 ++  AVR32_MNEMONIC_ST_WEQ,
 1.29984 ++  AVR32_MNEMONIC_ST_WNE,
 1.29985 ++  AVR32_MNEMONIC_ST_WCC,
 1.29986 ++  AVR32_MNEMONIC_ST_WCS,
 1.29987 ++  AVR32_MNEMONIC_ST_WGE,
 1.29988 ++  AVR32_MNEMONIC_ST_WLT,
 1.29989 ++  AVR32_MNEMONIC_ST_WMI,
 1.29990 ++  AVR32_MNEMONIC_ST_WPL,
 1.29991 ++  AVR32_MNEMONIC_ST_WLS,
 1.29992 ++  AVR32_MNEMONIC_ST_WGT,
 1.29993 ++  AVR32_MNEMONIC_ST_WLE,
 1.29994 ++  AVR32_MNEMONIC_ST_WHI,
 1.29995 ++  AVR32_MNEMONIC_ST_WVS,
 1.29996 ++  AVR32_MNEMONIC_ST_WVC,
 1.29997 ++  AVR32_MNEMONIC_ST_WQS,
 1.29998 ++  AVR32_MNEMONIC_ST_WAL,
 1.29999 ++  AVR32_MNEMONIC_ST_WHS,
 1.30000 ++  AVR32_MNEMONIC_ST_WLO,
 1.30001 ++  AVR32_MNEMONIC_ST_HEQ,
 1.30002 ++  AVR32_MNEMONIC_ST_HNE,
 1.30003 ++  AVR32_MNEMONIC_ST_HCC,
 1.30004 ++  AVR32_MNEMONIC_ST_HCS,
 1.30005 ++  AVR32_MNEMONIC_ST_HGE,
 1.30006 ++  AVR32_MNEMONIC_ST_HLT,
 1.30007 ++  AVR32_MNEMONIC_ST_HMI,
 1.30008 ++  AVR32_MNEMONIC_ST_HPL,
 1.30009 ++  AVR32_MNEMONIC_ST_HLS,
 1.30010 ++  AVR32_MNEMONIC_ST_HGT,
 1.30011 ++  AVR32_MNEMONIC_ST_HLE,
 1.30012 ++  AVR32_MNEMONIC_ST_HHI,
 1.30013 ++  AVR32_MNEMONIC_ST_HVS,
 1.30014 ++  AVR32_MNEMONIC_ST_HVC,
 1.30015 ++  AVR32_MNEMONIC_ST_HQS,
 1.30016 ++  AVR32_MNEMONIC_ST_HAL,
 1.30017 ++  AVR32_MNEMONIC_ST_HHS,
 1.30018 ++  AVR32_MNEMONIC_ST_HLO,
 1.30019 ++  AVR32_MNEMONIC_ST_BEQ,
 1.30020 ++  AVR32_MNEMONIC_ST_BNE,
 1.30021 ++  AVR32_MNEMONIC_ST_BCC,
 1.30022 ++  AVR32_MNEMONIC_ST_BCS,
 1.30023 ++  AVR32_MNEMONIC_ST_BGE,
 1.30024 ++  AVR32_MNEMONIC_ST_BLT,
 1.30025 ++  AVR32_MNEMONIC_ST_BMI,
 1.30026 ++  AVR32_MNEMONIC_ST_BPL,
 1.30027 ++  AVR32_MNEMONIC_ST_BLS,
 1.30028 ++  AVR32_MNEMONIC_ST_BGT,
 1.30029 ++  AVR32_MNEMONIC_ST_BLE,
 1.30030 ++  AVR32_MNEMONIC_ST_BHI,
 1.30031 ++  AVR32_MNEMONIC_ST_BVS,
 1.30032 ++  AVR32_MNEMONIC_ST_BVC,
 1.30033 ++  AVR32_MNEMONIC_ST_BQS,
 1.30034 ++  AVR32_MNEMONIC_ST_BAL,
 1.30035 ++  AVR32_MNEMONIC_ST_BHS,
 1.30036 ++  AVR32_MNEMONIC_ST_BLO,
 1.30037 ++  AVR32_MNEMONIC_MOVH,
 1.30038 ++  AVR32_MNEMONIC__END_
 1.30039 ++};
 1.30040 ++#define AVR32_NR_MNEMONICS AVR32_MNEMONIC__END_
 1.30041 ++
 1.30042 ++enum avr32_syntax_parser
 1.30043 ++  {
 1.30044 ++    AVR32_PARSER_NORMAL,
 1.30045 ++    AVR32_PARSER_ALIAS,
 1.30046 ++    AVR32_PARSER_LDA,
 1.30047 ++    AVR32_PARSER_CALL,
 1.30048 ++    AVR32_PARSER__END_
 1.30049 ++  };
 1.30050 ++#define AVR32_NR_PARSERS AVR32_PARSER__END_
 1.30051 +--- a/opcodes/configure.in
 1.30052 ++++ b/opcodes/configure.in
 1.30053 +@@ -158,6 +158,7 @@ if test x${all_targets} = xfalse ; then
 1.30054 + 	bfd_arc_arch)		ta="$ta arc-dis.lo arc-opc.lo arc-ext.lo" ;;
 1.30055 + 	bfd_arm_arch)		ta="$ta arm-dis.lo" ;;
 1.30056 + 	bfd_avr_arch)		ta="$ta avr-dis.lo" ;;
 1.30057 ++	bfd_avr32_arch)		ta="$ta avr32-asm.lo avr32-dis.lo avr32-opc.lo" ;;
 1.30058 + 	bfd_bfin_arch)		ta="$ta bfin-dis.lo" ;;
 1.30059 + 	bfd_cr16_arch)    	ta="$ta cr16-dis.lo cr16-opc.lo" ;;
 1.30060 + 	bfd_cris_arch)		ta="$ta cris-dis.lo cris-opc.lo cgen-bitset.lo" ;;
 1.30061 +@@ -216,7 +217,7 @@ if test x${all_targets} = xfalse ; then
 1.30062 + 				ta="$ta sh64-dis.lo sh64-opc.lo"
 1.30063 + 				archdefs="$archdefs -DINCLUDE_SHMEDIA"
 1.30064 + 				break;;
 1.30065 +-	    esac;
 1.30066 ++	    esac
 1.30067 + 	  done
 1.30068 + 				ta="$ta sh-dis.lo cgen-bitset.lo" ;;
 1.30069 + 	bfd_sparc_arch)		ta="$ta sparc-dis.lo sparc-opc.lo" ;;
 1.30070 +--- a/opcodes/disassemble.c
 1.30071 ++++ b/opcodes/disassemble.c
 1.30072 +@@ -27,6 +27,7 @@
 1.30073 + #define ARCH_arc
 1.30074 + #define ARCH_arm
 1.30075 + #define ARCH_avr
 1.30076 ++#define ARCH_avr32
 1.30077 + #define ARCH_bfin
 1.30078 + #define ARCH_cr16
 1.30079 + #define ARCH_cris
 1.30080 +@@ -128,6 +129,11 @@ disassembler (abfd)
 1.30081 +       disassemble = print_insn_avr;
 1.30082 +       break;
 1.30083 + #endif
 1.30084 ++#ifdef ARCH_avr32
 1.30085 ++    case bfd_arch_avr32:
 1.30086 ++      disassemble = print_insn_avr32;
 1.30087 ++      break;
 1.30088 ++#endif
 1.30089 + #ifdef ARCH_bfin
 1.30090 +     case bfd_arch_bfin:
 1.30091 +       disassemble = print_insn_bfin;
 1.30092 +@@ -346,9 +352,9 @@ disassembler (abfd)
 1.30093 + #ifdef ARCH_score
 1.30094 +     case bfd_arch_score:
 1.30095 +       if (bfd_big_endian (abfd))
 1.30096 +-        disassemble = print_insn_big_score;      
 1.30097 ++        disassemble = print_insn_big_score;
 1.30098 +       else
 1.30099 +-        disassemble = print_insn_little_score; 
 1.30100 ++        disassemble = print_insn_little_score;
 1.30101 +      break;
 1.30102 + #endif
 1.30103 + #ifdef ARCH_sh
 1.30104 +@@ -466,6 +472,9 @@ disassembler_usage (stream)
 1.30105 + #ifdef ARCH_i386
 1.30106 +   print_i386_disassembler_options (stream);
 1.30107 + #endif
 1.30108 ++#ifdef ARCH_avr32
 1.30109 ++  print_avr32_disassembler_options (stream);
 1.30110 ++#endif
 1.30111 + 
 1.30112 +   return;
 1.30113 + }
 1.30114 +--- a/opcodes/Makefile.am
 1.30115 ++++ b/opcodes/Makefile.am
 1.30116 +@@ -30,6 +30,7 @@ LIBIBERTY = ../libiberty/libiberty.a
 1.30117 + # Header files.
 1.30118 + HFILES = \
 1.30119 + 	cgen-ops.h cgen-types.h \
 1.30120 ++	avr32-asm.h avr32-opc.h \
 1.30121 + 	fr30-desc.h fr30-opc.h \
 1.30122 + 	frv-desc.h frv-opc.h \
 1.30123 + 	h8500-opc.h \
 1.30124 +@@ -63,6 +64,9 @@ CFILES = \
 1.30125 + 	arc-ext.c \
 1.30126 + 	arm-dis.c \
 1.30127 + 	avr-dis.c \
 1.30128 ++	avr32-asm.c \
 1.30129 ++	avr32-dis.c \
 1.30130 ++	avr32-opc.c \
 1.30131 + 	bfin-dis.c \
 1.30132 + 	cgen-asm.c \
 1.30133 + 	cgen-bitset.c \
 1.30134 +@@ -217,6 +221,9 @@ ALL_MACHINES = \
 1.30135 + 	arc-ext.lo \
 1.30136 + 	arm-dis.lo \
 1.30137 + 	avr-dis.lo \
 1.30138 ++	avr32-asm.lo \
 1.30139 ++	avr32-dis.lo \
 1.30140 ++	avr32-opc.lo \
 1.30141 + 	bfin-dis.lo \
 1.30142 + 	cgen-asm.lo \
 1.30143 + 	cgen-bitset.lo \
 1.30144 +@@ -674,6 +681,15 @@ avr-dis.lo: avr-dis.c sysdep.h config.h 
 1.30145 +   $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
 1.30146 +   opintl.h $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h \
 1.30147 +   $(INCDIR)/opcode/avr.h
 1.30148 ++avr32-asm.lo: avr32-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \
 1.30149 ++  $(BFD_H) $(INCDIR)/symcat.h avr32-opc.h opintl.h \
 1.30150 ++  $(INCDIR)/xregex.h $(INCDIR)/xregex2.h \
 1.30151 ++  $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h
 1.30152 ++avr32-dis.lo: avr32-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \
 1.30153 ++  $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
 1.30154 ++  avr32-opc.h opintl.h
 1.30155 ++avr32-opc.lo: avr32-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \
 1.30156 ++  $(BFD_H) $(INCDIR)/symcat.h avr32-opc.h $(INCDIR)/libiberty.h
 1.30157 + bfin-dis.lo: bfin-dis.c $(INCDIR)/opcode/bfin.h $(INCDIR)/dis-asm.h \
 1.30158 +   $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h
 1.30159 + cgen-asm.lo: cgen-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \
 1.30160 +--- a/bfd/bfd-in2.h
 1.30161 ++++ b/bfd/bfd-in2.h
 1.30162 +@@ -2017,6 +2017,11 @@ enum bfd_architecture
 1.30163 + #define bfd_mach_avr4          4
 1.30164 + #define bfd_mach_avr5          5
 1.30165 + #define bfd_mach_avr6          6
 1.30166 ++  bfd_arch_avr32,     /* Atmel AVR32 */
 1.30167 ++#define bfd_mach_avr32_ap      7000
 1.30168 ++#define bfd_mach_avr32_uc      3000
 1.30169 ++#define bfd_mach_avr32_ucr1    3001
 1.30170 ++#define bfd_mach_avr32_ucr2    3002
 1.30171 +   bfd_arch_bfin,        /* ADI Blackfin */
 1.30172 + #define bfd_mach_bfin          1
 1.30173 +   bfd_arch_cr16,       /* National Semiconductor CompactRISC (ie CR16). */
 1.30174 +@@ -3758,6 +3763,88 @@ instructions  */
 1.30175 + instructions  */
 1.30176 +   BFD_RELOC_AVR_6_ADIW,
 1.30177 + 
 1.30178 ++/* Difference between two labels: L2 - L1. The value of L1 is encoded
 1.30179 ++as sym + addend, while the initial difference after assembly is
 1.30180 ++inserted into the object file by the assembler.  */
 1.30181 ++  BFD_RELOC_AVR32_DIFF32,
 1.30182 ++  BFD_RELOC_AVR32_DIFF16,
 1.30183 ++  BFD_RELOC_AVR32_DIFF8,
 1.30184 ++
 1.30185 ++/* Reference to a symbol through the Global Offset Table. The linker
 1.30186 ++will allocate an entry for symbol in the GOT and insert the offset
 1.30187 ++of this entry as the relocation value.  */
 1.30188 ++  BFD_RELOC_AVR32_GOT32,
 1.30189 ++  BFD_RELOC_AVR32_GOT16,
 1.30190 ++  BFD_RELOC_AVR32_GOT8,
 1.30191 ++
 1.30192 ++/* Normal (non-pc-relative) code relocations. Alignment and signedness
 1.30193 ++is indicated by the suffixes. S means signed, U means unsigned. W
 1.30194 ++means word-aligned, H means halfword-aligned, neither means
 1.30195 ++byte-aligned (no alignment.) SUB5 is the same relocation as 16S.  */
 1.30196 ++  BFD_RELOC_AVR32_21S,
 1.30197 ++  BFD_RELOC_AVR32_16U,
 1.30198 ++  BFD_RELOC_AVR32_16S,
 1.30199 ++  BFD_RELOC_AVR32_SUB5,
 1.30200 ++  BFD_RELOC_AVR32_8S_EXT,
 1.30201 ++  BFD_RELOC_AVR32_8S,
 1.30202 ++  BFD_RELOC_AVR32_15S,
 1.30203 ++
 1.30204 ++/* PC-relative relocations are signed if neither 'U' nor 'S' is
 1.30205 ++specified. However, we explicitly tack on a 'B' to indicate no
 1.30206 ++alignment, to avoid confusion with data relocs. All of these resolve
 1.30207 ++to sym + addend - offset, except the one with 'N' (negated) suffix.
 1.30208 ++This particular one resolves to offset - sym - addend.  */
 1.30209 ++  BFD_RELOC_AVR32_22H_PCREL,
 1.30210 ++  BFD_RELOC_AVR32_18W_PCREL,
 1.30211 ++  BFD_RELOC_AVR32_16B_PCREL,
 1.30212 ++  BFD_RELOC_AVR32_16N_PCREL,
 1.30213 ++  BFD_RELOC_AVR32_14UW_PCREL,
 1.30214 ++  BFD_RELOC_AVR32_11H_PCREL,
 1.30215 ++  BFD_RELOC_AVR32_10UW_PCREL,
 1.30216 ++  BFD_RELOC_AVR32_9H_PCREL,
 1.30217 ++  BFD_RELOC_AVR32_9UW_PCREL,
 1.30218 ++
 1.30219 ++/* Subtract the link-time address of the GOT from (symbol + addend)
 1.30220 ++and insert the result.  */
 1.30221 ++  BFD_RELOC_AVR32_GOTPC,
 1.30222 ++
 1.30223 ++/* Reference to a symbol through the GOT. The linker will allocate an
 1.30224 ++entry for symbol in the GOT and insert the offset of this entry as
 1.30225 ++the relocation value. addend must be zero. As usual, 'S' means
 1.30226 ++signed, 'W' means word-aligned, etc.  */
 1.30227 ++  BFD_RELOC_AVR32_GOTCALL,
 1.30228 ++  BFD_RELOC_AVR32_LDA_GOT,
 1.30229 ++  BFD_RELOC_AVR32_GOT21S,
 1.30230 ++  BFD_RELOC_AVR32_GOT18SW,
 1.30231 ++  BFD_RELOC_AVR32_GOT16S,
 1.30232 ++
 1.30233 ++/* 32-bit constant pool entry. I don't think 8- and 16-bit entries make
 1.30234 ++a whole lot of sense.  */
 1.30235 ++  BFD_RELOC_AVR32_32_CPENT,
 1.30236 ++
 1.30237 ++/* Constant pool references. Some of these relocations are signed,
 1.30238 ++others are unsigned. It doesn't really matter, since the constant
 1.30239 ++pool always comes after the code that references it.  */
 1.30240 ++  BFD_RELOC_AVR32_CPCALL,
 1.30241 ++  BFD_RELOC_AVR32_16_CP,
 1.30242 ++  BFD_RELOC_AVR32_9W_CP,
 1.30243 ++
 1.30244 ++/* sym must be the absolute symbol. The addend specifies the alignment
 1.30245 ++order, e.g. if addend is 2, the linker must add padding so that the
 1.30246 ++next address is aligned to a 4-byte boundary.  */
 1.30247 ++  BFD_RELOC_AVR32_ALIGN,
 1.30248 ++
 1.30249 ++/* Code relocations that will never make it to the output file.  */
 1.30250 ++  BFD_RELOC_AVR32_14UW,
 1.30251 ++  BFD_RELOC_AVR32_10UW,
 1.30252 ++  BFD_RELOC_AVR32_10SW,
 1.30253 ++  BFD_RELOC_AVR32_STHH_W,
 1.30254 ++  BFD_RELOC_AVR32_7UW,
 1.30255 ++  BFD_RELOC_AVR32_6S,
 1.30256 ++  BFD_RELOC_AVR32_6UW,
 1.30257 ++  BFD_RELOC_AVR32_4UH,
 1.30258 ++  BFD_RELOC_AVR32_3U,
 1.30259 ++
 1.30260 + /* Direct 12 bit.  */
 1.30261 +   BFD_RELOC_390_12,
 1.30262 + 
 1.30263 +--- /dev/null
 1.30264 ++++ b/bfd/bfd-in3.h
 1.30265 +@@ -0,0 +1,5406 @@
 1.30266 ++/* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically 
 1.30267 ++   generated from "bfd-in.h", "init.c", "opncls.c", "libbfd.c", 
 1.30268 ++   "bfdio.c", "bfdwin.c", "section.c", "archures.c", "reloc.c", 
 1.30269 ++   "syms.c", "bfd.c", "archive.c", "corefile.c", "targets.c", "format.c", 
 1.30270 ++   "linker.c" and "simple.c".
 1.30271 ++   Run "make headers" in your build bfd/ to regenerate.  */
 1.30272 ++
 1.30273 ++/* Main header file for the bfd library -- portable access to object files.
 1.30274 ++
 1.30275 ++   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
 1.30276 ++   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 1.30277 ++   Free Software Foundation, Inc.
 1.30278 ++
 1.30279 ++   Contributed by Cygnus Support.
 1.30280 ++
 1.30281 ++   This file is part of BFD, the Binary File Descriptor library.
 1.30282 ++
 1.30283 ++   This program is free software; you can redistribute it and/or modify
 1.30284 ++   it under the terms of the GNU General Public License as published by
 1.30285 ++   the Free Software Foundation; either version 3 of the License, or
 1.30286 ++   (at your option) any later version.
 1.30287 ++
 1.30288 ++   This program is distributed in the hope that it will be useful,
 1.30289 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
 1.30290 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 1.30291 ++   GNU General Public License for more details.
 1.30292 ++
 1.30293 ++   You should have received a copy of the GNU General Public License
 1.30294 ++   along with this program; if not, write to the Free Software
 1.30295 ++   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 1.30296 ++
 1.30297 ++#ifndef __BFD_H_SEEN__
 1.30298 ++#define __BFD_H_SEEN__
 1.30299 ++
 1.30300 ++#ifdef __cplusplus
 1.30301 ++extern "C" {
 1.30302 ++#endif
 1.30303 ++
 1.30304 ++#include "ansidecl.h"
 1.30305 ++#include "symcat.h"
 1.30306 ++#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
 1.30307 ++#ifndef SABER
 1.30308 ++/* This hack is to avoid a problem with some strict ANSI C preprocessors.
 1.30309 ++   The problem is, "32_" is not a valid preprocessing token, and we don't
 1.30310 ++   want extra underscores (e.g., "nlm_32_").  The XCONCAT2 macro will
 1.30311 ++   cause the inner CONCAT2 macros to be evaluated first, producing
 1.30312 ++   still-valid pp-tokens.  Then the final concatenation can be done.  */
 1.30313 ++#undef CONCAT4
 1.30314 ++#define CONCAT4(a,b,c,d) XCONCAT2(CONCAT2(a,b),CONCAT2(c,d))
 1.30315 ++#endif
 1.30316 ++#endif
 1.30317 ++
 1.30318 ++/* This is a utility macro to handle the situation where the code
 1.30319 ++   wants to place a constant string into the code, followed by a
 1.30320 ++   comma and then the length of the string.  Doing this by hand
 1.30321 ++   is error prone, so using this macro is safer.  The macro will
 1.30322 ++   also safely handle the case where a NULL is passed as the arg.  */
 1.30323 ++#define STRING_COMMA_LEN(STR) (STR), ((STR) ? sizeof (STR) - 1 : 0)
 1.30324 ++/* Unfortunately it is not possible to use the STRING_COMMA_LEN macro
 1.30325 ++   to create the arguments to another macro, since the preprocessor
 1.30326 ++   will mis-count the number of arguments to the outer macro (by not
 1.30327 ++   evaluating STRING_COMMA_LEN and so missing the comma).  This is a
 1.30328 ++   problem for example when trying to use STRING_COMMA_LEN to build
 1.30329 ++   the arguments to the strncmp() macro.  Hence this alternative
 1.30330 ++   definition of strncmp is provided here.
 1.30331 ++   
 1.30332 ++   Note - these macros do NOT work if STR2 is not a constant string.  */
 1.30333 ++#define CONST_STRNEQ(STR1,STR2) (strncmp ((STR1), (STR2), sizeof (STR2) - 1) == 0)
 1.30334 ++  /* strcpy() can have a similar problem, but since we know we are
 1.30335 ++     copying a constant string, we can use memcpy which will be faster
 1.30336 ++     since there is no need to check for a NUL byte inside STR.  We
 1.30337 ++     can also save time if we do not need to copy the terminating NUL.  */
 1.30338 ++#define LITMEMCPY(DEST,STR2) memcpy ((DEST), (STR2), sizeof (STR2) - 1)
 1.30339 ++#define LITSTRCPY(DEST,STR2) memcpy ((DEST), (STR2), sizeof (STR2))
 1.30340 ++
 1.30341 ++
 1.30342 ++/* The word size used by BFD on the host.  This may be 64 with a 32
 1.30343 ++   bit target if the host is 64 bit, or if other 64 bit targets have
 1.30344 ++   been selected with --enable-targets, or if --enable-64-bit-bfd.  */
 1.30345 ++#define BFD_ARCH_SIZE 32
 1.30346 ++
 1.30347 ++/* The word size of the default bfd target.  */
 1.30348 ++#define BFD_DEFAULT_TARGET_SIZE 32
 1.30349 ++
 1.30350 ++#define BFD_HOST_64BIT_LONG 0
 1.30351 ++#define BFD_HOST_64BIT_LONG_LONG 0
 1.30352 ++#define BFD_HOST_LONG_LONG 1
 1.30353 ++#if 1
 1.30354 ++#define BFD_HOST_64_BIT long long
 1.30355 ++#define BFD_HOST_U_64_BIT unsigned long long
 1.30356 ++typedef BFD_HOST_64_BIT bfd_int64_t;
 1.30357 ++typedef BFD_HOST_U_64_BIT bfd_uint64_t;
 1.30358 ++#endif
 1.30359 ++
 1.30360 ++#if BFD_ARCH_SIZE >= 64
 1.30361 ++#define BFD64
 1.30362 ++#endif
 1.30363 ++
 1.30364 ++#ifndef INLINE
 1.30365 ++#if __GNUC__ >= 2
 1.30366 ++#define INLINE __inline__
 1.30367 ++#else
 1.30368 ++#define INLINE
 1.30369 ++#endif
 1.30370 ++#endif
 1.30371 ++
 1.30372 ++/* Declaring a type wide enough to hold a host long and a host pointer.  */
 1.30373 ++#define BFD_HOSTPTR_T	unsigned long
 1.30374 ++typedef BFD_HOSTPTR_T bfd_hostptr_t;
 1.30375 ++
 1.30376 ++/* Forward declaration.  */
 1.30377 ++typedef struct bfd bfd;
 1.30378 ++
 1.30379 ++/* Boolean type used in bfd.  Too many systems define their own
 1.30380 ++   versions of "boolean" for us to safely typedef a "boolean" of
 1.30381 ++   our own.  Using an enum for "bfd_boolean" has its own set of
 1.30382 ++   problems, with strange looking casts required to avoid warnings
 1.30383 ++   on some older compilers.  Thus we just use an int.
 1.30384 ++
 1.30385 ++   General rule: Functions which are bfd_boolean return TRUE on
 1.30386 ++   success and FALSE on failure (unless they're a predicate).  */
 1.30387 ++
 1.30388 ++typedef int bfd_boolean;
 1.30389 ++#undef FALSE
 1.30390 ++#undef TRUE
 1.30391 ++#define FALSE 0
 1.30392 ++#define TRUE 1
 1.30393 ++
 1.30394 ++#ifdef BFD64
 1.30395 ++
 1.30396 ++#ifndef BFD_HOST_64_BIT
 1.30397 ++ #error No 64 bit integer type available
 1.30398 ++#endif /* ! defined (BFD_HOST_64_BIT) */
 1.30399 ++
 1.30400 ++typedef BFD_HOST_U_64_BIT bfd_vma;
 1.30401 ++typedef BFD_HOST_64_BIT bfd_signed_vma;
 1.30402 ++typedef BFD_HOST_U_64_BIT bfd_size_type;
 1.30403 ++typedef BFD_HOST_U_64_BIT symvalue;
 1.30404 ++
 1.30405 ++#ifndef fprintf_vma
 1.30406 ++#if BFD_HOST_64BIT_LONG
 1.30407 ++#define sprintf_vma(s,x) sprintf (s, "%016lx", x)
 1.30408 ++#define fprintf_vma(f,x) fprintf (f, "%016lx", x)
 1.30409 ++#elif BFD_HOST_64BIT_LONG_LONG
 1.30410 ++#define sprintf_vma(s,x) sprintf (s, "%016llx", x)
 1.30411 ++#define fprintf_vma(f,x) fprintf (f, "%016llx", x)
 1.30412 ++#else
 1.30413 ++#define _bfd_int64_low(x) ((unsigned long) (((x) & 0xffffffff)))
 1.30414 ++#define _bfd_int64_high(x) ((unsigned long) (((x) >> 32) & 0xffffffff))
 1.30415 ++#define fprintf_vma(s,x) \
 1.30416 ++  fprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x))
 1.30417 ++#define sprintf_vma(s,x) \
 1.30418 ++  sprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x))
 1.30419 ++#endif
 1.30420 ++#endif
 1.30421 ++
 1.30422 ++#else /* not BFD64  */
 1.30423 ++
 1.30424 ++/* Represent a target address.  Also used as a generic unsigned type
 1.30425 ++   which is guaranteed to be big enough to hold any arithmetic types
 1.30426 ++   we need to deal with.  */
 1.30427 ++typedef unsigned long bfd_vma;
 1.30428 ++
 1.30429 ++/* A generic signed type which is guaranteed to be big enough to hold any
 1.30430 ++   arithmetic types we need to deal with.  Can be assumed to be compatible
 1.30431 ++   with bfd_vma in the same way that signed and unsigned ints are compatible
 1.30432 ++   (as parameters, in assignment, etc).  */
 1.30433 ++typedef long bfd_signed_vma;
 1.30434 ++
 1.30435 ++typedef unsigned long symvalue;
 1.30436 ++typedef unsigned long bfd_size_type;
 1.30437 ++
 1.30438 ++/* Print a bfd_vma x on stream s.  */
 1.30439 ++#define fprintf_vma(s,x) fprintf (s, "%08lx", x)
 1.30440 ++#define sprintf_vma(s,x) sprintf (s, "%08lx", x)
 1.30441 ++
 1.30442 ++#endif /* not BFD64  */
 1.30443 ++
 1.30444 ++#define HALF_BFD_SIZE_TYPE \
 1.30445 ++  (((bfd_size_type) 1) << (8 * sizeof (bfd_size_type) / 2))
 1.30446 ++
 1.30447 ++#ifndef BFD_HOST_64_BIT
 1.30448 ++/* Fall back on a 32 bit type.  The idea is to make these types always
 1.30449 ++   available for function return types, but in the case that
 1.30450 ++   BFD_HOST_64_BIT is undefined such a function should abort or
 1.30451 ++   otherwise signal an error.  */
 1.30452 ++typedef bfd_signed_vma bfd_int64_t;
 1.30453 ++typedef bfd_vma bfd_uint64_t;
 1.30454 ++#endif
 1.30455 ++
 1.30456 ++/* An offset into a file.  BFD always uses the largest possible offset
 1.30457 ++   based on the build time availability of fseek, fseeko, or fseeko64.  */
 1.30458 ++typedef BFD_HOST_64_BIT file_ptr;
 1.30459 ++typedef unsigned BFD_HOST_64_BIT ufile_ptr;
 1.30460 ++
 1.30461 ++extern void bfd_sprintf_vma (bfd *, char *, bfd_vma);
 1.30462 ++extern void bfd_fprintf_vma (bfd *, void *, bfd_vma);
 1.30463 ++
 1.30464 ++#define printf_vma(x) fprintf_vma(stdout,x)
 1.30465 ++#define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x)
 1.30466 ++
 1.30467 ++typedef unsigned int flagword;	/* 32 bits of flags */
 1.30468 ++typedef unsigned char bfd_byte;
 1.30469 ++
 1.30470 ++/* File formats.  */
 1.30471 ++
 1.30472 ++typedef enum bfd_format
 1.30473 ++{
 1.30474 ++  bfd_unknown = 0,	/* File format is unknown.  */
 1.30475 ++  bfd_object,		/* Linker/assembler/compiler output.  */
 1.30476 ++  bfd_archive,		/* Object archive file.  */
 1.30477 ++  bfd_core,		/* Core dump.  */
 1.30478 ++  bfd_type_end		/* Marks the end; don't use it!  */
 1.30479 ++}
 1.30480 ++bfd_format;
 1.30481 ++
 1.30482 ++/* Values that may appear in the flags field of a BFD.  These also
 1.30483 ++   appear in the object_flags field of the bfd_target structure, where
 1.30484 ++   they indicate the set of flags used by that backend (not all flags
 1.30485 ++   are meaningful for all object file formats) (FIXME: at the moment,
 1.30486 ++   the object_flags values have mostly just been copied from backend
 1.30487 ++   to another, and are not necessarily correct).  */
 1.30488 ++
 1.30489 ++/* No flags.  */
 1.30490 ++#define BFD_NO_FLAGS   	0x00
 1.30491 ++
 1.30492 ++/* BFD contains relocation entries.  */
 1.30493 ++#define HAS_RELOC   	0x01
 1.30494 ++
 1.30495 ++/* BFD is directly executable.  */
 1.30496 ++#define EXEC_P      	0x02
 1.30497 ++
 1.30498 ++/* BFD has line number information (basically used for F_LNNO in a
 1.30499 ++   COFF header).  */
 1.30500 ++#define HAS_LINENO  	0x04
 1.30501 ++
 1.30502 ++/* BFD has debugging information.  */
 1.30503 ++#define HAS_DEBUG   	0x08
 1.30504 ++
 1.30505 ++/* BFD has symbols.  */
 1.30506 ++#define HAS_SYMS    	0x10
 1.30507 ++
 1.30508 ++/* BFD has local symbols (basically used for F_LSYMS in a COFF
 1.30509 ++   header).  */
 1.30510 ++#define HAS_LOCALS  	0x20
 1.30511 ++
 1.30512 ++/* BFD is a dynamic object.  */
 1.30513 ++#define DYNAMIC     	0x40
 1.30514 ++
 1.30515 ++/* Text section is write protected (if D_PAGED is not set, this is
 1.30516 ++   like an a.out NMAGIC file) (the linker sets this by default, but
 1.30517 ++   clears it for -r or -N).  */
 1.30518 ++#define WP_TEXT     	0x80
 1.30519 ++
 1.30520 ++/* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
 1.30521 ++   linker sets this by default, but clears it for -r or -n or -N).  */
 1.30522 ++#define D_PAGED     	0x100
 1.30523 ++
 1.30524 ++/* BFD is relaxable (this means that bfd_relax_section may be able to
 1.30525 ++   do something) (sometimes bfd_relax_section can do something even if
 1.30526 ++   this is not set).  */
 1.30527 ++#define BFD_IS_RELAXABLE 0x200
 1.30528 ++
 1.30529 ++/* This may be set before writing out a BFD to request using a
 1.30530 ++   traditional format.  For example, this is used to request that when
 1.30531 ++   writing out an a.out object the symbols not be hashed to eliminate
 1.30532 ++   duplicates.  */
 1.30533 ++#define BFD_TRADITIONAL_FORMAT 0x400
 1.30534 ++
 1.30535 ++/* This flag indicates that the BFD contents are actually cached in
 1.30536 ++   memory.  If this is set, iostream points to a bfd_in_memory struct.  */
 1.30537 ++#define BFD_IN_MEMORY 0x800
 1.30538 ++
 1.30539 ++/* The sections in this BFD specify a memory page.  */
 1.30540 ++#define HAS_LOAD_PAGE 0x1000
 1.30541 ++
 1.30542 ++/* This BFD has been created by the linker and doesn't correspond
 1.30543 ++   to any input file.  */
 1.30544 ++#define BFD_LINKER_CREATED 0x2000
 1.30545 ++
 1.30546 ++/* Symbols and relocation.  */
 1.30547 ++
 1.30548 ++/* A count of carsyms (canonical archive symbols).  */
 1.30549 ++typedef unsigned long symindex;
 1.30550 ++
 1.30551 ++/* How to perform a relocation.  */
 1.30552 ++typedef const struct reloc_howto_struct reloc_howto_type;
 1.30553 ++
 1.30554 ++#define BFD_NO_MORE_SYMBOLS ((symindex) ~0)
 1.30555 ++
 1.30556 ++/* General purpose part of a symbol X;
 1.30557 ++   target specific parts are in libcoff.h, libaout.h, etc.  */
 1.30558 ++
 1.30559 ++#define bfd_get_section(x) ((x)->section)
 1.30560 ++#define bfd_get_output_section(x) ((x)->section->output_section)
 1.30561 ++#define bfd_set_section(x,y) ((x)->section) = (y)
 1.30562 ++#define bfd_asymbol_base(x) ((x)->section->vma)
 1.30563 ++#define bfd_asymbol_value(x) (bfd_asymbol_base(x) + (x)->value)
 1.30564 ++#define bfd_asymbol_name(x) ((x)->name)
 1.30565 ++/*Perhaps future: #define bfd_asymbol_bfd(x) ((x)->section->owner)*/
 1.30566 ++#define bfd_asymbol_bfd(x) ((x)->the_bfd)
 1.30567 ++#define bfd_asymbol_flavour(x) (bfd_asymbol_bfd(x)->xvec->flavour)
 1.30568 ++
 1.30569 ++/* A canonical archive symbol.  */
 1.30570 ++/* This is a type pun with struct ranlib on purpose!  */
 1.30571 ++typedef struct carsym
 1.30572 ++{
 1.30573 ++  char *name;
 1.30574 ++  file_ptr file_offset;	/* Look here to find the file.  */
 1.30575 ++}
 1.30576 ++carsym;			/* To make these you call a carsymogen.  */
 1.30577 ++
 1.30578 ++/* Used in generating armaps (archive tables of contents).
 1.30579 ++   Perhaps just a forward definition would do?  */
 1.30580 ++struct orl 			/* Output ranlib.  */
 1.30581 ++{
 1.30582 ++  char **name;		/* Symbol name.  */
 1.30583 ++  union
 1.30584 ++  {
 1.30585 ++    file_ptr pos;
 1.30586 ++    bfd *abfd;
 1.30587 ++  } u;			/* bfd* or file position.  */
 1.30588 ++  int namidx;		/* Index into string table.  */
 1.30589 ++};
 1.30590 ++
 1.30591 ++/* Linenumber stuff.  */
 1.30592 ++typedef struct lineno_cache_entry
 1.30593 ++{
 1.30594 ++  unsigned int line_number;	/* Linenumber from start of function.  */
 1.30595 ++  union
 1.30596 ++  {
 1.30597 ++    struct bfd_symbol *sym;	/* Function name.  */
 1.30598 ++    bfd_vma offset;	    		/* Offset into section.  */
 1.30599 ++  } u;
 1.30600 ++}
 1.30601 ++alent;
 1.30602 ++
 1.30603 ++/* Object and core file sections.  */
 1.30604 ++
 1.30605 ++#define	align_power(addr, align)	\
 1.30606 ++  (((addr) + ((bfd_vma) 1 << (align)) - 1) & ((bfd_vma) -1 << (align)))
 1.30607 ++
 1.30608 ++typedef struct bfd_section *sec_ptr;
 1.30609 ++
 1.30610 ++#define bfd_get_section_name(bfd, ptr) ((ptr)->name + 0)
 1.30611 ++#define bfd_get_section_vma(bfd, ptr) ((ptr)->vma + 0)
 1.30612 ++#define bfd_get_section_lma(bfd, ptr) ((ptr)->lma + 0)
 1.30613 ++#define bfd_get_section_alignment(bfd, ptr) ((ptr)->alignment_power + 0)
 1.30614 ++#define bfd_section_name(bfd, ptr) ((ptr)->name)
 1.30615 ++#define bfd_section_size(bfd, ptr) ((ptr)->size)
 1.30616 ++#define bfd_get_section_size(ptr) ((ptr)->size)
 1.30617 ++#define bfd_section_vma(bfd, ptr) ((ptr)->vma)
 1.30618 ++#define bfd_section_lma(bfd, ptr) ((ptr)->lma)
 1.30619 ++#define bfd_section_alignment(bfd, ptr) ((ptr)->alignment_power)
 1.30620 ++#define bfd_get_section_flags(bfd, ptr) ((ptr)->flags + 0)
 1.30621 ++#define bfd_get_section_userdata(bfd, ptr) ((ptr)->userdata)
 1.30622 ++
 1.30623 ++#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
 1.30624 ++
 1.30625 ++#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
 1.30626 ++#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
 1.30627 ++#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
 1.30628 ++/* Find the address one past the end of SEC.  */
 1.30629 ++#define bfd_get_section_limit(bfd, sec) \
 1.30630 ++  (((sec)->rawsize ? (sec)->rawsize : (sec)->size) \
 1.30631 ++   / bfd_octets_per_byte (bfd))
 1.30632 ++
 1.30633 ++/* Return TRUE if section has been discarded.  */
 1.30634 ++#define elf_discarded_section(sec)				\
 1.30635 ++  (!bfd_is_abs_section (sec)					\
 1.30636 ++   && bfd_is_abs_section ((sec)->output_section)		\
 1.30637 ++   && (sec)->sec_info_type != ELF_INFO_TYPE_MERGE		\
 1.30638 ++   && (sec)->sec_info_type != ELF_INFO_TYPE_JUST_SYMS)
 1.30639 ++
 1.30640 ++/* Forward define.  */
 1.30641 ++struct stat;
 1.30642 ++
 1.30643 ++typedef enum bfd_print_symbol
 1.30644 ++{
 1.30645 ++  bfd_print_symbol_name,
 1.30646 ++  bfd_print_symbol_more,
 1.30647 ++  bfd_print_symbol_all
 1.30648 ++} bfd_print_symbol_type;
 1.30649 ++
 1.30650 ++/* Information about a symbol that nm needs.  */
 1.30651 ++
 1.30652 ++typedef struct _symbol_info
 1.30653 ++{
 1.30654 ++  symvalue value;
 1.30655 ++  char type;
 1.30656 ++  const char *name;            /* Symbol name.  */
 1.30657 ++  unsigned char stab_type;     /* Stab type.  */
 1.30658 ++  char stab_other;             /* Stab other.  */
 1.30659 ++  short stab_desc;             /* Stab desc.  */
 1.30660 ++  const char *stab_name;       /* String for stab type.  */
 1.30661 ++} symbol_info;
 1.30662 ++
 1.30663 ++/* Get the name of a stabs type code.  */
 1.30664 ++
 1.30665 ++extern const char *bfd_get_stab_name (int);
 1.30666 ++
 1.30667 ++/* Hash table routines.  There is no way to free up a hash table.  */
 1.30668 ++
 1.30669 ++/* An element in the hash table.  Most uses will actually use a larger
 1.30670 ++   structure, and an instance of this will be the first field.  */
 1.30671 ++
 1.30672 ++struct bfd_hash_entry
 1.30673 ++{
 1.30674 ++  /* Next entry for this hash code.  */
 1.30675 ++  struct bfd_hash_entry *next;
 1.30676 ++  /* String being hashed.  */
 1.30677 ++  const char *string;
 1.30678 ++  /* Hash code.  This is the full hash code, not the index into the
 1.30679 ++     table.  */
 1.30680 ++  unsigned long hash;
 1.30681 ++};
 1.30682 ++
 1.30683 ++/* A hash table.  */
 1.30684 ++
 1.30685 ++struct bfd_hash_table
 1.30686 ++{
 1.30687 ++  /* The hash array.  */
 1.30688 ++  struct bfd_hash_entry **table;
 1.30689 ++  /* A function used to create new elements in the hash table.  The
 1.30690 ++     first entry is itself a pointer to an element.  When this
 1.30691 ++     function is first invoked, this pointer will be NULL.  However,
 1.30692 ++     having the pointer permits a hierarchy of method functions to be
 1.30693 ++     built each of which calls the function in the superclass.  Thus
 1.30694 ++     each function should be written to allocate a new block of memory
 1.30695 ++     only if the argument is NULL.  */
 1.30696 ++  struct bfd_hash_entry *(*newfunc)
 1.30697 ++    (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
 1.30698 ++   /* An objalloc for this hash table.  This is a struct objalloc *,
 1.30699 ++     but we use void * to avoid requiring the inclusion of objalloc.h.  */
 1.30700 ++  void *memory;
 1.30701 ++  /* The number of slots in the hash table.  */
 1.30702 ++  unsigned int size;
 1.30703 ++  /* The number of entries in the hash table.  */
 1.30704 ++  unsigned int count;
 1.30705 ++  /* The size of elements.  */
 1.30706 ++  unsigned int entsize;
 1.30707 ++  /* If non-zero, don't grow the hash table.  */
 1.30708 ++  unsigned int frozen:1;
 1.30709 ++};
 1.30710 ++
 1.30711 ++/* Initialize a hash table.  */
 1.30712 ++extern bfd_boolean bfd_hash_table_init
 1.30713 ++  (struct bfd_hash_table *,
 1.30714 ++   struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
 1.30715 ++			       struct bfd_hash_table *,
 1.30716 ++			       const char *),
 1.30717 ++   unsigned int);
 1.30718 ++
 1.30719 ++/* Initialize a hash table specifying a size.  */
 1.30720 ++extern bfd_boolean bfd_hash_table_init_n
 1.30721 ++  (struct bfd_hash_table *,
 1.30722 ++   struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
 1.30723 ++			       struct bfd_hash_table *,
 1.30724 ++			       const char *),
 1.30725 ++   unsigned int, unsigned int);
 1.30726 ++
 1.30727 ++/* Free up a hash table.  */
 1.30728 ++extern void bfd_hash_table_free
 1.30729 ++  (struct bfd_hash_table *);
 1.30730 ++
 1.30731 ++/* Look up a string in a hash table.  If CREATE is TRUE, a new entry
 1.30732 ++   will be created for this string if one does not already exist.  The
 1.30733 ++   COPY argument must be TRUE if this routine should copy the string
 1.30734 ++   into newly allocated memory when adding an entry.  */
 1.30735 ++extern struct bfd_hash_entry *bfd_hash_lookup
 1.30736 ++  (struct bfd_hash_table *, const char *, bfd_boolean create,
 1.30737 ++   bfd_boolean copy);
 1.30738 ++
 1.30739 ++/* Replace an entry in a hash table.  */
 1.30740 ++extern void bfd_hash_replace
 1.30741 ++  (struct bfd_hash_table *, struct bfd_hash_entry *old,
 1.30742 ++   struct bfd_hash_entry *nw);
 1.30743 ++
 1.30744 ++/* Base method for creating a hash table entry.  */
 1.30745 ++extern struct bfd_hash_entry *bfd_hash_newfunc
 1.30746 ++  (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
 1.30747 ++
 1.30748 ++/* Grab some space for a hash table entry.  */
 1.30749 ++extern void *bfd_hash_allocate
 1.30750 ++  (struct bfd_hash_table *, unsigned int);
 1.30751 ++
 1.30752 ++/* Traverse a hash table in a random order, calling a function on each
 1.30753 ++   element.  If the function returns FALSE, the traversal stops.  The
 1.30754 ++   INFO argument is passed to the function.  */
 1.30755 ++extern void bfd_hash_traverse
 1.30756 ++  (struct bfd_hash_table *,
 1.30757 ++   bfd_boolean (*) (struct bfd_hash_entry *, void *),
 1.30758 ++   void *info);
 1.30759 ++
 1.30760 ++/* Allows the default size of a hash table to be configured. New hash
 1.30761 ++   tables allocated using bfd_hash_table_init will be created with
 1.30762 ++   this size.  */
 1.30763 ++extern void bfd_hash_set_default_size (bfd_size_type);
 1.30764 ++
 1.30765 ++/* This structure is used to keep track of stabs in sections
 1.30766 ++   information while linking.  */
 1.30767 ++
 1.30768 ++struct stab_info
 1.30769 ++{
 1.30770 ++  /* A hash table used to hold stabs strings.  */
 1.30771 ++  struct bfd_strtab_hash *strings;
 1.30772 ++  /* The header file hash table.  */
 1.30773 ++  struct bfd_hash_table includes;
 1.30774 ++  /* The first .stabstr section.  */
 1.30775 ++  struct bfd_section *stabstr;
 1.30776 ++};
 1.30777 ++
 1.30778 ++#define COFF_SWAP_TABLE (void *) &bfd_coff_std_swap_table
 1.30779 ++
 1.30780 ++/* User program access to BFD facilities.  */
 1.30781 ++
 1.30782 ++/* Direct I/O routines, for programs which know more about the object
 1.30783 ++   file than BFD does.  Use higher level routines if possible.  */
 1.30784 ++
 1.30785 ++extern bfd_size_type bfd_bread (void *, bfd_size_type, bfd *);
 1.30786 ++extern bfd_size_type bfd_bwrite (const void *, bfd_size_type, bfd *);
 1.30787 ++extern int bfd_seek (bfd *, file_ptr, int);
 1.30788 ++extern file_ptr bfd_tell (bfd *);
 1.30789 ++extern int bfd_flush (bfd *);
 1.30790 ++extern int bfd_stat (bfd *, struct stat *);
 1.30791 ++
 1.30792 ++/* Deprecated old routines.  */
 1.30793 ++#if __GNUC__
 1.30794 ++#define bfd_read(BUF, ELTSIZE, NITEMS, ABFD)				\
 1.30795 ++  (warn_deprecated ("bfd_read", __FILE__, __LINE__, __FUNCTION__),	\
 1.30796 ++   bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 1.30797 ++#define bfd_write(BUF, ELTSIZE, NITEMS, ABFD)				\
 1.30798 ++  (warn_deprecated ("bfd_write", __FILE__, __LINE__, __FUNCTION__),	\
 1.30799 ++   bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 1.30800 ++#else
 1.30801 ++#define bfd_read(BUF, ELTSIZE, NITEMS, ABFD)				\
 1.30802 ++  (warn_deprecated ("bfd_read", (const char *) 0, 0, (const char *) 0), \
 1.30803 ++   bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 1.30804 ++#define bfd_write(BUF, ELTSIZE, NITEMS, ABFD)				\
 1.30805 ++  (warn_deprecated ("bfd_write", (const char *) 0, 0, (const char *) 0),\
 1.30806 ++   bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 1.30807 ++#endif
 1.30808 ++extern void warn_deprecated (const char *, const char *, int, const char *);
 1.30809 ++
 1.30810 ++/* Cast from const char * to char * so that caller can assign to
 1.30811 ++   a char * without a warning.  */
 1.30812 ++#define bfd_get_filename(abfd) ((char *) (abfd)->filename)
 1.30813 ++#define bfd_get_cacheable(abfd) ((abfd)->cacheable)
 1.30814 ++#define bfd_get_format(abfd) ((abfd)->format)
 1.30815 ++#define bfd_get_target(abfd) ((abfd)->xvec->name)
 1.30816 ++#define bfd_get_flavour(abfd) ((abfd)->xvec->flavour)
 1.30817 ++#define bfd_family_coff(abfd) \
 1.30818 ++  (bfd_get_flavour (abfd) == bfd_target_coff_flavour || \
 1.30819 ++   bfd_get_flavour (abfd) == bfd_target_xcoff_flavour)
 1.30820 ++#define bfd_big_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_BIG)
 1.30821 ++#define bfd_little_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_LITTLE)
 1.30822 ++#define bfd_header_big_endian(abfd) \
 1.30823 ++  ((abfd)->xvec->header_byteorder == BFD_ENDIAN_BIG)
 1.30824 ++#define bfd_header_little_endian(abfd) \
 1.30825 ++  ((abfd)->xvec->header_byteorder == BFD_ENDIAN_LITTLE)
 1.30826 ++#define bfd_get_file_flags(abfd) ((abfd)->flags)
 1.30827 ++#define bfd_applicable_file_flags(abfd) ((abfd)->xvec->object_flags)
 1.30828 ++#define bfd_applicable_section_flags(abfd) ((abfd)->xvec->section_flags)
 1.30829 ++#define bfd_my_archive(abfd) ((abfd)->my_archive)
 1.30830 ++#define bfd_has_map(abfd) ((abfd)->has_armap)
 1.30831 ++
 1.30832 ++#define bfd_valid_reloc_types(abfd) ((abfd)->xvec->valid_reloc_types)
 1.30833 ++#define bfd_usrdata(abfd) ((abfd)->usrdata)
 1.30834 ++
 1.30835 ++#define bfd_get_start_address(abfd) ((abfd)->start_address)
 1.30836 ++#define bfd_get_symcount(abfd) ((abfd)->symcount)
 1.30837 ++#define bfd_get_outsymbols(abfd) ((abfd)->outsymbols)
 1.30838 ++#define bfd_count_sections(abfd) ((abfd)->section_count)
 1.30839 ++
 1.30840 ++#define bfd_get_dynamic_symcount(abfd) ((abfd)->dynsymcount)
 1.30841 ++
 1.30842 ++#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
 1.30843 ++
 1.30844 ++#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
 1.30845 ++
 1.30846 ++extern bfd_boolean bfd_cache_close
 1.30847 ++  (bfd *abfd);
 1.30848 ++/* NB: This declaration should match the autogenerated one in libbfd.h.  */
 1.30849 ++
 1.30850 ++extern bfd_boolean bfd_cache_close_all (void);
 1.30851 ++
 1.30852 ++extern bfd_boolean bfd_record_phdr
 1.30853 ++  (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma,
 1.30854 ++   bfd_boolean, bfd_boolean, unsigned int, struct bfd_section **);
 1.30855 ++
 1.30856 ++/* Byte swapping routines.  */
 1.30857 ++
 1.30858 ++bfd_uint64_t bfd_getb64 (const void *);
 1.30859 ++bfd_uint64_t bfd_getl64 (const void *);
 1.30860 ++bfd_int64_t bfd_getb_signed_64 (const void *);
 1.30861 ++bfd_int64_t bfd_getl_signed_64 (const void *);
 1.30862 ++bfd_vma bfd_getb32 (const void *);
 1.30863 ++bfd_vma bfd_getl32 (const void *);
 1.30864 ++bfd_signed_vma bfd_getb_signed_32 (const void *);
 1.30865 ++bfd_signed_vma bfd_getl_signed_32 (const void *);
 1.30866 ++bfd_vma bfd_getb16 (const void *);
 1.30867 ++bfd_vma bfd_getl16 (const void *);
 1.30868 ++bfd_signed_vma bfd_getb_signed_16 (const void *);
 1.30869 ++bfd_signed_vma bfd_getl_signed_16 (const void *);
 1.30870 ++void bfd_putb64 (bfd_uint64_t, void *);
 1.30871 ++void bfd_putl64 (bfd_uint64_t, void *);
 1.30872 ++void bfd_putb32 (bfd_vma, void *);
 1.30873 ++void bfd_putl32 (bfd_vma, void *);
 1.30874 ++void bfd_putb16 (bfd_vma, void *);
 1.30875 ++void bfd_putl16 (bfd_vma, void *);
 1.30876 ++
 1.30877 ++/* Byte swapping routines which take size and endiannes as arguments.  */
 1.30878 ++
 1.30879 ++bfd_uint64_t bfd_get_bits (const void *, int, bfd_boolean);
 1.30880 ++void bfd_put_bits (bfd_uint64_t, void *, int, bfd_boolean);
 1.30881 ++
 1.30882 ++extern bfd_boolean bfd_section_already_linked_table_init (void);
 1.30883 ++extern void bfd_section_already_linked_table_free (void);
 1.30884 ++
 1.30885 ++/* Externally visible ECOFF routines.  */
 1.30886 ++
 1.30887 ++#if defined(__STDC__) || defined(ALMOST_STDC)
 1.30888 ++struct ecoff_debug_info;
 1.30889 ++struct ecoff_debug_swap;
 1.30890 ++struct ecoff_extr;
 1.30891 ++struct bfd_symbol;
 1.30892 ++struct bfd_link_info;
 1.30893 ++struct bfd_link_hash_entry;
 1.30894 ++struct bfd_elf_version_tree;
 1.30895 ++#endif
 1.30896 ++extern bfd_vma bfd_ecoff_get_gp_value
 1.30897 ++  (bfd * abfd);
 1.30898 ++extern bfd_boolean bfd_ecoff_set_gp_value
 1.30899 ++  (bfd *abfd, bfd_vma gp_value);
 1.30900 ++extern bfd_boolean bfd_ecoff_set_regmasks
 1.30901 ++  (bfd *abfd, unsigned long gprmask, unsigned long fprmask,
 1.30902 ++   unsigned long *cprmask);
 1.30903 ++extern void *bfd_ecoff_debug_init
 1.30904 ++  (bfd *output_bfd, struct ecoff_debug_info *output_debug,
 1.30905 ++   const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
 1.30906 ++extern void bfd_ecoff_debug_free
 1.30907 ++  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
 1.30908 ++   const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
 1.30909 ++extern bfd_boolean bfd_ecoff_debug_accumulate
 1.30910 ++  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
 1.30911 ++   const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
 1.30912 ++   struct ecoff_debug_info *input_debug,
 1.30913 ++   const struct ecoff_debug_swap *input_swap, struct bfd_link_info *);
 1.30914 ++extern bfd_boolean bfd_ecoff_debug_accumulate_other
 1.30915 ++  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
 1.30916 ++   const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
 1.30917 ++   struct bfd_link_info *);
 1.30918 ++extern bfd_boolean bfd_ecoff_debug_externals
 1.30919 ++  (bfd *abfd, struct ecoff_debug_info *debug,
 1.30920 ++   const struct ecoff_debug_swap *swap, bfd_boolean relocatable,
 1.30921 ++   bfd_boolean (*get_extr) (struct bfd_symbol *, struct ecoff_extr *),
 1.30922 ++   void (*set_index) (struct bfd_symbol *, bfd_size_type));
 1.30923 ++extern bfd_boolean bfd_ecoff_debug_one_external
 1.30924 ++  (bfd *abfd, struct ecoff_debug_info *debug,
 1.30925 ++   const struct ecoff_debug_swap *swap, const char *name,
 1.30926 ++   struct ecoff_extr *esym);
 1.30927 ++extern bfd_size_type bfd_ecoff_debug_size
 1.30928 ++  (bfd *abfd, struct ecoff_debug_info *debug,
 1.30929 ++   const struct ecoff_debug_swap *swap);
 1.30930 ++extern bfd_boolean bfd_ecoff_write_debug
 1.30931 ++  (bfd *abfd, struct ecoff_debug_info *debug,
 1.30932 ++   const struct ecoff_debug_swap *swap, file_ptr where);
 1.30933 ++extern bfd_boolean bfd_ecoff_write_accumulated_debug
 1.30934 ++  (void *handle, bfd *abfd, struct ecoff_debug_info *debug,
 1.30935 ++   const struct ecoff_debug_swap *swap,
 1.30936 ++   struct bfd_link_info *info, file_ptr where);
 1.30937 ++
 1.30938 ++/* Externally visible ELF routines.  */
 1.30939 ++
 1.30940 ++struct bfd_link_needed_list
 1.30941 ++{
 1.30942 ++  struct bfd_link_needed_list *next;
 1.30943 ++  bfd *by;
 1.30944 ++  const char *name;
 1.30945 ++};
 1.30946 ++
 1.30947 ++enum dynamic_lib_link_class {
 1.30948 ++  DYN_NORMAL = 0,
 1.30949 ++  DYN_AS_NEEDED = 1,
 1.30950 ++  DYN_DT_NEEDED = 2,
 1.30951 ++  DYN_NO_ADD_NEEDED = 4,
 1.30952 ++  DYN_NO_NEEDED = 8
 1.30953 ++};
 1.30954 ++
 1.30955 ++enum notice_asneeded_action {
 1.30956 ++  notice_as_needed,
 1.30957 ++  notice_not_needed,
 1.30958 ++  notice_needed
 1.30959 ++};
 1.30960 ++
 1.30961 ++extern bfd_boolean bfd_elf_record_link_assignment
 1.30962 ++  (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
 1.30963 ++   bfd_boolean);
 1.30964 ++extern struct bfd_link_needed_list *bfd_elf_get_needed_list
 1.30965 ++  (bfd *, struct bfd_link_info *);
 1.30966 ++extern bfd_boolean bfd_elf_get_bfd_needed_list
 1.30967 ++  (bfd *, struct bfd_link_needed_list **);
 1.30968 ++extern bfd_boolean bfd_elf_size_dynamic_sections
 1.30969 ++  (bfd *, const char *, const char *, const char *, const char * const *,
 1.30970 ++   struct bfd_link_info *, struct bfd_section **,
 1.30971 ++   struct bfd_elf_version_tree *);
 1.30972 ++extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr
 1.30973 ++  (bfd *, struct bfd_link_info *);
 1.30974 ++extern void bfd_elf_set_dt_needed_name
 1.30975 ++  (bfd *, const char *);
 1.30976 ++extern const char *bfd_elf_get_dt_soname
 1.30977 ++  (bfd *);
 1.30978 ++extern void bfd_elf_set_dyn_lib_class
 1.30979 ++  (bfd *, enum dynamic_lib_link_class);
 1.30980 ++extern int bfd_elf_get_dyn_lib_class
 1.30981 ++  (bfd *);
 1.30982 ++extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
 1.30983 ++  (bfd *, struct bfd_link_info *);
 1.30984 ++extern bfd_boolean bfd_elf_discard_info
 1.30985 ++  (bfd *, struct bfd_link_info *);
 1.30986 ++extern unsigned int _bfd_elf_default_action_discarded
 1.30987 ++  (struct bfd_section *);
 1.30988 ++
 1.30989 ++/* Return an upper bound on the number of bytes required to store a
 1.30990 ++   copy of ABFD's program header table entries.  Return -1 if an error
 1.30991 ++   occurs; bfd_get_error will return an appropriate code.  */
 1.30992 ++extern long bfd_get_elf_phdr_upper_bound
 1.30993 ++  (bfd *abfd);
 1.30994 ++
 1.30995 ++/* Copy ABFD's program header table entries to *PHDRS.  The entries
 1.30996 ++   will be stored as an array of Elf_Internal_Phdr structures, as
 1.30997 ++   defined in include/elf/internal.h.  To find out how large the
 1.30998 ++   buffer needs to be, call bfd_get_elf_phdr_upper_bound.
 1.30999 ++
 1.31000 ++   Return the number of program header table entries read, or -1 if an
 1.31001 ++   error occurs; bfd_get_error will return an appropriate code.  */
 1.31002 ++extern int bfd_get_elf_phdrs
 1.31003 ++  (bfd *abfd, void *phdrs);
 1.31004 ++
 1.31005 ++/* Create a new BFD as if by bfd_openr.  Rather than opening a file,
 1.31006 ++   reconstruct an ELF file by reading the segments out of remote memory
 1.31007 ++   based on the ELF file header at EHDR_VMA and the ELF program headers it
 1.31008 ++   points to.  If not null, *LOADBASEP is filled in with the difference
 1.31009 ++   between the VMAs from which the segments were read, and the VMAs the
 1.31010 ++   file headers (and hence BFD's idea of each section's VMA) put them at.
 1.31011 ++
 1.31012 ++   The function TARGET_READ_MEMORY is called to copy LEN bytes from the
 1.31013 ++   remote memory at target address VMA into the local buffer at MYADDR; it
 1.31014 ++   should return zero on success or an `errno' code on failure.  TEMPL must
 1.31015 ++   be a BFD for an ELF target with the word size and byte order found in
 1.31016 ++   the remote memory.  */
 1.31017 ++extern bfd *bfd_elf_bfd_from_remote_memory
 1.31018 ++  (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
 1.31019 ++   int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, int len));
 1.31020 ++
 1.31021 ++/* Return the arch_size field of an elf bfd, or -1 if not elf.  */
 1.31022 ++extern int bfd_get_arch_size
 1.31023 ++  (bfd *);
 1.31024 ++
 1.31025 ++/* Return TRUE if address "naturally" sign extends, or -1 if not elf.  */
 1.31026 ++extern int bfd_get_sign_extend_vma
 1.31027 ++  (bfd *);
 1.31028 ++
 1.31029 ++extern struct bfd_section *_bfd_elf_tls_setup
 1.31030 ++  (bfd *, struct bfd_link_info *);
 1.31031 ++
 1.31032 ++extern void _bfd_fix_excluded_sec_syms
 1.31033 ++  (bfd *, struct bfd_link_info *);
 1.31034 ++
 1.31035 ++extern unsigned bfd_m68k_mach_to_features (int);
 1.31036 ++
 1.31037 ++extern int bfd_m68k_features_to_mach (unsigned);
 1.31038 ++
 1.31039 ++extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
 1.31040 ++  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
 1.31041 ++   char **);
 1.31042 ++
 1.31043 ++extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
 1.31044 ++  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
 1.31045 ++   char **);
 1.31046 ++
 1.31047 ++/* SunOS shared library support routines for the linker.  */
 1.31048 ++
 1.31049 ++extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
 1.31050 ++  (bfd *, struct bfd_link_info *);
 1.31051 ++extern bfd_boolean bfd_sunos_record_link_assignment
 1.31052 ++  (bfd *, struct bfd_link_info *, const char *);
 1.31053 ++extern bfd_boolean bfd_sunos_size_dynamic_sections
 1.31054 ++  (bfd *, struct bfd_link_info *, struct bfd_section **,
 1.31055 ++   struct bfd_section **, struct bfd_section **);
 1.31056 ++
 1.31057 ++/* Linux shared library support routines for the linker.  */
 1.31058 ++
 1.31059 ++extern bfd_boolean bfd_i386linux_size_dynamic_sections
 1.31060 ++  (bfd *, struct bfd_link_info *);
 1.31061 ++extern bfd_boolean bfd_m68klinux_size_dynamic_sections
 1.31062 ++  (bfd *, struct bfd_link_info *);
 1.31063 ++extern bfd_boolean bfd_sparclinux_size_dynamic_sections
 1.31064 ++  (bfd *, struct bfd_link_info *);
 1.31065 ++
 1.31066 ++/* mmap hacks */
 1.31067 ++
 1.31068 ++struct _bfd_window_internal;
 1.31069 ++typedef struct _bfd_window_internal bfd_window_internal;
 1.31070 ++
 1.31071 ++typedef struct _bfd_window
 1.31072 ++{
 1.31073 ++  /* What the user asked for.  */
 1.31074 ++  void *data;
 1.31075 ++  bfd_size_type size;
 1.31076 ++  /* The actual window used by BFD.  Small user-requested read-only
 1.31077 ++     regions sharing a page may share a single window into the object
 1.31078 ++     file.  Read-write versions shouldn't until I've fixed things to
 1.31079 ++     keep track of which portions have been claimed by the
 1.31080 ++     application; don't want to give the same region back when the
 1.31081 ++     application wants two writable copies!  */
 1.31082 ++  struct _bfd_window_internal *i;
 1.31083 ++}
 1.31084 ++bfd_window;
 1.31085 ++
 1.31086 ++extern void bfd_init_window
 1.31087 ++  (bfd_window *);
 1.31088 ++extern void bfd_free_window
 1.31089 ++  (bfd_window *);
 1.31090 ++extern bfd_boolean bfd_get_file_window
 1.31091 ++  (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
 1.31092 ++
 1.31093 ++/* XCOFF support routines for the linker.  */
 1.31094 ++
 1.31095 ++extern bfd_boolean bfd_xcoff_link_record_set
 1.31096 ++  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type);
 1.31097 ++extern bfd_boolean bfd_xcoff_import_symbol
 1.31098 ++  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma,
 1.31099 ++   const char *, const char *, const char *, unsigned int);
 1.31100 ++extern bfd_boolean bfd_xcoff_export_symbol
 1.31101 ++  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
 1.31102 ++extern bfd_boolean bfd_xcoff_link_count_reloc
 1.31103 ++  (bfd *, struct bfd_link_info *, const char *);
 1.31104 ++extern bfd_boolean bfd_xcoff_record_link_assignment
 1.31105 ++  (bfd *, struct bfd_link_info *, const char *);
 1.31106 ++extern bfd_boolean bfd_xcoff_size_dynamic_sections
 1.31107 ++  (bfd *, struct bfd_link_info *, const char *, const char *,
 1.31108 ++   unsigned long, unsigned long, unsigned long, bfd_boolean,
 1.31109 ++   int, bfd_boolean, bfd_boolean, struct bfd_section **, bfd_boolean);
 1.31110 ++extern bfd_boolean bfd_xcoff_link_generate_rtinit
 1.31111 ++  (bfd *, const char *, const char *, bfd_boolean);
 1.31112 ++
 1.31113 ++/* XCOFF support routines for ar.  */
 1.31114 ++extern bfd_boolean bfd_xcoff_ar_archive_set_magic
 1.31115 ++  (bfd *, char *);
 1.31116 ++
 1.31117 ++/* Externally visible COFF routines.  */
 1.31118 ++
 1.31119 ++#if defined(__STDC__) || defined(ALMOST_STDC)
 1.31120 ++struct internal_syment;
 1.31121 ++union internal_auxent;
 1.31122 ++#endif
 1.31123 ++
 1.31124 ++extern bfd_boolean bfd_coff_get_syment
 1.31125 ++  (bfd *, struct bfd_symbol *, struct internal_syment *);
 1.31126 ++
 1.31127 ++extern bfd_boolean bfd_coff_get_auxent
 1.31128 ++  (bfd *, struct bfd_symbol *, int, union internal_auxent *);
 1.31129 ++
 1.31130 ++extern bfd_boolean bfd_coff_set_symbol_class
 1.31131 ++  (bfd *, struct bfd_symbol *, unsigned int);
 1.31132 ++
 1.31133 ++extern bfd_boolean bfd_m68k_coff_create_embedded_relocs
 1.31134 ++  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **);
 1.31135 ++
 1.31136 ++/* ARM VFP11 erratum workaround support.  */
 1.31137 ++typedef enum
 1.31138 ++{
 1.31139 ++  BFD_ARM_VFP11_FIX_DEFAULT,
 1.31140 ++  BFD_ARM_VFP11_FIX_NONE,
 1.31141 ++  BFD_ARM_VFP11_FIX_SCALAR,
 1.31142 ++  BFD_ARM_VFP11_FIX_VECTOR
 1.31143 ++} bfd_arm_vfp11_fix;
 1.31144 ++
 1.31145 ++extern void bfd_elf32_arm_init_maps
 1.31146 ++  (bfd *);
 1.31147 ++
 1.31148 ++extern void bfd_elf32_arm_set_vfp11_fix
 1.31149 ++  (bfd *, struct bfd_link_info *);
 1.31150 ++
 1.31151 ++extern bfd_boolean bfd_elf32_arm_vfp11_erratum_scan
 1.31152 ++  (bfd *, struct bfd_link_info *);
 1.31153 ++
 1.31154 ++extern void bfd_elf32_arm_vfp11_fix_veneer_locations
 1.31155 ++  (bfd *, struct bfd_link_info *);
 1.31156 ++
 1.31157 ++/* ARM Interworking support.  Called from linker.  */
 1.31158 ++extern bfd_boolean bfd_arm_allocate_interworking_sections
 1.31159 ++  (struct bfd_link_info *);
 1.31160 ++
 1.31161 ++extern bfd_boolean bfd_arm_process_before_allocation
 1.31162 ++  (bfd *, struct bfd_link_info *, int);
 1.31163 ++
 1.31164 ++extern bfd_boolean bfd_arm_get_bfd_for_interworking
 1.31165 ++  (bfd *, struct bfd_link_info *);
 1.31166 ++
 1.31167 ++/* PE ARM Interworking support.  Called from linker.  */
 1.31168 ++extern bfd_boolean bfd_arm_pe_allocate_interworking_sections
 1.31169 ++  (struct bfd_link_info *);
 1.31170 ++
 1.31171 ++extern bfd_boolean bfd_arm_pe_process_before_allocation
 1.31172 ++  (bfd *, struct bfd_link_info *, int);
 1.31173 ++
 1.31174 ++extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking
 1.31175 ++  (bfd *, struct bfd_link_info *);
 1.31176 ++
 1.31177 ++/* ELF ARM Interworking support.  Called from linker.  */
 1.31178 ++extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
 1.31179 ++  (struct bfd_link_info *);
 1.31180 ++
 1.31181 ++extern bfd_boolean bfd_elf32_arm_process_before_allocation
 1.31182 ++  (bfd *, struct bfd_link_info *);
 1.31183 ++
 1.31184 ++void bfd_elf32_arm_set_target_relocs
 1.31185 ++  (bfd *, struct bfd_link_info *, int, char *, int, int, bfd_arm_vfp11_fix,
 1.31186 ++   int, int);
 1.31187 ++
 1.31188 ++extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
 1.31189 ++  (bfd *, struct bfd_link_info *);
 1.31190 ++
 1.31191 ++extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
 1.31192 ++  (bfd *, struct bfd_link_info *);
 1.31193 ++
 1.31194 ++/* ELF ARM mapping symbol support */
 1.31195 ++#define BFD_ARM_SPECIAL_SYM_TYPE_MAP	(1 << 0)
 1.31196 ++#define BFD_ARM_SPECIAL_SYM_TYPE_TAG	(1 << 1)
 1.31197 ++#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER  (1 << 2)
 1.31198 ++#define BFD_ARM_SPECIAL_SYM_TYPE_ANY	(~0)
 1.31199 ++extern bfd_boolean bfd_is_arm_special_symbol_name
 1.31200 ++  (const char * name, int type);
 1.31201 ++
 1.31202 ++extern void bfd_elf32_arm_set_byteswap_code (struct bfd_link_info *, int);
 1.31203 ++
 1.31204 ++/* ARM Note section processing.  */
 1.31205 ++extern bfd_boolean bfd_arm_merge_machines
 1.31206 ++  (bfd *, bfd *);
 1.31207 ++
 1.31208 ++extern bfd_boolean bfd_arm_update_notes
 1.31209 ++  (bfd *, const char *);
 1.31210 ++
 1.31211 ++extern unsigned int bfd_arm_get_mach_from_notes
 1.31212 ++  (bfd *, const char *);
 1.31213 ++
 1.31214 ++/* TI COFF load page support.  */
 1.31215 ++extern void bfd_ticoff_set_section_load_page
 1.31216 ++  (struct bfd_section *, int);
 1.31217 ++
 1.31218 ++extern int bfd_ticoff_get_section_load_page
 1.31219 ++  (struct bfd_section *);
 1.31220 ++
 1.31221 ++/* H8/300 functions.  */
 1.31222 ++extern bfd_vma bfd_h8300_pad_address
 1.31223 ++  (bfd *, bfd_vma);
 1.31224 ++
 1.31225 ++/* IA64 Itanium code generation.  Called from linker.  */
 1.31226 ++extern void bfd_elf32_ia64_after_parse
 1.31227 ++  (int);
 1.31228 ++
 1.31229 ++extern void bfd_elf64_ia64_after_parse
 1.31230 ++  (int);
 1.31231 ++
 1.31232 ++/* This structure is used for a comdat section, as in PE.  A comdat
 1.31233 ++   section is associated with a particular symbol.  When the linker
 1.31234 ++   sees a comdat section, it keeps only one of the sections with a
 1.31235 ++   given name and associated with a given symbol.  */
 1.31236 ++
 1.31237 ++struct coff_comdat_info
 1.31238 ++{
 1.31239 ++  /* The name of the symbol associated with a comdat section.  */
 1.31240 ++  const char *name;
 1.31241 ++
 1.31242 ++  /* The local symbol table index of the symbol associated with a
 1.31243 ++     comdat section.  This is only meaningful to the object file format
 1.31244 ++     specific code; it is not an index into the list returned by
 1.31245 ++     bfd_canonicalize_symtab.  */
 1.31246 ++  long symbol;
 1.31247 ++};
 1.31248 ++
 1.31249 ++extern struct coff_comdat_info *bfd_coff_get_comdat_section
 1.31250 ++  (bfd *, struct bfd_section *);
 1.31251 ++
 1.31252 ++/* Extracted from init.c.  */
 1.31253 ++void bfd_init (void);
 1.31254 ++
 1.31255 ++/* Extracted from opncls.c.  */
 1.31256 ++bfd *bfd_fopen (const char *filename, const char *target,
 1.31257 ++    const char *mode, int fd);
 1.31258 ++
 1.31259 ++bfd *bfd_openr (const char *filename, const char *target);
 1.31260 ++
 1.31261 ++bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
 1.31262 ++
 1.31263 ++bfd *bfd_openstreamr (const char *, const char *, void *);
 1.31264 ++
 1.31265 ++bfd *bfd_openr_iovec (const char *filename, const char *target,
 1.31266 ++    void *(*open) (struct bfd *nbfd,
 1.31267 ++    void *open_closure),
 1.31268 ++    void *open_closure,
 1.31269 ++    file_ptr (*pread) (struct bfd *nbfd,
 1.31270 ++    void *stream,
 1.31271 ++    void *buf,
 1.31272 ++    file_ptr nbytes,
 1.31273 ++    file_ptr offset),
 1.31274 ++    int (*close) (struct bfd *nbfd,
 1.31275 ++    void *stream),
 1.31276 ++    int (*stat) (struct bfd *abfd,
 1.31277 ++    void *stream,
 1.31278 ++    struct stat *sb));
 1.31279 ++
 1.31280 ++bfd *bfd_openw (const char *filename, const char *target);
 1.31281 ++
 1.31282 ++bfd_boolean bfd_close (bfd *abfd);
 1.31283 ++
 1.31284 ++bfd_boolean bfd_close_all_done (bfd *);
 1.31285 ++
 1.31286 ++bfd *bfd_create (const char *filename, bfd *templ);
 1.31287 ++
 1.31288 ++bfd_boolean bfd_make_writable (bfd *abfd);
 1.31289 ++
 1.31290 ++bfd_boolean bfd_make_readable (bfd *abfd);
 1.31291 ++
 1.31292 ++unsigned long bfd_calc_gnu_debuglink_crc32
 1.31293 ++   (unsigned long crc, const unsigned char *buf, bfd_size_type len);
 1.31294 ++
 1.31295 ++char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
 1.31296 ++
 1.31297 ++struct bfd_section *bfd_create_gnu_debuglink_section
 1.31298 ++   (bfd *abfd, const char *filename);
 1.31299 ++
 1.31300 ++bfd_boolean bfd_fill_in_gnu_debuglink_section
 1.31301 ++   (bfd *abfd, struct bfd_section *sect, const char *filename);
 1.31302 ++
 1.31303 ++/* Extracted from libbfd.c.  */
 1.31304 ++
 1.31305 ++/* Byte swapping macros for user section data.  */
 1.31306 ++
 1.31307 ++#define bfd_put_8(abfd, val, ptr) \
 1.31308 ++  ((void) (*((unsigned char *) (ptr)) = (val) & 0xff))
 1.31309 ++#define bfd_put_signed_8 \
 1.31310 ++  bfd_put_8
 1.31311 ++#define bfd_get_8(abfd, ptr) \
 1.31312 ++  (*(unsigned char *) (ptr) & 0xff)
 1.31313 ++#define bfd_get_signed_8(abfd, ptr) \
 1.31314 ++  (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
 1.31315 ++
 1.31316 ++#define bfd_put_16(abfd, val, ptr) \
 1.31317 ++  BFD_SEND (abfd, bfd_putx16, ((val),(ptr)))
 1.31318 ++#define bfd_put_signed_16 \
 1.31319 ++  bfd_put_16
 1.31320 ++#define bfd_get_16(abfd, ptr) \
 1.31321 ++  BFD_SEND (abfd, bfd_getx16, (ptr))
 1.31322 ++#define bfd_get_signed_16(abfd, ptr) \
 1.31323 ++  BFD_SEND (abfd, bfd_getx_signed_16, (ptr))
 1.31324 ++
 1.31325 ++#define bfd_put_32(abfd, val, ptr) \
 1.31326 ++  BFD_SEND (abfd, bfd_putx32, ((val),(ptr)))
 1.31327 ++#define bfd_put_signed_32 \
 1.31328 ++  bfd_put_32
 1.31329 ++#define bfd_get_32(abfd, ptr) \
 1.31330 ++  BFD_SEND (abfd, bfd_getx32, (ptr))
 1.31331 ++#define bfd_get_signed_32(abfd, ptr) \
 1.31332 ++  BFD_SEND (abfd, bfd_getx_signed_32, (ptr))
 1.31333 ++
 1.31334 ++#define bfd_put_64(abfd, val, ptr) \
 1.31335 ++  BFD_SEND (abfd, bfd_putx64, ((val), (ptr)))
 1.31336 ++#define bfd_put_signed_64 \
 1.31337 ++  bfd_put_64
 1.31338 ++#define bfd_get_64(abfd, ptr) \
 1.31339 ++  BFD_SEND (abfd, bfd_getx64, (ptr))
 1.31340 ++#define bfd_get_signed_64(abfd, ptr) \
 1.31341 ++  BFD_SEND (abfd, bfd_getx_signed_64, (ptr))
 1.31342 ++
 1.31343 ++#define bfd_get(bits, abfd, ptr)                       \
 1.31344 ++  ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr)       \
 1.31345 ++   : (bits) == 16 ? bfd_get_16 (abfd, ptr)             \
 1.31346 ++   : (bits) == 32 ? bfd_get_32 (abfd, ptr)             \
 1.31347 ++   : (bits) == 64 ? bfd_get_64 (abfd, ptr)             \
 1.31348 ++   : (abort (), (bfd_vma) - 1))
 1.31349 ++
 1.31350 ++#define bfd_put(bits, abfd, val, ptr)                  \
 1.31351 ++  ((bits) == 8 ? bfd_put_8  (abfd, val, ptr)           \
 1.31352 ++   : (bits) == 16 ? bfd_put_16 (abfd, val, ptr)                \
 1.31353 ++   : (bits) == 32 ? bfd_put_32 (abfd, val, ptr)                \
 1.31354 ++   : (bits) == 64 ? bfd_put_64 (abfd, val, ptr)                \
 1.31355 ++   : (abort (), (void) 0))
 1.31356 ++
 1.31357 ++
 1.31358 ++/* Byte swapping macros for file header data.  */
 1.31359 ++
 1.31360 ++#define bfd_h_put_8(abfd, val, ptr) \
 1.31361 ++  bfd_put_8 (abfd, val, ptr)
 1.31362 ++#define bfd_h_put_signed_8(abfd, val, ptr) \
 1.31363 ++  bfd_put_8 (abfd, val, ptr)
 1.31364 ++#define bfd_h_get_8(abfd, ptr) \
 1.31365 ++  bfd_get_8 (abfd, ptr)
 1.31366 ++#define bfd_h_get_signed_8(abfd, ptr) \
 1.31367 ++  bfd_get_signed_8 (abfd, ptr)
 1.31368 ++
 1.31369 ++#define bfd_h_put_16(abfd, val, ptr) \
 1.31370 ++  BFD_SEND (abfd, bfd_h_putx16, (val, ptr))
 1.31371 ++#define bfd_h_put_signed_16 \
 1.31372 ++  bfd_h_put_16
 1.31373 ++#define bfd_h_get_16(abfd, ptr) \
 1.31374 ++  BFD_SEND (abfd, bfd_h_getx16, (ptr))
 1.31375 ++#define bfd_h_get_signed_16(abfd, ptr) \
 1.31376 ++  BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr))
 1.31377 ++
 1.31378 ++#define bfd_h_put_32(abfd, val, ptr) \
 1.31379 ++  BFD_SEND (abfd, bfd_h_putx32, (val, ptr))
 1.31380 ++#define bfd_h_put_signed_32 \
 1.31381 ++  bfd_h_put_32
 1.31382 ++#define bfd_h_get_32(abfd, ptr) \
 1.31383 ++  BFD_SEND (abfd, bfd_h_getx32, (ptr))
 1.31384 ++#define bfd_h_get_signed_32(abfd, ptr) \
 1.31385 ++  BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr))
 1.31386 ++
 1.31387 ++#define bfd_h_put_64(abfd, val, ptr) \
 1.31388 ++  BFD_SEND (abfd, bfd_h_putx64, (val, ptr))
 1.31389 ++#define bfd_h_put_signed_64 \
 1.31390 ++  bfd_h_put_64
 1.31391 ++#define bfd_h_get_64(abfd, ptr) \
 1.31392 ++  BFD_SEND (abfd, bfd_h_getx64, (ptr))
 1.31393 ++#define bfd_h_get_signed_64(abfd, ptr) \
 1.31394 ++  BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr))
 1.31395 ++
 1.31396 ++/* Aliases for the above, which should eventually go away.  */
 1.31397 ++
 1.31398 ++#define H_PUT_64  bfd_h_put_64
 1.31399 ++#define H_PUT_32  bfd_h_put_32
 1.31400 ++#define H_PUT_16  bfd_h_put_16
 1.31401 ++#define H_PUT_8   bfd_h_put_8
 1.31402 ++#define H_PUT_S64 bfd_h_put_signed_64
 1.31403 ++#define H_PUT_S32 bfd_h_put_signed_32
 1.31404 ++#define H_PUT_S16 bfd_h_put_signed_16
 1.31405 ++#define H_PUT_S8  bfd_h_put_signed_8
 1.31406 ++#define H_GET_64  bfd_h_get_64
 1.31407 ++#define H_GET_32  bfd_h_get_32
 1.31408 ++#define H_GET_16  bfd_h_get_16
 1.31409 ++#define H_GET_8   bfd_h_get_8
 1.31410 ++#define H_GET_S64 bfd_h_get_signed_64
 1.31411 ++#define H_GET_S32 bfd_h_get_signed_32
 1.31412 ++#define H_GET_S16 bfd_h_get_signed_16
 1.31413 ++#define H_GET_S8  bfd_h_get_signed_8
 1.31414 ++
 1.31415 ++
 1.31416 ++/* Extracted from bfdio.c.  */
 1.31417 ++long bfd_get_mtime (bfd *abfd);
 1.31418 ++
 1.31419 ++file_ptr bfd_get_size (bfd *abfd);
 1.31420 ++
 1.31421 ++/* Extracted from bfdwin.c.  */
 1.31422 ++/* Extracted from section.c.  */
 1.31423 ++typedef struct bfd_section
 1.31424 ++{
 1.31425 ++  /* The name of the section; the name isn't a copy, the pointer is
 1.31426 ++     the same as that passed to bfd_make_section.  */
 1.31427 ++  const char *name;
 1.31428 ++
 1.31429 ++  /* A unique sequence number.  */
 1.31430 ++  int id;
 1.31431 ++
 1.31432 ++  /* Which section in the bfd; 0..n-1 as sections are created in a bfd.  */
 1.31433 ++  int index;
 1.31434 ++
 1.31435 ++  /* The next section in the list belonging to the BFD, or NULL.  */
 1.31436 ++  struct bfd_section *next;
 1.31437 ++
 1.31438 ++  /* The previous section in the list belonging to the BFD, or NULL.  */
 1.31439 ++  struct bfd_section *prev;
 1.31440 ++
 1.31441 ++  /* The field flags contains attributes of the section. Some
 1.31442 ++     flags are read in from the object file, and some are
 1.31443 ++     synthesized from other information.  */
 1.31444 ++  flagword flags;
 1.31445 ++
 1.31446 ++#define SEC_NO_FLAGS   0x000
 1.31447 ++
 1.31448 ++  /* Tells the OS to allocate space for this section when loading.
 1.31449 ++     This is clear for a section containing debug information only.  */
 1.31450 ++#define SEC_ALLOC      0x001
 1.31451 ++
 1.31452 ++  /* Tells the OS to load the section from the file when loading.
 1.31453 ++     This is clear for a .bss section.  */
 1.31454 ++#define SEC_LOAD       0x002
 1.31455 ++
 1.31456 ++  /* The section contains data still to be relocated, so there is
 1.31457 ++     some relocation information too.  */
 1.31458 ++#define SEC_RELOC      0x004
 1.31459 ++
 1.31460 ++  /* A signal to the OS that the section contains read only data.  */
 1.31461 ++#define SEC_READONLY   0x008
 1.31462 ++
 1.31463 ++  /* The section contains code only.  */
 1.31464 ++#define SEC_CODE       0x010
 1.31465 ++
 1.31466 ++  /* The section contains data only.  */
 1.31467 ++#define SEC_DATA       0x020
 1.31468 ++
 1.31469 ++  /* The section will reside in ROM.  */
 1.31470 ++#define SEC_ROM        0x040
 1.31471 ++
 1.31472 ++  /* The section contains constructor information. This section
 1.31473 ++     type is used by the linker to create lists of constructors and
 1.31474 ++     destructors used by <<g++>>. When a back end sees a symbol
 1.31475 ++     which should be used in a constructor list, it creates a new
 1.31476 ++     section for the type of name (e.g., <<__CTOR_LIST__>>), attaches
 1.31477 ++     the symbol to it, and builds a relocation. To build the lists
 1.31478 ++     of constructors, all the linker has to do is catenate all the
 1.31479 ++     sections called <<__CTOR_LIST__>> and relocate the data
 1.31480 ++     contained within - exactly the operations it would peform on
 1.31481 ++     standard data.  */
 1.31482 ++#define SEC_CONSTRUCTOR 0x080
 1.31483 ++
 1.31484 ++  /* The section has contents - a data section could be
 1.31485 ++     <<SEC_ALLOC>> | <<SEC_HAS_CONTENTS>>; a debug section could be
 1.31486 ++     <<SEC_HAS_CONTENTS>>  */
 1.31487 ++#define SEC_HAS_CONTENTS 0x100
 1.31488 ++
 1.31489 ++  /* An instruction to the linker to not output the section
 1.31490 ++     even if it has information which would normally be written.  */
 1.31491 ++#define SEC_NEVER_LOAD 0x200
 1.31492 ++
 1.31493 ++  /* The section contains thread local data.  */
 1.31494 ++#define SEC_THREAD_LOCAL 0x400
 1.31495 ++
 1.31496 ++  /* The section has GOT references.  This flag is only for the
 1.31497 ++     linker, and is currently only used by the elf32-hppa back end.
 1.31498 ++     It will be set if global offset table references were detected
 1.31499 ++     in this section, which indicate to the linker that the section
 1.31500 ++     contains PIC code, and must be handled specially when doing a
 1.31501 ++     static link.  */
 1.31502 ++#define SEC_HAS_GOT_REF 0x800
 1.31503 ++
 1.31504 ++  /* The section contains common symbols (symbols may be defined
 1.31505 ++     multiple times, the value of a symbol is the amount of
 1.31506 ++     space it requires, and the largest symbol value is the one
 1.31507 ++     used).  Most targets have exactly one of these (which we
 1.31508 ++     translate to bfd_com_section_ptr), but ECOFF has two.  */
 1.31509 ++#define SEC_IS_COMMON 0x1000
 1.31510 ++
 1.31511 ++  /* The section contains only debugging information.  For
 1.31512 ++     example, this is set for ELF .debug and .stab sections.
 1.31513 ++     strip tests this flag to see if a section can be
 1.31514 ++     discarded.  */
 1.31515 ++#define SEC_DEBUGGING 0x2000
 1.31516 ++
 1.31517 ++  /* The contents of this section are held in memory pointed to
 1.31518 ++     by the contents field.  This is checked by bfd_get_section_contents,
 1.31519 ++     and the data is retrieved from memory if appropriate.  */
 1.31520 ++#define SEC_IN_MEMORY 0x4000
 1.31521 ++
 1.31522 ++  /* The contents of this section are to be excluded by the
 1.31523 ++     linker for executable and shared objects unless those
 1.31524 ++     objects are to be further relocated.  */
 1.31525 ++#define SEC_EXCLUDE 0x8000
 1.31526 ++
 1.31527 ++  /* The contents of this section are to be sorted based on the sum of
 1.31528 ++     the symbol and addend values specified by the associated relocation
 1.31529 ++     entries.  Entries without associated relocation entries will be
 1.31530 ++     appended to the end of the section in an unspecified order.  */
 1.31531 ++#define SEC_SORT_ENTRIES 0x10000
 1.31532 ++
 1.31533 ++  /* When linking, duplicate sections of the same name should be
 1.31534 ++     discarded, rather than being combined into a single section as
 1.31535 ++     is usually done.  This is similar to how common symbols are
 1.31536 ++     handled.  See SEC_LINK_DUPLICATES below.  */
 1.31537 ++#define SEC_LINK_ONCE 0x20000
 1.31538 ++
 1.31539 ++  /* If SEC_LINK_ONCE is set, this bitfield describes how the linker
 1.31540 ++     should handle duplicate sections.  */
 1.31541 ++#define SEC_LINK_DUPLICATES 0x40000
 1.31542 ++
 1.31543 ++  /* This value for SEC_LINK_DUPLICATES means that duplicate
 1.31544 ++     sections with the same name should simply be discarded.  */
 1.31545 ++#define SEC_LINK_DUPLICATES_DISCARD 0x0
 1.31546 ++
 1.31547 ++  /* This value for SEC_LINK_DUPLICATES means that the linker
 1.31548 ++     should warn if there are any duplicate sections, although
 1.31549 ++     it should still only link one copy.  */
 1.31550 ++#define SEC_LINK_DUPLICATES_ONE_ONLY 0x80000
 1.31551 ++
 1.31552 ++  /* This value for SEC_LINK_DUPLICATES means that the linker
 1.31553 ++     should warn if any duplicate sections are a different size.  */
 1.31554 ++#define SEC_LINK_DUPLICATES_SAME_SIZE 0x100000
 1.31555 ++
 1.31556 ++  /* This value for SEC_LINK_DUPLICATES means that the linker
 1.31557 ++     should warn if any duplicate sections contain different
 1.31558 ++     contents.  */
 1.31559 ++#define SEC_LINK_DUPLICATES_SAME_CONTENTS \
 1.31560 ++  (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE)
 1.31561 ++
 1.31562 ++  /* This section was created by the linker as part of dynamic
 1.31563 ++     relocation or other arcane processing.  It is skipped when
 1.31564 ++     going through the first-pass output, trusting that someone
 1.31565 ++     else up the line will take care of it later.  */
 1.31566 ++#define SEC_LINKER_CREATED 0x200000
 1.31567 ++
 1.31568 ++  /* This section should not be subject to garbage collection.
 1.31569 ++     Also set to inform the linker that this section should not be
 1.31570 ++     listed in the link map as discarded.  */
 1.31571 ++#define SEC_KEEP 0x400000
 1.31572 ++
 1.31573 ++  /* This section contains "short" data, and should be placed
 1.31574 ++     "near" the GP.  */
 1.31575 ++#define SEC_SMALL_DATA 0x800000
 1.31576 ++
 1.31577 ++  /* Attempt to merge identical entities in the section.
 1.31578 ++     Entity size is given in the entsize field.  */
 1.31579 ++#define SEC_MERGE 0x1000000
 1.31580 ++
 1.31581 ++  /* If given with SEC_MERGE, entities to merge are zero terminated
 1.31582 ++     strings where entsize specifies character size instead of fixed
 1.31583 ++     size entries.  */
 1.31584 ++#define SEC_STRINGS 0x2000000
 1.31585 ++
 1.31586 ++  /* This section contains data about section groups.  */
 1.31587 ++#define SEC_GROUP 0x4000000
 1.31588 ++
 1.31589 ++  /* The section is a COFF shared library section.  This flag is
 1.31590 ++     only for the linker.  If this type of section appears in
 1.31591 ++     the input file, the linker must copy it to the output file
 1.31592 ++     without changing the vma or size.  FIXME: Although this
 1.31593 ++     was originally intended to be general, it really is COFF
 1.31594 ++     specific (and the flag was renamed to indicate this).  It
 1.31595 ++     might be cleaner to have some more general mechanism to
 1.31596 ++     allow the back end to control what the linker does with
 1.31597 ++     sections.  */
 1.31598 ++#define SEC_COFF_SHARED_LIBRARY 0x10000000
 1.31599 ++
 1.31600 ++  /* This section contains data which may be shared with other
 1.31601 ++     executables or shared objects. This is for COFF only.  */
 1.31602 ++#define SEC_COFF_SHARED 0x20000000
 1.31603 ++
 1.31604 ++  /* When a section with this flag is being linked, then if the size of
 1.31605 ++     the input section is less than a page, it should not cross a page
 1.31606 ++     boundary.  If the size of the input section is one page or more,
 1.31607 ++     it should be aligned on a page boundary.  This is for TI
 1.31608 ++     TMS320C54X only.  */
 1.31609 ++#define SEC_TIC54X_BLOCK 0x40000000
 1.31610 ++
 1.31611 ++  /* Conditionally link this section; do not link if there are no
 1.31612 ++     references found to any symbol in the section.  This is for TI
 1.31613 ++     TMS320C54X only.  */
 1.31614 ++#define SEC_TIC54X_CLINK 0x80000000
 1.31615 ++
 1.31616 ++  /*  End of section flags.  */
 1.31617 ++
 1.31618 ++  /* Some internal packed boolean fields.  */
 1.31619 ++
 1.31620 ++  /* See the vma field.  */
 1.31621 ++  unsigned int user_set_vma : 1;
 1.31622 ++
 1.31623 ++  /* A mark flag used by some of the linker backends.  */
 1.31624 ++  unsigned int linker_mark : 1;
 1.31625 ++
 1.31626 ++  /* Another mark flag used by some of the linker backends.  Set for
 1.31627 ++     output sections that have an input section.  */
 1.31628 ++  unsigned int linker_has_input : 1;
 1.31629 ++
 1.31630 ++  /* Mark flags used by some linker backends for garbage collection.  */
 1.31631 ++  unsigned int gc_mark : 1;
 1.31632 ++  unsigned int gc_mark_from_eh : 1;
 1.31633 ++
 1.31634 ++  /* The following flags are used by the ELF linker. */
 1.31635 ++
 1.31636 ++  /* Mark sections which have been allocated to segments.  */
 1.31637 ++  unsigned int segment_mark : 1;
 1.31638 ++
 1.31639 ++  /* Type of sec_info information.  */
 1.31640 ++  unsigned int sec_info_type:3;
 1.31641 ++#define ELF_INFO_TYPE_NONE      0
 1.31642 ++#define ELF_INFO_TYPE_STABS     1
 1.31643 ++#define ELF_INFO_TYPE_MERGE     2
 1.31644 ++#define ELF_INFO_TYPE_EH_FRAME  3
 1.31645 ++#define ELF_INFO_TYPE_JUST_SYMS 4
 1.31646 ++
 1.31647 ++  /* Nonzero if this section uses RELA relocations, rather than REL.  */
 1.31648 ++  unsigned int use_rela_p:1;
 1.31649 ++
 1.31650 ++  /* Bits used by various backends.  The generic code doesn't touch
 1.31651 ++     these fields.  */
 1.31652 ++
 1.31653 ++  /* Nonzero if this section has TLS related relocations.  */
 1.31654 ++  unsigned int has_tls_reloc:1;
 1.31655 ++
 1.31656 ++  /* Nonzero if this section has a gp reloc.  */
 1.31657 ++  unsigned int has_gp_reloc:1;
 1.31658 ++
 1.31659 ++  /* Nonzero if this section needs the relax finalize pass.  */
 1.31660 ++  unsigned int need_finalize_relax:1;
 1.31661 ++
 1.31662 ++  /* Whether relocations have been processed.  */
 1.31663 ++  unsigned int reloc_done : 1;
 1.31664 ++
 1.31665 ++  /* End of internal packed boolean fields.  */
 1.31666 ++
 1.31667 ++  /*  The virtual memory address of the section - where it will be
 1.31668 ++      at run time.  The symbols are relocated against this.  The
 1.31669 ++      user_set_vma flag is maintained by bfd; if it's not set, the
 1.31670 ++      backend can assign addresses (for example, in <<a.out>>, where
 1.31671 ++      the default address for <<.data>> is dependent on the specific
 1.31672 ++      target and various flags).  */
 1.31673 ++  bfd_vma vma;
 1.31674 ++
 1.31675 ++  /*  The load address of the section - where it would be in a
 1.31676 ++      rom image; really only used for writing section header
 1.31677 ++      information.  */
 1.31678 ++  bfd_vma lma;
 1.31679 ++
 1.31680 ++  /* The size of the section in octets, as it will be output.
 1.31681 ++     Contains a value even if the section has no contents (e.g., the
 1.31682 ++     size of <<.bss>>).  */
 1.31683 ++  bfd_size_type size;
 1.31684 ++
 1.31685 ++  /* For input sections, the original size on disk of the section, in
 1.31686 ++     octets.  This field is used by the linker relaxation code.  It is
 1.31687 ++     currently only set for sections where the linker relaxation scheme
 1.31688 ++     doesn't cache altered section and reloc contents (stabs, eh_frame,
 1.31689 ++     SEC_MERGE, some coff relaxing targets), and thus the original size
 1.31690 ++     needs to be kept to read the section multiple times.
 1.31691 ++     For output sections, rawsize holds the section size calculated on
 1.31692 ++     a previous linker relaxation pass.  */
 1.31693 ++  bfd_size_type rawsize;
 1.31694 ++
 1.31695 ++  /* If this section is going to be output, then this value is the
 1.31696 ++     offset in *bytes* into the output section of the first byte in the
 1.31697 ++     input section (byte ==> smallest addressable unit on the
 1.31698 ++     target).  In most cases, if this was going to start at the
 1.31699 ++     100th octet (8-bit quantity) in the output section, this value
 1.31700 ++     would be 100.  However, if the target byte size is 16 bits
 1.31701 ++     (bfd_octets_per_byte is "2"), this value would be 50.  */
 1.31702 ++  bfd_vma output_offset;
 1.31703 ++
 1.31704 ++  /* The output section through which to map on output.  */
 1.31705 ++  struct bfd_section *output_section;
 1.31706 ++
 1.31707 ++  /* The alignment requirement of the section, as an exponent of 2 -
 1.31708 ++     e.g., 3 aligns to 2^3 (or 8).  */
 1.31709 ++  unsigned int alignment_power;
 1.31710 ++
 1.31711 ++  /* If an input section, a pointer to a vector of relocation
 1.31712 ++     records for the data in this section.  */
 1.31713 ++  struct reloc_cache_entry *relocation;
 1.31714 ++
 1.31715 ++  /* If an output section, a pointer to a vector of pointers to
 1.31716 ++     relocation records for the data in this section.  */
 1.31717 ++  struct reloc_cache_entry **orelocation;
 1.31718 ++
 1.31719 ++  /* The number of relocation records in one of the above.  */
 1.31720 ++  unsigned reloc_count;
 1.31721 ++
 1.31722 ++  /* Information below is back end specific - and not always used
 1.31723 ++     or updated.  */
 1.31724 ++
 1.31725 ++  /* File position of section data.  */
 1.31726 ++  file_ptr filepos;
 1.31727 ++
 1.31728 ++  /* File position of relocation info.  */
 1.31729 ++  file_ptr rel_filepos;
 1.31730 ++
 1.31731 ++  /* File position of line data.  */
 1.31732 ++  file_ptr line_filepos;
 1.31733 ++
 1.31734 ++  /* Pointer to data for applications.  */
 1.31735 ++  void *userdata;
 1.31736 ++
 1.31737 ++  /* If the SEC_IN_MEMORY flag is set, this points to the actual
 1.31738 ++     contents.  */
 1.31739 ++  unsigned char *contents;
 1.31740 ++
 1.31741 ++  /* Attached line number information.  */
 1.31742 ++  alent *lineno;
 1.31743 ++
 1.31744 ++  /* Number of line number records.  */
 1.31745 ++  unsigned int lineno_count;
 1.31746 ++
 1.31747 ++  /* Entity size for merging purposes.  */
 1.31748 ++  unsigned int entsize;
 1.31749 ++
 1.31750 ++  /* Points to the kept section if this section is a link-once section,
 1.31751 ++     and is discarded.  */
 1.31752 ++  struct bfd_section *kept_section;
 1.31753 ++
 1.31754 ++  /* When a section is being output, this value changes as more
 1.31755 ++     linenumbers are written out.  */
 1.31756 ++  file_ptr moving_line_filepos;
 1.31757 ++
 1.31758 ++  /* What the section number is in the target world.  */
 1.31759 ++  int target_index;
 1.31760 ++
 1.31761 ++  void *used_by_bfd;
 1.31762 ++
 1.31763 ++  /* If this is a constructor section then here is a list of the
 1.31764 ++     relocations created to relocate items within it.  */
 1.31765 ++  struct relent_chain *constructor_chain;
 1.31766 ++
 1.31767 ++  /* The BFD which owns the section.  */
 1.31768 ++  bfd *owner;
 1.31769 ++
 1.31770 ++  /* A symbol which points at this section only.  */
 1.31771 ++  struct bfd_symbol *symbol;
 1.31772 ++  struct bfd_symbol **symbol_ptr_ptr;
 1.31773 ++
 1.31774 ++  /* Early in the link process, map_head and map_tail are used to build
 1.31775 ++     a list of input sections attached to an output section.  Later,
 1.31776 ++     output sections use these fields for a list of bfd_link_order
 1.31777 ++     structs.  */
 1.31778 ++  union {
 1.31779 ++    struct bfd_link_order *link_order;
 1.31780 ++    struct bfd_section *s;
 1.31781 ++  } map_head, map_tail;
 1.31782 ++} asection;
 1.31783 ++
 1.31784 ++/* These sections are global, and are managed by BFD.  The application
 1.31785 ++   and target back end are not permitted to change the values in
 1.31786 ++   these sections.  New code should use the section_ptr macros rather
 1.31787 ++   than referring directly to the const sections.  The const sections
 1.31788 ++   may eventually vanish.  */
 1.31789 ++#define BFD_ABS_SECTION_NAME "*ABS*"
 1.31790 ++#define BFD_UND_SECTION_NAME "*UND*"
 1.31791 ++#define BFD_COM_SECTION_NAME "*COM*"
 1.31792 ++#define BFD_IND_SECTION_NAME "*IND*"
 1.31793 ++
 1.31794 ++/* The absolute section.  */
 1.31795 ++extern asection bfd_abs_section;
 1.31796 ++#define bfd_abs_section_ptr ((asection *) &bfd_abs_section)
 1.31797 ++#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
 1.31798 ++/* Pointer to the undefined section.  */
 1.31799 ++extern asection bfd_und_section;
 1.31800 ++#define bfd_und_section_ptr ((asection *) &bfd_und_section)
 1.31801 ++#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
 1.31802 ++/* Pointer to the common section.  */
 1.31803 ++extern asection bfd_com_section;
 1.31804 ++#define bfd_com_section_ptr ((asection *) &bfd_com_section)
 1.31805 ++/* Pointer to the indirect section.  */
 1.31806 ++extern asection bfd_ind_section;
 1.31807 ++#define bfd_ind_section_ptr ((asection *) &bfd_ind_section)
 1.31808 ++#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
 1.31809 ++
 1.31810 ++#define bfd_is_const_section(SEC)              \
 1.31811 ++ (   ((SEC) == bfd_abs_section_ptr)            \
 1.31812 ++  || ((SEC) == bfd_und_section_ptr)            \
 1.31813 ++  || ((SEC) == bfd_com_section_ptr)            \
 1.31814 ++  || ((SEC) == bfd_ind_section_ptr))
 1.31815 ++
 1.31816 ++/* Macros to handle insertion and deletion of a bfd's sections.  These
 1.31817 ++   only handle the list pointers, ie. do not adjust section_count,
 1.31818 ++   target_index etc.  */
 1.31819 ++#define bfd_section_list_remove(ABFD, S) \
 1.31820 ++  do                                                   \
 1.31821 ++    {                                                  \
 1.31822 ++      asection *_s = S;                                \
 1.31823 ++      asection *_next = _s->next;                      \
 1.31824 ++      asection *_prev = _s->prev;                      \
 1.31825 ++      if (_prev)                                       \
 1.31826 ++        _prev->next = _next;                           \
 1.31827 ++      else                                             \
 1.31828 ++        (ABFD)->sections = _next;                      \
 1.31829 ++      if (_next)                                       \
 1.31830 ++        _next->prev = _prev;                           \
 1.31831 ++      else                                             \
 1.31832 ++        (ABFD)->section_last = _prev;                  \
 1.31833 ++    }                                                  \
 1.31834 ++  while (0)
 1.31835 ++#define bfd_section_list_append(ABFD, S) \
 1.31836 ++  do                                                   \
 1.31837 ++    {                                                  \
 1.31838 ++      asection *_s = S;                                \
 1.31839 ++      bfd *_abfd = ABFD;                               \
 1.31840 ++      _s->next = NULL;                                 \
 1.31841 ++      if (_abfd->section_last)                         \
 1.31842 ++        {                                              \
 1.31843 ++          _s->prev = _abfd->section_last;              \
 1.31844 ++          _abfd->section_last->next = _s;              \
 1.31845 ++        }                                              \
 1.31846 ++      else                                             \
 1.31847 ++        {                                              \
 1.31848 ++          _s->prev = NULL;                             \
 1.31849 ++          _abfd->sections = _s;                        \
 1.31850 ++        }                                              \
 1.31851 ++      _abfd->section_last = _s;                        \
 1.31852 ++    }                                                  \
 1.31853 ++  while (0)
 1.31854 ++#define bfd_section_list_prepend(ABFD, S) \
 1.31855 ++  do                                                   \
 1.31856 ++    {                                                  \
 1.31857 ++      asection *_s = S;                                \
 1.31858 ++      bfd *_abfd = ABFD;                               \
 1.31859 ++      _s->prev = NULL;                                 \
 1.31860 ++      if (_abfd->sections)                             \
 1.31861 ++        {                                              \
 1.31862 ++          _s->next = _abfd->sections;                  \
 1.31863 ++          _abfd->sections->prev = _s;                  \
 1.31864 ++        }                                              \
 1.31865 ++      else                                             \
 1.31866 ++        {                                              \
 1.31867 ++          _s->next = NULL;                             \
 1.31868 ++          _abfd->section_last = _s;                    \
 1.31869 ++        }                                              \
 1.31870 ++      _abfd->sections = _s;                            \
 1.31871 ++    }                                                  \
 1.31872 ++  while (0)
 1.31873 ++#define bfd_section_list_insert_after(ABFD, A, S) \
 1.31874 ++  do                                                   \
 1.31875 ++    {                                                  \
 1.31876 ++      asection *_a = A;                                \
 1.31877 ++      asection *_s = S;                                \
 1.31878 ++      asection *_next = _a->next;                      \
 1.31879 ++      _s->next = _next;                                \
 1.31880 ++      _s->prev = _a;                                   \
 1.31881 ++      _a->next = _s;                                   \
 1.31882 ++      if (_next)                                       \
 1.31883 ++        _next->prev = _s;                              \
 1.31884 ++      else                                             \
 1.31885 ++        (ABFD)->section_last = _s;                     \
 1.31886 ++    }                                                  \
 1.31887 ++  while (0)
 1.31888 ++#define bfd_section_list_insert_before(ABFD, B, S) \
 1.31889 ++  do                                                   \
 1.31890 ++    {                                                  \
 1.31891 ++      asection *_b = B;                                \
 1.31892 ++      asection *_s = S;                                \
 1.31893 ++      asection *_prev = _b->prev;                      \
 1.31894 ++      _s->prev = _prev;                                \
 1.31895 ++      _s->next = _b;                                   \
 1.31896 ++      _b->prev = _s;                                   \
 1.31897 ++      if (_prev)                                       \
 1.31898 ++        _prev->next = _s;                              \
 1.31899 ++      else                                             \
 1.31900 ++        (ABFD)->sections = _s;                         \
 1.31901 ++    }                                                  \
 1.31902 ++  while (0)
 1.31903 ++#define bfd_section_removed_from_list(ABFD, S) \
 1.31904 ++  ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S))
 1.31905 ++
 1.31906 ++#define BFD_FAKE_SECTION(SEC, FLAGS, SYM, NAME, IDX)                   \
 1.31907 ++  /* name, id,  index, next, prev, flags, user_set_vma,            */  \
 1.31908 ++  { NAME,  IDX, 0,     NULL, NULL, FLAGS, 0,                           \
 1.31909 ++                                                                       \
 1.31910 ++  /* linker_mark, linker_has_input, gc_mark, gc_mark_from_eh,      */  \
 1.31911 ++     0,           0,                1,       0,                        \
 1.31912 ++                                                                       \
 1.31913 ++  /* segment_mark, sec_info_type, use_rela_p, has_tls_reloc,       */  \
 1.31914 ++     0,            0,             0,          0,                       \
 1.31915 ++                                                                       \
 1.31916 ++  /* has_gp_reloc, need_finalize_relax, reloc_done,                */  \
 1.31917 ++     0,            0,                   0,                             \
 1.31918 ++                                                                       \
 1.31919 ++  /* vma, lma, size, rawsize                                       */  \
 1.31920 ++     0,   0,   0,    0,                                                \
 1.31921 ++                                                                       \
 1.31922 ++  /* output_offset, output_section,              alignment_power,  */  \
 1.31923 ++     0,             (struct bfd_section *) &SEC, 0,                    \
 1.31924 ++                                                                       \
 1.31925 ++  /* relocation, orelocation, reloc_count, filepos, rel_filepos,   */  \
 1.31926 ++     NULL,       NULL,        0,           0,       0,                 \
 1.31927 ++                                                                       \
 1.31928 ++  /* line_filepos, userdata, contents, lineno, lineno_count,       */  \
 1.31929 ++     0,            NULL,     NULL,     NULL,   0,                      \
 1.31930 ++                                                                       \
 1.31931 ++  /* entsize, kept_section, moving_line_filepos,                    */ \
 1.31932 ++     0,       NULL,          0,                                        \
 1.31933 ++                                                                       \
 1.31934 ++  /* target_index, used_by_bfd, constructor_chain, owner,          */  \
 1.31935 ++     0,            NULL,        NULL,              NULL,               \
 1.31936 ++                                                                       \
 1.31937 ++  /* symbol,                    symbol_ptr_ptr,                    */  \
 1.31938 ++     (struct bfd_symbol *) SYM, &SEC.symbol,                           \
 1.31939 ++                                                                       \
 1.31940 ++  /* map_head, map_tail                                            */  \
 1.31941 ++     { NULL }, { NULL }                                                \
 1.31942 ++    }
 1.31943 ++
 1.31944 ++void bfd_section_list_clear (bfd *);
 1.31945 ++
 1.31946 ++asection *bfd_get_section_by_name (bfd *abfd, const char *name);
 1.31947 ++
 1.31948 ++asection *bfd_get_section_by_name_if
 1.31949 ++   (bfd *abfd,
 1.31950 ++    const char *name,
 1.31951 ++    bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj),
 1.31952 ++    void *obj);
 1.31953 ++
 1.31954 ++char *bfd_get_unique_section_name
 1.31955 ++   (bfd *abfd, const char *templat, int *count);
 1.31956 ++
 1.31957 ++asection *bfd_make_section_old_way (bfd *abfd, const char *name);
 1.31958 ++
 1.31959 ++asection *bfd_make_section_anyway_with_flags
 1.31960 ++   (bfd *abfd, const char *name, flagword flags);
 1.31961 ++
 1.31962 ++asection *bfd_make_section_anyway (bfd *abfd, const char *name);
 1.31963 ++
 1.31964 ++asection *bfd_make_section_with_flags
 1.31965 ++   (bfd *, const char *name, flagword flags);
 1.31966 ++
 1.31967 ++asection *bfd_make_section (bfd *, const char *name);
 1.31968 ++
 1.31969 ++bfd_boolean bfd_set_section_flags
 1.31970 ++   (bfd *abfd, asection *sec, flagword flags);
 1.31971 ++
 1.31972 ++void bfd_map_over_sections
 1.31973 ++   (bfd *abfd,
 1.31974 ++    void (*func) (bfd *abfd, asection *sect, void *obj),
 1.31975 ++    void *obj);
 1.31976 ++
 1.31977 ++asection *bfd_sections_find_if
 1.31978 ++   (bfd *abfd,
 1.31979 ++    bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj),
 1.31980 ++    void *obj);
 1.31981 ++
 1.31982 ++bfd_boolean bfd_set_section_size
 1.31983 ++   (bfd *abfd, asection *sec, bfd_size_type val);
 1.31984 ++
 1.31985 ++bfd_boolean bfd_set_section_contents
 1.31986 ++   (bfd *abfd, asection *section, const void *data,
 1.31987 ++    file_ptr offset, bfd_size_type count);
 1.31988 ++
 1.31989 ++bfd_boolean bfd_get_section_contents
 1.31990 ++   (bfd *abfd, asection *section, void *location, file_ptr offset,
 1.31991 ++    bfd_size_type count);
 1.31992 ++
 1.31993 ++bfd_boolean bfd_malloc_and_get_section
 1.31994 ++   (bfd *abfd, asection *section, bfd_byte **buf);
 1.31995 ++
 1.31996 ++bfd_boolean bfd_copy_private_section_data
 1.31997 ++   (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
 1.31998 ++
 1.31999 ++#define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
 1.32000 ++     BFD_SEND (obfd, _bfd_copy_private_section_data, \
 1.32001 ++               (ibfd, isection, obfd, osection))
 1.32002 ++bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
 1.32003 ++
 1.32004 ++bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
 1.32005 ++
 1.32006 ++/* Extracted from archures.c.  */
 1.32007 ++enum bfd_architecture
 1.32008 ++{
 1.32009 ++  bfd_arch_unknown,   /* File arch not known.  */
 1.32010 ++  bfd_arch_obscure,   /* Arch known, not one of these.  */
 1.32011 ++  bfd_arch_m68k,      /* Motorola 68xxx */
 1.32012 ++#define bfd_mach_m68000 1
 1.32013 ++#define bfd_mach_m68008 2
 1.32014 ++#define bfd_mach_m68010 3
 1.32015 ++#define bfd_mach_m68020 4
 1.32016 ++#define bfd_mach_m68030 5
 1.32017 ++#define bfd_mach_m68040 6
 1.32018 ++#define bfd_mach_m68060 7
 1.32019 ++#define bfd_mach_cpu32  8
 1.32020 ++#define bfd_mach_fido   9
 1.32021 ++#define bfd_mach_mcf_isa_a_nodiv 10
 1.32022 ++#define bfd_mach_mcf_isa_a 11
 1.32023 ++#define bfd_mach_mcf_isa_a_mac 12
 1.32024 ++#define bfd_mach_mcf_isa_a_emac 13
 1.32025 ++#define bfd_mach_mcf_isa_aplus 14
 1.32026 ++#define bfd_mach_mcf_isa_aplus_mac 15
 1.32027 ++#define bfd_mach_mcf_isa_aplus_emac 16
 1.32028 ++#define bfd_mach_mcf_isa_b_nousp 17
 1.32029 ++#define bfd_mach_mcf_isa_b_nousp_mac 18
 1.32030 ++#define bfd_mach_mcf_isa_b_nousp_emac 19
 1.32031 ++#define bfd_mach_mcf_isa_b 20
 1.32032 ++#define bfd_mach_mcf_isa_b_mac 21
 1.32033 ++#define bfd_mach_mcf_isa_b_emac 22
 1.32034 ++#define bfd_mach_mcf_isa_b_float 23
 1.32035 ++#define bfd_mach_mcf_isa_b_float_mac 24
 1.32036 ++#define bfd_mach_mcf_isa_b_float_emac 25
 1.32037 ++#define bfd_mach_mcf_isa_c 26
 1.32038 ++#define bfd_mach_mcf_isa_c_mac 27
 1.32039 ++#define bfd_mach_mcf_isa_c_emac 28
 1.32040 ++  bfd_arch_vax,       /* DEC Vax */
 1.32041 ++  bfd_arch_i960,      /* Intel 960 */
 1.32042 ++    /* The order of the following is important.
 1.32043 ++       lower number indicates a machine type that
 1.32044 ++       only accepts a subset of the instructions
 1.32045 ++       available to machines with higher numbers.
 1.32046 ++       The exception is the "ca", which is
 1.32047 ++       incompatible with all other machines except
 1.32048 ++       "core".  */
 1.32049 ++
 1.32050 ++#define bfd_mach_i960_core      1
 1.32051 ++#define bfd_mach_i960_ka_sa     2
 1.32052 ++#define bfd_mach_i960_kb_sb     3
 1.32053 ++#define bfd_mach_i960_mc        4
 1.32054 ++#define bfd_mach_i960_xa        5
 1.32055 ++#define bfd_mach_i960_ca        6
 1.32056 ++#define bfd_mach_i960_jx        7
 1.32057 ++#define bfd_mach_i960_hx        8
 1.32058 ++
 1.32059 ++  bfd_arch_or32,      /* OpenRISC 32 */
 1.32060 ++
 1.32061 ++  bfd_arch_sparc,     /* SPARC */
 1.32062 ++#define bfd_mach_sparc                 1
 1.32063 ++/* The difference between v8plus and v9 is that v9 is a true 64 bit env.  */
 1.32064 ++#define bfd_mach_sparc_sparclet        2
 1.32065 ++#define bfd_mach_sparc_sparclite       3
 1.32066 ++#define bfd_mach_sparc_v8plus          4
 1.32067 ++#define bfd_mach_sparc_v8plusa         5 /* with ultrasparc add'ns.  */
 1.32068 ++#define bfd_mach_sparc_sparclite_le    6
 1.32069 ++#define bfd_mach_sparc_v9              7
 1.32070 ++#define bfd_mach_sparc_v9a             8 /* with ultrasparc add'ns.  */
 1.32071 ++#define bfd_mach_sparc_v8plusb         9 /* with cheetah add'ns.  */
 1.32072 ++#define bfd_mach_sparc_v9b             10 /* with cheetah add'ns.  */
 1.32073 ++/* Nonzero if MACH has the v9 instruction set.  */
 1.32074 ++#define bfd_mach_sparc_v9_p(mach) \
 1.32075 ++  ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
 1.32076 ++   && (mach) != bfd_mach_sparc_sparclite_le)
 1.32077 ++/* Nonzero if MACH is a 64 bit sparc architecture.  */
 1.32078 ++#define bfd_mach_sparc_64bit_p(mach) \
 1.32079 ++  ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb)
 1.32080 ++  bfd_arch_spu,       /* PowerPC SPU */
 1.32081 ++#define bfd_mach_spu           256 
 1.32082 ++  bfd_arch_mips,      /* MIPS Rxxxx */
 1.32083 ++#define bfd_mach_mips3000              3000
 1.32084 ++#define bfd_mach_mips3900              3900
 1.32085 ++#define bfd_mach_mips4000              4000
 1.32086 ++#define bfd_mach_mips4010              4010
 1.32087 ++#define bfd_mach_mips4100              4100
 1.32088 ++#define bfd_mach_mips4111              4111
 1.32089 ++#define bfd_mach_mips4120              4120
 1.32090 ++#define bfd_mach_mips4300              4300
 1.32091 ++#define bfd_mach_mips4400              4400
 1.32092 ++#define bfd_mach_mips4600              4600
 1.32093 ++#define bfd_mach_mips4650              4650
 1.32094 ++#define bfd_mach_mips5000              5000
 1.32095 ++#define bfd_mach_mips5400              5400
 1.32096 ++#define bfd_mach_mips5500              5500
 1.32097 ++#define bfd_mach_mips6000              6000
 1.32098 ++#define bfd_mach_mips7000              7000
 1.32099 ++#define bfd_mach_mips8000              8000
 1.32100 ++#define bfd_mach_mips9000              9000
 1.32101 ++#define bfd_mach_mips10000             10000
 1.32102 ++#define bfd_mach_mips12000             12000
 1.32103 ++#define bfd_mach_mips16                16
 1.32104 ++#define bfd_mach_mips5                 5
 1.32105 ++#define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01 */
 1.32106 ++#define bfd_mach_mipsisa32             32
 1.32107 ++#define bfd_mach_mipsisa32r2           33
 1.32108 ++#define bfd_mach_mipsisa64             64
 1.32109 ++#define bfd_mach_mipsisa64r2           65
 1.32110 ++  bfd_arch_i386,      /* Intel 386 */
 1.32111 ++#define bfd_mach_i386_i386 1
 1.32112 ++#define bfd_mach_i386_i8086 2
 1.32113 ++#define bfd_mach_i386_i386_intel_syntax 3
 1.32114 ++#define bfd_mach_x86_64 64
 1.32115 ++#define bfd_mach_x86_64_intel_syntax 65
 1.32116 ++  bfd_arch_we32k,     /* AT&T WE32xxx */
 1.32117 ++  bfd_arch_tahoe,     /* CCI/Harris Tahoe */
 1.32118 ++  bfd_arch_i860,      /* Intel 860 */
 1.32119 ++  bfd_arch_i370,      /* IBM 360/370 Mainframes */
 1.32120 ++  bfd_arch_romp,      /* IBM ROMP PC/RT */
 1.32121 ++  bfd_arch_convex,    /* Convex */
 1.32122 ++  bfd_arch_m88k,      /* Motorola 88xxx */
 1.32123 ++  bfd_arch_m98k,      /* Motorola 98xxx */
 1.32124 ++  bfd_arch_pyramid,   /* Pyramid Technology */
 1.32125 ++  bfd_arch_h8300,     /* Renesas H8/300 (formerly Hitachi H8/300) */
 1.32126 ++#define bfd_mach_h8300    1
 1.32127 ++#define bfd_mach_h8300h   2
 1.32128 ++#define bfd_mach_h8300s   3
 1.32129 ++#define bfd_mach_h8300hn  4
 1.32130 ++#define bfd_mach_h8300sn  5
 1.32131 ++#define bfd_mach_h8300sx  6
 1.32132 ++#define bfd_mach_h8300sxn 7
 1.32133 ++  bfd_arch_pdp11,     /* DEC PDP-11 */
 1.32134 ++  bfd_arch_powerpc,   /* PowerPC */
 1.32135 ++#define bfd_mach_ppc           32
 1.32136 ++#define bfd_mach_ppc64         64
 1.32137 ++#define bfd_mach_ppc_403       403
 1.32138 ++#define bfd_mach_ppc_403gc     4030
 1.32139 ++#define bfd_mach_ppc_505       505
 1.32140 ++#define bfd_mach_ppc_601       601
 1.32141 ++#define bfd_mach_ppc_602       602
 1.32142 ++#define bfd_mach_ppc_603       603
 1.32143 ++#define bfd_mach_ppc_ec603e    6031
 1.32144 ++#define bfd_mach_ppc_604       604
 1.32145 ++#define bfd_mach_ppc_620       620
 1.32146 ++#define bfd_mach_ppc_630       630
 1.32147 ++#define bfd_mach_ppc_750       750
 1.32148 ++#define bfd_mach_ppc_860       860
 1.32149 ++#define bfd_mach_ppc_a35       35
 1.32150 ++#define bfd_mach_ppc_rs64ii    642
 1.32151 ++#define bfd_mach_ppc_rs64iii   643
 1.32152 ++#define bfd_mach_ppc_7400      7400
 1.32153 ++#define bfd_mach_ppc_e500      500
 1.32154 ++  bfd_arch_rs6000,    /* IBM RS/6000 */
 1.32155 ++#define bfd_mach_rs6k          6000
 1.32156 ++#define bfd_mach_rs6k_rs1      6001
 1.32157 ++#define bfd_mach_rs6k_rsc      6003
 1.32158 ++#define bfd_mach_rs6k_rs2      6002
 1.32159 ++  bfd_arch_hppa,      /* HP PA RISC */
 1.32160 ++#define bfd_mach_hppa10        10
 1.32161 ++#define bfd_mach_hppa11        11
 1.32162 ++#define bfd_mach_hppa20        20
 1.32163 ++#define bfd_mach_hppa20w       25
 1.32164 ++  bfd_arch_d10v,      /* Mitsubishi D10V */
 1.32165 ++#define bfd_mach_d10v          1
 1.32166 ++#define bfd_mach_d10v_ts2      2
 1.32167 ++#define bfd_mach_d10v_ts3      3
 1.32168 ++  bfd_arch_d30v,      /* Mitsubishi D30V */
 1.32169 ++  bfd_arch_dlx,       /* DLX */
 1.32170 ++  bfd_arch_m68hc11,   /* Motorola 68HC11 */
 1.32171 ++  bfd_arch_m68hc12,   /* Motorola 68HC12 */
 1.32172 ++#define bfd_mach_m6812_default 0
 1.32173 ++#define bfd_mach_m6812         1
 1.32174 ++#define bfd_mach_m6812s        2
 1.32175 ++  bfd_arch_z8k,       /* Zilog Z8000 */
 1.32176 ++#define bfd_mach_z8001         1
 1.32177 ++#define bfd_mach_z8002         2
 1.32178 ++  bfd_arch_h8500,     /* Renesas H8/500 (formerly Hitachi H8/500) */
 1.32179 ++  bfd_arch_sh,        /* Renesas / SuperH SH (formerly Hitachi SH) */
 1.32180 ++#define bfd_mach_sh            1
 1.32181 ++#define bfd_mach_sh2        0x20
 1.32182 ++#define bfd_mach_sh_dsp     0x2d
 1.32183 ++#define bfd_mach_sh2a       0x2a
 1.32184 ++#define bfd_mach_sh2a_nofpu 0x2b
 1.32185 ++#define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
 1.32186 ++#define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
 1.32187 ++#define bfd_mach_sh2a_or_sh4  0x2a3
 1.32188 ++#define bfd_mach_sh2a_or_sh3e 0x2a4
 1.32189 ++#define bfd_mach_sh2e       0x2e
 1.32190 ++#define bfd_mach_sh3        0x30
 1.32191 ++#define bfd_mach_sh3_nommu  0x31
 1.32192 ++#define bfd_mach_sh3_dsp    0x3d
 1.32193 ++#define bfd_mach_sh3e       0x3e
 1.32194 ++#define bfd_mach_sh4        0x40
 1.32195 ++#define bfd_mach_sh4_nofpu  0x41
 1.32196 ++#define bfd_mach_sh4_nommu_nofpu  0x42
 1.32197 ++#define bfd_mach_sh4a       0x4a
 1.32198 ++#define bfd_mach_sh4a_nofpu 0x4b
 1.32199 ++#define bfd_mach_sh4al_dsp  0x4d
 1.32200 ++#define bfd_mach_sh5        0x50
 1.32201 ++  bfd_arch_alpha,     /* Dec Alpha */
 1.32202 ++#define bfd_mach_alpha_ev4  0x10
 1.32203 ++#define bfd_mach_alpha_ev5  0x20
 1.32204 ++#define bfd_mach_alpha_ev6  0x30
 1.32205 ++  bfd_arch_arm,       /* Advanced Risc Machines ARM.  */
 1.32206 ++#define bfd_mach_arm_unknown   0
 1.32207 ++#define bfd_mach_arm_2         1
 1.32208 ++#define bfd_mach_arm_2a        2
 1.32209 ++#define bfd_mach_arm_3         3
 1.32210 ++#define bfd_mach_arm_3M        4
 1.32211 ++#define bfd_mach_arm_4         5
 1.32212 ++#define bfd_mach_arm_4T        6
 1.32213 ++#define bfd_mach_arm_5         7
 1.32214 ++#define bfd_mach_arm_5T        8
 1.32215 ++#define bfd_mach_arm_5TE       9
 1.32216 ++#define bfd_mach_arm_XScale    10
 1.32217 ++#define bfd_mach_arm_ep9312    11
 1.32218 ++#define bfd_mach_arm_iWMMXt    12
 1.32219 ++#define bfd_mach_arm_iWMMXt2   13
 1.32220 ++  bfd_arch_ns32k,     /* National Semiconductors ns32000 */
 1.32221 ++  bfd_arch_w65,       /* WDC 65816 */
 1.32222 ++  bfd_arch_tic30,     /* Texas Instruments TMS320C30 */
 1.32223 ++  bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X */
 1.32224 ++#define bfd_mach_tic3x         30
 1.32225 ++#define bfd_mach_tic4x         40
 1.32226 ++  bfd_arch_tic54x,    /* Texas Instruments TMS320C54X */
 1.32227 ++  bfd_arch_tic80,     /* TI TMS320c80 (MVP) */
 1.32228 ++  bfd_arch_v850,      /* NEC V850 */
 1.32229 ++#define bfd_mach_v850          1
 1.32230 ++#define bfd_mach_v850e         'E'
 1.32231 ++#define bfd_mach_v850e1        '1'
 1.32232 ++  bfd_arch_arc,       /* ARC Cores */
 1.32233 ++#define bfd_mach_arc_5         5
 1.32234 ++#define bfd_mach_arc_6         6
 1.32235 ++#define bfd_mach_arc_7         7
 1.32236 ++#define bfd_mach_arc_8         8
 1.32237 ++ bfd_arch_m32c,     /* Renesas M16C/M32C.  */
 1.32238 ++#define bfd_mach_m16c        0x75
 1.32239 ++#define bfd_mach_m32c        0x78
 1.32240 ++  bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D) */
 1.32241 ++#define bfd_mach_m32r          1 /* For backwards compatibility.  */
 1.32242 ++#define bfd_mach_m32rx         'x'
 1.32243 ++#define bfd_mach_m32r2         '2'
 1.32244 ++  bfd_arch_mn10200,   /* Matsushita MN10200 */
 1.32245 ++  bfd_arch_mn10300,   /* Matsushita MN10300 */
 1.32246 ++#define bfd_mach_mn10300               300
 1.32247 ++#define bfd_mach_am33          330
 1.32248 ++#define bfd_mach_am33_2        332
 1.32249 ++  bfd_arch_fr30,
 1.32250 ++#define bfd_mach_fr30          0x46523330
 1.32251 ++  bfd_arch_frv,
 1.32252 ++#define bfd_mach_frv           1
 1.32253 ++#define bfd_mach_frvsimple     2
 1.32254 ++#define bfd_mach_fr300         300
 1.32255 ++#define bfd_mach_fr400         400
 1.32256 ++#define bfd_mach_fr450         450
 1.32257 ++#define bfd_mach_frvtomcat     499     /* fr500 prototype */
 1.32258 ++#define bfd_mach_fr500         500
 1.32259 ++#define bfd_mach_fr550         550
 1.32260 ++  bfd_arch_mcore,
 1.32261 ++  bfd_arch_mep,
 1.32262 ++#define bfd_mach_mep           1
 1.32263 ++#define bfd_mach_mep_h1        0x6831
 1.32264 ++  bfd_arch_ia64,      /* HP/Intel ia64 */
 1.32265 ++#define bfd_mach_ia64_elf64    64
 1.32266 ++#define bfd_mach_ia64_elf32    32
 1.32267 ++  bfd_arch_ip2k,      /* Ubicom IP2K microcontrollers. */
 1.32268 ++#define bfd_mach_ip2022        1
 1.32269 ++#define bfd_mach_ip2022ext     2
 1.32270 ++ bfd_arch_iq2000,     /* Vitesse IQ2000.  */
 1.32271 ++#define bfd_mach_iq2000        1
 1.32272 ++#define bfd_mach_iq10          2
 1.32273 ++  bfd_arch_mt,
 1.32274 ++#define bfd_mach_ms1           1
 1.32275 ++#define bfd_mach_mrisc2        2
 1.32276 ++#define bfd_mach_ms2           3
 1.32277 ++  bfd_arch_pj,
 1.32278 ++  bfd_arch_avr,       /* Atmel AVR microcontrollers.  */
 1.32279 ++#define bfd_mach_avr1          1
 1.32280 ++#define bfd_mach_avr2          2
 1.32281 ++#define bfd_mach_avr3          3
 1.32282 ++#define bfd_mach_avr4          4
 1.32283 ++#define bfd_mach_avr5          5
 1.32284 ++#define bfd_mach_avr6          6
 1.32285 ++  bfd_arch_bfin,        /* ADI Blackfin */
 1.32286 ++#define bfd_mach_bfin          1
 1.32287 ++  bfd_arch_cr16,       /* National Semiconductor CompactRISC (ie CR16). */
 1.32288 ++#define bfd_mach_cr16          1
 1.32289 ++  bfd_arch_cr16c,       /* National Semiconductor CompactRISC. */
 1.32290 ++#define bfd_mach_cr16c         1
 1.32291 ++  bfd_arch_crx,       /*  National Semiconductor CRX.  */
 1.32292 ++#define bfd_mach_crx           1
 1.32293 ++  bfd_arch_cris,      /* Axis CRIS */
 1.32294 ++#define bfd_mach_cris_v0_v10   255
 1.32295 ++#define bfd_mach_cris_v32      32
 1.32296 ++#define bfd_mach_cris_v10_v32  1032
 1.32297 ++  bfd_arch_s390,      /* IBM s390 */
 1.32298 ++#define bfd_mach_s390_31       31
 1.32299 ++#define bfd_mach_s390_64       64
 1.32300 ++  bfd_arch_score,     /* Sunplus score */ 
 1.32301 ++  bfd_arch_openrisc,  /* OpenRISC */
 1.32302 ++  bfd_arch_mmix,      /* Donald Knuth's educational processor.  */
 1.32303 ++  bfd_arch_xstormy16,
 1.32304 ++#define bfd_mach_xstormy16     1
 1.32305 ++  bfd_arch_msp430,    /* Texas Instruments MSP430 architecture.  */
 1.32306 ++#define bfd_mach_msp11          11
 1.32307 ++#define bfd_mach_msp110         110
 1.32308 ++#define bfd_mach_msp12          12
 1.32309 ++#define bfd_mach_msp13          13
 1.32310 ++#define bfd_mach_msp14          14
 1.32311 ++#define bfd_mach_msp15          15
 1.32312 ++#define bfd_mach_msp16          16
 1.32313 ++#define bfd_mach_msp21          21
 1.32314 ++#define bfd_mach_msp31          31
 1.32315 ++#define bfd_mach_msp32          32
 1.32316 ++#define bfd_mach_msp33          33
 1.32317 ++#define bfd_mach_msp41          41
 1.32318 ++#define bfd_mach_msp42          42
 1.32319 ++#define bfd_mach_msp43          43
 1.32320 ++#define bfd_mach_msp44          44
 1.32321 ++  bfd_arch_xc16x,     /* Infineon's XC16X Series.               */
 1.32322 ++#define bfd_mach_xc16x         1
 1.32323 ++#define bfd_mach_xc16xl        2
 1.32324 ++#define bfd_mach_xc16xs         3
 1.32325 ++  bfd_arch_xtensa,    /* Tensilica's Xtensa cores.  */
 1.32326 ++#define bfd_mach_xtensa        1
 1.32327 ++   bfd_arch_maxq,     /* Dallas MAXQ 10/20 */
 1.32328 ++#define bfd_mach_maxq10    10
 1.32329 ++#define bfd_mach_maxq20    20
 1.32330 ++  bfd_arch_z80,
 1.32331 ++#define bfd_mach_z80strict      1 /* No undocumented opcodes.  */
 1.32332 ++#define bfd_mach_z80            3 /* With ixl, ixh, iyl, and iyh.  */
 1.32333 ++#define bfd_mach_z80full        7 /* All undocumented instructions.  */
 1.32334 ++#define bfd_mach_r800           11 /* R800: successor with multiplication.  */
 1.32335 ++  bfd_arch_last
 1.32336 ++  };
 1.32337 ++
 1.32338 ++typedef struct bfd_arch_info
 1.32339 ++{
 1.32340 ++  int bits_per_word;
 1.32341 ++  int bits_per_address;
 1.32342 ++  int bits_per_byte;
 1.32343 ++  enum bfd_architecture arch;
 1.32344 ++  unsigned long mach;
 1.32345 ++  const char *arch_name;
 1.32346 ++  const char *printable_name;
 1.32347 ++  unsigned int section_align_power;
 1.32348 ++  /* TRUE if this is the default machine for the architecture.
 1.32349 ++     The default arch should be the first entry for an arch so that
 1.32350 ++     all the entries for that arch can be accessed via <<next>>.  */
 1.32351 ++  bfd_boolean the_default;
 1.32352 ++  const struct bfd_arch_info * (*compatible)
 1.32353 ++    (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
 1.32354 ++
 1.32355 ++  bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
 1.32356 ++
 1.32357 ++  const struct bfd_arch_info *next;
 1.32358 ++}
 1.32359 ++bfd_arch_info_type;
 1.32360 ++
 1.32361 ++const char *bfd_printable_name (bfd *abfd);
 1.32362 ++
 1.32363 ++const bfd_arch_info_type *bfd_scan_arch (const char *string);
 1.32364 ++
 1.32365 ++const char **bfd_arch_list (void);
 1.32366 ++
 1.32367 ++const bfd_arch_info_type *bfd_arch_get_compatible
 1.32368 ++   (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
 1.32369 ++
 1.32370 ++void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
 1.32371 ++
 1.32372 ++enum bfd_architecture bfd_get_arch (bfd *abfd);
 1.32373 ++
 1.32374 ++unsigned long bfd_get_mach (bfd *abfd);
 1.32375 ++
 1.32376 ++unsigned int bfd_arch_bits_per_byte (bfd *abfd);
 1.32377 ++
 1.32378 ++unsigned int bfd_arch_bits_per_address (bfd *abfd);
 1.32379 ++
 1.32380 ++const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
 1.32381 ++
 1.32382 ++const bfd_arch_info_type *bfd_lookup_arch
 1.32383 ++   (enum bfd_architecture arch, unsigned long machine);
 1.32384 ++
 1.32385 ++const char *bfd_printable_arch_mach
 1.32386 ++   (enum bfd_architecture arch, unsigned long machine);
 1.32387 ++
 1.32388 ++unsigned int bfd_octets_per_byte (bfd *abfd);
 1.32389 ++
 1.32390 ++unsigned int bfd_arch_mach_octets_per_byte
 1.32391 ++   (enum bfd_architecture arch, unsigned long machine);
 1.32392 ++
 1.32393 ++/* Extracted from reloc.c.  */
 1.32394 ++typedef enum bfd_reloc_status
 1.32395 ++{
 1.32396 ++  /* No errors detected.  */
 1.32397 ++  bfd_reloc_ok,
 1.32398 ++
 1.32399 ++  /* The relocation was performed, but there was an overflow.  */
 1.32400 ++  bfd_reloc_overflow,
 1.32401 ++
 1.32402 ++  /* The address to relocate was not within the section supplied.  */
 1.32403 ++  bfd_reloc_outofrange,
 1.32404 ++
 1.32405 ++  /* Used by special functions.  */
 1.32406 ++  bfd_reloc_continue,
 1.32407 ++
 1.32408 ++  /* Unsupported relocation size requested.  */
 1.32409 ++  bfd_reloc_notsupported,
 1.32410 ++
 1.32411 ++  /* Unused.  */
 1.32412 ++  bfd_reloc_other,
 1.32413 ++
 1.32414 ++  /* The symbol to relocate against was undefined.  */
 1.32415 ++  bfd_reloc_undefined,
 1.32416 ++
 1.32417 ++  /* The relocation was performed, but may not be ok - presently
 1.32418 ++     generated only when linking i960 coff files with i960 b.out
 1.32419 ++     symbols.  If this type is returned, the error_message argument
 1.32420 ++     to bfd_perform_relocation will be set.  */
 1.32421 ++  bfd_reloc_dangerous
 1.32422 ++ }
 1.32423 ++ bfd_reloc_status_type;
 1.32424 ++
 1.32425 ++
 1.32426 ++typedef struct reloc_cache_entry
 1.32427 ++{
 1.32428 ++  /* A pointer into the canonical table of pointers.  */
 1.32429 ++  struct bfd_symbol **sym_ptr_ptr;
 1.32430 ++
 1.32431 ++  /* offset in section.  */
 1.32432 ++  bfd_size_type address;
 1.32433 ++
 1.32434 ++  /* addend for relocation value.  */
 1.32435 ++  bfd_vma addend;
 1.32436 ++
 1.32437 ++  /* Pointer to how to perform the required relocation.  */
 1.32438 ++  reloc_howto_type *howto;
 1.32439 ++
 1.32440 ++}
 1.32441 ++arelent;
 1.32442 ++
 1.32443 ++enum complain_overflow
 1.32444 ++{
 1.32445 ++  /* Do not complain on overflow.  */
 1.32446 ++  complain_overflow_dont,
 1.32447 ++
 1.32448 ++  /* Complain if the value overflows when considered as a signed
 1.32449 ++     number one bit larger than the field.  ie. A bitfield of N bits
 1.32450 ++     is allowed to represent -2**n to 2**n-1.  */
 1.32451 ++  complain_overflow_bitfield,
 1.32452 ++
 1.32453 ++  /* Complain if the value overflows when considered as a signed
 1.32454 ++     number.  */
 1.32455 ++  complain_overflow_signed,
 1.32456 ++
 1.32457 ++  /* Complain if the value overflows when considered as an
 1.32458 ++     unsigned number.  */
 1.32459 ++  complain_overflow_unsigned
 1.32460 ++};
 1.32461 ++
 1.32462 ++struct reloc_howto_struct
 1.32463 ++{
 1.32464 ++  /*  The type field has mainly a documentary use - the back end can
 1.32465 ++      do what it wants with it, though normally the back end's
 1.32466 ++      external idea of what a reloc number is stored
 1.32467 ++      in this field.  For example, a PC relative word relocation
 1.32468 ++      in a coff environment has the type 023 - because that's
 1.32469 ++      what the outside world calls a R_PCRWORD reloc.  */
 1.32470 ++  unsigned int type;
 1.32471 ++
 1.32472 ++  /*  The value the final relocation is shifted right by.  This drops
 1.32473 ++      unwanted data from the relocation.  */
 1.32474 ++  unsigned int rightshift;
 1.32475 ++
 1.32476 ++  /*  The size of the item to be relocated.  This is *not* a
 1.32477 ++      power-of-two measure.  To get the number of bytes operated
 1.32478 ++      on by a type of relocation, use bfd_get_reloc_size.  */
 1.32479 ++  int size;
 1.32480 ++
 1.32481 ++  /*  The number of bits in the item to be relocated.  This is used
 1.32482 ++      when doing overflow checking.  */
 1.32483 ++  unsigned int bitsize;
 1.32484 ++
 1.32485 ++  /*  Notes that the relocation is relative to the location in the
 1.32486 ++      data section of the addend.  The relocation function will
 1.32487 ++      subtract from the relocation value the address of the location
 1.32488 ++      being relocated.  */
 1.32489 ++  bfd_boolean pc_relative;
 1.32490 ++
 1.32491 ++  /*  The bit position of the reloc value in the destination.
 1.32492 ++      The relocated value is left shifted by this amount.  */
 1.32493 ++  unsigned int bitpos;
 1.32494 ++
 1.32495 ++  /* What type of overflow error should be checked for when
 1.32496 ++     relocating.  */
 1.32497 ++  enum complain_overflow complain_on_overflow;
 1.32498 ++
 1.32499 ++  /* If this field is non null, then the supplied function is
 1.32500 ++     called rather than the normal function.  This allows really
 1.32501 ++     strange relocation methods to be accommodated (e.g., i960 callj
 1.32502 ++     instructions).  */
 1.32503 ++  bfd_reloc_status_type (*special_function)
 1.32504 ++    (bfd *, arelent *, struct bfd_symbol *, void *, asection *,
 1.32505 ++     bfd *, char **);
 1.32506 ++
 1.32507 ++  /* The textual name of the relocation type.  */
 1.32508 ++  char *name;
 1.32509 ++
 1.32510 ++  /* Some formats record a relocation addend in the section contents
 1.32511 ++     rather than with the relocation.  For ELF formats this is the
 1.32512 ++     distinction between USE_REL and USE_RELA (though the code checks
 1.32513 ++     for USE_REL == 1/0).  The value of this field is TRUE if the
 1.32514 ++     addend is recorded with the section contents; when performing a
 1.32515 ++     partial link (ld -r) the section contents (the data) will be
 1.32516 ++     modified.  The value of this field is FALSE if addends are
 1.32517 ++     recorded with the relocation (in arelent.addend); when performing
 1.32518 ++     a partial link the relocation will be modified.
 1.32519 ++     All relocations for all ELF USE_RELA targets should set this field
 1.32520 ++     to FALSE (values of TRUE should be looked on with suspicion).
 1.32521 ++     However, the converse is not true: not all relocations of all ELF
 1.32522 ++     USE_REL targets set this field to TRUE.  Why this is so is peculiar
 1.32523 ++     to each particular target.  For relocs that aren't used in partial
 1.32524 ++     links (e.g. GOT stuff) it doesn't matter what this is set to.  */
 1.32525 ++  bfd_boolean partial_inplace;
 1.32526 ++
 1.32527 ++  /* src_mask selects the part of the instruction (or data) to be used
 1.32528 ++     in the relocation sum.  If the target relocations don't have an
 1.32529 ++     addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
 1.32530 ++     dst_mask to extract the addend from the section contents.  If
 1.32531 ++     relocations do have an addend in the reloc, eg. ELF USE_RELA, this
 1.32532 ++     field should be zero.  Non-zero values for ELF USE_RELA targets are
 1.32533 ++     bogus as in those cases the value in the dst_mask part of the
 1.32534 ++     section contents should be treated as garbage.  */
 1.32535 ++  bfd_vma src_mask;
 1.32536 ++
 1.32537 ++  /* dst_mask selects which parts of the instruction (or data) are
 1.32538 ++     replaced with a relocated value.  */
 1.32539 ++  bfd_vma dst_mask;
 1.32540 ++
 1.32541 ++  /* When some formats create PC relative instructions, they leave
 1.32542 ++     the value of the pc of the place being relocated in the offset
 1.32543 ++     slot of the instruction, so that a PC relative relocation can
 1.32544 ++     be made just by adding in an ordinary offset (e.g., sun3 a.out).
 1.32545 ++     Some formats leave the displacement part of an instruction
 1.32546 ++     empty (e.g., m88k bcs); this flag signals the fact.  */
 1.32547 ++  bfd_boolean pcrel_offset;
 1.32548 ++};
 1.32549 ++
 1.32550 ++#define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \
 1.32551 ++  { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC }
 1.32552 ++#define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
 1.32553 ++  HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \
 1.32554 ++         NAME, FALSE, 0, 0, IN)
 1.32555 ++
 1.32556 ++#define EMPTY_HOWTO(C) \
 1.32557 ++  HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
 1.32558 ++         NULL, FALSE, 0, 0, FALSE)
 1.32559 ++
 1.32560 ++#define HOWTO_PREPARE(relocation, symbol)               \
 1.32561 ++  {                                                     \
 1.32562 ++    if (symbol != NULL)                                 \
 1.32563 ++      {                                                 \
 1.32564 ++        if (bfd_is_com_section (symbol->section))       \
 1.32565 ++          {                                             \
 1.32566 ++            relocation = 0;                             \
 1.32567 ++          }                                             \
 1.32568 ++        else                                            \
 1.32569 ++          {                                             \
 1.32570 ++            relocation = symbol->value;                 \
 1.32571 ++          }                                             \
 1.32572 ++      }                                                 \
 1.32573 ++  }
 1.32574 ++
 1.32575 ++unsigned int bfd_get_reloc_size (reloc_howto_type *);
 1.32576 ++
 1.32577 ++typedef struct relent_chain
 1.32578 ++{
 1.32579 ++  arelent relent;
 1.32580 ++  struct relent_chain *next;
 1.32581 ++}
 1.32582 ++arelent_chain;
 1.32583 ++
 1.32584 ++bfd_reloc_status_type bfd_check_overflow
 1.32585 ++   (enum complain_overflow how,
 1.32586 ++    unsigned int bitsize,
 1.32587 ++    unsigned int rightshift,
 1.32588 ++    unsigned int addrsize,
 1.32589 ++    bfd_vma relocation);
 1.32590 ++
 1.32591 ++bfd_reloc_status_type bfd_perform_relocation
 1.32592 ++   (bfd *abfd,
 1.32593 ++    arelent *reloc_entry,
 1.32594 ++    void *data,
 1.32595 ++    asection *input_section,
 1.32596 ++    bfd *output_bfd,
 1.32597 ++    char **error_message);
 1.32598 ++
 1.32599 ++bfd_reloc_status_type bfd_install_relocation
 1.32600 ++   (bfd *abfd,
 1.32601 ++    arelent *reloc_entry,
 1.32602 ++    void *data, bfd_vma data_start,
 1.32603 ++    asection *input_section,
 1.32604 ++    char **error_message);
 1.32605 ++
 1.32606 ++enum bfd_reloc_code_real {
 1.32607 ++  _dummy_first_bfd_reloc_code_real,
 1.32608 ++
 1.32609 ++
 1.32610 ++/* Basic absolute relocations of N bits.  */
 1.32611 ++  BFD_RELOC_64,
 1.32612 ++  BFD_RELOC_32,
 1.32613 ++  BFD_RELOC_26,
 1.32614 ++  BFD_RELOC_24,
 1.32615 ++  BFD_RELOC_16,
 1.32616 ++  BFD_RELOC_14,
 1.32617 ++  BFD_RELOC_8,
 1.32618 ++
 1.32619 ++/* PC-relative relocations.  Sometimes these are relative to the address
 1.32620 ++of the relocation itself; sometimes they are relative to the start of
 1.32621 ++the section containing the relocation.  It depends on the specific target.
 1.32622 ++
 1.32623 ++The 24-bit relocation is used in some Intel 960 configurations.  */
 1.32624 ++  BFD_RELOC_64_PCREL,
 1.32625 ++  BFD_RELOC_32_PCREL,
 1.32626 ++  BFD_RELOC_24_PCREL,
 1.32627 ++  BFD_RELOC_16_PCREL,
 1.32628 ++  BFD_RELOC_12_PCREL,
 1.32629 ++  BFD_RELOC_8_PCREL,
 1.32630 ++
 1.32631 ++/* Section relative relocations.  Some targets need this for DWARF2.  */
 1.32632 ++  BFD_RELOC_32_SECREL,
 1.32633 ++
 1.32634 ++/* For ELF.  */
 1.32635 ++  BFD_RELOC_32_GOT_PCREL,
 1.32636 ++  BFD_RELOC_16_GOT_PCREL,
 1.32637 ++  BFD_RELOC_8_GOT_PCREL,
 1.32638 ++  BFD_RELOC_32_GOTOFF,
 1.32639 ++  BFD_RELOC_16_GOTOFF,
 1.32640 ++  BFD_RELOC_LO16_GOTOFF,
 1.32641 ++  BFD_RELOC_HI16_GOTOFF,
 1.32642 ++  BFD_RELOC_HI16_S_GOTOFF,
 1.32643 ++  BFD_RELOC_8_GOTOFF,
 1.32644 ++  BFD_RELOC_64_PLT_PCREL,
 1.32645 ++  BFD_RELOC_32_PLT_PCREL,
 1.32646 ++  BFD_RELOC_24_PLT_PCREL,
 1.32647 ++  BFD_RELOC_16_PLT_PCREL,
 1.32648 ++  BFD_RELOC_8_PLT_PCREL,
 1.32649 ++  BFD_RELOC_64_PLTOFF,
 1.32650 ++  BFD_RELOC_32_PLTOFF,
 1.32651 ++  BFD_RELOC_16_PLTOFF,
 1.32652 ++  BFD_RELOC_LO16_PLTOFF,
 1.32653 ++  BFD_RELOC_HI16_PLTOFF,
 1.32654 ++  BFD_RELOC_HI16_S_PLTOFF,
 1.32655 ++  BFD_RELOC_8_PLTOFF,
 1.32656 ++
 1.32657 ++/* Relocations used by 68K ELF.  */
 1.32658 ++  BFD_RELOC_68K_GLOB_DAT,
 1.32659 ++  BFD_RELOC_68K_JMP_SLOT,
 1.32660 ++  BFD_RELOC_68K_RELATIVE,
 1.32661 ++
 1.32662 ++/* Linkage-table relative.  */
 1.32663 ++  BFD_RELOC_32_BASEREL,
 1.32664 ++  BFD_RELOC_16_BASEREL,
 1.32665 ++  BFD_RELOC_LO16_BASEREL,
 1.32666 ++  BFD_RELOC_HI16_BASEREL,
 1.32667 ++  BFD_RELOC_HI16_S_BASEREL,
 1.32668 ++  BFD_RELOC_8_BASEREL,
 1.32669 ++  BFD_RELOC_RVA,
 1.32670 ++
 1.32671 ++/* Absolute 8-bit relocation, but used to form an address like 0xFFnn.  */
 1.32672 ++  BFD_RELOC_8_FFnn,
 1.32673 ++
 1.32674 ++/* These PC-relative relocations are stored as word displacements --
 1.32675 ++i.e., byte displacements shifted right two bits.  The 30-bit word
 1.32676 ++displacement (<<32_PCREL_S2>> -- 32 bits, shifted 2) is used on the
 1.32677 ++SPARC.  (SPARC tools generally refer to this as <<WDISP30>>.)  The
 1.32678 ++signed 16-bit displacement is used on the MIPS, and the 23-bit
 1.32679 ++displacement is used on the Alpha.  */
 1.32680 ++  BFD_RELOC_32_PCREL_S2,
 1.32681 ++  BFD_RELOC_16_PCREL_S2,
 1.32682 ++  BFD_RELOC_23_PCREL_S2,
 1.32683 ++
 1.32684 ++/* High 22 bits and low 10 bits of 32-bit value, placed into lower bits of
 1.32685 ++the target word.  These are used on the SPARC.  */
 1.32686 ++  BFD_RELOC_HI22,
 1.32687 ++  BFD_RELOC_LO10,
 1.32688 ++
 1.32689 ++/* For systems that allocate a Global Pointer register, these are
 1.32690 ++displacements off that register.  These relocation types are
 1.32691 ++handled specially, because the value the register will have is
 1.32692 ++decided relatively late.  */
 1.32693 ++  BFD_RELOC_GPREL16,
 1.32694 ++  BFD_RELOC_GPREL32,
 1.32695 ++
 1.32696 ++/* Reloc types used for i960/b.out.  */
 1.32697 ++  BFD_RELOC_I960_CALLJ,
 1.32698 ++
 1.32699 ++/* SPARC ELF relocations.  There is probably some overlap with other
 1.32700 ++relocation types already defined.  */
 1.32701 ++  BFD_RELOC_NONE,
 1.32702 ++  BFD_RELOC_SPARC_WDISP22,
 1.32703 ++  BFD_RELOC_SPARC22,
 1.32704 ++  BFD_RELOC_SPARC13,
 1.32705 ++  BFD_RELOC_SPARC_GOT10,
 1.32706 ++  BFD_RELOC_SPARC_GOT13,
 1.32707 ++  BFD_RELOC_SPARC_GOT22,
 1.32708 ++  BFD_RELOC_SPARC_PC10,
 1.32709 ++  BFD_RELOC_SPARC_PC22,
 1.32710 ++  BFD_RELOC_SPARC_WPLT30,
 1.32711 ++  BFD_RELOC_SPARC_COPY,
 1.32712 ++  BFD_RELOC_SPARC_GLOB_DAT,
 1.32713 ++  BFD_RELOC_SPARC_JMP_SLOT,
 1.32714 ++  BFD_RELOC_SPARC_RELATIVE,
 1.32715 ++  BFD_RELOC_SPARC_UA16,
 1.32716 ++  BFD_RELOC_SPARC_UA32,
 1.32717 ++  BFD_RELOC_SPARC_UA64,
 1.32718 ++
 1.32719 ++/* I think these are specific to SPARC a.out (e.g., Sun 4).  */
 1.32720 ++  BFD_RELOC_SPARC_BASE13,
 1.32721 ++  BFD_RELOC_SPARC_BASE22,
 1.32722 ++
 1.32723 ++/* SPARC64 relocations  */
 1.32724 ++#define BFD_RELOC_SPARC_64 BFD_RELOC_64
 1.32725 ++  BFD_RELOC_SPARC_10,
 1.32726 ++  BFD_RELOC_SPARC_11,
 1.32727 ++  BFD_RELOC_SPARC_OLO10,
 1.32728 ++  BFD_RELOC_SPARC_HH22,
 1.32729 ++  BFD_RELOC_SPARC_HM10,
 1.32730 ++  BFD_RELOC_SPARC_LM22,
 1.32731 ++  BFD_RELOC_SPARC_PC_HH22,
 1.32732 ++  BFD_RELOC_SPARC_PC_HM10,
 1.32733 ++  BFD_RELOC_SPARC_PC_LM22,
 1.32734 ++  BFD_RELOC_SPARC_WDISP16,
 1.32735 ++  BFD_RELOC_SPARC_WDISP19,
 1.32736 ++  BFD_RELOC_SPARC_7,
 1.32737 ++  BFD_RELOC_SPARC_6,
 1.32738 ++  BFD_RELOC_SPARC_5,
 1.32739 ++#define BFD_RELOC_SPARC_DISP64 BFD_RELOC_64_PCREL
 1.32740 ++  BFD_RELOC_SPARC_PLT32,
 1.32741 ++  BFD_RELOC_SPARC_PLT64,
 1.32742 ++  BFD_RELOC_SPARC_HIX22,
 1.32743 ++  BFD_RELOC_SPARC_LOX10,
 1.32744 ++  BFD_RELOC_SPARC_H44,
 1.32745 ++  BFD_RELOC_SPARC_M44,
 1.32746 ++  BFD_RELOC_SPARC_L44,
 1.32747 ++  BFD_RELOC_SPARC_REGISTER,
 1.32748 ++
 1.32749 ++/* SPARC little endian relocation  */
 1.32750 ++  BFD_RELOC_SPARC_REV32,
 1.32751 ++
 1.32752 ++/* SPARC TLS relocations  */
 1.32753 ++  BFD_RELOC_SPARC_TLS_GD_HI22,
 1.32754 ++  BFD_RELOC_SPARC_TLS_GD_LO10,
 1.32755 ++  BFD_RELOC_SPARC_TLS_GD_ADD,
 1.32756 ++  BFD_RELOC_SPARC_TLS_GD_CALL,
 1.32757 ++  BFD_RELOC_SPARC_TLS_LDM_HI22,
 1.32758 ++  BFD_RELOC_SPARC_TLS_LDM_LO10,
 1.32759 ++  BFD_RELOC_SPARC_TLS_LDM_ADD,
 1.32760 ++  BFD_RELOC_SPARC_TLS_LDM_CALL,
 1.32761 ++  BFD_RELOC_SPARC_TLS_LDO_HIX22,
 1.32762 ++  BFD_RELOC_SPARC_TLS_LDO_LOX10,
 1.32763 ++  BFD_RELOC_SPARC_TLS_LDO_ADD,
 1.32764 ++  BFD_RELOC_SPARC_TLS_IE_HI22,
 1.32765 ++  BFD_RELOC_SPARC_TLS_IE_LO10,
 1.32766 ++  BFD_RELOC_SPARC_TLS_IE_LD,
 1.32767 ++  BFD_RELOC_SPARC_TLS_IE_LDX,
 1.32768 ++  BFD_RELOC_SPARC_TLS_IE_ADD,
 1.32769 ++  BFD_RELOC_SPARC_TLS_LE_HIX22,
 1.32770 ++  BFD_RELOC_SPARC_TLS_LE_LOX10,
 1.32771 ++  BFD_RELOC_SPARC_TLS_DTPMOD32,
 1.32772 ++  BFD_RELOC_SPARC_TLS_DTPMOD64,
 1.32773 ++  BFD_RELOC_SPARC_TLS_DTPOFF32,
 1.32774 ++  BFD_RELOC_SPARC_TLS_DTPOFF64,
 1.32775 ++  BFD_RELOC_SPARC_TLS_TPOFF32,
 1.32776 ++  BFD_RELOC_SPARC_TLS_TPOFF64,
 1.32777 ++
 1.32778 ++/* SPU Relocations.  */
 1.32779 ++  BFD_RELOC_SPU_IMM7,
 1.32780 ++  BFD_RELOC_SPU_IMM8,
 1.32781 ++  BFD_RELOC_SPU_IMM10,
 1.32782 ++  BFD_RELOC_SPU_IMM10W,
 1.32783 ++  BFD_RELOC_SPU_IMM16,
 1.32784 ++  BFD_RELOC_SPU_IMM16W,
 1.32785 ++  BFD_RELOC_SPU_IMM18,
 1.32786 ++  BFD_RELOC_SPU_PCREL9a,
 1.32787 ++  BFD_RELOC_SPU_PCREL9b,
 1.32788 ++  BFD_RELOC_SPU_PCREL16,
 1.32789 ++  BFD_RELOC_SPU_LO16,
 1.32790 ++  BFD_RELOC_SPU_HI16,
 1.32791 ++  BFD_RELOC_SPU_PPU32,
 1.32792 ++  BFD_RELOC_SPU_PPU64,
 1.32793 ++
 1.32794 ++/* Alpha ECOFF and ELF relocations.  Some of these treat the symbol or
 1.32795 ++"addend" in some special way.
 1.32796 ++For GPDISP_HI16 ("gpdisp") relocations, the symbol is ignored when
 1.32797 ++writing; when reading, it will be the absolute section symbol.  The
 1.32798 ++addend is the displacement in bytes of the "lda" instruction from
 1.32799 ++the "ldah" instruction (which is at the address of this reloc).  */
 1.32800 ++  BFD_RELOC_ALPHA_GPDISP_HI16,
 1.32801 ++
 1.32802 ++/* For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
 1.32803 ++with GPDISP_HI16 relocs.  The addend is ignored when writing the
 1.32804 ++relocations out, and is filled in with the file's GP value on
 1.32805 ++reading, for convenience.  */
 1.32806 ++  BFD_RELOC_ALPHA_GPDISP_LO16,
 1.32807 ++
 1.32808 ++/* The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
 1.32809 ++relocation except that there is no accompanying GPDISP_LO16
 1.32810 ++relocation.  */
 1.32811 ++  BFD_RELOC_ALPHA_GPDISP,
 1.32812 ++
 1.32813 ++/* The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
 1.32814 ++the assembler turns it into a LDQ instruction to load the address of
 1.32815 ++the symbol, and then fills in a register in the real instruction.
 1.32816 ++
 1.32817 ++The LITERAL reloc, at the LDQ instruction, refers to the .lita
 1.32818 ++section symbol.  The addend is ignored when writing, but is filled
 1.32819 ++in with the file's GP value on reading, for convenience, as with the
 1.32820 ++GPDISP_LO16 reloc.
 1.32821 ++
 1.32822 ++The ELF_LITERAL reloc is somewhere between 16_GOTOFF and GPDISP_LO16.
 1.32823 ++It should refer to the symbol to be referenced, as with 16_GOTOFF,
 1.32824 ++but it generates output not based on the position within the .got
 1.32825 ++section, but relative to the GP value chosen for the file during the
 1.32826 ++final link stage.
 1.32827 ++
 1.32828 ++The LITUSE reloc, on the instruction using the loaded address, gives
 1.32829 ++information to the linker that it might be able to use to optimize
 1.32830 ++away some literal section references.  The symbol is ignored (read
 1.32831 ++as the absolute section symbol), and the "addend" indicates the type
 1.32832 ++of instruction using the register:
 1.32833 ++1 - "memory" fmt insn
 1.32834 ++2 - byte-manipulation (byte offset reg)
 1.32835 ++3 - jsr (target of branch)  */
 1.32836 ++  BFD_RELOC_ALPHA_LITERAL,
 1.32837 ++  BFD_RELOC_ALPHA_ELF_LITERAL,
 1.32838 ++  BFD_RELOC_ALPHA_LITUSE,
 1.32839 ++
 1.32840 ++/* The HINT relocation indicates a value that should be filled into the
 1.32841 ++"hint" field of a jmp/jsr/ret instruction, for possible branch-
 1.32842 ++prediction logic which may be provided on some processors.  */
 1.32843 ++  BFD_RELOC_ALPHA_HINT,
 1.32844 ++
 1.32845 ++/* The LINKAGE relocation outputs a linkage pair in the object file,
 1.32846 ++which is filled by the linker.  */
 1.32847 ++  BFD_RELOC_ALPHA_LINKAGE,
 1.32848 ++
 1.32849 ++/* The CODEADDR relocation outputs a STO_CA in the object file,
 1.32850 ++which is filled by the linker.  */
 1.32851 ++  BFD_RELOC_ALPHA_CODEADDR,
 1.32852 ++
 1.32853 ++/* The GPREL_HI/LO relocations together form a 32-bit offset from the
 1.32854 ++GP register.  */
 1.32855 ++  BFD_RELOC_ALPHA_GPREL_HI16,
 1.32856 ++  BFD_RELOC_ALPHA_GPREL_LO16,
 1.32857 ++
 1.32858 ++/* Like BFD_RELOC_23_PCREL_S2, except that the source and target must
 1.32859 ++share a common GP, and the target address is adjusted for
 1.32860 ++STO_ALPHA_STD_GPLOAD.  */
 1.32861 ++  BFD_RELOC_ALPHA_BRSGP,
 1.32862 ++
 1.32863 ++/* Alpha thread-local storage relocations.  */
 1.32864 ++  BFD_RELOC_ALPHA_TLSGD,
 1.32865 ++  BFD_RELOC_ALPHA_TLSLDM,
 1.32866 ++  BFD_RELOC_ALPHA_DTPMOD64,
 1.32867 ++  BFD_RELOC_ALPHA_GOTDTPREL16,
 1.32868 ++  BFD_RELOC_ALPHA_DTPREL64,
 1.32869 ++  BFD_RELOC_ALPHA_DTPREL_HI16,
 1.32870 ++  BFD_RELOC_ALPHA_DTPREL_LO16,
 1.32871 ++  BFD_RELOC_ALPHA_DTPREL16,
 1.32872 ++  BFD_RELOC_ALPHA_GOTTPREL16,
 1.32873 ++  BFD_RELOC_ALPHA_TPREL64,
 1.32874 ++  BFD_RELOC_ALPHA_TPREL_HI16,
 1.32875 ++  BFD_RELOC_ALPHA_TPREL_LO16,
 1.32876 ++  BFD_RELOC_ALPHA_TPREL16,
 1.32877 ++
 1.32878 ++/* Bits 27..2 of the relocation address shifted right 2 bits;
 1.32879 ++simple reloc otherwise.  */
 1.32880 ++  BFD_RELOC_MIPS_JMP,
 1.32881 ++
 1.32882 ++/* The MIPS16 jump instruction.  */
 1.32883 ++  BFD_RELOC_MIPS16_JMP,
 1.32884 ++
 1.32885 ++/* MIPS16 GP relative reloc.  */
 1.32886 ++  BFD_RELOC_MIPS16_GPREL,
 1.32887 ++
 1.32888 ++/* High 16 bits of 32-bit value; simple reloc.  */
 1.32889 ++  BFD_RELOC_HI16,
 1.32890 ++
 1.32891 ++/* High 16 bits of 32-bit value but the low 16 bits will be sign
 1.32892 ++extended and added to form the final result.  If the low 16
 1.32893 ++bits form a negative number, we need to add one to the high value
 1.32894 ++to compensate for the borrow when the low bits are added.  */
 1.32895 ++  BFD_RELOC_HI16_S,
 1.32896 ++
 1.32897 ++/* Low 16 bits.  */
 1.32898 ++  BFD_RELOC_LO16,
 1.32899 ++
 1.32900 ++/* High 16 bits of 32-bit pc-relative value  */
 1.32901 ++  BFD_RELOC_HI16_PCREL,
 1.32902 ++
 1.32903 ++/* High 16 bits of 32-bit pc-relative value, adjusted  */
 1.32904 ++  BFD_RELOC_HI16_S_PCREL,
 1.32905 ++
 1.32906 ++/* Low 16 bits of pc-relative value  */
 1.32907 ++  BFD_RELOC_LO16_PCREL,
 1.32908 ++
 1.32909 ++/* MIPS16 high 16 bits of 32-bit value.  */
 1.32910 ++  BFD_RELOC_MIPS16_HI16,
 1.32911 ++
 1.32912 ++/* MIPS16 high 16 bits of 32-bit value but the low 16 bits will be sign
 1.32913 ++extended and added to form the final result.  If the low 16
 1.32914 ++bits form a negative number, we need to add one to the high value
 1.32915 ++to compensate for the borrow when the low bits are added.  */
 1.32916 ++  BFD_RELOC_MIPS16_HI16_S,
 1.32917 ++
 1.32918 ++/* MIPS16 low 16 bits.  */
 1.32919 ++  BFD_RELOC_MIPS16_LO16,
 1.32920 ++
 1.32921 ++/* Relocation against a MIPS literal section.  */
 1.32922 ++  BFD_RELOC_MIPS_LITERAL,
 1.32923 ++
 1.32924 ++/* MIPS ELF relocations.  */
 1.32925 ++  BFD_RELOC_MIPS_GOT16,
 1.32926 ++  BFD_RELOC_MIPS_CALL16,
 1.32927 ++  BFD_RELOC_MIPS_GOT_HI16,
 1.32928 ++  BFD_RELOC_MIPS_GOT_LO16,
 1.32929 ++  BFD_RELOC_MIPS_CALL_HI16,
 1.32930 ++  BFD_RELOC_MIPS_CALL_LO16,
 1.32931 ++  BFD_RELOC_MIPS_SUB,
 1.32932 ++  BFD_RELOC_MIPS_GOT_PAGE,
 1.32933 ++  BFD_RELOC_MIPS_GOT_OFST,
 1.32934 ++  BFD_RELOC_MIPS_GOT_DISP,
 1.32935 ++  BFD_RELOC_MIPS_SHIFT5,
 1.32936 ++  BFD_RELOC_MIPS_SHIFT6,
 1.32937 ++  BFD_RELOC_MIPS_INSERT_A,
 1.32938 ++  BFD_RELOC_MIPS_INSERT_B,
 1.32939 ++  BFD_RELOC_MIPS_DELETE,
 1.32940 ++  BFD_RELOC_MIPS_HIGHEST,
 1.32941 ++  BFD_RELOC_MIPS_HIGHER,
 1.32942 ++  BFD_RELOC_MIPS_SCN_DISP,
 1.32943 ++  BFD_RELOC_MIPS_REL16,
 1.32944 ++  BFD_RELOC_MIPS_RELGOT,
 1.32945 ++  BFD_RELOC_MIPS_JALR,
 1.32946 ++  BFD_RELOC_MIPS_TLS_DTPMOD32,
 1.32947 ++  BFD_RELOC_MIPS_TLS_DTPREL32,
 1.32948 ++  BFD_RELOC_MIPS_TLS_DTPMOD64,
 1.32949 ++  BFD_RELOC_MIPS_TLS_DTPREL64,
 1.32950 ++  BFD_RELOC_MIPS_TLS_GD,
 1.32951 ++  BFD_RELOC_MIPS_TLS_LDM,
 1.32952 ++  BFD_RELOC_MIPS_TLS_DTPREL_HI16,
 1.32953 ++  BFD_RELOC_MIPS_TLS_DTPREL_LO16,
 1.32954 ++  BFD_RELOC_MIPS_TLS_GOTTPREL,
 1.32955 ++  BFD_RELOC_MIPS_TLS_TPREL32,
 1.32956 ++  BFD_RELOC_MIPS_TLS_TPREL64,
 1.32957 ++  BFD_RELOC_MIPS_TLS_TPREL_HI16,
 1.32958 ++  BFD_RELOC_MIPS_TLS_TPREL_LO16,
 1.32959 ++
 1.32960 ++
 1.32961 ++/* MIPS ELF relocations (VxWorks extensions).  */
 1.32962 ++  BFD_RELOC_MIPS_COPY,
 1.32963 ++  BFD_RELOC_MIPS_JUMP_SLOT,
 1.32964 ++
 1.32965 ++
 1.32966 ++/* Fujitsu Frv Relocations.  */
 1.32967 ++  BFD_RELOC_FRV_LABEL16,
 1.32968 ++  BFD_RELOC_FRV_LABEL24,
 1.32969 ++  BFD_RELOC_FRV_LO16,
 1.32970 ++  BFD_RELOC_FRV_HI16,
 1.32971 ++  BFD_RELOC_FRV_GPREL12,
 1.32972 ++  BFD_RELOC_FRV_GPRELU12,
 1.32973 ++  BFD_RELOC_FRV_GPREL32,
 1.32974 ++  BFD_RELOC_FRV_GPRELHI,
 1.32975 ++  BFD_RELOC_FRV_GPRELLO,
 1.32976 ++  BFD_RELOC_FRV_GOT12,
 1.32977 ++  BFD_RELOC_FRV_GOTHI,
 1.32978 ++  BFD_RELOC_FRV_GOTLO,
 1.32979 ++  BFD_RELOC_FRV_FUNCDESC,
 1.32980 ++  BFD_RELOC_FRV_FUNCDESC_GOT12,
 1.32981 ++  BFD_RELOC_FRV_FUNCDESC_GOTHI,
 1.32982 ++  BFD_RELOC_FRV_FUNCDESC_GOTLO,
 1.32983 ++  BFD_RELOC_FRV_FUNCDESC_VALUE,
 1.32984 ++  BFD_RELOC_FRV_FUNCDESC_GOTOFF12,
 1.32985 ++  BFD_RELOC_FRV_FUNCDESC_GOTOFFHI,
 1.32986 ++  BFD_RELOC_FRV_FUNCDESC_GOTOFFLO,
 1.32987 ++  BFD_RELOC_FRV_GOTOFF12,
 1.32988 ++  BFD_RELOC_FRV_GOTOFFHI,
 1.32989 ++  BFD_RELOC_FRV_GOTOFFLO,
 1.32990 ++  BFD_RELOC_FRV_GETTLSOFF,
 1.32991 ++  BFD_RELOC_FRV_TLSDESC_VALUE,
 1.32992 ++  BFD_RELOC_FRV_GOTTLSDESC12,
 1.32993 ++  BFD_RELOC_FRV_GOTTLSDESCHI,
 1.32994 ++  BFD_RELOC_FRV_GOTTLSDESCLO,
 1.32995 ++  BFD_RELOC_FRV_TLSMOFF12,
 1.32996 ++  BFD_RELOC_FRV_TLSMOFFHI,
 1.32997 ++  BFD_RELOC_FRV_TLSMOFFLO,
 1.32998 ++  BFD_RELOC_FRV_GOTTLSOFF12,
 1.32999 ++  BFD_RELOC_FRV_GOTTLSOFFHI,
 1.33000 ++  BFD_RELOC_FRV_GOTTLSOFFLO,
 1.33001 ++  BFD_RELOC_FRV_TLSOFF,
 1.33002 ++  BFD_RELOC_FRV_TLSDESC_RELAX,
 1.33003 ++  BFD_RELOC_FRV_GETTLSOFF_RELAX,
 1.33004 ++  BFD_RELOC_FRV_TLSOFF_RELAX,
 1.33005 ++  BFD_RELOC_FRV_TLSMOFF,
 1.33006 ++
 1.33007 ++
 1.33008 ++/* This is a 24bit GOT-relative reloc for the mn10300.  */
 1.33009 ++  BFD_RELOC_MN10300_GOTOFF24,
 1.33010 ++
 1.33011 ++/* This is a 32bit GOT-relative reloc for the mn10300, offset by two bytes
 1.33012 ++in the instruction.  */
 1.33013 ++  BFD_RELOC_MN10300_GOT32,
 1.33014 ++
 1.33015 ++/* This is a 24bit GOT-relative reloc for the mn10300, offset by two bytes
 1.33016 ++in the instruction.  */
 1.33017 ++  BFD_RELOC_MN10300_GOT24,
 1.33018 ++
 1.33019 ++/* This is a 16bit GOT-relative reloc for the mn10300, offset by two bytes
 1.33020 ++in the instruction.  */
 1.33021 ++  BFD_RELOC_MN10300_GOT16,
 1.33022 ++
 1.33023 ++/* Copy symbol at runtime.  */
 1.33024 ++  BFD_RELOC_MN10300_COPY,
 1.33025 ++
 1.33026 ++/* Create GOT entry.  */
 1.33027 ++  BFD_RELOC_MN10300_GLOB_DAT,
 1.33028 ++
 1.33029 ++/* Create PLT entry.  */
 1.33030 ++  BFD_RELOC_MN10300_JMP_SLOT,
 1.33031 ++
 1.33032 ++/* Adjust by program base.  */
 1.33033 ++  BFD_RELOC_MN10300_RELATIVE,
 1.33034 ++
 1.33035 ++
 1.33036 ++/* i386/elf relocations  */
 1.33037 ++  BFD_RELOC_386_GOT32,
 1.33038 ++  BFD_RELOC_386_PLT32,
 1.33039 ++  BFD_RELOC_386_COPY,
 1.33040 ++  BFD_RELOC_386_GLOB_DAT,
 1.33041 ++  BFD_RELOC_386_JUMP_SLOT,
 1.33042 ++  BFD_RELOC_386_RELATIVE,
 1.33043 ++  BFD_RELOC_386_GOTOFF,
 1.33044 ++  BFD_RELOC_386_GOTPC,
 1.33045 ++  BFD_RELOC_386_TLS_TPOFF,
 1.33046 ++  BFD_RELOC_386_TLS_IE,
 1.33047 ++  BFD_RELOC_386_TLS_GOTIE,
 1.33048 ++  BFD_RELOC_386_TLS_LE,
 1.33049 ++  BFD_RELOC_386_TLS_GD,
 1.33050 ++  BFD_RELOC_386_TLS_LDM,
 1.33051 ++  BFD_RELOC_386_TLS_LDO_32,
 1.33052 ++  BFD_RELOC_386_TLS_IE_32,
 1.33053 ++  BFD_RELOC_386_TLS_LE_32,
 1.33054 ++  BFD_RELOC_386_TLS_DTPMOD32,
 1.33055 ++  BFD_RELOC_386_TLS_DTPOFF32,
 1.33056 ++  BFD_RELOC_386_TLS_TPOFF32,
 1.33057 ++  BFD_RELOC_386_TLS_GOTDESC,
 1.33058 ++  BFD_RELOC_386_TLS_DESC_CALL,
 1.33059 ++  BFD_RELOC_386_TLS_DESC,
 1.33060 ++
 1.33061 ++/* x86-64/elf relocations  */
 1.33062 ++  BFD_RELOC_X86_64_GOT32,
 1.33063 ++  BFD_RELOC_X86_64_PLT32,
 1.33064 ++  BFD_RELOC_X86_64_COPY,
 1.33065 ++  BFD_RELOC_X86_64_GLOB_DAT,
 1.33066 ++  BFD_RELOC_X86_64_JUMP_SLOT,
 1.33067 ++  BFD_RELOC_X86_64_RELATIVE,
 1.33068 ++  BFD_RELOC_X86_64_GOTPCREL,
 1.33069 ++  BFD_RELOC_X86_64_32S,
 1.33070 ++  BFD_RELOC_X86_64_DTPMOD64,
 1.33071 ++  BFD_RELOC_X86_64_DTPOFF64,
 1.33072 ++  BFD_RELOC_X86_64_TPOFF64,
 1.33073 ++  BFD_RELOC_X86_64_TLSGD,
 1.33074 ++  BFD_RELOC_X86_64_TLSLD,
 1.33075 ++  BFD_RELOC_X86_64_DTPOFF32,
 1.33076 ++  BFD_RELOC_X86_64_GOTTPOFF,
 1.33077 ++  BFD_RELOC_X86_64_TPOFF32,
 1.33078 ++  BFD_RELOC_X86_64_GOTOFF64,
 1.33079 ++  BFD_RELOC_X86_64_GOTPC32,
 1.33080 ++  BFD_RELOC_X86_64_GOT64,
 1.33081 ++  BFD_RELOC_X86_64_GOTPCREL64,
 1.33082 ++  BFD_RELOC_X86_64_GOTPC64,
 1.33083 ++  BFD_RELOC_X86_64_GOTPLT64,
 1.33084 ++  BFD_RELOC_X86_64_PLTOFF64,
 1.33085 ++  BFD_RELOC_X86_64_GOTPC32_TLSDESC,
 1.33086 ++  BFD_RELOC_X86_64_TLSDESC_CALL,
 1.33087 ++  BFD_RELOC_X86_64_TLSDESC,
 1.33088 ++
 1.33089 ++/* ns32k relocations  */
 1.33090 ++  BFD_RELOC_NS32K_IMM_8,
 1.33091 ++  BFD_RELOC_NS32K_IMM_16,
 1.33092 ++  BFD_RELOC_NS32K_IMM_32,
 1.33093 ++  BFD_RELOC_NS32K_IMM_8_PCREL,
 1.33094 ++  BFD_RELOC_NS32K_IMM_16_PCREL,
 1.33095 ++  BFD_RELOC_NS32K_IMM_32_PCREL,
 1.33096 ++  BFD_RELOC_NS32K_DISP_8,
 1.33097 ++  BFD_RELOC_NS32K_DISP_16,
 1.33098 ++  BFD_RELOC_NS32K_DISP_32,
 1.33099 ++  BFD_RELOC_NS32K_DISP_8_PCREL,
 1.33100 ++  BFD_RELOC_NS32K_DISP_16_PCREL,
 1.33101 ++  BFD_RELOC_NS32K_DISP_32_PCREL,
 1.33102 ++
 1.33103 ++/* PDP11 relocations  */
 1.33104 ++  BFD_RELOC_PDP11_DISP_8_PCREL,
 1.33105 ++  BFD_RELOC_PDP11_DISP_6_PCREL,
 1.33106 ++
 1.33107 ++/* Picojava relocs.  Not all of these appear in object files.  */
 1.33108 ++  BFD_RELOC_PJ_CODE_HI16,
 1.33109 ++  BFD_RELOC_PJ_CODE_LO16,
 1.33110 ++  BFD_RELOC_PJ_CODE_DIR16,
 1.33111 ++  BFD_RELOC_PJ_CODE_DIR32,
 1.33112 ++  BFD_RELOC_PJ_CODE_REL16,
 1.33113 ++  BFD_RELOC_PJ_CODE_REL32,
 1.33114 ++
 1.33115 ++/* Power(rs6000) and PowerPC relocations.  */
 1.33116 ++  BFD_RELOC_PPC_B26,
 1.33117 ++  BFD_RELOC_PPC_BA26,
 1.33118 ++  BFD_RELOC_PPC_TOC16,
 1.33119 ++  BFD_RELOC_PPC_B16,
 1.33120 ++  BFD_RELOC_PPC_B16_BRTAKEN,
 1.33121 ++  BFD_RELOC_PPC_B16_BRNTAKEN,
 1.33122 ++  BFD_RELOC_PPC_BA16,
 1.33123 ++  BFD_RELOC_PPC_BA16_BRTAKEN,
 1.33124 ++  BFD_RELOC_PPC_BA16_BRNTAKEN,
 1.33125 ++  BFD_RELOC_PPC_COPY,
 1.33126 ++  BFD_RELOC_PPC_GLOB_DAT,
 1.33127 ++  BFD_RELOC_PPC_JMP_SLOT,
 1.33128 ++  BFD_RELOC_PPC_RELATIVE,
 1.33129 ++  BFD_RELOC_PPC_LOCAL24PC,
 1.33130 ++  BFD_RELOC_PPC_EMB_NADDR32,
 1.33131 ++  BFD_RELOC_PPC_EMB_NADDR16,
 1.33132 ++  BFD_RELOC_PPC_EMB_NADDR16_LO,
 1.33133 ++  BFD_RELOC_PPC_EMB_NADDR16_HI,
 1.33134 ++  BFD_RELOC_PPC_EMB_NADDR16_HA,
 1.33135 ++  BFD_RELOC_PPC_EMB_SDAI16,
 1.33136 ++  BFD_RELOC_PPC_EMB_SDA2I16,
 1.33137 ++  BFD_RELOC_PPC_EMB_SDA2REL,
 1.33138 ++  BFD_RELOC_PPC_EMB_SDA21,
 1.33139 ++  BFD_RELOC_PPC_EMB_MRKREF,
 1.33140 ++  BFD_RELOC_PPC_EMB_RELSEC16,
 1.33141 ++  BFD_RELOC_PPC_EMB_RELST_LO,
 1.33142 ++  BFD_RELOC_PPC_EMB_RELST_HI,
 1.33143 ++  BFD_RELOC_PPC_EMB_RELST_HA,
 1.33144 ++  BFD_RELOC_PPC_EMB_BIT_FLD,
 1.33145 ++  BFD_RELOC_PPC_EMB_RELSDA,
 1.33146 ++  BFD_RELOC_PPC64_HIGHER,
 1.33147 ++  BFD_RELOC_PPC64_HIGHER_S,
 1.33148 ++  BFD_RELOC_PPC64_HIGHEST,
 1.33149 ++  BFD_RELOC_PPC64_HIGHEST_S,
 1.33150 ++  BFD_RELOC_PPC64_TOC16_LO,
 1.33151 ++  BFD_RELOC_PPC64_TOC16_HI,
 1.33152 ++  BFD_RELOC_PPC64_TOC16_HA,
 1.33153 ++  BFD_RELOC_PPC64_TOC,
 1.33154 ++  BFD_RELOC_PPC64_PLTGOT16,
 1.33155 ++  BFD_RELOC_PPC64_PLTGOT16_LO,
 1.33156 ++  BFD_RELOC_PPC64_PLTGOT16_HI,
 1.33157 ++  BFD_RELOC_PPC64_PLTGOT16_HA,
 1.33158 ++  BFD_RELOC_PPC64_ADDR16_DS,
 1.33159 ++  BFD_RELOC_PPC64_ADDR16_LO_DS,
 1.33160 ++  BFD_RELOC_PPC64_GOT16_DS,
 1.33161 ++  BFD_RELOC_PPC64_GOT16_LO_DS,
 1.33162 ++  BFD_RELOC_PPC64_PLT16_LO_DS,
 1.33163 ++  BFD_RELOC_PPC64_SECTOFF_DS,
 1.33164 ++  BFD_RELOC_PPC64_SECTOFF_LO_DS,
 1.33165 ++  BFD_RELOC_PPC64_TOC16_DS,
 1.33166 ++  BFD_RELOC_PPC64_TOC16_LO_DS,
 1.33167 ++  BFD_RELOC_PPC64_PLTGOT16_DS,
 1.33168 ++  BFD_RELOC_PPC64_PLTGOT16_LO_DS,
 1.33169 ++
 1.33170 ++/* PowerPC and PowerPC64 thread-local storage relocations.  */
 1.33171 ++  BFD_RELOC_PPC_TLS,
 1.33172 ++  BFD_RELOC_PPC_DTPMOD,
 1.33173 ++  BFD_RELOC_PPC_TPREL16,
 1.33174 ++  BFD_RELOC_PPC_TPREL16_LO,
 1.33175 ++  BFD_RELOC_PPC_TPREL16_HI,
 1.33176 ++  BFD_RELOC_PPC_TPREL16_HA,
 1.33177 ++  BFD_RELOC_PPC_TPREL,
 1.33178 ++  BFD_RELOC_PPC_DTPREL16,
 1.33179 ++  BFD_RELOC_PPC_DTPREL16_LO,
 1.33180 ++  BFD_RELOC_PPC_DTPREL16_HI,
 1.33181 ++  BFD_RELOC_PPC_DTPREL16_HA,
 1.33182 ++  BFD_RELOC_PPC_DTPREL,
 1.33183 ++  BFD_RELOC_PPC_GOT_TLSGD16,
 1.33184 ++  BFD_RELOC_PPC_GOT_TLSGD16_LO,
 1.33185 ++  BFD_RELOC_PPC_GOT_TLSGD16_HI,
 1.33186 ++  BFD_RELOC_PPC_GOT_TLSGD16_HA,
 1.33187 ++  BFD_RELOC_PPC_GOT_TLSLD16,
 1.33188 ++  BFD_RELOC_PPC_GOT_TLSLD16_LO,
 1.33189 ++  BFD_RELOC_PPC_GOT_TLSLD16_HI,
 1.33190 ++  BFD_RELOC_PPC_GOT_TLSLD16_HA,
 1.33191 ++  BFD_RELOC_PPC_GOT_TPREL16,
 1.33192 ++  BFD_RELOC_PPC_GOT_TPREL16_LO,
 1.33193 ++  BFD_RELOC_PPC_GOT_TPREL16_HI,
 1.33194 ++  BFD_RELOC_PPC_GOT_TPREL16_HA,
 1.33195 ++  BFD_RELOC_PPC_GOT_DTPREL16,
 1.33196 ++  BFD_RELOC_PPC_GOT_DTPREL16_LO,
 1.33197 ++  BFD_RELOC_PPC_GOT_DTPREL16_HI,
 1.33198 ++  BFD_RELOC_PPC_GOT_DTPREL16_HA,
 1.33199 ++  BFD_RELOC_PPC64_TPREL16_DS,
 1.33200 ++  BFD_RELOC_PPC64_TPREL16_LO_DS,
 1.33201 ++  BFD_RELOC_PPC64_TPREL16_HIGHER,
 1.33202 ++  BFD_RELOC_PPC64_TPREL16_HIGHERA,
 1.33203 ++  BFD_RELOC_PPC64_TPREL16_HIGHEST,
 1.33204 ++  BFD_RELOC_PPC64_TPREL16_HIGHESTA,
 1.33205 ++  BFD_RELOC_PPC64_DTPREL16_DS,
 1.33206 ++  BFD_RELOC_PPC64_DTPREL16_LO_DS,
 1.33207 ++  BFD_RELOC_PPC64_DTPREL16_HIGHER,
 1.33208 ++  BFD_RELOC_PPC64_DTPREL16_HIGHERA,
 1.33209 ++  BFD_RELOC_PPC64_DTPREL16_HIGHEST,
 1.33210 ++  BFD_RELOC_PPC64_DTPREL16_HIGHESTA,
 1.33211 ++
 1.33212 ++/* IBM 370/390 relocations  */
 1.33213 ++  BFD_RELOC_I370_D12,
 1.33214 ++
 1.33215 ++/* The type of reloc used to build a constructor table - at the moment
 1.33216 ++probably a 32 bit wide absolute relocation, but the target can choose.
 1.33217 ++It generally does map to one of the other relocation types.  */
 1.33218 ++  BFD_RELOC_CTOR,
 1.33219 ++
 1.33220 ++/* ARM 26 bit pc-relative branch.  The lowest two bits must be zero and are
 1.33221 ++not stored in the instruction.  */
 1.33222 ++  BFD_RELOC_ARM_PCREL_BRANCH,
 1.33223 ++
 1.33224 ++/* ARM 26 bit pc-relative branch.  The lowest bit must be zero and is
 1.33225 ++not stored in the instruction.  The 2nd lowest bit comes from a 1 bit
 1.33226 ++field in the instruction.  */
 1.33227 ++  BFD_RELOC_ARM_PCREL_BLX,
 1.33228 ++
 1.33229 ++/* Thumb 22 bit pc-relative branch.  The lowest bit must be zero and is
 1.33230 ++not stored in the instruction.  The 2nd lowest bit comes from a 1 bit
 1.33231 ++field in the instruction.  */
 1.33232 ++  BFD_RELOC_THUMB_PCREL_BLX,
 1.33233 ++
 1.33234 ++/* ARM 26-bit pc-relative branch for an unconditional BL or BLX instruction.  */
 1.33235 ++  BFD_RELOC_ARM_PCREL_CALL,
 1.33236 ++
 1.33237 ++/* ARM 26-bit pc-relative branch for B or conditional BL instruction.  */
 1.33238 ++  BFD_RELOC_ARM_PCREL_JUMP,
 1.33239 ++
 1.33240 ++/* Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.
 1.33241 ++The lowest bit must be zero and is not stored in the instruction.
 1.33242 ++Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
 1.33243 ++"nn" one smaller in all cases.  Note further that BRANCH23
 1.33244 ++corresponds to R_ARM_THM_CALL.  */
 1.33245 ++  BFD_RELOC_THUMB_PCREL_BRANCH7,
 1.33246 ++  BFD_RELOC_THUMB_PCREL_BRANCH9,
 1.33247 ++  BFD_RELOC_THUMB_PCREL_BRANCH12,
 1.33248 ++  BFD_RELOC_THUMB_PCREL_BRANCH20,
 1.33249 ++  BFD_RELOC_THUMB_PCREL_BRANCH23,
 1.33250 ++  BFD_RELOC_THUMB_PCREL_BRANCH25,
 1.33251 ++
 1.33252 ++/* 12-bit immediate offset, used in ARM-format ldr and str instructions.  */
 1.33253 ++  BFD_RELOC_ARM_OFFSET_IMM,
 1.33254 ++
 1.33255 ++/* 5-bit immediate offset, used in Thumb-format ldr and str instructions.  */
 1.33256 ++  BFD_RELOC_ARM_THUMB_OFFSET,
 1.33257 ++
 1.33258 ++/* Pc-relative or absolute relocation depending on target.  Used for
 1.33259 ++entries in .init_array sections.  */
 1.33260 ++  BFD_RELOC_ARM_TARGET1,
 1.33261 ++
 1.33262 ++/* Read-only segment base relative address.  */
 1.33263 ++  BFD_RELOC_ARM_ROSEGREL32,
 1.33264 ++
 1.33265 ++/* Data segment base relative address.  */
 1.33266 ++  BFD_RELOC_ARM_SBREL32,
 1.33267 ++
 1.33268 ++/* This reloc is used for references to RTTI data from exception handling
 1.33269 ++tables.  The actual definition depends on the target.  It may be a
 1.33270 ++pc-relative or some form of GOT-indirect relocation.  */
 1.33271 ++  BFD_RELOC_ARM_TARGET2,
 1.33272 ++
 1.33273 ++/* 31-bit PC relative address.  */
 1.33274 ++  BFD_RELOC_ARM_PREL31,
 1.33275 ++
 1.33276 ++/* Low and High halfword relocations for MOVW and MOVT instructions.  */
 1.33277 ++  BFD_RELOC_ARM_MOVW,
 1.33278 ++  BFD_RELOC_ARM_MOVT,
 1.33279 ++  BFD_RELOC_ARM_MOVW_PCREL,
 1.33280 ++  BFD_RELOC_ARM_MOVT_PCREL,
 1.33281 ++  BFD_RELOC_ARM_THUMB_MOVW,
 1.33282 ++  BFD_RELOC_ARM_THUMB_MOVT,
 1.33283 ++  BFD_RELOC_ARM_THUMB_MOVW_PCREL,
 1.33284 ++  BFD_RELOC_ARM_THUMB_MOVT_PCREL,
 1.33285 ++
 1.33286 ++/* Relocations for setting up GOTs and PLTs for shared libraries.  */
 1.33287 ++  BFD_RELOC_ARM_JUMP_SLOT,
 1.33288 ++  BFD_RELOC_ARM_GLOB_DAT,
 1.33289 ++  BFD_RELOC_ARM_GOT32,
 1.33290 ++  BFD_RELOC_ARM_PLT32,
 1.33291 ++  BFD_RELOC_ARM_RELATIVE,
 1.33292 ++  BFD_RELOC_ARM_GOTOFF,
 1.33293 ++  BFD_RELOC_ARM_GOTPC,
 1.33294 ++
 1.33295 ++/* ARM thread-local storage relocations.  */
 1.33296 ++  BFD_RELOC_ARM_TLS_GD32,
 1.33297 ++  BFD_RELOC_ARM_TLS_LDO32,
 1.33298 ++  BFD_RELOC_ARM_TLS_LDM32,
 1.33299 ++  BFD_RELOC_ARM_TLS_DTPOFF32,
 1.33300 ++  BFD_RELOC_ARM_TLS_DTPMOD32,
 1.33301 ++  BFD_RELOC_ARM_TLS_TPOFF32,
 1.33302 ++  BFD_RELOC_ARM_TLS_IE32,
 1.33303 ++  BFD_RELOC_ARM_TLS_LE32,
 1.33304 ++
 1.33305 ++/* ARM group relocations.  */
 1.33306 ++  BFD_RELOC_ARM_ALU_PC_G0_NC,
 1.33307 ++  BFD_RELOC_ARM_ALU_PC_G0,
 1.33308 ++  BFD_RELOC_ARM_ALU_PC_G1_NC,
 1.33309 ++  BFD_RELOC_ARM_ALU_PC_G1,
 1.33310 ++  BFD_RELOC_ARM_ALU_PC_G2,
 1.33311 ++  BFD_RELOC_ARM_LDR_PC_G0,
 1.33312 ++  BFD_RELOC_ARM_LDR_PC_G1,
 1.33313 ++  BFD_RELOC_ARM_LDR_PC_G2,
 1.33314 ++  BFD_RELOC_ARM_LDRS_PC_G0,
 1.33315 ++  BFD_RELOC_ARM_LDRS_PC_G1,
 1.33316 ++  BFD_RELOC_ARM_LDRS_PC_G2,
 1.33317 ++  BFD_RELOC_ARM_LDC_PC_G0,
 1.33318 ++  BFD_RELOC_ARM_LDC_PC_G1,
 1.33319 ++  BFD_RELOC_ARM_LDC_PC_G2,
 1.33320 ++  BFD_RELOC_ARM_ALU_SB_G0_NC,
 1.33321 ++  BFD_RELOC_ARM_ALU_SB_G0,
 1.33322 ++  BFD_RELOC_ARM_ALU_SB_G1_NC,
 1.33323 ++  BFD_RELOC_ARM_ALU_SB_G1,
 1.33324 ++  BFD_RELOC_ARM_ALU_SB_G2,
 1.33325 ++  BFD_RELOC_ARM_LDR_SB_G0,
 1.33326 ++  BFD_RELOC_ARM_LDR_SB_G1,
 1.33327 ++  BFD_RELOC_ARM_LDR_SB_G2,
 1.33328 ++  BFD_RELOC_ARM_LDRS_SB_G0,
 1.33329 ++  BFD_RELOC_ARM_LDRS_SB_G1,
 1.33330 ++  BFD_RELOC_ARM_LDRS_SB_G2,
 1.33331 ++  BFD_RELOC_ARM_LDC_SB_G0,
 1.33332 ++  BFD_RELOC_ARM_LDC_SB_G1,
 1.33333 ++  BFD_RELOC_ARM_LDC_SB_G2,
 1.33334 ++
 1.33335 ++/* These relocs are only used within the ARM assembler.  They are not
 1.33336 ++(at present) written to any object files.  */
 1.33337 ++  BFD_RELOC_ARM_IMMEDIATE,
 1.33338 ++  BFD_RELOC_ARM_ADRL_IMMEDIATE,
 1.33339 ++  BFD_RELOC_ARM_T32_IMMEDIATE,
 1.33340 ++  BFD_RELOC_ARM_T32_ADD_IMM,
 1.33341 ++  BFD_RELOC_ARM_T32_IMM12,
 1.33342 ++  BFD_RELOC_ARM_T32_ADD_PC12,
 1.33343 ++  BFD_RELOC_ARM_SHIFT_IMM,
 1.33344 ++  BFD_RELOC_ARM_SMC,
 1.33345 ++  BFD_RELOC_ARM_SWI,
 1.33346 ++  BFD_RELOC_ARM_MULTI,
 1.33347 ++  BFD_RELOC_ARM_CP_OFF_IMM,
 1.33348 ++  BFD_RELOC_ARM_CP_OFF_IMM_S2,
 1.33349 ++  BFD_RELOC_ARM_T32_CP_OFF_IMM,
 1.33350 ++  BFD_RELOC_ARM_T32_CP_OFF_IMM_S2,
 1.33351 ++  BFD_RELOC_ARM_ADR_IMM,
 1.33352 ++  BFD_RELOC_ARM_LDR_IMM,
 1.33353 ++  BFD_RELOC_ARM_LITERAL,
 1.33354 ++  BFD_RELOC_ARM_IN_POOL,
 1.33355 ++  BFD_RELOC_ARM_OFFSET_IMM8,
 1.33356 ++  BFD_RELOC_ARM_T32_OFFSET_U8,
 1.33357 ++  BFD_RELOC_ARM_T32_OFFSET_IMM,
 1.33358 ++  BFD_RELOC_ARM_HWLITERAL,
 1.33359 ++  BFD_RELOC_ARM_THUMB_ADD,
 1.33360 ++  BFD_RELOC_ARM_THUMB_IMM,
 1.33361 ++  BFD_RELOC_ARM_THUMB_SHIFT,
 1.33362 ++
 1.33363 ++/* Renesas / SuperH SH relocs.  Not all of these appear in object files.  */
 1.33364 ++  BFD_RELOC_SH_PCDISP8BY2,
 1.33365 ++  BFD_RELOC_SH_PCDISP12BY2,
 1.33366 ++  BFD_RELOC_SH_IMM3,
 1.33367 ++  BFD_RELOC_SH_IMM3U,
 1.33368 ++  BFD_RELOC_SH_DISP12,
 1.33369 ++  BFD_RELOC_SH_DISP12BY2,
 1.33370 ++  BFD_RELOC_SH_DISP12BY4,
 1.33371 ++  BFD_RELOC_SH_DISP12BY8,
 1.33372 ++  BFD_RELOC_SH_DISP20,
 1.33373 ++  BFD_RELOC_SH_DISP20BY8,
 1.33374 ++  BFD_RELOC_SH_IMM4,
 1.33375 ++  BFD_RELOC_SH_IMM4BY2,
 1.33376 ++  BFD_RELOC_SH_IMM4BY4,
 1.33377 ++  BFD_RELOC_SH_IMM8,
 1.33378 ++  BFD_RELOC_SH_IMM8BY2,
 1.33379 ++  BFD_RELOC_SH_IMM8BY4,
 1.33380 ++  BFD_RELOC_SH_PCRELIMM8BY2,
 1.33381 ++  BFD_RELOC_SH_PCRELIMM8BY4,
 1.33382 ++  BFD_RELOC_SH_SWITCH16,
 1.33383 ++  BFD_RELOC_SH_SWITCH32,
 1.33384 ++  BFD_RELOC_SH_USES,
 1.33385 ++  BFD_RELOC_SH_COUNT,
 1.33386 ++  BFD_RELOC_SH_ALIGN,
 1.33387 ++  BFD_RELOC_SH_CODE,
 1.33388 ++  BFD_RELOC_SH_DATA,
 1.33389 ++  BFD_RELOC_SH_LABEL,
 1.33390 ++  BFD_RELOC_SH_LOOP_START,
 1.33391 ++  BFD_RELOC_SH_LOOP_END,
 1.33392 ++  BFD_RELOC_SH_COPY,
 1.33393 ++  BFD_RELOC_SH_GLOB_DAT,
 1.33394 ++  BFD_RELOC_SH_JMP_SLOT,
 1.33395 ++  BFD_RELOC_SH_RELATIVE,
 1.33396 ++  BFD_RELOC_SH_GOTPC,
 1.33397 ++  BFD_RELOC_SH_GOT_LOW16,
 1.33398 ++  BFD_RELOC_SH_GOT_MEDLOW16,
 1.33399 ++  BFD_RELOC_SH_GOT_MEDHI16,
 1.33400 ++  BFD_RELOC_SH_GOT_HI16,
 1.33401 ++  BFD_RELOC_SH_GOTPLT_LOW16,
 1.33402 ++  BFD_RELOC_SH_GOTPLT_MEDLOW16,
 1.33403 ++  BFD_RELOC_SH_GOTPLT_MEDHI16,
 1.33404 ++  BFD_RELOC_SH_GOTPLT_HI16,
 1.33405 ++  BFD_RELOC_SH_PLT_LOW16,
 1.33406 ++  BFD_RELOC_SH_PLT_MEDLOW16,
 1.33407 ++  BFD_RELOC_SH_PLT_MEDHI16,
 1.33408 ++  BFD_RELOC_SH_PLT_HI16,
 1.33409 ++  BFD_RELOC_SH_GOTOFF_LOW16,
 1.33410 ++  BFD_RELOC_SH_GOTOFF_MEDLOW16,
 1.33411 ++  BFD_RELOC_SH_GOTOFF_MEDHI16,
 1.33412 ++  BFD_RELOC_SH_GOTOFF_HI16,
 1.33413 ++  BFD_RELOC_SH_GOTPC_LOW16,
 1.33414 ++  BFD_RELOC_SH_GOTPC_MEDLOW16,
 1.33415 ++  BFD_RELOC_SH_GOTPC_MEDHI16,
 1.33416 ++  BFD_RELOC_SH_GOTPC_HI16,
 1.33417 ++  BFD_RELOC_SH_COPY64,
 1.33418 ++  BFD_RELOC_SH_GLOB_DAT64,
 1.33419 ++  BFD_RELOC_SH_JMP_SLOT64,
 1.33420 ++  BFD_RELOC_SH_RELATIVE64,
 1.33421 ++  BFD_RELOC_SH_GOT10BY4,
 1.33422 ++  BFD_RELOC_SH_GOT10BY8,
 1.33423 ++  BFD_RELOC_SH_GOTPLT10BY4,
 1.33424 ++  BFD_RELOC_SH_GOTPLT10BY8,
 1.33425 ++  BFD_RELOC_SH_GOTPLT32,
 1.33426 ++  BFD_RELOC_SH_SHMEDIA_CODE,
 1.33427 ++  BFD_RELOC_SH_IMMU5,
 1.33428 ++  BFD_RELOC_SH_IMMS6,
 1.33429 ++  BFD_RELOC_SH_IMMS6BY32,
 1.33430 ++  BFD_RELOC_SH_IMMU6,
 1.33431 ++  BFD_RELOC_SH_IMMS10,
 1.33432 ++  BFD_RELOC_SH_IMMS10BY2,
 1.33433 ++  BFD_RELOC_SH_IMMS10BY4,
 1.33434 ++  BFD_RELOC_SH_IMMS10BY8,
 1.33435 ++  BFD_RELOC_SH_IMMS16,
 1.33436 ++  BFD_RELOC_SH_IMMU16,
 1.33437 ++  BFD_RELOC_SH_IMM_LOW16,
 1.33438 ++  BFD_RELOC_SH_IMM_LOW16_PCREL,
 1.33439 ++  BFD_RELOC_SH_IMM_MEDLOW16,
 1.33440 ++  BFD_RELOC_SH_IMM_MEDLOW16_PCREL,
 1.33441 ++  BFD_RELOC_SH_IMM_MEDHI16,
 1.33442 ++  BFD_RELOC_SH_IMM_MEDHI16_PCREL,
 1.33443 ++  BFD_RELOC_SH_IMM_HI16,
 1.33444 ++  BFD_RELOC_SH_IMM_HI16_PCREL,
 1.33445 ++  BFD_RELOC_SH_PT_16,
 1.33446 ++  BFD_RELOC_SH_TLS_GD_32,
 1.33447 ++  BFD_RELOC_SH_TLS_LD_32,
 1.33448 ++  BFD_RELOC_SH_TLS_LDO_32,
 1.33449 ++  BFD_RELOC_SH_TLS_IE_32,
 1.33450 ++  BFD_RELOC_SH_TLS_LE_32,
 1.33451 ++  BFD_RELOC_SH_TLS_DTPMOD32,
 1.33452 ++  BFD_RELOC_SH_TLS_DTPOFF32,
 1.33453 ++  BFD_RELOC_SH_TLS_TPOFF32,
 1.33454 ++
 1.33455 ++/* ARC Cores relocs.
 1.33456 ++ARC 22 bit pc-relative branch.  The lowest two bits must be zero and are
 1.33457 ++not stored in the instruction.  The high 20 bits are installed in bits 26
 1.33458 ++through 7 of the instruction.  */
 1.33459 ++  BFD_RELOC_ARC_B22_PCREL,
 1.33460 ++
 1.33461 ++/* ARC 26 bit absolute branch.  The lowest two bits must be zero and are not
 1.33462 ++stored in the instruction.  The high 24 bits are installed in bits 23
 1.33463 ++through 0.  */
 1.33464 ++  BFD_RELOC_ARC_B26,
 1.33465 ++
 1.33466 ++/* ADI Blackfin 16 bit immediate absolute reloc.  */
 1.33467 ++  BFD_RELOC_BFIN_16_IMM,
 1.33468 ++
 1.33469 ++/* ADI Blackfin 16 bit immediate absolute reloc higher 16 bits.  */
 1.33470 ++  BFD_RELOC_BFIN_16_HIGH,
 1.33471 ++
 1.33472 ++/* ADI Blackfin 'a' part of LSETUP.  */
 1.33473 ++  BFD_RELOC_BFIN_4_PCREL,
 1.33474 ++
 1.33475 ++/* ADI Blackfin.  */
 1.33476 ++  BFD_RELOC_BFIN_5_PCREL,
 1.33477 ++
 1.33478 ++/* ADI Blackfin 16 bit immediate absolute reloc lower 16 bits.  */
 1.33479 ++  BFD_RELOC_BFIN_16_LOW,
 1.33480 ++
 1.33481 ++/* ADI Blackfin.  */
 1.33482 ++  BFD_RELOC_BFIN_10_PCREL,
 1.33483 ++
 1.33484 ++/* ADI Blackfin 'b' part of LSETUP.  */
 1.33485 ++  BFD_RELOC_BFIN_11_PCREL,
 1.33486 ++
 1.33487 ++/* ADI Blackfin.  */
 1.33488 ++  BFD_RELOC_BFIN_12_PCREL_JUMP,
 1.33489 ++
 1.33490 ++/* ADI Blackfin Short jump, pcrel.  */
 1.33491 ++  BFD_RELOC_BFIN_12_PCREL_JUMP_S,
 1.33492 ++
 1.33493 ++/* ADI Blackfin Call.x not implemented.  */
 1.33494 ++  BFD_RELOC_BFIN_24_PCREL_CALL_X,
 1.33495 ++
 1.33496 ++/* ADI Blackfin Long Jump pcrel.  */
 1.33497 ++  BFD_RELOC_BFIN_24_PCREL_JUMP_L,
 1.33498 ++
 1.33499 ++/* ADI Blackfin FD-PIC relocations.  */
 1.33500 ++  BFD_RELOC_BFIN_GOT17M4,
 1.33501 ++  BFD_RELOC_BFIN_GOTHI,
 1.33502 ++  BFD_RELOC_BFIN_GOTLO,
 1.33503 ++  BFD_RELOC_BFIN_FUNCDESC,
 1.33504 ++  BFD_RELOC_BFIN_FUNCDESC_GOT17M4,
 1.33505 ++  BFD_RELOC_BFIN_FUNCDESC_GOTHI,
 1.33506 ++  BFD_RELOC_BFIN_FUNCDESC_GOTLO,
 1.33507 ++  BFD_RELOC_BFIN_FUNCDESC_VALUE,
 1.33508 ++  BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4,
 1.33509 ++  BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI,
 1.33510 ++  BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO,
 1.33511 ++  BFD_RELOC_BFIN_GOTOFF17M4,
 1.33512 ++  BFD_RELOC_BFIN_GOTOFFHI,
 1.33513 ++  BFD_RELOC_BFIN_GOTOFFLO,
 1.33514 ++
 1.33515 ++/* ADI Blackfin GOT relocation.  */
 1.33516 ++  BFD_RELOC_BFIN_GOT,
 1.33517 ++
 1.33518 ++/* ADI Blackfin PLTPC relocation.  */
 1.33519 ++  BFD_RELOC_BFIN_PLTPC,
 1.33520 ++
 1.33521 ++/* ADI Blackfin arithmetic relocation.  */
 1.33522 ++  BFD_ARELOC_BFIN_PUSH,
 1.33523 ++
 1.33524 ++/* ADI Blackfin arithmetic relocation.  */
 1.33525 ++  BFD_ARELOC_BFIN_CONST,
 1.33526 ++
 1.33527 ++/* ADI Blackfin arithmetic relocation.  */
 1.33528 ++  BFD_ARELOC_BFIN_ADD,
 1.33529 ++
 1.33530 ++/* ADI Blackfin arithmetic relocation.  */
 1.33531 ++  BFD_ARELOC_BFIN_SUB,
 1.33532 ++
 1.33533 ++/* ADI Blackfin arithmetic relocation.  */
 1.33534 ++  BFD_ARELOC_BFIN_MULT,
 1.33535 ++
 1.33536 ++/* ADI Blackfin arithmetic relocation.  */
 1.33537 ++  BFD_ARELOC_BFIN_DIV,
 1.33538 ++
 1.33539 ++/* ADI Blackfin arithmetic relocation.  */
 1.33540 ++  BFD_ARELOC_BFIN_MOD,
 1.33541 ++
 1.33542 ++/* ADI Blackfin arithmetic relocation.  */
 1.33543 ++  BFD_ARELOC_BFIN_LSHIFT,
 1.33544 ++
 1.33545 ++/* ADI Blackfin arithmetic relocation.  */
 1.33546 ++  BFD_ARELOC_BFIN_RSHIFT,
 1.33547 ++
 1.33548 ++/* ADI Blackfin arithmetic relocation.  */
 1.33549 ++  BFD_ARELOC_BFIN_AND,
 1.33550 ++
 1.33551 ++/* ADI Blackfin arithmetic relocation.  */
 1.33552 ++  BFD_ARELOC_BFIN_OR,
 1.33553 ++
 1.33554 ++/* ADI Blackfin arithmetic relocation.  */
 1.33555 ++  BFD_ARELOC_BFIN_XOR,
 1.33556 ++
 1.33557 ++/* ADI Blackfin arithmetic relocation.  */
 1.33558 ++  BFD_ARELOC_BFIN_LAND,
 1.33559 ++
 1.33560 ++/* ADI Blackfin arithmetic relocation.  */
 1.33561 ++  BFD_ARELOC_BFIN_LOR,
 1.33562 ++
 1.33563 ++/* ADI Blackfin arithmetic relocation.  */
 1.33564 ++  BFD_ARELOC_BFIN_LEN,
 1.33565 ++
 1.33566 ++/* ADI Blackfin arithmetic relocation.  */
 1.33567 ++  BFD_ARELOC_BFIN_NEG,
 1.33568 ++
 1.33569 ++/* ADI Blackfin arithmetic relocation.  */
 1.33570 ++  BFD_ARELOC_BFIN_COMP,
 1.33571 ++
 1.33572 ++/* ADI Blackfin arithmetic relocation.  */
 1.33573 ++  BFD_ARELOC_BFIN_PAGE,
 1.33574 ++
 1.33575 ++/* ADI Blackfin arithmetic relocation.  */
 1.33576 ++  BFD_ARELOC_BFIN_HWPAGE,
 1.33577 ++
 1.33578 ++/* ADI Blackfin arithmetic relocation.  */
 1.33579 ++  BFD_ARELOC_BFIN_ADDR,
 1.33580 ++
 1.33581 ++/* Mitsubishi D10V relocs.
 1.33582 ++This is a 10-bit reloc with the right 2 bits
 1.33583 ++assumed to be 0.  */
 1.33584 ++  BFD_RELOC_D10V_10_PCREL_R,
 1.33585 ++
 1.33586 ++/* Mitsubishi D10V relocs.
 1.33587 ++This is a 10-bit reloc with the right 2 bits
 1.33588 ++assumed to be 0.  This is the same as the previous reloc
 1.33589 ++except it is in the left container, i.e.,
 1.33590 ++shifted left 15 bits.  */
 1.33591 ++  BFD_RELOC_D10V_10_PCREL_L,
 1.33592 ++
 1.33593 ++/* This is an 18-bit reloc with the right 2 bits
 1.33594 ++assumed to be 0.  */
 1.33595 ++  BFD_RELOC_D10V_18,
 1.33596 ++
 1.33597 ++/* This is an 18-bit reloc with the right 2 bits
 1.33598 ++assumed to be 0.  */
 1.33599 ++  BFD_RELOC_D10V_18_PCREL,
 1.33600 ++
 1.33601 ++/* Mitsubishi D30V relocs.
 1.33602 ++This is a 6-bit absolute reloc.  */
 1.33603 ++  BFD_RELOC_D30V_6,
 1.33604 ++
 1.33605 ++/* This is a 6-bit pc-relative reloc with
 1.33606 ++the right 3 bits assumed to be 0.  */
 1.33607 ++  BFD_RELOC_D30V_9_PCREL,
 1.33608 ++
 1.33609 ++/* This is a 6-bit pc-relative reloc with
 1.33610 ++the right 3 bits assumed to be 0. Same
 1.33611 ++as the previous reloc but on the right side
 1.33612 ++of the container.  */
 1.33613 ++  BFD_RELOC_D30V_9_PCREL_R,
 1.33614 ++
 1.33615 ++/* This is a 12-bit absolute reloc with the
 1.33616 ++right 3 bitsassumed to be 0.  */
 1.33617 ++  BFD_RELOC_D30V_15,
 1.33618 ++
 1.33619 ++/* This is a 12-bit pc-relative reloc with
 1.33620 ++the right 3 bits assumed to be 0.  */
 1.33621 ++  BFD_RELOC_D30V_15_PCREL,
 1.33622 ++
 1.33623 ++/* This is a 12-bit pc-relative reloc with
 1.33624 ++the right 3 bits assumed to be 0. Same
 1.33625 ++as the previous reloc but on the right side
 1.33626 ++of the container.  */
 1.33627 ++  BFD_RELOC_D30V_15_PCREL_R,
 1.33628 ++
 1.33629 ++/* This is an 18-bit absolute reloc with
 1.33630 ++the right 3 bits assumed to be 0.  */
 1.33631 ++  BFD_RELOC_D30V_21,
 1.33632 ++
 1.33633 ++/* This is an 18-bit pc-relative reloc with
 1.33634 ++the right 3 bits assumed to be 0.  */
 1.33635 ++  BFD_RELOC_D30V_21_PCREL,
 1.33636 ++
 1.33637 ++/* This is an 18-bit pc-relative reloc with
 1.33638 ++the right 3 bits assumed to be 0. Same
 1.33639 ++as the previous reloc but on the right side
 1.33640 ++of the container.  */
 1.33641 ++  BFD_RELOC_D30V_21_PCREL_R,
 1.33642 ++
 1.33643 ++/* This is a 32-bit absolute reloc.  */
 1.33644 ++  BFD_RELOC_D30V_32,
 1.33645 ++
 1.33646 ++/* This is a 32-bit pc-relative reloc.  */
 1.33647 ++  BFD_RELOC_D30V_32_PCREL,
 1.33648 ++
 1.33649 ++/* DLX relocs  */
 1.33650 ++  BFD_RELOC_DLX_HI16_S,
 1.33651 ++
 1.33652 ++/* DLX relocs  */
 1.33653 ++  BFD_RELOC_DLX_LO16,
 1.33654 ++
 1.33655 ++/* DLX relocs  */
 1.33656 ++  BFD_RELOC_DLX_JMP26,
 1.33657 ++
 1.33658 ++/* Renesas M16C/M32C Relocations.  */
 1.33659 ++  BFD_RELOC_M32C_HI8,
 1.33660 ++  BFD_RELOC_M32C_RL_JUMP,
 1.33661 ++  BFD_RELOC_M32C_RL_1ADDR,
 1.33662 ++  BFD_RELOC_M32C_RL_2ADDR,
 1.33663 ++
 1.33664 ++/* Renesas M32R (formerly Mitsubishi M32R) relocs.
 1.33665 ++This is a 24 bit absolute address.  */
 1.33666 ++  BFD_RELOC_M32R_24,
 1.33667 ++
 1.33668 ++/* This is a 10-bit pc-relative reloc with the right 2 bits assumed to be 0.  */
 1.33669 ++  BFD_RELOC_M32R_10_PCREL,
 1.33670 ++
 1.33671 ++/* This is an 18-bit reloc with the right 2 bits assumed to be 0.  */
 1.33672 ++  BFD_RELOC_M32R_18_PCREL,
 1.33673 ++
 1.33674 ++/* This is a 26-bit reloc with the right 2 bits assumed to be 0.  */
 1.33675 ++  BFD_RELOC_M32R_26_PCREL,
 1.33676 ++
 1.33677 ++/* This is a 16-bit reloc containing the high 16 bits of an address
 1.33678 ++used when the lower 16 bits are treated as unsigned.  */
 1.33679 ++  BFD_RELOC_M32R_HI16_ULO,
 1.33680 ++
 1.33681 ++/* This is a 16-bit reloc containing the high 16 bits of an address
 1.33682 ++used when the lower 16 bits are treated as signed.  */
 1.33683 ++  BFD_RELOC_M32R_HI16_SLO,
 1.33684 ++
 1.33685 ++/* This is a 16-bit reloc containing the lower 16 bits of an address.  */
 1.33686 ++  BFD_RELOC_M32R_LO16,
 1.33687 ++
 1.33688 ++/* This is a 16-bit reloc containing the small data area offset for use in
 1.33689 ++add3, load, and store instructions.  */
 1.33690 ++  BFD_RELOC_M32R_SDA16,
 1.33691 ++
 1.33692 ++/* For PIC.  */
 1.33693 ++  BFD_RELOC_M32R_GOT24,
 1.33694 ++  BFD_RELOC_M32R_26_PLTREL,
 1.33695 ++  BFD_RELOC_M32R_COPY,
 1.33696 ++  BFD_RELOC_M32R_GLOB_DAT,
 1.33697 ++  BFD_RELOC_M32R_JMP_SLOT,
 1.33698 ++  BFD_RELOC_M32R_RELATIVE,
 1.33699 ++  BFD_RELOC_M32R_GOTOFF,
 1.33700 ++  BFD_RELOC_M32R_GOTOFF_HI_ULO,
 1.33701 ++  BFD_RELOC_M32R_GOTOFF_HI_SLO,
 1.33702 ++  BFD_RELOC_M32R_GOTOFF_LO,
 1.33703 ++  BFD_RELOC_M32R_GOTPC24,
 1.33704 ++  BFD_RELOC_M32R_GOT16_HI_ULO,
 1.33705 ++  BFD_RELOC_M32R_GOT16_HI_SLO,
 1.33706 ++  BFD_RELOC_M32R_GOT16_LO,
 1.33707 ++  BFD_RELOC_M32R_GOTPC_HI_ULO,
 1.33708 ++  BFD_RELOC_M32R_GOTPC_HI_SLO,
 1.33709 ++  BFD_RELOC_M32R_GOTPC_LO,
 1.33710 ++
 1.33711 ++/* This is a 9-bit reloc  */
 1.33712 ++  BFD_RELOC_V850_9_PCREL,
 1.33713 ++
 1.33714 ++/* This is a 22-bit reloc  */
 1.33715 ++  BFD_RELOC_V850_22_PCREL,
 1.33716 ++
 1.33717 ++/* This is a 16 bit offset from the short data area pointer.  */
 1.33718 ++  BFD_RELOC_V850_SDA_16_16_OFFSET,
 1.33719 ++
 1.33720 ++/* This is a 16 bit offset (of which only 15 bits are used) from the
 1.33721 ++short data area pointer.  */
 1.33722 ++  BFD_RELOC_V850_SDA_15_16_OFFSET,
 1.33723 ++
 1.33724 ++/* This is a 16 bit offset from the zero data area pointer.  */
 1.33725 ++  BFD_RELOC_V850_ZDA_16_16_OFFSET,
 1.33726 ++
 1.33727 ++/* This is a 16 bit offset (of which only 15 bits are used) from the
 1.33728 ++zero data area pointer.  */
 1.33729 ++  BFD_RELOC_V850_ZDA_15_16_OFFSET,
 1.33730 ++
 1.33731 ++/* This is an 8 bit offset (of which only 6 bits are used) from the
 1.33732 ++tiny data area pointer.  */
 1.33733 ++  BFD_RELOC_V850_TDA_6_8_OFFSET,
 1.33734 ++
 1.33735 ++/* This is an 8bit offset (of which only 7 bits are used) from the tiny
 1.33736 ++data area pointer.  */
 1.33737 ++  BFD_RELOC_V850_TDA_7_8_OFFSET,
 1.33738 ++
 1.33739 ++/* This is a 7 bit offset from the tiny data area pointer.  */
 1.33740 ++  BFD_RELOC_V850_TDA_7_7_OFFSET,
 1.33741 ++
 1.33742 ++/* This is a 16 bit offset from the tiny data area pointer.  */
 1.33743 ++  BFD_RELOC_V850_TDA_16_16_OFFSET,
 1.33744 ++
 1.33745 ++/* This is a 5 bit offset (of which only 4 bits are used) from the tiny
 1.33746 ++data area pointer.  */
 1.33747 ++  BFD_RELOC_V850_TDA_4_5_OFFSET,
 1.33748 ++
 1.33749 ++/* This is a 4 bit offset from the tiny data area pointer.  */
 1.33750 ++  BFD_RELOC_V850_TDA_4_4_OFFSET,
 1.33751 ++
 1.33752 ++/* This is a 16 bit offset from the short data area pointer, with the
 1.33753 ++bits placed non-contiguously in the instruction.  */
 1.33754 ++  BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET,
 1.33755 ++
 1.33756 ++/* This is a 16 bit offset from the zero data area pointer, with the
 1.33757 ++bits placed non-contiguously in the instruction.  */
 1.33758 ++  BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET,
 1.33759 ++
 1.33760 ++/* This is a 6 bit offset from the call table base pointer.  */
 1.33761 ++  BFD_RELOC_V850_CALLT_6_7_OFFSET,
 1.33762 ++
 1.33763 ++/* This is a 16 bit offset from the call table base pointer.  */
 1.33764 ++  BFD_RELOC_V850_CALLT_16_16_OFFSET,
 1.33765 ++
 1.33766 ++/* Used for relaxing indirect function calls.  */
 1.33767 ++  BFD_RELOC_V850_LONGCALL,
 1.33768 ++
 1.33769 ++/* Used for relaxing indirect jumps.  */
 1.33770 ++  BFD_RELOC_V850_LONGJUMP,
 1.33771 ++
 1.33772 ++/* Used to maintain alignment whilst relaxing.  */
 1.33773 ++  BFD_RELOC_V850_ALIGN,
 1.33774 ++
 1.33775 ++/* This is a variation of BFD_RELOC_LO16 that can be used in v850e ld.bu
 1.33776 ++instructions.  */
 1.33777 ++  BFD_RELOC_V850_LO16_SPLIT_OFFSET,
 1.33778 ++
 1.33779 ++/* This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the
 1.33780 ++instruction.  */
 1.33781 ++  BFD_RELOC_MN10300_32_PCREL,
 1.33782 ++
 1.33783 ++/* This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the
 1.33784 ++instruction.  */
 1.33785 ++  BFD_RELOC_MN10300_16_PCREL,
 1.33786 ++
 1.33787 ++/* This is a 8bit DP reloc for the tms320c30, where the most
 1.33788 ++significant 8 bits of a 24 bit word are placed into the least
 1.33789 ++significant 8 bits of the opcode.  */
 1.33790 ++  BFD_RELOC_TIC30_LDP,
 1.33791 ++
 1.33792 ++/* This is a 7bit reloc for the tms320c54x, where the least
 1.33793 ++significant 7 bits of a 16 bit word are placed into the least
 1.33794 ++significant 7 bits of the opcode.  */
 1.33795 ++  BFD_RELOC_TIC54X_PARTLS7,
 1.33796 ++
 1.33797 ++/* This is a 9bit DP reloc for the tms320c54x, where the most
 1.33798 ++significant 9 bits of a 16 bit word are placed into the least
 1.33799 ++significant 9 bits of the opcode.  */
 1.33800 ++  BFD_RELOC_TIC54X_PARTMS9,
 1.33801 ++
 1.33802 ++/* This is an extended address 23-bit reloc for the tms320c54x.  */
 1.33803 ++  BFD_RELOC_TIC54X_23,
 1.33804 ++
 1.33805 ++/* This is a 16-bit reloc for the tms320c54x, where the least
 1.33806 ++significant 16 bits of a 23-bit extended address are placed into
 1.33807 ++the opcode.  */
 1.33808 ++  BFD_RELOC_TIC54X_16_OF_23,
 1.33809 ++
 1.33810 ++/* This is a reloc for the tms320c54x, where the most
 1.33811 ++significant 7 bits of a 23-bit extended address are placed into
 1.33812 ++the opcode.  */
 1.33813 ++  BFD_RELOC_TIC54X_MS7_OF_23,
 1.33814 ++
 1.33815 ++/* This is a 48 bit reloc for the FR30 that stores 32 bits.  */
 1.33816 ++  BFD_RELOC_FR30_48,
 1.33817 ++
 1.33818 ++/* This is a 32 bit reloc for the FR30 that stores 20 bits split up into
 1.33819 ++two sections.  */
 1.33820 ++  BFD_RELOC_FR30_20,
 1.33821 ++
 1.33822 ++/* This is a 16 bit reloc for the FR30 that stores a 6 bit word offset in
 1.33823 ++4 bits.  */
 1.33824 ++  BFD_RELOC_FR30_6_IN_4,
 1.33825 ++
 1.33826 ++/* This is a 16 bit reloc for the FR30 that stores an 8 bit byte offset
 1.33827 ++into 8 bits.  */
 1.33828 ++  BFD_RELOC_FR30_8_IN_8,
 1.33829 ++
 1.33830 ++/* This is a 16 bit reloc for the FR30 that stores a 9 bit short offset
 1.33831 ++into 8 bits.  */
 1.33832 ++  BFD_RELOC_FR30_9_IN_8,
 1.33833 ++
 1.33834 ++/* This is a 16 bit reloc for the FR30 that stores a 10 bit word offset
 1.33835 ++into 8 bits.  */
 1.33836 ++  BFD_RELOC_FR30_10_IN_8,
 1.33837 ++
 1.33838 ++/* This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
 1.33839 ++short offset into 8 bits.  */
 1.33840 ++  BFD_RELOC_FR30_9_PCREL,
 1.33841 ++
 1.33842 ++/* This is a 16 bit reloc for the FR30 that stores a 12 bit pc relative
 1.33843 ++short offset into 11 bits.  */
 1.33844 ++  BFD_RELOC_FR30_12_PCREL,
 1.33845 ++
 1.33846 ++/* Motorola Mcore relocations.  */
 1.33847 ++  BFD_RELOC_MCORE_PCREL_IMM8BY4,
 1.33848 ++  BFD_RELOC_MCORE_PCREL_IMM11BY2,
 1.33849 ++  BFD_RELOC_MCORE_PCREL_IMM4BY2,
 1.33850 ++  BFD_RELOC_MCORE_PCREL_32,
 1.33851 ++  BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2,
 1.33852 ++  BFD_RELOC_MCORE_RVA,
 1.33853 ++
 1.33854 ++/* Toshiba Media Processor Relocations.  */
 1.33855 ++  BFD_RELOC_MEP_8,
 1.33856 ++  BFD_RELOC_MEP_16,
 1.33857 ++  BFD_RELOC_MEP_32,
 1.33858 ++  BFD_RELOC_MEP_PCREL8A2,
 1.33859 ++  BFD_RELOC_MEP_PCREL12A2,
 1.33860 ++  BFD_RELOC_MEP_PCREL17A2,
 1.33861 ++  BFD_RELOC_MEP_PCREL24A2,
 1.33862 ++  BFD_RELOC_MEP_PCABS24A2,
 1.33863 ++  BFD_RELOC_MEP_LOW16,
 1.33864 ++  BFD_RELOC_MEP_HI16U,
 1.33865 ++  BFD_RELOC_MEP_HI16S,
 1.33866 ++  BFD_RELOC_MEP_GPREL,
 1.33867 ++  BFD_RELOC_MEP_TPREL,
 1.33868 ++  BFD_RELOC_MEP_TPREL7,
 1.33869 ++  BFD_RELOC_MEP_TPREL7A2,
 1.33870 ++  BFD_RELOC_MEP_TPREL7A4,
 1.33871 ++  BFD_RELOC_MEP_UIMM24,
 1.33872 ++  BFD_RELOC_MEP_ADDR24A4,
 1.33873 ++  BFD_RELOC_MEP_GNU_VTINHERIT,
 1.33874 ++  BFD_RELOC_MEP_GNU_VTENTRY,
 1.33875 ++
 1.33876 ++
 1.33877 ++/* These are relocations for the GETA instruction.  */
 1.33878 ++  BFD_RELOC_MMIX_GETA,
 1.33879 ++  BFD_RELOC_MMIX_GETA_1,
 1.33880 ++  BFD_RELOC_MMIX_GETA_2,
 1.33881 ++  BFD_RELOC_MMIX_GETA_3,
 1.33882 ++
 1.33883 ++/* These are relocations for a conditional branch instruction.  */
 1.33884 ++  BFD_RELOC_MMIX_CBRANCH,
 1.33885 ++  BFD_RELOC_MMIX_CBRANCH_J,
 1.33886 ++  BFD_RELOC_MMIX_CBRANCH_1,
 1.33887 ++  BFD_RELOC_MMIX_CBRANCH_2,
 1.33888 ++  BFD_RELOC_MMIX_CBRANCH_3,
 1.33889 ++
 1.33890 ++/* These are relocations for the PUSHJ instruction.  */
 1.33891 ++  BFD_RELOC_MMIX_PUSHJ,
 1.33892 ++  BFD_RELOC_MMIX_PUSHJ_1,
 1.33893 ++  BFD_RELOC_MMIX_PUSHJ_2,
 1.33894 ++  BFD_RELOC_MMIX_PUSHJ_3,
 1.33895 ++  BFD_RELOC_MMIX_PUSHJ_STUBBABLE,
 1.33896 ++
 1.33897 ++/* These are relocations for the JMP instruction.  */
 1.33898 ++  BFD_RELOC_MMIX_JMP,
 1.33899 ++  BFD_RELOC_MMIX_JMP_1,
 1.33900 ++  BFD_RELOC_MMIX_JMP_2,
 1.33901 ++  BFD_RELOC_MMIX_JMP_3,
 1.33902 ++
 1.33903 ++/* This is a relocation for a relative address as in a GETA instruction or
 1.33904 ++a branch.  */
 1.33905 ++  BFD_RELOC_MMIX_ADDR19,
 1.33906 ++
 1.33907 ++/* This is a relocation for a relative address as in a JMP instruction.  */
 1.33908 ++  BFD_RELOC_MMIX_ADDR27,
 1.33909 ++
 1.33910 ++/* This is a relocation for an instruction field that may be a general
 1.33911 ++register or a value 0..255.  */
 1.33912 ++  BFD_RELOC_MMIX_REG_OR_BYTE,
 1.33913 ++
 1.33914 ++/* This is a relocation for an instruction field that may be a general
 1.33915 ++register.  */
 1.33916 ++  BFD_RELOC_MMIX_REG,
 1.33917 ++
 1.33918 ++/* This is a relocation for two instruction fields holding a register and
 1.33919 ++an offset, the equivalent of the relocation.  */
 1.33920 ++  BFD_RELOC_MMIX_BASE_PLUS_OFFSET,
 1.33921 ++
 1.33922 ++/* This relocation is an assertion that the expression is not allocated as
 1.33923 ++a global register.  It does not modify contents.  */
 1.33924 ++  BFD_RELOC_MMIX_LOCAL,
 1.33925 ++
 1.33926 ++/* This is a 16 bit reloc for the AVR that stores 8 bit pc relative
 1.33927 ++short offset into 7 bits.  */
 1.33928 ++  BFD_RELOC_AVR_7_PCREL,
 1.33929 ++
 1.33930 ++/* This is a 16 bit reloc for the AVR that stores 13 bit pc relative
 1.33931 ++short offset into 12 bits.  */
 1.33932 ++  BFD_RELOC_AVR_13_PCREL,
 1.33933 ++
 1.33934 ++/* This is a 16 bit reloc for the AVR that stores 17 bit value (usually
 1.33935 ++program memory address) into 16 bits.  */
 1.33936 ++  BFD_RELOC_AVR_16_PM,
 1.33937 ++
 1.33938 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (usually
 1.33939 ++data memory address) into 8 bit immediate value of LDI insn.  */
 1.33940 ++  BFD_RELOC_AVR_LO8_LDI,
 1.33941 ++
 1.33942 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
 1.33943 ++of data memory address) into 8 bit immediate value of LDI insn.  */
 1.33944 ++  BFD_RELOC_AVR_HI8_LDI,
 1.33945 ++
 1.33946 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
 1.33947 ++of program memory address) into 8 bit immediate value of LDI insn.  */
 1.33948 ++  BFD_RELOC_AVR_HH8_LDI,
 1.33949 ++
 1.33950 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
 1.33951 ++of 32 bit value) into 8 bit immediate value of LDI insn.  */
 1.33952 ++  BFD_RELOC_AVR_MS8_LDI,
 1.33953 ++
 1.33954 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 1.33955 ++(usually data memory address) into 8 bit immediate value of SUBI insn.  */
 1.33956 ++  BFD_RELOC_AVR_LO8_LDI_NEG,
 1.33957 ++
 1.33958 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 1.33959 ++(high 8 bit of data memory address) into 8 bit immediate value of
 1.33960 ++SUBI insn.  */
 1.33961 ++  BFD_RELOC_AVR_HI8_LDI_NEG,
 1.33962 ++
 1.33963 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 1.33964 ++(most high 8 bit of program memory address) into 8 bit immediate value
 1.33965 ++of LDI or SUBI insn.  */
 1.33966 ++  BFD_RELOC_AVR_HH8_LDI_NEG,
 1.33967 ++
 1.33968 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value (msb
 1.33969 ++of 32 bit value) into 8 bit immediate value of LDI insn.  */
 1.33970 ++  BFD_RELOC_AVR_MS8_LDI_NEG,
 1.33971 ++
 1.33972 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (usually
 1.33973 ++command address) into 8 bit immediate value of LDI insn.  */
 1.33974 ++  BFD_RELOC_AVR_LO8_LDI_PM,
 1.33975 ++
 1.33976 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value 
 1.33977 ++(command address) into 8 bit immediate value of LDI insn. If the address
 1.33978 ++is beyond the 128k boundary, the linker inserts a jump stub for this reloc
 1.33979 ++in the lower 128k.  */
 1.33980 ++  BFD_RELOC_AVR_LO8_LDI_GS,
 1.33981 ++
 1.33982 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
 1.33983 ++of command address) into 8 bit immediate value of LDI insn.  */
 1.33984 ++  BFD_RELOC_AVR_HI8_LDI_PM,
 1.33985 ++
 1.33986 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
 1.33987 ++of command address) into 8 bit immediate value of LDI insn.  If the address
 1.33988 ++is beyond the 128k boundary, the linker inserts a jump stub for this reloc
 1.33989 ++below 128k.  */
 1.33990 ++  BFD_RELOC_AVR_HI8_LDI_GS,
 1.33991 ++
 1.33992 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
 1.33993 ++of command address) into 8 bit immediate value of LDI insn.  */
 1.33994 ++  BFD_RELOC_AVR_HH8_LDI_PM,
 1.33995 ++
 1.33996 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 1.33997 ++(usually command address) into 8 bit immediate value of SUBI insn.  */
 1.33998 ++  BFD_RELOC_AVR_LO8_LDI_PM_NEG,
 1.33999 ++
 1.34000 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 1.34001 ++(high 8 bit of 16 bit command address) into 8 bit immediate value
 1.34002 ++of SUBI insn.  */
 1.34003 ++  BFD_RELOC_AVR_HI8_LDI_PM_NEG,
 1.34004 ++
 1.34005 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 1.34006 ++(high 6 bit of 22 bit command address) into 8 bit immediate
 1.34007 ++value of SUBI insn.  */
 1.34008 ++  BFD_RELOC_AVR_HH8_LDI_PM_NEG,
 1.34009 ++
 1.34010 ++/* This is a 32 bit reloc for the AVR that stores 23 bit value
 1.34011 ++into 22 bits.  */
 1.34012 ++  BFD_RELOC_AVR_CALL,
 1.34013 ++
 1.34014 ++/* This is a 16 bit reloc for the AVR that stores all needed bits
 1.34015 ++for absolute addressing with ldi with overflow check to linktime  */
 1.34016 ++  BFD_RELOC_AVR_LDI,
 1.34017 ++
 1.34018 ++/* This is a 6 bit reloc for the AVR that stores offset for ldd/std
 1.34019 ++instructions  */
 1.34020 ++  BFD_RELOC_AVR_6,
 1.34021 ++
 1.34022 ++/* This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
 1.34023 ++instructions  */
 1.34024 ++  BFD_RELOC_AVR_6_ADIW,
 1.34025 ++
 1.34026 ++/* Direct 12 bit.  */
 1.34027 ++  BFD_RELOC_390_12,
 1.34028 ++
 1.34029 ++/* 12 bit GOT offset.  */
 1.34030 ++  BFD_RELOC_390_GOT12,
 1.34031 ++
 1.34032 ++/* 32 bit PC relative PLT address.  */
 1.34033 ++  BFD_RELOC_390_PLT32,
 1.34034 ++
 1.34035 ++/* Copy symbol at runtime.  */
 1.34036 ++  BFD_RELOC_390_COPY,
 1.34037 ++
 1.34038 ++/* Create GOT entry.  */
 1.34039 ++  BFD_RELOC_390_GLOB_DAT,
 1.34040 ++
 1.34041 ++/* Create PLT entry.  */
 1.34042 ++  BFD_RELOC_390_JMP_SLOT,
 1.34043 ++
 1.34044 ++/* Adjust by program base.  */
 1.34045 ++  BFD_RELOC_390_RELATIVE,
 1.34046 ++
 1.34047 ++/* 32 bit PC relative offset to GOT.  */
 1.34048 ++  BFD_RELOC_390_GOTPC,
 1.34049 ++
 1.34050 ++/* 16 bit GOT offset.  */
 1.34051 ++  BFD_RELOC_390_GOT16,
 1.34052 ++
 1.34053 ++/* PC relative 16 bit shifted by 1.  */
 1.34054 ++  BFD_RELOC_390_PC16DBL,
 1.34055 ++
 1.34056 ++/* 16 bit PC rel. PLT shifted by 1.  */
 1.34057 ++  BFD_RELOC_390_PLT16DBL,
 1.34058 ++
 1.34059 ++/* PC relative 32 bit shifted by 1.  */
 1.34060 ++  BFD_RELOC_390_PC32DBL,
 1.34061 ++
 1.34062 ++/* 32 bit PC rel. PLT shifted by 1.  */
 1.34063 ++  BFD_RELOC_390_PLT32DBL,
 1.34064 ++
 1.34065 ++/* 32 bit PC rel. GOT shifted by 1.  */
 1.34066 ++  BFD_RELOC_390_GOTPCDBL,
 1.34067 ++
 1.34068 ++/* 64 bit GOT offset.  */
 1.34069 ++  BFD_RELOC_390_GOT64,
 1.34070 ++
 1.34071 ++/* 64 bit PC relative PLT address.  */
 1.34072 ++  BFD_RELOC_390_PLT64,
 1.34073 ++
 1.34074 ++/* 32 bit rel. offset to GOT entry.  */
 1.34075 ++  BFD_RELOC_390_GOTENT,
 1.34076 ++
 1.34077 ++/* 64 bit offset to GOT.  */
 1.34078 ++  BFD_RELOC_390_GOTOFF64,
 1.34079 ++
 1.34080 ++/* 12-bit offset to symbol-entry within GOT, with PLT handling.  */
 1.34081 ++  BFD_RELOC_390_GOTPLT12,
 1.34082 ++
 1.34083 ++/* 16-bit offset to symbol-entry within GOT, with PLT handling.  */
 1.34084 ++  BFD_RELOC_390_GOTPLT16,
 1.34085 ++
 1.34086 ++/* 32-bit offset to symbol-entry within GOT, with PLT handling.  */
 1.34087 ++  BFD_RELOC_390_GOTPLT32,
 1.34088 ++
 1.34089 ++/* 64-bit offset to symbol-entry within GOT, with PLT handling.  */
 1.34090 ++  BFD_RELOC_390_GOTPLT64,
 1.34091 ++
 1.34092 ++/* 32-bit rel. offset to symbol-entry within GOT, with PLT handling.  */
 1.34093 ++  BFD_RELOC_390_GOTPLTENT,
 1.34094 ++
 1.34095 ++/* 16-bit rel. offset from the GOT to a PLT entry.  */
 1.34096 ++  BFD_RELOC_390_PLTOFF16,
 1.34097 ++
 1.34098 ++/* 32-bit rel. offset from the GOT to a PLT entry.  */
 1.34099 ++  BFD_RELOC_390_PLTOFF32,
 1.34100 ++
 1.34101 ++/* 64-bit rel. offset from the GOT to a PLT entry.  */
 1.34102 ++  BFD_RELOC_390_PLTOFF64,
 1.34103 ++
 1.34104 ++/* s390 tls relocations.  */
 1.34105 ++  BFD_RELOC_390_TLS_LOAD,
 1.34106 ++  BFD_RELOC_390_TLS_GDCALL,
 1.34107 ++  BFD_RELOC_390_TLS_LDCALL,
 1.34108 ++  BFD_RELOC_390_TLS_GD32,
 1.34109 ++  BFD_RELOC_390_TLS_GD64,
 1.34110 ++  BFD_RELOC_390_TLS_GOTIE12,
 1.34111 ++  BFD_RELOC_390_TLS_GOTIE32,
 1.34112 ++  BFD_RELOC_390_TLS_GOTIE64,
 1.34113 ++  BFD_RELOC_390_TLS_LDM32,
 1.34114 ++  BFD_RELOC_390_TLS_LDM64,
 1.34115 ++  BFD_RELOC_390_TLS_IE32,
 1.34116 ++  BFD_RELOC_390_TLS_IE64,
 1.34117 ++  BFD_RELOC_390_TLS_IEENT,
 1.34118 ++  BFD_RELOC_390_TLS_LE32,
 1.34119 ++  BFD_RELOC_390_TLS_LE64,
 1.34120 ++  BFD_RELOC_390_TLS_LDO32,
 1.34121 ++  BFD_RELOC_390_TLS_LDO64,
 1.34122 ++  BFD_RELOC_390_TLS_DTPMOD,
 1.34123 ++  BFD_RELOC_390_TLS_DTPOFF,
 1.34124 ++  BFD_RELOC_390_TLS_TPOFF,
 1.34125 ++
 1.34126 ++/* Long displacement extension.  */
 1.34127 ++  BFD_RELOC_390_20,
 1.34128 ++  BFD_RELOC_390_GOT20,
 1.34129 ++  BFD_RELOC_390_GOTPLT20,
 1.34130 ++  BFD_RELOC_390_TLS_GOTIE20,
 1.34131 ++
 1.34132 ++/* Score relocations  */
 1.34133 ++  BFD_RELOC_SCORE_DUMMY1,
 1.34134 ++
 1.34135 ++/* Low 16 bit for load/store  */
 1.34136 ++  BFD_RELOC_SCORE_GPREL15,
 1.34137 ++
 1.34138 ++/* This is a 24-bit reloc with the right 1 bit assumed to be 0  */
 1.34139 ++  BFD_RELOC_SCORE_DUMMY2,
 1.34140 ++  BFD_RELOC_SCORE_JMP,
 1.34141 ++
 1.34142 ++/* This is a 19-bit reloc with the right 1 bit assumed to be 0  */
 1.34143 ++  BFD_RELOC_SCORE_BRANCH,
 1.34144 ++
 1.34145 ++/* This is a 11-bit reloc with the right 1 bit assumed to be 0  */
 1.34146 ++  BFD_RELOC_SCORE16_JMP,
 1.34147 ++
 1.34148 ++/* This is a 8-bit reloc with the right 1 bit assumed to be 0  */
 1.34149 ++  BFD_RELOC_SCORE16_BRANCH,
 1.34150 ++
 1.34151 ++/* Undocumented Score relocs  */
 1.34152 ++  BFD_RELOC_SCORE_GOT15,
 1.34153 ++  BFD_RELOC_SCORE_GOT_LO16,
 1.34154 ++  BFD_RELOC_SCORE_CALL15,
 1.34155 ++  BFD_RELOC_SCORE_DUMMY_HI16,
 1.34156 ++
 1.34157 ++/* Scenix IP2K - 9-bit register number / data address  */
 1.34158 ++  BFD_RELOC_IP2K_FR9,
 1.34159 ++
 1.34160 ++/* Scenix IP2K - 4-bit register/data bank number  */
 1.34161 ++  BFD_RELOC_IP2K_BANK,
 1.34162 ++
 1.34163 ++/* Scenix IP2K - low 13 bits of instruction word address  */
 1.34164 ++  BFD_RELOC_IP2K_ADDR16CJP,
 1.34165 ++
 1.34166 ++/* Scenix IP2K - high 3 bits of instruction word address  */
 1.34167 ++  BFD_RELOC_IP2K_PAGE3,
 1.34168 ++
 1.34169 ++/* Scenix IP2K - ext/low/high 8 bits of data address  */
 1.34170 ++  BFD_RELOC_IP2K_LO8DATA,
 1.34171 ++  BFD_RELOC_IP2K_HI8DATA,
 1.34172 ++  BFD_RELOC_IP2K_EX8DATA,
 1.34173 ++
 1.34174 ++/* Scenix IP2K - low/high 8 bits of instruction word address  */
 1.34175 ++  BFD_RELOC_IP2K_LO8INSN,
 1.34176 ++  BFD_RELOC_IP2K_HI8INSN,
 1.34177 ++
 1.34178 ++/* Scenix IP2K - even/odd PC modifier to modify snb pcl.0  */
 1.34179 ++  BFD_RELOC_IP2K_PC_SKIP,
 1.34180 ++
 1.34181 ++/* Scenix IP2K - 16 bit word address in text section.  */
 1.34182 ++  BFD_RELOC_IP2K_TEXT,
 1.34183 ++
 1.34184 ++/* Scenix IP2K - 7-bit sp or dp offset  */
 1.34185 ++  BFD_RELOC_IP2K_FR_OFFSET,
 1.34186 ++
 1.34187 ++/* Scenix VPE4K coprocessor - data/insn-space addressing  */
 1.34188 ++  BFD_RELOC_VPE4KMATH_DATA,
 1.34189 ++  BFD_RELOC_VPE4KMATH_INSN,
 1.34190 ++
 1.34191 ++/* These two relocations are used by the linker to determine which of
 1.34192 ++the entries in a C++ virtual function table are actually used.  When
 1.34193 ++the --gc-sections option is given, the linker will zero out the entries
 1.34194 ++that are not used, so that the code for those functions need not be
 1.34195 ++included in the output.
 1.34196 ++
 1.34197 ++VTABLE_INHERIT is a zero-space relocation used to describe to the
 1.34198 ++linker the inheritance tree of a C++ virtual function table.  The
 1.34199 ++relocation's symbol should be the parent class' vtable, and the
 1.34200 ++relocation should be located at the child vtable.
 1.34201 ++
 1.34202 ++VTABLE_ENTRY is a zero-space relocation that describes the use of a
 1.34203 ++virtual function table entry.  The reloc's symbol should refer to the
 1.34204 ++table of the class mentioned in the code.  Off of that base, an offset
 1.34205 ++describes the entry that is being used.  For Rela hosts, this offset
 1.34206 ++is stored in the reloc's addend.  For Rel hosts, we are forced to put
 1.34207 ++this offset in the reloc's section offset.  */
 1.34208 ++  BFD_RELOC_VTABLE_INHERIT,
 1.34209 ++  BFD_RELOC_VTABLE_ENTRY,
 1.34210 ++
 1.34211 ++/* Intel IA64 Relocations.  */
 1.34212 ++  BFD_RELOC_IA64_IMM14,
 1.34213 ++  BFD_RELOC_IA64_IMM22,
 1.34214 ++  BFD_RELOC_IA64_IMM64,
 1.34215 ++  BFD_RELOC_IA64_DIR32MSB,
 1.34216 ++  BFD_RELOC_IA64_DIR32LSB,
 1.34217 ++  BFD_RELOC_IA64_DIR64MSB,
 1.34218 ++  BFD_RELOC_IA64_DIR64LSB,
 1.34219 ++  BFD_RELOC_IA64_GPREL22,
 1.34220 ++  BFD_RELOC_IA64_GPREL64I,
 1.34221 ++  BFD_RELOC_IA64_GPREL32MSB,
 1.34222 ++  BFD_RELOC_IA64_GPREL32LSB,
 1.34223 ++  BFD_RELOC_IA64_GPREL64MSB,
 1.34224 ++  BFD_RELOC_IA64_GPREL64LSB,
 1.34225 ++  BFD_RELOC_IA64_LTOFF22,
 1.34226 ++  BFD_RELOC_IA64_LTOFF64I,
 1.34227 ++  BFD_RELOC_IA64_PLTOFF22,
 1.34228 ++  BFD_RELOC_IA64_PLTOFF64I,
 1.34229 ++  BFD_RELOC_IA64_PLTOFF64MSB,
 1.34230 ++  BFD_RELOC_IA64_PLTOFF64LSB,
 1.34231 ++  BFD_RELOC_IA64_FPTR64I,
 1.34232 ++  BFD_RELOC_IA64_FPTR32MSB,
 1.34233 ++  BFD_RELOC_IA64_FPTR32LSB,
 1.34234 ++  BFD_RELOC_IA64_FPTR64MSB,
 1.34235 ++  BFD_RELOC_IA64_FPTR64LSB,
 1.34236 ++  BFD_RELOC_IA64_PCREL21B,
 1.34237 ++  BFD_RELOC_IA64_PCREL21BI,
 1.34238 ++  BFD_RELOC_IA64_PCREL21M,
 1.34239 ++  BFD_RELOC_IA64_PCREL21F,
 1.34240 ++  BFD_RELOC_IA64_PCREL22,
 1.34241 ++  BFD_RELOC_IA64_PCREL60B,
 1.34242 ++  BFD_RELOC_IA64_PCREL64I,
 1.34243 ++  BFD_RELOC_IA64_PCREL32MSB,
 1.34244 ++  BFD_RELOC_IA64_PCREL32LSB,
 1.34245 ++  BFD_RELOC_IA64_PCREL64MSB,
 1.34246 ++  BFD_RELOC_IA64_PCREL64LSB,
 1.34247 ++  BFD_RELOC_IA64_LTOFF_FPTR22,
 1.34248 ++  BFD_RELOC_IA64_LTOFF_FPTR64I,
 1.34249 ++  BFD_RELOC_IA64_LTOFF_FPTR32MSB,
 1.34250 ++  BFD_RELOC_IA64_LTOFF_FPTR32LSB,
 1.34251 ++  BFD_RELOC_IA64_LTOFF_FPTR64MSB,
 1.34252 ++  BFD_RELOC_IA64_LTOFF_FPTR64LSB,
 1.34253 ++  BFD_RELOC_IA64_SEGREL32MSB,
 1.34254 ++  BFD_RELOC_IA64_SEGREL32LSB,
 1.34255 ++  BFD_RELOC_IA64_SEGREL64MSB,
 1.34256 ++  BFD_RELOC_IA64_SEGREL64LSB,
 1.34257 ++  BFD_RELOC_IA64_SECREL32MSB,
 1.34258 ++  BFD_RELOC_IA64_SECREL32LSB,
 1.34259 ++  BFD_RELOC_IA64_SECREL64MSB,
 1.34260 ++  BFD_RELOC_IA64_SECREL64LSB,
 1.34261 ++  BFD_RELOC_IA64_REL32MSB,
 1.34262 ++  BFD_RELOC_IA64_REL32LSB,
 1.34263 ++  BFD_RELOC_IA64_REL64MSB,
 1.34264 ++  BFD_RELOC_IA64_REL64LSB,
 1.34265 ++  BFD_RELOC_IA64_LTV32MSB,
 1.34266 ++  BFD_RELOC_IA64_LTV32LSB,
 1.34267 ++  BFD_RELOC_IA64_LTV64MSB,
 1.34268 ++  BFD_RELOC_IA64_LTV64LSB,
 1.34269 ++  BFD_RELOC_IA64_IPLTMSB,
 1.34270 ++  BFD_RELOC_IA64_IPLTLSB,
 1.34271 ++  BFD_RELOC_IA64_COPY,
 1.34272 ++  BFD_RELOC_IA64_LTOFF22X,
 1.34273 ++  BFD_RELOC_IA64_LDXMOV,
 1.34274 ++  BFD_RELOC_IA64_TPREL14,
 1.34275 ++  BFD_RELOC_IA64_TPREL22,
 1.34276 ++  BFD_RELOC_IA64_TPREL64I,
 1.34277 ++  BFD_RELOC_IA64_TPREL64MSB,
 1.34278 ++  BFD_RELOC_IA64_TPREL64LSB,
 1.34279 ++  BFD_RELOC_IA64_LTOFF_TPREL22,
 1.34280 ++  BFD_RELOC_IA64_DTPMOD64MSB,
 1.34281 ++  BFD_RELOC_IA64_DTPMOD64LSB,
 1.34282 ++  BFD_RELOC_IA64_LTOFF_DTPMOD22,
 1.34283 ++  BFD_RELOC_IA64_DTPREL14,
 1.34284 ++  BFD_RELOC_IA64_DTPREL22,
 1.34285 ++  BFD_RELOC_IA64_DTPREL64I,
 1.34286 ++  BFD_RELOC_IA64_DTPREL32MSB,
 1.34287 ++  BFD_RELOC_IA64_DTPREL32LSB,
 1.34288 ++  BFD_RELOC_IA64_DTPREL64MSB,
 1.34289 ++  BFD_RELOC_IA64_DTPREL64LSB,
 1.34290 ++  BFD_RELOC_IA64_LTOFF_DTPREL22,
 1.34291 ++
 1.34292 ++/* Motorola 68HC11 reloc.
 1.34293 ++This is the 8 bit high part of an absolute address.  */
 1.34294 ++  BFD_RELOC_M68HC11_HI8,
 1.34295 ++
 1.34296 ++/* Motorola 68HC11 reloc.
 1.34297 ++This is the 8 bit low part of an absolute address.  */
 1.34298 ++  BFD_RELOC_M68HC11_LO8,
 1.34299 ++
 1.34300 ++/* Motorola 68HC11 reloc.
 1.34301 ++This is the 3 bit of a value.  */
 1.34302 ++  BFD_RELOC_M68HC11_3B,
 1.34303 ++
 1.34304 ++/* Motorola 68HC11 reloc.
 1.34305 ++This reloc marks the beginning of a jump/call instruction.
 1.34306 ++It is used for linker relaxation to correctly identify beginning
 1.34307 ++of instruction and change some branches to use PC-relative
 1.34308 ++addressing mode.  */
 1.34309 ++  BFD_RELOC_M68HC11_RL_JUMP,
 1.34310 ++
 1.34311 ++/* Motorola 68HC11 reloc.
 1.34312 ++This reloc marks a group of several instructions that gcc generates
 1.34313 ++and for which the linker relaxation pass can modify and/or remove
 1.34314 ++some of them.  */
 1.34315 ++  BFD_RELOC_M68HC11_RL_GROUP,
 1.34316 ++
 1.34317 ++/* Motorola 68HC11 reloc.
 1.34318 ++This is the 16-bit lower part of an address.  It is used for 'call'
 1.34319 ++instruction to specify the symbol address without any special
 1.34320 ++transformation (due to memory bank window).  */
 1.34321 ++  BFD_RELOC_M68HC11_LO16,
 1.34322 ++
 1.34323 ++/* Motorola 68HC11 reloc.
 1.34324 ++This is a 8-bit reloc that specifies the page number of an address.
 1.34325 ++It is used by 'call' instruction to specify the page number of
 1.34326 ++the symbol.  */
 1.34327 ++  BFD_RELOC_M68HC11_PAGE,
 1.34328 ++
 1.34329 ++/* Motorola 68HC11 reloc.
 1.34330 ++This is a 24-bit reloc that represents the address with a 16-bit
 1.34331 ++value and a 8-bit page number.  The symbol address is transformed
 1.34332 ++to follow the 16K memory bank of 68HC12 (seen as mapped in the window).  */
 1.34333 ++  BFD_RELOC_M68HC11_24,
 1.34334 ++
 1.34335 ++/* Motorola 68HC12 reloc.
 1.34336 ++This is the 5 bits of a value.  */
 1.34337 ++  BFD_RELOC_M68HC12_5B,
 1.34338 ++
 1.34339 ++/* NS CR16C Relocations.  */
 1.34340 ++  BFD_RELOC_16C_NUM08,
 1.34341 ++  BFD_RELOC_16C_NUM08_C,
 1.34342 ++  BFD_RELOC_16C_NUM16,
 1.34343 ++  BFD_RELOC_16C_NUM16_C,
 1.34344 ++  BFD_RELOC_16C_NUM32,
 1.34345 ++  BFD_RELOC_16C_NUM32_C,
 1.34346 ++  BFD_RELOC_16C_DISP04,
 1.34347 ++  BFD_RELOC_16C_DISP04_C,
 1.34348 ++  BFD_RELOC_16C_DISP08,
 1.34349 ++  BFD_RELOC_16C_DISP08_C,
 1.34350 ++  BFD_RELOC_16C_DISP16,
 1.34351 ++  BFD_RELOC_16C_DISP16_C,
 1.34352 ++  BFD_RELOC_16C_DISP24,
 1.34353 ++  BFD_RELOC_16C_DISP24_C,
 1.34354 ++  BFD_RELOC_16C_DISP24a,
 1.34355 ++  BFD_RELOC_16C_DISP24a_C,
 1.34356 ++  BFD_RELOC_16C_REG04,
 1.34357 ++  BFD_RELOC_16C_REG04_C,
 1.34358 ++  BFD_RELOC_16C_REG04a,
 1.34359 ++  BFD_RELOC_16C_REG04a_C,
 1.34360 ++  BFD_RELOC_16C_REG14,
 1.34361 ++  BFD_RELOC_16C_REG14_C,
 1.34362 ++  BFD_RELOC_16C_REG16,
 1.34363 ++  BFD_RELOC_16C_REG16_C,
 1.34364 ++  BFD_RELOC_16C_REG20,
 1.34365 ++  BFD_RELOC_16C_REG20_C,
 1.34366 ++  BFD_RELOC_16C_ABS20,
 1.34367 ++  BFD_RELOC_16C_ABS20_C,
 1.34368 ++  BFD_RELOC_16C_ABS24,
 1.34369 ++  BFD_RELOC_16C_ABS24_C,
 1.34370 ++  BFD_RELOC_16C_IMM04,
 1.34371 ++  BFD_RELOC_16C_IMM04_C,
 1.34372 ++  BFD_RELOC_16C_IMM16,
 1.34373 ++  BFD_RELOC_16C_IMM16_C,
 1.34374 ++  BFD_RELOC_16C_IMM20,
 1.34375 ++  BFD_RELOC_16C_IMM20_C,
 1.34376 ++  BFD_RELOC_16C_IMM24,
 1.34377 ++  BFD_RELOC_16C_IMM24_C,
 1.34378 ++  BFD_RELOC_16C_IMM32,
 1.34379 ++  BFD_RELOC_16C_IMM32_C,
 1.34380 ++
 1.34381 ++/* NS CR16 Relocations.  */
 1.34382 ++  BFD_RELOC_CR16_NUM8,
 1.34383 ++  BFD_RELOC_CR16_NUM16,
 1.34384 ++  BFD_RELOC_CR16_NUM32,
 1.34385 ++  BFD_RELOC_CR16_NUM32a,
 1.34386 ++  BFD_RELOC_CR16_REGREL0,
 1.34387 ++  BFD_RELOC_CR16_REGREL4,
 1.34388 ++  BFD_RELOC_CR16_REGREL4a,
 1.34389 ++  BFD_RELOC_CR16_REGREL14,
 1.34390 ++  BFD_RELOC_CR16_REGREL14a,
 1.34391 ++  BFD_RELOC_CR16_REGREL16,
 1.34392 ++  BFD_RELOC_CR16_REGREL20,
 1.34393 ++  BFD_RELOC_CR16_REGREL20a,
 1.34394 ++  BFD_RELOC_CR16_ABS20,
 1.34395 ++  BFD_RELOC_CR16_ABS24,
 1.34396 ++  BFD_RELOC_CR16_IMM4,
 1.34397 ++  BFD_RELOC_CR16_IMM8,
 1.34398 ++  BFD_RELOC_CR16_IMM16,
 1.34399 ++  BFD_RELOC_CR16_IMM20,
 1.34400 ++  BFD_RELOC_CR16_IMM24,
 1.34401 ++  BFD_RELOC_CR16_IMM32,
 1.34402 ++  BFD_RELOC_CR16_IMM32a,
 1.34403 ++  BFD_RELOC_CR16_DISP4,
 1.34404 ++  BFD_RELOC_CR16_DISP8,
 1.34405 ++  BFD_RELOC_CR16_DISP16,
 1.34406 ++  BFD_RELOC_CR16_DISP20,
 1.34407 ++  BFD_RELOC_CR16_DISP24,
 1.34408 ++  BFD_RELOC_CR16_DISP24a,
 1.34409 ++
 1.34410 ++/* NS CRX Relocations.  */
 1.34411 ++  BFD_RELOC_CRX_REL4,
 1.34412 ++  BFD_RELOC_CRX_REL8,
 1.34413 ++  BFD_RELOC_CRX_REL8_CMP,
 1.34414 ++  BFD_RELOC_CRX_REL16,
 1.34415 ++  BFD_RELOC_CRX_REL24,
 1.34416 ++  BFD_RELOC_CRX_REL32,
 1.34417 ++  BFD_RELOC_CRX_REGREL12,
 1.34418 ++  BFD_RELOC_CRX_REGREL22,
 1.34419 ++  BFD_RELOC_CRX_REGREL28,
 1.34420 ++  BFD_RELOC_CRX_REGREL32,
 1.34421 ++  BFD_RELOC_CRX_ABS16,
 1.34422 ++  BFD_RELOC_CRX_ABS32,
 1.34423 ++  BFD_RELOC_CRX_NUM8,
 1.34424 ++  BFD_RELOC_CRX_NUM16,
 1.34425 ++  BFD_RELOC_CRX_NUM32,
 1.34426 ++  BFD_RELOC_CRX_IMM16,
 1.34427 ++  BFD_RELOC_CRX_IMM32,
 1.34428 ++  BFD_RELOC_CRX_SWITCH8,
 1.34429 ++  BFD_RELOC_CRX_SWITCH16,
 1.34430 ++  BFD_RELOC_CRX_SWITCH32,
 1.34431 ++
 1.34432 ++/* These relocs are only used within the CRIS assembler.  They are not
 1.34433 ++(at present) written to any object files.  */
 1.34434 ++  BFD_RELOC_CRIS_BDISP8,
 1.34435 ++  BFD_RELOC_CRIS_UNSIGNED_5,
 1.34436 ++  BFD_RELOC_CRIS_SIGNED_6,
 1.34437 ++  BFD_RELOC_CRIS_UNSIGNED_6,
 1.34438 ++  BFD_RELOC_CRIS_SIGNED_8,
 1.34439 ++  BFD_RELOC_CRIS_UNSIGNED_8,
 1.34440 ++  BFD_RELOC_CRIS_SIGNED_16,
 1.34441 ++  BFD_RELOC_CRIS_UNSIGNED_16,
 1.34442 ++  BFD_RELOC_CRIS_LAPCQ_OFFSET,
 1.34443 ++  BFD_RELOC_CRIS_UNSIGNED_4,
 1.34444 ++
 1.34445 ++/* Relocs used in ELF shared libraries for CRIS.  */
 1.34446 ++  BFD_RELOC_CRIS_COPY,
 1.34447 ++  BFD_RELOC_CRIS_GLOB_DAT,
 1.34448 ++  BFD_RELOC_CRIS_JUMP_SLOT,
 1.34449 ++  BFD_RELOC_CRIS_RELATIVE,
 1.34450 ++
 1.34451 ++/* 32-bit offset to symbol-entry within GOT.  */
 1.34452 ++  BFD_RELOC_CRIS_32_GOT,
 1.34453 ++
 1.34454 ++/* 16-bit offset to symbol-entry within GOT.  */
 1.34455 ++  BFD_RELOC_CRIS_16_GOT,
 1.34456 ++
 1.34457 ++/* 32-bit offset to symbol-entry within GOT, with PLT handling.  */
 1.34458 ++  BFD_RELOC_CRIS_32_GOTPLT,
 1.34459 ++
 1.34460 ++/* 16-bit offset to symbol-entry within GOT, with PLT handling.  */
 1.34461 ++  BFD_RELOC_CRIS_16_GOTPLT,
 1.34462 ++
 1.34463 ++/* 32-bit offset to symbol, relative to GOT.  */
 1.34464 ++  BFD_RELOC_CRIS_32_GOTREL,
 1.34465 ++
 1.34466 ++/* 32-bit offset to symbol with PLT entry, relative to GOT.  */
 1.34467 ++  BFD_RELOC_CRIS_32_PLT_GOTREL,
 1.34468 ++
 1.34469 ++/* 32-bit offset to symbol with PLT entry, relative to this relocation.  */
 1.34470 ++  BFD_RELOC_CRIS_32_PLT_PCREL,
 1.34471 ++
 1.34472 ++/* Intel i860 Relocations.  */
 1.34473 ++  BFD_RELOC_860_COPY,
 1.34474 ++  BFD_RELOC_860_GLOB_DAT,
 1.34475 ++  BFD_RELOC_860_JUMP_SLOT,
 1.34476 ++  BFD_RELOC_860_RELATIVE,
 1.34477 ++  BFD_RELOC_860_PC26,
 1.34478 ++  BFD_RELOC_860_PLT26,
 1.34479 ++  BFD_RELOC_860_PC16,
 1.34480 ++  BFD_RELOC_860_LOW0,
 1.34481 ++  BFD_RELOC_860_SPLIT0,
 1.34482 ++  BFD_RELOC_860_LOW1,
 1.34483 ++  BFD_RELOC_860_SPLIT1,
 1.34484 ++  BFD_RELOC_860_LOW2,
 1.34485 ++  BFD_RELOC_860_SPLIT2,
 1.34486 ++  BFD_RELOC_860_LOW3,
 1.34487 ++  BFD_RELOC_860_LOGOT0,
 1.34488 ++  BFD_RELOC_860_SPGOT0,
 1.34489 ++  BFD_RELOC_860_LOGOT1,
 1.34490 ++  BFD_RELOC_860_SPGOT1,
 1.34491 ++  BFD_RELOC_860_LOGOTOFF0,
 1.34492 ++  BFD_RELOC_860_SPGOTOFF0,
 1.34493 ++  BFD_RELOC_860_LOGOTOFF1,
 1.34494 ++  BFD_RELOC_860_SPGOTOFF1,
 1.34495 ++  BFD_RELOC_860_LOGOTOFF2,
 1.34496 ++  BFD_RELOC_860_LOGOTOFF3,
 1.34497 ++  BFD_RELOC_860_LOPC,
 1.34498 ++  BFD_RELOC_860_HIGHADJ,
 1.34499 ++  BFD_RELOC_860_HAGOT,
 1.34500 ++  BFD_RELOC_860_HAGOTOFF,
 1.34501 ++  BFD_RELOC_860_HAPC,
 1.34502 ++  BFD_RELOC_860_HIGH,
 1.34503 ++  BFD_RELOC_860_HIGOT,
 1.34504 ++  BFD_RELOC_860_HIGOTOFF,
 1.34505 ++
 1.34506 ++/* OpenRISC Relocations.  */
 1.34507 ++  BFD_RELOC_OPENRISC_ABS_26,
 1.34508 ++  BFD_RELOC_OPENRISC_REL_26,
 1.34509 ++
 1.34510 ++/* H8 elf Relocations.  */
 1.34511 ++  BFD_RELOC_H8_DIR16A8,
 1.34512 ++  BFD_RELOC_H8_DIR16R8,
 1.34513 ++  BFD_RELOC_H8_DIR24A8,
 1.34514 ++  BFD_RELOC_H8_DIR24R8,
 1.34515 ++  BFD_RELOC_H8_DIR32A16,
 1.34516 ++
 1.34517 ++/* Sony Xstormy16 Relocations.  */
 1.34518 ++  BFD_RELOC_XSTORMY16_REL_12,
 1.34519 ++  BFD_RELOC_XSTORMY16_12,
 1.34520 ++  BFD_RELOC_XSTORMY16_24,
 1.34521 ++  BFD_RELOC_XSTORMY16_FPTR16,
 1.34522 ++
 1.34523 ++/* Self-describing complex relocations.  */
 1.34524 ++  BFD_RELOC_RELC,
 1.34525 ++
 1.34526 ++
 1.34527 ++/* Infineon Relocations.  */
 1.34528 ++  BFD_RELOC_XC16X_PAG,
 1.34529 ++  BFD_RELOC_XC16X_POF,
 1.34530 ++  BFD_RELOC_XC16X_SEG,
 1.34531 ++  BFD_RELOC_XC16X_SOF,
 1.34532 ++
 1.34533 ++/* Relocations used by VAX ELF.  */
 1.34534 ++  BFD_RELOC_VAX_GLOB_DAT,
 1.34535 ++  BFD_RELOC_VAX_JMP_SLOT,
 1.34536 ++  BFD_RELOC_VAX_RELATIVE,
 1.34537 ++
 1.34538 ++/* Morpho MT - 16 bit immediate relocation.  */
 1.34539 ++  BFD_RELOC_MT_PC16,
 1.34540 ++
 1.34541 ++/* Morpho MT - Hi 16 bits of an address.  */
 1.34542 ++  BFD_RELOC_MT_HI16,
 1.34543 ++
 1.34544 ++/* Morpho MT - Low 16 bits of an address.  */
 1.34545 ++  BFD_RELOC_MT_LO16,
 1.34546 ++
 1.34547 ++/* Morpho MT - Used to tell the linker which vtable entries are used.  */
 1.34548 ++  BFD_RELOC_MT_GNU_VTINHERIT,
 1.34549 ++
 1.34550 ++/* Morpho MT - Used to tell the linker which vtable entries are used.  */
 1.34551 ++  BFD_RELOC_MT_GNU_VTENTRY,
 1.34552 ++
 1.34553 ++/* Morpho MT - 8 bit immediate relocation.  */
 1.34554 ++  BFD_RELOC_MT_PCINSN8,
 1.34555 ++
 1.34556 ++/* msp430 specific relocation codes  */
 1.34557 ++  BFD_RELOC_MSP430_10_PCREL,
 1.34558 ++  BFD_RELOC_MSP430_16_PCREL,
 1.34559 ++  BFD_RELOC_MSP430_16,
 1.34560 ++  BFD_RELOC_MSP430_16_PCREL_BYTE,
 1.34561 ++  BFD_RELOC_MSP430_16_BYTE,
 1.34562 ++  BFD_RELOC_MSP430_2X_PCREL,
 1.34563 ++  BFD_RELOC_MSP430_RL_PCREL,
 1.34564 ++
 1.34565 ++/* IQ2000 Relocations.  */
 1.34566 ++  BFD_RELOC_IQ2000_OFFSET_16,
 1.34567 ++  BFD_RELOC_IQ2000_OFFSET_21,
 1.34568 ++  BFD_RELOC_IQ2000_UHI16,
 1.34569 ++
 1.34570 ++/* Special Xtensa relocation used only by PLT entries in ELF shared
 1.34571 ++objects to indicate that the runtime linker should set the value
 1.34572 ++to one of its own internal functions or data structures.  */
 1.34573 ++  BFD_RELOC_XTENSA_RTLD,
 1.34574 ++
 1.34575 ++/* Xtensa relocations for ELF shared objects.  */
 1.34576 ++  BFD_RELOC_XTENSA_GLOB_DAT,
 1.34577 ++  BFD_RELOC_XTENSA_JMP_SLOT,
 1.34578 ++  BFD_RELOC_XTENSA_RELATIVE,
 1.34579 ++
 1.34580 ++/* Xtensa relocation used in ELF object files for symbols that may require
 1.34581 ++PLT entries.  Otherwise, this is just a generic 32-bit relocation.  */
 1.34582 ++  BFD_RELOC_XTENSA_PLT,
 1.34583 ++
 1.34584 ++/* Xtensa relocations to mark the difference of two local symbols.
 1.34585 ++These are only needed to support linker relaxation and can be ignored
 1.34586 ++when not relaxing.  The field is set to the value of the difference
 1.34587 ++assuming no relaxation.  The relocation encodes the position of the
 1.34588 ++first symbol so the linker can determine whether to adjust the field
 1.34589 ++value.  */
 1.34590 ++  BFD_RELOC_XTENSA_DIFF8,
 1.34591 ++  BFD_RELOC_XTENSA_DIFF16,
 1.34592 ++  BFD_RELOC_XTENSA_DIFF32,
 1.34593 ++
 1.34594 ++/* Generic Xtensa relocations for instruction operands.  Only the slot
 1.34595 ++number is encoded in the relocation.  The relocation applies to the
 1.34596 ++last PC-relative immediate operand, or if there are no PC-relative
 1.34597 ++immediates, to the last immediate operand.  */
 1.34598 ++  BFD_RELOC_XTENSA_SLOT0_OP,
 1.34599 ++  BFD_RELOC_XTENSA_SLOT1_OP,
 1.34600 ++  BFD_RELOC_XTENSA_SLOT2_OP,
 1.34601 ++  BFD_RELOC_XTENSA_SLOT3_OP,
 1.34602 ++  BFD_RELOC_XTENSA_SLOT4_OP,
 1.34603 ++  BFD_RELOC_XTENSA_SLOT5_OP,
 1.34604 ++  BFD_RELOC_XTENSA_SLOT6_OP,
 1.34605 ++  BFD_RELOC_XTENSA_SLOT7_OP,
 1.34606 ++  BFD_RELOC_XTENSA_SLOT8_OP,
 1.34607 ++  BFD_RELOC_XTENSA_SLOT9_OP,
 1.34608 ++  BFD_RELOC_XTENSA_SLOT10_OP,
 1.34609 ++  BFD_RELOC_XTENSA_SLOT11_OP,
 1.34610 ++  BFD_RELOC_XTENSA_SLOT12_OP,
 1.34611 ++  BFD_RELOC_XTENSA_SLOT13_OP,
 1.34612 ++  BFD_RELOC_XTENSA_SLOT14_OP,
 1.34613 ++
 1.34614 ++/* Alternate Xtensa relocations.  Only the slot is encoded in the
 1.34615 ++relocation.  The meaning of these relocations is opcode-specific.  */
 1.34616 ++  BFD_RELOC_XTENSA_SLOT0_ALT,
 1.34617 ++  BFD_RELOC_XTENSA_SLOT1_ALT,
 1.34618 ++  BFD_RELOC_XTENSA_SLOT2_ALT,
 1.34619 ++  BFD_RELOC_XTENSA_SLOT3_ALT,
 1.34620 ++  BFD_RELOC_XTENSA_SLOT4_ALT,
 1.34621 ++  BFD_RELOC_XTENSA_SLOT5_ALT,
 1.34622 ++  BFD_RELOC_XTENSA_SLOT6_ALT,
 1.34623 ++  BFD_RELOC_XTENSA_SLOT7_ALT,
 1.34624 ++  BFD_RELOC_XTENSA_SLOT8_ALT,
 1.34625 ++  BFD_RELOC_XTENSA_SLOT9_ALT,
 1.34626 ++  BFD_RELOC_XTENSA_SLOT10_ALT,
 1.34627 ++  BFD_RELOC_XTENSA_SLOT11_ALT,
 1.34628 ++  BFD_RELOC_XTENSA_SLOT12_ALT,
 1.34629 ++  BFD_RELOC_XTENSA_SLOT13_ALT,
 1.34630 ++  BFD_RELOC_XTENSA_SLOT14_ALT,
 1.34631 ++
 1.34632 ++/* Xtensa relocations for backward compatibility.  These have all been
 1.34633 ++replaced by BFD_RELOC_XTENSA_SLOT0_OP.  */
 1.34634 ++  BFD_RELOC_XTENSA_OP0,
 1.34635 ++  BFD_RELOC_XTENSA_OP1,
 1.34636 ++  BFD_RELOC_XTENSA_OP2,
 1.34637 ++
 1.34638 ++/* Xtensa relocation to mark that the assembler expanded the
 1.34639 ++instructions from an original target.  The expansion size is
 1.34640 ++encoded in the reloc size.  */
 1.34641 ++  BFD_RELOC_XTENSA_ASM_EXPAND,
 1.34642 ++
 1.34643 ++/* Xtensa relocation to mark that the linker should simplify
 1.34644 ++assembler-expanded instructions.  This is commonly used
 1.34645 ++internally by the linker after analysis of a
 1.34646 ++BFD_RELOC_XTENSA_ASM_EXPAND.  */
 1.34647 ++  BFD_RELOC_XTENSA_ASM_SIMPLIFY,
 1.34648 ++
 1.34649 ++/* 8 bit signed offset in (ix+d) or (iy+d).  */
 1.34650 ++  BFD_RELOC_Z80_DISP8,
 1.34651 ++
 1.34652 ++/* DJNZ offset.  */
 1.34653 ++  BFD_RELOC_Z8K_DISP7,
 1.34654 ++
 1.34655 ++/* CALR offset.  */
 1.34656 ++  BFD_RELOC_Z8K_CALLR,
 1.34657 ++
 1.34658 ++/* 4 bit value.  */
 1.34659 ++  BFD_RELOC_Z8K_IMM4L,
 1.34660 ++  BFD_RELOC_UNUSED };
 1.34661 ++typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
 1.34662 ++reloc_howto_type *bfd_reloc_type_lookup
 1.34663 ++   (bfd *abfd, bfd_reloc_code_real_type code);
 1.34664 ++reloc_howto_type *bfd_reloc_name_lookup
 1.34665 ++   (bfd *abfd, const char *reloc_name);
 1.34666 ++
 1.34667 ++const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
 1.34668 ++
 1.34669 ++/* Extracted from syms.c.  */
 1.34670 ++
 1.34671 ++typedef struct bfd_symbol
 1.34672 ++{
 1.34673 ++  /* A pointer to the BFD which owns the symbol. This information
 1.34674 ++     is necessary so that a back end can work out what additional
 1.34675 ++     information (invisible to the application writer) is carried
 1.34676 ++     with the symbol.
 1.34677 ++
 1.34678 ++     This field is *almost* redundant, since you can use section->owner
 1.34679 ++     instead, except that some symbols point to the global sections
 1.34680 ++     bfd_{abs,com,und}_section.  This could be fixed by making
 1.34681 ++     these globals be per-bfd (or per-target-flavor).  FIXME.  */
 1.34682 ++  struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field.  */
 1.34683 ++
 1.34684 ++  /* The text of the symbol. The name is left alone, and not copied; the
 1.34685 ++     application may not alter it.  */
 1.34686 ++  const char *name;
 1.34687 ++
 1.34688 ++  /* The value of the symbol.  This really should be a union of a
 1.34689 ++     numeric value with a pointer, since some flags indicate that
 1.34690 ++     a pointer to another symbol is stored here.  */
 1.34691 ++  symvalue value;
 1.34692 ++
 1.34693 ++  /* Attributes of a symbol.  */
 1.34694 ++#define BSF_NO_FLAGS    0x00
 1.34695 ++
 1.34696 ++  /* The symbol has local scope; <<static>> in <<C>>. The value
 1.34697 ++     is the offset into the section of the data.  */
 1.34698 ++#define BSF_LOCAL      0x01
 1.34699 ++
 1.34700 ++  /* The symbol has global scope; initialized data in <<C>>. The
 1.34701 ++     value is the offset into the section of the data.  */
 1.34702 ++#define BSF_GLOBAL     0x02
 1.34703 ++
 1.34704 ++  /* The symbol has global scope and is exported. The value is
 1.34705 ++     the offset into the section of the data.  */
 1.34706 ++#define BSF_EXPORT     BSF_GLOBAL /* No real difference.  */
 1.34707 ++
 1.34708 ++  /* A normal C symbol would be one of:
 1.34709 ++     <<BSF_LOCAL>>, <<BSF_FORT_COMM>>,  <<BSF_UNDEFINED>> or
 1.34710 ++     <<BSF_GLOBAL>>.  */
 1.34711 ++
 1.34712 ++  /* The symbol is a debugging record. The value has an arbitrary
 1.34713 ++     meaning, unless BSF_DEBUGGING_RELOC is also set.  */
 1.34714 ++#define BSF_DEBUGGING  0x08
 1.34715 ++
 1.34716 ++  /* The symbol denotes a function entry point.  Used in ELF,
 1.34717 ++     perhaps others someday.  */
 1.34718 ++#define BSF_FUNCTION    0x10
 1.34719 ++
 1.34720 ++  /* Used by the linker.  */
 1.34721 ++#define BSF_KEEP        0x20
 1.34722 ++#define BSF_KEEP_G      0x40
 1.34723 ++
 1.34724 ++  /* A weak global symbol, overridable without warnings by
 1.34725 ++     a regular global symbol of the same name.  */
 1.34726 ++#define BSF_WEAK        0x80
 1.34727 ++
 1.34728 ++  /* This symbol was created to point to a section, e.g. ELF's
 1.34729 ++     STT_SECTION symbols.  */
 1.34730 ++#define BSF_SECTION_SYM 0x100
 1.34731 ++
 1.34732 ++  /* The symbol used to be a common symbol, but now it is
 1.34733 ++     allocated.  */
 1.34734 ++#define BSF_OLD_COMMON  0x200
 1.34735 ++
 1.34736 ++  /* The default value for common data.  */
 1.34737 ++#define BFD_FORT_COMM_DEFAULT_VALUE 0
 1.34738 ++
 1.34739 ++  /* In some files the type of a symbol sometimes alters its
 1.34740 ++     location in an output file - ie in coff a <<ISFCN>> symbol
 1.34741 ++     which is also <<C_EXT>> symbol appears where it was
 1.34742 ++     declared and not at the end of a section.  This bit is set
 1.34743 ++     by the target BFD part to convey this information.  */
 1.34744 ++#define BSF_NOT_AT_END    0x400
 1.34745 ++
 1.34746 ++  /* Signal that the symbol is the label of constructor section.  */
 1.34747 ++#define BSF_CONSTRUCTOR   0x800
 1.34748 ++
 1.34749 ++  /* Signal that the symbol is a warning symbol.  The name is a
 1.34750 ++     warning.  The name of the next symbol is the one to warn about;
 1.34751 ++     if a reference is made to a symbol with the same name as the next
 1.34752 ++     symbol, a warning is issued by the linker.  */
 1.34753 ++#define BSF_WARNING       0x1000
 1.34754 ++
 1.34755 ++  /* Signal that the symbol is indirect.  This symbol is an indirect
 1.34756 ++     pointer to the symbol with the same name as the next symbol.  */
 1.34757 ++#define BSF_INDIRECT      0x2000
 1.34758 ++
 1.34759 ++  /* BSF_FILE marks symbols that contain a file name.  This is used
 1.34760 ++     for ELF STT_FILE symbols.  */
 1.34761 ++#define BSF_FILE          0x4000
 1.34762 ++
 1.34763 ++  /* Symbol is from dynamic linking information.  */
 1.34764 ++#define BSF_DYNAMIC       0x8000
 1.34765 ++
 1.34766 ++  /* The symbol denotes a data object.  Used in ELF, and perhaps
 1.34767 ++     others someday.  */
 1.34768 ++#define BSF_OBJECT        0x10000
 1.34769 ++
 1.34770 ++  /* This symbol is a debugging symbol.  The value is the offset
 1.34771 ++     into the section of the data.  BSF_DEBUGGING should be set
 1.34772 ++     as well.  */
 1.34773 ++#define BSF_DEBUGGING_RELOC 0x20000
 1.34774 ++
 1.34775 ++  /* This symbol is thread local.  Used in ELF.  */
 1.34776 ++#define BSF_THREAD_LOCAL  0x40000
 1.34777 ++
 1.34778 ++  /* This symbol represents a complex relocation expression,
 1.34779 ++     with the expression tree serialized in the symbol name.  */
 1.34780 ++#define BSF_RELC 0x80000
 1.34781 ++
 1.34782 ++  /* This symbol represents a signed complex relocation expression,
 1.34783 ++     with the expression tree serialized in the symbol name.  */
 1.34784 ++#define BSF_SRELC 0x100000
 1.34785 ++
 1.34786 ++  flagword flags;
 1.34787 ++
 1.34788 ++  /* A pointer to the section to which this symbol is
 1.34789 ++     relative.  This will always be non NULL, there are special
 1.34790 ++     sections for undefined and absolute symbols.  */
 1.34791 ++  struct bfd_section *section;
 1.34792 ++
 1.34793 ++  /* Back end special data.  */
 1.34794 ++  union
 1.34795 ++    {
 1.34796 ++      void *p;
 1.34797 ++      bfd_vma i;
 1.34798 ++    }
 1.34799 ++  udata;
 1.34800 ++}
 1.34801 ++asymbol;
 1.34802 ++
 1.34803 ++#define bfd_get_symtab_upper_bound(abfd) \
 1.34804 ++     BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
 1.34805 ++
 1.34806 ++bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
 1.34807 ++
 1.34808 ++bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
 1.34809 ++
 1.34810 ++#define bfd_is_local_label_name(abfd, name) \
 1.34811 ++  BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
 1.34812 ++
 1.34813 ++bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
 1.34814 ++
 1.34815 ++#define bfd_is_target_special_symbol(abfd, sym) \
 1.34816 ++  BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
 1.34817 ++
 1.34818 ++#define bfd_canonicalize_symtab(abfd, location) \
 1.34819 ++  BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
 1.34820 ++
 1.34821 ++bfd_boolean bfd_set_symtab
 1.34822 ++   (bfd *abfd, asymbol **location, unsigned int count);
 1.34823 ++
 1.34824 ++void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
 1.34825 ++
 1.34826 ++#define bfd_make_empty_symbol(abfd) \
 1.34827 ++  BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
 1.34828 ++
 1.34829 ++asymbol *_bfd_generic_make_empty_symbol (bfd *);
 1.34830 ++
 1.34831 ++#define bfd_make_debug_symbol(abfd,ptr,size) \
 1.34832 ++  BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
 1.34833 ++
 1.34834 ++int bfd_decode_symclass (asymbol *symbol);
 1.34835 ++
 1.34836 ++bfd_boolean bfd_is_undefined_symclass (int symclass);
 1.34837 ++
 1.34838 ++void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
 1.34839 ++
 1.34840 ++bfd_boolean bfd_copy_private_symbol_data
 1.34841 ++   (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
 1.34842 ++
 1.34843 ++#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
 1.34844 ++  BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
 1.34845 ++            (ibfd, isymbol, obfd, osymbol))
 1.34846 ++
 1.34847 ++/* Extracted from bfd.c.  */
 1.34848 ++struct bfd
 1.34849 ++{
 1.34850 ++  /* A unique identifier of the BFD  */
 1.34851 ++  unsigned int id;
 1.34852 ++
 1.34853 ++  /* The filename the application opened the BFD with.  */
 1.34854 ++  const char *filename;
 1.34855 ++
 1.34856 ++  /* A pointer to the target jump table.  */
 1.34857 ++  const struct bfd_target *xvec;
 1.34858 ++
 1.34859 ++  /* The IOSTREAM, and corresponding IO vector that provide access
 1.34860 ++     to the file backing the BFD.  */
 1.34861 ++  void *iostream;
 1.34862 ++  const struct bfd_iovec *iovec;
 1.34863 ++
 1.34864 ++  /* Is the file descriptor being cached?  That is, can it be closed as
 1.34865 ++     needed, and re-opened when accessed later?  */
 1.34866 ++  bfd_boolean cacheable;
 1.34867 ++
 1.34868 ++  /* Marks whether there was a default target specified when the
 1.34869 ++     BFD was opened. This is used to select which matching algorithm
 1.34870 ++     to use to choose the back end.  */
 1.34871 ++  bfd_boolean target_defaulted;
 1.34872 ++
 1.34873 ++  /* The caching routines use these to maintain a
 1.34874 ++     least-recently-used list of BFDs.  */
 1.34875 ++  struct bfd *lru_prev, *lru_next;
 1.34876 ++
 1.34877 ++  /* When a file is closed by the caching routines, BFD retains
 1.34878 ++     state information on the file here...  */
 1.34879 ++  ufile_ptr where;
 1.34880 ++
 1.34881 ++  /* ... and here: (``once'' means at least once).  */
 1.34882 ++  bfd_boolean opened_once;
 1.34883 ++
 1.34884 ++  /* Set if we have a locally maintained mtime value, rather than
 1.34885 ++     getting it from the file each time.  */
 1.34886 ++  bfd_boolean mtime_set;
 1.34887 ++
 1.34888 ++  /* File modified time, if mtime_set is TRUE.  */
 1.34889 ++  long mtime;
 1.34890 ++
 1.34891 ++  /* Reserved for an unimplemented file locking extension.  */
 1.34892 ++  int ifd;
 1.34893 ++
 1.34894 ++  /* The format which belongs to the BFD. (object, core, etc.)  */
 1.34895 ++  bfd_format format;
 1.34896 ++
 1.34897 ++  /* The direction with which the BFD was opened.  */
 1.34898 ++  enum bfd_direction
 1.34899 ++    {
 1.34900 ++      no_direction = 0,
 1.34901 ++      read_direction = 1,
 1.34902 ++      write_direction = 2,
 1.34903 ++      both_direction = 3
 1.34904 ++    }
 1.34905 ++  direction;
 1.34906 ++
 1.34907 ++  /* Format_specific flags.  */
 1.34908 ++  flagword flags;
 1.34909 ++
 1.34910 ++  /* Currently my_archive is tested before adding origin to
 1.34911 ++     anything. I believe that this can become always an add of
 1.34912 ++     origin, with origin set to 0 for non archive files.  */
 1.34913 ++  ufile_ptr origin;
 1.34914 ++
 1.34915 ++  /* Remember when output has begun, to stop strange things
 1.34916 ++     from happening.  */
 1.34917 ++  bfd_boolean output_has_begun;
 1.34918 ++
 1.34919 ++  /* A hash table for section names.  */
 1.34920 ++  struct bfd_hash_table section_htab;
 1.34921 ++
 1.34922 ++  /* Pointer to linked list of sections.  */
 1.34923 ++  struct bfd_section *sections;
 1.34924 ++
 1.34925 ++  /* The last section on the section list.  */
 1.34926 ++  struct bfd_section *section_last;
 1.34927 ++
 1.34928 ++  /* The number of sections.  */
 1.34929 ++  unsigned int section_count;
 1.34930 ++
 1.34931 ++  /* Stuff only useful for object files:
 1.34932 ++     The start address.  */
 1.34933 ++  bfd_vma start_address;
 1.34934 ++
 1.34935 ++  /* Used for input and output.  */
 1.34936 ++  unsigned int symcount;
 1.34937 ++
 1.34938 ++  /* Symbol table for output BFD (with symcount entries).  */
 1.34939 ++  struct bfd_symbol  **outsymbols;
 1.34940 ++
 1.34941 ++  /* Used for slurped dynamic symbol tables.  */
 1.34942 ++  unsigned int dynsymcount;
 1.34943 ++
 1.34944 ++  /* Pointer to structure which contains architecture information.  */
 1.34945 ++  const struct bfd_arch_info *arch_info;
 1.34946 ++
 1.34947 ++  /* Flag set if symbols from this BFD should not be exported.  */
 1.34948 ++  bfd_boolean no_export;
 1.34949 ++
 1.34950 ++  /* Stuff only useful for archives.  */
 1.34951 ++  void *arelt_data;
 1.34952 ++  struct bfd *my_archive;      /* The containing archive BFD.  */
 1.34953 ++  struct bfd *archive_next;    /* The next BFD in the archive.  */
 1.34954 ++  struct bfd *archive_head;    /* The first BFD in the archive.  */
 1.34955 ++  bfd_boolean has_armap;
 1.34956 ++
 1.34957 ++  /* A chain of BFD structures involved in a link.  */
 1.34958 ++  struct bfd *link_next;
 1.34959 ++
 1.34960 ++  /* A field used by _bfd_generic_link_add_archive_symbols.  This will
 1.34961 ++     be used only for archive elements.  */
 1.34962 ++  int archive_pass;
 1.34963 ++
 1.34964 ++  /* Used by the back end to hold private data.  */
 1.34965 ++  union
 1.34966 ++    {
 1.34967 ++      struct aout_data_struct *aout_data;
 1.34968 ++      struct artdata *aout_ar_data;
 1.34969 ++      struct _oasys_data *oasys_obj_data;
 1.34970 ++      struct _oasys_ar_data *oasys_ar_data;
 1.34971 ++      struct coff_tdata *coff_obj_data;
 1.34972 ++      struct pe_tdata *pe_obj_data;
 1.34973 ++      struct xcoff_tdata *xcoff_obj_data;
 1.34974 ++      struct ecoff_tdata *ecoff_obj_data;
 1.34975 ++      struct ieee_data_struct *ieee_data;
 1.34976 ++      struct ieee_ar_data_struct *ieee_ar_data;
 1.34977 ++      struct srec_data_struct *srec_data;
 1.34978 ++      struct ihex_data_struct *ihex_data;
 1.34979 ++      struct tekhex_data_struct *tekhex_data;
 1.34980 ++      struct elf_obj_tdata *elf_obj_data;
 1.34981 ++      struct nlm_obj_tdata *nlm_obj_data;
 1.34982 ++      struct bout_data_struct *bout_data;
 1.34983 ++      struct mmo_data_struct *mmo_data;
 1.34984 ++      struct sun_core_struct *sun_core_data;
 1.34985 ++      struct sco5_core_struct *sco5_core_data;
 1.34986 ++      struct trad_core_struct *trad_core_data;
 1.34987 ++      struct som_data_struct *som_data;
 1.34988 ++      struct hpux_core_struct *hpux_core_data;
 1.34989 ++      struct hppabsd_core_struct *hppabsd_core_data;
 1.34990 ++      struct sgi_core_struct *sgi_core_data;
 1.34991 ++      struct lynx_core_struct *lynx_core_data;
 1.34992 ++      struct osf_core_struct *osf_core_data;
 1.34993 ++      struct cisco_core_struct *cisco_core_data;
 1.34994 ++      struct versados_data_struct *versados_data;
 1.34995 ++      struct netbsd_core_struct *netbsd_core_data;
 1.34996 ++      struct mach_o_data_struct *mach_o_data;
 1.34997 ++      struct mach_o_fat_data_struct *mach_o_fat_data;
 1.34998 ++      struct bfd_pef_data_struct *pef_data;
 1.34999 ++      struct bfd_pef_xlib_data_struct *pef_xlib_data;
 1.35000 ++      struct bfd_sym_data_struct *sym_data;
 1.35001 ++      void *any;
 1.35002 ++    }
 1.35003 ++  tdata;
 1.35004 ++
 1.35005 ++  /* Used by the application to hold private data.  */
 1.35006 ++  void *usrdata;
 1.35007 ++
 1.35008 ++  /* Where all the allocated stuff under this BFD goes.  This is a
 1.35009 ++     struct objalloc *, but we use void * to avoid requiring the inclusion
 1.35010 ++     of objalloc.h.  */
 1.35011 ++  void *memory;
 1.35012 ++};
 1.35013 ++
 1.35014 ++typedef enum bfd_error
 1.35015 ++{
 1.35016 ++  bfd_error_no_error = 0,
 1.35017 ++  bfd_error_system_call,
 1.35018 ++  bfd_error_invalid_target,
 1.35019 ++  bfd_error_wrong_format,
 1.35020 ++  bfd_error_wrong_object_format,
 1.35021 ++  bfd_error_invalid_operation,
 1.35022 ++  bfd_error_no_memory,
 1.35023 ++  bfd_error_no_symbols,
 1.35024 ++  bfd_error_no_armap,
 1.35025 ++  bfd_error_no_more_archived_files,
 1.35026 ++  bfd_error_malformed_archive,
 1.35027 ++  bfd_error_file_not_recognized,
 1.35028 ++  bfd_error_file_ambiguously_recognized,
 1.35029 ++  bfd_error_no_contents,
 1.35030 ++  bfd_error_nonrepresentable_section,
 1.35031 ++  bfd_error_no_debug_section,
 1.35032 ++  bfd_error_bad_value,
 1.35033 ++  bfd_error_file_truncated,
 1.35034 ++  bfd_error_file_too_big,
 1.35035 ++  bfd_error_on_input,
 1.35036 ++  bfd_error_invalid_error_code
 1.35037 ++}
 1.35038 ++bfd_error_type;
 1.35039 ++
 1.35040 ++bfd_error_type bfd_get_error (void);
 1.35041 ++
 1.35042 ++void bfd_set_error (bfd_error_type error_tag, ...);
 1.35043 ++
 1.35044 ++const char *bfd_errmsg (bfd_error_type error_tag);
 1.35045 ++
 1.35046 ++void bfd_perror (const char *message);
 1.35047 ++
 1.35048 ++typedef void (*bfd_error_handler_type) (const char *, ...);
 1.35049 ++
 1.35050 ++bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
 1.35051 ++
 1.35052 ++void bfd_set_error_program_name (const char *);
 1.35053 ++
 1.35054 ++bfd_error_handler_type bfd_get_error_handler (void);
 1.35055 ++
 1.35056 ++long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect);
 1.35057 ++
 1.35058 ++long bfd_canonicalize_reloc
 1.35059 ++   (bfd *abfd, asection *sec, arelent **loc, asymbol **syms);
 1.35060 ++
 1.35061 ++void bfd_set_reloc
 1.35062 ++   (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
 1.35063 ++
 1.35064 ++bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);
 1.35065 ++
 1.35066 ++int bfd_get_arch_size (bfd *abfd);
 1.35067 ++
 1.35068 ++int bfd_get_sign_extend_vma (bfd *abfd);
 1.35069 ++
 1.35070 ++bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
 1.35071 ++
 1.35072 ++unsigned int bfd_get_gp_size (bfd *abfd);
 1.35073 ++
 1.35074 ++void bfd_set_gp_size (bfd *abfd, unsigned int i);
 1.35075 ++
 1.35076 ++bfd_vma bfd_scan_vma (const char *string, const char **end, int base);
 1.35077 ++
 1.35078 ++bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);
 1.35079 ++
 1.35080 ++#define bfd_copy_private_header_data(ibfd, obfd) \
 1.35081 ++     BFD_SEND (obfd, _bfd_copy_private_header_data, \
 1.35082 ++               (ibfd, obfd))
 1.35083 ++bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
 1.35084 ++
 1.35085 ++#define bfd_copy_private_bfd_data(ibfd, obfd) \
 1.35086 ++     BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
 1.35087 ++               (ibfd, obfd))
 1.35088 ++bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd);
 1.35089 ++
 1.35090 ++#define bfd_merge_private_bfd_data(ibfd, obfd) \
 1.35091 ++     BFD_SEND (obfd, _bfd_merge_private_bfd_data, \
 1.35092 ++               (ibfd, obfd))
 1.35093 ++bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
 1.35094 ++
 1.35095 ++#define bfd_set_private_flags(abfd, flags) \
 1.35096 ++     BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
 1.35097 ++#define bfd_sizeof_headers(abfd, info) \
 1.35098 ++       BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info))
 1.35099 ++
 1.35100 ++#define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
 1.35101 ++       BFD_SEND (abfd, _bfd_find_nearest_line, \
 1.35102 ++                 (abfd, sec, syms, off, file, func, line))
 1.35103 ++
 1.35104 ++#define bfd_find_line(abfd, syms, sym, file, line) \
 1.35105 ++       BFD_SEND (abfd, _bfd_find_line, \
 1.35106 ++                 (abfd, syms, sym, file, line))
 1.35107 ++
 1.35108 ++#define bfd_find_inliner_info(abfd, file, func, line) \
 1.35109 ++       BFD_SEND (abfd, _bfd_find_inliner_info, \
 1.35110 ++                 (abfd, file, func, line))
 1.35111 ++
 1.35112 ++#define bfd_debug_info_start(abfd) \
 1.35113 ++       BFD_SEND (abfd, _bfd_debug_info_start, (abfd))
 1.35114 ++
 1.35115 ++#define bfd_debug_info_end(abfd) \
 1.35116 ++       BFD_SEND (abfd, _bfd_debug_info_end, (abfd))
 1.35117 ++
 1.35118 ++#define bfd_debug_info_accumulate(abfd, section) \
 1.35119 ++       BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))
 1.35120 ++
 1.35121 ++#define bfd_stat_arch_elt(abfd, stat) \
 1.35122 ++       BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat))
 1.35123 ++
 1.35124 ++#define bfd_update_armap_timestamp(abfd) \
 1.35125 ++       BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))
 1.35126 ++
 1.35127 ++#define bfd_set_arch_mach(abfd, arch, mach)\
 1.35128 ++       BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach))
 1.35129 ++
 1.35130 ++#define bfd_relax_section(abfd, section, link_info, again) \
 1.35131 ++       BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again))
 1.35132 ++
 1.35133 ++#define bfd_gc_sections(abfd, link_info) \
 1.35134 ++       BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info))
 1.35135 ++
 1.35136 ++#define bfd_merge_sections(abfd, link_info) \
 1.35137 ++       BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))
 1.35138 ++
 1.35139 ++#define bfd_is_group_section(abfd, sec) \
 1.35140 ++       BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
 1.35141 ++
 1.35142 ++#define bfd_discard_group(abfd, sec) \
 1.35143 ++       BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
 1.35144 ++
 1.35145 ++#define bfd_link_hash_table_create(abfd) \
 1.35146 ++       BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
 1.35147 ++
 1.35148 ++#define bfd_link_hash_table_free(abfd, hash) \
 1.35149 ++       BFD_SEND (abfd, _bfd_link_hash_table_free, (hash))
 1.35150 ++
 1.35151 ++#define bfd_link_add_symbols(abfd, info) \
 1.35152 ++       BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
 1.35153 ++
 1.35154 ++#define bfd_link_just_syms(abfd, sec, info) \
 1.35155 ++       BFD_SEND (abfd, _bfd_link_just_syms, (sec, info))
 1.35156 ++
 1.35157 ++#define bfd_final_link(abfd, info) \
 1.35158 ++       BFD_SEND (abfd, _bfd_final_link, (abfd, info))
 1.35159 ++
 1.35160 ++#define bfd_free_cached_info(abfd) \
 1.35161 ++       BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
 1.35162 ++
 1.35163 ++#define bfd_get_dynamic_symtab_upper_bound(abfd) \
 1.35164 ++       BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd))
 1.35165 ++
 1.35166 ++#define bfd_print_private_bfd_data(abfd, file)\
 1.35167 ++       BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file))
 1.35168 ++
 1.35169 ++#define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \
 1.35170 ++       BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols))
 1.35171 ++
 1.35172 ++#define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \
 1.35173 ++       BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \
 1.35174 ++                                                   dyncount, dynsyms, ret))
 1.35175 ++
 1.35176 ++#define bfd_get_dynamic_reloc_upper_bound(abfd) \
 1.35177 ++       BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd))
 1.35178 ++
 1.35179 ++#define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \
 1.35180 ++       BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms))
 1.35181 ++
 1.35182 ++extern bfd_byte *bfd_get_relocated_section_contents
 1.35183 ++  (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
 1.35184 ++   bfd_boolean, asymbol **);
 1.35185 ++
 1.35186 ++bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative);
 1.35187 ++
 1.35188 ++struct bfd_preserve
 1.35189 ++{
 1.35190 ++  void *marker;
 1.35191 ++  void *tdata;
 1.35192 ++  flagword flags;
 1.35193 ++  const struct bfd_arch_info *arch_info;
 1.35194 ++  struct bfd_section *sections;
 1.35195 ++  struct bfd_section *section_last;
 1.35196 ++  unsigned int section_count;
 1.35197 ++  struct bfd_hash_table section_htab;
 1.35198 ++};
 1.35199 ++
 1.35200 ++bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *);
 1.35201 ++
 1.35202 ++void bfd_preserve_restore (bfd *, struct bfd_preserve *);
 1.35203 ++
 1.35204 ++void bfd_preserve_finish (bfd *, struct bfd_preserve *);
 1.35205 ++
 1.35206 ++bfd_vma bfd_emul_get_maxpagesize (const char *);
 1.35207 ++
 1.35208 ++void bfd_emul_set_maxpagesize (const char *, bfd_vma);
 1.35209 ++
 1.35210 ++bfd_vma bfd_emul_get_commonpagesize (const char *);
 1.35211 ++
 1.35212 ++void bfd_emul_set_commonpagesize (const char *, bfd_vma);
 1.35213 ++
 1.35214 ++char *bfd_demangle (bfd *, const char *, int);
 1.35215 ++
 1.35216 ++/* Extracted from archive.c.  */
 1.35217 ++symindex bfd_get_next_mapent
 1.35218 ++   (bfd *abfd, symindex previous, carsym **sym);
 1.35219 ++
 1.35220 ++bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head);
 1.35221 ++
 1.35222 ++bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
 1.35223 ++
 1.35224 ++/* Extracted from corefile.c.  */
 1.35225 ++const char *bfd_core_file_failing_command (bfd *abfd);
 1.35226 ++
 1.35227 ++int bfd_core_file_failing_signal (bfd *abfd);
 1.35228 ++
 1.35229 ++bfd_boolean core_file_matches_executable_p
 1.35230 ++   (bfd *core_bfd, bfd *exec_bfd);
 1.35231 ++
 1.35232 ++bfd_boolean generic_core_file_matches_executable_p
 1.35233 ++   (bfd *core_bfd, bfd *exec_bfd);
 1.35234 ++
 1.35235 ++/* Extracted from targets.c.  */
 1.35236 ++#define BFD_SEND(bfd, message, arglist) \
 1.35237 ++  ((*((bfd)->xvec->message)) arglist)
 1.35238 ++
 1.35239 ++#ifdef DEBUG_BFD_SEND
 1.35240 ++#undef BFD_SEND
 1.35241 ++#define BFD_SEND(bfd, message, arglist) \
 1.35242 ++  (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
 1.35243 ++    ((*((bfd)->xvec->message)) arglist) : \
 1.35244 ++    (bfd_assert (__FILE__,__LINE__), NULL))
 1.35245 ++#endif
 1.35246 ++#define BFD_SEND_FMT(bfd, message, arglist) \
 1.35247 ++  (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
 1.35248 ++
 1.35249 ++#ifdef DEBUG_BFD_SEND
 1.35250 ++#undef BFD_SEND_FMT
 1.35251 ++#define BFD_SEND_FMT(bfd, message, arglist) \
 1.35252 ++  (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
 1.35253 ++   (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \
 1.35254 ++   (bfd_assert (__FILE__,__LINE__), NULL))
 1.35255 ++#endif
 1.35256 ++
 1.35257 ++enum bfd_flavour
 1.35258 ++{
 1.35259 ++  bfd_target_unknown_flavour,
 1.35260 ++  bfd_target_aout_flavour,
 1.35261 ++  bfd_target_coff_flavour,
 1.35262 ++  bfd_target_ecoff_flavour,
 1.35263 ++  bfd_target_xcoff_flavour,
 1.35264 ++  bfd_target_elf_flavour,
 1.35265 ++  bfd_target_ieee_flavour,
 1.35266 ++  bfd_target_nlm_flavour,
 1.35267 ++  bfd_target_oasys_flavour,
 1.35268 ++  bfd_target_tekhex_flavour,
 1.35269 ++  bfd_target_srec_flavour,
 1.35270 ++  bfd_target_ihex_flavour,
 1.35271 ++  bfd_target_som_flavour,
 1.35272 ++  bfd_target_os9k_flavour,
 1.35273 ++  bfd_target_versados_flavour,
 1.35274 ++  bfd_target_msdos_flavour,
 1.35275 ++  bfd_target_ovax_flavour,
 1.35276 ++  bfd_target_evax_flavour,
 1.35277 ++  bfd_target_mmo_flavour,
 1.35278 ++  bfd_target_mach_o_flavour,
 1.35279 ++  bfd_target_pef_flavour,
 1.35280 ++  bfd_target_pef_xlib_flavour,
 1.35281 ++  bfd_target_sym_flavour
 1.35282 ++};
 1.35283 ++
 1.35284 ++enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN };
 1.35285 ++
 1.35286 ++/* Forward declaration.  */
 1.35287 ++typedef struct bfd_link_info _bfd_link_info;
 1.35288 ++
 1.35289 ++typedef struct bfd_target
 1.35290 ++{
 1.35291 ++  /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc.  */
 1.35292 ++  char *name;
 1.35293 ++
 1.35294 ++ /* The "flavour" of a back end is a general indication about
 1.35295 ++    the contents of a file.  */
 1.35296 ++  enum bfd_flavour flavour;
 1.35297 ++
 1.35298 ++  /* The order of bytes within the data area of a file.  */
 1.35299 ++  enum bfd_endian byteorder;
 1.35300 ++
 1.35301 ++ /* The order of bytes within the header parts of a file.  */
 1.35302 ++  enum bfd_endian header_byteorder;
 1.35303 ++
 1.35304 ++  /* A mask of all the flags which an executable may have set -
 1.35305 ++     from the set <<BFD_NO_FLAGS>>, <<HAS_RELOC>>, ...<<D_PAGED>>.  */
 1.35306 ++  flagword object_flags;
 1.35307 ++
 1.35308 ++ /* A mask of all the flags which a section may have set - from
 1.35309 ++    the set <<SEC_NO_FLAGS>>, <<SEC_ALLOC>>, ...<<SET_NEVER_LOAD>>.  */
 1.35310 ++  flagword section_flags;
 1.35311 ++
 1.35312 ++ /* The character normally found at the front of a symbol.
 1.35313 ++    (if any), perhaps `_'.  */
 1.35314 ++  char symbol_leading_char;
 1.35315 ++
 1.35316 ++ /* The pad character for file names within an archive header.  */
 1.35317 ++  char ar_pad_char;
 1.35318 ++
 1.35319 ++  /* The maximum number of characters in an archive header.  */
 1.35320 ++  unsigned short ar_max_namelen;
 1.35321 ++
 1.35322 ++  /* Entries for byte swapping for data. These are different from the
 1.35323 ++     other entry points, since they don't take a BFD as the first argument.
 1.35324 ++     Certain other handlers could do the same.  */
 1.35325 ++  bfd_uint64_t   (*bfd_getx64) (const void *);
 1.35326 ++  bfd_int64_t    (*bfd_getx_signed_64) (const void *);
 1.35327 ++  void           (*bfd_putx64) (bfd_uint64_t, void *);
 1.35328 ++  bfd_vma        (*bfd_getx32) (const void *);
 1.35329 ++  bfd_signed_vma (*bfd_getx_signed_32) (const void *);
 1.35330 ++  void           (*bfd_putx32) (bfd_vma, void *);
 1.35331 ++  bfd_vma        (*bfd_getx16) (const void *);
 1.35332 ++  bfd_signed_vma (*bfd_getx_signed_16) (const void *);
 1.35333 ++  void           (*bfd_putx16) (bfd_vma, void *);
 1.35334 ++
 1.35335 ++  /* Byte swapping for the headers.  */
 1.35336 ++  bfd_uint64_t   (*bfd_h_getx64) (const void *);
 1.35337 ++  bfd_int64_t    (*bfd_h_getx_signed_64) (const void *);
 1.35338 ++  void           (*bfd_h_putx64) (bfd_uint64_t, void *);
 1.35339 ++  bfd_vma        (*bfd_h_getx32) (const void *);
 1.35340 ++  bfd_signed_vma (*bfd_h_getx_signed_32) (const void *);
 1.35341 ++  void           (*bfd_h_putx32) (bfd_vma, void *);
 1.35342 ++  bfd_vma        (*bfd_h_getx16) (const void *);
 1.35343 ++  bfd_signed_vma (*bfd_h_getx_signed_16) (const void *);
 1.35344 ++  void           (*bfd_h_putx16) (bfd_vma, void *);
 1.35345 ++
 1.35346 ++  /* Format dependent routines: these are vectors of entry points
 1.35347 ++     within the target vector structure, one for each format to check.  */
 1.35348 ++
 1.35349 ++  /* Check the format of a file being read.  Return a <<bfd_target *>> or zero.  */
 1.35350 ++  const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
 1.35351 ++
 1.35352 ++  /* Set the format of a file being written.  */
 1.35353 ++  bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
 1.35354 ++
 1.35355 ++  /* Write cached information into a file being written, at <<bfd_close>>.  */
 1.35356 ++  bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *);
 1.35357 ++
 1.35358 ++
 1.35359 ++  /* Generic entry points.  */
 1.35360 ++#define BFD_JUMP_TABLE_GENERIC(NAME) \
 1.35361 ++  NAME##_close_and_cleanup, \
 1.35362 ++  NAME##_bfd_free_cached_info, \
 1.35363 ++  NAME##_new_section_hook, \
 1.35364 ++  NAME##_get_section_contents, \
 1.35365 ++  NAME##_get_section_contents_in_window
 1.35366 ++
 1.35367 ++  /* Called when the BFD is being closed to do any necessary cleanup.  */
 1.35368 ++  bfd_boolean (*_close_and_cleanup) (bfd *);
 1.35369 ++  /* Ask the BFD to free all cached information.  */
 1.35370 ++  bfd_boolean (*_bfd_free_cached_info) (bfd *);
 1.35371 ++  /* Called when a new section is created.  */
 1.35372 ++  bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
 1.35373 ++  /* Read the contents of a section.  */
 1.35374 ++  bfd_boolean (*_bfd_get_section_contents)
 1.35375 ++    (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
 1.35376 ++  bfd_boolean (*_bfd_get_section_contents_in_window)
 1.35377 ++    (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
 1.35378 ++
 1.35379 ++  /* Entry points to copy private data.  */
 1.35380 ++#define BFD_JUMP_TABLE_COPY(NAME) \
 1.35381 ++  NAME##_bfd_copy_private_bfd_data, \
 1.35382 ++  NAME##_bfd_merge_private_bfd_data, \
 1.35383 ++  _bfd_generic_init_private_section_data, \
 1.35384 ++  NAME##_bfd_copy_private_section_data, \
 1.35385 ++  NAME##_bfd_copy_private_symbol_data, \
 1.35386 ++  NAME##_bfd_copy_private_header_data, \
 1.35387 ++  NAME##_bfd_set_private_flags, \
 1.35388 ++  NAME##_bfd_print_private_bfd_data
 1.35389 ++
 1.35390 ++  /* Called to copy BFD general private data from one object file
 1.35391 ++     to another.  */
 1.35392 ++  bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
 1.35393 ++  /* Called to merge BFD general private data from one object file
 1.35394 ++     to a common output file when linking.  */
 1.35395 ++  bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *);
 1.35396 ++  /* Called to initialize BFD private section data from one object file
 1.35397 ++     to another.  */
 1.35398 ++#define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \
 1.35399 ++  BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info))
 1.35400 ++  bfd_boolean (*_bfd_init_private_section_data)
 1.35401 ++    (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *);
 1.35402 ++  /* Called to copy BFD private section data from one object file
 1.35403 ++     to another.  */
 1.35404 ++  bfd_boolean (*_bfd_copy_private_section_data)
 1.35405 ++    (bfd *, sec_ptr, bfd *, sec_ptr);
 1.35406 ++  /* Called to copy BFD private symbol data from one symbol
 1.35407 ++     to another.  */
 1.35408 ++  bfd_boolean (*_bfd_copy_private_symbol_data)
 1.35409 ++    (bfd *, asymbol *, bfd *, asymbol *);
 1.35410 ++  /* Called to copy BFD private header data from one object file
 1.35411 ++     to another.  */
 1.35412 ++  bfd_boolean (*_bfd_copy_private_header_data)
 1.35413 ++    (bfd *, bfd *);
 1.35414 ++  /* Called to set private backend flags.  */
 1.35415 ++  bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
 1.35416 ++
 1.35417 ++  /* Called to print private BFD data.  */
 1.35418 ++  bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *);
 1.35419 ++
 1.35420 ++  /* Core file entry points.  */
 1.35421 ++#define BFD_JUMP_TABLE_CORE(NAME) \
 1.35422 ++  NAME##_core_file_failing_command, \
 1.35423 ++  NAME##_core_file_failing_signal, \
 1.35424 ++  NAME##_core_file_matches_executable_p
 1.35425 ++
 1.35426 ++  char *      (*_core_file_failing_command) (bfd *);
 1.35427 ++  int         (*_core_file_failing_signal) (bfd *);
 1.35428 ++  bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *);
 1.35429 ++
 1.35430 ++  /* Archive entry points.  */
 1.35431 ++#define BFD_JUMP_TABLE_ARCHIVE(NAME) \
 1.35432 ++  NAME##_slurp_armap, \
 1.35433 ++  NAME##_slurp_extended_name_table, \
 1.35434 ++  NAME##_construct_extended_name_table, \
 1.35435 ++  NAME##_truncate_arname, \
 1.35436 ++  NAME##_write_armap, \
 1.35437 ++  NAME##_read_ar_hdr, \
 1.35438 ++  NAME##_openr_next_archived_file, \
 1.35439 ++  NAME##_get_elt_at_index, \
 1.35440 ++  NAME##_generic_stat_arch_elt, \
 1.35441 ++  NAME##_update_armap_timestamp
 1.35442 ++
 1.35443 ++  bfd_boolean (*_bfd_slurp_armap) (bfd *);
 1.35444 ++  bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
 1.35445 ++  bfd_boolean (*_bfd_construct_extended_name_table)
 1.35446 ++    (bfd *, char **, bfd_size_type *, const char **);
 1.35447 ++  void        (*_bfd_truncate_arname) (bfd *, const char *, char *);
 1.35448 ++  bfd_boolean (*write_armap)
 1.35449 ++    (bfd *, unsigned int, struct orl *, unsigned int, int);
 1.35450 ++  void *      (*_bfd_read_ar_hdr_fn) (bfd *);
 1.35451 ++  bfd *       (*openr_next_archived_file) (bfd *, bfd *);
 1.35452 ++#define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
 1.35453 ++  bfd *       (*_bfd_get_elt_at_index) (bfd *, symindex);
 1.35454 ++  int         (*_bfd_stat_arch_elt) (bfd *, struct stat *);
 1.35455 ++  bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
 1.35456 ++
 1.35457 ++  /* Entry points used for symbols.  */
 1.35458 ++#define BFD_JUMP_TABLE_SYMBOLS(NAME) \
 1.35459 ++  NAME##_get_symtab_upper_bound, \
 1.35460 ++  NAME##_canonicalize_symtab, \
 1.35461 ++  NAME##_make_empty_symbol, \
 1.35462 ++  NAME##_print_symbol, \
 1.35463 ++  NAME##_get_symbol_info, \
 1.35464 ++  NAME##_bfd_is_local_label_name, \
 1.35465 ++  NAME##_bfd_is_target_special_symbol, \
 1.35466 ++  NAME##_get_lineno, \
 1.35467 ++  NAME##_find_nearest_line, \
 1.35468 ++  _bfd_generic_find_line, \
 1.35469 ++  NAME##_find_inliner_info, \
 1.35470 ++  NAME##_bfd_make_debug_symbol, \
 1.35471 ++  NAME##_read_minisymbols, \
 1.35472 ++  NAME##_minisymbol_to_symbol
 1.35473 ++
 1.35474 ++  long        (*_bfd_get_symtab_upper_bound) (bfd *);
 1.35475 ++  long        (*_bfd_canonicalize_symtab)
 1.35476 ++    (bfd *, struct bfd_symbol **);
 1.35477 ++  struct bfd_symbol *
 1.35478 ++              (*_bfd_make_empty_symbol) (bfd *);
 1.35479 ++  void        (*_bfd_print_symbol)
 1.35480 ++    (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
 1.35481 ++#define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
 1.35482 ++  void        (*_bfd_get_symbol_info)
 1.35483 ++    (bfd *, struct bfd_symbol *, symbol_info *);
 1.35484 ++#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
 1.35485 ++  bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
 1.35486 ++  bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
 1.35487 ++  alent *     (*_get_lineno) (bfd *, struct bfd_symbol *);
 1.35488 ++  bfd_boolean (*_bfd_find_nearest_line)
 1.35489 ++    (bfd *, struct bfd_section *, struct bfd_symbol **, bfd_vma,
 1.35490 ++     const char **, const char **, unsigned int *);
 1.35491 ++  bfd_boolean (*_bfd_find_line)
 1.35492 ++    (bfd *, struct bfd_symbol **, struct bfd_symbol *,
 1.35493 ++     const char **, unsigned int *);
 1.35494 ++  bfd_boolean (*_bfd_find_inliner_info)
 1.35495 ++    (bfd *, const char **, const char **, unsigned int *);
 1.35496 ++ /* Back-door to allow format-aware applications to create debug symbols
 1.35497 ++    while using BFD for everything else.  Currently used by the assembler
 1.35498 ++    when creating COFF files.  */
 1.35499 ++  asymbol *   (*_bfd_make_debug_symbol)
 1.35500 ++    (bfd *, void *, unsigned long size);
 1.35501 ++#define bfd_read_minisymbols(b, d, m, s) \
 1.35502 ++  BFD_SEND (b, _read_minisymbols, (b, d, m, s))
 1.35503 ++  long        (*_read_minisymbols)
 1.35504 ++    (bfd *, bfd_boolean, void **, unsigned int *);
 1.35505 ++#define bfd_minisymbol_to_symbol(b, d, m, f) \
 1.35506 ++  BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
 1.35507 ++  asymbol *   (*_minisymbol_to_symbol)
 1.35508 ++    (bfd *, bfd_boolean, const void *, asymbol *);
 1.35509 ++
 1.35510 ++  /* Routines for relocs.  */
 1.35511 ++#define BFD_JUMP_TABLE_RELOCS(NAME) \
 1.35512 ++  NAME##_get_reloc_upper_bound, \
 1.35513 ++  NAME##_canonicalize_reloc, \
 1.35514 ++  NAME##_bfd_reloc_type_lookup, \
 1.35515 ++  NAME##_bfd_reloc_name_lookup
 1.35516 ++
 1.35517 ++  long        (*_get_reloc_upper_bound) (bfd *, sec_ptr);
 1.35518 ++  long        (*_bfd_canonicalize_reloc)
 1.35519 ++    (bfd *, sec_ptr, arelent **, struct bfd_symbol **);
 1.35520 ++  /* See documentation on reloc types.  */
 1.35521 ++  reloc_howto_type *
 1.35522 ++              (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
 1.35523 ++  reloc_howto_type *
 1.35524 ++              (*reloc_name_lookup) (bfd *, const char *);
 1.35525 ++
 1.35526 ++
 1.35527 ++  /* Routines used when writing an object file.  */
 1.35528 ++#define BFD_JUMP_TABLE_WRITE(NAME) \
 1.35529 ++  NAME##_set_arch_mach, \
 1.35530 ++  NAME##_set_section_contents
 1.35531 ++
 1.35532 ++  bfd_boolean (*_bfd_set_arch_mach)
 1.35533 ++    (bfd *, enum bfd_architecture, unsigned long);
 1.35534 ++  bfd_boolean (*_bfd_set_section_contents)
 1.35535 ++    (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
 1.35536 ++
 1.35537 ++  /* Routines used by the linker.  */
 1.35538 ++#define BFD_JUMP_TABLE_LINK(NAME) \
 1.35539 ++  NAME##_sizeof_headers, \
 1.35540 ++  NAME##_bfd_get_relocated_section_contents, \
 1.35541 ++  NAME##_bfd_relax_section, \
 1.35542 ++  NAME##_bfd_link_hash_table_create, \
 1.35543 ++  NAME##_bfd_link_hash_table_free, \
 1.35544 ++  NAME##_bfd_link_add_symbols, \
 1.35545 ++  NAME##_bfd_link_just_syms, \
 1.35546 ++  NAME##_bfd_final_link, \
 1.35547 ++  NAME##_bfd_link_split_section, \
 1.35548 ++  NAME##_bfd_gc_sections, \
 1.35549 ++  NAME##_bfd_merge_sections, \
 1.35550 ++  NAME##_bfd_is_group_section, \
 1.35551 ++  NAME##_bfd_discard_group, \
 1.35552 ++  NAME##_section_already_linked \
 1.35553 ++
 1.35554 ++  int         (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *);
 1.35555 ++  bfd_byte *  (*_bfd_get_relocated_section_contents)
 1.35556 ++    (bfd *, struct bfd_link_info *, struct bfd_link_order *,
 1.35557 ++     bfd_byte *, bfd_boolean, struct bfd_symbol **);
 1.35558 ++
 1.35559 ++  bfd_boolean (*_bfd_relax_section)
 1.35560 ++    (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *);
 1.35561 ++
 1.35562 ++  /* Create a hash table for the linker.  Different backends store
 1.35563 ++     different information in this table.  */
 1.35564 ++  struct bfd_link_hash_table *
 1.35565 ++              (*_bfd_link_hash_table_create) (bfd *);
 1.35566 ++
 1.35567 ++  /* Release the memory associated with the linker hash table.  */
 1.35568 ++  void        (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *);
 1.35569 ++
 1.35570 ++  /* Add symbols from this object file into the hash table.  */
 1.35571 ++  bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
 1.35572 ++
 1.35573 ++  /* Indicate that we are only retrieving symbol values from this section.  */
 1.35574 ++  void        (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
 1.35575 ++
 1.35576 ++  /* Do a link based on the link_order structures attached to each
 1.35577 ++     section of the BFD.  */
 1.35578 ++  bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *);
 1.35579 ++
 1.35580 ++  /* Should this section be split up into smaller pieces during linking.  */
 1.35581 ++  bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *);
 1.35582 ++
 1.35583 ++  /* Remove sections that are not referenced from the output.  */
 1.35584 ++  bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
 1.35585 ++
 1.35586 ++  /* Attempt to merge SEC_MERGE sections.  */
 1.35587 ++  bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
 1.35588 ++
 1.35589 ++  /* Is this section a member of a group?  */
 1.35590 ++  bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
 1.35591 ++
 1.35592 ++  /* Discard members of a group.  */
 1.35593 ++  bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
 1.35594 ++
 1.35595 ++  /* Check if SEC has been already linked during a reloceatable or
 1.35596 ++     final link.  */
 1.35597 ++  void (*_section_already_linked) (bfd *, struct bfd_section *,
 1.35598 ++                                   struct bfd_link_info *);
 1.35599 ++
 1.35600 ++  /* Routines to handle dynamic symbols and relocs.  */
 1.35601 ++#define BFD_JUMP_TABLE_DYNAMIC(NAME) \
 1.35602 ++  NAME##_get_dynamic_symtab_upper_bound, \
 1.35603 ++  NAME##_canonicalize_dynamic_symtab, \
 1.35604 ++  NAME##_get_synthetic_symtab, \
 1.35605 ++  NAME##_get_dynamic_reloc_upper_bound, \
 1.35606 ++  NAME##_canonicalize_dynamic_reloc
 1.35607 ++
 1.35608 ++  /* Get the amount of memory required to hold the dynamic symbols.  */
 1.35609 ++  long        (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
 1.35610 ++  /* Read in the dynamic symbols.  */
 1.35611 ++  long        (*_bfd_canonicalize_dynamic_symtab)
 1.35612 ++    (bfd *, struct bfd_symbol **);
 1.35613 ++  /* Create synthetized symbols.  */
 1.35614 ++  long        (*_bfd_get_synthetic_symtab)
 1.35615 ++    (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **,
 1.35616 ++     struct bfd_symbol **);
 1.35617 ++  /* Get the amount of memory required to hold the dynamic relocs.  */
 1.35618 ++  long        (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
 1.35619 ++  /* Read in the dynamic relocs.  */
 1.35620 ++  long        (*_bfd_canonicalize_dynamic_reloc)
 1.35621 ++    (bfd *, arelent **, struct bfd_symbol **);
 1.35622 ++
 1.35623 ++  /* Opposite endian version of this target.  */
 1.35624 ++  const struct bfd_target * alternative_target;
 1.35625 ++
 1.35626 ++  /* Data for use by back-end routines, which isn't
 1.35627 ++     generic enough to belong in this structure.  */
 1.35628 ++  const void *backend_data;
 1.35629 ++
 1.35630 ++} bfd_target;
 1.35631 ++
 1.35632 ++bfd_boolean bfd_set_default_target (const char *name);
 1.35633 ++
 1.35634 ++const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
 1.35635 ++
 1.35636 ++const char ** bfd_target_list (void);
 1.35637 ++
 1.35638 ++const bfd_target *bfd_search_for_target
 1.35639 ++   (int (*search_func) (const bfd_target *, void *),
 1.35640 ++    void *);
 1.35641 ++
 1.35642 ++/* Extracted from format.c.  */
 1.35643 ++bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
 1.35644 ++
 1.35645 ++bfd_boolean bfd_check_format_matches
 1.35646 ++   (bfd *abfd, bfd_format format, char ***matching);
 1.35647 ++
 1.35648 ++bfd_boolean bfd_set_format (bfd *abfd, bfd_format format);
 1.35649 ++
 1.35650 ++const char *bfd_format_string (bfd_format format);
 1.35651 ++
 1.35652 ++/* Extracted from linker.c.  */
 1.35653 ++bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
 1.35654 ++
 1.35655 ++#define bfd_link_split_section(abfd, sec) \
 1.35656 ++       BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
 1.35657 ++
 1.35658 ++void bfd_section_already_linked (bfd *abfd, asection *sec,
 1.35659 ++    struct bfd_link_info *info);
 1.35660 ++
 1.35661 ++#define bfd_section_already_linked(abfd, sec, info) \
 1.35662 ++       BFD_SEND (abfd, _section_already_linked, (abfd, sec, info))
 1.35663 ++
 1.35664 ++/* Extracted from simple.c.  */
 1.35665 ++bfd_byte *bfd_simple_get_relocated_section_contents
 1.35666 ++   (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
 1.35667 ++
 1.35668 ++#ifdef __cplusplus
 1.35669 ++}
 1.35670 ++#endif
 1.35671 ++#endif
 1.35672 +--- /dev/null
 1.35673 ++++ b/bfd/bfd_stdint.h
 1.35674 +@@ -0,0 +1,47 @@
 1.35675 ++/* generated for  gcc (GCC) 4.2.4 (Ubuntu 4.2.4-3ubuntu4) */
 1.35676 ++
 1.35677 ++#ifndef GCC_GENERATED_STDINT_H
 1.35678 ++#define GCC_GENERATED_STDINT_H 1
 1.35679 ++
 1.35680 ++#include <sys/types.h>
 1.35681 ++#include <stdint.h>
 1.35682 ++/* glibc uses these symbols as guards to prevent redefinitions.  */
 1.35683 ++#ifdef __int8_t_defined
 1.35684 ++#define _INT8_T
 1.35685 ++#define _INT16_T
 1.35686 ++#define _INT32_T
 1.35687 ++#endif
 1.35688 ++#ifdef __uint32_t_defined
 1.35689 ++#define _UINT32_T
 1.35690 ++#endif
 1.35691 ++
 1.35692 ++
 1.35693 ++/* Some systems have guard macros to prevent redefinitions, define them.  */
 1.35694 ++#ifndef _INT8_T
 1.35695 ++#define _INT8_T
 1.35696 ++#endif
 1.35697 ++#ifndef _INT16_T
 1.35698 ++#define _INT16_T
 1.35699 ++#endif
 1.35700 ++#ifndef _INT32_T
 1.35701 ++#define _INT32_T
 1.35702 ++#endif
 1.35703 ++#ifndef _UINT8_T
 1.35704 ++#define _UINT8_T
 1.35705 ++#endif
 1.35706 ++#ifndef _UINT16_T
 1.35707 ++#define _UINT16_T
 1.35708 ++#endif
 1.35709 ++#ifndef _UINT32_T
 1.35710 ++#define _UINT32_T
 1.35711 ++#endif
 1.35712 ++
 1.35713 ++/* system headers have good uint64_t and int64_t */
 1.35714 ++#ifndef _INT64_T
 1.35715 ++#define _INT64_T
 1.35716 ++#endif
 1.35717 ++#ifndef _UINT64_T
 1.35718 ++#define _UINT64_T
 1.35719 ++#endif
 1.35720 ++
 1.35721 ++#endif /* GCC_GENERATED_STDINT_H */
 1.35722 +--- a/bfd/configure
 1.35723 ++++ b/bfd/configure
 1.35724 +@@ -2994,7 +2994,7 @@ fi
 1.35725 + 
 1.35726 + # Define the identity of the package.
 1.35727 +  PACKAGE=bfd
 1.35728 +- VERSION=2.18
 1.35729 ++ VERSION=2.18.atmel.1.0.1.avr32linux.1
 1.35730 + 
 1.35731 + 
 1.35732 + cat >>confdefs.h <<_ACEOF
 1.35733 +@@ -19041,6 +19041,7 @@ do
 1.35734 +     bfd_efi_app_ia64_vec)	tb="$tb efi-app-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
 1.35735 +     bfd_elf32_am33lin_vec)	tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
 1.35736 +     bfd_elf32_avr_vec)		tb="$tb elf32-avr.lo elf32.lo $elf" ;;
 1.35737 ++    bfd_elf32_avr32_vec)	tb="$tb elf32-avr32.lo elf32.lo $elf" ;;
 1.35738 +     bfd_elf32_bfin_vec)		tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
 1.35739 +     bfd_elf32_bfinfdpic_vec)	tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
 1.35740 +     bfd_elf32_big_generic_vec) 	tb="$tb elf32-gen.lo elf32.lo $elf" ;;
 1.35741 +--- /dev/null
 1.35742 ++++ b/bfd/doc/bfd.h
 1.35743 +@@ -0,0 +1,5493 @@
 1.35744 ++/* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically 
 1.35745 ++   generated from "bfd-in.h", "init.c", "opncls.c", "libbfd.c", 
 1.35746 ++   "bfdio.c", "bfdwin.c", "section.c", "archures.c", "reloc.c", 
 1.35747 ++   "syms.c", "bfd.c", "archive.c", "corefile.c", "targets.c", "format.c", 
 1.35748 ++   "linker.c" and "simple.c".
 1.35749 ++   Run "make headers" in your build bfd/ to regenerate.  */
 1.35750 ++
 1.35751 ++/* Main header file for the bfd library -- portable access to object files.
 1.35752 ++
 1.35753 ++   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
 1.35754 ++   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 1.35755 ++   Free Software Foundation, Inc.
 1.35756 ++
 1.35757 ++   Contributed by Cygnus Support.
 1.35758 ++
 1.35759 ++   This file is part of BFD, the Binary File Descriptor library.
 1.35760 ++
 1.35761 ++   This program is free software; you can redistribute it and/or modify
 1.35762 ++   it under the terms of the GNU General Public License as published by
 1.35763 ++   the Free Software Foundation; either version 3 of the License, or
 1.35764 ++   (at your option) any later version.
 1.35765 ++
 1.35766 ++   This program is distributed in the hope that it will be useful,
 1.35767 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
 1.35768 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 1.35769 ++   GNU General Public License for more details.
 1.35770 ++
 1.35771 ++   You should have received a copy of the GNU General Public License
 1.35772 ++   along with this program; if not, write to the Free Software
 1.35773 ++   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 1.35774 ++
 1.35775 ++#ifndef __BFD_H_SEEN__
 1.35776 ++#define __BFD_H_SEEN__
 1.35777 ++
 1.35778 ++#ifdef __cplusplus
 1.35779 ++extern "C" {
 1.35780 ++#endif
 1.35781 ++
 1.35782 ++#include "ansidecl.h"
 1.35783 ++#include "symcat.h"
 1.35784 ++#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
 1.35785 ++#ifndef SABER
 1.35786 ++/* This hack is to avoid a problem with some strict ANSI C preprocessors.
 1.35787 ++   The problem is, "32_" is not a valid preprocessing token, and we don't
 1.35788 ++   want extra underscores (e.g., "nlm_32_").  The XCONCAT2 macro will
 1.35789 ++   cause the inner CONCAT2 macros to be evaluated first, producing
 1.35790 ++   still-valid pp-tokens.  Then the final concatenation can be done.  */
 1.35791 ++#undef CONCAT4
 1.35792 ++#define CONCAT4(a,b,c,d) XCONCAT2(CONCAT2(a,b),CONCAT2(c,d))
 1.35793 ++#endif
 1.35794 ++#endif
 1.35795 ++
 1.35796 ++/* This is a utility macro to handle the situation where the code
 1.35797 ++   wants to place a constant string into the code, followed by a
 1.35798 ++   comma and then the length of the string.  Doing this by hand
 1.35799 ++   is error prone, so using this macro is safer.  The macro will
 1.35800 ++   also safely handle the case where a NULL is passed as the arg.  */
 1.35801 ++#define STRING_COMMA_LEN(STR) (STR), ((STR) ? sizeof (STR) - 1 : 0)
 1.35802 ++/* Unfortunately it is not possible to use the STRING_COMMA_LEN macro
 1.35803 ++   to create the arguments to another macro, since the preprocessor
 1.35804 ++   will mis-count the number of arguments to the outer macro (by not
 1.35805 ++   evaluating STRING_COMMA_LEN and so missing the comma).  This is a
 1.35806 ++   problem for example when trying to use STRING_COMMA_LEN to build
 1.35807 ++   the arguments to the strncmp() macro.  Hence this alternative
 1.35808 ++   definition of strncmp is provided here.
 1.35809 ++   
 1.35810 ++   Note - these macros do NOT work if STR2 is not a constant string.  */
 1.35811 ++#define CONST_STRNEQ(STR1,STR2) (strncmp ((STR1), (STR2), sizeof (STR2) - 1) == 0)
 1.35812 ++  /* strcpy() can have a similar problem, but since we know we are
 1.35813 ++     copying a constant string, we can use memcpy which will be faster
 1.35814 ++     since there is no need to check for a NUL byte inside STR.  We
 1.35815 ++     can also save time if we do not need to copy the terminating NUL.  */
 1.35816 ++#define LITMEMCPY(DEST,STR2) memcpy ((DEST), (STR2), sizeof (STR2) - 1)
 1.35817 ++#define LITSTRCPY(DEST,STR2) memcpy ((DEST), (STR2), sizeof (STR2))
 1.35818 ++
 1.35819 ++
 1.35820 ++/* The word size used by BFD on the host.  This may be 64 with a 32
 1.35821 ++   bit target if the host is 64 bit, or if other 64 bit targets have
 1.35822 ++   been selected with --enable-targets, or if --enable-64-bit-bfd.  */
 1.35823 ++#define BFD_ARCH_SIZE @wordsize@
 1.35824 ++
 1.35825 ++/* The word size of the default bfd target.  */
 1.35826 ++#define BFD_DEFAULT_TARGET_SIZE @bfd_default_target_size@
 1.35827 ++
 1.35828 ++#define BFD_HOST_64BIT_LONG @BFD_HOST_64BIT_LONG@
 1.35829 ++#define BFD_HOST_64BIT_LONG_LONG @BFD_HOST_64BIT_LONG_LONG@
 1.35830 ++#define BFD_HOST_LONG_LONG @BFD_HOST_LONG_LONG@
 1.35831 ++#if @BFD_HOST_64_BIT_DEFINED@
 1.35832 ++#define BFD_HOST_64_BIT @BFD_HOST_64_BIT@
 1.35833 ++#define BFD_HOST_U_64_BIT @BFD_HOST_U_64_BIT@
 1.35834 ++typedef BFD_HOST_64_BIT bfd_int64_t;
 1.35835 ++typedef BFD_HOST_U_64_BIT bfd_uint64_t;
 1.35836 ++#endif
 1.35837 ++
 1.35838 ++#if BFD_ARCH_SIZE >= 64
 1.35839 ++#define BFD64
 1.35840 ++#endif
 1.35841 ++
 1.35842 ++#ifndef INLINE
 1.35843 ++#if __GNUC__ >= 2
 1.35844 ++#define INLINE __inline__
 1.35845 ++#else
 1.35846 ++#define INLINE
 1.35847 ++#endif
 1.35848 ++#endif
 1.35849 ++
 1.35850 ++/* Declaring a type wide enough to hold a host long and a host pointer.  */
 1.35851 ++#define BFD_HOSTPTR_T	@BFD_HOSTPTR_T@
 1.35852 ++typedef BFD_HOSTPTR_T bfd_hostptr_t;
 1.35853 ++
 1.35854 ++/* Forward declaration.  */
 1.35855 ++typedef struct bfd bfd;
 1.35856 ++
 1.35857 ++/* Boolean type used in bfd.  Too many systems define their own
 1.35858 ++   versions of "boolean" for us to safely typedef a "boolean" of
 1.35859 ++   our own.  Using an enum for "bfd_boolean" has its own set of
 1.35860 ++   problems, with strange looking casts required to avoid warnings
 1.35861 ++   on some older compilers.  Thus we just use an int.
 1.35862 ++
 1.35863 ++   General rule: Functions which are bfd_boolean return TRUE on
 1.35864 ++   success and FALSE on failure (unless they're a predicate).  */
 1.35865 ++
 1.35866 ++typedef int bfd_boolean;
 1.35867 ++#undef FALSE
 1.35868 ++#undef TRUE
 1.35869 ++#define FALSE 0
 1.35870 ++#define TRUE 1
 1.35871 ++
 1.35872 ++#ifdef BFD64
 1.35873 ++
 1.35874 ++#ifndef BFD_HOST_64_BIT
 1.35875 ++ #error No 64 bit integer type available
 1.35876 ++#endif /* ! defined (BFD_HOST_64_BIT) */
 1.35877 ++
 1.35878 ++typedef BFD_HOST_U_64_BIT bfd_vma;
 1.35879 ++typedef BFD_HOST_64_BIT bfd_signed_vma;
 1.35880 ++typedef BFD_HOST_U_64_BIT bfd_size_type;
 1.35881 ++typedef BFD_HOST_U_64_BIT symvalue;
 1.35882 ++
 1.35883 ++#ifndef fprintf_vma
 1.35884 ++#if BFD_HOST_64BIT_LONG
 1.35885 ++#define sprintf_vma(s,x) sprintf (s, "%016lx", x)
 1.35886 ++#define fprintf_vma(f,x) fprintf (f, "%016lx", x)
 1.35887 ++#elif BFD_HOST_64BIT_LONG_LONG
 1.35888 ++#define sprintf_vma(s,x) sprintf (s, "%016llx", x)
 1.35889 ++#define fprintf_vma(f,x) fprintf (f, "%016llx", x)
 1.35890 ++#else
 1.35891 ++#define _bfd_int64_low(x) ((unsigned long) (((x) & 0xffffffff)))
 1.35892 ++#define _bfd_int64_high(x) ((unsigned long) (((x) >> 32) & 0xffffffff))
 1.35893 ++#define fprintf_vma(s,x) \
 1.35894 ++  fprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x))
 1.35895 ++#define sprintf_vma(s,x) \
 1.35896 ++  sprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x))
 1.35897 ++#endif
 1.35898 ++#endif
 1.35899 ++
 1.35900 ++#else /* not BFD64  */
 1.35901 ++
 1.35902 ++/* Represent a target address.  Also used as a generic unsigned type
 1.35903 ++   which is guaranteed to be big enough to hold any arithmetic types
 1.35904 ++   we need to deal with.  */
 1.35905 ++typedef unsigned long bfd_vma;
 1.35906 ++
 1.35907 ++/* A generic signed type which is guaranteed to be big enough to hold any
 1.35908 ++   arithmetic types we need to deal with.  Can be assumed to be compatible
 1.35909 ++   with bfd_vma in the same way that signed and unsigned ints are compatible
 1.35910 ++   (as parameters, in assignment, etc).  */
 1.35911 ++typedef long bfd_signed_vma;
 1.35912 ++
 1.35913 ++typedef unsigned long symvalue;
 1.35914 ++typedef unsigned long bfd_size_type;
 1.35915 ++
 1.35916 ++/* Print a bfd_vma x on stream s.  */
 1.35917 ++#define fprintf_vma(s,x) fprintf (s, "%08lx", x)
 1.35918 ++#define sprintf_vma(s,x) sprintf (s, "%08lx", x)
 1.35919 ++
 1.35920 ++#endif /* not BFD64  */
 1.35921 ++
 1.35922 ++#define HALF_BFD_SIZE_TYPE \
 1.35923 ++  (((bfd_size_type) 1) << (8 * sizeof (bfd_size_type) / 2))
 1.35924 ++
 1.35925 ++#ifndef BFD_HOST_64_BIT
 1.35926 ++/* Fall back on a 32 bit type.  The idea is to make these types always
 1.35927 ++   available for function return types, but in the case that
 1.35928 ++   BFD_HOST_64_BIT is undefined such a function should abort or
 1.35929 ++   otherwise signal an error.  */
 1.35930 ++typedef bfd_signed_vma bfd_int64_t;
 1.35931 ++typedef bfd_vma bfd_uint64_t;
 1.35932 ++#endif
 1.35933 ++
 1.35934 ++/* An offset into a file.  BFD always uses the largest possible offset
 1.35935 ++   based on the build time availability of fseek, fseeko, or fseeko64.  */
 1.35936 ++typedef @bfd_file_ptr@ file_ptr;
 1.35937 ++typedef unsigned @bfd_file_ptr@ ufile_ptr;
 1.35938 ++
 1.35939 ++extern void bfd_sprintf_vma (bfd *, char *, bfd_vma);
 1.35940 ++extern void bfd_fprintf_vma (bfd *, void *, bfd_vma);
 1.35941 ++
 1.35942 ++#define printf_vma(x) fprintf_vma(stdout,x)
 1.35943 ++#define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x)
 1.35944 ++
 1.35945 ++typedef unsigned int flagword;	/* 32 bits of flags */
 1.35946 ++typedef unsigned char bfd_byte;
 1.35947 ++
 1.35948 ++/* File formats.  */
 1.35949 ++
 1.35950 ++typedef enum bfd_format
 1.35951 ++{
 1.35952 ++  bfd_unknown = 0,	/* File format is unknown.  */
 1.35953 ++  bfd_object,		/* Linker/assembler/compiler output.  */
 1.35954 ++  bfd_archive,		/* Object archive file.  */
 1.35955 ++  bfd_core,		/* Core dump.  */
 1.35956 ++  bfd_type_end		/* Marks the end; don't use it!  */
 1.35957 ++}
 1.35958 ++bfd_format;
 1.35959 ++
 1.35960 ++/* Values that may appear in the flags field of a BFD.  These also
 1.35961 ++   appear in the object_flags field of the bfd_target structure, where
 1.35962 ++   they indicate the set of flags used by that backend (not all flags
 1.35963 ++   are meaningful for all object file formats) (FIXME: at the moment,
 1.35964 ++   the object_flags values have mostly just been copied from backend
 1.35965 ++   to another, and are not necessarily correct).  */
 1.35966 ++
 1.35967 ++/* No flags.  */
 1.35968 ++#define BFD_NO_FLAGS   	0x00
 1.35969 ++
 1.35970 ++/* BFD contains relocation entries.  */
 1.35971 ++#define HAS_RELOC   	0x01
 1.35972 ++
 1.35973 ++/* BFD is directly executable.  */
 1.35974 ++#define EXEC_P      	0x02
 1.35975 ++
 1.35976 ++/* BFD has line number information (basically used for F_LNNO in a
 1.35977 ++   COFF header).  */
 1.35978 ++#define HAS_LINENO  	0x04
 1.35979 ++
 1.35980 ++/* BFD has debugging information.  */
 1.35981 ++#define HAS_DEBUG   	0x08
 1.35982 ++
 1.35983 ++/* BFD has symbols.  */
 1.35984 ++#define HAS_SYMS    	0x10
 1.35985 ++
 1.35986 ++/* BFD has local symbols (basically used for F_LSYMS in a COFF
 1.35987 ++   header).  */
 1.35988 ++#define HAS_LOCALS  	0x20
 1.35989 ++
 1.35990 ++/* BFD is a dynamic object.  */
 1.35991 ++#define DYNAMIC     	0x40
 1.35992 ++
 1.35993 ++/* Text section is write protected (if D_PAGED is not set, this is
 1.35994 ++   like an a.out NMAGIC file) (the linker sets this by default, but
 1.35995 ++   clears it for -r or -N).  */
 1.35996 ++#define WP_TEXT     	0x80
 1.35997 ++
 1.35998 ++/* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
 1.35999 ++   linker sets this by default, but clears it for -r or -n or -N).  */
 1.36000 ++#define D_PAGED     	0x100
 1.36001 ++
 1.36002 ++/* BFD is relaxable (this means that bfd_relax_section may be able to
 1.36003 ++   do something) (sometimes bfd_relax_section can do something even if
 1.36004 ++   this is not set).  */
 1.36005 ++#define BFD_IS_RELAXABLE 0x200
 1.36006 ++
 1.36007 ++/* This may be set before writing out a BFD to request using a
 1.36008 ++   traditional format.  For example, this is used to request that when
 1.36009 ++   writing out an a.out object the symbols not be hashed to eliminate
 1.36010 ++   duplicates.  */
 1.36011 ++#define BFD_TRADITIONAL_FORMAT 0x400
 1.36012 ++
 1.36013 ++/* This flag indicates that the BFD contents are actually cached in
 1.36014 ++   memory.  If this is set, iostream points to a bfd_in_memory struct.  */
 1.36015 ++#define BFD_IN_MEMORY 0x800
 1.36016 ++
 1.36017 ++/* The sections in this BFD specify a memory page.  */
 1.36018 ++#define HAS_LOAD_PAGE 0x1000
 1.36019 ++
 1.36020 ++/* This BFD has been created by the linker and doesn't correspond
 1.36021 ++   to any input file.  */
 1.36022 ++#define BFD_LINKER_CREATED 0x2000
 1.36023 ++
 1.36024 ++/* Symbols and relocation.  */
 1.36025 ++
 1.36026 ++/* A count of carsyms (canonical archive symbols).  */
 1.36027 ++typedef unsigned long symindex;
 1.36028 ++
 1.36029 ++/* How to perform a relocation.  */
 1.36030 ++typedef const struct reloc_howto_struct reloc_howto_type;
 1.36031 ++
 1.36032 ++#define BFD_NO_MORE_SYMBOLS ((symindex) ~0)
 1.36033 ++
 1.36034 ++/* General purpose part of a symbol X;
 1.36035 ++   target specific parts are in libcoff.h, libaout.h, etc.  */
 1.36036 ++
 1.36037 ++#define bfd_get_section(x) ((x)->section)
 1.36038 ++#define bfd_get_output_section(x) ((x)->section->output_section)
 1.36039 ++#define bfd_set_section(x,y) ((x)->section) = (y)
 1.36040 ++#define bfd_asymbol_base(x) ((x)->section->vma)
 1.36041 ++#define bfd_asymbol_value(x) (bfd_asymbol_base(x) + (x)->value)
 1.36042 ++#define bfd_asymbol_name(x) ((x)->name)
 1.36043 ++/*Perhaps future: #define bfd_asymbol_bfd(x) ((x)->section->owner)*/
 1.36044 ++#define bfd_asymbol_bfd(x) ((x)->the_bfd)
 1.36045 ++#define bfd_asymbol_flavour(x) (bfd_asymbol_bfd(x)->xvec->flavour)
 1.36046 ++
 1.36047 ++/* A canonical archive symbol.  */
 1.36048 ++/* This is a type pun with struct ranlib on purpose!  */
 1.36049 ++typedef struct carsym
 1.36050 ++{
 1.36051 ++  char *name;
 1.36052 ++  file_ptr file_offset;	/* Look here to find the file.  */
 1.36053 ++}
 1.36054 ++carsym;			/* To make these you call a carsymogen.  */
 1.36055 ++
 1.36056 ++/* Used in generating armaps (archive tables of contents).
 1.36057 ++   Perhaps just a forward definition would do?  */
 1.36058 ++struct orl 			/* Output ranlib.  */
 1.36059 ++{
 1.36060 ++  char **name;		/* Symbol name.  */
 1.36061 ++  union
 1.36062 ++  {
 1.36063 ++    file_ptr pos;
 1.36064 ++    bfd *abfd;
 1.36065 ++  } u;			/* bfd* or file position.  */
 1.36066 ++  int namidx;		/* Index into string table.  */
 1.36067 ++};
 1.36068 ++
 1.36069 ++/* Linenumber stuff.  */
 1.36070 ++typedef struct lineno_cache_entry
 1.36071 ++{
 1.36072 ++  unsigned int line_number;	/* Linenumber from start of function.  */
 1.36073 ++  union
 1.36074 ++  {
 1.36075 ++    struct bfd_symbol *sym;	/* Function name.  */
 1.36076 ++    bfd_vma offset;	    		/* Offset into section.  */
 1.36077 ++  } u;
 1.36078 ++}
 1.36079 ++alent;
 1.36080 ++
 1.36081 ++/* Object and core file sections.  */
 1.36082 ++
 1.36083 ++#define	align_power(addr, align)	\
 1.36084 ++  (((addr) + ((bfd_vma) 1 << (align)) - 1) & ((bfd_vma) -1 << (align)))
 1.36085 ++
 1.36086 ++typedef struct bfd_section *sec_ptr;
 1.36087 ++
 1.36088 ++#define bfd_get_section_name(bfd, ptr) ((ptr)->name + 0)
 1.36089 ++#define bfd_get_section_vma(bfd, ptr) ((ptr)->vma + 0)
 1.36090 ++#define bfd_get_section_lma(bfd, ptr) ((ptr)->lma + 0)
 1.36091 ++#define bfd_get_section_alignment(bfd, ptr) ((ptr)->alignment_power + 0)
 1.36092 ++#define bfd_section_name(bfd, ptr) ((ptr)->name)
 1.36093 ++#define bfd_section_size(bfd, ptr) ((ptr)->size)
 1.36094 ++#define bfd_get_section_size(ptr) ((ptr)->size)
 1.36095 ++#define bfd_section_vma(bfd, ptr) ((ptr)->vma)
 1.36096 ++#define bfd_section_lma(bfd, ptr) ((ptr)->lma)
 1.36097 ++#define bfd_section_alignment(bfd, ptr) ((ptr)->alignment_power)
 1.36098 ++#define bfd_get_section_flags(bfd, ptr) ((ptr)->flags + 0)
 1.36099 ++#define bfd_get_section_userdata(bfd, ptr) ((ptr)->userdata)
 1.36100 ++
 1.36101 ++#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
 1.36102 ++
 1.36103 ++#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
 1.36104 ++#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
 1.36105 ++#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
 1.36106 ++/* Find the address one past the end of SEC.  */
 1.36107 ++#define bfd_get_section_limit(bfd, sec) \
 1.36108 ++  (((sec)->rawsize ? (sec)->rawsize : (sec)->size) \
 1.36109 ++   / bfd_octets_per_byte (bfd))
 1.36110 ++
 1.36111 ++/* Return TRUE if section has been discarded.  */
 1.36112 ++#define elf_discarded_section(sec)				\
 1.36113 ++  (!bfd_is_abs_section (sec)					\
 1.36114 ++   && bfd_is_abs_section ((sec)->output_section)		\
 1.36115 ++   && (sec)->sec_info_type != ELF_INFO_TYPE_MERGE		\
 1.36116 ++   && (sec)->sec_info_type != ELF_INFO_TYPE_JUST_SYMS)
 1.36117 ++
 1.36118 ++/* Forward define.  */
 1.36119 ++struct stat;
 1.36120 ++
 1.36121 ++typedef enum bfd_print_symbol
 1.36122 ++{
 1.36123 ++  bfd_print_symbol_name,
 1.36124 ++  bfd_print_symbol_more,
 1.36125 ++  bfd_print_symbol_all
 1.36126 ++} bfd_print_symbol_type;
 1.36127 ++
 1.36128 ++/* Information about a symbol that nm needs.  */
 1.36129 ++
 1.36130 ++typedef struct _symbol_info
 1.36131 ++{
 1.36132 ++  symvalue value;
 1.36133 ++  char type;
 1.36134 ++  const char *name;            /* Symbol name.  */
 1.36135 ++  unsigned char stab_type;     /* Stab type.  */
 1.36136 ++  char stab_other;             /* Stab other.  */
 1.36137 ++  short stab_desc;             /* Stab desc.  */
 1.36138 ++  const char *stab_name;       /* String for stab type.  */
 1.36139 ++} symbol_info;
 1.36140 ++
 1.36141 ++/* Get the name of a stabs type code.  */
 1.36142 ++
 1.36143 ++extern const char *bfd_get_stab_name (int);
 1.36144 ++
 1.36145 ++/* Hash table routines.  There is no way to free up a hash table.  */
 1.36146 ++
 1.36147 ++/* An element in the hash table.  Most uses will actually use a larger
 1.36148 ++   structure, and an instance of this will be the first field.  */
 1.36149 ++
 1.36150 ++struct bfd_hash_entry
 1.36151 ++{
 1.36152 ++  /* Next entry for this hash code.  */
 1.36153 ++  struct bfd_hash_entry *next;
 1.36154 ++  /* String being hashed.  */
 1.36155 ++  const char *string;
 1.36156 ++  /* Hash code.  This is the full hash code, not the index into the
 1.36157 ++     table.  */
 1.36158 ++  unsigned long hash;
 1.36159 ++};
 1.36160 ++
 1.36161 ++/* A hash table.  */
 1.36162 ++
 1.36163 ++struct bfd_hash_table
 1.36164 ++{
 1.36165 ++  /* The hash array.  */
 1.36166 ++  struct bfd_hash_entry **table;
 1.36167 ++  /* A function used to create new elements in the hash table.  The
 1.36168 ++     first entry is itself a pointer to an element.  When this
 1.36169 ++     function is first invoked, this pointer will be NULL.  However,
 1.36170 ++     having the pointer permits a hierarchy of method functions to be
 1.36171 ++     built each of which calls the function in the superclass.  Thus
 1.36172 ++     each function should be written to allocate a new block of memory
 1.36173 ++     only if the argument is NULL.  */
 1.36174 ++  struct bfd_hash_entry *(*newfunc)
 1.36175 ++    (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
 1.36176 ++   /* An objalloc for this hash table.  This is a struct objalloc *,
 1.36177 ++     but we use void * to avoid requiring the inclusion of objalloc.h.  */
 1.36178 ++  void *memory;
 1.36179 ++  /* The number of slots in the hash table.  */
 1.36180 ++  unsigned int size;
 1.36181 ++  /* The number of entries in the hash table.  */
 1.36182 ++  unsigned int count;
 1.36183 ++  /* The size of elements.  */
 1.36184 ++  unsigned int entsize;
 1.36185 ++  /* If non-zero, don't grow the hash table.  */
 1.36186 ++  unsigned int frozen:1;
 1.36187 ++};
 1.36188 ++
 1.36189 ++/* Initialize a hash table.  */
 1.36190 ++extern bfd_boolean bfd_hash_table_init
 1.36191 ++  (struct bfd_hash_table *,
 1.36192 ++   struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
 1.36193 ++			       struct bfd_hash_table *,
 1.36194 ++			       const char *),
 1.36195 ++   unsigned int);
 1.36196 ++
 1.36197 ++/* Initialize a hash table specifying a size.  */
 1.36198 ++extern bfd_boolean bfd_hash_table_init_n
 1.36199 ++  (struct bfd_hash_table *,
 1.36200 ++   struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
 1.36201 ++			       struct bfd_hash_table *,
 1.36202 ++			       const char *),
 1.36203 ++   unsigned int, unsigned int);
 1.36204 ++
 1.36205 ++/* Free up a hash table.  */
 1.36206 ++extern void bfd_hash_table_free
 1.36207 ++  (struct bfd_hash_table *);
 1.36208 ++
 1.36209 ++/* Look up a string in a hash table.  If CREATE is TRUE, a new entry
 1.36210 ++   will be created for this string if one does not already exist.  The
 1.36211 ++   COPY argument must be TRUE if this routine should copy the string
 1.36212 ++   into newly allocated memory when adding an entry.  */
 1.36213 ++extern struct bfd_hash_entry *bfd_hash_lookup
 1.36214 ++  (struct bfd_hash_table *, const char *, bfd_boolean create,
 1.36215 ++   bfd_boolean copy);
 1.36216 ++
 1.36217 ++/* Replace an entry in a hash table.  */
 1.36218 ++extern void bfd_hash_replace
 1.36219 ++  (struct bfd_hash_table *, struct bfd_hash_entry *old,
 1.36220 ++   struct bfd_hash_entry *nw);
 1.36221 ++
 1.36222 ++/* Base method for creating a hash table entry.  */
 1.36223 ++extern struct bfd_hash_entry *bfd_hash_newfunc
 1.36224 ++  (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
 1.36225 ++
 1.36226 ++/* Grab some space for a hash table entry.  */
 1.36227 ++extern void *bfd_hash_allocate
 1.36228 ++  (struct bfd_hash_table *, unsigned int);
 1.36229 ++
 1.36230 ++/* Traverse a hash table in a random order, calling a function on each
 1.36231 ++   element.  If the function returns FALSE, the traversal stops.  The
 1.36232 ++   INFO argument is passed to the function.  */
 1.36233 ++extern void bfd_hash_traverse
 1.36234 ++  (struct bfd_hash_table *,
 1.36235 ++   bfd_boolean (*) (struct bfd_hash_entry *, void *),
 1.36236 ++   void *info);
 1.36237 ++
 1.36238 ++/* Allows the default size of a hash table to be configured. New hash
 1.36239 ++   tables allocated using bfd_hash_table_init will be created with
 1.36240 ++   this size.  */
 1.36241 ++extern void bfd_hash_set_default_size (bfd_size_type);
 1.36242 ++
 1.36243 ++/* This structure is used to keep track of stabs in sections
 1.36244 ++   information while linking.  */
 1.36245 ++
 1.36246 ++struct stab_info
 1.36247 ++{
 1.36248 ++  /* A hash table used to hold stabs strings.  */
 1.36249 ++  struct bfd_strtab_hash *strings;
 1.36250 ++  /* The header file hash table.  */
 1.36251 ++  struct bfd_hash_table includes;
 1.36252 ++  /* The first .stabstr section.  */
 1.36253 ++  struct bfd_section *stabstr;
 1.36254 ++};
 1.36255 ++
 1.36256 ++#define COFF_SWAP_TABLE (void *) &bfd_coff_std_swap_table
 1.36257 ++
 1.36258 ++/* User program access to BFD facilities.  */
 1.36259 ++
 1.36260 ++/* Direct I/O routines, for programs which know more about the object
 1.36261 ++   file than BFD does.  Use higher level routines if possible.  */
 1.36262 ++
 1.36263 ++extern bfd_size_type bfd_bread (void *, bfd_size_type, bfd *);
 1.36264 ++extern bfd_size_type bfd_bwrite (const void *, bfd_size_type, bfd *);
 1.36265 ++extern int bfd_seek (bfd *, file_ptr, int);
 1.36266 ++extern file_ptr bfd_tell (bfd *);
 1.36267 ++extern int bfd_flush (bfd *);
 1.36268 ++extern int bfd_stat (bfd *, struct stat *);
 1.36269 ++
 1.36270 ++/* Deprecated old routines.  */
 1.36271 ++#if __GNUC__
 1.36272 ++#define bfd_read(BUF, ELTSIZE, NITEMS, ABFD)				\
 1.36273 ++  (warn_deprecated ("bfd_read", __FILE__, __LINE__, __FUNCTION__),	\
 1.36274 ++   bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 1.36275 ++#define bfd_write(BUF, ELTSIZE, NITEMS, ABFD)				\
 1.36276 ++  (warn_deprecated ("bfd_write", __FILE__, __LINE__, __FUNCTION__),	\
 1.36277 ++   bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 1.36278 ++#else
 1.36279 ++#define bfd_read(BUF, ELTSIZE, NITEMS, ABFD)				\
 1.36280 ++  (warn_deprecated ("bfd_read", (const char *) 0, 0, (const char *) 0), \
 1.36281 ++   bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 1.36282 ++#define bfd_write(BUF, ELTSIZE, NITEMS, ABFD)				\
 1.36283 ++  (warn_deprecated ("bfd_write", (const char *) 0, 0, (const char *) 0),\
 1.36284 ++   bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 1.36285 ++#endif
 1.36286 ++extern void warn_deprecated (const char *, const char *, int, const char *);
 1.36287 ++
 1.36288 ++/* Cast from const char * to char * so that caller can assign to
 1.36289 ++   a char * without a warning.  */
 1.36290 ++#define bfd_get_filename(abfd) ((char *) (abfd)->filename)
 1.36291 ++#define bfd_get_cacheable(abfd) ((abfd)->cacheable)
 1.36292 ++#define bfd_get_format(abfd) ((abfd)->format)
 1.36293 ++#define bfd_get_target(abfd) ((abfd)->xvec->name)
 1.36294 ++#define bfd_get_flavour(abfd) ((abfd)->xvec->flavour)
 1.36295 ++#define bfd_family_coff(abfd) \
 1.36296 ++  (bfd_get_flavour (abfd) == bfd_target_coff_flavour || \
 1.36297 ++   bfd_get_flavour (abfd) == bfd_target_xcoff_flavour)
 1.36298 ++#define bfd_big_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_BIG)
 1.36299 ++#define bfd_little_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_LITTLE)
 1.36300 ++#define bfd_header_big_endian(abfd) \
 1.36301 ++  ((abfd)->xvec->header_byteorder == BFD_ENDIAN_BIG)
 1.36302 ++#define bfd_header_little_endian(abfd) \
 1.36303 ++  ((abfd)->xvec->header_byteorder == BFD_ENDIAN_LITTLE)
 1.36304 ++#define bfd_get_file_flags(abfd) ((abfd)->flags)
 1.36305 ++#define bfd_applicable_file_flags(abfd) ((abfd)->xvec->object_flags)
 1.36306 ++#define bfd_applicable_section_flags(abfd) ((abfd)->xvec->section_flags)
 1.36307 ++#define bfd_my_archive(abfd) ((abfd)->my_archive)
 1.36308 ++#define bfd_has_map(abfd) ((abfd)->has_armap)
 1.36309 ++
 1.36310 ++#define bfd_valid_reloc_types(abfd) ((abfd)->xvec->valid_reloc_types)
 1.36311 ++#define bfd_usrdata(abfd) ((abfd)->usrdata)
 1.36312 ++
 1.36313 ++#define bfd_get_start_address(abfd) ((abfd)->start_address)
 1.36314 ++#define bfd_get_symcount(abfd) ((abfd)->symcount)
 1.36315 ++#define bfd_get_outsymbols(abfd) ((abfd)->outsymbols)
 1.36316 ++#define bfd_count_sections(abfd) ((abfd)->section_count)
 1.36317 ++
 1.36318 ++#define bfd_get_dynamic_symcount(abfd) ((abfd)->dynsymcount)
 1.36319 ++
 1.36320 ++#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
 1.36321 ++
 1.36322 ++#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
 1.36323 ++
 1.36324 ++extern bfd_boolean bfd_cache_close
 1.36325 ++  (bfd *abfd);
 1.36326 ++/* NB: This declaration should match the autogenerated one in libbfd.h.  */
 1.36327 ++
 1.36328 ++extern bfd_boolean bfd_cache_close_all (void);
 1.36329 ++
 1.36330 ++extern bfd_boolean bfd_record_phdr
 1.36331 ++  (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma,
 1.36332 ++   bfd_boolean, bfd_boolean, unsigned int, struct bfd_section **);
 1.36333 ++
 1.36334 ++/* Byte swapping routines.  */
 1.36335 ++
 1.36336 ++bfd_uint64_t bfd_getb64 (const void *);
 1.36337 ++bfd_uint64_t bfd_getl64 (const void *);
 1.36338 ++bfd_int64_t bfd_getb_signed_64 (const void *);
 1.36339 ++bfd_int64_t bfd_getl_signed_64 (const void *);
 1.36340 ++bfd_vma bfd_getb32 (const void *);
 1.36341 ++bfd_vma bfd_getl32 (const void *);
 1.36342 ++bfd_signed_vma bfd_getb_signed_32 (const void *);
 1.36343 ++bfd_signed_vma bfd_getl_signed_32 (const void *);
 1.36344 ++bfd_vma bfd_getb16 (const void *);
 1.36345 ++bfd_vma bfd_getl16 (const void *);
 1.36346 ++bfd_signed_vma bfd_getb_signed_16 (const void *);
 1.36347 ++bfd_signed_vma bfd_getl_signed_16 (const void *);
 1.36348 ++void bfd_putb64 (bfd_uint64_t, void *);
 1.36349 ++void bfd_putl64 (bfd_uint64_t, void *);
 1.36350 ++void bfd_putb32 (bfd_vma, void *);
 1.36351 ++void bfd_putl32 (bfd_vma, void *);
 1.36352 ++void bfd_putb16 (bfd_vma, void *);
 1.36353 ++void bfd_putl16 (bfd_vma, void *);
 1.36354 ++
 1.36355 ++/* Byte swapping routines which take size and endiannes as arguments.  */
 1.36356 ++
 1.36357 ++bfd_uint64_t bfd_get_bits (const void *, int, bfd_boolean);
 1.36358 ++void bfd_put_bits (bfd_uint64_t, void *, int, bfd_boolean);
 1.36359 ++
 1.36360 ++extern bfd_boolean bfd_section_already_linked_table_init (void);
 1.36361 ++extern void bfd_section_already_linked_table_free (void);
 1.36362 ++
 1.36363 ++/* Externally visible ECOFF routines.  */
 1.36364 ++
 1.36365 ++#if defined(__STDC__) || defined(ALMOST_STDC)
 1.36366 ++struct ecoff_debug_info;
 1.36367 ++struct ecoff_debug_swap;
 1.36368 ++struct ecoff_extr;
 1.36369 ++struct bfd_symbol;
 1.36370 ++struct bfd_link_info;
 1.36371 ++struct bfd_link_hash_entry;
 1.36372 ++struct bfd_elf_version_tree;
 1.36373 ++#endif
 1.36374 ++extern bfd_vma bfd_ecoff_get_gp_value
 1.36375 ++  (bfd * abfd);
 1.36376 ++extern bfd_boolean bfd_ecoff_set_gp_value
 1.36377 ++  (bfd *abfd, bfd_vma gp_value);
 1.36378 ++extern bfd_boolean bfd_ecoff_set_regmasks
 1.36379 ++  (bfd *abfd, unsigned long gprmask, unsigned long fprmask,
 1.36380 ++   unsigned long *cprmask);
 1.36381 ++extern void *bfd_ecoff_debug_init
 1.36382 ++  (bfd *output_bfd, struct ecoff_debug_info *output_debug,
 1.36383 ++   const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
 1.36384 ++extern void bfd_ecoff_debug_free
 1.36385 ++  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
 1.36386 ++   const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
 1.36387 ++extern bfd_boolean bfd_ecoff_debug_accumulate
 1.36388 ++  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
 1.36389 ++   const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
 1.36390 ++   struct ecoff_debug_info *input_debug,
 1.36391 ++   const struct ecoff_debug_swap *input_swap, struct bfd_link_info *);
 1.36392 ++extern bfd_boolean bfd_ecoff_debug_accumulate_other
 1.36393 ++  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
 1.36394 ++   const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
 1.36395 ++   struct bfd_link_info *);
 1.36396 ++extern bfd_boolean bfd_ecoff_debug_externals
 1.36397 ++  (bfd *abfd, struct ecoff_debug_info *debug,
 1.36398 ++   const struct ecoff_debug_swap *swap, bfd_boolean relocatable,
 1.36399 ++   bfd_boolean (*get_extr) (struct bfd_symbol *, struct ecoff_extr *),
 1.36400 ++   void (*set_index) (struct bfd_symbol *, bfd_size_type));
 1.36401 ++extern bfd_boolean bfd_ecoff_debug_one_external
 1.36402 ++  (bfd *abfd, struct ecoff_debug_info *debug,
 1.36403 ++   const struct ecoff_debug_swap *swap, const char *name,
 1.36404 ++   struct ecoff_extr *esym);
 1.36405 ++extern bfd_size_type bfd_ecoff_debug_size
 1.36406 ++  (bfd *abfd, struct ecoff_debug_info *debug,
 1.36407 ++   const struct ecoff_debug_swap *swap);
 1.36408 ++extern bfd_boolean bfd_ecoff_write_debug
 1.36409 ++  (bfd *abfd, struct ecoff_debug_info *debug,
 1.36410 ++   const struct ecoff_debug_swap *swap, file_ptr where);
 1.36411 ++extern bfd_boolean bfd_ecoff_write_accumulated_debug
 1.36412 ++  (void *handle, bfd *abfd, struct ecoff_debug_info *debug,
 1.36413 ++   const struct ecoff_debug_swap *swap,
 1.36414 ++   struct bfd_link_info *info, file_ptr where);
 1.36415 ++
 1.36416 ++/* Externally visible ELF routines.  */
 1.36417 ++
 1.36418 ++struct bfd_link_needed_list
 1.36419 ++{
 1.36420 ++  struct bfd_link_needed_list *next;
 1.36421 ++  bfd *by;
 1.36422 ++  const char *name;
 1.36423 ++};
 1.36424 ++
 1.36425 ++enum dynamic_lib_link_class {
 1.36426 ++  DYN_NORMAL = 0,
 1.36427 ++  DYN_AS_NEEDED = 1,
 1.36428 ++  DYN_DT_NEEDED = 2,
 1.36429 ++  DYN_NO_ADD_NEEDED = 4,
 1.36430 ++  DYN_NO_NEEDED = 8
 1.36431 ++};
 1.36432 ++
 1.36433 ++enum notice_asneeded_action {
 1.36434 ++  notice_as_needed,
 1.36435 ++  notice_not_needed,
 1.36436 ++  notice_needed
 1.36437 ++};
 1.36438 ++
 1.36439 ++extern bfd_boolean bfd_elf_record_link_assignment
 1.36440 ++  (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
 1.36441 ++   bfd_boolean);
 1.36442 ++extern struct bfd_link_needed_list *bfd_elf_get_needed_list
 1.36443 ++  (bfd *, struct bfd_link_info *);
 1.36444 ++extern bfd_boolean bfd_elf_get_bfd_needed_list
 1.36445 ++  (bfd *, struct bfd_link_needed_list **);
 1.36446 ++extern bfd_boolean bfd_elf_size_dynamic_sections
 1.36447 ++  (bfd *, const char *, const char *, const char *, const char * const *,
 1.36448 ++   struct bfd_link_info *, struct bfd_section **,
 1.36449 ++   struct bfd_elf_version_tree *);
 1.36450 ++extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr
 1.36451 ++  (bfd *, struct bfd_link_info *);
 1.36452 ++extern void bfd_elf_set_dt_needed_name
 1.36453 ++  (bfd *, const char *);
 1.36454 ++extern const char *bfd_elf_get_dt_soname
 1.36455 ++  (bfd *);
 1.36456 ++extern void bfd_elf_set_dyn_lib_class
 1.36457 ++  (bfd *, enum dynamic_lib_link_class);
 1.36458 ++extern int bfd_elf_get_dyn_lib_class
 1.36459 ++  (bfd *);
 1.36460 ++extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
 1.36461 ++  (bfd *, struct bfd_link_info *);
 1.36462 ++extern bfd_boolean bfd_elf_discard_info
 1.36463 ++  (bfd *, struct bfd_link_info *);
 1.36464 ++extern unsigned int _bfd_elf_default_action_discarded
 1.36465 ++  (struct bfd_section *);
 1.36466 ++
 1.36467 ++/* Return an upper bound on the number of bytes required to store a
 1.36468 ++   copy of ABFD's program header table entries.  Return -1 if an error
 1.36469 ++   occurs; bfd_get_error will return an appropriate code.  */
 1.36470 ++extern long bfd_get_elf_phdr_upper_bound
 1.36471 ++  (bfd *abfd);
 1.36472 ++
 1.36473 ++/* Copy ABFD's program header table entries to *PHDRS.  The entries
 1.36474 ++   will be stored as an array of Elf_Internal_Phdr structures, as
 1.36475 ++   defined in include/elf/internal.h.  To find out how large the
 1.36476 ++   buffer needs to be, call bfd_get_elf_phdr_upper_bound.
 1.36477 ++
 1.36478 ++   Return the number of program header table entries read, or -1 if an
 1.36479 ++   error occurs; bfd_get_error will return an appropriate code.  */
 1.36480 ++extern int bfd_get_elf_phdrs
 1.36481 ++  (bfd *abfd, void *phdrs);
 1.36482 ++
 1.36483 ++/* Create a new BFD as if by bfd_openr.  Rather than opening a file,
 1.36484 ++   reconstruct an ELF file by reading the segments out of remote memory
 1.36485 ++   based on the ELF file header at EHDR_VMA and the ELF program headers it
 1.36486 ++   points to.  If not null, *LOADBASEP is filled in with the difference
 1.36487 ++   between the VMAs from which the segments were read, and the VMAs the
 1.36488 ++   file headers (and hence BFD's idea of each section's VMA) put them at.
 1.36489 ++
 1.36490 ++   The function TARGET_READ_MEMORY is called to copy LEN bytes from the
 1.36491 ++   remote memory at target address VMA into the local buffer at MYADDR; it
 1.36492 ++   should return zero on success or an `errno' code on failure.  TEMPL must
 1.36493 ++   be a BFD for an ELF target with the word size and byte order found in
 1.36494 ++   the remote memory.  */
 1.36495 ++extern bfd *bfd_elf_bfd_from_remote_memory
 1.36496 ++  (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
 1.36497 ++   int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, int len));
 1.36498 ++
 1.36499 ++/* Return the arch_size field of an elf bfd, or -1 if not elf.  */
 1.36500 ++extern int bfd_get_arch_size
 1.36501 ++  (bfd *);
 1.36502 ++
 1.36503 ++/* Return TRUE if address "naturally" sign extends, or -1 if not elf.  */
 1.36504 ++extern int bfd_get_sign_extend_vma
 1.36505 ++  (bfd *);
 1.36506 ++
 1.36507 ++extern struct bfd_section *_bfd_elf_tls_setup
 1.36508 ++  (bfd *, struct bfd_link_info *);
 1.36509 ++
 1.36510 ++extern void _bfd_fix_excluded_sec_syms
 1.36511 ++  (bfd *, struct bfd_link_info *);
 1.36512 ++
 1.36513 ++extern unsigned bfd_m68k_mach_to_features (int);
 1.36514 ++
 1.36515 ++extern int bfd_m68k_features_to_mach (unsigned);
 1.36516 ++
 1.36517 ++extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
 1.36518 ++  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
 1.36519 ++   char **);
 1.36520 ++
 1.36521 ++extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
 1.36522 ++  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
 1.36523 ++   char **);
 1.36524 ++
 1.36525 ++/* SunOS shared library support routines for the linker.  */
 1.36526 ++
 1.36527 ++extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
 1.36528 ++  (bfd *, struct bfd_link_info *);
 1.36529 ++extern bfd_boolean bfd_sunos_record_link_assignment
 1.36530 ++  (bfd *, struct bfd_link_info *, const char *);
 1.36531 ++extern bfd_boolean bfd_sunos_size_dynamic_sections
 1.36532 ++  (bfd *, struct bfd_link_info *, struct bfd_section **,
 1.36533 ++   struct bfd_section **, struct bfd_section **);
 1.36534 ++
 1.36535 ++/* Linux shared library support routines for the linker.  */
 1.36536 ++
 1.36537 ++extern bfd_boolean bfd_i386linux_size_dynamic_sections
 1.36538 ++  (bfd *, struct bfd_link_info *);
 1.36539 ++extern bfd_boolean bfd_m68klinux_size_dynamic_sections
 1.36540 ++  (bfd *, struct bfd_link_info *);
 1.36541 ++extern bfd_boolean bfd_sparclinux_size_dynamic_sections
 1.36542 ++  (bfd *, struct bfd_link_info *);
 1.36543 ++
 1.36544 ++/* mmap hacks */
 1.36545 ++
 1.36546 ++struct _bfd_window_internal;
 1.36547 ++typedef struct _bfd_window_internal bfd_window_internal;
 1.36548 ++
 1.36549 ++typedef struct _bfd_window
 1.36550 ++{
 1.36551 ++  /* What the user asked for.  */
 1.36552 ++  void *data;
 1.36553 ++  bfd_size_type size;
 1.36554 ++  /* The actual window used by BFD.  Small user-requested read-only
 1.36555 ++     regions sharing a page may share a single window into the object
 1.36556 ++     file.  Read-write versions shouldn't until I've fixed things to
 1.36557 ++     keep track of which portions have been claimed by the
 1.36558 ++     application; don't want to give the same region back when the
 1.36559 ++     application wants two writable copies!  */
 1.36560 ++  struct _bfd_window_internal *i;
 1.36561 ++}
 1.36562 ++bfd_window;
 1.36563 ++
 1.36564 ++extern void bfd_init_window
 1.36565 ++  (bfd_window *);
 1.36566 ++extern void bfd_free_window
 1.36567 ++  (bfd_window *);
 1.36568 ++extern bfd_boolean bfd_get_file_window
 1.36569 ++  (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
 1.36570 ++
 1.36571 ++/* XCOFF support routines for the linker.  */
 1.36572 ++
 1.36573 ++extern bfd_boolean bfd_xcoff_link_record_set
 1.36574 ++  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type);
 1.36575 ++extern bfd_boolean bfd_xcoff_import_symbol
 1.36576 ++  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma,
 1.36577 ++   const char *, const char *, const char *, unsigned int);
 1.36578 ++extern bfd_boolean bfd_xcoff_export_symbol
 1.36579 ++  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
 1.36580 ++extern bfd_boolean bfd_xcoff_link_count_reloc
 1.36581 ++  (bfd *, struct bfd_link_info *, const char *);
 1.36582 ++extern bfd_boolean bfd_xcoff_record_link_assignment
 1.36583 ++  (bfd *, struct bfd_link_info *, const char *);
 1.36584 ++extern bfd_boolean bfd_xcoff_size_dynamic_sections
 1.36585 ++  (bfd *, struct bfd_link_info *, const char *, const char *,
 1.36586 ++   unsigned long, unsigned long, unsigned long, bfd_boolean,
 1.36587 ++   int, bfd_boolean, bfd_boolean, struct bfd_section **, bfd_boolean);
 1.36588 ++extern bfd_boolean bfd_xcoff_link_generate_rtinit
 1.36589 ++  (bfd *, const char *, const char *, bfd_boolean);
 1.36590 ++
 1.36591 ++/* XCOFF support routines for ar.  */
 1.36592 ++extern bfd_boolean bfd_xcoff_ar_archive_set_magic
 1.36593 ++  (bfd *, char *);
 1.36594 ++
 1.36595 ++/* Externally visible COFF routines.  */
 1.36596 ++
 1.36597 ++#if defined(__STDC__) || defined(ALMOST_STDC)
 1.36598 ++struct internal_syment;
 1.36599 ++union internal_auxent;
 1.36600 ++#endif
 1.36601 ++
 1.36602 ++extern bfd_boolean bfd_coff_get_syment
 1.36603 ++  (bfd *, struct bfd_symbol *, struct internal_syment *);
 1.36604 ++
 1.36605 ++extern bfd_boolean bfd_coff_get_auxent
 1.36606 ++  (bfd *, struct bfd_symbol *, int, union internal_auxent *);
 1.36607 ++
 1.36608 ++extern bfd_boolean bfd_coff_set_symbol_class
 1.36609 ++  (bfd *, struct bfd_symbol *, unsigned int);
 1.36610 ++
 1.36611 ++extern bfd_boolean bfd_m68k_coff_create_embedded_relocs
 1.36612 ++  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **);
 1.36613 ++
 1.36614 ++/* ARM VFP11 erratum workaround support.  */
 1.36615 ++typedef enum
 1.36616 ++{
 1.36617 ++  BFD_ARM_VFP11_FIX_DEFAULT,
 1.36618 ++  BFD_ARM_VFP11_FIX_NONE,
 1.36619 ++  BFD_ARM_VFP11_FIX_SCALAR,
 1.36620 ++  BFD_ARM_VFP11_FIX_VECTOR
 1.36621 ++} bfd_arm_vfp11_fix;
 1.36622 ++
 1.36623 ++extern void bfd_elf32_arm_init_maps
 1.36624 ++  (bfd *);
 1.36625 ++
 1.36626 ++extern void bfd_elf32_arm_set_vfp11_fix
 1.36627 ++  (bfd *, struct bfd_link_info *);
 1.36628 ++
 1.36629 ++extern bfd_boolean bfd_elf32_arm_vfp11_erratum_scan
 1.36630 ++  (bfd *, struct bfd_link_info *);
 1.36631 ++
 1.36632 ++extern void bfd_elf32_arm_vfp11_fix_veneer_locations
 1.36633 ++  (bfd *, struct bfd_link_info *);
 1.36634 ++
 1.36635 ++/* ARM Interworking support.  Called from linker.  */
 1.36636 ++extern bfd_boolean bfd_arm_allocate_interworking_sections
 1.36637 ++  (struct bfd_link_info *);
 1.36638 ++
 1.36639 ++extern bfd_boolean bfd_arm_process_before_allocation
 1.36640 ++  (bfd *, struct bfd_link_info *, int);
 1.36641 ++
 1.36642 ++extern bfd_boolean bfd_arm_get_bfd_for_interworking
 1.36643 ++  (bfd *, struct bfd_link_info *);
 1.36644 ++
 1.36645 ++/* PE ARM Interworking support.  Called from linker.  */
 1.36646 ++extern bfd_boolean bfd_arm_pe_allocate_interworking_sections
 1.36647 ++  (struct bfd_link_info *);
 1.36648 ++
 1.36649 ++extern bfd_boolean bfd_arm_pe_process_before_allocation
 1.36650 ++  (bfd *, struct bfd_link_info *, int);
 1.36651 ++
 1.36652 ++extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking
 1.36653 ++  (bfd *, struct bfd_link_info *);
 1.36654 ++
 1.36655 ++/* ELF ARM Interworking support.  Called from linker.  */
 1.36656 ++extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
 1.36657 ++  (struct bfd_link_info *);
 1.36658 ++
 1.36659 ++extern bfd_boolean bfd_elf32_arm_process_before_allocation
 1.36660 ++  (bfd *, struct bfd_link_info *);
 1.36661 ++
 1.36662 ++void bfd_elf32_arm_set_target_relocs
 1.36663 ++  (bfd *, struct bfd_link_info *, int, char *, int, int, bfd_arm_vfp11_fix,
 1.36664 ++   int, int);
 1.36665 ++
 1.36666 ++extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
 1.36667 ++  (bfd *, struct bfd_link_info *);
 1.36668 ++
 1.36669 ++extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
 1.36670 ++  (bfd *, struct bfd_link_info *);
 1.36671 ++
 1.36672 ++/* ELF ARM mapping symbol support */
 1.36673 ++#define BFD_ARM_SPECIAL_SYM_TYPE_MAP	(1 << 0)
 1.36674 ++#define BFD_ARM_SPECIAL_SYM_TYPE_TAG	(1 << 1)
 1.36675 ++#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER  (1 << 2)
 1.36676 ++#define BFD_ARM_SPECIAL_SYM_TYPE_ANY	(~0)
 1.36677 ++extern bfd_boolean bfd_is_arm_special_symbol_name
 1.36678 ++  (const char * name, int type);
 1.36679 ++
 1.36680 ++extern void bfd_elf32_arm_set_byteswap_code (struct bfd_link_info *, int);
 1.36681 ++
 1.36682 ++/* ARM Note section processing.  */
 1.36683 ++extern bfd_boolean bfd_arm_merge_machines
 1.36684 ++  (bfd *, bfd *);
 1.36685 ++
 1.36686 ++extern bfd_boolean bfd_arm_update_notes
 1.36687 ++  (bfd *, const char *);
 1.36688 ++
 1.36689 ++extern unsigned int bfd_arm_get_mach_from_notes
 1.36690 ++  (bfd *, const char *);
 1.36691 ++
 1.36692 ++/* TI COFF load page support.  */
 1.36693 ++extern void bfd_ticoff_set_section_load_page
 1.36694 ++  (struct bfd_section *, int);
 1.36695 ++
 1.36696 ++extern int bfd_ticoff_get_section_load_page
 1.36697 ++  (struct bfd_section *);
 1.36698 ++
 1.36699 ++/* H8/300 functions.  */
 1.36700 ++extern bfd_vma bfd_h8300_pad_address
 1.36701 ++  (bfd *, bfd_vma);
 1.36702 ++
 1.36703 ++/* IA64 Itanium code generation.  Called from linker.  */
 1.36704 ++extern void bfd_elf32_ia64_after_parse
 1.36705 ++  (int);
 1.36706 ++
 1.36707 ++extern void bfd_elf64_ia64_after_parse
 1.36708 ++  (int);
 1.36709 ++
 1.36710 ++/* This structure is used for a comdat section, as in PE.  A comdat
 1.36711 ++   section is associated with a particular symbol.  When the linker
 1.36712 ++   sees a comdat section, it keeps only one of the sections with a
 1.36713 ++   given name and associated with a given symbol.  */
 1.36714 ++
 1.36715 ++struct coff_comdat_info
 1.36716 ++{
 1.36717 ++  /* The name of the symbol associated with a comdat section.  */
 1.36718 ++  const char *name;
 1.36719 ++
 1.36720 ++  /* The local symbol table index of the symbol associated with a
 1.36721 ++     comdat section.  This is only meaningful to the object file format
 1.36722 ++     specific code; it is not an index into the list returned by
 1.36723 ++     bfd_canonicalize_symtab.  */
 1.36724 ++  long symbol;
 1.36725 ++};
 1.36726 ++
 1.36727 ++extern struct coff_comdat_info *bfd_coff_get_comdat_section
 1.36728 ++  (bfd *, struct bfd_section *);
 1.36729 ++
 1.36730 ++/* Extracted from init.c.  */
 1.36731 ++void bfd_init (void);
 1.36732 ++
 1.36733 ++/* Extracted from opncls.c.  */
 1.36734 ++bfd *bfd_fopen (const char *filename, const char *target,
 1.36735 ++    const char *mode, int fd);
 1.36736 ++
 1.36737 ++bfd *bfd_openr (const char *filename, const char *target);
 1.36738 ++
 1.36739 ++bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
 1.36740 ++
 1.36741 ++bfd *bfd_openstreamr (const char *, const char *, void *);
 1.36742 ++
 1.36743 ++bfd *bfd_openr_iovec (const char *filename, const char *target,
 1.36744 ++    void *(*open) (struct bfd *nbfd,
 1.36745 ++    void *open_closure),
 1.36746 ++    void *open_closure,
 1.36747 ++    file_ptr (*pread) (struct bfd *nbfd,
 1.36748 ++    void *stream,
 1.36749 ++    void *buf,
 1.36750 ++    file_ptr nbytes,
 1.36751 ++    file_ptr offset),
 1.36752 ++    int (*close) (struct bfd *nbfd,
 1.36753 ++    void *stream),
 1.36754 ++    int (*stat) (struct bfd *abfd,
 1.36755 ++    void *stream,
 1.36756 ++    struct stat *sb));
 1.36757 ++
 1.36758 ++bfd *bfd_openw (const char *filename, const char *target);
 1.36759 ++
 1.36760 ++bfd_boolean bfd_close (bfd *abfd);
 1.36761 ++
 1.36762 ++bfd_boolean bfd_close_all_done (bfd *);
 1.36763 ++
 1.36764 ++bfd *bfd_create (const char *filename, bfd *templ);
 1.36765 ++
 1.36766 ++bfd_boolean bfd_make_writable (bfd *abfd);
 1.36767 ++
 1.36768 ++bfd_boolean bfd_make_readable (bfd *abfd);
 1.36769 ++
 1.36770 ++unsigned long bfd_calc_gnu_debuglink_crc32
 1.36771 ++   (unsigned long crc, const unsigned char *buf, bfd_size_type len);
 1.36772 ++
 1.36773 ++char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
 1.36774 ++
 1.36775 ++struct bfd_section *bfd_create_gnu_debuglink_section
 1.36776 ++   (bfd *abfd, const char *filename);
 1.36777 ++
 1.36778 ++bfd_boolean bfd_fill_in_gnu_debuglink_section
 1.36779 ++   (bfd *abfd, struct bfd_section *sect, const char *filename);
 1.36780 ++
 1.36781 ++/* Extracted from libbfd.c.  */
 1.36782 ++
 1.36783 ++/* Byte swapping macros for user section data.  */
 1.36784 ++
 1.36785 ++#define bfd_put_8(abfd, val, ptr) \
 1.36786 ++  ((void) (*((unsigned char *) (ptr)) = (val) & 0xff))
 1.36787 ++#define bfd_put_signed_8 \
 1.36788 ++  bfd_put_8
 1.36789 ++#define bfd_get_8(abfd, ptr) \
 1.36790 ++  (*(unsigned char *) (ptr) & 0xff)
 1.36791 ++#define bfd_get_signed_8(abfd, ptr) \
 1.36792 ++  (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
 1.36793 ++
 1.36794 ++#define bfd_put_16(abfd, val, ptr) \
 1.36795 ++  BFD_SEND (abfd, bfd_putx16, ((val),(ptr)))
 1.36796 ++#define bfd_put_signed_16 \
 1.36797 ++  bfd_put_16
 1.36798 ++#define bfd_get_16(abfd, ptr) \
 1.36799 ++  BFD_SEND (abfd, bfd_getx16, (ptr))
 1.36800 ++#define bfd_get_signed_16(abfd, ptr) \
 1.36801 ++  BFD_SEND (abfd, bfd_getx_signed_16, (ptr))
 1.36802 ++
 1.36803 ++#define bfd_put_32(abfd, val, ptr) \
 1.36804 ++  BFD_SEND (abfd, bfd_putx32, ((val),(ptr)))
 1.36805 ++#define bfd_put_signed_32 \
 1.36806 ++  bfd_put_32
 1.36807 ++#define bfd_get_32(abfd, ptr) \
 1.36808 ++  BFD_SEND (abfd, bfd_getx32, (ptr))
 1.36809 ++#define bfd_get_signed_32(abfd, ptr) \
 1.36810 ++  BFD_SEND (abfd, bfd_getx_signed_32, (ptr))
 1.36811 ++
 1.36812 ++#define bfd_put_64(abfd, val, ptr) \
 1.36813 ++  BFD_SEND (abfd, bfd_putx64, ((val), (ptr)))
 1.36814 ++#define bfd_put_signed_64 \
 1.36815 ++  bfd_put_64
 1.36816 ++#define bfd_get_64(abfd, ptr) \
 1.36817 ++  BFD_SEND (abfd, bfd_getx64, (ptr))
 1.36818 ++#define bfd_get_signed_64(abfd, ptr) \
 1.36819 ++  BFD_SEND (abfd, bfd_getx_signed_64, (ptr))
 1.36820 ++
 1.36821 ++#define bfd_get(bits, abfd, ptr)                       \
 1.36822 ++  ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr)       \
 1.36823 ++   : (bits) == 16 ? bfd_get_16 (abfd, ptr)             \
 1.36824 ++   : (bits) == 32 ? bfd_get_32 (abfd, ptr)             \
 1.36825 ++   : (bits) == 64 ? bfd_get_64 (abfd, ptr)             \
 1.36826 ++   : (abort (), (bfd_vma) - 1))
 1.36827 ++
 1.36828 ++#define bfd_put(bits, abfd, val, ptr)                  \
 1.36829 ++  ((bits) == 8 ? bfd_put_8  (abfd, val, ptr)           \
 1.36830 ++   : (bits) == 16 ? bfd_put_16 (abfd, val, ptr)                \
 1.36831 ++   : (bits) == 32 ? bfd_put_32 (abfd, val, ptr)                \
 1.36832 ++   : (bits) == 64 ? bfd_put_64 (abfd, val, ptr)                \
 1.36833 ++   : (abort (), (void) 0))
 1.36834 ++
 1.36835 ++
 1.36836 ++/* Byte swapping macros for file header data.  */
 1.36837 ++
 1.36838 ++#define bfd_h_put_8(abfd, val, ptr) \
 1.36839 ++  bfd_put_8 (abfd, val, ptr)
 1.36840 ++#define bfd_h_put_signed_8(abfd, val, ptr) \
 1.36841 ++  bfd_put_8 (abfd, val, ptr)
 1.36842 ++#define bfd_h_get_8(abfd, ptr) \
 1.36843 ++  bfd_get_8 (abfd, ptr)
 1.36844 ++#define bfd_h_get_signed_8(abfd, ptr) \
 1.36845 ++  bfd_get_signed_8 (abfd, ptr)
 1.36846 ++
 1.36847 ++#define bfd_h_put_16(abfd, val, ptr) \
 1.36848 ++  BFD_SEND (abfd, bfd_h_putx16, (val, ptr))
 1.36849 ++#define bfd_h_put_signed_16 \
 1.36850 ++  bfd_h_put_16
 1.36851 ++#define bfd_h_get_16(abfd, ptr) \
 1.36852 ++  BFD_SEND (abfd, bfd_h_getx16, (ptr))
 1.36853 ++#define bfd_h_get_signed_16(abfd, ptr) \
 1.36854 ++  BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr))
 1.36855 ++
 1.36856 ++#define bfd_h_put_32(abfd, val, ptr) \
 1.36857 ++  BFD_SEND (abfd, bfd_h_putx32, (val, ptr))
 1.36858 ++#define bfd_h_put_signed_32 \
 1.36859 ++  bfd_h_put_32
 1.36860 ++#define bfd_h_get_32(abfd, ptr) \
 1.36861 ++  BFD_SEND (abfd, bfd_h_getx32, (ptr))
 1.36862 ++#define bfd_h_get_signed_32(abfd, ptr) \
 1.36863 ++  BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr))
 1.36864 ++
 1.36865 ++#define bfd_h_put_64(abfd, val, ptr) \
 1.36866 ++  BFD_SEND (abfd, bfd_h_putx64, (val, ptr))
 1.36867 ++#define bfd_h_put_signed_64 \
 1.36868 ++  bfd_h_put_64
 1.36869 ++#define bfd_h_get_64(abfd, ptr) \
 1.36870 ++  BFD_SEND (abfd, bfd_h_getx64, (ptr))
 1.36871 ++#define bfd_h_get_signed_64(abfd, ptr) \
 1.36872 ++  BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr))
 1.36873 ++
 1.36874 ++/* Aliases for the above, which should eventually go away.  */
 1.36875 ++
 1.36876 ++#define H_PUT_64  bfd_h_put_64
 1.36877 ++#define H_PUT_32  bfd_h_put_32
 1.36878 ++#define H_PUT_16  bfd_h_put_16
 1.36879 ++#define H_PUT_8   bfd_h_put_8
 1.36880 ++#define H_PUT_S64 bfd_h_put_signed_64
 1.36881 ++#define H_PUT_S32 bfd_h_put_signed_32
 1.36882 ++#define H_PUT_S16 bfd_h_put_signed_16
 1.36883 ++#define H_PUT_S8  bfd_h_put_signed_8
 1.36884 ++#define H_GET_64  bfd_h_get_64
 1.36885 ++#define H_GET_32  bfd_h_get_32
 1.36886 ++#define H_GET_16  bfd_h_get_16
 1.36887 ++#define H_GET_8   bfd_h_get_8
 1.36888 ++#define H_GET_S64 bfd_h_get_signed_64
 1.36889 ++#define H_GET_S32 bfd_h_get_signed_32
 1.36890 ++#define H_GET_S16 bfd_h_get_signed_16
 1.36891 ++#define H_GET_S8  bfd_h_get_signed_8
 1.36892 ++
 1.36893 ++
 1.36894 ++/* Extracted from bfdio.c.  */
 1.36895 ++long bfd_get_mtime (bfd *abfd);
 1.36896 ++
 1.36897 ++file_ptr bfd_get_size (bfd *abfd);
 1.36898 ++
 1.36899 ++/* Extracted from bfdwin.c.  */
 1.36900 ++/* Extracted from section.c.  */
 1.36901 ++typedef struct bfd_section
 1.36902 ++{
 1.36903 ++  /* The name of the section; the name isn't a copy, the pointer is
 1.36904 ++     the same as that passed to bfd_make_section.  */
 1.36905 ++  const char *name;
 1.36906 ++
 1.36907 ++  /* A unique sequence number.  */
 1.36908 ++  int id;
 1.36909 ++
 1.36910 ++  /* Which section in the bfd; 0..n-1 as sections are created in a bfd.  */
 1.36911 ++  int index;
 1.36912 ++
 1.36913 ++  /* The next section in the list belonging to the BFD, or NULL.  */
 1.36914 ++  struct bfd_section *next;
 1.36915 ++
 1.36916 ++  /* The previous section in the list belonging to the BFD, or NULL.  */
 1.36917 ++  struct bfd_section *prev;
 1.36918 ++
 1.36919 ++  /* The field flags contains attributes of the section. Some
 1.36920 ++     flags are read in from the object file, and some are
 1.36921 ++     synthesized from other information.  */
 1.36922 ++  flagword flags;
 1.36923 ++
 1.36924 ++#define SEC_NO_FLAGS   0x000
 1.36925 ++
 1.36926 ++  /* Tells the OS to allocate space for this section when loading.
 1.36927 ++     This is clear for a section containing debug information only.  */
 1.36928 ++#define SEC_ALLOC      0x001
 1.36929 ++
 1.36930 ++  /* Tells the OS to load the section from the file when loading.
 1.36931 ++     This is clear for a .bss section.  */
 1.36932 ++#define SEC_LOAD       0x002
 1.36933 ++
 1.36934 ++  /* The section contains data still to be relocated, so there is
 1.36935 ++     some relocation information too.  */
 1.36936 ++#define SEC_RELOC      0x004
 1.36937 ++
 1.36938 ++  /* A signal to the OS that the section contains read only data.  */
 1.36939 ++#define SEC_READONLY   0x008
 1.36940 ++
 1.36941 ++  /* The section contains code only.  */
 1.36942 ++#define SEC_CODE       0x010
 1.36943 ++
 1.36944 ++  /* The section contains data only.  */
 1.36945 ++#define SEC_DATA       0x020
 1.36946 ++
 1.36947 ++  /* The section will reside in ROM.  */
 1.36948 ++#define SEC_ROM        0x040
 1.36949 ++
 1.36950 ++  /* The section contains constructor information. This section
 1.36951 ++     type is used by the linker to create lists of constructors and
 1.36952 ++     destructors used by <<g++>>. When a back end sees a symbol
 1.36953 ++     which should be used in a constructor list, it creates a new
 1.36954 ++     section for the type of name (e.g., <<__CTOR_LIST__>>), attaches
 1.36955 ++     the symbol to it, and builds a relocation. To build the lists
 1.36956 ++     of constructors, all the linker has to do is catenate all the
 1.36957 ++     sections called <<__CTOR_LIST__>> and relocate the data
 1.36958 ++     contained within - exactly the operations it would peform on
 1.36959 ++     standard data.  */
 1.36960 ++#define SEC_CONSTRUCTOR 0x080
 1.36961 ++
 1.36962 ++  /* The section has contents - a data section could be
 1.36963 ++     <<SEC_ALLOC>> | <<SEC_HAS_CONTENTS>>; a debug section could be
 1.36964 ++     <<SEC_HAS_CONTENTS>>  */
 1.36965 ++#define SEC_HAS_CONTENTS 0x100
 1.36966 ++
 1.36967 ++  /* An instruction to the linker to not output the section
 1.36968 ++     even if it has information which would normally be written.  */
 1.36969 ++#define SEC_NEVER_LOAD 0x200
 1.36970 ++
 1.36971 ++  /* The section contains thread local data.  */
 1.36972 ++#define SEC_THREAD_LOCAL 0x400
 1.36973 ++
 1.36974 ++  /* The section has GOT references.  This flag is only for the
 1.36975 ++     linker, and is currently only used by the elf32-hppa back end.
 1.36976 ++     It will be set if global offset table references were detected
 1.36977 ++     in this section, which indicate to the linker that the section
 1.36978 ++     contains PIC code, and must be handled specially when doing a
 1.36979 ++     static link.  */
 1.36980 ++#define SEC_HAS_GOT_REF 0x800
 1.36981 ++
 1.36982 ++  /* The section contains common symbols (symbols may be defined
 1.36983 ++     multiple times, the value of a symbol is the amount of
 1.36984 ++     space it requires, and the largest symbol value is the one
 1.36985 ++     used).  Most targets have exactly one of these (which we
 1.36986 ++     translate to bfd_com_section_ptr), but ECOFF has two.  */
 1.36987 ++#define SEC_IS_COMMON 0x1000
 1.36988 ++
 1.36989 ++  /* The section contains only debugging information.  For
 1.36990 ++     example, this is set for ELF .debug and .stab sections.
 1.36991 ++     strip tests this flag to see if a section can be
 1.36992 ++     discarded.  */
 1.36993 ++#define SEC_DEBUGGING 0x2000
 1.36994 ++
 1.36995 ++  /* The contents of this section are held in memory pointed to
 1.36996 ++     by the contents field.  This is checked by bfd_get_section_contents,
 1.36997 ++     and the data is retrieved from memory if appropriate.  */
 1.36998 ++#define SEC_IN_MEMORY 0x4000
 1.36999 ++
 1.37000 ++  /* The contents of this section are to be excluded by the
 1.37001 ++     linker for executable and shared objects unless those
 1.37002 ++     objects are to be further relocated.  */
 1.37003 ++#define SEC_EXCLUDE 0x8000
 1.37004 ++
 1.37005 ++  /* The contents of this section are to be sorted based on the sum of
 1.37006 ++     the symbol and addend values specified by the associated relocation
 1.37007 ++     entries.  Entries without associated relocation entries will be
 1.37008 ++     appended to the end of the section in an unspecified order.  */
 1.37009 ++#define SEC_SORT_ENTRIES 0x10000
 1.37010 ++
 1.37011 ++  /* When linking, duplicate sections of the same name should be
 1.37012 ++     discarded, rather than being combined into a single section as
 1.37013 ++     is usually done.  This is similar to how common symbols are
 1.37014 ++     handled.  See SEC_LINK_DUPLICATES below.  */
 1.37015 ++#define SEC_LINK_ONCE 0x20000
 1.37016 ++
 1.37017 ++  /* If SEC_LINK_ONCE is set, this bitfield describes how the linker
 1.37018 ++     should handle duplicate sections.  */
 1.37019 ++#define SEC_LINK_DUPLICATES 0x40000
 1.37020 ++
 1.37021 ++  /* This value for SEC_LINK_DUPLICATES means that duplicate
 1.37022 ++     sections with the same name should simply be discarded.  */
 1.37023 ++#define SEC_LINK_DUPLICATES_DISCARD 0x0
 1.37024 ++
 1.37025 ++  /* This value for SEC_LINK_DUPLICATES means that the linker
 1.37026 ++     should warn if there are any duplicate sections, although
 1.37027 ++     it should still only link one copy.  */
 1.37028 ++#define SEC_LINK_DUPLICATES_ONE_ONLY 0x80000
 1.37029 ++
 1.37030 ++  /* This value for SEC_LINK_DUPLICATES means that the linker
 1.37031 ++     should warn if any duplicate sections are a different size.  */
 1.37032 ++#define SEC_LINK_DUPLICATES_SAME_SIZE 0x100000
 1.37033 ++
 1.37034 ++  /* This value for SEC_LINK_DUPLICATES means that the linker
 1.37035 ++     should warn if any duplicate sections contain different
 1.37036 ++     contents.  */
 1.37037 ++#define SEC_LINK_DUPLICATES_SAME_CONTENTS \
 1.37038 ++  (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE)
 1.37039 ++
 1.37040 ++  /* This section was created by the linker as part of dynamic
 1.37041 ++     relocation or other arcane processing.  It is skipped when
 1.37042 ++     going through the first-pass output, trusting that someone
 1.37043 ++     else up the line will take care of it later.  */
 1.37044 ++#define SEC_LINKER_CREATED 0x200000
 1.37045 ++
 1.37046 ++  /* This section should not be subject to garbage collection.
 1.37047 ++     Also set to inform the linker that this section should not be
 1.37048 ++     listed in the link map as discarded.  */
 1.37049 ++#define SEC_KEEP 0x400000
 1.37050 ++
 1.37051 ++  /* This section contains "short" data, and should be placed
 1.37052 ++     "near" the GP.  */
 1.37053 ++#define SEC_SMALL_DATA 0x800000
 1.37054 ++
 1.37055 ++  /* Attempt to merge identical entities in the section.
 1.37056 ++     Entity size is given in the entsize field.  */
 1.37057 ++#define SEC_MERGE 0x1000000
 1.37058 ++
 1.37059 ++  /* If given with SEC_MERGE, entities to merge are zero terminated
 1.37060 ++     strings where entsize specifies character size instead of fixed
 1.37061 ++     size entries.  */
 1.37062 ++#define SEC_STRINGS 0x2000000
 1.37063 ++
 1.37064 ++  /* This section contains data about section groups.  */
 1.37065 ++#define SEC_GROUP 0x4000000
 1.37066 ++
 1.37067 ++  /* The section is a COFF shared library section.  This flag is
 1.37068 ++     only for the linker.  If this type of section appears in
 1.37069 ++     the input file, the linker must copy it to the output file
 1.37070 ++     without changing the vma or size.  FIXME: Although this
 1.37071 ++     was originally intended to be general, it really is COFF
 1.37072 ++     specific (and the flag was renamed to indicate this).  It
 1.37073 ++     might be cleaner to have some more general mechanism to
 1.37074 ++     allow the back end to control what the linker does with
 1.37075 ++     sections.  */
 1.37076 ++#define SEC_COFF_SHARED_LIBRARY 0x10000000
 1.37077 ++
 1.37078 ++  /* This section contains data which may be shared with other
 1.37079 ++     executables or shared objects. This is for COFF only.  */
 1.37080 ++#define SEC_COFF_SHARED 0x20000000
 1.37081 ++
 1.37082 ++  /* When a section with this flag is being linked, then if the size of
 1.37083 ++     the input section is less than a page, it should not cross a page
 1.37084 ++     boundary.  If the size of the input section is one page or more,
 1.37085 ++     it should be aligned on a page boundary.  This is for TI
 1.37086 ++     TMS320C54X only.  */
 1.37087 ++#define SEC_TIC54X_BLOCK 0x40000000
 1.37088 ++
 1.37089 ++  /* Conditionally link this section; do not link if there are no
 1.37090 ++     references found to any symbol in the section.  This is for TI
 1.37091 ++     TMS320C54X only.  */
 1.37092 ++#define SEC_TIC54X_CLINK 0x80000000
 1.37093 ++
 1.37094 ++  /*  End of section flags.  */
 1.37095 ++
 1.37096 ++  /* Some internal packed boolean fields.  */
 1.37097 ++
 1.37098 ++  /* See the vma field.  */
 1.37099 ++  unsigned int user_set_vma : 1;
 1.37100 ++
 1.37101 ++  /* A mark flag used by some of the linker backends.  */
 1.37102 ++  unsigned int linker_mark : 1;
 1.37103 ++
 1.37104 ++  /* Another mark flag used by some of the linker backends.  Set for
 1.37105 ++     output sections that have an input section.  */
 1.37106 ++  unsigned int linker_has_input : 1;
 1.37107 ++
 1.37108 ++  /* Mark flags used by some linker backends for garbage collection.  */
 1.37109 ++  unsigned int gc_mark : 1;
 1.37110 ++  unsigned int gc_mark_from_eh : 1;
 1.37111 ++
 1.37112 ++  /* The following flags are used by the ELF linker. */
 1.37113 ++
 1.37114 ++  /* Mark sections which have been allocated to segments.  */
 1.37115 ++  unsigned int segment_mark : 1;
 1.37116 ++
 1.37117 ++  /* Type of sec_info information.  */
 1.37118 ++  unsigned int sec_info_type:3;
 1.37119 ++#define ELF_INFO_TYPE_NONE      0
 1.37120 ++#define ELF_INFO_TYPE_STABS     1
 1.37121 ++#define ELF_INFO_TYPE_MERGE     2
 1.37122 ++#define ELF_INFO_TYPE_EH_FRAME  3
 1.37123 ++#define ELF_INFO_TYPE_JUST_SYMS 4
 1.37124 ++
 1.37125 ++  /* Nonzero if this section uses RELA relocations, rather than REL.  */
 1.37126 ++  unsigned int use_rela_p:1;
 1.37127 ++
 1.37128 ++  /* Bits used by various backends.  The generic code doesn't touch
 1.37129 ++     these fields.  */
 1.37130 ++
 1.37131 ++  /* Nonzero if this section has TLS related relocations.  */
 1.37132 ++  unsigned int has_tls_reloc:1;
 1.37133 ++
 1.37134 ++  /* Nonzero if this section has a gp reloc.  */
 1.37135 ++  unsigned int has_gp_reloc:1;
 1.37136 ++
 1.37137 ++  /* Nonzero if this section needs the relax finalize pass.  */
 1.37138 ++  unsigned int need_finalize_relax:1;
 1.37139 ++
 1.37140 ++  /* Whether relocations have been processed.  */
 1.37141 ++  unsigned int reloc_done : 1;
 1.37142 ++
 1.37143 ++  /* End of internal packed boolean fields.  */
 1.37144 ++
 1.37145 ++  /*  The virtual memory address of the section - where it will be
 1.37146 ++      at run time.  The symbols are relocated against this.  The
 1.37147 ++      user_set_vma flag is maintained by bfd; if it's not set, the
 1.37148 ++      backend can assign addresses (for example, in <<a.out>>, where
 1.37149 ++      the default address for <<.data>> is dependent on the specific
 1.37150 ++      target and various flags).  */
 1.37151 ++  bfd_vma vma;
 1.37152 ++
 1.37153 ++  /*  The load address of the section - where it would be in a
 1.37154 ++      rom image; really only used for writing section header
 1.37155 ++      information.  */
 1.37156 ++  bfd_vma lma;
 1.37157 ++
 1.37158 ++  /* The size of the section in octets, as it will be output.
 1.37159 ++     Contains a value even if the section has no contents (e.g., the
 1.37160 ++     size of <<.bss>>).  */
 1.37161 ++  bfd_size_type size;
 1.37162 ++
 1.37163 ++  /* For input sections, the original size on disk of the section, in
 1.37164 ++     octets.  This field is used by the linker relaxation code.  It is
 1.37165 ++     currently only set for sections where the linker relaxation scheme
 1.37166 ++     doesn't cache altered section and reloc contents (stabs, eh_frame,
 1.37167 ++     SEC_MERGE, some coff relaxing targets), and thus the original size
 1.37168 ++     needs to be kept to read the section multiple times.
 1.37169 ++     For output sections, rawsize holds the section size calculated on
 1.37170 ++     a previous linker relaxation pass.  */
 1.37171 ++  bfd_size_type rawsize;
 1.37172 ++
 1.37173 ++  /* If this section is going to be output, then this value is the
 1.37174 ++     offset in *bytes* into the output section of the first byte in the
 1.37175 ++     input section (byte ==> smallest addressable unit on the
 1.37176 ++     target).  In most cases, if this was going to start at the
 1.37177 ++     100th octet (8-bit quantity) in the output section, this value
 1.37178 ++     would be 100.  However, if the target byte size is 16 bits
 1.37179 ++     (bfd_octets_per_byte is "2"), this value would be 50.  */
 1.37180 ++  bfd_vma output_offset;
 1.37181 ++
 1.37182 ++  /* The output section through which to map on output.  */
 1.37183 ++  struct bfd_section *output_section;
 1.37184 ++
 1.37185 ++  /* The alignment requirement of the section, as an exponent of 2 -
 1.37186 ++     e.g., 3 aligns to 2^3 (or 8).  */
 1.37187 ++  unsigned int alignment_power;
 1.37188 ++
 1.37189 ++  /* If an input section, a pointer to a vector of relocation
 1.37190 ++     records for the data in this section.  */
 1.37191 ++  struct reloc_cache_entry *relocation;
 1.37192 ++
 1.37193 ++  /* If an output section, a pointer to a vector of pointers to
 1.37194 ++     relocation records for the data in this section.  */
 1.37195 ++  struct reloc_cache_entry **orelocation;
 1.37196 ++
 1.37197 ++  /* The number of relocation records in one of the above.  */
 1.37198 ++  unsigned reloc_count;
 1.37199 ++
 1.37200 ++  /* Information below is back end specific - and not always used
 1.37201 ++     or updated.  */
 1.37202 ++
 1.37203 ++  /* File position of section data.  */
 1.37204 ++  file_ptr filepos;
 1.37205 ++
 1.37206 ++  /* File position of relocation info.  */
 1.37207 ++  file_ptr rel_filepos;
 1.37208 ++
 1.37209 ++  /* File position of line data.  */
 1.37210 ++  file_ptr line_filepos;
 1.37211 ++
 1.37212 ++  /* Pointer to data for applications.  */
 1.37213 ++  void *userdata;
 1.37214 ++
 1.37215 ++  /* If the SEC_IN_MEMORY flag is set, this points to the actual
 1.37216 ++     contents.  */
 1.37217 ++  unsigned char *contents;
 1.37218 ++
 1.37219 ++  /* Attached line number information.  */
 1.37220 ++  alent *lineno;
 1.37221 ++
 1.37222 ++  /* Number of line number records.  */
 1.37223 ++  unsigned int lineno_count;
 1.37224 ++
 1.37225 ++  /* Entity size for merging purposes.  */
 1.37226 ++  unsigned int entsize;
 1.37227 ++
 1.37228 ++  /* Points to the kept section if this section is a link-once section,
 1.37229 ++     and is discarded.  */
 1.37230 ++  struct bfd_section *kept_section;
 1.37231 ++
 1.37232 ++  /* When a section is being output, this value changes as more
 1.37233 ++     linenumbers are written out.  */
 1.37234 ++  file_ptr moving_line_filepos;
 1.37235 ++
 1.37236 ++  /* What the section number is in the target world.  */
 1.37237 ++  int target_index;
 1.37238 ++
 1.37239 ++  void *used_by_bfd;
 1.37240 ++
 1.37241 ++  /* If this is a constructor section then here is a list of the
 1.37242 ++     relocations created to relocate items within it.  */
 1.37243 ++  struct relent_chain *constructor_chain;
 1.37244 ++
 1.37245 ++  /* The BFD which owns the section.  */
 1.37246 ++  bfd *owner;
 1.37247 ++
 1.37248 ++  /* A symbol which points at this section only.  */
 1.37249 ++  struct bfd_symbol *symbol;
 1.37250 ++  struct bfd_symbol **symbol_ptr_ptr;
 1.37251 ++
 1.37252 ++  /* Early in the link process, map_head and map_tail are used to build
 1.37253 ++     a list of input sections attached to an output section.  Later,
 1.37254 ++     output sections use these fields for a list of bfd_link_order
 1.37255 ++     structs.  */
 1.37256 ++  union {
 1.37257 ++    struct bfd_link_order *link_order;
 1.37258 ++    struct bfd_section *s;
 1.37259 ++  } map_head, map_tail;
 1.37260 ++} asection;
 1.37261 ++
 1.37262 ++/* These sections are global, and are managed by BFD.  The application
 1.37263 ++   and target back end are not permitted to change the values in
 1.37264 ++   these sections.  New code should use the section_ptr macros rather
 1.37265 ++   than referring directly to the const sections.  The const sections
 1.37266 ++   may eventually vanish.  */
 1.37267 ++#define BFD_ABS_SECTION_NAME "*ABS*"
 1.37268 ++#define BFD_UND_SECTION_NAME "*UND*"
 1.37269 ++#define BFD_COM_SECTION_NAME "*COM*"
 1.37270 ++#define BFD_IND_SECTION_NAME "*IND*"
 1.37271 ++
 1.37272 ++/* The absolute section.  */
 1.37273 ++extern asection bfd_abs_section;
 1.37274 ++#define bfd_abs_section_ptr ((asection *) &bfd_abs_section)
 1.37275 ++#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
 1.37276 ++/* Pointer to the undefined section.  */
 1.37277 ++extern asection bfd_und_section;
 1.37278 ++#define bfd_und_section_ptr ((asection *) &bfd_und_section)
 1.37279 ++#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
 1.37280 ++/* Pointer to the common section.  */
 1.37281 ++extern asection bfd_com_section;
 1.37282 ++#define bfd_com_section_ptr ((asection *) &bfd_com_section)
 1.37283 ++/* Pointer to the indirect section.  */
 1.37284 ++extern asection bfd_ind_section;
 1.37285 ++#define bfd_ind_section_ptr ((asection *) &bfd_ind_section)
 1.37286 ++#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
 1.37287 ++
 1.37288 ++#define bfd_is_const_section(SEC)              \
 1.37289 ++ (   ((SEC) == bfd_abs_section_ptr)            \
 1.37290 ++  || ((SEC) == bfd_und_section_ptr)            \
 1.37291 ++  || ((SEC) == bfd_com_section_ptr)            \
 1.37292 ++  || ((SEC) == bfd_ind_section_ptr))
 1.37293 ++
 1.37294 ++/* Macros to handle insertion and deletion of a bfd's sections.  These
 1.37295 ++   only handle the list pointers, ie. do not adjust section_count,
 1.37296 ++   target_index etc.  */
 1.37297 ++#define bfd_section_list_remove(ABFD, S) \
 1.37298 ++  do                                                   \
 1.37299 ++    {                                                  \
 1.37300 ++      asection *_s = S;                                \
 1.37301 ++      asection *_next = _s->next;                      \
 1.37302 ++      asection *_prev = _s->prev;                      \
 1.37303 ++      if (_prev)                                       \
 1.37304 ++        _prev->next = _next;                           \
 1.37305 ++      else                                             \
 1.37306 ++        (ABFD)->sections = _next;                      \
 1.37307 ++      if (_next)                                       \
 1.37308 ++        _next->prev = _prev;                           \
 1.37309 ++      else                                             \
 1.37310 ++        (ABFD)->section_last = _prev;                  \
 1.37311 ++    }                                                  \
 1.37312 ++  while (0)
 1.37313 ++#define bfd_section_list_append(ABFD, S) \
 1.37314 ++  do                                                   \
 1.37315 ++    {                                                  \
 1.37316 ++      asection *_s = S;                                \
 1.37317 ++      bfd *_abfd = ABFD;                               \
 1.37318 ++      _s->next = NULL;                                 \
 1.37319 ++      if (_abfd->section_last)                         \
 1.37320 ++        {                                              \
 1.37321 ++          _s->prev = _abfd->section_last;              \
 1.37322 ++          _abfd->section_last->next = _s;              \
 1.37323 ++        }                                              \
 1.37324 ++      else                                             \
 1.37325 ++        {                                              \
 1.37326 ++          _s->prev = NULL;                             \
 1.37327 ++          _abfd->sections = _s;                        \
 1.37328 ++        }                                              \
 1.37329 ++      _abfd->section_last = _s;                        \
 1.37330 ++    }                                                  \
 1.37331 ++  while (0)
 1.37332 ++#define bfd_section_list_prepend(ABFD, S) \
 1.37333 ++  do                                                   \
 1.37334 ++    {                                                  \
 1.37335 ++      asection *_s = S;                                \
 1.37336 ++      bfd *_abfd = ABFD;                               \
 1.37337 ++      _s->prev = NULL;                                 \
 1.37338 ++      if (_abfd->sections)                             \
 1.37339 ++        {                                              \
 1.37340 ++          _s->next = _abfd->sections;                  \
 1.37341 ++          _abfd->sections->prev = _s;                  \
 1.37342 ++        }                                              \
 1.37343 ++      else                                             \
 1.37344 ++        {                                              \
 1.37345 ++          _s->next = NULL;                             \
 1.37346 ++          _abfd->section_last = _s;                    \
 1.37347 ++        }                                              \
 1.37348 ++      _abfd->sections = _s;                            \
 1.37349 ++    }                                                  \
 1.37350 ++  while (0)
 1.37351 ++#define bfd_section_list_insert_after(ABFD, A, S) \
 1.37352 ++  do                                                   \
 1.37353 ++    {                                                  \
 1.37354 ++      asection *_a = A;                                \
 1.37355 ++      asection *_s = S;                                \
 1.37356 ++      asection *_next = _a->next;                      \
 1.37357 ++      _s->next = _next;                                \
 1.37358 ++      _s->prev = _a;                                   \
 1.37359 ++      _a->next = _s;                                   \
 1.37360 ++      if (_next)                                       \
 1.37361 ++        _next->prev = _s;                              \
 1.37362 ++      else                                             \
 1.37363 ++        (ABFD)->section_last = _s;                     \
 1.37364 ++    }                                                  \
 1.37365 ++  while (0)
 1.37366 ++#define bfd_section_list_insert_before(ABFD, B, S) \
 1.37367 ++  do                                                   \
 1.37368 ++    {                                                  \
 1.37369 ++      asection *_b = B;                                \
 1.37370 ++      asection *_s = S;                                \
 1.37371 ++      asection *_prev = _b->prev;                      \
 1.37372 ++      _s->prev = _prev;                                \
 1.37373 ++      _s->next = _b;                                   \
 1.37374 ++      _b->prev = _s;                                   \
 1.37375 ++      if (_prev)                                       \
 1.37376 ++        _prev->next = _s;                              \
 1.37377 ++      else                                             \
 1.37378 ++        (ABFD)->sections = _s;                         \
 1.37379 ++    }                                                  \
 1.37380 ++  while (0)
 1.37381 ++#define bfd_section_removed_from_list(ABFD, S) \
 1.37382 ++  ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S))
 1.37383 ++
 1.37384 ++#define BFD_FAKE_SECTION(SEC, FLAGS, SYM, NAME, IDX)                   \
 1.37385 ++  /* name, id,  index, next, prev, flags, user_set_vma,            */  \
 1.37386 ++  { NAME,  IDX, 0,     NULL, NULL, FLAGS, 0,                           \
 1.37387 ++                                                                       \
 1.37388 ++  /* linker_mark, linker_has_input, gc_mark, gc_mark_from_eh,      */  \
 1.37389 ++     0,           0,                1,       0,                        \
 1.37390 ++                                                                       \
 1.37391 ++  /* segment_mark, sec_info_type, use_rela_p, has_tls_reloc,       */  \
 1.37392 ++     0,            0,             0,          0,                       \
 1.37393 ++                                                                       \
 1.37394 ++  /* has_gp_reloc, need_finalize_relax, reloc_done,                */  \
 1.37395 ++     0,            0,                   0,                             \
 1.37396 ++                                                                       \
 1.37397 ++  /* vma, lma, size, rawsize                                       */  \
 1.37398 ++     0,   0,   0,    0,                                                \
 1.37399 ++                                                                       \
 1.37400 ++  /* output_offset, output_section,              alignment_power,  */  \
 1.37401 ++     0,             (struct bfd_section *) &SEC, 0,                    \
 1.37402 ++                                                                       \
 1.37403 ++  /* relocation, orelocation, reloc_count, filepos, rel_filepos,   */  \
 1.37404 ++     NULL,       NULL,        0,           0,       0,                 \
 1.37405 ++                                                                       \
 1.37406 ++  /* line_filepos, userdata, contents, lineno, lineno_count,       */  \
 1.37407 ++     0,            NULL,     NULL,     NULL,   0,                      \
 1.37408 ++                                                                       \
 1.37409 ++  /* entsize, kept_section, moving_line_filepos,                    */ \
 1.37410 ++     0,       NULL,          0,                                        \
 1.37411 ++                                                                       \
 1.37412 ++  /* target_index, used_by_bfd, constructor_chain, owner,          */  \
 1.37413 ++     0,            NULL,        NULL,              NULL,               \
 1.37414 ++                                                                       \
 1.37415 ++  /* symbol,                    symbol_ptr_ptr,                    */  \
 1.37416 ++     (struct bfd_symbol *) SYM, &SEC.symbol,                           \
 1.37417 ++                                                                       \
 1.37418 ++  /* map_head, map_tail                                            */  \
 1.37419 ++     { NULL }, { NULL }                                                \
 1.37420 ++    }
 1.37421 ++
 1.37422 ++void bfd_section_list_clear (bfd *);
 1.37423 ++
 1.37424 ++asection *bfd_get_section_by_name (bfd *abfd, const char *name);
 1.37425 ++
 1.37426 ++asection *bfd_get_section_by_name_if
 1.37427 ++   (bfd *abfd,
 1.37428 ++    const char *name,
 1.37429 ++    bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj),
 1.37430 ++    void *obj);
 1.37431 ++
 1.37432 ++char *bfd_get_unique_section_name
 1.37433 ++   (bfd *abfd, const char *templat, int *count);
 1.37434 ++
 1.37435 ++asection *bfd_make_section_old_way (bfd *abfd, const char *name);
 1.37436 ++
 1.37437 ++asection *bfd_make_section_anyway_with_flags
 1.37438 ++   (bfd *abfd, const char *name, flagword flags);
 1.37439 ++
 1.37440 ++asection *bfd_make_section_anyway (bfd *abfd, const char *name);
 1.37441 ++
 1.37442 ++asection *bfd_make_section_with_flags
 1.37443 ++   (bfd *, const char *name, flagword flags);
 1.37444 ++
 1.37445 ++asection *bfd_make_section (bfd *, const char *name);
 1.37446 ++
 1.37447 ++bfd_boolean bfd_set_section_flags
 1.37448 ++   (bfd *abfd, asection *sec, flagword flags);
 1.37449 ++
 1.37450 ++void bfd_map_over_sections
 1.37451 ++   (bfd *abfd,
 1.37452 ++    void (*func) (bfd *abfd, asection *sect, void *obj),
 1.37453 ++    void *obj);
 1.37454 ++
 1.37455 ++asection *bfd_sections_find_if
 1.37456 ++   (bfd *abfd,
 1.37457 ++    bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj),
 1.37458 ++    void *obj);
 1.37459 ++
 1.37460 ++bfd_boolean bfd_set_section_size
 1.37461 ++   (bfd *abfd, asection *sec, bfd_size_type val);
 1.37462 ++
 1.37463 ++bfd_boolean bfd_set_section_contents
 1.37464 ++   (bfd *abfd, asection *section, const void *data,
 1.37465 ++    file_ptr offset, bfd_size_type count);
 1.37466 ++
 1.37467 ++bfd_boolean bfd_get_section_contents
 1.37468 ++   (bfd *abfd, asection *section, void *location, file_ptr offset,
 1.37469 ++    bfd_size_type count);
 1.37470 ++
 1.37471 ++bfd_boolean bfd_malloc_and_get_section
 1.37472 ++   (bfd *abfd, asection *section, bfd_byte **buf);
 1.37473 ++
 1.37474 ++bfd_boolean bfd_copy_private_section_data
 1.37475 ++   (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
 1.37476 ++
 1.37477 ++#define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
 1.37478 ++     BFD_SEND (obfd, _bfd_copy_private_section_data, \
 1.37479 ++               (ibfd, isection, obfd, osection))
 1.37480 ++bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
 1.37481 ++
 1.37482 ++bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
 1.37483 ++
 1.37484 ++/* Extracted from archures.c.  */
 1.37485 ++enum bfd_architecture
 1.37486 ++{
 1.37487 ++  bfd_arch_unknown,   /* File arch not known.  */
 1.37488 ++  bfd_arch_obscure,   /* Arch known, not one of these.  */
 1.37489 ++  bfd_arch_m68k,      /* Motorola 68xxx */
 1.37490 ++#define bfd_mach_m68000 1
 1.37491 ++#define bfd_mach_m68008 2
 1.37492 ++#define bfd_mach_m68010 3
 1.37493 ++#define bfd_mach_m68020 4
 1.37494 ++#define bfd_mach_m68030 5
 1.37495 ++#define bfd_mach_m68040 6
 1.37496 ++#define bfd_mach_m68060 7
 1.37497 ++#define bfd_mach_cpu32  8
 1.37498 ++#define bfd_mach_fido   9
 1.37499 ++#define bfd_mach_mcf_isa_a_nodiv 10
 1.37500 ++#define bfd_mach_mcf_isa_a 11
 1.37501 ++#define bfd_mach_mcf_isa_a_mac 12
 1.37502 ++#define bfd_mach_mcf_isa_a_emac 13
 1.37503 ++#define bfd_mach_mcf_isa_aplus 14
 1.37504 ++#define bfd_mach_mcf_isa_aplus_mac 15
 1.37505 ++#define bfd_mach_mcf_isa_aplus_emac 16
 1.37506 ++#define bfd_mach_mcf_isa_b_nousp 17
 1.37507 ++#define bfd_mach_mcf_isa_b_nousp_mac 18
 1.37508 ++#define bfd_mach_mcf_isa_b_nousp_emac 19
 1.37509 ++#define bfd_mach_mcf_isa_b 20
 1.37510 ++#define bfd_mach_mcf_isa_b_mac 21
 1.37511 ++#define bfd_mach_mcf_isa_b_emac 22
 1.37512 ++#define bfd_mach_mcf_isa_b_float 23
 1.37513 ++#define bfd_mach_mcf_isa_b_float_mac 24
 1.37514 ++#define bfd_mach_mcf_isa_b_float_emac 25
 1.37515 ++#define bfd_mach_mcf_isa_c 26
 1.37516 ++#define bfd_mach_mcf_isa_c_mac 27
 1.37517 ++#define bfd_mach_mcf_isa_c_emac 28
 1.37518 ++  bfd_arch_vax,       /* DEC Vax */
 1.37519 ++  bfd_arch_i960,      /* Intel 960 */
 1.37520 ++    /* The order of the following is important.
 1.37521 ++       lower number indicates a machine type that
 1.37522 ++       only accepts a subset of the instructions
 1.37523 ++       available to machines with higher numbers.
 1.37524 ++       The exception is the "ca", which is
 1.37525 ++       incompatible with all other machines except
 1.37526 ++       "core".  */
 1.37527 ++
 1.37528 ++#define bfd_mach_i960_core      1
 1.37529 ++#define bfd_mach_i960_ka_sa     2
 1.37530 ++#define bfd_mach_i960_kb_sb     3
 1.37531 ++#define bfd_mach_i960_mc        4
 1.37532 ++#define bfd_mach_i960_xa        5
 1.37533 ++#define bfd_mach_i960_ca        6
 1.37534 ++#define bfd_mach_i960_jx        7
 1.37535 ++#define bfd_mach_i960_hx        8
 1.37536 ++
 1.37537 ++  bfd_arch_or32,      /* OpenRISC 32 */
 1.37538 ++
 1.37539 ++  bfd_arch_sparc,     /* SPARC */
 1.37540 ++#define bfd_mach_sparc                 1
 1.37541 ++/* The difference between v8plus and v9 is that v9 is a true 64 bit env.  */
 1.37542 ++#define bfd_mach_sparc_sparclet        2
 1.37543 ++#define bfd_mach_sparc_sparclite       3
 1.37544 ++#define bfd_mach_sparc_v8plus          4
 1.37545 ++#define bfd_mach_sparc_v8plusa         5 /* with ultrasparc add'ns.  */
 1.37546 ++#define bfd_mach_sparc_sparclite_le    6
 1.37547 ++#define bfd_mach_sparc_v9              7
 1.37548 ++#define bfd_mach_sparc_v9a             8 /* with ultrasparc add'ns.  */
 1.37549 ++#define bfd_mach_sparc_v8plusb         9 /* with cheetah add'ns.  */
 1.37550 ++#define bfd_mach_sparc_v9b             10 /* with cheetah add'ns.  */
 1.37551 ++/* Nonzero if MACH has the v9 instruction set.  */
 1.37552 ++#define bfd_mach_sparc_v9_p(mach) \
 1.37553 ++  ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
 1.37554 ++   && (mach) != bfd_mach_sparc_sparclite_le)
 1.37555 ++/* Nonzero if MACH is a 64 bit sparc architecture.  */
 1.37556 ++#define bfd_mach_sparc_64bit_p(mach) \
 1.37557 ++  ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb)
 1.37558 ++  bfd_arch_spu,       /* PowerPC SPU */
 1.37559 ++#define bfd_mach_spu           256 
 1.37560 ++  bfd_arch_mips,      /* MIPS Rxxxx */
 1.37561 ++#define bfd_mach_mips3000              3000
 1.37562 ++#define bfd_mach_mips3900              3900
 1.37563 ++#define bfd_mach_mips4000              4000
 1.37564 ++#define bfd_mach_mips4010              4010
 1.37565 ++#define bfd_mach_mips4100              4100
 1.37566 ++#define bfd_mach_mips4111              4111
 1.37567 ++#define bfd_mach_mips4120              4120
 1.37568 ++#define bfd_mach_mips4300              4300
 1.37569 ++#define bfd_mach_mips4400              4400
 1.37570 ++#define bfd_mach_mips4600              4600
 1.37571 ++#define bfd_mach_mips4650              4650
 1.37572 ++#define bfd_mach_mips5000              5000
 1.37573 ++#define bfd_mach_mips5400              5400
 1.37574 ++#define bfd_mach_mips5500              5500
 1.37575 ++#define bfd_mach_mips6000              6000
 1.37576 ++#define bfd_mach_mips7000              7000
 1.37577 ++#define bfd_mach_mips8000              8000
 1.37578 ++#define bfd_mach_mips9000              9000
 1.37579 ++#define bfd_mach_mips10000             10000
 1.37580 ++#define bfd_mach_mips12000             12000
 1.37581 ++#define bfd_mach_mips16                16
 1.37582 ++#define bfd_mach_mips5                 5
 1.37583 ++#define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01 */
 1.37584 ++#define bfd_mach_mipsisa32             32
 1.37585 ++#define bfd_mach_mipsisa32r2           33
 1.37586 ++#define bfd_mach_mipsisa64             64
 1.37587 ++#define bfd_mach_mipsisa64r2           65
 1.37588 ++  bfd_arch_i386,      /* Intel 386 */
 1.37589 ++#define bfd_mach_i386_i386 1
 1.37590 ++#define bfd_mach_i386_i8086 2
 1.37591 ++#define bfd_mach_i386_i386_intel_syntax 3
 1.37592 ++#define bfd_mach_x86_64 64
 1.37593 ++#define bfd_mach_x86_64_intel_syntax 65
 1.37594 ++  bfd_arch_we32k,     /* AT&T WE32xxx */
 1.37595 ++  bfd_arch_tahoe,     /* CCI/Harris Tahoe */
 1.37596 ++  bfd_arch_i860,      /* Intel 860 */
 1.37597 ++  bfd_arch_i370,      /* IBM 360/370 Mainframes */
 1.37598 ++  bfd_arch_romp,      /* IBM ROMP PC/RT */
 1.37599 ++  bfd_arch_convex,    /* Convex */
 1.37600 ++  bfd_arch_m88k,      /* Motorola 88xxx */
 1.37601 ++  bfd_arch_m98k,      /* Motorola 98xxx */
 1.37602 ++  bfd_arch_pyramid,   /* Pyramid Technology */
 1.37603 ++  bfd_arch_h8300,     /* Renesas H8/300 (formerly Hitachi H8/300) */
 1.37604 ++#define bfd_mach_h8300    1
 1.37605 ++#define bfd_mach_h8300h   2
 1.37606 ++#define bfd_mach_h8300s   3
 1.37607 ++#define bfd_mach_h8300hn  4
 1.37608 ++#define bfd_mach_h8300sn  5
 1.37609 ++#define bfd_mach_h8300sx  6
 1.37610 ++#define bfd_mach_h8300sxn 7
 1.37611 ++  bfd_arch_pdp11,     /* DEC PDP-11 */
 1.37612 ++  bfd_arch_powerpc,   /* PowerPC */
 1.37613 ++#define bfd_mach_ppc           32
 1.37614 ++#define bfd_mach_ppc64         64
 1.37615 ++#define bfd_mach_ppc_403       403
 1.37616 ++#define bfd_mach_ppc_403gc     4030
 1.37617 ++#define bfd_mach_ppc_505       505
 1.37618 ++#define bfd_mach_ppc_601       601
 1.37619 ++#define bfd_mach_ppc_602       602
 1.37620 ++#define bfd_mach_ppc_603       603
 1.37621 ++#define bfd_mach_ppc_ec603e    6031
 1.37622 ++#define bfd_mach_ppc_604       604
 1.37623 ++#define bfd_mach_ppc_620       620
 1.37624 ++#define bfd_mach_ppc_630       630
 1.37625 ++#define bfd_mach_ppc_750       750
 1.37626 ++#define bfd_mach_ppc_860       860
 1.37627 ++#define bfd_mach_ppc_a35       35
 1.37628 ++#define bfd_mach_ppc_rs64ii    642
 1.37629 ++#define bfd_mach_ppc_rs64iii   643
 1.37630 ++#define bfd_mach_ppc_7400      7400
 1.37631 ++#define bfd_mach_ppc_e500      500
 1.37632 ++  bfd_arch_rs6000,    /* IBM RS/6000 */
 1.37633 ++#define bfd_mach_rs6k          6000
 1.37634 ++#define bfd_mach_rs6k_rs1      6001
 1.37635 ++#define bfd_mach_rs6k_rsc      6003
 1.37636 ++#define bfd_mach_rs6k_rs2      6002
 1.37637 ++  bfd_arch_hppa,      /* HP PA RISC */
 1.37638 ++#define bfd_mach_hppa10        10
 1.37639 ++#define bfd_mach_hppa11        11
 1.37640 ++#define bfd_mach_hppa20        20
 1.37641 ++#define bfd_mach_hppa20w       25
 1.37642 ++  bfd_arch_d10v,      /* Mitsubishi D10V */
 1.37643 ++#define bfd_mach_d10v          1
 1.37644 ++#define bfd_mach_d10v_ts2      2
 1.37645 ++#define bfd_mach_d10v_ts3      3
 1.37646 ++  bfd_arch_d30v,      /* Mitsubishi D30V */
 1.37647 ++  bfd_arch_dlx,       /* DLX */
 1.37648 ++  bfd_arch_m68hc11,   /* Motorola 68HC11 */
 1.37649 ++  bfd_arch_m68hc12,   /* Motorola 68HC12 */
 1.37650 ++#define bfd_mach_m6812_default 0
 1.37651 ++#define bfd_mach_m6812         1
 1.37652 ++#define bfd_mach_m6812s        2
 1.37653 ++  bfd_arch_z8k,       /* Zilog Z8000 */
 1.37654 ++#define bfd_mach_z8001         1
 1.37655 ++#define bfd_mach_z8002         2
 1.37656 ++  bfd_arch_h8500,     /* Renesas H8/500 (formerly Hitachi H8/500) */
 1.37657 ++  bfd_arch_sh,        /* Renesas / SuperH SH (formerly Hitachi SH) */
 1.37658 ++#define bfd_mach_sh            1
 1.37659 ++#define bfd_mach_sh2        0x20
 1.37660 ++#define bfd_mach_sh_dsp     0x2d
 1.37661 ++#define bfd_mach_sh2a       0x2a
 1.37662 ++#define bfd_mach_sh2a_nofpu 0x2b
 1.37663 ++#define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
 1.37664 ++#define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
 1.37665 ++#define bfd_mach_sh2a_or_sh4  0x2a3
 1.37666 ++#define bfd_mach_sh2a_or_sh3e 0x2a4
 1.37667 ++#define bfd_mach_sh2e       0x2e
 1.37668 ++#define bfd_mach_sh3        0x30
 1.37669 ++#define bfd_mach_sh3_nommu  0x31
 1.37670 ++#define bfd_mach_sh3_dsp    0x3d
 1.37671 ++#define bfd_mach_sh3e       0x3e
 1.37672 ++#define bfd_mach_sh4        0x40
 1.37673 ++#define bfd_mach_sh4_nofpu  0x41
 1.37674 ++#define bfd_mach_sh4_nommu_nofpu  0x42
 1.37675 ++#define bfd_mach_sh4a       0x4a
 1.37676 ++#define bfd_mach_sh4a_nofpu 0x4b
 1.37677 ++#define bfd_mach_sh4al_dsp  0x4d
 1.37678 ++#define bfd_mach_sh5        0x50
 1.37679 ++  bfd_arch_alpha,     /* Dec Alpha */
 1.37680 ++#define bfd_mach_alpha_ev4  0x10
 1.37681 ++#define bfd_mach_alpha_ev5  0x20
 1.37682 ++#define bfd_mach_alpha_ev6  0x30
 1.37683 ++  bfd_arch_arm,       /* Advanced Risc Machines ARM.  */
 1.37684 ++#define bfd_mach_arm_unknown   0
 1.37685 ++#define bfd_mach_arm_2         1
 1.37686 ++#define bfd_mach_arm_2a        2
 1.37687 ++#define bfd_mach_arm_3         3
 1.37688 ++#define bfd_mach_arm_3M        4
 1.37689 ++#define bfd_mach_arm_4         5
 1.37690 ++#define bfd_mach_arm_4T        6
 1.37691 ++#define bfd_mach_arm_5         7
 1.37692 ++#define bfd_mach_arm_5T        8
 1.37693 ++#define bfd_mach_arm_5TE       9
 1.37694 ++#define bfd_mach_arm_XScale    10
 1.37695 ++#define bfd_mach_arm_ep9312    11
 1.37696 ++#define bfd_mach_arm_iWMMXt    12
 1.37697 ++#define bfd_mach_arm_iWMMXt2   13
 1.37698 ++  bfd_arch_ns32k,     /* National Semiconductors ns32000 */
 1.37699 ++  bfd_arch_w65,       /* WDC 65816 */
 1.37700 ++  bfd_arch_tic30,     /* Texas Instruments TMS320C30 */
 1.37701 ++  bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X */
 1.37702 ++#define bfd_mach_tic3x         30
 1.37703 ++#define bfd_mach_tic4x         40
 1.37704 ++  bfd_arch_tic54x,    /* Texas Instruments TMS320C54X */
 1.37705 ++  bfd_arch_tic80,     /* TI TMS320c80 (MVP) */
 1.37706 ++  bfd_arch_v850,      /* NEC V850 */
 1.37707 ++#define bfd_mach_v850          1
 1.37708 ++#define bfd_mach_v850e         'E'
 1.37709 ++#define bfd_mach_v850e1        '1'
 1.37710 ++  bfd_arch_arc,       /* ARC Cores */
 1.37711 ++#define bfd_mach_arc_5         5
 1.37712 ++#define bfd_mach_arc_6         6
 1.37713 ++#define bfd_mach_arc_7         7
 1.37714 ++#define bfd_mach_arc_8         8
 1.37715 ++ bfd_arch_m32c,     /* Renesas M16C/M32C.  */
 1.37716 ++#define bfd_mach_m16c        0x75
 1.37717 ++#define bfd_mach_m32c        0x78
 1.37718 ++  bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D) */
 1.37719 ++#define bfd_mach_m32r          1 /* For backwards compatibility.  */
 1.37720 ++#define bfd_mach_m32rx         'x'
 1.37721 ++#define bfd_mach_m32r2         '2'
 1.37722 ++  bfd_arch_mn10200,   /* Matsushita MN10200 */
 1.37723 ++  bfd_arch_mn10300,   /* Matsushita MN10300 */
 1.37724 ++#define bfd_mach_mn10300               300
 1.37725 ++#define bfd_mach_am33          330
 1.37726 ++#define bfd_mach_am33_2        332
 1.37727 ++  bfd_arch_fr30,
 1.37728 ++#define bfd_mach_fr30          0x46523330
 1.37729 ++  bfd_arch_frv,
 1.37730 ++#define bfd_mach_frv           1
 1.37731 ++#define bfd_mach_frvsimple     2
 1.37732 ++#define bfd_mach_fr300         300
 1.37733 ++#define bfd_mach_fr400         400
 1.37734 ++#define bfd_mach_fr450         450
 1.37735 ++#define bfd_mach_frvtomcat     499     /* fr500 prototype */
 1.37736 ++#define bfd_mach_fr500         500
 1.37737 ++#define bfd_mach_fr550         550
 1.37738 ++  bfd_arch_mcore,
 1.37739 ++  bfd_arch_mep,
 1.37740 ++#define bfd_mach_mep           1
 1.37741 ++#define bfd_mach_mep_h1        0x6831
 1.37742 ++  bfd_arch_ia64,      /* HP/Intel ia64 */
 1.37743 ++#define bfd_mach_ia64_elf64    64
 1.37744 ++#define bfd_mach_ia64_elf32    32
 1.37745 ++  bfd_arch_ip2k,      /* Ubicom IP2K microcontrollers. */
 1.37746 ++#define bfd_mach_ip2022        1
 1.37747 ++#define bfd_mach_ip2022ext     2
 1.37748 ++ bfd_arch_iq2000,     /* Vitesse IQ2000.  */
 1.37749 ++#define bfd_mach_iq2000        1
 1.37750 ++#define bfd_mach_iq10          2
 1.37751 ++  bfd_arch_mt,
 1.37752 ++#define bfd_mach_ms1           1
 1.37753 ++#define bfd_mach_mrisc2        2
 1.37754 ++#define bfd_mach_ms2           3
 1.37755 ++  bfd_arch_pj,
 1.37756 ++  bfd_arch_avr,       /* Atmel AVR microcontrollers.  */
 1.37757 ++#define bfd_mach_avr1          1
 1.37758 ++#define bfd_mach_avr2          2
 1.37759 ++#define bfd_mach_avr3          3
 1.37760 ++#define bfd_mach_avr4          4
 1.37761 ++#define bfd_mach_avr5          5
 1.37762 ++#define bfd_mach_avr6          6
 1.37763 ++  bfd_arch_avr32,     /* Atmel AVR32 */
 1.37764 ++#define bfd_mach_avr32_ap      7000
 1.37765 ++#define bfd_mach_avr32_uc      3000
 1.37766 ++#define bfd_mach_avr32_ucr1    3001
 1.37767 ++#define bfd_mach_avr32_ucr2    3002
 1.37768 ++  bfd_arch_bfin,        /* ADI Blackfin */
 1.37769 ++#define bfd_mach_bfin          1
 1.37770 ++  bfd_arch_cr16,       /* National Semiconductor CompactRISC (ie CR16). */
 1.37771 ++#define bfd_mach_cr16          1
 1.37772 ++  bfd_arch_cr16c,       /* National Semiconductor CompactRISC. */
 1.37773 ++#define bfd_mach_cr16c         1
 1.37774 ++  bfd_arch_crx,       /*  National Semiconductor CRX.  */
 1.37775 ++#define bfd_mach_crx           1
 1.37776 ++  bfd_arch_cris,      /* Axis CRIS */
 1.37777 ++#define bfd_mach_cris_v0_v10   255
 1.37778 ++#define bfd_mach_cris_v32      32
 1.37779 ++#define bfd_mach_cris_v10_v32  1032
 1.37780 ++  bfd_arch_s390,      /* IBM s390 */
 1.37781 ++#define bfd_mach_s390_31       31
 1.37782 ++#define bfd_mach_s390_64       64
 1.37783 ++  bfd_arch_score,     /* Sunplus score */ 
 1.37784 ++  bfd_arch_openrisc,  /* OpenRISC */
 1.37785 ++  bfd_arch_mmix,      /* Donald Knuth's educational processor.  */
 1.37786 ++  bfd_arch_xstormy16,
 1.37787 ++#define bfd_mach_xstormy16     1
 1.37788 ++  bfd_arch_msp430,    /* Texas Instruments MSP430 architecture.  */
 1.37789 ++#define bfd_mach_msp11          11
 1.37790 ++#define bfd_mach_msp110         110
 1.37791 ++#define bfd_mach_msp12          12
 1.37792 ++#define bfd_mach_msp13          13
 1.37793 ++#define bfd_mach_msp14          14
 1.37794 ++#define bfd_mach_msp15          15
 1.37795 ++#define bfd_mach_msp16          16
 1.37796 ++#define bfd_mach_msp21          21
 1.37797 ++#define bfd_mach_msp31          31
 1.37798 ++#define bfd_mach_msp32          32
 1.37799 ++#define bfd_mach_msp33          33
 1.37800 ++#define bfd_mach_msp41          41
 1.37801 ++#define bfd_mach_msp42          42
 1.37802 ++#define bfd_mach_msp43          43
 1.37803 ++#define bfd_mach_msp44          44
 1.37804 ++  bfd_arch_xc16x,     /* Infineon's XC16X Series.               */
 1.37805 ++#define bfd_mach_xc16x         1
 1.37806 ++#define bfd_mach_xc16xl        2
 1.37807 ++#define bfd_mach_xc16xs         3
 1.37808 ++  bfd_arch_xtensa,    /* Tensilica's Xtensa cores.  */
 1.37809 ++#define bfd_mach_xtensa        1
 1.37810 ++   bfd_arch_maxq,     /* Dallas MAXQ 10/20 */
 1.37811 ++#define bfd_mach_maxq10    10
 1.37812 ++#define bfd_mach_maxq20    20
 1.37813 ++  bfd_arch_z80,
 1.37814 ++#define bfd_mach_z80strict      1 /* No undocumented opcodes.  */
 1.37815 ++#define bfd_mach_z80            3 /* With ixl, ixh, iyl, and iyh.  */
 1.37816 ++#define bfd_mach_z80full        7 /* All undocumented instructions.  */
 1.37817 ++#define bfd_mach_r800           11 /* R800: successor with multiplication.  */
 1.37818 ++  bfd_arch_last
 1.37819 ++  };
 1.37820 ++
 1.37821 ++typedef struct bfd_arch_info
 1.37822 ++{
 1.37823 ++  int bits_per_word;
 1.37824 ++  int bits_per_address;
 1.37825 ++  int bits_per_byte;
 1.37826 ++  enum bfd_architecture arch;
 1.37827 ++  unsigned long mach;
 1.37828 ++  const char *arch_name;
 1.37829 ++  const char *printable_name;
 1.37830 ++  unsigned int section_align_power;
 1.37831 ++  /* TRUE if this is the default machine for the architecture.
 1.37832 ++     The default arch should be the first entry for an arch so that
 1.37833 ++     all the entries for that arch can be accessed via <<next>>.  */
 1.37834 ++  bfd_boolean the_default;
 1.37835 ++  const struct bfd_arch_info * (*compatible)
 1.37836 ++    (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
 1.37837 ++
 1.37838 ++  bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
 1.37839 ++
 1.37840 ++  const struct bfd_arch_info *next;
 1.37841 ++}
 1.37842 ++bfd_arch_info_type;
 1.37843 ++
 1.37844 ++const char *bfd_printable_name (bfd *abfd);
 1.37845 ++
 1.37846 ++const bfd_arch_info_type *bfd_scan_arch (const char *string);
 1.37847 ++
 1.37848 ++const char **bfd_arch_list (void);
 1.37849 ++
 1.37850 ++const bfd_arch_info_type *bfd_arch_get_compatible
 1.37851 ++   (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
 1.37852 ++
 1.37853 ++void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
 1.37854 ++
 1.37855 ++enum bfd_architecture bfd_get_arch (bfd *abfd);
 1.37856 ++
 1.37857 ++unsigned long bfd_get_mach (bfd *abfd);
 1.37858 ++
 1.37859 ++unsigned int bfd_arch_bits_per_byte (bfd *abfd);
 1.37860 ++
 1.37861 ++unsigned int bfd_arch_bits_per_address (bfd *abfd);
 1.37862 ++
 1.37863 ++const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
 1.37864 ++
 1.37865 ++const bfd_arch_info_type *bfd_lookup_arch
 1.37866 ++   (enum bfd_architecture arch, unsigned long machine);
 1.37867 ++
 1.37868 ++const char *bfd_printable_arch_mach
 1.37869 ++   (enum bfd_architecture arch, unsigned long machine);
 1.37870 ++
 1.37871 ++unsigned int bfd_octets_per_byte (bfd *abfd);
 1.37872 ++
 1.37873 ++unsigned int bfd_arch_mach_octets_per_byte
 1.37874 ++   (enum bfd_architecture arch, unsigned long machine);
 1.37875 ++
 1.37876 ++/* Extracted from reloc.c.  */
 1.37877 ++typedef enum bfd_reloc_status
 1.37878 ++{
 1.37879 ++  /* No errors detected.  */
 1.37880 ++  bfd_reloc_ok,
 1.37881 ++
 1.37882 ++  /* The relocation was performed, but there was an overflow.  */
 1.37883 ++  bfd_reloc_overflow,
 1.37884 ++
 1.37885 ++  /* The address to relocate was not within the section supplied.  */
 1.37886 ++  bfd_reloc_outofrange,
 1.37887 ++
 1.37888 ++  /* Used by special functions.  */
 1.37889 ++  bfd_reloc_continue,
 1.37890 ++
 1.37891 ++  /* Unsupported relocation size requested.  */
 1.37892 ++  bfd_reloc_notsupported,
 1.37893 ++
 1.37894 ++  /* Unused.  */
 1.37895 ++  bfd_reloc_other,
 1.37896 ++
 1.37897 ++  /* The symbol to relocate against was undefined.  */
 1.37898 ++  bfd_reloc_undefined,
 1.37899 ++
 1.37900 ++  /* The relocation was performed, but may not be ok - presently
 1.37901 ++     generated only when linking i960 coff files with i960 b.out
 1.37902 ++     symbols.  If this type is returned, the error_message argument
 1.37903 ++     to bfd_perform_relocation will be set.  */
 1.37904 ++  bfd_reloc_dangerous
 1.37905 ++ }
 1.37906 ++ bfd_reloc_status_type;
 1.37907 ++
 1.37908 ++
 1.37909 ++typedef struct reloc_cache_entry
 1.37910 ++{
 1.37911 ++  /* A pointer into the canonical table of pointers.  */
 1.37912 ++  struct bfd_symbol **sym_ptr_ptr;
 1.37913 ++
 1.37914 ++  /* offset in section.  */
 1.37915 ++  bfd_size_type address;
 1.37916 ++
 1.37917 ++  /* addend for relocation value.  */
 1.37918 ++  bfd_vma addend;
 1.37919 ++
 1.37920 ++  /* Pointer to how to perform the required relocation.  */
 1.37921 ++  reloc_howto_type *howto;
 1.37922 ++
 1.37923 ++}
 1.37924 ++arelent;
 1.37925 ++
 1.37926 ++enum complain_overflow
 1.37927 ++{
 1.37928 ++  /* Do not complain on overflow.  */
 1.37929 ++  complain_overflow_dont,
 1.37930 ++
 1.37931 ++  /* Complain if the value overflows when considered as a signed
 1.37932 ++     number one bit larger than the field.  ie. A bitfield of N bits
 1.37933 ++     is allowed to represent -2**n to 2**n-1.  */
 1.37934 ++  complain_overflow_bitfield,
 1.37935 ++
 1.37936 ++  /* Complain if the value overflows when considered as a signed
 1.37937 ++     number.  */
 1.37938 ++  complain_overflow_signed,
 1.37939 ++
 1.37940 ++  /* Complain if the value overflows when considered as an
 1.37941 ++     unsigned number.  */
 1.37942 ++  complain_overflow_unsigned
 1.37943 ++};
 1.37944 ++
 1.37945 ++struct reloc_howto_struct
 1.37946 ++{
 1.37947 ++  /*  The type field has mainly a documentary use - the back end can
 1.37948 ++      do what it wants with it, though normally the back end's
 1.37949 ++      external idea of what a reloc number is stored
 1.37950 ++      in this field.  For example, a PC relative word relocation
 1.37951 ++      in a coff environment has the type 023 - because that's
 1.37952 ++      what the outside world calls a R_PCRWORD reloc.  */
 1.37953 ++  unsigned int type;
 1.37954 ++
 1.37955 ++  /*  The value the final relocation is shifted right by.  This drops
 1.37956 ++      unwanted data from the relocation.  */
 1.37957 ++  unsigned int rightshift;
 1.37958 ++
 1.37959 ++  /*  The size of the item to be relocated.  This is *not* a
 1.37960 ++      power-of-two measure.  To get the number of bytes operated
 1.37961 ++      on by a type of relocation, use bfd_get_reloc_size.  */
 1.37962 ++  int size;
 1.37963 ++
 1.37964 ++  /*  The number of bits in the item to be relocated.  This is used
 1.37965 ++      when doing overflow checking.  */
 1.37966 ++  unsigned int bitsize;
 1.37967 ++
 1.37968 ++  /*  Notes that the relocation is relative to the location in the
 1.37969 ++      data section of the addend.  The relocation function will
 1.37970 ++      subtract from the relocation value the address of the location
 1.37971 ++      being relocated.  */
 1.37972 ++  bfd_boolean pc_relative;
 1.37973 ++
 1.37974 ++  /*  The bit position of the reloc value in the destination.
 1.37975 ++      The relocated value is left shifted by this amount.  */
 1.37976 ++  unsigned int bitpos;
 1.37977 ++
 1.37978 ++  /* What type of overflow error should be checked for when
 1.37979 ++     relocating.  */
 1.37980 ++  enum complain_overflow complain_on_overflow;
 1.37981 ++
 1.37982 ++  /* If this field is non null, then the supplied function is
 1.37983 ++     called rather than the normal function.  This allows really
 1.37984 ++     strange relocation methods to be accommodated (e.g., i960 callj
 1.37985 ++     instructions).  */
 1.37986 ++  bfd_reloc_status_type (*special_function)
 1.37987 ++    (bfd *, arelent *, struct bfd_symbol *, void *, asection *,
 1.37988 ++     bfd *, char **);
 1.37989 ++
 1.37990 ++  /* The textual name of the relocation type.  */
 1.37991 ++  char *name;
 1.37992 ++
 1.37993 ++  /* Some formats record a relocation addend in the section contents
 1.37994 ++     rather than with the relocation.  For ELF formats this is the
 1.37995 ++     distinction between USE_REL and USE_RELA (though the code checks
 1.37996 ++     for USE_REL == 1/0).  The value of this field is TRUE if the
 1.37997 ++     addend is recorded with the section contents; when performing a
 1.37998 ++     partial link (ld -r) the section contents (the data) will be
 1.37999 ++     modified.  The value of this field is FALSE if addends are
 1.38000 ++     recorded with the relocation (in arelent.addend); when performing
 1.38001 ++     a partial link the relocation will be modified.
 1.38002 ++     All relocations for all ELF USE_RELA targets should set this field
 1.38003 ++     to FALSE (values of TRUE should be looked on with suspicion).
 1.38004 ++     However, the converse is not true: not all relocations of all ELF
 1.38005 ++     USE_REL targets set this field to TRUE.  Why this is so is peculiar
 1.38006 ++     to each particular target.  For relocs that aren't used in partial
 1.38007 ++     links (e.g. GOT stuff) it doesn't matter what this is set to.  */
 1.38008 ++  bfd_boolean partial_inplace;
 1.38009 ++
 1.38010 ++  /* src_mask selects the part of the instruction (or data) to be used
 1.38011 ++     in the relocation sum.  If the target relocations don't have an
 1.38012 ++     addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
 1.38013 ++     dst_mask to extract the addend from the section contents.  If
 1.38014 ++     relocations do have an addend in the reloc, eg. ELF USE_RELA, this
 1.38015 ++     field should be zero.  Non-zero values for ELF USE_RELA targets are
 1.38016 ++     bogus as in those cases the value in the dst_mask part of the
 1.38017 ++     section contents should be treated as garbage.  */
 1.38018 ++  bfd_vma src_mask;
 1.38019 ++
 1.38020 ++  /* dst_mask selects which parts of the instruction (or data) are
 1.38021 ++     replaced with a relocated value.  */
 1.38022 ++  bfd_vma dst_mask;
 1.38023 ++
 1.38024 ++  /* When some formats create PC relative instructions, they leave
 1.38025 ++     the value of the pc of the place being relocated in the offset
 1.38026 ++     slot of the instruction, so that a PC relative relocation can
 1.38027 ++     be made just by adding in an ordinary offset (e.g., sun3 a.out).
 1.38028 ++     Some formats leave the displacement part of an instruction
 1.38029 ++     empty (e.g., m88k bcs); this flag signals the fact.  */
 1.38030 ++  bfd_boolean pcrel_offset;
 1.38031 ++};
 1.38032 ++
 1.38033 ++#define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \
 1.38034 ++  { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC }
 1.38035 ++#define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
 1.38036 ++  HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \
 1.38037 ++         NAME, FALSE, 0, 0, IN)
 1.38038 ++
 1.38039 ++#define EMPTY_HOWTO(C) \
 1.38040 ++  HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
 1.38041 ++         NULL, FALSE, 0, 0, FALSE)
 1.38042 ++
 1.38043 ++#define HOWTO_PREPARE(relocation, symbol)               \
 1.38044 ++  {                                                     \
 1.38045 ++    if (symbol != NULL)                                 \
 1.38046 ++      {                                                 \
 1.38047 ++        if (bfd_is_com_section (symbol->section))       \
 1.38048 ++          {                                             \
 1.38049 ++            relocation = 0;                             \
 1.38050 ++          }                                             \
 1.38051 ++        else                                            \
 1.38052 ++          {                                             \
 1.38053 ++            relocation = symbol->value;                 \
 1.38054 ++          }                                             \
 1.38055 ++      }                                                 \
 1.38056 ++  }
 1.38057 ++
 1.38058 ++unsigned int bfd_get_reloc_size (reloc_howto_type *);
 1.38059 ++
 1.38060 ++typedef struct relent_chain
 1.38061 ++{
 1.38062 ++  arelent relent;
 1.38063 ++  struct relent_chain *next;
 1.38064 ++}
 1.38065 ++arelent_chain;
 1.38066 ++
 1.38067 ++bfd_reloc_status_type bfd_check_overflow
 1.38068 ++   (enum complain_overflow how,
 1.38069 ++    unsigned int bitsize,
 1.38070 ++    unsigned int rightshift,
 1.38071 ++    unsigned int addrsize,
 1.38072 ++    bfd_vma relocation);
 1.38073 ++
 1.38074 ++bfd_reloc_status_type bfd_perform_relocation
 1.38075 ++   (bfd *abfd,
 1.38076 ++    arelent *reloc_entry,
 1.38077 ++    void *data,
 1.38078 ++    asection *input_section,
 1.38079 ++    bfd *output_bfd,
 1.38080 ++    char **error_message);
 1.38081 ++
 1.38082 ++bfd_reloc_status_type bfd_install_relocation
 1.38083 ++   (bfd *abfd,
 1.38084 ++    arelent *reloc_entry,
 1.38085 ++    void *data, bfd_vma data_start,
 1.38086 ++    asection *input_section,
 1.38087 ++    char **error_message);
 1.38088 ++
 1.38089 ++enum bfd_reloc_code_real {
 1.38090 ++  _dummy_first_bfd_reloc_code_real,
 1.38091 ++
 1.38092 ++
 1.38093 ++/* Basic absolute relocations of N bits.  */
 1.38094 ++  BFD_RELOC_64,
 1.38095 ++  BFD_RELOC_32,
 1.38096 ++  BFD_RELOC_26,
 1.38097 ++  BFD_RELOC_24,
 1.38098 ++  BFD_RELOC_16,
 1.38099 ++  BFD_RELOC_14,
 1.38100 ++  BFD_RELOC_8,
 1.38101 ++
 1.38102 ++/* PC-relative relocations.  Sometimes these are relative to the address
 1.38103 ++of the relocation itself; sometimes they are relative to the start of
 1.38104 ++the section containing the relocation.  It depends on the specific target.
 1.38105 ++
 1.38106 ++The 24-bit relocation is used in some Intel 960 configurations.  */
 1.38107 ++  BFD_RELOC_64_PCREL,
 1.38108 ++  BFD_RELOC_32_PCREL,
 1.38109 ++  BFD_RELOC_24_PCREL,
 1.38110 ++  BFD_RELOC_16_PCREL,
 1.38111 ++  BFD_RELOC_12_PCREL,
 1.38112 ++  BFD_RELOC_8_PCREL,
 1.38113 ++
 1.38114 ++/* Section relative relocations.  Some targets need this for DWARF2.  */
 1.38115 ++  BFD_RELOC_32_SECREL,
 1.38116 ++
 1.38117 ++/* For ELF.  */
 1.38118 ++  BFD_RELOC_32_GOT_PCREL,
 1.38119 ++  BFD_RELOC_16_GOT_PCREL,
 1.38120 ++  BFD_RELOC_8_GOT_PCREL,
 1.38121 ++  BFD_RELOC_32_GOTOFF,
 1.38122 ++  BFD_RELOC_16_GOTOFF,
 1.38123 ++  BFD_RELOC_LO16_GOTOFF,
 1.38124 ++  BFD_RELOC_HI16_GOTOFF,
 1.38125 ++  BFD_RELOC_HI16_S_GOTOFF,
 1.38126 ++  BFD_RELOC_8_GOTOFF,
 1.38127 ++  BFD_RELOC_64_PLT_PCREL,
 1.38128 ++  BFD_RELOC_32_PLT_PCREL,
 1.38129 ++  BFD_RELOC_24_PLT_PCREL,
 1.38130 ++  BFD_RELOC_16_PLT_PCREL,
 1.38131 ++  BFD_RELOC_8_PLT_PCREL,
 1.38132 ++  BFD_RELOC_64_PLTOFF,
 1.38133 ++  BFD_RELOC_32_PLTOFF,
 1.38134 ++  BFD_RELOC_16_PLTOFF,
 1.38135 ++  BFD_RELOC_LO16_PLTOFF,
 1.38136 ++  BFD_RELOC_HI16_PLTOFF,
 1.38137 ++  BFD_RELOC_HI16_S_PLTOFF,
 1.38138 ++  BFD_RELOC_8_PLTOFF,
 1.38139 ++
 1.38140 ++/* Relocations used by 68K ELF.  */
 1.38141 ++  BFD_RELOC_68K_GLOB_DAT,
 1.38142 ++  BFD_RELOC_68K_JMP_SLOT,
 1.38143 ++  BFD_RELOC_68K_RELATIVE,
 1.38144 ++
 1.38145 ++/* Linkage-table relative.  */
 1.38146 ++  BFD_RELOC_32_BASEREL,
 1.38147 ++  BFD_RELOC_16_BASEREL,
 1.38148 ++  BFD_RELOC_LO16_BASEREL,
 1.38149 ++  BFD_RELOC_HI16_BASEREL,
 1.38150 ++  BFD_RELOC_HI16_S_BASEREL,
 1.38151 ++  BFD_RELOC_8_BASEREL,
 1.38152 ++  BFD_RELOC_RVA,
 1.38153 ++
 1.38154 ++/* Absolute 8-bit relocation, but used to form an address like 0xFFnn.  */
 1.38155 ++  BFD_RELOC_8_FFnn,
 1.38156 ++
 1.38157 ++/* These PC-relative relocations are stored as word displacements --
 1.38158 ++i.e., byte displacements shifted right two bits.  The 30-bit word
 1.38159 ++displacement (<<32_PCREL_S2>> -- 32 bits, shifted 2) is used on the
 1.38160 ++SPARC.  (SPARC tools generally refer to this as <<WDISP30>>.)  The
 1.38161 ++signed 16-bit displacement is used on the MIPS, and the 23-bit
 1.38162 ++displacement is used on the Alpha.  */
 1.38163 ++  BFD_RELOC_32_PCREL_S2,
 1.38164 ++  BFD_RELOC_16_PCREL_S2,
 1.38165 ++  BFD_RELOC_23_PCREL_S2,
 1.38166 ++
 1.38167 ++/* High 22 bits and low 10 bits of 32-bit value, placed into lower bits of
 1.38168 ++the target word.  These are used on the SPARC.  */
 1.38169 ++  BFD_RELOC_HI22,
 1.38170 ++  BFD_RELOC_LO10,
 1.38171 ++
 1.38172 ++/* For systems that allocate a Global Pointer register, these are
 1.38173 ++displacements off that register.  These relocation types are
 1.38174 ++handled specially, because the value the register will have is
 1.38175 ++decided relatively late.  */
 1.38176 ++  BFD_RELOC_GPREL16,
 1.38177 ++  BFD_RELOC_GPREL32,
 1.38178 ++
 1.38179 ++/* Reloc types used for i960/b.out.  */
 1.38180 ++  BFD_RELOC_I960_CALLJ,
 1.38181 ++
 1.38182 ++/* SPARC ELF relocations.  There is probably some overlap with other
 1.38183 ++relocation types already defined.  */
 1.38184 ++  BFD_RELOC_NONE,
 1.38185 ++  BFD_RELOC_SPARC_WDISP22,
 1.38186 ++  BFD_RELOC_SPARC22,
 1.38187 ++  BFD_RELOC_SPARC13,
 1.38188 ++  BFD_RELOC_SPARC_GOT10,
 1.38189 ++  BFD_RELOC_SPARC_GOT13,
 1.38190 ++  BFD_RELOC_SPARC_GOT22,
 1.38191 ++  BFD_RELOC_SPARC_PC10,
 1.38192 ++  BFD_RELOC_SPARC_PC22,
 1.38193 ++  BFD_RELOC_SPARC_WPLT30,
 1.38194 ++  BFD_RELOC_SPARC_COPY,
 1.38195 ++  BFD_RELOC_SPARC_GLOB_DAT,
 1.38196 ++  BFD_RELOC_SPARC_JMP_SLOT,
 1.38197 ++  BFD_RELOC_SPARC_RELATIVE,
 1.38198 ++  BFD_RELOC_SPARC_UA16,
 1.38199 ++  BFD_RELOC_SPARC_UA32,
 1.38200 ++  BFD_RELOC_SPARC_UA64,
 1.38201 ++
 1.38202 ++/* I think these are specific to SPARC a.out (e.g., Sun 4).  */
 1.38203 ++  BFD_RELOC_SPARC_BASE13,
 1.38204 ++  BFD_RELOC_SPARC_BASE22,
 1.38205 ++
 1.38206 ++/* SPARC64 relocations  */
 1.38207 ++#define BFD_RELOC_SPARC_64 BFD_RELOC_64
 1.38208 ++  BFD_RELOC_SPARC_10,
 1.38209 ++  BFD_RELOC_SPARC_11,
 1.38210 ++  BFD_RELOC_SPARC_OLO10,
 1.38211 ++  BFD_RELOC_SPARC_HH22,
 1.38212 ++  BFD_RELOC_SPARC_HM10,
 1.38213 ++  BFD_RELOC_SPARC_LM22,
 1.38214 ++  BFD_RELOC_SPARC_PC_HH22,
 1.38215 ++  BFD_RELOC_SPARC_PC_HM10,
 1.38216 ++  BFD_RELOC_SPARC_PC_LM22,
 1.38217 ++  BFD_RELOC_SPARC_WDISP16,
 1.38218 ++  BFD_RELOC_SPARC_WDISP19,
 1.38219 ++  BFD_RELOC_SPARC_7,
 1.38220 ++  BFD_RELOC_SPARC_6,
 1.38221 ++  BFD_RELOC_SPARC_5,
 1.38222 ++#define BFD_RELOC_SPARC_DISP64 BFD_RELOC_64_PCREL
 1.38223 ++  BFD_RELOC_SPARC_PLT32,
 1.38224 ++  BFD_RELOC_SPARC_PLT64,
 1.38225 ++  BFD_RELOC_SPARC_HIX22,
 1.38226 ++  BFD_RELOC_SPARC_LOX10,
 1.38227 ++  BFD_RELOC_SPARC_H44,
 1.38228 ++  BFD_RELOC_SPARC_M44,
 1.38229 ++  BFD_RELOC_SPARC_L44,
 1.38230 ++  BFD_RELOC_SPARC_REGISTER,
 1.38231 ++
 1.38232 ++/* SPARC little endian relocation  */
 1.38233 ++  BFD_RELOC_SPARC_REV32,
 1.38234 ++
 1.38235 ++/* SPARC TLS relocations  */
 1.38236 ++  BFD_RELOC_SPARC_TLS_GD_HI22,
 1.38237 ++  BFD_RELOC_SPARC_TLS_GD_LO10,
 1.38238 ++  BFD_RELOC_SPARC_TLS_GD_ADD,
 1.38239 ++  BFD_RELOC_SPARC_TLS_GD_CALL,
 1.38240 ++  BFD_RELOC_SPARC_TLS_LDM_HI22,
 1.38241 ++  BFD_RELOC_SPARC_TLS_LDM_LO10,
 1.38242 ++  BFD_RELOC_SPARC_TLS_LDM_ADD,
 1.38243 ++  BFD_RELOC_SPARC_TLS_LDM_CALL,
 1.38244 ++  BFD_RELOC_SPARC_TLS_LDO_HIX22,
 1.38245 ++  BFD_RELOC_SPARC_TLS_LDO_LOX10,
 1.38246 ++  BFD_RELOC_SPARC_TLS_LDO_ADD,
 1.38247 ++  BFD_RELOC_SPARC_TLS_IE_HI22,
 1.38248 ++  BFD_RELOC_SPARC_TLS_IE_LO10,
 1.38249 ++  BFD_RELOC_SPARC_TLS_IE_LD,
 1.38250 ++  BFD_RELOC_SPARC_TLS_IE_LDX,
 1.38251 ++  BFD_RELOC_SPARC_TLS_IE_ADD,
 1.38252 ++  BFD_RELOC_SPARC_TLS_LE_HIX22,
 1.38253 ++  BFD_RELOC_SPARC_TLS_LE_LOX10,
 1.38254 ++  BFD_RELOC_SPARC_TLS_DTPMOD32,
 1.38255 ++  BFD_RELOC_SPARC_TLS_DTPMOD64,
 1.38256 ++  BFD_RELOC_SPARC_TLS_DTPOFF32,
 1.38257 ++  BFD_RELOC_SPARC_TLS_DTPOFF64,
 1.38258 ++  BFD_RELOC_SPARC_TLS_TPOFF32,
 1.38259 ++  BFD_RELOC_SPARC_TLS_TPOFF64,
 1.38260 ++
 1.38261 ++/* SPU Relocations.  */
 1.38262 ++  BFD_RELOC_SPU_IMM7,
 1.38263 ++  BFD_RELOC_SPU_IMM8,
 1.38264 ++  BFD_RELOC_SPU_IMM10,
 1.38265 ++  BFD_RELOC_SPU_IMM10W,
 1.38266 ++  BFD_RELOC_SPU_IMM16,
 1.38267 ++  BFD_RELOC_SPU_IMM16W,
 1.38268 ++  BFD_RELOC_SPU_IMM18,
 1.38269 ++  BFD_RELOC_SPU_PCREL9a,
 1.38270 ++  BFD_RELOC_SPU_PCREL9b,
 1.38271 ++  BFD_RELOC_SPU_PCREL16,
 1.38272 ++  BFD_RELOC_SPU_LO16,
 1.38273 ++  BFD_RELOC_SPU_HI16,
 1.38274 ++  BFD_RELOC_SPU_PPU32,
 1.38275 ++  BFD_RELOC_SPU_PPU64,
 1.38276 ++
 1.38277 ++/* Alpha ECOFF and ELF relocations.  Some of these treat the symbol or
 1.38278 ++"addend" in some special way.
 1.38279 ++For GPDISP_HI16 ("gpdisp") relocations, the symbol is ignored when
 1.38280 ++writing; when reading, it will be the absolute section symbol.  The
 1.38281 ++addend is the displacement in bytes of the "lda" instruction from
 1.38282 ++the "ldah" instruction (which is at the address of this reloc).  */
 1.38283 ++  BFD_RELOC_ALPHA_GPDISP_HI16,
 1.38284 ++
 1.38285 ++/* For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
 1.38286 ++with GPDISP_HI16 relocs.  The addend is ignored when writing the
 1.38287 ++relocations out, and is filled in with the file's GP value on
 1.38288 ++reading, for convenience.  */
 1.38289 ++  BFD_RELOC_ALPHA_GPDISP_LO16,
 1.38290 ++
 1.38291 ++/* The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
 1.38292 ++relocation except that there is no accompanying GPDISP_LO16
 1.38293 ++relocation.  */
 1.38294 ++  BFD_RELOC_ALPHA_GPDISP,
 1.38295 ++
 1.38296 ++/* The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
 1.38297 ++the assembler turns it into a LDQ instruction to load the address of
 1.38298 ++the symbol, and then fills in a register in the real instruction.
 1.38299 ++
 1.38300 ++The LITERAL reloc, at the LDQ instruction, refers to the .lita
 1.38301 ++section symbol.  The addend is ignored when writing, but is filled
 1.38302 ++in with the file's GP value on reading, for convenience, as with the
 1.38303 ++GPDISP_LO16 reloc.
 1.38304 ++
 1.38305 ++The ELF_LITERAL reloc is somewhere between 16_GOTOFF and GPDISP_LO16.
 1.38306 ++It should refer to the symbol to be referenced, as with 16_GOTOFF,
 1.38307 ++but it generates output not based on the position within the .got
 1.38308 ++section, but relative to the GP value chosen for the file during the
 1.38309 ++final link stage.
 1.38310 ++
 1.38311 ++The LITUSE reloc, on the instruction using the loaded address, gives
 1.38312 ++information to the linker that it might be able to use to optimize
 1.38313 ++away some literal section references.  The symbol is ignored (read
 1.38314 ++as the absolute section symbol), and the "addend" indicates the type
 1.38315 ++of instruction using the register:
 1.38316 ++1 - "memory" fmt insn
 1.38317 ++2 - byte-manipulation (byte offset reg)
 1.38318 ++3 - jsr (target of branch)  */
 1.38319 ++  BFD_RELOC_ALPHA_LITERAL,
 1.38320 ++  BFD_RELOC_ALPHA_ELF_LITERAL,
 1.38321 ++  BFD_RELOC_ALPHA_LITUSE,
 1.38322 ++
 1.38323 ++/* The HINT relocation indicates a value that should be filled into the
 1.38324 ++"hint" field of a jmp/jsr/ret instruction, for possible branch-
 1.38325 ++prediction logic which may be provided on some processors.  */
 1.38326 ++  BFD_RELOC_ALPHA_HINT,
 1.38327 ++
 1.38328 ++/* The LINKAGE relocation outputs a linkage pair in the object file,
 1.38329 ++which is filled by the linker.  */
 1.38330 ++  BFD_RELOC_ALPHA_LINKAGE,
 1.38331 ++
 1.38332 ++/* The CODEADDR relocation outputs a STO_CA in the object file,
 1.38333 ++which is filled by the linker.  */
 1.38334 ++  BFD_RELOC_ALPHA_CODEADDR,
 1.38335 ++
 1.38336 ++/* The GPREL_HI/LO relocations together form a 32-bit offset from the
 1.38337 ++GP register.  */
 1.38338 ++  BFD_RELOC_ALPHA_GPREL_HI16,
 1.38339 ++  BFD_RELOC_ALPHA_GPREL_LO16,
 1.38340 ++
 1.38341 ++/* Like BFD_RELOC_23_PCREL_S2, except that the source and target must
 1.38342 ++share a common GP, and the target address is adjusted for
 1.38343 ++STO_ALPHA_STD_GPLOAD.  */
 1.38344 ++  BFD_RELOC_ALPHA_BRSGP,
 1.38345 ++
 1.38346 ++/* Alpha thread-local storage relocations.  */
 1.38347 ++  BFD_RELOC_ALPHA_TLSGD,
 1.38348 ++  BFD_RELOC_ALPHA_TLSLDM,
 1.38349 ++  BFD_RELOC_ALPHA_DTPMOD64,
 1.38350 ++  BFD_RELOC_ALPHA_GOTDTPREL16,
 1.38351 ++  BFD_RELOC_ALPHA_DTPREL64,
 1.38352 ++  BFD_RELOC_ALPHA_DTPREL_HI16,
 1.38353 ++  BFD_RELOC_ALPHA_DTPREL_LO16,
 1.38354 ++  BFD_RELOC_ALPHA_DTPREL16,
 1.38355 ++  BFD_RELOC_ALPHA_GOTTPREL16,
 1.38356 ++  BFD_RELOC_ALPHA_TPREL64,
 1.38357 ++  BFD_RELOC_ALPHA_TPREL_HI16,
 1.38358 ++  BFD_RELOC_ALPHA_TPREL_LO16,
 1.38359 ++  BFD_RELOC_ALPHA_TPREL16,
 1.38360 ++
 1.38361 ++/* Bits 27..2 of the relocation address shifted right 2 bits;
 1.38362 ++simple reloc otherwise.  */
 1.38363 ++  BFD_RELOC_MIPS_JMP,
 1.38364 ++
 1.38365 ++/* The MIPS16 jump instruction.  */
 1.38366 ++  BFD_RELOC_MIPS16_JMP,
 1.38367 ++
 1.38368 ++/* MIPS16 GP relative reloc.  */
 1.38369 ++  BFD_RELOC_MIPS16_GPREL,
 1.38370 ++
 1.38371 ++/* High 16 bits of 32-bit value; simple reloc.  */
 1.38372 ++  BFD_RELOC_HI16,
 1.38373 ++
 1.38374 ++/* High 16 bits of 32-bit value but the low 16 bits will be sign
 1.38375 ++extended and added to form the final result.  If the low 16
 1.38376 ++bits form a negative number, we need to add one to the high value
 1.38377 ++to compensate for the borrow when the low bits are added.  */
 1.38378 ++  BFD_RELOC_HI16_S,
 1.38379 ++
 1.38380 ++/* Low 16 bits.  */
 1.38381 ++  BFD_RELOC_LO16,
 1.38382 ++
 1.38383 ++/* High 16 bits of 32-bit pc-relative value  */
 1.38384 ++  BFD_RELOC_HI16_PCREL,
 1.38385 ++
 1.38386 ++/* High 16 bits of 32-bit pc-relative value, adjusted  */
 1.38387 ++  BFD_RELOC_HI16_S_PCREL,
 1.38388 ++
 1.38389 ++/* Low 16 bits of pc-relative value  */
 1.38390 ++  BFD_RELOC_LO16_PCREL,
 1.38391 ++
 1.38392 ++/* MIPS16 high 16 bits of 32-bit value.  */
 1.38393 ++  BFD_RELOC_MIPS16_HI16,
 1.38394 ++
 1.38395 ++/* MIPS16 high 16 bits of 32-bit value but the low 16 bits will be sign
 1.38396 ++extended and added to form the final result.  If the low 16
 1.38397 ++bits form a negative number, we need to add one to the high value
 1.38398 ++to compensate for the borrow when the low bits are added.  */
 1.38399 ++  BFD_RELOC_MIPS16_HI16_S,
 1.38400 ++
 1.38401 ++/* MIPS16 low 16 bits.  */
 1.38402 ++  BFD_RELOC_MIPS16_LO16,
 1.38403 ++
 1.38404 ++/* Relocation against a MIPS literal section.  */
 1.38405 ++  BFD_RELOC_MIPS_LITERAL,
 1.38406 ++
 1.38407 ++/* MIPS ELF relocations.  */
 1.38408 ++  BFD_RELOC_MIPS_GOT16,
 1.38409 ++  BFD_RELOC_MIPS_CALL16,
 1.38410 ++  BFD_RELOC_MIPS_GOT_HI16,
 1.38411 ++  BFD_RELOC_MIPS_GOT_LO16,
 1.38412 ++  BFD_RELOC_MIPS_CALL_HI16,
 1.38413 ++  BFD_RELOC_MIPS_CALL_LO16,
 1.38414 ++  BFD_RELOC_MIPS_SUB,
 1.38415 ++  BFD_RELOC_MIPS_GOT_PAGE,
 1.38416 ++  BFD_RELOC_MIPS_GOT_OFST,
 1.38417 ++  BFD_RELOC_MIPS_GOT_DISP,
 1.38418 ++  BFD_RELOC_MIPS_SHIFT5,
 1.38419 ++  BFD_RELOC_MIPS_SHIFT6,
 1.38420 ++  BFD_RELOC_MIPS_INSERT_A,
 1.38421 ++  BFD_RELOC_MIPS_INSERT_B,
 1.38422 ++  BFD_RELOC_MIPS_DELETE,
 1.38423 ++  BFD_RELOC_MIPS_HIGHEST,
 1.38424 ++  BFD_RELOC_MIPS_HIGHER,
 1.38425 ++  BFD_RELOC_MIPS_SCN_DISP,
 1.38426 ++  BFD_RELOC_MIPS_REL16,
 1.38427 ++  BFD_RELOC_MIPS_RELGOT,
 1.38428 ++  BFD_RELOC_MIPS_JALR,
 1.38429 ++  BFD_RELOC_MIPS_TLS_DTPMOD32,
 1.38430 ++  BFD_RELOC_MIPS_TLS_DTPREL32,
 1.38431 ++  BFD_RELOC_MIPS_TLS_DTPMOD64,
 1.38432 ++  BFD_RELOC_MIPS_TLS_DTPREL64,
 1.38433 ++  BFD_RELOC_MIPS_TLS_GD,
 1.38434 ++  BFD_RELOC_MIPS_TLS_LDM,
 1.38435 ++  BFD_RELOC_MIPS_TLS_DTPREL_HI16,
 1.38436 ++  BFD_RELOC_MIPS_TLS_DTPREL_LO16,
 1.38437 ++  BFD_RELOC_MIPS_TLS_GOTTPREL,
 1.38438 ++  BFD_RELOC_MIPS_TLS_TPREL32,
 1.38439 ++  BFD_RELOC_MIPS_TLS_TPREL64,
 1.38440 ++  BFD_RELOC_MIPS_TLS_TPREL_HI16,
 1.38441 ++  BFD_RELOC_MIPS_TLS_TPREL_LO16,
 1.38442 ++
 1.38443 ++
 1.38444 ++/* MIPS ELF relocations (VxWorks extensions).  */
 1.38445 ++  BFD_RELOC_MIPS_COPY,
 1.38446 ++  BFD_RELOC_MIPS_JUMP_SLOT,
 1.38447 ++
 1.38448 ++
 1.38449 ++/* Fujitsu Frv Relocations.  */
 1.38450 ++  BFD_RELOC_FRV_LABEL16,
 1.38451 ++  BFD_RELOC_FRV_LABEL24,
 1.38452 ++  BFD_RELOC_FRV_LO16,
 1.38453 ++  BFD_RELOC_FRV_HI16,
 1.38454 ++  BFD_RELOC_FRV_GPREL12,
 1.38455 ++  BFD_RELOC_FRV_GPRELU12,
 1.38456 ++  BFD_RELOC_FRV_GPREL32,
 1.38457 ++  BFD_RELOC_FRV_GPRELHI,
 1.38458 ++  BFD_RELOC_FRV_GPRELLO,
 1.38459 ++  BFD_RELOC_FRV_GOT12,
 1.38460 ++  BFD_RELOC_FRV_GOTHI,
 1.38461 ++  BFD_RELOC_FRV_GOTLO,
 1.38462 ++  BFD_RELOC_FRV_FUNCDESC,
 1.38463 ++  BFD_RELOC_FRV_FUNCDESC_GOT12,
 1.38464 ++  BFD_RELOC_FRV_FUNCDESC_GOTHI,
 1.38465 ++  BFD_RELOC_FRV_FUNCDESC_GOTLO,
 1.38466 ++  BFD_RELOC_FRV_FUNCDESC_VALUE,
 1.38467 ++  BFD_RELOC_FRV_FUNCDESC_GOTOFF12,
 1.38468 ++  BFD_RELOC_FRV_FUNCDESC_GOTOFFHI,
 1.38469 ++  BFD_RELOC_FRV_FUNCDESC_GOTOFFLO,
 1.38470 ++  BFD_RELOC_FRV_GOTOFF12,
 1.38471 ++  BFD_RELOC_FRV_GOTOFFHI,
 1.38472 ++  BFD_RELOC_FRV_GOTOFFLO,
 1.38473 ++  BFD_RELOC_FRV_GETTLSOFF,
 1.38474 ++  BFD_RELOC_FRV_TLSDESC_VALUE,
 1.38475 ++  BFD_RELOC_FRV_GOTTLSDESC12,
 1.38476 ++  BFD_RELOC_FRV_GOTTLSDESCHI,
 1.38477 ++  BFD_RELOC_FRV_GOTTLSDESCLO,
 1.38478 ++  BFD_RELOC_FRV_TLSMOFF12,
 1.38479 ++  BFD_RELOC_FRV_TLSMOFFHI,
 1.38480 ++  BFD_RELOC_FRV_TLSMOFFLO,
 1.38481 ++  BFD_RELOC_FRV_GOTTLSOFF12,
 1.38482 ++  BFD_RELOC_FRV_GOTTLSOFFHI,
 1.38483 ++  BFD_RELOC_FRV_GOTTLSOFFLO,
 1.38484 ++  BFD_RELOC_FRV_TLSOFF,
 1.38485 ++  BFD_RELOC_FRV_TLSDESC_RELAX,
 1.38486 ++  BFD_RELOC_FRV_GETTLSOFF_RELAX,
 1.38487 ++  BFD_RELOC_FRV_TLSOFF_RELAX,
 1.38488 ++  BFD_RELOC_FRV_TLSMOFF,
 1.38489 ++
 1.38490 ++
 1.38491 ++/* This is a 24bit GOT-relative reloc for the mn10300.  */
 1.38492 ++  BFD_RELOC_MN10300_GOTOFF24,
 1.38493 ++
 1.38494 ++/* This is a 32bit GOT-relative reloc for the mn10300, offset by two bytes
 1.38495 ++in the instruction.  */
 1.38496 ++  BFD_RELOC_MN10300_GOT32,
 1.38497 ++
 1.38498 ++/* This is a 24bit GOT-relative reloc for the mn10300, offset by two bytes
 1.38499 ++in the instruction.  */
 1.38500 ++  BFD_RELOC_MN10300_GOT24,
 1.38501 ++
 1.38502 ++/* This is a 16bit GOT-relative reloc for the mn10300, offset by two bytes
 1.38503 ++in the instruction.  */
 1.38504 ++  BFD_RELOC_MN10300_GOT16,
 1.38505 ++
 1.38506 ++/* Copy symbol at runtime.  */
 1.38507 ++  BFD_RELOC_MN10300_COPY,
 1.38508 ++
 1.38509 ++/* Create GOT entry.  */
 1.38510 ++  BFD_RELOC_MN10300_GLOB_DAT,
 1.38511 ++
 1.38512 ++/* Create PLT entry.  */
 1.38513 ++  BFD_RELOC_MN10300_JMP_SLOT,
 1.38514 ++
 1.38515 ++/* Adjust by program base.  */
 1.38516 ++  BFD_RELOC_MN10300_RELATIVE,
 1.38517 ++
 1.38518 ++
 1.38519 ++/* i386/elf relocations  */
 1.38520 ++  BFD_RELOC_386_GOT32,
 1.38521 ++  BFD_RELOC_386_PLT32,
 1.38522 ++  BFD_RELOC_386_COPY,
 1.38523 ++  BFD_RELOC_386_GLOB_DAT,
 1.38524 ++  BFD_RELOC_386_JUMP_SLOT,
 1.38525 ++  BFD_RELOC_386_RELATIVE,
 1.38526 ++  BFD_RELOC_386_GOTOFF,
 1.38527 ++  BFD_RELOC_386_GOTPC,
 1.38528 ++  BFD_RELOC_386_TLS_TPOFF,
 1.38529 ++  BFD_RELOC_386_TLS_IE,
 1.38530 ++  BFD_RELOC_386_TLS_GOTIE,
 1.38531 ++  BFD_RELOC_386_TLS_LE,
 1.38532 ++  BFD_RELOC_386_TLS_GD,
 1.38533 ++  BFD_RELOC_386_TLS_LDM,
 1.38534 ++  BFD_RELOC_386_TLS_LDO_32,
 1.38535 ++  BFD_RELOC_386_TLS_IE_32,
 1.38536 ++  BFD_RELOC_386_TLS_LE_32,
 1.38537 ++  BFD_RELOC_386_TLS_DTPMOD32,
 1.38538 ++  BFD_RELOC_386_TLS_DTPOFF32,
 1.38539 ++  BFD_RELOC_386_TLS_TPOFF32,
 1.38540 ++  BFD_RELOC_386_TLS_GOTDESC,
 1.38541 ++  BFD_RELOC_386_TLS_DESC_CALL,
 1.38542 ++  BFD_RELOC_386_TLS_DESC,
 1.38543 ++
 1.38544 ++/* x86-64/elf relocations  */
 1.38545 ++  BFD_RELOC_X86_64_GOT32,
 1.38546 ++  BFD_RELOC_X86_64_PLT32,
 1.38547 ++  BFD_RELOC_X86_64_COPY,
 1.38548 ++  BFD_RELOC_X86_64_GLOB_DAT,
 1.38549 ++  BFD_RELOC_X86_64_JUMP_SLOT,
 1.38550 ++  BFD_RELOC_X86_64_RELATIVE,
 1.38551 ++  BFD_RELOC_X86_64_GOTPCREL,
 1.38552 ++  BFD_RELOC_X86_64_32S,
 1.38553 ++  BFD_RELOC_X86_64_DTPMOD64,
 1.38554 ++  BFD_RELOC_X86_64_DTPOFF64,
 1.38555 ++  BFD_RELOC_X86_64_TPOFF64,
 1.38556 ++  BFD_RELOC_X86_64_TLSGD,
 1.38557 ++  BFD_RELOC_X86_64_TLSLD,
 1.38558 ++  BFD_RELOC_X86_64_DTPOFF32,
 1.38559 ++  BFD_RELOC_X86_64_GOTTPOFF,
 1.38560 ++  BFD_RELOC_X86_64_TPOFF32,
 1.38561 ++  BFD_RELOC_X86_64_GOTOFF64,
 1.38562 ++  BFD_RELOC_X86_64_GOTPC32,
 1.38563 ++  BFD_RELOC_X86_64_GOT64,
 1.38564 ++  BFD_RELOC_X86_64_GOTPCREL64,
 1.38565 ++  BFD_RELOC_X86_64_GOTPC64,
 1.38566 ++  BFD_RELOC_X86_64_GOTPLT64,
 1.38567 ++  BFD_RELOC_X86_64_PLTOFF64,
 1.38568 ++  BFD_RELOC_X86_64_GOTPC32_TLSDESC,
 1.38569 ++  BFD_RELOC_X86_64_TLSDESC_CALL,
 1.38570 ++  BFD_RELOC_X86_64_TLSDESC,
 1.38571 ++
 1.38572 ++/* ns32k relocations  */
 1.38573 ++  BFD_RELOC_NS32K_IMM_8,
 1.38574 ++  BFD_RELOC_NS32K_IMM_16,
 1.38575 ++  BFD_RELOC_NS32K_IMM_32,
 1.38576 ++  BFD_RELOC_NS32K_IMM_8_PCREL,
 1.38577 ++  BFD_RELOC_NS32K_IMM_16_PCREL,
 1.38578 ++  BFD_RELOC_NS32K_IMM_32_PCREL,
 1.38579 ++  BFD_RELOC_NS32K_DISP_8,
 1.38580 ++  BFD_RELOC_NS32K_DISP_16,
 1.38581 ++  BFD_RELOC_NS32K_DISP_32,
 1.38582 ++  BFD_RELOC_NS32K_DISP_8_PCREL,
 1.38583 ++  BFD_RELOC_NS32K_DISP_16_PCREL,
 1.38584 ++  BFD_RELOC_NS32K_DISP_32_PCREL,
 1.38585 ++
 1.38586 ++/* PDP11 relocations  */
 1.38587 ++  BFD_RELOC_PDP11_DISP_8_PCREL,
 1.38588 ++  BFD_RELOC_PDP11_DISP_6_PCREL,
 1.38589 ++
 1.38590 ++/* Picojava relocs.  Not all of these appear in object files.  */
 1.38591 ++  BFD_RELOC_PJ_CODE_HI16,
 1.38592 ++  BFD_RELOC_PJ_CODE_LO16,
 1.38593 ++  BFD_RELOC_PJ_CODE_DIR16,
 1.38594 ++  BFD_RELOC_PJ_CODE_DIR32,
 1.38595 ++  BFD_RELOC_PJ_CODE_REL16,
 1.38596 ++  BFD_RELOC_PJ_CODE_REL32,
 1.38597 ++
 1.38598 ++/* Power(rs6000) and PowerPC relocations.  */
 1.38599 ++  BFD_RELOC_PPC_B26,
 1.38600 ++  BFD_RELOC_PPC_BA26,
 1.38601 ++  BFD_RELOC_PPC_TOC16,
 1.38602 ++  BFD_RELOC_PPC_B16,
 1.38603 ++  BFD_RELOC_PPC_B16_BRTAKEN,
 1.38604 ++  BFD_RELOC_PPC_B16_BRNTAKEN,
 1.38605 ++  BFD_RELOC_PPC_BA16,
 1.38606 ++  BFD_RELOC_PPC_BA16_BRTAKEN,
 1.38607 ++  BFD_RELOC_PPC_BA16_BRNTAKEN,
 1.38608 ++  BFD_RELOC_PPC_COPY,
 1.38609 ++  BFD_RELOC_PPC_GLOB_DAT,
 1.38610 ++  BFD_RELOC_PPC_JMP_SLOT,
 1.38611 ++  BFD_RELOC_PPC_RELATIVE,
 1.38612 ++  BFD_RELOC_PPC_LOCAL24PC,
 1.38613 ++  BFD_RELOC_PPC_EMB_NADDR32,
 1.38614 ++  BFD_RELOC_PPC_EMB_NADDR16,
 1.38615 ++  BFD_RELOC_PPC_EMB_NADDR16_LO,
 1.38616 ++  BFD_RELOC_PPC_EMB_NADDR16_HI,
 1.38617 ++  BFD_RELOC_PPC_EMB_NADDR16_HA,
 1.38618 ++  BFD_RELOC_PPC_EMB_SDAI16,
 1.38619 ++  BFD_RELOC_PPC_EMB_SDA2I16,
 1.38620 ++  BFD_RELOC_PPC_EMB_SDA2REL,
 1.38621 ++  BFD_RELOC_PPC_EMB_SDA21,
 1.38622 ++  BFD_RELOC_PPC_EMB_MRKREF,
 1.38623 ++  BFD_RELOC_PPC_EMB_RELSEC16,
 1.38624 ++  BFD_RELOC_PPC_EMB_RELST_LO,
 1.38625 ++  BFD_RELOC_PPC_EMB_RELST_HI,
 1.38626 ++  BFD_RELOC_PPC_EMB_RELST_HA,
 1.38627 ++  BFD_RELOC_PPC_EMB_BIT_FLD,
 1.38628 ++  BFD_RELOC_PPC_EMB_RELSDA,
 1.38629 ++  BFD_RELOC_PPC64_HIGHER,
 1.38630 ++  BFD_RELOC_PPC64_HIGHER_S,
 1.38631 ++  BFD_RELOC_PPC64_HIGHEST,
 1.38632 ++  BFD_RELOC_PPC64_HIGHEST_S,
 1.38633 ++  BFD_RELOC_PPC64_TOC16_LO,
 1.38634 ++  BFD_RELOC_PPC64_TOC16_HI,
 1.38635 ++  BFD_RELOC_PPC64_TOC16_HA,
 1.38636 ++  BFD_RELOC_PPC64_TOC,
 1.38637 ++  BFD_RELOC_PPC64_PLTGOT16,
 1.38638 ++  BFD_RELOC_PPC64_PLTGOT16_LO,
 1.38639 ++  BFD_RELOC_PPC64_PLTGOT16_HI,
 1.38640 ++  BFD_RELOC_PPC64_PLTGOT16_HA,
 1.38641 ++  BFD_RELOC_PPC64_ADDR16_DS,
 1.38642 ++  BFD_RELOC_PPC64_ADDR16_LO_DS,
 1.38643 ++  BFD_RELOC_PPC64_GOT16_DS,
 1.38644 ++  BFD_RELOC_PPC64_GOT16_LO_DS,
 1.38645 ++  BFD_RELOC_PPC64_PLT16_LO_DS,
 1.38646 ++  BFD_RELOC_PPC64_SECTOFF_DS,
 1.38647 ++  BFD_RELOC_PPC64_SECTOFF_LO_DS,
 1.38648 ++  BFD_RELOC_PPC64_TOC16_DS,
 1.38649 ++  BFD_RELOC_PPC64_TOC16_LO_DS,
 1.38650 ++  BFD_RELOC_PPC64_PLTGOT16_DS,
 1.38651 ++  BFD_RELOC_PPC64_PLTGOT16_LO_DS,
 1.38652 ++
 1.38653 ++/* PowerPC and PowerPC64 thread-local storage relocations.  */
 1.38654 ++  BFD_RELOC_PPC_TLS,
 1.38655 ++  BFD_RELOC_PPC_DTPMOD,
 1.38656 ++  BFD_RELOC_PPC_TPREL16,
 1.38657 ++  BFD_RELOC_PPC_TPREL16_LO,
 1.38658 ++  BFD_RELOC_PPC_TPREL16_HI,
 1.38659 ++  BFD_RELOC_PPC_TPREL16_HA,
 1.38660 ++  BFD_RELOC_PPC_TPREL,
 1.38661 ++  BFD_RELOC_PPC_DTPREL16,
 1.38662 ++  BFD_RELOC_PPC_DTPREL16_LO,
 1.38663 ++  BFD_RELOC_PPC_DTPREL16_HI,
 1.38664 ++  BFD_RELOC_PPC_DTPREL16_HA,
 1.38665 ++  BFD_RELOC_PPC_DTPREL,
 1.38666 ++  BFD_RELOC_PPC_GOT_TLSGD16,
 1.38667 ++  BFD_RELOC_PPC_GOT_TLSGD16_LO,
 1.38668 ++  BFD_RELOC_PPC_GOT_TLSGD16_HI,
 1.38669 ++  BFD_RELOC_PPC_GOT_TLSGD16_HA,
 1.38670 ++  BFD_RELOC_PPC_GOT_TLSLD16,
 1.38671 ++  BFD_RELOC_PPC_GOT_TLSLD16_LO,
 1.38672 ++  BFD_RELOC_PPC_GOT_TLSLD16_HI,
 1.38673 ++  BFD_RELOC_PPC_GOT_TLSLD16_HA,
 1.38674 ++  BFD_RELOC_PPC_GOT_TPREL16,
 1.38675 ++  BFD_RELOC_PPC_GOT_TPREL16_LO,
 1.38676 ++  BFD_RELOC_PPC_GOT_TPREL16_HI,
 1.38677 ++  BFD_RELOC_PPC_GOT_TPREL16_HA,
 1.38678 ++  BFD_RELOC_PPC_GOT_DTPREL16,
 1.38679 ++  BFD_RELOC_PPC_GOT_DTPREL16_LO,
 1.38680 ++  BFD_RELOC_PPC_GOT_DTPREL16_HI,
 1.38681 ++  BFD_RELOC_PPC_GOT_DTPREL16_HA,
 1.38682 ++  BFD_RELOC_PPC64_TPREL16_DS,
 1.38683 ++  BFD_RELOC_PPC64_TPREL16_LO_DS,
 1.38684 ++  BFD_RELOC_PPC64_TPREL16_HIGHER,
 1.38685 ++  BFD_RELOC_PPC64_TPREL16_HIGHERA,
 1.38686 ++  BFD_RELOC_PPC64_TPREL16_HIGHEST,
 1.38687 ++  BFD_RELOC_PPC64_TPREL16_HIGHESTA,
 1.38688 ++  BFD_RELOC_PPC64_DTPREL16_DS,
 1.38689 ++  BFD_RELOC_PPC64_DTPREL16_LO_DS,
 1.38690 ++  BFD_RELOC_PPC64_DTPREL16_HIGHER,
 1.38691 ++  BFD_RELOC_PPC64_DTPREL16_HIGHERA,
 1.38692 ++  BFD_RELOC_PPC64_DTPREL16_HIGHEST,
 1.38693 ++  BFD_RELOC_PPC64_DTPREL16_HIGHESTA,
 1.38694 ++
 1.38695 ++/* IBM 370/390 relocations  */
 1.38696 ++  BFD_RELOC_I370_D12,
 1.38697 ++
 1.38698 ++/* The type of reloc used to build a constructor table - at the moment
 1.38699 ++probably a 32 bit wide absolute relocation, but the target can choose.
 1.38700 ++It generally does map to one of the other relocation types.  */
 1.38701 ++  BFD_RELOC_CTOR,
 1.38702 ++
 1.38703 ++/* ARM 26 bit pc-relative branch.  The lowest two bits must be zero and are
 1.38704 ++not stored in the instruction.  */
 1.38705 ++  BFD_RELOC_ARM_PCREL_BRANCH,
 1.38706 ++
 1.38707 ++/* ARM 26 bit pc-relative branch.  The lowest bit must be zero and is
 1.38708 ++not stored in the instruction.  The 2nd lowest bit comes from a 1 bit
 1.38709 ++field in the instruction.  */
 1.38710 ++  BFD_RELOC_ARM_PCREL_BLX,
 1.38711 ++
 1.38712 ++/* Thumb 22 bit pc-relative branch.  The lowest bit must be zero and is
 1.38713 ++not stored in the instruction.  The 2nd lowest bit comes from a 1 bit
 1.38714 ++field in the instruction.  */
 1.38715 ++  BFD_RELOC_THUMB_PCREL_BLX,
 1.38716 ++
 1.38717 ++/* ARM 26-bit pc-relative branch for an unconditional BL or BLX instruction.  */
 1.38718 ++  BFD_RELOC_ARM_PCREL_CALL,
 1.38719 ++
 1.38720 ++/* ARM 26-bit pc-relative branch for B or conditional BL instruction.  */
 1.38721 ++  BFD_RELOC_ARM_PCREL_JUMP,
 1.38722 ++
 1.38723 ++/* Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.
 1.38724 ++The lowest bit must be zero and is not stored in the instruction.
 1.38725 ++Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
 1.38726 ++"nn" one smaller in all cases.  Note further that BRANCH23
 1.38727 ++corresponds to R_ARM_THM_CALL.  */
 1.38728 ++  BFD_RELOC_THUMB_PCREL_BRANCH7,
 1.38729 ++  BFD_RELOC_THUMB_PCREL_BRANCH9,
 1.38730 ++  BFD_RELOC_THUMB_PCREL_BRANCH12,
 1.38731 ++  BFD_RELOC_THUMB_PCREL_BRANCH20,
 1.38732 ++  BFD_RELOC_THUMB_PCREL_BRANCH23,
 1.38733 ++  BFD_RELOC_THUMB_PCREL_BRANCH25,
 1.38734 ++
 1.38735 ++/* 12-bit immediate offset, used in ARM-format ldr and str instructions.  */
 1.38736 ++  BFD_RELOC_ARM_OFFSET_IMM,
 1.38737 ++
 1.38738 ++/* 5-bit immediate offset, used in Thumb-format ldr and str instructions.  */
 1.38739 ++  BFD_RELOC_ARM_THUMB_OFFSET,
 1.38740 ++
 1.38741 ++/* Pc-relative or absolute relocation depending on target.  Used for
 1.38742 ++entries in .init_array sections.  */
 1.38743 ++  BFD_RELOC_ARM_TARGET1,
 1.38744 ++
 1.38745 ++/* Read-only segment base relative address.  */
 1.38746 ++  BFD_RELOC_ARM_ROSEGREL32,
 1.38747 ++
 1.38748 ++/* Data segment base relative address.  */
 1.38749 ++  BFD_RELOC_ARM_SBREL32,
 1.38750 ++
 1.38751 ++/* This reloc is used for references to RTTI data from exception handling
 1.38752 ++tables.  The actual definition depends on the target.  It may be a
 1.38753 ++pc-relative or some form of GOT-indirect relocation.  */
 1.38754 ++  BFD_RELOC_ARM_TARGET2,
 1.38755 ++
 1.38756 ++/* 31-bit PC relative address.  */
 1.38757 ++  BFD_RELOC_ARM_PREL31,
 1.38758 ++
 1.38759 ++/* Low and High halfword relocations for MOVW and MOVT instructions.  */
 1.38760 ++  BFD_RELOC_ARM_MOVW,
 1.38761 ++  BFD_RELOC_ARM_MOVT,
 1.38762 ++  BFD_RELOC_ARM_MOVW_PCREL,
 1.38763 ++  BFD_RELOC_ARM_MOVT_PCREL,
 1.38764 ++  BFD_RELOC_ARM_THUMB_MOVW,
 1.38765 ++  BFD_RELOC_ARM_THUMB_MOVT,
 1.38766 ++  BFD_RELOC_ARM_THUMB_MOVW_PCREL,
 1.38767 ++  BFD_RELOC_ARM_THUMB_MOVT_PCREL,
 1.38768 ++
 1.38769 ++/* Relocations for setting up GOTs and PLTs for shared libraries.  */
 1.38770 ++  BFD_RELOC_ARM_JUMP_SLOT,
 1.38771 ++  BFD_RELOC_ARM_GLOB_DAT,
 1.38772 ++  BFD_RELOC_ARM_GOT32,
 1.38773 ++  BFD_RELOC_ARM_PLT32,
 1.38774 ++  BFD_RELOC_ARM_RELATIVE,
 1.38775 ++  BFD_RELOC_ARM_GOTOFF,
 1.38776 ++  BFD_RELOC_ARM_GOTPC,
 1.38777 ++
 1.38778 ++/* ARM thread-local storage relocations.  */
 1.38779 ++  BFD_RELOC_ARM_TLS_GD32,
 1.38780 ++  BFD_RELOC_ARM_TLS_LDO32,
 1.38781 ++  BFD_RELOC_ARM_TLS_LDM32,
 1.38782 ++  BFD_RELOC_ARM_TLS_DTPOFF32,
 1.38783 ++  BFD_RELOC_ARM_TLS_DTPMOD32,
 1.38784 ++  BFD_RELOC_ARM_TLS_TPOFF32,
 1.38785 ++  BFD_RELOC_ARM_TLS_IE32,
 1.38786 ++  BFD_RELOC_ARM_TLS_LE32,
 1.38787 ++
 1.38788 ++/* ARM group relocations.  */
 1.38789 ++  BFD_RELOC_ARM_ALU_PC_G0_NC,
 1.38790 ++  BFD_RELOC_ARM_ALU_PC_G0,
 1.38791 ++  BFD_RELOC_ARM_ALU_PC_G1_NC,
 1.38792 ++  BFD_RELOC_ARM_ALU_PC_G1,
 1.38793 ++  BFD_RELOC_ARM_ALU_PC_G2,
 1.38794 ++  BFD_RELOC_ARM_LDR_PC_G0,
 1.38795 ++  BFD_RELOC_ARM_LDR_PC_G1,
 1.38796 ++  BFD_RELOC_ARM_LDR_PC_G2,
 1.38797 ++  BFD_RELOC_ARM_LDRS_PC_G0,
 1.38798 ++  BFD_RELOC_ARM_LDRS_PC_G1,
 1.38799 ++  BFD_RELOC_ARM_LDRS_PC_G2,
 1.38800 ++  BFD_RELOC_ARM_LDC_PC_G0,
 1.38801 ++  BFD_RELOC_ARM_LDC_PC_G1,
 1.38802 ++  BFD_RELOC_ARM_LDC_PC_G2,
 1.38803 ++  BFD_RELOC_ARM_ALU_SB_G0_NC,
 1.38804 ++  BFD_RELOC_ARM_ALU_SB_G0,
 1.38805 ++  BFD_RELOC_ARM_ALU_SB_G1_NC,
 1.38806 ++  BFD_RELOC_ARM_ALU_SB_G1,
 1.38807 ++  BFD_RELOC_ARM_ALU_SB_G2,
 1.38808 ++  BFD_RELOC_ARM_LDR_SB_G0,
 1.38809 ++  BFD_RELOC_ARM_LDR_SB_G1,
 1.38810 ++  BFD_RELOC_ARM_LDR_SB_G2,
 1.38811 ++  BFD_RELOC_ARM_LDRS_SB_G0,
 1.38812 ++  BFD_RELOC_ARM_LDRS_SB_G1,
 1.38813 ++  BFD_RELOC_ARM_LDRS_SB_G2,
 1.38814 ++  BFD_RELOC_ARM_LDC_SB_G0,
 1.38815 ++  BFD_RELOC_ARM_LDC_SB_G1,
 1.38816 ++  BFD_RELOC_ARM_LDC_SB_G2,
 1.38817 ++
 1.38818 ++/* These relocs are only used within the ARM assembler.  They are not
 1.38819 ++(at present) written to any object files.  */
 1.38820 ++  BFD_RELOC_ARM_IMMEDIATE,
 1.38821 ++  BFD_RELOC_ARM_ADRL_IMMEDIATE,
 1.38822 ++  BFD_RELOC_ARM_T32_IMMEDIATE,
 1.38823 ++  BFD_RELOC_ARM_T32_ADD_IMM,
 1.38824 ++  BFD_RELOC_ARM_T32_IMM12,
 1.38825 ++  BFD_RELOC_ARM_T32_ADD_PC12,
 1.38826 ++  BFD_RELOC_ARM_SHIFT_IMM,
 1.38827 ++  BFD_RELOC_ARM_SMC,
 1.38828 ++  BFD_RELOC_ARM_SWI,
 1.38829 ++  BFD_RELOC_ARM_MULTI,
 1.38830 ++  BFD_RELOC_ARM_CP_OFF_IMM,
 1.38831 ++  BFD_RELOC_ARM_CP_OFF_IMM_S2,
 1.38832 ++  BFD_RELOC_ARM_T32_CP_OFF_IMM,
 1.38833 ++  BFD_RELOC_ARM_T32_CP_OFF_IMM_S2,
 1.38834 ++  BFD_RELOC_ARM_ADR_IMM,
 1.38835 ++  BFD_RELOC_ARM_LDR_IMM,
 1.38836 ++  BFD_RELOC_ARM_LITERAL,
 1.38837 ++  BFD_RELOC_ARM_IN_POOL,
 1.38838 ++  BFD_RELOC_ARM_OFFSET_IMM8,
 1.38839 ++  BFD_RELOC_ARM_T32_OFFSET_U8,
 1.38840 ++  BFD_RELOC_ARM_T32_OFFSET_IMM,
 1.38841 ++  BFD_RELOC_ARM_HWLITERAL,
 1.38842 ++  BFD_RELOC_ARM_THUMB_ADD,
 1.38843 ++  BFD_RELOC_ARM_THUMB_IMM,
 1.38844 ++  BFD_RELOC_ARM_THUMB_SHIFT,
 1.38845 ++
 1.38846 ++/* Renesas / SuperH SH relocs.  Not all of these appear in object files.  */
 1.38847 ++  BFD_RELOC_SH_PCDISP8BY2,
 1.38848 ++  BFD_RELOC_SH_PCDISP12BY2,
 1.38849 ++  BFD_RELOC_SH_IMM3,
 1.38850 ++  BFD_RELOC_SH_IMM3U,
 1.38851 ++  BFD_RELOC_SH_DISP12,
 1.38852 ++  BFD_RELOC_SH_DISP12BY2,
 1.38853 ++  BFD_RELOC_SH_DISP12BY4,
 1.38854 ++  BFD_RELOC_SH_DISP12BY8,
 1.38855 ++  BFD_RELOC_SH_DISP20,
 1.38856 ++  BFD_RELOC_SH_DISP20BY8,
 1.38857 ++  BFD_RELOC_SH_IMM4,
 1.38858 ++  BFD_RELOC_SH_IMM4BY2,
 1.38859 ++  BFD_RELOC_SH_IMM4BY4,
 1.38860 ++  BFD_RELOC_SH_IMM8,
 1.38861 ++  BFD_RELOC_SH_IMM8BY2,
 1.38862 ++  BFD_RELOC_SH_IMM8BY4,
 1.38863 ++  BFD_RELOC_SH_PCRELIMM8BY2,
 1.38864 ++  BFD_RELOC_SH_PCRELIMM8BY4,
 1.38865 ++  BFD_RELOC_SH_SWITCH16,
 1.38866 ++  BFD_RELOC_SH_SWITCH32,
 1.38867 ++  BFD_RELOC_SH_USES,
 1.38868 ++  BFD_RELOC_SH_COUNT,
 1.38869 ++  BFD_RELOC_SH_ALIGN,
 1.38870 ++  BFD_RELOC_SH_CODE,
 1.38871 ++  BFD_RELOC_SH_DATA,
 1.38872 ++  BFD_RELOC_SH_LABEL,
 1.38873 ++  BFD_RELOC_SH_LOOP_START,
 1.38874 ++  BFD_RELOC_SH_LOOP_END,
 1.38875 ++  BFD_RELOC_SH_COPY,
 1.38876 ++  BFD_RELOC_SH_GLOB_DAT,
 1.38877 ++  BFD_RELOC_SH_JMP_SLOT,
 1.38878 ++  BFD_RELOC_SH_RELATIVE,
 1.38879 ++  BFD_RELOC_SH_GOTPC,
 1.38880 ++  BFD_RELOC_SH_GOT_LOW16,
 1.38881 ++  BFD_RELOC_SH_GOT_MEDLOW16,
 1.38882 ++  BFD_RELOC_SH_GOT_MEDHI16,
 1.38883 ++  BFD_RELOC_SH_GOT_HI16,
 1.38884 ++  BFD_RELOC_SH_GOTPLT_LOW16,
 1.38885 ++  BFD_RELOC_SH_GOTPLT_MEDLOW16,
 1.38886 ++  BFD_RELOC_SH_GOTPLT_MEDHI16,
 1.38887 ++  BFD_RELOC_SH_GOTPLT_HI16,
 1.38888 ++  BFD_RELOC_SH_PLT_LOW16,
 1.38889 ++  BFD_RELOC_SH_PLT_MEDLOW16,
 1.38890 ++  BFD_RELOC_SH_PLT_MEDHI16,
 1.38891 ++  BFD_RELOC_SH_PLT_HI16,
 1.38892 ++  BFD_RELOC_SH_GOTOFF_LOW16,
 1.38893 ++  BFD_RELOC_SH_GOTOFF_MEDLOW16,
 1.38894 ++  BFD_RELOC_SH_GOTOFF_MEDHI16,
 1.38895 ++  BFD_RELOC_SH_GOTOFF_HI16,
 1.38896 ++  BFD_RELOC_SH_GOTPC_LOW16,
 1.38897 ++  BFD_RELOC_SH_GOTPC_MEDLOW16,
 1.38898 ++  BFD_RELOC_SH_GOTPC_MEDHI16,
 1.38899 ++  BFD_RELOC_SH_GOTPC_HI16,
 1.38900 ++  BFD_RELOC_SH_COPY64,
 1.38901 ++  BFD_RELOC_SH_GLOB_DAT64,
 1.38902 ++  BFD_RELOC_SH_JMP_SLOT64,
 1.38903 ++  BFD_RELOC_SH_RELATIVE64,
 1.38904 ++  BFD_RELOC_SH_GOT10BY4,
 1.38905 ++  BFD_RELOC_SH_GOT10BY8,
 1.38906 ++  BFD_RELOC_SH_GOTPLT10BY4,
 1.38907 ++  BFD_RELOC_SH_GOTPLT10BY8,
 1.38908 ++  BFD_RELOC_SH_GOTPLT32,
 1.38909 ++  BFD_RELOC_SH_SHMEDIA_CODE,
 1.38910 ++  BFD_RELOC_SH_IMMU5,
 1.38911 ++  BFD_RELOC_SH_IMMS6,
 1.38912 ++  BFD_RELOC_SH_IMMS6BY32,
 1.38913 ++  BFD_RELOC_SH_IMMU6,
 1.38914 ++  BFD_RELOC_SH_IMMS10,
 1.38915 ++  BFD_RELOC_SH_IMMS10BY2,
 1.38916 ++  BFD_RELOC_SH_IMMS10BY4,
 1.38917 ++  BFD_RELOC_SH_IMMS10BY8,
 1.38918 ++  BFD_RELOC_SH_IMMS16,
 1.38919 ++  BFD_RELOC_SH_IMMU16,
 1.38920 ++  BFD_RELOC_SH_IMM_LOW16,
 1.38921 ++  BFD_RELOC_SH_IMM_LOW16_PCREL,
 1.38922 ++  BFD_RELOC_SH_IMM_MEDLOW16,
 1.38923 ++  BFD_RELOC_SH_IMM_MEDLOW16_PCREL,
 1.38924 ++  BFD_RELOC_SH_IMM_MEDHI16,
 1.38925 ++  BFD_RELOC_SH_IMM_MEDHI16_PCREL,
 1.38926 ++  BFD_RELOC_SH_IMM_HI16,
 1.38927 ++  BFD_RELOC_SH_IMM_HI16_PCREL,
 1.38928 ++  BFD_RELOC_SH_PT_16,
 1.38929 ++  BFD_RELOC_SH_TLS_GD_32,
 1.38930 ++  BFD_RELOC_SH_TLS_LD_32,
 1.38931 ++  BFD_RELOC_SH_TLS_LDO_32,
 1.38932 ++  BFD_RELOC_SH_TLS_IE_32,
 1.38933 ++  BFD_RELOC_SH_TLS_LE_32,
 1.38934 ++  BFD_RELOC_SH_TLS_DTPMOD32,
 1.38935 ++  BFD_RELOC_SH_TLS_DTPOFF32,
 1.38936 ++  BFD_RELOC_SH_TLS_TPOFF32,
 1.38937 ++
 1.38938 ++/* ARC Cores relocs.
 1.38939 ++ARC 22 bit pc-relative branch.  The lowest two bits must be zero and are
 1.38940 ++not stored in the instruction.  The high 20 bits are installed in bits 26
 1.38941 ++through 7 of the instruction.  */
 1.38942 ++  BFD_RELOC_ARC_B22_PCREL,
 1.38943 ++
 1.38944 ++/* ARC 26 bit absolute branch.  The lowest two bits must be zero and are not
 1.38945 ++stored in the instruction.  The high 24 bits are installed in bits 23
 1.38946 ++through 0.  */
 1.38947 ++  BFD_RELOC_ARC_B26,
 1.38948 ++
 1.38949 ++/* ADI Blackfin 16 bit immediate absolute reloc.  */
 1.38950 ++  BFD_RELOC_BFIN_16_IMM,
 1.38951 ++
 1.38952 ++/* ADI Blackfin 16 bit immediate absolute reloc higher 16 bits.  */
 1.38953 ++  BFD_RELOC_BFIN_16_HIGH,
 1.38954 ++
 1.38955 ++/* ADI Blackfin 'a' part of LSETUP.  */
 1.38956 ++  BFD_RELOC_BFIN_4_PCREL,
 1.38957 ++
 1.38958 ++/* ADI Blackfin.  */
 1.38959 ++  BFD_RELOC_BFIN_5_PCREL,
 1.38960 ++
 1.38961 ++/* ADI Blackfin 16 bit immediate absolute reloc lower 16 bits.  */
 1.38962 ++  BFD_RELOC_BFIN_16_LOW,
 1.38963 ++
 1.38964 ++/* ADI Blackfin.  */
 1.38965 ++  BFD_RELOC_BFIN_10_PCREL,
 1.38966 ++
 1.38967 ++/* ADI Blackfin 'b' part of LSETUP.  */
 1.38968 ++  BFD_RELOC_BFIN_11_PCREL,
 1.38969 ++
 1.38970 ++/* ADI Blackfin.  */
 1.38971 ++  BFD_RELOC_BFIN_12_PCREL_JUMP,
 1.38972 ++
 1.38973 ++/* ADI Blackfin Short jump, pcrel.  */
 1.38974 ++  BFD_RELOC_BFIN_12_PCREL_JUMP_S,
 1.38975 ++
 1.38976 ++/* ADI Blackfin Call.x not implemented.  */
 1.38977 ++  BFD_RELOC_BFIN_24_PCREL_CALL_X,
 1.38978 ++
 1.38979 ++/* ADI Blackfin Long Jump pcrel.  */
 1.38980 ++  BFD_RELOC_BFIN_24_PCREL_JUMP_L,
 1.38981 ++
 1.38982 ++/* ADI Blackfin FD-PIC relocations.  */
 1.38983 ++  BFD_RELOC_BFIN_GOT17M4,
 1.38984 ++  BFD_RELOC_BFIN_GOTHI,
 1.38985 ++  BFD_RELOC_BFIN_GOTLO,
 1.38986 ++  BFD_RELOC_BFIN_FUNCDESC,
 1.38987 ++  BFD_RELOC_BFIN_FUNCDESC_GOT17M4,
 1.38988 ++  BFD_RELOC_BFIN_FUNCDESC_GOTHI,
 1.38989 ++  BFD_RELOC_BFIN_FUNCDESC_GOTLO,
 1.38990 ++  BFD_RELOC_BFIN_FUNCDESC_VALUE,
 1.38991 ++  BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4,
 1.38992 ++  BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI,
 1.38993 ++  BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO,
 1.38994 ++  BFD_RELOC_BFIN_GOTOFF17M4,
 1.38995 ++  BFD_RELOC_BFIN_GOTOFFHI,
 1.38996 ++  BFD_RELOC_BFIN_GOTOFFLO,
 1.38997 ++
 1.38998 ++/* ADI Blackfin GOT relocation.  */
 1.38999 ++  BFD_RELOC_BFIN_GOT,
 1.39000 ++
 1.39001 ++/* ADI Blackfin PLTPC relocation.  */
 1.39002 ++  BFD_RELOC_BFIN_PLTPC,
 1.39003 ++
 1.39004 ++/* ADI Blackfin arithmetic relocation.  */
 1.39005 ++  BFD_ARELOC_BFIN_PUSH,
 1.39006 ++
 1.39007 ++/* ADI Blackfin arithmetic relocation.  */
 1.39008 ++  BFD_ARELOC_BFIN_CONST,
 1.39009 ++
 1.39010 ++/* ADI Blackfin arithmetic relocation.  */
 1.39011 ++  BFD_ARELOC_BFIN_ADD,
 1.39012 ++
 1.39013 ++/* ADI Blackfin arithmetic relocation.  */
 1.39014 ++  BFD_ARELOC_BFIN_SUB,
 1.39015 ++
 1.39016 ++/* ADI Blackfin arithmetic relocation.  */
 1.39017 ++  BFD_ARELOC_BFIN_MULT,
 1.39018 ++
 1.39019 ++/* ADI Blackfin arithmetic relocation.  */
 1.39020 ++  BFD_ARELOC_BFIN_DIV,
 1.39021 ++
 1.39022 ++/* ADI Blackfin arithmetic relocation.  */
 1.39023 ++  BFD_ARELOC_BFIN_MOD,
 1.39024 ++
 1.39025 ++/* ADI Blackfin arithmetic relocation.  */
 1.39026 ++  BFD_ARELOC_BFIN_LSHIFT,
 1.39027 ++
 1.39028 ++/* ADI Blackfin arithmetic relocation.  */
 1.39029 ++  BFD_ARELOC_BFIN_RSHIFT,
 1.39030 ++
 1.39031 ++/* ADI Blackfin arithmetic relocation.  */
 1.39032 ++  BFD_ARELOC_BFIN_AND,
 1.39033 ++
 1.39034 ++/* ADI Blackfin arithmetic relocation.  */
 1.39035 ++  BFD_ARELOC_BFIN_OR,
 1.39036 ++
 1.39037 ++/* ADI Blackfin arithmetic relocation.  */
 1.39038 ++  BFD_ARELOC_BFIN_XOR,
 1.39039 ++
 1.39040 ++/* ADI Blackfin arithmetic relocation.  */
 1.39041 ++  BFD_ARELOC_BFIN_LAND,
 1.39042 ++
 1.39043 ++/* ADI Blackfin arithmetic relocation.  */
 1.39044 ++  BFD_ARELOC_BFIN_LOR,
 1.39045 ++
 1.39046 ++/* ADI Blackfin arithmetic relocation.  */
 1.39047 ++  BFD_ARELOC_BFIN_LEN,
 1.39048 ++
 1.39049 ++/* ADI Blackfin arithmetic relocation.  */
 1.39050 ++  BFD_ARELOC_BFIN_NEG,
 1.39051 ++
 1.39052 ++/* ADI Blackfin arithmetic relocation.  */
 1.39053 ++  BFD_ARELOC_BFIN_COMP,
 1.39054 ++
 1.39055 ++/* ADI Blackfin arithmetic relocation.  */
 1.39056 ++  BFD_ARELOC_BFIN_PAGE,
 1.39057 ++
 1.39058 ++/* ADI Blackfin arithmetic relocation.  */
 1.39059 ++  BFD_ARELOC_BFIN_HWPAGE,
 1.39060 ++
 1.39061 ++/* ADI Blackfin arithmetic relocation.  */
 1.39062 ++  BFD_ARELOC_BFIN_ADDR,
 1.39063 ++
 1.39064 ++/* Mitsubishi D10V relocs.
 1.39065 ++This is a 10-bit reloc with the right 2 bits
 1.39066 ++assumed to be 0.  */
 1.39067 ++  BFD_RELOC_D10V_10_PCREL_R,
 1.39068 ++
 1.39069 ++/* Mitsubishi D10V relocs.
 1.39070 ++This is a 10-bit reloc with the right 2 bits
 1.39071 ++assumed to be 0.  This is the same as the previous reloc
 1.39072 ++except it is in the left container, i.e.,
 1.39073 ++shifted left 15 bits.  */
 1.39074 ++  BFD_RELOC_D10V_10_PCREL_L,
 1.39075 ++
 1.39076 ++/* This is an 18-bit reloc with the right 2 bits
 1.39077 ++assumed to be 0.  */
 1.39078 ++  BFD_RELOC_D10V_18,
 1.39079 ++
 1.39080 ++/* This is an 18-bit reloc with the right 2 bits
 1.39081 ++assumed to be 0.  */
 1.39082 ++  BFD_RELOC_D10V_18_PCREL,
 1.39083 ++
 1.39084 ++/* Mitsubishi D30V relocs.
 1.39085 ++This is a 6-bit absolute reloc.  */
 1.39086 ++  BFD_RELOC_D30V_6,
 1.39087 ++
 1.39088 ++/* This is a 6-bit pc-relative reloc with
 1.39089 ++the right 3 bits assumed to be 0.  */
 1.39090 ++  BFD_RELOC_D30V_9_PCREL,
 1.39091 ++
 1.39092 ++/* This is a 6-bit pc-relative reloc with
 1.39093 ++the right 3 bits assumed to be 0. Same
 1.39094 ++as the previous reloc but on the right side
 1.39095 ++of the container.  */
 1.39096 ++  BFD_RELOC_D30V_9_PCREL_R,
 1.39097 ++
 1.39098 ++/* This is a 12-bit absolute reloc with the
 1.39099 ++right 3 bitsassumed to be 0.  */
 1.39100 ++  BFD_RELOC_D30V_15,
 1.39101 ++
 1.39102 ++/* This is a 12-bit pc-relative reloc with
 1.39103 ++the right 3 bits assumed to be 0.  */
 1.39104 ++  BFD_RELOC_D30V_15_PCREL,
 1.39105 ++
 1.39106 ++/* This is a 12-bit pc-relative reloc with
 1.39107 ++the right 3 bits assumed to be 0. Same
 1.39108 ++as the previous reloc but on the right side
 1.39109 ++of the container.  */
 1.39110 ++  BFD_RELOC_D30V_15_PCREL_R,
 1.39111 ++
 1.39112 ++/* This is an 18-bit absolute reloc with
 1.39113 ++the right 3 bits assumed to be 0.  */
 1.39114 ++  BFD_RELOC_D30V_21,
 1.39115 ++
 1.39116 ++/* This is an 18-bit pc-relative reloc with
 1.39117 ++the right 3 bits assumed to be 0.  */
 1.39118 ++  BFD_RELOC_D30V_21_PCREL,
 1.39119 ++
 1.39120 ++/* This is an 18-bit pc-relative reloc with
 1.39121 ++the right 3 bits assumed to be 0. Same
 1.39122 ++as the previous reloc but on the right side
 1.39123 ++of the container.  */
 1.39124 ++  BFD_RELOC_D30V_21_PCREL_R,
 1.39125 ++
 1.39126 ++/* This is a 32-bit absolute reloc.  */
 1.39127 ++  BFD_RELOC_D30V_32,
 1.39128 ++
 1.39129 ++/* This is a 32-bit pc-relative reloc.  */
 1.39130 ++  BFD_RELOC_D30V_32_PCREL,
 1.39131 ++
 1.39132 ++/* DLX relocs  */
 1.39133 ++  BFD_RELOC_DLX_HI16_S,
 1.39134 ++
 1.39135 ++/* DLX relocs  */
 1.39136 ++  BFD_RELOC_DLX_LO16,
 1.39137 ++
 1.39138 ++/* DLX relocs  */
 1.39139 ++  BFD_RELOC_DLX_JMP26,
 1.39140 ++
 1.39141 ++/* Renesas M16C/M32C Relocations.  */
 1.39142 ++  BFD_RELOC_M32C_HI8,
 1.39143 ++  BFD_RELOC_M32C_RL_JUMP,
 1.39144 ++  BFD_RELOC_M32C_RL_1ADDR,
 1.39145 ++  BFD_RELOC_M32C_RL_2ADDR,
 1.39146 ++
 1.39147 ++/* Renesas M32R (formerly Mitsubishi M32R) relocs.
 1.39148 ++This is a 24 bit absolute address.  */
 1.39149 ++  BFD_RELOC_M32R_24,
 1.39150 ++
 1.39151 ++/* This is a 10-bit pc-relative reloc with the right 2 bits assumed to be 0.  */
 1.39152 ++  BFD_RELOC_M32R_10_PCREL,
 1.39153 ++
 1.39154 ++/* This is an 18-bit reloc with the right 2 bits assumed to be 0.  */
 1.39155 ++  BFD_RELOC_M32R_18_PCREL,
 1.39156 ++
 1.39157 ++/* This is a 26-bit reloc with the right 2 bits assumed to be 0.  */
 1.39158 ++  BFD_RELOC_M32R_26_PCREL,
 1.39159 ++
 1.39160 ++/* This is a 16-bit reloc containing the high 16 bits of an address
 1.39161 ++used when the lower 16 bits are treated as unsigned.  */
 1.39162 ++  BFD_RELOC_M32R_HI16_ULO,
 1.39163 ++
 1.39164 ++/* This is a 16-bit reloc containing the high 16 bits of an address
 1.39165 ++used when the lower 16 bits are treated as signed.  */
 1.39166 ++  BFD_RELOC_M32R_HI16_SLO,
 1.39167 ++
 1.39168 ++/* This is a 16-bit reloc containing the lower 16 bits of an address.  */
 1.39169 ++  BFD_RELOC_M32R_LO16,
 1.39170 ++
 1.39171 ++/* This is a 16-bit reloc containing the small data area offset for use in
 1.39172 ++add3, load, and store instructions.  */
 1.39173 ++  BFD_RELOC_M32R_SDA16,
 1.39174 ++
 1.39175 ++/* For PIC.  */
 1.39176 ++  BFD_RELOC_M32R_GOT24,
 1.39177 ++  BFD_RELOC_M32R_26_PLTREL,
 1.39178 ++  BFD_RELOC_M32R_COPY,
 1.39179 ++  BFD_RELOC_M32R_GLOB_DAT,
 1.39180 ++  BFD_RELOC_M32R_JMP_SLOT,
 1.39181 ++  BFD_RELOC_M32R_RELATIVE,
 1.39182 ++  BFD_RELOC_M32R_GOTOFF,
 1.39183 ++  BFD_RELOC_M32R_GOTOFF_HI_ULO,
 1.39184 ++  BFD_RELOC_M32R_GOTOFF_HI_SLO,
 1.39185 ++  BFD_RELOC_M32R_GOTOFF_LO,
 1.39186 ++  BFD_RELOC_M32R_GOTPC24,
 1.39187 ++  BFD_RELOC_M32R_GOT16_HI_ULO,
 1.39188 ++  BFD_RELOC_M32R_GOT16_HI_SLO,
 1.39189 ++  BFD_RELOC_M32R_GOT16_LO,
 1.39190 ++  BFD_RELOC_M32R_GOTPC_HI_ULO,
 1.39191 ++  BFD_RELOC_M32R_GOTPC_HI_SLO,
 1.39192 ++  BFD_RELOC_M32R_GOTPC_LO,
 1.39193 ++
 1.39194 ++/* This is a 9-bit reloc  */
 1.39195 ++  BFD_RELOC_V850_9_PCREL,
 1.39196 ++
 1.39197 ++/* This is a 22-bit reloc  */
 1.39198 ++  BFD_RELOC_V850_22_PCREL,
 1.39199 ++
 1.39200 ++/* This is a 16 bit offset from the short data area pointer.  */
 1.39201 ++  BFD_RELOC_V850_SDA_16_16_OFFSET,
 1.39202 ++
 1.39203 ++/* This is a 16 bit offset (of which only 15 bits are used) from the
 1.39204 ++short data area pointer.  */
 1.39205 ++  BFD_RELOC_V850_SDA_15_16_OFFSET,
 1.39206 ++
 1.39207 ++/* This is a 16 bit offset from the zero data area pointer.  */
 1.39208 ++  BFD_RELOC_V850_ZDA_16_16_OFFSET,
 1.39209 ++
 1.39210 ++/* This is a 16 bit offset (of which only 15 bits are used) from the
 1.39211 ++zero data area pointer.  */
 1.39212 ++  BFD_RELOC_V850_ZDA_15_16_OFFSET,
 1.39213 ++
 1.39214 ++/* This is an 8 bit offset (of which only 6 bits are used) from the
 1.39215 ++tiny data area pointer.  */
 1.39216 ++  BFD_RELOC_V850_TDA_6_8_OFFSET,
 1.39217 ++
 1.39218 ++/* This is an 8bit offset (of which only 7 bits are used) from the tiny
 1.39219 ++data area pointer.  */
 1.39220 ++  BFD_RELOC_V850_TDA_7_8_OFFSET,
 1.39221 ++
 1.39222 ++/* This is a 7 bit offset from the tiny data area pointer.  */
 1.39223 ++  BFD_RELOC_V850_TDA_7_7_OFFSET,
 1.39224 ++
 1.39225 ++/* This is a 16 bit offset from the tiny data area pointer.  */
 1.39226 ++  BFD_RELOC_V850_TDA_16_16_OFFSET,
 1.39227 ++
 1.39228 ++/* This is a 5 bit offset (of which only 4 bits are used) from the tiny
 1.39229 ++data area pointer.  */
 1.39230 ++  BFD_RELOC_V850_TDA_4_5_OFFSET,
 1.39231 ++
 1.39232 ++/* This is a 4 bit offset from the tiny data area pointer.  */
 1.39233 ++  BFD_RELOC_V850_TDA_4_4_OFFSET,
 1.39234 ++
 1.39235 ++/* This is a 16 bit offset from the short data area pointer, with the
 1.39236 ++bits placed non-contiguously in the instruction.  */
 1.39237 ++  BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET,
 1.39238 ++
 1.39239 ++/* This is a 16 bit offset from the zero data area pointer, with the
 1.39240 ++bits placed non-contiguously in the instruction.  */
 1.39241 ++  BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET,
 1.39242 ++
 1.39243 ++/* This is a 6 bit offset from the call table base pointer.  */
 1.39244 ++  BFD_RELOC_V850_CALLT_6_7_OFFSET,
 1.39245 ++
 1.39246 ++/* This is a 16 bit offset from the call table base pointer.  */
 1.39247 ++  BFD_RELOC_V850_CALLT_16_16_OFFSET,
 1.39248 ++
 1.39249 ++/* Used for relaxing indirect function calls.  */
 1.39250 ++  BFD_RELOC_V850_LONGCALL,
 1.39251 ++
 1.39252 ++/* Used for relaxing indirect jumps.  */
 1.39253 ++  BFD_RELOC_V850_LONGJUMP,
 1.39254 ++
 1.39255 ++/* Used to maintain alignment whilst relaxing.  */
 1.39256 ++  BFD_RELOC_V850_ALIGN,
 1.39257 ++
 1.39258 ++/* This is a variation of BFD_RELOC_LO16 that can be used in v850e ld.bu
 1.39259 ++instructions.  */
 1.39260 ++  BFD_RELOC_V850_LO16_SPLIT_OFFSET,
 1.39261 ++
 1.39262 ++/* This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the
 1.39263 ++instruction.  */
 1.39264 ++  BFD_RELOC_MN10300_32_PCREL,
 1.39265 ++
 1.39266 ++/* This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the
 1.39267 ++instruction.  */
 1.39268 ++  BFD_RELOC_MN10300_16_PCREL,
 1.39269 ++
 1.39270 ++/* This is a 8bit DP reloc for the tms320c30, where the most
 1.39271 ++significant 8 bits of a 24 bit word are placed into the least
 1.39272 ++significant 8 bits of the opcode.  */
 1.39273 ++  BFD_RELOC_TIC30_LDP,
 1.39274 ++
 1.39275 ++/* This is a 7bit reloc for the tms320c54x, where the least
 1.39276 ++significant 7 bits of a 16 bit word are placed into the least
 1.39277 ++significant 7 bits of the opcode.  */
 1.39278 ++  BFD_RELOC_TIC54X_PARTLS7,
 1.39279 ++
 1.39280 ++/* This is a 9bit DP reloc for the tms320c54x, where the most
 1.39281 ++significant 9 bits of a 16 bit word are placed into the least
 1.39282 ++significant 9 bits of the opcode.  */
 1.39283 ++  BFD_RELOC_TIC54X_PARTMS9,
 1.39284 ++
 1.39285 ++/* This is an extended address 23-bit reloc for the tms320c54x.  */
 1.39286 ++  BFD_RELOC_TIC54X_23,
 1.39287 ++
 1.39288 ++/* This is a 16-bit reloc for the tms320c54x, where the least
 1.39289 ++significant 16 bits of a 23-bit extended address are placed into
 1.39290 ++the opcode.  */
 1.39291 ++  BFD_RELOC_TIC54X_16_OF_23,
 1.39292 ++
 1.39293 ++/* This is a reloc for the tms320c54x, where the most
 1.39294 ++significant 7 bits of a 23-bit extended address are placed into
 1.39295 ++the opcode.  */
 1.39296 ++  BFD_RELOC_TIC54X_MS7_OF_23,
 1.39297 ++
 1.39298 ++/* This is a 48 bit reloc for the FR30 that stores 32 bits.  */
 1.39299 ++  BFD_RELOC_FR30_48,
 1.39300 ++
 1.39301 ++/* This is a 32 bit reloc for the FR30 that stores 20 bits split up into
 1.39302 ++two sections.  */
 1.39303 ++  BFD_RELOC_FR30_20,
 1.39304 ++
 1.39305 ++/* This is a 16 bit reloc for the FR30 that stores a 6 bit word offset in
 1.39306 ++4 bits.  */
 1.39307 ++  BFD_RELOC_FR30_6_IN_4,
 1.39308 ++
 1.39309 ++/* This is a 16 bit reloc for the FR30 that stores an 8 bit byte offset
 1.39310 ++into 8 bits.  */
 1.39311 ++  BFD_RELOC_FR30_8_IN_8,
 1.39312 ++
 1.39313 ++/* This is a 16 bit reloc for the FR30 that stores a 9 bit short offset
 1.39314 ++into 8 bits.  */
 1.39315 ++  BFD_RELOC_FR30_9_IN_8,
 1.39316 ++
 1.39317 ++/* This is a 16 bit reloc for the FR30 that stores a 10 bit word offset
 1.39318 ++into 8 bits.  */
 1.39319 ++  BFD_RELOC_FR30_10_IN_8,
 1.39320 ++
 1.39321 ++/* This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
 1.39322 ++short offset into 8 bits.  */
 1.39323 ++  BFD_RELOC_FR30_9_PCREL,
 1.39324 ++
 1.39325 ++/* This is a 16 bit reloc for the FR30 that stores a 12 bit pc relative
 1.39326 ++short offset into 11 bits.  */
 1.39327 ++  BFD_RELOC_FR30_12_PCREL,
 1.39328 ++
 1.39329 ++/* Motorola Mcore relocations.  */
 1.39330 ++  BFD_RELOC_MCORE_PCREL_IMM8BY4,
 1.39331 ++  BFD_RELOC_MCORE_PCREL_IMM11BY2,
 1.39332 ++  BFD_RELOC_MCORE_PCREL_IMM4BY2,
 1.39333 ++  BFD_RELOC_MCORE_PCREL_32,
 1.39334 ++  BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2,
 1.39335 ++  BFD_RELOC_MCORE_RVA,
 1.39336 ++
 1.39337 ++/* Toshiba Media Processor Relocations.  */
 1.39338 ++  BFD_RELOC_MEP_8,
 1.39339 ++  BFD_RELOC_MEP_16,
 1.39340 ++  BFD_RELOC_MEP_32,
 1.39341 ++  BFD_RELOC_MEP_PCREL8A2,
 1.39342 ++  BFD_RELOC_MEP_PCREL12A2,
 1.39343 ++  BFD_RELOC_MEP_PCREL17A2,
 1.39344 ++  BFD_RELOC_MEP_PCREL24A2,
 1.39345 ++  BFD_RELOC_MEP_PCABS24A2,
 1.39346 ++  BFD_RELOC_MEP_LOW16,
 1.39347 ++  BFD_RELOC_MEP_HI16U,
 1.39348 ++  BFD_RELOC_MEP_HI16S,
 1.39349 ++  BFD_RELOC_MEP_GPREL,
 1.39350 ++  BFD_RELOC_MEP_TPREL,
 1.39351 ++  BFD_RELOC_MEP_TPREL7,
 1.39352 ++  BFD_RELOC_MEP_TPREL7A2,
 1.39353 ++  BFD_RELOC_MEP_TPREL7A4,
 1.39354 ++  BFD_RELOC_MEP_UIMM24,
 1.39355 ++  BFD_RELOC_MEP_ADDR24A4,
 1.39356 ++  BFD_RELOC_MEP_GNU_VTINHERIT,
 1.39357 ++  BFD_RELOC_MEP_GNU_VTENTRY,
 1.39358 ++
 1.39359 ++
 1.39360 ++/* These are relocations for the GETA instruction.  */
 1.39361 ++  BFD_RELOC_MMIX_GETA,
 1.39362 ++  BFD_RELOC_MMIX_GETA_1,
 1.39363 ++  BFD_RELOC_MMIX_GETA_2,
 1.39364 ++  BFD_RELOC_MMIX_GETA_3,
 1.39365 ++
 1.39366 ++/* These are relocations for a conditional branch instruction.  */
 1.39367 ++  BFD_RELOC_MMIX_CBRANCH,
 1.39368 ++  BFD_RELOC_MMIX_CBRANCH_J,
 1.39369 ++  BFD_RELOC_MMIX_CBRANCH_1,
 1.39370 ++  BFD_RELOC_MMIX_CBRANCH_2,
 1.39371 ++  BFD_RELOC_MMIX_CBRANCH_3,
 1.39372 ++
 1.39373 ++/* These are relocations for the PUSHJ instruction.  */
 1.39374 ++  BFD_RELOC_MMIX_PUSHJ,
 1.39375 ++  BFD_RELOC_MMIX_PUSHJ_1,
 1.39376 ++  BFD_RELOC_MMIX_PUSHJ_2,
 1.39377 ++  BFD_RELOC_MMIX_PUSHJ_3,
 1.39378 ++  BFD_RELOC_MMIX_PUSHJ_STUBBABLE,
 1.39379 ++
 1.39380 ++/* These are relocations for the JMP instruction.  */
 1.39381 ++  BFD_RELOC_MMIX_JMP,
 1.39382 ++  BFD_RELOC_MMIX_JMP_1,
 1.39383 ++  BFD_RELOC_MMIX_JMP_2,
 1.39384 ++  BFD_RELOC_MMIX_JMP_3,
 1.39385 ++
 1.39386 ++/* This is a relocation for a relative address as in a GETA instruction or
 1.39387 ++a branch.  */
 1.39388 ++  BFD_RELOC_MMIX_ADDR19,
 1.39389 ++
 1.39390 ++/* This is a relocation for a relative address as in a JMP instruction.  */
 1.39391 ++  BFD_RELOC_MMIX_ADDR27,
 1.39392 ++
 1.39393 ++/* This is a relocation for an instruction field that may be a general
 1.39394 ++register or a value 0..255.  */
 1.39395 ++  BFD_RELOC_MMIX_REG_OR_BYTE,
 1.39396 ++
 1.39397 ++/* This is a relocation for an instruction field that may be a general
 1.39398 ++register.  */
 1.39399 ++  BFD_RELOC_MMIX_REG,
 1.39400 ++
 1.39401 ++/* This is a relocation for two instruction fields holding a register and
 1.39402 ++an offset, the equivalent of the relocation.  */
 1.39403 ++  BFD_RELOC_MMIX_BASE_PLUS_OFFSET,
 1.39404 ++
 1.39405 ++/* This relocation is an assertion that the expression is not allocated as
 1.39406 ++a global register.  It does not modify contents.  */
 1.39407 ++  BFD_RELOC_MMIX_LOCAL,
 1.39408 ++
 1.39409 ++/* This is a 16 bit reloc for the AVR that stores 8 bit pc relative
 1.39410 ++short offset into 7 bits.  */
 1.39411 ++  BFD_RELOC_AVR_7_PCREL,
 1.39412 ++
 1.39413 ++/* This is a 16 bit reloc for the AVR that stores 13 bit pc relative
 1.39414 ++short offset into 12 bits.  */
 1.39415 ++  BFD_RELOC_AVR_13_PCREL,
 1.39416 ++
 1.39417 ++/* This is a 16 bit reloc for the AVR that stores 17 bit value (usually
 1.39418 ++program memory address) into 16 bits.  */
 1.39419 ++  BFD_RELOC_AVR_16_PM,
 1.39420 ++
 1.39421 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (usually
 1.39422 ++data memory address) into 8 bit immediate value of LDI insn.  */
 1.39423 ++  BFD_RELOC_AVR_LO8_LDI,
 1.39424 ++
 1.39425 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
 1.39426 ++of data memory address) into 8 bit immediate value of LDI insn.  */
 1.39427 ++  BFD_RELOC_AVR_HI8_LDI,
 1.39428 ++
 1.39429 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
 1.39430 ++of program memory address) into 8 bit immediate value of LDI insn.  */
 1.39431 ++  BFD_RELOC_AVR_HH8_LDI,
 1.39432 ++
 1.39433 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
 1.39434 ++of 32 bit value) into 8 bit immediate value of LDI insn.  */
 1.39435 ++  BFD_RELOC_AVR_MS8_LDI,
 1.39436 ++
 1.39437 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 1.39438 ++(usually data memory address) into 8 bit immediate value of SUBI insn.  */
 1.39439 ++  BFD_RELOC_AVR_LO8_LDI_NEG,
 1.39440 ++
 1.39441 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 1.39442 ++(high 8 bit of data memory address) into 8 bit immediate value of
 1.39443 ++SUBI insn.  */
 1.39444 ++  BFD_RELOC_AVR_HI8_LDI_NEG,
 1.39445 ++
 1.39446 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 1.39447 ++(most high 8 bit of program memory address) into 8 bit immediate value
 1.39448 ++of LDI or SUBI insn.  */
 1.39449 ++  BFD_RELOC_AVR_HH8_LDI_NEG,
 1.39450 ++
 1.39451 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value (msb
 1.39452 ++of 32 bit value) into 8 bit immediate value of LDI insn.  */
 1.39453 ++  BFD_RELOC_AVR_MS8_LDI_NEG,
 1.39454 ++
 1.39455 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (usually
 1.39456 ++command address) into 8 bit immediate value of LDI insn.  */
 1.39457 ++  BFD_RELOC_AVR_LO8_LDI_PM,
 1.39458 ++
 1.39459 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value 
 1.39460 ++(command address) into 8 bit immediate value of LDI insn. If the address
 1.39461 ++is beyond the 128k boundary, the linker inserts a jump stub for this reloc
 1.39462 ++in the lower 128k.  */
 1.39463 ++  BFD_RELOC_AVR_LO8_LDI_GS,
 1.39464 ++
 1.39465 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
 1.39466 ++of command address) into 8 bit immediate value of LDI insn.  */
 1.39467 ++  BFD_RELOC_AVR_HI8_LDI_PM,
 1.39468 ++
 1.39469 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
 1.39470 ++of command address) into 8 bit immediate value of LDI insn.  If the address
 1.39471 ++is beyond the 128k boundary, the linker inserts a jump stub for this reloc
 1.39472 ++below 128k.  */
 1.39473 ++  BFD_RELOC_AVR_HI8_LDI_GS,
 1.39474 ++
 1.39475 ++/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
 1.39476 ++of command address) into 8 bit immediate value of LDI insn.  */
 1.39477 ++  BFD_RELOC_AVR_HH8_LDI_PM,
 1.39478 ++
 1.39479 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 1.39480 ++(usually command address) into 8 bit immediate value of SUBI insn.  */
 1.39481 ++  BFD_RELOC_AVR_LO8_LDI_PM_NEG,
 1.39482 ++
 1.39483 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 1.39484 ++(high 8 bit of 16 bit command address) into 8 bit immediate value
 1.39485 ++of SUBI insn.  */
 1.39486 ++  BFD_RELOC_AVR_HI8_LDI_PM_NEG,
 1.39487 ++
 1.39488 ++/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
 1.39489 ++(high 6 bit of 22 bit command address) into 8 bit immediate
 1.39490 ++value of SUBI insn.  */
 1.39491 ++  BFD_RELOC_AVR_HH8_LDI_PM_NEG,
 1.39492 ++
 1.39493 ++/* This is a 32 bit reloc for the AVR that stores 23 bit value
 1.39494 ++into 22 bits.  */
 1.39495 ++  BFD_RELOC_AVR_CALL,
 1.39496 ++
 1.39497 ++/* This is a 16 bit reloc for the AVR that stores all needed bits
 1.39498 ++for absolute addressing with ldi with overflow check to linktime  */
 1.39499 ++  BFD_RELOC_AVR_LDI,
 1.39500 ++
 1.39501 ++/* This is a 6 bit reloc for the AVR that stores offset for ldd/std
 1.39502 ++instructions  */
 1.39503 ++  BFD_RELOC_AVR_6,
 1.39504 ++
 1.39505 ++/* This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
 1.39506 ++instructions  */
 1.39507 ++  BFD_RELOC_AVR_6_ADIW,
 1.39508 ++
 1.39509 ++/* Difference between two labels: L2 - L1. The value of L1 is encoded
 1.39510 ++as sym + addend, while the initial difference after assembly is
 1.39511 ++inserted into the object file by the assembler.  */
 1.39512 ++  BFD_RELOC_AVR32_DIFF32,
 1.39513 ++  BFD_RELOC_AVR32_DIFF16,
 1.39514 ++  BFD_RELOC_AVR32_DIFF8,
 1.39515 ++
 1.39516 ++/* Reference to a symbol through the Global Offset Table. The linker
 1.39517 ++will allocate an entry for symbol in the GOT and insert the offset
 1.39518 ++of this entry as the relocation value.  */
 1.39519 ++  BFD_RELOC_AVR32_GOT32,
 1.39520 ++  BFD_RELOC_AVR32_GOT16,
 1.39521 ++  BFD_RELOC_AVR32_GOT8,
 1.39522 ++
 1.39523 ++/* Normal (non-pc-relative) code relocations. Alignment and signedness
 1.39524 ++is indicated by the suffixes. S means signed, U means unsigned. W
 1.39525 ++means word-aligned, H means halfword-aligned, neither means
 1.39526 ++byte-aligned (no alignment.) SUB5 is the same relocation as 16S.  */
 1.39527 ++  BFD_RELOC_AVR32_21S,
 1.39528 ++  BFD_RELOC_AVR32_16U,
 1.39529 ++  BFD_RELOC_AVR32_16S,
 1.39530 ++  BFD_RELOC_AVR32_SUB5,
 1.39531 ++  BFD_RELOC_AVR32_8S_EXT,
 1.39532 ++  BFD_RELOC_AVR32_8S,
 1.39533 ++  BFD_RELOC_AVR32_15S,
 1.39534 ++
 1.39535 ++/* PC-relative relocations are signed if neither 'U' nor 'S' is
 1.39536 ++specified. However, we explicitly tack on a 'B' to indicate no
 1.39537 ++alignment, to avoid confusion with data relocs. All of these resolve
 1.39538 ++to sym + addend - offset, except the one with 'N' (negated) suffix.
 1.39539 ++This particular one resolves to offset - sym - addend.  */
 1.39540 ++  BFD_RELOC_AVR32_22H_PCREL,
 1.39541 ++  BFD_RELOC_AVR32_18W_PCREL,
 1.39542 ++  BFD_RELOC_AVR32_16B_PCREL,
 1.39543 ++  BFD_RELOC_AVR32_16N_PCREL,
 1.39544 ++  BFD_RELOC_AVR32_14UW_PCREL,
 1.39545 ++  BFD_RELOC_AVR32_11H_PCREL,
 1.39546 ++  BFD_RELOC_AVR32_10UW_PCREL,
 1.39547 ++  BFD_RELOC_AVR32_9H_PCREL,
 1.39548 ++  BFD_RELOC_AVR32_9UW_PCREL,
 1.39549 ++
 1.39550 ++/* Subtract the link-time address of the GOT from (symbol + addend)
 1.39551 ++and insert the result.  */
 1.39552 ++  BFD_RELOC_AVR32_GOTPC,
 1.39553 ++
 1.39554 ++/* Reference to a symbol through the GOT. The linker will allocate an
 1.39555 ++entry for symbol in the GOT and insert the offset of this entry as
 1.39556 ++the relocation value. addend must be zero. As usual, 'S' means
 1.39557 ++signed, 'W' means word-aligned, etc.  */
 1.39558 ++  BFD_RELOC_AVR32_GOTCALL,
 1.39559 ++  BFD_RELOC_AVR32_LDA_GOT,
 1.39560 ++  BFD_RELOC_AVR32_GOT21S,
 1.39561 ++  BFD_RELOC_AVR32_GOT18SW,
 1.39562 ++  BFD_RELOC_AVR32_GOT16S,
 1.39563 ++
 1.39564 ++/* 32-bit constant pool entry. I don't think 8- and 16-bit entries make
 1.39565 ++a whole lot of sense.  */
 1.39566 ++  BFD_RELOC_AVR32_32_CPENT,
 1.39567 ++
 1.39568 ++/* Constant pool references. Some of these relocations are signed,
 1.39569 ++others are unsigned. It doesn't really matter, since the constant
 1.39570 ++pool always comes after the code that references it.  */
 1.39571 ++  BFD_RELOC_AVR32_CPCALL,
 1.39572 ++  BFD_RELOC_AVR32_16_CP,
 1.39573 ++  BFD_RELOC_AVR32_9W_CP,
 1.39574 ++
 1.39575 ++/* sym must be the absolute symbol. The addend specifies the alignment
 1.39576 ++order, e.g. if addend is 2, the linker must add padding so that the
 1.39577 ++next address is aligned to a 4-byte boundary.  */
 1.39578 ++  BFD_RELOC_AVR32_ALIGN,
 1.39579 ++
 1.39580 ++/* Code relocations that will never make it to the output file.  */
 1.39581 ++  BFD_RELOC_AVR32_14UW,
 1.39582 ++  BFD_RELOC_AVR32_10UW,
 1.39583 ++  BFD_RELOC_AVR32_10SW,
 1.39584 ++  BFD_RELOC_AVR32_STHH_W,
 1.39585 ++  BFD_RELOC_AVR32_7UW,
 1.39586 ++  BFD_RELOC_AVR32_6S,
 1.39587 ++  BFD_RELOC_AVR32_6UW,
 1.39588 ++  BFD_RELOC_AVR32_4UH,
 1.39589 ++  BFD_RELOC_AVR32_3U,
 1.39590 ++
 1.39591 ++/* Direct 12 bit.  */
 1.39592 ++  BFD_RELOC_390_12,
 1.39593 ++
 1.39594 ++/* 12 bit GOT offset.  */
 1.39595 ++  BFD_RELOC_390_GOT12,
 1.39596 ++
 1.39597 ++/* 32 bit PC relative PLT address.  */
 1.39598 ++  BFD_RELOC_390_PLT32,
 1.39599 ++
 1.39600 ++/* Copy symbol at runtime.  */
 1.39601 ++  BFD_RELOC_390_COPY,
 1.39602 ++
 1.39603 ++/* Create GOT entry.  */
 1.39604 ++  BFD_RELOC_390_GLOB_DAT,
 1.39605 ++
 1.39606 ++/* Create PLT entry.  */
 1.39607 ++  BFD_RELOC_390_JMP_SLOT,
 1.39608 ++
 1.39609 ++/* Adjust by program base.  */
 1.39610 ++  BFD_RELOC_390_RELATIVE,
 1.39611 ++
 1.39612 ++/* 32 bit PC relative offset to GOT.  */
 1.39613 ++  BFD_RELOC_390_GOTPC,
 1.39614 ++
 1.39615 ++/* 16 bit GOT offset.  */
 1.39616 ++  BFD_RELOC_390_GOT16,
 1.39617 ++
 1.39618 ++/* PC relative 16 bit shifted by 1.  */
 1.39619 ++  BFD_RELOC_390_PC16DBL,
 1.39620 ++
 1.39621 ++/* 16 bit PC rel. PLT shifted by 1.  */
 1.39622 ++  BFD_RELOC_390_PLT16DBL,
 1.39623 ++
 1.39624 ++/* PC relative 32 bit shifted by 1.  */
 1.39625 ++  BFD_RELOC_390_PC32DBL,
 1.39626 ++
 1.39627 ++/* 32 bit PC rel. PLT shifted by 1.  */
 1.39628 ++  BFD_RELOC_390_PLT32DBL,
 1.39629 ++
 1.39630 ++/* 32 bit PC rel. GOT shifted by 1.  */
 1.39631 ++  BFD_RELOC_390_GOTPCDBL,
 1.39632 ++
 1.39633 ++/* 64 bit GOT offset.  */
 1.39634 ++  BFD_RELOC_390_GOT64,
 1.39635 ++
 1.39636 ++/* 64 bit PC relative PLT address.  */
 1.39637 ++  BFD_RELOC_390_PLT64,
 1.39638 ++
 1.39639 ++/* 32 bit rel. offset to GOT entry.  */
 1.39640 ++  BFD_RELOC_390_GOTENT,
 1.39641 ++
 1.39642 ++/* 64 bit offset to GOT.  */
 1.39643 ++  BFD_RELOC_390_GOTOFF64,
 1.39644 ++
 1.39645 ++/* 12-bit offset to symbol-entry within GOT, with PLT handling.  */
 1.39646 ++  BFD_RELOC_390_GOTPLT12,
 1.39647 ++
 1.39648 ++/* 16-bit offset to symbol-entry within GOT, with PLT handling.  */
 1.39649 ++  BFD_RELOC_390_GOTPLT16,
 1.39650 ++
 1.39651 ++/* 32-bit offset to symbol-entry within GOT, with PLT handling.  */
 1.39652 ++  BFD_RELOC_390_GOTPLT32,
 1.39653 ++
 1.39654 ++/* 64-bit offset to symbol-entry within GOT, with PLT handling.  */
 1.39655 ++  BFD_RELOC_390_GOTPLT64,
 1.39656 ++
 1.39657 ++/* 32-bit rel. offset to symbol-entry within GOT, with PLT handling.  */
 1.39658 ++  BFD_RELOC_390_GOTPLTENT,
 1.39659 ++
 1.39660 ++/* 16-bit rel. offset from the GOT to a PLT entry.  */
 1.39661 ++  BFD_RELOC_390_PLTOFF16,
 1.39662 ++
 1.39663 ++/* 32-bit rel. offset from the GOT to a PLT entry.  */
 1.39664 ++  BFD_RELOC_390_PLTOFF32,
 1.39665 ++
 1.39666 ++/* 64-bit rel. offset from the GOT to a PLT entry.  */
 1.39667 ++  BFD_RELOC_390_PLTOFF64,
 1.39668 ++
 1.39669 ++/* s390 tls relocations.  */
 1.39670 ++  BFD_RELOC_390_TLS_LOAD,
 1.39671 ++  BFD_RELOC_390_TLS_GDCALL,
 1.39672 ++  BFD_RELOC_390_TLS_LDCALL,
 1.39673 ++  BFD_RELOC_390_TLS_GD32,
 1.39674 ++  BFD_RELOC_390_TLS_GD64,
 1.39675 ++  BFD_RELOC_390_TLS_GOTIE12,
 1.39676 ++  BFD_RELOC_390_TLS_GOTIE32,
 1.39677 ++  BFD_RELOC_390_TLS_GOTIE64,
 1.39678 ++  BFD_RELOC_390_TLS_LDM32,
 1.39679 ++  BFD_RELOC_390_TLS_LDM64,
 1.39680 ++  BFD_RELOC_390_TLS_IE32,
 1.39681 ++  BFD_RELOC_390_TLS_IE64,
 1.39682 ++  BFD_RELOC_390_TLS_IEENT,
 1.39683 ++  BFD_RELOC_390_TLS_LE32,
 1.39684 ++  BFD_RELOC_390_TLS_LE64,
 1.39685 ++  BFD_RELOC_390_TLS_LDO32,
 1.39686 ++  BFD_RELOC_390_TLS_LDO64,
 1.39687 ++  BFD_RELOC_390_TLS_DTPMOD,
 1.39688 ++  BFD_RELOC_390_TLS_DTPOFF,
 1.39689 ++  BFD_RELOC_390_TLS_TPOFF,
 1.39690 ++
 1.39691 ++/* Long displacement extension.  */
 1.39692 ++  BFD_RELOC_390_20,
 1.39693 ++  BFD_RELOC_390_GOT20,
 1.39694 ++  BFD_RELOC_390_GOTPLT20,
 1.39695 ++  BFD_RELOC_390_TLS_GOTIE20,
 1.39696 ++
 1.39697 ++/* Score relocations  */
 1.39698 ++  BFD_RELOC_SCORE_DUMMY1,
 1.39699 ++
 1.39700 ++/* Low 16 bit for load/store  */
 1.39701 ++  BFD_RELOC_SCORE_GPREL15,
 1.39702 ++
 1.39703 ++/* This is a 24-bit reloc with the right 1 bit assumed to be 0  */
 1.39704 ++  BFD_RELOC_SCORE_DUMMY2,
 1.39705 ++  BFD_RELOC_SCORE_JMP,
 1.39706 ++
 1.39707 ++/* This is a 19-bit reloc with the right 1 bit assumed to be 0  */
 1.39708 ++  BFD_RELOC_SCORE_BRANCH,
 1.39709 ++
 1.39710 ++/* This is a 11-bit reloc with the right 1 bit assumed to be 0  */
 1.39711 ++  BFD_RELOC_SCORE16_JMP,
 1.39712 ++
 1.39713 ++/* This is a 8-bit reloc with the right 1 bit assumed to be 0  */
 1.39714 ++  BFD_RELOC_SCORE16_BRANCH,
 1.39715 ++
 1.39716 ++/* Undocumented Score relocs  */
 1.39717 ++  BFD_RELOC_SCORE_GOT15,
 1.39718 ++  BFD_RELOC_SCORE_GOT_LO16,
 1.39719 ++  BFD_RELOC_SCORE_CALL15,
 1.39720 ++  BFD_RELOC_SCORE_DUMMY_HI16,
 1.39721 ++
 1.39722 ++/* Scenix IP2K - 9-bit register number / data address  */
 1.39723 ++  BFD_RELOC_IP2K_FR9,
 1.39724 ++
 1.39725 ++/* Scenix IP2K - 4-bit register/data bank number  */
 1.39726 ++  BFD_RELOC_IP2K_BANK,
 1.39727 ++
 1.39728 ++/* Scenix IP2K - low 13 bits of instruction word address  */
 1.39729 ++  BFD_RELOC_IP2K_ADDR16CJP,
 1.39730 ++
 1.39731 ++/* Scenix IP2K - high 3 bits of instruction word address  */
 1.39732 ++  BFD_RELOC_IP2K_PAGE3,
 1.39733 ++
 1.39734 ++/* Scenix IP2K - ext/low/high 8 bits of data address  */
 1.39735 ++  BFD_RELOC_IP2K_LO8DATA,
 1.39736 ++  BFD_RELOC_IP2K_HI8DATA,
 1.39737 ++  BFD_RELOC_IP2K_EX8DATA,
 1.39738 ++
 1.39739 ++/* Scenix IP2K - low/high 8 bits of instruction word address  */
 1.39740 ++  BFD_RELOC_IP2K_LO8INSN,
 1.39741 ++  BFD_RELOC_IP2K_HI8INSN,
 1.39742 ++
 1.39743 ++/* Scenix IP2K - even/odd PC modifier to modify snb pcl.0  */
 1.39744 ++  BFD_RELOC_IP2K_PC_SKIP,
 1.39745 ++
 1.39746 ++/* Scenix IP2K - 16 bit word address in text section.  */
 1.39747 ++  BFD_RELOC_IP2K_TEXT,
 1.39748 ++
 1.39749 ++/* Scenix IP2K - 7-bit sp or dp offset  */
 1.39750 ++  BFD_RELOC_IP2K_FR_OFFSET,
 1.39751 ++
 1.39752 ++/* Scenix VPE4K coprocessor - data/insn-space addressing  */
 1.39753 ++  BFD_RELOC_VPE4KMATH_DATA,
 1.39754 ++  BFD_RELOC_VPE4KMATH_INSN,
 1.39755 ++
 1.39756 ++/* These two relocations are used by the linker to determine which of
 1.39757 ++the entries in a C++ virtual function table are actually used.  When
 1.39758 ++the --gc-sections option is given, the linker will zero out the entries
 1.39759 ++that are not used, so that the code for those functions need not be
 1.39760 ++included in the output.
 1.39761 ++
 1.39762 ++VTABLE_INHERIT is a zero-space relocation used to describe to the
 1.39763 ++linker the inheritance tree of a C++ virtual function table.  The
 1.39764 ++relocation's symbol should be the parent class' vtable, and the
 1.39765 ++relocation should be located at the child vtable.
 1.39766 ++
 1.39767 ++VTABLE_ENTRY is a zero-space relocation that describes the use of a
 1.39768 ++virtual function table entry.  The reloc's symbol should refer to the
 1.39769 ++table of the class mentioned in the code.  Off of that base, an offset
 1.39770 ++describes the entry that is being used.  For Rela hosts, this offset
 1.39771 ++is stored in the reloc's addend.  For Rel hosts, we are forced to put
 1.39772 ++this offset in the reloc's section offset.  */
 1.39773 ++  BFD_RELOC_VTABLE_INHERIT,
 1.39774 ++  BFD_RELOC_VTABLE_ENTRY,
 1.39775 ++
 1.39776 ++/* Intel IA64 Relocations.  */
 1.39777 ++  BFD_RELOC_IA64_IMM14,
 1.39778 ++  BFD_RELOC_IA64_IMM22,
 1.39779 ++  BFD_RELOC_IA64_IMM64,
 1.39780 ++  BFD_RELOC_IA64_DIR32MSB,
 1.39781 ++  BFD_RELOC_IA64_DIR32LSB,
 1.39782 ++  BFD_RELOC_IA64_DIR64MSB,
 1.39783 ++  BFD_RELOC_IA64_DIR64LSB,
 1.39784 ++  BFD_RELOC_IA64_GPREL22,
 1.39785 ++  BFD_RELOC_IA64_GPREL64I,
 1.39786 ++  BFD_RELOC_IA64_GPREL32MSB,
 1.39787 ++  BFD_RELOC_IA64_GPREL32LSB,
 1.39788 ++  BFD_RELOC_IA64_GPREL64MSB,
 1.39789 ++  BFD_RELOC_IA64_GPREL64LSB,
 1.39790 ++  BFD_RELOC_IA64_LTOFF22,
 1.39791 ++  BFD_RELOC_IA64_LTOFF64I,
 1.39792 ++  BFD_RELOC_IA64_PLTOFF22,
 1.39793 ++  BFD_RELOC_IA64_PLTOFF64I,
 1.39794 ++  BFD_RELOC_IA64_PLTOFF64MSB,
 1.39795 ++  BFD_RELOC_IA64_PLTOFF64LSB,
 1.39796 ++  BFD_RELOC_IA64_FPTR64I,
 1.39797 ++  BFD_RELOC_IA64_FPTR32MSB,
 1.39798 ++  BFD_RELOC_IA64_FPTR32LSB,
 1.39799 ++  BFD_RELOC_IA64_FPTR64MSB,
 1.39800 ++  BFD_RELOC_IA64_FPTR64LSB,
 1.39801 ++  BFD_RELOC_IA64_PCREL21B,
 1.39802 ++  BFD_RELOC_IA64_PCREL21BI,
 1.39803 ++  BFD_RELOC_IA64_PCREL21M,
 1.39804 ++  BFD_RELOC_IA64_PCREL21F,
 1.39805 ++  BFD_RELOC_IA64_PCREL22,
 1.39806 ++  BFD_RELOC_IA64_PCREL60B,
 1.39807 ++  BFD_RELOC_IA64_PCREL64I,
 1.39808 ++  BFD_RELOC_IA64_PCREL32MSB,
 1.39809 ++  BFD_RELOC_IA64_PCREL32LSB,
 1.39810 ++  BFD_RELOC_IA64_PCREL64MSB,
 1.39811 ++  BFD_RELOC_IA64_PCREL64LSB,
 1.39812 ++  BFD_RELOC_IA64_LTOFF_FPTR22,
 1.39813 ++  BFD_RELOC_IA64_LTOFF_FPTR64I,
 1.39814 ++  BFD_RELOC_IA64_LTOFF_FPTR32MSB,
 1.39815 ++  BFD_RELOC_IA64_LTOFF_FPTR32LSB,
 1.39816 ++  BFD_RELOC_IA64_LTOFF_FPTR64MSB,
 1.39817 ++  BFD_RELOC_IA64_LTOFF_FPTR64LSB,
 1.39818 ++  BFD_RELOC_IA64_SEGREL32MSB,
 1.39819 ++  BFD_RELOC_IA64_SEGREL32LSB,
 1.39820 ++  BFD_RELOC_IA64_SEGREL64MSB,
 1.39821 ++  BFD_RELOC_IA64_SEGREL64LSB,
 1.39822 ++  BFD_RELOC_IA64_SECREL32MSB,
 1.39823 ++  BFD_RELOC_IA64_SECREL32LSB,
 1.39824 ++  BFD_RELOC_IA64_SECREL64MSB,
 1.39825 ++  BFD_RELOC_IA64_SECREL64LSB,
 1.39826 ++  BFD_RELOC_IA64_REL32MSB,
 1.39827 ++  BFD_RELOC_IA64_REL32LSB,
 1.39828 ++  BFD_RELOC_IA64_REL64MSB,
 1.39829 ++  BFD_RELOC_IA64_REL64LSB,
 1.39830 ++  BFD_RELOC_IA64_LTV32MSB,
 1.39831 ++  BFD_RELOC_IA64_LTV32LSB,
 1.39832 ++  BFD_RELOC_IA64_LTV64MSB,
 1.39833 ++  BFD_RELOC_IA64_LTV64LSB,
 1.39834 ++  BFD_RELOC_IA64_IPLTMSB,
 1.39835 ++  BFD_RELOC_IA64_IPLTLSB,
 1.39836 ++  BFD_RELOC_IA64_COPY,
 1.39837 ++  BFD_RELOC_IA64_LTOFF22X,
 1.39838 ++  BFD_RELOC_IA64_LDXMOV,
 1.39839 ++  BFD_RELOC_IA64_TPREL14,
 1.39840 ++  BFD_RELOC_IA64_TPREL22,
 1.39841 ++  BFD_RELOC_IA64_TPREL64I,
 1.39842 ++  BFD_RELOC_IA64_TPREL64MSB,
 1.39843 ++  BFD_RELOC_IA64_TPREL64LSB,
 1.39844 ++  BFD_RELOC_IA64_LTOFF_TPREL22,
 1.39845 ++  BFD_RELOC_IA64_DTPMOD64MSB,
 1.39846 ++  BFD_RELOC_IA64_DTPMOD64LSB,
 1.39847 ++  BFD_RELOC_IA64_LTOFF_DTPMOD22,
 1.39848 ++  BFD_RELOC_IA64_DTPREL14,
 1.39849 ++  BFD_RELOC_IA64_DTPREL22,
 1.39850 ++  BFD_RELOC_IA64_DTPREL64I,
 1.39851 ++  BFD_RELOC_IA64_DTPREL32MSB,
 1.39852 ++  BFD_RELOC_IA64_DTPREL32LSB,
 1.39853 ++  BFD_RELOC_IA64_DTPREL64MSB,
 1.39854 ++  BFD_RELOC_IA64_DTPREL64LSB,
 1.39855 ++  BFD_RELOC_IA64_LTOFF_DTPREL22,
 1.39856 ++
 1.39857 ++/* Motorola 68HC11 reloc.
 1.39858 ++This is the 8 bit high part of an absolute address.  */
 1.39859 ++  BFD_RELOC_M68HC11_HI8,
 1.39860 ++
 1.39861 ++/* Motorola 68HC11 reloc.
 1.39862 ++This is the 8 bit low part of an absolute address.  */
 1.39863 ++  BFD_RELOC_M68HC11_LO8,
 1.39864 ++
 1.39865 ++/* Motorola 68HC11 reloc.
 1.39866 ++This is the 3 bit of a value.  */
 1.39867 ++  BFD_RELOC_M68HC11_3B,
 1.39868 ++
 1.39869 ++/* Motorola 68HC11 reloc.
 1.39870 ++This reloc marks the beginning of a jump/call instruction.
 1.39871 ++It is used for linker relaxation to correctly identify beginning
 1.39872 ++of instruction and change some branches to use PC-relative
 1.39873 ++addressing mode.  */
 1.39874 ++  BFD_RELOC_M68HC11_RL_JUMP,
 1.39875 ++
 1.39876 ++/* Motorola 68HC11 reloc.
 1.39877 ++This reloc marks a group of several instructions that gcc generates
 1.39878 ++and for which the linker relaxation pass can modify and/or remove
 1.39879 ++some of them.  */
 1.39880 ++  BFD_RELOC_M68HC11_RL_GROUP,
 1.39881 ++
 1.39882 ++/* Motorola 68HC11 reloc.
 1.39883 ++This is the 16-bit lower part of an address.  It is used for 'call'
 1.39884 ++instruction to specify the symbol address without any special
 1.39885 ++transformation (due to memory bank window).  */
 1.39886 ++  BFD_RELOC_M68HC11_LO16,
 1.39887 ++
 1.39888 ++/* Motorola 68HC11 reloc.
 1.39889 ++This is a 8-bit reloc that specifies the page number of an address.
 1.39890 ++It is used by 'call' instruction to specify the page number of
 1.39891 ++the symbol.  */
 1.39892 ++  BFD_RELOC_M68HC11_PAGE,
 1.39893 ++
 1.39894 ++/* Motorola 68HC11 reloc.
 1.39895 ++This is a 24-bit reloc that represents the address with a 16-bit
 1.39896 ++value and a 8-bit page number.  The symbol address is transformed
 1.39897 ++to follow the 16K memory bank of 68HC12 (seen as mapped in the window).  */
 1.39898 ++  BFD_RELOC_M68HC11_24,
 1.39899 ++
 1.39900 ++/* Motorola 68HC12 reloc.
 1.39901 ++This is the 5 bits of a value.  */
 1.39902 ++  BFD_RELOC_M68HC12_5B,
 1.39903 ++
 1.39904 ++/* NS CR16C Relocations.  */
 1.39905 ++  BFD_RELOC_16C_NUM08,
 1.39906 ++  BFD_RELOC_16C_NUM08_C,
 1.39907 ++  BFD_RELOC_16C_NUM16,
 1.39908 ++  BFD_RELOC_16C_NUM16_C,
 1.39909 ++  BFD_RELOC_16C_NUM32,
 1.39910 ++  BFD_RELOC_16C_NUM32_C,
 1.39911 ++  BFD_RELOC_16C_DISP04,
 1.39912 ++  BFD_RELOC_16C_DISP04_C,
 1.39913 ++  BFD_RELOC_16C_DISP08,
 1.39914 ++  BFD_RELOC_16C_DISP08_C,
 1.39915 ++  BFD_RELOC_16C_DISP16,
 1.39916 ++  BFD_RELOC_16C_DISP16_C,
 1.39917 ++  BFD_RELOC_16C_DISP24,
 1.39918 ++  BFD_RELOC_16C_DISP24_C,
 1.39919 ++  BFD_RELOC_16C_DISP24a,
 1.39920 ++  BFD_RELOC_16C_DISP24a_C,
 1.39921 ++  BFD_RELOC_16C_REG04,
 1.39922 ++  BFD_RELOC_16C_REG04_C,
 1.39923 ++  BFD_RELOC_16C_REG04a,
 1.39924 ++  BFD_RELOC_16C_REG04a_C,
 1.39925 ++  BFD_RELOC_16C_REG14,
 1.39926 ++  BFD_RELOC_16C_REG14_C,
 1.39927 ++  BFD_RELOC_16C_REG16,
 1.39928 ++  BFD_RELOC_16C_REG16_C,
 1.39929 ++  BFD_RELOC_16C_REG20,
 1.39930 ++  BFD_RELOC_16C_REG20_C,
 1.39931 ++  BFD_RELOC_16C_ABS20,
 1.39932 ++  BFD_RELOC_16C_ABS20_C,
 1.39933 ++  BFD_RELOC_16C_ABS24,
 1.39934 ++  BFD_RELOC_16C_ABS24_C,
 1.39935 ++  BFD_RELOC_16C_IMM04,
 1.39936 ++  BFD_RELOC_16C_IMM04_C,
 1.39937 ++  BFD_RELOC_16C_IMM16,
 1.39938 ++  BFD_RELOC_16C_IMM16_C,
 1.39939 ++  BFD_RELOC_16C_IMM20,
 1.39940 ++  BFD_RELOC_16C_IMM20_C,
 1.39941 ++  BFD_RELOC_16C_IMM24,
 1.39942 ++  BFD_RELOC_16C_IMM24_C,
 1.39943 ++  BFD_RELOC_16C_IMM32,
 1.39944 ++  BFD_RELOC_16C_IMM32_C,
 1.39945 ++
 1.39946 ++/* NS CR16 Relocations.  */
 1.39947 ++  BFD_RELOC_CR16_NUM8,
 1.39948 ++  BFD_RELOC_CR16_NUM16,
 1.39949 ++  BFD_RELOC_CR16_NUM32,
 1.39950 ++  BFD_RELOC_CR16_NUM32a,
 1.39951 ++  BFD_RELOC_CR16_REGREL0,
 1.39952 ++  BFD_RELOC_CR16_REGREL4,
 1.39953 ++  BFD_RELOC_CR16_REGREL4a,
 1.39954 ++  BFD_RELOC_CR16_REGREL14,
 1.39955 ++  BFD_RELOC_CR16_REGREL14a,
 1.39956 ++  BFD_RELOC_CR16_REGREL16,
 1.39957 ++  BFD_RELOC_CR16_REGREL20,
 1.39958 ++  BFD_RELOC_CR16_REGREL20a,
 1.39959 ++  BFD_RELOC_CR16_ABS20,
 1.39960 ++  BFD_RELOC_CR16_ABS24,
 1.39961 ++  BFD_RELOC_CR16_IMM4,
 1.39962 ++  BFD_RELOC_CR16_IMM8,
 1.39963 ++  BFD_RELOC_CR16_IMM16,
 1.39964 ++  BFD_RELOC_CR16_IMM20,
 1.39965 ++  BFD_RELOC_CR16_IMM24,
 1.39966 ++  BFD_RELOC_CR16_IMM32,
 1.39967 ++  BFD_RELOC_CR16_IMM32a,
 1.39968 ++  BFD_RELOC_CR16_DISP4,
 1.39969 ++  BFD_RELOC_CR16_DISP8,
 1.39970 ++  BFD_RELOC_CR16_DISP16,
 1.39971 ++  BFD_RELOC_CR16_DISP20,
 1.39972 ++  BFD_RELOC_CR16_DISP24,
 1.39973 ++  BFD_RELOC_CR16_DISP24a,
 1.39974 ++
 1.39975 ++/* NS CRX Relocations.  */
 1.39976 ++  BFD_RELOC_CRX_REL4,
 1.39977 ++  BFD_RELOC_CRX_REL8,
 1.39978 ++  BFD_RELOC_CRX_REL8_CMP,
 1.39979 ++  BFD_RELOC_CRX_REL16,
 1.39980 ++  BFD_RELOC_CRX_REL24,
 1.39981 ++  BFD_RELOC_CRX_REL32,
 1.39982 ++  BFD_RELOC_CRX_REGREL12,
 1.39983 ++  BFD_RELOC_CRX_REGREL22,
 1.39984 ++  BFD_RELOC_CRX_REGREL28,
 1.39985 ++  BFD_RELOC_CRX_REGREL32,
 1.39986 ++  BFD_RELOC_CRX_ABS16,
 1.39987 ++  BFD_RELOC_CRX_ABS32,
 1.39988 ++  BFD_RELOC_CRX_NUM8,
 1.39989 ++  BFD_RELOC_CRX_NUM16,
 1.39990 ++  BFD_RELOC_CRX_NUM32,
 1.39991 ++  BFD_RELOC_CRX_IMM16,
 1.39992 ++  BFD_RELOC_CRX_IMM32,
 1.39993 ++  BFD_RELOC_CRX_SWITCH8,
 1.39994 ++  BFD_RELOC_CRX_SWITCH16,
 1.39995 ++  BFD_RELOC_CRX_SWITCH32,
 1.39996 ++
 1.39997 ++/* These relocs are only used within the CRIS assembler.  They are not
 1.39998 ++(at present) written to any object files.  */
 1.39999 ++  BFD_RELOC_CRIS_BDISP8,
 1.40000 ++  BFD_RELOC_CRIS_UNSIGNED_5,
 1.40001 ++  BFD_RELOC_CRIS_SIGNED_6,
 1.40002 ++  BFD_RELOC_CRIS_UNSIGNED_6,
 1.40003 ++  BFD_RELOC_CRIS_SIGNED_8,
 1.40004 ++  BFD_RELOC_CRIS_UNSIGNED_8,
 1.40005 ++  BFD_RELOC_CRIS_SIGNED_16,
 1.40006 ++  BFD_RELOC_CRIS_UNSIGNED_16,
 1.40007 ++  BFD_RELOC_CRIS_LAPCQ_OFFSET,
 1.40008 ++  BFD_RELOC_CRIS_UNSIGNED_4,
 1.40009 ++
 1.40010 ++/* Relocs used in ELF shared libraries for CRIS.  */
 1.40011 ++  BFD_RELOC_CRIS_COPY,
 1.40012 ++  BFD_RELOC_CRIS_GLOB_DAT,
 1.40013 ++  BFD_RELOC_CRIS_JUMP_SLOT,
 1.40014 ++  BFD_RELOC_CRIS_RELATIVE,
 1.40015 ++
 1.40016 ++/* 32-bit offset to symbol-entry within GOT.  */
 1.40017 ++  BFD_RELOC_CRIS_32_GOT,
 1.40018 ++
 1.40019 ++/* 16-bit offset to symbol-entry within GOT.  */
 1.40020 ++  BFD_RELOC_CRIS_16_GOT,
 1.40021 ++
 1.40022 ++/* 32-bit offset to symbol-entry within GOT, with PLT handling.  */
 1.40023 ++  BFD_RELOC_CRIS_32_GOTPLT,
 1.40024 ++
 1.40025 ++/* 16-bit offset to symbol-entry within GOT, with PLT handling.  */
 1.40026 ++  BFD_RELOC_CRIS_16_GOTPLT,
 1.40027 ++
 1.40028 ++/* 32-bit offset to symbol, relative to GOT.  */
 1.40029 ++  BFD_RELOC_CRIS_32_GOTREL,
 1.40030 ++
 1.40031 ++/* 32-bit offset to symbol with PLT entry, relative to GOT.  */
 1.40032 ++  BFD_RELOC_CRIS_32_PLT_GOTREL,
 1.40033 ++
 1.40034 ++/* 32-bit offset to symbol with PLT entry, relative to this relocation.  */
 1.40035 ++  BFD_RELOC_CRIS_32_PLT_PCREL,
 1.40036 ++
 1.40037 ++/* Intel i860 Relocations.  */
 1.40038 ++  BFD_RELOC_860_COPY,
 1.40039 ++  BFD_RELOC_860_GLOB_DAT,
 1.40040 ++  BFD_RELOC_860_JUMP_SLOT,
 1.40041 ++  BFD_RELOC_860_RELATIVE,
 1.40042 ++  BFD_RELOC_860_PC26,
 1.40043 ++  BFD_RELOC_860_PLT26,
 1.40044 ++  BFD_RELOC_860_PC16,
 1.40045 ++  BFD_RELOC_860_LOW0,
 1.40046 ++  BFD_RELOC_860_SPLIT0,
 1.40047 ++  BFD_RELOC_860_LOW1,
 1.40048 ++  BFD_RELOC_860_SPLIT1,
 1.40049 ++  BFD_RELOC_860_LOW2,
 1.40050 ++  BFD_RELOC_860_SPLIT2,
 1.40051 ++  BFD_RELOC_860_LOW3,
 1.40052 ++  BFD_RELOC_860_LOGOT0,
 1.40053 ++  BFD_RELOC_860_SPGOT0,
 1.40054 ++  BFD_RELOC_860_LOGOT1,
 1.40055 ++  BFD_RELOC_860_SPGOT1,
 1.40056 ++  BFD_RELOC_860_LOGOTOFF0,
 1.40057 ++  BFD_RELOC_860_SPGOTOFF0,
 1.40058 ++  BFD_RELOC_860_LOGOTOFF1,
 1.40059 ++  BFD_RELOC_860_SPGOTOFF1,
 1.40060 ++  BFD_RELOC_860_LOGOTOFF2,
 1.40061 ++  BFD_RELOC_860_LOGOTOFF3,
 1.40062 ++  BFD_RELOC_860_LOPC,
 1.40063 ++  BFD_RELOC_860_HIGHADJ,
 1.40064 ++  BFD_RELOC_860_HAGOT,
 1.40065 ++  BFD_RELOC_860_HAGOTOFF,
 1.40066 ++  BFD_RELOC_860_HAPC,
 1.40067 ++  BFD_RELOC_860_HIGH,
 1.40068 ++  BFD_RELOC_860_HIGOT,
 1.40069 ++  BFD_RELOC_860_HIGOTOFF,
 1.40070 ++
 1.40071 ++/* OpenRISC Relocations.  */
 1.40072 ++  BFD_RELOC_OPENRISC_ABS_26,
 1.40073 ++  BFD_RELOC_OPENRISC_REL_26,
 1.40074 ++
 1.40075 ++/* H8 elf Relocations.  */
 1.40076 ++  BFD_RELOC_H8_DIR16A8,
 1.40077 ++  BFD_RELOC_H8_DIR16R8,
 1.40078 ++  BFD_RELOC_H8_DIR24A8,
 1.40079 ++  BFD_RELOC_H8_DIR24R8,
 1.40080 ++  BFD_RELOC_H8_DIR32A16,
 1.40081 ++
 1.40082 ++/* Sony Xstormy16 Relocations.  */
 1.40083 ++  BFD_RELOC_XSTORMY16_REL_12,
 1.40084 ++  BFD_RELOC_XSTORMY16_12,
 1.40085 ++  BFD_RELOC_XSTORMY16_24,
 1.40086 ++  BFD_RELOC_XSTORMY16_FPTR16,
 1.40087 ++
 1.40088 ++/* Self-describing complex relocations.  */
 1.40089 ++  BFD_RELOC_RELC,
 1.40090 ++
 1.40091 ++
 1.40092 ++/* Infineon Relocations.  */
 1.40093 ++  BFD_RELOC_XC16X_PAG,
 1.40094 ++  BFD_RELOC_XC16X_POF,
 1.40095 ++  BFD_RELOC_XC16X_SEG,
 1.40096 ++  BFD_RELOC_XC16X_SOF,
 1.40097 ++
 1.40098 ++/* Relocations used by VAX ELF.  */
 1.40099 ++  BFD_RELOC_VAX_GLOB_DAT,
 1.40100 ++  BFD_RELOC_VAX_JMP_SLOT,
 1.40101 ++  BFD_RELOC_VAX_RELATIVE,
 1.40102 ++
 1.40103 ++/* Morpho MT - 16 bit immediate relocation.  */
 1.40104 ++  BFD_RELOC_MT_PC16,
 1.40105 ++
 1.40106 ++/* Morpho MT - Hi 16 bits of an address.  */
 1.40107 ++  BFD_RELOC_MT_HI16,
 1.40108 ++
 1.40109 ++/* Morpho MT - Low 16 bits of an address.  */
 1.40110 ++  BFD_RELOC_MT_LO16,
 1.40111 ++
 1.40112 ++/* Morpho MT - Used to tell the linker which vtable entries are used.  */
 1.40113 ++  BFD_RELOC_MT_GNU_VTINHERIT,
 1.40114 ++
 1.40115 ++/* Morpho MT - Used to tell the linker which vtable entries are used.  */
 1.40116 ++  BFD_RELOC_MT_GNU_VTENTRY,
 1.40117 ++
 1.40118 ++/* Morpho MT - 8 bit immediate relocation.  */
 1.40119 ++  BFD_RELOC_MT_PCINSN8,
 1.40120 ++
 1.40121 ++/* msp430 specific relocation codes  */
 1.40122 ++  BFD_RELOC_MSP430_10_PCREL,
 1.40123 ++  BFD_RELOC_MSP430_16_PCREL,
 1.40124 ++  BFD_RELOC_MSP430_16,
 1.40125 ++  BFD_RELOC_MSP430_16_PCREL_BYTE,
 1.40126 ++  BFD_RELOC_MSP430_16_BYTE,
 1.40127 ++  BFD_RELOC_MSP430_2X_PCREL,
 1.40128 ++  BFD_RELOC_MSP430_RL_PCREL,
 1.40129 ++
 1.40130 ++/* IQ2000 Relocations.  */
 1.40131 ++  BFD_RELOC_IQ2000_OFFSET_16,
 1.40132 ++  BFD_RELOC_IQ2000_OFFSET_21,
 1.40133 ++  BFD_RELOC_IQ2000_UHI16,
 1.40134 ++
 1.40135 ++/* Special Xtensa relocation used only by PLT entries in ELF shared
 1.40136 ++objects to indicate that the runtime linker should set the value
 1.40137 ++to one of its own internal functions or data structures.  */
 1.40138 ++  BFD_RELOC_XTENSA_RTLD,
 1.40139 ++
 1.40140 ++/* Xtensa relocations for ELF shared objects.  */
 1.40141 ++  BFD_RELOC_XTENSA_GLOB_DAT,
 1.40142 ++  BFD_RELOC_XTENSA_JMP_SLOT,
 1.40143 ++  BFD_RELOC_XTENSA_RELATIVE,
 1.40144 ++
 1.40145 ++/* Xtensa relocation used in ELF object files for symbols that may require
 1.40146 ++PLT entries.  Otherwise, this is just a generic 32-bit relocation.  */
 1.40147 ++  BFD_RELOC_XTENSA_PLT,
 1.40148 ++
 1.40149 ++/* Xtensa relocations to mark the difference of two local symbols.
 1.40150 ++These are only needed to support linker relaxation and can be ignored
 1.40151 ++when not relaxing.  The field is set to the value of the difference
 1.40152 ++assuming no relaxation.  The relocation encodes the position of the
 1.40153 ++first symbol so the linker can determine whether to adjust the field
 1.40154 ++value.  */
 1.40155 ++  BFD_RELOC_XTENSA_DIFF8,
 1.40156 ++  BFD_RELOC_XTENSA_DIFF16,
 1.40157 ++  BFD_RELOC_XTENSA_DIFF32,
 1.40158 ++
 1.40159 ++/* Generic Xtensa relocations for instruction operands.  Only the slot
 1.40160 ++number is encoded in the relocation.  The relocation applies to the
 1.40161 ++last PC-relative immediate operand, or if there are no PC-relative
 1.40162 ++immediates, to the last immediate operand.  */
 1.40163 ++  BFD_RELOC_XTENSA_SLOT0_OP,
 1.40164 ++  BFD_RELOC_XTENSA_SLOT1_OP,
 1.40165 ++  BFD_RELOC_XTENSA_SLOT2_OP,
 1.40166 ++  BFD_RELOC_XTENSA_SLOT3_OP,
 1.40167 ++  BFD_RELOC_XTENSA_SLOT4_OP,
 1.40168 ++  BFD_RELOC_XTENSA_SLOT5_OP,
 1.40169 ++  BFD_RELOC_XTENSA_SLOT6_OP,
 1.40170 ++  BFD_RELOC_XTENSA_SLOT7_OP,
 1.40171 ++  BFD_RELOC_XTENSA_SLOT8_OP,
 1.40172 ++  BFD_RELOC_XTENSA_SLOT9_OP,
 1.40173 ++  BFD_RELOC_XTENSA_SLOT10_OP,
 1.40174 ++  BFD_RELOC_XTENSA_SLOT11_OP,
 1.40175 ++  BFD_RELOC_XTENSA_SLOT12_OP,
 1.40176 ++  BFD_RELOC_XTENSA_SLOT13_OP,
 1.40177 ++  BFD_RELOC_XTENSA_SLOT14_OP,
 1.40178 ++
 1.40179 ++/* Alternate Xtensa relocations.  Only the slot is encoded in the
 1.40180 ++relocation.  The meaning of these relocations is opcode-specific.  */
 1.40181 ++  BFD_RELOC_XTENSA_SLOT0_ALT,
 1.40182 ++  BFD_RELOC_XTENSA_SLOT1_ALT,
 1.40183 ++  BFD_RELOC_XTENSA_SLOT2_ALT,
 1.40184 ++  BFD_RELOC_XTENSA_SLOT3_ALT,
 1.40185 ++  BFD_RELOC_XTENSA_SLOT4_ALT,
 1.40186 ++  BFD_RELOC_XTENSA_SLOT5_ALT,
 1.40187 ++  BFD_RELOC_XTENSA_SLOT6_ALT,
 1.40188 ++  BFD_RELOC_XTENSA_SLOT7_ALT,
 1.40189 ++  BFD_RELOC_XTENSA_SLOT8_ALT,
 1.40190 ++  BFD_RELOC_XTENSA_SLOT9_ALT,
 1.40191 ++  BFD_RELOC_XTENSA_SLOT10_ALT,
 1.40192 ++  BFD_RELOC_XTENSA_SLOT11_ALT,
 1.40193 ++  BFD_RELOC_XTENSA_SLOT12_ALT,
 1.40194 ++  BFD_RELOC_XTENSA_SLOT13_ALT,
 1.40195 ++  BFD_RELOC_XTENSA_SLOT14_ALT,
 1.40196 ++
 1.40197 ++/* Xtensa relocations for backward compatibility.  These have all been
 1.40198 ++replaced by BFD_RELOC_XTENSA_SLOT0_OP.  */
 1.40199 ++  BFD_RELOC_XTENSA_OP0,
 1.40200 ++  BFD_RELOC_XTENSA_OP1,
 1.40201 ++  BFD_RELOC_XTENSA_OP2,
 1.40202 ++
 1.40203 ++/* Xtensa relocation to mark that the assembler expanded the
 1.40204 ++instructions from an original target.  The expansion size is
 1.40205 ++encoded in the reloc size.  */
 1.40206 ++  BFD_RELOC_XTENSA_ASM_EXPAND,
 1.40207 ++
 1.40208 ++/* Xtensa relocation to mark that the linker should simplify
 1.40209 ++assembler-expanded instructions.  This is commonly used
 1.40210 ++internally by the linker after analysis of a
 1.40211 ++BFD_RELOC_XTENSA_ASM_EXPAND.  */
 1.40212 ++  BFD_RELOC_XTENSA_ASM_SIMPLIFY,
 1.40213 ++
 1.40214 ++/* 8 bit signed offset in (ix+d) or (iy+d).  */
 1.40215 ++  BFD_RELOC_Z80_DISP8,
 1.40216 ++
 1.40217 ++/* DJNZ offset.  */
 1.40218 ++  BFD_RELOC_Z8K_DISP7,
 1.40219 ++
 1.40220 ++/* CALR offset.  */
 1.40221 ++  BFD_RELOC_Z8K_CALLR,
 1.40222 ++
 1.40223 ++/* 4 bit value.  */
 1.40224 ++  BFD_RELOC_Z8K_IMM4L,
 1.40225 ++  BFD_RELOC_UNUSED };
 1.40226 ++typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
 1.40227 ++reloc_howto_type *bfd_reloc_type_lookup
 1.40228 ++   (bfd *abfd, bfd_reloc_code_real_type code);
 1.40229 ++reloc_howto_type *bfd_reloc_name_lookup
 1.40230 ++   (bfd *abfd, const char *reloc_name);
 1.40231 ++
 1.40232 ++const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
 1.40233 ++
 1.40234 ++/* Extracted from syms.c.  */
 1.40235 ++
 1.40236 ++typedef struct bfd_symbol
 1.40237 ++{
 1.40238 ++  /* A pointer to the BFD which owns the symbol. This information
 1.40239 ++     is necessary so that a back end can work out what additional
 1.40240 ++     information (invisible to the application writer) is carried
 1.40241 ++     with the symbol.
 1.40242 ++
 1.40243 ++     This field is *almost* redundant, since you can use section->owner
 1.40244 ++     instead, except that some symbols point to the global sections
 1.40245 ++     bfd_{abs,com,und}_section.  This could be fixed by making
 1.40246 ++     these globals be per-bfd (or per-target-flavor).  FIXME.  */
 1.40247 ++  struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field.  */
 1.40248 ++
 1.40249 ++  /* The text of the symbol. The name is left alone, and not copied; the
 1.40250 ++     application may not alter it.  */
 1.40251 ++  const char *name;
 1.40252 ++
 1.40253 ++  /* The value of the symbol.  This really should be a union of a
 1.40254 ++     numeric value with a pointer, since some flags indicate that
 1.40255 ++     a pointer to another symbol is stored here.  */
 1.40256 ++  symvalue value;
 1.40257 ++
 1.40258 ++  /* Attributes of a symbol.  */
 1.40259 ++#define BSF_NO_FLAGS    0x00
 1.40260 ++
 1.40261 ++  /* The symbol has local scope; <<static>> in <<C>>. The value
 1.40262 ++     is the offset into the section of the data.  */
 1.40263 ++#define BSF_LOCAL      0x01
 1.40264 ++
 1.40265 ++  /* The symbol has global scope; initialized data in <<C>>. The
 1.40266 ++     value is the offset into the section of the data.  */
 1.40267 ++#define BSF_GLOBAL     0x02
 1.40268 ++
 1.40269 ++  /* The symbol has global scope and is exported. The value is
 1.40270 ++     the offset into the section of the data.  */
 1.40271 ++#define BSF_EXPORT     BSF_GLOBAL /* No real difference.  */
 1.40272 ++
 1.40273 ++  /* A normal C symbol would be one of:
 1.40274 ++     <<BSF_LOCAL>>, <<BSF_FORT_COMM>>,  <<BSF_UNDEFINED>> or
 1.40275 ++     <<BSF_GLOBAL>>.  */
 1.40276 ++
 1.40277 ++  /* The symbol is a debugging record. The value has an arbitrary
 1.40278 ++     meaning, unless BSF_DEBUGGING_RELOC is also set.  */
 1.40279 ++#define BSF_DEBUGGING  0x08
 1.40280 ++
 1.40281 ++  /* The symbol denotes a function entry point.  Used in ELF,
 1.40282 ++     perhaps others someday.  */
 1.40283 ++#define BSF_FUNCTION    0x10
 1.40284 ++
 1.40285 ++  /* Used by the linker.  */
 1.40286 ++#define BSF_KEEP        0x20
 1.40287 ++#define BSF_KEEP_G      0x40
 1.40288 ++
 1.40289 ++  /* A weak global symbol, overridable without warnings by
 1.40290 ++     a regular global symbol of the same name.  */
 1.40291 ++#define BSF_WEAK        0x80
 1.40292 ++
 1.40293 ++  /* This symbol was created to point to a section, e.g. ELF's
 1.40294 ++     STT_SECTION symbols.  */
 1.40295 ++#define BSF_SECTION_SYM 0x100
 1.40296 ++
 1.40297 ++  /* The symbol used to be a common symbol, but now it is
 1.40298 ++     allocated.  */
 1.40299 ++#define BSF_OLD_COMMON  0x200
 1.40300 ++
 1.40301 ++  /* The default value for common data.  */
 1.40302 ++#define BFD_FORT_COMM_DEFAULT_VALUE 0
 1.40303 ++
 1.40304 ++  /* In some files the type of a symbol sometimes alters its
 1.40305 ++     location in an output file - ie in coff a <<ISFCN>> symbol
 1.40306 ++     which is also <<C_EXT>> symbol appears where it was
 1.40307 ++     declared and not at the end of a section.  This bit is set
 1.40308 ++     by the target BFD part to convey this information.  */
 1.40309 ++#define BSF_NOT_AT_END    0x400
 1.40310 ++
 1.40311 ++  /* Signal that the symbol is the label of constructor section.  */
 1.40312 ++#define BSF_CONSTRUCTOR   0x800
 1.40313 ++
 1.40314 ++  /* Signal that the symbol is a warning symbol.  The name is a
 1.40315 ++     warning.  The name of the next symbol is the one to warn about;
 1.40316 ++     if a reference is made to a symbol with the same name as the next
 1.40317 ++     symbol, a warning is issued by the linker.  */
 1.40318 ++#define BSF_WARNING       0x1000
 1.40319 ++
 1.40320 ++  /* Signal that the symbol is indirect.  This symbol is an indirect
 1.40321 ++     pointer to the symbol with the same name as the next symbol.  */
 1.40322 ++#define BSF_INDIRECT      0x2000
 1.40323 ++
 1.40324 ++  /* BSF_FILE marks symbols that contain a file name.  This is used
 1.40325 ++     for ELF STT_FILE symbols.  */
 1.40326 ++#define BSF_FILE          0x4000
 1.40327 ++
 1.40328 ++  /* Symbol is from dynamic linking information.  */
 1.40329 ++#define BSF_DYNAMIC       0x8000
 1.40330 ++
 1.40331 ++  /* The symbol denotes a data object.  Used in ELF, and perhaps
 1.40332 ++     others someday.  */
 1.40333 ++#define BSF_OBJECT        0x10000
 1.40334 ++
 1.40335 ++  /* This symbol is a debugging symbol.  The value is the offset
 1.40336 ++     into the section of the data.  BSF_DEBUGGING should be set
 1.40337 ++     as well.  */
 1.40338 ++#define BSF_DEBUGGING_RELOC 0x20000
 1.40339 ++
 1.40340 ++  /* This symbol is thread local.  Used in ELF.  */
 1.40341 ++#define BSF_THREAD_LOCAL  0x40000
 1.40342 ++
 1.40343 ++  /* This symbol represents a complex relocation expression,
 1.40344 ++     with the expression tree serialized in the symbol name.  */
 1.40345 ++#define BSF_RELC 0x80000
 1.40346 ++
 1.40347 ++  /* This symbol represents a signed complex relocation expression,
 1.40348 ++     with the expression tree serialized in the symbol name.  */
 1.40349 ++#define BSF_SRELC 0x100000
 1.40350 ++
 1.40351 ++  flagword flags;
 1.40352 ++
 1.40353 ++  /* A pointer to the section to which this symbol is
 1.40354 ++     relative.  This will always be non NULL, there are special
 1.40355 ++     sections for undefined and absolute symbols.  */
 1.40356 ++  struct bfd_section *section;
 1.40357 ++
 1.40358 ++  /* Back end special data.  */
 1.40359 ++  union
 1.40360 ++    {
 1.40361 ++      void *p;
 1.40362 ++      bfd_vma i;
 1.40363 ++    }
 1.40364 ++  udata;
 1.40365 ++}
 1.40366 ++asymbol;
 1.40367 ++
 1.40368 ++#define bfd_get_symtab_upper_bound(abfd) \
 1.40369 ++     BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
 1.40370 ++
 1.40371 ++bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
 1.40372 ++
 1.40373 ++bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
 1.40374 ++
 1.40375 ++#define bfd_is_local_label_name(abfd, name) \
 1.40376 ++  BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
 1.40377 ++
 1.40378 ++bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
 1.40379 ++
 1.40380 ++#define bfd_is_target_special_symbol(abfd, sym) \
 1.40381 ++  BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
 1.40382 ++
 1.40383 ++#define bfd_canonicalize_symtab(abfd, location) \
 1.40384 ++  BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
 1.40385 ++
 1.40386 ++bfd_boolean bfd_set_symtab
 1.40387 ++   (bfd *abfd, asymbol **location, unsigned int count);
 1.40388 ++
 1.40389 ++void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
 1.40390 ++
 1.40391 ++#define bfd_make_empty_symbol(abfd) \
 1.40392 ++  BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
 1.40393 ++
 1.40394 ++asymbol *_bfd_generic_make_empty_symbol (bfd *);
 1.40395 ++
 1.40396 ++#define bfd_make_debug_symbol(abfd,ptr,size) \
 1.40397 ++  BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
 1.40398 ++
 1.40399 ++int bfd_decode_symclass (asymbol *symbol);
 1.40400 ++
 1.40401 ++bfd_boolean bfd_is_undefined_symclass (int symclass);
 1.40402 ++
 1.40403 ++void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
 1.40404 ++
 1.40405 ++bfd_boolean bfd_copy_private_symbol_data
 1.40406 ++   (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
 1.40407 ++
 1.40408 ++#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
 1.40409 ++  BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
 1.40410 ++            (ibfd, isymbol, obfd, osymbol))
 1.40411 ++
 1.40412 ++/* Extracted from bfd.c.  */
 1.40413 ++struct bfd
 1.40414 ++{
 1.40415 ++  /* A unique identifier of the BFD  */
 1.40416 ++  unsigned int id;
 1.40417 ++
 1.40418 ++  /* The filename the application opened the BFD with.  */
 1.40419 ++  const char *filename;
 1.40420 ++
 1.40421 ++  /* A pointer to the target jump table.  */
 1.40422 ++  const struct bfd_target *xvec;
 1.40423 ++
 1.40424 ++  /* The IOSTREAM, and corresponding IO vector that provide access
 1.40425 ++     to the file backing the BFD.  */
 1.40426 ++  void *iostream;
 1.40427 ++  const struct bfd_iovec *iovec;
 1.40428 ++
 1.40429 ++  /* Is the file descriptor being cached?  That is, can it be closed as
 1.40430 ++     needed, and re-opened when accessed later?  */
 1.40431 ++  bfd_boolean cacheable;
 1.40432 ++
 1.40433 ++  /* Marks whether there was a default target specified when the
 1.40434 ++     BFD was opened. This is used to select which matching algorithm
 1.40435 ++     to use to choose the back end.  */
 1.40436 ++  bfd_boolean target_defaulted;
 1.40437 ++
 1.40438 ++  /* The caching routines use these to maintain a
 1.40439 ++     least-recently-used list of BFDs.  */
 1.40440 ++  struct bfd *lru_prev, *lru_next;
 1.40441 ++
 1.40442 ++  /* When a file is closed by the caching routines, BFD retains
 1.40443 ++     state information on the file here...  */
 1.40444 ++  ufile_ptr where;
 1.40445 ++
 1.40446 ++  /* ... and here: (``once'' means at least once).  */
 1.40447 ++  bfd_boolean opened_once;
 1.40448 ++
 1.40449 ++  /* Set if we have a locally maintained mtime value, rather than
 1.40450 ++     getting it from the file each time.  */
 1.40451 ++  bfd_boolean mtime_set;
 1.40452 ++
 1.40453 ++  /* File modified time, if mtime_set is TRUE.  */
 1.40454 ++  long mtime;
 1.40455 ++
 1.40456 ++  /* Reserved for an unimplemented file locking extension.  */
 1.40457 ++  int ifd;
 1.40458 ++
 1.40459 ++  /* The format which belongs to the BFD. (object, core, etc.)  */
 1.40460 ++  bfd_format format;
 1.40461 ++
 1.40462 ++  /* The direction with which the BFD was opened.  */
 1.40463 ++  enum bfd_direction
 1.40464 ++    {
 1.40465 ++      no_direction = 0,
 1.40466 ++      read_direction = 1,
 1.40467 ++      write_direction = 2,
 1.40468 ++      both_direction = 3
 1.40469 ++    }
 1.40470 ++  direction;
 1.40471 ++
 1.40472 ++  /* Format_specific flags.  */
 1.40473 ++  flagword flags;
 1.40474 ++
 1.40475 ++  /* Currently my_archive is tested before adding origin to
 1.40476 ++     anything. I believe that this can become always an add of
 1.40477 ++     origin, with origin set to 0 for non archive files.  */
 1.40478 ++  ufile_ptr origin;
 1.40479 ++
 1.40480 ++  /* Remember when output has begun, to stop strange things
 1.40481 ++     from happening.  */
 1.40482 ++  bfd_boolean output_has_begun;
 1.40483 ++
 1.40484 ++  /* A hash table for section names.  */
 1.40485 ++  struct bfd_hash_table section_htab;
 1.40486 ++
 1.40487 ++  /* Pointer to linked list of sections.  */
 1.40488 ++  struct bfd_section *sections;
 1.40489 ++
 1.40490 ++  /* The last section on the section list.  */
 1.40491 ++  struct bfd_section *section_last;
 1.40492 ++
 1.40493 ++  /* The number of sections.  */
 1.40494 ++  unsigned int section_count;
 1.40495 ++
 1.40496 ++  /* Stuff only useful for object files:
 1.40497 ++     The start address.  */
 1.40498 ++  bfd_vma start_address;
 1.40499 ++
 1.40500 ++  /* Used for input and output.  */
 1.40501 ++  unsigned int symcount;
 1.40502 ++
 1.40503 ++  /* Symbol table for output BFD (with symcount entries).  */
 1.40504 ++  struct bfd_symbol  **outsymbols;
 1.40505 ++
 1.40506 ++  /* Used for slurped dynamic symbol tables.  */
 1.40507 ++  unsigned int dynsymcount;
 1.40508 ++
 1.40509 ++  /* Pointer to structure which contains architecture information.  */
 1.40510 ++  const struct bfd_arch_info *arch_info;
 1.40511 ++
 1.40512 ++  /* Flag set if symbols from this BFD should not be exported.  */
 1.40513 ++  bfd_boolean no_export;
 1.40514 ++
 1.40515 ++  /* Stuff only useful for archives.  */
 1.40516 ++  void *arelt_data;
 1.40517 ++  struct bfd *my_archive;      /* The containing archive BFD.  */
 1.40518 ++  struct bfd *archive_next;    /* The next BFD in the archive.  */
 1.40519 ++  struct bfd *archive_head;    /* The first BFD in the archive.  */
 1.40520 ++  bfd_boolean has_armap;
 1.40521 ++
 1.40522 ++  /* A chain of BFD structures involved in a link.  */
 1.40523 ++  struct bfd *link_next;
 1.40524 ++
 1.40525 ++  /* A field used by _bfd_generic_link_add_archive_symbols.  This will
 1.40526 ++     be used only for archive elements.  */
 1.40527 ++  int archive_pass;
 1.40528 ++
 1.40529 ++  /* Used by the back end to hold private data.  */
 1.40530 ++  union
 1.40531 ++    {
 1.40532 ++      struct aout_data_struct *aout_data;
 1.40533 ++      struct artdata *aout_ar_data;
 1.40534 ++      struct _oasys_data *oasys_obj_data;
 1.40535 ++      struct _oasys_ar_data *oasys_ar_data;
 1.40536 ++      struct coff_tdata *coff_obj_data;
 1.40537 ++      struct pe_tdata *pe_obj_data;
 1.40538 ++      struct xcoff_tdata *xcoff_obj_data;
 1.40539 ++      struct ecoff_tdata *ecoff_obj_data;
 1.40540 ++      struct ieee_data_struct *ieee_data;
 1.40541 ++      struct ieee_ar_data_struct *ieee_ar_data;
 1.40542 ++      struct srec_data_struct *srec_data;
 1.40543 ++      struct ihex_data_struct *ihex_data;
 1.40544 ++      struct tekhex_data_struct *tekhex_data;
 1.40545 ++      struct elf_obj_tdata *elf_obj_data;
 1.40546 ++      struct nlm_obj_tdata *nlm_obj_data;
 1.40547 ++      struct bout_data_struct *bout_data;
 1.40548 ++      struct mmo_data_struct *mmo_data;
 1.40549 ++      struct sun_core_struct *sun_core_data;
 1.40550 ++      struct sco5_core_struct *sco5_core_data;
 1.40551 ++      struct trad_core_struct *trad_core_data;
 1.40552 ++      struct som_data_struct *som_data;
 1.40553 ++      struct hpux_core_struct *hpux_core_data;
 1.40554 ++      struct hppabsd_core_struct *hppabsd_core_data;
 1.40555 ++      struct sgi_core_struct *sgi_core_data;
 1.40556 ++      struct lynx_core_struct *lynx_core_data;
 1.40557 ++      struct osf_core_struct *osf_core_data;
 1.40558 ++      struct cisco_core_struct *cisco_core_data;
 1.40559 ++      struct versados_data_struct *versados_data;
 1.40560 ++      struct netbsd_core_struct *netbsd_core_data;
 1.40561 ++      struct mach_o_data_struct *mach_o_data;
 1.40562 ++      struct mach_o_fat_data_struct *mach_o_fat_data;
 1.40563 ++      struct bfd_pef_data_struct *pef_data;
 1.40564 ++      struct bfd_pef_xlib_data_struct *pef_xlib_data;
 1.40565 ++      struct bfd_sym_data_struct *sym_data;
 1.40566 ++      void *any;
 1.40567 ++    }
 1.40568 ++  tdata;
 1.40569 ++
 1.40570 ++  /* Used by the application to hold private data.  */
 1.40571 ++  void *usrdata;
 1.40572 ++
 1.40573 ++  /* Where all the allocated stuff under this BFD goes.  This is a
 1.40574 ++     struct objalloc *, but we use void * to avoid requiring the inclusion
 1.40575 ++     of objalloc.h.  */
 1.40576 ++  void *memory;
 1.40577 ++};
 1.40578 ++
 1.40579 ++typedef enum bfd_error
 1.40580 ++{
 1.40581 ++  bfd_error_no_error = 0,
 1.40582 ++  bfd_error_system_call,
 1.40583 ++  bfd_error_invalid_target,
 1.40584 ++  bfd_error_wrong_format,
 1.40585 ++  bfd_error_wrong_object_format,
 1.40586 ++  bfd_error_invalid_operation,
 1.40587 ++  bfd_error_no_memory,
 1.40588 ++  bfd_error_no_symbols,
 1.40589 ++  bfd_error_no_armap,
 1.40590 ++  bfd_error_no_more_archived_files,
 1.40591 ++  bfd_error_malformed_archive,
 1.40592 ++  bfd_error_file_not_recognized,
 1.40593 ++  bfd_error_file_ambiguously_recognized,
 1.40594 ++  bfd_error_no_contents,
 1.40595 ++  bfd_error_nonrepresentable_section,
 1.40596 ++  bfd_error_no_debug_section,
 1.40597 ++  bfd_error_bad_value,
 1.40598 ++  bfd_error_file_truncated,
 1.40599 ++  bfd_error_file_too_big,
 1.40600 ++  bfd_error_on_input,
 1.40601 ++  bfd_error_invalid_error_code
 1.40602 ++}
 1.40603 ++bfd_error_type;
 1.40604 ++
 1.40605 ++bfd_error_type bfd_get_error (void);
 1.40606 ++
 1.40607 ++void bfd_set_error (bfd_error_type error_tag, ...);
 1.40608 ++
 1.40609 ++const char *bfd_errmsg (bfd_error_type error_tag);
 1.40610 ++
 1.40611 ++void bfd_perror (const char *message);
 1.40612 ++
 1.40613 ++typedef void (*bfd_error_handler_type) (const char *, ...);
 1.40614 ++
 1.40615 ++bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
 1.40616 ++
 1.40617 ++void bfd_set_error_program_name (const char *);
 1.40618 ++
 1.40619 ++bfd_error_handler_type bfd_get_error_handler (void);
 1.40620 ++
 1.40621 ++long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect);
 1.40622 ++
 1.40623 ++long bfd_canonicalize_reloc
 1.40624 ++   (bfd *abfd, asection *sec, arelent **loc, asymbol **syms);
 1.40625 ++
 1.40626 ++void bfd_set_reloc
 1.40627 ++   (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
 1.40628 ++
 1.40629 ++bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);
 1.40630 ++
 1.40631 ++int bfd_get_arch_size (bfd *abfd);
 1.40632 ++
 1.40633 ++int bfd_get_sign_extend_vma (bfd *abfd);
 1.40634 ++
 1.40635 ++bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
 1.40636 ++
 1.40637 ++unsigned int bfd_get_gp_size (bfd *abfd);
 1.40638 ++
 1.40639 ++void bfd_set_gp_size (bfd *abfd, unsigned int i);
 1.40640 ++
 1.40641 ++bfd_vma bfd_scan_vma (const char *string, const char **end, int base);
 1.40642 ++
 1.40643 ++bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);
 1.40644 ++
 1.40645 ++#define bfd_copy_private_header_data(ibfd, obfd) \
 1.40646 ++     BFD_SEND (obfd, _bfd_copy_private_header_data, \
 1.40647 ++               (ibfd, obfd))
 1.40648 ++bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
 1.40649 ++
 1.40650 ++#define bfd_copy_private_bfd_data(ibfd, obfd) \
 1.40651 ++     BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
 1.40652 ++               (ibfd, obfd))
 1.40653 ++bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd);
 1.40654 ++
 1.40655 ++#define bfd_merge_private_bfd_data(ibfd, obfd) \
 1.40656 ++     BFD_SEND (obfd, _bfd_merge_private_bfd_data, \
 1.40657 ++               (ibfd, obfd))
 1.40658 ++bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
 1.40659 ++
 1.40660 ++#define bfd_set_private_flags(abfd, flags) \
 1.40661 ++     BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
 1.40662 ++#define bfd_sizeof_headers(abfd, info) \
 1.40663 ++       BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info))
 1.40664 ++
 1.40665 ++#define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
 1.40666 ++       BFD_SEND (abfd, _bfd_find_nearest_line, \
 1.40667 ++                 (abfd, sec, syms, off, file, func, line))
 1.40668 ++
 1.40669 ++#define bfd_find_line(abfd, syms, sym, file, line) \
 1.40670 ++       BFD_SEND (abfd, _bfd_find_line, \
 1.40671 ++                 (abfd, syms, sym, file, line))
 1.40672 ++
 1.40673 ++#define bfd_find_inliner_info(abfd, file, func, line) \
 1.40674 ++       BFD_SEND (abfd, _bfd_find_inliner_info, \
 1.40675 ++                 (abfd, file, func, line))
 1.40676 ++
 1.40677 ++#define bfd_debug_info_start(abfd) \
 1.40678 ++       BFD_SEND (abfd, _bfd_debug_info_start, (abfd))
 1.40679 ++
 1.40680 ++#define bfd_debug_info_end(abfd) \
 1.40681 ++       BFD_SEND (abfd, _bfd_debug_info_end, (abfd))
 1.40682 ++
 1.40683 ++#define bfd_debug_info_accumulate(abfd, section) \
 1.40684 ++       BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))
 1.40685 ++
 1.40686 ++#define bfd_stat_arch_elt(abfd, stat) \
 1.40687 ++       BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat))
 1.40688 ++
 1.40689 ++#define bfd_update_armap_timestamp(abfd) \
 1.40690 ++       BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))
 1.40691 ++
 1.40692 ++#define bfd_set_arch_mach(abfd, arch, mach)\
 1.40693 ++       BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach))
 1.40694 ++
 1.40695 ++#define bfd_relax_section(abfd, section, link_info, again) \
 1.40696 ++       BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again))
 1.40697 ++
 1.40698 ++#define bfd_gc_sections(abfd, link_info) \
 1.40699 ++       BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info))
 1.40700 ++
 1.40701 ++#define bfd_merge_sections(abfd, link_info) \
 1.40702 ++       BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))
 1.40703 ++
 1.40704 ++#define bfd_is_group_section(abfd, sec) \
 1.40705 ++       BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
 1.40706 ++
 1.40707 ++#define bfd_discard_group(abfd, sec) \
 1.40708 ++       BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
 1.40709 ++
 1.40710 ++#define bfd_link_hash_table_create(abfd) \
 1.40711 ++       BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
 1.40712 ++
 1.40713 ++#define bfd_link_hash_table_free(abfd, hash) \
 1.40714 ++       BFD_SEND (abfd, _bfd_link_hash_table_free, (hash))
 1.40715 ++
 1.40716 ++#define bfd_link_add_symbols(abfd, info) \
 1.40717 ++       BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
 1.40718 ++
 1.40719 ++#define bfd_link_just_syms(abfd, sec, info) \
 1.40720 ++       BFD_SEND (abfd, _bfd_link_just_syms, (sec, info))
 1.40721 ++
 1.40722 ++#define bfd_final_link(abfd, info) \
 1.40723 ++       BFD_SEND (abfd, _bfd_final_link, (abfd, info))
 1.40724 ++
 1.40725 ++#define bfd_free_cached_info(abfd) \
 1.40726 ++       BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
 1.40727 ++
 1.40728 ++#define bfd_get_dynamic_symtab_upper_bound(abfd) \
 1.40729 ++       BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd))
 1.40730 ++
 1.40731 ++#define bfd_print_private_bfd_data(abfd, file)\
 1.40732 ++       BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file))
 1.40733 ++
 1.40734 ++#define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \
 1.40735 ++       BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols))
 1.40736 ++
 1.40737 ++#define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \
 1.40738 ++       BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \
 1.40739 ++                                                   dyncount, dynsyms, ret))
 1.40740 ++
 1.40741 ++#define bfd_get_dynamic_reloc_upper_bound(abfd) \
 1.40742 ++       BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd))
 1.40743 ++
 1.40744 ++#define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \
 1.40745 ++       BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms))
 1.40746 ++
 1.40747 ++extern bfd_byte *bfd_get_relocated_section_contents
 1.40748 ++  (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
 1.40749 ++   bfd_boolean, asymbol **);
 1.40750 ++
 1.40751 ++bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative);
 1.40752 ++
 1.40753 ++struct bfd_preserve
 1.40754 ++{
 1.40755 ++  void *marker;
 1.40756 ++  void *tdata;
 1.40757 ++  flagword flags;
 1.40758 ++  const struct bfd_arch_info *arch_info;
 1.40759 ++  struct bfd_section *sections;
 1.40760 ++  struct bfd_section *section_last;
 1.40761 ++  unsigned int section_count;
 1.40762 ++  struct bfd_hash_table section_htab;
 1.40763 ++};
 1.40764 ++
 1.40765 ++bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *);
 1.40766 ++
 1.40767 ++void bfd_preserve_restore (bfd *, struct bfd_preserve *);
 1.40768 ++
 1.40769 ++void bfd_preserve_finish (bfd *, struct bfd_preserve *);
 1.40770 ++
 1.40771 ++bfd_vma bfd_emul_get_maxpagesize (const char *);
 1.40772 ++
 1.40773 ++void bfd_emul_set_maxpagesize (const char *, bfd_vma);
 1.40774 ++
 1.40775 ++bfd_vma bfd_emul_get_commonpagesize (const char *);
 1.40776 ++
 1.40777 ++void bfd_emul_set_commonpagesize (const char *, bfd_vma);
 1.40778 ++
 1.40779 ++char *bfd_demangle (bfd *, const char *, int);
 1.40780 ++
 1.40781 ++/* Extracted from archive.c.  */
 1.40782 ++symindex bfd_get_next_mapent
 1.40783 ++   (bfd *abfd, symindex previous, carsym **sym);
 1.40784 ++
 1.40785 ++bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head);
 1.40786 ++
 1.40787 ++bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
 1.40788 ++
 1.40789 ++/* Extracted from corefile.c.  */
 1.40790 ++const char *bfd_core_file_failing_command (bfd *abfd);
 1.40791 ++
 1.40792 ++int bfd_core_file_failing_signal (bfd *abfd);
 1.40793 ++
 1.40794 ++bfd_boolean core_file_matches_executable_p
 1.40795 ++   (bfd *core_bfd, bfd *exec_bfd);
 1.40796 ++
 1.40797 ++bfd_boolean generic_core_file_matches_executable_p
 1.40798 ++   (bfd *core_bfd, bfd *exec_bfd);
 1.40799 ++
 1.40800 ++/* Extracted from targets.c.  */
 1.40801 ++#define BFD_SEND(bfd, message, arglist) \
 1.40802 ++  ((*((bfd)->xvec->message)) arglist)
 1.40803 ++
 1.40804 ++#ifdef DEBUG_BFD_SEND
 1.40805 ++#undef BFD_SEND
 1.40806 ++#define BFD_SEND(bfd, message, arglist) \
 1.40807 ++  (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
 1.40808 ++    ((*((bfd)->xvec->message)) arglist) : \
 1.40809 ++    (bfd_assert (__FILE__,__LINE__), NULL))
 1.40810 ++#endif
 1.40811 ++#define BFD_SEND_FMT(bfd, message, arglist) \
 1.40812 ++  (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
 1.40813 ++
 1.40814 ++#ifdef DEBUG_BFD_SEND
 1.40815 ++#undef BFD_SEND_FMT
 1.40816 ++#define BFD_SEND_FMT(bfd, message, arglist) \
 1.40817 ++  (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
 1.40818 ++   (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \
 1.40819 ++   (bfd_assert (__FILE__,__LINE__), NULL))
 1.40820 ++#endif
 1.40821 ++
 1.40822 ++enum bfd_flavour
 1.40823 ++{
 1.40824 ++  bfd_target_unknown_flavour,
 1.40825 ++  bfd_target_aout_flavour,
 1.40826 ++  bfd_target_coff_flavour,
 1.40827 ++  bfd_target_ecoff_flavour,
 1.40828 ++  bfd_target_xcoff_flavour,
 1.40829 ++  bfd_target_elf_flavour,
 1.40830 ++  bfd_target_ieee_flavour,
 1.40831 ++  bfd_target_nlm_flavour,
 1.40832 ++  bfd_target_oasys_flavour,
 1.40833 ++  bfd_target_tekhex_flavour,
 1.40834 ++  bfd_target_srec_flavour,
 1.40835 ++  bfd_target_ihex_flavour,
 1.40836 ++  bfd_target_som_flavour,
 1.40837 ++  bfd_target_os9k_flavour,
 1.40838 ++  bfd_target_versados_flavour,
 1.40839 ++  bfd_target_msdos_flavour,
 1.40840 ++  bfd_target_ovax_flavour,
 1.40841 ++  bfd_target_evax_flavour,
 1.40842 ++  bfd_target_mmo_flavour,
 1.40843 ++  bfd_target_mach_o_flavour,
 1.40844 ++  bfd_target_pef_flavour,
 1.40845 ++  bfd_target_pef_xlib_flavour,
 1.40846 ++  bfd_target_sym_flavour
 1.40847 ++};
 1.40848 ++
 1.40849 ++enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN };
 1.40850 ++
 1.40851 ++/* Forward declaration.  */
 1.40852 ++typedef struct bfd_link_info _bfd_link_info;
 1.40853 ++
 1.40854 ++typedef struct bfd_target
 1.40855 ++{
 1.40856 ++  /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc.  */
 1.40857 ++  char *name;
 1.40858 ++
 1.40859 ++ /* The "flavour" of a back end is a general indication about
 1.40860 ++    the contents of a file.  */
 1.40861 ++  enum bfd_flavour flavour;
 1.40862 ++
 1.40863 ++  /* The order of bytes within the data area of a file.  */
 1.40864 ++  enum bfd_endian byteorder;
 1.40865 ++
 1.40866 ++ /* The order of bytes within the header parts of a file.  */
 1.40867 ++  enum bfd_endian header_byteorder;
 1.40868 ++
 1.40869 ++  /* A mask of all the flags which an executable may have set -
 1.40870 ++     from the set <<BFD_NO_FLAGS>>, <<HAS_RELOC>>, ...<<D_PAGED>>.  */
 1.40871 ++  flagword object_flags;
 1.40872 ++
 1.40873 ++ /* A mask of all the flags which a section may have set - from
 1.40874 ++    the set <<SEC_NO_FLAGS>>, <<SEC_ALLOC>>, ...<<SET_NEVER_LOAD>>.  */
 1.40875 ++  flagword section_flags;
 1.40876 ++
 1.40877 ++ /* The character normally found at the front of a symbol.
 1.40878 ++    (if any), perhaps `_'.  */
 1.40879 ++  char symbol_leading_char;
 1.40880 ++
 1.40881 ++ /* The pad character for file names within an archive header.  */
 1.40882 ++  char ar_pad_char;
 1.40883 ++
 1.40884 ++  /* The maximum number of characters in an archive header.  */
 1.40885 ++  unsigned short ar_max_namelen;
 1.40886 ++
 1.40887 ++  /* Entries for byte swapping for data. These are different from the
 1.40888 ++     other entry points, since they don't take a BFD as the first argument.
 1.40889 ++     Certain other handlers could do the same.  */
 1.40890 ++  bfd_uint64_t   (*bfd_getx64) (const void *);
 1.40891 ++  bfd_int64_t    (*bfd_getx_signed_64) (const void *);
 1.40892 ++  void           (*bfd_putx64) (bfd_uint64_t, void *);
 1.40893 ++  bfd_vma        (*bfd_getx32) (const void *);
 1.40894 ++  bfd_signed_vma (*bfd_getx_signed_32) (const void *);
 1.40895 ++  void           (*bfd_putx32) (bfd_vma, void *);
 1.40896 ++  bfd_vma        (*bfd_getx16) (const void *);
 1.40897 ++  bfd_signed_vma (*bfd_getx_signed_16) (const void *);
 1.40898 ++  void           (*bfd_putx16) (bfd_vma, void *);
 1.40899 ++
 1.40900 ++  /* Byte swapping for the headers.  */
 1.40901 ++  bfd_uint64_t   (*bfd_h_getx64) (const void *);
 1.40902 ++  bfd_int64_t    (*bfd_h_getx_signed_64) (const void *);
 1.40903 ++  void           (*bfd_h_putx64) (bfd_uint64_t, void *);
 1.40904 ++  bfd_vma        (*bfd_h_getx32) (const void *);
 1.40905 ++  bfd_signed_vma (*bfd_h_getx_signed_32) (const void *);
 1.40906 ++  void           (*bfd_h_putx32) (bfd_vma, void *);
 1.40907 ++  bfd_vma        (*bfd_h_getx16) (const void *);
 1.40908 ++  bfd_signed_vma (*bfd_h_getx_signed_16) (const void *);
 1.40909 ++  void           (*bfd_h_putx16) (bfd_vma, void *);
 1.40910 ++
 1.40911 ++  /* Format dependent routines: these are vectors of entry points
 1.40912 ++     within the target vector structure, one for each format to check.  */
 1.40913 ++
 1.40914 ++  /* Check the format of a file being read.  Return a <<bfd_target *>> or zero.  */
 1.40915 ++  const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
 1.40916 ++
 1.40917 ++  /* Set the format of a file being written.  */
 1.40918 ++  bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
 1.40919 ++
 1.40920 ++  /* Write cached information into a file being written, at <<bfd_close>>.  */
 1.40921 ++  bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *);
 1.40922 ++
 1.40923 ++
 1.40924 ++  /* Generic entry points.  */
 1.40925 ++#define BFD_JUMP_TABLE_GENERIC(NAME) \
 1.40926 ++  NAME##_close_and_cleanup, \
 1.40927 ++  NAME##_bfd_free_cached_info, \
 1.40928 ++  NAME##_new_section_hook, \
 1.40929 ++  NAME##_get_section_contents, \
 1.40930 ++  NAME##_get_section_contents_in_window
 1.40931 ++
 1.40932 ++  /* Called when the BFD is being closed to do any necessary cleanup.  */
 1.40933 ++  bfd_boolean (*_close_and_cleanup) (bfd *);
 1.40934 ++  /* Ask the BFD to free all cached information.  */
 1.40935 ++  bfd_boolean (*_bfd_free_cached_info) (bfd *);
 1.40936 ++  /* Called when a new section is created.  */
 1.40937 ++  bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
 1.40938 ++  /* Read the contents of a section.  */
 1.40939 ++  bfd_boolean (*_bfd_get_section_contents)
 1.40940 ++    (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
 1.40941 ++  bfd_boolean (*_bfd_get_section_contents_in_window)
 1.40942 ++    (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
 1.40943 ++
 1.40944 ++  /* Entry points to copy private data.  */
 1.40945 ++#define BFD_JUMP_TABLE_COPY(NAME) \
 1.40946 ++  NAME##_bfd_copy_private_bfd_data, \
 1.40947 ++  NAME##_bfd_merge_private_bfd_data, \
 1.40948 ++  _bfd_generic_init_private_section_data, \
 1.40949 ++  NAME##_bfd_copy_private_section_data, \
 1.40950 ++  NAME##_bfd_copy_private_symbol_data, \
 1.40951 ++  NAME##_bfd_copy_private_header_data, \
 1.40952 ++  NAME##_bfd_set_private_flags, \
 1.40953 ++  NAME##_bfd_print_private_bfd_data
 1.40954 ++
 1.40955 ++  /* Called to copy BFD general private data from one object file
 1.40956 ++     to another.  */
 1.40957 ++  bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
 1.40958 ++  /* Called to merge BFD general private data from one object file
 1.40959 ++     to a common output file when linking.  */
 1.40960 ++  bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *);
 1.40961 ++  /* Called to initialize BFD private section data from one object file
 1.40962 ++     to another.  */
 1.40963 ++#define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \
 1.40964 ++  BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info))
 1.40965 ++  bfd_boolean (*_bfd_init_private_section_data)
 1.40966 ++    (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *);
 1.40967 ++  /* Called to copy BFD private section data from one object file
 1.40968 ++     to another.  */
 1.40969 ++  bfd_boolean (*_bfd_copy_private_section_data)
 1.40970 ++    (bfd *, sec_ptr, bfd *, sec_ptr);
 1.40971 ++  /* Called to copy BFD private symbol data from one symbol
 1.40972 ++     to another.  */
 1.40973 ++  bfd_boolean (*_bfd_copy_private_symbol_data)
 1.40974 ++    (bfd *, asymbol *, bfd *, asymbol *);
 1.40975 ++  /* Called to copy BFD private header data from one object file
 1.40976 ++     to another.  */
 1.40977 ++  bfd_boolean (*_bfd_copy_private_header_data)
 1.40978 ++    (bfd *, bfd *);
 1.40979 ++  /* Called to set private backend flags.  */
 1.40980 ++  bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
 1.40981 ++
 1.40982 ++  /* Called to print private BFD data.  */
 1.40983 ++  bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *);
 1.40984 ++
 1.40985 ++  /* Core file entry points.  */
 1.40986 ++#define BFD_JUMP_TABLE_CORE(NAME) \
 1.40987 ++  NAME##_core_file_failing_command, \
 1.40988 ++  NAME##_core_file_failing_signal, \
 1.40989 ++  NAME##_core_file_matches_executable_p
 1.40990 ++
 1.40991 ++  char *      (*_core_file_failing_command) (bfd *);
 1.40992 ++  int         (*_core_file_failing_signal) (bfd *);
 1.40993 ++  bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *);
 1.40994 ++
 1.40995 ++  /* Archive entry points.  */
 1.40996 ++#define BFD_JUMP_TABLE_ARCHIVE(NAME) \
 1.40997 ++  NAME##_slurp_armap, \
 1.40998 ++  NAME##_slurp_extended_name_table, \
 1.40999 ++  NAME##_construct_extended_name_table, \
 1.41000 ++  NAME##_truncate_arname, \
 1.41001 ++  NAME##_write_armap, \
 1.41002 ++  NAME##_read_ar_hdr, \
 1.41003 ++  NAME##_openr_next_archived_file, \
 1.41004 ++  NAME##_get_elt_at_index, \
 1.41005 ++  NAME##_generic_stat_arch_elt, \
 1.41006 ++  NAME##_update_armap_timestamp
 1.41007 ++
 1.41008 ++  bfd_boolean (*_bfd_slurp_armap) (bfd *);
 1.41009 ++  bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
 1.41010 ++  bfd_boolean (*_bfd_construct_extended_name_table)
 1.41011 ++    (bfd *, char **, bfd_size_type *, const char **);
 1.41012 ++  void        (*_bfd_truncate_arname) (bfd *, const char *, char *);
 1.41013 ++  bfd_boolean (*write_armap)
 1.41014 ++    (bfd *, unsigned int, struct orl *, unsigned int, int);
 1.41015 ++  void *      (*_bfd_read_ar_hdr_fn) (bfd *);
 1.41016 ++  bfd *       (*openr_next_archived_file) (bfd *, bfd *);
 1.41017 ++#define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
 1.41018 ++  bfd *       (*_bfd_get_elt_at_index) (bfd *, symindex);
 1.41019 ++  int         (*_bfd_stat_arch_elt) (bfd *, struct stat *);
 1.41020 ++  bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
 1.41021 ++
 1.41022 ++  /* Entry points used for symbols.  */
 1.41023 ++#define BFD_JUMP_TABLE_SYMBOLS(NAME) \
 1.41024 ++  NAME##_get_symtab_upper_bound, \
 1.41025 ++  NAME##_canonicalize_symtab, \
 1.41026 ++  NAME##_make_empty_symbol, \
 1.41027 ++  NAME##_print_symbol, \
 1.41028 ++  NAME##_get_symbol_info, \
 1.41029 ++  NAME##_bfd_is_local_label_name, \
 1.41030 ++  NAME##_bfd_is_target_special_symbol, \
 1.41031 ++  NAME##_get_lineno, \
 1.41032 ++  NAME##_find_nearest_line, \
 1.41033 ++  _bfd_generic_find_line, \
 1.41034 ++  NAME##_find_inliner_info, \
 1.41035 ++  NAME##_bfd_make_debug_symbol, \
 1.41036 ++  NAME##_read_minisymbols, \
 1.41037 ++  NAME##_minisymbol_to_symbol
 1.41038 ++
 1.41039 ++  long        (*_bfd_get_symtab_upper_bound) (bfd *);
 1.41040 ++  long        (*_bfd_canonicalize_symtab)
 1.41041 ++    (bfd *, struct bfd_symbol **);
 1.41042 ++  struct bfd_symbol *
 1.41043 ++              (*_bfd_make_empty_symbol) (bfd *);
 1.41044 ++  void        (*_bfd_print_symbol)
 1.41045 ++    (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
 1.41046 ++#define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
 1.41047 ++  void        (*_bfd_get_symbol_info)
 1.41048 ++    (bfd *, struct bfd_symbol *, symbol_info *);
 1.41049 ++#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
 1.41050 ++  bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
 1.41051 ++  bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
 1.41052 ++  alent *     (*_get_lineno) (bfd *, struct bfd_symbol *);
 1.41053 ++  bfd_boolean (*_bfd_find_nearest_line)
 1.41054 ++    (bfd *, struct bfd_section *, struct bfd_symbol **, bfd_vma,
 1.41055 ++     const char **, const char **, unsigned int *);
 1.41056 ++  bfd_boolean (*_bfd_find_line)
 1.41057 ++    (bfd *, struct bfd_symbol **, struct bfd_symbol *,
 1.41058 ++     const char **, unsigned int *);
 1.41059 ++  bfd_boolean (*_bfd_find_inliner_info)
 1.41060 ++    (bfd *, const char **, const char **, unsigned int *);
 1.41061 ++ /* Back-door to allow format-aware applications to create debug symbols
 1.41062 ++    while using BFD for everything else.  Currently used by the assembler
 1.41063 ++    when creating COFF files.  */
 1.41064 ++  asymbol *   (*_bfd_make_debug_symbol)
 1.41065 ++    (bfd *, void *, unsigned long size);
 1.41066 ++#define bfd_read_minisymbols(b, d, m, s) \
 1.41067 ++  BFD_SEND (b, _read_minisymbols, (b, d, m, s))
 1.41068 ++  long        (*_read_minisymbols)
 1.41069 ++    (bfd *, bfd_boolean, void **, unsigned int *);
 1.41070 ++#define bfd_minisymbol_to_symbol(b, d, m, f) \
 1.41071 ++  BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
 1.41072 ++  asymbol *   (*_minisymbol_to_symbol)
 1.41073 ++    (bfd *, bfd_boolean, const void *, asymbol *);
 1.41074 ++
 1.41075 ++  /* Routines for relocs.  */
 1.41076 ++#define BFD_JUMP_TABLE_RELOCS(NAME) \
 1.41077 ++  NAME##_get_reloc_upper_bound, \
 1.41078 ++  NAME##_canonicalize_reloc, \
 1.41079 ++  NAME##_bfd_reloc_type_lookup, \
 1.41080 ++  NAME##_bfd_reloc_name_lookup
 1.41081 ++
 1.41082 ++  long        (*_get_reloc_upper_bound) (bfd *, sec_ptr);
 1.41083 ++  long        (*_bfd_canonicalize_reloc)
 1.41084 ++    (bfd *, sec_ptr, arelent **, struct bfd_symbol **);
 1.41085 ++  /* See documentation on reloc types.  */
 1.41086 ++  reloc_howto_type *
 1.41087 ++              (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
 1.41088 ++  reloc_howto_type *
 1.41089 ++              (*reloc_name_lookup) (bfd *, const char *);
 1.41090 ++
 1.41091 ++
 1.41092 ++  /* Routines used when writing an object file.  */
 1.41093 ++#define BFD_JUMP_TABLE_WRITE(NAME) \
 1.41094 ++  NAME##_set_arch_mach, \
 1.41095 ++  NAME##_set_section_contents
 1.41096 ++
 1.41097 ++  bfd_boolean (*_bfd_set_arch_mach)
 1.41098 ++    (bfd *, enum bfd_architecture, unsigned long);
 1.41099 ++  bfd_boolean (*_bfd_set_section_contents)
 1.41100 ++    (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
 1.41101 ++
 1.41102 ++  /* Routines used by the linker.  */
 1.41103 ++#define BFD_JUMP_TABLE_LINK(NAME) \
 1.41104 ++  NAME##_sizeof_headers, \
 1.41105 ++  NAME##_bfd_get_relocated_section_contents, \
 1.41106 ++  NAME##_bfd_relax_section, \
 1.41107 ++  NAME##_bfd_link_hash_table_create, \
 1.41108 ++  NAME##_bfd_link_hash_table_free, \
 1.41109 ++  NAME##_bfd_link_add_symbols, \
 1.41110 ++  NAME##_bfd_link_just_syms, \
 1.41111 ++  NAME##_bfd_final_link, \
 1.41112 ++  NAME##_bfd_link_split_section, \
 1.41113 ++  NAME##_bfd_gc_sections, \
 1.41114 ++  NAME##_bfd_merge_sections, \
 1.41115 ++  NAME##_bfd_is_group_section, \
 1.41116 ++  NAME##_bfd_discard_group, \
 1.41117 ++  NAME##_section_already_linked \
 1.41118 ++
 1.41119 ++  int         (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *);
 1.41120 ++  bfd_byte *  (*_bfd_get_relocated_section_contents)
 1.41121 ++    (bfd *, struct bfd_link_info *, struct bfd_link_order *,
 1.41122 ++     bfd_byte *, bfd_boolean, struct bfd_symbol **);
 1.41123 ++
 1.41124 ++  bfd_boolean (*_bfd_relax_section)
 1.41125 ++    (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *);
 1.41126 ++
 1.41127 ++  /* Create a hash table for the linker.  Different backends store
 1.41128 ++     different information in this table.  */
 1.41129 ++  struct bfd_link_hash_table *
 1.41130 ++              (*_bfd_link_hash_table_create) (bfd *);
 1.41131 ++
 1.41132 ++  /* Release the memory associated with the linker hash table.  */
 1.41133 ++  void        (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *);
 1.41134 ++
 1.41135 ++  /* Add symbols from this object file into the hash table.  */
 1.41136 ++  bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
 1.41137 ++
 1.41138 ++  /* Indicate that we are only retrieving symbol values from this section.  */
 1.41139 ++  void        (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
 1.41140 ++
 1.41141 ++  /* Do a link based on the link_order structures attached to each
 1.41142 ++     section of the BFD.  */
 1.41143 ++  bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *);
 1.41144 ++
 1.41145 ++  /* Should this section be split up into smaller pieces during linking.  */
 1.41146 ++  bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *);
 1.41147 ++
 1.41148 ++  /* Remove sections that are not referenced from the output.  */
 1.41149 ++  bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
 1.41150 ++
 1.41151 ++  /* Attempt to merge SEC_MERGE sections.  */
 1.41152 ++  bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
 1.41153 ++
 1.41154 ++  /* Is this section a member of a group?  */
 1.41155 ++  bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
 1.41156 ++
 1.41157 ++  /* Discard members of a group.  */
 1.41158 ++  bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
 1.41159 ++
 1.41160 ++  /* Check if SEC has been already linked during a reloceatable or
 1.41161 ++     final link.  */
 1.41162 ++  void (*_section_already_linked) (bfd *, struct bfd_section *,
 1.41163 ++                                   struct bfd_link_info *);
 1.41164 ++
 1.41165 ++  /* Routines to handle dynamic symbols and relocs.  */
 1.41166 ++#define BFD_JUMP_TABLE_DYNAMIC(NAME) \
 1.41167 ++  NAME##_get_dynamic_symtab_upper_bound, \
 1.41168 ++  NAME##_canonicalize_dynamic_symtab, \
 1.41169 ++  NAME##_get_synthetic_symtab, \
 1.41170 ++  NAME##_get_dynamic_reloc_upper_bound, \
 1.41171 ++  NAME##_canonicalize_dynamic_reloc
 1.41172 ++
 1.41173 ++  /* Get the amount of memory required to hold the dynamic symbols.  */
 1.41174 ++  long        (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
 1.41175 ++  /* Read in the dynamic symbols.  */
 1.41176 ++  long        (*_bfd_canonicalize_dynamic_symtab)
 1.41177 ++    (bfd *, struct bfd_symbol **);
 1.41178 ++  /* Create synthetized symbols.  */
 1.41179 ++  long        (*_bfd_get_synthetic_symtab)
 1.41180 ++    (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **,
 1.41181 ++     struct bfd_symbol **);
 1.41182 ++  /* Get the amount of memory required to hold the dynamic relocs.  */
 1.41183 ++  long        (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
 1.41184 ++  /* Read in the dynamic relocs.  */
 1.41185 ++  long        (*_bfd_canonicalize_dynamic_reloc)
 1.41186 ++    (bfd *, arelent **, struct bfd_symbol **);
 1.41187 ++
 1.41188 ++  /* Opposite endian version of this target.  */
 1.41189 ++  const struct bfd_target * alternative_target;
 1.41190 ++
 1.41191 ++  /* Data for use by back-end routines, which isn't
 1.41192 ++     generic enough to belong in this structure.  */
 1.41193 ++  const void *backend_data;
 1.41194 ++
 1.41195 ++} bfd_target;
 1.41196 ++
 1.41197 ++bfd_boolean bfd_set_default_target (const char *name);
 1.41198 ++
 1.41199 ++const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
 1.41200 ++
 1.41201 ++const char ** bfd_target_list (void);
 1.41202 ++
 1.41203 ++const bfd_target *bfd_search_for_target
 1.41204 ++   (int (*search_func) (const bfd_target *, void *),
 1.41205 ++    void *);
 1.41206 ++
 1.41207 ++/* Extracted from format.c.  */
 1.41208 ++bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
 1.41209 ++
 1.41210 ++bfd_boolean bfd_check_format_matches
 1.41211 ++   (bfd *abfd, bfd_format format, char ***matching);
 1.41212 ++
 1.41213 ++bfd_boolean bfd_set_format (bfd *abfd, bfd_format format);
 1.41214 ++
 1.41215 ++const char *bfd_format_string (bfd_format format);
 1.41216 ++
 1.41217 ++/* Extracted from linker.c.  */
 1.41218 ++bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
 1.41219 ++
 1.41220 ++#define bfd_link_split_section(abfd, sec) \
 1.41221 ++       BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
 1.41222 ++
 1.41223 ++void bfd_section_already_linked (bfd *abfd, asection *sec,
 1.41224 ++    struct bfd_link_info *info);
 1.41225 ++
 1.41226 ++#define bfd_section_already_linked(abfd, sec, info) \
 1.41227 ++       BFD_SEND (abfd, _section_already_linked, (abfd, sec, info))
 1.41228 ++
 1.41229 ++/* Extracted from simple.c.  */
 1.41230 ++bfd_byte *bfd_simple_get_relocated_section_contents
 1.41231 ++   (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
 1.41232 ++
 1.41233 ++#ifdef __cplusplus
 1.41234 ++}
 1.41235 ++#endif
 1.41236 ++#endif
 1.41237 +--- /dev/null
 1.41238 ++++ b/bfd/doc/libbfd.h
 1.41239 +@@ -0,0 +1,2074 @@
 1.41240 ++/* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically 
 1.41241 ++   generated from "libbfd-in.h", "init.c", "libbfd.c", "bfdio.c", 
 1.41242 ++   "bfdwin.c", "cache.c", "reloc.c", "archures.c" and "elf.c".
 1.41243 ++   Run "make headers" in your build bfd/ to regenerate.  */
 1.41244 ++
 1.41245 ++/* libbfd.h -- Declarations used by bfd library *implementation*.
 1.41246 ++   (This include file is not for users of the library.)
 1.41247 ++
 1.41248 ++   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
 1.41249 ++   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 1.41250 ++   Free Software Foundation, Inc.
 1.41251 ++
 1.41252 ++   Written by Cygnus Support.
 1.41253 ++
 1.41254 ++   This file is part of BFD, the Binary File Descriptor library.
 1.41255 ++
 1.41256 ++   This program is free software; you can redistribute it and/or modify
 1.41257 ++   it under the terms of the GNU General Public License as published by
 1.41258 ++   the Free Software Foundation; either version 3 of the License, or
 1.41259 ++   (at your option) any later version.
 1.41260 ++
 1.41261 ++   This program is distributed in the hope that it will be useful,
 1.41262 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
 1.41263 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 1.41264 ++   GNU General Public License for more details.
 1.41265 ++
 1.41266 ++   You should have received a copy of the GNU General Public License
 1.41267 ++   along with this program; if not, write to the Free Software
 1.41268 ++   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
 1.41269 ++   MA 02110-1301, USA.  */
 1.41270 ++
 1.41271 ++#include "hashtab.h"
 1.41272 ++
 1.41273 ++/* Align an address upward to a boundary, expressed as a number of bytes.
 1.41274 ++   E.g. align to an 8-byte boundary with argument of 8.  Take care never
 1.41275 ++   to wrap around if the address is within boundary-1 of the end of the
 1.41276 ++   address space.  */
 1.41277 ++#define BFD_ALIGN(this, boundary)					  \
 1.41278 ++  ((((bfd_vma) (this) + (boundary) - 1) >= (bfd_vma) (this))		  \
 1.41279 ++   ? (((bfd_vma) (this) + ((boundary) - 1)) & ~ (bfd_vma) ((boundary)-1)) \
 1.41280 ++   : ~ (bfd_vma) 0)
 1.41281 ++
 1.41282 ++/* If you want to read and write large blocks, you might want to do it
 1.41283 ++   in quanta of this amount */
 1.41284 ++#define DEFAULT_BUFFERSIZE 8192
 1.41285 ++
 1.41286 ++/* Set a tdata field.  Can't use the other macros for this, since they
 1.41287 ++   do casts, and casting to the left of assignment isn't portable.  */
 1.41288 ++#define set_tdata(bfd, v) ((bfd)->tdata.any = (v))
 1.41289 ++
 1.41290 ++/* If BFD_IN_MEMORY is set for a BFD, then the iostream fields points
 1.41291 ++   to an instance of this structure.  */
 1.41292 ++
 1.41293 ++struct bfd_in_memory
 1.41294 ++{
 1.41295 ++  /* Size of buffer.  */
 1.41296 ++  bfd_size_type size;
 1.41297 ++  /* Buffer holding contents of BFD.  */
 1.41298 ++  bfd_byte *buffer;
 1.41299 ++};
 1.41300 ++
 1.41301 ++struct section_hash_entry
 1.41302 ++{
 1.41303 ++  struct bfd_hash_entry root;
 1.41304 ++  asection section;
 1.41305 ++};
 1.41306 ++
 1.41307 ++/* tdata for an archive.  For an input archive, cache
 1.41308 ++   needs to be free()'d.  For an output archive, symdefs do.  */
 1.41309 ++
 1.41310 ++struct artdata {
 1.41311 ++  file_ptr first_file_filepos;
 1.41312 ++  /* Speed up searching the armap */
 1.41313 ++  htab_t cache;
 1.41314 ++  bfd *archive_head;		/* Only interesting in output routines */
 1.41315 ++  carsym *symdefs;		/* the symdef entries */
 1.41316 ++  symindex symdef_count;	/* how many there are */
 1.41317 ++  char *extended_names;		/* clever intel extension */
 1.41318 ++  bfd_size_type extended_names_size; /* Size of extended names */
 1.41319 ++  /* when more compilers are standard C, this can be a time_t */
 1.41320 ++  long  armap_timestamp;	/* Timestamp value written into armap.
 1.41321 ++				   This is used for BSD archives to check
 1.41322 ++				   that the timestamp is recent enough
 1.41323 ++				   for the BSD linker to not complain,
 1.41324 ++				   just before we finish writing an
 1.41325 ++				   archive.  */
 1.41326 ++  file_ptr armap_datepos;	/* Position within archive to seek to
 1.41327 ++				   rewrite the date field.  */
 1.41328 ++  void *tdata;			/* Backend specific information.  */
 1.41329 ++};
 1.41330 ++
 1.41331 ++#define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data)
 1.41332 ++
 1.41333 ++/* Goes in bfd's arelt_data slot */
 1.41334 ++struct areltdata {
 1.41335 ++  char * arch_header;		/* it's actually a string */
 1.41336 ++  unsigned int parsed_size;	/* octets of filesize not including ar_hdr */
 1.41337 ++  char *filename;		/* null-terminated */
 1.41338 ++};
 1.41339 ++
 1.41340 ++#define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size)
 1.41341 ++
 1.41342 ++extern void *bfd_malloc
 1.41343 ++  (bfd_size_type);
 1.41344 ++extern void *bfd_realloc
 1.41345 ++  (void *, bfd_size_type);
 1.41346 ++extern void *bfd_zmalloc
 1.41347 ++  (bfd_size_type);
 1.41348 ++extern void *bfd_malloc2
 1.41349 ++  (bfd_size_type, bfd_size_type);
 1.41350 ++extern void *bfd_realloc2
 1.41351 ++  (void *, bfd_size_type, bfd_size_type);
 1.41352 ++extern void *bfd_zmalloc2
 1.41353 ++  (bfd_size_type, bfd_size_type);
 1.41354 ++
 1.41355 ++extern void _bfd_default_error_handler (const char *s, ...);
 1.41356 ++extern bfd_error_handler_type _bfd_error_handler;
 1.41357 ++
 1.41358 ++/* These routines allocate and free things on the BFD's objalloc.  */
 1.41359 ++
 1.41360 ++extern void *bfd_alloc
 1.41361 ++  (bfd *, bfd_size_type);
 1.41362 ++extern void *bfd_zalloc
 1.41363 ++  (bfd *, bfd_size_type);
 1.41364 ++extern void *bfd_alloc2
 1.41365 ++  (bfd *, bfd_size_type, bfd_size_type);
 1.41366 ++extern void *bfd_zalloc2
 1.41367 ++  (bfd *, bfd_size_type, bfd_size_type);
 1.41368 ++extern void bfd_release
 1.41369 ++  (bfd *, void *);
 1.41370 ++
 1.41371 ++bfd * _bfd_create_empty_archive_element_shell
 1.41372 ++  (bfd *obfd);
 1.41373 ++bfd * _bfd_look_for_bfd_in_cache
 1.41374 ++  (bfd *, file_ptr);
 1.41375 ++bfd_boolean _bfd_add_bfd_to_archive_cache
 1.41376 ++  (bfd *, file_ptr, bfd *);
 1.41377 ++bfd_boolean _bfd_generic_mkarchive
 1.41378 ++  (bfd *abfd);
 1.41379 ++const bfd_target *bfd_generic_archive_p
 1.41380 ++  (bfd *abfd);
 1.41381 ++bfd_boolean bfd_slurp_armap
 1.41382 ++  (bfd *abfd);
 1.41383 ++bfd_boolean bfd_slurp_bsd_armap_f2
 1.41384 ++  (bfd *abfd);
 1.41385 ++#define bfd_slurp_bsd_armap bfd_slurp_armap
 1.41386 ++#define bfd_slurp_coff_armap bfd_slurp_armap
 1.41387 ++bfd_boolean _bfd_slurp_extended_name_table
 1.41388 ++  (bfd *abfd);
 1.41389 ++extern bfd_boolean _bfd_construct_extended_name_table
 1.41390 ++  (bfd *, bfd_boolean, char **, bfd_size_type *);
 1.41391 ++bfd_boolean _bfd_write_archive_contents
 1.41392 ++  (bfd *abfd);
 1.41393 ++bfd_boolean _bfd_compute_and_write_armap
 1.41394 ++  (bfd *, unsigned int elength);
 1.41395 ++bfd *_bfd_get_elt_at_filepos
 1.41396 ++  (bfd *archive, file_ptr filepos);
 1.41397 ++extern bfd *_bfd_generic_get_elt_at_index
 1.41398 ++  (bfd *, symindex);
 1.41399 ++bfd * _bfd_new_bfd
 1.41400 ++  (void);
 1.41401 ++void _bfd_delete_bfd
 1.41402 ++  (bfd *);
 1.41403 ++bfd_boolean _bfd_free_cached_info
 1.41404 ++  (bfd *);
 1.41405 ++
 1.41406 ++bfd_boolean bfd_false
 1.41407 ++  (bfd *ignore);
 1.41408 ++bfd_boolean bfd_true
 1.41409 ++  (bfd *ignore);
 1.41410 ++void *bfd_nullvoidptr
 1.41411 ++  (bfd *ignore);
 1.41412 ++int bfd_0
 1.41413 ++  (bfd *ignore);
 1.41414 ++unsigned int bfd_0u
 1.41415 ++  (bfd *ignore);
 1.41416 ++long bfd_0l
 1.41417 ++  (bfd *ignore);
 1.41418 ++long _bfd_n1
 1.41419 ++  (bfd *ignore);
 1.41420 ++void bfd_void
 1.41421 ++  (bfd *ignore);
 1.41422 ++
 1.41423 ++bfd *_bfd_new_bfd_contained_in
 1.41424 ++  (bfd *);
 1.41425 ++const bfd_target *_bfd_dummy_target
 1.41426 ++  (bfd *abfd);
 1.41427 ++
 1.41428 ++void bfd_dont_truncate_arname
 1.41429 ++  (bfd *abfd, const char *filename, char *hdr);
 1.41430 ++void bfd_bsd_truncate_arname
 1.41431 ++  (bfd *abfd, const char *filename, char *hdr);
 1.41432 ++void bfd_gnu_truncate_arname
 1.41433 ++  (bfd *abfd, const char *filename, char *hdr);
 1.41434 ++
 1.41435 ++bfd_boolean bsd_write_armap
 1.41436 ++  (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count,
 1.41437 ++   int stridx);
 1.41438 ++
 1.41439 ++bfd_boolean coff_write_armap
 1.41440 ++  (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count,
 1.41441 ++   int stridx);
 1.41442 ++
 1.41443 ++extern void *_bfd_generic_read_ar_hdr
 1.41444 ++  (bfd *);
 1.41445 ++extern void _bfd_ar_spacepad
 1.41446 ++  (char *, size_t, const char *, long);
 1.41447 ++
 1.41448 ++extern void *_bfd_generic_read_ar_hdr_mag
 1.41449 ++  (bfd *, const char *);
 1.41450 ++
 1.41451 ++bfd * bfd_generic_openr_next_archived_file
 1.41452 ++  (bfd *archive, bfd *last_file);
 1.41453 ++
 1.41454 ++int bfd_generic_stat_arch_elt
 1.41455 ++  (bfd *, struct stat *);
 1.41456 ++
 1.41457 ++#define _bfd_read_ar_hdr(abfd) \
 1.41458 ++  BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd))
 1.41459 ++
 1.41460 ++/* Generic routines to use for BFD_JUMP_TABLE_GENERIC.  Use
 1.41461 ++   BFD_JUMP_TABLE_GENERIC (_bfd_generic).  */
 1.41462 ++
 1.41463 ++#define _bfd_generic_close_and_cleanup bfd_true
 1.41464 ++#define _bfd_generic_bfd_free_cached_info bfd_true
 1.41465 ++extern bfd_boolean _bfd_generic_new_section_hook
 1.41466 ++  (bfd *, asection *);
 1.41467 ++extern bfd_boolean _bfd_generic_get_section_contents
 1.41468 ++  (bfd *, asection *, void *, file_ptr, bfd_size_type);
 1.41469 ++extern bfd_boolean _bfd_generic_get_section_contents_in_window
 1.41470 ++  (bfd *, asection *, bfd_window *, file_ptr, bfd_size_type);
 1.41471 ++
 1.41472 ++/* Generic routines to use for BFD_JUMP_TABLE_COPY.  Use
 1.41473 ++   BFD_JUMP_TABLE_COPY (_bfd_generic).  */
 1.41474 ++
 1.41475 ++#define _bfd_generic_bfd_copy_private_bfd_data \
 1.41476 ++  ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
 1.41477 ++#define _bfd_generic_bfd_merge_private_bfd_data \
 1.41478 ++  ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
 1.41479 ++#define _bfd_generic_bfd_set_private_flags \
 1.41480 ++  ((bfd_boolean (*) (bfd *, flagword)) bfd_true)
 1.41481 ++#define _bfd_generic_bfd_copy_private_section_data \
 1.41482 ++  ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true)
 1.41483 ++#define _bfd_generic_bfd_copy_private_symbol_data \
 1.41484 ++  ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true)
 1.41485 ++#define _bfd_generic_bfd_copy_private_header_data \
 1.41486 ++  ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
 1.41487 ++#define _bfd_generic_bfd_print_private_bfd_data \
 1.41488 ++  ((bfd_boolean (*) (bfd *, void *)) bfd_true)
 1.41489 ++
 1.41490 ++extern bfd_boolean _bfd_generic_init_private_section_data
 1.41491 ++  (bfd *, asection *, bfd *, asection *, struct bfd_link_info *);
 1.41492 ++
 1.41493 ++/* Routines to use for BFD_JUMP_TABLE_CORE when there is no core file
 1.41494 ++   support.  Use BFD_JUMP_TABLE_CORE (_bfd_nocore).  */
 1.41495 ++
 1.41496 ++extern char *_bfd_nocore_core_file_failing_command
 1.41497 ++  (bfd *);
 1.41498 ++extern int _bfd_nocore_core_file_failing_signal
 1.41499 ++  (bfd *);
 1.41500 ++extern bfd_boolean _bfd_nocore_core_file_matches_executable_p
 1.41501 ++  (bfd *, bfd *);
 1.41502 ++
 1.41503 ++/* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive
 1.41504 ++   file support.  Use BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive).  */
 1.41505 ++
 1.41506 ++#define _bfd_noarchive_slurp_armap bfd_false
 1.41507 ++#define _bfd_noarchive_slurp_extended_name_table bfd_false
 1.41508 ++#define _bfd_noarchive_construct_extended_name_table \
 1.41509 ++  ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) \
 1.41510 ++   bfd_false)
 1.41511 ++#define _bfd_noarchive_truncate_arname \
 1.41512 ++  ((void (*) (bfd *, const char *, char *)) bfd_void)
 1.41513 ++#define _bfd_noarchive_write_armap \
 1.41514 ++  ((bfd_boolean (*) (bfd *, unsigned int, struct orl *, unsigned int, int)) \
 1.41515 ++   bfd_false)
 1.41516 ++#define _bfd_noarchive_read_ar_hdr bfd_nullvoidptr
 1.41517 ++#define _bfd_noarchive_openr_next_archived_file \
 1.41518 ++  ((bfd *(*) (bfd *, bfd *)) bfd_nullvoidptr)
 1.41519 ++#define _bfd_noarchive_get_elt_at_index \
 1.41520 ++  ((bfd *(*) (bfd *, symindex)) bfd_nullvoidptr)
 1.41521 ++#define _bfd_noarchive_generic_stat_arch_elt bfd_generic_stat_arch_elt
 1.41522 ++#define _bfd_noarchive_update_armap_timestamp bfd_false
 1.41523 ++
 1.41524 ++/* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get BSD style
 1.41525 ++   archives.  Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_bsd).  */
 1.41526 ++
 1.41527 ++#define _bfd_archive_bsd_slurp_armap bfd_slurp_bsd_armap
 1.41528 ++#define _bfd_archive_bsd_slurp_extended_name_table \
 1.41529 ++  _bfd_slurp_extended_name_table
 1.41530 ++extern bfd_boolean _bfd_archive_bsd_construct_extended_name_table
 1.41531 ++  (bfd *, char **, bfd_size_type *, const char **);
 1.41532 ++#define _bfd_archive_bsd_truncate_arname bfd_bsd_truncate_arname
 1.41533 ++#define _bfd_archive_bsd_write_armap bsd_write_armap
 1.41534 ++#define _bfd_archive_bsd_read_ar_hdr _bfd_generic_read_ar_hdr
 1.41535 ++#define _bfd_archive_bsd_openr_next_archived_file \
 1.41536 ++  bfd_generic_openr_next_archived_file
 1.41537 ++#define _bfd_archive_bsd_get_elt_at_index _bfd_generic_get_elt_at_index
 1.41538 ++#define _bfd_archive_bsd_generic_stat_arch_elt \
 1.41539 ++  bfd_generic_stat_arch_elt
 1.41540 ++extern bfd_boolean _bfd_archive_bsd_update_armap_timestamp
 1.41541 ++  (bfd *);
 1.41542 ++
 1.41543 ++/* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get COFF style
 1.41544 ++   archives.  Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff).  */
 1.41545 ++
 1.41546 ++#define _bfd_archive_coff_slurp_armap bfd_slurp_coff_armap
 1.41547 ++#define _bfd_archive_coff_slurp_extended_name_table \
 1.41548 ++  _bfd_slurp_extended_name_table
 1.41549 ++extern bfd_boolean _bfd_archive_coff_construct_extended_name_table
 1.41550 ++  (bfd *, char **, bfd_size_type *, const char **);
 1.41551 ++#define _bfd_archive_coff_truncate_arname bfd_dont_truncate_arname
 1.41552 ++#define _bfd_archive_coff_write_armap coff_write_armap
 1.41553 ++#define _bfd_archive_coff_read_ar_hdr _bfd_generic_read_ar_hdr
 1.41554 ++#define _bfd_archive_coff_openr_next_archived_file \
 1.41555 ++  bfd_generic_openr_next_archived_file
 1.41556 ++#define _bfd_archive_coff_get_elt_at_index _bfd_generic_get_elt_at_index
 1.41557 ++#define _bfd_archive_coff_generic_stat_arch_elt \
 1.41558 ++  bfd_generic_stat_arch_elt
 1.41559 ++#define _bfd_archive_coff_update_armap_timestamp bfd_true
 1.41560 ++
 1.41561 ++/* Routines to use for BFD_JUMP_TABLE_SYMBOLS where there is no symbol
 1.41562 ++   support.  Use BFD_JUMP_TABLE_SYMBOLS (_bfd_nosymbols).  */
 1.41563 ++
 1.41564 ++#define _bfd_nosymbols_get_symtab_upper_bound _bfd_n1
 1.41565 ++#define _bfd_nosymbols_canonicalize_symtab \
 1.41566 ++  ((long (*) (bfd *, asymbol **)) _bfd_n1)
 1.41567 ++#define _bfd_nosymbols_make_empty_symbol _bfd_generic_make_empty_symbol
 1.41568 ++#define _bfd_nosymbols_print_symbol \
 1.41569 ++  ((void (*) (bfd *, void *, asymbol *, bfd_print_symbol_type)) bfd_void)
 1.41570 ++#define _bfd_nosymbols_get_symbol_info \
 1.41571 ++  ((void (*) (bfd *, asymbol *, symbol_info *)) bfd_void)
 1.41572 ++#define _bfd_nosymbols_bfd_is_local_label_name \
 1.41573 ++  ((bfd_boolean (*) (bfd *, const char *)) bfd_false)
 1.41574 ++#define _bfd_nosymbols_bfd_is_target_special_symbol \
 1.41575 ++  ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
 1.41576 ++#define _bfd_nosymbols_get_lineno \
 1.41577 ++  ((alent *(*) (bfd *, asymbol *)) bfd_nullvoidptr)
 1.41578 ++#define _bfd_nosymbols_find_nearest_line \
 1.41579 ++  ((bfd_boolean (*) (bfd *, asection *, asymbol **, bfd_vma, const char **, \
 1.41580 ++		     const char **, unsigned int *)) \
 1.41581 ++   bfd_false)
 1.41582 ++#define _bfd_nosymbols_find_inliner_info \
 1.41583 ++  ((bfd_boolean (*) (bfd *, const char **, const char **, unsigned int *)) \
 1.41584 ++   bfd_false)
 1.41585 ++#define _bfd_nosymbols_bfd_make_debug_symbol \
 1.41586 ++  ((asymbol *(*) (bfd *, void *, unsigned long)) bfd_nullvoidptr)
 1.41587 ++#define _bfd_nosymbols_read_minisymbols \
 1.41588 ++  ((long (*) (bfd *, bfd_boolean, void **, unsigned int *)) _bfd_n1)
 1.41589 ++#define _bfd_nosymbols_minisymbol_to_symbol \
 1.41590 ++  ((asymbol *(*) (bfd *, bfd_boolean, const void *, asymbol *)) \
 1.41591 ++   bfd_nullvoidptr)
 1.41592 ++
 1.41593 ++/* Routines to use for BFD_JUMP_TABLE_RELOCS when there is no reloc
 1.41594 ++   support.  Use BFD_JUMP_TABLE_RELOCS (_bfd_norelocs).  */
 1.41595 ++
 1.41596 ++extern long _bfd_norelocs_get_reloc_upper_bound (bfd *, asection *);
 1.41597 ++extern long _bfd_norelocs_canonicalize_reloc (bfd *, asection *,
 1.41598 ++					      arelent **, asymbol **);
 1.41599 ++#define _bfd_norelocs_bfd_reloc_type_lookup \
 1.41600 ++  ((reloc_howto_type *(*) (bfd *, bfd_reloc_code_real_type)) bfd_nullvoidptr)
 1.41601 ++#define _bfd_norelocs_bfd_reloc_name_lookup \
 1.41602 ++  ((reloc_howto_type *(*) (bfd *, const char *)) bfd_nullvoidptr)
 1.41603 ++
 1.41604 ++/* Routines to use for BFD_JUMP_TABLE_WRITE for targets which may not
 1.41605 ++   be written.  Use BFD_JUMP_TABLE_WRITE (_bfd_nowrite).  */
 1.41606 ++
 1.41607 ++#define _bfd_nowrite_set_arch_mach \
 1.41608 ++  ((bfd_boolean (*) (bfd *, enum bfd_architecture, unsigned long)) \
 1.41609 ++   bfd_false)
 1.41610 ++#define _bfd_nowrite_set_section_contents \
 1.41611 ++  ((bfd_boolean (*) (bfd *, asection *, const void *, file_ptr, bfd_size_type)) \
 1.41612 ++   bfd_false)
 1.41613 ++
 1.41614 ++/* Generic routines to use for BFD_JUMP_TABLE_WRITE.  Use
 1.41615 ++   BFD_JUMP_TABLE_WRITE (_bfd_generic).  */
 1.41616 ++
 1.41617 ++#define _bfd_generic_set_arch_mach bfd_default_set_arch_mach
 1.41618 ++extern bfd_boolean _bfd_generic_set_section_contents
 1.41619 ++  (bfd *, asection *, const void *, file_ptr, bfd_size_type);
 1.41620 ++
 1.41621 ++/* Routines to use for BFD_JUMP_TABLE_LINK for targets which do not
 1.41622 ++   support linking.  Use BFD_JUMP_TABLE_LINK (_bfd_nolink).  */
 1.41623 ++
 1.41624 ++#define _bfd_nolink_sizeof_headers \
 1.41625 ++  ((int (*) (bfd *, struct bfd_link_info *)) bfd_0)
 1.41626 ++#define _bfd_nolink_bfd_get_relocated_section_contents \
 1.41627 ++  ((bfd_byte *(*) (bfd *, struct bfd_link_info *, struct bfd_link_order *, \
 1.41628 ++		   bfd_byte *, bfd_boolean, asymbol **)) \
 1.41629 ++   bfd_nullvoidptr)
 1.41630 ++#define _bfd_nolink_bfd_relax_section \
 1.41631 ++  ((bfd_boolean (*) \
 1.41632 ++    (bfd *, asection *, struct bfd_link_info *, bfd_boolean *)) \
 1.41633 ++   bfd_false)
 1.41634 ++#define _bfd_nolink_bfd_gc_sections \
 1.41635 ++  ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \
 1.41636 ++   bfd_false)
 1.41637 ++#define _bfd_nolink_bfd_merge_sections \
 1.41638 ++  ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \
 1.41639 ++   bfd_false)
 1.41640 ++#define _bfd_nolink_bfd_is_group_section \
 1.41641 ++  ((bfd_boolean (*) (bfd *, const struct bfd_section *)) \
 1.41642 ++   bfd_false)
 1.41643 ++#define _bfd_nolink_bfd_discard_group \
 1.41644 ++  ((bfd_boolean (*) (bfd *, struct bfd_section *)) \
 1.41645 ++   bfd_false)
 1.41646 ++#define _bfd_nolink_bfd_link_hash_table_create \
 1.41647 ++  ((struct bfd_link_hash_table *(*) (bfd *)) bfd_nullvoidptr)
 1.41648 ++#define _bfd_nolink_bfd_link_hash_table_free \
 1.41649 ++  ((void (*) (struct bfd_link_hash_table *)) bfd_void)
 1.41650 ++#define _bfd_nolink_bfd_link_add_symbols \
 1.41651 ++  ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false)
 1.41652 ++#define _bfd_nolink_bfd_link_just_syms \
 1.41653 ++  ((void (*) (asection *, struct bfd_link_info *)) bfd_void)
 1.41654 ++#define _bfd_nolink_bfd_final_link \
 1.41655 ++  ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false)
 1.41656 ++#define _bfd_nolink_bfd_link_split_section \
 1.41657 ++  ((bfd_boolean (*) (bfd *, struct bfd_section *)) bfd_false)
 1.41658 ++#define _bfd_nolink_section_already_linked \
 1.41659 ++  ((void (*) (bfd *, struct bfd_section *, struct bfd_link_info *)) bfd_void)
 1.41660 ++
 1.41661 ++/* Routines to use for BFD_JUMP_TABLE_DYNAMIC for targets which do not
 1.41662 ++   have dynamic symbols or relocs.  Use BFD_JUMP_TABLE_DYNAMIC
 1.41663 ++   (_bfd_nodynamic).  */
 1.41664 ++
 1.41665 ++#define _bfd_nodynamic_get_dynamic_symtab_upper_bound _bfd_n1
 1.41666 ++#define _bfd_nodynamic_canonicalize_dynamic_symtab \
 1.41667 ++  ((long (*) (bfd *, asymbol **)) _bfd_n1)
 1.41668 ++#define _bfd_nodynamic_get_synthetic_symtab \
 1.41669 ++  ((long (*) (bfd *, long, asymbol **, long, asymbol **, asymbol **)) _bfd_n1)
 1.41670 ++#define _bfd_nodynamic_get_dynamic_reloc_upper_bound _bfd_n1
 1.41671 ++#define _bfd_nodynamic_canonicalize_dynamic_reloc \
 1.41672 ++  ((long (*) (bfd *, arelent **, asymbol **)) _bfd_n1)
 1.41673 ++
 1.41674 ++/* Generic routine to determine of the given symbol is a local
 1.41675 ++   label.  */
 1.41676 ++extern bfd_boolean bfd_generic_is_local_label_name
 1.41677 ++  (bfd *, const char *);
 1.41678 ++
 1.41679 ++/* Generic minisymbol routines.  */
 1.41680 ++extern long _bfd_generic_read_minisymbols
 1.41681 ++  (bfd *, bfd_boolean, void **, unsigned int *);
 1.41682 ++extern asymbol *_bfd_generic_minisymbol_to_symbol
 1.41683 ++  (bfd *, bfd_boolean, const void *, asymbol *);
 1.41684 ++
 1.41685 ++/* Find the nearest line using .stab/.stabstr sections.  */
 1.41686 ++extern bfd_boolean _bfd_stab_section_find_nearest_line
 1.41687 ++  (bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *,
 1.41688 ++   const char **, const char **, unsigned int *, void **);
 1.41689 ++
 1.41690 ++/* Find the nearest line using DWARF 1 debugging information.  */
 1.41691 ++extern bfd_boolean _bfd_dwarf1_find_nearest_line
 1.41692 ++  (bfd *, asection *, asymbol **, bfd_vma, const char **,
 1.41693 ++   const char **, unsigned int *);
 1.41694 ++
 1.41695 ++/* Find the nearest line using DWARF 2 debugging information.  */
 1.41696 ++extern bfd_boolean _bfd_dwarf2_find_nearest_line
 1.41697 ++  (bfd *, asection *, asymbol **, bfd_vma, const char **, const char **,
 1.41698 ++   unsigned int *, unsigned int, void **);
 1.41699 ++
 1.41700 ++/* Find the line using DWARF 2 debugging information.  */
 1.41701 ++extern bfd_boolean _bfd_dwarf2_find_line
 1.41702 ++  (bfd *, asymbol **, asymbol *, const char **,
 1.41703 ++   unsigned int *, unsigned int, void **);
 1.41704 ++
 1.41705 ++bfd_boolean _bfd_generic_find_line
 1.41706 ++  (bfd *, asymbol **, asymbol *, const char **, unsigned int *);
 1.41707 ++
 1.41708 ++/* Find inliner info after calling bfd_find_nearest_line. */
 1.41709 ++extern bfd_boolean _bfd_dwarf2_find_inliner_info
 1.41710 ++  (bfd *, const char **, const char **, unsigned int *, void **);
 1.41711 ++  
 1.41712 ++/* Create a new section entry.  */
 1.41713 ++extern struct bfd_hash_entry *bfd_section_hash_newfunc
 1.41714 ++  (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
 1.41715 ++
 1.41716 ++/* A routine to create entries for a bfd_link_hash_table.  */
 1.41717 ++extern struct bfd_hash_entry *_bfd_link_hash_newfunc
 1.41718 ++  (struct bfd_hash_entry *entry, struct bfd_hash_table *table,
 1.41719 ++   const char *string);
 1.41720 ++
 1.41721 ++/* Initialize a bfd_link_hash_table.  */
 1.41722 ++extern bfd_boolean _bfd_link_hash_table_init
 1.41723 ++  (struct bfd_link_hash_table *, bfd *,
 1.41724 ++   struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
 1.41725 ++			       struct bfd_hash_table *,
 1.41726 ++			       const char *),
 1.41727 ++   unsigned int);
 1.41728 ++
 1.41729 ++/* Generic link hash table creation routine.  */
 1.41730 ++extern struct bfd_link_hash_table *_bfd_generic_link_hash_table_create
 1.41731 ++  (bfd *);
 1.41732 ++
 1.41733 ++/* Generic link hash table destruction routine.  */
 1.41734 ++extern void _bfd_generic_link_hash_table_free
 1.41735 ++  (struct bfd_link_hash_table *);
 1.41736 ++
 1.41737 ++/* Generic add symbol routine.  */
 1.41738 ++extern bfd_boolean _bfd_generic_link_add_symbols
 1.41739 ++  (bfd *, struct bfd_link_info *);
 1.41740 ++
 1.41741 ++/* Generic add symbol routine.  This version is used by targets for
 1.41742 ++   which the linker must collect constructors and destructors by name,
 1.41743 ++   as the collect2 program does.  */
 1.41744 ++extern bfd_boolean _bfd_generic_link_add_symbols_collect
 1.41745 ++  (bfd *, struct bfd_link_info *);
 1.41746 ++
 1.41747 ++/* Generic archive add symbol routine.  */
 1.41748 ++extern bfd_boolean _bfd_generic_link_add_archive_symbols
 1.41749 ++  (bfd *, struct bfd_link_info *,
 1.41750 ++   bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *));
 1.41751 ++
 1.41752 ++/* Forward declaration to avoid prototype errors.  */
 1.41753 ++typedef struct bfd_link_hash_entry _bfd_link_hash_entry;
 1.41754 ++
 1.41755 ++/* Generic routine to add a single symbol.  */
 1.41756 ++extern bfd_boolean _bfd_generic_link_add_one_symbol
 1.41757 ++  (struct bfd_link_info *, bfd *, const char *name, flagword,
 1.41758 ++   asection *, bfd_vma, const char *, bfd_boolean copy,
 1.41759 ++   bfd_boolean constructor, struct bfd_link_hash_entry **);
 1.41760 ++
 1.41761 ++/* Generic routine to mark section as supplying symbols only.  */
 1.41762 ++extern void _bfd_generic_link_just_syms
 1.41763 ++  (asection *, struct bfd_link_info *);
 1.41764 ++
 1.41765 ++/* Generic link routine.  */
 1.41766 ++extern bfd_boolean _bfd_generic_final_link
 1.41767 ++  (bfd *, struct bfd_link_info *);
 1.41768 ++
 1.41769 ++extern bfd_boolean _bfd_generic_link_split_section
 1.41770 ++  (bfd *, struct bfd_section *);
 1.41771 ++
 1.41772 ++extern void _bfd_generic_section_already_linked
 1.41773 ++  (bfd *, struct bfd_section *, struct bfd_link_info *);
 1.41774 ++
 1.41775 ++/* Generic reloc_link_order processing routine.  */
 1.41776 ++extern bfd_boolean _bfd_generic_reloc_link_order
 1.41777 ++  (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *);
 1.41778 ++
 1.41779 ++/* Default link order processing routine.  */
 1.41780 ++extern bfd_boolean _bfd_default_link_order
 1.41781 ++  (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *);
 1.41782 ++
 1.41783 ++/* Count the number of reloc entries in a link order list.  */
 1.41784 ++extern unsigned int _bfd_count_link_order_relocs
 1.41785 ++  (struct bfd_link_order *);
 1.41786 ++
 1.41787 ++/* Final link relocation routine.  */
 1.41788 ++extern bfd_reloc_status_type _bfd_final_link_relocate
 1.41789 ++  (reloc_howto_type *, bfd *, asection *, bfd_byte *,
 1.41790 ++   bfd_vma, bfd_vma, bfd_vma);
 1.41791 ++
 1.41792 ++/* Relocate a particular location by a howto and a value.  */
 1.41793 ++extern bfd_reloc_status_type _bfd_relocate_contents
 1.41794 ++  (reloc_howto_type *, bfd *, bfd_vma, bfd_byte *);
 1.41795 ++
 1.41796 ++/* Clear a given location using a given howto.  */
 1.41797 ++extern void _bfd_clear_contents (reloc_howto_type *howto, bfd *input_bfd,
 1.41798 ++				 bfd_byte *location);
 1.41799 ++
 1.41800 ++/* Link stabs in sections in the first pass.  */
 1.41801 ++
 1.41802 ++extern bfd_boolean _bfd_link_section_stabs
 1.41803 ++  (bfd *, struct stab_info *, asection *, asection *, void **,
 1.41804 ++   bfd_size_type *);
 1.41805 ++
 1.41806 ++/* Eliminate stabs for discarded functions and symbols.  */
 1.41807 ++extern bfd_boolean _bfd_discard_section_stabs
 1.41808 ++  (bfd *, asection *, void *, bfd_boolean (*) (bfd_vma, void *), void *);
 1.41809 ++
 1.41810 ++/* Write out the .stab section when linking stabs in sections.  */
 1.41811 ++
 1.41812 ++extern bfd_boolean _bfd_write_section_stabs
 1.41813 ++  (bfd *, struct stab_info *, asection *, void **, bfd_byte *);
 1.41814 ++
 1.41815 ++/* Write out the .stabstr string table when linking stabs in sections.  */
 1.41816 ++
 1.41817 ++extern bfd_boolean _bfd_write_stab_strings
 1.41818 ++  (bfd *, struct stab_info *);
 1.41819 ++
 1.41820 ++/* Find an offset within a .stab section when linking stabs in
 1.41821 ++   sections.  */
 1.41822 ++
 1.41823 ++extern bfd_vma _bfd_stab_section_offset
 1.41824 ++  (asection *, void *, bfd_vma);
 1.41825 ++
 1.41826 ++/* Register a SEC_MERGE section as a candidate for merging.  */
 1.41827 ++
 1.41828 ++extern bfd_boolean _bfd_add_merge_section
 1.41829 ++  (bfd *, void **, asection *, void **);
 1.41830 ++
 1.41831 ++/* Attempt to merge SEC_MERGE sections.  */
 1.41832 ++
 1.41833 ++extern bfd_boolean _bfd_merge_sections
 1.41834 ++  (bfd *, struct bfd_link_info *, void *, void (*) (bfd *, asection *));
 1.41835 ++
 1.41836 ++/* Write out a merged section.  */
 1.41837 ++
 1.41838 ++extern bfd_boolean _bfd_write_merged_section
 1.41839 ++  (bfd *, asection *, void *);
 1.41840 ++
 1.41841 ++/* Find an offset within a modified SEC_MERGE section.  */
 1.41842 ++
 1.41843 ++extern bfd_vma _bfd_merged_section_offset
 1.41844 ++  (bfd *, asection **, void *, bfd_vma);
 1.41845 ++
 1.41846 ++/* Create a string table.  */
 1.41847 ++extern struct bfd_strtab_hash *_bfd_stringtab_init
 1.41848 ++  (void);
 1.41849 ++
 1.41850 ++/* Create an XCOFF .debug section style string table.  */
 1.41851 ++extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init
 1.41852 ++  (void);
 1.41853 ++
 1.41854 ++/* Free a string table.  */
 1.41855 ++extern void _bfd_stringtab_free
 1.41856 ++  (struct bfd_strtab_hash *);
 1.41857 ++
 1.41858 ++/* Get the size of a string table.  */
 1.41859 ++extern bfd_size_type _bfd_stringtab_size
 1.41860 ++  (struct bfd_strtab_hash *);
 1.41861 ++
 1.41862 ++/* Add a string to a string table.  */
 1.41863 ++extern bfd_size_type _bfd_stringtab_add
 1.41864 ++  (struct bfd_strtab_hash *, const char *, bfd_boolean hash, bfd_boolean copy);
 1.41865 ++
 1.41866 ++/* Write out a string table.  */
 1.41867 ++extern bfd_boolean _bfd_stringtab_emit
 1.41868 ++  (bfd *, struct bfd_strtab_hash *);
 1.41869 ++
 1.41870 ++/* Check that endianness of input and output file match.  */
 1.41871 ++extern bfd_boolean _bfd_generic_verify_endian_match
 1.41872 ++  (bfd *, bfd *);
 1.41873 ++
 1.41874 ++/* Macros to tell if bfds are read or write enabled.
 1.41875 ++
 1.41876 ++   Note that bfds open for read may be scribbled into if the fd passed
 1.41877 ++   to bfd_fdopenr is actually open both for read and write
 1.41878 ++   simultaneously.  However an output bfd will never be open for
 1.41879 ++   read.  Therefore sometimes you want to check bfd_read_p or
 1.41880 ++   !bfd_read_p, and only sometimes bfd_write_p.
 1.41881 ++*/
 1.41882 ++
 1.41883 ++#define	bfd_read_p(abfd) \
 1.41884 ++  ((abfd)->direction == read_direction || (abfd)->direction == both_direction)
 1.41885 ++#define	bfd_write_p(abfd) \
 1.41886 ++  ((abfd)->direction == write_direction || (abfd)->direction == both_direction)
 1.41887 ++
 1.41888 ++void bfd_assert
 1.41889 ++  (const char*,int);
 1.41890 ++
 1.41891 ++#define BFD_ASSERT(x) \
 1.41892 ++  do { if (!(x)) bfd_assert(__FILE__,__LINE__); } while (0)
 1.41893 ++
 1.41894 ++#define BFD_FAIL() \
 1.41895 ++  do { bfd_assert(__FILE__,__LINE__); } while (0)
 1.41896 ++
 1.41897 ++extern void _bfd_abort
 1.41898 ++  (const char *, int, const char *) ATTRIBUTE_NORETURN;
 1.41899 ++
 1.41900 ++/* if gcc >= 2.6, we can give a function name, too */
 1.41901 ++#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6)
 1.41902 ++#define __PRETTY_FUNCTION__  ((char *) NULL)
 1.41903 ++#endif
 1.41904 ++
 1.41905 ++#undef abort
 1.41906 ++#define abort() _bfd_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)
 1.41907 ++
 1.41908 ++/* Manipulate a system FILE but using BFD's "file_ptr", rather than
 1.41909 ++   the system "off_t" or "off64_t", as the offset.  */
 1.41910 ++extern file_ptr real_ftell (FILE *file);
 1.41911 ++extern int real_fseek (FILE *file, file_ptr offset, int whence);
 1.41912 ++extern FILE *real_fopen (const char *filename, const char *modes);
 1.41913 ++
 1.41914 ++/* List of supported target vectors, and the default vector (if
 1.41915 ++   bfd_default_vector[0] is NULL, there is no default).  */
 1.41916 ++extern const bfd_target * const *bfd_target_vector;
 1.41917 ++extern const bfd_target *bfd_default_vector[];
 1.41918 ++
 1.41919 ++/* List of associated target vectors.  */
 1.41920 ++extern const bfd_target * const *bfd_associated_vector;
 1.41921 ++
 1.41922 ++/* Functions shared by the ECOFF and MIPS ELF backends, which have no
 1.41923 ++   other common header files.  */
 1.41924 ++
 1.41925 ++#if defined(__STDC__) || defined(ALMOST_STDC)
 1.41926 ++struct ecoff_find_line;
 1.41927 ++#endif
 1.41928 ++
 1.41929 ++extern bfd_boolean _bfd_ecoff_locate_line
 1.41930 ++  (bfd *, asection *, bfd_vma, struct ecoff_debug_info * const,
 1.41931 ++   const struct ecoff_debug_swap * const, struct ecoff_find_line *,
 1.41932 ++   const char **, const char **, unsigned int *);
 1.41933 ++extern bfd_boolean _bfd_ecoff_get_accumulated_pdr
 1.41934 ++  (void *, bfd_byte *);
 1.41935 ++extern bfd_boolean _bfd_ecoff_get_accumulated_sym
 1.41936 ++  (void *, bfd_byte *);
 1.41937 ++extern bfd_boolean _bfd_ecoff_get_accumulated_ss
 1.41938 ++  (void *, bfd_byte *);
 1.41939 ++
 1.41940 ++extern bfd_vma _bfd_get_gp_value
 1.41941 ++  (bfd *);
 1.41942 ++extern void _bfd_set_gp_value
 1.41943 ++  (bfd *, bfd_vma);
 1.41944 ++
 1.41945 ++/* Function shared by the COFF and ELF SH backends, which have no
 1.41946 ++   other common header files.  */
 1.41947 ++
 1.41948 ++#ifndef _bfd_sh_align_load_span
 1.41949 ++extern bfd_boolean _bfd_sh_align_load_span
 1.41950 ++  (bfd *, asection *, bfd_byte *,
 1.41951 ++   bfd_boolean (*) (bfd *, asection *, void *, bfd_byte *, bfd_vma),
 1.41952 ++   void *, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *);
 1.41953 ++#endif
 1.41954 ++
 1.41955 ++/* This is the shape of the elements inside the already_linked hash
 1.41956 ++   table. It maps a name onto a list of already_linked elements with
 1.41957 ++   the same name.  */
 1.41958 ++
 1.41959 ++struct bfd_section_already_linked_hash_entry
 1.41960 ++{
 1.41961 ++  struct bfd_hash_entry root;
 1.41962 ++  struct bfd_section_already_linked *entry;
 1.41963 ++};
 1.41964 ++
 1.41965 ++struct bfd_section_already_linked
 1.41966 ++{
 1.41967 ++  struct bfd_section_already_linked *next;
 1.41968 ++  asection *sec;
 1.41969 ++};
 1.41970 ++
 1.41971 ++extern struct bfd_section_already_linked_hash_entry *
 1.41972 ++  bfd_section_already_linked_table_lookup (const char *);
 1.41973 ++extern bfd_boolean bfd_section_already_linked_table_insert
 1.41974 ++  (struct bfd_section_already_linked_hash_entry *, asection *);
 1.41975 ++extern void bfd_section_already_linked_table_traverse
 1.41976 ++  (bfd_boolean (*) (struct bfd_section_already_linked_hash_entry *,
 1.41977 ++		    void *), void *);
 1.41978 ++
 1.41979 ++extern bfd_vma read_unsigned_leb128 (bfd *, bfd_byte *, unsigned int *);
 1.41980 ++extern bfd_signed_vma read_signed_leb128 (bfd *, bfd_byte *, unsigned int *);
 1.41981 ++
 1.41982 ++/* Extracted from init.c.  */
 1.41983 ++/* Extracted from libbfd.c.  */
 1.41984 ++bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int);
 1.41985 ++
 1.41986 ++unsigned int bfd_log2 (bfd_vma x);
 1.41987 ++
 1.41988 ++/* Extracted from bfdio.c.  */
 1.41989 ++struct bfd_iovec
 1.41990 ++{
 1.41991 ++  /* To avoid problems with macros, a "b" rather than "f"
 1.41992 ++     prefix is prepended to each method name.  */
 1.41993 ++  /* Attempt to read/write NBYTES on ABFD's IOSTREAM storing/fetching
 1.41994 ++     bytes starting at PTR.  Return the number of bytes actually
 1.41995 ++     transfered (a read past end-of-file returns less than NBYTES),
 1.41996 ++     or -1 (setting <<bfd_error>>) if an error occurs.  */
 1.41997 ++  file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes);
 1.41998 ++  file_ptr (*bwrite) (struct bfd *abfd, const void *ptr,
 1.41999 ++                      file_ptr nbytes);
 1.42000 ++  /* Return the current IOSTREAM file offset, or -1 (setting <<bfd_error>>
 1.42001 ++     if an error occurs.  */
 1.42002 ++  file_ptr (*btell) (struct bfd *abfd);
 1.42003 ++  /* For the following, on successful completion a value of 0 is returned.
 1.42004 ++     Otherwise, a value of -1 is returned (and  <<bfd_error>> is set).  */
 1.42005 ++  int (*bseek) (struct bfd *abfd, file_ptr offset, int whence);
 1.42006 ++  int (*bclose) (struct bfd *abfd);
 1.42007 ++  int (*bflush) (struct bfd *abfd);
 1.42008 ++  int (*bstat) (struct bfd *abfd, struct stat *sb);
 1.42009 ++};
 1.42010 ++/* Extracted from bfdwin.c.  */
 1.42011 ++struct _bfd_window_internal {
 1.42012 ++  struct _bfd_window_internal *next;
 1.42013 ++  void *data;
 1.42014 ++  bfd_size_type size;
 1.42015 ++  int refcount : 31;           /* should be enough...  */
 1.42016 ++  unsigned mapped : 1;         /* 1 = mmap, 0 = malloc */
 1.42017 ++};
 1.42018 ++/* Extracted from cache.c.  */
 1.42019 ++bfd_boolean bfd_cache_init (bfd *abfd);
 1.42020 ++
 1.42021 ++bfd_boolean bfd_cache_close (bfd *abfd);
 1.42022 ++
 1.42023 ++FILE* bfd_open_file (bfd *abfd);
 1.42024 ++
 1.42025 ++/* Extracted from reloc.c.  */
 1.42026 ++#ifdef _BFD_MAKE_TABLE_bfd_reloc_code_real
 1.42027 ++
 1.42028 ++static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
 1.42029 ++
 1.42030 ++  "BFD_RELOC_64",
 1.42031 ++  "BFD_RELOC_32",
 1.42032 ++  "BFD_RELOC_26",
 1.42033 ++  "BFD_RELOC_24",
 1.42034 ++  "BFD_RELOC_16",
 1.42035 ++  "BFD_RELOC_14",
 1.42036 ++  "BFD_RELOC_8",
 1.42037 ++  "BFD_RELOC_64_PCREL",
 1.42038 ++  "BFD_RELOC_32_PCREL",
 1.42039 ++  "BFD_RELOC_24_PCREL",
 1.42040 ++  "BFD_RELOC_16_PCREL",
 1.42041 ++  "BFD_RELOC_12_PCREL",
 1.42042 ++  "BFD_RELOC_8_PCREL",
 1.42043 ++  "BFD_RELOC_32_SECREL",
 1.42044 ++  "BFD_RELOC_32_GOT_PCREL",
 1.42045 ++  "BFD_RELOC_16_GOT_PCREL",
 1.42046 ++  "BFD_RELOC_8_GOT_PCREL",
 1.42047 ++  "BFD_RELOC_32_GOTOFF",
 1.42048 ++  "BFD_RELOC_16_GOTOFF",
 1.42049 ++  "BFD_RELOC_LO16_GOTOFF",
 1.42050 ++  "BFD_RELOC_HI16_GOTOFF",
 1.42051 ++  "BFD_RELOC_HI16_S_GOTOFF",
 1.42052 ++  "BFD_RELOC_8_GOTOFF",
 1.42053 ++  "BFD_RELOC_64_PLT_PCREL",
 1.42054 ++  "BFD_RELOC_32_PLT_PCREL",
 1.42055 ++  "BFD_RELOC_24_PLT_PCREL",
 1.42056 ++  "BFD_RELOC_16_PLT_PCREL",
 1.42057 ++  "BFD_RELOC_8_PLT_PCREL",
 1.42058 ++  "BFD_RELOC_64_PLTOFF",
 1.42059 ++  "BFD_RELOC_32_PLTOFF",
 1.42060 ++  "BFD_RELOC_16_PLTOFF",
 1.42061 ++  "BFD_RELOC_LO16_PLTOFF",
 1.42062 ++  "BFD_RELOC_HI16_PLTOFF",
 1.42063 ++  "BFD_RELOC_HI16_S_PLTOFF",
 1.42064 ++  "BFD_RELOC_8_PLTOFF",
 1.42065 ++  "BFD_RELOC_68K_GLOB_DAT",
 1.42066 ++  "BFD_RELOC_68K_JMP_SLOT",
 1.42067 ++  "BFD_RELOC_68K_RELATIVE",
 1.42068 ++  "BFD_RELOC_32_BASEREL",
 1.42069 ++  "BFD_RELOC_16_BASEREL",
 1.42070 ++  "BFD_RELOC_LO16_BASEREL",
 1.42071 ++  "BFD_RELOC_HI16_BASEREL",
 1.42072 ++  "BFD_RELOC_HI16_S_BASEREL",
 1.42073 ++  "BFD_RELOC_8_BASEREL",
 1.42074 ++  "BFD_RELOC_RVA",
 1.42075 ++  "BFD_RELOC_8_FFnn",
 1.42076 ++  "BFD_RELOC_32_PCREL_S2",
 1.42077 ++  "BFD_RELOC_16_PCREL_S2",
 1.42078 ++  "BFD_RELOC_23_PCREL_S2",
 1.42079 ++  "BFD_RELOC_HI22",
 1.42080 ++  "BFD_RELOC_LO10",
 1.42081 ++  "BFD_RELOC_GPREL16",
 1.42082 ++  "BFD_RELOC_GPREL32",
 1.42083 ++  "BFD_RELOC_I960_CALLJ",
 1.42084 ++  "BFD_RELOC_NONE",
 1.42085 ++  "BFD_RELOC_SPARC_WDISP22",
 1.42086 ++  "BFD_RELOC_SPARC22",
 1.42087 ++  "BFD_RELOC_SPARC13",
 1.42088 ++  "BFD_RELOC_SPARC_GOT10",
 1.42089 ++  "BFD_RELOC_SPARC_GOT13",
 1.42090 ++  "BFD_RELOC_SPARC_GOT22",
 1.42091 ++  "BFD_RELOC_SPARC_PC10",
 1.42092 ++  "BFD_RELOC_SPARC_PC22",
 1.42093 ++  "BFD_RELOC_SPARC_WPLT30",
 1.42094 ++  "BFD_RELOC_SPARC_COPY",
 1.42095 ++  "BFD_RELOC_SPARC_GLOB_DAT",
 1.42096 ++  "BFD_RELOC_SPARC_JMP_SLOT",
 1.42097 ++  "BFD_RELOC_SPARC_RELATIVE",
 1.42098 ++  "BFD_RELOC_SPARC_UA16",
 1.42099 ++  "BFD_RELOC_SPARC_UA32",
 1.42100 ++  "BFD_RELOC_SPARC_UA64",
 1.42101 ++  "BFD_RELOC_SPARC_BASE13",
 1.42102 ++  "BFD_RELOC_SPARC_BASE22",
 1.42103 ++  "BFD_RELOC_SPARC_10",
 1.42104 ++  "BFD_RELOC_SPARC_11",
 1.42105 ++  "BFD_RELOC_SPARC_OLO10",
 1.42106 ++  "BFD_RELOC_SPARC_HH22",
 1.42107 ++  "BFD_RELOC_SPARC_HM10",
 1.42108 ++  "BFD_RELOC_SPARC_LM22",
 1.42109 ++  "BFD_RELOC_SPARC_PC_HH22",
 1.42110 ++  "BFD_RELOC_SPARC_PC_HM10",
 1.42111 ++  "BFD_RELOC_SPARC_PC_LM22",
 1.42112 ++  "BFD_RELOC_SPARC_WDISP16",
 1.42113 ++  "BFD_RELOC_SPARC_WDISP19",
 1.42114 ++  "BFD_RELOC_SPARC_7",
 1.42115 ++  "BFD_RELOC_SPARC_6",
 1.42116 ++  "BFD_RELOC_SPARC_5",
 1.42117 ++  "BFD_RELOC_SPARC_PLT32",
 1.42118 ++  "BFD_RELOC_SPARC_PLT64",
 1.42119 ++  "BFD_RELOC_SPARC_HIX22",
 1.42120 ++  "BFD_RELOC_SPARC_LOX10",
 1.42121 ++  "BFD_RELOC_SPARC_H44",
 1.42122 ++  "BFD_RELOC_SPARC_M44",
 1.42123 ++  "BFD_RELOC_SPARC_L44",
 1.42124 ++  "BFD_RELOC_SPARC_REGISTER",
 1.42125 ++  "BFD_RELOC_SPARC_REV32",
 1.42126 ++  "BFD_RELOC_SPARC_TLS_GD_HI22",
 1.42127 ++  "BFD_RELOC_SPARC_TLS_GD_LO10",
 1.42128 ++  "BFD_RELOC_SPARC_TLS_GD_ADD",
 1.42129 ++  "BFD_RELOC_SPARC_TLS_GD_CALL",
 1.42130 ++  "BFD_RELOC_SPARC_TLS_LDM_HI22",
 1.42131 ++  "BFD_RELOC_SPARC_TLS_LDM_LO10",
 1.42132 ++  "BFD_RELOC_SPARC_TLS_LDM_ADD",
 1.42133 ++  "BFD_RELOC_SPARC_TLS_LDM_CALL",
 1.42134 ++  "BFD_RELOC_SPARC_TLS_LDO_HIX22",
 1.42135 ++  "BFD_RELOC_SPARC_TLS_LDO_LOX10",
 1.42136 ++  "BFD_RELOC_SPARC_TLS_LDO_ADD",
 1.42137 ++  "BFD_RELOC_SPARC_TLS_IE_HI22",
 1.42138 ++  "BFD_RELOC_SPARC_TLS_IE_LO10",
 1.42139 ++  "BFD_RELOC_SPARC_TLS_IE_LD",
 1.42140 ++  "BFD_RELOC_SPARC_TLS_IE_LDX",
 1.42141 ++  "BFD_RELOC_SPARC_TLS_IE_ADD",
 1.42142 ++  "BFD_RELOC_SPARC_TLS_LE_HIX22",
 1.42143 ++  "BFD_RELOC_SPARC_TLS_LE_LOX10",
 1.42144 ++  "BFD_RELOC_SPARC_TLS_DTPMOD32",
 1.42145 ++  "BFD_RELOC_SPARC_TLS_DTPMOD64",
 1.42146 ++  "BFD_RELOC_SPARC_TLS_DTPOFF32",
 1.42147 ++  "BFD_RELOC_SPARC_TLS_DTPOFF64",
 1.42148 ++  "BFD_RELOC_SPARC_TLS_TPOFF32",
 1.42149 ++  "BFD_RELOC_SPARC_TLS_TPOFF64",
 1.42150 ++  "BFD_RELOC_SPU_IMM7",
 1.42151 ++  "BFD_RELOC_SPU_IMM8",
 1.42152 ++  "BFD_RELOC_SPU_IMM10",
 1.42153 ++  "BFD_RELOC_SPU_IMM10W",
 1.42154 ++  "BFD_RELOC_SPU_IMM16",
 1.42155 ++  "BFD_RELOC_SPU_IMM16W",
 1.42156 ++  "BFD_RELOC_SPU_IMM18",
 1.42157 ++  "BFD_RELOC_SPU_PCREL9a",
 1.42158 ++  "BFD_RELOC_SPU_PCREL9b",
 1.42159 ++  "BFD_RELOC_SPU_PCREL16",
 1.42160 ++  "BFD_RELOC_SPU_LO16",
 1.42161 ++  "BFD_RELOC_SPU_HI16",
 1.42162 ++  "BFD_RELOC_SPU_PPU32",
 1.42163 ++  "BFD_RELOC_SPU_PPU64",
 1.42164 ++  "BFD_RELOC_ALPHA_GPDISP_HI16",
 1.42165 ++  "BFD_RELOC_ALPHA_GPDISP_LO16",
 1.42166 ++  "BFD_RELOC_ALPHA_GPDISP",
 1.42167 ++  "BFD_RELOC_ALPHA_LITERAL",
 1.42168 ++  "BFD_RELOC_ALPHA_ELF_LITERAL",
 1.42169 ++  "BFD_RELOC_ALPHA_LITUSE",
 1.42170 ++  "BFD_RELOC_ALPHA_HINT",
 1.42171 ++  "BFD_RELOC_ALPHA_LINKAGE",
 1.42172 ++  "BFD_RELOC_ALPHA_CODEADDR",
 1.42173 ++  "BFD_RELOC_ALPHA_GPREL_HI16",
 1.42174 ++  "BFD_RELOC_ALPHA_GPREL_LO16",
 1.42175 ++  "BFD_RELOC_ALPHA_BRSGP",
 1.42176 ++  "BFD_RELOC_ALPHA_TLSGD",
 1.42177 ++  "BFD_RELOC_ALPHA_TLSLDM",
 1.42178 ++  "BFD_RELOC_ALPHA_DTPMOD64",
 1.42179 ++  "BFD_RELOC_ALPHA_GOTDTPREL16",
 1.42180 ++  "BFD_RELOC_ALPHA_DTPREL64",
 1.42181 ++  "BFD_RELOC_ALPHA_DTPREL_HI16",
 1.42182 ++  "BFD_RELOC_ALPHA_DTPREL_LO16",
 1.42183 ++  "BFD_RELOC_ALPHA_DTPREL16",
 1.42184 ++  "BFD_RELOC_ALPHA_GOTTPREL16",
 1.42185 ++  "BFD_RELOC_ALPHA_TPREL64",
 1.42186 ++  "BFD_RELOC_ALPHA_TPREL_HI16",
 1.42187 ++  "BFD_RELOC_ALPHA_TPREL_LO16",
 1.42188 ++  "BFD_RELOC_ALPHA_TPREL16",
 1.42189 ++  "BFD_RELOC_MIPS_JMP",
 1.42190 ++  "BFD_RELOC_MIPS16_JMP",
 1.42191 ++  "BFD_RELOC_MIPS16_GPREL",
 1.42192 ++  "BFD_RELOC_HI16",
 1.42193 ++  "BFD_RELOC_HI16_S",
 1.42194 ++  "BFD_RELOC_LO16",
 1.42195 ++  "BFD_RELOC_HI16_PCREL",
 1.42196 ++  "BFD_RELOC_HI16_S_PCREL",
 1.42197 ++  "BFD_RELOC_LO16_PCREL",
 1.42198 ++  "BFD_RELOC_MIPS16_HI16",
 1.42199 ++  "BFD_RELOC_MIPS16_HI16_S",
 1.42200 ++  "BFD_RELOC_MIPS16_LO16",
 1.42201 ++  "BFD_RELOC_MIPS_LITERAL",
 1.42202 ++  "BFD_RELOC_MIPS_GOT16",
 1.42203 ++  "BFD_RELOC_MIPS_CALL16",
 1.42204 ++  "BFD_RELOC_MIPS_GOT_HI16",
 1.42205 ++  "BFD_RELOC_MIPS_GOT_LO16",
 1.42206 ++  "BFD_RELOC_MIPS_CALL_HI16",
 1.42207 ++  "BFD_RELOC_MIPS_CALL_LO16",
 1.42208 ++  "BFD_RELOC_MIPS_SUB",
 1.42209 ++  "BFD_RELOC_MIPS_GOT_PAGE",
 1.42210 ++  "BFD_RELOC_MIPS_GOT_OFST",
 1.42211 ++  "BFD_RELOC_MIPS_GOT_DISP",
 1.42212 ++  "BFD_RELOC_MIPS_SHIFT5",
 1.42213 ++  "BFD_RELOC_MIPS_SHIFT6",
 1.42214 ++  "BFD_RELOC_MIPS_INSERT_A",
 1.42215 ++  "BFD_RELOC_MIPS_INSERT_B",
 1.42216 ++  "BFD_RELOC_MIPS_DELETE",
 1.42217 ++  "BFD_RELOC_MIPS_HIGHEST",
 1.42218 ++  "BFD_RELOC_MIPS_HIGHER",
 1.42219 ++  "BFD_RELOC_MIPS_SCN_DISP",
 1.42220 ++  "BFD_RELOC_MIPS_REL16",
 1.42221 ++  "BFD_RELOC_MIPS_RELGOT",
 1.42222 ++  "BFD_RELOC_MIPS_JALR",
 1.42223 ++  "BFD_RELOC_MIPS_TLS_DTPMOD32",
 1.42224 ++  "BFD_RELOC_MIPS_TLS_DTPREL32",
 1.42225 ++  "BFD_RELOC_MIPS_TLS_DTPMOD64",
 1.42226 ++  "BFD_RELOC_MIPS_TLS_DTPREL64",
 1.42227 ++  "BFD_RELOC_MIPS_TLS_GD",
 1.42228 ++  "BFD_RELOC_MIPS_TLS_LDM",
 1.42229 ++  "BFD_RELOC_MIPS_TLS_DTPREL_HI16",
 1.42230 ++  "BFD_RELOC_MIPS_TLS_DTPREL_LO16",
 1.42231 ++  "BFD_RELOC_MIPS_TLS_GOTTPREL",
 1.42232 ++  "BFD_RELOC_MIPS_TLS_TPREL32",
 1.42233 ++  "BFD_RELOC_MIPS_TLS_TPREL64",
 1.42234 ++  "BFD_RELOC_MIPS_TLS_TPREL_HI16",
 1.42235 ++  "BFD_RELOC_MIPS_TLS_TPREL_LO16",
 1.42236 ++
 1.42237 ++  "BFD_RELOC_MIPS_COPY",
 1.42238 ++  "BFD_RELOC_MIPS_JUMP_SLOT",
 1.42239 ++
 1.42240 ++  "BFD_RELOC_FRV_LABEL16",
 1.42241 ++  "BFD_RELOC_FRV_LABEL24",
 1.42242 ++  "BFD_RELOC_FRV_LO16",
 1.42243 ++  "BFD_RELOC_FRV_HI16",
 1.42244 ++  "BFD_RELOC_FRV_GPREL12",
 1.42245 ++  "BFD_RELOC_FRV_GPRELU12",
 1.42246 ++  "BFD_RELOC_FRV_GPREL32",
 1.42247 ++  "BFD_RELOC_FRV_GPRELHI",
 1.42248 ++  "BFD_RELOC_FRV_GPRELLO",
 1.42249 ++  "BFD_RELOC_FRV_GOT12",
 1.42250 ++  "BFD_RELOC_FRV_GOTHI",
 1.42251 ++  "BFD_RELOC_FRV_GOTLO",
 1.42252 ++  "BFD_RELOC_FRV_FUNCDESC",
 1.42253 ++  "BFD_RELOC_FRV_FUNCDESC_GOT12",
 1.42254 ++  "BFD_RELOC_FRV_FUNCDESC_GOTHI",
 1.42255 ++  "BFD_RELOC_FRV_FUNCDESC_GOTLO",
 1.42256 ++  "BFD_RELOC_FRV_FUNCDESC_VALUE",
 1.42257 ++  "BFD_RELOC_FRV_FUNCDESC_GOTOFF12",
 1.42258 ++  "BFD_RELOC_FRV_FUNCDESC_GOTOFFHI",
 1.42259 ++  "BFD_RELOC_FRV_FUNCDESC_GOTOFFLO",
 1.42260 ++  "BFD_RELOC_FRV_GOTOFF12",
 1.42261 ++  "BFD_RELOC_FRV_GOTOFFHI",
 1.42262 ++  "BFD_RELOC_FRV_GOTOFFLO",
 1.42263 ++  "BFD_RELOC_FRV_GETTLSOFF",
 1.42264 ++  "BFD_RELOC_FRV_TLSDESC_VALUE",
 1.42265 ++  "BFD_RELOC_FRV_GOTTLSDESC12",
 1.42266 ++  "BFD_RELOC_FRV_GOTTLSDESCHI",
 1.42267 ++  "BFD_RELOC_FRV_GOTTLSDESCLO",
 1.42268 ++  "BFD_RELOC_FRV_TLSMOFF12",
 1.42269 ++  "BFD_RELOC_FRV_TLSMOFFHI",
 1.42270 ++  "BFD_RELOC_FRV_TLSMOFFLO",
 1.42271 ++  "BFD_RELOC_FRV_GOTTLSOFF12",
 1.42272 ++  "BFD_RELOC_FRV_GOTTLSOFFHI",
 1.42273 ++  "BFD_RELOC_FRV_GOTTLSOFFLO",
 1.42274 ++  "BFD_RELOC_FRV_TLSOFF",
 1.42275 ++  "BFD_RELOC_FRV_TLSDESC_RELAX",
 1.42276 ++  "BFD_RELOC_FRV_GETTLSOFF_RELAX",
 1.42277 ++  "BFD_RELOC_FRV_TLSOFF_RELAX",
 1.42278 ++  "BFD_RELOC_FRV_TLSMOFF",
 1.42279 ++
 1.42280 ++  "BFD_RELOC_MN10300_GOTOFF24",
 1.42281 ++  "BFD_RELOC_MN10300_GOT32",
 1.42282 ++  "BFD_RELOC_MN10300_GOT24",
 1.42283 ++  "BFD_RELOC_MN10300_GOT16",
 1.42284 ++  "BFD_RELOC_MN10300_COPY",
 1.42285 ++  "BFD_RELOC_MN10300_GLOB_DAT",
 1.42286 ++  "BFD_RELOC_MN10300_JMP_SLOT",
 1.42287 ++  "BFD_RELOC_MN10300_RELATIVE",
 1.42288 ++
 1.42289 ++  "BFD_RELOC_386_GOT32",
 1.42290 ++  "BFD_RELOC_386_PLT32",
 1.42291 ++  "BFD_RELOC_386_COPY",
 1.42292 ++  "BFD_RELOC_386_GLOB_DAT",
 1.42293 ++  "BFD_RELOC_386_JUMP_SLOT",
 1.42294 ++  "BFD_RELOC_386_RELATIVE",
 1.42295 ++  "BFD_RELOC_386_GOTOFF",
 1.42296 ++  "BFD_RELOC_386_GOTPC",
 1.42297 ++  "BFD_RELOC_386_TLS_TPOFF",
 1.42298 ++  "BFD_RELOC_386_TLS_IE",
 1.42299 ++  "BFD_RELOC_386_TLS_GOTIE",
 1.42300 ++  "BFD_RELOC_386_TLS_LE",
 1.42301 ++  "BFD_RELOC_386_TLS_GD",
 1.42302 ++  "BFD_RELOC_386_TLS_LDM",
 1.42303 ++  "BFD_RELOC_386_TLS_LDO_32",
 1.42304 ++  "BFD_RELOC_386_TLS_IE_32",
 1.42305 ++  "BFD_RELOC_386_TLS_LE_32",
 1.42306 ++  "BFD_RELOC_386_TLS_DTPMOD32",
 1.42307 ++  "BFD_RELOC_386_TLS_DTPOFF32",
 1.42308 ++  "BFD_RELOC_386_TLS_TPOFF32",
 1.42309 ++  "BFD_RELOC_386_TLS_GOTDESC",
 1.42310 ++  "BFD_RELOC_386_TLS_DESC_CALL",
 1.42311 ++  "BFD_RELOC_386_TLS_DESC",
 1.42312 ++  "BFD_RELOC_X86_64_GOT32",
 1.42313 ++  "BFD_RELOC_X86_64_PLT32",
 1.42314 ++  "BFD_RELOC_X86_64_COPY",
 1.42315 ++  "BFD_RELOC_X86_64_GLOB_DAT",
 1.42316 ++  "BFD_RELOC_X86_64_JUMP_SLOT",
 1.42317 ++  "BFD_RELOC_X86_64_RELATIVE",
 1.42318 ++  "BFD_RELOC_X86_64_GOTPCREL",
 1.42319 ++  "BFD_RELOC_X86_64_32S",
 1.42320 ++  "BFD_RELOC_X86_64_DTPMOD64",
 1.42321 ++  "BFD_RELOC_X86_64_DTPOFF64",
 1.42322 ++  "BFD_RELOC_X86_64_TPOFF64",
 1.42323 ++  "BFD_RELOC_X86_64_TLSGD",
 1.42324 ++  "BFD_RELOC_X86_64_TLSLD",
 1.42325 ++  "BFD_RELOC_X86_64_DTPOFF32",
 1.42326 ++  "BFD_RELOC_X86_64_GOTTPOFF",
 1.42327 ++  "BFD_RELOC_X86_64_TPOFF32",
 1.42328 ++  "BFD_RELOC_X86_64_GOTOFF64",
 1.42329 ++  "BFD_RELOC_X86_64_GOTPC32",
 1.42330 ++  "BFD_RELOC_X86_64_GOT64",
 1.42331 ++  "BFD_RELOC_X86_64_GOTPCREL64",
 1.42332 ++  "BFD_RELOC_X86_64_GOTPC64",
 1.42333 ++  "BFD_RELOC_X86_64_GOTPLT64",
 1.42334 ++  "BFD_RELOC_X86_64_PLTOFF64",
 1.42335 ++  "BFD_RELOC_X86_64_GOTPC32_TLSDESC",
 1.42336 ++  "BFD_RELOC_X86_64_TLSDESC_CALL",
 1.42337 ++  "BFD_RELOC_X86_64_TLSDESC",
 1.42338 ++  "BFD_RELOC_NS32K_IMM_8",
 1.42339 ++  "BFD_RELOC_NS32K_IMM_16",
 1.42340 ++  "BFD_RELOC_NS32K_IMM_32",
 1.42341 ++  "BFD_RELOC_NS32K_IMM_8_PCREL",
 1.42342 ++  "BFD_RELOC_NS32K_IMM_16_PCREL",
 1.42343 ++  "BFD_RELOC_NS32K_IMM_32_PCREL",
 1.42344 ++  "BFD_RELOC_NS32K_DISP_8",
 1.42345 ++  "BFD_RELOC_NS32K_DISP_16",
 1.42346 ++  "BFD_RELOC_NS32K_DISP_32",
 1.42347 ++  "BFD_RELOC_NS32K_DISP_8_PCREL",
 1.42348 ++  "BFD_RELOC_NS32K_DISP_16_PCREL",
 1.42349 ++  "BFD_RELOC_NS32K_DISP_32_PCREL",
 1.42350 ++  "BFD_RELOC_PDP11_DISP_8_PCREL",
 1.42351 ++  "BFD_RELOC_PDP11_DISP_6_PCREL",
 1.42352 ++  "BFD_RELOC_PJ_CODE_HI16",
 1.42353 ++  "BFD_RELOC_PJ_CODE_LO16",
 1.42354 ++  "BFD_RELOC_PJ_CODE_DIR16",
 1.42355 ++  "BFD_RELOC_PJ_CODE_DIR32",
 1.42356 ++  "BFD_RELOC_PJ_CODE_REL16",
 1.42357 ++  "BFD_RELOC_PJ_CODE_REL32",
 1.42358 ++  "BFD_RELOC_PPC_B26",
 1.42359 ++  "BFD_RELOC_PPC_BA26",
 1.42360 ++  "BFD_RELOC_PPC_TOC16",
 1.42361 ++  "BFD_RELOC_PPC_B16",
 1.42362 ++  "BFD_RELOC_PPC_B16_BRTAKEN",
 1.42363 ++  "BFD_RELOC_PPC_B16_BRNTAKEN",
 1.42364 ++  "BFD_RELOC_PPC_BA16",
 1.42365 ++  "BFD_RELOC_PPC_BA16_BRTAKEN",
 1.42366 ++  "BFD_RELOC_PPC_BA16_BRNTAKEN",
 1.42367 ++  "BFD_RELOC_PPC_COPY",
 1.42368 ++  "BFD_RELOC_PPC_GLOB_DAT",
 1.42369 ++  "BFD_RELOC_PPC_JMP_SLOT",
 1.42370 ++  "BFD_RELOC_PPC_RELATIVE",
 1.42371 ++  "BFD_RELOC_PPC_LOCAL24PC",
 1.42372 ++  "BFD_RELOC_PPC_EMB_NADDR32",
 1.42373 ++  "BFD_RELOC_PPC_EMB_NADDR16",
 1.42374 ++  "BFD_RELOC_PPC_EMB_NADDR16_LO",
 1.42375 ++  "BFD_RELOC_PPC_EMB_NADDR16_HI",
 1.42376 ++  "BFD_RELOC_PPC_EMB_NADDR16_HA",
 1.42377 ++  "BFD_RELOC_PPC_EMB_SDAI16",
 1.42378 ++  "BFD_RELOC_PPC_EMB_SDA2I16",
 1.42379 ++  "BFD_RELOC_PPC_EMB_SDA2REL",
 1.42380 ++  "BFD_RELOC_PPC_EMB_SDA21",
 1.42381 ++  "BFD_RELOC_PPC_EMB_MRKREF",
 1.42382 ++  "BFD_RELOC_PPC_EMB_RELSEC16",
 1.42383 ++  "BFD_RELOC_PPC_EMB_RELST_LO",
 1.42384 ++  "BFD_RELOC_PPC_EMB_RELST_HI",
 1.42385 ++  "BFD_RELOC_PPC_EMB_RELST_HA",
 1.42386 ++  "BFD_RELOC_PPC_EMB_BIT_FLD",
 1.42387 ++  "BFD_RELOC_PPC_EMB_RELSDA",
 1.42388 ++  "BFD_RELOC_PPC64_HIGHER",
 1.42389 ++  "BFD_RELOC_PPC64_HIGHER_S",
 1.42390 ++  "BFD_RELOC_PPC64_HIGHEST",
 1.42391 ++  "BFD_RELOC_PPC64_HIGHEST_S",
 1.42392 ++  "BFD_RELOC_PPC64_TOC16_LO",
 1.42393 ++  "BFD_RELOC_PPC64_TOC16_HI",
 1.42394 ++  "BFD_RELOC_PPC64_TOC16_HA",
 1.42395 ++  "BFD_RELOC_PPC64_TOC",
 1.42396 ++  "BFD_RELOC_PPC64_PLTGOT16",
 1.42397 ++  "BFD_RELOC_PPC64_PLTGOT16_LO",
 1.42398 ++  "BFD_RELOC_PPC64_PLTGOT16_HI",
 1.42399 ++  "BFD_RELOC_PPC64_PLTGOT16_HA",
 1.42400 ++  "BFD_RELOC_PPC64_ADDR16_DS",
 1.42401 ++  "BFD_RELOC_PPC64_ADDR16_LO_DS",
 1.42402 ++  "BFD_RELOC_PPC64_GOT16_DS",
 1.42403 ++  "BFD_RELOC_PPC64_GOT16_LO_DS",
 1.42404 ++  "BFD_RELOC_PPC64_PLT16_LO_DS",
 1.42405 ++  "BFD_RELOC_PPC64_SECTOFF_DS",
 1.42406 ++  "BFD_RELOC_PPC64_SECTOFF_LO_DS",
 1.42407 ++  "BFD_RELOC_PPC64_TOC16_DS",
 1.42408 ++  "BFD_RELOC_PPC64_TOC16_LO_DS",
 1.42409 ++  "BFD_RELOC_PPC64_PLTGOT16_DS",
 1.42410 ++  "BFD_RELOC_PPC64_PLTGOT16_LO_DS",
 1.42411 ++  "BFD_RELOC_PPC_TLS",
 1.42412 ++  "BFD_RELOC_PPC_DTPMOD",
 1.42413 ++  "BFD_RELOC_PPC_TPREL16",
 1.42414 ++  "BFD_RELOC_PPC_TPREL16_LO",
 1.42415 ++  "BFD_RELOC_PPC_TPREL16_HI",
 1.42416 ++  "BFD_RELOC_PPC_TPREL16_HA",
 1.42417 ++  "BFD_RELOC_PPC_TPREL",
 1.42418 ++  "BFD_RELOC_PPC_DTPREL16",
 1.42419 ++  "BFD_RELOC_PPC_DTPREL16_LO",
 1.42420 ++  "BFD_RELOC_PPC_DTPREL16_HI",
 1.42421 ++  "BFD_RELOC_PPC_DTPREL16_HA",
 1.42422 ++  "BFD_RELOC_PPC_DTPREL",
 1.42423 ++  "BFD_RELOC_PPC_GOT_TLSGD16",
 1.42424 ++  "BFD_RELOC_PPC_GOT_TLSGD16_LO",
 1.42425 ++  "BFD_RELOC_PPC_GOT_TLSGD16_HI",
 1.42426 ++  "BFD_RELOC_PPC_GOT_TLSGD16_HA",
 1.42427 ++  "BFD_RELOC_PPC_GOT_TLSLD16",
 1.42428 ++  "BFD_RELOC_PPC_GOT_TLSLD16_LO",
 1.42429 ++  "BFD_RELOC_PPC_GOT_TLSLD16_HI",
 1.42430 ++  "BFD_RELOC_PPC_GOT_TLSLD16_HA",
 1.42431 ++  "BFD_RELOC_PPC_GOT_TPREL16",
 1.42432 ++  "BFD_RELOC_PPC_GOT_TPREL16_LO",
 1.42433 ++  "BFD_RELOC_PPC_GOT_TPREL16_HI",
 1.42434 ++  "BFD_RELOC_PPC_GOT_TPREL16_HA",
 1.42435 ++  "BFD_RELOC_PPC_GOT_DTPREL16",
 1.42436 ++  "BFD_RELOC_PPC_GOT_DTPREL16_LO",
 1.42437 ++  "BFD_RELOC_PPC_GOT_DTPREL16_HI",
 1.42438 ++  "BFD_RELOC_PPC_GOT_DTPREL16_HA",
 1.42439 ++  "BFD_RELOC_PPC64_TPREL16_DS",
 1.42440 ++  "BFD_RELOC_PPC64_TPREL16_LO_DS",
 1.42441 ++  "BFD_RELOC_PPC64_TPREL16_HIGHER",
 1.42442 ++  "BFD_RELOC_PPC64_TPREL16_HIGHERA",
 1.42443 ++  "BFD_RELOC_PPC64_TPREL16_HIGHEST",
 1.42444 ++  "BFD_RELOC_PPC64_TPREL16_HIGHESTA",
 1.42445 ++  "BFD_RELOC_PPC64_DTPREL16_DS",
 1.42446 ++  "BFD_RELOC_PPC64_DTPREL16_LO_DS",
 1.42447 ++  "BFD_RELOC_PPC64_DTPREL16_HIGHER",
 1.42448 ++  "BFD_RELOC_PPC64_DTPREL16_HIGHERA",
 1.42449 ++  "BFD_RELOC_PPC64_DTPREL16_HIGHEST",
 1.42450 ++  "BFD_RELOC_PPC64_DTPREL16_HIGHESTA",
 1.42451 ++  "BFD_RELOC_I370_D12",
 1.42452 ++  "BFD_RELOC_CTOR",
 1.42453 ++  "BFD_RELOC_ARM_PCREL_BRANCH",
 1.42454 ++  "BFD_RELOC_ARM_PCREL_BLX",
 1.42455 ++  "BFD_RELOC_THUMB_PCREL_BLX",
 1.42456 ++  "BFD_RELOC_ARM_PCREL_CALL",
 1.42457 ++  "BFD_RELOC_ARM_PCREL_JUMP",
 1.42458 ++  "BFD_RELOC_THUMB_PCREL_BRANCH7",
 1.42459 ++  "BFD_RELOC_THUMB_PCREL_BRANCH9",
 1.42460 ++  "BFD_RELOC_THUMB_PCREL_BRANCH12",
 1.42461 ++  "BFD_RELOC_THUMB_PCREL_BRANCH20",
 1.42462 ++  "BFD_RELOC_THUMB_PCREL_BRANCH23",
 1.42463 ++  "BFD_RELOC_THUMB_PCREL_BRANCH25",
 1.42464 ++  "BFD_RELOC_ARM_OFFSET_IMM",
 1.42465 ++  "BFD_RELOC_ARM_THUMB_OFFSET",
 1.42466 ++  "BFD_RELOC_ARM_TARGET1",
 1.42467 ++  "BFD_RELOC_ARM_ROSEGREL32",
 1.42468 ++  "BFD_RELOC_ARM_SBREL32",
 1.42469 ++  "BFD_RELOC_ARM_TARGET2",
 1.42470 ++  "BFD_RELOC_ARM_PREL31",
 1.42471 ++  "BFD_RELOC_ARM_MOVW",
 1.42472 ++  "BFD_RELOC_ARM_MOVT",
 1.42473 ++  "BFD_RELOC_ARM_MOVW_PCREL",
 1.42474 ++  "BFD_RELOC_ARM_MOVT_PCREL",
 1.42475 ++  "BFD_RELOC_ARM_THUMB_MOVW",
 1.42476 ++  "BFD_RELOC_ARM_THUMB_MOVT",
 1.42477 ++  "BFD_RELOC_ARM_THUMB_MOVW_PCREL",
 1.42478 ++  "BFD_RELOC_ARM_THUMB_MOVT_PCREL",
 1.42479 ++  "BFD_RELOC_ARM_JUMP_SLOT",
 1.42480 ++  "BFD_RELOC_ARM_GLOB_DAT",
 1.42481 ++  "BFD_RELOC_ARM_GOT32",
 1.42482 ++  "BFD_RELOC_ARM_PLT32",
 1.42483 ++  "BFD_RELOC_ARM_RELATIVE",
 1.42484 ++  "BFD_RELOC_ARM_GOTOFF",
 1.42485 ++  "BFD_RELOC_ARM_GOTPC",
 1.42486 ++  "BFD_RELOC_ARM_TLS_GD32",
 1.42487 ++  "BFD_RELOC_ARM_TLS_LDO32",
 1.42488 ++  "BFD_RELOC_ARM_TLS_LDM32",
 1.42489 ++  "BFD_RELOC_ARM_TLS_DTPOFF32",
 1.42490 ++  "BFD_RELOC_ARM_TLS_DTPMOD32",
 1.42491 ++  "BFD_RELOC_ARM_TLS_TPOFF32",
 1.42492 ++  "BFD_RELOC_ARM_TLS_IE32",
 1.42493 ++  "BFD_RELOC_ARM_TLS_LE32",
 1.42494 ++  "BFD_RELOC_ARM_ALU_PC_G0_NC",
 1.42495 ++  "BFD_RELOC_ARM_ALU_PC_G0",
 1.42496 ++  "BFD_RELOC_ARM_ALU_PC_G1_NC",
 1.42497 ++  "BFD_RELOC_ARM_ALU_PC_G1",
 1.42498 ++  "BFD_RELOC_ARM_ALU_PC_G2",
 1.42499 ++  "BFD_RELOC_ARM_LDR_PC_G0",
 1.42500 ++  "BFD_RELOC_ARM_LDR_PC_G1",
 1.42501 ++  "BFD_RELOC_ARM_LDR_PC_G2",
 1.42502 ++  "BFD_RELOC_ARM_LDRS_PC_G0",
 1.42503 ++  "BFD_RELOC_ARM_LDRS_PC_G1",
 1.42504 ++  "BFD_RELOC_ARM_LDRS_PC_G2",
 1.42505 ++  "BFD_RELOC_ARM_LDC_PC_G0",
 1.42506 ++  "BFD_RELOC_ARM_LDC_PC_G1",
 1.42507 ++  "BFD_RELOC_ARM_LDC_PC_G2",
 1.42508 ++  "BFD_RELOC_ARM_ALU_SB_G0_NC",
 1.42509 ++  "BFD_RELOC_ARM_ALU_SB_G0",
 1.42510 ++  "BFD_RELOC_ARM_ALU_SB_G1_NC",
 1.42511 ++  "BFD_RELOC_ARM_ALU_SB_G1",
 1.42512 ++  "BFD_RELOC_ARM_ALU_SB_G2",
 1.42513 ++  "BFD_RELOC_ARM_LDR_SB_G0",
 1.42514 ++  "BFD_RELOC_ARM_LDR_SB_G1",
 1.42515 ++  "BFD_RELOC_ARM_LDR_SB_G2",
 1.42516 ++  "BFD_RELOC_ARM_LDRS_SB_G0",
 1.42517 ++  "BFD_RELOC_ARM_LDRS_SB_G1",
 1.42518 ++  "BFD_RELOC_ARM_LDRS_SB_G2",
 1.42519 ++  "BFD_RELOC_ARM_LDC_SB_G0",
 1.42520 ++  "BFD_RELOC_ARM_LDC_SB_G1",
 1.42521 ++  "BFD_RELOC_ARM_LDC_SB_G2",
 1.42522 ++  "BFD_RELOC_ARM_IMMEDIATE",
 1.42523 ++  "BFD_RELOC_ARM_ADRL_IMMEDIATE",
 1.42524 ++  "BFD_RELOC_ARM_T32_IMMEDIATE",
 1.42525 ++  "BFD_RELOC_ARM_T32_ADD_IMM",
 1.42526 ++  "BFD_RELOC_ARM_T32_IMM12",
 1.42527 ++  "BFD_RELOC_ARM_T32_ADD_PC12",
 1.42528 ++  "BFD_RELOC_ARM_SHIFT_IMM",
 1.42529 ++  "BFD_RELOC_ARM_SMC",
 1.42530 ++  "BFD_RELOC_ARM_SWI",
 1.42531 ++  "BFD_RELOC_ARM_MULTI",
 1.42532 ++  "BFD_RELOC_ARM_CP_OFF_IMM",
 1.42533 ++  "BFD_RELOC_ARM_CP_OFF_IMM_S2",
 1.42534 ++  "BFD_RELOC_ARM_T32_CP_OFF_IMM",
 1.42535 ++  "BFD_RELOC_ARM_T32_CP_OFF_IMM_S2",
 1.42536 ++  "BFD_RELOC_ARM_ADR_IMM",
 1.42537 ++  "BFD_RELOC_ARM_LDR_IMM",
 1.42538 ++  "BFD_RELOC_ARM_LITERAL",
 1.42539 ++  "BFD_RELOC_ARM_IN_POOL",
 1.42540 ++  "BFD_RELOC_ARM_OFFSET_IMM8",
 1.42541 ++  "BFD_RELOC_ARM_T32_OFFSET_U8",
 1.42542 ++  "BFD_RELOC_ARM_T32_OFFSET_IMM",
 1.42543 ++  "BFD_RELOC_ARM_HWLITERAL",
 1.42544 ++  "BFD_RELOC_ARM_THUMB_ADD",
 1.42545 ++  "BFD_RELOC_ARM_THUMB_IMM",
 1.42546 ++  "BFD_RELOC_ARM_THUMB_SHIFT",
 1.42547 ++  "BFD_RELOC_SH_PCDISP8BY2",
 1.42548 ++  "BFD_RELOC_SH_PCDISP12BY2",
 1.42549 ++  "BFD_RELOC_SH_IMM3",
 1.42550 ++  "BFD_RELOC_SH_IMM3U",
 1.42551 ++  "BFD_RELOC_SH_DISP12",
 1.42552 ++  "BFD_RELOC_SH_DISP12BY2",
 1.42553 ++  "BFD_RELOC_SH_DISP12BY4",
 1.42554 ++  "BFD_RELOC_SH_DISP12BY8",
 1.42555 ++  "BFD_RELOC_SH_DISP20",
 1.42556 ++  "BFD_RELOC_SH_DISP20BY8",
 1.42557 ++  "BFD_RELOC_SH_IMM4",
 1.42558 ++  "BFD_RELOC_SH_IMM4BY2",
 1.42559 ++  "BFD_RELOC_SH_IMM4BY4",
 1.42560 ++  "BFD_RELOC_SH_IMM8",
 1.42561 ++  "BFD_RELOC_SH_IMM8BY2",
 1.42562 ++  "BFD_RELOC_SH_IMM8BY4",
 1.42563 ++  "BFD_RELOC_SH_PCRELIMM8BY2",
 1.42564 ++  "BFD_RELOC_SH_PCRELIMM8BY4",
 1.42565 ++  "BFD_RELOC_SH_SWITCH16",
 1.42566 ++  "BFD_RELOC_SH_SWITCH32",
 1.42567 ++  "BFD_RELOC_SH_USES",
 1.42568 ++  "BFD_RELOC_SH_COUNT",
 1.42569 ++  "BFD_RELOC_SH_ALIGN",
 1.42570 ++  "BFD_RELOC_SH_CODE",
 1.42571 ++  "BFD_RELOC_SH_DATA",
 1.42572 ++  "BFD_RELOC_SH_LABEL",
 1.42573 ++  "BFD_RELOC_SH_LOOP_START",
 1.42574 ++  "BFD_RELOC_SH_LOOP_END",
 1.42575 ++  "BFD_RELOC_SH_COPY",
 1.42576 ++  "BFD_RELOC_SH_GLOB_DAT",
 1.42577 ++  "BFD_RELOC_SH_JMP_SLOT",
 1.42578 ++  "BFD_RELOC_SH_RELATIVE",
 1.42579 ++  "BFD_RELOC_SH_GOTPC",
 1.42580 ++  "BFD_RELOC_SH_GOT_LOW16",
 1.42581 ++  "BFD_RELOC_SH_GOT_MEDLOW16",
 1.42582 ++  "BFD_RELOC_SH_GOT_MEDHI16",
 1.42583 ++  "BFD_RELOC_SH_GOT_HI16",
 1.42584 ++  "BFD_RELOC_SH_GOTPLT_LOW16",
 1.42585 ++  "BFD_RELOC_SH_GOTPLT_MEDLOW16",
 1.42586 ++  "BFD_RELOC_SH_GOTPLT_MEDHI16",
 1.42587 ++  "BFD_RELOC_SH_GOTPLT_HI16",
 1.42588 ++  "BFD_RELOC_SH_PLT_LOW16",
 1.42589 ++  "BFD_RELOC_SH_PLT_MEDLOW16",
 1.42590 ++  "BFD_RELOC_SH_PLT_MEDHI16",
 1.42591 ++  "BFD_RELOC_SH_PLT_HI16",
 1.42592 ++  "BFD_RELOC_SH_GOTOFF_LOW16",
 1.42593 ++  "BFD_RELOC_SH_GOTOFF_MEDLOW16",
 1.42594 ++  "BFD_RELOC_SH_GOTOFF_MEDHI16",
 1.42595 ++  "BFD_RELOC_SH_GOTOFF_HI16",
 1.42596 ++  "BFD_RELOC_SH_GOTPC_LOW16",
 1.42597 ++  "BFD_RELOC_SH_GOTPC_MEDLOW16",
 1.42598 ++  "BFD_RELOC_SH_GOTPC_MEDHI16",
 1.42599 ++  "BFD_RELOC_SH_GOTPC_HI16",
 1.42600 ++  "BFD_RELOC_SH_COPY64",
 1.42601 ++  "BFD_RELOC_SH_GLOB_DAT64",
 1.42602 ++  "BFD_RELOC_SH_JMP_SLOT64",
 1.42603 ++  "BFD_RELOC_SH_RELATIVE64",
 1.42604 ++  "BFD_RELOC_SH_GOT10BY4",
 1.42605 ++  "BFD_RELOC_SH_GOT10BY8",
 1.42606 ++  "BFD_RELOC_SH_GOTPLT10BY4",
 1.42607 ++  "BFD_RELOC_SH_GOTPLT10BY8",
 1.42608 ++  "BFD_RELOC_SH_GOTPLT32",
 1.42609 ++  "BFD_RELOC_SH_SHMEDIA_CODE",
 1.42610 ++  "BFD_RELOC_SH_IMMU5",
 1.42611 ++  "BFD_RELOC_SH_IMMS6",
 1.42612 ++  "BFD_RELOC_SH_IMMS6BY32",
 1.42613 ++  "BFD_RELOC_SH_IMMU6",
 1.42614 ++  "BFD_RELOC_SH_IMMS10",
 1.42615 ++  "BFD_RELOC_SH_IMMS10BY2",
 1.42616 ++  "BFD_RELOC_SH_IMMS10BY4",
 1.42617 ++  "BFD_RELOC_SH_IMMS10BY8",
 1.42618 ++  "BFD_RELOC_SH_IMMS16",
 1.42619 ++  "BFD_RELOC_SH_IMMU16",
 1.42620 ++  "BFD_RELOC_SH_IMM_LOW16",
 1.42621 ++  "BFD_RELOC_SH_IMM_LOW16_PCREL",
 1.42622 ++  "BFD_RELOC_SH_IMM_MEDLOW16",
 1.42623 ++  "BFD_RELOC_SH_IMM_MEDLOW16_PCREL",
 1.42624 ++  "BFD_RELOC_SH_IMM_MEDHI16",
 1.42625 ++  "BFD_RELOC_SH_IMM_MEDHI16_PCREL",
 1.42626 ++  "BFD_RELOC_SH_IMM_HI16",
 1.42627 ++  "BFD_RELOC_SH_IMM_HI16_PCREL",
 1.42628 ++  "BFD_RELOC_SH_PT_16",
 1.42629 ++  "BFD_RELOC_SH_TLS_GD_32",
 1.42630 ++  "BFD_RELOC_SH_TLS_LD_32",
 1.42631 ++  "BFD_RELOC_SH_TLS_LDO_32",
 1.42632 ++  "BFD_RELOC_SH_TLS_IE_32",
 1.42633 ++  "BFD_RELOC_SH_TLS_LE_32",
 1.42634 ++  "BFD_RELOC_SH_TLS_DTPMOD32",
 1.42635 ++  "BFD_RELOC_SH_TLS_DTPOFF32",
 1.42636 ++  "BFD_RELOC_SH_TLS_TPOFF32",
 1.42637 ++  "BFD_RELOC_ARC_B22_PCREL",
 1.42638 ++  "BFD_RELOC_ARC_B26",
 1.42639 ++  "BFD_RELOC_BFIN_16_IMM",
 1.42640 ++  "BFD_RELOC_BFIN_16_HIGH",
 1.42641 ++  "BFD_RELOC_BFIN_4_PCREL",
 1.42642 ++  "BFD_RELOC_BFIN_5_PCREL",
 1.42643 ++  "BFD_RELOC_BFIN_16_LOW",
 1.42644 ++  "BFD_RELOC_BFIN_10_PCREL",
 1.42645 ++  "BFD_RELOC_BFIN_11_PCREL",
 1.42646 ++  "BFD_RELOC_BFIN_12_PCREL_JUMP",
 1.42647 ++  "BFD_RELOC_BFIN_12_PCREL_JUMP_S",
 1.42648 ++  "BFD_RELOC_BFIN_24_PCREL_CALL_X",
 1.42649 ++  "BFD_RELOC_BFIN_24_PCREL_JUMP_L",
 1.42650 ++  "BFD_RELOC_BFIN_GOT17M4",
 1.42651 ++  "BFD_RELOC_BFIN_GOTHI",
 1.42652 ++  "BFD_RELOC_BFIN_GOTLO",
 1.42653 ++  "BFD_RELOC_BFIN_FUNCDESC",
 1.42654 ++  "BFD_RELOC_BFIN_FUNCDESC_GOT17M4",
 1.42655 ++  "BFD_RELOC_BFIN_FUNCDESC_GOTHI",
 1.42656 ++  "BFD_RELOC_BFIN_FUNCDESC_GOTLO",
 1.42657 ++  "BFD_RELOC_BFIN_FUNCDESC_VALUE",
 1.42658 ++  "BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4",
 1.42659 ++  "BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI",
 1.42660 ++  "BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO",
 1.42661 ++  "BFD_RELOC_BFIN_GOTOFF17M4",
 1.42662 ++  "BFD_RELOC_BFIN_GOTOFFHI",
 1.42663 ++  "BFD_RELOC_BFIN_GOTOFFLO",
 1.42664 ++  "BFD_RELOC_BFIN_GOT",
 1.42665 ++  "BFD_RELOC_BFIN_PLTPC",
 1.42666 ++  "BFD_ARELOC_BFIN_PUSH",
 1.42667 ++  "BFD_ARELOC_BFIN_CONST",
 1.42668 ++  "BFD_ARELOC_BFIN_ADD",
 1.42669 ++  "BFD_ARELOC_BFIN_SUB",
 1.42670 ++  "BFD_ARELOC_BFIN_MULT",
 1.42671 ++  "BFD_ARELOC_BFIN_DIV",
 1.42672 ++  "BFD_ARELOC_BFIN_MOD",
 1.42673 ++  "BFD_ARELOC_BFIN_LSHIFT",
 1.42674 ++  "BFD_ARELOC_BFIN_RSHIFT",
 1.42675 ++  "BFD_ARELOC_BFIN_AND",
 1.42676 ++  "BFD_ARELOC_BFIN_OR",
 1.42677 ++  "BFD_ARELOC_BFIN_XOR",
 1.42678 ++  "BFD_ARELOC_BFIN_LAND",
 1.42679 ++  "BFD_ARELOC_BFIN_LOR",
 1.42680 ++  "BFD_ARELOC_BFIN_LEN",
 1.42681 ++  "BFD_ARELOC_BFIN_NEG",
 1.42682 ++  "BFD_ARELOC_BFIN_COMP",
 1.42683 ++  "BFD_ARELOC_BFIN_PAGE",
 1.42684 ++  "BFD_ARELOC_BFIN_HWPAGE",
 1.42685 ++  "BFD_ARELOC_BFIN_ADDR",
 1.42686 ++  "BFD_RELOC_D10V_10_PCREL_R",
 1.42687 ++  "BFD_RELOC_D10V_10_PCREL_L",
 1.42688 ++  "BFD_RELOC_D10V_18",
 1.42689 ++  "BFD_RELOC_D10V_18_PCREL",
 1.42690 ++  "BFD_RELOC_D30V_6",
 1.42691 ++  "BFD_RELOC_D30V_9_PCREL",
 1.42692 ++  "BFD_RELOC_D30V_9_PCREL_R",
 1.42693 ++  "BFD_RELOC_D30V_15",
 1.42694 ++  "BFD_RELOC_D30V_15_PCREL",
 1.42695 ++  "BFD_RELOC_D30V_15_PCREL_R",
 1.42696 ++  "BFD_RELOC_D30V_21",
 1.42697 ++  "BFD_RELOC_D30V_21_PCREL",
 1.42698 ++  "BFD_RELOC_D30V_21_PCREL_R",
 1.42699 ++  "BFD_RELOC_D30V_32",
 1.42700 ++  "BFD_RELOC_D30V_32_PCREL",
 1.42701 ++  "BFD_RELOC_DLX_HI16_S",
 1.42702 ++  "BFD_RELOC_DLX_LO16",
 1.42703 ++  "BFD_RELOC_DLX_JMP26",
 1.42704 ++  "BFD_RELOC_M32C_HI8",
 1.42705 ++  "BFD_RELOC_M32C_RL_JUMP",
 1.42706 ++  "BFD_RELOC_M32C_RL_1ADDR",
 1.42707 ++  "BFD_RELOC_M32C_RL_2ADDR",
 1.42708 ++  "BFD_RELOC_M32R_24",
 1.42709 ++  "BFD_RELOC_M32R_10_PCREL",
 1.42710 ++  "BFD_RELOC_M32R_18_PCREL",
 1.42711 ++  "BFD_RELOC_M32R_26_PCREL",
 1.42712 ++  "BFD_RELOC_M32R_HI16_ULO",
 1.42713 ++  "BFD_RELOC_M32R_HI16_SLO",
 1.42714 ++  "BFD_RELOC_M32R_LO16",
 1.42715 ++  "BFD_RELOC_M32R_SDA16",
 1.42716 ++  "BFD_RELOC_M32R_GOT24",
 1.42717 ++  "BFD_RELOC_M32R_26_PLTREL",
 1.42718 ++  "BFD_RELOC_M32R_COPY",
 1.42719 ++  "BFD_RELOC_M32R_GLOB_DAT",
 1.42720 ++  "BFD_RELOC_M32R_JMP_SLOT",
 1.42721 ++  "BFD_RELOC_M32R_RELATIVE",
 1.42722 ++  "BFD_RELOC_M32R_GOTOFF",
 1.42723 ++  "BFD_RELOC_M32R_GOTOFF_HI_ULO",
 1.42724 ++  "BFD_RELOC_M32R_GOTOFF_HI_SLO",
 1.42725 ++  "BFD_RELOC_M32R_GOTOFF_LO",
 1.42726 ++  "BFD_RELOC_M32R_GOTPC24",
 1.42727 ++  "BFD_RELOC_M32R_GOT16_HI_ULO",
 1.42728 ++  "BFD_RELOC_M32R_GOT16_HI_SLO",
 1.42729 ++  "BFD_RELOC_M32R_GOT16_LO",
 1.42730 ++  "BFD_RELOC_M32R_GOTPC_HI_ULO",
 1.42731 ++  "BFD_RELOC_M32R_GOTPC_HI_SLO",
 1.42732 ++  "BFD_RELOC_M32R_GOTPC_LO",
 1.42733 ++  "BFD_RELOC_V850_9_PCREL",
 1.42734 ++  "BFD_RELOC_V850_22_PCREL",
 1.42735 ++  "BFD_RELOC_V850_SDA_16_16_OFFSET",
 1.42736 ++  "BFD_RELOC_V850_SDA_15_16_OFFSET",
 1.42737 ++  "BFD_RELOC_V850_ZDA_16_16_OFFSET",
 1.42738 ++  "BFD_RELOC_V850_ZDA_15_16_OFFSET",
 1.42739 ++  "BFD_RELOC_V850_TDA_6_8_OFFSET",
 1.42740 ++  "BFD_RELOC_V850_TDA_7_8_OFFSET",
 1.42741 ++  "BFD_RELOC_V850_TDA_7_7_OFFSET",
 1.42742 ++  "BFD_RELOC_V850_TDA_16_16_OFFSET",
 1.42743 ++  "BFD_RELOC_V850_TDA_4_5_OFFSET",
 1.42744 ++  "BFD_RELOC_V850_TDA_4_4_OFFSET",
 1.42745 ++  "BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET",
 1.42746 ++  "BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET",
 1.42747 ++  "BFD_RELOC_V850_CALLT_6_7_OFFSET",
 1.42748 ++  "BFD_RELOC_V850_CALLT_16_16_OFFSET",
 1.42749 ++  "BFD_RELOC_V850_LONGCALL",
 1.42750 ++  "BFD_RELOC_V850_LONGJUMP",
 1.42751 ++  "BFD_RELOC_V850_ALIGN",
 1.42752 ++  "BFD_RELOC_V850_LO16_SPLIT_OFFSET",
 1.42753 ++  "BFD_RELOC_MN10300_32_PCREL",
 1.42754 ++  "BFD_RELOC_MN10300_16_PCREL",
 1.42755 ++  "BFD_RELOC_TIC30_LDP",
 1.42756 ++  "BFD_RELOC_TIC54X_PARTLS7",
 1.42757 ++  "BFD_RELOC_TIC54X_PARTMS9",
 1.42758 ++  "BFD_RELOC_TIC54X_23",
 1.42759 ++  "BFD_RELOC_TIC54X_16_OF_23",
 1.42760 ++  "BFD_RELOC_TIC54X_MS7_OF_23",
 1.42761 ++  "BFD_RELOC_FR30_48",
 1.42762 ++  "BFD_RELOC_FR30_20",
 1.42763 ++  "BFD_RELOC_FR30_6_IN_4",
 1.42764 ++  "BFD_RELOC_FR30_8_IN_8",
 1.42765 ++  "BFD_RELOC_FR30_9_IN_8",
 1.42766 ++  "BFD_RELOC_FR30_10_IN_8",
 1.42767 ++  "BFD_RELOC_FR30_9_PCREL",
 1.42768 ++  "BFD_RELOC_FR30_12_PCREL",
 1.42769 ++  "BFD_RELOC_MCORE_PCREL_IMM8BY4",
 1.42770 ++  "BFD_RELOC_MCORE_PCREL_IMM11BY2",
 1.42771 ++  "BFD_RELOC_MCORE_PCREL_IMM4BY2",
 1.42772 ++  "BFD_RELOC_MCORE_PCREL_32",
 1.42773 ++  "BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2",
 1.42774 ++  "BFD_RELOC_MCORE_RVA",
 1.42775 ++  "BFD_RELOC_MEP_8",
 1.42776 ++  "BFD_RELOC_MEP_16",
 1.42777 ++  "BFD_RELOC_MEP_32",
 1.42778 ++  "BFD_RELOC_MEP_PCREL8A2",
 1.42779 ++  "BFD_RELOC_MEP_PCREL12A2",
 1.42780 ++  "BFD_RELOC_MEP_PCREL17A2",
 1.42781 ++  "BFD_RELOC_MEP_PCREL24A2",
 1.42782 ++  "BFD_RELOC_MEP_PCABS24A2",
 1.42783 ++  "BFD_RELOC_MEP_LOW16",
 1.42784 ++  "BFD_RELOC_MEP_HI16U",
 1.42785 ++  "BFD_RELOC_MEP_HI16S",
 1.42786 ++  "BFD_RELOC_MEP_GPREL",
 1.42787 ++  "BFD_RELOC_MEP_TPREL",
 1.42788 ++  "BFD_RELOC_MEP_TPREL7",
 1.42789 ++  "BFD_RELOC_MEP_TPREL7A2",
 1.42790 ++  "BFD_RELOC_MEP_TPREL7A4",
 1.42791 ++  "BFD_RELOC_MEP_UIMM24",
 1.42792 ++  "BFD_RELOC_MEP_ADDR24A4",
 1.42793 ++  "BFD_RELOC_MEP_GNU_VTINHERIT",
 1.42794 ++  "BFD_RELOC_MEP_GNU_VTENTRY",
 1.42795 ++
 1.42796 ++  "BFD_RELOC_MMIX_GETA",
 1.42797 ++  "BFD_RELOC_MMIX_GETA_1",
 1.42798 ++  "BFD_RELOC_MMIX_GETA_2",
 1.42799 ++  "BFD_RELOC_MMIX_GETA_3",
 1.42800 ++  "BFD_RELOC_MMIX_CBRANCH",
 1.42801 ++  "BFD_RELOC_MMIX_CBRANCH_J",
 1.42802 ++  "BFD_RELOC_MMIX_CBRANCH_1",
 1.42803 ++  "BFD_RELOC_MMIX_CBRANCH_2",
 1.42804 ++  "BFD_RELOC_MMIX_CBRANCH_3",
 1.42805 ++  "BFD_RELOC_MMIX_PUSHJ",
 1.42806 ++  "BFD_RELOC_MMIX_PUSHJ_1",
 1.42807 ++  "BFD_RELOC_MMIX_PUSHJ_2",
 1.42808 ++  "BFD_RELOC_MMIX_PUSHJ_3",
 1.42809 ++  "BFD_RELOC_MMIX_PUSHJ_STUBBABLE",
 1.42810 ++  "BFD_RELOC_MMIX_JMP",
 1.42811 ++  "BFD_RELOC_MMIX_JMP_1",
 1.42812 ++  "BFD_RELOC_MMIX_JMP_2",
 1.42813 ++  "BFD_RELOC_MMIX_JMP_3",
 1.42814 ++  "BFD_RELOC_MMIX_ADDR19",
 1.42815 ++  "BFD_RELOC_MMIX_ADDR27",
 1.42816 ++  "BFD_RELOC_MMIX_REG_OR_BYTE",
 1.42817 ++  "BFD_RELOC_MMIX_REG",
 1.42818 ++  "BFD_RELOC_MMIX_BASE_PLUS_OFFSET",
 1.42819 ++  "BFD_RELOC_MMIX_LOCAL",
 1.42820 ++  "BFD_RELOC_AVR_7_PCREL",
 1.42821 ++  "BFD_RELOC_AVR_13_PCREL",
 1.42822 ++  "BFD_RELOC_AVR_16_PM",
 1.42823 ++  "BFD_RELOC_AVR_LO8_LDI",
 1.42824 ++  "BFD_RELOC_AVR_HI8_LDI",
 1.42825 ++  "BFD_RELOC_AVR_HH8_LDI",
 1.42826 ++  "BFD_RELOC_AVR_MS8_LDI",
 1.42827 ++  "BFD_RELOC_AVR_LO8_LDI_NEG",
 1.42828 ++  "BFD_RELOC_AVR_HI8_LDI_NEG",
 1.42829 ++  "BFD_RELOC_AVR_HH8_LDI_NEG",
 1.42830 ++  "BFD_RELOC_AVR_MS8_LDI_NEG",
 1.42831 ++  "BFD_RELOC_AVR_LO8_LDI_PM",
 1.42832 ++  "BFD_RELOC_AVR_LO8_LDI_GS",
 1.42833 ++  "BFD_RELOC_AVR_HI8_LDI_PM",
 1.42834 ++  "BFD_RELOC_AVR_HI8_LDI_GS",
 1.42835 ++  "BFD_RELOC_AVR_HH8_LDI_PM",
 1.42836 ++  "BFD_RELOC_AVR_LO8_LDI_PM_NEG",
 1.42837 ++  "BFD_RELOC_AVR_HI8_LDI_PM_NEG",
 1.42838 ++  "BFD_RELOC_AVR_HH8_LDI_PM_NEG",
 1.42839 ++  "BFD_RELOC_AVR_CALL",
 1.42840 ++  "BFD_RELOC_AVR_LDI",
 1.42841 ++  "BFD_RELOC_AVR_6",
 1.42842 ++  "BFD_RELOC_AVR_6_ADIW",
 1.42843 ++  "BFD_RELOC_AVR32_DIFF32",
 1.42844 ++  "BFD_RELOC_AVR32_DIFF16",
 1.42845 ++  "BFD_RELOC_AVR32_DIFF8",
 1.42846 ++  "BFD_RELOC_AVR32_GOT32",
 1.42847 ++  "BFD_RELOC_AVR32_GOT16",
 1.42848 ++  "BFD_RELOC_AVR32_GOT8",
 1.42849 ++  "BFD_RELOC_AVR32_21S",
 1.42850 ++  "BFD_RELOC_AVR32_16U",
 1.42851 ++  "BFD_RELOC_AVR32_16S",
 1.42852 ++  "BFD_RELOC_AVR32_SUB5",
 1.42853 ++  "BFD_RELOC_AVR32_8S_EXT",
 1.42854 ++  "BFD_RELOC_AVR32_8S",
 1.42855 ++  "BFD_RELOC_AVR32_15S",
 1.42856 ++  "BFD_RELOC_AVR32_22H_PCREL",
 1.42857 ++  "BFD_RELOC_AVR32_18W_PCREL",
 1.42858 ++  "BFD_RELOC_AVR32_16B_PCREL",
 1.42859 ++  "BFD_RELOC_AVR32_16N_PCREL",
 1.42860 ++  "BFD_RELOC_AVR32_14UW_PCREL",
 1.42861 ++  "BFD_RELOC_AVR32_11H_PCREL",
 1.42862 ++  "BFD_RELOC_AVR32_10UW_PCREL",
 1.42863 ++  "BFD_RELOC_AVR32_9H_PCREL",
 1.42864 ++  "BFD_RELOC_AVR32_9UW_PCREL",
 1.42865 ++  "BFD_RELOC_AVR32_GOTPC",
 1.42866 ++  "BFD_RELOC_AVR32_GOTCALL",
 1.42867 ++  "BFD_RELOC_AVR32_LDA_GOT",
 1.42868 ++  "BFD_RELOC_AVR32_GOT21S",
 1.42869 ++  "BFD_RELOC_AVR32_GOT18SW",
 1.42870 ++  "BFD_RELOC_AVR32_GOT16S",
 1.42871 ++  "BFD_RELOC_AVR32_32_CPENT",
 1.42872 ++  "BFD_RELOC_AVR32_CPCALL",
 1.42873 ++  "BFD_RELOC_AVR32_16_CP",
 1.42874 ++  "BFD_RELOC_AVR32_9W_CP",
 1.42875 ++  "BFD_RELOC_AVR32_ALIGN",
 1.42876 ++  "BFD_RELOC_AVR32_14UW",
 1.42877 ++  "BFD_RELOC_AVR32_10UW",
 1.42878 ++  "BFD_RELOC_AVR32_10SW",
 1.42879 ++  "BFD_RELOC_AVR32_STHH_W",
 1.42880 ++  "BFD_RELOC_AVR32_7UW",
 1.42881 ++  "BFD_RELOC_AVR32_6S",
 1.42882 ++  "BFD_RELOC_AVR32_6UW",
 1.42883 ++  "BFD_RELOC_AVR32_4UH",
 1.42884 ++  "BFD_RELOC_AVR32_3U",
 1.42885 ++  "BFD_RELOC_390_12",
 1.42886 ++  "BFD_RELOC_390_GOT12",
 1.42887 ++  "BFD_RELOC_390_PLT32",
 1.42888 ++  "BFD_RELOC_390_COPY",
 1.42889 ++  "BFD_RELOC_390_GLOB_DAT",
 1.42890 ++  "BFD_RELOC_390_JMP_SLOT",
 1.42891 ++  "BFD_RELOC_390_RELATIVE",
 1.42892 ++  "BFD_RELOC_390_GOTPC",
 1.42893 ++  "BFD_RELOC_390_GOT16",
 1.42894 ++  "BFD_RELOC_390_PC16DBL",
 1.42895 ++  "BFD_RELOC_390_PLT16DBL",
 1.42896 ++  "BFD_RELOC_390_PC32DBL",
 1.42897 ++  "BFD_RELOC_390_PLT32DBL",
 1.42898 ++  "BFD_RELOC_390_GOTPCDBL",
 1.42899 ++  "BFD_RELOC_390_GOT64",
 1.42900 ++  "BFD_RELOC_390_PLT64",
 1.42901 ++  "BFD_RELOC_390_GOTENT",
 1.42902 ++  "BFD_RELOC_390_GOTOFF64",
 1.42903 ++  "BFD_RELOC_390_GOTPLT12",
 1.42904 ++  "BFD_RELOC_390_GOTPLT16",
 1.42905 ++  "BFD_RELOC_390_GOTPLT32",
 1.42906 ++  "BFD_RELOC_390_GOTPLT64",
 1.42907 ++  "BFD_RELOC_390_GOTPLTENT",
 1.42908 ++  "BFD_RELOC_390_PLTOFF16",
 1.42909 ++  "BFD_RELOC_390_PLTOFF32",
 1.42910 ++  "BFD_RELOC_390_PLTOFF64",
 1.42911 ++  "BFD_RELOC_390_TLS_LOAD",
 1.42912 ++  "BFD_RELOC_390_TLS_GDCALL",
 1.42913 ++  "BFD_RELOC_390_TLS_LDCALL",
 1.42914 ++  "BFD_RELOC_390_TLS_GD32",
 1.42915 ++  "BFD_RELOC_390_TLS_GD64",
 1.42916 ++  "BFD_RELOC_390_TLS_GOTIE12",
 1.42917 ++  "BFD_RELOC_390_TLS_GOTIE32",
 1.42918 ++  "BFD_RELOC_390_TLS_GOTIE64",
 1.42919 ++  "BFD_RELOC_390_TLS_LDM32",
 1.42920 ++  "BFD_RELOC_390_TLS_LDM64",
 1.42921 ++  "BFD_RELOC_390_TLS_IE32",
 1.42922 ++  "BFD_RELOC_390_TLS_IE64",
 1.42923 ++  "BFD_RELOC_390_TLS_IEENT",
 1.42924 ++  "BFD_RELOC_390_TLS_LE32",
 1.42925 ++  "BFD_RELOC_390_TLS_LE64",
 1.42926 ++  "BFD_RELOC_390_TLS_LDO32",
 1.42927 ++  "BFD_RELOC_390_TLS_LDO64",
 1.42928 ++  "BFD_RELOC_390_TLS_DTPMOD",
 1.42929 ++  "BFD_RELOC_390_TLS_DTPOFF",
 1.42930 ++  "BFD_RELOC_390_TLS_TPOFF",
 1.42931 ++  "BFD_RELOC_390_20",
 1.42932 ++  "BFD_RELOC_390_GOT20",
 1.42933 ++  "BFD_RELOC_390_GOTPLT20",
 1.42934 ++  "BFD_RELOC_390_TLS_GOTIE20",
 1.42935 ++  "BFD_RELOC_SCORE_DUMMY1",
 1.42936 ++  "BFD_RELOC_SCORE_GPREL15",
 1.42937 ++  "BFD_RELOC_SCORE_DUMMY2",
 1.42938 ++  "BFD_RELOC_SCORE_JMP",
 1.42939 ++  "BFD_RELOC_SCORE_BRANCH",
 1.42940 ++  "BFD_RELOC_SCORE16_JMP",
 1.42941 ++  "BFD_RELOC_SCORE16_BRANCH",
 1.42942 ++  "BFD_RELOC_SCORE_GOT15",
 1.42943 ++  "BFD_RELOC_SCORE_GOT_LO16",
 1.42944 ++  "BFD_RELOC_SCORE_CALL15",
 1.42945 ++  "BFD_RELOC_SCORE_DUMMY_HI16",
 1.42946 ++  "BFD_RELOC_IP2K_FR9",
 1.42947 ++  "BFD_RELOC_IP2K_BANK",
 1.42948 ++  "BFD_RELOC_IP2K_ADDR16CJP",
 1.42949 ++  "BFD_RELOC_IP2K_PAGE3",
 1.42950 ++  "BFD_RELOC_IP2K_LO8DATA",
 1.42951 ++  "BFD_RELOC_IP2K_HI8DATA",
 1.42952 ++  "BFD_RELOC_IP2K_EX8DATA",
 1.42953 ++  "BFD_RELOC_IP2K_LO8INSN",
 1.42954 ++  "BFD_RELOC_IP2K_HI8INSN",
 1.42955 ++  "BFD_RELOC_IP2K_PC_SKIP",
 1.42956 ++  "BFD_RELOC_IP2K_TEXT",
 1.42957 ++  "BFD_RELOC_IP2K_FR_OFFSET",
 1.42958 ++  "BFD_RELOC_VPE4KMATH_DATA",
 1.42959 ++  "BFD_RELOC_VPE4KMATH_INSN",
 1.42960 ++  "BFD_RELOC_VTABLE_INHERIT",
 1.42961 ++  "BFD_RELOC_VTABLE_ENTRY",
 1.42962 ++  "BFD_RELOC_IA64_IMM14",
 1.42963 ++  "BFD_RELOC_IA64_IMM22",
 1.42964 ++  "BFD_RELOC_IA64_IMM64",
 1.42965 ++  "BFD_RELOC_IA64_DIR32MSB",
 1.42966 ++  "BFD_RELOC_IA64_DIR32LSB",
 1.42967 ++  "BFD_RELOC_IA64_DIR64MSB",
 1.42968 ++  "BFD_RELOC_IA64_DIR64LSB",
 1.42969 ++  "BFD_RELOC_IA64_GPREL22",
 1.42970 ++  "BFD_RELOC_IA64_GPREL64I",
 1.42971 ++  "BFD_RELOC_IA64_GPREL32MSB",
 1.42972 ++  "BFD_RELOC_IA64_GPREL32LSB",
 1.42973 ++  "BFD_RELOC_IA64_GPREL64MSB",
 1.42974 ++  "BFD_RELOC_IA64_GPREL64LSB",
 1.42975 ++  "BFD_RELOC_IA64_LTOFF22",
 1.42976 ++  "BFD_RELOC_IA64_LTOFF64I",
 1.42977 ++  "BFD_RELOC_IA64_PLTOFF22",
 1.42978 ++  "BFD_RELOC_IA64_PLTOFF64I",
 1.42979 ++  "BFD_RELOC_IA64_PLTOFF64MSB",
 1.42980 ++  "BFD_RELOC_IA64_PLTOFF64LSB",
 1.42981 ++  "BFD_RELOC_IA64_FPTR64I",
 1.42982 ++  "BFD_RELOC_IA64_FPTR32MSB",
 1.42983 ++  "BFD_RELOC_IA64_FPTR32LSB",
 1.42984 ++  "BFD_RELOC_IA64_FPTR64MSB",
 1.42985 ++  "BFD_RELOC_IA64_FPTR64LSB",
 1.42986 ++  "BFD_RELOC_IA64_PCREL21B",
 1.42987 ++  "BFD_RELOC_IA64_PCREL21BI",
 1.42988 ++  "BFD_RELOC_IA64_PCREL21M",
 1.42989 ++  "BFD_RELOC_IA64_PCREL21F",
 1.42990 ++  "BFD_RELOC_IA64_PCREL22",
 1.42991 ++  "BFD_RELOC_IA64_PCREL60B",
 1.42992 ++  "BFD_RELOC_IA64_PCREL64I",
 1.42993 ++  "BFD_RELOC_IA64_PCREL32MSB",
 1.42994 ++  "BFD_RELOC_IA64_PCREL32LSB",
 1.42995 ++  "BFD_RELOC_IA64_PCREL64MSB",
 1.42996 ++  "BFD_RELOC_IA64_PCREL64LSB",
 1.42997 ++  "BFD_RELOC_IA64_LTOFF_FPTR22",
 1.42998 ++  "BFD_RELOC_IA64_LTOFF_FPTR64I",
 1.42999 ++  "BFD_RELOC_IA64_LTOFF_FPTR32MSB",
 1.43000 ++  "BFD_RELOC_IA64_LTOFF_FPTR32LSB",
 1.43001 ++  "BFD_RELOC_IA64_LTOFF_FPTR64MSB",
 1.43002 ++  "BFD_RELOC_IA64_LTOFF_FPTR64LSB",
 1.43003 ++  "BFD_RELOC_IA64_SEGREL32MSB",
 1.43004 ++  "BFD_RELOC_IA64_SEGREL32LSB",
 1.43005 ++  "BFD_RELOC_IA64_SEGREL64MSB",
 1.43006 ++  "BFD_RELOC_IA64_SEGREL64LSB",
 1.43007 ++  "BFD_RELOC_IA64_SECREL32MSB",
 1.43008 ++  "BFD_RELOC_IA64_SECREL32LSB",
 1.43009 ++  "BFD_RELOC_IA64_SECREL64MSB",
 1.43010 ++  "BFD_RELOC_IA64_SECREL64LSB",
 1.43011 ++  "BFD_RELOC_IA64_REL32MSB",
 1.43012 ++  "BFD_RELOC_IA64_REL32LSB",
 1.43013 ++  "BFD_RELOC_IA64_REL64MSB",
 1.43014 ++  "BFD_RELOC_IA64_REL64LSB",
 1.43015 ++  "BFD_RELOC_IA64_LTV32MSB",
 1.43016 ++  "BFD_RELOC_IA64_LTV32LSB",
 1.43017 ++  "BFD_RELOC_IA64_LTV64MSB",
 1.43018 ++  "BFD_RELOC_IA64_LTV64LSB",
 1.43019 ++  "BFD_RELOC_IA64_IPLTMSB",
 1.43020 ++  "BFD_RELOC_IA64_IPLTLSB",
 1.43021 ++  "BFD_RELOC_IA64_COPY",
 1.43022 ++  "BFD_RELOC_IA64_LTOFF22X",
 1.43023 ++  "BFD_RELOC_IA64_LDXMOV",
 1.43024 ++  "BFD_RELOC_IA64_TPREL14",
 1.43025 ++  "BFD_RELOC_IA64_TPREL22",
 1.43026 ++  "BFD_RELOC_IA64_TPREL64I",
 1.43027 ++  "BFD_RELOC_IA64_TPREL64MSB",
 1.43028 ++  "BFD_RELOC_IA64_TPREL64LSB",
 1.43029 ++  "BFD_RELOC_IA64_LTOFF_TPREL22",
 1.43030 ++  "BFD_RELOC_IA64_DTPMOD64MSB",
 1.43031 ++  "BFD_RELOC_IA64_DTPMOD64LSB",
 1.43032 ++  "BFD_RELOC_IA64_LTOFF_DTPMOD22",
 1.43033 ++  "BFD_RELOC_IA64_DTPREL14",
 1.43034 ++  "BFD_RELOC_IA64_DTPREL22",
 1.43035 ++  "BFD_RELOC_IA64_DTPREL64I",
 1.43036 ++  "BFD_RELOC_IA64_DTPREL32MSB",
 1.43037 ++  "BFD_RELOC_IA64_DTPREL32LSB",
 1.43038 ++  "BFD_RELOC_IA64_DTPREL64MSB",
 1.43039 ++  "BFD_RELOC_IA64_DTPREL64LSB",
 1.43040 ++  "BFD_RELOC_IA64_LTOFF_DTPREL22",
 1.43041 ++  "BFD_RELOC_M68HC11_HI8",
 1.43042 ++  "BFD_RELOC_M68HC11_LO8",
 1.43043 ++  "BFD_RELOC_M68HC11_3B",
 1.43044 ++  "BFD_RELOC_M68HC11_RL_JUMP",
 1.43045 ++  "BFD_RELOC_M68HC11_RL_GROUP",
 1.43046 ++  "BFD_RELOC_M68HC11_LO16",
 1.43047 ++  "BFD_RELOC_M68HC11_PAGE",
 1.43048 ++  "BFD_RELOC_M68HC11_24",
 1.43049 ++  "BFD_RELOC_M68HC12_5B",
 1.43050 ++  "BFD_RELOC_16C_NUM08",
 1.43051 ++  "BFD_RELOC_16C_NUM08_C",
 1.43052 ++  "BFD_RELOC_16C_NUM16",
 1.43053 ++  "BFD_RELOC_16C_NUM16_C",
 1.43054 ++  "BFD_RELOC_16C_NUM32",
 1.43055 ++  "BFD_RELOC_16C_NUM32_C",
 1.43056 ++  "BFD_RELOC_16C_DISP04",
 1.43057 ++  "BFD_RELOC_16C_DISP04_C",
 1.43058 ++  "BFD_RELOC_16C_DISP08",
 1.43059 ++  "BFD_RELOC_16C_DISP08_C",
 1.43060 ++  "BFD_RELOC_16C_DISP16",
 1.43061 ++  "BFD_RELOC_16C_DISP16_C",
 1.43062 ++  "BFD_RELOC_16C_DISP24",
 1.43063 ++  "BFD_RELOC_16C_DISP24_C",
 1.43064 ++  "BFD_RELOC_16C_DISP24a",
 1.43065 ++  "BFD_RELOC_16C_DISP24a_C",
 1.43066 ++  "BFD_RELOC_16C_REG04",
 1.43067 ++  "BFD_RELOC_16C_REG04_C",
 1.43068 ++  "BFD_RELOC_16C_REG04a",
 1.43069 ++  "BFD_RELOC_16C_REG04a_C",
 1.43070 ++  "BFD_RELOC_16C_REG14",
 1.43071 ++  "BFD_RELOC_16C_REG14_C",
 1.43072 ++  "BFD_RELOC_16C_REG16",
 1.43073 ++  "BFD_RELOC_16C_REG16_C",
 1.43074 ++  "BFD_RELOC_16C_REG20",
 1.43075 ++  "BFD_RELOC_16C_REG20_C",
 1.43076 ++  "BFD_RELOC_16C_ABS20",
 1.43077 ++  "BFD_RELOC_16C_ABS20_C",
 1.43078 ++  "BFD_RELOC_16C_ABS24",
 1.43079 ++  "BFD_RELOC_16C_ABS24_C",
 1.43080 ++  "BFD_RELOC_16C_IMM04",
 1.43081 ++  "BFD_RELOC_16C_IMM04_C",
 1.43082 ++  "BFD_RELOC_16C_IMM16",
 1.43083 ++  "BFD_RELOC_16C_IMM16_C",
 1.43084 ++  "BFD_RELOC_16C_IMM20",
 1.43085 ++  "BFD_RELOC_16C_IMM20_C",
 1.43086 ++  "BFD_RELOC_16C_IMM24",
 1.43087 ++  "BFD_RELOC_16C_IMM24_C",
 1.43088 ++  "BFD_RELOC_16C_IMM32",
 1.43089 ++  "BFD_RELOC_16C_IMM32_C",
 1.43090 ++  "BFD_RELOC_CR16_NUM8",
 1.43091 ++  "BFD_RELOC_CR16_NUM16",
 1.43092 ++  "BFD_RELOC_CR16_NUM32",
 1.43093 ++  "BFD_RELOC_CR16_NUM32a",
 1.43094 ++  "BFD_RELOC_CR16_REGREL0",
 1.43095 ++  "BFD_RELOC_CR16_REGREL4",
 1.43096 ++  "BFD_RELOC_CR16_REGREL4a",
 1.43097 ++  "BFD_RELOC_CR16_REGREL14",
 1.43098 ++  "BFD_RELOC_CR16_REGREL14a",
 1.43099 ++  "BFD_RELOC_CR16_REGREL16",
 1.43100 ++  "BFD_RELOC_CR16_REGREL20",
 1.43101 ++  "BFD_RELOC_CR16_REGREL20a",
 1.43102 ++  "BFD_RELOC_CR16_ABS20",
 1.43103 ++  "BFD_RELOC_CR16_ABS24",
 1.43104 ++  "BFD_RELOC_CR16_IMM4",
 1.43105 ++  "BFD_RELOC_CR16_IMM8",
 1.43106 ++  "BFD_RELOC_CR16_IMM16",
 1.43107 ++  "BFD_RELOC_CR16_IMM20",
 1.43108 ++  "BFD_RELOC_CR16_IMM24",
 1.43109 ++  "BFD_RELOC_CR16_IMM32",
 1.43110 ++  "BFD_RELOC_CR16_IMM32a",
 1.43111 ++  "BFD_RELOC_CR16_DISP4",
 1.43112 ++  "BFD_RELOC_CR16_DISP8",
 1.43113 ++  "BFD_RELOC_CR16_DISP16",
 1.43114 ++  "BFD_RELOC_CR16_DISP20",
 1.43115 ++  "BFD_RELOC_CR16_DISP24",
 1.43116 ++  "BFD_RELOC_CR16_DISP24a",
 1.43117 ++  "BFD_RELOC_CRX_REL4",
 1.43118 ++  "BFD_RELOC_CRX_REL8",
 1.43119 ++  "BFD_RELOC_CRX_REL8_CMP",
 1.43120 ++  "BFD_RELOC_CRX_REL16",
 1.43121 ++  "BFD_RELOC_CRX_REL24",
 1.43122 ++  "BFD_RELOC_CRX_REL32",
 1.43123 ++  "BFD_RELOC_CRX_REGREL12",
 1.43124 ++  "BFD_RELOC_CRX_REGREL22",
 1.43125 ++  "BFD_RELOC_CRX_REGREL28",
 1.43126 ++  "BFD_RELOC_CRX_REGREL32",
 1.43127 ++  "BFD_RELOC_CRX_ABS16",
 1.43128 ++  "BFD_RELOC_CRX_ABS32",
 1.43129 ++  "BFD_RELOC_CRX_NUM8",
 1.43130 ++  "BFD_RELOC_CRX_NUM16",
 1.43131 ++  "BFD_RELOC_CRX_NUM32",
 1.43132 ++  "BFD_RELOC_CRX_IMM16",
 1.43133 ++  "BFD_RELOC_CRX_IMM32",
 1.43134 ++  "BFD_RELOC_CRX_SWITCH8",
 1.43135 ++  "BFD_RELOC_CRX_SWITCH16",
 1.43136 ++  "BFD_RELOC_CRX_SWITCH32",
 1.43137 ++  "BFD_RELOC_CRIS_BDISP8",
 1.43138 ++  "BFD_RELOC_CRIS_UNSIGNED_5",
 1.43139 ++  "BFD_RELOC_CRIS_SIGNED_6",
 1.43140 ++  "BFD_RELOC_CRIS_UNSIGNED_6",
 1.43141 ++  "BFD_RELOC_CRIS_SIGNED_8",
 1.43142 ++  "BFD_RELOC_CRIS_UNSIGNED_8",
 1.43143 ++  "BFD_RELOC_CRIS_SIGNED_16",
 1.43144 ++  "BFD_RELOC_CRIS_UNSIGNED_16",
 1.43145 ++  "BFD_RELOC_CRIS_LAPCQ_OFFSET",
 1.43146 ++  "BFD_RELOC_CRIS_UNSIGNED_4",
 1.43147 ++  "BFD_RELOC_CRIS_COPY",
 1.43148 ++  "BFD_RELOC_CRIS_GLOB_DAT",
 1.43149 ++  "BFD_RELOC_CRIS_JUMP_SLOT",
 1.43150 ++  "BFD_RELOC_CRIS_RELATIVE",
 1.43151 ++  "BFD_RELOC_CRIS_32_GOT",
 1.43152 ++  "BFD_RELOC_CRIS_16_GOT",
 1.43153 ++  "BFD_RELOC_CRIS_32_GOTPLT",
 1.43154 ++  "BFD_RELOC_CRIS_16_GOTPLT",
 1.43155 ++  "BFD_RELOC_CRIS_32_GOTREL",
 1.43156 ++  "BFD_RELOC_CRIS_32_PLT_GOTREL",
 1.43157 ++  "BFD_RELOC_CRIS_32_PLT_PCREL",
 1.43158 ++  "BFD_RELOC_860_COPY",
 1.43159 ++  "BFD_RELOC_860_GLOB_DAT",
 1.43160 ++  "BFD_RELOC_860_JUMP_SLOT",
 1.43161 ++  "BFD_RELOC_860_RELATIVE",
 1.43162 ++  "BFD_RELOC_860_PC26",
 1.43163 ++  "BFD_RELOC_860_PLT26",
 1.43164 ++  "BFD_RELOC_860_PC16",
 1.43165 ++  "BFD_RELOC_860_LOW0",
 1.43166 ++  "BFD_RELOC_860_SPLIT0",
 1.43167 ++  "BFD_RELOC_860_LOW1",
 1.43168 ++  "BFD_RELOC_860_SPLIT1",
 1.43169 ++  "BFD_RELOC_860_LOW2",
 1.43170 ++  "BFD_RELOC_860_SPLIT2",
 1.43171 ++  "BFD_RELOC_860_LOW3",
 1.43172 ++  "BFD_RELOC_860_LOGOT0",
 1.43173 ++  "BFD_RELOC_860_SPGOT0",
 1.43174 ++  "BFD_RELOC_860_LOGOT1",
 1.43175 ++  "BFD_RELOC_860_SPGOT1",
 1.43176 ++  "BFD_RELOC_860_LOGOTOFF0",
 1.43177 ++  "BFD_RELOC_860_SPGOTOFF0",
 1.43178 ++  "BFD_RELOC_860_LOGOTOFF1",
 1.43179 ++  "BFD_RELOC_860_SPGOTOFF1",
 1.43180 ++  "BFD_RELOC_860_LOGOTOFF2",
 1.43181 ++  "BFD_RELOC_860_LOGOTOFF3",
 1.43182 ++  "BFD_RELOC_860_LOPC",
 1.43183 ++  "BFD_RELOC_860_HIGHADJ",
 1.43184 ++  "BFD_RELOC_860_HAGOT",
 1.43185 ++  "BFD_RELOC_860_HAGOTOFF",
 1.43186 ++  "BFD_RELOC_860_HAPC",
 1.43187 ++  "BFD_RELOC_860_HIGH",
 1.43188 ++  "BFD_RELOC_860_HIGOT",
 1.43189 ++  "BFD_RELOC_860_HIGOTOFF",
 1.43190 ++  "BFD_RELOC_OPENRISC_ABS_26",
 1.43191 ++  "BFD_RELOC_OPENRISC_REL_26",
 1.43192 ++  "BFD_RELOC_H8_DIR16A8",
 1.43193 ++  "BFD_RELOC_H8_DIR16R8",
 1.43194 ++  "BFD_RELOC_H8_DIR24A8",
 1.43195 ++  "BFD_RELOC_H8_DIR24R8",
 1.43196 ++  "BFD_RELOC_H8_DIR32A16",
 1.43197 ++  "BFD_RELOC_XSTORMY16_REL_12",
 1.43198 ++  "BFD_RELOC_XSTORMY16_12",
 1.43199 ++  "BFD_RELOC_XSTORMY16_24",
 1.43200 ++  "BFD_RELOC_XSTORMY16_FPTR16",
 1.43201 ++  "BFD_RELOC_RELC",
 1.43202 ++
 1.43203 ++  "BFD_RELOC_XC16X_PAG",
 1.43204 ++  "BFD_RELOC_XC16X_POF",
 1.43205 ++  "BFD_RELOC_XC16X_SEG",
 1.43206 ++  "BFD_RELOC_XC16X_SOF",
 1.43207 ++  "BFD_RELOC_VAX_GLOB_DAT",
 1.43208 ++  "BFD_RELOC_VAX_JMP_SLOT",
 1.43209 ++  "BFD_RELOC_VAX_RELATIVE",
 1.43210 ++  "BFD_RELOC_MT_PC16",
 1.43211 ++  "BFD_RELOC_MT_HI16",
 1.43212 ++  "BFD_RELOC_MT_LO16",
 1.43213 ++  "BFD_RELOC_MT_GNU_VTINHERIT",
 1.43214 ++  "BFD_RELOC_MT_GNU_VTENTRY",
 1.43215 ++  "BFD_RELOC_MT_PCINSN8",
 1.43216 ++  "BFD_RELOC_MSP430_10_PCREL",
 1.43217 ++  "BFD_RELOC_MSP430_16_PCREL",
 1.43218 ++  "BFD_RELOC_MSP430_16",
 1.43219 ++  "BFD_RELOC_MSP430_16_PCREL_BYTE",
 1.43220 ++  "BFD_RELOC_MSP430_16_BYTE",
 1.43221 ++  "BFD_RELOC_MSP430_2X_PCREL",
 1.43222 ++  "BFD_RELOC_MSP430_RL_PCREL",
 1.43223 ++  "BFD_RELOC_IQ2000_OFFSET_16",
 1.43224 ++  "BFD_RELOC_IQ2000_OFFSET_21",
 1.43225 ++  "BFD_RELOC_IQ2000_UHI16",
 1.43226 ++  "BFD_RELOC_XTENSA_RTLD",
 1.43227 ++  "BFD_RELOC_XTENSA_GLOB_DAT",
 1.43228 ++  "BFD_RELOC_XTENSA_JMP_SLOT",
 1.43229 ++  "BFD_RELOC_XTENSA_RELATIVE",
 1.43230 ++  "BFD_RELOC_XTENSA_PLT",
 1.43231 ++  "BFD_RELOC_XTENSA_DIFF8",
 1.43232 ++  "BFD_RELOC_XTENSA_DIFF16",
 1.43233 ++  "BFD_RELOC_XTENSA_DIFF32",
 1.43234 ++  "BFD_RELOC_XTENSA_SLOT0_OP",
 1.43235 ++  "BFD_RELOC_XTENSA_SLOT1_OP",
 1.43236 ++  "BFD_RELOC_XTENSA_SLOT2_OP",
 1.43237 ++  "BFD_RELOC_XTENSA_SLOT3_OP",
 1.43238 ++  "BFD_RELOC_XTENSA_SLOT4_OP",
 1.43239 ++  "BFD_RELOC_XTENSA_SLOT5_OP",
 1.43240 ++  "BFD_RELOC_XTENSA_SLOT6_OP",
 1.43241 ++  "BFD_RELOC_XTENSA_SLOT7_OP",
 1.43242 ++  "BFD_RELOC_XTENSA_SLOT8_OP",
 1.43243 ++  "BFD_RELOC_XTENSA_SLOT9_OP",
 1.43244 ++  "BFD_RELOC_XTENSA_SLOT10_OP",
 1.43245 ++  "BFD_RELOC_XTENSA_SLOT11_OP",
 1.43246 ++  "BFD_RELOC_XTENSA_SLOT12_OP",
 1.43247 ++  "BFD_RELOC_XTENSA_SLOT13_OP",
 1.43248 ++  "BFD_RELOC_XTENSA_SLOT14_OP",
 1.43249 ++  "BFD_RELOC_XTENSA_SLOT0_ALT",
 1.43250 ++  "BFD_RELOC_XTENSA_SLOT1_ALT",
 1.43251 ++  "BFD_RELOC_XTENSA_SLOT2_ALT",
 1.43252 ++  "BFD_RELOC_XTENSA_SLOT3_ALT",
 1.43253 ++  "BFD_RELOC_XTENSA_SLOT4_ALT",
 1.43254 ++  "BFD_RELOC_XTENSA_SLOT5_ALT",
 1.43255 ++  "BFD_RELOC_XTENSA_SLOT6_ALT",
 1.43256 ++  "BFD_RELOC_XTENSA_SLOT7_ALT",
 1.43257 ++  "BFD_RELOC_XTENSA_SLOT8_ALT",
 1.43258 ++  "BFD_RELOC_XTENSA_SLOT9_ALT",
 1.43259 ++  "BFD_RELOC_XTENSA_SLOT10_ALT",
 1.43260 ++  "BFD_RELOC_XTENSA_SLOT11_ALT",
 1.43261 ++  "BFD_RELOC_XTENSA_SLOT12_ALT",
 1.43262 ++  "BFD_RELOC_XTENSA_SLOT13_ALT",
 1.43263 ++  "BFD_RELOC_XTENSA_SLOT14_ALT",
 1.43264 ++  "BFD_RELOC_XTENSA_OP0",
 1.43265 ++  "BFD_RELOC_XTENSA_OP1",
 1.43266 ++  "BFD_RELOC_XTENSA_OP2",
 1.43267 ++  "BFD_RELOC_XTENSA_ASM_EXPAND",
 1.43268 ++  "BFD_RELOC_XTENSA_ASM_SIMPLIFY",
 1.43269 ++  "BFD_RELOC_Z80_DISP8",
 1.43270 ++  "BFD_RELOC_Z8K_DISP7",
 1.43271 ++  "BFD_RELOC_Z8K_CALLR",
 1.43272 ++  "BFD_RELOC_Z8K_IMM4L",
 1.43273 ++ "@@overflow: BFD_RELOC_UNUSED@@",
 1.43274 ++};
 1.43275 ++#endif
 1.43276 ++
 1.43277 ++reloc_howto_type *bfd_default_reloc_type_lookup
 1.43278 ++   (bfd *abfd, bfd_reloc_code_real_type  code);
 1.43279 ++
 1.43280 ++bfd_boolean bfd_generic_relax_section
 1.43281 ++   (bfd *abfd,
 1.43282 ++    asection *section,
 1.43283 ++    struct bfd_link_info *,
 1.43284 ++    bfd_boolean *);
 1.43285 ++
 1.43286 ++bfd_boolean bfd_generic_gc_sections
 1.43287 ++   (bfd *, struct bfd_link_info *);
 1.43288 ++
 1.43289 ++bfd_boolean bfd_generic_merge_sections
 1.43290 ++   (bfd *, struct bfd_link_info *);
 1.43291 ++
 1.43292 ++bfd_byte *bfd_generic_get_relocated_section_contents
 1.43293 ++   (bfd *abfd,
 1.43294 ++    struct bfd_link_info *link_info,
 1.43295 ++    struct bfd_link_order *link_order,
 1.43296 ++    bfd_byte *data,
 1.43297 ++    bfd_boolean relocatable,
 1.43298 ++    asymbol **symbols);
 1.43299 ++
 1.43300 ++/* Extracted from archures.c.  */
 1.43301 ++extern const bfd_arch_info_type bfd_default_arch_struct;
 1.43302 ++bfd_boolean bfd_default_set_arch_mach
 1.43303 ++   (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
 1.43304 ++
 1.43305 ++const bfd_arch_info_type *bfd_default_compatible
 1.43306 ++   (const bfd_arch_info_type *a, const bfd_arch_info_type *b);
 1.43307 ++
 1.43308 ++bfd_boolean bfd_default_scan
 1.43309 ++   (const struct bfd_arch_info *info, const char *string);
 1.43310 ++
 1.43311 ++/* Extracted from elf.c.  */
 1.43312 ++struct elf_internal_shdr *bfd_elf_find_section (bfd *abfd, char *name);
 1.43313 ++
 1.43314 +--- /dev/null
 1.43315 ++++ b/bfd/doc/libcoff.h
 1.43316 +@@ -0,0 +1,936 @@
 1.43317 ++/* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically 
 1.43318 ++   generated from "libcoff-in.h" and "coffcode.h".
 1.43319 ++   Run "make headers" in your build bfd/ to regenerate.  */
 1.43320 ++
 1.43321 ++/* BFD COFF object file private structure.
 1.43322 ++   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 1.43323 ++   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 1.43324 ++   Free Software Foundation, Inc.
 1.43325 ++   Written by Cygnus Support.
 1.43326 ++
 1.43327 ++   This file is part of BFD, the Binary File Descriptor library.
 1.43328 ++
 1.43329 ++   This program is free software; you can redistribute it and/or modify
 1.43330 ++   it under the terms of the GNU General Public License as published by
 1.43331 ++   the Free Software Foundation; either version 3 of the License, or
 1.43332 ++   (at your option) any later version.
 1.43333 ++
 1.43334 ++   This program is distributed in the hope that it will be useful,
 1.43335 ++   but WITHOUT ANY WARRANTY; without even the implied warranty of
 1.43336 ++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 1.43337 ++   GNU General Public License for more details.
 1.43338 ++
 1.43339 ++   You should have received a copy of the GNU General Public License
 1.43340 ++   along with this program; if not, write to the Free Software
 1.43341 ++   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
 1.43342 ++   MA 02110-1301, USA.  */
 1.43343 ++
 1.43344 ++#include "bfdlink.h"
 1.43345 ++
 1.43346 ++/* Object file tdata; access macros.  */
 1.43347 ++
 1.43348 ++#define coff_data(bfd)		      ((bfd)->tdata.coff_obj_data)
 1.43349 ++#define exec_hdr(bfd)		      (coff_data (bfd)->hdr)
 1.43350 ++#define obj_pe(bfd)                   (coff_data (bfd)->pe)
 1.43351 ++#define obj_symbols(bfd)	      (coff_data (bfd)->symbols)
 1.43352 ++#define	obj_sym_filepos(bfd)	      (coff_data (bfd)->sym_filepos)
 1.43353 ++#define obj_relocbase(bfd)	      (coff_data (bfd)->relocbase)
 1.43354 ++#define obj_raw_syments(bfd)	      (coff_data (bfd)->raw_syments)
 1.43355 ++#define obj_raw_syment_count(bfd)     (coff_data (bfd)->raw_syment_count)
 1.43356 ++#define obj_convert(bfd)	      (coff_data (bfd)->conversion_table)
 1.43357 ++#define obj_conv_table_size(bfd)      (coff_data (bfd)->conv_table_size)
 1.43358 ++#define obj_coff_external_syms(bfd)   (coff_data (bfd)->external_syms)
 1.43359 ++#define obj_coff_keep_syms(bfd)	      (coff_data (bfd)->keep_syms)
 1.43360 ++#define obj_coff_strings(bfd)	      (coff_data (bfd)->strings)
 1.43361 ++#define obj_coff_keep_strings(bfd)    (coff_data (bfd)->keep_strings)
 1.43362 ++#define obj_coff_sym_hashes(bfd)      (coff_data (bfd)->sym_hashes)
 1.43363 ++#define obj_coff_strings_written(bfd) (coff_data (bfd)->strings_written)
 1.43364 ++#define obj_coff_local_toc_table(bfd) (coff_data (bfd)->local_toc_sym_map)
 1.43365 ++
 1.43366 ++/* `Tdata' information kept for COFF files.  */
 1.43367 ++
 1.43368 ++typedef struct coff_tdata
 1.43369 ++{
 1.43370 ++  struct coff_symbol_struct *symbols;	/* Symtab for input bfd.  */
 1.43371 ++  unsigned int *conversion_table;
 1.43372 ++  int conv_table_size;
 1.43373 ++  file_ptr sym_filepos;
 1.43374 ++
 1.43375 ++  struct coff_ptr_struct *raw_syments;
 1.43376 ++  unsigned long raw_syment_count;
 1.43377 ++
 1.43378 ++  /* These are only valid once writing has begun.  */
 1.43379 ++  long int relocbase;
 1.43380 ++
 1.43381 ++  /* These members communicate important constants about the symbol table
 1.43382 ++     to GDB's symbol-reading code.  These `constants' unfortunately vary
 1.43383 ++     from coff implementation to implementation...  */
 1.43384 ++  unsigned local_n_btmask;
 1.43385 ++  unsigned local_n_btshft;
 1.43386 ++  unsigned local_n_tmask;
 1.43387 ++  unsigned local_n_tshift;
 1.43388 ++  unsigned local_symesz;
 1.43389 ++  unsigned local_auxesz;
 1.43390 ++  unsigned local_linesz;
 1.43391 ++
 1.43392 ++  /* The unswapped external symbols.  May be NULL.  Read by
 1.43393 ++     _bfd_coff_get_external_symbols.  */
 1.43394 ++  void * external_syms;
 1.43395 ++  /* If this is TRUE, the external_syms may not be freed.  */
 1.43396 ++  bfd_boolean keep_syms;
 1.43397 ++
 1.43398 ++  /* The string table.  May be NULL.  Read by
 1.43399 ++     _bfd_coff_read_string_table.  */
 1.43400 ++  char *strings;
 1.43401 ++  /* If this is TRUE, the strings may not be freed.  */
 1.43402 ++  bfd_boolean keep_strings;
 1.43403 ++  /* If this is TRUE, the strings have been written out already.  */
 1.43404 ++  bfd_boolean strings_written;
 1.43405 ++
 1.43406 ++  /* Is this a PE format coff file?  */
 1.43407 ++  int pe;
 1.43408 ++  /* Used by the COFF backend linker.  */
 1.43409 ++  struct coff_link_hash_entry **sym_hashes;
 1.43410 ++
 1.43411 ++  /* Used by the pe linker for PowerPC.  */
 1.43412 ++  int *local_toc_sym_map;
 1.43413 ++
 1.43414 ++  struct bfd_link_info *link_info;
 1.43415 ++
 1.43416 ++  /* Used by coff_find_nearest_line.  */
 1.43417 ++  void * line_info;
 1.43418 ++
 1.43419 ++  /* A place to stash dwarf2 info for this bfd.  */
 1.43420 ++  void * dwarf2_find_line_info;
 1.43421 ++
 1.43422 ++  /* The timestamp from the COFF file header.  */
 1.43423 ++  long timestamp;
 1.43424 ++
 1.43425 ++  /* Copy of some of the f_flags bits in the COFF filehdr structure,
 1.43426 ++     used by ARM code.  */
 1.43427 ++  flagword flags;
 1.43428 ++
 1.43429 ++} coff_data_type;
 1.43430 ++
 1.43431 ++/* Tdata for pe image files.  */
 1.43432 ++typedef struct pe_tdata
 1.43433 ++{
 1.43434 ++  coff_data_type coff;
 1.43435 ++  struct internal_extra_pe_aouthdr pe_opthdr;
 1.43436 ++  int dll;
 1.43437 ++  int has_reloc_section;
 1.43438 ++  bfd_boolean (*in_reloc_p) (bfd *, reloc_howto_type *);
 1.43439 ++  flagword real_flags;
 1.43440 ++  int target_subsystem;
 1.43441 ++  bfd_boolean force_minimum_alignment;
 1.43442 ++} pe_data_type;
 1.43443 ++
 1.43444 ++#define pe_data(bfd)		((bfd)->tdata.pe_obj_data)
 1.43445 ++
 1.43446 ++/* Tdata for XCOFF files.  */
 1.43447 ++
 1.43448 ++struct xcoff_tdata
 1.43449 ++{
 1.43450 ++  /* Basic COFF information.  */
 1.43451 ++  coff_data_type coff;
 1.43452 ++
 1.43453 ++  /* TRUE if this is an XCOFF64 file. */
 1.43454 ++  bfd_boolean xcoff64;
 1.43455 ++
 1.43456 ++  /* TRUE if a large a.out header should be generated.  */
 1.43457 ++  bfd_boolean full_aouthdr;
 1.43458 ++
 1.43459 ++  /* TOC value.  */
 1.43460 ++  bfd_vma toc;
 1.43461 ++
 1.43462 ++  /* Index of section holding TOC.  */
 1.43463 ++  int sntoc;
 1.43464 ++
 1.43465 ++  /* Index of section holding entry point.  */
 1.43466 ++  int snentry;
 1.43467 ++
 1.43468 ++  /* .text alignment from optional header.  */
 1.43469 ++  int text_align_power;
 1.43470 ++
 1.43471 ++  /* .data alignment from optional header.  */
 1.43472 ++  int data_align_power;
 1.43473 ++
 1.43474 ++  /* modtype from optional header.  */
 1.43475 ++  short modtype;
 1.43476 ++
 1.43477 ++  /* cputype from optional header.  */
 1.43478 ++  short cputype;
 1.43479 ++
 1.43480 ++  /* maxdata from optional header.  */
 1.43481 ++  bfd_vma maxdata;
 1.43482 ++
 1.43483 ++  /* maxstack from optional header.  */
 1.43484 ++  bfd_vma maxstack;
 1.43485 ++
 1.43486 ++  /* Used by the XCOFF backend linker.  */
 1.43487 ++  asection **csects;
 1.43488 ++  unsigned long *debug_indices;
 1.43489 ++  unsigned int import_file_id;
 1.43490 ++};
 1.43491 ++
 1.43492 ++#define xcoff_data(abfd) ((abfd)->tdata.xcoff_obj_data)
 1.43493 ++
 1.43494 ++/* We take the address of the first element of an asymbol to ensure that the
 1.43495 ++   macro is only ever applied to an asymbol.  */
 1.43496 ++#define coffsymbol(asymbol) ((coff_symbol_type *)(&((asymbol)->the_bfd)))
 1.43497 ++
 1.43498 ++/* The used_by_bfd field of a section may be set to a pointer to this
 1.43499 ++   structure.  */
 1.43500 ++
 1.43501 ++struct coff_section_tdata
 1.43502 ++{
 1.43503 ++  /* The relocs, swapped into COFF internal form.  This may be NULL.  */
 1.43504 ++  struct internal_reloc *relocs;
 1.43505 ++  /* If this is TRUE, the relocs entry may not be freed.  */
 1.43506 ++  bfd_boolean keep_relocs;
 1.43507 ++  /* The section contents.  This may be NULL.  */
 1.43508 ++  bfd_byte *contents;
 1.43509 ++  /* If this is TRUE, the contents entry may not be freed.  */
 1.43510 ++  bfd_boolean keep_contents;
 1.43511 ++  /* Information cached by coff_find_nearest_line.  */
 1.43512 ++  bfd_vma offset;
 1.43513 ++  unsigned int i;
 1.43514 ++  const char *function;
 1.43515 ++  /* Optional information about a COMDAT entry; NULL if not COMDAT. */
 1.43516 ++  struct coff_comdat_info *comdat;
 1.43517 ++  int line_base;
 1.43518 ++  /* A pointer used for .stab linking optimizations.  */
 1.43519 ++  void * stab_info;
 1.43520 ++  /* Available for individual backends.  */
 1.43521 ++  void * tdata;
 1.43522 ++};
 1.43523 ++
 1.43524 ++/* An accessor macro for the coff_section_tdata structure.  */
 1.43525 ++#define coff_section_data(abfd, sec) \
 1.43526 ++  ((struct coff_section_tdata *) (sec)->used_by_bfd)
 1.43527 ++
 1.43528 ++/* Tdata for sections in XCOFF files.  This is used by the linker.  */
 1.43529 ++
 1.43530 ++struct xcoff_section_tdata
 1.43531 ++{
 1.43532 ++  /* Used for XCOFF csects created by the linker; points to the real
 1.43533 ++     XCOFF section which contains this csect.  */
 1.43534 ++  asection *enclosing;
 1.43535 ++  /* The lineno_count field for the enclosing section, because we are
 1.43536 ++     going to clobber it there.  */
 1.43537 ++  unsigned int lineno_count;
 1.43538 ++  /* The first and one past the last symbol indices for symbols used
 1.43539 ++     by this csect.  */
 1.43540 ++  unsigned long first_symndx;
 1.43541 ++  unsigned long last_symndx;
 1.43542 ++};
 1.43543 ++
 1.43544 ++/* An accessor macro the xcoff_section_tdata structure.  */
 1.43545 ++#define xcoff_section_data(abfd, sec) \
 1.43546 ++  ((struct xcoff_section_tdata *) coff_section_data ((abfd), (sec))->tdata)
 1.43547 ++
 1.43548 ++/* Tdata for sections in PE files.  */
 1.43549 ++
 1.43550 ++struct pei_section_tdata
 1.43551 ++{
 1.43552 ++  /* The virtual size of the section.  */
 1.43553 ++  bfd_size_type virt_size;
 1.43554 ++  /* The PE section flags.  */
 1.43555 ++  long pe_flags;
 1.43556 ++};
 1.43557 ++
 1.43558 ++/* An accessor macro for the pei_section_tdata structure.  */
 1.43559 ++#define pei_section_data(abfd, sec) \
 1.43560 ++  ((struct pei_section_tdata *) coff_section_data ((abfd), (sec))->tdata)
 1.43561 ++
 1.43562 ++/* COFF linker hash table entries.  */
 1.43563 ++
 1.43564 ++struct coff_link_hash_entry
 1.43565 ++{
 1.43566 ++  struct bfd_link_hash_entry root;
 1.43567 ++
 1.43568 ++  /* Symbol index in output file.  Set to -1 initially.  Set to -2 if
 1.43569 ++     there is a reloc against this symbol.  */
 1.43570 ++  long indx;
 1.43571 ++
 1.43572 ++  /* Symbol type.  */
 1.43573 ++  unsigned short type;
 1.43574 ++
 1.43575 ++  /* Symbol class.  */
 1.43576 ++  unsigned char class;
 1.43577 ++
 1.43578 ++  /* Number of auxiliary entries.  */
 1.43579 ++  char numaux;
 1.43580 ++
 1.43581 ++  /* BFD to take auxiliary entries from.  */
 1.43582 ++  bfd *auxbfd;
 1.43583 ++
 1.43584 ++  /* Pointer to array of auxiliary entries, if any.  */
 1.43585 ++  union internal_auxent *aux;
 1.43586 ++
 1.43587 ++  /* Flag word; legal values follow.  */
 1.43588 ++  unsigned short coff_link_hash_flags;
 1.43589 ++  /* Symbol is a PE section symbol.  */
 1.43590 ++#define COFF_LINK_HASH_PE_SECTION_SYMBOL (01)
 1.43591 ++};
 1.43592 ++
 1.43593 ++/* COFF linker hash table.  */
 1.43594 ++
 1.43595 ++struct coff_link_hash_table
 1.43596 ++{
 1.43597 ++  struct bfd_link_hash_table root;
 1.43598 ++  /* A pointer to information used to link stabs in sections.  */
 1.43599 ++  struct stab_info stab_info;
 1.43600 ++};
 1.43601 ++
 1.43602 ++/* Look up an entry in a COFF linker hash table.  */
 1.43603 ++
 1.43604 ++#define coff_link_hash_lookup(table, string, create, copy, follow)	\
 1.43605 ++  ((struct coff_link_hash_entry *)					\
 1.43606 ++   bfd_link_hash_lookup (&(table)->root, (string), (create),		\
 1.43607 ++			 (copy), (follow)))
 1.43608 ++
 1.43609 ++/* Traverse a COFF linker hash table.  */
 1.43610 ++
 1.43611 ++#define coff_link_hash_traverse(table, func, info)			\
 1.43612 ++  (bfd_link_hash_traverse						\
 1.43613 ++   (&(table)->root,							\
 1.43614 ++    (bfd_boolean (*) (struct bfd_link_hash_entry *, void *)) (func), \
 1.43615 ++    (info)))
 1.43616 ++
 1.43617 ++/* Get the COFF linker hash table from a link_info structure.  */
 1.43618 ++
 1.43619 ++#define coff_hash_table(p) ((struct coff_link_hash_table *) ((p)->hash))
 1.43620 ++
 1.43621 ++/* Functions in coffgen.c.  */
 1.43622 ++extern const bfd_target *coff_object_p
 1.43623 ++  (bfd *);
 1.43624 ++extern struct bfd_section *coff_section_from_bfd_index
 1.43625 ++  (bfd *, int);
 1.43626 ++extern long coff_get_symtab_upper_bound
 1.43627 ++  (bfd *);
 1.43628 ++extern long coff_canonicalize_symtab
 1.43629 ++  (bfd *, asymbol **);
 1.43630 ++extern int coff_count_linenumbers
 1.43631 ++  (bfd *);
 1.43632 ++extern struct coff_symbol_struct *coff_symbol_from
 1.43633 ++  (bfd *, asymbol *);
 1.43634 ++extern bfd_boolean coff_renumber_symbols
 1.43635 ++  (bfd *, int *);
 1.43636 ++extern void coff_mangle_symbols
 1.43637 ++  (bfd *);
 1.43638 ++extern bfd_boolean coff_write_symbols
 1.43639 ++  (bfd *);
 1.43640 ++extern bfd_boolean coff_write_linenumbers
 1.43641 ++  (bfd *);
 1.43642 ++extern alent *coff_get_lineno
 1.43643 ++  (bfd *, asymbol *);
 1.43644 ++extern asymbol *coff_section_symbol
 1.43645 ++  (bfd *, char *);
 1.43646 ++extern bfd_boolean _bfd_coff_get_external_symbols
 1.43647 ++  (bfd *);
 1.43648 ++extern const char *_bfd_coff_read_string_table
 1.43649 ++  (bfd *);
 1.43650 ++extern bfd_boolean _bfd_coff_free_symbols
 1.43651 ++  (bfd *);
 1.43652 ++extern struct coff_ptr_struct *coff_get_normalized_symtab
 1.43653 ++  (bfd *);
 1.43654 ++extern long coff_get_reloc_upper_bound
 1.43655 ++  (bfd *, sec_ptr);
 1.43656 ++extern asymbol *coff_make_empty_symbol
 1.43657 ++  (bfd *);
 1.43658 ++extern void coff_print_symbol
 1.43659 ++  (bfd *, void * filep, asymbol *, bfd_print_symbol_type);
 1.43660 ++extern void coff_get_symbol_info
 1.43661 ++  (bfd *, asymbol *, symbol_info *ret);
 1.43662 ++extern bfd_boolean _bfd_coff_is_local_label_name
 1.43663 ++  (bfd *, const char *);
 1.43664 ++extern asymbol *coff_bfd_make_debug_symbol
 1.43665 ++  (bfd *, void *, unsigned long);
 1.43666 ++extern bfd_boolean coff_find_nearest_line
 1.43667 ++  (bfd *, asection *, asymbol **, bfd_vma, const char **,
 1.43668 ++   const char **, unsigned int *);
 1.43669 ++extern bfd_boolean coff_find_inliner_info
 1.43670 ++  (bfd *, const char **, const char **, unsigned int *);
 1.43671 ++extern int coff_sizeof_headers
 1.43672 ++  (bfd *, struct bfd_link_info *);
 1.43673 ++extern bfd_boolean bfd_coff_reloc16_relax_section
 1.43674 ++  (bfd *, asection *, struct bfd_link_info *, bfd_boolean *);
 1.43675 ++extern bfd_byte *bfd_coff_reloc16_get_relocated_section_contents
 1.43676 ++  (bfd *, struct bfd_link_info *, struct bfd_link_order *,
 1.43677 ++   bfd_byte *, bfd_boolean, asymbol **);
 1.43678 ++extern bfd_vma bfd_coff_reloc16_get_value
 1.43679 ++  (arelent *, struct bfd_link_info *, asection *);
 1.43680 ++extern void bfd_perform_slip
 1.43681 ++  (bfd *, unsigned int, asection *, bfd_vma);
 1.43682 ++
 1.43683 ++/* Functions and types in cofflink.c.  */
 1.43684 ++
 1.43685 ++#define STRING_SIZE_SIZE 4
 1.43686 ++
 1.43687 ++/* We use a hash table to merge identical enum, struct, and union
 1.43688 ++   definitions in the linker.  */
 1.43689 ++
 1.43690 ++/* Information we keep for a single element (an enum value, a
 1.43691 ++   structure or union field) in the debug merge hash table.  */
 1.43692 ++
 1.43693 ++struct coff_debug_merge_element
 1.43694 ++{
 1.43695 ++  /* Next element.  */
 1.43696 ++  struct coff_debug_merge_element *next;
 1.43697 ++
 1.43698 ++  /* Name.  */
 1.43699 ++  const char *name;
 1.43700 ++
 1.43701 ++  /* Type.  */
 1.43702 ++  unsigned int type;
 1.43703 ++
 1.43704 ++  /* Symbol index for complex type.  */
 1.43705 ++  long tagndx;
 1.43706 ++};
 1.43707 ++
 1.43708 ++/* A linked list of debug merge entries for a given name.  */
 1.43709 ++
 1.43710 ++struct coff_debug_merge_type
 1.43711 ++{
 1.43712 ++  /* Next type with the same name.  */
 1.43713 ++  struct coff_debug_merge_type *next;
 1.43714 ++
 1.43715 ++  /* Class of type.  */
 1.43716 ++  int class;
 1.43717 ++
 1.43718 ++  /* Symbol index where this type is defined.  */
 1.43719 ++  long indx;
 1.43720 ++
 1.43721 ++  /* List of elements.  */
 1.43722 ++  struct coff_debug_merge_element *elements;
 1.43723 ++};
 1.43724 ++
 1.43725 ++/* Information we store in the debug merge hash table.  */
 1.43726 ++
 1.43727 ++struct coff_debug_merge_hash_entry
 1.43728 ++{
 1.43729 ++  struct bfd_hash_entry root;
 1.43730 ++
 1.43731 ++  /* A list of types with this name.  */
 1.43732 ++  struct coff_debug_merge_type *types;
 1.43733 ++};
 1.43734 ++
 1.43735 ++/* The debug merge hash table.  */
 1.43736 ++
 1.43737 ++struct coff_debug_merge_hash_table
 1.43738 ++{
 1.43739 ++  struct bfd_hash_table root;
 1.43740 ++};
 1.43741 ++
 1.43742 ++/* Initialize a COFF debug merge hash table.  */
 1.43743 ++
 1.43744 ++#define coff_debug_merge_hash_table_init(table) \
 1.43745 ++  (bfd_hash_table_init (&(table)->root, _bfd_coff_debug_merge_hash_newfunc, \
 1.43746 ++			sizeof (struct coff_debug_merge_hash_entry)))
 1.43747 ++
 1.43748 ++/* Free a COFF debug merge hash table.  */
 1.43749 ++
 1.43750 ++#define coff_debug_merge_hash_table_free(table) \
 1.43751 ++  (bfd_hash_table_free (&(table)->root))
 1.43752 ++
 1.43753 ++/* Look up an entry in a COFF debug merge hash table.  */
 1.43754 ++
 1.43755 ++#define coff_debug_merge_hash_lookup(table, string, create, copy) \
 1.43756 ++  ((struct coff_debug_merge_hash_entry *) \
 1.43757 ++   bfd_hash_lookup (&(table)->root, (string), (create), (copy)))
 1.43758 ++
 1.43759 ++/* Information we keep for each section in the output file when doing
 1.43760 ++   a relocatable link.  */
 1.43761 ++
 1.43762 ++struct coff_link_section_info
 1.43763 ++{
 1.43764 ++  /* The relocs to be output.  */
 1.43765 ++  struct internal_reloc *relocs;
 1.43766 ++  /* For each reloc against a global symbol whose index was not known
 1.43767 ++     when the reloc was handled, the global hash table entry.  */
 1.43768 ++  struct coff_link_hash_entry **rel_hashes;
 1.43769 ++};
 1.43770 ++
 1.43771 ++/* Information that we pass around while doing the final link step.  */
 1.43772 ++
 1.43773 ++struct coff_final_link_info
 1.43774 ++{
 1.43775 ++  /* General link information.  */
 1.43776 ++  struct bfd_link_info *info;
 1.43777 ++  /* Output BFD.  */
 1.43778 ++  bfd *output_bfd;
 1.43779 ++  /* Used to indicate failure in traversal routine.  */
 1.43780 ++  bfd_boolean failed;
 1.43781 ++  /* If doing "task linking" set only during the time when we want the
 1.43782 ++     global symbol writer to convert the storage class of defined global
 1.43783 ++     symbols from global to static. */
 1.43784 ++  bfd_boolean global_to_static;
 1.43785 ++  /* Hash table for long symbol names.  */
 1.43786 ++  struct bfd_strtab_hash *strtab;
 1.43787 ++  /* When doing a relocatable link, an array of information kept for
 1.43788 ++     each output section, indexed by the target_index field.  */
 1.43789 ++  struct coff_link_section_info *section_info;
 1.43790 ++  /* Symbol index of last C_FILE symbol (-1 if none).  */
 1.43791 ++  long last_file_index;
 1.43792 ++  /* Contents of last C_FILE symbol.  */
 1.43793 ++  struct internal_syment last_file;
 1.43794 ++  /* Symbol index of first aux entry of last .bf symbol with an empty
 1.43795 ++     endndx field (-1 if none).  */
 1.43796 ++  long last_bf_index;
 1.43797 ++  /* Contents of last_bf_index aux entry.  */
 1.43798 ++  union internal_auxent last_bf;
 1.43799 ++  /* Hash table used to merge debug information.  */
 1.43800 ++  struct coff_debug_merge_hash_table debug_merge;
 1.43801 ++  /* Buffer large enough to hold swapped symbols of any input file.  */
 1.43802 ++  struct internal_syment *internal_syms;
 1.43803 ++  /* Buffer large enough to hold sections of symbols of any input file.  */
 1.43804 ++  asection **sec_ptrs;
 1.43805 ++  /* Buffer large enough to hold output indices of symbols of any
 1.43806 ++     input file.  */
 1.43807 ++  long *sym_indices;
 1.43808 ++  /* Buffer large enough to hold output symbols for any input file.  */
 1.43809 ++  bfd_byte *outsyms;
 1.43810 ++  /* Buffer large enough to hold external line numbers for any input
 1.43811 ++     section.  */
 1.43812 ++  bfd_byte *linenos;
 1.43813 ++  /* Buffer large enough to hold any input section.  */
 1.43814 ++  bfd_byte *contents;
 1.43815 ++  /* Buffer large enough to hold external relocs of any input section.  */
 1.43816 ++  bfd_byte *external_relocs;
 1.43817 ++  /* Buffer large enough to hold swapped relocs of any input section.  */
 1.43818 ++  struct internal_reloc *internal_relocs;
 1.43819 ++};
 1.43820 ++
 1.43821 ++/* Most COFF variants have no way to record the alignment of a
 1.43822 ++   section.  This struct is used to set a specific alignment based on
 1.43823 ++   the name of the section.  */
 1.43824 ++
 1.43825 ++struct coff_section_alignment_entry
 1.43826 ++{
 1.43827 ++  /* The section name.  */
 1.43828 ++  const char *name;
 1.43829 ++
 1.43830 ++  /* This is either (unsigned int) -1, indicating that the section
 1.43831 ++     name must match exactly, or it is the number of letters which
 1.43832 ++     must match at the start of the name.  */
 1.43833 ++  unsigned int comparison_length;
 1.43834 ++
 1.43835 ++  /* These macros may be used to fill in the first two fields in a
 1.43836 ++     structure initialization.  */
 1.43837 ++#define COFF_SECTION_NAME_EXACT_MATCH(name) (name), ((unsigned int) -1)
 1.43838 ++#define COFF_SECTION_NAME_PARTIAL_MATCH(name) (name), (sizeof (name) - 1)
 1.43839 ++
 1.43840 ++  /* Only use this entry if the default section alignment for this
 1.43841 ++     target is at least that much (as a power of two).  If this field
 1.43842 ++     is COFF_ALIGNMENT_FIELD_EMPTY, it should be ignored.  */
 1.43843 ++  unsigned int default_alignment_min;
 1.43844 ++
 1.43845 ++  /* Only use this entry if the default section alignment for this
 1.43846 ++     target is no greater than this (as a power of two).  If this
 1.43847 ++     field is COFF_ALIGNMENT_FIELD_EMPTY, it should be ignored.  */
 1.43848 ++  unsigned int default_alignment_max;
 1.43849 ++
 1.43850 ++#define COFF_ALIGNMENT_FIELD_EMPTY ((unsigned int) -1)
 1.43851 ++
 1.43852 ++  /* The desired alignment for this section (as a power of two).  */
 1.43853 ++  unsigned int alignment_power;
 1.43854 ++};
 1.43855 ++
 1.43856 ++extern struct bfd_hash_entry *_bfd_coff_link_hash_newfunc
 1.43857 ++  (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
 1.43858 ++extern bfd_boolean _bfd_coff_link_hash_table_init
 1.43859 ++  (struct coff_link_hash_table *, bfd *,
 1.43860 ++   struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
 1.43861 ++			       struct bfd_hash_table *,
 1.43862 ++			       const char *),
 1.43863 ++   unsigned int);
 1.43864 ++extern struct bfd_link_hash_table *_bfd_coff_link_hash_table_create
 1.43865 ++  (bfd *);
 1.43866 ++extern const char *_bfd_coff_internal_syment_name
 1.43867 ++  (bfd *, const struct internal_syment *, char *);
 1.43868 ++extern bfd_boolean _bfd_coff_link_add_symbols
 1.43869 ++  (bfd *, struct bfd_link_info *);
 1.43870 ++extern bfd_boolean _bfd_coff_final_link
 1.43871 ++  (bfd *, struct bfd_link_info *);
 1.43872 ++extern struct internal_reloc *_bfd_coff_read_internal_relocs
 1.43873 ++  (bfd *, asection *, bfd_boolean, bfd_byte *, bfd_boolean,
 1.43874 ++   struct internal_reloc *);
 1.43875 ++extern bfd_boolean _bfd_coff_generic_relocate_section
 1.43876 ++  (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
 1.43877 ++   struct internal_reloc *, struct internal_syment *, asection **);
 1.43878 ++extern struct bfd_hash_entry *_bfd_coff_debug_merge_hash_newfunc
 1.43879 ++  (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
 1.43880 ++extern bfd_boolean _bfd_coff_write_global_sym
 1.43881 ++  (struct coff_link_hash_entry *, void *);
 1.43882 ++extern bfd_boolean _bfd_coff_write_task_globals
 1.43883 ++  (struct coff_link_hash_entry *, void *);
 1.43884 ++extern bfd_boolean _bfd_coff_link_input_bfd
 1.43885 ++  (struct coff_final_link_info *, bfd *);
 1.43886 ++extern bfd_boolean _bfd_coff_reloc_link_order
 1.43887 ++  (bfd *, struct coff_final_link_info *, asection *,
 1.43888 ++   struct bfd_link_order *);
 1.43889 ++
 1.43890 ++
 1.43891 ++#define coff_get_section_contents_in_window \
 1.43892 ++  _bfd_generic_get_section_contents_in_window
 1.43893 ++
 1.43894 ++/* Functions in xcofflink.c.  */
 1.43895 ++
 1.43896 ++extern long _bfd_xcoff_get_dynamic_symtab_upper_bound
 1.43897 ++  (bfd *);
 1.43898 ++extern long _bfd_xcoff_canonicalize_dynamic_symtab
 1.43899 ++  (bfd *, asymbol **);
 1.43900 ++extern long _bfd_xcoff_get_dynamic_reloc_upper_bound
 1.43901 ++  (bfd *);
 1.43902 ++extern long _bfd_xcoff_canonicalize_dynamic_reloc
 1.43903 ++  (bfd *, arelent **, asymbol **);
 1.43904 ++extern struct bfd_link_hash_table *_bfd_xcoff_bfd_link_hash_table_create
 1.43905 ++  (bfd *);
 1.43906 ++extern void _bfd_xcoff_bfd_link_hash_table_free
 1.43907 ++  (struct bfd_link_hash_table *);
 1.43908 ++extern bfd_boolean _bfd_xcoff_bfd_link_add_symbols
 1.43909 ++  (bfd *, struct bfd_link_info *);
 1.43910 ++extern bfd_boolean _bfd_xcoff_bfd_final_link
 1.43911 ++  (bfd *, struct bfd_link_info *);
 1.43912 ++extern bfd_boolean _bfd_ppc_xcoff_relocate_section
 1.43913 ++  (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
 1.43914 ++   struct internal_reloc *, struct internal_syment *, asection **);
 1.43915 ++
 1.43916 ++/* Functions in coff-ppc.c.  FIXME: These are called be pe.em in the
 1.43917 ++   linker, and so should start with bfd and be declared in bfd.h.  */
 1.43918 ++
 1.43919 ++extern bfd_boolean ppc_allocate_toc_section
 1.43920 ++  (struct bfd_link_info *);
 1.43921 ++extern bfd_boolean ppc_process_before_allocation
 1.43922 ++  (bfd *, struct bfd_link_info *);
 1.43923 ++
 1.43924 ++/* Extracted from coffcode.h.  */
 1.43925 ++typedef struct coff_ptr_struct
 1.43926 ++{
 1.43927 ++  /* Remembers the offset from the first symbol in the file for
 1.43928 ++     this symbol. Generated by coff_renumber_symbols. */
 1.43929 ++  unsigned int offset;
 1.43930 ++
 1.43931 ++  /* Should the value of this symbol be renumbered.  Used for
 1.43932 ++     XCOFF C_BSTAT symbols.  Set by coff_slurp_symbol_table.  */
 1.43933 ++  unsigned int fix_value : 1;
 1.43934 ++
 1.43935 ++  /* Should the tag field of this symbol be renumbered.
 1.43936 ++     Created by coff_pointerize_aux. */
 1.43937 ++  unsigned int fix_tag : 1;
 1.43938 ++
 1.43939 ++  /* Should the endidx field of this symbol be renumbered.
 1.43940 ++     Created by coff_pointerize_aux. */
 1.43941 ++  unsigned int fix_end : 1;
 1.43942 ++
 1.43943 ++  /* Should the x_csect.x_scnlen field be renumbered.
 1.43944 ++     Created by coff_pointerize_aux. */
 1.43945 ++  unsigned int fix_scnlen : 1;
 1.43946 ++
 1.43947 ++  /* Fix up an XCOFF C_BINCL/C_EINCL symbol.  The value is the
 1.43948 ++     index into the line number entries.  Set by coff_slurp_symbol_table.  */
 1.43949 ++  unsigned int fix_line : 1;
 1.43950 ++
 1.43951 ++  /* The container for the symbol structure as read and translated
 1.43952 ++     from the file. */
 1.43953 ++  union
 1.43954 ++  {
 1.43955 ++    union internal_auxent auxent;
 1.43956 ++    struct internal_syment syment;
 1.43957 ++  } u;
 1.43958 ++} combined_entry_type;
 1.43959 ++
 1.43960 ++
 1.43961 ++/* Each canonical asymbol really looks like this: */
 1.43962 ++
 1.43963 ++typedef struct coff_symbol_struct
 1.43964 ++{
 1.43965 ++  /* The actual symbol which the rest of BFD works with */
 1.43966 ++  asymbol symbol;
 1.43967 ++
 1.43968 ++  /* A pointer to the hidden information for this symbol */
 1.43969 ++  combined_entry_type *native;
 1.43970 ++
 1.43971 ++  /* A pointer to the linenumber information for this symbol */
 1.43972 ++  struct lineno_cache_entry *lineno;
 1.43973 ++
 1.43974 ++  /* Have the line numbers been relocated yet ? */
 1.43975 ++  bfd_boolean done_lineno;
 1.43976 ++} coff_symbol_type;
 1.43977 ++/* COFF symbol classifications.  */
 1.43978 ++
 1.43979 ++enum coff_symbol_classification
 1.43980 ++{
 1.43981 ++  /* Global symbol.  */
 1.43982 ++  COFF_SYMBOL_GLOBAL,
 1.43983 ++  /* Common symbol.  */
 1.43984 ++  COFF_SYMBOL_COMMON,
 1.43985 ++  /* Undefined symbol.  */
 1.43986 ++  COFF_SYMBOL_UNDEFINED,
 1.43987 ++  /* Local symbol.  */
 1.43988 ++  COFF_SYMBOL_LOCAL,
 1.43989 ++  /* PE section symbol.  */
 1.43990 ++  COFF_SYMBOL_PE_SECTION
 1.43991 ++};
 1.43992 ++
 1.43993 ++typedef struct
 1.43994 ++{
 1.43995 ++  void (*_bfd_coff_swap_aux_in)
 1.43996 ++    (bfd *, void *, int, int, int, int, void *);
 1.43997 ++
 1.43998 ++  void (*_bfd_coff_swap_sym_in)
 1.43999 ++    (bfd *, void *, void *);
 1.44000 ++
 1.44001 ++  void (*_bfd_coff_swap_lineno_in)
 1.44002 ++    (bfd *, void *, void *);
 1.44003 ++
 1.44004 ++  unsigned int (*_bfd_coff_swap_aux_out)
 1.44005 ++    (bfd *, void *, int, int, int, int, void *);
 1.44006 ++
 1.44007 ++  unsigned int (*_bfd_coff_swap_sym_out)
 1.44008 ++    (bfd *, void *, void *);
 1.44009 ++
 1.44010 ++  unsigned int (*_bfd_coff_swap_lineno_out)
 1.44011 ++    (bfd *, void *, void *);
 1.44012 ++
 1.44013 ++  unsigned int (*_bfd_coff_swap_reloc_out)
 1.44014 ++    (bfd *, void *, void *);
 1.44015 ++
 1.44016 ++  unsigned int (*_bfd_coff_swap_filehdr_out)
 1.44017 ++    (bfd *, void *, void *);
 1.44018 ++
 1.44019 ++  unsigned int (*_bfd_coff_swap_aouthdr_out)
 1.44020 ++    (bfd *, void *, void *);
 1.44021 ++
 1.44022 ++  unsigned int (*_bfd_coff_swap_scnhdr_out)
 1.44023 ++    (bfd *, void *, void *);
 1.44024 ++
 1.44025 ++  unsigned int _bfd_filhsz;
 1.44026 ++  unsigned int _bfd_aoutsz;
 1.44027 ++  unsigned int _bfd_scnhsz;
 1.44028 ++  unsigned int _bfd_symesz;
 1.44029 ++  unsigned int _bfd_auxesz;
 1.44030 ++  unsigned int _bfd_relsz;
 1.44031 ++  unsigned int _bfd_linesz;
 1.44032 ++  unsigned int _bfd_filnmlen;
 1.44033 ++  bfd_boolean _bfd_coff_long_filenames;
 1.44034 ++  bfd_boolean _bfd_coff_long_section_names;
 1.44035 ++  unsigned int _bfd_coff_default_section_alignment_power;
 1.44036 ++  bfd_boolean _bfd_coff_force_symnames_in_strings;
 1.44037 ++  unsigned int _bfd_coff_debug_string_prefix_length;
 1.44038 ++
 1.44039 ++  void (*_bfd_coff_swap_filehdr_in)
 1.44040 ++    (bfd *, void *, void *);
 1.44041 ++
 1.44042 ++  void (*_bfd_coff_swap_aouthdr_in)
 1.44043 ++    (bfd *, void *, void *);
 1.44044 ++
 1.44045 ++  void (*_bfd_coff_swap_scnhdr_in)
 1.44046 ++    (bfd *, void *, void *);
 1.44047 ++
 1.44048 ++  void (*_bfd_coff_swap_reloc_in)
 1.44049 ++    (bfd *abfd, void *, void *);
 1.44050 ++
 1.44051 ++  bfd_boolean (*_bfd_coff_bad_format_hook)
 1.44052 ++    (bfd *, void *);
 1.44053 ++
 1.44054 ++  bfd_boolean (*_bfd_coff_set_arch_mach_hook)
 1.44055 ++    (bfd *, void *);
 1.44056 ++
 1.44057 ++  void * (*_bfd_coff_mkobject_hook)
 1.44058 ++    (bfd *, void *, void *);
 1.44059 ++
 1.44060 ++  bfd_boolean (*_bfd_styp_to_sec_flags_hook)
 1.44061 ++    (bfd *, void *, const char *, asection *, flagword *);
 1.44062 ++
 1.44063 ++  void (*_bfd_set_alignment_hook)
 1.44064 ++    (bfd *, asection *, void *);
 1.44065 ++
 1.44066 ++  bfd_boolean (*_bfd_coff_slurp_symbol_table)
 1.44067 ++    (bfd *);
 1.44068 ++
 1.44069 ++  bfd_boolean (*_bfd_coff_symname_in_debug)
 1.44070 ++    (bfd *, struct internal_syment *);
 1.44071 ++
 1.44072 ++  bfd_boolean (*_bfd_coff_pointerize_aux_hook)
 1.44073 ++    (bfd *, combined_entry_type *, combined_entry_type *,
 1.44074 ++            unsigned int, combined_entry_type *);
 1.44075 ++
 1.44076 ++  bfd_boolean (*_bfd_coff_print_aux)
 1.44077 ++    (bfd *, FILE *, combined_entry_type *, combined_entry_type *,
 1.44078 ++            combined_entry_type *, unsigned int);
 1.44079 ++
 1.44080 ++  void (*_bfd_coff_reloc16_extra_cases)
 1.44081 ++    (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
 1.44082 ++           bfd_byte *, unsigned int *, unsigned int *);
 1.44083 ++
 1.44084 ++  int (*_bfd_coff_reloc16_estimate)
 1.44085 ++    (bfd *, asection *, arelent *, unsigned int,
 1.44086 ++            struct bfd_link_info *);
 1.44087 ++
 1.44088 ++  enum coff_symbol_classification (*_bfd_coff_classify_symbol)
 1.44089 ++    (bfd *, struct internal_syment *);
 1.44090 ++
 1.44091 ++  bfd_boolean (*_bfd_coff_compute_section_file_positions)
 1.44092 ++    (bfd *);
 1.44093 ++
 1.44094 ++  bfd_boolean (*_bfd_coff_start_final_link)
 1.44095 ++    (bfd *, struct bfd_link_info *);
 1.44096 ++
 1.44097 ++  bfd_boolean (*_bfd_coff_relocate_section)
 1.44098 ++    (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
 1.44099 ++            struct internal_reloc *, struct internal_syment *, asection **);
 1.44100 ++
 1.44101 ++  reloc_howto_type *(*_bfd_coff_rtype_to_howto)
 1.44102 ++    (bfd *, asection *, struct internal_reloc *,
 1.44103 ++            struct coff_link_hash_entry *, struct internal_syment *,
 1.44104 ++            bfd_vma *);
 1.44105 ++
 1.44106 ++  bfd_boolean (*_bfd_coff_adjust_symndx)
 1.44107 ++    (bfd *, struct bfd_link_info *, bfd *, asection *,
 1.44108 ++            struct internal_reloc *, bfd_boolean *);
 1.44109 ++
 1.44110 ++  bfd_boolean (*_bfd_coff_link_add_one_symbol)
 1.44111 ++    (struct bfd_link_info *, bfd *, const char *, flagword,
 1.44112 ++            asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
 1.44113 ++            struct bfd_link_hash_entry **);
 1.44114 ++
 1.44115 ++  bfd_boolean (*_bfd_coff_link_output_has_begun)
 1.44116 ++    (bfd *, struct coff_final_link_info *);
 1.44117 ++
 1.44118 ++  bfd_boolean (*_bfd_coff_final_link_postscript)
 1.44119 ++    (bfd *, struct coff_final_link_info *);
 1.44120 ++
 1.44121 ++} bfd_coff_backend_data;
 1.44122 ++
 1.44123 ++#define coff_backend_info(abfd) \
 1.44124 ++  ((bfd_coff_backend_data *) (abfd)->xvec->backend_data)
 1.44125 ++
 1.44126 ++#define bfd_coff_swap_aux_in(a,e,t,c,ind,num,i) \
 1.44127 ++  ((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i))
 1.44128 ++
 1.44129 ++#define bfd_coff_swap_sym_in(a,e,i) \
 1.44130 ++  ((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i))
 1.44131 ++
 1.44132 ++#define bfd_coff_swap_lineno_in(a,e,i) \
 1.44133 ++  ((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i))
 1.44134 ++
 1.44135 ++#define bfd_coff_swap_reloc_out(abfd, i, o) \
 1.44136 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o))
 1.44137 ++
 1.44138 ++#define bfd_coff_swap_lineno_out(abfd, i, o) \
 1.44139 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o))
 1.44140 ++
 1.44141 ++#define bfd_coff_swap_aux_out(a,i,t,c,ind,num,o) \
 1.44142 ++  ((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o))
 1.44143 ++
 1.44144 ++#define bfd_coff_swap_sym_out(abfd, i,o) \
 1.44145 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o))
 1.44146 ++
 1.44147 ++#define bfd_coff_swap_scnhdr_out(abfd, i,o) \
 1.44148 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o))
 1.44149 ++
 1.44150 ++#define bfd_coff_swap_filehdr_out(abfd, i,o) \
 1.44151 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o))
 1.44152 ++
 1.44153 ++#define bfd_coff_swap_aouthdr_out(abfd, i,o) \
 1.44154 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o))
 1.44155 ++
 1.44156 ++#define bfd_coff_filhsz(abfd) (coff_backend_info (abfd)->_bfd_filhsz)
 1.44157 ++#define bfd_coff_aoutsz(abfd) (coff_backend_info (abfd)->_bfd_aoutsz)
 1.44158 ++#define bfd_coff_scnhsz(abfd) (coff_backend_info (abfd)->_bfd_scnhsz)
 1.44159 ++#define bfd_coff_symesz(abfd) (coff_backend_info (abfd)->_bfd_symesz)
 1.44160 ++#define bfd_coff_auxesz(abfd) (coff_backend_info (abfd)->_bfd_auxesz)
 1.44161 ++#define bfd_coff_relsz(abfd)  (coff_backend_info (abfd)->_bfd_relsz)
 1.44162 ++#define bfd_coff_linesz(abfd) (coff_backend_info (abfd)->_bfd_linesz)
 1.44163 ++#define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen)
 1.44164 ++#define bfd_coff_long_filenames(abfd) \
 1.44165 ++  (coff_backend_info (abfd)->_bfd_coff_long_filenames)
 1.44166 ++#define bfd_coff_long_section_names(abfd) \
 1.44167 ++  (coff_backend_info (abfd)->_bfd_coff_long_section_names)
 1.44168 ++#define bfd_coff_default_section_alignment_power(abfd) \
 1.44169 ++  (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power)
 1.44170 ++#define bfd_coff_swap_filehdr_in(abfd, i,o) \
 1.44171 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o))
 1.44172 ++
 1.44173 ++#define bfd_coff_swap_aouthdr_in(abfd, i,o) \
 1.44174 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o))
 1.44175 ++
 1.44176 ++#define bfd_coff_swap_scnhdr_in(abfd, i,o) \
 1.44177 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o))
 1.44178 ++
 1.44179 ++#define bfd_coff_swap_reloc_in(abfd, i, o) \
 1.44180 ++  ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o))
 1.44181 ++
 1.44182 ++#define bfd_coff_bad_format_hook(abfd, filehdr) \
 1.44183 ++  ((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr))
 1.44184 ++
 1.44185 ++#define bfd_coff_set_arch_mach_hook(abfd, filehdr)\
 1.44186 ++  ((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr))
 1.44187 ++#define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\
 1.44188 ++  ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook)\
 1.44189 ++   (abfd, filehdr, aouthdr))
 1.44190 ++
 1.44191 ++#define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\
 1.44192 ++  ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\
 1.44193 ++   (abfd, scnhdr, name, section, flags_ptr))
 1.44194 ++
 1.44195 ++#define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\
 1.44196 ++  ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr))
 1.44197 ++
 1.44198 ++#define bfd_coff_slurp_symbol_table(abfd)\
 1.44199 ++  ((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd))
 1.44200 ++
 1.44201 ++#define bfd_coff_symname_in_debug(abfd, sym)\
 1.44202 ++  ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym))
 1.44203 ++
 1.44204 ++#define bfd_coff_force_symnames_in_strings(abfd)\
 1.44205 ++  (coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings)
 1.44206 ++
 1.44207 ++#define bfd_coff_debug_string_prefix_length(abfd)\
 1.44208 ++  (coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length)
 1.44209 ++
 1.44210 ++#define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\
 1.44211 ++  ((coff_backend_info (abfd)->_bfd_coff_print_aux)\
 1.44212 ++   (abfd, file, base, symbol, aux, indaux))
 1.44213 ++
 1.44214 ++#define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\
 1.44215 ++                                     reloc, data, src_ptr, dst_ptr)\
 1.44216 ++  ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\
 1.44217 ++   (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr))
 1.44218 ++
 1.44219 ++#define bfd_coff_reloc16_estimate(abfd, section, reloc, shrink, link_info)\
 1.44220 ++  ((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\
 1.44221 ++   (abfd, section, reloc, shrink, link_info))
 1.44222 ++
 1.44223 ++#define bfd_coff_classify_symbol(abfd, sym)\
 1.44224 ++  ((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\
 1.44225 ++   (abfd, sym))
 1.44226 ++
 1.44227 ++#define bfd_coff_compute_section_file_positions(abfd)\
 1.44228 ++  ((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\
 1.44229 ++   (abfd))
 1.44230 ++
 1.44231 ++#define bfd_coff_start_final_link(obfd, info)\
 1.44232 ++  ((coff_backend_info (obfd)->_bfd_coff_start_final_link)\
 1.44233 ++   (obfd, info))
 1.44234 ++#define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\
 1.44235 ++  ((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\
 1.44236 ++   (obfd, info, ibfd, o, con, rel, isyms, secs))
 1.44237 ++#define bfd_coff_rtype_to_howto(abfd, sec, rel, h, sym, addendp)\
 1.44238 ++  ((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\
 1.44239 ++   (abfd, sec, rel, h, sym, addendp))
 1.44240 ++#define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\
 1.44241 ++  ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
 1.44242 ++   (obfd, info, ibfd, sec, rel, adjustedp))
 1.44243 ++#define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\
 1.44244 ++                                     value, string, cp, coll, hashp)\
 1.44245 ++  ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
 1.44246 ++   (info, abfd, name, flags, section, value, string, cp, coll, hashp))
 1.44247 ++
 1.44248 ++#define bfd_coff_link_output_has_begun(a,p) \
 1.44249 ++  ((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a, p))
 1.44250 ++#define bfd_coff_final_link_postscript(a,p) \
 1.44251 ++  ((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a, p))
 1.44252 ++
 1.44253 +--- a/bfd/libbfd.h
 1.44254 ++++ b/bfd/libbfd.h
 1.44255 +@@ -1601,6 +1601,48 @@ static const char *const bfd_reloc_code_
 1.44256 +   "BFD_RELOC_AVR_LDI",
 1.44257 +   "BFD_RELOC_AVR_6",
 1.44258 +   "BFD_RELOC_AVR_6_ADIW",
 1.44259 ++  "BFD_RELOC_AVR32_DIFF32",
 1.44260 ++  "BFD_RELOC_AVR32_DIFF16",
 1.44261 ++  "BFD_RELOC_AVR32_DIFF8",
 1.44262 ++  "BFD_RELOC_AVR32_GOT32",
 1.44263 ++  "BFD_RELOC_AVR32_GOT16",
 1.44264 ++  "BFD_RELOC_AVR32_GOT8",
 1.44265 ++  "BFD_RELOC_AVR32_21S",
 1.44266 ++  "BFD_RELOC_AVR32_16U",
 1.44267 ++  "BFD_RELOC_AVR32_16S",
 1.44268 ++  "BFD_RELOC_AVR32_SUB5",
 1.44269 ++  "BFD_RELOC_AVR32_8S_EXT",
 1.44270 ++  "BFD_RELOC_AVR32_8S",
 1.44271 ++  "BFD_RELOC_AVR32_15S",
 1.44272 ++  "BFD_RELOC_AVR32_22H_PCREL",
 1.44273 ++  "BFD_RELOC_AVR32_18W_PCREL",
 1.44274 ++  "BFD_RELOC_AVR32_16B_PCREL",
 1.44275 ++  "BFD_RELOC_AVR32_16N_PCREL",
 1.44276 ++  "BFD_RELOC_AVR32_14UW_PCREL",
 1.44277 ++  "BFD_RELOC_AVR32_11H_PCREL",
 1.44278 ++  "BFD_RELOC_AVR32_10UW_PCREL",
 1.44279 ++  "BFD_RELOC_AVR32_9H_PCREL",
 1.44280 ++  "BFD_RELOC_AVR32_9UW_PCREL",
 1.44281 ++  "BFD_RELOC_AVR32_GOTPC",
 1.44282 ++  "BFD_RELOC_AVR32_GOTCALL",
 1.44283 ++  "BFD_RELOC_AVR32_LDA_GOT",
 1.44284 ++  "BFD_RELOC_AVR32_GOT21S",
 1.44285 ++  "BFD_RELOC_AVR32_GOT18SW",
 1.44286 ++  "BFD_RELOC_AVR32_GOT16S",
 1.44287 ++  "BFD_RELOC_AVR32_32_CPENT",
 1.44288 ++  "BFD_RELOC_AVR32_CPCALL",
 1.44289 ++  "BFD_RELOC_AVR32_16_CP",
 1.44290 ++  "BFD_RELOC_AVR32_9W_CP",
 1.44291 ++  "BFD_RELOC_AVR32_ALIGN",
 1.44292 ++  "BFD_RELOC_AVR32_14UW",
 1.44293 ++  "BFD_RELOC_AVR32_10UW",
 1.44294 ++  "BFD_RELOC_AVR32_10SW",
 1.44295 ++  "BFD_RELOC_AVR32_STHH_W",
 1.44296 ++  "BFD_RELOC_AVR32_7UW",
 1.44297 ++  "BFD_RELOC_AVR32_6S",
 1.44298 ++  "BFD_RELOC_AVR32_6UW",
 1.44299 ++  "BFD_RELOC_AVR32_4UH",
 1.44300 ++  "BFD_RELOC_AVR32_3U",
 1.44301 +   "BFD_RELOC_390_12",
 1.44302 +   "BFD_RELOC_390_GOT12",
 1.44303 +   "BFD_RELOC_390_PLT32",
 1.44304 +--- /dev/null
 1.44305 ++++ b/bfd/libtool
 1.44306 +@@ -0,0 +1,7871 @@
 1.44307 ++#! /bin/bash
 1.44308 ++
 1.44309 ++# libtool - Provide generalized library-building support services.
 1.44310 ++# Generated automatically by config.status (bfd) 2.18.atmel.1.0.1
 1.44311 ++# Libtool was configured on host hcegtvedt:
 1.44312 ++# NOTE: Changes made to this file will be lost: look at ltmain.sh.
 1.44313 ++#
 1.44314 ++#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
 1.44315 ++#                 2006, 2007, 2008 Free Software Foundation, Inc.
 1.44316 ++#   Written by Gordon Matzigkeit, 1996
 1.44317 ++#
 1.44318 ++#   This file is part of GNU Libtool.
 1.44319 ++#
 1.44320 ++# GNU Libtool is free software; you can redistribute it and/or
 1.44321 ++# modify it under the terms of the GNU General Public License as
 1.44322 ++# published by the Free Software Foundation; either version 2 of
 1.44323 ++# the License, or (at your option) any later version.
 1.44324 ++#
 1.44325 ++# As a special exception to the GNU General Public License,
 1.44326 ++# if you distribute this file as part of a program or library that
 1.44327 ++# is built using GNU Libtool, you may include this file under the
 1.44328 ++# same distribution terms that you use for the rest of that program.
 1.44329 ++#
 1.44330 ++# GNU Libtool is distributed in the hope that it will be useful,
 1.44331 ++# but WITHOUT ANY WARRANTY; without even the implied warranty of
 1.44332 ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 1.44333 ++# GNU General Public License for more details.
 1.44334 ++#
 1.44335 ++# You should have received a copy of the GNU General Public License
 1.44336 ++# along with GNU Libtool; see the file COPYING.  If not, a copy
 1.44337 ++# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
 1.44338 ++# obtained by writing to the Free Software Foundation, Inc.,
 1.44339 ++# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 1.44340 ++
 1.44341 ++
 1.44342 ++# The names of the tagged configurations supported by this script.
 1.44343 ++available_tags=""
 1.44344 ++
 1.44345 ++# ### BEGIN LIBTOOL CONFIG
 1.44346 ++
 1.44347 ++# Whether or not to build shared libraries.
 1.44348 ++build_libtool_libs=no
 1.44349 ++
 1.44350 ++# Which release of libtool.m4 was used?
 1.44351 ++macro_version=2.2.4
 1.44352 ++macro_revision=1.2976
 1.44353 ++
 1.44354 ++# Whether or not to build static libraries.
 1.44355 ++build_old_libs=yes
 1.44356 ++
 1.44357 ++# What type of objects to build.
 1.44358 ++pic_mode=default
 1.44359 ++
 1.44360 ++# Whether or not to optimize for fast installation.
 1.44361 ++fast_install=needless
 1.44362 ++
 1.44363 ++# The host system.
 1.44364 ++host_alias=i686-pc-linux-gnu
 1.44365 ++host=i686-pc-linux-gnu
 1.44366 ++host_os=linux-gnu
 1.44367 ++
 1.44368 ++# The build system.
 1.44369 ++build_alias=i686-pc-linux-gnu
 1.44370 ++build=i686-pc-linux-gnu
 1.44371 ++build_os=linux-gnu
 1.44372 ++
 1.44373 ++# A sed program that does not truncate output.
 1.44374 ++SED="/bin/sed"
 1.44375 ++
 1.44376 ++# Sed that helps us avoid accidentally triggering echo(1) options like -n.
 1.44377 ++Xsed="$SED -e 1s/^X//"
 1.44378 ++
 1.44379 ++# A grep program that handles long lines.
 1.44380 ++GREP="/bin/grep"
 1.44381 ++
 1.44382 ++# An ERE matcher.
 1.44383 ++EGREP="/bin/grep -E"
 1.44384 ++
 1.44385 ++# A literal string matcher.
 1.44386 ++FGREP="/bin/grep -F"
 1.44387 ++
 1.44388 ++# A BSD- or MS-compatible name lister.
 1.44389 ++NM="nm"
 1.44390 ++
 1.44391 ++# Whether we need soft or hard links.
 1.44392 ++LN_S="ln -s"
 1.44393 ++
 1.44394 ++# What is the maximum length of a command?
 1.44395 ++max_cmd_len=805306365
 1.44396 ++
 1.44397 ++# Object file suffix (normally "o").
 1.44398 ++objext=o
 1.44399 ++
 1.44400 ++# Executable file suffix (normally "").
 1.44401 ++exeext=
 1.44402 ++
 1.44403 ++# whether the shell understands "unset".
 1.44404 ++lt_unset=unset
 1.44405 ++
 1.44406 ++# turn spaces into newlines.
 1.44407 ++SP2NL="tr \\040 \\012"
 1.44408 ++
 1.44409 ++# turn newlines into spaces.
 1.44410 ++NL2SP="tr \\015\\012 \\040\\040"
 1.44411 ++
 1.44412 ++# How to create reloadable object files.
 1.44413 ++reload_flag=" -r"
 1.44414 ++reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
 1.44415 ++
 1.44416 ++# Method to check whether dependent libraries are shared objects.
 1.44417 ++deplibs_check_method="pass_all"
 1.44418 ++
 1.44419 ++# Command to use when deplibs_check_method == "file_magic".
 1.44420 ++file_magic_cmd="\$MAGIC_CMD"
 1.44421 ++
 1.44422 ++# The archiver.
 1.44423 ++AR="ar"
 1.44424 ++AR_FLAGS="cru"
 1.44425 ++
 1.44426 ++# A symbol stripping program.
 1.44427 ++STRIP="strip"
 1.44428 ++
 1.44429 ++# Commands used to install an old-style archive.
 1.44430 ++RANLIB="ranlib"
 1.44431 ++old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
 1.44432 ++old_postuninstall_cmds=""
 1.44433 ++
 1.44434 ++# A C compiler.
 1.44435 ++LTCC="gcc"
 1.44436 ++
 1.44437 ++# LTCC compiler flags.
 1.44438 ++LTCFLAGS="-g -O2"
 1.44439 ++
 1.44440 ++# Take the output of nm and produce a listing of raw symbols and C names.
 1.44441 ++global_symbol_pipe="sed -n -e 's/^.*[	 ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[	 ][	 ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
 1.44442 ++
 1.44443 ++# Transform the output of nm in a proper C declaration.
 1.44444 ++global_symbol_to_cdecl="sed -n -e 's/^T .* \\(.*\\)\$/extern int \\1();/p' -e 's/^[ABCDGIRSTW]* .* \\(.*\\)\$/extern char \\1;/p'"
 1.44445 ++
 1.44446 ++# Transform the output of nm in a C name address pair.
 1.44447 ++global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/  {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/  {\"\\2\", (void *) \\&\\2},/p'"
 1.44448 ++
 1.44449 ++# Transform the output of nm in a C name address pair when lib prefix is needed.
 1.44450 ++global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \\([^ ]*\\) \$/  {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\(lib[^ ]*\\)\$/  {\"\\2\", (void *) \\&\\2},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/  {\"lib\\2\", (void *) \\&\\2},/p'"
 1.44451 ++
 1.44452 ++# The name of the directory that contains temporary libtool files.
 1.44453 ++objdir=.libs
 1.44454 ++
 1.44455 ++# Shell to use when invoking shell scripts.
 1.44456 ++SHELL="/bin/bash"
 1.44457 ++
 1.44458 ++# An echo program that does not interpret backslashes.
 1.44459 ++ECHO="echo"
 1.44460 ++
 1.44461 ++# Used to examine libraries when file_magic_cmd begins with "file".
 1.44462 ++MAGIC_CMD=file
 1.44463 ++
 1.44464 ++# Must we lock files when doing compilation?
 1.44465 ++need_locks="no"
 1.44466 ++
 1.44467 ++# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
 1.44468 ++DSYMUTIL=""
 1.44469 ++
 1.44470 ++# Tool to change global to local symbols on Mac OS X.
 1.44471 ++NMEDIT=""
 1.44472 ++
 1.44473 ++# Tool to manipulate fat objects and archives on Mac OS X.
 1.44474 ++LIPO=""
 1.44475 ++
 1.44476 ++# ldd/readelf like tool for Mach-O binaries on Mac OS X.
 1.44477 ++OTOOL=""
 1.44478 ++
 1.44479 ++# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
 1.44480 ++OTOOL64=""
 1.44481 ++
 1.44482 ++# Old archive suffix (normally "a").
 1.44483 ++libext=a
 1.44484 ++
 1.44485 ++# Shared library suffix (normally ".so").
 1.44486 ++shrext_cmds=".so"
 1.44487 ++
 1.44488 ++# The commands to extract the exported symbol list from a shared archive.
 1.44489 ++extract_expsyms_cmds=""
 1.44490 ++
 1.44491 ++# Variables whose values should be saved in libtool wrapper scripts and
 1.44492 ++# restored at link time.
 1.44493 ++variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
 1.44494 ++
 1.44495 ++# Do we need the "lib" prefix for modules?
 1.44496 ++need_lib_prefix=no
 1.44497 ++
 1.44498 ++# Do we need a version for libraries?
 1.44499 ++need_version=no
 1.44500 ++
 1.44501 ++# Library versioning type.
 1.44502 ++version_type=linux
 1.44503 ++
 1.44504 ++# Shared library runtime path variable.
 1.44505 ++runpath_var=LD_RUN_PATH
 1.44506 ++
 1.44507 ++# Shared library path variable.
 1.44508 ++shlibpath_var=LD_LIBRARY_PATH
 1.44509 ++
 1.44510 ++# Is shlibpath searched before the hard-coded library search path?
 1.44511 ++shlibpath_overrides_runpath=no
 1.44512 ++
 1.44513 ++# Format of library name prefix.
 1.44514 ++libname_spec="lib\$name"
 1.44515 ++
 1.44516 ++# List of archive names.  First name is the real one, the rest are links.
 1.44517 ++# The last name is the one that the linker finds with -lNAME
 1.44518 ++library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}"
 1.44519 ++
 1.44520 ++# The coded name of the library, if different from the real name.
 1.44521 ++soname_spec="\${libname}\${release}\${shared_ext}\$major"
 1.44522 ++
 1.44523 ++# Command to use after installation of a shared archive.
 1.44524 ++postinstall_cmds=""
 1.44525 ++
 1.44526 ++# Command to use after uninstallation of a shared archive.
 1.44527 ++postuninstall_cmds=""
 1.44528 ++
 1.44529 ++# Commands used to finish a libtool library installation in a directory.
 1.44530 ++finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
 1.44531 ++
 1.44532 ++# As "finish_cmds", except a single script fragment to be evaled but
 1.44533 ++# not shown.
 1.44534 ++finish_eval=""
 1.44535 ++
 1.44536 ++# Whether we should hardcode library paths into libraries.
 1.44537 ++hardcode_into_libs=yes
 1.44538 ++
 1.44539 ++# Compile-time system search path for libraries.
 1.44540 ++sys_lib_search_path_spec="/usr/lib/gcc/i486-linux-gnu/4.2.4 /usr/lib /lib"
 1.44541 ++
 1.44542 ++# Run-time system search path for libraries.
 1.44543 ++sys_lib_dlsearch_path_spec="/lib /usr/lib /lib/i486-linux-gnu /usr/lib/i486-linux-gnu /usr/lib/alsa-lib /usr/local/lib "
 1.44544 ++
 1.44545 ++# Whether dlopen is supported.
 1.44546 ++dlopen_support=unknown
 1.44547 ++
 1.44548 ++# Whether dlopen of programs is supported.
 1.44549 ++dlopen_self=unknown
 1.44550 ++
 1.44551 ++# Whether dlopen of statically linked programs is supported.
 1.44552 ++dlopen_self_static=unknown
 1.44553 ++
 1.44554 ++# Commands to strip libraries.
 1.44555 ++old_striplib="strip --strip-debug"
 1.44556 ++striplib="strip --strip-unneeded"
 1.44557 ++
 1.44558 ++
 1.44559 ++# The linker used to build libraries.
 1.44560 ++LD="ld"
 1.44561 ++
 1.44562 ++# Commands used to build an old-style archive.
 1.44563 ++old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib"
 1.44564 ++
 1.44565 ++# A language specific compiler.
 1.44566 ++CC="gcc"
 1.44567 ++
 1.44568 ++# Is the compiler the GNU compiler?
 1.44569 ++with_gcc=yes
 1.44570 ++
 1.44571 ++# Compiler flag to turn off builtin functions.
 1.44572 ++no_builtin_flag=" -fno-builtin"
 1.44573 ++
 1.44574 ++# How to pass a linker flag through the compiler.
 1.44575 ++wl="-Wl,"
 1.44576 ++
 1.44577 ++# Additional compiler flags for building library objects.
 1.44578 ++pic_flag=" -fPIC -DPIC"
 1.44579 ++
 1.44580 ++# Compiler flag to prevent dynamic linking.
 1.44581 ++link_static_flag="-static"
 1.44582 ++
 1.44583 ++# Does compiler simultaneously support -c and -o options?
 1.44584 ++compiler_c_o="yes"
 1.44585 ++
 1.44586 ++# Whether or not to add -lc for building shared libraries.
 1.44587 ++build_libtool_need_lc=yes
 1.44588 ++
 1.44589 ++# Whether or not to disallow shared libs when runtime libs are static.
 1.44590 ++allow_libtool_libs_with_static_runtimes=no
 1.44591 ++
 1.44592 ++# Compiler flag to allow reflexive dlopens.
 1.44593 ++export_dynamic_flag_spec="\${wl}--export-dynamic"
 1.44594 ++
 1.44595 ++# Compiler flag to generate shared objects directly from archives.
 1.44596 ++whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
 1.44597 ++
 1.44598 ++# Whether the compiler copes with passing no objects directly.
 1.44599 ++compiler_needs_object="no"
 1.44600 ++
 1.44601 ++# Create an old-style archive from a shared archive.
 1.44602 ++old_archive_from_new_cmds=""
 1.44603 ++
 1.44604 ++# Create a temporary old-style archive to link instead of a shared archive.
 1.44605 ++old_archive_from_expsyms_cmds=""
 1.44606 ++
 1.44607 ++# Commands used to build a shared archive.
 1.44608 ++archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib"
 1.44609 ++archive_expsym_cmds="echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~
 1.44610 ++	    cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~
 1.44611 ++	    echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~
 1.44612 ++	    \$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib"
 1.44613 ++
 1.44614 ++# Commands used to build a loadable module if different from building
 1.44615 ++# a shared archive.
 1.44616 ++module_cmds=""
 1.44617 ++module_expsym_cmds=""
 1.44618 ++
 1.44619 ++# Whether we are building with GNU ld or not.
 1.44620 ++with_gnu_ld="yes"
 1.44621 ++
 1.44622 ++# Flag that allows shared libraries with undefined symbols to be built.
 1.44623 ++allow_undefined_flag=""
 1.44624 ++
 1.44625 ++# Flag that enforces no undefined symbols.
 1.44626 ++no_undefined_flag=""
 1.44627 ++
 1.44628 ++# Flag to hardcode $libdir into a binary during linking.
 1.44629 ++# This must work even if $libdir does not exist
 1.44630 ++hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir"
 1.44631 ++
 1.44632 ++# If ld is used when linking, flag to hardcode $libdir into a binary
 1.44633 ++# during linking.  This must work even if $libdir does not exist.
 1.44634 ++hardcode_libdir_flag_spec_ld=""
 1.44635 ++
 1.44636 ++# Whether we need a single "-rpath" flag with a separated argument.
 1.44637 ++hardcode_libdir_separator=""
 1.44638 ++
 1.44639 ++# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
 1.44640 ++# DIR into the resulting binary.
 1.44641 ++hardcode_direct=no
 1.44642 ++
 1.44643 ++# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
 1.44644 ++# DIR into the resulting binary and the resulting library dependency is
 1.44645 ++# "absolute",i.e impossible to change by setting ${shlibpath_var} if the
 1.44646 ++# library is relocated.
 1.44647 ++hardcode_direct_absolute=no
 1.44648 ++
 1.44649 ++# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
 1.44650 ++# into the resulting binary.
 1.44651 ++hardcode_minus_L=no
 1.44652 ++
 1.44653 ++# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
 1.44654 ++# into the resulting binary.
 1.44655 ++hardcode_shlibpath_var=unsupported
 1.44656 ++
 1.44657 ++# Set to "yes" if building a shared library automatically hardcodes DIR
 1.44658 ++# into the library and all subsequent libraries and executables linked
 1.44659 ++# against it.
 1.44660 ++hardcode_automatic=no
 1.44661 ++
 1.44662 ++# Set to yes if linker adds runtime paths of dependent libraries
 1.44663 ++# to runtime path list.
 1.44664 ++inherit_rpath=no
 1.44665 ++
 1.44666 ++# Whether libtool must link a program against all its dependency libraries.
 1.44667 ++link_all_deplibs=unknown
 1.44668 ++
 1.44669 ++# Fix the shell variable $srcfile for the compiler.
 1.44670 ++fix_srcfile_path=""
 1.44671 ++
 1.44672 ++# Set to "yes" if exported symbols are required.
 1.44673 ++always_export_symbols=no
 1.44674 ++
 1.44675 ++# The commands to list exported symbols.
 1.44676 ++export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
 1.44677 ++
 1.44678 ++# Symbols that should not be listed in the preloaded symbols.
 1.44679 ++exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"
 1.44680 ++
 1.44681 ++# Symbols that must always be exported.
 1.44682 ++include_expsyms=""
 1.44683 ++
 1.44684 ++# Commands necessary for linking programs (against libraries) with templates.
 1.44685 ++prelink_cmds=""
 1.44686 ++
 1.44687 ++# Specify filename containing input files.
 1.44688 ++file_list_spec=""
 1.44689 ++
 1.44690 ++# How to hardcode a shared library path into an executable.
 1.44691 ++hardcode_action=immediate
 1.44692 ++
 1.44693 ++# ### END LIBTOOL CONFIG
 1.44694 ++
 1.44695 ++# Generated from ltmain.m4sh; do not edit by hand
 1.44696 ++
 1.44697 ++# ltmain.sh (GNU libtool 1.2435 2007/03/18 18:44:42) 2.1a
 1.44698 ++# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 1.44699 ++
 1.44700 ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
 1.44701 ++# This is free software; see the source for copying conditions.  There is NO
 1.44702 ++# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 1.44703 ++
 1.44704 ++# This program is free software; you can redistribute it and/or modify
 1.44705 ++# it under the terms of the GNU General Public License as published by
 1.44706 ++# the Free Software Foundation; either version 2 of the License, or
 1.44707 ++# (at your option) any later version.
 1.44708 ++#
 1.44709 ++# This program is distributed in the hope that it will be useful, but
 1.44710 ++# WITHOUT ANY WARRANTY; without even the implied warranty of
 1.44711 ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 1.44712 ++# General Public License for more details.
 1.44713 ++#
 1.44714 ++# You should have received a copy of the GNU General Public License
 1.44715 ++# along with this program; if not, write to the Free Software
 1.44716 ++# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 1.44717 ++#
 1.44718 ++# As a special exception to the GNU General Public License, if you
 1.44719 ++# distribute this file as part of a program that contains a
 1.44720 ++# configuration script generated by Autoconf, you may include it under
 1.44721 ++# the same distribution terms that you use for the rest of that program.
 1.44722 ++
 1.44723 ++# Usage: $progname [OPTION]... [MODE-ARG]...
 1.44724 ++#
 1.44725 ++# Provide generalized library-building support services.
 1.44726 ++#
 1.44727 ++#     --config             show all configuration variables
 1.44728 ++#     --debug              enable verbose shell tracing
 1.44729 ++# -n, --dry-run            display commands without modifying any files
 1.44730 ++#     --features           display basic configuration information and exit
 1.44731 ++#     --mode=MODE          use operation mode MODE
 1.44732 ++#     --preserve-dup-deps  don't remove duplicate dependency libraries
 1.44733 ++#     --quiet, --silent    don't print informational messages
 1.44734 ++#     --tag=TAG            use configuration variables from tag TAG
 1.44735 ++# -v, --verbose            print informational messages (default)
 1.44736 ++#     --version            print version information
 1.44737 ++# -h, --help               print short or long help message
 1.44738 ++#
 1.44739 ++# MODE must be one of the following:
 1.44740 ++#
 1.44741 ++#       clean              remove files from the build directory
 1.44742 ++#       compile            compile a source file into a libtool object
 1.44743 ++#       execute            automatically set library path, then run a program
 1.44744 ++#       finish             complete the installation of libtool libraries
 1.44745 ++#       install            install libraries or executables
 1.44746 ++#       link               create a library or an executable
 1.44747 ++#       uninstall          remove libraries from an installed directory
 1.44748 ++#
 1.44749 ++# MODE-ARGS vary depending on the MODE.
 1.44750 ++# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
 1.44751 ++#
 1.44752 ++# When reporting a bug, please describe a test case to reproduce it and
 1.44753 ++# include the following information:
 1.44754 ++#
 1.44755 ++#       host-triplet:	$host
 1.44756 ++#       shell:		$SHELL
 1.44757 ++#       compiler:		$LTCC
 1.44758 ++#       compiler flags:		$LTCFLAGS
 1.44759 ++#       linker:		$LD (gnu? $with_gnu_ld)
 1.44760 ++#       $progname:		(GNU libtool 1.2435 2007/03/18 18:44:42) 2.1a
 1.44761 ++#       automake:		$automake_version
 1.44762 ++#       autoconf:		$autoconf_version
 1.44763 ++#
 1.44764 ++# Report bugs to <bug-libtool@gnu.org>.
 1.44765 ++
 1.44766 ++PROGRAM=ltmain.sh
 1.44767 ++PACKAGE=libtool
 1.44768 ++VERSION=2.1a
 1.44769 ++TIMESTAMP=" 1.2435 2007/03/18 18:44:42"
 1.44770 ++package_revision=1.2435
 1.44771 ++
 1.44772 ++# Be Bourne compatible
 1.44773 ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
 1.44774 ++  emulate sh
 1.44775 ++  NULLCMD=:
 1.44776 ++  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
 1.44777 ++  # is contrary to our usage.  Disable this feature.
 1.44778 ++  alias -g '${1+"$@"}'='"$@"'
 1.44779 ++  setopt NO_GLOB_SUBST
 1.44780 ++else
 1.44781 ++  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
 1.44782 ++fi
 1.44783 ++BIN_SH=xpg4; export BIN_SH # for Tru64
 1.44784 ++DUALCASE=1; export DUALCASE # for MKS sh
 1.44785 ++
 1.44786 ++# NLS nuisances: We save the old values to restore during execute mode.
 1.44787 ++# Only set LANG and LC_ALL to C if already set.
 1.44788 ++# These must not be set unconditionally because not all systems understand
 1.44789 ++# e.g. LANG=C (notably SCO).
 1.44790 ++for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
 1.44791 ++do
 1.44792 ++  eval "if test \"\${$lt_var+set}\" = set; then
 1.44793 ++          save_$lt_var=\$$lt_var
 1.44794 ++          $lt_var=C
 1.44795 ++	  export $lt_var
 1.44796 ++	fi"
 1.44797 ++done
 1.44798 ++
 1.44799 ++$lt_unset CDPATH
 1.44800 ++
 1.44801 ++
 1.44802 ++
 1.44803 ++
 1.44804 ++
 1.44805 ++: ${CP="cp -f"}
 1.44806 ++: ${ECHO="echo"}
 1.44807 ++: ${EGREP="/bin/grep -E"}
 1.44808 ++: ${FGREP="/bin/grep -F"}
 1.44809 ++: ${GREP="/bin/grep"}
 1.44810 ++: ${LN_S="ln -s"}
 1.44811 ++: ${MAKE="make"}
 1.44812 ++: ${MKDIR="mkdir"}
 1.44813 ++: ${MV="mv -f"}
 1.44814 ++: ${RM="rm -f"}
 1.44815 ++: ${SED="/bin/sed"}
 1.44816 ++: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 1.44817 ++: ${Xsed="$SED -e 1s/^X//"}
 1.44818 ++
 1.44819 ++# Global variables:
 1.44820 ++EXIT_SUCCESS=0
 1.44821 ++EXIT_FAILURE=1
 1.44822 ++EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
 1.44823 ++EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
 1.44824 ++
 1.44825 ++exit_status=$EXIT_SUCCESS
 1.44826 ++
 1.44827 ++# Make sure IFS has a sensible default
 1.44828 ++lt_nl='
 1.44829 ++'
 1.44830 ++IFS=" 	$lt_nl"
 1.44831 ++
 1.44832 ++dirname="s,/[^/]*$,,"
 1.44833 ++basename="s,^.*/,,"
 1.44834 ++
 1.44835 ++# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
 1.44836 ++# is ksh but when the shell is invoked as "sh" and the current value of
 1.44837 ++# the _XPG environment variable is not equal to 1 (one), the special
 1.44838 ++# positional parameter $0, within a function call, is the name of the
 1.44839 ++# function.
 1.44840 ++progpath="$0"
 1.44841 ++
 1.44842 ++# The name of this program:
 1.44843 ++# In the unlikely event $progname began with a '-', it would play havoc with
 1.44844 ++# func_echo (imagine progname=-n), so we prepend ./ in that case:
 1.44845 ++progname=`$ECHO "X$progpath" | $Xsed -e "$basename" -e 's,^-,./-,'`
 1.44846 ++
 1.44847 ++# Make sure we have an absolute path for reexecution:
 1.44848 ++case $progpath in
 1.44849 ++  [\\/]*|[A-Za-z]:\\*) ;;
 1.44850 ++  *[\\/]*)
 1.44851 ++     progdir=`$ECHO "X$progpath" | $Xsed -e "$dirname"`
 1.44852 ++     progdir=`cd "$progdir" && pwd`
 1.44853 ++     progpath="$progdir/$progname"
 1.44854 ++     ;;
 1.44855 ++  *)
 1.44856 ++     save_IFS="$IFS"
 1.44857 ++     IFS=:
 1.44858 ++     for progdir in $PATH; do
 1.44859 ++       IFS="$save_IFS"
 1.44860 ++       test -x "$progdir/$progname" && break
 1.44861 ++     done
 1.44862 ++     IFS="$save_IFS"
 1.44863 ++     test -n "$progdir" || progdir=`pwd`
 1.44864 ++     progpath="$progdir/$progname"
 1.44865 ++     ;;
 1.44866 ++esac
 1.44867 ++
 1.44868 ++# Sed substitution that helps us do robust quoting.  It backslashifies
 1.44869 ++# metacharacters that are still active within double-quoted strings.
 1.44870 ++Xsed="${SED}"' -e 1s/^X//'
 1.44871 ++sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
 1.44872 ++
 1.44873 ++# Same as above, but do not quote variable references.
 1.44874 ++double_quote_subst='s/\(["`\\]\)/\\\1/g'
 1.44875 ++
 1.44876 ++# Re-`\' parameter expansions in output of double_quote_subst that were
 1.44877 ++# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
 1.44878 ++# in input to double_quote_subst, that '$' was protected from expansion.
 1.44879 ++# Since each input `\' is now two `\'s, look for any number of runs of
 1.44880 ++# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
 1.44881 ++bs='\\'
 1.44882 ++bs2='\\\\'
 1.44883 ++bs4='\\\\\\\\'
 1.44884 ++dollar='\$'
 1.44885 ++sed_double_backslash="\
 1.44886 ++  s/$bs4/&\\
 1.44887 ++/g
 1.44888 ++  s/^$bs2$dollar/$bs&/
 1.44889 ++  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
 1.44890 ++  s/\n//g"
 1.44891 ++
 1.44892 ++# Standard options:
 1.44893 ++opt_dry_run=false
 1.44894 ++opt_help=false
 1.44895 ++opt_quiet=false
 1.44896 ++opt_verbose=false
 1.44897 ++
 1.44898 ++# func_echo arg...
 1.44899 ++# Echo program name prefixed message, along with the current mode
 1.44900 ++# name if it has been set yet.
 1.44901 ++func_echo ()
 1.44902 ++{
 1.44903 ++    $ECHO "$progname${mode+: }$mode: "${1+"$@"}
 1.44904 ++}
 1.44905 ++
 1.44906 ++# func_verbose arg...
 1.44907 ++# Echo program name prefixed message in verbose mode only.
 1.44908 ++func_verbose ()
 1.44909 ++{
 1.44910 ++    $opt_verbose && func_echo ${1+"$@"}
 1.44911 ++
 1.44912 ++    # A bug in bash halts the script if the last line of a function
 1.44913 ++    # fails when set -e is in force, so we need another command to
 1.44914 ++    # work around that:
 1.44915 ++    :
 1.44916 ++}
 1.44917 ++
 1.44918 ++# func_error arg...
 1.44919 ++# Echo program name prefixed message to standard error.
 1.44920 ++func_error ()
 1.44921 ++{
 1.44922 ++    $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
 1.44923 ++}
 1.44924 ++
 1.44925 ++# func_warning arg...
 1.44926 ++# Echo program name prefixed warning message to standard error.
 1.44927 ++func_warning ()
 1.44928 ++{
 1.44929 ++    $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
 1.44930 ++}
 1.44931 ++
 1.44932 ++# func_fatal_error arg...
 1.44933 ++# Echo program name prefixed message to standard error, and exit.
 1.44934 ++func_fatal_error ()
 1.44935 ++{
 1.44936 ++    func_error ${1+"$@"}
 1.44937 ++    exit $EXIT_FAILURE
 1.44938 ++}
 1.44939 ++
 1.44940 ++# func_fatal_help arg...
 1.44941 ++# Echo program name prefixed message to standard error, followed by
 1.44942 ++# a help hint, and exit.
 1.44943 ++func_fatal_help ()
 1.44944 ++{
 1.44945 ++    func_error ${1+"$@"}
 1.44946 ++    func_fatal_error "$help"
 1.44947 ++}
 1.44948 ++help="Try \`$progname --help' for more information."  ## default
 1.44949 ++
 1.44950 ++
 1.44951 ++# func_grep expression filename
 1.44952 ++# Check whether EXPRESSION matches any line of FILENAME, without output.
 1.44953 ++func_grep ()
 1.44954 ++{
 1.44955 ++    $GREP "$1" "$2" >/dev/null 2>&1
 1.44956 ++}
 1.44957 ++
 1.44958 ++
 1.44959 ++# func_mkdir_p directory-path
 1.44960 ++# Make sure the entire path to DIRECTORY-PATH is available.
 1.44961 ++func_mkdir_p ()
 1.44962 ++{
 1.44963 ++    my_directory_path="$1"
 1.44964 ++    my_dir_list=
 1.44965 ++
 1.44966 ++    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
 1.44967 ++
 1.44968 ++      # Protect directory names starting with `-'
 1.44969 ++      case $my_directory_path in
 1.44970 ++        -*) my_directory_path="./$my_directory_path" ;;
 1.44971 ++      esac
 1.44972 ++
 1.44973 ++      # While some portion of DIR does not yet exist...
 1.44974 ++      while test ! -d "$my_directory_path"; do
 1.44975 ++        # ...make a list in topmost first order.  Use a colon delimited
 1.44976 ++	# list incase some portion of path contains whitespace.
 1.44977 ++        my_dir_list="$my_directory_path:$my_dir_list"
 1.44978 ++
 1.44979 ++        # If the last portion added has no slash in it, the list is done
 1.44980 ++        case $my_directory_path in */*) ;; *) break ;; esac
 1.44981 ++
 1.44982 ++        # ...otherwise throw away the child directory and loop
 1.44983 ++        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
 1.44984 ++      done
 1.44985 ++      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
 1.44986 ++
 1.44987 ++      save_mkdir_p_IFS="$IFS"; IFS=':'
 1.44988 ++      for my_dir in $my_dir_list; do
 1.44989 ++	IFS="$save_mkdir_p_IFS"
 1.44990 ++        # mkdir can fail with a `File exist' error if two processes
 1.44991 ++        # try to create one of the directories concurrently.  Don't
 1.44992 ++        # stop in that case!
 1.44993 ++        $MKDIR "$my_dir" 2>/dev/null || :
 1.44994 ++      done
 1.44995 ++      IFS="$save_mkdir_p_IFS"
 1.44996 ++
 1.44997 ++      # Bail out if we (or some other process) failed to create a directory.
 1.44998 ++      test -d "$my_directory_path" || \
 1.44999 ++        func_fatal_error "Failed to create \`$1'"
 1.45000 ++    fi
 1.45001 ++}
 1.45002 ++
 1.45003 ++
 1.45004 ++# func_mktempdir [string]
 1.45005 ++# Make a temporary directory that won't clash with other running
 1.45006 ++# libtool processes, and avoids race conditions if possible.  If
 1.45007 ++# given, STRING is the basename for that directory.
 1.45008 ++func_mktempdir ()
 1.45009 ++{
 1.45010 ++    my_template="${TMPDIR-/tmp}/${1-$progname}"
 1.45011 ++
 1.45012 ++    if test "$opt_dry_run" = ":"; then
 1.45013 ++      # Return a directory name, but don't create it in dry-run mode
 1.45014 ++      my_tmpdir="${my_template}-$$"
 1.45015 ++    else
 1.45016 ++
 1.45017 ++      # If mktemp works, use that first and foremost
 1.45018 ++      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
 1.45019 ++
 1.45020 ++      if test ! -d "$my_tmpdir"; then
 1.45021 ++        # Failing that, at least try and use $RANDOM to avoid a race
 1.45022 ++        my_tmpdir="${my_template}-${RANDOM-0}$$"
 1.45023 ++
 1.45024 ++        save_mktempdir_umask=`umask`
 1.45025 ++        umask 0077
 1.45026 ++        $MKDIR "$my_tmpdir"
 1.45027 ++        umask $save_mktempdir_umask
 1.45028 ++      fi
 1.45029 ++
 1.45030 ++      # If we're not in dry-run mode, bomb out on failure
 1.45031 ++      test -d "$my_tmpdir" || \
 1.45032 ++        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
 1.45033 ++    fi
 1.45034 ++
 1.45035 ++    $ECHO "X$my_tmpdir" | $Xsed
 1.45036 ++}
 1.45037 ++
 1.45038 ++
 1.45039 ++# func_quote_for_eval arg
 1.45040 ++# Aesthetically quote ARG to be evaled later.
 1.45041 ++# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
 1.45042 ++# is double-quoted, suitable for a subsequent eval, whereas
 1.45043 ++# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
 1.45044 ++# which are still active within double quotes backslashified.
 1.45045 ++func_quote_for_eval ()
 1.45046 ++{
 1.45047 ++    case $1 in
 1.45048 ++      *[\\\`\"\$]*)
 1.45049 ++	func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
 1.45050 ++      *)
 1.45051 ++        func_quote_for_eval_unquoted_result="$1" ;;
 1.45052 ++    esac
 1.45053 ++
 1.45054 ++    case $func_quote_for_eval_unquoted_result in
 1.45055 ++      # Double-quote args containing shell metacharacters to delay
 1.45056 ++      # word splitting, command substitution and and variable
 1.45057 ++      # expansion for a subsequent eval.
 1.45058 ++      # Many Bourne shells cannot handle close brackets correctly
 1.45059 ++      # in scan sets, so we specify it separately.
 1.45060 ++      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
 1.45061 ++        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
 1.45062 ++        ;;
 1.45063 ++      *)
 1.45064 ++        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
 1.45065 ++    esac
 1.45066 ++}
 1.45067 ++
 1.45068 ++
 1.45069 ++# func_quote_for_expand arg
 1.45070 ++# Aesthetically quote ARG to be evaled later; same as above,
 1.45071 ++# but do not quote variable references.
 1.45072 ++func_quote_for_expand ()
 1.45073 ++{
 1.45074 ++    case $1 in
 1.45075 ++      *[\\\`\"]*)
 1.45076 ++	my_arg=`$ECHO "X$1" | $Xsed \
 1.45077 ++	    -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
 1.45078 ++      *)
 1.45079 ++        my_arg="$1" ;;
 1.45080 ++    esac
 1.45081 ++
 1.45082 ++    case $my_arg in
 1.45083 ++      # Double-quote args containing shell metacharacters to delay
 1.45084 ++      # word splitting and command substitution for a subsequent eval.
 1.45085 ++      # Many Bourne shells cannot handle close brackets correctly
 1.45086 ++      # in scan sets, so we specify it separately.
 1.45087 ++      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
 1.45088 ++        my_arg="\"$my_arg\""
 1.45089 ++        ;;
 1.45090 ++    esac
 1.45091 ++
 1.45092 ++    func_quote_for_expand_result="$my_arg"
 1.45093 ++}
 1.45094 ++
 1.45095 ++
 1.45096 ++# func_show_eval cmd [fail_exp]
 1.45097 ++# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
 1.45098 ++# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
 1.45099 ++# is given, then evaluate it.
 1.45100 ++func_show_eval ()
 1.45101 ++{
 1.45102 ++    my_cmd="$1"
 1.45103 ++    my_fail_exp="${2-:}"
 1.45104 ++
 1.45105 ++    ${opt_silent-false} || {
 1.45106 ++      func_quote_for_expand "$my_cmd"
 1.45107 ++      eval "func_echo $func_quote_for_expand_result"
 1.45108 ++    }
 1.45109 ++
 1.45110 ++    if ${opt_dry_run-false}; then :; else
 1.45111 ++      eval "$my_cmd"
 1.45112 ++      my_status=$?
 1.45113 ++      if test "$my_status" -eq 0; then :; else
 1.45114 ++	eval "(exit $my_status); $my_fail_exp"
 1.45115 ++      fi
 1.45116 ++    fi
 1.45117 ++}
 1.45118 ++
 1.45119 ++
 1.45120 ++
 1.45121 ++
 1.45122 ++
 1.45123 ++# func_version
 1.45124 ++# Echo version message to standard output and exit.
 1.45125 ++func_version ()
 1.45126 ++{
 1.45127 ++    $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
 1.45128 ++        s/^# //
 1.45129 ++	s/^# *$//
 1.45130 ++        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
 1.45131 ++        p
 1.45132 ++     }' < "$progpath"
 1.45133 ++     exit $?
 1.45134 ++}
 1.45135 ++
 1.45136 ++# func_usage
 1.45137 ++# Echo short help message to standard output and exit.
 1.45138 ++func_usage ()
 1.45139 ++{
 1.45140 ++    $SED -n '/^# Usage:/,/# -h/ {
 1.45141 ++        s/^# //
 1.45142 ++	s/^# *$//
 1.45143 ++	s/\$progname/'$progname'/
 1.45144 ++	p
 1.45145 ++    }' < "$progpath"
 1.45146 ++    $ECHO
 1.45147 ++    $ECHO "run \`$progname --help | more' for full usage"
 1.45148 ++    exit $?
 1.45149 ++}
 1.45150 ++
 1.45151 ++# func_help
 1.45152 ++# Echo long help message to standard output and exit.
 1.45153 ++func_help ()
 1.45154 ++{
 1.45155 ++    $SED -n '/^# Usage:/,/# Report bugs to/ {
 1.45156 ++        s/^# //
 1.45157 ++	s/^# *$//
 1.45158 ++	s*\$progname*'$progname'*
 1.45159 ++	s*\$host*'"$host"'*
 1.45160 ++	s*\$SHELL*'"$SHELL"'*
 1.45161 ++	s*\$LTCC*'"$LTCC"'*
 1.45162 ++	s*\$LTCFLAGS*'"$LTCFLAGS"'*
 1.45163 ++	s*\$LD*'"$LD"'*
 1.45164 ++	s/\$with_gnu_ld/'"$with_gnu_ld"'/
 1.45165 ++	s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
 1.45166 ++	s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
 1.45167 ++	p
 1.45168 ++     }' < "$progpath"
 1.45169 ++    exit $?
 1.45170 ++}
 1.45171 ++
 1.45172 ++# func_missing_arg argname
 1.45173 ++# Echo program name prefixed message to standard error and set global
 1.45174 ++# exit_cmd.
 1.45175 ++func_missing_arg ()
 1.45176 ++{
 1.45177 ++    func_error "missing argument for $1"
 1.45178 ++    exit_cmd=exit
 1.45179 ++}
 1.45180 ++
 1.45181 ++exit_cmd=:
 1.45182 ++
 1.45183 ++
 1.45184 ++
 1.45185 ++
 1.45186 ++
 1.45187 ++# Check that we have a working $ECHO.
 1.45188 ++if test "X$1" = X--no-reexec; then
 1.45189 ++  # Discard the --no-reexec flag, and continue.
 1.45190 ++  shift
 1.45191 ++elif test "X$1" = X--fallback-echo; then
 1.45192 ++  # Avoid inline document here, it may be left over
 1.45193 ++  :
 1.45194 ++elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
 1.45195 ++  # Yippee, $ECHO works!
 1.45196 ++  :
 1.45197 ++else
 1.45198 ++  # Restart under the correct shell, and then maybe $ECHO will work.
 1.45199 ++  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
 1.45200 ++fi
 1.45201 ++
 1.45202 ++if test "X$1" = X--fallback-echo; then
 1.45203 ++  # used as fallback echo
 1.45204 ++  shift
 1.45205 ++  cat <<EOF
 1.45206 ++$*
 1.45207 ++EOF
 1.45208 ++  exit $EXIT_SUCCESS
 1.45209 ++fi
 1.45210 ++
 1.45211 ++magic="%%%MAGIC variable%%%"
 1.45212 ++
 1.45213 ++
 1.45214 ++# Global variables.
 1.45215 ++# $mode is unset
 1.45216 ++nonopt=
 1.45217 ++execute_dlfiles=
 1.45218 ++preserve_args=
 1.45219 ++lo2o="s/\\.lo\$/.${objext}/"
 1.45220 ++o2lo="s/\\.${objext}\$/.lo/"
 1.45221 ++extracted_archives=
 1.45222 ++extracted_serial=0
 1.45223 ++
 1.45224 ++opt_dry_run=false
 1.45225 ++opt_duplicate_deps=false
 1.45226 ++opt_silent=false
 1.45227 ++opt_debug=:
 1.45228 ++
 1.45229 ++# If this variable is set in any of the actions, the command in it
 1.45230 ++# will be execed at the end.  This prevents here-documents from being
 1.45231 ++# left over by shells.
 1.45232 ++exec_cmd=
 1.45233 ++
 1.45234 ++# func_fatal_configuration arg...
 1.45235 ++# Echo program name prefixed message to standard error, followed by
 1.45236 ++# a configuration failure hint, and exit.
 1.45237 ++func_fatal_configuration ()
 1.45238 ++{
 1.45239 ++    func_error ${1+"$@"}
 1.45240 ++    func_error "See the $PACKAGE documentation for more information."
 1.45241 ++    func_fatal_error "Fatal configuration error."
 1.45242 ++}
 1.45243 ++
 1.45244 ++
 1.45245 ++# func_config
 1.45246 ++# Display the configuration for all the tags in this script.
 1.45247 ++func_config ()
 1.45248 ++{
 1.45249 ++    re_begincf='^# ### BEGIN LIBTOOL'
 1.45250 ++    re_endcf='^# ### END LIBTOOL'
 1.45251 ++
 1.45252 ++    # Default configuration.
 1.45253 ++    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
 1.45254 ++
 1.45255 ++    # Now print the configurations for the tags.
 1.45256 ++    for tagname in $taglist; do
 1.45257 ++      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
 1.45258 ++    done
 1.45259 ++
 1.45260 ++    exit $?
 1.45261 ++}
 1.45262 ++
 1.45263 ++# func_features
 1.45264 ++# Display the features supported by this script.
 1.45265 ++func_features ()
 1.45266 ++{
 1.45267 ++    $ECHO "host: $host"
 1.45268 ++    if test "$build_libtool_libs" = yes; then
 1.45269 ++      $ECHO "enable shared libraries"
 1.45270 ++    else
 1.45271 ++      $ECHO "disable shared libraries"
 1.45272 ++    fi
 1.45273 ++    if test "$build_old_libs" = yes; then
 1.45274 ++      $ECHO "enable static libraries"
 1.45275 ++    else
 1.45276 ++      $ECHO "disable static libraries"
 1.45277 ++    fi
 1.45278 ++
 1.45279 ++    exit $?
 1.45280 ++}
 1.45281 ++
 1.45282 ++# func_enable_tag tagname
 1.45283 ++# Verify that TAGNAME is valid, and either flag an error and exit, or
 1.45284 ++# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
 1.45285 ++# variable here.
 1.45286 ++func_enable_tag ()
 1.45287 ++{
 1.45288 ++  # Global variable:
 1.45289 ++  tagname="$1"
 1.45290 ++
 1.45291 ++  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
 1.45292 ++  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
 1.45293 ++  sed_extractcf="/$re_begincf/,/$re_endcf/p"
 1.45294 ++
 1.45295 ++  # Validate tagname.
 1.45296 ++  case $tagname in
 1.45297 ++    *[!-_A-Za-z0-9,/]*)
 1.45298 ++      func_fatal_error "invalid tag name: $tagname"
 1.45299 ++      ;;
 1.45300 ++  esac
 1.45301 ++
 1.45302 ++  # Don't test for the "default" C tag, as we know it's
 1.45303 ++  # there but not specially marked.
 1.45304 ++  case $tagname in
 1.45305 ++    CC) ;;
 1.45306 ++    *)
 1.45307 ++      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
 1.45308 ++	taglist="$taglist $tagname"
 1.45309 ++
 1.45310 ++	# Evaluate the configuration.  Be careful to quote the path
 1.45311 ++	# and the sed script, to avoid splitting on whitespace, but
 1.45312 ++	# also don't use non-portable quotes within backquotes within
 1.45313 ++	# quotes we have to do it in 2 steps:
 1.45314 ++	extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
 1.45315 ++	eval "$extractedcf"
 1.45316 ++      else
 1.45317 ++	func_error "ignoring unknown tag $tagname"
 1.45318 ++      fi
 1.45319 ++      ;;
 1.45320 ++  esac
 1.45321 ++}
 1.45322 ++
 1.45323 ++
 1.45324 ++func_mode_help ()
 1.45325 ++{
 1.45326 ++    # We need to display help for each of the modes.
 1.45327 ++    case $mode in
 1.45328 ++      "")
 1.45329 ++        # Generic help is extracted from the usage comments
 1.45330 ++        # at the start of this file.
 1.45331 ++        func_help
 1.45332 ++        ;;
 1.45333 ++
 1.45334 ++      clean)
 1.45335 ++        $ECHO \
 1.45336 ++"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
 1.45337 ++
 1.45338 ++Remove files from the build directory.
 1.45339 ++
 1.45340 ++RM is the name of the program to use to delete files associated with each FILE
 1.45341 ++(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
 1.45342 ++to RM.
 1.45343 ++
 1.45344 ++If FILE is a libtool library, object or program, all the files associated
 1.45345 ++with it are deleted. Otherwise, only FILE itself is deleted using RM."
 1.45346 ++        ;;
 1.45347 ++
 1.45348 ++      compile)
 1.45349 ++      $ECHO \
 1.45350 ++"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
 1.45351 ++
 1.45352 ++Compile a source file into a libtool library object.
 1.45353 ++
 1.45354 ++This mode accepts the following additional options:
 1.45355 ++
 1.45356 ++  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
 1.45357 ++  -no-suppress      do not suppress compiler output for multiple passes
 1.45358 ++  -prefer-pic       try to building PIC objects only
 1.45359 ++  -prefer-non-pic   try to building non-PIC objects only
 1.45360 ++  -shared           do not build a \`.o' file suitable for static linking
 1.45361 ++  -static           only build a \`.o' file suitable for static linking
 1.45362 ++
 1.45363 ++COMPILE-COMMAND is a command to be used in creating a \`standard' object file
 1.45364 ++from the given SOURCEFILE.
 1.45365 ++
 1.45366 ++The output file name is determined by removing the directory component from
 1.45367 ++SOURCEFILE, then substituting the C source code suffix \`.c' with the
 1.45368 ++library object suffix, \`.lo'."
 1.45369 ++        ;;
 1.45370 ++
 1.45371 ++      execute)
 1.45372 ++        $ECHO \
 1.45373 ++"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
 1.45374 ++
 1.45375 ++Automatically set library path, then run a program.
 1.45376 ++
 1.45377 ++This mode accepts the following additional options:
 1.45378 ++
 1.45379 ++  -dlopen FILE      add the directory containing FILE to the library path
 1.45380 ++
 1.45381 ++This mode sets the library path environment variable according to \`-dlopen'
 1.45382 ++flags.
 1.45383 ++
 1.45384 ++If any of the ARGS are libtool executable wrappers, then they are translated
 1.45385 ++into their corresponding uninstalled binary, and any of their required library
 1.45386 ++directories are added to the library path.
 1.45387 ++
 1.45388 ++Then, COMMAND is executed, with ARGS as arguments."
 1.45389 ++        ;;
 1.45390 ++
 1.45391 ++      finish)
 1.45392 ++        $ECHO \
 1.45393 ++"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
 1.45394 ++
 1.45395 ++Complete the installation of libtool libraries.
 1.45396 ++
 1.45397 ++Each LIBDIR is a directory that contains libtool libraries.
 1.45398 ++
 1.45399 ++The commands that this mode executes may require superuser privileges.  Use
 1.45400 ++the \`--dry-run' option if you just want to see what would be executed."
 1.45401 ++        ;;
 1.45402 ++
 1.45403 ++      install)
 1.45404 ++        $ECHO \
 1.45405 ++"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
 1.45406 ++
 1.45407 ++Install executables or libraries.
 1.45408 ++
 1.45409 ++INSTALL-COMMAND is the installation command.  The first component should be
 1.45410 ++either the \`install' or \`cp' program.
 1.45411 ++
 1.45412 ++The following components of INSTALL-COMMAND are treated specially:
 1.45413 ++
 1.45414 ++  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
 1.45415 ++
 1.45416 ++The rest of the components are interpreted as arguments to that command (only
 1.45417 ++BSD-compatible install options are recognized)."
 1.45418 ++        ;;
 1.45419 ++
 1.45420 ++      link)
 1.45421 ++        $ECHO \
 1.45422 ++"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
 1.45423 ++
 1.45424 ++Link object files or libraries together to form another library, or to
 1.45425 ++create an executable program.
 1.45426 ++
 1.45427 ++LINK-COMMAND is a command using the C compiler that you would use to create
 1.45428 ++a program from several object files.
 1.45429 ++
 1.45430 ++The following components of LINK-COMMAND are treated specially:
 1.45431 ++
 1.45432 ++  -all-static       do not do any dynamic linking at all
 1.45433 ++  -avoid-version    do not add a version suffix if possible
 1.45434 ++  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
 1.45435 ++  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
 1.45436 ++  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
 1.45437 ++  -export-symbols SYMFILE
 1.45438 ++                    try to export only the symbols listed in SYMFILE
 1.45439 ++  -export-symbols-regex REGEX
 1.45440 ++                    try to export only the symbols matching REGEX
 1.45441 ++  -LLIBDIR          search LIBDIR for required installed libraries
 1.45442 ++  -lNAME            OUTPUT-FILE requires the installed library libNAME
 1.45443 ++  -module           build a library that can dlopened
 1.45444 ++  -no-fast-install  disable the fast-install mode
 1.45445 ++  -no-install       link a not-installable executable
 1.45446 ++  -no-undefined     declare that a library does not refer to external symbols
 1.45447 ++  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
 1.45448 ++  -objectlist FILE  Use a list of object files found in FILE to specify objects
 1.45449 ++  -precious-files-regex REGEX
 1.45450 ++                    don't remove output files matching REGEX
 1.45451 ++  -release RELEASE  specify package release information
 1.45452 ++  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
 1.45453 ++  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
 1.45454 ++  -shared           only do dynamic linking of libtool libraries
 1.45455 ++  -shrext SUFFIX    override the standard shared library file extension
 1.45456 ++  -static           do not do any dynamic linking of uninstalled libtool libraries
 1.45457 ++  -static-libtool-libs
 1.45458 ++                    do not do any dynamic linking of libtool libraries
 1.45459 ++  -version-info CURRENT[:REVISION[:AGE]]
 1.45460 ++                    specify library version info [each variable defaults to 0]
 1.45461 ++  -weak LIBNAME     declare that the target provides the LIBNAME interface
 1.45462 ++
 1.45463 ++All other options (arguments beginning with \`-') are ignored.
 1.45464 ++
 1.45465 ++Every other argument is treated as a filename.  Files ending in \`.la' are
 1.45466 ++treated as uninstalled libtool libraries, other files are standard or library
 1.45467 ++object files.
 1.45468 ++
 1.45469 ++If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
 1.45470 ++only library objects (\`.lo' files) may be specified, and \`-rpath' is
 1.45471 ++required, except when creating a convenience library.
 1.45472 ++
 1.45473 ++If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
 1.45474 ++using \`ar' and \`ranlib', or on Windows using \`lib'.
 1.45475 ++
 1.45476 ++If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
 1.45477 ++is created, otherwise an executable program is created."
 1.45478 ++        ;;
 1.45479 ++
 1.45480 ++      uninstall)
 1.45481 ++        $ECHO \
 1.45482 ++"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
 1.45483 ++
 1.45484 ++Remove libraries from an installation directory.
 1.45485 ++
 1.45486 ++RM is the name of the program to use to delete files associated with each FILE
 1.45487 ++(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
 1.45488 ++to RM.
 1.45489 ++
 1.45490 ++If FILE is a libtool library, all the files associated with it are deleted.
 1.45491 ++Otherwise, only FILE itself is deleted using RM."
 1.45492 ++        ;;
 1.45493 ++
 1.45494 ++      *)
 1.45495 ++        func_fatal_help "invalid operation mode \`$mode'"
 1.45496 ++        ;;
 1.45497 ++    esac
 1.45498 ++
 1.45499 ++    $ECHO
 1.45500 ++    $ECHO "Try \`$progname --help' for more information about other modes."
 1.45501 ++
 1.45502 ++    exit $?
 1.45503 ++}
 1.45504 ++
 1.45505 ++# Generated shell functions inserted here.
 1.45506 ++
 1.45507 ++# func_dirname file append nondir_replacement
 1.45508 ++# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
 1.45509 ++# otherwise set result to NONDIR_REPLACEMENT.
 1.45510 ++func_dirname ()
 1.45511 ++{
 1.45512 ++  case ${1} in
 1.45513 ++    */*) func_dirname_result="${1%/*}${2}" ;;
 1.45514 ++    *  ) func_dirname_result="${3}" ;;
 1.45515 ++  esac
 1.45516 ++}
 1.45517 ++
 1.45518 ++# func_basename file
 1.45519 ++func_basename ()
 1.45520 ++{
 1.45521 ++  func_basename_result="${1##*/}"
 1.45522 ++}
 1.45523 ++
 1.45524 ++# func_dirname_and_basename file append nondir_replacement
 1.45525 ++# perform func_basename and func_dirname in a single function
 1.45526 ++# call:
 1.45527 ++#   dirname:  Compute the dirname of FILE.  If nonempty,
 1.45528 ++#             add APPEND to the result, otherwise set result
 1.45529 ++#             to NONDIR_REPLACEMENT.
 1.45530 ++#             value returned in "$func_dirname_result"
 1.45531 ++#   basename: Compute filename of FILE.
 1.45532 ++#             value retuned in "$func_basename_result"
 1.45533 ++# Implementation must be kept synchronized with func_dirname
 1.45534 ++# and func_basename. For efficiency, we do not delegate to
 1.45535 ++# those functions but instead duplicate the functionality here.
 1.45536 ++func_dirname_and_basename ()
 1.45537 ++{
 1.45538 ++  case ${1} in
 1.45539 ++    */*) func_dirname_result="${1%/*}${2}" ;;
 1.45540 ++    *  ) func_dirname_result="${3}" ;;
 1.45541 ++  esac
 1.45542 ++  func_basename_result="${1##*/}"
 1.45543 ++}
 1.45544 ++
 1.45545 ++# func_stripname prefix suffix name
 1.45546 ++# strip PREFIX and SUFFIX off of NAME.
 1.45547 ++# PREFIX and SUFFIX must not contain globbing or regex special
 1.45548 ++# characters, hashes, percent signs, but SUFFIX may contain a leading
 1.45549 ++# dot (in which case that matches only a dot).
 1.45550 ++func_stripname ()
 1.45551 ++{
 1.45552 ++  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
 1.45553 ++  # positional parameters, so assign one to ordinary parameter first.
 1.45554 ++  func_stripname_result=${3}
 1.45555 ++  func_stripname_result=${func_stripname_result#"${1}"}
 1.45556 ++  func_stripname_result=${func_stripname_result%"${2}"}
 1.45557 ++}
 1.45558 ++
 1.45559 ++# func_opt_split
 1.45560 ++func_opt_split ()
 1.45561 ++{
 1.45562 ++  func_opt_split_opt=${1%%=*}
 1.45563 ++  func_opt_split_arg=${1#*=}
 1.45564 ++}
 1.45565 ++
 1.45566 ++# func_lo2o object
 1.45567 ++func_lo2o ()
 1.45568 ++{
 1.45569 ++  case ${1} in
 1.45570 ++    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
 1.45571 ++    *)    func_lo2o_result=${1} ;;
 1.45572 ++  esac
 1.45573 ++}
 1.45574 ++
 1.45575 ++# func_xform libobj-or-source
 1.45576 ++func_xform ()
 1.45577 ++{
 1.45578 ++  func_xform_result=${1%.*}.lo
 1.45579 ++}
 1.45580 ++
 1.45581 ++# func_arith arithmetic-term...
 1.45582 ++func_arith ()
 1.45583 ++{
 1.45584 ++  func_arith_result=$(( $* ))
 1.45585 ++}
 1.45586 ++
 1.45587 ++# func_len string
 1.45588 ++# STRING may not start with a hyphen.
 1.45589 ++func_len ()
 1.45590 ++{
 1.45591 ++  func_len_result=${#1}
 1.45592 ++}
 1.45593 ++
 1.45594 ++
 1.45595 ++# func_append var value
 1.45596 ++# Append VALUE to the end of shell variable VAR.
 1.45597 ++func_append ()
 1.45598 ++{
 1.45599 ++  eval "$1+=\$2"
 1.45600 ++}
 1.45601 ++# Generated shell functions inserted here.
 1.45602 ++
 1.45603 ++
 1.45604 ++# Parse options once, thoroughly.  This comes as soon as possible in
 1.45605 ++# the script to make things like `libtool --version' happen quickly.
 1.45606 ++{
 1.45607 ++
 1.45608 ++  # Shorthand for --mode=foo, only valid as the first argument
 1.45609 ++  case $1 in
 1.45610 ++  clean|clea|cle|cl)
 1.45611 ++    shift; set dummy --mode clean ${1+"$@"}; shift
 1.45612 ++    ;;
 1.45613 ++  compile|compil|compi|comp|com|co|c)
 1.45614 ++    shift; set dummy --mode compile ${1+"$@"}; shift
 1.45615 ++    ;;
 1.45616 ++  execute|execut|execu|exec|exe|ex|e)
 1.45617 ++    shift; set dummy --mode execute ${1+"$@"}; shift
 1.45618 ++    ;;
 1.45619 ++  finish|finis|fini|fin|fi|f)
 1.45620 ++    shift; set dummy --mode finish ${1+"$@"}; shift
 1.45621 ++    ;;
 1.45622 ++  install|instal|insta|inst|ins|in|i)
 1.45623 ++    shift; set dummy --mode install ${1+"$@"}; shift
 1.45624 ++    ;;
 1.45625 ++  link|lin|li|l)
 1.45626 ++    shift; set dummy --mode link ${1+"$@"}; shift
 1.45627 ++    ;;
 1.45628 ++  uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
 1.45629 ++    shift; set dummy --mode uninstall ${1+"$@"}; shift
 1.45630 ++    ;;
 1.45631 ++  esac
 1.45632 ++
 1.45633 ++  # Parse non-mode specific arguments:
 1.45634 ++  while test "$#" -gt 0; do
 1.45635 ++    opt="$1"
 1.45636 ++    shift
 1.45637 ++
 1.45638 ++    case $opt in
 1.45639 ++      --config)		func_config 					;;
 1.45640 ++
 1.45641 ++      --debug)		preserve_args="$preserve_args $opt"
 1.45642 ++	    		func_echo "enabling shell trace mode"
 1.45643 ++	    		opt_debug='set -x'
 1.45644 ++			$opt_debug
 1.45645 ++			;;
 1.45646 ++
 1.45647 ++      -dlopen)		test "$#" -eq 0 && func_missing_arg "$opt" && break
 1.45648 ++			execute_dlfiles="$execute_dlfiles $1"
 1.45649 ++			shift
 1.45650 ++			;;
 1.45651 ++
 1.45652 ++      --dry-run | -n)	opt_dry_run=:					;;
 1.45653 ++      --features)       func_features					;;
 1.45654 ++      --finish)		mode="finish"					;;
 1.45655 ++
 1.45656 ++      --mode)		test "$#" -eq 0 && func_missing_arg "$opt" && break
 1.45657 ++	    		case $1 in
 1.45658 ++			  # Valid mode arguments:
 1.45659 ++			  clean)	;;
 1.45660 ++			  compile)	;;
 1.45661 ++			  execute)	;;
 1.45662 ++			  finish)	;;
 1.45663 ++			  install)	;;
 1.45664 ++			  link)		;;
 1.45665 ++			  relink)	;;
 1.45666 ++			  uninstall)	;;
 1.45667 ++
 1.45668 ++			  # Catch anything else as an error
 1.45669 ++			  *) func_error "invalid argument for $opt"
 1.45670 ++			     exit_cmd=exit
 1.45671 ++			     break
 1.45672 ++			     ;;
 1.45673 ++		        esac
 1.45674 ++
 1.45675 ++	    		mode="$1"
 1.45676 ++			shift
 1.45677 ++			;;
 1.45678 ++
 1.45679 ++      --preserve-dup-deps)
 1.45680 ++      			opt_duplicate_deps=:				;;
 1.45681 ++
 1.45682 ++      --quiet|--silent)	preserve_args="$preserve_args $opt"
 1.45683 ++	    		opt_silent=:
 1.45684 ++			;;
 1.45685 ++
 1.45686 ++      --verbose| -v)	preserve_args="$preserve_args $opt"
 1.45687 ++	    		opt_silent=false
 1.45688 ++			;;
 1.45689 ++
 1.45690 ++      --tag)		test "$#" -eq 0 && func_missing_arg "$opt" && break
 1.45691 ++			preserve_args="$preserve_args $opt $1"
 1.45692 ++			func_enable_tag "$1"	# tagname is set here
 1.45693 ++			shift
 1.45694 ++			;;
 1.45695 ++
 1.45696 ++      # Separate optargs to long options:
 1.45697 ++      -dlopen=*|--mode=*|--tag=*)
 1.45698 ++			func_opt_split "$opt"
 1.45699 ++			set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
 1.45700 ++			shift
 1.45701 ++			;;
 1.45702 ++
 1.45703 ++      -\?|-h)		func_usage					;;
 1.45704 ++      --help)		opt_help=:					;;
 1.45705 ++      --version)	func_version					;;
 1.45706 ++
 1.45707 ++      -*)		func_fatal_help "unrecognized option \`$opt'"	;;
 1.45708 ++
 1.45709 ++      *)		nonopt="$opt"
 1.45710 ++      			break
 1.45711 ++			;;
 1.45712 ++    esac
 1.45713 ++  done
 1.45714 ++
 1.45715 ++  # Now that we've collected a possible --mode arg, show help if necessary
 1.45716 ++  $opt_help && func_mode_help
 1.45717 ++
 1.45718 ++  case $host in
 1.45719 ++    *cygwin* | *mingw* | *pw32*)
 1.45720 ++      # don't eliminate duplications in $postdeps and $predeps
 1.45721 ++      opt_duplicate_compiler_generated_deps=:
 1.45722 ++      ;;
 1.45723 ++    *)
 1.45724 ++      opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
 1.45725 ++      ;;
 1.45726 ++  esac
 1.45727 ++
 1.45728 ++  # Having warned about all mis-specified options, bail out if
 1.45729 ++  # anything was wrong.
 1.45730 ++  $exit_cmd $EXIT_FAILURE
 1.45731 ++}
 1.45732 ++
 1.45733 ++# func_check_version_match
 1.45734 ++# Ensure that we are using m4 macros, and libtool script from the same
 1.45735 ++# release of libtool.
 1.45736 ++func_check_version_match ()
 1.45737 ++{
 1.45738 ++  if test "$package_revision" != "$macro_revision"; then
 1.45739 ++    if test "$VERSION" != "$macro_version"; then
 1.45740 ++      if test -z "$macro_version"; then
 1.45741 ++        cat >&2 <<_LT_EOF
 1.45742 ++$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
 1.45743 ++$progname: definition of this LT_INIT comes from an older release.
 1.45744 ++$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
 1.45745 ++$progname: and run autoconf again.
 1.45746 ++_LT_EOF
 1.45747 ++      else
 1.45748 ++        cat >&2 <<_LT_EOF
 1.45749 ++$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
 1.45750 ++$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
 1.45751 ++$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
 1.45752 ++$progname: and run autoconf again.
 1.45753 ++_LT_EOF
 1.45754 ++      fi
 1.45755 ++    else
 1.45756 ++      cat >&2 <<_LT_EOF
 1.45757 ++$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
 1.45758 ++$progname: but the definition of this LT_INIT comes from revision $macro_revision.
 1.45759 ++$progname: You should recreate aclocal.m4 with macros from revision $package_revision
 1.45760 ++$progname: of $PACKAGE $VERSION and run autoconf again.
 1.45761 ++_LT_EOF
 1.45762 ++    fi
 1.45763 ++
 1.45764 ++    exit $EXIT_MISMATCH
 1.45765 ++  fi
 1.45766 ++}
 1.45767 ++
 1.45768 ++
 1.45769 ++## ----------- ##
 1.45770 ++##    Main.    ##
 1.45771 ++## ----------- ##
 1.45772 ++
 1.45773 ++{
 1.45774 ++  # Sanity checks first:
 1.45775 ++  func_check_version_match
 1.45776 ++
 1.45777 ++  if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
 1.45778 ++    func_fatal_configuration "not configured to build any kind of library"
 1.45779 ++  fi
 1.45780 ++
 1.45781 ++  test -z "$mode" && func_fatal_error "error: you must specify a MODE."
 1.45782 ++
 1.45783 ++
 1.45784 ++  # Darwin sucks
 1.45785 ++  eval std_shrext=\"$shrext_cmds\"
 1.45786 ++
 1.45787 ++
 1.45788 ++  # Only execute mode is allowed to have -dlopen flags.
 1.45789 ++  if test -n "$execute_dlfiles" && test "$mode" != execute; then
 1.45790 ++    func_error "unrecognized option \`-dlopen'"
 1.45791 ++    $ECHO "$help" 1>&2
 1.45792 ++    exit $EXIT_FAILURE
 1.45793 ++  fi
 1.45794 ++
 1.45795 ++  # Change the help message to a mode-specific one.
 1.45796 ++  generic_help="$help"
 1.45797 ++  help="Try \`$progname --help --mode=$mode' for more information."
 1.45798 ++}
 1.45799 ++
 1.45800 ++
 1.45801 ++# func_lalib_p file
 1.45802 ++# True iff FILE is a libtool `.la' library or `.lo' object file.
 1.45803 ++# This function is only a basic sanity check; it will hardly flush out
 1.45804 ++# determined imposters.
 1.45805 ++func_lalib_p ()
 1.45806 ++{
 1.45807 ++    $SED -e 4q "$1" 2>/dev/null \
 1.45808 ++      | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
 1.45809 ++}
 1.45810 ++
 1.45811 ++# func_lalib_unsafe_p file
 1.45812 ++# True iff FILE is a libtool `.la' library or `.lo' object file.
 1.45813 ++# This function implements the same check as func_lalib_p without
 1.45814 ++# resorting to external programs.  To this end, it redirects stdin and
 1.45815 ++# closes it afterwards, without saving the original file descriptor.
 1.45816 ++# As a safety measure, use it only where a negative result would be
 1.45817 ++# fatal anyway.  Works if `file' does not exist.
 1.45818 ++func_lalib_unsafe_p ()
 1.45819 ++{
 1.45820 ++    lalib_p=no
 1.45821 ++    if test -r "$1" && exec 5<&1 <"$1"; then
 1.45822 ++	for lalib_p_l in 1 2 3 4
 1.45823 ++	do
 1.45824 ++	    read lalib_p_line
 1.45825 ++	    case "$lalib_p_line" in
 1.45826 ++		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
 1.45827 ++	    esac
 1.45828 ++	done
 1.45829 ++	exec 1<&5 5<&-
 1.45830 ++    fi
 1.45831 ++    test "$lalib_p" = yes
 1.45832 ++}
 1.45833 ++
 1.45834 ++# func_ltwrapper_p file
 1.45835 ++# True iff FILE is a libtool wrapper script.
 1.45836 ++# This function is only a basic sanity check; it will hardly flush out
 1.45837 ++# determined imposters.
 1.45838 ++func_ltwrapper_p ()
 1.45839 ++{
 1.45840 ++    func_lalib_p "$1"
 1.45841 ++}
 1.45842 ++
 1.45843 ++
 1.45844 ++# func_execute_cmds commands fail_cmd
 1.45845 ++# Execute tilde-delimited COMMANDS.
 1.45846 ++# If FAIL_CMD is given, eval that upon failure.
 1.45847 ++# FAIL_CMD may read-access the current command in variable CMD!
 1.45848 ++func_execute_cmds ()
 1.45849 ++{
 1.45850 ++    $opt_debug
 1.45851 ++    save_ifs=$IFS; IFS='~'
 1.45852 ++    for cmd in $1; do
 1.45853 ++      IFS=$save_ifs
 1.45854 ++      eval cmd=\"$cmd\"
 1.45855 ++      func_show_eval "$cmd" "${2-:}"
 1.45856 ++    done
 1.45857 ++    IFS=$save_ifs
 1.45858 ++}
 1.45859 ++
 1.45860 ++
 1.45861 ++# func_source file
 1.45862 ++# Source FILE, adding directory component if necessary.
 1.45863 ++# Note that it is not necessary on cygwin/mingw to append a dot to
 1.45864 ++# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
 1.45865 ++# behavior happens only for exec(3), not for open(2)!  Also, sourcing
 1.45866 ++# `FILE.' does not work on cygwin managed mounts.
 1.45867 ++func_source ()
 1.45868 ++{
 1.45869 ++    $opt_debug
 1.45870 ++    case $1 in
 1.45871 ++    */* | *\\*)	. "$1" ;;
 1.45872 ++    *)		. "./$1" ;;
 1.45873 ++    esac
 1.45874 ++}
 1.45875 ++
 1.45876 ++
 1.45877 ++# func_win32_libid arg
 1.45878 ++# return the library type of file 'arg'
 1.45879 ++#
 1.45880 ++# Need a lot of goo to handle *both* DLLs and import libs
 1.45881 ++# Has to be a shell function in order to 'eat' the argument
 1.45882 ++# that is supplied when $file_magic_command is called.
 1.45883 ++func_win32_libid ()
 1.45884 ++{
 1.45885 ++  $opt_debug
 1.45886 ++  win32_libid_type="unknown"
 1.45887 ++  win32_fileres=`file -L $1 2>/dev/null`
 1.45888 ++  case $win32_fileres in
 1.45889 ++  *ar\ archive\ import\ library*) # definitely import
 1.45890 ++    win32_libid_type="x86 archive import"
 1.45891 ++    ;;
 1.45892 ++  *ar\ archive*) # could be an import, or static
 1.45893 ++    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
 1.45894 ++       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
 1.45895 ++      win32_nmres=`eval $NM -f posix -A $1 |
 1.45896 ++	$SED -n -e '
 1.45897 ++	    1,100{
 1.45898 ++		/ I /{
 1.45899 ++		    s,.*,import,
 1.45900 ++		    p
 1.45901 ++		    q
 1.45902 ++		}
 1.45903 ++	    }'`
 1.45904 ++      case $win32_nmres in
 1.45905 ++      import*)  win32_libid_type="x86 archive import";;
 1.45906 ++      *)        win32_libid_type="x86 archive static";;
 1.45907 ++      esac
 1.45908 ++    fi
 1.45909 ++    ;;
 1.45910 ++  *DLL*)
 1.45911 ++    win32_libid_type="x86 DLL"
 1.45912 ++    ;;
 1.45913 ++  *executable*) # but shell scripts are "executable" too...
 1.45914 ++    case $win32_fileres in
 1.45915 ++    *MS\ Windows\ PE\ Intel*)
 1.45916 ++      win32_libid_type="x86 DLL"
 1.45917 ++      ;;
 1.45918 ++    esac
 1.45919 ++    ;;
 1.45920 ++  esac
 1.45921 ++  $ECHO "$win32_libid_type"
 1.45922 ++}
 1.45923 ++
 1.45924 ++
 1.45925 ++
 1.45926 ++# func_infer_tag arg
 1.45927 ++# Infer tagged configuration to use if any are available and
 1.45928 ++# if one wasn't chosen via the "--tag" command line option.
 1.45929 ++# Only attempt this if the compiler in the base compile
 1.45930 ++# command doesn't match the default compiler.
 1.45931 ++# arg is usually of the form 'gcc ...'
 1.45932 ++func_infer_tag ()
 1.45933 ++{
 1.45934 ++    $opt_debug
 1.45935 ++    if test -n "$available_tags" && test -z "$tagname"; then
 1.45936 ++      CC_quoted=
 1.45937 ++      for arg in $CC; do
 1.45938 ++        func_quote_for_eval "$arg"
 1.45939 ++	CC_quoted="$CC_quoted $func_quote_for_eval_result"
 1.45940 ++      done
 1.45941 ++      case $@ in
 1.45942 ++      # Blanks in the command may have been stripped by the calling shell,
 1.45943 ++      # but not from the CC environment variable when configure was run.
 1.45944 ++      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
 1.45945 ++      # Blanks at the start of $base_compile will cause this to fail
 1.45946 ++      # if we don't check for them as well.
 1.45947 ++      *)
 1.45948 ++	for z in $available_tags; do
 1.45949 ++	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
 1.45950 ++	    # Evaluate the configuration.
 1.45951 ++	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
 1.45952 ++	    CC_quoted=
 1.45953 ++	    for arg in $CC; do
 1.45954 ++	      # Double-quote args containing other shell metacharacters.
 1.45955 ++	      func_quote_for_eval "$arg"
 1.45956 ++	      CC_quoted="$CC_quoted $func_quote_for_eval_result"
 1.45957 ++	    done
 1.45958 ++	    case "$@ " in
 1.45959 ++	      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
 1.45960 ++	      # The compiler in the base compile command matches
 1.45961 ++	      # the one in the tagged configuration.
 1.45962 ++	      # Assume this is the tagged configuration we want.
 1.45963 ++	      tagname=$z
 1.45964 ++	      break
 1.45965 ++	      ;;
 1.45966 ++	    esac
 1.45967 ++	  fi
 1.45968 ++	done
 1.45969 ++	# If $tagname still isn't set, then no tagged configuration
 1.45970 ++	# was found and let the user know that the "--tag" command
 1.45971 ++	# line option must be used.
 1.45972 ++	if test -z "$tagname"; then
 1.45973 ++	  func_echo "unable to infer tagged configuration"
 1.45974 ++	  func_fatal_error "specify a tag with \`--tag'"
 1.45975 ++#	else
 1.45976 ++#	  func_verbose "using $tagname tagged configuration"
 1.45977 ++	fi
 1.45978 ++	;;
 1.45979 ++      esac
 1.45980 ++    fi
 1.45981 ++}
 1.45982 ++
 1.45983 ++
 1.45984 ++
 1.45985 ++# func_generate_dlsyms outputname originator pic_p
 1.45986 ++# Extract symbols from dlprefiles and create ${outputname}S.o with
 1.45987 ++# a dlpreopen symbol table.
 1.45988 ++func_generate_dlsyms ()
 1.45989 ++{
 1.45990 ++    $opt_debug
 1.45991 ++    my_outputname="$1"
 1.45992 ++    my_originator="$2"
 1.45993 ++    my_pic_p="${3-no}"
 1.45994 ++    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
 1.45995 ++    my_dlsyms=
 1.45996 ++
 1.45997 ++    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 1.45998 ++      if test -n "$NM" && test -n "$global_symbol_pipe"; then
 1.45999 ++	my_dlsyms="${my_outputname}S.c"
 1.46000 ++      else
 1.46001 ++	func_error "not configured to extract global symbols from dlpreopened files"
 1.46002 ++      fi
 1.46003 ++    fi
 1.46004 ++
 1.46005 ++    if test -n "$my_dlsyms"; then
 1.46006 ++      case $my_dlsyms in
 1.46007 ++      "") ;;
 1.46008 ++      *.c)
 1.46009 ++	# Discover the nlist of each of the dlfiles.
 1.46010 ++	nlist="$output_objdir/${my_outputname}.nm"
 1.46011 ++
 1.46012 ++	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
 1.46013 ++
 1.46014 ++	# Parse the name list into a source file.
 1.46015 ++	func_echo "creating $output_objdir/$my_dlsyms"
 1.46016 ++
 1.46017 ++	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
 1.46018 ++/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
 1.46019 ++/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
 1.46020 ++
 1.46021 ++#ifdef __cplusplus
 1.46022 ++extern \"C\" {
 1.46023 ++#endif
 1.46024 ++
 1.46025 ++/* External symbol declarations for the compiler. */\
 1.46026 ++"
 1.46027 ++
 1.46028 ++	if test "$dlself" = yes; then
 1.46029 ++	  func_echo "generating symbol list for \`$output'"
 1.46030 ++
 1.46031 ++	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
 1.46032 ++
 1.46033 ++	  # Add our own program objects to the symbol list.
 1.46034 ++	  progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 1.46035 ++	  for progfile in $progfiles; do
 1.46036 ++	    func_echo "extracting global C symbols from \`$progfile'"
 1.46037 ++	    $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
 1.46038 ++	  done
 1.46039 ++
 1.46040 ++	  if test -n "$exclude_expsyms"; then
 1.46041 ++	    $opt_dry_run || {
 1.46042 ++	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
 1.46043 ++	      eval '$MV "$nlist"T "$nlist"'
 1.46044 ++	    }
 1.46045 ++	  fi
 1.46046 ++
 1.46047 ++	  if test -n "$export_symbols_regex"; then
 1.46048 ++	    $opt_dry_run || {
 1.46049 ++	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
 1.46050 ++	      eval '$MV "$nlist"T "$nlist"'
 1.46051 ++	    }
 1.46052 ++	  fi
 1.46053 ++
 1.46054 ++	  # Prepare the list of exported symbols
 1.46055 ++	  if test -z "$export_symbols"; then
 1.46056 ++	    export_symbols="$output_objdir/$outputname.exp"
 1.46057 ++	    $opt_dry_run || {
 1.46058 ++	      $RM $export_symbols
 1.46059 ++	      eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
 1.46060 ++	      case $host in
 1.46061 ++	      *cygwin* | *mingw* )
 1.46062 ++                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
 1.46063 ++                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
 1.46064 ++	        ;;
 1.46065 ++	      esac
 1.46066 ++	    }
 1.46067 ++	  else
 1.46068 ++	    $opt_dry_run || {
 1.46069 ++	      eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
 1.46070 ++	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
 1.46071 ++	      eval '$MV "$nlist"T "$nlist"'
 1.46072 ++	      case $host in
 1.46073 ++	        *cygwin | *mingw* )
 1.46074 ++	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
 1.46075 ++	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
 1.46076 ++	          ;;
 1.46077 ++	      esac
 1.46078 ++	    }
 1.46079 ++	  fi
 1.46080 ++	fi
 1.46081 ++
 1.46082 ++	for dlprefile in $dlprefiles; do
 1.46083 ++	  func_echo "extracting global C symbols from \`$dlprefile'"
 1.46084 ++	  func_basename "$dlprefile"
 1.46085 ++	  name="$func_basename_result"
 1.46086 ++	  $opt_dry_run || {
 1.46087 ++	    eval '$ECHO ": $name " >> "$nlist"'
 1.46088 ++	    eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
 1.46089 ++	  }
 1.46090 ++	done
 1.46091 ++
 1.46092 ++	$opt_dry_run || {
 1.46093 ++	  # Make sure we have at least an empty file.
 1.46094 ++	  test -f "$nlist" || : > "$nlist"
 1.46095 ++
 1.46096 ++	  if test -n "$exclude_expsyms"; then
 1.46097 ++	    $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
 1.46098 ++	    $MV "$nlist"T "$nlist"
 1.46099 ++	  fi
 1.46100 ++
 1.46101 ++	  # Try sorting and uniquifying the output.
 1.46102 ++	  if $GREP -v "^: " < "$nlist" |
 1.46103 ++	      if sort -k 3 </dev/null >/dev/null 2>&1; then
 1.46104 ++		sort -k 3
 1.46105 ++	      else
 1.46106 ++		sort +2
 1.46107 ++	      fi |
 1.46108 ++	      uniq > "$nlist"S; then
 1.46109 ++	    :
 1.46110 ++	  else
 1.46111 ++	    $GREP -v "^: " < "$nlist" > "$nlist"S
 1.46112 ++	  fi
 1.46113 ++
 1.46114 ++	  if test -f "$nlist"S; then
 1.46115 ++	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
 1.46116 ++	  else
 1.46117 ++	    $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
 1.46118 ++	  fi
 1.46119 ++
 1.46120 ++	  $ECHO >> "$output_objdir/$my_dlsyms" "\
 1.46121 ++
 1.46122 ++/* The mapping between symbol names and symbols.  */
 1.46123 ++typedef struct {
 1.46124 ++  const char *name;
 1.46125 ++  void *address;
 1.46126 ++} lt_dlsymlist;
 1.46127 ++"
 1.46128 ++	  case $host in
 1.46129 ++	  *cygwin* | *mingw* )
 1.46130 ++	    $ECHO >> "$output_objdir/$my_dlsyms" "\
 1.46131 ++/* DATA imports from DLLs on WIN32 con't be const, because
 1.46132 ++   runtime relocations are performed -- see ld's documentation
 1.46133 ++   on pseudo-relocs.  */"
 1.46134 ++	    lt_dlsym_const= ;;
 1.46135 ++	  *osf5*)
 1.46136 ++	    echo >> "$output_objdir/$my_dlsyms" "\
 1.46137 ++/* This system does not cope well with relocations in const data */"
 1.46138 ++	    lt_dlsym_const= ;;
 1.46139 ++	  *)
 1.46140 ++	    lt_dlsym_const=const ;;
 1.46141 ++	  esac
 1.46142 ++
 1.46143 ++	  $ECHO >> "$output_objdir/$my_dlsyms" "\
 1.46144 ++extern $lt_dlsym_const lt_dlsymlist
 1.46145 ++lt_${my_prefix}_LTX_preloaded_symbols[];
 1.46146 ++$lt_dlsym_const lt_dlsymlist
 1.46147 ++lt_${my_prefix}_LTX_preloaded_symbols[] =
 1.46148 ++{\
 1.46149 ++  { \"$my_originator\", (void *) 0 },"
 1.46150 ++
 1.46151 ++	  eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
 1.46152 ++
 1.46153 ++	  $ECHO >> "$output_objdir/$my_dlsyms" "\
 1.46154 ++  {0, (void *) 0}
 1.46155 ++};
 1.46156 ++
 1.46157 ++/* This works around a problem in FreeBSD linker */
 1.46158 ++#ifdef FREEBSD_WORKAROUND
 1.46159 ++static const void *lt_preloaded_setup() {
 1.46160 ++  return lt_${my_prefix}_LTX_preloaded_symbols;
 1.46161 ++}
 1.46162 ++#endif
 1.46163 ++
 1.46164 ++#ifdef __cplusplus
 1.46165 ++}
 1.46166 ++#endif\
 1.46167 ++"
 1.46168 ++	} # !$opt_dry_run
 1.46169 ++
 1.46170 ++  	pic_flag_for_symtable=
 1.46171 ++	case "$compile_command " in
 1.46172 ++	*" -static "*) ;;
 1.46173 ++	*)
 1.46174 ++	  case $host in
 1.46175 ++	  # compiling the symbol table file with pic_flag works around
 1.46176 ++	  # a FreeBSD bug that causes programs to crash when -lm is
 1.46177 ++	  # linked before any other PIC object.  But we must not use
 1.46178 ++	  # pic_flag when linking with -static.  The problem exists in
 1.46179 ++	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
 1.46180 ++	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
 1.46181 ++	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
 1.46182 ++	  *-*-hpux*)
 1.46183 ++	    pic_flag_for_symtable=" $pic_flag"  ;;
 1.46184 ++	  *)
 1.46185 ++	    if test "X$my_pic_p" != Xno; then
 1.46186 ++	      pic_flag_for_symtable=" $pic_flag"
 1.46187 ++	    fi
 1.46188 ++	    ;;
 1.46189 ++	  esac
 1.46190 ++	  ;;
 1.46191 ++	esac
 1.46192 ++	symtab_cflags=
 1.46193 ++	for arg in $LTCFLAGS; do
 1.46194 ++	  case $arg in
 1.46195 ++	  -pie | -fpie | -fPIE) ;;
 1.46196 ++	  *) symtab_cflags="$symtab_cflags $arg" ;;
 1.46197 ++	  esac
 1.46198 ++	done
 1.46199 ++
 1.46200 ++	# Now compile the dynamic symbol file.
 1.46201 ++	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
 1.46202 ++
 1.46203 ++	# Clean up the generated files.
 1.46204 ++	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
 1.46205 ++
 1.46206 ++	# Transform the symbol file into the correct name.
 1.46207 ++	symfileobj="$output_objdir/${my_outputname}S.$objext"
 1.46208 ++	case $host in
 1.46209 ++	*cygwin* | *mingw* )
 1.46210 ++	  if test -f "$output_objdir/$my_outputname.def"; then
 1.46211 ++	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
 1.46212 ++	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
 1.46213 ++	  else
 1.46214 ++	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
 1.46215 ++	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
 1.46216 ++	  fi
 1.46217 ++	  ;;
 1.46218 ++	*)
 1.46219 ++	  compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
 1.46220 ++	  finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
 1.46221 ++	  ;;
 1.46222 ++	esac
 1.46223 ++	;;
 1.46224 ++      *)
 1.46225 ++	func_fatal_error "unknown suffix for \`$my_dlsyms'"
 1.46226 ++	;;
 1.46227 ++      esac
 1.46228 ++    else
 1.46229 ++      # We keep going just in case the user didn't refer to
 1.46230 ++      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
 1.46231 ++      # really was required.
 1.46232 ++
 1.46233 ++      # Nullify the symbol file.
 1.46234 ++      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
 1.46235 ++      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
 1.46236 ++    fi
 1.46237 ++}
 1.46238 ++
 1.46239 ++# func_extract_an_archive dir oldlib
 1.46240 ++func_extract_an_archive ()
 1.46241 ++{
 1.46242 ++    $opt_debug
 1.46243 ++    f_ex_an_ar_dir="$1"; shift
 1.46244 ++    f_ex_an_ar_oldlib="$1"
 1.46245 ++    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" 'exit $?'
 1.46246 ++    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
 1.46247 ++     :
 1.46248 ++    else
 1.46249 ++      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
 1.46250 ++    fi
 1.46251 ++}
 1.46252 ++
 1.46253 ++
 1.46254 ++# func_extract_archives gentop oldlib ...
 1.46255 ++func_extract_archives ()
 1.46256 ++{
 1.46257 ++    $opt_debug
 1.46258 ++    my_gentop="$1"; shift
 1.46259 ++    my_oldlibs=${1+"$@"}
 1.46260 ++    my_oldobjs=""
 1.46261 ++    my_xlib=""
 1.46262 ++    my_xabs=""
 1.46263 ++    my_xdir=""
 1.46264 ++
 1.46265 ++    for my_xlib in $my_oldlibs; do
 1.46266 ++      # Extract the objects.
 1.46267 ++      case $my_xlib in
 1.46268 ++	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
 1.46269 ++	*) my_xabs=`pwd`"/$my_xlib" ;;
 1.46270 ++      esac
 1.46271 ++      func_basename "$my_xlib"
 1.46272 ++      my_xlib="$func_basename_result"
 1.46273 ++      my_xlib_u=$my_xlib
 1.46274 ++      while :; do
 1.46275 ++        case " $extracted_archives " in
 1.46276 ++	*" $my_xlib_u "*)
 1.46277 ++	  extracted_serial=`expr $extracted_serial + 1`
 1.46278 ++	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
 1.46279 ++	*) break ;;
 1.46280 ++	esac
 1.46281 ++      done
 1.46282 ++      extracted_archives="$extracted_archives $my_xlib_u"
 1.46283 ++      my_xdir="$my_gentop/$my_xlib_u"
 1.46284 ++
 1.46285 ++      func_mkdir_p "$my_xdir"
 1.46286 ++
 1.46287 ++      case $host in
 1.46288 ++      *-darwin*)
 1.46289 ++	func_echo "Extracting $my_xabs"
 1.46290 ++	# Do not bother doing anything if just a dry run
 1.46291 ++	$opt_dry_run || {
 1.46292 ++	  darwin_orig_dir=`pwd`
 1.46293 ++	  cd $my_xdir || exit $?
 1.46294 ++	  darwin_archive=$my_xabs
 1.46295 ++	  darwin_curdir=`pwd`
 1.46296 ++	  darwin_base_archive=`basename $darwin_archive`
 1.46297 ++	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
 1.46298 ++	  if test -n "$darwin_arches"; then
 1.46299 ++	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
 1.46300 ++	    darwin_arch=
 1.46301 ++	    func_echo "$darwin_base_archive has multiple architectures $darwin_arches"
 1.46302 ++	    for darwin_arch in  $darwin_arches ; do
 1.46303 ++	      func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
 1.46304 ++	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
 1.46305 ++	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
 1.46306 ++	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
 1.46307 ++	      cd "$darwin_curdir"
 1.46308 ++	      $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
 1.46309 ++	    done # $darwin_arches
 1.46310 ++            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
 1.46311 ++	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
 1.46312 ++	    darwin_file=
 1.46313 ++	    darwin_files=
 1.46314 ++	    for darwin_file in $darwin_filelist; do
 1.46315 ++	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
 1.46316 ++	      lipo -create -output "$darwin_file" $darwin_files
 1.46317 ++	    done # $darwin_filelist
 1.46318 ++	    $RM -rf unfat-$$
 1.46319 ++	    cd "$darwin_orig_dir"
 1.46320 ++	  else
 1.46321 ++	    cd $darwin_orig_dir
 1.46322 ++	    func_extract_an_archive "$my_xdir" "$my_xabs"
 1.46323 ++	  fi # $darwin_arches
 1.46324 ++	} # !$opt_dry_run
 1.46325 ++	;;
 1.46326 ++      *)
 1.46327 ++        func_extract_an_archive "$my_xdir" "$my_xabs"
 1.46328 ++	;;
 1.46329 ++      esac
 1.46330 ++      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
 1.46331 ++    done
 1.46332 ++
 1.46333 ++    func_extract_archives_result="$my_oldobjs"
 1.46334 ++}
 1.46335 ++
 1.46336 ++
 1.46337 ++
 1.46338 ++# func_write_libtool_object output_name pic_name nonpic_name
 1.46339 ++# Create a libtool object file (analogous to a ".la" file),
 1.46340 ++# but don't create it if we're doing a dry run.
 1.46341 ++func_write_libtool_object ()
 1.46342 ++{
 1.46343 ++    write_libobj=${1}
 1.46344 ++    if test "$build_libtool_libs" = yes; then
 1.46345 ++      write_lobj=\'${2}\'
 1.46346 ++    else
 1.46347 ++      write_lobj=none
 1.46348 ++    fi
 1.46349 ++
 1.46350 ++    if test "$build_old_libs" = yes; then
 1.46351 ++      write_oldobj=\'${3}\'
 1.46352 ++    else
 1.46353 ++      write_oldobj=none
 1.46354 ++    fi
 1.46355 ++
 1.46356 ++    $opt_dry_run || {
 1.46357 ++      cat >${write_libobj}T <<EOF
 1.46358 ++# $write_libobj - a libtool object file
 1.46359 ++# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 1.46360 ++#
 1.46361 ++# Please DO NOT delete this file!
 1.46362 ++# It is necessary for linking the library.
 1.46363 ++
 1.46364 ++# Name of the PIC object.
 1.46365 ++pic_object=$write_lobj
 1.46366 ++
 1.46367 ++# Name of the non-PIC object
 1.46368 ++non_pic_object=$write_oldobj
 1.46369 ++
 1.46370 ++EOF
 1.46371 ++      mv -f "${write_libobj}T" "${write_libobj}"
 1.46372 ++    }
 1.46373 ++}
 1.46374 ++
 1.46375 ++# func_mode_compile arg...
 1.46376 ++func_mode_compile ()
 1.46377 ++{
 1.46378 ++    $opt_debug
 1.46379 ++    # Get the compilation command and the source file.
 1.46380 ++    base_compile=
 1.46381 ++    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
 1.46382 ++    suppress_opt=yes
 1.46383 ++    suppress_output=
 1.46384 ++    arg_mode=normal
 1.46385 ++    libobj=
 1.46386 ++    later=
 1.46387 ++    pie_flag=
 1.46388 ++
 1.46389 ++    for arg
 1.46390 ++    do
 1.46391 ++      case $arg_mode in
 1.46392 ++      arg  )
 1.46393 ++	# do not "continue".  Instead, add this to base_compile
 1.46394 ++	lastarg="$arg"
 1.46395 ++	arg_mode=normal
 1.46396 ++	;;
 1.46397 ++
 1.46398 ++      target )
 1.46399 ++	libobj="$arg"
 1.46400 ++	arg_mode=normal
 1.46401 ++	continue
 1.46402 ++	;;
 1.46403 ++
 1.46404 ++      normal )
 1.46405 ++	# Accept any command-line options.
 1.46406 ++	case $arg in
 1.46407 ++	-o)
 1.46408 ++	  test -n "$libobj" && \
 1.46409 ++	    func_fatal_error "you cannot specify \`-o' more than once"
 1.46410 ++	  arg_mode=target
 1.46411 ++	  continue
 1.46412 ++	  ;;
 1.46413 ++
 1.46414 ++	-pie | -fpie | -fPIE)
 1.46415 ++          pie_flag="$pie_flag $arg"
 1.46416 ++	  continue
 1.46417 ++	  ;;
 1.46418 ++
 1.46419 ++	-shared | -static | -prefer-pic | -prefer-non-pic)
 1.46420 ++	  later="$later $arg"
 1.46421 ++	  continue
 1.46422 ++	  ;;
 1.46423 ++
 1.46424 ++	-no-suppress)
 1.46425 ++	  suppress_opt=no
 1.46426 ++	  continue
 1.46427 ++	  ;;
 1.46428 ++
 1.46429 ++	-Xcompiler)
 1.46430 ++	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
 1.46431 ++	  continue      #  The current "srcfile" will either be retained or
 1.46432 ++	  ;;            #  replaced later.  I would guess that would be a bug.
 1.46433 ++
 1.46434 ++	-Wc,*)
 1.46435 ++	  func_stripname '-Wc,' '' "$arg"
 1.46436 ++	  args=$func_stripname_result
 1.46437 ++	  lastarg=
 1.46438 ++	  save_ifs="$IFS"; IFS=','
 1.46439 ++	  for arg in $args; do
 1.46440 ++	    IFS="$save_ifs"
 1.46441 ++	    func_quote_for_eval "$arg"
 1.46442 ++	    lastarg="$lastarg $func_quote_for_eval_result"
 1.46443 ++	  done
 1.46444 ++	  IFS="$save_ifs"
 1.46445 ++	  func_stripname ' ' '' "$lastarg"
 1.46446 ++	  lastarg=$func_stripname_result
 1.46447 ++
 1.46448 ++	  # Add the arguments to base_compile.
 1.46449 ++	  base_compile="$base_compile $lastarg"
 1.46450 ++	  continue
 1.46451 ++	  ;;
 1.46452 ++
 1.46453 ++	*)
 1.46454 ++	  # Accept the current argument as the source file.
 1.46455 ++	  # The previous "srcfile" becomes the current argument.
 1.46456 ++	  #
 1.46457 ++	  lastarg="$srcfile"
 1.46458 ++	  srcfile="$arg"
 1.46459 ++	  ;;
 1.46460 ++	esac  #  case $arg
 1.46461 ++	;;
 1.46462 ++      esac    #  case $arg_mode
 1.46463 ++
 1.46464 ++      # Aesthetically quote the previous argument.
 1.46465 ++      func_quote_for_eval "$lastarg"
 1.46466 ++      base_compile="$base_compile $func_quote_for_eval_result"
 1.46467 ++    done # for arg
 1.46468 ++
 1.46469 ++    case $arg_mode in
 1.46470 ++    arg)
 1.46471 ++      func_fatal_error "you must specify an argument for -Xcompile"
 1.46472 ++      ;;
 1.46473 ++    target)
 1.46474 ++      func_fatal_error "you must specify a target with \`-o'"
 1.46475 ++      ;;
 1.46476 ++    *)
 1.46477 ++      # Get the name of the library object.
 1.46478 ++      test -z "$libobj" && {
 1.46479 ++	func_basename "$srcfile"
 1.46480 ++	libobj="$func_basename_result"
 1.46481 ++      }
 1.46482 ++      ;;
 1.46483 ++    esac
 1.46484 ++
 1.46485 ++    # Recognize several different file suffixes.
 1.46486 ++    # If the user specifies -o file.o, it is replaced with file.lo
 1.46487 ++    xform='[cCFSifmso]'
 1.46488 ++    case $libobj in
 1.46489 ++    *.ada) xform=ada ;;
 1.46490 ++    *.adb) xform=adb ;;
 1.46491 ++    *.ads) xform=ads ;;
 1.46492 ++    *.asm) xform=asm ;;
 1.46493 ++    *.c++) xform=c++ ;;
 1.46494 ++    *.cc) xform=cc ;;
 1.46495 ++    *.ii) xform=ii ;;
 1.46496 ++    *.class) xform=class ;;
 1.46497 ++    *.cpp) xform=cpp ;;
 1.46498 ++    *.cxx) xform=cxx ;;
 1.46499 ++    *.[fF][09]?) xform='[fF][09].' ;;
 1.46500 ++    *.for) xform=for ;;
 1.46501 ++    *.java) xform=java ;;
 1.46502 ++    *.obj) xform=obj ;;
 1.46503 ++    esac
 1.46504 ++
 1.46505 ++    libobj=`$ECHO "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
 1.46506 ++
 1.46507 ++    case $libobj in
 1.46508 ++    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
 1.46509 ++    *)
 1.46510 ++      func_fatal_error "cannot determine name of library object from \`$libobj'"
 1.46511 ++      ;;
 1.46512 ++    esac
 1.46513 ++
 1.46514 ++    func_infer_tag $base_compile
 1.46515 ++
 1.46516 ++    for arg in $later; do
 1.46517 ++      case $arg in
 1.46518 ++      -shared)
 1.46519 ++	test "$build_libtool_libs" != yes && \
 1.46520 ++	  func_fatal_configuration "can not build a shared library"
 1.46521 ++	build_old_libs=no
 1.46522 ++	continue
 1.46523 ++	;;
 1.46524 ++
 1.46525 ++      -static)
 1.46526 ++	build_libtool_libs=no
 1.46527 ++	build_old_libs=yes
 1.46528 ++	continue
 1.46529 ++	;;
 1.46530 ++
 1.46531 ++      -prefer-pic)
 1.46532 ++	pic_mode=yes
 1.46533 ++	continue
 1.46534 ++	;;
 1.46535 ++
 1.46536 ++      -prefer-non-pic)
 1.46537 ++	pic_mode=no
 1.46538 ++	continue
 1.46539 ++	;;
 1.46540 ++      esac
 1.46541 ++    done
 1.46542 ++
 1.46543 ++    func_quote_for_eval "$libobj"
 1.46544 ++    test "X$libobj" != "X$func_quote_for_eval_result" \
 1.46545 ++      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
 1.46546 ++      && func_warning "libobj name \`$libobj' may not contain shell special characters."
 1.46547 ++    func_basename "$obj"
 1.46548 ++    objname="$func_basename_result"
 1.46549 ++    func_dirname "$obj" "/" ""
 1.46550 ++    xdir="$func_dirname_result"
 1.46551 ++    lobj=${xdir}$objdir/$objname
 1.46552 ++
 1.46553 ++    test -z "$base_compile" && \
 1.46554 ++      func_fatal_help "you must specify a compilation command"
 1.46555 ++
 1.46556 ++    # Delete any leftover library objects.
 1.46557 ++    if test "$build_old_libs" = yes; then
 1.46558 ++      removelist="$obj $lobj $libobj ${libobj}T"
 1.46559 ++    else
 1.46560 ++      removelist="$lobj $libobj ${libobj}T"
 1.46561 ++    fi
 1.46562 ++
 1.46563 ++    $opt_dry_run || $RM $removelist
 1.46564 ++    trap "$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE" 1 2 15
 1.46565 ++
 1.46566 ++    # On Cygwin there's no "real" PIC flag so we must build both object types
 1.46567 ++    case $host_os in
 1.46568 ++    cygwin* | mingw* | pw32* | os2*)
 1.46569 ++      pic_mode=default
 1.46570 ++      ;;
 1.46571 ++    esac
 1.46572 ++    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
 1.46573 ++      # non-PIC code in shared libraries is not supported
 1.46574 ++      pic_mode=default
 1.46575 ++    fi
 1.46576 ++
 1.46577 ++    # Calculate the filename of the output object if compiler does
 1.46578 ++    # not support -o with -c
 1.46579 ++    if test "$compiler_c_o" = no; then
 1.46580 ++      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
 1.46581 ++      lockfile="$output_obj.lock"
 1.46582 ++      removelist="$removelist $output_obj $lockfile"
 1.46583 ++      trap "$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE" 1 2 15
 1.46584 ++    else
 1.46585 ++      output_obj=
 1.46586 ++      need_locks=no
 1.46587 ++      lockfile=
 1.46588 ++    fi
 1.46589 ++
 1.46590 ++    # Lock this critical section if it is needed
 1.46591 ++    # We use this script file to make the link, it avoids creating a new file
 1.46592 ++    if test "$need_locks" = yes; then
 1.46593 ++      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
 1.46594 ++	func_echo "Waiting for $lockfile to be removed"
 1.46595 ++	sleep 2
 1.46596 ++      done
 1.46597 ++    elif test "$need_locks" = warn; then
 1.46598 ++      if test -f "$lockfile"; then
 1.46599 ++	$ECHO "\
 1.46600 ++*** ERROR, $lockfile exists and contains:
 1.46601 ++`cat $lockfile 2>/dev/null`
 1.46602 ++
 1.46603 ++This indicates that another process is trying to use the same
 1.46604 ++temporary object file, and libtool could not work around it because
 1.46605 ++your compiler does not support \`-c' and \`-o' together.  If you
 1.46606 ++repeat this compilation, it may succeed, by chance, but you had better
 1.46607 ++avoid parallel builds (make -j) in this platform, or get a better
 1.46608 ++compiler."
 1.46609 ++
 1.46610 ++	$opt_dry_run || $RM $removelist
 1.46611 ++	exit $EXIT_FAILURE
 1.46612 ++      fi
 1.46613 ++      $ECHO "$srcfile" > "$lockfile"
 1.46614 ++    fi
 1.46615 ++
 1.46616 ++    if test -n "$fix_srcfile_path"; then
 1.46617 ++      eval srcfile=\"$fix_srcfile_path\"
 1.46618 ++    fi
 1.46619 ++    func_quote_for_eval "$srcfile"
 1.46620 ++    qsrcfile=$func_quote_for_eval_result
 1.46621 ++
 1.46622 ++    $opt_dry_run || $RM "$libobj" "${libobj}T"
 1.46623 ++
 1.46624 ++    # Only build a PIC object if we are building libtool libraries.
 1.46625 ++    if test "$build_libtool_libs" = yes; then
 1.46626 ++      # Without this assignment, base_compile gets emptied.
 1.46627 ++      fbsd_hideous_sh_bug=$base_compile
 1.46628 ++
 1.46629 ++      if test "$pic_mode" != no; then
 1.46630 ++	command="$base_compile $qsrcfile $pic_flag"
 1.46631 ++      else
 1.46632 ++	# Don't build PIC code
 1.46633 ++	command="$base_compile $qsrcfile"
 1.46634 ++      fi
 1.46635 ++
 1.46636 ++      func_mkdir_p "$xdir$objdir"
 1.46637 ++
 1.46638 ++      if test -z "$output_obj"; then
 1.46639 ++	# Place PIC objects in $objdir
 1.46640 ++	command="$command -o $lobj"
 1.46641 ++      fi
 1.46642 ++
 1.46643 ++      $opt_dry_run || $RM "$lobj" "$output_obj"
 1.46644 ++
 1.46645 ++      func_show_eval "$command"	\
 1.46646 ++          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
 1.46647 ++
 1.46648 ++      if test "$need_locks" = warn &&
 1.46649 ++	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
 1.46650 ++	$ECHO "\
 1.46651 ++*** ERROR, $lockfile contains:
 1.46652 ++`cat $lockfile 2>/dev/null`
 1.46653 ++
 1.46654 ++but it should contain:
 1.46655 ++$srcfile
 1.46656 ++
 1.46657 ++This indicates that another process is trying to use the same
 1.46658 ++temporary object file, and libtool could not work around it because
 1.46659 ++your compiler does not support \`-c' and \`-o' together.  If you
 1.46660 ++repeat this compilation, it may succeed, by chance, but you had better
 1.46661 ++avoid parallel builds (make -j) in this platform, or get a better
 1.46662 ++compiler."
 1.46663 ++
 1.46664 ++	$opt_dry_run || $RM $removelist
 1.46665 ++	exit $EXIT_FAILURE
 1.46666 ++      fi
 1.46667 ++
 1.46668 ++      # Just move the object if needed, then go on to compile the next one
 1.46669 ++      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
 1.46670 ++	func_show_eval '$MV "$output_obj" "$lobj"' \
 1.46671 ++	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
 1.46672 ++      fi
 1.46673 ++
 1.46674 ++      # Allow error messages only from the first compilation.
 1.46675 ++      if test "$suppress_opt" = yes; then
 1.46676 ++	suppress_output=' >/dev/null 2>&1'
 1.46677 ++      fi
 1.46678 ++    fi
 1.46679 ++
 1.46680 ++    # Only build a position-dependent object if we build old libraries.
 1.46681 ++    if test "$build_old_libs" = yes; then
 1.46682 ++      if test "$pic_mode" != yes; then
 1.46683 ++	# Don't build PIC code
 1.46684 ++	command="$base_compile $qsrcfile$pie_flag"
 1.46685 ++      else
 1.46686 ++	command="$base_compile $qsrcfile $pic_flag"
 1.46687 ++      fi
 1.46688 ++      if test "$compiler_c_o" = yes; then
 1.46689 ++	command="$command -o $obj"
 1.46690 ++      fi
 1.46691 ++
 1.46692 ++      # Suppress compiler output if we already did a PIC compilation.
 1.46693 ++      command="$command$suppress_output"
 1.46694 ++      $opt_dry_run || $RM "$obj" "$output_obj"
 1.46695 ++      func_show_eval "$command" \
 1.46696 ++        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
 1.46697 ++
 1.46698 ++      if test "$need_locks" = warn &&
 1.46699 ++	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
 1.46700 ++	$ECHO "\
 1.46701 ++*** ERROR, $lockfile contains:
 1.46702 ++`cat $lockfile 2>/dev/null`
 1.46703 ++
 1.46704 ++but it should contain:
 1.46705 ++$srcfile
 1.46706 ++
 1.46707 ++This indicates that another process is trying to use the same
 1.46708 ++temporary object file, and libtool could not work around it because
 1.46709 ++your compiler does not support \`-c' and \`-o' together.  If you
 1.46710 ++repeat this compilation, it may succeed, by chance, but you had better
 1.46711 ++avoid parallel builds (make -j) in this platform, or get a better
 1.46712 ++compiler."
 1.46713 ++
 1.46714 ++	$opt_dry_run || $RM $removelist
 1.46715 ++	exit $EXIT_FAILURE
 1.46716 ++      fi
 1.46717 ++
 1.46718 ++      # Just move the object if needed
 1.46719 ++      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
 1.46720 ++	func_show_eval '$MV "$output_obj" "$obj"' \
 1.46721 ++	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
 1.46722 ++      fi
 1.46723 ++    fi
 1.46724 ++
 1.46725 ++    $opt_dry_run || {
 1.46726 ++      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
 1.46727 ++
 1.46728 ++      # Unlock the critical section if it was locked
 1.46729 ++      if test "$need_locks" != no; then
 1.46730 ++        $RM "$lockfile"
 1.46731 ++      fi
 1.46732 ++    }
 1.46733 ++
 1.46734 ++    exit $EXIT_SUCCESS
 1.46735 ++}
 1.46736 ++
 1.46737 ++test "$mode" = compile && func_mode_compile ${1+"$@"}
 1.46738 ++
 1.46739 ++
 1.46740 ++# func_mode_execute arg...
 1.46741 ++func_mode_execute ()
 1.46742 ++{
 1.46743 ++    $opt_debug
 1.46744 ++    # The first argument is the command name.
 1.46745 ++    cmd="$nonopt"
 1.46746 ++    test -z "$cmd" && \
 1.46747 ++      func_fatal_help "you must specify a COMMAND"
 1.46748 ++
 1.46749 ++    # Handle -dlopen flags immediately.
 1.46750 ++    for file in $execute_dlfiles; do
 1.46751 ++      test -f "$file" \
 1.46752 ++	|| func_fatal_help "\`$file' is not a file"
 1.46753 ++
 1.46754 ++      dir=
 1.46755 ++      case $file in
 1.46756 ++      *.la)
 1.46757 ++	# Check to see that this really is a libtool archive.
 1.46758 ++	func_lalib_unsafe_p "$file" \
 1.46759 ++	  || func_fatal_help "\`$lib' is not a valid libtool archive"
 1.46760 ++
 1.46761 ++	# Read the libtool library.
 1.46762 ++	dlname=
 1.46763 ++	library_names=
 1.46764 ++	func_source "$file"
 1.46765 ++
 1.46766 ++	# Skip this library if it cannot be dlopened.
 1.46767 ++	if test -z "$dlname"; then
 1.46768 ++	  # Warn if it was a shared library.
 1.46769 ++	  test -n "$library_names" && \
 1.46770 ++	    func_warning "\`$file' was not linked with \`-export-dynamic'"
 1.46771 ++	  continue
 1.46772 ++	fi
 1.46773 ++
 1.46774 ++	func_dirname "$file" "" "."
 1.46775 ++	dir="$func_dirname_result"
 1.46776 ++
 1.46777 ++	if test -f "$dir/$objdir/$dlname"; then
 1.46778 ++	  dir="$dir/$objdir"
 1.46779 ++	else
 1.46780 ++	  if test ! -f "$dir/$dlname"; then
 1.46781 ++	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
 1.46782 ++	  fi
 1.46783 ++	fi
 1.46784 ++	;;
 1.46785 ++
 1.46786 ++      *.lo)
 1.46787 ++	# Just add the directory containing the .lo file.
 1.46788 ++	func_dirname "$file" "" "."
 1.46789 ++	dir="$func_dirname_result"
 1.46790 ++	;;
 1.46791 ++
 1.46792 ++      *)
 1.46793 ++	func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
 1.46794 ++	continue
 1.46795 ++	;;
 1.46796 ++      esac
 1.46797 ++
 1.46798 ++      # Get the absolute pathname.
 1.46799 ++      absdir=`cd "$dir" && pwd`
 1.46800 ++      test -n "$absdir" && dir="$absdir"
 1.46801 ++
 1.46802 ++      # Now add the directory to shlibpath_var.
 1.46803 ++      if eval "test -z \"\$$shlibpath_var\""; then
 1.46804 ++	eval "$shlibpath_var=\"\$dir\""
 1.46805 ++      else
 1.46806 ++	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
 1.46807 ++      fi
 1.46808 ++    done
 1.46809 ++
 1.46810 ++    # This variable tells wrapper scripts just to set shlibpath_var
 1.46811 ++    # rather than running their programs.
 1.46812 ++    libtool_execute_magic="$magic"
 1.46813 ++
 1.46814 ++    # Check if any of the arguments is a wrapper script.
 1.46815 ++    args=
 1.46816 ++    for file
 1.46817 ++    do
 1.46818 ++      case $file in
 1.46819 ++      -*) ;;
 1.46820 ++      *)
 1.46821 ++	# Do a test to see if this is really a libtool program.
 1.46822 ++	if func_ltwrapper_p "$file"; then
 1.46823 ++	  func_source "$file"
 1.46824 ++
 1.46825 ++	  # Transform arg to wrapped name.
 1.46826 ++	  file="$progdir/$program"
 1.46827 ++	fi
 1.46828 ++	;;
 1.46829 ++      esac
 1.46830 ++      # Quote arguments (to preserve shell metacharacters).
 1.46831 ++      func_quote_for_eval "$file"
 1.46832 ++      args="$args $func_quote_for_eval_result"
 1.46833 ++    done
 1.46834 ++
 1.46835 ++    if test "X$opt_dry_run" = Xfalse; then
 1.46836 ++      if test -n "$shlibpath_var"; then
 1.46837 ++	# Export the shlibpath_var.
 1.46838 ++	eval "export $shlibpath_var"
 1.46839 ++      fi
 1.46840 ++
 1.46841 ++      # Restore saved environment variables
 1.46842 ++      for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
 1.46843 ++      do
 1.46844 ++	eval "if test \"\${save_$lt_var+set}\" = set; then
 1.46845 ++                $lt_var=\$save_$lt_var; export $lt_var
 1.46846 ++	      else
 1.46847 ++		$lt_unset $lt_var
 1.46848 ++	      fi"
 1.46849 ++      done
 1.46850 ++
 1.46851 ++      # Now prepare to actually exec the command.
 1.46852 ++      exec_cmd="\$cmd$args"
 1.46853 ++    else
 1.46854 ++      # Display what would be done.
 1.46855 ++      if test -n "$shlibpath_var"; then
 1.46856 ++	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
 1.46857 ++	$ECHO "export $shlibpath_var"
 1.46858 ++      fi
 1.46859 ++      $ECHO "$cmd$args"
 1.46860 ++      exit $EXIT_SUCCESS
 1.46861 ++    fi
 1.46862 ++}
 1.46863 ++
 1.46864 ++test "$mode" = execute && func_mode_execute ${1+"$@"}
 1.46865 ++
 1.46866 ++
 1.46867 ++# func_mode_finish arg...
 1.46868 ++func_mode_finish ()
 1.46869 ++{
 1.46870 ++    $opt_debug
 1.46871 ++    libdirs="$nonopt"
 1.46872 ++    admincmds=
 1.46873 ++
 1.46874 ++    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
 1.46875 ++      for dir
 1.46876 ++      do
 1.46877 ++	libdirs="$libdirs $dir"
 1.46878 ++      done
 1.46879 ++
 1.46880 ++      for libdir in $libdirs; do
 1.46881 ++	if test -n "$finish_cmds"; then
 1.46882 ++	  # Do each command in the finish commands.
 1.46883 ++	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
 1.46884 ++'"$cmd"'"'
 1.46885 ++	fi
 1.46886 ++	if test -n "$finish_eval"; then
 1.46887 ++	  # Do the single finish_eval.
 1.46888 ++	  eval cmds=\"$finish_eval\"
 1.46889 ++	  $opt_dry_run || eval "$cmds" || admincmds="$admincmds
 1.46890 ++       $cmds"
 1.46891 ++	fi
 1.46892 ++      done
 1.46893 ++    fi
 1.46894 ++
 1.46895 ++    # Exit here if they wanted silent mode.
 1.46896 ++    $opt_silent && exit $EXIT_SUCCESS
 1.46897 ++
 1.46898 ++    $ECHO "X----------------------------------------------------------------------" | $Xsed
 1.46899 ++    $ECHO "Libraries have been installed in:"
 1.46900 ++    for libdir in $libdirs; do
 1.46901 ++      $ECHO "   $libdir"
 1.46902 ++    done
 1.46903 ++    $ECHO
 1.46904 ++    $ECHO "If you ever happen to want to link against installed libraries"
 1.46905 ++    $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
 1.46906 ++    $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
 1.46907 ++    $ECHO "flag during linking and do at least one of the following:"
 1.46908 ++    if test -n "$shlibpath_var"; then
 1.46909 ++      $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"
 1.46910 ++      $ECHO "     during execution"
 1.46911 ++    fi
 1.46912 ++    if test -n "$runpath_var"; then
 1.46913 ++      $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"
 1.46914 ++      $ECHO "     during linking"
 1.46915 ++    fi
 1.46916 ++    if test -n "$hardcode_libdir_flag_spec"; then
 1.46917 ++      libdir=LIBDIR
 1.46918 ++      eval flag=\"$hardcode_libdir_flag_spec\"
 1.46919 ++
 1.46920 ++      $ECHO "   - use the \`$flag' linker flag"
 1.46921 ++    fi
 1.46922 ++    if test -n "$admincmds"; then
 1.46923 ++      $ECHO "   - have your system administrator run these commands:$admincmds"
 1.46924 ++    fi
 1.46925 ++    if test -f /etc/ld.so.conf; then
 1.46926 ++      $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
 1.46927 ++    fi
 1.46928 ++    $ECHO
 1.46929 ++
 1.46930 ++    $ECHO "See any operating system documentation about shared libraries for"
 1.46931 ++    case $host in
 1.46932 ++      solaris2.[6789]|solaris2.1[0-9])
 1.46933 ++        $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
 1.46934 ++	$ECHO "pages."
 1.46935 ++	;;
 1.46936 ++      *)
 1.46937 ++        $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
 1.46938 ++        ;;
 1.46939 ++    esac
 1.46940 ++    $ECHO "X----------------------------------------------------------------------" | $Xsed
 1.46941 ++    exit $EXIT_SUCCESS
 1.46942 ++}
 1.46943 ++
 1.46944 ++test "$mode" = finish && func_mode_finish ${1+"$@"}
 1.46945 ++
 1.46946 ++
 1.46947 ++# func_mode_install arg...
 1.46948 ++func_mode_install ()
 1.46949 ++{
 1.46950 ++    $opt_debug
 1.46951 ++    # There may be an optional sh(1) argument at the beginning of
 1.46952 ++    # install_prog (especially on Windows NT).
 1.46953 ++    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
 1.46954 ++       # Allow the use of GNU shtool's install command.
 1.46955 ++       $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
 1.46956 ++      # Aesthetically quote it.
 1.46957 ++      func_quote_for_eval "$nonopt"
 1.46958 ++      install_prog="$func_quote_for_eval_result "
 1.46959 ++      arg=$1
 1.46960 ++      shift
 1.46961 ++    else
 1.46962 ++      install_prog=
 1.46963 ++      arg=$nonopt
 1.46964 ++    fi
 1.46965 ++
 1.46966 ++    # The real first argument should be the name of the installation program.
 1.46967 ++    # Aesthetically quote it.
 1.46968 ++    func_quote_for_eval "$arg"
 1.46969 ++    install_prog="$install_prog$func_quote_for_eval_result"
 1.46970 ++
 1.46971 ++    # We need to accept at least all the BSD install flags.
 1.46972 ++    dest=
 1.46973 ++    files=
 1.46974 ++    opts=
 1.46975 ++    prev=
 1.46976 ++    install_type=
 1.46977 ++    isdir=no
 1.46978 ++    stripme=
 1.46979 ++    for arg
 1.46980 ++    do
 1.46981 ++      if test -n "$dest"; then
 1.46982 ++	files="$files $dest"
 1.46983 ++	dest=$arg
 1.46984 ++	continue
 1.46985 ++      fi
 1.46986 ++
 1.46987 ++      case $arg in
 1.46988 ++      -d) isdir=yes ;;
 1.46989 ++      -f)
 1.46990 ++      	case " $install_prog " in
 1.46991 ++	*[\\\ /]cp\ *) ;;
 1.46992 ++	*) prev=$arg ;;
 1.46993 ++	esac
 1.46994 ++	;;
 1.46995 ++      -g | -m | -o)
 1.46996 ++	prev=$arg
 1.46997 ++	;;
 1.46998 ++      -s)
 1.46999 ++	stripme=" -s"
 1.47000 ++	continue
 1.47001 ++	;;
 1.47002 ++      -*)
 1.47003 ++	;;
 1.47004 ++      *)
 1.47005 ++	# If the previous option needed an argument, then skip it.
 1.47006 ++	if test -n "$prev"; then
 1.47007 ++	  prev=
 1.47008 ++	else
 1.47009 ++	  dest=$arg
 1.47010 ++	  continue
 1.47011 ++	fi
 1.47012 ++	;;
 1.47013 ++      esac
 1.47014 ++
 1.47015 ++      # Aesthetically quote the argument.
 1.47016 ++      func_quote_for_eval "$arg"
 1.47017 ++      install_prog="$install_prog $func_quote_for_eval_result"
 1.47018 ++    done
 1.47019 ++
 1.47020 ++    test -z "$install_prog" && \
 1.47021 ++      func_fatal_help "you must specify an install program"
 1.47022 ++
 1.47023 ++    test -n "$prev" && \
 1.47024 ++      func_fatal_help "the \`$prev' option requires an argument"
 1.47025 ++
 1.47026 ++    if test -z "$files"; then
 1.47027 ++      if test -z "$dest"; then
 1.47028 ++	func_fatal_help "no file or destination specified"
 1.47029 ++      else
 1.47030 ++	func_fatal_help "you must specify a destination"
 1.47031 ++      fi
 1.47032 ++    fi
 1.47033 ++
 1.47034 ++    # Strip any trailing slash from the destination.
 1.47035 ++    func_stripname '' '/' "$dest"
 1.47036 ++    dest=$func_stripname_result
 1.47037 ++
 1.47038 ++    # Check to see that the destination is a directory.
 1.47039 ++    test -d "$dest" && isdir=yes
 1.47040 ++    if test "$isdir" = yes; then
 1.47041 ++      destdir="$dest"
 1.47042 ++      destname=
 1.47043 ++    else
 1.47044 ++      func_dirname "$dest" "" "."
 1.47045 ++      destdir="$func_dirname_result"
 1.47046 ++      func_basename "$dest"
 1.47047 ++      destname="$func_basename_result"
 1.47048 ++
 1.47049 ++      # Not a directory, so check to see that there is only one file specified.
 1.47050 ++      set dummy $files; shift
 1.47051 ++      test "$#" -gt 1 && \
 1.47052 ++	func_fatal_help "\`$dest' is not a directory"
 1.47053 ++    fi
 1.47054 ++    case $destdir in
 1.47055 ++    [\\/]* | [A-Za-z]:[\\/]*) ;;
 1.47056 ++    *)
 1.47057 ++      for file in $files; do
 1.47058 ++	case $file in
 1.47059 ++	*.lo) ;;
 1.47060 ++	*)
 1.47061 ++	  func_fatal_help "\`$destdir' must be an absolute directory name"
 1.47062 ++	  ;;
 1.47063 ++	esac
 1.47064 ++      done
 1.47065 ++      ;;
 1.47066 ++    esac
 1.47067 ++
 1.47068 ++    # This variable tells wrapper scripts just to set variables rather
 1.47069 ++    # than running their programs.
 1.47070 ++    libtool_install_magic="$magic"
 1.47071 ++
 1.47072 ++    staticlibs=
 1.47073 ++    future_libdirs=
 1.47074 ++    current_libdirs=
 1.47075 ++    for file in $files; do
 1.47076 ++
 1.47077 ++      # Do each installation.
 1.47078 ++      case $file in
 1.47079 ++      *.$libext)
 1.47080 ++	# Do the static libraries later.
 1.47081 ++	staticlibs="$staticlibs $file"
 1.47082 ++	;;
 1.47083 ++
 1.47084 ++      *.la)
 1.47085 ++	# Check to see that this really is a libtool archive.
 1.47086 ++	func_lalib_unsafe_p "$file" \
 1.47087 ++	  || func_fatal_help "\`$file' is not a valid libtool archive"
 1.47088 ++
 1.47089 ++	library_names=
 1.47090 ++	old_library=
 1.47091 ++	relink_command=
 1.47092 ++	func_source "$file"
 1.47093 ++
 1.47094 ++	# Add the libdir to current_libdirs if it is the destination.
 1.47095 ++	if test "X$destdir" = "X$libdir"; then
 1.47096 ++	  case "$current_libdirs " in
 1.47097 ++	  *" $libdir "*) ;;
 1.47098 ++	  *) current_libdirs="$current_libdirs $libdir" ;;
 1.47099 ++	  esac
 1.47100 ++	else
 1.47101 ++	  # Note the libdir as a future libdir.
 1.47102 ++	  case "$future_libdirs " in
 1.47103 ++	  *" $libdir "*) ;;
 1.47104 ++	  *) future_libdirs="$future_libdirs $libdir" ;;
 1.47105 ++	  esac
 1.47106 ++	fi
 1.47107 ++
 1.47108 ++	func_dirname "$file" "/" ""
 1.47109 ++	dir="$func_dirname_result"
 1.47110 ++	dir="$dir$objdir"
 1.47111 ++
 1.47112 ++	if test -n "$relink_command"; then
 1.47113 ++	  # Determine the prefix the user has applied to our future dir.
 1.47114 ++	  inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
 1.47115 ++
 1.47116 ++	  # Don't allow the user to place us outside of our expected
 1.47117 ++	  # location b/c this prevents finding dependent libraries that
 1.47118 ++	  # are installed to the same prefix.
 1.47119 ++	  # At present, this check doesn't affect windows .dll's that
 1.47120 ++	  # are installed into $libdir/../bin (currently, that works fine)
 1.47121 ++	  # but it's something to keep an eye on.
 1.47122 ++	  test "$inst_prefix_dir" = "$destdir" && \
 1.47123 ++	    func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
 1.47124 ++
 1.47125 ++	  if test -n "$inst_prefix_dir"; then
 1.47126 ++	    # Stick the inst_prefix_dir data into the link command.
 1.47127 ++	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
 1.47128 ++	  else
 1.47129 ++	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
 1.47130 ++	  fi
 1.47131 ++
 1.47132 ++	  func_warning "relinking \`$file'"
 1.47133 ++	  func_show_eval "$relink_command" \
 1.47134 ++	    'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
 1.47135 ++	fi
 1.47136 ++
 1.47137 ++	# See the names of the shared library.
 1.47138 ++	set dummy $library_names; shift
 1.47139 ++	if test -n "$1"; then
 1.47140 ++	  realname="$1"
 1.47141 ++	  shift
 1.47142 ++
 1.47143 ++	  srcname="$realname"
 1.47144 ++	  test -n "$relink_command" && srcname="$realname"T
 1.47145 ++
 1.47146 ++	  # Install the shared library and build the symlinks.
 1.47147 ++	  func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
 1.47148 ++	      'exit $?'
 1.47149 ++	  tstripme="$stripme"
 1.47150 ++	  case $host_os in
 1.47151 ++	  cygwin* | mingw* | pw32*)
 1.47152 ++	    case $realname in
 1.47153 ++	    *.dll.a)
 1.47154 ++	      tstripme=""
 1.47155 ++	      ;;
 1.47156 ++	    esac
 1.47157 ++	    ;;
 1.47158 ++	  esac
 1.47159 ++	  if test -n "$tstripme" && test -n "$striplib"; then
 1.47160 ++	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
 1.47161 ++	  fi
 1.47162 ++
 1.47163 ++	  if test "$#" -gt 0; then
 1.47164 ++	    # Delete the old symlinks, and create new ones.
 1.47165 ++	    # Try `ln -sf' first, because the `ln' binary might depend on
 1.47166 ++	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
 1.47167 ++	    # so we also need to try rm && ln -s.
 1.47168 ++	    for linkname
 1.47169 ++	    do
 1.47170 ++	      test "$linkname" != "$realname" \
 1.47171 ++		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
 1.47172 ++	    done
 1.47173 ++	  fi
 1.47174 ++
 1.47175 ++	  # Do each command in the postinstall commands.
 1.47176 ++	  lib="$destdir/$realname"
 1.47177 ++	  func_execute_cmds "$postinstall_cmds" 'exit $?'
 1.47178 ++	fi
 1.47179 ++
 1.47180 ++	# Install the pseudo-library for information purposes.
 1.47181 ++	func_basename "$file"
 1.47182 ++	name="$func_basename_result"
 1.47183 ++	instname="$dir/$name"i
 1.47184 ++	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
 1.47185 ++
 1.47186 ++	# Maybe install the static library, too.
 1.47187 ++	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
 1.47188 ++	;;
 1.47189 ++
 1.47190 ++      *.lo)
 1.47191 ++	# Install (i.e. copy) a libtool object.
 1.47192 ++
 1.47193 ++	# Figure out destination file name, if it wasn't already specified.
 1.47194 ++	if test -n "$destname"; then
 1.47195 ++	  destfile="$destdir/$destname"
 1.47196 ++	else
 1.47197 ++	  func_basename "$file"
 1.47198 ++	  destfile="$func_basename_result"
 1.47199 ++	  destfile="$destdir/$destfile"
 1.47200 ++	fi
 1.47201 ++
 1.47202 ++	# Deduce the name of the destination old-style object file.
 1.47203 ++	case $destfile in
 1.47204 ++	*.lo)
 1.47205 ++	  func_lo2o "$destfile"
 1.47206 ++	  staticdest=$func_lo2o_result
 1.47207 ++	  ;;
 1.47208 ++	*.$objext)
 1.47209 ++	  staticdest="$destfile"
 1.47210 ++	  destfile=
 1.47211 ++	  ;;
 1.47212 ++	*)
 1.47213 ++	  func_fatal_help "cannot copy a libtool object to \`$destfile'"
 1.47214 ++	  ;;
 1.47215 ++	esac
 1.47216 ++
 1.47217 ++	# Install the libtool object if requested.
 1.47218 ++	test -n "$destfile" && \
 1.47219 ++	  func_show_eval "$install_prog $file $destfile" 'exit $?'
 1.47220 ++
 1.47221 ++	# Install the old object if enabled.
 1.47222 ++	if test "$build_old_libs" = yes; then
 1.47223 ++	  # Deduce the name of the old-style object file.
 1.47224 ++	  func_lo2o "$file"
 1.47225 ++	  staticobj=$func_lo2o_result
 1.47226 ++	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
 1.47227 ++	fi
 1.47228 ++	exit $EXIT_SUCCESS
 1.47229 ++	;;
 1.47230 ++
 1.47231 ++      *)
 1.47232 ++	# Figure out destination file name, if it wasn't already specified.
 1.47233 ++	if test -n "$destname"; then
 1.47234 ++	  destfile="$destdir/$destname"
 1.47235 ++	else
 1.47236 ++	  func_basename "$file"
 1.47237 ++	  destfile="$func_basename_result"
 1.47238 ++	  destfile="$destdir/$destfile"
 1.47239 ++	fi
 1.47240 ++
 1.47241 ++	# If the file is missing, and there is a .exe on the end, strip it
 1.47242 ++	# because it is most likely a libtool script we actually want to
 1.47243 ++	# install
 1.47244 ++	stripped_ext=""
 1.47245 ++	case $file in
 1.47246 ++	  *.exe)
 1.47247 ++	    if test ! -f "$file"; then
 1.47248 ++	      func_stripname '' '.exe' "$file"
 1.47249 ++	      file=$func_stripname_result
 1.47250 ++	      stripped_ext=".exe"
 1.47251 ++	    fi
 1.47252 ++	    ;;
 1.47253 ++	esac
 1.47254 ++
 1.47255 ++	# Do a test to see if this is really a libtool program.
 1.47256 ++	case $host in
 1.47257 ++	*cygwin*|*mingw*)
 1.47258 ++	    func_stripname '' '.exe' "$file"
 1.47259 ++	    wrapper=$func_stripname_result
 1.47260 ++	    ;;
 1.47261 ++	*)
 1.47262 ++	    wrapper=$file
 1.47263 ++	    ;;
 1.47264 ++	esac
 1.47265 ++	if func_ltwrapper_p "$wrapper"; then
 1.47266 ++	  notinst_deplibs=
 1.47267 ++	  relink_command=
 1.47268 ++
 1.47269 ++	  func_source "$wrapper"
 1.47270 ++
 1.47271 ++	  # Check the variables that should have been set.
 1.47272 ++	  test -z "$generated_by_libtool_version" && \
 1.47273 ++	    func_fatal_error "invalid libtool wrapper script \`$wrapper'"
 1.47274 ++
 1.47275 ++	  finalize=yes
 1.47276 ++	  for lib in $notinst_deplibs; do
 1.47277 ++	    # Check to see that each library is installed.
 1.47278 ++	    libdir=
 1.47279 ++	    if test -f "$lib"; then
 1.47280 ++	      func_source "$lib"
 1.47281 ++	    fi
 1.47282 ++	    libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
 1.47283 ++	    if test -n "$libdir" && test ! -f "$libfile"; then
 1.47284 ++	      func_warning "\`$lib' has not been installed in \`$libdir'"
 1.47285 ++	      finalize=no
 1.47286 ++	    fi
 1.47287 ++	  done
 1.47288 ++
 1.47289 ++	  relink_command=
 1.47290 ++	  func_source "$wrapper"
 1.47291 ++
 1.47292 ++	  outputname=
 1.47293 ++	  if test "$fast_install" = no && test -n "$relink_command"; then
 1.47294 ++	    $opt_dry_run || {
 1.47295 ++	      if test "$finalize" = yes; then
 1.47296 ++	        tmpdir=`func_mktempdir`
 1.47297 ++		func_basename "$file$stripped_ext"
 1.47298 ++		file="$func_basename_result"
 1.47299 ++	        outputname="$tmpdir/$file"
 1.47300 ++	        # Replace the output file specification.
 1.47301 ++	        relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
 1.47302 ++
 1.47303 ++	        $opt_silent || {
 1.47304 ++	          func_quote_for_expand "$relink_command"
 1.47305 ++		  eval "func_echo $func_quote_for_expand_result"
 1.47306 ++	        }
 1.47307 ++	        if eval "$relink_command"; then :
 1.47308 ++	          else
 1.47309 ++		  func_error "error: relink \`$file' with the above command before installing it"
 1.47310 ++		  $opt_dry_run || ${RM}r "$tmpdir"
 1.47311 ++		  continue
 1.47312 ++	        fi
 1.47313 ++	        file="$outputname"
 1.47314 ++	      else
 1.47315 ++	        func_warning "cannot relink \`$file'"
 1.47316 ++	      fi
 1.47317 ++	    }
 1.47318 ++	  else
 1.47319 ++	    # Install the binary that we compiled earlier.
 1.47320 ++	    file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
 1.47321 ++	  fi
 1.47322 ++	fi
 1.47323 ++
 1.47324 ++	# remove .exe since cygwin /usr/bin/install will append another
 1.47325 ++	# one anyway
 1.47326 ++	case $install_prog,$host in
 1.47327 ++	*/usr/bin/install*,*cygwin*)
 1.47328 ++	  case $file:$destfile in
 1.47329 ++	  *.exe:*.exe)
 1.47330 ++	    # this is ok
 1.47331 ++	    ;;
 1.47332 ++	  *.exe:*)
 1.47333 ++	    destfile=$destfile.exe
 1.47334 ++	    ;;
 1.47335 ++	  *:*.exe)
 1.47336 ++	    func_stripname '' '.exe' "$destfile"
 1.47337 ++	    destfile=$func_stripname_result
 1.47338 ++	    ;;
 1.47339 ++	  esac
 1.47340 ++	  ;;
 1.47341 ++	esac
 1.47342 ++	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
 1.47343 ++	$opt_dry_run || if test -n "$outputname"; then
 1.47344 ++	  ${RM}r "$tmpdir"
 1.47345 ++	fi
 1.47346 ++	;;
 1.47347 ++      esac
 1.47348 ++    done
 1.47349 ++
 1.47350 ++    for file in $staticlibs; do
 1.47351 ++      func_basename "$file"
 1.47352 ++      name="$func_basename_result"
 1.47353 ++
 1.47354 ++      # Set up the ranlib parameters.
 1.47355 ++      oldlib="$destdir/$name"
 1.47356 ++
 1.47357 ++      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
 1.47358 ++
 1.47359 ++      if test -n "$stripme" && test -n "$old_striplib"; then
 1.47360 ++	func_show_eval "$old_striplib $oldlib" 'exit $?'
 1.47361 ++      fi
 1.47362 ++
 1.47363 ++      # Do each command in the postinstall commands.
 1.47364 ++      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
 1.47365 ++    done
 1.47366 ++
 1.47367 ++    test -n "$future_libdirs" && \
 1.47368 ++      func_warning "remember to run \`$progname --finish$future_libdirs'"
 1.47369 ++
 1.47370 ++    if test -n "$current_libdirs"; then
 1.47371 ++      # Maybe just do a dry run.
 1.47372 ++      $opt_dry_run && current_libdirs=" -n$current_libdirs"
 1.47373 ++      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
 1.47374 ++    else
 1.47375 ++      exit $EXIT_SUCCESS
 1.47376 ++    fi
 1.47377 ++}
 1.47378 ++
 1.47379 ++test "$mode" = install && func_mode_install ${1+"$@"}
 1.47380 ++
 1.47381 ++
 1.47382 ++# func_mode_link arg...
 1.47383 ++func_mode_link ()
 1.47384 ++{
 1.47385 ++    $opt_debug
 1.47386 ++    case $host in
 1.47387 ++    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
 1.47388 ++      # It is impossible to link a dll without this setting, and
 1.47389 ++      # we shouldn't force the makefile maintainer to figure out
 1.47390 ++      # which system we are compiling for in order to pass an extra
 1.47391 ++      # flag for every libtool invocation.
 1.47392 ++      # allow_undefined=no
 1.47393 ++
 1.47394 ++      # FIXME: Unfortunately, there are problems with the above when trying
 1.47395 ++      # to make a dll which has undefined symbols, in which case not
 1.47396 ++      # even a static library is built.  For now, we need to specify
 1.47397 ++      # -no-undefined on the libtool link line when we can be certain
 1.47398 ++      # that all symbols are satisfied, otherwise we get a static library.
 1.47399 ++      allow_undefined=yes
 1.47400 ++      ;;
 1.47401 ++    *)
 1.47402 ++      allow_undefined=yes
 1.47403 ++      ;;
 1.47404 ++    esac
 1.47405 ++    libtool_args=$nonopt
 1.47406 ++    base_compile="$nonopt $@"
 1.47407 ++    compile_command=$nonopt
 1.47408 ++    finalize_command=$nonopt
 1.47409 ++
 1.47410 ++    compile_rpath=
 1.47411 ++    finalize_rpath=
 1.47412 ++    compile_shlibpath=
 1.47413 ++    finalize_shlibpath=
 1.47414 ++    convenience=
 1.47415 ++    old_convenience=
 1.47416 ++    deplibs=
 1.47417 ++    old_deplibs=
 1.47418 ++    compiler_flags=
 1.47419 ++    linker_flags=
 1.47420 ++    dllsearchpath=
 1.47421 ++    lib_search_path=`pwd`
 1.47422 ++    inst_prefix_dir=
 1.47423 ++    new_inherited_linker_flags=
 1.47424 ++
 1.47425 ++    avoid_version=no
 1.47426 ++    dlfiles=
 1.47427 ++    dlprefiles=
 1.47428 ++    dlself=no
 1.47429 ++    export_dynamic=no
 1.47430 ++    export_symbols=
 1.47431 ++    export_symbols_regex=
 1.47432 ++    generated=
 1.47433 ++    libobjs=
 1.47434 ++    ltlibs=
 1.47435 ++    module=no
 1.47436 ++    no_install=no
 1.47437 ++    objs=
 1.47438 ++    non_pic_objects=
 1.47439 ++    precious_files_regex=
 1.47440 ++    prefer_static_libs=no
 1.47441 ++    preload=no
 1.47442 ++    prev=
 1.47443 ++    prevarg=
 1.47444 ++    release=
 1.47445 ++    rpath=
 1.47446 ++    xrpath=
 1.47447 ++    perm_rpath=
 1.47448 ++    temp_rpath=
 1.47449 ++    thread_safe=no
 1.47450 ++    vinfo=
 1.47451 ++    vinfo_number=no
 1.47452 ++    weak_libs=
 1.47453 ++    single_module="${wl}-single_module"
 1.47454 ++    func_infer_tag $base_compile
 1.47455 ++
 1.47456 ++    # We need to know -static, to get the right output filenames.
 1.47457 ++    for arg
 1.47458 ++    do
 1.47459 ++      case $arg in
 1.47460 ++      -shared)
 1.47461 ++	test "$build_libtool_libs" != yes && \
 1.47462 ++	  func_fatal_configuration "can not build a shared library"
 1.47463 ++	build_old_libs=no
 1.47464 ++	break
 1.47465 ++	;;
 1.47466 ++      -all-static | -static | -static-libtool-libs)
 1.47467 ++	case $arg in
 1.47468 ++	-all-static)
 1.47469 ++	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
 1.47470 ++	    func_warning "complete static linking is impossible in this configuration"
 1.47471 ++	  fi
 1.47472 ++	  if test -n "$link_static_flag"; then
 1.47473 ++	    dlopen_self=$dlopen_self_static
 1.47474 ++	    # See comment for -static flag below, for more details.
 1.47475 ++	    func_append compile_command " $link_static_flag"
 1.47476 ++	    func_append finalize_command " $link_static_flag"
 1.47477 ++	  fi
 1.47478 ++	  prefer_static_libs=yes
 1.47479 ++	  ;;
 1.47480 ++	-static)
 1.47481 ++	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
 1.47482 ++	    dlopen_self=$dlopen_self_static
 1.47483 ++	  fi
 1.47484 ++	  prefer_static_libs=built
 1.47485 ++	  ;;
 1.47486 ++	-static-libtool-libs)
 1.47487 ++	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
 1.47488 ++	    dlopen_self=$dlopen_self_static
 1.47489 ++	  fi
 1.47490 ++	  prefer_static_libs=yes
 1.47491 ++	  ;;
 1.47492 ++	esac
 1.47493 ++	build_libtool_libs=no
 1.47494 ++	build_old_libs=yes
 1.47495 ++	break
 1.47496 ++	;;
 1.47497 ++      esac
 1.47498 ++    done
 1.47499 ++
 1.47500 ++    # See if our shared archives depend on static archives.
 1.47501 ++    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
 1.47502 ++
 1.47503 ++    # Go through the arguments, transforming them on the way.
 1.47504 ++    while test "$#" -gt 0; do
 1.47505 ++      arg="$1"
 1.47506 ++      shift
 1.47507 ++      func_quote_for_eval "$arg"
 1.47508 ++      qarg=$func_quote_for_eval_unquoted_result
 1.47509 ++      func_append libtool_args " $func_quote_for_eval_result"
 1.47510 ++
 1.47511 ++      # If the previous option needs an argument, assign it.
 1.47512 ++      if test -n "$prev"; then
 1.47513 ++	case $prev in
 1.47514 ++	output)
 1.47515 ++	  func_append compile_command " @OUTPUT@"
 1.47516 ++	  func_append finalize_command " @OUTPUT@"
 1.47517 ++	  ;;
 1.47518 ++	esac
 1.47519 ++
 1.47520 ++	case $prev in
 1.47521 ++	dlfiles|dlprefiles)
 1.47522 ++	  if test "$preload" = no; then
 1.47523 ++	    # Add the symbol object into the linking commands.
 1.47524 ++	    func_append compile_command " @SYMFILE@"
 1.47525 ++	    func_append finalize_command " @SYMFILE@"
 1.47526 ++	    preload=yes
 1.47527 ++	  fi
 1.47528 ++	  case $arg in
 1.47529 ++	  *.la | *.lo) ;;  # We handle these cases below.
 1.47530 ++	  force)
 1.47531 ++	    if test "$dlself" = no; then
 1.47532 ++	      dlself=needless
 1.47533 ++	      export_dynamic=yes
 1.47534 ++	    fi
 1.47535 ++	    prev=
 1.47536 ++	    continue
 1.47537 ++	    ;;
 1.47538 ++	  self)
 1.47539 ++	    if test "$prev" = dlprefiles; then
 1.47540 ++	      dlself=yes
 1.47541 ++	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
 1.47542 ++	      dlself=yes
 1.47543 ++	    else
 1.47544 ++	      dlself=needless
 1.47545 ++	      export_dynamic=yes
 1.47546 ++	    fi
 1.47547 ++	    prev=
 1.47548 ++	    continue
 1.47549 ++	    ;;
 1.47550 ++	  *)
 1.47551 ++	    if test "$prev" = dlfiles; then
 1.47552 ++	      dlfiles="$dlfiles $arg"
 1.47553 ++	    else
 1.47554 ++	      dlprefiles="$dlprefiles $arg"
 1.47555 ++	    fi
 1.47556 ++	    prev=
 1.47557 ++	    continue
 1.47558 ++	    ;;
 1.47559 ++	  esac
 1.47560 ++	  ;;
 1.47561 ++	expsyms)
 1.47562 ++	  export_symbols="$arg"
 1.47563 ++	  test -f "$arg" \
 1.47564 ++	    || func_fatal_error "symbol file \`$arg' does not exist"
 1.47565 ++	  prev=
 1.47566 ++	  continue
 1.47567 ++	  ;;
 1.47568 ++	expsyms_regex)
 1.47569 ++	  export_symbols_regex="$arg"
 1.47570 ++	  prev=
 1.47571 ++	  continue
 1.47572 ++	  ;;
 1.47573 ++	framework)
 1.47574 ++	  case $host in
 1.47575 ++	    *-*-darwin*)
 1.47576 ++	      case "$deplibs " in
 1.47577 ++		*" $qarg.ltframework "*) ;;
 1.47578 ++		*) deplibs="$deplibs $qarg.ltframework" # this is fixed later
 1.47579 ++		   ;;
 1.47580 ++	      esac
 1.47581 ++	      ;;
 1.47582 ++   	  esac
 1.47583 ++	  prev=
 1.47584 ++	  continue
 1.47585 ++	  ;;
 1.47586 ++	inst_prefix)
 1.47587 ++	  inst_prefix_dir="$arg"
 1.47588 ++	  prev=
 1.47589 ++	  continue
 1.47590 ++	  ;;
 1.47591 ++	objectlist)
 1.47592 ++	  if test -f "$arg"; then
 1.47593 ++	    save_arg=$arg
 1.47594 ++	    moreargs=
 1.47595 ++	    for fil in `cat "$save_arg"`
 1.47596 ++	    do
 1.47597 ++#	      moreargs="$moreargs $fil"
 1.47598 ++	      arg=$fil
 1.47599 ++	      # A libtool-controlled object.
 1.47600 ++
 1.47601 ++	      # Check to see that this really is a libtool object.
 1.47602 ++	      if func_lalib_unsafe_p "$arg"; then
 1.47603 ++		pic_object=
 1.47604 ++		non_pic_object=
 1.47605 ++
 1.47606 ++		# Read the .lo file
 1.47607 ++		func_source "$arg"
 1.47608 ++
 1.47609 ++		if test -z "$pic_object" ||
 1.47610 ++		   test -z "$non_pic_object" ||
 1.47611 ++		   test "$pic_object" = none &&
 1.47612 ++		   test "$non_pic_object" = none; then
 1.47613 ++		  func_fatal_error "cannot find name of object for \`$arg'"
 1.47614 ++		fi
 1.47615 ++
 1.47616 ++		# Extract subdirectory from the argument.
 1.47617 ++		func_dirname "$arg" "/" ""
 1.47618 ++		xdir="$func_dirname_result"
 1.47619 ++
 1.47620 ++		if test "$pic_object" != none; then
 1.47621 ++		  # Prepend the subdirectory the object is found in.
 1.47622 ++		  pic_object="$xdir$pic_object"
 1.47623 ++
 1.47624 ++		  if test "$prev" = dlfiles; then
 1.47625 ++		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
 1.47626 ++		      dlfiles="$dlfiles $pic_object"
 1.47627 ++		      prev=
 1.47628 ++		      continue
 1.47629 ++		    else
 1.47630 ++		      # If libtool objects are unsupported, then we need to preload.
 1.47631 ++		      prev=dlprefiles
 1.47632 ++		    fi
 1.47633 ++		  fi
 1.47634 ++
 1.47635 ++		  # CHECK ME:  I think I busted this.  -Ossama
 1.47636 ++		  if test "$prev" = dlprefiles; then
 1.47637 ++		    # Preload the old-style object.
 1.47638 ++		    dlprefiles="$dlprefiles $pic_object"
 1.47639 ++		    prev=
 1.47640 ++		  fi
 1.47641 ++
 1.47642 ++		  # A PIC object.
 1.47643 ++		  func_append libobjs " $pic_object"
 1.47644 ++		  arg="$pic_object"
 1.47645 ++		fi
 1.47646 ++
 1.47647 ++		# Non-PIC object.
 1.47648 ++		if test "$non_pic_object" != none; then
 1.47649 ++		  # Prepend the subdirectory the object is found in.
 1.47650 ++		  non_pic_object="$xdir$non_pic_object"
 1.47651 ++
 1.47652 ++		  # A standard non-PIC object
 1.47653 ++		  func_append non_pic_objects " $non_pic_object"
 1.47654 ++		  if test -z "$pic_object" || test "$pic_object" = none ; then
 1.47655 ++		    arg="$non_pic_object"
 1.47656 ++		  fi
 1.47657 ++		else
 1.47658 ++		  # If the PIC object exists, use it instead.
 1.47659 ++		  # $xdir was prepended to $pic_object above.
 1.47660 ++		  non_pic_object="$pic_object"
 1.47661 ++		  func_append non_pic_objects " $non_pic_object"
 1.47662 ++		fi
 1.47663 ++	      else
 1.47664 ++		# Only an error if not doing a dry-run.
 1.47665 ++		if $opt_dry_run; then
 1.47666 ++		  # Extract subdirectory from the argument.
 1.47667 ++		  func_dirname "$arg" "/" ""
 1.47668 ++		  xdir="$func_dirname_result"
 1.47669 ++
 1.47670 ++		  func_lo2o "$arg"
 1.47671 ++		  pic_object=$xdir$objdir/$func_lo2o_result
 1.47672 ++		  non_pic_object=$xdir$func_lo2o_result
 1.47673 ++		  func_append libobjs " $pic_object"
 1.47674 ++		  func_append non_pic_objects " $non_pic_object"
 1.47675 ++	        else
 1.47676 ++		  func_fatal_error "\`$arg' is not a valid libtool object"
 1.47677 ++		fi
 1.47678 ++	      fi
 1.47679 ++	    done
 1.47680 ++	  else
 1.47681 ++	    func_fatal_error "link input file \`$arg' does not exist"
 1.47682 ++	  fi
 1.47683 ++	  arg=$save_arg
 1.47684 ++	  prev=
 1.47685 ++	  continue
 1.47686 ++	  ;;
 1.47687 ++	precious_regex)
 1.47688 ++	  precious_files_regex="$arg"
 1.47689 ++	  prev=
 1.47690 ++	  continue
 1.47691 ++	  ;;
 1.47692 ++	release)
 1.47693 ++	  release="-$arg"
 1.47694 ++	  prev=
 1.47695 ++	  continue
 1.47696 ++	  ;;
 1.47697 ++	rpath | xrpath)
 1.47698 ++	  # We need an absolute path.
 1.47699 ++	  case $arg in
 1.47700 ++	  [\\/]* | [A-Za-z]:[\\/]*) ;;
 1.47701 ++	  *)
 1.47702 ++	    func_fatal_error "only absolute run-paths are allowed"
 1.47703 ++	    ;;
 1.47704 ++	  esac
 1.47705 ++	  if test "$prev" = rpath; then
 1.47706 ++	    case "$rpath " in
 1.47707 ++	    *" $arg "*) ;;
 1.47708 ++	    *) rpath="$rpath $arg" ;;
 1.47709 ++	    esac
 1.47710 ++	  else
 1.47711 ++	    case "$xrpath " in
 1.47712 ++	    *" $arg "*) ;;
 1.47713 ++	    *) xrpath="$xrpath $arg" ;;
 1.47714 ++	    esac
 1.47715 ++	  fi
 1.47716 ++	  prev=
 1.47717 ++	  continue
 1.47718 ++	  ;;
 1.47719 ++	shrext)
 1.47720 ++  	  shrext_cmds="$arg"
 1.47721 ++	  prev=
 1.47722 ++	  continue
 1.47723 ++	  ;;
 1.47724 ++	weak)
 1.47725 ++	  weak_libs="$weak_libs $arg"
 1.47726 ++	  prev=
 1.47727 ++	  continue
 1.47728 ++	  ;;
 1.47729 ++	xcclinker)
 1.47730 ++	  linker_flags="$linker_flags $qarg"
 1.47731 ++	  compiler_flags="$compiler_flags $qarg"
 1.47732 ++	  prev=
 1.47733 ++	  func_append compile_command " $qarg"
 1.47734 ++	  func_append finalize_command " $qarg"
 1.47735 ++	  continue
 1.47736 ++	  ;;
 1.47737 ++	xcompiler)
 1.47738 ++	  compiler_flags="$compiler_flags $qarg"
 1.47739 ++	  prev=
 1.47740 ++	  func_append compile_command " $qarg"
 1.47741 ++	  func_append finalize_command " $qarg"
 1.47742 ++	  continue
 1.47743 ++	  ;;
 1.47744 ++	xlinker)
 1.47745 ++	  linker_flags="$linker_flags $qarg"
 1.47746 ++	  compiler_flags="$compiler_flags $wl$qarg"
 1.47747 ++	  prev=
 1.47748 ++	  func_append compile_command " $wl$qarg"
 1.47749 ++	  func_append finalize_command " $wl$qarg"
 1.47750 ++	  continue
 1.47751 ++	  ;;
 1.47752 ++	*)
 1.47753 ++	  eval "$prev=\"\$arg\""
 1.47754 ++	  prev=
 1.47755 ++	  continue
 1.47756 ++	  ;;
 1.47757 ++	esac
 1.47758 ++      fi # test -n "$prev"
 1.47759 ++
 1.47760 ++      prevarg="$arg"
 1.47761 ++
 1.47762 ++      case $arg in
 1.47763 ++      -all-static)
 1.47764 ++	# The effects of -all-static are defined in a previous loop.
 1.47765 ++	continue
 1.47766 ++	;;
 1.47767 ++
 1.47768 ++      -allow-undefined)
 1.47769 ++	# FIXME: remove this flag sometime in the future.
 1.47770 ++	func_fatal_error "\`-allow-undefined' must not be used because it is the default"
 1.47771 ++	;;
 1.47772 ++
 1.47773 ++      -avoid-version)
 1.47774 ++	avoid_version=yes
 1.47775 ++	continue
 1.47776 ++	;;
 1.47777 ++
 1.47778 ++      -dlopen)
 1.47779 ++	prev=dlfiles
 1.47780 ++	continue
 1.47781 ++	;;
 1.47782 ++
 1.47783 ++      -dlpreopen)
 1.47784 ++	prev=dlprefiles
 1.47785 ++	continue
 1.47786 ++	;;
 1.47787 ++
 1.47788 ++      -export-dynamic)
 1.47789 ++	export_dynamic=yes
 1.47790 ++	continue
 1.47791 ++	;;
 1.47792 ++
 1.47793 ++      -export-symbols | -export-symbols-regex)
 1.47794 ++	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
 1.47795 ++	  func_fatal_error "more than one -exported-symbols argument is not allowed"
 1.47796 ++	fi
 1.47797 ++	if test "X$arg" = "X-export-symbols"; then
 1.47798 ++	  prev=expsyms
 1.47799 ++	else
 1.47800 ++	  prev=expsyms_regex
 1.47801 ++	fi
 1.47802 ++	continue
 1.47803 ++	;;
 1.47804 ++
 1.47805 ++      -framework)
 1.47806 ++	prev=framework
 1.47807 ++	continue
 1.47808 ++	;;
 1.47809 ++
 1.47810 ++      -inst-prefix-dir)
 1.47811 ++	prev=inst_prefix
 1.47812 ++	continue
 1.47813 ++	;;
 1.47814 ++
 1.47815 ++      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
 1.47816 ++      # so, if we see these flags be careful not to treat them like -L
 1.47817 ++      -L[A-Z][A-Z]*:*)
 1.47818 ++	case $with_gcc/$host in
 1.47819 ++	no/*-*-irix* | /*-*-irix*)
 1.47820 ++	  func_append compile_command " $arg"
 1.47821 ++	  func_append finalize_command " $arg"
 1.47822 ++	  ;;
 1.47823 ++	esac
 1.47824 ++	continue
 1.47825 ++	;;
 1.47826 ++
 1.47827 ++      -L*)
 1.47828 ++	func_stripname '-L' '' "$arg"
 1.47829 ++	dir=$func_stripname_result
 1.47830 ++	# We need an absolute path.
 1.47831 ++	case $dir in
 1.47832 ++	[\\/]* | [A-Za-z]:[\\/]*) ;;
 1.47833 ++	*)
 1.47834 ++	  absdir=`cd "$dir" && pwd`
 1.47835 ++	  test -z "$absdir" && \
 1.47836 ++	    func_fatal_error "cannot determine absolute directory name of \`$dir'"
 1.47837 ++	  dir="$absdir"
 1.47838 ++	  ;;
 1.47839 ++	esac
 1.47840 ++	case "$deplibs " in
 1.47841 ++	*" -L$dir "*) ;;
 1.47842 ++	*)
 1.47843 ++	  deplibs="$deplibs -L$dir"
 1.47844 ++	  lib_search_path="$lib_search_path $dir"
 1.47845 ++	  ;;
 1.47846 ++	esac
 1.47847 ++	case $host in
 1.47848 ++	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
 1.47849 ++	  testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
 1.47850 ++	  case :$dllsearchpath: in
 1.47851 ++	  *":$dir:"*) ;;
 1.47852 ++	  *) dllsearchpath="$dllsearchpath:$dir";;
 1.47853 ++	  esac
 1.47854 ++	  case :$dllsearchpath: in
 1.47855 ++	  *":$testbindir:"*) ;;
 1.47856 ++	  *) dllsearchpath="$dllsearchpath:$testbindir";;
 1.47857 ++	  esac
 1.47858 ++	  ;;
 1.47859 ++	esac
 1.47860 ++	continue
 1.47861 ++	;;
 1.47862 ++
 1.47863 ++      -l*)
 1.47864 ++	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
 1.47865 ++	  case $host in
 1.47866 ++	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
 1.47867 ++	    # These systems don't actually have a C or math library (as such)
 1.47868 ++	    continue
 1.47869 ++	    ;;
 1.47870 ++	  *-*-os2*)
 1.47871 ++	    # These systems don't actually have a C library (as such)
 1.47872 ++	    test "X$arg" = "X-lc" && continue
 1.47873 ++	    ;;
 1.47874 ++	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 1.47875 ++	    # Do not include libc due to us having libc/libc_r.
 1.47876 ++	    test "X$arg" = "X-lc" && continue
 1.47877 ++	    ;;
 1.47878 ++	  *-*-rhapsody* | *-*-darwin1.[012])
 1.47879 ++	    # Rhapsody C and math libraries are in the System framework
 1.47880 ++	    deplibs="$deplibs System.ltframework"
 1.47881 ++	    continue
 1.47882 ++	    ;;
 1.47883 ++	  *-*-sco3.2v5* | *-*-sco5v6*)
 1.47884 ++	    # Causes problems with __ctype
 1.47885 ++	    test "X$arg" = "X-lc" && continue
 1.47886 ++	    ;;
 1.47887 ++	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
 1.47888 ++	    # Compiler inserts libc in the correct place for threads to work
 1.47889 ++	    test "X$arg" = "X-lc" && continue
 1.47890 ++	    ;;
 1.47891 ++	  esac
 1.47892 ++	elif test "X$arg" = "X-lc_r"; then
 1.47893 ++	 case $host in
 1.47894 ++	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 1.47895 ++	   # Do not include libc_r directly, use -pthread flag.
 1.47896 ++	   continue
 1.47897 ++	   ;;
 1.47898 ++	 esac
 1.47899 ++	fi
 1.47900 ++	deplibs="$deplibs $arg"
 1.47901 ++	continue
 1.47902 ++	;;
 1.47903 ++
 1.47904 ++      -module)
 1.47905 ++	module=yes
 1.47906 ++	continue
 1.47907 ++	;;
 1.47908 ++
 1.47909 ++      # Tru64 UNIX uses -model [arg] to determine the layout of C++
 1.47910 ++      # classes, name mangling, and exception handling.
 1.47911 ++      # Darwin uses the -arch flag to determine output architecture.
 1.47912 ++      -model|-arch|-isysroot)
 1.47913 ++	compiler_flags="$compiler_flags $arg"
 1.47914 ++	func_append compile_command " $arg"
 1.47915 ++	func_append finalize_command " $arg"
 1.47916 ++	prev=xcompiler
 1.47917 ++	continue
 1.47918 ++	;;
 1.47919 ++
 1.47920 ++      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
 1.47921 ++	compiler_flags="$compiler_flags $arg"
 1.47922 ++	func_append compile_command " $arg"
 1.47923 ++	func_append finalize_command " $arg"
 1.47924 ++	case "$new_inherited_linker_flags " in
 1.47925 ++	    *" $arg "*) ;;
 1.47926 ++	    * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
 1.47927 ++	esac
 1.47928 ++	continue
 1.47929 ++	;;
 1.47930 ++
 1.47931 ++      -multi_module)
 1.47932 ++	single_module="${wl}-multi_module"
 1.47933 ++	continue
 1.47934 ++	;;
 1.47935 ++
 1.47936 ++      -no-fast-install)
 1.47937 ++	fast_install=no
 1.47938 ++	continue
 1.47939 ++	;;
 1.47940 ++
 1.47941 ++      -no-install)
 1.47942 ++	case $host in
 1.47943 ++	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
 1.47944 ++	  # The PATH hackery in wrapper scripts is required on Windows
 1.47945 ++	  # in order for the loader to find any dlls it needs.
 1.47946 ++	  func_warning "\`-no-install' is ignored for $host"
 1.47947 ++	  func_warning "assuming \`-no-fast-install' instead"
 1.47948 ++	  fast_install=no
 1.47949 ++	  ;;
 1.47950 ++	*) no_install=yes ;;
 1.47951 ++	esac
 1.47952 ++	continue
 1.47953 ++	;;
 1.47954 ++
 1.47955 ++      -no-undefined)
 1.47956 ++	allow_undefined=no
 1.47957 ++	continue
 1.47958 ++	;;
 1.47959 ++
 1.47960 ++      -objectlist)
 1.47961 ++	prev=objectlist
 1.47962 ++	continue
 1.47963 ++	;;
 1.47964 ++
 1.47965 ++      -o) prev=output ;;
 1.47966 ++
 1.47967 ++      -precious-files-regex)
 1.47968 ++	prev=precious_regex
 1.47969 ++	continue
 1.47970 ++	;;
 1.47971 ++
 1.47972 ++      -release)
 1.47973 ++	prev=release
 1.47974 ++	continue
 1.47975 ++	;;
 1.47976 ++
 1.47977 ++      -rpath)
 1.47978 ++	prev=rpath
 1.47979 ++	continue
 1.47980 ++	;;
 1.47981 ++
 1.47982 ++      -R)
 1.47983 ++	prev=xrpath
 1.47984 ++	continue
 1.47985 ++	;;
 1.47986 ++
 1.47987 ++      -R*)
 1.47988 ++	func_stripname '-R' '' "$arg"
 1.47989 ++	dir=$func_stripname_result
 1.47990 ++	# We need an absolute path.
 1.47991 ++	case $dir in
 1.47992 ++	[\\/]* | [A-Za-z]:[\\/]*) ;;
 1.47993 ++	*)
 1.47994 ++	  func_fatal_error "only absolute run-paths are allowed"
 1.47995 ++	  ;;
 1.47996 ++	esac
 1.47997 ++	case "$xrpath " in
 1.47998 ++	*" $dir "*) ;;
 1.47999 ++	*) xrpath="$xrpath $dir" ;;
 1.48000 ++	esac
 1.48001 ++	continue
 1.48002 ++	;;
 1.48003 ++
 1.48004 ++      -shared)
 1.48005 ++	# The effects of -shared are defined in a previous loop.
 1.48006 ++	continue
 1.48007 ++	;;
 1.48008 ++
 1.48009 ++      -shrext)
 1.48010 ++	prev=shrext
 1.48011 ++	continue
 1.48012 ++	;;
 1.48013 ++
 1.48014 ++      -static | -static-libtool-libs)
 1.48015 ++	# The effects of -static are defined in a previous loop.
 1.48016 ++	# We used to do the same as -all-static on platforms that
 1.48017 ++	# didn't have a PIC flag, but the assumption that the effects
 1.48018 ++	# would be equivalent was wrong.  It would break on at least
 1.48019 ++	# Digital Unix and AIX.
 1.48020 ++	continue
 1.48021 ++	;;
 1.48022 ++
 1.48023 ++      -thread-safe)
 1.48024 ++	thread_safe=yes
 1.48025 ++	continue
 1.48026 ++	;;
 1.48027 ++
 1.48028 ++      -version-info)
 1.48029 ++	prev=vinfo
 1.48030 ++	continue
 1.48031 ++	;;
 1.48032 ++
 1.48033 ++      -version-number)
 1.48034 ++	prev=vinfo
 1.48035 ++	vinfo_number=yes
 1.48036 ++	continue
 1.48037 ++	;;
 1.48038 ++
 1.48039 ++      -weak)
 1.48040 ++        prev=weak
 1.48041 ++	continue
 1.48042 ++	;;
 1.48043 ++
 1.48044 ++      -Wc,*)
 1.48045 ++	func_stripname '-Wc,' '' "$arg"
 1.48046 ++	args=$func_stripname_result
 1.48047 ++	arg=
 1.48048 ++	save_ifs="$IFS"; IFS=','
 1.48049 ++	for flag in $args; do
 1.48050 ++	  IFS="$save_ifs"
 1.48051 ++          func_quote_for_eval "$flag"
 1.48052 ++	  arg="$arg $wl$func_quote_for_eval_result"
 1.48053 ++	  compiler_flags="$compiler_flags $func_quote_for_eval_result"
 1.48054 ++	done
 1.48055 ++	IFS="$save_ifs"
 1.48056 ++	func_stripname ' ' '' "$arg"
 1.48057 ++	arg=$func_stripname_result
 1.48058 ++	;;
 1.48059 ++
 1.48060 ++      -Wl,*)
 1.48061 ++	func_stripname '-Wl,' '' "$arg"
 1.48062 ++	args=$func_stripname_result
 1.48063 ++	arg=
 1.48064 ++	save_ifs="$IFS"; IFS=','
 1.48065 ++	for flag in $args; do
 1.48066 ++	  IFS="$save_ifs"
 1.48067 ++          func_quote_for_eval "$flag"
 1.48068 ++	  arg="$arg $wl$func_quote_for_eval_result"
 1.48069 ++	  compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
 1.48070 ++	  linker_flags="$linker_flags $func_quote_for_eval_result"
 1.48071 ++	done
 1.48072 ++	IFS="$save_ifs"
 1.48073 ++	func_stripname ' ' '' "$arg"
 1.48074 ++	arg=$func_stripname_result
 1.48075 ++	;;
 1.48076 ++
 1.48077 ++      -Xcompiler)
 1.48078 ++	prev=xcompiler
 1.48079 ++	continue
 1.48080 ++	;;
 1.48081 ++
 1.48082 ++      -Xlinker)
 1.48083 ++	prev=xlinker
 1.48084 ++	continue
 1.48085 ++	;;
 1.48086 ++
 1.48087 ++      -XCClinker)
 1.48088 ++	prev=xcclinker
 1.48089 ++	continue
 1.48090 ++	;;
 1.48091 ++
 1.48092 ++      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
 1.48093 ++      # -r[0-9][0-9]* specifies the processor on the SGI compiler
 1.48094 ++      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
 1.48095 ++      # +DA*, +DD* enable 64-bit mode on the HP compiler
 1.48096 ++      # -q* pass through compiler args for the IBM compiler
 1.48097 ++      # -m*, -t[45]*, -txscale* pass through architecture-specific
 1.48098 ++      # compiler args for GCC
 1.48099 ++      # -F/path gives path to uninstalled frameworks, gcc on darwin
 1.48100 ++      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
 1.48101 ++      # @file GCC response files
 1.48102 ++      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
 1.48103 ++      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
 1.48104 ++        func_quote_for_eval "$arg"
 1.48105 ++	arg="$func_quote_for_eval_result"
 1.48106 ++        func_append compile_command " $arg"
 1.48107 ++        func_append finalize_command " $arg"
 1.48108 ++        compiler_flags="$compiler_flags $arg"
 1.48109 ++        continue
 1.48110 ++        ;;
 1.48111 ++
 1.48112 ++      # Some other compiler flag.
 1.48113 ++      -* | +*)
 1.48114 ++        func_quote_for_eval "$arg"
 1.48115 ++	arg="$func_quote_for_eval_result"
 1.48116 ++	;;
 1.48117 ++
 1.48118 ++      *.$objext)
 1.48119 ++	# A standard object.
 1.48120 ++	objs="$objs $arg"
 1.48121 ++	;;
 1.48122 ++
 1.48123 ++      *.lo)
 1.48124 ++	# A libtool-controlled object.
 1.48125 ++
 1.48126 ++	# Check to see that this really is a libtool object.
 1.48127 ++	if func_lalib_unsafe_p "$arg"; then
 1.48128 ++	  pic_object=
 1.48129 ++	  non_pic_object=
 1.48130 ++
 1.48131 ++	  # Read the .lo file
 1.48132 ++	  func_source "$arg"
 1.48133 ++
 1.48134 ++	  if test -z "$pic_object" ||
 1.48135 ++	     test -z "$non_pic_object" ||
 1.48136 ++	     test "$pic_object" = none &&
 1.48137 ++	     test "$non_pic_object" = none; then
 1.48138 ++	    func_fatal_error "cannot find name of object for \`$arg'"
 1.48139 ++	  fi
 1.48140 ++
 1.48141 ++	  # Extract subdirectory from the argument.
 1.48142 ++	  func_dirname "$arg" "/" ""
 1.48143 ++	  xdir="$func_dirname_result"
 1.48144 ++
 1.48145 ++	  if test "$pic_object" != none; then
 1.48146 ++	    # Prepend the subdirectory the object is found in.
 1.48147 ++	    pic_object="$xdir$pic_object"
 1.48148 ++
 1.48149 ++	    if test "$prev" = dlfiles; then
 1.48150 ++	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
 1.48151 ++		dlfiles="$dlfiles $pic_object"
 1.48152 ++		prev=
 1.48153 ++		continue
 1.48154 ++	      else
 1.48155 ++		# If libtool objects are unsupported, then we need to preload.
 1.48156 ++		prev=dlprefiles
 1.48157 ++	      fi
 1.48158 ++	    fi
 1.48159 ++
 1.48160 ++	    # CHECK ME:  I think I busted this.  -Ossama
 1.48161 ++	    if test "$prev" = dlprefiles; then
 1.48162 ++	      # Preload the old-style object.
 1.48163 ++	      dlprefiles="$dlprefiles $pic_object"
 1.48164 ++	      prev=
 1.48165 ++	    fi
 1.48166 ++
 1.48167 ++	    # A PIC object.
 1.48168 ++	    func_append libobjs " $pic_object"
 1.48169 ++	    arg="$pic_object"
 1.48170 ++	  fi
 1.48171 ++
 1.48172 ++	  # Non-PIC object.
 1.48173 ++	  if test "$non_pic_object" != none; then
 1.48174 ++	    # Prepend the subdirectory the object is found in.
 1.48175 ++	    non_pic_object="$xdir$non_pic_object"
 1.48176 ++
 1.48177 ++	    # A standard non-PIC object
 1.48178 ++	    func_append non_pic_objects " $non_pic_object"
 1.48179 ++	    if test -z "$pic_object" || test "$pic_object" = none ; then
 1.48180 ++	      arg="$non_pic_object"
 1.48181 ++	    fi
 1.48182 ++	  else
 1.48183 ++	    # If the PIC object exists, use it instead.
 1.48184 ++	    # $xdir was prepended to $pic_object above.
 1.48185 ++	    non_pic_object="$pic_object"
 1.48186 ++	    func_append non_pic_objects " $non_pic_object"
 1.48187 ++	  fi
 1.48188 ++	else
 1.48189 ++	  # Only an error if not doing a dry-run.
 1.48190 ++	  if $opt_dry_run; then
 1.48191 ++	    # Extract subdirectory from the argument.
 1.48192 ++	    func_dirname "$arg" "/" ""
 1.48193 ++	    xdir="$func_dirname_result"
 1.48194 ++
 1.48195 ++	    func_lo2o "$arg"
 1.48196 ++	    pic_object=$xdir$objdir/$func_lo2o_result
 1.48197 ++	    non_pic_object=$xdir$func_lo2o_result
 1.48198 ++	    func_append libobjs " $pic_object"
 1.48199 ++	    func_append non_pic_objects " $non_pic_object"
 1.48200 ++	  else
 1.48201 ++	    func_fatal_error "\`$arg' is not a valid libtool object"
 1.48202 ++	  fi
 1.48203 ++	fi
 1.48204 ++	;;
 1.48205 ++
 1.48206 ++      *.$libext)
 1.48207 ++	# An archive.
 1.48208 ++	deplibs="$deplibs $arg"
 1.48209 ++	old_deplibs="$old_deplibs $arg"
 1.48210 ++	continue
 1.48211 ++	;;
 1.48212 ++
 1.48213 ++      *.la)
 1.48214 ++	# A libtool-controlled library.
 1.48215 ++
 1.48216 ++	if test "$prev" = dlfiles; then
 1.48217 ++	  # This library was specified with -dlopen.
 1.48218 ++	  dlfiles="$dlfiles $arg"
 1.48219 ++	  prev=
 1.48220 ++	elif test "$prev" = dlprefiles; then
 1.48221 ++	  # The library was specified with -dlpreopen.
 1.48222 ++	  dlprefiles="$dlprefiles $arg"
 1.48223 ++	  prev=
 1.48224 ++	else
 1.48225 ++	  deplibs="$deplibs $arg"
 1.48226 ++	fi
 1.48227 ++	continue
 1.48228 ++	;;
 1.48229 ++
 1.48230 ++      # Some other compiler argument.
 1.48231 ++      *)
 1.48232 ++	# Unknown arguments in both finalize_command and compile_command need
 1.48233 ++	# to be aesthetically quoted because they are evaled later.
 1.48234 ++	func_quote_for_eval "$arg"
 1.48235 ++	arg="$func_quote_for_eval_result"
 1.48236 ++	;;
 1.48237 ++      esac # arg
 1.48238 ++
 1.48239 ++      # Now actually substitute the argument into the commands.
 1.48240 ++      if test -n "$arg"; then
 1.48241 ++	func_append compile_command " $arg"
 1.48242 ++	func_append finalize_command " $arg"
 1.48243 ++      fi
 1.48244 ++    done # argument parsing loop
 1.48245 ++
 1.48246 ++    test -n "$prev" && \
 1.48247 ++      func_fatal_help "the \`$prevarg' option requires an argument"
 1.48248 ++
 1.48249 ++    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
 1.48250 ++      eval arg=\"$export_dynamic_flag_spec\"
 1.48251 ++      func_append compile_command " $arg"
 1.48252 ++      func_append finalize_command " $arg"
 1.48253 ++    fi
 1.48254 ++
 1.48255 ++    oldlibs=
 1.48256 ++    # calculate the name of the file, without its directory
 1.48257 ++    func_basename "$output"
 1.48258 ++    outputname="$func_basename_result"
 1.48259 ++    libobjs_save="$libobjs"
 1.48260 ++
 1.48261 ++    if test -n "$shlibpath_var"; then
 1.48262 ++      # get the directories listed in $shlibpath_var
 1.48263 ++      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
 1.48264 ++    else
 1.48265 ++      shlib_search_path=
 1.48266 ++    fi
 1.48267 ++    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
 1.48268 ++    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
 1.48269 ++
 1.48270 ++    func_dirname "$output" "/" ""
 1.48271 ++    output_objdir="$func_dirname_result$objdir"
 1.48272 ++    # Create the object directory.
 1.48273 ++    func_mkdir_p "$output_objdir"
 1.48274 ++
 1.48275 ++    # Determine the type of output
 1.48276 ++    case $output in
 1.48277 ++    "")
 1.48278 ++      func_fatal_help "you must specify an output file"
 1.48279 ++      ;;
 1.48280 ++    *.$libext) linkmode=oldlib ;;
 1.48281 ++    *.lo | *.$objext) linkmode=obj ;;
 1.48282 ++    *.la) linkmode=lib ;;
 1.48283 ++    *) linkmode=prog ;; # Anything else should be a program.
 1.48284 ++    esac
 1.48285 ++
 1.48286 ++    specialdeplibs=
 1.48287 ++
 1.48288 ++    libs=
 1.48289 ++    # Find all interdependent deplibs by searching for libraries
 1.48290 ++    # that are linked more than once (e.g. -la -lb -la)
 1.48291 ++    for deplib in $deplibs; do
 1.48292 ++      if $opt_duplicate_deps ; then
 1.48293 ++	case "$libs " in
 1.48294 ++	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 1.48295 ++	esac
 1.48296 ++      fi
 1.48297 ++      libs="$libs $deplib"
 1.48298 ++    done
 1.48299 ++
 1.48300 ++    if test "$linkmode" = lib; then
 1.48301 ++      libs="$predeps $libs $compiler_lib_search_path $postdeps"
 1.48302 ++
 1.48303 ++      # Compute libraries that are listed more than once in $predeps
 1.48304 ++      # $postdeps and mark them as special (i.e., whose duplicates are
 1.48305 ++      # not to be eliminated).
 1.48306 ++      pre_post_deps=
 1.48307 ++      if $opt_duplicate_compiler_generated_deps; then
 1.48308 ++	for pre_post_dep in $predeps $postdeps; do
 1.48309 ++	  case "$pre_post_deps " in
 1.48310 ++	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
 1.48311 ++	  esac
 1.48312 ++	  pre_post_deps="$pre_post_deps $pre_post_dep"
 1.48313 ++	done
 1.48314 ++      fi
 1.48315 ++      pre_post_deps=
 1.48316 ++    fi
 1.48317 ++
 1.48318 ++    deplibs=
 1.48319 ++    newdependency_libs=
 1.48320 ++    newlib_search_path=
 1.48321 ++    need_relink=no # whether we're linking any uninstalled libtool libraries
 1.48322 ++    notinst_deplibs= # not-installed libtool libraries
 1.48323 ++    notinst_path= # paths that contain not-installed libtool libraries
 1.48324 ++
 1.48325 ++    case $linkmode in
 1.48326 ++    lib)
 1.48327 ++	passes="conv dlpreopen link"
 1.48328 ++	for file in $dlfiles $dlprefiles; do
 1.48329 ++	  case $file in
 1.48330 ++	  *.la) ;;
 1.48331 ++	  *)
 1.48332 ++	    func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
 1.48333 ++	    ;;
 1.48334 ++	  esac
 1.48335 ++	done
 1.48336 ++	;;
 1.48337 ++    prog)
 1.48338 ++	compile_deplibs=
 1.48339 ++	finalize_deplibs=
 1.48340 ++	alldeplibs=no
 1.48341 ++	newdlfiles=
 1.48342 ++	newdlprefiles=
 1.48343 ++	passes="conv scan dlopen dlpreopen link"
 1.48344 ++	;;
 1.48345 ++    *)  passes="conv"
 1.48346 ++	;;
 1.48347 ++    esac
 1.48348 ++
 1.48349 ++    for pass in $passes; do
 1.48350 ++      # The preopen pass in lib mode reverses $deplibs; put it back here
 1.48351 ++      # so that -L comes before libs that need it for instance...
 1.48352 ++      if test "$linkmode,$pass" = "lib,link"; then
 1.48353 ++	## FIXME: Find the place where the list is rebuilt in the wrong
 1.48354 ++	##        order, and fix it there properly
 1.48355 ++        tmp_deplibs=
 1.48356 ++	for deplib in $deplibs; do
 1.48357 ++	  tmp_deplibs="$deplib $tmp_deplibs"
 1.48358 ++	done
 1.48359 ++	deplibs="$tmp_deplibs"
 1.48360 ++      fi
 1.48361 ++
 1.48362 ++      if test "$linkmode,$pass" = "lib,link" ||
 1.48363 ++	 test "$linkmode,$pass" = "prog,scan"; then
 1.48364 ++	libs="$deplibs"
 1.48365 ++	deplibs=
 1.48366 ++      fi
 1.48367 ++      if test "$linkmode" = prog; then
 1.48368 ++	case $pass in
 1.48369 ++	dlopen) libs="$dlfiles" ;;
 1.48370 ++	dlpreopen) libs="$dlprefiles" ;;
 1.48371 ++	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
 1.48372 ++	esac
 1.48373 ++      fi
 1.48374 ++      if test "$linkmode,$pass" = "lib,dlpreopen"; then
 1.48375 ++	# Collect and forward deplibs of preopened libtool libs
 1.48376 ++	for lib in $dlprefiles; do
 1.48377 ++	  # Ignore non-libtool-libs
 1.48378 ++	  dependency_libs=
 1.48379 ++	  case $lib in
 1.48380 ++	  *.la)	func_source "$lib" ;;
 1.48381 ++	  esac
 1.48382 ++
 1.48383 ++	  # Collect preopened libtool deplibs, except any this library
 1.48384 ++	  # has declared as weak libs
 1.48385 ++	  for deplib in $dependency_libs; do
 1.48386 ++            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
 1.48387 ++	    case " $weak_libs " in
 1.48388 ++	    *" $deplib_base "*) ;;
 1.48389 ++	    *) deplibs="$deplibs $deplib" ;;
 1.48390 ++	    esac
 1.48391 ++	  done
 1.48392 ++	done
 1.48393 ++	libs="$dlprefiles"
 1.48394 ++      fi
 1.48395 ++      if test "$pass" = dlopen; then
 1.48396 ++	# Collect dlpreopened libraries
 1.48397 ++	save_deplibs="$deplibs"
 1.48398 ++	deplibs=
 1.48399 ++      fi
 1.48400 ++
 1.48401 ++      for deplib in $libs; do
 1.48402 ++	lib=
 1.48403 ++	found=no
 1.48404 ++	case $deplib in
 1.48405 ++	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
 1.48406 ++	  if test "$linkmode,$pass" = "prog,link"; then
 1.48407 ++	    compile_deplibs="$deplib $compile_deplibs"
 1.48408 ++	    finalize_deplibs="$deplib $finalize_deplibs"
 1.48409 ++	  else
 1.48410 ++	    compiler_flags="$compiler_flags $deplib"
 1.48411 ++	    if test "$linkmode" = lib ; then
 1.48412 ++		case "$new_inherited_linker_flags " in
 1.48413 ++		    *" $deplib "*) ;;
 1.48414 ++		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
 1.48415 ++		esac
 1.48416 ++	    fi
 1.48417 ++	  fi
 1.48418 ++	  continue
 1.48419 ++	  ;;
 1.48420 ++	-l*)
 1.48421 ++	  if test "$linkmode" != lib && test "$linkmode" != prog; then
 1.48422 ++	    func_warning "\`-l' is ignored for archives/objects"
 1.48423 ++	    continue
 1.48424 ++	  fi
 1.48425 ++	  func_stripname '-l' '' "$deplib"
 1.48426 ++	  name=$func_stripname_result
 1.48427 ++	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
 1.48428 ++	    for search_ext in .la $std_shrext .so .a; do
 1.48429 ++	      # Search the libtool library
 1.48430 ++	      lib="$searchdir/lib${name}${search_ext}"
 1.48431 ++	      if test -f "$lib"; then
 1.48432 ++		if test "$search_ext" = ".la"; then
 1.48433 ++		  found=yes
 1.48434 ++		else
 1.48435 ++		  found=no
 1.48436 ++		fi
 1.48437 ++		break 2
 1.48438 ++	      fi
 1.48439 ++	    done
 1.48440 ++	  done
 1.48441 ++	  if test "$found" != yes; then
 1.48442 ++	    # deplib doesn't seem to be a libtool library
 1.48443 ++	    if test "$linkmode,$pass" = "prog,link"; then
 1.48444 ++	      compile_deplibs="$deplib $compile_deplibs"
 1.48445 ++	      finalize_deplibs="$deplib $finalize_deplibs"
 1.48446 ++	    else
 1.48447 ++	      deplibs="$deplib $deplibs"
 1.48448 ++	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
 1.48449 ++	    fi
 1.48450 ++	    continue
 1.48451 ++	  else # deplib is a libtool library
 1.48452 ++	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
 1.48453 ++	    # We need to do some special things here, and not later.
 1.48454 ++	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 1.48455 ++	      case " $predeps $postdeps " in
 1.48456 ++	      *" $deplib "*)
 1.48457 ++		if func_lalib_p "$lib"; then
 1.48458 ++		  library_names=
 1.48459 ++		  old_library=
 1.48460 ++		  func_source "$lib"
 1.48461 ++		  for l in $old_library $library_names; do
 1.48462 ++		    ll="$l"
 1.48463 ++		  done
 1.48464 ++		  if test "X$ll" = "X$old_library" ; then # only static version available
 1.48465 ++		    found=no
 1.48466 ++		    func_dirname "$lib" "" "."
 1.48467 ++		    ladir="$func_dirname_result"
 1.48468 ++		    lib=$ladir/$old_library
 1.48469 ++		    if test "$linkmode,$pass" = "prog,link"; then
 1.48470 ++		      compile_deplibs="$deplib $compile_deplibs"
 1.48471 ++		      finalize_deplibs="$deplib $finalize_deplibs"
 1.48472 ++		    else
 1.48473 ++		      deplibs="$deplib $deplibs"
 1.48474 ++		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
 1.48475 ++		    fi
 1.48476 ++		    continue
 1.48477 ++		  fi
 1.48478 ++		fi
 1.48479 ++		;;
 1.48480 ++	      *) ;;
 1.48481 ++	      esac
 1.48482 ++	    fi
 1.48483 ++	  fi
 1.48484 ++	  ;; # -l
 1.48485 ++	*.ltframework)
 1.48486 ++	  if test "$linkmode,$pass" = "prog,link"; then
 1.48487 ++	    compile_deplibs="$deplib $compile_deplibs"
 1.48488 ++	    finalize_deplibs="$deplib $finalize_deplibs"
 1.48489 ++	  else
 1.48490 ++	    deplibs="$deplib $deplibs"
 1.48491 ++	    if test "$linkmode" = lib ; then
 1.48492 ++		case "$new_inherited_linker_flags " in
 1.48493 ++		    *" $deplib "*) ;;
 1.48494 ++		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
 1.48495 ++		esac
 1.48496 ++	    fi
 1.48497 ++	  fi
 1.48498 ++	  continue
 1.48499 ++	  ;;
 1.48500 ++	-L*)
 1.48501 ++	  case $linkmode in
 1.48502 ++	  lib)
 1.48503 ++	    deplibs="$deplib $deplibs"
 1.48504 ++	    test "$pass" = conv && continue
 1.48505 ++	    newdependency_libs="$deplib $newdependency_libs"
 1.48506 ++	    func_stripname '-L' '' "$deplib"
 1.48507 ++	    newlib_search_path="$newlib_search_path $func_stripname_result"
 1.48508 ++	    ;;
 1.48509 ++	  prog)
 1.48510 ++	    if test "$pass" = conv; then
 1.48511 ++	      deplibs="$deplib $deplibs"
 1.48512 ++	      continue
 1.48513 ++	    fi
 1.48514 ++	    if test "$pass" = scan; then
 1.48515 ++	      deplibs="$deplib $deplibs"
 1.48516 ++	    else
 1.48517 ++	      compile_deplibs="$deplib $compile_deplibs"
 1.48518 ++	      finalize_deplibs="$deplib $finalize_deplibs"
 1.48519 ++	    fi
 1.48520 ++	    func_stripname '-L' '' "$deplib"
 1.48521 ++	    newlib_search_path="$newlib_search_path $func_stripname_result"
 1.48522 ++	    ;;
 1.48523 ++	  *)
 1.48524 ++	    func_warning "\`-L' is ignored for archives/objects"
 1.48525 ++	    ;;
 1.48526 ++	  esac # linkmode
 1.48527 ++	  continue
 1.48528 ++	  ;; # -L
 1.48529 ++	-R*)
 1.48530 ++	  if test "$pass" = link; then
 1.48531 ++	    func_stripname '-R' '' "$deplib"
 1.48532 ++	    dir=$func_stripname_result
 1.48533 ++	    # Make sure the xrpath contains only unique directories.
 1.48534 ++	    case "$xrpath " in
 1.48535 ++	    *" $dir "*) ;;
 1.48536 ++	    *) xrpath="$xrpath $dir" ;;
 1.48537 ++	    esac
 1.48538 ++	  fi
 1.48539 ++	  deplibs="$deplib $deplibs"
 1.48540 ++	  continue
 1.48541 ++	  ;;
 1.48542 ++	*.la) lib="$deplib" ;;
 1.48543 ++	*.$libext)
 1.48544 ++	  if test "$pass" = conv; then
 1.48545 ++	    deplibs="$deplib $deplibs"
 1.48546 ++	    continue
 1.48547 ++	  fi
 1.48548 ++	  case $linkmode in
 1.48549 ++	  lib)
 1.48550 ++	    # Linking convenience modules into shared libraries is allowed,
 1.48551 ++	    # but linking other static libraries is non-portable.
 1.48552 ++	    case " $dlpreconveniencelibs " in
 1.48553 ++	    *" $deplib "*) ;;
 1.48554 ++	    *)
 1.48555 ++	      valid_a_lib=no
 1.48556 ++	      case $deplibs_check_method in
 1.48557 ++		match_pattern*)
 1.48558 ++		  set dummy $deplibs_check_method; shift
 1.48559 ++		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
 1.48560 ++		  if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
 1.48561 ++		    | $EGREP "$match_pattern_regex" > /dev/null; then
 1.48562 ++		    valid_a_lib=yes
 1.48563 ++		  fi
 1.48564 ++		;;
 1.48565 ++		pass_all)
 1.48566 ++		  valid_a_lib=yes
 1.48567 ++		;;
 1.48568 ++	      esac
 1.48569 ++	      if test "$valid_a_lib" != yes; then
 1.48570 ++		$ECHO
 1.48571 ++		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
 1.48572 ++		$ECHO "*** I have the capability to make that library automatically link in when"
 1.48573 ++		$ECHO "*** you link to this library.  But I can only do this if you have a"
 1.48574 ++		$ECHO "*** shared version of the library, which you do not appear to have"
 1.48575 ++		$ECHO "*** because the file extensions .$libext of this argument makes me believe"
 1.48576 ++		$ECHO "*** that it is just a static archive that I should not use here."
 1.48577 ++	      else
 1.48578 ++		$ECHO
 1.48579 ++		$ECHO "*** Warning: Linking the shared library $output against the"
 1.48580 ++		$ECHO "*** static library $deplib is not portable!"
 1.48581 ++		deplibs="$deplib $deplibs"
 1.48582 ++	      fi
 1.48583 ++	      ;;
 1.48584 ++	    esac
 1.48585 ++	    continue
 1.48586 ++	    ;;
 1.48587 ++	  prog)
 1.48588 ++	    if test "$pass" != link; then
 1.48589 ++	      deplibs="$deplib $deplibs"
 1.48590 ++	    else
 1.48591 ++	      compile_deplibs="$deplib $compile_deplibs"
 1.48592 ++	      finalize_deplibs="$deplib $finalize_deplibs"
 1.48593 ++	    fi
 1.48594 ++	    continue
 1.48595 ++	    ;;
 1.48596 ++	  esac # linkmode
 1.48597 ++	  ;; # *.$libext
 1.48598 ++	*.lo | *.$objext)
 1.48599 ++	  if test "$pass" = conv; then
 1.48600 ++	    deplibs="$deplib $deplibs"
 1.48601 ++	  elif test "$linkmode" = prog; then
 1.48602 ++	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
 1.48603 ++	      # If there is no dlopen support or we're linking statically,
 1.48604 ++	      # we need to preload.
 1.48605 ++	      newdlprefiles="$newdlprefiles $deplib"
 1.48606 ++	      compile_deplibs="$deplib $compile_deplibs"
 1.48607 ++	      finalize_deplibs="$deplib $finalize_deplibs"
 1.48608 ++	    else
 1.48609 ++	      newdlfiles="$newdlfiles $deplib"
 1.48610 ++	    fi
 1.48611 ++	  fi
 1.48612 ++	  continue
 1.48613 ++	  ;;
 1.48614 ++	%DEPLIBS%)
 1.48615 ++	  alldeplibs=yes
 1.48616 ++	  continue
 1.48617 ++	  ;;
 1.48618 ++	esac # case $deplib
 1.48619 ++
 1.48620 ++	if test "$found" = yes || test -f "$lib"; then :
 1.48621 ++	else
 1.48622 ++	  func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
 1.48623 ++	fi
 1.48624 ++
 1.48625 ++	# Check to see that this really is a libtool archive.
 1.48626 ++	func_lalib_unsafe_p "$lib" \
 1.48627 ++	  || func_fatal_error "\`$lib' is not a valid libtool archive"
 1.48628 ++
 1.48629 ++	func_dirname "$lib" "" "."
 1.48630 ++	ladir="$func_dirname_result"
 1.48631 ++
 1.48632 ++	dlname=
 1.48633 ++	dlopen=
 1.48634 ++	dlpreopen=
 1.48635 ++	libdir=
 1.48636 ++	library_names=
 1.48637 ++	old_library=
 1.48638 ++	inherited_linker_flags=
 1.48639 ++	# If the library was installed with an old release of libtool,
 1.48640 ++	# it will not redefine variables installed, or shouldnotlink
 1.48641 ++	installed=yes
 1.48642 ++	shouldnotlink=no
 1.48643 ++	avoidtemprpath=
 1.48644 ++
 1.48645 ++
 1.48646 ++	# Read the .la file
 1.48647 ++	func_source "$lib"
 1.48648 ++
 1.48649 ++	# Convert "-framework foo" to "foo.ltframework"
 1.48650 ++	if test -n "$inherited_linker_flags"; then
 1.48651 ++	  tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
 1.48652 ++	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
 1.48653 ++	    case " $new_inherited_linker_flags " in
 1.48654 ++	      *" $tmp_inherited_linker_flag "*) ;;
 1.48655 ++	      *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
 1.48656 ++	    esac
 1.48657 ++	  done
 1.48658 ++	fi
 1.48659 ++	dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 1.48660 ++	if test "$linkmode,$pass" = "prog,link"; then
 1.48661 ++	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
 1.48662 ++	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
 1.48663 ++	else
 1.48664 ++	  compiler_flags="$compiler_flags $inherited_linker_flags"
 1.48665 ++	fi
 1.48666 ++	if test "$linkmode,$pass" = "lib,link" ||
 1.48667 ++	   test "$linkmode,$pass" = "prog,scan" ||
 1.48668 ++	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
 1.48669 ++	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
 1.48670 ++	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
 1.48671 ++	fi
 1.48672 ++
 1.48673 ++	if test "$pass" = conv; then
 1.48674 ++	  # Only check for convenience libraries
 1.48675 ++	  deplibs="$lib $deplibs"
 1.48676 ++	  if test -z "$libdir"; then
 1.48677 ++	    if test -z "$old_library"; then
 1.48678 ++	      func_fatal_error "cannot find name of link library for \`$lib'"
 1.48679 ++	    fi
 1.48680 ++	    # It is a libtool convenience library, so add in its objects.
 1.48681 ++	    convenience="$convenience $ladir/$objdir/$old_library"
 1.48682 ++	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
 1.48683 ++	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
 1.48684 ++	    func_fatal_error "\`$lib' is not a convenience library"
 1.48685 ++	  fi
 1.48686 ++	  tmp_libs=
 1.48687 ++	  for deplib in $dependency_libs; do
 1.48688 ++	    deplibs="$deplib $deplibs"
 1.48689 ++	    if $opt_duplicate_deps ; then
 1.48690 ++	      case "$tmp_libs " in
 1.48691 ++	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 1.48692 ++	      esac
 1.48693 ++	    fi
 1.48694 ++	    tmp_libs="$tmp_libs $deplib"
 1.48695 ++	  done
 1.48696 ++	  continue
 1.48697 ++	fi # $pass = conv
 1.48698 ++
 1.48699 ++
 1.48700 ++	# Get the name of the library we link against.
 1.48701 ++	linklib=
 1.48702 ++	for l in $old_library $library_names; do
 1.48703 ++	  linklib="$l"
 1.48704 ++	done
 1.48705 ++	if test -z "$linklib"; then
 1.48706 ++	  func_fatal_error "cannot find name of link library for \`$lib'"
 1.48707 ++	fi
 1.48708 ++
 1.48709 ++	# This library was specified with -dlopen.
 1.48710 ++	if test "$pass" = dlopen; then
 1.48711 ++	  if test -z "$libdir"; then
 1.48712 ++	    func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
 1.48713 ++	  fi
 1.48714 ++	  if test -z "$dlname" ||
 1.48715 ++	     test "$dlopen_support" != yes ||
 1.48716 ++	     test "$build_libtool_libs" = no; then
 1.48717 ++	    # If there is no dlname, no dlopen support or we're linking
 1.48718 ++	    # statically, we need to preload.  We also need to preload any
 1.48719 ++	    # dependent libraries so libltdl's deplib preloader doesn't
 1.48720 ++	    # bomb out in the load deplibs phase.
 1.48721 ++	    dlprefiles="$dlprefiles $lib $dependency_libs"
 1.48722 ++	  else
 1.48723 ++	    newdlfiles="$newdlfiles $lib"
 1.48724 ++	  fi
 1.48725 ++	  continue
 1.48726 ++	fi # $pass = dlopen
 1.48727 ++
 1.48728 ++	# We need an absolute path.
 1.48729 ++	case $ladir in
 1.48730 ++	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
 1.48731 ++	*)
 1.48732 ++	  abs_ladir=`cd "$ladir" && pwd`
 1.48733 ++	  if test -z "$abs_ladir"; then
 1.48734 ++	    func_warning "cannot determine absolute directory name of \`$ladir'"
 1.48735 ++	    func_warning "passing it literally to the linker, although it might fail"
 1.48736 ++	    abs_ladir="$ladir"
 1.48737 ++	  fi
 1.48738 ++	  ;;
 1.48739 ++	esac
 1.48740 ++	func_basename "$lib"
 1.48741 ++	laname="$func_basename_result"
 1.48742 ++
 1.48743 ++	# Find the relevant object directory and library name.
 1.48744 ++	if test "X$installed" = Xyes; then
 1.48745 ++	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
 1.48746 ++	    func_warning "library \`$lib' was moved."
 1.48747 ++	    dir="$ladir"
 1.48748 ++	    absdir="$abs_ladir"
 1.48749 ++	    libdir="$abs_ladir"
 1.48750 ++	  else
 1.48751 ++	    dir="$libdir"
 1.48752 ++	    absdir="$libdir"
 1.48753 ++	  fi
 1.48754 ++	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
 1.48755 ++	else
 1.48756 ++	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
 1.48757 ++	    dir="$ladir"
 1.48758 ++	    absdir="$abs_ladir"
 1.48759 ++	    # Remove this search path later
 1.48760 ++	    notinst_path="$notinst_path $abs_ladir"
 1.48761 ++	  else
 1.48762 ++	    dir="$ladir/$objdir"
 1.48763 ++	    absdir="$abs_ladir/$objdir"
 1.48764 ++	    # Remove this search path later
 1.48765 ++	    notinst_path="$notinst_path $abs_ladir"
 1.48766 ++	  fi
 1.48767 ++	fi # $installed = yes
 1.48768 ++	func_stripname 'lib' '.la' "$laname"
 1.48769 ++	name=$func_stripname_result
 1.48770 ++
 1.48771 ++	# This library was specified with -dlpreopen.
 1.48772 ++	if test "$pass" = dlpreopen; then
 1.48773 ++	  if test -z "$libdir" && test "$linkmode" = prog; then
 1.48774 ++	    func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
 1.48775 ++	  fi
 1.48776 ++	  # Prefer using a static library (so that no silly _DYNAMIC symbols
 1.48777 ++	  # are required to link).
 1.48778 ++	  if test -n "$old_library"; then
 1.48779 ++	    newdlprefiles="$newdlprefiles $dir/$old_library"
 1.48780 ++	    # Keep a list of preopened convenience libraries to check
 1.48781 ++	    # that they are being used correctly in the link pass.
 1.48782 ++	    test -z "$libdir" && \
 1.48783 ++		dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
 1.48784 ++	  # Otherwise, use the dlname, so that lt_dlopen finds it.
 1.48785 ++	  elif test -n "$dlname"; then
 1.48786 ++	    newdlprefiles="$newdlprefiles $dir/$dlname"
 1.48787 ++	  else
 1.48788 ++	    newdlprefiles="$newdlprefiles $dir/$linklib"
 1.48789 ++	  fi
 1.48790 ++	fi # $pass = dlpreopen
 1.48791 ++
 1.48792 ++	if test -z "$libdir"; then
 1.48793 ++	  # Link the convenience library
 1.48794 ++	  if test "$linkmode" = lib; then
 1.48795 ++	    deplibs="$dir/$old_library $deplibs"
 1.48796 ++	  elif test "$linkmode,$pass" = "prog,link"; then
 1.48797 ++	    compile_deplibs="$dir/$old_library $compile_deplibs"
 1.48798 ++	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
 1.48799 ++	  else
 1.48800 ++	    deplibs="$lib $deplibs" # used for prog,scan pass
 1.48801 ++	  fi
 1.48802 ++	  continue
 1.48803 ++	fi
 1.48804 ++
 1.48805 ++
 1.48806 ++	if test "$linkmode" = prog && test "$pass" != link; then
 1.48807 ++	  newlib_search_path="$newlib_search_path $ladir"
 1.48808 ++	  deplibs="$lib $deplibs"
 1.48809 ++
 1.48810 ++	  linkalldeplibs=no
 1.48811 ++	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
 1.48812 ++	     test "$build_libtool_libs" = no; then
 1.48813 ++	    linkalldeplibs=yes
 1.48814 ++	  fi
 1.48815 ++
 1.48816 ++	  tmp_libs=
 1.48817 ++	  for deplib in $dependency_libs; do
 1.48818 ++	    case $deplib in
 1.48819 ++	    -L*) func_stripname '-L' '' "$deplib"
 1.48820 ++	         newlib_search_path="$newlib_search_path $func_stripname_result"
 1.48821 ++		 ;;
 1.48822 ++	    esac
 1.48823 ++	    # Need to link against all dependency_libs?
 1.48824 ++	    if test "$linkalldeplibs" = yes; then
 1.48825 ++	      deplibs="$deplib $deplibs"
 1.48826 ++	    else
 1.48827 ++	      # Need to hardcode shared library paths
 1.48828 ++	      # or/and link against static libraries
 1.48829 ++	      newdependency_libs="$deplib $newdependency_libs"
 1.48830 ++	    fi
 1.48831 ++	    if $opt_duplicate_deps ; then
 1.48832 ++	      case "$tmp_libs " in
 1.48833 ++	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 1.48834 ++	      esac
 1.48835 ++	    fi
 1.48836 ++	    tmp_libs="$tmp_libs $deplib"
 1.48837 ++	  done # for deplib
 1.48838 ++	  continue
 1.48839 ++	fi # $linkmode = prog...
 1.48840 ++
 1.48841 ++	if test "$linkmode,$pass" = "prog,link"; then
 1.48842 ++	  if test -n "$library_names" &&
 1.48843 ++	     { { test "$prefer_static_libs" = no ||
 1.48844 ++	         test "$prefer_static_libs,$installed" = "built,yes"; } ||
 1.48845 ++	       test -z "$old_library"; }; then
 1.48846 ++	    # We need to hardcode the library path
 1.48847 ++	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
 1.48848 ++	      # Make sure the rpath contains only unique directories.
 1.48849 ++	      case "$temp_rpath:" in
 1.48850 ++	      *"$absdir:"*) ;;
 1.48851 ++	      *) temp_rpath="$temp_rpath$absdir:" ;;
 1.48852 ++	      esac
 1.48853 ++	    fi
 1.48854 ++
 1.48855 ++	    # Hardcode the library path.
 1.48856 ++	    # Skip directories that are in the system default run-time
 1.48857 ++	    # search path.
 1.48858 ++	    case " $sys_lib_dlsearch_path " in
 1.48859 ++	    *" $absdir "*) ;;
 1.48860 ++	    *)
 1.48861 ++	      case "$compile_rpath " in
 1.48862 ++	      *" $absdir "*) ;;
 1.48863 ++	      *) compile_rpath="$compile_rpath $absdir"
 1.48864 ++	      esac
 1.48865 ++	      ;;
 1.48866 ++	    esac
 1.48867 ++	    case " $sys_lib_dlsearch_path " in
 1.48868 ++	    *" $libdir "*) ;;
 1.48869 ++	    *)
 1.48870 ++	      case "$finalize_rpath " in
 1.48871 ++	      *" $libdir "*) ;;
 1.48872 ++	      *) finalize_rpath="$finalize_rpath $libdir"
 1.48873 ++	      esac
 1.48874 ++	      ;;
 1.48875 ++	    esac
 1.48876 ++	  fi # $linkmode,$pass = prog,link...
 1.48877 ++
 1.48878 ++	  if test "$alldeplibs" = yes &&
 1.48879 ++	     { test "$deplibs_check_method" = pass_all ||
 1.48880 ++	       { test "$build_libtool_libs" = yes &&
 1.48881 ++		 test -n "$library_names"; }; }; then
 1.48882 ++	    # We only need to search for static libraries
 1.48883 ++	    continue
 1.48884 ++	  fi
 1.48885 ++	fi
 1.48886 ++
 1.48887 ++	link_static=no # Whether the deplib will be linked statically
 1.48888 ++	use_static_libs=$prefer_static_libs
 1.48889 ++	if test "$use_static_libs" = built && test "$installed" = yes; then
 1.48890 ++	  use_static_libs=no
 1.48891 ++	fi
 1.48892 ++	if test -n "$library_names" &&
 1.48893 ++	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
 1.48894 ++	  case $host in
 1.48895 ++	  *cygwin* | *mingw*)
 1.48896 ++	      # No point in relinking DLLs because paths are not encoded
 1.48897 ++	      notinst_deplibs="$notinst_deplibs $lib"
 1.48898 ++	      need_relink=no
 1.48899 ++	    ;;
 1.48900 ++	  *)
 1.48901 ++	    if test "$installed" = no; then
 1.48902 ++	      notinst_deplibs="$notinst_deplibs $lib"
 1.48903 ++	      need_relink=yes
 1.48904 ++	    fi
 1.48905 ++	    ;;
 1.48906 ++	  esac
 1.48907 ++	  # This is a shared library
 1.48908 ++
 1.48909 ++	  # Warn about portability, can't link against -module's on some
 1.48910 ++	  # systems (darwin).  Don't bleat about dlopened modules though!
 1.48911 ++	  dlopenmodule=""
 1.48912 ++	  for dlpremoduletest in $dlprefiles; do
 1.48913 ++	    if test "X$dlpremoduletest" = "X$lib"; then
 1.48914 ++	      dlopenmodule="$dlpremoduletest"
 1.48915 ++	      break
 1.48916 ++	    fi
 1.48917 ++	  done
 1.48918 ++	  if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
 1.48919 ++	    $ECHO
 1.48920 ++	    if test "$linkmode" = prog; then
 1.48921 ++	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
 1.48922 ++	    else
 1.48923 ++	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
 1.48924 ++	    fi
 1.48925 ++	    $ECHO "*** $linklib is not portable!"
 1.48926 ++	  fi
 1.48927 ++	  if test "$linkmode" = lib &&
 1.48928 ++	     test "$hardcode_into_libs" = yes; then
 1.48929 ++	    # Hardcode the library path.
 1.48930 ++	    # Skip directories that are in the system default run-time
 1.48931 ++	    # search path.
 1.48932 ++	    case " $sys_lib_dlsearch_path " in
 1.48933 ++	    *" $absdir "*) ;;
 1.48934 ++	    *)
 1.48935 ++	      case "$compile_rpath " in
 1.48936 ++	      *" $absdir "*) ;;
 1.48937 ++	      *) compile_rpath="$compile_rpath $absdir"
 1.48938 ++	      esac
 1.48939 ++	      ;;
 1.48940 ++	    esac
 1.48941 ++	    case " $sys_lib_dlsearch_path " in
 1.48942 ++	    *" $libdir "*) ;;
 1.48943 ++	    *)
 1.48944 ++	      case "$finalize_rpath " in
 1.48945 ++	      *" $libdir "*) ;;
 1.48946 ++	      *) finalize_rpath="$finalize_rpath $libdir"
 1.48947 ++	      esac
 1.48948 ++	      ;;
 1.48949 ++	    esac
 1.48950 ++	  fi
 1.48951 ++
 1.48952 ++	  if test -n "$old_archive_from_expsyms_cmds"; then
 1.48953 ++	    # figure out the soname
 1.48954 ++	    set dummy $library_names
 1.48955 ++	    shift
 1.48956 ++	    realname="$1"
 1.48957 ++	    shift
 1.48958 ++	    libname=`eval "\\$ECHO \"$libname_spec\""`
 1.48959 ++	    # use dlname if we got it. it's perfectly good, no?
 1.48960 ++	    if test -n "$dlname"; then
 1.48961 ++	      soname="$dlname"
 1.48962 ++	    elif test -n "$soname_spec"; then
 1.48963 ++	      # bleh windows
 1.48964 ++	      case $host in
 1.48965 ++	      *cygwin* | mingw*)
 1.48966 ++		major=`expr $current - $age`
 1.48967 ++		versuffix="-$major"
 1.48968 ++		;;
 1.48969 ++	      esac
 1.48970 ++	      eval soname=\"$soname_spec\"
 1.48971 ++	    else
 1.48972 ++	      soname="$realname"
 1.48973 ++	    fi
 1.48974 ++
 1.48975 ++	    # Make a new name for the extract_expsyms_cmds to use
 1.48976 ++	    soroot="$soname"
 1.48977 ++	    func_basename "$soroot"
 1.48978 ++	    soname="$func_basename_result"
 1.48979 ++	    func_stripname 'lib' '.dll' "$soname"
 1.48980 ++	    newlib=libimp-$func_stripname_result.a
 1.48981 ++
 1.48982 ++	    # If the library has no export list, then create one now
 1.48983 ++	    if test -f "$output_objdir/$soname-def"; then :
 1.48984 ++	    else
 1.48985 ++	      func_echo "extracting exported symbol list from \`$soname'"
 1.48986 ++	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
 1.48987 ++	    fi
 1.48988 ++
 1.48989 ++	    # Create $newlib
 1.48990 ++	    if test -f "$output_objdir/$newlib"; then :; else
 1.48991 ++	      func_echo "generating import library for \`$soname'"
 1.48992 ++	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
 1.48993 ++	    fi
 1.48994 ++	    # make sure the library variables are pointing to the new library
 1.48995 ++	    dir=$output_objdir
 1.48996 ++	    linklib=$newlib
 1.48997 ++	  fi # test -n "$old_archive_from_expsyms_cmds"
 1.48998 ++
 1.48999 ++	  if test "$linkmode" = prog || test "$mode" != relink; then
 1.49000 ++	    add_shlibpath=
 1.49001 ++	    add_dir=
 1.49002 ++	    add=
 1.49003 ++	    lib_linked=yes
 1.49004 ++	    case $hardcode_action in
 1.49005 ++	    immediate | unsupported)
 1.49006 ++	      if test "$hardcode_direct" = no; then
 1.49007 ++		add="$dir/$linklib"
 1.49008 ++		case $host in
 1.49009 ++		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
 1.49010 ++		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
 1.49011 ++		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
 1.49012 ++		    *-*-unixware7*) add_dir="-L$dir" ;;
 1.49013 ++		  *-*-darwin* )
 1.49014 ++		    # if the lib is a (non-dlopened) module then we can not
 1.49015 ++		    # link against it, someone is ignoring the earlier warnings
 1.49016 ++		    if /usr/bin/file -L $add 2> /dev/null |
 1.49017 ++			 $GREP ": [^:]* bundle" >/dev/null ; then
 1.49018 ++		      if test "X$dlopenmodule" != "X$lib"; then
 1.49019 ++			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
 1.49020 ++			if test -z "$old_library" ; then
 1.49021 ++			  $ECHO
 1.49022 ++			  $ECHO "*** And there doesn't seem to be a static archive available"
 1.49023 ++			  $ECHO "*** The link will probably fail, sorry"
 1.49024 ++			else
 1.49025 ++			  add="$dir/$old_library"
 1.49026 ++			fi
 1.49027 ++		      elif test -n "$old_library"; then
 1.49028 ++			add="$dir/$old_library"
 1.49029 ++		      fi
 1.49030 ++		    fi
 1.49031 ++		esac
 1.49032 ++	      elif test "$hardcode_minus_L" = no; then
 1.49033 ++		case $host in
 1.49034 ++		*-*-sunos*) add_shlibpath="$dir" ;;
 1.49035 ++		esac
 1.49036 ++		add_dir="-L$dir"
 1.49037 ++		add="-l$name"
 1.49038 ++	      elif test "$hardcode_shlibpath_var" = no; then
 1.49039 ++		add_shlibpath="$dir"
 1.49040 ++		add="-l$name"
 1.49041 ++	      else
 1.49042 ++		lib_linked=no
 1.49043 ++	      fi
 1.49044 ++	      ;;
 1.49045 ++	    relink)
 1.49046 ++	      if test "$hardcode_direct" = yes &&
 1.49047 ++	         test "$hardcode_direct_absolute" = no; then
 1.49048 ++		add="$dir/$linklib"
 1.49049 ++	      elif test "$hardcode_minus_L" = yes; then
 1.49050 ++		add_dir="-L$dir"
 1.49051 ++		# Try looking first in the location we're being installed to.
 1.49052 ++		if test -n "$inst_prefix_dir"; then
 1.49053 ++		  case $libdir in
 1.49054 ++		    [\\/]*)
 1.49055 ++		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
 1.49056 ++		      ;;
 1.49057 ++		  esac
 1.49058 ++		fi
 1.49059 ++		add="-l$name"
 1.49060 ++	      elif test "$hardcode_shlibpath_var" = yes; then
 1.49061 ++		add_shlibpath="$dir"
 1.49062 ++		add="-l$name"
 1.49063 ++	      else
 1.49064 ++		lib_linked=no
 1.49065 ++	      fi
 1.49066 ++	      ;;
 1.49067 ++	    *) lib_linked=no ;;
 1.49068 ++	    esac
 1.49069 ++
 1.49070 ++	    if test "$lib_linked" != yes; then
 1.49071 ++	      func_fatal_configuration "unsupported hardcode properties"
 1.49072 ++	    fi
 1.49073 ++
 1.49074 ++	    if test -n "$add_shlibpath"; then
 1.49075 ++	      case :$compile_shlibpath: in
 1.49076 ++	      *":$add_shlibpath:"*) ;;
 1.49077 ++	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
 1.49078 ++	      esac
 1.49079 ++	    fi
 1.49080 ++	    if test "$linkmode" = prog; then
 1.49081 ++	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
 1.49082 ++	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
 1.49083 ++	    else
 1.49084 ++	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
 1.49085 ++	      test -n "$add" && deplibs="$add $deplibs"
 1.49086 ++	      if test "$hardcode_direct" != yes &&
 1.49087 ++		 test "$hardcode_minus_L" != yes &&
 1.49088 ++		 test "$hardcode_shlibpath_var" = yes; then
 1.49089 ++		case :$finalize_shlibpath: in
 1.49090 ++		*":$libdir:"*) ;;
 1.49091 ++		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
 1.49092 ++		esac
 1.49093 ++	      fi
 1.49094 ++	    fi
 1.49095 ++	  fi
 1.49096 ++
 1.49097 ++	  if test "$linkmode" = prog || test "$mode" = relink; then
 1.49098 ++	    add_shlibpath=
 1.49099 ++	    add_dir=
 1.49100 ++	    add=
 1.49101 ++	    # Finalize command for both is simple: just hardcode it.
 1.49102 ++	    if test "$hardcode_direct" = yes &&
 1.49103 ++	       test "$hardcode_direct_absolute" = no; then
 1.49104 ++	      add="$libdir/$linklib"
 1.49105 ++	    elif test "$hardcode_minus_L" = yes; then
 1.49106 ++	      add_dir="-L$libdir"
 1.49107 ++	      add="-l$name"
 1.49108 ++	    elif test "$hardcode_shlibpath_var" = yes; then
 1.49109 ++	      case :$finalize_shlibpath: in
 1.49110 ++	      *":$libdir:"*) ;;
 1.49111 ++	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
 1.49112 ++	      esac
 1.49113 ++	      add="-l$name"
 1.49114 ++	    elif test "$hardcode_automatic" = yes; then
 1.49115 ++	      if test -n "$inst_prefix_dir" &&
 1.49116 ++		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
 1.49117 ++		add="$inst_prefix_dir$libdir/$linklib"
 1.49118 ++	      else
 1.49119 ++		add="$libdir/$linklib"
 1.49120 ++	      fi
 1.49121 ++	    else
 1.49122 ++	      # We cannot seem to hardcode it, guess we'll fake it.
 1.49123 ++	      add_dir="-L$libdir"
 1.49124 ++	      # Try looking first in the location we're being installed to.
 1.49125 ++	      if test -n "$inst_prefix_dir"; then
 1.49126 ++		case $libdir in
 1.49127 ++		  [\\/]*)
 1.49128 ++		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
 1.49129 ++		    ;;
 1.49130 ++		esac
 1.49131 ++	      fi
 1.49132 ++	      add="-l$name"
 1.49133 ++	    fi
 1.49134 ++
 1.49135 ++	    if test "$linkmode" = prog; then
 1.49136 ++	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
 1.49137 ++	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
 1.49138 ++	    else
 1.49139 ++	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
 1.49140 ++	      test -n "$add" && deplibs="$add $deplibs"
 1.49141 ++	    fi
 1.49142 ++	  fi
 1.49143 ++	elif test "$linkmode" = prog; then
 1.49144 ++	  # Here we assume that one of hardcode_direct or hardcode_minus_L
 1.49145 ++	  # is not unsupported.  This is valid on all known static and
 1.49146 ++	  # shared platforms.
 1.49147 ++	  if test "$hardcode_direct" != unsupported; then
 1.49148 ++	    test -n "$old_library" && linklib="$old_library"
 1.49149 ++	    compile_deplibs="$dir/$linklib $compile_deplibs"
 1.49150 ++	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
 1.49151 ++	  else
 1.49152 ++	    compile_deplibs="-l$name -L$dir $compile_deplibs"
 1.49153 ++	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
 1.49154 ++	  fi
 1.49155 ++	elif test "$build_libtool_libs" = yes; then
 1.49156 ++	  # Not a shared library
 1.49157 ++	  if test "$deplibs_check_method" != pass_all; then
 1.49158 ++	    # We're trying link a shared library against a static one
 1.49159 ++	    # but the system doesn't support it.
 1.49160 ++
 1.49161 ++	    # Just print a warning and add the library to dependency_libs so
 1.49162 ++	    # that the program can be linked against the static library.
 1.49163 ++	    $ECHO
 1.49164 ++	    $ECHO "*** Warning: This system can not link to static lib archive $lib."
 1.49165 ++	    $ECHO "*** I have the capability to make that library automatically link in when"
 1.49166 ++	    $ECHO "*** you link to this library.  But I can only do this if you have a"
 1.49167 ++	    $ECHO "*** shared version of the library, which you do not appear to have."
 1.49168 ++	    if test "$module" = yes; then
 1.49169 ++	      $ECHO "*** But as you try to build a module library, libtool will still create "
 1.49170 ++	      $ECHO "*** a static module, that should work as long as the dlopening application"
 1.49171 ++	      $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
 1.49172 ++	      if test -z "$global_symbol_pipe"; then
 1.49173 ++		$ECHO
 1.49174 ++		$ECHO "*** However, this would only work if libtool was able to extract symbol"
 1.49175 ++		$ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
 1.49176 ++		$ECHO "*** not find such a program.  So, this module is probably useless."
 1.49177 ++		$ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
 1.49178 ++	      fi
 1.49179 ++	      if test "$build_old_libs" = no; then
 1.49180 ++		build_libtool_libs=module
 1.49181 ++		build_old_libs=yes
 1.49182 ++	      else
 1.49183 ++		build_libtool_libs=no
 1.49184 ++	      fi
 1.49185 ++	    fi
 1.49186 ++	  else
 1.49187 ++	    deplibs="$dir/$old_library $deplibs"
 1.49188 ++	    link_static=yes
 1.49189 ++	  fi
 1.49190 ++	fi # link shared/static library?
 1.49191 ++
 1.49192 ++	if test "$linkmode" = lib; then
 1.49193 ++	  if test -n "$dependency_libs" &&
 1.49194 ++	     { test "$hardcode_into_libs" != yes ||
 1.49195 ++	       test "$build_old_libs" = yes ||
 1.49196 ++	       test "$link_static" = yes; }; then
 1.49197 ++	    # Extract -R from dependency_libs
 1.49198 ++	    temp_deplibs=
 1.49199 ++	    for libdir in $dependency_libs; do
 1.49200 ++	      case $libdir in
 1.49201 ++	      -R*) func_stripname '-R' '' "$libdir"
 1.49202 ++	           temp_xrpath=$func_stripname_result
 1.49203 ++		   case " $xrpath " in
 1.49204 ++		   *" $temp_xrpath "*) ;;
 1.49205 ++		   *) xrpath="$xrpath $temp_xrpath";;
 1.49206 ++		   esac;;
 1.49207 ++	      *) temp_deplibs="$temp_deplibs $libdir";;
 1.49208 ++	      esac
 1.49209 ++	    done
 1.49210 ++	    dependency_libs="$temp_deplibs"
 1.49211 ++	  fi
 1.49212 ++
 1.49213 ++	  newlib_search_path="$newlib_search_path $absdir"
 1.49214 ++	  # Link against this library
 1.49215 ++	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
 1.49216 ++	  # ... and its dependency_libs
 1.49217 ++	  tmp_libs=
 1.49218 ++	  for deplib in $dependency_libs; do
 1.49219 ++	    newdependency_libs="$deplib $newdependency_libs"
 1.49220 ++	    if $opt_duplicate_deps ; then
 1.49221 ++	      case "$tmp_libs " in
 1.49222 ++	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 1.49223 ++	      esac
 1.49224 ++	    fi
 1.49225 ++	    tmp_libs="$tmp_libs $deplib"
 1.49226 ++	  done
 1.49227 ++
 1.49228 ++	  if test "$link_all_deplibs" != no; then
 1.49229 ++	    # Add the search paths of all dependency libraries
 1.49230 ++	    for deplib in $dependency_libs; do
 1.49231 ++	      case $deplib in
 1.49232 ++	      -L*) path="$deplib" ;;
 1.49233 ++	      *.la)
 1.49234 ++	        func_dirname "$deplib" "" "."
 1.49235 ++		dir="$func_dirname_result"
 1.49236 ++		# We need an absolute path.
 1.49237 ++		case $dir in
 1.49238 ++		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
 1.49239 ++		*)
 1.49240 ++		  absdir=`cd "$dir" && pwd`
 1.49241 ++		  if test -z "$absdir"; then
 1.49242 ++		    func_warning "cannot determine absolute directory name of \`$dir'"
 1.49243 ++		    absdir="$dir"
 1.49244 ++		  fi
 1.49245 ++		  ;;
 1.49246 ++		esac
 1.49247 ++		if $GREP "^installed=no" $deplib > /dev/null; then
 1.49248 ++		case $host in
 1.49249 ++		*-*-darwin*)
 1.49250 ++		  depdepl=
 1.49251 ++		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
 1.49252 ++		  if test -n "$deplibrary_names" ; then
 1.49253 ++		    for tmp in $deplibrary_names ; do
 1.49254 ++		      depdepl=$tmp
 1.49255 ++		    done
 1.49256 ++		    if test -f "$absdir/$objdir/$depdepl" ; then
 1.49257 ++		      depdepl="$absdir/$objdir/$depdepl"
 1.49258 ++		      darwin_install_name=`otool -L $depdepl | $SED -n -e '3q;2,2p' | $SED -e 's/(.*//'`
 1.49259 ++		      darwin_install_name=`$ECHO $darwin_install_name`
 1.49260 ++                      if test -z "$darwin_install_name"; then
 1.49261 ++                          darwin_install_name=`otool64 -L $depdepl | $SED -n -e '3q;2,2p' | $SED -e 's/(.*//'`
 1.49262 ++                          darwin_install_name=`$ECHO $darwin_install_name`
 1.49263 ++                      fi
 1.49264 ++		      compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
 1.49265 ++		      linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
 1.49266 ++		      path=
 1.49267 ++		    fi
 1.49268 ++		  fi
 1.49269 ++		  ;;
 1.49270 ++		*)
 1.49271 ++		  path="-L$absdir/$objdir"
 1.49272 ++		  ;;
 1.49273 ++		esac
 1.49274 ++		else
 1.49275 ++		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
 1.49276 ++		  test -z "$libdir" && \
 1.49277 ++		    func_fatal_error "\`$deplib' is not a valid libtool archive"
 1.49278 ++		  test "$absdir" != "$libdir" && \
 1.49279 ++		    func_warning "\`$deplib' seems to be moved"
 1.49280 ++
 1.49281 ++		  path="-L$absdir"
 1.49282 ++		fi
 1.49283 ++		;;
 1.49284 ++	      esac
 1.49285 ++	      case " $deplibs " in
 1.49286 ++	      *" $path "*) ;;
 1.49287 ++	      *) deplibs="$path $deplibs" ;;
 1.49288 ++	      esac
 1.49289 ++	    done
 1.49290 ++	  fi # link_all_deplibs != no
 1.49291 ++	fi # linkmode = lib
 1.49292 ++      done # for deplib in $libs
 1.49293 ++      dependency_libs="$newdependency_libs"
 1.49294 ++      if test "$pass" = dlpreopen; then
 1.49295 ++	# Link the dlpreopened libraries before other libraries
 1.49296 ++	for deplib in $save_deplibs; do
 1.49297 ++	  deplibs="$deplib $deplibs"
 1.49298 ++	done
 1.49299 ++      fi
 1.49300 ++      if test "$pass" != dlopen; then
 1.49301 ++	if test "$pass" != conv; then
 1.49302 ++	  # Make sure lib_search_path contains only unique directories.
 1.49303 ++	  lib_search_path=
 1.49304 ++	  for dir in $newlib_search_path; do
 1.49305 ++	    case "$lib_search_path " in
 1.49306 ++	    *" $dir "*) ;;
 1.49307 ++	    *) lib_search_path="$lib_search_path $dir" ;;
 1.49308 ++	    esac
 1.49309 ++	  done
 1.49310 ++	  newlib_search_path=
 1.49311 ++	fi
 1.49312 ++
 1.49313 ++	if test "$linkmode,$pass" != "prog,link"; then
 1.49314 ++	  vars="deplibs"
 1.49315 ++	else
 1.49316 ++	  vars="compile_deplibs finalize_deplibs"
 1.49317 ++	fi
 1.49318 ++	for var in $vars dependency_libs; do
 1.49319 ++	  # Add libraries to $var in reverse order
 1.49320 ++	  eval tmp_libs=\"\$$var\"
 1.49321 ++	  new_libs=
 1.49322 ++	  for deplib in $tmp_libs; do
 1.49323 ++	    # FIXME: Pedantically, this is the right thing to do, so
 1.49324 ++	    #        that some nasty dependency loop isn't accidentally
 1.49325 ++	    #        broken:
 1.49326 ++	    #new_libs="$deplib $new_libs"
 1.49327 ++	    # Pragmatically, this seems to cause very few problems in
 1.49328 ++	    # practice:
 1.49329 ++	    case $deplib in
 1.49330 ++	    -L*) new_libs="$deplib $new_libs" ;;
 1.49331 ++	    -R*) ;;
 1.49332 ++	    *)
 1.49333 ++	      # And here is the reason: when a library appears more
 1.49334 ++	      # than once as an explicit dependence of a library, or
 1.49335 ++	      # is implicitly linked in more than once by the
 1.49336 ++	      # compiler, it is considered special, and multiple
 1.49337 ++	      # occurrences thereof are not removed.  Compare this
 1.49338 ++	      # with having the same library being listed as a
 1.49339 ++	      # dependency of multiple other libraries: in this case,
 1.49340 ++	      # we know (pedantically, we assume) the library does not
 1.49341 ++	      # need to be listed more than once, so we keep only the
 1.49342 ++	      # last copy.  This is not always right, but it is rare
 1.49343 ++	      # enough that we require users that really mean to play
 1.49344 ++	      # such unportable linking tricks to link the library
 1.49345 ++	      # using -Wl,-lname, so that libtool does not consider it
 1.49346 ++	      # for duplicate removal.
 1.49347 ++	      case " $specialdeplibs " in
 1.49348 ++	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
 1.49349 ++	      *)
 1.49350 ++		case " $new_libs " in
 1.49351 ++		*" $deplib "*) ;;
 1.49352 ++		*) new_libs="$deplib $new_libs" ;;
 1.49353 ++		esac
 1.49354 ++		;;
 1.49355 ++	      esac
 1.49356 ++	      ;;
 1.49357 ++	    esac
 1.49358 ++	  done
 1.49359 ++	  tmp_libs=
 1.49360 ++	  for deplib in $new_libs; do
 1.49361 ++	    case $deplib in
 1.49362 ++	    -L*)
 1.49363 ++	      case " $tmp_libs " in
 1.49364 ++	      *" $deplib "*) ;;
 1.49365 ++	      *) tmp_libs="$tmp_libs $deplib" ;;
 1.49366 ++	      esac
 1.49367 ++	      ;;
 1.49368 ++	    *) tmp_libs="$tmp_libs $deplib" ;;
 1.49369 ++	    esac
 1.49370 ++	  done
 1.49371 ++	  eval $var=\"$tmp_libs\"
 1.49372 ++	done # for var
 1.49373 ++      fi
 1.49374 ++      # Last step: remove runtime libs from dependency_libs
 1.49375 ++      # (they stay in deplibs)
 1.49376 ++      tmp_libs=
 1.49377 ++      for i in $dependency_libs ; do
 1.49378 ++	case " $predeps $postdeps $compiler_lib_search_path " in
 1.49379 ++	*" $i "*)
 1.49380 ++	  i=""
 1.49381 ++	  ;;
 1.49382 ++	esac
 1.49383 ++	if test -n "$i" ; then
 1.49384 ++	  tmp_libs="$tmp_libs $i"
 1.49385 ++	fi
 1.49386 ++      done
 1.49387 ++      dependency_libs=$tmp_libs
 1.49388 ++    done # for pass
 1.49389 ++    if test "$linkmode" = prog; then
 1.49390 ++      dlfiles="$newdlfiles"
 1.49391 ++    fi
 1.49392 ++    if test "$linkmode" = prog || test "$linkmode" = lib; then
 1.49393 ++      dlprefiles="$newdlprefiles"
 1.49394 ++    fi
 1.49395 ++
 1.49396 ++    case $linkmode in
 1.49397 ++    oldlib)
 1.49398 ++      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 1.49399 ++	func_warning "\`-dlopen' is ignored for archives"
 1.49400 ++      fi
 1.49401 ++
 1.49402 ++      test -n "$deplibs" && \
 1.49403 ++	func_warning "\`-l' and \`-L' are ignored for archives"
 1.49404 ++
 1.49405 ++
 1.49406 ++      test -n "$rpath" && \
 1.49407 ++	func_warning "\`-rpath' is ignored for archives"
 1.49408 ++
 1.49409 ++      test -n "$xrpath" && \
 1.49410 ++	func_warning "\`-R' is ignored for archives"
 1.49411 ++
 1.49412 ++      test -n "$vinfo" && \
 1.49413 ++	func_warning "\`-version-info/-version-number' is ignored for archives"
 1.49414 ++
 1.49415 ++      test -n "$release" && \
 1.49416 ++	func_warning "\`-release' is ignored for archives"
 1.49417 ++
 1.49418 ++      test -n "$export_symbols$export_symbols_regex" && \
 1.49419 ++	func_warning "\`-export-symbols' is ignored for archives"
 1.49420 ++
 1.49421 ++      # Now set the variables for building old libraries.
 1.49422 ++      build_libtool_libs=no
 1.49423 ++      oldlibs="$output"
 1.49424 ++      objs="$objs$old_deplibs"
 1.49425 ++      ;;
 1.49426 ++
 1.49427 ++    lib)
 1.49428 ++      # Make sure we only generate libraries of the form `libNAME.la'.
 1.49429 ++      case $outputname in
 1.49430 ++      lib*)
 1.49431 ++	func_stripname 'lib' '.la' "$outputname"
 1.49432 ++	name=$func_stripname_result
 1.49433 ++	eval shared_ext=\"$shrext_cmds\"
 1.49434 ++	eval libname=\"$libname_spec\"
 1.49435 ++	;;
 1.49436 ++      *)
 1.49437 ++	test "$module" = no && \
 1.49438 ++	  func_fatal_help "libtool library \`$output' must begin with \`lib'"
 1.49439 ++
 1.49440 ++	if test "$need_lib_prefix" != no; then
 1.49441 ++	  # Add the "lib" prefix for modules if required
 1.49442 ++	  func_stripname '' '.la' "$outputname"
 1.49443 ++	  name=$func_stripname_result
 1.49444 ++	  eval shared_ext=\"$shrext_cmds\"
 1.49445 ++	  eval libname=\"$libname_spec\"
 1.49446 ++	else
 1.49447 ++	  func_stripname '' '.la' "$outputname"
 1.49448 ++	  libname=$func_stripname_result
 1.49449 ++	fi
 1.49450 ++	;;
 1.49451 ++      esac
 1.49452 ++
 1.49453 ++      if test -n "$objs"; then
 1.49454 ++	if test "$deplibs_check_method" != pass_all; then
 1.49455 ++	  func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
 1.49456 ++	else
 1.49457 ++	  $ECHO
 1.49458 ++	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
 1.49459 ++	  $ECHO "*** objects $objs is not portable!"
 1.49460 ++	  libobjs="$libobjs $objs"
 1.49461 ++	fi
 1.49462 ++      fi
 1.49463 ++
 1.49464 ++      test "$dlself" != no && \
 1.49465 ++	func_warning "\`-dlopen self' is ignored for libtool libraries"
 1.49466 ++
 1.49467 ++      set dummy $rpath
 1.49468 ++      shift
 1.49469 ++      test "$#" -gt 1 && \
 1.49470 ++	func_warning "ignoring multiple \`-rpath's for a libtool library"
 1.49471 ++
 1.49472 ++      install_libdir="$1"
 1.49473 ++
 1.49474 ++      oldlibs=
 1.49475 ++      if test -z "$rpath"; then
 1.49476 ++	if test "$build_libtool_libs" = yes; then
 1.49477 ++	  # Building a libtool convenience library.
 1.49478 ++	  # Some compilers have problems with a `.al' extension so
 1.49479 ++	  # convenience libraries should have the same extension an
 1.49480 ++	  # archive normally would.
 1.49481 ++	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
 1.49482 ++	  build_libtool_libs=convenience
 1.49483 ++	  build_old_libs=yes
 1.49484 ++	fi
 1.49485 ++
 1.49486 ++	test -n "$vinfo" && \
 1.49487 ++	  func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
 1.49488 ++
 1.49489 ++	test -n "$release" && \
 1.49490 ++	  func_warning "\`-release' is ignored for convenience libraries"
 1.49491 ++      else
 1.49492 ++
 1.49493 ++	# Parse the version information argument.
 1.49494 ++	save_ifs="$IFS"; IFS=':'
 1.49495 ++	set dummy $vinfo 0 0 0
 1.49496 ++	shift
 1.49497 ++	IFS="$save_ifs"
 1.49498 ++
 1.49499 ++	test -n "$7" && \
 1.49500 ++	  func_fatal_help "too many parameters to \`-version-info'"
 1.49501 ++
 1.49502 ++	# convert absolute version numbers to libtool ages
 1.49503 ++	# this retains compatibility with .la files and attempts
 1.49504 ++	# to make the code below a bit more comprehensible
 1.49505 ++
 1.49506 ++	case $vinfo_number in
 1.49507 ++	yes)
 1.49508 ++	  number_major="$1"
 1.49509 ++	  number_minor="$2"
 1.49510 ++	  number_revision="$3"
 1.49511 ++	  #
 1.49512 ++	  # There are really only two kinds -- those that
 1.49513 ++	  # use the current revision as the major version
 1.49514 ++	  # and those that subtract age and use age as
 1.49515 ++	  # a minor version.  But, then there is irix
 1.49516 ++	  # which has an extra 1 added just for fun
 1.49517 ++	  #
 1.49518 ++	  case $version_type in
 1.49519 ++	  darwin|linux|osf|windows|none)
 1.49520 ++	    current=`expr $number_major + $number_minor`
 1.49521 ++	    age="$number_minor"
 1.49522 ++	    revision="$number_revision"
 1.49523 ++	    ;;
 1.49524 ++	  freebsd-aout|freebsd-elf|sunos)
 1.49525 ++	    current="$number_major"
 1.49526 ++	    revision="$number_minor"
 1.49527 ++	    age="0"
 1.49528 ++	    ;;
 1.49529 ++	  irix|nonstopux)
 1.49530 ++	    current=`expr $number_major + $number_minor - 1`
 1.49531 ++	    age="$number_minor"
 1.49532 ++	    revision="$number_minor"
 1.49533 ++	    ;;
 1.49534 ++	  esac
 1.49535 ++	  ;;
 1.49536 ++	no)
 1.49537 ++	  current="$1"
 1.49538 ++	  revision="$2"
 1.49539 ++	  age="$3"
 1.49540 ++	  ;;
 1.49541 ++	esac
 1.49542 ++
 1.49543 ++	# Check that each of the things are valid numbers.
 1.49544 ++	case $current in
 1.49545 ++	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
 1.49546 ++	*)
 1.49547 ++	  func_error "CURRENT \`$current' must be a nonnegative integer"
 1.49548 ++	  func_fatal_error "\`$vinfo' is not valid version information"
 1.49549 ++	  ;;
 1.49550 ++	esac
 1.49551 ++
 1.49552 ++	case $revision in
 1.49553 ++	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
 1.49554 ++	*)
 1.49555 ++	  func_error "REVISION \`$revision' must be a nonnegative integer"
 1.49556 ++	  func_fatal_error "\`$vinfo' is not valid version information"
 1.49557 ++	  ;;
 1.49558 ++	esac
 1.49559 ++
 1.49560 ++	case $age in
 1.49561 ++	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
 1.49562 ++	*)
 1.49563 ++	  func_error "AGE \`$age' must be a nonnegative integer"
 1.49564 ++	  func_fatal_error "\`$vinfo' is not valid version information"
 1.49565 ++	  ;;
 1.49566 ++	esac
 1.49567 ++
 1.49568 ++	if test "$age" -gt "$current"; then
 1.49569 ++	  func_error "AGE \`$age' is greater than the current interface number \`$current'"
 1.49570 ++	  func_fatal_error "\`$vinfo' is not valid version information"
 1.49571 ++	fi
 1.49572 ++
 1.49573 ++	# Calculate the version variables.
 1.49574 ++	major=
 1.49575 ++	versuffix=
 1.49576 ++	verstring=
 1.49577 ++	case $version_type in
 1.49578 ++	none) ;;
 1.49579 ++
 1.49580 ++	darwin)
 1.49581 ++	  # Like Linux, but with the current version available in
 1.49582 ++	  # verstring for coding it into the library header
 1.49583 ++	  major=.`expr $current - $age`
 1.49584 ++	  versuffix="$major.$age.$revision"
 1.49585 ++	  # Darwin ld doesn't like 0 for these options...
 1.49586 ++	  minor_current=`expr $current + 1`
 1.49587 ++	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
 1.49588 ++	  ;;
 1.49589 ++
 1.49590 ++	freebsd-aout)
 1.49591 ++	  major=".$current"
 1.49592 ++	  versuffix=".$current.$revision";
 1.49593 ++	  ;;
 1.49594 ++
 1.49595 ++	freebsd-elf)
 1.49596 ++	  major=".$current"
 1.49597 ++	  versuffix=".$current"
 1.49598 ++	  ;;
 1.49599 ++
 1.49600 ++	irix | nonstopux)
 1.49601 ++	  major=`expr $current - $age + 1`
 1.49602 ++
 1.49603 ++	  case $version_type in
 1.49604 ++	    nonstopux) verstring_prefix=nonstopux ;;
 1.49605 ++	    *)         verstring_prefix=sgi ;;
 1.49606 ++	  esac
 1.49607 ++	  verstring="$verstring_prefix$major.$revision"
 1.49608 ++
 1.49609 ++	  # Add in all the interfaces that we are compatible with.
 1.49610 ++	  loop=$revision
 1.49611 ++	  while test "$loop" -ne 0; do
 1.49612 ++	    iface=`expr $revision - $loop`
 1.49613 ++	    loop=`expr $loop - 1`
 1.49614 ++	    verstring="$verstring_prefix$major.$iface:$verstring"
 1.49615 ++	  done
 1.49616 ++
 1.49617 ++	  # Before this point, $major must not contain `.'.
 1.49618 ++	  major=.$major
 1.49619 ++	  versuffix="$major.$revision"
 1.49620 ++	  ;;
 1.49621 ++
 1.49622 ++	linux)
 1.49623 ++	  major=.`expr $current - $age`
 1.49624 ++	  versuffix="$major.$age.$revision"
 1.49625 ++	  ;;
 1.49626 ++
 1.49627 ++	osf)
 1.49628 ++	  major=.`expr $current - $age`
 1.49629 ++	  versuffix=".$current.$age.$revision"
 1.49630 ++	  verstring="$current.$age.$revision"
 1.49631 ++
 1.49632 ++	  # Add in all the interfaces that we are compatible with.
 1.49633 ++	  loop=$age
 1.49634 ++	  while test "$loop" -ne 0; do
 1.49635 ++	    iface=`expr $current - $loop`
 1.49636 ++	    loop=`expr $loop - 1`
 1.49637 ++	    verstring="$verstring:${iface}.0"
 1.49638 ++	  done
 1.49639 ++
 1.49640 ++	  # Make executables depend on our current version.
 1.49641 ++	  verstring="$verstring:${current}.0"
 1.49642 ++	  ;;
 1.49643 ++
 1.49644 ++	qnx)
 1.49645 ++	  major=".$current"
 1.49646 ++	  versuffix=".$current"
 1.49647 ++	  ;;
 1.49648 ++
 1.49649 ++	sunos)
 1.49650 ++	  major=".$current"
 1.49651 ++	  versuffix=".$current.$revision"
 1.49652 ++	  ;;
 1.49653 ++
 1.49654 ++	windows)
 1.49655 ++	  # Use '-' rather than '.', since we only want one
 1.49656 ++	  # extension on DOS 8.3 filesystems.
 1.49657 ++	  major=`expr $current - $age`
 1.49658 ++	  versuffix="-$major"
 1.49659 ++	  ;;
 1.49660 ++
 1.49661 ++	*)
 1.49662 ++	  func_fatal_configuration "unknown library version type \`$version_type'"
 1.49663 ++	  ;;
 1.49664 ++	esac
 1.49665 ++
 1.49666 ++	# Clear the version info if we defaulted, and they specified a release.
 1.49667 ++	if test -z "$vinfo" && test -n "$release"; then
 1.49668 ++	  major=
 1.49669 ++	  case $version_type in
 1.49670 ++	  darwin)
 1.49671 ++	    # we can't check for "0.0" in archive_cmds due to quoting
 1.49672 ++	    # problems, so we reset it completely
 1.49673 ++	    verstring=
 1.49674 ++	    ;;
 1.49675 ++	  *)
 1.49676 ++	    verstring="0.0"
 1.49677 ++	    ;;
 1.49678 ++	  esac
 1.49679 ++	  if test "$need_version" = no; then
 1.49680 ++	    versuffix=
 1.49681 ++	  else
 1.49682 ++	    versuffix=".0.0"
 1.49683 ++	  fi
 1.49684 ++	fi
 1.49685 ++
 1.49686 ++	# Remove version info from name if versioning should be avoided
 1.49687 ++	if test "$avoid_version" = yes && test "$need_version" = no; then
 1.49688 ++	  major=
 1.49689 ++	  versuffix=
 1.49690 ++	  verstring=""
 1.49691 ++	fi
 1.49692 ++
 1.49693 ++	# Check to see if the archive will have undefined symbols.
 1.49694 ++	if test "$allow_undefined" = yes; then
 1.49695 ++	  if test "$allow_undefined_flag" = unsupported; then
 1.49696 ++	    func_warning "undefined symbols not allowed in $host shared libraries"
 1.49697 ++	    build_libtool_libs=no
 1.49698 ++	    build_old_libs=yes
 1.49699 ++	  fi
 1.49700 ++	else
 1.49701 ++	  # Don't allow undefined symbols.
 1.49702 ++	  allow_undefined_flag="$no_undefined_flag"
 1.49703 ++	fi
 1.49704 ++
 1.49705 ++      fi
 1.49706 ++
 1.49707 ++      func_generate_dlsyms "$libname" "$libname" "yes"
 1.49708 ++      libobjs="$libobjs $symfileobj"
 1.49709 ++      test "X$libobjs" = "X " && libobjs=
 1.49710 ++
 1.49711 ++      if test "$mode" != relink; then
 1.49712 ++	# Remove our outputs, but don't remove object files since they
 1.49713 ++	# may have been created when compiling PIC objects.
 1.49714 ++	removelist=
 1.49715 ++	tempremovelist=`$ECHO "$output_objdir/*"`
 1.49716 ++	for p in $tempremovelist; do
 1.49717 ++	  case $p in
 1.49718 ++	    *.$objext)
 1.49719 ++	       ;;
 1.49720 ++	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
 1.49721 ++	       if test "X$precious_files_regex" != "X"; then
 1.49722 ++		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
 1.49723 ++		 then
 1.49724 ++		   continue
 1.49725 ++		 fi
 1.49726 ++	       fi
 1.49727 ++	       removelist="$removelist $p"
 1.49728 ++	       ;;
 1.49729 ++	    *) ;;
 1.49730 ++	  esac
 1.49731 ++	done
 1.49732 ++	test -n "$removelist" && \
 1.49733 ++	  func_show_eval "${RM}r \$removelist"
 1.49734 ++      fi
 1.49735 ++
 1.49736 ++      # Now set the variables for building old libraries.
 1.49737 ++      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
 1.49738 ++	oldlibs="$oldlibs $output_objdir/$libname.$libext"
 1.49739 ++
 1.49740 ++	# Transform .lo files to .o files.
 1.49741 ++	oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
 1.49742 ++      fi
 1.49743 ++
 1.49744 ++      # Eliminate all temporary directories.
 1.49745 ++      #for path in $notinst_path; do
 1.49746 ++      #	lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
 1.49747 ++      #	deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
 1.49748 ++      #	dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
 1.49749 ++      #done
 1.49750 ++
 1.49751 ++      if test -n "$xrpath"; then
 1.49752 ++	# If the user specified any rpath flags, then add them.
 1.49753 ++	temp_xrpath=
 1.49754 ++	for libdir in $xrpath; do
 1.49755 ++	  temp_xrpath="$temp_xrpath -R$libdir"
 1.49756 ++	  case "$finalize_rpath " in
 1.49757 ++	  *" $libdir "*) ;;
 1.49758 ++	  *) finalize_rpath="$finalize_rpath $libdir" ;;
 1.49759 ++	  esac
 1.49760 ++	done
 1.49761 ++	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
 1.49762 ++	  dependency_libs="$temp_xrpath $dependency_libs"
 1.49763 ++	fi
 1.49764 ++      fi
 1.49765 ++
 1.49766 ++      # Make sure dlfiles contains only unique files that won't be dlpreopened
 1.49767 ++      old_dlfiles="$dlfiles"
 1.49768 ++      dlfiles=
 1.49769 ++      for lib in $old_dlfiles; do
 1.49770 ++	case " $dlprefiles $dlfiles " in
 1.49771 ++	*" $lib "*) ;;
 1.49772 ++	*) dlfiles="$dlfiles $lib" ;;
 1.49773 ++	esac
 1.49774 ++      done
 1.49775 ++
 1.49776 ++      # Make sure dlprefiles contains only unique files
 1.49777 ++      old_dlprefiles="$dlprefiles"
 1.49778 ++      dlprefiles=
 1.49779 ++      for lib in $old_dlprefiles; do
 1.49780 ++	case "$dlprefiles " in
 1.49781 ++	*" $lib "*) ;;
 1.49782 ++	*) dlprefiles="$dlprefiles $lib" ;;
 1.49783 ++	esac
 1.49784 ++      done
 1.49785 ++
 1.49786 ++      if test "$build_libtool_libs" = yes; then
 1.49787 ++	if test -n "$rpath"; then
 1.49788 ++	  case $host in
 1.49789 ++	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
 1.49790 ++	    # these systems don't actually have a c library (as such)!
 1.49791 ++	    ;;
 1.49792 ++	  *-*-rhapsody* | *-*-darwin1.[012])
 1.49793 ++	    # Rhapsody C library is in the System framework
 1.49794 ++	    deplibs="$deplibs System.ltframework"
 1.49795 ++	    ;;
 1.49796 ++	  *-*-netbsd*)
 1.49797 ++	    # Don't link with libc until the a.out ld.so is fixed.
 1.49798 ++	    ;;
 1.49799 ++	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 1.49800 ++	    # Do not include libc due to us having libc/libc_r.
 1.49801 ++	    ;;
 1.49802 ++	  *-*-sco3.2v5* | *-*-sco5v6*)
 1.49803 ++	    # Causes problems with __ctype
 1.49804 ++	    ;;
 1.49805 ++	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
 1.49806 ++	    # Compiler inserts libc in the correct place for threads to work
 1.49807 ++ 	    ;;
 1.49808 ++ 	  *)
 1.49809 ++	    # Add libc to deplibs on all other systems if necessary.
 1.49810 ++	    if test "$build_libtool_need_lc" = "yes"; then
 1.49811 ++	      deplibs="$deplibs -lc"
 1.49812 ++	    fi
 1.49813 ++	    ;;
 1.49814 ++	  esac
 1.49815 ++	fi
 1.49816 ++
 1.49817 ++	# Transform deplibs into only deplibs that can be linked in shared.
 1.49818 ++	name_save=$name
 1.49819 ++	libname_save=$libname
 1.49820 ++	release_save=$release
 1.49821 ++	versuffix_save=$versuffix
 1.49822 ++	major_save=$major
 1.49823 ++	# I'm not sure if I'm treating the release correctly.  I think
 1.49824 ++	# release should show up in the -l (ie -lgmp5) so we don't want to
 1.49825 ++	# add it in twice.  Is that correct?
 1.49826 ++	release=""
 1.49827 ++	versuffix=""
 1.49828 ++	major=""
 1.49829 ++	newdeplibs=
 1.49830 ++	droppeddeps=no
 1.49831 ++	case $deplibs_check_method in
 1.49832 ++	pass_all)
 1.49833 ++	  # Don't check for shared/static.  Everything works.
 1.49834 ++	  # This might be a little naive.  We might want to check
 1.49835 ++	  # whether the library exists or not.  But this is on
 1.49836 ++	  # osf3 & osf4 and I'm not really sure... Just
 1.49837 ++	  # implementing what was already the behavior.
 1.49838 ++	  newdeplibs=$deplibs
 1.49839 ++	  ;;
 1.49840 ++	test_compile)
 1.49841 ++	  # This code stresses the "libraries are programs" paradigm to its
 1.49842 ++	  # limits. Maybe even breaks it.  We compile a program, linking it
 1.49843 ++	  # against the deplibs as a proxy for the library.  Then we can check
 1.49844 ++	  # whether they linked in statically or dynamically with ldd.
 1.49845 ++	  $opt_dry_run || $RM conftest.c
 1.49846 ++	  cat > conftest.c <<EOF
 1.49847 ++	  int main() { return 0; }
 1.49848 ++EOF
 1.49849 ++	  $opt_dry_run || $RM conftest
 1.49850 ++	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
 1.49851 ++	    ldd_output=`ldd conftest`
 1.49852 ++	    for i in $deplibs; do
 1.49853 ++	      name=`expr $i : '-l\(.*\)'`
 1.49854 ++	      # If $name is empty we are operating on a -L argument.
 1.49855 ++	      if test "$name" != "" && test "$name" != "0"; then
 1.49856 ++		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 1.49857 ++		  case " $predeps $postdeps " in
 1.49858 ++		  *" $i "*)
 1.49859 ++		    newdeplibs="$newdeplibs $i"
 1.49860 ++		    i=""
 1.49861 ++		    ;;
 1.49862 ++		  esac
 1.49863 ++		fi
 1.49864 ++		if test -n "$i" ; then
 1.49865 ++		  libname=`eval "\\$ECHO \"$libname_spec\""`
 1.49866 ++		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
 1.49867 ++		  set dummy $deplib_matches; shift
 1.49868 ++		  deplib_match=$1
 1.49869 ++		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
 1.49870 ++		    newdeplibs="$newdeplibs $i"
 1.49871 ++		  else
 1.49872 ++		    droppeddeps=yes
 1.49873 ++		    $ECHO
 1.49874 ++		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
 1.49875 ++		    $ECHO "*** I have the capability to make that library automatically link in when"
 1.49876 ++		    $ECHO "*** you link to this library.  But I can only do this if you have a"
 1.49877 ++		    $ECHO "*** shared version of the library, which I believe you do not have"
 1.49878 ++		    $ECHO "*** because a test_compile did reveal that the linker did not use it for"
 1.49879 ++		    $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
 1.49880 ++		  fi
 1.49881 ++		fi
 1.49882 ++	      else
 1.49883 ++		newdeplibs="$newdeplibs $i"
 1.49884 ++	      fi
 1.49885 ++	    done
 1.49886 ++	  else
 1.49887 ++	    # Error occurred in the first compile.  Let's try to salvage
 1.49888 ++	    # the situation: Compile a separate program for each library.
 1.49889 ++	    for i in $deplibs; do
 1.49890 ++	      name=`expr $i : '-l\(.*\)'`
 1.49891 ++	      # If $name is empty we are operating on a -L argument.
 1.49892 ++	      if test "$name" != "" && test "$name" != "0"; then
 1.49893 ++		$opt_dry_run || $RM conftest
 1.49894 ++		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
 1.49895 ++		  ldd_output=`ldd conftest`
 1.49896 ++		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 1.49897 ++		    case " $predeps $postdeps " in
 1.49898 ++		    *" $i "*)
 1.49899 ++		      newdeplibs="$newdeplibs $i"
 1.49900 ++		      i=""
 1.49901 ++		      ;;
 1.49902 ++		    esac
 1.49903 ++		  fi
 1.49904 ++		  if test -n "$i" ; then
 1.49905 ++		    libname=`eval "\\$ECHO \"$libname_spec\""`
 1.49906 ++		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
 1.49907 ++		    set dummy $deplib_matches; shift
 1.49908 ++		    deplib_match=$1
 1.49909 ++		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
 1.49910 ++		      newdeplibs="$newdeplibs $i"
 1.49911 ++		    else
 1.49912 ++		      droppeddeps=yes
 1.49913 ++		      $ECHO
 1.49914 ++		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
 1.49915 ++		      $ECHO "*** I have the capability to make that library automatically link in when"
 1.49916 ++		      $ECHO "*** you link to this library.  But I can only do this if you have a"
 1.49917 ++		      $ECHO "*** shared version of the library, which you do not appear to have"
 1.49918 ++		      $ECHO "*** because a test_compile did reveal that the linker did not use this one"
 1.49919 ++		      $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
 1.49920 ++		    fi
 1.49921 ++		  fi
 1.49922 ++		else
 1.49923 ++		  droppeddeps=yes
 1.49924 ++		  $ECHO
 1.49925 ++		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
 1.49926 ++		  $ECHO "*** make it link in!  You will probably need to install it or some"
 1.49927 ++		  $ECHO "*** library that it depends on before this library will be fully"
 1.49928 ++		  $ECHO "*** functional.  Installing it before continuing would be even better."
 1.49929 ++		fi
 1.49930 ++	      else
 1.49931 ++		newdeplibs="$newdeplibs $i"
 1.49932 ++	      fi
 1.49933 ++	    done
 1.49934 ++	  fi
 1.49935 ++	  ;;
 1.49936 ++	file_magic*)
 1.49937 ++	  set dummy $deplibs_check_method; shift
 1.49938 ++	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
 1.49939 ++	  for a_deplib in $deplibs; do
 1.49940 ++	    name=`expr $a_deplib : '-l\(.*\)'`
 1.49941 ++	    # If $name is empty we are operating on a -L argument.
 1.49942 ++	    if test "$name" != "" && test  "$name" != "0"; then
 1.49943 ++	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 1.49944 ++		case " $predeps $postdeps " in
 1.49945 ++		*" $a_deplib "*)
 1.49946 ++		  newdeplibs="$newdeplibs $a_deplib"
 1.49947 ++		  a_deplib=""
 1.49948 ++		  ;;
 1.49949 ++		esac
 1.49950 ++	      fi
 1.49951 ++	      if test -n "$a_deplib" ; then
 1.49952 ++		libname=`eval "\\$ECHO \"$libname_spec\""`
 1.49953 ++		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
 1.49954 ++		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
 1.49955 ++		  for potent_lib in $potential_libs; do
 1.49956 ++		      # Follow soft links.
 1.49957 ++		      if ls -lLd "$potent_lib" 2>/dev/null |
 1.49958 ++			 $GREP " -> " >/dev/null; then
 1.49959 ++			continue
 1.49960 ++		      fi
 1.49961 ++		      # The statement above tries to avoid entering an
 1.49962 ++		      # endless loop below, in case of cyclic links.
 1.49963 ++		      # We might still enter an endless loop, since a link
 1.49964 ++		      # loop can be closed while we follow links,
 1.49965 ++		      # but so what?
 1.49966 ++		      potlib="$potent_lib"
 1.49967 ++		      while test -h "$potlib" 2>/dev/null; do
 1.49968 ++			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
 1.49969 ++			case $potliblink in
 1.49970 ++			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
 1.49971 ++			*) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
 1.49972 ++			esac
 1.49973 ++		      done
 1.49974 ++		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
 1.49975 ++			 $SED -e 10q |
 1.49976 ++			 $EGREP "$file_magic_regex" > /dev/null; then
 1.49977 ++			newdeplibs="$newdeplibs $a_deplib"
 1.49978 ++			a_deplib=""
 1.49979 ++			break 2
 1.49980 ++		      fi
 1.49981 ++		  done
 1.49982 ++		done
 1.49983 ++	      fi
 1.49984 ++	      if test -n "$a_deplib" ; then
 1.49985 ++		droppeddeps=yes
 1.49986 ++		$ECHO
 1.49987 ++		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
 1.49988 ++		$ECHO "*** I have the capability to make that library automatically link in when"
 1.49989 ++		$ECHO "*** you link to this library.  But I can only do this if you have a"
 1.49990 ++		$ECHO "*** shared version of the library, which you do not appear to have"
 1.49991 ++		$ECHO "*** because I did check the linker path looking for a file starting"
 1.49992 ++		if test -z "$potlib" ; then
 1.49993 ++		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
 1.49994 ++		else
 1.49995 ++		  $ECHO "*** with $libname and none of the candidates passed a file format test"
 1.49996 ++		  $ECHO "*** using a file magic. Last file checked: $potlib"
 1.49997 ++		fi
 1.49998 ++	      fi
 1.49999 ++	    else
 1.50000 ++	      # Add a -L argument.
 1.50001 ++	      newdeplibs="$newdeplibs $a_deplib"
 1.50002 ++	    fi
 1.50003 ++	  done # Gone through all deplibs.
 1.50004 ++	  ;;
 1.50005 ++	match_pattern*)
 1.50006 ++	  set dummy $deplibs_check_method; shift
 1.50007 ++	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
 1.50008 ++	  for a_deplib in $deplibs; do
 1.50009 ++	    name=`expr $a_deplib : '-l\(.*\)'`
 1.50010 ++	    # If $name is empty we are operating on a -L argument.
 1.50011 ++	    if test -n "$name" && test "$name" != "0"; then
 1.50012 ++	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 1.50013 ++		case " $predeps $postdeps " in
 1.50014 ++		*" $a_deplib "*)
 1.50015 ++		  newdeplibs="$newdeplibs $a_deplib"
 1.50016 ++		  a_deplib=""
 1.50017 ++		  ;;
 1.50018 ++		esac
 1.50019 ++	      fi
 1.50020 ++	      if test -n "$a_deplib" ; then
 1.50021 ++		libname=`eval "\\$ECHO \"$libname_spec\""`
 1.50022 ++		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
 1.50023 ++		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
 1.50024 ++		  for potent_lib in $potential_libs; do
 1.50025 ++		    potlib="$potent_lib" # see symlink-check above in file_magic test
 1.50026 ++		    if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
 1.50027 ++		       $EGREP "$match_pattern_regex" > /dev/null; then
 1.50028 ++		      newdeplibs="$newdeplibs $a_deplib"
 1.50029 ++		      a_deplib=""
 1.50030 ++		      break 2
 1.50031 ++		    fi
 1.50032 ++		  done
 1.50033 ++		done
 1.50034 ++	      fi
 1.50035 ++	      if test -n "$a_deplib" ; then
 1.50036 ++		droppeddeps=yes
 1.50037 ++		$ECHO
 1.50038 ++		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
 1.50039 ++		$ECHO "*** I have the capability to make that library automatically link in when"
 1.50040 ++		$ECHO "*** you link to this library.  But I can only do this if you have a"
 1.50041 ++		$ECHO "*** shared version of the library, which you do not appear to have"
 1.50042 ++		$ECHO "*** because I did check the linker path looking for a file starting"
 1.50043 ++		if test -z "$potlib" ; then
 1.50044 ++		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
 1.50045 ++		else
 1.50046 ++		  $ECHO "*** with $libname and none of the candidates passed a file format test"
 1.50047 ++		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
 1.50048 ++		fi
 1.50049 ++	      fi
 1.50050 ++	    else
 1.50051 ++	      # Add a -L argument.
 1.50052 ++	      newdeplibs="$newdeplibs $a_deplib"
 1.50053 ++	    fi
 1.50054 ++	  done # Gone through all deplibs.
 1.50055 ++	  ;;
 1.50056 ++	none | unknown | *)
 1.50057 ++	  newdeplibs=""
 1.50058 ++	  tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
 1.50059 ++	      -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
 1.50060 ++	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 1.50061 ++	    for i in $predeps $postdeps ; do
 1.50062 ++	      # can't use Xsed below, because $i might contain '/'
 1.50063 ++	      tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
 1.50064 ++	    done
 1.50065 ++	  fi
 1.50066 ++	  if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' |
 1.50067 ++	     $GREP . >/dev/null; then
 1.50068 ++	    $ECHO
 1.50069 ++	    if test "X$deplibs_check_method" = "Xnone"; then
 1.50070 ++	      $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
 1.50071 ++	    else
 1.50072 ++	      $ECHO "*** Warning: inter-library dependencies are not known to be supported."
 1.50073 ++	    fi
 1.50074 ++	    $ECHO "*** All declared inter-library dependencies are being dropped."
 1.50075 ++	    droppeddeps=yes
 1.50076 ++	  fi
 1.50077 ++	  ;;
 1.50078 ++	esac
 1.50079 ++	versuffix=$versuffix_save
 1.50080 ++	major=$major_save
 1.50081 ++	release=$release_save
 1.50082 ++	libname=$libname_save
 1.50083 ++	name=$name_save
 1.50084 ++
 1.50085 ++	case $host in
 1.50086 ++	*-*-rhapsody* | *-*-darwin1.[012])
 1.50087 ++	  # On Rhapsody replace the C library with the System framework
 1.50088 ++	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
 1.50089 ++	  ;;
 1.50090 ++	esac
 1.50091 ++
 1.50092 ++	if test "$droppeddeps" = yes; then
 1.50093 ++	  if test "$module" = yes; then
 1.50094 ++	    $ECHO
 1.50095 ++	    $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
 1.50096 ++	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
 1.50097 ++	    $ECHO "*** a static module, that should work as long as the dlopening"
 1.50098 ++	    $ECHO "*** application is linked with the -dlopen flag."
 1.50099 ++	    if test -z "$global_symbol_pipe"; then
 1.50100 ++	      $ECHO
 1.50101 ++	      $ECHO "*** However, this would only work if libtool was able to extract symbol"
 1.50102 ++	      $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
 1.50103 ++	      $ECHO "*** not find such a program.  So, this module is probably useless."
 1.50104 ++	      $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
 1.50105 ++	    fi
 1.50106 ++	    if test "$build_old_libs" = no; then
 1.50107 ++	      oldlibs="$output_objdir/$libname.$libext"
 1.50108 ++	      build_libtool_libs=module
 1.50109 ++	      build_old_libs=yes
 1.50110 ++	    else
 1.50111 ++	      build_libtool_libs=no
 1.50112 ++	    fi
 1.50113 ++	  else
 1.50114 ++	    $ECHO "*** The inter-library dependencies that have been dropped here will be"
 1.50115 ++	    $ECHO "*** automatically added whenever a program is linked with this library"
 1.50116 ++	    $ECHO "*** or is declared to -dlopen it."
 1.50117 ++
 1.50118 ++	    if test "$allow_undefined" = no; then
 1.50119 ++	      $ECHO
 1.50120 ++	      $ECHO "*** Since this library must not contain undefined symbols,"
 1.50121 ++	      $ECHO "*** because either the platform does not support them or"
 1.50122 ++	      $ECHO "*** it was explicitly requested with -no-undefined,"
 1.50123 ++	      $ECHO "*** libtool will only create a static version of it."
 1.50124 ++	      if test "$build_old_libs" = no; then
 1.50125 ++		oldlibs="$output_objdir/$libname.$libext"
 1.50126 ++		build_libtool_libs=module
 1.50127 ++		build_old_libs=yes
 1.50128 ++	      else
 1.50129 ++		build_libtool_libs=no
 1.50130 ++	      fi
 1.50131 ++	    fi
 1.50132 ++	  fi
 1.50133 ++	fi
 1.50134 ++	# Done checking deplibs!
 1.50135 ++	deplibs=$newdeplibs
 1.50136 ++      fi
 1.50137 ++      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
 1.50138 ++      case $host in
 1.50139 ++	*-*-darwin*)
 1.50140 ++	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 1.50141 ++	  new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 1.50142 ++	  deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 1.50143 ++	  ;;
 1.50144 ++      esac
 1.50145 ++
 1.50146 ++      # move library search paths that coincide with paths to not yet
 1.50147 ++      # installed libraries to the beginning of the library search list
 1.50148 ++      new_libs=
 1.50149 ++      for path in $notinst_path; do
 1.50150 ++	case " $new_libs " in
 1.50151 ++	*" -L$path/$objdir "*) ;;
 1.50152 ++	*)
 1.50153 ++	  case " $deplibs " in
 1.50154 ++	  *" -L$path/$objdir "*)
 1.50155 ++	    new_libs="$new_libs -L$path/$objdir" ;;
 1.50156 ++	  esac
 1.50157 ++	  ;;
 1.50158 ++	esac
 1.50159 ++      done
 1.50160 ++      for deplib in $deplibs; do
 1.50161 ++	case $deplib in
 1.50162 ++	-L*)
 1.50163 ++	  case " $new_libs " in
 1.50164 ++	  *" $deplib "*) ;;
 1.50165 ++	  *) new_libs="$new_libs $deplib" ;;
 1.50166 ++	  esac
 1.50167 ++	  ;;
 1.50168 ++	*) new_libs="$new_libs $deplib" ;;
 1.50169 ++	esac
 1.50170 ++      done
 1.50171 ++      deplibs="$new_libs"
 1.50172 ++
 1.50173 ++      # All the library-specific variables (install_libdir is set above).
 1.50174 ++      library_names=
 1.50175 ++      old_library=
 1.50176 ++      dlname=
 1.50177 ++
 1.50178 ++      # Test again, we may have decided not to build it any more
 1.50179 ++      if test "$build_libtool_libs" = yes; then
 1.50180 ++	if test "$hardcode_into_libs" = yes; then
 1.50181 ++	  # Hardcode the library paths
 1.50182 ++	  hardcode_libdirs=
 1.50183 ++	  dep_rpath=
 1.50184 ++	  rpath="$finalize_rpath"
 1.50185 ++	  test "$mode" != relink && rpath="$compile_rpath$rpath"
 1.50186 ++	  for libdir in $rpath; do
 1.50187 ++	    if test -n "$hardcode_libdir_flag_spec"; then
 1.50188 ++	      if test -n "$hardcode_libdir_separator"; then
 1.50189 ++		if test -z "$hardcode_libdirs"; then
 1.50190 ++		  hardcode_libdirs="$libdir"
 1.50191 ++		else
 1.50192 ++		  # Just accumulate the unique libdirs.
 1.50193 ++		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
 1.50194 ++		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 1.50195 ++		    ;;
 1.50196 ++		  *)
 1.50197 ++		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 1.50198 ++		    ;;
 1.50199 ++		  esac
 1.50200 ++		fi
 1.50201 ++	      else
 1.50202 ++		eval flag=\"$hardcode_libdir_flag_spec\"
 1.50203 ++		dep_rpath="$dep_rpath $flag"
 1.50204 ++	      fi
 1.50205 ++	    elif test -n "$runpath_var"; then
 1.50206 ++	      case "$perm_rpath " in
 1.50207 ++	      *" $libdir "*) ;;
 1.50208 ++	      *) perm_rpath="$perm_rpath $libdir" ;;
 1.50209 ++	      esac
 1.50210 ++	    fi
 1.50211 ++	  done
 1.50212 ++	  # Substitute the hardcoded libdirs into the rpath.
 1.50213 ++	  if test -n "$hardcode_libdir_separator" &&
 1.50214 ++	     test -n "$hardcode_libdirs"; then
 1.50215 ++	    libdir="$hardcode_libdirs"
 1.50216 ++	    if test -n "$hardcode_libdir_flag_spec_ld"; then
 1.50217 ++	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
 1.50218 ++	    else
 1.50219 ++	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
 1.50220 ++	    fi
 1.50221 ++	  fi
 1.50222 ++	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
 1.50223 ++	    # We should set the runpath_var.
 1.50224 ++	    rpath=
 1.50225 ++	    for dir in $perm_rpath; do
 1.50226 ++	      rpath="$rpath$dir:"
 1.50227 ++	    done
 1.50228 ++	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
 1.50229 ++	  fi
 1.50230 ++	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
 1.50231 ++	fi
 1.50232 ++
 1.50233 ++	shlibpath="$finalize_shlibpath"
 1.50234 ++	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
 1.50235 ++	if test -n "$shlibpath"; then
 1.50236 ++	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
 1.50237 ++	fi
 1.50238 ++
 1.50239 ++	# Get the real and link names of the library.
 1.50240 ++	eval shared_ext=\"$shrext_cmds\"
 1.50241 ++	eval library_names=\"$library_names_spec\"
 1.50242 ++	set dummy $library_names
 1.50243 ++	shift
 1.50244 ++	realname="$1"
 1.50245 ++	shift
 1.50246 ++
 1.50247 ++	if test -n "$soname_spec"; then
 1.50248 ++	  eval soname=\"$soname_spec\"
 1.50249 ++	else
 1.50250 ++	  soname="$realname"
 1.50251 ++	fi
 1.50252 ++	if test -z "$dlname"; then
 1.50253 ++	  dlname=$soname
 1.50254 ++	fi
 1.50255 ++
 1.50256 ++	lib="$output_objdir/$realname"
 1.50257 ++	linknames=
 1.50258 ++	for link
 1.50259 ++	do
 1.50260 ++	  linknames="$linknames $link"
 1.50261 ++	done
 1.50262 ++
 1.50263 ++	# Use standard objects if they are pic
 1.50264 ++	test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 1.50265 ++	test "X$libobjs" = "X " && libobjs=
 1.50266 ++
 1.50267 ++	delfiles=
 1.50268 ++	if test -n "$export_symbols" && test -n "$include_expsyms"; then
 1.50269 ++	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
 1.50270 ++	  export_symbols="$output_objdir/$libname.uexp"
 1.50271 ++	  delfiles="$delfiles $export_symbols"
 1.50272 ++	fi
 1.50273 ++
 1.50274 ++	orig_export_symbols=
 1.50275 ++	case $host_os in
 1.50276 ++	cygwin* | mingw*)
 1.50277 ++	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
 1.50278 ++	    # exporting using user supplied symfile
 1.50279 ++	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
 1.50280 ++	      # and it's NOT already a .def file. Must figure out
 1.50281 ++	      # which of the given symbols are data symbols and tag
 1.50282 ++	      # them as such. So, trigger use of export_symbols_cmds.
 1.50283 ++	      # export_symbols gets reassigned inside the "prepare
 1.50284 ++	      # the list of exported symbols" if statement, so the
 1.50285 ++	      # include_expsyms logic still works.
 1.50286 ++	      orig_export_symbols="$export_symbols"
 1.50287 ++	      export_symbols=
 1.50288 ++	      always_export_symbols=yes
 1.50289 ++	    fi
 1.50290 ++	  fi
 1.50291 ++	  ;;
 1.50292 ++	esac
 1.50293 ++
 1.50294 ++	# Prepare the list of exported symbols
 1.50295 ++	if test -z "$export_symbols"; then
 1.50296 ++	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
 1.50297 ++	    func_echo "generating symbol list for \`$libname.la'"
 1.50298 ++	    export_symbols="$output_objdir/$libname.exp"
 1.50299 ++	    $opt_dry_run || $RM $export_symbols
 1.50300 ++	    cmds=$export_symbols_cmds
 1.50301 ++	    save_ifs="$IFS"; IFS='~'
 1.50302 ++	    for cmd in $cmds; do
 1.50303 ++	      IFS="$save_ifs"
 1.50304 ++	      eval cmd=\"$cmd\"
 1.50305 ++	      if len=`expr "X$cmd" : ".*"` &&
 1.50306 ++	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 1.50307 ++		func_show_eval "$cmd" 'exit $?'
 1.50308 ++		skipped_export=false
 1.50309 ++	      else
 1.50310 ++		# The command line is too long to execute in one step.
 1.50311 ++		func_echo "using reloadable object file for export list..."
 1.50312 ++		skipped_export=:
 1.50313 ++		# Break out early, otherwise skipped_export may be
 1.50314 ++		# set to false by a later but shorter cmd.
 1.50315 ++		break
 1.50316 ++	      fi
 1.50317 ++	    done
 1.50318 ++	    IFS="$save_ifs"
 1.50319 ++	    if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
 1.50320 ++	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
 1.50321 ++	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
 1.50322 ++	    fi
 1.50323 ++	  fi
 1.50324 ++	fi
 1.50325 ++
 1.50326 ++	if test -n "$export_symbols" && test -n "$include_expsyms"; then
 1.50327 ++	  tmp_export_symbols="$export_symbols"
 1.50328 ++	  test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
 1.50329 ++	  $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
 1.50330 ++	fi
 1.50331 ++
 1.50332 ++	if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
 1.50333 ++	  # The given exports_symbols file has to be filtered, so filter it.
 1.50334 ++	  func_echo "filter symbol list for \`$libname.la' to tag DATA exports"
 1.50335 ++	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
 1.50336 ++	  # 's' commands which not all seds can handle. GNU sed should be fine
 1.50337 ++	  # though. Also, the filter scales superlinearly with the number of
 1.50338 ++	  # global variables. join(1) would be nice here, but unfortunately
 1.50339 ++	  # isn't a blessed tool.
 1.50340 ++	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
 1.50341 ++	  delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
 1.50342 ++	  export_symbols=$output_objdir/$libname.def
 1.50343 ++	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
 1.50344 ++	fi
 1.50345 ++
 1.50346 ++	tmp_deplibs=
 1.50347 ++	for test_deplib in $deplibs; do
 1.50348 ++	  case " $convenience " in
 1.50349 ++	  *" $test_deplib "*) ;;
 1.50350 ++	  *)
 1.50351 ++	    tmp_deplibs="$tmp_deplibs $test_deplib"
 1.50352 ++	    ;;
 1.50353 ++	  esac
 1.50354 ++	done
 1.50355 ++	deplibs="$tmp_deplibs"
 1.50356 ++
 1.50357 ++	if test -n "$convenience"; then
 1.50358 ++	  if test -n "$whole_archive_flag_spec" &&
 1.50359 ++	    test "$compiler_needs_object" = yes &&
 1.50360 ++	    test -z "$libobjs"; then
 1.50361 ++	    # extract the archives, so we have objects to list.
 1.50362 ++	    # TODO: could optimize this to just extract one archive.
 1.50363 ++	    whole_archive_flag_spec=
 1.50364 ++	  fi
 1.50365 ++	  if test -n "$whole_archive_flag_spec"; then
 1.50366 ++	    save_libobjs=$libobjs
 1.50367 ++	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
 1.50368 ++	    test "X$libobjs" = "X " && libobjs=
 1.50369 ++	  else
 1.50370 ++	    gentop="$output_objdir/${outputname}x"
 1.50371 ++	    generated="$generated $gentop"
 1.50372 ++
 1.50373 ++	    func_extract_archives $gentop $convenience
 1.50374 ++	    libobjs="$libobjs $func_extract_archives_result"
 1.50375 ++	    test "X$libobjs" = "X " && libobjs=
 1.50376 ++	  fi
 1.50377 ++	fi
 1.50378 ++
 1.50379 ++	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
 1.50380 ++	  eval flag=\"$thread_safe_flag_spec\"
 1.50381 ++	  linker_flags="$linker_flags $flag"
 1.50382 ++	fi
 1.50383 ++
 1.50384 ++	# Make a backup of the uninstalled library when relinking
 1.50385 ++	if test "$mode" = relink; then
 1.50386 ++	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
 1.50387 ++	fi
 1.50388 ++
 1.50389 ++	# Do each of the archive commands.
 1.50390 ++	if test "$module" = yes && test -n "$module_cmds" ; then
 1.50391 ++	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
 1.50392 ++	    eval test_cmds=\"$module_expsym_cmds\"
 1.50393 ++	    cmds=$module_expsym_cmds
 1.50394 ++	  else
 1.50395 ++	    eval test_cmds=\"$module_cmds\"
 1.50396 ++	    cmds=$module_cmds
 1.50397 ++	  fi
 1.50398 ++	else
 1.50399 ++	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
 1.50400 ++	    eval test_cmds=\"$archive_expsym_cmds\"
 1.50401 ++	    cmds=$archive_expsym_cmds
 1.50402 ++	  else
 1.50403 ++	    eval test_cmds=\"$archive_cmds\"
 1.50404 ++	    cmds=$archive_cmds
 1.50405 ++	  fi
 1.50406 ++	fi
 1.50407 ++
 1.50408 ++	if test "X$skipped_export" != "X:" &&
 1.50409 ++	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
 1.50410 ++	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 1.50411 ++	  :
 1.50412 ++	else
 1.50413 ++	  # The command line is too long to link in one step, link piecewise
 1.50414 ++	  # or, if using GNU ld and skipped_export is not :, use a linker
 1.50415 ++	  # script.
 1.50416 ++
 1.50417 ++	  # Save the value of $output and $libobjs because we want to
 1.50418 ++	  # use them later.  If we have whole_archive_flag_spec, we
 1.50419 ++	  # want to use save_libobjs as it was before
 1.50420 ++	  # whole_archive_flag_spec was expanded, because we can't
 1.50421 ++	  # assume the linker understands whole_archive_flag_spec.
 1.50422 ++	  # This may have to be revisited, in case too many
 1.50423 ++	  # convenience libraries get linked in and end up exceeding
 1.50424 ++	  # the spec.
 1.50425 ++	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
 1.50426 ++	    save_libobjs=$libobjs
 1.50427 ++	  fi
 1.50428 ++	  save_output=$output
 1.50429 ++	  output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
 1.50430 ++
 1.50431 ++	  # Clear the reloadable object creation command queue and
 1.50432 ++	  # initialize k to one.
 1.50433 ++	  test_cmds=
 1.50434 ++	  concat_cmds=
 1.50435 ++	  objlist=
 1.50436 ++	  last_robj=
 1.50437 ++	  k=1
 1.50438 ++
 1.50439 ++	  if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
 1.50440 ++	    output=${output_objdir}/${output_la}.lnkscript
 1.50441 ++	    func_echo "creating GNU ld script: $output"
 1.50442 ++	    $ECHO 'INPUT (' > $output
 1.50443 ++	    for obj in $save_libobjs
 1.50444 ++	    do
 1.50445 ++	      $ECHO "$obj" >> $output
 1.50446 ++	    done
 1.50447 ++	    $ECHO ')' >> $output
 1.50448 ++	    delfiles="$delfiles $output"
 1.50449 ++	  elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
 1.50450 ++	    output=${output_objdir}/${output_la}.lnk
 1.50451 ++	    func_echo "creating linker input file list: $output"
 1.50452 ++	    : > $output
 1.50453 ++	    set x $save_libobjs
 1.50454 ++	    shift
 1.50455 ++	    firstobj=
 1.50456 ++	    if test "$compiler_needs_object" = yes; then
 1.50457 ++	      firstobj="$1 "
 1.50458 ++	      shift
 1.50459 ++	    fi
 1.50460 ++	    for obj
 1.50461 ++	    do
 1.50462 ++	      $ECHO "$obj" >> $output
 1.50463 ++	    done
 1.50464 ++	    delfiles="$delfiles $output"
 1.50465 ++	    output=$firstobj\"$file_list_spec$output\"
 1.50466 ++	  else
 1.50467 ++	    if test -n "$save_libobjs"; then
 1.50468 ++	      func_echo "creating reloadable object files..."
 1.50469 ++	      output=$output_objdir/$output_la-${k}.$objext
 1.50470 ++	      # Loop over the list of objects to be linked.
 1.50471 ++	      for obj in $save_libobjs
 1.50472 ++	      do
 1.50473 ++		eval test_cmds=\"$reload_cmds $objlist $last_robj\"
 1.50474 ++		if test "X$objlist" = X ||
 1.50475 ++		   { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
 1.50476 ++		     test "$len" -le "$max_cmd_len"; }; then
 1.50477 ++		  objlist="$objlist $obj"
 1.50478 ++		else
 1.50479 ++		  # The command $test_cmds is almost too long, add a
 1.50480 ++		  # command to the queue.
 1.50481 ++		  if test "$k" -eq 1 ; then
 1.50482 ++		    # The first file doesn't have a previous command to add.
 1.50483 ++		    eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
 1.50484 ++		  else
 1.50485 ++		    # All subsequent reloadable object files will link in
 1.50486 ++		    # the last one created.
 1.50487 ++		    eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
 1.50488 ++		  fi
 1.50489 ++		  last_robj=$output_objdir/$output_la-${k}.$objext
 1.50490 ++		  k=`expr $k + 1`
 1.50491 ++		  output=$output_objdir/$output_la-${k}.$objext
 1.50492 ++		  objlist=$obj
 1.50493 ++		  len=1
 1.50494 ++		fi
 1.50495 ++	      done
 1.50496 ++	      # Handle the remaining objects by creating one last
 1.50497 ++	      # reloadable object file.  All subsequent reloadable object
 1.50498 ++	      # files will link in the last one created.
 1.50499 ++	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
 1.50500 ++	      eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
 1.50501 ++
 1.50502 ++	      # Set up a command to remove the reloadable object files
 1.50503 ++	      # after they are used.
 1.50504 ++	      i=0
 1.50505 ++	      while test "$i" -lt "$k"
 1.50506 ++	      do
 1.50507 ++		i=`expr $i + 1`
 1.50508 ++		delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
 1.50509 ++	      done
 1.50510 ++	    else
 1.50511 ++	      output=
 1.50512 ++	    fi
 1.50513 ++
 1.50514 ++	    if ${skipped_export-false}; then
 1.50515 ++	      func_echo "generating symbol list for \`$libname.la'"
 1.50516 ++	      export_symbols="$output_objdir/$libname.exp"
 1.50517 ++	      $opt_dry_run || $RM $export_symbols
 1.50518 ++	      libobjs=$output
 1.50519 ++	      # Append the command to create the export file.
 1.50520 ++	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
 1.50521 ++	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
 1.50522 ++	    fi
 1.50523 ++
 1.50524 ++	    test -n "$save_libobjs" &&
 1.50525 ++	      func_echo "creating a temporary reloadable object file: $output"
 1.50526 ++
 1.50527 ++	    # Loop through the commands generated above and execute them.
 1.50528 ++	    save_ifs="$IFS"; IFS='~'
 1.50529 ++	    for cmd in $concat_cmds; do
 1.50530 ++	      IFS="$save_ifs"
 1.50531 ++	      $opt_silent || {
 1.50532 ++		  func_quote_for_expand "$cmd"
 1.50533 ++		  eval "func_echo $func_quote_for_expand_result"
 1.50534 ++	      }
 1.50535 ++	      $opt_dry_run || eval "$cmd" || {
 1.50536 ++		lt_exit=$?
 1.50537 ++
 1.50538 ++		# Restore the uninstalled library and exit
 1.50539 ++		if test "$mode" = relink; then
 1.50540 ++		  ( cd "$output_objdir" && \
 1.50541 ++		    $RM "${realname}T" && \
 1.50542 ++		    $MV "${realname}U" "$realname" )
 1.50543 ++		fi
 1.50544 ++
 1.50545 ++		exit $lt_exit
 1.50546 ++	      }
 1.50547 ++	    done
 1.50548 ++	    IFS="$save_ifs"
 1.50549 ++
 1.50550 ++	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
 1.50551 ++	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
 1.50552 ++	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
 1.50553 ++	    fi
 1.50554 ++	  fi
 1.50555 ++
 1.50556 ++          if ${skipped_export-false}; then
 1.50557 ++	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
 1.50558 ++	      tmp_export_symbols="$export_symbols"
 1.50559 ++	      test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
 1.50560 ++	      $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
 1.50561 ++	    fi
 1.50562 ++
 1.50563 ++	    if test -n "$orig_export_symbols"; then
 1.50564 ++	      # The given exports_symbols file has to be filtered, so filter it.
 1.50565 ++	      func_echo "filter symbol list for \`$libname.la' to tag DATA exports"
 1.50566 ++	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
 1.50567 ++	      # 's' commands which not all seds can handle. GNU sed should be fine
 1.50568 ++	      # though. Also, the filter scales superlinearly with the number of
 1.50569 ++	      # global variables. join(1) would be nice here, but unfortunately
 1.50570 ++	      # isn't a blessed tool.
 1.50571 ++	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
 1.50572 ++	      delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
 1.50573 ++	      export_symbols=$output_objdir/$libname.def
 1.50574 ++	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
 1.50575 ++	    fi
 1.50576 ++	  fi
 1.50577 ++
 1.50578 ++	  libobjs=$output
 1.50579 ++	  # Restore the value of output.
 1.50580 ++	  output=$save_output
 1.50581 ++
 1.50582 ++	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
 1.50583 ++	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
 1.50584 ++	    test "X$libobjs" = "X " && libobjs=
 1.50585 ++	  fi
 1.50586 ++	  # Expand the library linking commands again to reset the
 1.50587 ++	  # value of $libobjs for piecewise linking.
 1.50588 ++
 1.50589 ++	  # Do each of the archive commands.
 1.50590 ++	  if test "$module" = yes && test -n "$module_cmds" ; then
 1.50591 ++	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
 1.50592 ++	      cmds=$module_expsym_cmds
 1.50593 ++	    else
 1.50594 ++	      cmds=$module_cmds
 1.50595 ++	    fi
 1.50596 ++	  else
 1.50597 ++	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
 1.50598 ++	      cmds=$archive_expsym_cmds
 1.50599 ++	    else
 1.50600 ++	      cmds=$archive_cmds
 1.50601 ++	    fi
 1.50602 ++	  fi
 1.50603 ++	fi
 1.50604 ++
 1.50605 ++	if test -n "$delfiles"; then
 1.50606 ++	  # Append the command to remove temporary files to $cmds.
 1.50607 ++	  eval cmds=\"\$cmds~\$RM $delfiles\"
 1.50608 ++	fi
 1.50609 ++
 1.50610 ++	# Add any objects from preloaded convenience libraries
 1.50611 ++	if test -n "$dlprefiles"; then
 1.50612 ++	  gentop="$output_objdir/${outputname}x"
 1.50613 ++	  generated="$generated $gentop"
 1.50614 ++
 1.50615 ++	  func_extract_archives $gentop $dlprefiles
 1.50616 ++	  libobjs="$libobjs $func_extract_archives_result"
 1.50617 ++	  test "X$libobjs" = "X " && libobjs=
 1.50618 ++	fi
 1.50619 ++
 1.50620 ++	save_ifs="$IFS"; IFS='~'
 1.50621 ++	for cmd in $cmds; do
 1.50622 ++	  IFS="$save_ifs"
 1.50623 ++	  eval cmd=\"$cmd\"
 1.50624 ++	  $opt_silent || {
 1.50625 ++	    func_quote_for_expand "$cmd"
 1.50626 ++	    eval "func_echo $func_quote_for_expand_result"
 1.50627 ++	  }
 1.50628 ++	  $opt_dry_run || eval "$cmd" || {
 1.50629 ++	    lt_exit=$?
 1.50630 ++
 1.50631 ++	    # Restore the uninstalled library and exit
 1.50632 ++	    if test "$mode" = relink; then
 1.50633 ++	      ( cd "$output_objdir" && \
 1.50634 ++	        $RM "${realname}T" && \
 1.50635 ++		$MV "${realname}U" "$realname" )
 1.50636 ++	    fi
 1.50637 ++
 1.50638 ++	    exit $lt_exit
 1.50639 ++	  }
 1.50640 ++	done
 1.50641 ++	IFS="$save_ifs"
 1.50642 ++
 1.50643 ++	# Restore the uninstalled library and exit
 1.50644 ++	if test "$mode" = relink; then
 1.50645 ++	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
 1.50646 ++
 1.50647 ++	  if test -n "$convenience"; then
 1.50648 ++	    if test -z "$whole_archive_flag_spec"; then
 1.50649 ++	      func_show_eval '${RM}r "$gentop"'
 1.50650 ++	    fi
 1.50651 ++	  fi
 1.50652 ++
 1.50653 ++	  exit $EXIT_SUCCESS
 1.50654 ++	fi
 1.50655 ++
 1.50656 ++	# Create links to the real library.
 1.50657 ++	for linkname in $linknames; do
 1.50658 ++	  if test "$realname" != "$linkname"; then
 1.50659 ++	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
 1.50660 ++	  fi
 1.50661 ++	done
 1.50662 ++
 1.50663 ++	# If -module or -export-dynamic was specified, set the dlname.
 1.50664 ++	if test "$module" = yes || test "$export_dynamic" = yes; then
 1.50665 ++	  # On all known operating systems, these are identical.
 1.50666 ++	  dlname="$soname"
 1.50667 ++	fi
 1.50668 ++      fi
 1.50669 ++      ;;
 1.50670 ++
 1.50671 ++    obj)
 1.50672 ++      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 1.50673 ++	func_warning "\`-dlopen' is ignored for objects"
 1.50674 ++      fi
 1.50675 ++
 1.50676 ++      test -n "$deplibs" && \
 1.50677 ++	func_warning "\`-l' and \`-L' are ignored for objects"
 1.50678 ++
 1.50679 ++      test -n "$rpath" && \
 1.50680 ++	func_warning "\`-rpath' is ignored for objects"
 1.50681 ++
 1.50682 ++      test -n "$xrpath" && \
 1.50683 ++	func_warning "\`-R' is ignored for objects"
 1.50684 ++
 1.50685 ++      test -n "$vinfo" && \
 1.50686 ++	func_warning "\`-version-info' is ignored for objects"
 1.50687 ++
 1.50688 ++      test -n "$release" && \
 1.50689 ++	func_warning "\`-release' is ignored for objects"
 1.50690 ++
 1.50691 ++      case $output in
 1.50692 ++      *.lo)
 1.50693 ++	test -n "$objs$old_deplibs" && \
 1.50694 ++	  func_fatal_error "cannot build library object \`$output' from non-libtool objects"
 1.50695 ++
 1.50696 ++	libobj=$output
 1.50697 ++	func_lo2o "$libobj"
 1.50698 ++	obj=$func_lo2o_result
 1.50699 ++	;;
 1.50700 ++      *)
 1.50701 ++	libobj=
 1.50702 ++	obj="$output"
 1.50703 ++	;;
 1.50704 ++      esac
 1.50705 ++
 1.50706 ++      # Delete the old objects.
 1.50707 ++      $opt_dry_run || $RM $obj $libobj
 1.50708 ++
 1.50709 ++      # Objects from convenience libraries.  This assumes
 1.50710 ++      # single-version convenience libraries.  Whenever we create
 1.50711 ++      # different ones for PIC/non-PIC, this we'll have to duplicate
 1.50712 ++      # the extraction.
 1.50713 ++      reload_conv_objs=
 1.50714 ++      gentop=
 1.50715 ++      # reload_cmds runs $LD directly, so let us get rid of
 1.50716 ++      # -Wl from whole_archive_flag_spec and hope we can get by with
 1.50717 ++      # turning comma into space..
 1.50718 ++      wl=
 1.50719 ++
 1.50720 ++      if test -n "$convenience"; then
 1.50721 ++	if test -n "$whole_archive_flag_spec"; then
 1.50722 ++	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
 1.50723 ++	  reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
 1.50724 ++	else
 1.50725 ++	  gentop="$output_objdir/${obj}x"
 1.50726 ++	  generated="$generated $gentop"
 1.50727 ++
 1.50728 ++	  func_extract_archives $gentop $convenience
 1.50729 ++	  reload_conv_objs="$reload_objs $func_extract_archives_result"
 1.50730 ++	fi
 1.50731 ++      fi
 1.50732 ++
 1.50733 ++      # Create the old-style object.
 1.50734 ++      reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
 1.50735 ++
 1.50736 ++      output="$obj"
 1.50737 ++      func_execute_cmds "$reload_cmds" 'exit $?'
 1.50738 ++
 1.50739 ++      # Exit if we aren't doing a library object file.
 1.50740 ++      if test -z "$libobj"; then
 1.50741 ++	if test -n "$gentop"; then
 1.50742 ++	  func_show_eval '${RM}r "$gentop"'
 1.50743 ++	fi
 1.50744 ++
 1.50745 ++	exit $EXIT_SUCCESS
 1.50746 ++      fi
 1.50747 ++
 1.50748 ++      if test "$build_libtool_libs" != yes; then
 1.50749 ++	if test -n "$gentop"; then
 1.50750 ++	  func_show_eval '${RM}r "$gentop"'
 1.50751 ++	fi
 1.50752 ++
 1.50753 ++	# Create an invalid libtool object if no PIC, so that we don't
 1.50754 ++	# accidentally link it into a program.
 1.50755 ++	# $show "echo timestamp > $libobj"
 1.50756 ++	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
 1.50757 ++	exit $EXIT_SUCCESS
 1.50758 ++      fi
 1.50759 ++
 1.50760 ++      if test -n "$pic_flag" || test "$pic_mode" != default; then
 1.50761 ++	# Only do commands if we really have different PIC objects.
 1.50762 ++	reload_objs="$libobjs $reload_conv_objs"
 1.50763 ++	output="$libobj"
 1.50764 ++	func_execute_cmds "$reload_cmds" 'exit $?'
 1.50765 ++      fi
 1.50766 ++
 1.50767 ++      if test -n "$gentop"; then
 1.50768 ++	func_show_eval '${RM}r "$gentop"'
 1.50769 ++      fi
 1.50770 ++
 1.50771 ++      exit $EXIT_SUCCESS
 1.50772 ++      ;;
 1.50773 ++
 1.50774 ++    prog)
 1.50775 ++      case $host in
 1.50776 ++	*cygwin*) func_stripname '' '.exe' "$output"
 1.50777 ++	          output=$func_stripname_result.exe;;
 1.50778 ++      esac
 1.50779 ++      test -n "$vinfo" && \
 1.50780 ++	func_warning "\`-version-info' is ignored for programs"
 1.50781 ++
 1.50782 ++      test -n "$release" && \
 1.50783 ++	func_warning "\`-release' is ignored for programs"
 1.50784 ++
 1.50785 ++      test "$preload" = yes \
 1.50786 ++        && test "$dlopen_support" = unknown \
 1.50787 ++	&& test "$dlopen_self" = unknown \
 1.50788 ++	&& test "$dlopen_self_static" = unknown && \
 1.50789 ++	  func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
 1.50790 ++
 1.50791 ++      case $host in
 1.50792 ++      *-*-rhapsody* | *-*-darwin1.[012])
 1.50793 ++	# On Rhapsody replace the C library is the System framework
 1.50794 ++	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
 1.50795 ++	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
 1.50796 ++	;;
 1.50797 ++      esac
 1.50798 ++
 1.50799 ++      case $host in
 1.50800 ++      *-*-darwin*)
 1.50801 ++	# Don't allow lazy linking, it breaks C++ global constructors
 1.50802 ++	# But is supposedly fixed on 10.4 or later (yay!).
 1.50803 ++	if test "$tagname" = CXX ; then
 1.50804 ++	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
 1.50805 ++	    10.[0123])
 1.50806 ++	      compile_command="$compile_command ${wl}-bind_at_load"
 1.50807 ++	      finalize_command="$finalize_command ${wl}-bind_at_load"
 1.50808 ++	    ;;
 1.50809 ++	  esac
 1.50810 ++	fi
 1.50811 ++	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
 1.50812 ++	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 1.50813 ++	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 1.50814 ++	;;
 1.50815 ++      esac
 1.50816 ++
 1.50817 ++
 1.50818 ++      # move library search paths that coincide with paths to not yet
 1.50819 ++      # installed libraries to the beginning of the library search list
 1.50820 ++      new_libs=
 1.50821 ++      for path in $notinst_path; do
 1.50822 ++	case " $new_libs " in
 1.50823 ++	*" -L$path/$objdir "*) ;;
 1.50824 ++	*)
 1.50825 ++	  case " $compile_deplibs " in
 1.50826 ++	  *" -L$path/$objdir "*)
 1.50827 ++	    new_libs="$new_libs -L$path/$objdir" ;;
 1.50828 ++	  esac
 1.50829 ++	  ;;
 1.50830 ++	esac
 1.50831 ++      done
 1.50832 ++      for deplib in $compile_deplibs; do
 1.50833 ++	case $deplib in
 1.50834 ++	-L*)
 1.50835 ++	  case " $new_libs " in
 1.50836 ++	  *" $deplib "*) ;;
 1.50837 ++	  *) new_libs="$new_libs $deplib" ;;
 1.50838 ++	  esac
 1.50839 ++	  ;;
 1.50840 ++	*) new_libs="$new_libs $deplib" ;;
 1.50841 ++	esac
 1.50842 ++      done
 1.50843 ++      compile_deplibs="$new_libs"
 1.50844 ++
 1.50845 ++
 1.50846 ++      compile_command="$compile_command $compile_deplibs"
 1.50847 ++      finalize_command="$finalize_command $finalize_deplibs"
 1.50848 ++
 1.50849 ++      if test -n "$rpath$xrpath"; then
 1.50850 ++	# If the user specified any rpath flags, then add them.
 1.50851 ++	for libdir in $rpath $xrpath; do
 1.50852 ++	  # This is the magic to use -rpath.
 1.50853 ++	  case "$finalize_rpath " in
 1.50854 ++	  *" $libdir "*) ;;
 1.50855 ++	  *) finalize_rpath="$finalize_rpath $libdir" ;;
 1.50856 ++	  esac
 1.50857 ++	done
 1.50858 ++      fi
 1.50859 ++
 1.50860 ++      # Now hardcode the library paths
 1.50861 ++      rpath=
 1.50862 ++      hardcode_libdirs=
 1.50863 ++      for libdir in $compile_rpath $finalize_rpath; do
 1.50864 ++	if test -n "$hardcode_libdir_flag_spec"; then
 1.50865 ++	  if test -n "$hardcode_libdir_separator"; then
 1.50866 ++	    if test -z "$hardcode_libdirs"; then
 1.50867 ++	      hardcode_libdirs="$libdir"
 1.50868 ++	    else
 1.50869 ++	      # Just accumulate the unique libdirs.
 1.50870 ++	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
 1.50871 ++	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 1.50872 ++		;;
 1.50873 ++	      *)
 1.50874 ++		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 1.50875 ++		;;
 1.50876 ++	      esac
 1.50877 ++	    fi
 1.50878 ++	  else
 1.50879 ++	    eval flag=\"$hardcode_libdir_flag_spec\"
 1.50880 ++	    rpath="$rpath $flag"
 1.50881 ++	  fi
 1.50882 ++	elif test -n "$runpath_var"; then
 1.50883 ++	  case "$perm_rpath " in
 1.50884 ++	  *" $libdir "*) ;;
 1.50885 ++	  *) perm_rpath="$perm_rpath $libdir" ;;
 1.50886 ++	  esac
 1.50887 ++	fi
 1.50888 ++	case $host in
 1.50889 ++	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
 1.50890 ++	  testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
 1.50891 ++	  case :$dllsearchpath: in
 1.50892 ++	  *":$libdir:"*) ;;
 1.50893 ++	  *) dllsearchpath="$dllsearchpath:$libdir";;
 1.50894 ++	  esac
 1.50895 ++	  case :$dllsearchpath: in
 1.50896 ++	  *":$testbindir:"*) ;;
 1.50897 ++	  *) dllsearchpath="$dllsearchpath:$testbindir";;
 1.50898 ++	  esac
 1.50899 ++	  ;;
 1.50900 ++	esac
 1.50901 ++      done
 1.50902 ++      # Substitute the hardcoded libdirs into the rpath.
 1.50903 ++      if test -n "$hardcode_libdir_separator" &&
 1.50904 ++	 test -n "$hardcode_libdirs"; then
 1.50905 ++	libdir="$hardcode_libdirs"
 1.50906 ++	eval rpath=\" $hardcode_libdir_flag_spec\"
 1.50907 ++      fi
 1.50908 ++      compile_rpath="$rpath"
 1.50909 ++
 1.50910 ++      rpath=
 1.50911 ++      hardcode_libdirs=
 1.50912 ++      for libdir in $finalize_rpath; do
 1.50913 ++	if test -n "$hardcode_libdir_flag_spec"; then
 1.50914 ++	  if test -n "$hardcode_libdir_separator"; then
 1.50915 ++	    if test -z "$hardcode_libdirs"; then
 1.50916 ++	      hardcode_libdirs="$libdir"
 1.50917 ++	    else
 1.50918 ++	      # Just accumulate the unique libdirs.
 1.50919 ++	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
 1.50920 ++	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 1.50921 ++		;;
 1.50922 ++	      *)
 1.50923 ++		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 1.50924 ++		;;
 1.50925 ++	      esac
 1.50926 ++	    fi
 1.50927 ++	  else
 1.50928 ++	    eval flag=\"$hardcode_libdir_flag_spec\"
 1.50929 ++	    rpath="$rpath $flag"
 1.50930 ++	  fi
 1.50931 ++	elif test -n "$runpath_var"; then
 1.50932 ++	  case "$finalize_perm_rpath " in
 1.50933 ++	  *" $libdir "*) ;;
 1.50934 ++	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
 1.50935 ++	  esac
 1.50936 ++	fi
 1.50937 ++      done
 1.50938 ++      # Substitute the hardcoded libdirs into the rpath.
 1.50939 ++      if test -n "$hardcode_libdir_separator" &&
 1.50940 ++	 test -n "$hardcode_libdirs"; then
 1.50941 ++	libdir="$hardcode_libdirs"
 1.50942 ++	eval rpath=\" $hardcode_libdir_flag_spec\"
 1.50943 ++      fi
 1.50944 ++      finalize_rpath="$rpath"
 1.50945 ++
 1.50946 ++      if test -n "$libobjs" && test "$build_old_libs" = yes; then
 1.50947 ++	# Transform all the library objects into standard objects.
 1.50948 ++	compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 1.50949 ++	finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 1.50950 ++      fi
 1.50951 ++
 1.50952 ++      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
 1.50953 ++
 1.50954 ++      # template prelinking step
 1.50955 ++      if test -n "$prelink_cmds"; then
 1.50956 ++	func_execute_cmds "$prelink_cmds" 'exit $?'
 1.50957 ++      fi
 1.50958 ++
 1.50959 ++      wrappers_required=yes
 1.50960 ++      case $host in
 1.50961 ++      *cygwin* | *mingw* )
 1.50962 ++        if test "$build_libtool_libs" != yes; then
 1.50963 ++          wrappers_required=no
 1.50964 ++        fi
 1.50965 ++        ;;
 1.50966 ++      *)
 1.50967 ++        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
 1.50968 ++          wrappers_required=no
 1.50969 ++        fi
 1.50970 ++        ;;
 1.50971 ++      esac
 1.50972 ++      if test "$wrappers_required" = no; then
 1.50973 ++	# Replace the output file specification.
 1.50974 ++	compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
 1.50975 ++	link_command="$compile_command$compile_rpath"
 1.50976 ++
 1.50977 ++	# We have no uninstalled library dependencies, so finalize right now.
 1.50978 ++	exit_status=0
 1.50979 ++	func_show_eval "$link_command" 'exit_status=$?'
 1.50980 ++
 1.50981 ++	# Delete the generated files.
 1.50982 ++	if test -f "$output_objdir/${outputname}S.${objext}"; then
 1.50983 ++	  func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
 1.50984 ++	fi
 1.50985 ++
 1.50986 ++	exit $exit_status
 1.50987 ++      fi
 1.50988 ++
 1.50989 ++      if test -n "$compile_shlibpath$finalize_shlibpath"; then
 1.50990 ++	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
 1.50991 ++      fi
 1.50992 ++      if test -n "$finalize_shlibpath"; then
 1.50993 ++	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
 1.50994 ++      fi
 1.50995 ++
 1.50996 ++      compile_var=
 1.50997 ++      finalize_var=
 1.50998 ++      if test -n "$runpath_var"; then
 1.50999 ++	if test -n "$perm_rpath"; then
 1.51000 ++	  # We should set the runpath_var.
 1.51001 ++	  rpath=
 1.51002 ++	  for dir in $perm_rpath; do
 1.51003 ++	    rpath="$rpath$dir:"
 1.51004 ++	  done
 1.51005 ++	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
 1.51006 ++	fi
 1.51007 ++	if test -n "$finalize_perm_rpath"; then
 1.51008 ++	  # We should set the runpath_var.
 1.51009 ++	  rpath=
 1.51010 ++	  for dir in $finalize_perm_rpath; do
 1.51011 ++	    rpath="$rpath$dir:"
 1.51012 ++	  done
 1.51013 ++	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
 1.51014 ++	fi
 1.51015 ++      fi
 1.51016 ++
 1.51017 ++      if test "$no_install" = yes; then
 1.51018 ++	# We don't need to create a wrapper script.
 1.51019 ++	link_command="$compile_var$compile_command$compile_rpath"
 1.51020 ++	# Replace the output file specification.
 1.51021 ++	link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
 1.51022 ++	# Delete the old output file.
 1.51023 ++	$opt_dry_run || $RM $output
 1.51024 ++	# Link the executable and exit
 1.51025 ++	func_show_eval "$link_command" 'exit $?'
 1.51026 ++	exit $EXIT_SUCCESS
 1.51027 ++      fi
 1.51028 ++
 1.51029 ++      if test "$hardcode_action" = relink; then
 1.51030 ++	# Fast installation is not supported
 1.51031 ++	link_command="$compile_var$compile_command$compile_rpath"
 1.51032 ++	relink_command="$finalize_var$finalize_command$finalize_rpath"
 1.51033 ++
 1.51034 ++	func_warning "this platform does not like uninstalled shared libraries"
 1.51035 ++	func_warning "\`$output' will be relinked during installation"
 1.51036 ++      else
 1.51037 ++	if test "$fast_install" != no; then
 1.51038 ++	  link_command="$finalize_var$compile_command$finalize_rpath"
 1.51039 ++	  if test "$fast_install" = yes; then
 1.51040 ++	    relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
 1.51041 ++	  else
 1.51042 ++	    # fast_install is set to needless
 1.51043 ++	    relink_command=
 1.51044 ++	  fi
 1.51045 ++	else
 1.51046 ++	  link_command="$compile_var$compile_command$compile_rpath"
 1.51047 ++	  relink_command="$finalize_var$finalize_command$finalize_rpath"
 1.51048 ++	fi
 1.51049 ++      fi
 1.51050 ++
 1.51051 ++      # Replace the output file specification.
 1.51052 ++      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
 1.51053 ++
 1.51054 ++      # Delete the old output files.
 1.51055 ++      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
 1.51056 ++
 1.51057 ++      func_show_eval "$link_command" 'exit $?'
 1.51058 ++
 1.51059 ++      # Now create the wrapper script.
 1.51060 ++      func_echo "creating $output"
 1.51061 ++
 1.51062 ++      # Quote the relink command for shipping.
 1.51063 ++      if test -n "$relink_command"; then
 1.51064 ++	# Preserve any variables that may affect compiler behavior
 1.51065 ++	for var in $variables_saved_for_relink; do
 1.51066 ++	  if eval test -z \"\${$var+set}\"; then
 1.51067 ++	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
 1.51068 ++	  elif eval var_value=\$$var; test -z "$var_value"; then
 1.51069 ++	    relink_command="$var=; export $var; $relink_command"
 1.51070 ++	  else
 1.51071 ++	    func_quote_for_eval "$var_value"
 1.51072 ++	    relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
 1.51073 ++	  fi
 1.51074 ++	done
 1.51075 ++	relink_command="(cd `pwd`; $relink_command)"
 1.51076 ++	relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
 1.51077 ++      fi
 1.51078 ++
 1.51079 ++      # Quote $ECHO for shipping.
 1.51080 ++      if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
 1.51081 ++	case $progpath in
 1.51082 ++	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
 1.51083 ++	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
 1.51084 ++	esac
 1.51085 ++	qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
 1.51086 ++      else
 1.51087 ++	qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
 1.51088 ++      fi
 1.51089 ++
 1.51090 ++      # Only actually do things if not in dry run mode.
 1.51091 ++      $opt_dry_run || {
 1.51092 ++	# win32 will think the script is a binary if it has
 1.51093 ++	# a .exe suffix, so we strip it off here.
 1.51094 ++	case $output in
 1.51095 ++	  *.exe) func_stripname '' '.exe' "$output"
 1.51096 ++	         output=$func_stripname_result ;;
 1.51097 ++	esac
 1.51098 ++	# test for cygwin because mv fails w/o .exe extensions
 1.51099 ++	case $host in
 1.51100 ++	  *cygwin*)
 1.51101 ++	    exeext=.exe
 1.51102 ++	    func_stripname '' '.exe' "$outputname"
 1.51103 ++	    outputname=$func_stripname_result ;;
 1.51104 ++	  *) exeext= ;;
 1.51105 ++	esac
 1.51106 ++	case $host in
 1.51107 ++	  *cygwin* | *mingw* )
 1.51108 ++	    output_name=`basename $output`
 1.51109 ++	    output_path=`dirname $output`
 1.51110 ++	    cwrappersource="$output_path/$objdir/lt-$output_name.c"
 1.51111 ++	    cwrapper="$output_path/$output_name.exe"
 1.51112 ++	    $RM $cwrappersource $cwrapper
 1.51113 ++	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
 1.51114 ++
 1.51115 ++	    cat > $cwrappersource <<EOF
 1.51116 ++
 1.51117 ++/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
 1.51118 ++   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 1.51119 ++
 1.51120 ++   The $output program cannot be directly executed until all the libtool
 1.51121 ++   libraries that it depends on are installed.
 1.51122 ++
 1.51123 ++   This wrapper executable should never be moved out of the build directory.
 1.51124 ++   If it is, it will not operate correctly.
 1.51125 ++
 1.51126 ++   Currently, it simply execs the wrapper *script* "/bin/sh $output",
 1.51127 ++   but could eventually absorb all of the scripts functionality and
 1.51128 ++   exec $objdir/$outputname directly.
 1.51129 ++*/
 1.51130 ++EOF
 1.51131 ++	    cat >> $cwrappersource<<"EOF"
 1.51132 ++#include <stdio.h>
 1.51133 ++#include <stdlib.h>
 1.51134 ++#include <unistd.h>
 1.51135 ++#include <malloc.h>
 1.51136 ++#include <stdarg.h>
 1.51137 ++#include <assert.h>
 1.51138 ++#include <string.h>
 1.51139 ++#include <ctype.h>
 1.51140 ++#include <sys/stat.h>
 1.51141 ++
 1.51142 ++#if defined(PATH_MAX)
 1.51143 ++# define LT_PATHMAX PATH_MAX
 1.51144 ++#elif defined(MAXPATHLEN)
 1.51145 ++# define LT_PATHMAX MAXPATHLEN
 1.51146 ++#else
 1.51147 ++# define LT_PATHMAX 1024
 1.51148 ++#endif
 1.51149 ++
 1.51150 ++#ifndef DIR_SEPARATOR
 1.51151 ++# define DIR_SEPARATOR '/'
 1.51152 ++# define PATH_SEPARATOR ':'
 1.51153 ++#endif
 1.51154 ++
 1.51155 ++#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
 1.51156 ++  defined (__OS2__)
 1.51157 ++# define HAVE_DOS_BASED_FILE_SYSTEM
 1.51158 ++# ifndef DIR_SEPARATOR_2
 1.51159 ++#  define DIR_SEPARATOR_2 '\\'
 1.51160 ++# endif
 1.51161 ++# ifndef PATH_SEPARATOR_2
 1.51162 ++#  define PATH_SEPARATOR_2 ';'
 1.51163 ++# endif
 1.51164 ++#endif
 1.51165 ++
 1.51166 ++#ifndef DIR_SEPARATOR_2
 1.51167 ++# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
 1.51168 ++#else /* DIR_SEPARATOR_2 */
 1.51169 ++# define IS_DIR_SEPARATOR(ch) \
 1.51170 ++	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
 1.51171 ++#endif /* DIR_SEPARATOR_2 */
 1.51172 ++
 1.51173 ++#ifndef PATH_SEPARATOR_2
 1.51174 ++# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
 1.51175 ++#else /* PATH_SEPARATOR_2 */
 1.51176 ++# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
 1.51177 ++#endif /* PATH_SEPARATOR_2 */
 1.51178 ++
 1.51179 ++#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
 1.51180 ++#define XFREE(stale) do { \
 1.51181 ++  if (stale) { free ((void *) stale); stale = 0; } \
 1.51182 ++} while (0)
 1.51183 ++
 1.51184 ++/* -DDEBUG is fairly common in CFLAGS.  */
 1.51185 ++#undef DEBUG
 1.51186 ++#if defined DEBUGWRAPPER
 1.51187 ++# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
 1.51188 ++#else
 1.51189 ++# define DEBUG(format, ...)
 1.51190 ++#endif
 1.51191 ++
 1.51192 ++const char *program_name = NULL;
 1.51193 ++
 1.51194 ++void * xmalloc (size_t num);
 1.51195 ++char * xstrdup (const char *string);
 1.51196 ++const char * base_name (const char *name);
 1.51197 ++char * find_executable(const char *wrapper);
 1.51198 ++int    check_executable(const char *path);
 1.51199 ++char * strendzap(char *str, const char *pat);
 1.51200 ++void lt_fatal (const char *message, ...);
 1.51201 ++
 1.51202 ++int
 1.51203 ++main (int argc, char *argv[])
 1.51204 ++{
 1.51205 ++  char **newargz;
 1.51206 ++  int i;
 1.51207 ++
 1.51208 ++  program_name = (char *) xstrdup (base_name (argv[0]));
 1.51209 ++  DEBUG("(main) argv[0]      : %s\n",argv[0]);
 1.51210 ++  DEBUG("(main) program_name : %s\n",program_name);
 1.51211 ++  newargz = XMALLOC(char *, argc+2);
 1.51212 ++EOF
 1.51213 ++
 1.51214 ++	    cat >> $cwrappersource <<EOF
 1.51215 ++  newargz[0] = (char *) xstrdup("$SHELL");
 1.51216 ++EOF
 1.51217 ++
 1.51218 ++	    cat >> $cwrappersource <<"EOF"
 1.51219 ++  newargz[1] = find_executable(argv[0]);
 1.51220 ++  if (newargz[1] == NULL)
 1.51221 ++    lt_fatal("Couldn't find %s", argv[0]);
 1.51222 ++  DEBUG("(main) found exe at : %s\n",newargz[1]);
 1.51223 ++  /* we know the script has the same name, without the .exe */
 1.51224 ++  /* so make sure newargz[1] doesn't end in .exe */
 1.51225 ++  strendzap(newargz[1],".exe");
 1.51226 ++  for (i = 1; i < argc; i++)
 1.51227 ++    newargz[i+1] = xstrdup(argv[i]);
 1.51228 ++  newargz[argc+1] = NULL;
 1.51229 ++
 1.51230 ++  for (i=0; i<argc+1; i++)
 1.51231 ++  {
 1.51232 ++    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
 1.51233 ++    ;
 1.51234 ++  }
 1.51235 ++
 1.51236 ++EOF
 1.51237 ++
 1.51238 ++	    case $host_os in
 1.51239 ++	      mingw*)
 1.51240 ++		cat >> $cwrappersource <<EOF
 1.51241 ++  execv("$SHELL",(char const **)newargz);
 1.51242 ++EOF
 1.51243 ++	      ;;
 1.51244 ++	      *)
 1.51245 ++		cat >> $cwrappersource <<EOF
 1.51246 ++  execv("$SHELL",newargz);
 1.51247 ++EOF
 1.51248 ++	      ;;
 1.51249 ++	    esac
 1.51250 ++
 1.51251 ++	    cat >> $cwrappersource <<"EOF"
 1.51252 ++  return 127;
 1.51253 ++}
 1.51254 ++
 1.51255 ++void *
 1.51256 ++xmalloc (size_t num)
 1.51257 ++{
 1.51258 ++  void * p = (void *) malloc (num);
 1.51259 ++  if (!p)
 1.51260 ++    lt_fatal ("Memory exhausted");
 1.51261 ++
 1.51262 ++  return p;
 1.51263 ++}
 1.51264 ++
 1.51265 ++char *
 1.51266 ++xstrdup (const char *string)
 1.51267 ++{
 1.51268 ++  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
 1.51269 ++;
 1.51270 ++}
 1.51271 ++
 1.51272 ++const char *
 1.51273 ++base_name (const char *name)
 1.51274 ++{
 1.51275 ++  const char *base;
 1.51276 ++
 1.51277 ++#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
 1.51278 ++  /* Skip over the disk name in MSDOS pathnames. */
 1.51279 ++  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
 1.51280 ++    name += 2;
 1.51281 ++#endif
 1.51282 ++
 1.51283 ++  for (base = name; *name; name++)
 1.51284 ++    if (IS_DIR_SEPARATOR (*name))
 1.51285 ++      base = name + 1;
 1.51286 ++  return base;
 1.51287 ++}
 1.51288 ++
 1.51289 ++int
 1.51290 ++check_executable(const char * path)
 1.51291 ++{
 1.51292 ++  struct stat st;
 1.51293 ++
 1.51294 ++  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
 1.51295 ++  if ((!path) || (!*path))
 1.51296 ++    return 0;
 1.51297 ++
 1.51298 ++  if ((stat (path, &st) >= 0) &&
 1.51299 ++      (
 1.51300 ++	/* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
 1.51301 ++#if defined (S_IXOTH)
 1.51302 ++       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
 1.51303 ++#endif
 1.51304 ++#if defined (S_IXGRP)
 1.51305 ++       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
 1.51306 ++#endif
 1.51307 ++       ((st.st_mode & S_IXUSR) == S_IXUSR))
 1.51308 ++      )
 1.51309 ++    return 1;
 1.51310 ++  else
 1.51311 ++    return 0;
 1.51312 ++}
 1.51313 ++
 1.51314 ++/* Searches for the full path of the wrapper.  Returns
 1.51315 ++   newly allocated full path name if found, NULL otherwise */
 1.51316 ++char *
 1.51317 ++find_executable (const char* wrapper)
 1.51318 ++{
 1.51319 ++  int has_slash = 0;
 1.51320 ++  const char* p;
 1.51321 ++  const char* p_next;
 1.51322 ++  /* static buffer for getcwd */
 1.51323 ++  char tmp[LT_PATHMAX + 1];
 1.51324 ++  int tmp_len;
 1.51325 ++  char* concat_name;
 1.51326 ++
 1.51327 ++  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
 1.51328 ++
 1.51329 ++  if ((wrapper == NULL) || (*wrapper == '\0'))
 1.51330 ++    return NULL;
 1.51331 ++
 1.51332 ++  /* Absolute path? */
 1.51333 ++#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
 1.51334 ++  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
 1.51335 ++  {
 1.51336 ++    concat_name = xstrdup (wrapper);
 1.51337 ++    if (check_executable(concat_name))
 1.51338 ++      return concat_name;
 1.51339 ++    XFREE(concat_name);
 1.51340 ++  }
 1.51341 ++  else
 1.51342 ++  {
 1.51343 ++#endif
 1.51344 ++    if (IS_DIR_SEPARATOR (wrapper[0]))
 1.51345 ++    {
 1.51346 ++      concat_name = xstrdup (wrapper);
 1.51347 ++      if (check_executable(concat_name))
 1.51348 ++	return concat_name;
 1.51349 ++      XFREE(concat_name);
 1.51350 ++    }
 1.51351 ++#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
 1.51352 ++  }
 1.51353 ++#endif
 1.51354 ++
 1.51355 ++  for (p = wrapper; *p; p++)
 1.51356 ++    if (*p == '/')
 1.51357 ++    {
 1.51358 ++      has_slash = 1;
 1.51359 ++      break;
 1.51360 ++    }
 1.51361 ++  if (!has_slash)
 1.51362 ++  {
 1.51363 ++    /* no slashes; search PATH */
 1.51364 ++    const char* path = getenv ("PATH");
 1.51365 ++    if (path != NULL)
 1.51366 ++    {
 1.51367 ++      for (p = path; *p; p = p_next)
 1.51368 ++      {
 1.51369 ++	const char* q;
 1.51370 ++	size_t p_len;
 1.51371 ++	for (q = p; *q; q++)
 1.51372 ++	  if (IS_PATH_SEPARATOR(*q))
 1.51373 ++	    break;
 1.51374 ++	p_len = q - p;
 1.51375 ++	p_next = (*q == '\0' ? q : q + 1);
 1.51376 ++	if (p_len == 0)
 1.51377 ++	{
 1.51378 ++	  /* empty path: current directory */
 1.51379 ++	  if (getcwd (tmp, LT_PATHMAX) == NULL)
 1.51380 ++	    lt_fatal ("getcwd failed");
 1.51381 ++	  tmp_len = strlen(tmp);
 1.51382 ++	  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
 1.51383 ++	  memcpy (concat_name, tmp, tmp_len);
 1.51384 ++	  concat_name[tmp_len] = '/';
 1.51385 ++	  strcpy (concat_name + tmp_len + 1, wrapper);
 1.51386 ++	}
 1.51387 ++	else
 1.51388 ++	{
 1.51389 ++	  concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
 1.51390 ++	  memcpy (concat_name, p, p_len);
 1.51391 ++	  concat_name[p_len] = '/';
 1.51392 ++	  strcpy (concat_name + p_len + 1, wrapper);
 1.51393 ++	}
 1.51394 ++	if (check_executable(concat_name))
 1.51395 ++	  return concat_name;
 1.51396 ++	XFREE(concat_name);
 1.51397 ++      }
 1.51398 ++    }
 1.51399 ++    /* not found in PATH; assume curdir */
 1.51400 ++  }
 1.51401 ++  /* Relative path | not found in path: prepend cwd */
 1.51402 ++  if (getcwd (tmp, LT_PATHMAX) == NULL)
 1.51403 ++    lt_fatal ("getcwd failed");
 1.51404 ++  tmp_len = strlen(tmp);
 1.51405 ++  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
 1.51406 ++  memcpy (concat_name, tmp, tmp_len);
 1.51407 ++  concat_name[tmp_len] = '/';
 1.51408 ++  strcpy (concat_name + tmp_len + 1, wrapper);
 1.51409 ++
 1.51410 ++  if (check_executable(concat_name))
 1.51411 ++    return concat_name;
 1.51412 ++  XFREE(concat_name);
 1.51413 ++  return NULL;
 1.51414 ++}
 1.51415 ++
 1.51416 ++char *
 1.51417 ++strendzap(char *str, const char *pat)
 1.51418 ++{
 1.51419 ++  size_t len, patlen;
 1.51420 ++
 1.51421 ++  assert(str != NULL);
 1.51422 ++  assert(pat != NULL);
 1.51423 ++
 1.51424 ++  len = strlen(str);
 1.51425 ++  patlen = strlen(pat);
 1.51426 ++
 1.51427 ++  if (patlen <= len)
 1.51428 ++  {
 1.51429 ++    str += len - patlen;
 1.51430 ++    if (strcmp(str, pat) == 0)
 1.51431 ++      *str = '\0';
 1.51432 ++  }
 1.51433 ++  return str;
 1.51434 ++}
 1.51435 ++
 1.51436 ++static void
 1.51437 ++lt_error_core (int exit_status, const char * mode,
 1.51438 ++	  const char * message, va_list ap)
 1.51439 ++{
 1.51440 ++  fprintf (stderr, "%s: %s: ", program_name, mode);
 1.51441 ++  vfprintf (stderr, message, ap);
 1.51442 ++  fprintf (stderr, ".\n");
 1.51443 ++
 1.51444 ++  if (exit_status >= 0)
 1.51445 ++    exit (exit_status);
 1.51446 ++}
 1.51447 ++
 1.51448 ++void
 1.51449 ++lt_fatal (const char *message, ...)
 1.51450 ++{
 1.51451 ++  va_list ap;
 1.51452 ++  va_start (ap, message);
 1.51453 ++  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
 1.51454 ++  va_end (ap);
 1.51455 ++}
 1.51456 ++EOF
 1.51457 ++	  # we should really use a build-platform specific compiler
 1.51458 ++	  # here, but OTOH, the wrappers (shell script and this C one)
 1.51459 ++	  # are only useful if you want to execute the "real" binary.
 1.51460 ++	  # Since the "real" binary is built for $host, then this
 1.51461 ++	  # wrapper might as well be built for $host, too.
 1.51462 ++	  $opt_dry_run || $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
 1.51463 ++	  ;;
 1.51464 ++	esac
 1.51465 ++	$RM $output
 1.51466 ++	trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
 1.51467 ++
 1.51468 ++	$ECHO > $output "\
 1.51469 ++#! $SHELL
 1.51470 ++
 1.51471 ++# $output - temporary wrapper script for $objdir/$outputname
 1.51472 ++# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 1.51473 ++#
 1.51474 ++# The $output program cannot be directly executed until all the libtool
 1.51475 ++# libraries that it depends on are installed.
 1.51476 ++#
 1.51477 ++# This wrapper script should never be moved out of the build directory.
 1.51478 ++# If it is, it will not operate correctly.
 1.51479 ++
 1.51480 ++# Sed substitution that helps us do robust quoting.  It backslashifies
 1.51481 ++# metacharacters that are still active within double-quoted strings.
 1.51482 ++Xsed='${SED} -e 1s/^X//'
 1.51483 ++sed_quote_subst='$sed_quote_subst'
 1.51484 ++
 1.51485 ++# Be Bourne compatible
 1.51486 ++if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
 1.51487 ++  emulate sh
 1.51488 ++  NULLCMD=:
 1.51489 ++  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
 1.51490 ++  # is contrary to our usage.  Disable this feature.
 1.51491 ++  alias -g '\${1+\"\$@\"}'='\"\$@\"'
 1.51492 ++  setopt NO_GLOB_SUBST
 1.51493 ++else
 1.51494 ++  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
 1.51495 ++fi
 1.51496 ++BIN_SH=xpg4; export BIN_SH # for Tru64
 1.51497 ++DUALCASE=1; export DUALCASE # for MKS sh
 1.51498 ++
 1.51499 ++# The HP-UX ksh and POSIX shell print the target directory to stdout
 1.51500 ++# if CDPATH is set.
 1.51501 ++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 1.51502 ++
 1.51503 ++relink_command=\"$relink_command\"
 1.51504 ++
 1.51505 ++# This environment variable determines our operation mode.
 1.51506 ++if test \"\$libtool_install_magic\" = \"$magic\"; then
 1.51507 ++  # install mode needs the following variables:
 1.51508 ++  generated_by_libtool_version='$macro_version'
 1.51509 ++  notinst_deplibs='$notinst_deplibs'
 1.51510 ++else
 1.51511 ++  # When we are sourced in execute mode, \$file and \$ECHO are already set.
 1.51512 ++  if test \"\$libtool_execute_magic\" != \"$magic\"; then
 1.51513 ++    ECHO=\"$qecho\"
 1.51514 ++    file=\"\$0\"
 1.51515 ++    # Make sure echo works.
 1.51516 ++    if test \"X\$1\" = X--no-reexec; then
 1.51517 ++      # Discard the --no-reexec flag, and continue.
 1.51518 ++      shift
 1.51519 ++    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
 1.51520 ++      # Yippee, \$ECHO works!
 1.51521 ++      :
 1.51522 ++    else
 1.51523 ++      # Restart under the correct shell, and then maybe \$ECHO will work.
 1.51524 ++      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
 1.51525 ++    fi
 1.51526 ++  fi\
 1.51527 ++"
 1.51528 ++	$ECHO >> $output "\
 1.51529 ++
 1.51530 ++  # Find the directory that this script lives in.
 1.51531 ++  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
 1.51532 ++  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
 1.51533 ++
 1.51534 ++  # Follow symbolic links until we get to the real thisdir.
 1.51535 ++  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
 1.51536 ++  while test -n \"\$file\"; do
 1.51537 ++    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
 1.51538 ++
 1.51539 ++    # If there was a directory component, then change thisdir.
 1.51540 ++    if test \"x\$destdir\" != \"x\$file\"; then
 1.51541 ++      case \"\$destdir\" in
 1.51542 ++      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
 1.51543 ++      *) thisdir=\"\$thisdir/\$destdir\" ;;
 1.51544 ++      esac
 1.51545 ++    fi
 1.51546 ++
 1.51547 ++    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
 1.51548 ++    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
 1.51549 ++  done
 1.51550 ++
 1.51551 ++  # Try to get the absolute directory name.
 1.51552 ++  absdir=\`cd \"\$thisdir\" && pwd\`
 1.51553 ++  test -n \"\$absdir\" && thisdir=\"\$absdir\"
 1.51554 ++"
 1.51555 ++
 1.51556 ++	if test "$fast_install" = yes; then
 1.51557 ++	  $ECHO >> $output "\
 1.51558 ++  program=lt-'$outputname'$exeext
 1.51559 ++  progdir=\"\$thisdir/$objdir\"
 1.51560 ++
 1.51561 ++  if test ! -f \"\$progdir/\$program\" ||
 1.51562 ++     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
 1.51563 ++       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
 1.51564 ++
 1.51565 ++    file=\"\$\$-\$program\"
 1.51566 ++
 1.51567 ++    if test ! -d \"\$progdir\"; then
 1.51568 ++      $MKDIR \"\$progdir\"
 1.51569 ++    else
 1.51570 ++      $RM \"\$progdir/\$file\"
 1.51571 ++    fi"
 1.51572 ++
 1.51573 ++	  $ECHO >> $output "\
 1.51574 ++
 1.51575 ++    # relink executable if necessary
 1.51576 ++    if test -n \"\$relink_command\"; then
 1.51577 ++      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
 1.51578 ++      else
 1.51579 ++	$ECHO \"\$relink_command_output\" >&2
 1.51580 ++	$RM \"\$progdir/\$file\"
 1.51581 ++	exit 1
 1.51582 ++      fi
 1.51583 ++    fi
 1.51584 ++
 1.51585 ++    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
 1.51586 ++    { $RM \"\$progdir/\$program\";
 1.51587 ++      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
 1.51588 ++    $RM \"\$progdir/\$file\"
 1.51589 ++  fi"
 1.51590 ++	else
 1.51591 ++	  $ECHO >> $output "\
 1.51592 ++  program='$outputname'
 1.51593 ++  progdir=\"\$thisdir/$objdir\"
 1.51594 ++"
 1.51595 ++	fi
 1.51596 ++
 1.51597 ++	$ECHO >> $output "\
 1.51598 ++
 1.51599 ++  if test -f \"\$progdir/\$program\"; then"
 1.51600 ++
 1.51601 ++	# Export our shlibpath_var if we have one.
 1.51602 ++	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
 1.51603 ++	  $ECHO >> $output "\
 1.51604 ++    # Add our own library path to $shlibpath_var
 1.51605 ++    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
 1.51606 ++
 1.51607 ++    # Some systems cannot cope with colon-terminated $shlibpath_var
 1.51608 ++    # The second colon is a workaround for a bug in BeOS R4 sed
 1.51609 ++    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
 1.51610 ++
 1.51611 ++    export $shlibpath_var
 1.51612 ++"
 1.51613 ++	fi
 1.51614 ++
 1.51615 ++	# fixup the dll searchpath if we need to.
 1.51616 ++	if test -n "$dllsearchpath"; then
 1.51617 ++	  $ECHO >> $output "\
 1.51618 ++    # Add the dll search path components to the executable PATH
 1.51619 ++    PATH=$dllsearchpath:\$PATH
 1.51620 ++"
 1.51621 ++	fi
 1.51622 ++
 1.51623 ++	$ECHO >> $output "\
 1.51624 ++    if test \"\$libtool_execute_magic\" != \"$magic\"; then
 1.51625 ++      # Run the actual program with our arguments.
 1.51626 ++"
 1.51627 ++	case $host in
 1.51628 ++	# Backslashes separate directories on plain windows
 1.51629 ++	*-*-mingw | *-*-os2*)
 1.51630 ++	  $ECHO >> $output "\
 1.51631 ++      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
 1.51632 ++"
 1.51633 ++	  ;;
 1.51634 ++
 1.51635 ++	*)
 1.51636 ++	  $ECHO >> $output "\
 1.51637 ++      exec \"\$progdir/\$program\" \${1+\"\$@\"}
 1.51638 ++"
 1.51639 ++	  ;;
 1.51640 ++	esac
 1.51641 ++	$ECHO >> $output "\
 1.51642 ++      \$ECHO \"\$0: cannot exec \$program \$*\"
 1.51643 ++      exit 1
 1.51644 ++    fi
 1.51645 ++  else
 1.51646 ++    # The program doesn't exist.
 1.51647 ++    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
 1.51648 ++    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
 1.51649 ++    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
 1.51650 ++    exit 1
 1.51651 ++  fi
 1.51652 ++fi\
 1.51653 ++"
 1.51654 ++	chmod +x $output
 1.51655 ++      }
 1.51656 ++      exit $EXIT_SUCCESS
 1.51657 ++      ;;
 1.51658 ++    esac
 1.51659 ++
 1.51660 ++    # See if we need to build an old-fashioned archive.
 1.51661 ++    for oldlib in $oldlibs; do
 1.51662 ++
 1.51663 ++      if test "$build_libtool_libs" = convenience; then
 1.51664 ++	oldobjs="$libobjs_save $symfileobj"
 1.51665 ++	addlibs="$convenience"
 1.51666 ++	build_libtool_libs=no
 1.51667 ++      else
 1.51668 ++	if test "$build_libtool_libs" = module; then
 1.51669 ++	  oldobjs="$libobjs_save"
 1.51670 ++	  build_libtool_libs=no
 1.51671 ++	else
 1.51672 ++	  oldobjs="$old_deplibs $non_pic_objects"
 1.51673 ++	  if test "$preload" = yes && test -f "$symfileobj"; then
 1.51674 ++	    oldobjs="$oldobjs $symfileobj"
 1.51675 ++	  fi
 1.51676 ++	fi
 1.51677 ++	addlibs="$old_convenience"
 1.51678 ++      fi
 1.51679 ++
 1.51680 ++      if test -n "$addlibs"; then
 1.51681 ++	gentop="$output_objdir/${outputname}x"
 1.51682 ++	generated="$generated $gentop"
 1.51683 ++
 1.51684 ++	func_extract_archives $gentop $addlibs
 1.51685 ++	oldobjs="$oldobjs $func_extract_archives_result"
 1.51686 ++      fi
 1.51687 ++
 1.51688 ++      # Do each command in the archive commands.
 1.51689 ++      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
 1.51690 ++	cmds=$old_archive_from_new_cmds
 1.51691 ++      else
 1.51692 ++
 1.51693 ++	# Add any objects from preloaded convenience libraries
 1.51694 ++	if test -n "$dlprefiles"; then
 1.51695 ++	  gentop="$output_objdir/${outputname}x"
 1.51696 ++	  generated="$generated $gentop"
 1.51697 ++
 1.51698 ++	  func_extract_archives $gentop $dlprefiles
 1.51699 ++	  oldobjs="$oldobjs $func_extract_archives_result"
 1.51700 ++	fi
 1.51701 ++
 1.51702 ++	# POSIX demands no paths to be encoded in archives.  We have
 1.51703 ++	# to avoid creating archives with duplicate basenames if we
 1.51704 ++	# might have to extract them afterwards, e.g., when creating a
 1.51705 ++	# static archive out of a convenience library, or when linking
 1.51706 ++	# the entirety of a libtool archive into another (currently
 1.51707 ++	# not supported by libtool).
 1.51708 ++	if (for obj in $oldobjs
 1.51709 ++	    do
 1.51710 ++	      func_basename "$obj"
 1.51711 ++	      $ECHO "$func_basename_result"
 1.51712 ++	    done | sort | sort -uc >/dev/null 2>&1); then
 1.51713 ++	  :
 1.51714 ++	else
 1.51715 ++	  $ECHO "copying selected object files to avoid basename conflicts..."
 1.51716 ++	  gentop="$output_objdir/${outputname}x"
 1.51717 ++	  generated="$generated $gentop"
 1.51718 ++	  func_mkdir_p "$gentop"
 1.51719 ++	  save_oldobjs=$oldobjs
 1.51720 ++	  oldobjs=
 1.51721 ++	  counter=1
 1.51722 ++	  for obj in $save_oldobjs
 1.51723 ++	  do
 1.51724 ++	    func_basename "$obj"
 1.51725 ++	    objbase="$func_basename_result"
 1.51726 ++	    case " $oldobjs " in
 1.51727 ++	    " ") oldobjs=$obj ;;
 1.51728 ++	    *[\ /]"$objbase "*)
 1.51729 ++	      while :; do
 1.51730 ++		# Make sure we don't pick an alternate name that also
 1.51731 ++		# overlaps.
 1.51732 ++		newobj=lt$counter-$objbase
 1.51733 ++		counter=`expr $counter + 1`
 1.51734 ++		case " $oldobjs " in
 1.51735 ++		*[\ /]"$newobj "*) ;;
 1.51736 ++		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
 1.51737 ++		esac
 1.51738 ++	      done
 1.51739 ++	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
 1.51740 ++	      oldobjs="$oldobjs $gentop/$newobj"
 1.51741 ++	      ;;
 1.51742 ++	    *) oldobjs="$oldobjs $obj" ;;
 1.51743 ++	    esac
 1.51744 ++	  done
 1.51745 ++	fi
 1.51746 ++	eval cmds=\"$old_archive_cmds\"
 1.51747 ++
 1.51748 ++	if len=`expr "X$cmds" : ".*" 2>/dev/null` &&
 1.51749 ++	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 1.51750 ++	  cmds=$old_archive_cmds
 1.51751 ++	else
 1.51752 ++	  # the command line is too long to link in one step, link in parts
 1.51753 ++	  func_echo "using piecewise archive linking..."
 1.51754 ++	  save_RANLIB=$RANLIB
 1.51755 ++	  RANLIB=:
 1.51756 ++	  objlist=
 1.51757 ++	  concat_cmds=
 1.51758 ++	  save_oldobjs=$oldobjs
 1.51759 ++	  # Is there a better way of finding the last object in the list?
 1.51760 ++	  for obj in $save_oldobjs
 1.51761 ++	  do
 1.51762 ++	    last_oldobj=$obj
 1.51763 ++	  done
 1.51764 ++	  for obj in $save_oldobjs
 1.51765 ++	  do
 1.51766 ++	    oldobjs="$objlist $obj"
 1.51767 ++	    objlist="$objlist $obj"
 1.51768 ++	    eval test_cmds=\"$old_archive_cmds\"
 1.51769 ++	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
 1.51770 ++	       test "$len" -le "$max_cmd_len"; then
 1.51771 ++	      :
 1.51772 ++	    else
 1.51773 ++	      # the above command should be used before it gets too long
 1.51774 ++	      oldobjs=$objlist
 1.51775 ++	      if test "$obj" = "$last_oldobj" ; then
 1.51776 ++		RANLIB=$save_RANLIB
 1.51777 ++	      fi
 1.51778 ++	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
 1.51779 ++	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
 1.51780 ++	      objlist=
 1.51781 ++	    fi
 1.51782 ++	  done
 1.51783 ++	  RANLIB=$save_RANLIB
 1.51784 ++	  oldobjs=$objlist
 1.51785 ++	  if test "X$oldobjs" = "X" ; then
 1.51786 ++	    eval cmds=\"\$concat_cmds\"
 1.51787 ++	  else
 1.51788 ++	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
 1.51789 ++	  fi
 1.51790 ++	fi
 1.51791 ++      fi
 1.51792 ++      func_execute_cmds "$cmds" 'exit $?'
 1.51793 ++    done
 1.51794 ++
 1.51795 ++    test -n "$generated" && \
 1.51796 ++      func_show_eval "${RM}r$generated"
 1.51797 ++
 1.51798 ++    # Now create the libtool archive.
 1.51799 ++    case $output in
 1.51800 ++    *.la)
 1.51801 ++      old_library=
 1.51802 ++      test "$build_old_libs" = yes && old_library="$libname.$libext"
 1.51803 ++      func_echo "creating $output"
 1.51804 ++
 1.51805 ++      # Preserve any variables that may affect compiler behavior
 1.51806 ++      for var in $variables_saved_for_relink; do
 1.51807 ++	if eval test -z \"\${$var+set}\"; then
 1.51808 ++	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
 1.51809 ++	elif eval var_value=\$$var; test -z "$var_value"; then
 1.51810 ++	  relink_command="$var=; export $var; $relink_command"
 1.51811 ++	else
 1.51812 ++	  func_quote_for_eval "$var_value"
 1.51813 ++	  relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
 1.51814 ++	fi
 1.51815 ++      done
 1.51816 ++      # Quote the link command for shipping.
 1.51817 ++      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
 1.51818 ++      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
 1.51819 ++      if test "$hardcode_automatic" = yes ; then
 1.51820 ++	relink_command=
 1.51821 ++      fi
 1.51822 ++
 1.51823 ++      # Only create the output if not a dry run.
 1.51824 ++      $opt_dry_run || {
 1.51825 ++	for installed in no yes; do
 1.51826 ++	  if test "$installed" = yes; then
 1.51827 ++	    if test -z "$install_libdir"; then
 1.51828 ++	      break
 1.51829 ++	    fi
 1.51830 ++	    output="$output_objdir/$outputname"i
 1.51831 ++	    # Replace all uninstalled libtool libraries with the installed ones
 1.51832 ++	    newdependency_libs=
 1.51833 ++	    for deplib in $dependency_libs; do
 1.51834 ++	      case $deplib in
 1.51835 ++	      *.la)
 1.51836 ++		func_basename "$deplib"
 1.51837 ++		name="$func_basename_result"
 1.51838 ++		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
 1.51839 ++		test -z "$libdir" && \
 1.51840 ++		  func_fatal_error "\`$deplib' is not a valid libtool archive"
 1.51841 ++		newdependency_libs="$newdependency_libs $libdir/$name"
 1.51842 ++		;;
 1.51843 ++	      *) newdependency_libs="$newdependency_libs $deplib" ;;
 1.51844 ++	      esac
 1.51845 ++	    done
 1.51846 ++	    dependency_libs="$newdependency_libs"
 1.51847 ++	    newdlfiles=
 1.51848 ++
 1.51849 ++	    for lib in $dlfiles; do
 1.51850 ++	      case $lib in
 1.51851 ++	      *.la)
 1.51852 ++	        func_basename "$lib"
 1.51853 ++		name="$func_basename_result"
 1.51854 ++		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
 1.51855 ++		test -z "$libdir" && \
 1.51856 ++		  func_fatal_error "\`$lib' is not a valid libtool archive"
 1.51857 ++		newdlfiles="$newdlfiles $libdir/$name"
 1.51858 ++		;;
 1.51859 ++	      *) newdlfiles="$newdlfiles $lib" ;;
 1.51860 ++	      esac
 1.51861 ++	    done
 1.51862 ++	    dlfiles="$newdlfiles"
 1.51863 ++	    newdlprefiles=
 1.51864 ++	    for lib in $dlprefiles; do
 1.51865 ++	      case $lib in
 1.51866 ++	      *.la)
 1.51867 ++		# Only pass preopened files to the pseudo-archive (for
 1.51868 ++		# eventual linking with the app. that links it) if we
 1.51869 ++		# didn't already link the preopened objects directly into
 1.51870 ++		# the library:
 1.51871 ++		func_basename "$lib"
 1.51872 ++		name="$func_basename_result"
 1.51873 ++		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
 1.51874 ++		test -z "$libdir" && \
 1.51875 ++		  func_fatal_error "\`$lib' is not a valid libtool archive"
 1.51876 ++		newdlprefiles="$newdlprefiles $libdir/$name"
 1.51877 ++		;;
 1.51878 ++	      esac
 1.51879 ++	    done
 1.51880 ++	    dlprefiles="$newdlprefiles"
 1.51881 ++	  else
 1.51882 ++	    newdlfiles=
 1.51883 ++	    for lib in $dlfiles; do
 1.51884 ++	      case $lib in
 1.51885 ++		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
 1.51886 ++		*) abs=`pwd`"/$lib" ;;
 1.51887 ++	      esac
 1.51888 ++	      newdlfiles="$newdlfiles $abs"
 1.51889 ++	    done
 1.51890 ++	    dlfiles="$newdlfiles"
 1.51891 ++	    newdlprefiles=
 1.51892 ++	    for lib in $dlprefiles; do
 1.51893 ++	      case $lib in
 1.51894 ++		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
 1.51895 ++		*) abs=`pwd`"/$lib" ;;
 1.51896 ++	      esac
 1.51897 ++	      newdlprefiles="$newdlprefiles $abs"
 1.51898 ++	    done
 1.51899 ++	    dlprefiles="$newdlprefiles"
 1.51900 ++	  fi
 1.51901 ++	  $RM $output
 1.51902 ++	  # place dlname in correct position for cygwin
 1.51903 ++	  tdlname=$dlname
 1.51904 ++	  case $host,$output,$installed,$module,$dlname in
 1.51905 ++	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
 1.51906 ++	  esac
 1.51907 ++	  $ECHO > $output "\
 1.51908 ++# $outputname - a libtool library file
 1.51909 ++# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 1.51910 ++#
 1.51911 ++# Please DO NOT delete this file!
 1.51912 ++# It is necessary for linking the library.
 1.51913 ++
 1.51914 ++# The name that we can dlopen(3).
 1.51915 ++dlname='$tdlname'
 1.51916 ++
 1.51917 ++# Names of this library.
 1.51918 ++library_names='$library_names'
 1.51919 ++
 1.51920 ++# The name of the static archive.
 1.51921 ++old_library='$old_library'
 1.51922 ++
 1.51923 ++# Linker flags that can not go in dependency_libs.
 1.51924 ++inherited_linker_flags='$new_inherited_linker_flags'
 1.51925 ++
 1.51926 ++# Libraries that this one depends upon.
 1.51927 ++dependency_libs='$dependency_libs'
 1.51928 ++
 1.51929 ++# Names of additional weak libraries provided by this library
 1.51930 ++weak_library_names='$weak_libs'
 1.51931 ++
 1.51932 ++# Version information for $libname.
 1.51933 ++current=$current
 1.51934 ++age=$age
 1.51935 ++revision=$revision
 1.51936 ++
 1.51937 ++# Is this an already installed library?
 1.51938 ++installed=$installed
 1.51939 ++
 1.51940 ++# Should we warn about portability when linking against -modules?
 1.51941 ++shouldnotlink=$module
 1.51942 ++
 1.51943 ++# Files to dlopen/dlpreopen
 1.51944 ++dlopen='$dlfiles'
 1.51945 ++dlpreopen='$dlprefiles'
 1.51946 ++
 1.51947 ++# Directory that this library needs to be installed in:
 1.51948 ++libdir='$install_libdir'"
 1.51949 ++	  if test "$installed" = no && test "$need_relink" = yes; then
 1.51950 ++	    $ECHO >> $output "\
 1.51951 ++relink_command=\"$relink_command\""
 1.51952 ++	  fi
 1.51953 ++	done
 1.51954 ++      }
 1.51955 ++
 1.51956 ++      # Do a symbolic link so that the libtool archive can be found in
 1.51957 ++      # LD_LIBRARY_PATH before the program is installed.
 1.51958 ++      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
 1.51959 ++      ;;
 1.51960 ++    esac
 1.51961 ++    exit $EXIT_SUCCESS
 1.51962 ++}
 1.51963 ++
 1.51964 ++{ test "$mode" = link || test "$mode" = relink; } &&
 1.51965 ++    func_mode_link ${1+"$@"}
 1.51966 ++
 1.51967 ++
 1.51968 ++# func_mode_uninstall arg...
 1.51969 ++func_mode_uninstall ()
 1.51970 ++{
 1.51971 ++    $opt_debug
 1.51972 ++    RM="$nonopt"
 1.51973 ++    files=
 1.51974 ++    rmforce=
 1.51975 ++    exit_status=0
 1.51976 ++
 1.51977 ++    # This variable tells wrapper scripts just to set variables rather
 1.51978 ++    # than running their programs.
 1.51979 ++    libtool_install_magic="$magic"
 1.51980 ++
 1.51981 ++    for arg
 1.51982 ++    do
 1.51983 ++      case $arg in
 1.51984 ++      -f) RM="$RM $arg"; rmforce=yes ;;
 1.51985 ++      -*) RM="$RM $arg" ;;
 1.51986 ++      *) files="$files $arg" ;;
 1.51987 ++      esac
 1.51988 ++    done
 1.51989 ++
 1.51990 ++    test -z "$RM" && \
 1.51991 ++      func_fatal_help "you must specify an RM program"
 1.51992 ++
 1.51993 ++    rmdirs=
 1.51994 ++
 1.51995 ++    origobjdir="$objdir"
 1.51996 ++    for file in $files; do
 1.51997 ++      func_dirname "$file" "" "."
 1.51998 ++      dir="$func_dirname_result"
 1.51999 ++      if test "X$dir" = X.; then
 1.52000 ++	objdir="$origobjdir"
 1.52001 ++      else
 1.52002 ++	objdir="$dir/$origobjdir"
 1.52003 ++      fi
 1.52004 ++      func_basename "$file"
 1.52005 ++      name="$func_basename_result"
 1.52006 ++      test "$mode" = uninstall && objdir="$dir"
 1.52007 ++
 1.52008 ++      # Remember objdir for removal later, being careful to avoid duplicates
 1.52009 ++      if test "$mode" = clean; then
 1.52010 ++	case " $rmdirs " in
 1.52011 ++	  *" $objdir "*) ;;
 1.52012 ++	  *) rmdirs="$rmdirs $objdir" ;;
 1.52013 ++	esac
 1.52014 ++      fi
 1.52015 ++
 1.52016 ++      # Don't error if the file doesn't exist and rm -f was used.
 1.52017 ++      if { test -L "$file"; } >/dev/null 2>&1 ||
 1.52018 ++	 { test -h "$file"; } >/dev/null 2>&1 ||
 1.52019 ++	 test -f "$file"; then
 1.52020 ++	:
 1.52021 ++      elif test -d "$file"; then
 1.52022 ++	exit_status=1
 1.52023 ++	continue
 1.52024 ++      elif test "$rmforce" = yes; then
 1.52025 ++	continue
 1.52026 ++      fi
 1.52027 ++
 1.52028 ++      rmfiles="$file"
 1.52029 ++
 1.52030 ++      case $name in
 1.52031 ++      *.la)
 1.52032 ++	# Possibly a libtool archive, so verify it.
 1.52033 ++	if func_lalib_p "$file"; then
 1.52034 ++	  func_source $dir/$name
 1.52035 ++
 1.52036 ++	  # Delete the libtool libraries and symlinks.
 1.52037 ++	  for n in $library_names; do
 1.52038 ++	    rmfiles="$rmfiles $objdir/$n"
 1.52039 ++	  done
 1.52040 ++	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
 1.52041 ++
 1.52042 ++	  case "$mode" in
 1.52043 ++	  clean)
 1.52044 ++	    case "  $library_names " in
 1.52045 ++	    # "  " in the beginning catches empty $dlname
 1.52046 ++	    *" $dlname "*) ;;
 1.52047 ++	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
 1.52048 ++	    esac
 1.52049 ++	    test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
 1.52050 ++	    ;;
 1.52051 ++	  uninstall)
 1.52052 ++	    if test -n "$library_names"; then
 1.52053 ++	      # Do each command in the postuninstall commands.
 1.52054 ++	      func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
 1.52055 ++	    fi
 1.52056 ++
 1.52057 ++	    if test -n "$old_library"; then
 1.52058 ++	      # Do each command in the old_postuninstall commands.
 1.52059 ++	      func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
 1.52060 ++	    fi
 1.52061 ++	    # FIXME: should reinstall the best remaining shared library.
 1.52062 ++	    ;;
 1.52063 ++	  esac
 1.52064 ++	fi
 1.52065 ++	;;
 1.52066 ++
 1.52067 ++      *.lo)
 1.52068 ++	# Possibly a libtool object, so verify it.
 1.52069 ++	if func_lalib_p "$file"; then
 1.52070 ++
 1.52071 ++	  # Read the .lo file
 1.52072 ++	  func_source $dir/$name
 1.52073 ++
 1.52074 ++	  # Add PIC object to the list of files to remove.
 1.52075 ++	  if test -n "$pic_object" &&
 1.52076 ++	     test "$pic_object" != none; then
 1.52077 ++	    rmfiles="$rmfiles $dir/$pic_object"
 1.52078 ++	  fi
 1.52079 ++
 1.52080 ++	  # Add non-PIC object to the list of files to remove.
 1.52081 ++	  if test -n "$non_pic_object" &&
 1.52082 ++	     test "$non_pic_object" != none; then
 1.52083 ++	    rmfiles="$rmfiles $dir/$non_pic_object"
 1.52084 ++	  fi
 1.52085 ++	fi
 1.52086 ++	;;
 1.52087 ++
 1.52088 ++      *)
 1.52089 ++	if test "$mode" = clean ; then
 1.52090 ++	  noexename=$name
 1.52091 ++	  case $file in
 1.52092 ++	  *.exe)
 1.52093 ++	    func_stripname '' '.exe' "$file"
 1.52094 ++	    file=$func_stripname_result
 1.52095 ++	    func_stripname '' '.exe' "$name"
 1.52096 ++	    noexename=$func_stripname_result
 1.52097 ++	    # $file with .exe has already been added to rmfiles,
 1.52098 ++	    # add $file without .exe
 1.52099 ++	    rmfiles="$rmfiles $file"
 1.52100 ++	    ;;
 1.52101 ++	  esac
 1.52102 ++	  # Do a test to see if this is a libtool program.
 1.52103 ++	  if func_ltwrapper_p "$file"; then
 1.52104 ++	    relink_command=
 1.52105 ++	    func_source $dir/$noexename
 1.52106 ++
 1.52107 ++	    # note $name still contains .exe if it was in $file originally
 1.52108 ++	    # as does the version of $file that was added into $rmfiles
 1.52109 ++	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
 1.52110 ++	    if test "$fast_install" = yes && test -n "$relink_command"; then
 1.52111 ++	      rmfiles="$rmfiles $objdir/lt-$name"
 1.52112 ++	    fi
 1.52113 ++	    if test "X$noexename" != "X$name" ; then
 1.52114 ++	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
 1.52115 ++	    fi
 1.52116 ++	  fi
 1.52117 ++	fi
 1.52118 ++	;;
 1.52119 ++      esac
 1.52120 ++      func_show_eval "$RM $rmfiles" 'exit_status=1'
 1.52121 ++    done
 1.52122 ++    objdir="$origobjdir"
 1.52123 ++
 1.52124 ++    # Try to remove the ${objdir}s in the directories where we deleted files
 1.52125 ++    for dir in $rmdirs; do
 1.52126 ++      if test -d "$dir"; then
 1.52127 ++	func_show_eval "rmdir $dir >/dev/null 2>&1"
 1.52128 ++      fi
 1.52129 ++    done
 1.52130 ++
 1.52131 ++    exit $exit_status
 1.52132 ++}
 1.52133 ++
 1.52134 ++{ test "$mode" = uninstall || test "$mode" = clean; } &&
 1.52135 ++    func_mode_uninstall ${1+"$@"}
 1.52136 ++
 1.52137 ++test -z "$mode" && {
 1.52138 ++  help="$generic_help"
 1.52139 ++  func_fatal_help "you must specify a MODE"
 1.52140 ++}
 1.52141 ++
 1.52142 ++test -z "$exec_cmd" && \
 1.52143 ++  func_fatal_help "invalid operation mode \`$mode'"
 1.52144 ++
 1.52145 ++if test -n "$exec_cmd"; then
 1.52146 ++  eval exec "$exec_cmd"
 1.52147 ++  exit $EXIT_FAILURE
 1.52148 ++fi
 1.52149 ++
 1.52150 ++exit $exit_status
 1.52151 ++
 1.52152 ++
 1.52153 ++# The TAGs below are defined such that we never get into a situation
 1.52154 ++# in which we disable both kinds of libraries.  Given conflicting
 1.52155 ++# choices, we go for a static library, that is the most portable,
 1.52156 ++# since we can't tell whether shared libraries were disabled because
 1.52157 ++# the user asked for that or because the platform doesn't support
 1.52158 ++# them.  This is particularly important on AIX, because we don't
 1.52159 ++# support having both static and shared libraries enabled at the same
 1.52160 ++# time on that platform, so we default to a shared-only configuration.
 1.52161 ++# If a disable-shared tag is given, we'll fallback to a static-only
 1.52162 ++# configuration.  But we'll never go from static-only to shared-only.
 1.52163 ++
 1.52164 ++# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
 1.52165 ++build_libtool_libs=no
 1.52166 ++build_old_libs=yes
 1.52167 ++# ### END LIBTOOL TAG CONFIG: disable-shared
 1.52168 ++
 1.52169 ++# ### BEGIN LIBTOOL TAG CONFIG: disable-static
 1.52170 ++build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
 1.52171 ++# ### END LIBTOOL TAG CONFIG: disable-static
 1.52172 ++
 1.52173 ++# Local Variables:
 1.52174 ++# mode:shell-script
 1.52175 ++# sh-indentation:2
 1.52176 ++# End:
 1.52177 ++# vi:sw=2
 1.52178 +--- a/bfd/Makefile.in
 1.52179 ++++ b/bfd/Makefile.in
 1.52180 +@@ -312,6 +312,7 @@ ALL_MACHINES = \
 1.52181 + 	cpu-arc.lo \
 1.52182 + 	cpu-arm.lo \
 1.52183 + 	cpu-avr.lo \
 1.52184 ++	cpu-avr32.lo \
 1.52185 + 	cpu-bfin.lo \
 1.52186 + 	cpu-cr16.lo \
 1.52187 + 	cpu-cr16c.lo \
 1.52188 +@@ -493,6 +494,7 @@ BFD32_BACKENDS = \
 1.52189 + 	elf32-arc.lo \
 1.52190 + 	elf32-arm.lo \
 1.52191 + 	elf32-avr.lo \
 1.52192 ++	elf32-avr32.lo \
 1.52193 + 	elf32-bfin.lo \
 1.52194 + 	elf32-cr16.lo \
 1.52195 + 	elf32-cr16c.lo \
 1.52196 +@@ -1908,6 +1910,10 @@ elf32-cr16.lo: elf32-cr16.c $(INCDIR)/fi
 1.52197 +   $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h elf-bfd.h \
 1.52198 +   $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
 1.52199 +   $(INCDIR)/elf/cr16.h $(INCDIR)/elf/reloc-macros.h elf32-target.h
 1.52200 ++elf32-avr32.lo: elf32-avr32.c $(INCDIR)/filenames.h elf-bfd.h \
 1.52201 ++  $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
 1.52202 ++  $(INCDIR)/bfdlink.h $(INCDIR)/elf/avr32.h $(INCDIR)/elf/reloc-macros.h \
 1.52203 ++  elf32-target.h
 1.52204 + elf32-cr16c.lo: elf32-cr16c.c $(INCDIR)/filenames.h \
 1.52205 +   $(INCDIR)/hashtab.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/cr16c.h \
 1.52206 +   $(INCDIR)/elf/reloc-macros.h elf-bfd.h $(INCDIR)/elf/common.h \
 1.52207 +--- /dev/null
 1.52208 ++++ b/bfd/po/Makefile.in
 1.52209 +@@ -0,0 +1,297 @@
 1.52210 ++# Makefile for program source directory in GNU NLS utilities package.
 1.52211 ++# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
 1.52212 ++# Copyright 2001, 2003, 2006 Free Software Foundation, Inc.
 1.52213 ++#
 1.52214 ++# This file may be copied and used freely without restrictions.  It can
 1.52215 ++# be used in projects which are not available under the GNU Public License
 1.52216 ++# but which still want to provide support for the GNU gettext functionality.
 1.52217 ++# Please note that the actual code is *not* freely available.
 1.52218 ++
 1.52219 ++PACKAGE = bfd
 1.52220 ++VERSION = 2.18.atmel.1.0.1.avr32linux.1
 1.52221 ++
 1.52222 ++SHELL = /bin/sh
 1.52223 ++
 1.52224 ++
 1.52225 ++srcdir = .
 1.52226 ++top_srcdir = ..
 1.52227 ++
 1.52228 ++top_builddir = ..
 1.52229 ++
 1.52230 ++prefix = /usr
 1.52231 ++exec_prefix = ${prefix}
 1.52232 ++datadir = $(prefix)/share
 1.52233 ++localedir = $(datadir)/locale
 1.52234 ++gnulocaledir = $(prefix)/share/locale
 1.52235 ++gettextsrcdir = $(prefix)/share/gettext/po
 1.52236 ++subdir = po
 1.52237 ++
 1.52238 ++DESTDIR =
 1.52239 ++
 1.52240 ++INSTALL = /usr/bin/install -c
 1.52241 ++INSTALL_DATA = ${INSTALL} -m 644
 1.52242 ++MKINSTALLDIRS = $(top_builddir)/./../mkinstalldirs
 1.52243 ++
 1.52244 ++CC = gcc
 1.52245 ++GENCAT = gencat
 1.52246 ++GMSGFMT = PATH=../src:$$PATH /usr/bin/msgfmt
 1.52247 ++MSGFMT = /usr/bin/msgfmt
 1.52248 ++XGETTEXT = PATH=../src:$$PATH /usr/bin/xgettext
 1.52249 ++MSGMERGE = PATH=../src:$$PATH msgmerge
 1.52250 ++
 1.52251 ++DEFS = -DHAVE_CONFIG_H
 1.52252 ++CFLAGS = -g -O2
 1.52253 ++CPPFLAGS = 
 1.52254 ++
 1.52255 ++INCLUDES = -I.. -I$(top_srcdir)/intl
 1.52256 ++
 1.52257 ++COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
 1.52258 ++
 1.52259 ++SOURCES = cat-id-tbl.c
 1.52260 ++POFILES = @POFILES@
 1.52261 ++GMOFILES = @GMOFILES@
 1.52262 ++DISTFILES = ChangeLog Makefile.in.in SRC-POTFILES.in BLD-POTFILES.in $(PACKAGE).pot \
 1.52263 ++stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES)
 1.52264 ++
 1.52265 ++# Note - the following line gets processed by bfd/configure and amended
 1.52266 ++# to contain the full list of source dir POTFILES.
 1.52267 ++SRC-POTFILES = \
 1.52268 ++
 1.52269 ++# Note - the following line gets processed by bfd/configure and amended
 1.52270 ++# to contain the full list of build dir POTFILES.
 1.52271 ++BLD-POTFILES = \
 1.52272 ++
 1.52273 ++CATALOGS =  da.gmo es.gmo fr.gmo ja.gmo ro.gmo rw.gmo sv.gmo tr.gmo vi.gmo zh_CN.gmo da.gmo es.gmo fr.gmo ja.gmo ro.gmo rw.gmo sv.gmo tr.gmo vi.gmo zh_CN.gmo
 1.52274 ++CATOBJEXT = .gmo
 1.52275 ++INSTOBJEXT = .mo
 1.52276 ++
 1.52277 ++.SUFFIXES:
 1.52278 ++.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
 1.52279 ++
 1.52280 ++.c.o:
 1.52281 ++	$(COMPILE) $<
 1.52282 ++
 1.52283 ++.po.pox:
 1.52284 ++	$(MAKE) $(PACKAGE).pot
 1.52285 ++	$(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
 1.52286 ++
 1.52287 ++.po.mo:
 1.52288 ++	$(MSGFMT) -o $@ $<
 1.52289 ++
 1.52290 ++.po.gmo:
 1.52291 ++	file=`echo $* | sed 's,.*/,,'`.gmo \
 1.52292 ++	  && rm -f $$file && $(GMSGFMT) -o $$file $<
 1.52293 ++
 1.52294 ++.po.cat:
 1.52295 ++	sed -f ../intl/po2msg.sed < $< > $*.msg \
 1.52296 ++	  && rm -f $@ && $(GENCAT) $@ $*.msg
 1.52297 ++
 1.52298 ++
 1.52299 ++all: all-yes
 1.52300 ++
 1.52301 ++all-yes: $(CATALOGS) # $(PACKAGE).pot
 1.52302 ++all-no:
 1.52303 ++
 1.52304 ++$(srcdir)/$(PACKAGE).pot: $(SRC-POTFILES) $(BLD-POTFILES)
 1.52305 ++	$(XGETTEXT) --default-domain=$(PACKAGE) \
 1.52306 ++	  --directory=$(top_srcdir) \
 1.52307 ++	  --add-comments --keyword=_ --keyword=N_ \
 1.52308 ++	  --msgid-bugs-address=bug-binutils@gnu.org \
 1.52309 ++	  --files-from=$(srcdir)/SRC-POTFILES.in 
 1.52310 ++	$(XGETTEXT) --default-domain=$(PACKAGE) \
 1.52311 ++	  --directory=.. \
 1.52312 ++	  --directory=. \
 1.52313 ++	  --add-comments --keyword=_ --keyword=N_ \
 1.52314 ++	  --join-existing \
 1.52315 ++	  --msgid-bugs-address=bug-binutils@gnu.org \
 1.52316 ++	  --files-from=$(srcdir)/BLD-POTFILES.in
 1.52317 ++	rm -f $(srcdir)/$(PACKAGE).pot
 1.52318 ++	mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot
 1.52319 ++
 1.52320 ++$(srcdir)/cat-id-tbl.c: stamp-cat-id; @:
 1.52321 ++$(srcdir)/stamp-cat-id: $(PACKAGE).pot
 1.52322 ++	rm -f cat-id-tbl.tmp
 1.52323 ++	sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \
 1.52324 ++		| sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp
 1.52325 ++	if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \
 1.52326 ++	  rm cat-id-tbl.tmp; \
 1.52327 ++	else \
 1.52328 ++	  echo cat-id-tbl.c changed; \
 1.52329 ++	  rm -f $(srcdir)/cat-id-tbl.c; \
 1.52330 ++	  mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \
 1.52331 ++	fi
 1.52332 ++	cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id
 1.52333 ++
 1.52334 ++
 1.52335 ++install: install-exec install-data
 1.52336 ++install-exec:
 1.52337 ++install-info:
 1.52338 ++install-html:
 1.52339 ++install-data: install-data-yes
 1.52340 ++install-data-no: all
 1.52341 ++install-data-yes: all
 1.52342 ++	if test -r $(MKINSTALLDIRS); then \
 1.52343 ++	  $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
 1.52344 ++	else \
 1.52345 ++	  $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
 1.52346 ++	fi
 1.52347 ++	@catalogs='$(CATALOGS)'; \
 1.52348 ++	for cat in $$catalogs; do \
 1.52349 ++	  cat=`basename $$cat`; \
 1.52350 ++	  case "$$cat" in \
 1.52351 ++	    *.gmo) destdir=$(gnulocaledir);; \
 1.52352 ++	    *)     destdir=$(localedir);; \
 1.52353 ++	  esac; \
 1.52354 ++	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
 1.52355 ++	  dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
 1.52356 ++	  if test -r $(MKINSTALLDIRS); then \
 1.52357 ++	    $(MKINSTALLDIRS) $$dir; \
 1.52358 ++	  else \
 1.52359 ++	    $(top_srcdir)/mkinstalldirs $$dir; \
 1.52360 ++	  fi; \
 1.52361 ++	  if test -r $$cat; then \
 1.52362 ++	    $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
 1.52363 ++	    echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
 1.52364 ++	  else \
 1.52365 ++	    $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
 1.52366 ++	    echo "installing $(srcdir)/$$cat as" \
 1.52367 ++		 "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
 1.52368 ++	  fi; \
 1.52369 ++	  if test -r $$cat.m; then \
 1.52370 ++	    $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
 1.52371 ++	    echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
 1.52372 ++	  else \
 1.52373 ++	    if test -r $(srcdir)/$$cat.m ; then \
 1.52374 ++	      $(INSTALL_DATA) $(srcdir)/$$cat.m \
 1.52375 ++		$$dir/$(PACKAGE)$(INSTOBJEXT).m; \
 1.52376 ++	      echo "installing $(srcdir)/$$cat as" \
 1.52377 ++		   "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
 1.52378 ++	    else \
 1.52379 ++	      true; \
 1.52380 ++	    fi; \
 1.52381 ++	  fi; \
 1.52382 ++	done
 1.52383 ++	if test "$(PACKAGE)" = "gettext"; then \
 1.52384 ++	  if test -r $(MKINSTALLDIRS); then \
 1.52385 ++	    $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
 1.52386 ++	  else \
 1.52387 ++	    $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \
 1.52388 ++	  fi; \
 1.52389 ++	  $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
 1.52390 ++			  $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
 1.52391 ++	else \
 1.52392 ++	  : ; \
 1.52393 ++	fi
 1.52394 ++
 1.52395 ++# Define this as empty until I found a useful application.
 1.52396 ++installcheck:
 1.52397 ++
 1.52398 ++uninstall:
 1.52399 ++	catalogs='$(CATALOGS)'; \
 1.52400 ++	for cat in $$catalogs; do \
 1.52401 ++	  cat=`basename $$cat`; \
 1.52402 ++	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
 1.52403 ++	  rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
 1.52404 ++	  rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
 1.52405 ++	  rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
 1.52406 ++	  rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
 1.52407 ++	done
 1.52408 ++	rm -f $(DESTDIR)$(gettextsrcdir)/po-Makefile.in.in
 1.52409 ++
 1.52410 ++check: all
 1.52411 ++
 1.52412 ++cat-id-tbl.o: ../intl/libgettext.h
 1.52413 ++
 1.52414 ++html dvi pdf ps info tags TAGS ID:
 1.52415 ++
 1.52416 ++mostlyclean:
 1.52417 ++	rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp
 1.52418 ++	rm -fr *.o
 1.52419 ++
 1.52420 ++clean: mostlyclean
 1.52421 ++
 1.52422 ++distclean: clean
 1.52423 ++	rm -f Makefile Makefile.in *.mo *.msg *.cat *.cat.m
 1.52424 ++	rm -f SRC-POTFILES BLD-POTFILES 
 1.52425 ++
 1.52426 ++maintainer-clean: distclean
 1.52427 ++	@echo "This command is intended for maintainers to use;"
 1.52428 ++	@echo "it deletes files that may require special tools to rebuild."
 1.52429 ++	rm -f $(GMOFILES) SRC-POTFILES.in BLD-POTFILES.in
 1.52430 ++
 1.52431 ++distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
 1.52432 ++dist distdir: update-po $(DISTFILES)
 1.52433 ++	dists="$(DISTFILES)"; \
 1.52434 ++	for file in $$dists; do \
 1.52435 ++	  ln $(srcdir)/$$file $(distdir) 2> /dev/null \
 1.52436 ++	    || cp -p $(srcdir)/$$file $(distdir); \
 1.52437 ++	done
 1.52438 ++
 1.52439 ++update-po: Makefile
 1.52440 ++	$(MAKE) $(PACKAGE).pot
 1.52441 ++	PATH=`pwd`/../src:$$PATH; \
 1.52442 ++	cd $(srcdir); \
 1.52443 ++	catalogs='$(CATALOGS)'; \
 1.52444 ++	for cat in $$catalogs; do \
 1.52445 ++	  cat=`basename $$cat`; \
 1.52446 ++	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
 1.52447 ++	  mv $$lang.po $$lang.old.po; \
 1.52448 ++	  echo "$$lang:"; \
 1.52449 ++	  if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
 1.52450 ++	    rm -f $$lang.old.po; \
 1.52451 ++	  else \
 1.52452 ++	    echo "msgmerge for $$cat failed!"; \
 1.52453 ++	    rm -f $$lang.po; \
 1.52454 ++	    mv $$lang.old.po $$lang.po; \
 1.52455 ++	  fi; \
 1.52456 ++	done
 1.52457 ++
 1.52458 ++SRC-POTFILES: SRC-POTFILES.in
 1.52459 ++	( if test 'x$(srcdir)' != 'x.'; then \
 1.52460 ++	    posrcprefix='$(top_srcdir)/'; \
 1.52461 ++	  else \
 1.52462 ++	    posrcprefix="../"; \
 1.52463 ++	  fi; \
 1.52464 ++	  rm -f $@-t $@ \
 1.52465 ++	    && (sed -e '/^#/d' \
 1.52466 ++	            -e '/^[ 	]*$$/d' \
 1.52467 ++		    -e "s@.*@	$$posrcprefix& \\\\@" < $(srcdir)/$@.in \
 1.52468 ++		| sed -e '$$s/\\$$//') > $@-t \
 1.52469 ++	    && chmod a-w $@-t \
 1.52470 ++	    && mv $@-t $@ )
 1.52471 ++
 1.52472 ++BLD-POTFILES: BLD-POTFILES.in
 1.52473 ++	  ( rm -f $@-t $@ \
 1.52474 ++	    && (sed -e '/^#/d' \
 1.52475 ++	            -e '/^[ 	]*$$/d' \
 1.52476 ++		    -e "s@.*@	../& \\\\@" < $(srcdir)/$@.in \
 1.52477 ++		| sed -e '$$s/\\$$//') > $@-t \
 1.52478 ++	    && chmod a-w $@-t \
 1.52479 ++	    && mv $@-t $@ )
 1.52480 ++
 1.52481 ++SRC-POTFILES.in: # ../Makefile
 1.52482 ++	cd .. && $(MAKE) po/SRC-POTFILES.in
 1.52483 ++
 1.52484 ++BLD-POTFILES.in: # ../Makefile
 1.52485 ++	cd .. && $(MAKE) po/BLD-POTFILES.in
 1.52486 ++
 1.52487 ++# Note - The presence of SRC-POTFILES and BLD-POTFILES as dependencies
 1.52488 ++# here breaks the implementation of the 'distclean' rule for maintainers.
 1.52489 ++# This is because if 'make distclean' is run in the BFD directory, the
 1.52490 ++# Makefile there will be deleted before 'distclean' is made here, and so
 1.52491 ++# the dependency SRC-POTFILES -> SRC-POTFILES.in -> ../Makefile cannot
 1.52492 ++# be satisfied.
 1.52493 ++#
 1.52494 ++# The SRC-POTFILES and BLD-POTFILES dependencies cannot be removed,
 1.52495 ++# however since it is necessary that these files be built during
 1.52496 ++# *configure* time, so that configure can insert them into the
 1.52497 ++# po/Makefile that it is creating, so that the Makefile will have
 1.52498 ++# the correct dependencies.
 1.52499 ++Makefile: Make-in ../config.status SRC-POTFILES BLD-POTFILES
 1.52500 ++	cd .. \
 1.52501 ++	  && CONFIG_FILES=$(subdir)/Makefile.in:$(subdir)/Make-in \
 1.52502 ++	     CONFIG_HEADERS= $(SHELL) ./config.status
 1.52503 ++
 1.52504 ++# Tell versions [3.59,3.63) of GNU make not to export all variables.
 1.52505 ++# Otherwise a system limit (for SysV at least) may be exceeded.
 1.52506 ++.NOEXPORT:
 1.52507 +--- a/binutils/Makefile.in
 1.52508 ++++ b/binutils/Makefile.in
 1.52509 +@@ -1327,7 +1327,7 @@ readelf.o: readelf.c sysdep.h $(INCDIR)/
 1.52510 +   $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h bucomm.h dwarf.h \
 1.52511 +   $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
 1.52512 +   $(INCDIR)/elf/h8.h $(INCDIR)/elf/reloc-macros.h $(INCDIR)/elf/alpha.h \
 1.52513 +-  $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h $(INCDIR)/elf/avr.h \
 1.52514 ++  $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h $(INCDIR)/elf/avr.h $(INCDIR)/elf/avr32.h\
 1.52515 +   $(INCDIR)/elf/bfin.h $(INCDIR)/elf/cris.h $(INCDIR)/elf/crx.h \
 1.52516 +   $(INCDIR)/elf/d10v.h $(INCDIR)/elf/d30v.h $(INCDIR)/elf/dlx.h \
 1.52517 +   $(INCDIR)/elf/fr30.h $(INCDIR)/elf/frv.h $(INCDIR)/elf/hppa.h \
 1.52518 +--- a/ld/Makefile.in
 1.52519 ++++ b/ld/Makefile.in
 1.52520 +@@ -384,7 +384,34 @@ ALL_EMULATIONS = \
 1.52521 + 	eavr3.o \
 1.52522 + 	eavr4.o \
 1.52523 + 	eavr5.o \
 1.52524 +-	eavr6.o \
 1.52525 ++    eavr6.o \
 1.52526 ++	eavr32elf_ap7000.o \
 1.52527 ++	eavr32elf_ap7001.o \
 1.52528 ++	eavr32elf_ap7002.o \
 1.52529 ++	eavr32elf_ap7200.o \
 1.52530 ++	eavr32elf_uc3a0128.o \
 1.52531 ++	eavr32elf_uc3a0256.o \
 1.52532 ++	eavr32elf_uc3a0512.o \
 1.52533 ++	eavr32elf_uc3a0512es.o \
 1.52534 ++	eavr32elf_uc3a1128.o \
 1.52535 ++	eavr32elf_uc3a1256.o \
 1.52536 ++	eavr32elf_uc3a1512es.o \
 1.52537 ++	eavr32elf_uc3a1512.o \
 1.52538 ++	eavr32elf_uc3a364.o \
 1.52539 ++	eavr32elf_uc3a364s.o \
 1.52540 ++	eavr32elf_uc3a3128.o \
 1.52541 ++	eavr32elf_uc3a3128s.o \
 1.52542 ++	eavr32elf_uc3a3256.o \
 1.52543 ++	eavr32elf_uc3a3256s.o \
 1.52544 ++	eavr32elf_uc3b064.o \
 1.52545 ++	eavr32elf_uc3b0128.o \
 1.52546 ++	eavr32elf_uc3b0256es.o \
 1.52547 ++	eavr32elf_uc3b0256.o \
 1.52548 ++	eavr32elf_uc3b164.o \
 1.52549 ++	eavr32elf_uc3b1128.o \
 1.52550 ++	eavr32elf_uc3b1256es.o \
 1.52551 ++	eavr32elf_uc3b1256.o \
 1.52552 ++	eavr32linux.o \
 1.52553 + 	ecoff_i860.o \
 1.52554 + 	ecoff_sparc.o \
 1.52555 + 	eelf32_spu.o \
 1.52556 +@@ -1448,6 +1475,114 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
 1.52557 +   $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
 1.52558 +   ${GEN_DEPENDS}
 1.52559 + 	${GENSCRIPTS} avr6 "$(tdir_avr2)"
 1.52560 ++eavr32elf_ap7000.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52561 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52562 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52563 ++	${GENSCRIPTS} avr32elf_ap7000 "$(tdir_avr32)" avr32elf
 1.52564 ++eavr32elf_ap7001.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52565 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52566 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52567 ++	${GENSCRIPTS} avr32elf_ap7001 "$(tdir_avr32)" avr32elf
 1.52568 ++eavr32elf_ap7002.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52569 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52570 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52571 ++	${GENSCRIPTS} avr32elf_ap7002 "$(tdir_avr32)" avr32elf
 1.52572 ++eavr32elf_ap7200.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52573 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52574 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52575 ++	${GENSCRIPTS} avr32elf_ap7200 "$(tdir_avr32)" avr32elf
 1.52576 ++eavr32elf_uc3a0128.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52577 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52578 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52579 ++	${GENSCRIPTS} avr32elf_uc3a0128 "$(tdir_avr32)" avr32elf
 1.52580 ++eavr32elf_uc3a0256.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52581 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52582 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52583 ++	${GENSCRIPTS} avr32elf_uc3a0256 "$(tdir_avr32)" avr32elf
 1.52584 ++eavr32elf_uc3a0512.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52585 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52586 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52587 ++	${GENSCRIPTS} avr32elf_uc3a0512 "$(tdir_avr32)" avr32elf
 1.52588 ++eavr32elf_uc3a0512es.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52589 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52590 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52591 ++	${GENSCRIPTS} avr32elf_uc3a0512es "$(tdir_avr32)" avr32elf
 1.52592 ++eavr32elf_uc3a1128.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52593 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52594 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52595 ++	${GENSCRIPTS} avr32elf_uc3a1128 "$(tdir_avr32)" avr32elf
 1.52596 ++eavr32elf_uc3a1256.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52597 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52598 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52599 ++	${GENSCRIPTS} avr32elf_uc3a1256 "$(tdir_avr32)" avr32elf
 1.52600 ++eavr32elf_uc3a1512.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52601 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52602 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52603 ++	${GENSCRIPTS} avr32elf_uc3a1512 "$(tdir_avr32)" avr32elf
 1.52604 ++eavr32elf_uc3a1512es.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52605 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52606 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52607 ++	${GENSCRIPTS} avr32elf_uc3a1512es "$(tdir_avr32)" avr32elf
 1.52608 ++eavr32elf_uc3a364.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52609 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52610 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52611 ++	${GENSCRIPTS} avr32elf_uc3a364 "$(tdir_avr32)" avr32elf
 1.52612 ++eavr32elf_uc3a364s.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52613 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52614 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52615 ++	${GENSCRIPTS} avr32elf_uc3a364s "$(tdir_avr32)" avr32elf
 1.52616 ++eavr32elf_uc3a3128.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52617 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52618 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52619 ++	${GENSCRIPTS} avr32elf_uc3a3128 "$(tdir_avr32)" avr32elf
 1.52620 ++eavr32elf_uc3a3128s.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52621 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52622 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52623 ++	${GENSCRIPTS} avr32elf_uc3a3128s "$(tdir_avr32)" avr32elf
 1.52624 ++eavr32elf_uc3a3256.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52625 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52626 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52627 ++	${GENSCRIPTS} avr32elf_uc3a3256 "$(tdir_avr32)" avr32elf
 1.52628 ++eavr32elf_uc3a3256s.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52629 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52630 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52631 ++	${GENSCRIPTS} avr32elf_uc3a3256s "$(tdir_avr32)" avr32elf
 1.52632 ++eavr32elf_uc3b064.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52633 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52634 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52635 ++	${GENSCRIPTS} avr32elf_uc3b064 "$(tdir_avr32)" avr32elf
 1.52636 ++eavr32elf_uc3b0128.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52637 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52638 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52639 ++	${GENSCRIPTS} avr32elf_uc3b0128 "$(tdir_avr32)" avr32elf
 1.52640 ++eavr32elf_uc3b0256.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52641 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52642 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52643 ++	${GENSCRIPTS} avr32elf_uc3b0256 "$(tdir_avr32)" avr32elf
 1.52644 ++eavr32elf_uc3b0256es.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52645 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52646 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52647 ++	${GENSCRIPTS} avr32elf_uc3b0256es "$(tdir_avr32)" avr32elf
 1.52648 ++eavr32elf_uc3b164.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52649 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52650 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52651 ++	${GENSCRIPTS} avr32elf_uc3b164 "$(tdir_avr32)" avr32elf
 1.52652 ++eavr32elf_uc3b1128.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52653 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52654 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52655 ++	${GENSCRIPTS} avr32elf_uc3b1128 "$(tdir_avr32)" avr32elf
 1.52656 ++eavr32elf_uc3b1256.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52657 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52658 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52659 ++	${GENSCRIPTS} avr32elf_uc3b1256 "$(tdir_avr32)" avr32elf
 1.52660 ++eavr32elf_uc3b1256es.c: $(srcdir)/emulparams/avr32elf.sh \
 1.52661 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52662 ++  $(srcdir)/scripttempl/elf_xip.sc ${GEN_DEPENDS}
 1.52663 ++	${GENSCRIPTS} avr32elf_uc3b1256es "$(tdir_avr32)" avr32elf
 1.52664 ++eavr32linux.c: $(srcdir)/emulparams/avr32linux.sh \
 1.52665 ++  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/avr32elf.em \
 1.52666 ++  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 1.52667 ++	${GENSCRIPTS} avr32linux "$(tdir_avr32)"
 1.52668 + ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \
 1.52669 +   $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS}
 1.52670 + 	${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)"
 1.52671 +@@ -2679,7 +2814,9 @@ install-exec-local: ld-new$(EXEEXT)
 1.52672 + 	  || $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT); \
 1.52673 + 	fi
 1.52674 + 
 1.52675 +-install-data-local:
 1.52676 ++# We want install to imply install-info as per GNU standards, despite the
 1.52677 ++# cygnus option.
 1.52678 ++install-data-local: install-info
 1.52679 + 	$(mkinstalldirs) $(DESTDIR)$(scriptdir)/ldscripts
 1.52680 + 	for f in ldscripts/*; do \
 1.52681 + 	  $(INSTALL_DATA) $$f $(DESTDIR)$(scriptdir)/$$f ; \
 1.52682 +--- /dev/null
 1.52683 ++++ b/libiberty/required-list
 1.52684 +@@ -0,0 +1 @@
 1.52685 ++./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o ./cp-demint.o ./dyn-string.o ./fdmatch.o ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o ./objalloc.o ./obstack.o ./partition.o ./pexecute.o ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o ./strerror.o ./strsignal.o ./unlink-if-ordinary.o ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o ./xstrerror.o ./xstrndup.o
 1.52686 +--- a/opcodes/configure
 1.52687 ++++ b/opcodes/configure
 1.52688 +@@ -11418,6 +11418,7 @@ if test x${all_targets} = xfalse ; then
 1.52689 + 	bfd_arc_arch)		ta="$ta arc-dis.lo arc-opc.lo arc-ext.lo" ;;
 1.52690 + 	bfd_arm_arch)		ta="$ta arm-dis.lo" ;;
 1.52691 + 	bfd_avr_arch)		ta="$ta avr-dis.lo" ;;
 1.52692 ++	bfd_avr32_arch)		ta="$ta avr32-asm.lo avr32-dis.lo avr32-opc.lo" ;;
 1.52693 + 	bfd_bfin_arch)		ta="$ta bfin-dis.lo" ;;
 1.52694 + 	bfd_cr16_arch)    	ta="$ta cr16-dis.lo cr16-opc.lo" ;;
 1.52695 + 	bfd_cris_arch)		ta="$ta cris-dis.lo cris-opc.lo cgen-bitset.lo" ;;
 1.52696 +@@ -11476,7 +11477,7 @@ if test x${all_targets} = xfalse ; then
 1.52697 + 				ta="$ta sh64-dis.lo sh64-opc.lo"
 1.52698 + 				archdefs="$archdefs -DINCLUDE_SHMEDIA"
 1.52699 + 				break;;
 1.52700 +-	    esac;
 1.52701 ++	    esac
 1.52702 + 	  done
 1.52703 + 				ta="$ta sh-dis.lo cgen-bitset.lo" ;;
 1.52704 + 	bfd_sparc_arch)		ta="$ta sparc-dis.lo sparc-opc.lo" ;;
 1.52705 +--- a/opcodes/Makefile.in
 1.52706 ++++ b/opcodes/Makefile.in
 1.52707 +@@ -257,6 +257,7 @@ LIBIBERTY = ../libiberty/libiberty.a
 1.52708 + # Header files.
 1.52709 + HFILES = \
 1.52710 + 	cgen-ops.h cgen-types.h \
 1.52711 ++	avr32-asm.h avr32-opc.h \
 1.52712 + 	fr30-desc.h fr30-opc.h \
 1.52713 + 	frv-desc.h frv-opc.h \
 1.52714 + 	h8500-opc.h \
 1.52715 +@@ -291,6 +292,9 @@ CFILES = \
 1.52716 + 	arc-ext.c \
 1.52717 + 	arm-dis.c \
 1.52718 + 	avr-dis.c \
 1.52719 ++	avr32-asm.c \
 1.52720 ++	avr32-dis.c \
 1.52721 ++	avr32-opc.c \
 1.52722 + 	bfin-dis.c \
 1.52723 + 	cgen-asm.c \
 1.52724 + 	cgen-bitset.c \
 1.52725 +@@ -445,6 +449,9 @@ ALL_MACHINES = \
 1.52726 + 	arc-ext.lo \
 1.52727 + 	arm-dis.lo \
 1.52728 + 	avr-dis.lo \
 1.52729 ++	avr32-asm.lo \
 1.52730 ++	avr32-dis.lo \
 1.52731 ++	avr32-opc.lo \
 1.52732 + 	bfin-dis.lo \
 1.52733 + 	cgen-asm.lo \
 1.52734 + 	cgen-bitset.lo \
 1.52735 +@@ -1225,6 +1232,15 @@ avr-dis.lo: avr-dis.c sysdep.h config.h 
 1.52736 +   $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
 1.52737 +   opintl.h $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h \
 1.52738 +   $(INCDIR)/opcode/avr.h
 1.52739 ++avr32-asm.lo: avr32-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \
 1.52740 ++  $(BFD_H) $(INCDIR)/symcat.h avr32-opc.h opintl.h \
 1.52741 ++  $(INCDIR)/xregex.h $(INCDIR)/xregex2.h \
 1.52742 ++  $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h
 1.52743 ++avr32-dis.lo: avr32-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \
 1.52744 ++  $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
 1.52745 ++  avr32-opc.h opintl.h
 1.52746 ++avr32-opc.lo: avr32-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \
 1.52747 ++  $(BFD_H) $(INCDIR)/symcat.h avr32-opc.h $(INCDIR)/libiberty.h
 1.52748 + bfin-dis.lo: bfin-dis.c $(INCDIR)/opcode/bfin.h $(INCDIR)/dis-asm.h \
 1.52749 +   $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h
 1.52750 + cgen-asm.lo: cgen-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \